diff --git a/abi/EVM2EVMOffRamp.json b/abi/EVM2EVMOffRamp.json new file mode 100644 index 0000000..71cf23d --- /dev/null +++ b/abi/EVM2EVMOffRamp.json @@ -0,0 +1,1572 @@ +[ + { + "inputs": [ + { + "components": [ + { + "internalType": "address", + "name": "commitStore", + "type": "address" + }, + { + "internalType": "uint64", + "name": "chainSelector", + "type": "uint64" + }, + { + "internalType": "uint64", + "name": "sourceChainSelector", + "type": "uint64" + }, + { + "internalType": "address", + "name": "onRamp", + "type": "address" + }, + { + "internalType": "address", + "name": "prevOffRamp", + "type": "address" + }, + { + "internalType": "address", + "name": "armProxy", + "type": "address" + } + ], + "internalType": "struct EVM2EVMOffRamp.StaticConfig", + "name": "staticConfig", + "type": "tuple" + }, + { + "internalType": "contract IERC20[]", + "name": "sourceTokens", + "type": "address[]" + }, + { + "internalType": "contract IPool[]", + "name": "pools", + "type": "address[]" + }, + { + "components": [ + { + "internalType": "bool", + "name": "isEnabled", + "type": "bool" + }, + { + "internalType": "uint128", + "name": "capacity", + "type": "uint128" + }, + { + "internalType": "uint128", + "name": "rate", + "type": "uint128" + } + ], + "internalType": "struct RateLimiter.Config", + "name": "rateLimiterConfig", + "type": "tuple" + } + ], + "stateMutability": "nonpayable", + "type": "constructor" + }, + { + "inputs": [ + { + "internalType": "uint256", + "name": "capacity", + "type": "uint256" + }, + { + "internalType": "uint256", + "name": "requested", + "type": "uint256" + } + ], + "name": "AggregateValueMaxCapacityExceeded", + "type": "error" + }, + { + "inputs": [ + { + "internalType": "uint256", + "name": "minWaitInSeconds", + "type": "uint256" + }, + { + "internalType": "uint256", + "name": "available", + "type": "uint256" + } + ], + "name": "AggregateValueRateLimitReached", + "type": "error" + }, + { + "inputs": [ + { + "internalType": "uint64", + "name": "sequenceNumber", + "type": "uint64" + } + ], + "name": "AlreadyAttempted", + "type": "error" + }, + { + "inputs": [ + { + "internalType": "uint64", + "name": "sequenceNumber", + "type": "uint64" + } + ], + "name": "AlreadyExecuted", + "type": "error" + }, + { + "inputs": [], + "name": "BadARMSignal", + "type": "error" + }, + { + "inputs": [], + "name": "BucketOverfilled", + "type": "error" + }, + { + "inputs": [], + "name": "CanOnlySelfCall", + "type": "error" + }, + { + "inputs": [], + "name": "CommitStoreAlreadyInUse", + "type": "error" + }, + { + "inputs": [ + { + "internalType": "bytes32", + "name": "expected", + "type": "bytes32" + }, + { + "internalType": "bytes32", + "name": "actual", + "type": "bytes32" + } + ], + "name": "ConfigDigestMismatch", + "type": "error" + }, + { + "inputs": [], + "name": "EmptyReport", + "type": "error" + }, + { + "inputs": [ + { + "internalType": "bytes", + "name": "error", + "type": "bytes" + } + ], + "name": "ExecutionError", + "type": "error" + }, + { + "inputs": [ + { + "internalType": "uint256", + "name": "expected", + "type": "uint256" + }, + { + "internalType": "uint256", + "name": "actual", + "type": "uint256" + } + ], + "name": "ForkedChain", + "type": "error" + }, + { + "inputs": [ + { + "internalType": "string", + "name": "message", + "type": "string" + } + ], + "name": "InvalidConfig", + "type": "error" + }, + { + "inputs": [ + { + "internalType": "uint256", + "name": "index", + "type": "uint256" + }, + { + "internalType": "uint256", + "name": "newLimit", + "type": "uint256" + } + ], + "name": "InvalidManualExecutionGasLimit", + "type": "error" + }, + { + "inputs": [], + "name": "InvalidMessageId", + "type": "error" + }, + { + "inputs": [ + { + "internalType": "uint64", + "name": "sequenceNumber", + "type": "uint64" + }, + { + "internalType": "enum Internal.MessageExecutionState", + "name": "newState", + "type": "uint8" + } + ], + "name": "InvalidNewState", + "type": "error" + }, + { + "inputs": [ + { + "internalType": "uint64", + "name": "sourceChainSelector", + "type": "uint64" + } + ], + "name": "InvalidSourceChain", + "type": "error" + }, + { + "inputs": [], + "name": "InvalidTokenPoolConfig", + "type": "error" + }, + { + "inputs": [], + "name": "ManualExecutionGasLimitMismatch", + "type": "error" + }, + { + "inputs": [], + "name": "ManualExecutionNotYetEnabled", + "type": "error" + }, + { + "inputs": [ + { + "internalType": "uint256", + "name": "maxSize", + "type": "uint256" + }, + { + "internalType": "uint256", + "name": "actualSize", + "type": "uint256" + } + ], + "name": "MessageTooLarge", + "type": "error" + }, + { + "inputs": [], + "name": "OnlyCallableByAdminOrOwner", + "type": "error" + }, + { + "inputs": [], + "name": "OracleCannotBeZeroAddress", + "type": "error" + }, + { + "inputs": [], + "name": "PoolAlreadyAdded", + "type": "error" + }, + { + "inputs": [], + "name": "PoolDoesNotExist", + "type": "error" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "token", + "type": "address" + } + ], + "name": "PriceNotFoundForToken", + "type": "error" + }, + { + "inputs": [ + { + "internalType": "bytes", + "name": "error", + "type": "bytes" + } + ], + "name": "ReceiverError", + "type": "error" + }, + { + "inputs": [], + "name": "RootNotCommitted", + "type": "error" + }, + { + "inputs": [ + { + "internalType": "uint64", + "name": "sequenceNumber", + "type": "uint64" + } + ], + "name": "TokenDataMismatch", + "type": "error" + }, + { + "inputs": [ + { + "internalType": "bytes", + "name": "error", + "type": "bytes" + } + ], + "name": "TokenHandlingError", + "type": "error" + }, + { + "inputs": [ + { + "internalType": "uint256", + "name": "capacity", + "type": "uint256" + }, + { + "internalType": "uint256", + "name": "requested", + "type": "uint256" + }, + { + "internalType": "address", + "name": "tokenAddress", + "type": "address" + } + ], + "name": "TokenMaxCapacityExceeded", + "type": "error" + }, + { + "inputs": [], + "name": "TokenPoolMismatch", + "type": "error" + }, + { + "inputs": [ + { + "internalType": "uint256", + "name": "minWaitInSeconds", + "type": "uint256" + }, + { + "internalType": "uint256", + "name": "available", + "type": "uint256" + }, + { + "internalType": "address", + "name": "tokenAddress", + "type": "address" + } + ], + "name": "TokenRateLimitReached", + "type": "error" + }, + { + "inputs": [], + "name": "UnauthorizedTransmitter", + "type": "error" + }, + { + "inputs": [], + "name": "UnexpectedTokenData", + "type": "error" + }, + { + "inputs": [ + { + "internalType": "uint64", + "name": "sequenceNumber", + "type": "uint64" + } + ], + "name": "UnsupportedNumberOfTokens", + "type": "error" + }, + { + "inputs": [ + { + "internalType": "contract IERC20", + "name": "token", + "type": "address" + } + ], + "name": "UnsupportedToken", + "type": "error" + }, + { + "inputs": [ + { + "internalType": "uint256", + "name": "expected", + "type": "uint256" + }, + { + "internalType": "uint256", + "name": "actual", + "type": "uint256" + } + ], + "name": "WrongMessageLength", + "type": "error" + }, + { + "inputs": [], + "name": "ZeroAddressNotAllowed", + "type": "error" + }, + { + "anonymous": false, + "inputs": [ + { + "indexed": false, + "internalType": "address", + "name": "newAdmin", + "type": "address" + } + ], + "name": "AdminSet", + "type": "event" + }, + { + "anonymous": false, + "inputs": [ + { + "components": [ + { + "internalType": "address", + "name": "commitStore", + "type": "address" + }, + { + "internalType": "uint64", + "name": "chainSelector", + "type": "uint64" + }, + { + "internalType": "uint64", + "name": "sourceChainSelector", + "type": "uint64" + }, + { + "internalType": "address", + "name": "onRamp", + "type": "address" + }, + { + "internalType": "address", + "name": "prevOffRamp", + "type": "address" + }, + { + "internalType": "address", + "name": "armProxy", + "type": "address" + } + ], + "indexed": false, + "internalType": "struct EVM2EVMOffRamp.StaticConfig", + "name": "staticConfig", + "type": "tuple" + }, + { + "components": [ + { + "internalType": "uint32", + "name": "permissionLessExecutionThresholdSeconds", + "type": "uint32" + }, + { + "internalType": "address", + "name": "router", + "type": "address" + }, + { + "internalType": "address", + "name": "priceRegistry", + "type": "address" + }, + { + "internalType": "uint16", + "name": "maxNumberOfTokensPerMsg", + "type": "uint16" + }, + { + "internalType": "uint32", + "name": "maxDataBytes", + "type": "uint32" + }, + { + "internalType": "uint32", + "name": "maxPoolReleaseOrMintGas", + "type": "uint32" + } + ], + "indexed": false, + "internalType": "struct EVM2EVMOffRamp.DynamicConfig", + "name": "dynamicConfig", + "type": "tuple" + } + ], + "name": "ConfigSet", + "type": "event" + }, + { + "anonymous": false, + "inputs": [ + { + "indexed": false, + "internalType": "uint32", + "name": "previousConfigBlockNumber", + "type": "uint32" + }, + { + "indexed": false, + "internalType": "bytes32", + "name": "configDigest", + "type": "bytes32" + }, + { + "indexed": false, + "internalType": "uint64", + "name": "configCount", + "type": "uint64" + }, + { + "indexed": false, + "internalType": "address[]", + "name": "signers", + "type": "address[]" + }, + { + "indexed": false, + "internalType": "address[]", + "name": "transmitters", + "type": "address[]" + }, + { + "indexed": false, + "internalType": "uint8", + "name": "f", + "type": "uint8" + }, + { + "indexed": false, + "internalType": "bytes", + "name": "onchainConfig", + "type": "bytes" + }, + { + "indexed": false, + "internalType": "uint64", + "name": "offchainConfigVersion", + "type": "uint64" + }, + { + "indexed": false, + "internalType": "bytes", + "name": "offchainConfig", + "type": "bytes" + } + ], + "name": "ConfigSet", + "type": "event" + }, + { + "anonymous": false, + "inputs": [ + { + "indexed": true, + "internalType": "uint64", + "name": "sequenceNumber", + "type": "uint64" + }, + { + "indexed": true, + "internalType": "bytes32", + "name": "messageId", + "type": "bytes32" + }, + { + "indexed": false, + "internalType": "enum Internal.MessageExecutionState", + "name": "state", + "type": "uint8" + }, + { + "indexed": false, + "internalType": "bytes", + "name": "returnData", + "type": "bytes" + } + ], + "name": "ExecutionStateChanged", + "type": "event" + }, + { + "anonymous": false, + "inputs": [ + { + "indexed": true, + "internalType": "address", + "name": "from", + "type": "address" + }, + { + "indexed": true, + "internalType": "address", + "name": "to", + "type": "address" + } + ], + "name": "OwnershipTransferRequested", + "type": "event" + }, + { + "anonymous": false, + "inputs": [ + { + "indexed": true, + "internalType": "address", + "name": "from", + "type": "address" + }, + { + "indexed": true, + "internalType": "address", + "name": "to", + "type": "address" + } + ], + "name": "OwnershipTransferred", + "type": "event" + }, + { + "anonymous": false, + "inputs": [ + { + "indexed": false, + "internalType": "address", + "name": "token", + "type": "address" + }, + { + "indexed": false, + "internalType": "address", + "name": "pool", + "type": "address" + } + ], + "name": "PoolAdded", + "type": "event" + }, + { + "anonymous": false, + "inputs": [ + { + "indexed": false, + "internalType": "address", + "name": "token", + "type": "address" + }, + { + "indexed": false, + "internalType": "address", + "name": "pool", + "type": "address" + } + ], + "name": "PoolRemoved", + "type": "event" + }, + { + "anonymous": false, + "inputs": [ + { + "indexed": true, + "internalType": "uint64", + "name": "nonce", + "type": "uint64" + }, + { + "indexed": true, + "internalType": "address", + "name": "sender", + "type": "address" + } + ], + "name": "SkippedIncorrectNonce", + "type": "event" + }, + { + "anonymous": false, + "inputs": [ + { + "indexed": true, + "internalType": "uint64", + "name": "nonce", + "type": "uint64" + }, + { + "indexed": true, + "internalType": "address", + "name": "sender", + "type": "address" + } + ], + "name": "SkippedSenderWithPreviousRampMessageInflight", + "type": "event" + }, + { + "anonymous": false, + "inputs": [ + { + "indexed": false, + "internalType": "bytes32", + "name": "configDigest", + "type": "bytes32" + }, + { + "indexed": false, + "internalType": "uint32", + "name": "epoch", + "type": "uint32" + } + ], + "name": "Transmitted", + "type": "event" + }, + { + "inputs": [], + "name": "acceptOwnership", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [ + { + "components": [ + { + "internalType": "address", + "name": "token", + "type": "address" + }, + { + "internalType": "address", + "name": "pool", + "type": "address" + } + ], + "internalType": "struct Internal.PoolUpdate[]", + "name": "removes", + "type": "tuple[]" + }, + { + "components": [ + { + "internalType": "address", + "name": "token", + "type": "address" + }, + { + "internalType": "address", + "name": "pool", + "type": "address" + } + ], + "internalType": "struct Internal.PoolUpdate[]", + "name": "adds", + "type": "tuple[]" + } + ], + "name": "applyPoolUpdates", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [ + { + "components": [ + { + "internalType": "bytes32", + "name": "messageId", + "type": "bytes32" + }, + { + "internalType": "uint64", + "name": "sourceChainSelector", + "type": "uint64" + }, + { + "internalType": "bytes", + "name": "sender", + "type": "bytes" + }, + { + "internalType": "bytes", + "name": "data", + "type": "bytes" + }, + { + "components": [ + { + "internalType": "address", + "name": "token", + "type": "address" + }, + { + "internalType": "uint256", + "name": "amount", + "type": "uint256" + } + ], + "internalType": "struct Client.EVMTokenAmount[]", + "name": "destTokenAmounts", + "type": "tuple[]" + } + ], + "internalType": "struct Client.Any2EVMMessage", + "name": "", + "type": "tuple" + } + ], + "name": "ccipReceive", + "outputs": [], + "stateMutability": "pure", + "type": "function" + }, + { + "inputs": [], + "name": "currentRateLimiterState", + "outputs": [ + { + "components": [ + { + "internalType": "uint128", + "name": "tokens", + "type": "uint128" + }, + { + "internalType": "uint32", + "name": "lastUpdated", + "type": "uint32" + }, + { + "internalType": "bool", + "name": "isEnabled", + "type": "bool" + }, + { + "internalType": "uint128", + "name": "capacity", + "type": "uint128" + }, + { + "internalType": "uint128", + "name": "rate", + "type": "uint128" + } + ], + "internalType": "struct RateLimiter.TokenBucket", + "name": "", + "type": "tuple" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [ + { + "components": [ + { + "internalType": "uint64", + "name": "sourceChainSelector", + "type": "uint64" + }, + { + "internalType": "address", + "name": "sender", + "type": "address" + }, + { + "internalType": "address", + "name": "receiver", + "type": "address" + }, + { + "internalType": "uint64", + "name": "sequenceNumber", + "type": "uint64" + }, + { + "internalType": "uint256", + "name": "gasLimit", + "type": "uint256" + }, + { + "internalType": "bool", + "name": "strict", + "type": "bool" + }, + { + "internalType": "uint64", + "name": "nonce", + "type": "uint64" + }, + { + "internalType": "address", + "name": "feeToken", + "type": "address" + }, + { + "internalType": "uint256", + "name": "feeTokenAmount", + "type": "uint256" + }, + { + "internalType": "bytes", + "name": "data", + "type": "bytes" + }, + { + "components": [ + { + "internalType": "address", + "name": "token", + "type": "address" + }, + { + "internalType": "uint256", + "name": "amount", + "type": "uint256" + } + ], + "internalType": "struct Client.EVMTokenAmount[]", + "name": "tokenAmounts", + "type": "tuple[]" + }, + { + "internalType": "bytes[]", + "name": "sourceTokenData", + "type": "bytes[]" + }, + { + "internalType": "bytes32", + "name": "messageId", + "type": "bytes32" + } + ], + "internalType": "struct Internal.EVM2EVMMessage", + "name": "message", + "type": "tuple" + }, + { + "internalType": "bytes[]", + "name": "offchainTokenData", + "type": "bytes[]" + } + ], + "name": "executeSingleMessage", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "contract IERC20", + "name": "sourceToken", + "type": "address" + } + ], + "name": "getDestinationToken", + "outputs": [ + { + "internalType": "contract IERC20", + "name": "", + "type": "address" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [], + "name": "getDestinationTokens", + "outputs": [ + { + "internalType": "contract IERC20[]", + "name": "destTokens", + "type": "address[]" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [], + "name": "getDynamicConfig", + "outputs": [ + { + "components": [ + { + "internalType": "uint32", + "name": "permissionLessExecutionThresholdSeconds", + "type": "uint32" + }, + { + "internalType": "address", + "name": "router", + "type": "address" + }, + { + "internalType": "address", + "name": "priceRegistry", + "type": "address" + }, + { + "internalType": "uint16", + "name": "maxNumberOfTokensPerMsg", + "type": "uint16" + }, + { + "internalType": "uint32", + "name": "maxDataBytes", + "type": "uint32" + }, + { + "internalType": "uint32", + "name": "maxPoolReleaseOrMintGas", + "type": "uint32" + } + ], + "internalType": "struct EVM2EVMOffRamp.DynamicConfig", + "name": "", + "type": "tuple" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "uint64", + "name": "sequenceNumber", + "type": "uint64" + } + ], + "name": "getExecutionState", + "outputs": [ + { + "internalType": "enum Internal.MessageExecutionState", + "name": "", + "type": "uint8" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "contract IERC20", + "name": "destToken", + "type": "address" + } + ], + "name": "getPoolByDestToken", + "outputs": [ + { + "internalType": "contract IPool", + "name": "", + "type": "address" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "contract IERC20", + "name": "sourceToken", + "type": "address" + } + ], + "name": "getPoolBySourceToken", + "outputs": [ + { + "internalType": "contract IPool", + "name": "", + "type": "address" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "sender", + "type": "address" + } + ], + "name": "getSenderNonce", + "outputs": [ + { + "internalType": "uint64", + "name": "nonce", + "type": "uint64" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [], + "name": "getStaticConfig", + "outputs": [ + { + "components": [ + { + "internalType": "address", + "name": "commitStore", + "type": "address" + }, + { + "internalType": "uint64", + "name": "chainSelector", + "type": "uint64" + }, + { + "internalType": "uint64", + "name": "sourceChainSelector", + "type": "uint64" + }, + { + "internalType": "address", + "name": "onRamp", + "type": "address" + }, + { + "internalType": "address", + "name": "prevOffRamp", + "type": "address" + }, + { + "internalType": "address", + "name": "armProxy", + "type": "address" + } + ], + "internalType": "struct EVM2EVMOffRamp.StaticConfig", + "name": "", + "type": "tuple" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [], + "name": "getSupportedTokens", + "outputs": [ + { + "internalType": "contract IERC20[]", + "name": "sourceTokens", + "type": "address[]" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [], + "name": "getTokenLimitAdmin", + "outputs": [ + { + "internalType": "address", + "name": "", + "type": "address" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [], + "name": "getTransmitters", + "outputs": [ + { + "internalType": "address[]", + "name": "", + "type": "address[]" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [], + "name": "latestConfigDetails", + "outputs": [ + { + "internalType": "uint32", + "name": "configCount", + "type": "uint32" + }, + { + "internalType": "uint32", + "name": "blockNumber", + "type": "uint32" + }, + { + "internalType": "bytes32", + "name": "configDigest", + "type": "bytes32" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [], + "name": "latestConfigDigestAndEpoch", + "outputs": [ + { + "internalType": "bool", + "name": "scanLogs", + "type": "bool" + }, + { + "internalType": "bytes32", + "name": "configDigest", + "type": "bytes32" + }, + { + "internalType": "uint32", + "name": "epoch", + "type": "uint32" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [ + { + "components": [ + { + "components": [ + { + "internalType": "uint64", + "name": "sourceChainSelector", + "type": "uint64" + }, + { + "internalType": "address", + "name": "sender", + "type": "address" + }, + { + "internalType": "address", + "name": "receiver", + "type": "address" + }, + { + "internalType": "uint64", + "name": "sequenceNumber", + "type": "uint64" + }, + { + "internalType": "uint256", + "name": "gasLimit", + "type": "uint256" + }, + { + "internalType": "bool", + "name": "strict", + "type": "bool" + }, + { + "internalType": "uint64", + "name": "nonce", + "type": "uint64" + }, + { + "internalType": "address", + "name": "feeToken", + "type": "address" + }, + { + "internalType": "uint256", + "name": "feeTokenAmount", + "type": "uint256" + }, + { + "internalType": "bytes", + "name": "data", + "type": "bytes" + }, + { + "components": [ + { + "internalType": "address", + "name": "token", + "type": "address" + }, + { + "internalType": "uint256", + "name": "amount", + "type": "uint256" + } + ], + "internalType": "struct Client.EVMTokenAmount[]", + "name": "tokenAmounts", + "type": "tuple[]" + }, + { + "internalType": "bytes[]", + "name": "sourceTokenData", + "type": "bytes[]" + }, + { + "internalType": "bytes32", + "name": "messageId", + "type": "bytes32" + } + ], + "internalType": "struct Internal.EVM2EVMMessage[]", + "name": "messages", + "type": "tuple[]" + }, + { + "internalType": "bytes[][]", + "name": "offchainTokenData", + "type": "bytes[][]" + }, + { + "internalType": "bytes32[]", + "name": "proofs", + "type": "bytes32[]" + }, + { + "internalType": "uint256", + "name": "proofFlagBits", + "type": "uint256" + } + ], + "internalType": "struct Internal.ExecutionReport", + "name": "report", + "type": "tuple" + }, + { + "internalType": "uint256[]", + "name": "gasLimitOverrides", + "type": "uint256[]" + } + ], + "name": "manuallyExecute", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [], + "name": "owner", + "outputs": [ + { + "internalType": "address", + "name": "", + "type": "address" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "newAdmin", + "type": "address" + } + ], + "name": "setAdmin", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "address[]", + "name": "signers", + "type": "address[]" + }, + { + "internalType": "address[]", + "name": "transmitters", + "type": "address[]" + }, + { + "internalType": "uint8", + "name": "f", + "type": "uint8" + }, + { + "internalType": "bytes", + "name": "onchainConfig", + "type": "bytes" + }, + { + "internalType": "uint64", + "name": "offchainConfigVersion", + "type": "uint64" + }, + { + "internalType": "bytes", + "name": "offchainConfig", + "type": "bytes" + } + ], + "name": "setOCR2Config", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [ + { + "components": [ + { + "internalType": "bool", + "name": "isEnabled", + "type": "bool" + }, + { + "internalType": "uint128", + "name": "capacity", + "type": "uint128" + }, + { + "internalType": "uint128", + "name": "rate", + "type": "uint128" + } + ], + "internalType": "struct RateLimiter.Config", + "name": "config", + "type": "tuple" + } + ], + "name": "setRateLimiterConfig", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "to", + "type": "address" + } + ], + "name": "transferOwnership", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "bytes32[3]", + "name": "reportContext", + "type": "bytes32[3]" + }, + { + "internalType": "bytes", + "name": "report", + "type": "bytes" + }, + { + "internalType": "bytes32[]", + "name": "rs", + "type": "bytes32[]" + }, + { + "internalType": "bytes32[]", + "name": "ss", + "type": "bytes32[]" + }, + { + "internalType": "bytes32", + "name": "", + "type": "bytes32" + } + ], + "name": "transmit", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [], + "name": "typeAndVersion", + "outputs": [ + { + "internalType": "string", + "name": "", + "type": "string" + } + ], + "stateMutability": "view", + "type": "function" + } +] diff --git a/abi/EVM2EVMOnRamp.json b/abi/EVM2EVMOnRamp.json new file mode 100644 index 0000000..34ef120 --- /dev/null +++ b/abi/EVM2EVMOnRamp.json @@ -0,0 +1,1797 @@ +[ + { + "inputs": [ + { + "components": [ + { + "internalType": "address", + "name": "linkToken", + "type": "address" + }, + { + "internalType": "uint64", + "name": "chainSelector", + "type": "uint64" + }, + { + "internalType": "uint64", + "name": "destChainSelector", + "type": "uint64" + }, + { + "internalType": "uint64", + "name": "defaultTxGasLimit", + "type": "uint64" + }, + { + "internalType": "uint96", + "name": "maxNopFeesJuels", + "type": "uint96" + }, + { + "internalType": "address", + "name": "prevOnRamp", + "type": "address" + }, + { + "internalType": "address", + "name": "armProxy", + "type": "address" + } + ], + "internalType": "struct EVM2EVMOnRamp.StaticConfig", + "name": "staticConfig", + "type": "tuple" + }, + { + "components": [ + { + "internalType": "address", + "name": "router", + "type": "address" + }, + { + "internalType": "uint16", + "name": "maxNumberOfTokensPerMsg", + "type": "uint16" + }, + { + "internalType": "uint32", + "name": "destGasOverhead", + "type": "uint32" + }, + { + "internalType": "uint16", + "name": "destGasPerPayloadByte", + "type": "uint16" + }, + { + "internalType": "uint32", + "name": "destDataAvailabilityOverheadGas", + "type": "uint32" + }, + { + "internalType": "uint16", + "name": "destGasPerDataAvailabilityByte", + "type": "uint16" + }, + { + "internalType": "uint16", + "name": "destDataAvailabilityMultiplierBps", + "type": "uint16" + }, + { + "internalType": "address", + "name": "priceRegistry", + "type": "address" + }, + { + "internalType": "uint32", + "name": "maxDataBytes", + "type": "uint32" + }, + { + "internalType": "uint32", + "name": "maxPerMsgGasLimit", + "type": "uint32" + } + ], + "internalType": "struct EVM2EVMOnRamp.DynamicConfig", + "name": "dynamicConfig", + "type": "tuple" + }, + { + "components": [ + { + "internalType": "address", + "name": "token", + "type": "address" + }, + { + "internalType": "address", + "name": "pool", + "type": "address" + } + ], + "internalType": "struct Internal.PoolUpdate[]", + "name": "tokensAndPools", + "type": "tuple[]" + }, + { + "components": [ + { + "internalType": "bool", + "name": "isEnabled", + "type": "bool" + }, + { + "internalType": "uint128", + "name": "capacity", + "type": "uint128" + }, + { + "internalType": "uint128", + "name": "rate", + "type": "uint128" + } + ], + "internalType": "struct RateLimiter.Config", + "name": "rateLimiterConfig", + "type": "tuple" + }, + { + "components": [ + { + "internalType": "address", + "name": "token", + "type": "address" + }, + { + "internalType": "uint32", + "name": "networkFeeUSDCents", + "type": "uint32" + }, + { + "internalType": "uint64", + "name": "gasMultiplierWeiPerEth", + "type": "uint64" + }, + { + "internalType": "uint64", + "name": "premiumMultiplierWeiPerEth", + "type": "uint64" + }, + { + "internalType": "bool", + "name": "enabled", + "type": "bool" + } + ], + "internalType": "struct EVM2EVMOnRamp.FeeTokenConfigArgs[]", + "name": "feeTokenConfigs", + "type": "tuple[]" + }, + { + "components": [ + { + "internalType": "address", + "name": "token", + "type": "address" + }, + { + "internalType": "uint32", + "name": "minFeeUSDCents", + "type": "uint32" + }, + { + "internalType": "uint32", + "name": "maxFeeUSDCents", + "type": "uint32" + }, + { + "internalType": "uint16", + "name": "deciBps", + "type": "uint16" + }, + { + "internalType": "uint32", + "name": "destGasOverhead", + "type": "uint32" + }, + { + "internalType": "uint32", + "name": "destBytesOverhead", + "type": "uint32" + } + ], + "internalType": "struct EVM2EVMOnRamp.TokenTransferFeeConfigArgs[]", + "name": "tokenTransferFeeConfigArgs", + "type": "tuple[]" + }, + { + "components": [ + { + "internalType": "address", + "name": "nop", + "type": "address" + }, + { + "internalType": "uint16", + "name": "weight", + "type": "uint16" + } + ], + "internalType": "struct EVM2EVMOnRamp.NopAndWeight[]", + "name": "nopsAndWeights", + "type": "tuple[]" + } + ], + "stateMutability": "nonpayable", + "type": "constructor" + }, + { + "inputs": [ + { + "internalType": "uint256", + "name": "capacity", + "type": "uint256" + }, + { + "internalType": "uint256", + "name": "requested", + "type": "uint256" + } + ], + "name": "AggregateValueMaxCapacityExceeded", + "type": "error" + }, + { + "inputs": [ + { + "internalType": "uint256", + "name": "minWaitInSeconds", + "type": "uint256" + }, + { + "internalType": "uint256", + "name": "available", + "type": "uint256" + } + ], + "name": "AggregateValueRateLimitReached", + "type": "error" + }, + { + "inputs": [], + "name": "BadARMSignal", + "type": "error" + }, + { + "inputs": [], + "name": "BucketOverfilled", + "type": "error" + }, + { + "inputs": [], + "name": "CannotSendZeroTokens", + "type": "error" + }, + { + "inputs": [], + "name": "InsufficientBalance", + "type": "error" + }, + { + "inputs": [ + { + "internalType": "bytes", + "name": "encodedAddress", + "type": "bytes" + } + ], + "name": "InvalidAddress", + "type": "error" + }, + { + "inputs": [ + { + "internalType": "uint64", + "name": "chainSelector", + "type": "uint64" + } + ], + "name": "InvalidChainSelector", + "type": "error" + }, + { + "inputs": [], + "name": "InvalidConfig", + "type": "error" + }, + { + "inputs": [], + "name": "InvalidExtraArgsTag", + "type": "error" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "nop", + "type": "address" + } + ], + "name": "InvalidNopAddress", + "type": "error" + }, + { + "inputs": [], + "name": "InvalidTokenPoolConfig", + "type": "error" + }, + { + "inputs": [], + "name": "InvalidWithdrawParams", + "type": "error" + }, + { + "inputs": [], + "name": "LinkBalanceNotSettled", + "type": "error" + }, + { + "inputs": [], + "name": "MaxFeeBalanceReached", + "type": "error" + }, + { + "inputs": [], + "name": "MessageGasLimitTooHigh", + "type": "error" + }, + { + "inputs": [ + { + "internalType": "uint256", + "name": "maxSize", + "type": "uint256" + }, + { + "internalType": "uint256", + "name": "actualSize", + "type": "uint256" + } + ], + "name": "MessageTooLarge", + "type": "error" + }, + { + "inputs": [], + "name": "MustBeCalledByRouter", + "type": "error" + }, + { + "inputs": [], + "name": "NoFeesToPay", + "type": "error" + }, + { + "inputs": [], + "name": "NoNopsToPay", + "type": "error" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "token", + "type": "address" + } + ], + "name": "NotAFeeToken", + "type": "error" + }, + { + "inputs": [], + "name": "OnlyCallableByAdminOrOwner", + "type": "error" + }, + { + "inputs": [], + "name": "OnlyCallableByOwnerOrAdmin", + "type": "error" + }, + { + "inputs": [], + "name": "OnlyCallableByOwnerOrAdminOrNop", + "type": "error" + }, + { + "inputs": [], + "name": "PoolAlreadyAdded", + "type": "error" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "token", + "type": "address" + } + ], + "name": "PoolDoesNotExist", + "type": "error" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "token", + "type": "address" + } + ], + "name": "PriceNotFoundForToken", + "type": "error" + }, + { + "inputs": [], + "name": "RouterMustSetOriginalSender", + "type": "error" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "token", + "type": "address" + } + ], + "name": "SourceTokenDataTooLarge", + "type": "error" + }, + { + "inputs": [ + { + "internalType": "uint256", + "name": "capacity", + "type": "uint256" + }, + { + "internalType": "uint256", + "name": "requested", + "type": "uint256" + }, + { + "internalType": "address", + "name": "tokenAddress", + "type": "address" + } + ], + "name": "TokenMaxCapacityExceeded", + "type": "error" + }, + { + "inputs": [], + "name": "TokenPoolMismatch", + "type": "error" + }, + { + "inputs": [ + { + "internalType": "uint256", + "name": "minWaitInSeconds", + "type": "uint256" + }, + { + "internalType": "uint256", + "name": "available", + "type": "uint256" + }, + { + "internalType": "address", + "name": "tokenAddress", + "type": "address" + } + ], + "name": "TokenRateLimitReached", + "type": "error" + }, + { + "inputs": [], + "name": "TooManyNops", + "type": "error" + }, + { + "inputs": [], + "name": "UnsupportedNumberOfTokens", + "type": "error" + }, + { + "inputs": [ + { + "internalType": "contract IERC20", + "name": "token", + "type": "address" + } + ], + "name": "UnsupportedToken", + "type": "error" + }, + { + "anonymous": false, + "inputs": [ + { + "indexed": false, + "internalType": "address", + "name": "newAdmin", + "type": "address" + } + ], + "name": "AdminSet", + "type": "event" + }, + { + "anonymous": false, + "inputs": [ + { + "components": [ + { + "internalType": "uint64", + "name": "sourceChainSelector", + "type": "uint64" + }, + { + "internalType": "address", + "name": "sender", + "type": "address" + }, + { + "internalType": "address", + "name": "receiver", + "type": "address" + }, + { + "internalType": "uint64", + "name": "sequenceNumber", + "type": "uint64" + }, + { + "internalType": "uint256", + "name": "gasLimit", + "type": "uint256" + }, + { + "internalType": "bool", + "name": "strict", + "type": "bool" + }, + { + "internalType": "uint64", + "name": "nonce", + "type": "uint64" + }, + { + "internalType": "address", + "name": "feeToken", + "type": "address" + }, + { + "internalType": "uint256", + "name": "feeTokenAmount", + "type": "uint256" + }, + { + "internalType": "bytes", + "name": "data", + "type": "bytes" + }, + { + "components": [ + { + "internalType": "address", + "name": "token", + "type": "address" + }, + { + "internalType": "uint256", + "name": "amount", + "type": "uint256" + } + ], + "internalType": "struct Client.EVMTokenAmount[]", + "name": "tokenAmounts", + "type": "tuple[]" + }, + { + "internalType": "bytes[]", + "name": "sourceTokenData", + "type": "bytes[]" + }, + { + "internalType": "bytes32", + "name": "messageId", + "type": "bytes32" + } + ], + "indexed": false, + "internalType": "struct Internal.EVM2EVMMessage", + "name": "message", + "type": "tuple" + } + ], + "name": "CCIPSendRequested", + "type": "event" + }, + { + "anonymous": false, + "inputs": [ + { + "components": [ + { + "internalType": "address", + "name": "linkToken", + "type": "address" + }, + { + "internalType": "uint64", + "name": "chainSelector", + "type": "uint64" + }, + { + "internalType": "uint64", + "name": "destChainSelector", + "type": "uint64" + }, + { + "internalType": "uint64", + "name": "defaultTxGasLimit", + "type": "uint64" + }, + { + "internalType": "uint96", + "name": "maxNopFeesJuels", + "type": "uint96" + }, + { + "internalType": "address", + "name": "prevOnRamp", + "type": "address" + }, + { + "internalType": "address", + "name": "armProxy", + "type": "address" + } + ], + "indexed": false, + "internalType": "struct EVM2EVMOnRamp.StaticConfig", + "name": "staticConfig", + "type": "tuple" + }, + { + "components": [ + { + "internalType": "address", + "name": "router", + "type": "address" + }, + { + "internalType": "uint16", + "name": "maxNumberOfTokensPerMsg", + "type": "uint16" + }, + { + "internalType": "uint32", + "name": "destGasOverhead", + "type": "uint32" + }, + { + "internalType": "uint16", + "name": "destGasPerPayloadByte", + "type": "uint16" + }, + { + "internalType": "uint32", + "name": "destDataAvailabilityOverheadGas", + "type": "uint32" + }, + { + "internalType": "uint16", + "name": "destGasPerDataAvailabilityByte", + "type": "uint16" + }, + { + "internalType": "uint16", + "name": "destDataAvailabilityMultiplierBps", + "type": "uint16" + }, + { + "internalType": "address", + "name": "priceRegistry", + "type": "address" + }, + { + "internalType": "uint32", + "name": "maxDataBytes", + "type": "uint32" + }, + { + "internalType": "uint32", + "name": "maxPerMsgGasLimit", + "type": "uint32" + } + ], + "indexed": false, + "internalType": "struct EVM2EVMOnRamp.DynamicConfig", + "name": "dynamicConfig", + "type": "tuple" + } + ], + "name": "ConfigSet", + "type": "event" + }, + { + "anonymous": false, + "inputs": [ + { + "components": [ + { + "internalType": "address", + "name": "token", + "type": "address" + }, + { + "internalType": "uint32", + "name": "networkFeeUSDCents", + "type": "uint32" + }, + { + "internalType": "uint64", + "name": "gasMultiplierWeiPerEth", + "type": "uint64" + }, + { + "internalType": "uint64", + "name": "premiumMultiplierWeiPerEth", + "type": "uint64" + }, + { + "internalType": "bool", + "name": "enabled", + "type": "bool" + } + ], + "indexed": false, + "internalType": "struct EVM2EVMOnRamp.FeeTokenConfigArgs[]", + "name": "feeConfig", + "type": "tuple[]" + } + ], + "name": "FeeConfigSet", + "type": "event" + }, + { + "anonymous": false, + "inputs": [ + { + "indexed": true, + "internalType": "address", + "name": "nop", + "type": "address" + }, + { + "indexed": false, + "internalType": "uint256", + "name": "amount", + "type": "uint256" + } + ], + "name": "NopPaid", + "type": "event" + }, + { + "anonymous": false, + "inputs": [ + { + "indexed": false, + "internalType": "uint256", + "name": "nopWeightsTotal", + "type": "uint256" + }, + { + "components": [ + { + "internalType": "address", + "name": "nop", + "type": "address" + }, + { + "internalType": "uint16", + "name": "weight", + "type": "uint16" + } + ], + "indexed": false, + "internalType": "struct EVM2EVMOnRamp.NopAndWeight[]", + "name": "nopsAndWeights", + "type": "tuple[]" + } + ], + "name": "NopsSet", + "type": "event" + }, + { + "anonymous": false, + "inputs": [ + { + "indexed": true, + "internalType": "address", + "name": "from", + "type": "address" + }, + { + "indexed": true, + "internalType": "address", + "name": "to", + "type": "address" + } + ], + "name": "OwnershipTransferRequested", + "type": "event" + }, + { + "anonymous": false, + "inputs": [ + { + "indexed": true, + "internalType": "address", + "name": "from", + "type": "address" + }, + { + "indexed": true, + "internalType": "address", + "name": "to", + "type": "address" + } + ], + "name": "OwnershipTransferred", + "type": "event" + }, + { + "anonymous": false, + "inputs": [ + { + "indexed": false, + "internalType": "address", + "name": "token", + "type": "address" + }, + { + "indexed": false, + "internalType": "address", + "name": "pool", + "type": "address" + } + ], + "name": "PoolAdded", + "type": "event" + }, + { + "anonymous": false, + "inputs": [ + { + "indexed": false, + "internalType": "address", + "name": "token", + "type": "address" + }, + { + "indexed": false, + "internalType": "address", + "name": "pool", + "type": "address" + } + ], + "name": "PoolRemoved", + "type": "event" + }, + { + "anonymous": false, + "inputs": [ + { + "components": [ + { + "internalType": "address", + "name": "token", + "type": "address" + }, + { + "internalType": "uint32", + "name": "minFeeUSDCents", + "type": "uint32" + }, + { + "internalType": "uint32", + "name": "maxFeeUSDCents", + "type": "uint32" + }, + { + "internalType": "uint16", + "name": "deciBps", + "type": "uint16" + }, + { + "internalType": "uint32", + "name": "destGasOverhead", + "type": "uint32" + }, + { + "internalType": "uint32", + "name": "destBytesOverhead", + "type": "uint32" + } + ], + "indexed": false, + "internalType": "struct EVM2EVMOnRamp.TokenTransferFeeConfigArgs[]", + "name": "transferFeeConfig", + "type": "tuple[]" + } + ], + "name": "TokenTransferFeeConfigSet", + "type": "event" + }, + { + "inputs": [], + "name": "acceptOwnership", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [ + { + "components": [ + { + "internalType": "address", + "name": "token", + "type": "address" + }, + { + "internalType": "address", + "name": "pool", + "type": "address" + } + ], + "internalType": "struct Internal.PoolUpdate[]", + "name": "removes", + "type": "tuple[]" + }, + { + "components": [ + { + "internalType": "address", + "name": "token", + "type": "address" + }, + { + "internalType": "address", + "name": "pool", + "type": "address" + } + ], + "internalType": "struct Internal.PoolUpdate[]", + "name": "adds", + "type": "tuple[]" + } + ], + "name": "applyPoolUpdates", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [], + "name": "currentRateLimiterState", + "outputs": [ + { + "components": [ + { + "internalType": "uint128", + "name": "tokens", + "type": "uint128" + }, + { + "internalType": "uint32", + "name": "lastUpdated", + "type": "uint32" + }, + { + "internalType": "bool", + "name": "isEnabled", + "type": "bool" + }, + { + "internalType": "uint128", + "name": "capacity", + "type": "uint128" + }, + { + "internalType": "uint128", + "name": "rate", + "type": "uint128" + } + ], + "internalType": "struct RateLimiter.TokenBucket", + "name": "", + "type": "tuple" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "uint64", + "name": "destChainSelector", + "type": "uint64" + }, + { + "components": [ + { + "internalType": "bytes", + "name": "receiver", + "type": "bytes" + }, + { + "internalType": "bytes", + "name": "data", + "type": "bytes" + }, + { + "components": [ + { + "internalType": "address", + "name": "token", + "type": "address" + }, + { + "internalType": "uint256", + "name": "amount", + "type": "uint256" + } + ], + "internalType": "struct Client.EVMTokenAmount[]", + "name": "tokenAmounts", + "type": "tuple[]" + }, + { + "internalType": "address", + "name": "feeToken", + "type": "address" + }, + { + "internalType": "bytes", + "name": "extraArgs", + "type": "bytes" + } + ], + "internalType": "struct Client.EVM2AnyMessage", + "name": "message", + "type": "tuple" + }, + { + "internalType": "uint256", + "name": "feeTokenAmount", + "type": "uint256" + }, + { + "internalType": "address", + "name": "originalSender", + "type": "address" + } + ], + "name": "forwardFromRouter", + "outputs": [ + { + "internalType": "bytes32", + "name": "", + "type": "bytes32" + } + ], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [], + "name": "getDynamicConfig", + "outputs": [ + { + "components": [ + { + "internalType": "address", + "name": "router", + "type": "address" + }, + { + "internalType": "uint16", + "name": "maxNumberOfTokensPerMsg", + "type": "uint16" + }, + { + "internalType": "uint32", + "name": "destGasOverhead", + "type": "uint32" + }, + { + "internalType": "uint16", + "name": "destGasPerPayloadByte", + "type": "uint16" + }, + { + "internalType": "uint32", + "name": "destDataAvailabilityOverheadGas", + "type": "uint32" + }, + { + "internalType": "uint16", + "name": "destGasPerDataAvailabilityByte", + "type": "uint16" + }, + { + "internalType": "uint16", + "name": "destDataAvailabilityMultiplierBps", + "type": "uint16" + }, + { + "internalType": "address", + "name": "priceRegistry", + "type": "address" + }, + { + "internalType": "uint32", + "name": "maxDataBytes", + "type": "uint32" + }, + { + "internalType": "uint32", + "name": "maxPerMsgGasLimit", + "type": "uint32" + } + ], + "internalType": "struct EVM2EVMOnRamp.DynamicConfig", + "name": "dynamicConfig", + "type": "tuple" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [], + "name": "getExpectedNextSequenceNumber", + "outputs": [ + { + "internalType": "uint64", + "name": "", + "type": "uint64" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "uint64", + "name": "destChainSelector", + "type": "uint64" + }, + { + "components": [ + { + "internalType": "bytes", + "name": "receiver", + "type": "bytes" + }, + { + "internalType": "bytes", + "name": "data", + "type": "bytes" + }, + { + "components": [ + { + "internalType": "address", + "name": "token", + "type": "address" + }, + { + "internalType": "uint256", + "name": "amount", + "type": "uint256" + } + ], + "internalType": "struct Client.EVMTokenAmount[]", + "name": "tokenAmounts", + "type": "tuple[]" + }, + { + "internalType": "address", + "name": "feeToken", + "type": "address" + }, + { + "internalType": "bytes", + "name": "extraArgs", + "type": "bytes" + } + ], + "internalType": "struct Client.EVM2AnyMessage", + "name": "message", + "type": "tuple" + } + ], + "name": "getFee", + "outputs": [ + { + "internalType": "uint256", + "name": "feeTokenAmount", + "type": "uint256" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "token", + "type": "address" + } + ], + "name": "getFeeTokenConfig", + "outputs": [ + { + "components": [ + { + "internalType": "uint32", + "name": "networkFeeUSDCents", + "type": "uint32" + }, + { + "internalType": "uint64", + "name": "gasMultiplierWeiPerEth", + "type": "uint64" + }, + { + "internalType": "uint64", + "name": "premiumMultiplierWeiPerEth", + "type": "uint64" + }, + { + "internalType": "bool", + "name": "enabled", + "type": "bool" + } + ], + "internalType": "struct EVM2EVMOnRamp.FeeTokenConfig", + "name": "feeTokenConfig", + "type": "tuple" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [], + "name": "getNopFeesJuels", + "outputs": [ + { + "internalType": "uint96", + "name": "", + "type": "uint96" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [], + "name": "getNops", + "outputs": [ + { + "components": [ + { + "internalType": "address", + "name": "nop", + "type": "address" + }, + { + "internalType": "uint16", + "name": "weight", + "type": "uint16" + } + ], + "internalType": "struct EVM2EVMOnRamp.NopAndWeight[]", + "name": "nopsAndWeights", + "type": "tuple[]" + }, + { + "internalType": "uint256", + "name": "weightsTotal", + "type": "uint256" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "uint64", + "name": "", + "type": "uint64" + }, + { + "internalType": "contract IERC20", + "name": "sourceToken", + "type": "address" + } + ], + "name": "getPoolBySourceToken", + "outputs": [ + { + "internalType": "contract IPool", + "name": "", + "type": "address" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "sender", + "type": "address" + } + ], + "name": "getSenderNonce", + "outputs": [ + { + "internalType": "uint64", + "name": "", + "type": "uint64" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [], + "name": "getStaticConfig", + "outputs": [ + { + "components": [ + { + "internalType": "address", + "name": "linkToken", + "type": "address" + }, + { + "internalType": "uint64", + "name": "chainSelector", + "type": "uint64" + }, + { + "internalType": "uint64", + "name": "destChainSelector", + "type": "uint64" + }, + { + "internalType": "uint64", + "name": "defaultTxGasLimit", + "type": "uint64" + }, + { + "internalType": "uint96", + "name": "maxNopFeesJuels", + "type": "uint96" + }, + { + "internalType": "address", + "name": "prevOnRamp", + "type": "address" + }, + { + "internalType": "address", + "name": "armProxy", + "type": "address" + } + ], + "internalType": "struct EVM2EVMOnRamp.StaticConfig", + "name": "", + "type": "tuple" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "uint64", + "name": "", + "type": "uint64" + } + ], + "name": "getSupportedTokens", + "outputs": [ + { + "internalType": "address[]", + "name": "", + "type": "address[]" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [], + "name": "getTokenLimitAdmin", + "outputs": [ + { + "internalType": "address", + "name": "", + "type": "address" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "token", + "type": "address" + } + ], + "name": "getTokenTransferFeeConfig", + "outputs": [ + { + "components": [ + { + "internalType": "uint32", + "name": "minFeeUSDCents", + "type": "uint32" + }, + { + "internalType": "uint32", + "name": "maxFeeUSDCents", + "type": "uint32" + }, + { + "internalType": "uint16", + "name": "deciBps", + "type": "uint16" + }, + { + "internalType": "uint32", + "name": "destGasOverhead", + "type": "uint32" + }, + { + "internalType": "uint32", + "name": "destBytesOverhead", + "type": "uint32" + } + ], + "internalType": "struct EVM2EVMOnRamp.TokenTransferFeeConfig", + "name": "tokenTransferFeeConfig", + "type": "tuple" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [], + "name": "linkAvailableForPayment", + "outputs": [ + { + "internalType": "int256", + "name": "", + "type": "int256" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [], + "name": "owner", + "outputs": [ + { + "internalType": "address", + "name": "", + "type": "address" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [], + "name": "payNops", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "newAdmin", + "type": "address" + } + ], + "name": "setAdmin", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [ + { + "components": [ + { + "internalType": "address", + "name": "router", + "type": "address" + }, + { + "internalType": "uint16", + "name": "maxNumberOfTokensPerMsg", + "type": "uint16" + }, + { + "internalType": "uint32", + "name": "destGasOverhead", + "type": "uint32" + }, + { + "internalType": "uint16", + "name": "destGasPerPayloadByte", + "type": "uint16" + }, + { + "internalType": "uint32", + "name": "destDataAvailabilityOverheadGas", + "type": "uint32" + }, + { + "internalType": "uint16", + "name": "destGasPerDataAvailabilityByte", + "type": "uint16" + }, + { + "internalType": "uint16", + "name": "destDataAvailabilityMultiplierBps", + "type": "uint16" + }, + { + "internalType": "address", + "name": "priceRegistry", + "type": "address" + }, + { + "internalType": "uint32", + "name": "maxDataBytes", + "type": "uint32" + }, + { + "internalType": "uint32", + "name": "maxPerMsgGasLimit", + "type": "uint32" + } + ], + "internalType": "struct EVM2EVMOnRamp.DynamicConfig", + "name": "dynamicConfig", + "type": "tuple" + } + ], + "name": "setDynamicConfig", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [ + { + "components": [ + { + "internalType": "address", + "name": "token", + "type": "address" + }, + { + "internalType": "uint32", + "name": "networkFeeUSDCents", + "type": "uint32" + }, + { + "internalType": "uint64", + "name": "gasMultiplierWeiPerEth", + "type": "uint64" + }, + { + "internalType": "uint64", + "name": "premiumMultiplierWeiPerEth", + "type": "uint64" + }, + { + "internalType": "bool", + "name": "enabled", + "type": "bool" + } + ], + "internalType": "struct EVM2EVMOnRamp.FeeTokenConfigArgs[]", + "name": "feeTokenConfigArgs", + "type": "tuple[]" + } + ], + "name": "setFeeTokenConfig", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [ + { + "components": [ + { + "internalType": "address", + "name": "nop", + "type": "address" + }, + { + "internalType": "uint16", + "name": "weight", + "type": "uint16" + } + ], + "internalType": "struct EVM2EVMOnRamp.NopAndWeight[]", + "name": "nopsAndWeights", + "type": "tuple[]" + } + ], + "name": "setNops", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [ + { + "components": [ + { + "internalType": "bool", + "name": "isEnabled", + "type": "bool" + }, + { + "internalType": "uint128", + "name": "capacity", + "type": "uint128" + }, + { + "internalType": "uint128", + "name": "rate", + "type": "uint128" + } + ], + "internalType": "struct RateLimiter.Config", + "name": "config", + "type": "tuple" + } + ], + "name": "setRateLimiterConfig", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [ + { + "components": [ + { + "internalType": "address", + "name": "token", + "type": "address" + }, + { + "internalType": "uint32", + "name": "minFeeUSDCents", + "type": "uint32" + }, + { + "internalType": "uint32", + "name": "maxFeeUSDCents", + "type": "uint32" + }, + { + "internalType": "uint16", + "name": "deciBps", + "type": "uint16" + }, + { + "internalType": "uint32", + "name": "destGasOverhead", + "type": "uint32" + }, + { + "internalType": "uint32", + "name": "destBytesOverhead", + "type": "uint32" + } + ], + "internalType": "struct EVM2EVMOnRamp.TokenTransferFeeConfigArgs[]", + "name": "tokenTransferFeeConfigArgs", + "type": "tuple[]" + } + ], + "name": "setTokenTransferFeeConfig", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "to", + "type": "address" + } + ], + "name": "transferOwnership", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [], + "name": "typeAndVersion", + "outputs": [ + { + "internalType": "string", + "name": "", + "type": "string" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "feeToken", + "type": "address" + }, + { + "internalType": "address", + "name": "to", + "type": "address" + } + ], + "name": "withdrawNonLinkFees", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + } +] diff --git a/abi/LinkToken.json b/abi/LinkToken.json new file mode 100644 index 0000000..1abff80 --- /dev/null +++ b/abi/LinkToken.json @@ -0,0 +1,763 @@ +[ + { + "inputs": [], + "stateMutability": "nonpayable", + "type": "constructor" + }, + { + "inputs": [ + { + "internalType": "uint256", + "name": "supplyAfterMint", + "type": "uint256" + } + ], + "name": "MaxSupplyExceeded", + "type": "error" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "sender", + "type": "address" + } + ], + "name": "SenderNotBurner", + "type": "error" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "sender", + "type": "address" + } + ], + "name": "SenderNotMinter", + "type": "error" + }, + { + "anonymous": false, + "inputs": [ + { + "indexed": true, + "internalType": "address", + "name": "owner", + "type": "address" + }, + { + "indexed": true, + "internalType": "address", + "name": "spender", + "type": "address" + }, + { + "indexed": false, + "internalType": "uint256", + "name": "value", + "type": "uint256" + } + ], + "name": "Approval", + "type": "event" + }, + { + "anonymous": false, + "inputs": [ + { + "indexed": true, + "internalType": "address", + "name": "burner", + "type": "address" + } + ], + "name": "BurnAccessGranted", + "type": "event" + }, + { + "anonymous": false, + "inputs": [ + { + "indexed": true, + "internalType": "address", + "name": "burner", + "type": "address" + } + ], + "name": "BurnAccessRevoked", + "type": "event" + }, + { + "anonymous": false, + "inputs": [ + { + "indexed": true, + "internalType": "address", + "name": "minter", + "type": "address" + } + ], + "name": "MintAccessGranted", + "type": "event" + }, + { + "anonymous": false, + "inputs": [ + { + "indexed": true, + "internalType": "address", + "name": "minter", + "type": "address" + } + ], + "name": "MintAccessRevoked", + "type": "event" + }, + { + "anonymous": false, + "inputs": [ + { + "indexed": true, + "internalType": "address", + "name": "from", + "type": "address" + }, + { + "indexed": true, + "internalType": "address", + "name": "to", + "type": "address" + } + ], + "name": "OwnershipTransferRequested", + "type": "event" + }, + { + "anonymous": false, + "inputs": [ + { + "indexed": true, + "internalType": "address", + "name": "from", + "type": "address" + }, + { + "indexed": true, + "internalType": "address", + "name": "to", + "type": "address" + } + ], + "name": "OwnershipTransferred", + "type": "event" + }, + { + "anonymous": false, + "inputs": [ + { + "indexed": true, + "internalType": "address", + "name": "from", + "type": "address" + }, + { + "indexed": true, + "internalType": "address", + "name": "to", + "type": "address" + }, + { + "indexed": false, + "internalType": "uint256", + "name": "value", + "type": "uint256" + } + ], + "name": "Transfer", + "type": "event" + }, + { + "anonymous": false, + "inputs": [ + { + "indexed": true, + "internalType": "address", + "name": "from", + "type": "address" + }, + { + "indexed": true, + "internalType": "address", + "name": "to", + "type": "address" + }, + { + "indexed": false, + "internalType": "uint256", + "name": "value", + "type": "uint256" + }, + { + "indexed": false, + "internalType": "bytes", + "name": "data", + "type": "bytes" + } + ], + "name": "Transfer", + "type": "event" + }, + { + "inputs": [], + "name": "acceptOwnership", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "owner", + "type": "address" + }, + { + "internalType": "address", + "name": "spender", + "type": "address" + } + ], + "name": "allowance", + "outputs": [ + { + "internalType": "uint256", + "name": "", + "type": "uint256" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "spender", + "type": "address" + }, + { + "internalType": "uint256", + "name": "amount", + "type": "uint256" + } + ], + "name": "approve", + "outputs": [ + { + "internalType": "bool", + "name": "", + "type": "bool" + } + ], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "account", + "type": "address" + } + ], + "name": "balanceOf", + "outputs": [ + { + "internalType": "uint256", + "name": "", + "type": "uint256" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "uint256", + "name": "amount", + "type": "uint256" + } + ], + "name": "burn", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "account", + "type": "address" + }, + { + "internalType": "uint256", + "name": "amount", + "type": "uint256" + } + ], + "name": "burn", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "account", + "type": "address" + }, + { + "internalType": "uint256", + "name": "amount", + "type": "uint256" + } + ], + "name": "burnFrom", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [], + "name": "decimals", + "outputs": [ + { + "internalType": "uint8", + "name": "", + "type": "uint8" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "spender", + "type": "address" + }, + { + "internalType": "uint256", + "name": "subtractedValue", + "type": "uint256" + } + ], + "name": "decreaseAllowance", + "outputs": [ + { + "internalType": "bool", + "name": "", + "type": "bool" + } + ], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "spender", + "type": "address" + }, + { + "internalType": "uint256", + "name": "subtractedValue", + "type": "uint256" + } + ], + "name": "decreaseApproval", + "outputs": [ + { + "internalType": "bool", + "name": "success", + "type": "bool" + } + ], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [], + "name": "getBurners", + "outputs": [ + { + "internalType": "address[]", + "name": "", + "type": "address[]" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [], + "name": "getMinters", + "outputs": [ + { + "internalType": "address[]", + "name": "", + "type": "address[]" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "burner", + "type": "address" + } + ], + "name": "grantBurnRole", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "burnAndMinter", + "type": "address" + } + ], + "name": "grantMintAndBurnRoles", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "minter", + "type": "address" + } + ], + "name": "grantMintRole", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "spender", + "type": "address" + }, + { + "internalType": "uint256", + "name": "addedValue", + "type": "uint256" + } + ], + "name": "increaseAllowance", + "outputs": [ + { + "internalType": "bool", + "name": "", + "type": "bool" + } + ], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "spender", + "type": "address" + }, + { + "internalType": "uint256", + "name": "addedValue", + "type": "uint256" + } + ], + "name": "increaseApproval", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "burner", + "type": "address" + } + ], + "name": "isBurner", + "outputs": [ + { + "internalType": "bool", + "name": "", + "type": "bool" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "minter", + "type": "address" + } + ], + "name": "isMinter", + "outputs": [ + { + "internalType": "bool", + "name": "", + "type": "bool" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [], + "name": "maxSupply", + "outputs": [ + { + "internalType": "uint256", + "name": "", + "type": "uint256" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "account", + "type": "address" + }, + { + "internalType": "uint256", + "name": "amount", + "type": "uint256" + } + ], + "name": "mint", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [], + "name": "name", + "outputs": [ + { + "internalType": "string", + "name": "", + "type": "string" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [], + "name": "owner", + "outputs": [ + { + "internalType": "address", + "name": "", + "type": "address" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "burner", + "type": "address" + } + ], + "name": "revokeBurnRole", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "minter", + "type": "address" + } + ], + "name": "revokeMintRole", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "bytes4", + "name": "interfaceId", + "type": "bytes4" + } + ], + "name": "supportsInterface", + "outputs": [ + { + "internalType": "bool", + "name": "", + "type": "bool" + } + ], + "stateMutability": "pure", + "type": "function" + }, + { + "inputs": [], + "name": "symbol", + "outputs": [ + { + "internalType": "string", + "name": "", + "type": "string" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [], + "name": "totalSupply", + "outputs": [ + { + "internalType": "uint256", + "name": "", + "type": "uint256" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "to", + "type": "address" + }, + { + "internalType": "uint256", + "name": "amount", + "type": "uint256" + } + ], + "name": "transfer", + "outputs": [ + { + "internalType": "bool", + "name": "", + "type": "bool" + } + ], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "to", + "type": "address" + }, + { + "internalType": "uint256", + "name": "amount", + "type": "uint256" + }, + { + "internalType": "bytes", + "name": "data", + "type": "bytes" + } + ], + "name": "transferAndCall", + "outputs": [ + { + "internalType": "bool", + "name": "success", + "type": "bool" + } + ], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "from", + "type": "address" + }, + { + "internalType": "address", + "name": "to", + "type": "address" + }, + { + "internalType": "uint256", + "name": "amount", + "type": "uint256" + } + ], + "name": "transferFrom", + "outputs": [ + { + "internalType": "bool", + "name": "", + "type": "bool" + } + ], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "to", + "type": "address" + } + ], + "name": "transferOwnership", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + } +] diff --git a/abi/Router.json b/abi/Router.json new file mode 100644 index 0000000..fc16bfe --- /dev/null +++ b/abi/Router.json @@ -0,0 +1,702 @@ +[ + { + "inputs": [ + { + "internalType": "address", + "name": "wrappedNative", + "type": "address" + }, + { + "internalType": "address", + "name": "armProxy", + "type": "address" + } + ], + "stateMutability": "nonpayable", + "type": "constructor" + }, + { + "inputs": [], + "name": "BadARMSignal", + "type": "error" + }, + { + "inputs": [], + "name": "FailedToSendValue", + "type": "error" + }, + { + "inputs": [], + "name": "InsufficientFeeTokenAmount", + "type": "error" + }, + { + "inputs": [], + "name": "InvalidMsgValue", + "type": "error" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "to", + "type": "address" + } + ], + "name": "InvalidRecipientAddress", + "type": "error" + }, + { + "inputs": [ + { + "internalType": "uint64", + "name": "chainSelector", + "type": "uint64" + }, + { + "internalType": "address", + "name": "offRamp", + "type": "address" + } + ], + "name": "OffRampMismatch", + "type": "error" + }, + { + "inputs": [], + "name": "OnlyOffRamp", + "type": "error" + }, + { + "inputs": [ + { + "internalType": "uint64", + "name": "destChainSelector", + "type": "uint64" + } + ], + "name": "UnsupportedDestinationChain", + "type": "error" + }, + { + "anonymous": false, + "inputs": [ + { + "indexed": false, + "internalType": "bytes32", + "name": "messageId", + "type": "bytes32" + }, + { + "indexed": false, + "internalType": "uint64", + "name": "sourceChainSelector", + "type": "uint64" + }, + { + "indexed": false, + "internalType": "address", + "name": "offRamp", + "type": "address" + }, + { + "indexed": false, + "internalType": "bytes32", + "name": "calldataHash", + "type": "bytes32" + } + ], + "name": "MessageExecuted", + "type": "event" + }, + { + "anonymous": false, + "inputs": [ + { + "indexed": true, + "internalType": "uint64", + "name": "sourceChainSelector", + "type": "uint64" + }, + { + "indexed": false, + "internalType": "address", + "name": "offRamp", + "type": "address" + } + ], + "name": "OffRampAdded", + "type": "event" + }, + { + "anonymous": false, + "inputs": [ + { + "indexed": true, + "internalType": "uint64", + "name": "sourceChainSelector", + "type": "uint64" + }, + { + "indexed": false, + "internalType": "address", + "name": "offRamp", + "type": "address" + } + ], + "name": "OffRampRemoved", + "type": "event" + }, + { + "anonymous": false, + "inputs": [ + { + "indexed": true, + "internalType": "uint64", + "name": "destChainSelector", + "type": "uint64" + }, + { + "indexed": false, + "internalType": "address", + "name": "onRamp", + "type": "address" + } + ], + "name": "OnRampSet", + "type": "event" + }, + { + "anonymous": false, + "inputs": [ + { + "indexed": true, + "internalType": "address", + "name": "from", + "type": "address" + }, + { + "indexed": true, + "internalType": "address", + "name": "to", + "type": "address" + } + ], + "name": "OwnershipTransferRequested", + "type": "event" + }, + { + "anonymous": false, + "inputs": [ + { + "indexed": true, + "internalType": "address", + "name": "from", + "type": "address" + }, + { + "indexed": true, + "internalType": "address", + "name": "to", + "type": "address" + } + ], + "name": "OwnershipTransferred", + "type": "event" + }, + { + "inputs": [], + "name": "MAX_RET_BYTES", + "outputs": [ + { + "internalType": "uint16", + "name": "", + "type": "uint16" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [], + "name": "acceptOwnership", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [ + { + "components": [ + { + "internalType": "uint64", + "name": "destChainSelector", + "type": "uint64" + }, + { + "internalType": "address", + "name": "onRamp", + "type": "address" + } + ], + "internalType": "struct Router.OnRamp[]", + "name": "onRampUpdates", + "type": "tuple[]" + }, + { + "components": [ + { + "internalType": "uint64", + "name": "sourceChainSelector", + "type": "uint64" + }, + { + "internalType": "address", + "name": "offRamp", + "type": "address" + } + ], + "internalType": "struct Router.OffRamp[]", + "name": "offRampRemoves", + "type": "tuple[]" + }, + { + "components": [ + { + "internalType": "uint64", + "name": "sourceChainSelector", + "type": "uint64" + }, + { + "internalType": "address", + "name": "offRamp", + "type": "address" + } + ], + "internalType": "struct Router.OffRamp[]", + "name": "offRampAdds", + "type": "tuple[]" + } + ], + "name": "applyRampUpdates", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "uint64", + "name": "destinationChainSelector", + "type": "uint64" + }, + { + "components": [ + { + "internalType": "bytes", + "name": "receiver", + "type": "bytes" + }, + { + "internalType": "bytes", + "name": "data", + "type": "bytes" + }, + { + "components": [ + { + "internalType": "address", + "name": "token", + "type": "address" + }, + { + "internalType": "uint256", + "name": "amount", + "type": "uint256" + } + ], + "internalType": "struct Client.EVMTokenAmount[]", + "name": "tokenAmounts", + "type": "tuple[]" + }, + { + "internalType": "address", + "name": "feeToken", + "type": "address" + }, + { + "internalType": "bytes", + "name": "extraArgs", + "type": "bytes" + } + ], + "internalType": "struct Client.EVM2AnyMessage", + "name": "message", + "type": "tuple" + } + ], + "name": "ccipSend", + "outputs": [ + { + "internalType": "bytes32", + "name": "", + "type": "bytes32" + } + ], + "stateMutability": "payable", + "type": "function" + }, + { + "inputs": [], + "name": "getArmProxy", + "outputs": [ + { + "internalType": "address", + "name": "", + "type": "address" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "uint64", + "name": "destinationChainSelector", + "type": "uint64" + }, + { + "components": [ + { + "internalType": "bytes", + "name": "receiver", + "type": "bytes" + }, + { + "internalType": "bytes", + "name": "data", + "type": "bytes" + }, + { + "components": [ + { + "internalType": "address", + "name": "token", + "type": "address" + }, + { + "internalType": "uint256", + "name": "amount", + "type": "uint256" + } + ], + "internalType": "struct Client.EVMTokenAmount[]", + "name": "tokenAmounts", + "type": "tuple[]" + }, + { + "internalType": "address", + "name": "feeToken", + "type": "address" + }, + { + "internalType": "bytes", + "name": "extraArgs", + "type": "bytes" + } + ], + "internalType": "struct Client.EVM2AnyMessage", + "name": "message", + "type": "tuple" + } + ], + "name": "getFee", + "outputs": [ + { + "internalType": "uint256", + "name": "fee", + "type": "uint256" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [], + "name": "getOffRamps", + "outputs": [ + { + "components": [ + { + "internalType": "uint64", + "name": "sourceChainSelector", + "type": "uint64" + }, + { + "internalType": "address", + "name": "offRamp", + "type": "address" + } + ], + "internalType": "struct Router.OffRamp[]", + "name": "", + "type": "tuple[]" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "uint64", + "name": "destChainSelector", + "type": "uint64" + } + ], + "name": "getOnRamp", + "outputs": [ + { + "internalType": "address", + "name": "", + "type": "address" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "uint64", + "name": "chainSelector", + "type": "uint64" + } + ], + "name": "getSupportedTokens", + "outputs": [ + { + "internalType": "address[]", + "name": "", + "type": "address[]" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [], + "name": "getWrappedNative", + "outputs": [ + { + "internalType": "address", + "name": "", + "type": "address" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "uint64", + "name": "chainSelector", + "type": "uint64" + } + ], + "name": "isChainSupported", + "outputs": [ + { + "internalType": "bool", + "name": "", + "type": "bool" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "uint64", + "name": "sourceChainSelector", + "type": "uint64" + }, + { + "internalType": "address", + "name": "offRamp", + "type": "address" + } + ], + "name": "isOffRamp", + "outputs": [ + { + "internalType": "bool", + "name": "", + "type": "bool" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [], + "name": "owner", + "outputs": [ + { + "internalType": "address", + "name": "", + "type": "address" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "tokenAddress", + "type": "address" + }, + { + "internalType": "address", + "name": "to", + "type": "address" + }, + { + "internalType": "uint256", + "name": "amount", + "type": "uint256" + } + ], + "name": "recoverTokens", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [ + { + "components": [ + { + "internalType": "bytes32", + "name": "messageId", + "type": "bytes32" + }, + { + "internalType": "uint64", + "name": "sourceChainSelector", + "type": "uint64" + }, + { + "internalType": "bytes", + "name": "sender", + "type": "bytes" + }, + { + "internalType": "bytes", + "name": "data", + "type": "bytes" + }, + { + "components": [ + { + "internalType": "address", + "name": "token", + "type": "address" + }, + { + "internalType": "uint256", + "name": "amount", + "type": "uint256" + } + ], + "internalType": "struct Client.EVMTokenAmount[]", + "name": "destTokenAmounts", + "type": "tuple[]" + } + ], + "internalType": "struct Client.Any2EVMMessage", + "name": "message", + "type": "tuple" + }, + { + "internalType": "uint16", + "name": "gasForCallExactCheck", + "type": "uint16" + }, + { + "internalType": "uint256", + "name": "gasLimit", + "type": "uint256" + }, + { + "internalType": "address", + "name": "receiver", + "type": "address" + } + ], + "name": "routeMessage", + "outputs": [ + { + "internalType": "bool", + "name": "success", + "type": "bool" + }, + { + "internalType": "bytes", + "name": "retData", + "type": "bytes" + }, + { + "internalType": "uint256", + "name": "gasUsed", + "type": "uint256" + } + ], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "wrappedNative", + "type": "address" + } + ], + "name": "setWrappedNative", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "to", + "type": "address" + } + ], + "name": "transferOwnership", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [], + "name": "typeAndVersion", + "outputs": [ + { + "internalType": "string", + "name": "", + "type": "string" + } + ], + "stateMutability": "view", + "type": "function" + } +] diff --git a/scripts/ccipLocalSimulatorFork.ts b/scripts/ccipLocalSimulatorFork.ts index ba9f882..deee9da 100644 --- a/scripts/ccipLocalSimulatorFork.ts +++ b/scripts/ccipLocalSimulatorFork.ts @@ -2,10 +2,10 @@ import { ethers } from 'hardhat'; import { TransactionReceipt } from 'ethers'; import { setBalance } from '@nomicfoundation/hardhat-toolbox/network-helpers'; -import RouterAbi from "@chainlink/contracts-ccip/abi/v0.8/Router.json" -import LinkTokenAbi from "@chainlink/contracts-ccip/abi/v0.8/LinkToken.json" -import EVM2EVMOnRampAbi from "@chainlink/contracts-ccip/abi/v0.8/EVM2EVMOnRamp.json" -import EVM2EVMOffRampAbi from "@chainlink/contracts-ccip/abi/v0.8/EVM2EVMOffRamp.json" +import RouterAbi from "../abi/Router.json" +import LinkTokenAbi from "../abi/LinkToken.json" +import EVM2EVMOnRampAbi from "../abi/EVM2EVMOnRamp.json" +import EVM2EVMOffRampAbi from "../abi/EVM2EVMOffRamp.json" export type Evm2EvmMessage = { sourceChainSelector: bigint,