export const smartContractTypes = { XchainExec: [ { name: 'to', type: 'address' }, { name: 'value', type: 'uint256' }, { name: 'data', type: 'bytes' }, ], Execution: [ { name: 'target', type: 'address' }, { name: 'value', type: 'uint256' }, { name: 'callData', type: 'bytes' }, ], Witness: [ { name: 'recipient', type: 'address' }, { name: 'tokenOut', type: 'uint256[2][]' }, { name: 'depositId', type: 'uint256' }, { name: 'targetChain', type: 'uint256' }, { name: 'fillDeadline', type: 'uint32' }, { name: 'execs', type: 'XchainExec[]' }, { name: 'userOpHash', type: 'bytes32' }, { name: 'maxFeeBps', type: 'uint32' }, ], Segment: [ { name: 'arbiter', type: 'address' }, { name: 'chainId', type: 'uint256' }, { name: 'idsAndAmounts', type: 'uint256[2][]' }, { name: 'witness', type: 'Witness' }, ], MultichainCompact: [ { name: 'sponsor', type: 'address' }, { name: 'nonce', type: 'uint256' }, { name: 'expires', type: 'uint256' }, { name: 'segments', type: 'Segment[]' }, ], BatchCompact: [ { name: 'arbiter', type: 'address' }, { name: 'sponsor', type: 'address' }, { name: 'nonce', type: 'uint256' }, { name: 'expires', type: 'uint256' }, { name: 'idsAndAmounts', type: 'uint256[2][]' }, { name: 'witness', type: 'Witness' }, ], QualificationWitness: [ { name: 'claimHash', type: 'bytes32' }, { name: 'targetChainSignatureHash', type: 'bytes32' }, { name: 'targetWETHAddress', type: 'address' }, { name: 'feeBeneficiaryAndBps', type: 'uint256[2][]' }, ], AtomicFill: [ { name: 'intentFillPayloadArrayKeccak', type: 'bytes32' }, { name: 'exclusiveRelayer', type: 'address' }, ], ChainNotarization: [ { name: 'originAccount', type: 'address' }, { name: 'originModule', type: 'address' }, { name: 'notarizedChainId', type: 'uint256' }, { name: 'nonce', type: 'uint256' }, { name: 'expires', type: 'uint256' }, { name: 'notarizedWitness', type: 'bytes32' }, { name: 'idsAndAmountsTokenInHash', type: 'bytes32' }, ], TargetChainAttributes: [ { name: 'recipient', type: 'address' }, { name: 'tokenOut', type: 'uint256[2][]' }, { name: 'targetWETHAddress', type: 'address' }, { name: 'fillDeadline', type: 'uint32' }, { name: 'maxFeeBps', type: 'uint32' }, { name: 'feeBeneficiaryHash', type: 'bytes32' }, ], MultiOriginMessage: [ { name: 'notarization', type: 'ChainNotarization' }, { name: 'targetChain', type: 'TargetChainAttributes' }, { name: 'otherSegments', type: 'bytes32[]' }, { name: 'executions', type: 'Execution[]' }, { name: 'userSig', type: 'bytes' }, ], SingleOriginMessage: [ { name: 'notarization', type: 'ChainNotarization' }, { name: 'targetChain', type: 'TargetChainAttributes' }, { name: 'executions', type: 'Execution[]' }, { name: 'userSig', type: 'bytes' }, ], UserOperationMessage: [ { name: 'targetChain', type: 'TargetChainAttributes' }, { name: 'userOp', type: 'PackedUserOperation' }, { name: 'originAccount', type: 'address' }, { name: 'notarizedChainId', type: 'uint256' }, { name: 'nonce', type: 'uint256' }, ], PackedUserOperation: [ { name: 'sender', type: 'address' }, { name: 'nonce', type: 'uint256' }, { name: 'initCode', type: 'bytes' }, { name: 'callData', type: 'bytes' }, { name: 'accountGasLimits', type: 'bytes32' }, { name: 'preVerificationGas', type: 'uint256' }, { name: 'gasFees', type: 'bytes32' }, { name: 'paymasterAndData', type: 'bytes' }, { name: 'signature', type: 'bytes' }, ], IntentFillPayload: [ { name: 'segments', type: 'SegmentData[]' }, { name: 'message', type: 'bytes' }, { name: 'orchestratorSig', type: 'bytes' }, ], SegmentData: [ { name: 'tokenIn', type: 'uint256[2][]' }, { name: 'tokenOut', type: 'uint256[2][]' }, { name: 'originWETHAddress', type: 'address' }, { name: 'originChainId', type: 'uint256' }, { name: 'compactNonce', type: 'uint256' }, ], Payload: [ { name: 'account', type: 'address' }, { name: 'nonce', type: 'uint256' }, { name: 'expires', type: 'uint256' }, { name: 'witness', type: 'DepositWitness' }, { name: 'feeBeneficiariesAndBps', type: 'uint256[2][]' }, ], DepositWitness: [ { name: 'baseDepositId', type: 'uint256' }, { name: 'targetChain', type: 'uint256' }, { name: 'recipient', type: 'address' }, { name: 'fillDeadline', type: 'uint32' }, { name: 'tokenIn', type: 'uint256[2][]' }, { name: 'tokenOut', type: 'uint256[2][]' }, { name: 'targetWETHAddress', type: 'address' }, { name: 'maxFeeBps', type: 'uint32' }, ], Signatures: [ { name: 'orchestratorSig', type: 'bytes' }, { name: 'userSig', type: 'bytes' }, ], }