diff --git a/contracts/scripts/native_solc_compile_all_ccip b/contracts/scripts/native_solc_compile_all_ccip index 6935c310bc..6e2e2a86bf 100755 --- a/contracts/scripts/native_solc_compile_all_ccip +++ b/contracts/scripts/native_solc_compile_all_ccip @@ -57,6 +57,7 @@ compileContract ccip/offRamp/EVM2EVMMultiOffRamp.sol compileContract ccip/applications/internal/PingPongDemo.sol compileContract ccip/applications/internal/SelfFundedPingPong.sol compileContract ccip/applications/external/CCIPClient.sol +compileContract ccip/applications/external/CCIPClientWithACK.sol compileContract ccip/applications/external/CCIPReceiver.sol compileContract ccip/applications/external/CCIPReceiverWithACK.sol compileContract ccip/applications/external/CCIPSender.sol diff --git a/core/gethwrappers/ccip/generated/ccipClientWithACK/ccipClientWithACK.go b/core/gethwrappers/ccip/generated/ccipClientWithACK/ccipClientWithACK.go new file mode 100644 index 0000000000..99da9a0a1d --- /dev/null +++ b/core/gethwrappers/ccip/generated/ccipClientWithACK/ccipClientWithACK.go @@ -0,0 +1,2931 @@ +// Code generated - DO NOT EDIT. +// This file is a generated binding and any manual changes will be lost. + +package ccipClientWithACK + +import ( + "errors" + "fmt" + "math/big" + "strings" + + ethereum "github.com/ethereum/go-ethereum" + "github.com/ethereum/go-ethereum/accounts/abi" + "github.com/ethereum/go-ethereum/accounts/abi/bind" + "github.com/ethereum/go-ethereum/common" + "github.com/ethereum/go-ethereum/core/types" + "github.com/ethereum/go-ethereum/event" + "github.com/smartcontractkit/chainlink/v2/core/gethwrappers/generated" +) + +var ( + _ = errors.New + _ = big.NewInt + _ = strings.NewReader + _ = ethereum.NotFound + _ = bind.Bind + _ = common.Big1 + _ = types.BloomLookup + _ = event.NewSubscription + _ = abi.ConvertType +) + +type CCIPBaseApprovedSenderUpdate struct { + DestChainSelector uint64 + Sender []byte +} + +type CCIPBaseChainUpdate struct { + ChainSelector uint64 + Allowed bool + Recipient []byte + ExtraArgsBytes []byte +} + +type ClientAny2EVMMessage struct { + MessageId [32]byte + SourceChainSelector uint64 + Sender []byte + Data []byte + DestTokenAmounts []ClientEVMTokenAmount +} + +type ClientEVMTokenAmount struct { + Token common.Address + Amount *big.Int +} + +var CCIPClientWithACKMetaData = &bind.MetaData{ + ABI: "[{\"inputs\":[{\"internalType\":\"address\",\"name\":\"router\",\"type\":\"address\"},{\"internalType\":\"contractIERC20\",\"name\":\"feeToken\",\"type\":\"address\"}],\"stateMutability\":\"nonpayable\",\"type\":\"constructor\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"}],\"name\":\"CannotAcknowledgeUnsentMessage\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"InvalidAckMessageHeader\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"uint64\",\"name\":\"chainSelector\",\"type\":\"uint64\"}],\"name\":\"InvalidChain\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"bytes\",\"name\":\"recipient\",\"type\":\"bytes\"}],\"name\":\"InvalidRecipient\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"router\",\"type\":\"address\"}],\"name\":\"InvalidRouter\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"bytes\",\"name\":\"sender\",\"type\":\"bytes\"}],\"name\":\"InvalidSender\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"messageId\",\"type\":\"bytes32\"}],\"name\":\"MessageAlreadyAcknowledged\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"messageId\",\"type\":\"bytes32\"}],\"name\":\"MessageNotFailed\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"OnlySelf\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"ZeroAddressNotAllowed\",\"type\":\"error\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"uint64\",\"name\":\"destChainSelector\",\"type\":\"uint64\"},{\"indexed\":true,\"internalType\":\"bytes\",\"name\":\"recipient\",\"type\":\"bytes\"}],\"name\":\"ApprovedSenderAdded\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"uint64\",\"name\":\"destChainSelector\",\"type\":\"uint64\"},{\"indexed\":true,\"internalType\":\"bytes\",\"name\":\"recipient\",\"type\":\"bytes\"}],\"name\":\"ApprovedSenderRemoved\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"oldRouter\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"newRouter\",\"type\":\"address\"}],\"name\":\"CCIPRouterModified\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"uint64\",\"name\":\"remoteChainSelector\",\"type\":\"uint64\"},{\"indexed\":true,\"internalType\":\"bytes\",\"name\":\"recipient\",\"type\":\"bytes\"},{\"indexed\":false,\"internalType\":\"bytes\",\"name\":\"extraArgsBytes\",\"type\":\"bytes\"}],\"name\":\"ChainAdded\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"uint64\",\"name\":\"removeChainSelector\",\"type\":\"uint64\"}],\"name\":\"ChainRemoved\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"oldToken\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"newToken\",\"type\":\"address\"}],\"name\":\"FeeTokenUpdated\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"bytes32\",\"name\":\"messageId\",\"type\":\"bytes32\"},{\"indexed\":false,\"internalType\":\"address\",\"name\":\"tokenReceiver\",\"type\":\"address\"}],\"name\":\"MessageAbandoned\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"bytes32\",\"name\":\"messageId\",\"type\":\"bytes32\"}],\"name\":\"MessageAckReceived\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"bytes32\",\"name\":\"incomingMessageId\",\"type\":\"bytes32\"}],\"name\":\"MessageAckSent\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"bytes32\",\"name\":\"messageId\",\"type\":\"bytes32\"},{\"indexed\":false,\"internalType\":\"bytes\",\"name\":\"reason\",\"type\":\"bytes\"}],\"name\":\"MessageFailed\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"bytes32\",\"name\":\"messageId\",\"type\":\"bytes32\"}],\"name\":\"MessageRecovered\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"bytes32\",\"name\":\"incomingMessageId\",\"type\":\"bytes32\"},{\"indexed\":true,\"internalType\":\"bytes32\",\"name\":\"ACKMessageId\",\"type\":\"bytes32\"}],\"name\":\"MessageSent\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"bytes32\",\"name\":\"messageId\",\"type\":\"bytes32\"}],\"name\":\"MessageSucceeded\",\"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\":\"token\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"}],\"name\":\"TokensWithdrawnByOwner\",\"type\":\"event\"},{\"inputs\":[],\"name\":\"ACK_MESSAGE_HEADER\",\"outputs\":[{\"internalType\":\"string\",\"name\":\"\",\"type\":\"string\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"messageId\",\"type\":\"bytes32\"},{\"internalType\":\"address\",\"name\":\"receiver\",\"type\":\"address\"}],\"name\":\"abandonFailedMessage\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"acceptOwnership\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"components\":[{\"internalType\":\"uint64\",\"name\":\"chainSelector\",\"type\":\"uint64\"},{\"internalType\":\"bool\",\"name\":\"allowed\",\"type\":\"bool\"},{\"internalType\":\"bytes\",\"name\":\"recipient\",\"type\":\"bytes\"},{\"internalType\":\"bytes\",\"name\":\"extraArgsBytes\",\"type\":\"bytes\"}],\"internalType\":\"structCCIPBase.ChainUpdate[]\",\"name\":\"chains\",\"type\":\"tuple[]\"}],\"name\":\"applyChainUpdates\",\"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\":\"structClient.EVMTokenAmount[]\",\"name\":\"destTokenAmounts\",\"type\":\"tuple[]\"}],\"internalType\":\"structClient.Any2EVMMessage\",\"name\":\"message\",\"type\":\"tuple\"}],\"name\":\"ccipReceive\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint64\",\"name\":\"destChainSelector\",\"type\":\"uint64\"},{\"components\":[{\"internalType\":\"address\",\"name\":\"token\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"}],\"internalType\":\"structClient.EVMTokenAmount[]\",\"name\":\"tokenAmounts\",\"type\":\"tuple[]\"},{\"internalType\":\"bytes\",\"name\":\"data\",\"type\":\"bytes\"}],\"name\":\"ccipSend\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"messageId\",\"type\":\"bytes32\"}],\"stateMutability\":\"payable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"messageId\",\"type\":\"bytes32\"}],\"name\":\"getMessageContents\",\"outputs\":[{\"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\":\"structClient.EVMTokenAmount[]\",\"name\":\"destTokenAmounts\",\"type\":\"tuple[]\"}],\"internalType\":\"structClient.Any2EVMMessage\",\"name\":\"\",\"type\":\"tuple\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"messageId\",\"type\":\"bytes32\"}],\"name\":\"getMessageStatus\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"getRouter\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint64\",\"name\":\"sourceChainSelector\",\"type\":\"uint64\"},{\"internalType\":\"bytes\",\"name\":\"senderAddr\",\"type\":\"bytes\"}],\"name\":\"isApprovedSender\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"owner\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"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\":\"structClient.EVMTokenAmount[]\",\"name\":\"destTokenAmounts\",\"type\":\"tuple[]\"}],\"internalType\":\"structClient.Any2EVMMessage\",\"name\":\"message\",\"type\":\"tuple\"}],\"name\":\"processMessage\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"messageId\",\"type\":\"bytes32\"}],\"name\":\"retryFailedMessage\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint64\",\"name\":\"destChainSelector\",\"type\":\"uint64\"}],\"name\":\"s_chainConfigs\",\"outputs\":[{\"internalType\":\"bytes\",\"name\":\"recipient\",\"type\":\"bytes\"},{\"internalType\":\"bytes\",\"name\":\"extraArgsBytes\",\"type\":\"bytes\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"s_feeToken\",\"outputs\":[{\"internalType\":\"contractIERC20\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"messageId\",\"type\":\"bytes32\"}],\"name\":\"s_messageStatus\",\"outputs\":[{\"internalType\":\"enumCCIPReceiverWithACK.MessageStatus\",\"name\":\"status\",\"type\":\"uint8\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"}],\"name\":\"transferOwnership\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"components\":[{\"internalType\":\"uint64\",\"name\":\"destChainSelector\",\"type\":\"uint64\"},{\"internalType\":\"bytes\",\"name\":\"sender\",\"type\":\"bytes\"}],\"internalType\":\"structCCIPBase.ApprovedSenderUpdate[]\",\"name\":\"adds\",\"type\":\"tuple[]\"},{\"components\":[{\"internalType\":\"uint64\",\"name\":\"destChainSelector\",\"type\":\"uint64\"},{\"internalType\":\"bytes\",\"name\":\"sender\",\"type\":\"bytes\"}],\"internalType\":\"structCCIPBase.ApprovedSenderUpdate[]\",\"name\":\"removes\",\"type\":\"tuple[]\"}],\"name\":\"updateApprovedSenders\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"token\",\"type\":\"address\"}],\"name\":\"updateFeeToken\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"newRouter\",\"type\":\"address\"}],\"name\":\"updateRouter\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"addresspayable\",\"name\":\"to\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"}],\"name\":\"withdrawNativeToken\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"token\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"}],\"name\":\"withdrawTokens\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"stateMutability\":\"payable\",\"type\":\"receive\"}]", + Bin: "0x60806040523480156200001157600080fd5b5060405162004aea38038062004aea833981016040819052620000349162000569565b8181818033806000816200008f5760405162461bcd60e51b815260206004820152601860248201527f43616e6e6f7420736574206f776e657220746f207a65726f000000000000000060448201526064015b60405180910390fd5b600080546001600160a01b0319166001600160a01b0384811691909117909155811615620000c257620000c28162000145565b5050506001600160a01b038116620000ed576040516342bcdf7f60e11b815260040160405180910390fd5b600280546001600160a01b039283166001600160a01b0319918216179091556008805492851692909116821790551590506200013b576200013b6001600160a01b03821683600019620001f0565b505050506200068e565b336001600160a01b038216036200019f5760405162461bcd60e51b815260206004820152601760248201527f43616e6e6f74207472616e7366657220746f2073656c66000000000000000000604482015260640162000086565b600180546001600160a01b0319166001600160a01b0383811691821790925560008054604051929316917fed8889f560326eb138920d842192f0eb3dd22b4f139c87a2c57538e05bae12789190a350565b604051636eb1769f60e11b81523060048201526001600160a01b038381166024830152600091839186169063dd62ed3e90604401602060405180830381865afa15801562000242573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190620002689190620005a8565b620002749190620005c2565b604080516001600160a01b038616602482015260448082018490528251808303909101815260649091019091526020810180516001600160e01b0390811663095ea7b360e01b17909152919250620002d091869190620002d616565b50505050565b6040805180820190915260208082527f5361666545524332303a206c6f772d6c6576656c2063616c6c206661696c65649082015260009062000325906001600160a01b038516908490620003ac565b805190915015620003a75780806020019051810190620003469190620005ea565b620003a75760405162461bcd60e51b815260206004820152602a60248201527f5361666545524332303a204552433230206f7065726174696f6e20646964206e6044820152691bdd081cdd58d8d9595960b21b606482015260840162000086565b505050565b6060620003bd8484600085620003c5565b949350505050565b606082471015620004285760405162461bcd60e51b815260206004820152602660248201527f416464726573733a20696e73756666696369656e742062616c616e636520666f6044820152651c8818d85b1b60d21b606482015260840162000086565b600080866001600160a01b031685876040516200044691906200063b565b60006040518083038185875af1925050503d806000811462000485576040519150601f19603f3d011682016040523d82523d6000602084013e6200048a565b606091505b5090925090506200049e87838387620004a9565b979650505050505050565b606083156200051d57825160000362000515576001600160a01b0385163b620005155760405162461bcd60e51b815260206004820152601d60248201527f416464726573733a2063616c6c20746f206e6f6e2d636f6e7472616374000000604482015260640162000086565b5081620003bd565b620003bd8383815115620005345781518083602001fd5b8060405162461bcd60e51b815260040162000086919062000659565b6001600160a01b03811681146200056657600080fd5b50565b600080604083850312156200057d57600080fd5b82516200058a8162000550565b60208401519092506200059d8162000550565b809150509250929050565b600060208284031215620005bb57600080fd5b5051919050565b80820180821115620005e457634e487b7160e01b600052601160045260246000fd5b92915050565b600060208284031215620005fd57600080fd5b815180151581146200060e57600080fd5b9392505050565b60005b838110156200063257818101518382015260200162000618565b50506000910152565b600082516200064f81846020870162000615565b9190910192915050565b60208152600082518060208401526200067a81604085016020870162000615565b601f01601f19169190910160400192915050565b61444c806200069e6000396000f3fe6080604052600436106101795760003560e01c806385572ffb116100cb578063c89245d51161007f578063e89b448511610059578063e89b4485146104a8578063f2fde38b146104bb578063ff2deec3146104db57600080fd5b8063c89245d514610448578063cf6730f814610468578063e4ca87541461048857600080fd5b80639fe74e26116100b05780639fe74e26146103dd578063b0f479a1146103fd578063c851cc321461042857600080fd5b806385572ffb146103715780638da5cb5b1461039157600080fd5b80635e35359e1161012d5780636fef519e116101075780636fef519e146102e657806379ba50971461033c5780638462a2b91461035157600080fd5b80635e35359e146102795780636939cd97146102995780636d62d633146102c657600080fd5b806335f170ef1161015e57806335f170ef146101fb5780635075a9d414610229578063536c6bfa1461025757600080fd5b806305bfe982146101855780630e958d6b146101cb57600080fd5b3661018057005b600080fd5b34801561019157600080fd5b506101b56101a03660046132e5565b60096020526000908152604090205460ff1681565b6040516101c2919061332d565b60405180910390f35b3480156101d757600080fd5b506101eb6101e6366004613384565b610508565b60405190151581526020016101c2565b34801561020757600080fd5b5061021b610216366004613409565b610553565b6040516101c2929190613494565b34801561023557600080fd5b506102496102443660046132e5565b61067f565b6040519081526020016101c2565b34801561026357600080fd5b506102776102723660046134e4565b610692565b005b34801561028557600080fd5b50610277610294366004613510565b6106f6565b3480156102a557600080fd5b506102b96102b43660046132e5565b61078b565b6040516101c291906135ae565b3480156102d257600080fd5b506102776102e1366004613642565b610996565b3480156102f257600080fd5b5061032f6040518060400160405280601581526020017f4d4553534147455f41434b4e4f574c45444745445f000000000000000000000081525081565b6040516101c29190613672565b34801561034857600080fd5b50610277610cb0565b34801561035d57600080fd5b5061027761036c3660046136d1565b610dad565b34801561037d57600080fd5b5061027761038c36600461373d565b6110ee565b34801561039d57600080fd5b5060005473ffffffffffffffffffffffffffffffffffffffff165b60405173ffffffffffffffffffffffffffffffffffffffff90911681526020016101c2565b3480156103e957600080fd5b506102776103f8366004613778565b6112f7565b34801561040957600080fd5b5060025473ffffffffffffffffffffffffffffffffffffffff166103b8565b34801561043457600080fd5b506102776104433660046137ba565b611688565b34801561045457600080fd5b506102776104633660046137ba565b611754565b34801561047457600080fd5b5061027761048336600461373d565b6118c8565b34801561049457600080fd5b506102776104a33660046132e5565b611c16565b6102496104b636600461393d565b611e80565b3480156104c757600080fd5b506102776104d63660046137ba565b6123b6565b3480156104e757600080fd5b506008546103b89073ffffffffffffffffffffffffffffffffffffffff1681565b67ffffffffffffffff831660009081526003602052604080822090516002909101906105379085908590613a4a565b9081526040519081900360200190205460ff1690509392505050565b60036020526000908152604090208054819061056e90613a5a565b80601f016020809104026020016040519081016040528092919081815260200182805461059a90613a5a565b80156105e75780601f106105bc576101008083540402835291602001916105e7565b820191906000526020600020905b8154815290600101906020018083116105ca57829003601f168201915b5050505050908060010180546105fc90613a5a565b80601f016020809104026020016040519081016040528092919081815260200182805461062890613a5a565b80156106755780601f1061064a57610100808354040283529160200191610675565b820191906000526020600020905b81548152906001019060200180831161065857829003601f168201915b5050505050905082565b600061068c6005836123ca565b92915050565b61069a6123dd565b6106a48282612460565b60405181815273ffffffffffffffffffffffffffffffffffffffff8316906000907f6832d9be2410a86571981e1e60fd4c1f9ea2a1034d6102a2b7d6c5e480adf02e9060200160405180910390a35050565b6106fe6123dd565b61071f73ffffffffffffffffffffffffffffffffffffffff841683836125ba565b8173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f6832d9be2410a86571981e1e60fd4c1f9ea2a1034d6102a2b7d6c5e480adf02e8360405161077e91815260200190565b60405180910390a3505050565b6040805160a08082018352600080835260208084018290526060848601819052808501819052608085015285825260048152908490208451928301855280548352600181015467ffffffffffffffff16918301919091526002810180549394929391928401916107fa90613a5a565b80601f016020809104026020016040519081016040528092919081815260200182805461082690613a5a565b80156108735780601f1061084857610100808354040283529160200191610873565b820191906000526020600020905b81548152906001019060200180831161085657829003601f168201915b5050505050815260200160038201805461088c90613a5a565b80601f01602080910402602001604051908101604052809291908181526020018280546108b890613a5a565b80156109055780601f106108da57610100808354040283529160200191610905565b820191906000526020600020905b8154815290600101906020018083116108e857829003601f168201915b5050505050815260200160048201805480602002602001604051908101604052809291908181526020016000905b828210156109885760008481526020908190206040805180820190915260028502909101805473ffffffffffffffffffffffffffffffffffffffff168252600190810154828401529083529092019101610933565b505050915250909392505050565b61099e6123dd565b60016109ab6005846123ca565b146109ea576040517fb6e78260000000000000000000000000000000000000000000000000000000008152600481018390526024015b60405180910390fd5b6109fa8260025b6005919061268e565b506000828152600460209081526040808320815160a08101835281548152600182015467ffffffffffffffff16938101939093526002810180549192840191610a4290613a5a565b80601f0160208091040260200160405190810160405280929190818152602001828054610a6e90613a5a565b8015610abb5780601f10610a9057610100808354040283529160200191610abb565b820191906000526020600020905b815481529060010190602001808311610a9e57829003601f168201915b50505050508152602001600382018054610ad490613a5a565b80601f0160208091040260200160405190810160405280929190818152602001828054610b0090613a5a565b8015610b4d5780601f10610b2257610100808354040283529160200191610b4d565b820191906000526020600020905b815481529060010190602001808311610b3057829003601f168201915b5050505050815260200160048201805480602002602001604051908101604052809291908181526020016000905b82821015610bd05760008481526020908190206040805180820190915260028502909101805473ffffffffffffffffffffffffffffffffffffffff168252600190810154828401529083529092019101610b7b565b5050505081525050905060005b816080015151811015610c5f57610c578383608001518381518110610c0457610c04613aad565b60200260200101516020015184608001518481518110610c2657610c26613aad565b60200260200101516000015173ffffffffffffffffffffffffffffffffffffffff166125ba9092919063ffffffff16565b600101610bdd565b5060405173ffffffffffffffffffffffffffffffffffffffff8316815283907fd5038100bd3dc9631d3c3f4f61a3e53e9d466f40c47af9897292c7b35e32a9579060200160405180910390a2505050565b60015473ffffffffffffffffffffffffffffffffffffffff163314610d31576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601660248201527f4d7573742062652070726f706f736564206f776e65720000000000000000000060448201526064016109e1565b60008054337fffffffffffffffffffffffff00000000000000000000000000000000000000008083168217845560018054909116905560405173ffffffffffffffffffffffffffffffffffffffff90921692909183917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e091a350565b610db56123dd565b60005b81811015610f485760036000848484818110610dd657610dd6613aad565b9050602002810190610de89190613adc565b610df6906020810190613409565b67ffffffffffffffff1667ffffffffffffffff168152602001908152602001600020600201838383818110610e2d57610e2d613aad565b9050602002810190610e3f9190613adc565b610e4d906020810190613b1a565b604051610e5b929190613a4a565b90815260405190819003602001902080547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00169055828282818110610ea257610ea2613aad565b9050602002810190610eb49190613adc565b610ec2906020810190613b1a565b604051610ed0929190613a4a565b6040518091039020838383818110610eea57610eea613aad565b9050602002810190610efc9190613adc565b610f0a906020810190613409565b67ffffffffffffffff167f021290bab0d93f4d9a243bd430e45dd4bc8238451e9abbba6fab4463677dfce960405160405180910390a3600101610db8565b5060005b838110156110e757600160036000878785818110610f6c57610f6c613aad565b9050602002810190610f7e9190613adc565b610f8c906020810190613409565b67ffffffffffffffff1667ffffffffffffffff168152602001908152602001600020600201868684818110610fc357610fc3613aad565b9050602002810190610fd59190613adc565b610fe3906020810190613b1a565b604051610ff1929190613a4a565b90815260405190819003602001902080549115157fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0090921691909117905584848281811061104157611041613aad565b90506020028101906110539190613adc565b611061906020810190613b1a565b60405161106f929190613a4a565b604051809103902085858381811061108957611089613aad565b905060200281019061109b9190613adc565b6110a9906020810190613409565b67ffffffffffffffff167f72d9f73bb7cb11065e15df29d61e803a0eba356d509a7025a6f51ebdea07f9e760405160405180910390a3600101610f4c565b5050505050565b60025473ffffffffffffffffffffffffffffffffffffffff163314611141576040517fd7f733340000000000000000000000000000000000000000000000000000000081523360048201526024016109e1565b6111516040820160208301613409565b67ffffffffffffffff811660009081526003602052604090208054819061117790613a5a565b90506000036111be576040517fd79f2ea400000000000000000000000000000000000000000000000000000000815267ffffffffffffffff831660048201526024016109e1565b6040517fcf6730f8000000000000000000000000000000000000000000000000000000008152309063cf6730f8906111fa908690600401613c81565b600060405180830381600087803b15801561121457600080fd5b505af1925050508015611225575060015b6112c5573d808015611253576040519150601f19603f3d011682016040523d82523d6000602084013e611258565b606091505b50611265843560016109f1565b50833560009081526004602052604090208490611282828261405b565b50506040518435907f55bc02a9ef6f146737edeeb425738006f67f077e7138de3bf84a15bde1a5b56f906112b7908490613672565b60405180910390a250505050565b6040518335907fdf6958669026659bac75ba986685e11a7d271284989f565f2802522663e9a70f90600090a25b505050565b6112ff6123dd565b60005b818110156112f25782828281811061131c5761131c613aad565b905060200281019061132e9190614155565b61133f906040810190602001614197565b61140b576003600084848481811061135957611359613aad565b905060200281019061136b9190614155565b611379906020810190613409565b67ffffffffffffffff1681526020810191909152604001600090812061139e91613297565b8282828181106113b0576113b0613aad565b90506020028101906113c29190614155565b6113d0906020810190613409565b67ffffffffffffffff167f5204aec90a3c794d8e90fded8b46ae9c7c552803e7e832e0c1d358396d85991660405160405180910390a2611680565b82828281811061141d5761141d613aad565b905060200281019061142f9190614155565b61143d906040810190613b1a565b9050600003611478576040517f8579befe00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b60006003600085858581811061149057611490613aad565b90506020028101906114a29190614155565b6114b0906020810190613409565b67ffffffffffffffff1667ffffffffffffffff16815260200190815260200160002090508383838181106114e6576114e6613aad565b90506020028101906114f89190614155565b611506906040810190613b1a565b8291611513919083613ddf565b5083838381811061152657611526613aad565b90506020028101906115389190614155565b611546906060810190613b1a565b1590506115915783838381811061155f5761155f613aad565b90506020028101906115719190614155565b61157f906060810190613b1a565b600183019161158f919083613ddf565b505b8383838181106115a3576115a3613aad565b90506020028101906115b59190614155565b6115c3906040810190613b1a565b6040516115d1929190613a4a565b60405180910390208484848181106115eb576115eb613aad565b90506020028101906115fd9190614155565b61160b906020810190613409565b67ffffffffffffffff167f1ced5bcae649ed29cebfa0010298ad6794bf3822e8cb754a6eee5353a9a8721286868681811061164857611648613aad565b905060200281019061165a9190614155565b611668906060810190613b1a565b6040516116769291906141b4565b60405180910390a3505b600101611302565b6116906123dd565b73ffffffffffffffffffffffffffffffffffffffff81166116dd576040517f8579befe00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6002805473ffffffffffffffffffffffffffffffffffffffff8381167fffffffffffffffffffffffff0000000000000000000000000000000000000000831681179093556040519116919082907f3672b589036f39ac008505b790fcb05d484d70b65680ec64c089a3c173fdc4c890600090a35050565b61175c6123dd565b60085473ffffffffffffffffffffffffffffffffffffffff16156117bd576117bd61179c60025473ffffffffffffffffffffffffffffffffffffffff1690565b60085473ffffffffffffffffffffffffffffffffffffffff169060006126a3565b6008805473ffffffffffffffffffffffffffffffffffffffff8381167fffffffffffffffffffffffff00000000000000000000000000000000000000008316811790935516901561186a5761186a61182a60025473ffffffffffffffffffffffffffffffffffffffff1690565b60085473ffffffffffffffffffffffffffffffffffffffff16907fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff612825565b8173ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff167f91a03e1d689caf891fe531c01e290f7b718f9c6a3af6726d6d837d2b7bd82e6760405160405180910390a35050565b333014611901576040517f14d4a4e800000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6119116040820160208301613409565b61191e6040830183613b1a565b8080601f016020809104026020016040519081016040528093929190818152602001838380828437600092018290525067ffffffffffffffff86168152600360205260409020805490935061197592509050613a5a565b159050806119cb5750600360008367ffffffffffffffff1667ffffffffffffffff168152602001908152602001600020600201816040516119b691906141c8565b9081526040519081900360200190205460ff16155b15611a0457806040517f5075bb380000000000000000000000000000000000000000000000000000000081526004016109e19190613672565b6000611a136060850185613b1a565b810190611a2091906141da565b9050600081604001516001811115611a3a57611a3a6132fe565b03611a4d57611a4884612923565b611c10565b600181604001516001811115611a6557611a656132fe565b03611c10576000808260200151806020019051810190611a859190614286565b915091506040518060400160405280601581526020017f4d4553534147455f41434b4e4f574c45444745445f0000000000000000000000815250604051602001611acf9190613672565b6040516020818303038152906040528051906020012082604051602001611af69190613672565b6040516020818303038152906040528051906020012014611b43576040517fae15168d00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b600160008281526009602052604090205460ff166002811115611b6857611b686132fe565b14611ba2576040517f3ec87700000000000000000000000000000000000000000000000000000000008152600481018290526024016109e1565b60008181526009602090815260409182902080547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0016600217905590518281527fef0cb160d3dc564cde61ae97d9981f9c4d92ace727a2ec202b18b223ea832a79910160405180910390a150505b50505050565b6001611c236005836123ca565b14611c5d576040517fb6e78260000000000000000000000000000000000000000000000000000000008152600481018290526024016109e1565b611c688160006109f1565b506000818152600460209081526040808320815160a08101835281548152600182015467ffffffffffffffff16938101939093526002810180549192840191611cb090613a5a565b80601f0160208091040260200160405190810160405280929190818152602001828054611cdc90613a5a565b8015611d295780601f10611cfe57610100808354040283529160200191611d29565b820191906000526020600020905b815481529060010190602001808311611d0c57829003601f168201915b50505050508152602001600382018054611d4290613a5a565b80601f0160208091040260200160405190810160405280929190818152602001828054611d6e90613a5a565b8015611dbb5780601f10611d9057610100808354040283529160200191611dbb565b820191906000526020600020905b815481529060010190602001808311611d9e57829003601f168201915b5050505050815260200160048201805480602002602001604051908101604052809291908181526020016000905b82821015611e3e5760008481526020908190206040805180820190915260028502909101805473ffffffffffffffffffffffffffffffffffffffff168252600190810154828401529083529092019101611de9565b50505050815250509050611e5181612c99565b60405182907fef3bf8c64bc480286c4f3503b870ceb23e648d2d902e31fb7bb46680da6de8ad90600090a25050565b67ffffffffffffffff8316600090815260036020526040812080548591908190611ea990613a5a565b9050600003611ef0576040517fd79f2ea400000000000000000000000000000000000000000000000000000000815267ffffffffffffffff831660048201526024016109e1565b6040805160a08101825267ffffffffffffffff8816600090815260036020529182208054829190611f2090613a5a565b80601f0160208091040260200160405190810160405280929190818152602001828054611f4c90613a5a565b8015611f995780601f10611f6e57610100808354040283529160200191611f99565b820191906000526020600020905b815481529060010190602001808311611f7c57829003601f168201915b5050509183525050602080820188905260408083018a905260085473ffffffffffffffffffffffffffffffffffffffff16606084015267ffffffffffffffff8b166000908152600390925290206001018054608090920191611ffa90613a5a565b80601f016020809104026020016040519081016040528092919081815260200182805461202690613a5a565b80156120735780601f1061204857610100808354040283529160200191612073565b820191906000526020600020905b81548152906001019060200180831161205657829003601f168201915b5050505050815250905060005b86518110156121d0576120f033308984815181106120a0576120a0613aad565b6020026020010151602001518a85815181106120be576120be613aad565b60200260200101516000015173ffffffffffffffffffffffffffffffffffffffff16612d0b909392919063ffffffff16565b600854875173ffffffffffffffffffffffffffffffffffffffff9091169088908390811061212057612120613aad565b60200260200101516000015173ffffffffffffffffffffffffffffffffffffffff16146121c85760025487516121c89173ffffffffffffffffffffffffffffffffffffffff169089908490811061217957612179613aad565b60200260200101516020015189848151811061219757612197613aad565b60200260200101516000015173ffffffffffffffffffffffffffffffffffffffff166126a39092919063ffffffff16565b600101612080565b506002546040517f20487ded00000000000000000000000000000000000000000000000000000000815260009173ffffffffffffffffffffffffffffffffffffffff16906320487ded9061222a908b908690600401614307565b602060405180830381865afa158015612247573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061226b91906143d4565b60085490915073ffffffffffffffffffffffffffffffffffffffff16156122b1576008546122b19073ffffffffffffffffffffffffffffffffffffffff16333084612d0b565b60025460085473ffffffffffffffffffffffffffffffffffffffff918216916396f4e9f99116156122e35760006122e5565b825b8a856040518463ffffffff1660e01b8152600401612304929190614307565b60206040518083038185885af1158015612322573d6000803e3d6000fd5b50505050506040513d601f19601f8201168201806040525081019061234791906143d4565b60008181526009602052604080822080547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00166001179055519196509086907f9102b9031c3c59d8320bf14d84d7d7a3434366b91032fad1c87579cfc62b2372908390a3505050509392505050565b6123be6123dd565b6123c781612d69565b50565b60006123d68383612e5e565b9392505050565b60005473ffffffffffffffffffffffffffffffffffffffff16331461245e576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601660248201527f4f6e6c792063616c6c61626c65206279206f776e65720000000000000000000060448201526064016109e1565b565b804710156124ca576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601d60248201527f416464726573733a20696e73756666696369656e742062616c616e636500000060448201526064016109e1565b60008273ffffffffffffffffffffffffffffffffffffffff168260405160006040518083038185875af1925050503d8060008114612524576040519150601f19603f3d011682016040523d82523d6000602084013e612529565b606091505b50509050806112f2576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152603a60248201527f416464726573733a20756e61626c6520746f2073656e642076616c75652c207260448201527f6563697069656e74206d6179206861766520726576657274656400000000000060648201526084016109e1565b60405173ffffffffffffffffffffffffffffffffffffffff83166024820152604481018290526112f29084907fa9059cbb00000000000000000000000000000000000000000000000000000000906064015b604080517fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe08184030181529190526020810180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff167fffffffff0000000000000000000000000000000000000000000000000000000090931692909217909152612ee8565b600061269b848484612ff4565b949350505050565b80158061274357506040517fdd62ed3e00000000000000000000000000000000000000000000000000000000815230600482015273ffffffffffffffffffffffffffffffffffffffff838116602483015284169063dd62ed3e90604401602060405180830381865afa15801561271d573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061274191906143d4565b155b6127cf576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152603660248201527f5361666545524332303a20617070726f76652066726f6d206e6f6e2d7a65726f60448201527f20746f206e6f6e2d7a65726f20616c6c6f77616e63650000000000000000000060648201526084016109e1565b60405173ffffffffffffffffffffffffffffffffffffffff83166024820152604481018290526112f29084907f095ea7b3000000000000000000000000000000000000000000000000000000009060640161260c565b6040517fdd62ed3e00000000000000000000000000000000000000000000000000000000815230600482015273ffffffffffffffffffffffffffffffffffffffff8381166024830152600091839186169063dd62ed3e90604401602060405180830381865afa15801561289c573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906128c091906143d4565b6128ca91906143ed565b60405173ffffffffffffffffffffffffffffffffffffffff8516602482015260448101829052909150611c109085907f095ea7b3000000000000000000000000000000000000000000000000000000009060640161260c565b6040805160008082526020820190925281612960565b60408051808201909152600080825260208201528152602001906001900390816129395790505b50905060006040518060a001604052808480604001906129809190613b1a565b8080601f016020809104026020016040519081016040528093929190818152602001838380828437600092019190915250505090825250604080518082018252601581527f4d4553534147455f41434b4e4f574c45444745445f0000000000000000000000602082810191909152915192820192612a019288359101614400565b604080517fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0818403018152918152908252602082810186905260085473ffffffffffffffffffffffffffffffffffffffff1683830152606090920191600391600091612a71918901908901613409565b67ffffffffffffffff1667ffffffffffffffff1681526020019081526020016000206001018054612aa190613a5a565b80601f0160208091040260200160405190810160405280929190818152602001828054612acd90613a5a565b8015612b1a5780601f10612aef57610100808354040283529160200191612b1a565b820191906000526020600020905b815481529060010190602001808311612afd57829003601f168201915b50505091909252505060025490915060009073ffffffffffffffffffffffffffffffffffffffff166320487ded612b576040870160208801613409565b846040518363ffffffff1660e01b8152600401612b75929190614307565b602060405180830381865afa158015612b92573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190612bb691906143d4565b60025460085491925060009173ffffffffffffffffffffffffffffffffffffffff918216916396f4e9f9911615612bee576000612bf0565b835b612c006040890160208a01613409565b866040518463ffffffff1660e01b8152600401612c1e929190614307565b60206040518083038185885af1158015612c3c573d6000803e3d6000fd5b50505050506040513d601f19601f82011682018060405250810190612c6191906143d4565b60405190915081908635907f9102b9031c3c59d8320bf14d84d7d7a3434366b91032fad1c87579cfc62b237290600090a35050505050565b612ca16123dd565b6040517fcf6730f8000000000000000000000000000000000000000000000000000000008152309063cf6730f890612cdd9084906004016135ae565b600060405180830381600087803b158015612cf757600080fd5b505af11580156110e7573d6000803e3d6000fd5b60405173ffffffffffffffffffffffffffffffffffffffff80851660248301528316604482015260648101829052611c109085907f23b872dd000000000000000000000000000000000000000000000000000000009060840161260c565b3373ffffffffffffffffffffffffffffffffffffffff821603612de8576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601760248201527f43616e6e6f74207472616e7366657220746f2073656c6600000000000000000060448201526064016109e1565b600180547fffffffffffffffffffffffff00000000000000000000000000000000000000001673ffffffffffffffffffffffffffffffffffffffff83811691821790925560008054604051929316917fed8889f560326eb138920d842192f0eb3dd22b4f139c87a2c57538e05bae12789190a350565b600081815260028301602052604081205480151580612e825750612e828484613011565b6123d6576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601e60248201527f456e756d657261626c654d61703a206e6f6e6578697374656e74206b6579000060448201526064016109e1565b6000612f4a826040518060400160405280602081526020017f5361666545524332303a206c6f772d6c6576656c2063616c6c206661696c65648152508573ffffffffffffffffffffffffffffffffffffffff1661301d9092919063ffffffff16565b8051909150156112f25780806020019051810190612f689190614422565b6112f2576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602a60248201527f5361666545524332303a204552433230206f7065726174696f6e20646964206e60448201527f6f7420737563636565640000000000000000000000000000000000000000000060648201526084016109e1565b6000828152600284016020526040812082905561269b848461302c565b60006123d68383613038565b606061269b8484600085613050565b60006123d68383613169565b600081815260018301602052604081205415156123d6565b6060824710156130e2576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602660248201527f416464726573733a20696e73756666696369656e742062616c616e636520666f60448201527f722063616c6c000000000000000000000000000000000000000000000000000060648201526084016109e1565b6000808673ffffffffffffffffffffffffffffffffffffffff16858760405161310b91906141c8565b60006040518083038185875af1925050503d8060008114613148576040519150601f19603f3d011682016040523d82523d6000602084013e61314d565b606091505b509150915061315e878383876131b8565b979650505050505050565b60008181526001830160205260408120546131b05750815460018181018455600084815260208082209093018490558454848252828601909352604090209190915561068c565b50600061068c565b6060831561324e5782516000036132475773ffffffffffffffffffffffffffffffffffffffff85163b613247576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601d60248201527f416464726573733a2063616c6c20746f206e6f6e2d636f6e747261637400000060448201526064016109e1565b508161269b565b61269b83838151156132635781518083602001fd5b806040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016109e19190613672565b5080546132a390613a5a565b6000825580601f106132b3575050565b601f0160209004906000526020600020908101906123c791905b808211156132e157600081556001016132cd565b5090565b6000602082840312156132f757600080fd5b5035919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602160045260246000fd5b6020810160038310613368577f4e487b7100000000000000000000000000000000000000000000000000000000600052602160045260246000fd5b91905290565b67ffffffffffffffff811681146123c757600080fd5b60008060006040848603121561339957600080fd5b83356133a48161336e565b9250602084013567ffffffffffffffff808211156133c157600080fd5b818601915086601f8301126133d557600080fd5b8135818111156133e457600080fd5b8760208285010111156133f657600080fd5b6020830194508093505050509250925092565b60006020828403121561341b57600080fd5b81356123d68161336e565b60005b83811015613441578181015183820152602001613429565b50506000910152565b60008151808452613462816020860160208601613426565b601f017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0169290920160200192915050565b6040815260006134a7604083018561344a565b82810360208401526134b9818561344a565b95945050505050565b73ffffffffffffffffffffffffffffffffffffffff811681146123c757600080fd5b600080604083850312156134f757600080fd5b8235613502816134c2565b946020939093013593505050565b60008060006060848603121561352557600080fd5b8335613530816134c2565b92506020840135613540816134c2565b929592945050506040919091013590565b60008151808452602080850194506020840160005b838110156135a3578151805173ffffffffffffffffffffffffffffffffffffffff1688528301518388015260409096019590820190600101613566565b509495945050505050565b602081528151602082015267ffffffffffffffff60208301511660408201526000604083015160a060608401526135e860c084018261344a565b905060608401517fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe080858403016080860152613624838361344a565b925060808601519150808584030160a0860152506134b98282613551565b6000806040838503121561365557600080fd5b823591506020830135613667816134c2565b809150509250929050565b6020815260006123d6602083018461344a565b60008083601f84011261369757600080fd5b50813567ffffffffffffffff8111156136af57600080fd5b6020830191508360208260051b85010111156136ca57600080fd5b9250929050565b600080600080604085870312156136e757600080fd5b843567ffffffffffffffff808211156136ff57600080fd5b61370b88838901613685565b9096509450602087013591508082111561372457600080fd5b5061373187828801613685565b95989497509550505050565b60006020828403121561374f57600080fd5b813567ffffffffffffffff81111561376657600080fd5b820160a081850312156123d657600080fd5b6000806020838503121561378b57600080fd5b823567ffffffffffffffff8111156137a257600080fd5b6137ae85828601613685565b90969095509350505050565b6000602082840312156137cc57600080fd5b81356123d6816134c2565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b6040805190810167ffffffffffffffff81118282101715613829576138296137d7565b60405290565b6040516060810167ffffffffffffffff81118282101715613829576138296137d7565b604051601f82017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe016810167ffffffffffffffff81118282101715613899576138996137d7565b604052919050565b600067ffffffffffffffff8211156138bb576138bb6137d7565b50601f017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe01660200190565b600082601f8301126138f857600080fd5b813561390b613906826138a1565b613852565b81815284602083860101111561392057600080fd5b816020850160208301376000918101602001919091529392505050565b60008060006060848603121561395257600080fd5b833561395d8161336e565b925060208481013567ffffffffffffffff8082111561397b57600080fd5b818701915087601f83011261398f57600080fd5b8135818111156139a1576139a16137d7565b6139af848260051b01613852565b81815260069190911b8301840190848101908a8311156139ce57600080fd5b938501935b82851015613a1a576040858c0312156139ec5760008081fd5b6139f4613806565b85356139ff816134c2565b815285870135878201528252604090940193908501906139d3565b965050506040870135925080831115613a3257600080fd5b5050613a40868287016138e7565b9150509250925092565b8183823760009101908152919050565b600181811c90821680613a6e57607f821691505b602082108103613aa7577f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b50919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b600082357fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc1833603018112613b1057600080fd5b9190910192915050565b60008083357fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe1843603018112613b4f57600080fd5b83018035915067ffffffffffffffff821115613b6a57600080fd5b6020019150368190038213156136ca57600080fd5b60008083357fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe1843603018112613bb457600080fd5b830160208101925035905067ffffffffffffffff811115613bd457600080fd5b8036038213156136ca57600080fd5b8183528181602085013750600060208284010152600060207fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0601f840116840101905092915050565b8183526000602080850194508260005b858110156135a3578135613c4f816134c2565b73ffffffffffffffffffffffffffffffffffffffff168752818301358388015260409687019690910190600101613c3c565b602081528135602082015260006020830135613c9c8161336e565b67ffffffffffffffff8082166040850152613cba6040860186613b7f565b925060a06060860152613cd160c086018483613be3565b925050613ce16060860186613b7f565b7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe080878603016080880152613d17858385613be3565b9450608088013592507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe1883603018312613d5057600080fd5b60209288019283019235915083821115613d6957600080fd5b8160061b3603831315613d7b57600080fd5b8685030160a087015261315e848284613c2c565b601f8211156112f2576000816000526020600020601f850160051c81016020861015613db85750805b601f850160051c820191505b81811015613dd757828155600101613dc4565b505050505050565b67ffffffffffffffff831115613df757613df76137d7565b613e0b83613e058354613a5a565b83613d8f565b6000601f841160018114613e5d5760008515613e275750838201355b7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff600387901b1c1916600186901b1783556110e7565b6000838152602090207fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0861690835b82811015613eac5786850135825560209485019460019092019101613e8c565b5086821015613ee7577fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff60f88860031b161c19848701351681555b505060018560011b0183555050505050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b8135613f33816134c2565b73ffffffffffffffffffffffffffffffffffffffff81167fffffffffffffffffffffffff000000000000000000000000000000000000000083541617825550602082013560018201555050565b68010000000000000000831115613f9957613f996137d7565b8054838255808410156140265760017f7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8083168314613fda57613fda613ef9565b8086168614613feb57613feb613ef9565b5060008360005260206000208360011b81018760011b820191505b80821015614021578282558284830155600282019150614006565b505050505b5060008181526020812083915b85811015613dd7576140458383613f28565b6040929092019160029190910190600101614033565b813581556001810160208301356140718161336e565b67ffffffffffffffff8082167fffffffffffffffffffffffffffffffffffffffffffffffff00000000000000008454161783556140b16040860186613b1a565b935091506140c3838360028701613ddf565b6140d06060860186613b1a565b935091506140e2838360038701613ddf565b608085013592507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe185360301831261411957600080fd5b91840191823591508082111561412e57600080fd5b506020820191508060061b360382131561414757600080fd5b611c10818360048601613f80565b600082357fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff81833603018112613b1057600080fd5b80151581146123c757600080fd5b6000602082840312156141a957600080fd5b81356123d681614189565b60208152600061269b602083018486613be3565b60008251613b10818460208701613426565b6000602082840312156141ec57600080fd5b813567ffffffffffffffff8082111561420457600080fd5b908301906060828603121561421857600080fd5b61422061382f565b82358281111561422f57600080fd5b61423b878286016138e7565b82525060208301358281111561425057600080fd5b61425c878286016138e7565b602083015250604083013592506002831061427657600080fd5b6040810192909252509392505050565b6000806040838503121561429957600080fd5b825167ffffffffffffffff8111156142b057600080fd5b8301601f810185136142c157600080fd5b80516142cf613906826138a1565b8181528660208385010111156142e457600080fd5b6142f5826020830160208601613426565b60209590950151949694955050505050565b67ffffffffffffffff83168152604060208201526000825160a0604084015261433360e084018261344a565b905060208401517fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc08085840301606086015261436f838361344a565b9250604086015191508085840301608086015261438c8383613551565b925073ffffffffffffffffffffffffffffffffffffffff60608701511660a086015260808601519150808584030160c0860152506143ca828261344a565b9695505050505050565b6000602082840312156143e657600080fd5b5051919050565b8082018082111561068c5761068c613ef9565b604081526000614413604083018561344a565b90508260208301529392505050565b60006020828403121561443457600080fd5b81516123d68161418956fea164736f6c6343000818000a", +} + +var CCIPClientWithACKABI = CCIPClientWithACKMetaData.ABI + +var CCIPClientWithACKBin = CCIPClientWithACKMetaData.Bin + +func DeployCCIPClientWithACK(auth *bind.TransactOpts, backend bind.ContractBackend, router common.Address, feeToken common.Address) (common.Address, *types.Transaction, *CCIPClientWithACK, error) { + parsed, err := CCIPClientWithACKMetaData.GetAbi() + if err != nil { + return common.Address{}, nil, nil, err + } + if parsed == nil { + return common.Address{}, nil, nil, errors.New("GetABI returned nil") + } + + address, tx, contract, err := bind.DeployContract(auth, *parsed, common.FromHex(CCIPClientWithACKBin), backend, router, feeToken) + if err != nil { + return common.Address{}, nil, nil, err + } + return address, tx, &CCIPClientWithACK{address: address, abi: *parsed, CCIPClientWithACKCaller: CCIPClientWithACKCaller{contract: contract}, CCIPClientWithACKTransactor: CCIPClientWithACKTransactor{contract: contract}, CCIPClientWithACKFilterer: CCIPClientWithACKFilterer{contract: contract}}, nil +} + +type CCIPClientWithACK struct { + address common.Address + abi abi.ABI + CCIPClientWithACKCaller + CCIPClientWithACKTransactor + CCIPClientWithACKFilterer +} + +type CCIPClientWithACKCaller struct { + contract *bind.BoundContract +} + +type CCIPClientWithACKTransactor struct { + contract *bind.BoundContract +} + +type CCIPClientWithACKFilterer struct { + contract *bind.BoundContract +} + +type CCIPClientWithACKSession struct { + Contract *CCIPClientWithACK + CallOpts bind.CallOpts + TransactOpts bind.TransactOpts +} + +type CCIPClientWithACKCallerSession struct { + Contract *CCIPClientWithACKCaller + CallOpts bind.CallOpts +} + +type CCIPClientWithACKTransactorSession struct { + Contract *CCIPClientWithACKTransactor + TransactOpts bind.TransactOpts +} + +type CCIPClientWithACKRaw struct { + Contract *CCIPClientWithACK +} + +type CCIPClientWithACKCallerRaw struct { + Contract *CCIPClientWithACKCaller +} + +type CCIPClientWithACKTransactorRaw struct { + Contract *CCIPClientWithACKTransactor +} + +func NewCCIPClientWithACK(address common.Address, backend bind.ContractBackend) (*CCIPClientWithACK, error) { + abi, err := abi.JSON(strings.NewReader(CCIPClientWithACKABI)) + if err != nil { + return nil, err + } + contract, err := bindCCIPClientWithACK(address, backend, backend, backend) + if err != nil { + return nil, err + } + return &CCIPClientWithACK{address: address, abi: abi, CCIPClientWithACKCaller: CCIPClientWithACKCaller{contract: contract}, CCIPClientWithACKTransactor: CCIPClientWithACKTransactor{contract: contract}, CCIPClientWithACKFilterer: CCIPClientWithACKFilterer{contract: contract}}, nil +} + +func NewCCIPClientWithACKCaller(address common.Address, caller bind.ContractCaller) (*CCIPClientWithACKCaller, error) { + contract, err := bindCCIPClientWithACK(address, caller, nil, nil) + if err != nil { + return nil, err + } + return &CCIPClientWithACKCaller{contract: contract}, nil +} + +func NewCCIPClientWithACKTransactor(address common.Address, transactor bind.ContractTransactor) (*CCIPClientWithACKTransactor, error) { + contract, err := bindCCIPClientWithACK(address, nil, transactor, nil) + if err != nil { + return nil, err + } + return &CCIPClientWithACKTransactor{contract: contract}, nil +} + +func NewCCIPClientWithACKFilterer(address common.Address, filterer bind.ContractFilterer) (*CCIPClientWithACKFilterer, error) { + contract, err := bindCCIPClientWithACK(address, nil, nil, filterer) + if err != nil { + return nil, err + } + return &CCIPClientWithACKFilterer{contract: contract}, nil +} + +func bindCCIPClientWithACK(address common.Address, caller bind.ContractCaller, transactor bind.ContractTransactor, filterer bind.ContractFilterer) (*bind.BoundContract, error) { + parsed, err := CCIPClientWithACKMetaData.GetAbi() + if err != nil { + return nil, err + } + return bind.NewBoundContract(address, *parsed, caller, transactor, filterer), nil +} + +func (_CCIPClientWithACK *CCIPClientWithACKRaw) Call(opts *bind.CallOpts, result *[]interface{}, method string, params ...interface{}) error { + return _CCIPClientWithACK.Contract.CCIPClientWithACKCaller.contract.Call(opts, result, method, params...) +} + +func (_CCIPClientWithACK *CCIPClientWithACKRaw) Transfer(opts *bind.TransactOpts) (*types.Transaction, error) { + return _CCIPClientWithACK.Contract.CCIPClientWithACKTransactor.contract.Transfer(opts) +} + +func (_CCIPClientWithACK *CCIPClientWithACKRaw) Transact(opts *bind.TransactOpts, method string, params ...interface{}) (*types.Transaction, error) { + return _CCIPClientWithACK.Contract.CCIPClientWithACKTransactor.contract.Transact(opts, method, params...) +} + +func (_CCIPClientWithACK *CCIPClientWithACKCallerRaw) Call(opts *bind.CallOpts, result *[]interface{}, method string, params ...interface{}) error { + return _CCIPClientWithACK.Contract.contract.Call(opts, result, method, params...) +} + +func (_CCIPClientWithACK *CCIPClientWithACKTransactorRaw) Transfer(opts *bind.TransactOpts) (*types.Transaction, error) { + return _CCIPClientWithACK.Contract.contract.Transfer(opts) +} + +func (_CCIPClientWithACK *CCIPClientWithACKTransactorRaw) Transact(opts *bind.TransactOpts, method string, params ...interface{}) (*types.Transaction, error) { + return _CCIPClientWithACK.Contract.contract.Transact(opts, method, params...) +} + +func (_CCIPClientWithACK *CCIPClientWithACKCaller) ACKMESSAGEHEADER(opts *bind.CallOpts) (string, error) { + var out []interface{} + err := _CCIPClientWithACK.contract.Call(opts, &out, "ACK_MESSAGE_HEADER") + + if err != nil { + return *new(string), err + } + + out0 := *abi.ConvertType(out[0], new(string)).(*string) + + return out0, err + +} + +func (_CCIPClientWithACK *CCIPClientWithACKSession) ACKMESSAGEHEADER() (string, error) { + return _CCIPClientWithACK.Contract.ACKMESSAGEHEADER(&_CCIPClientWithACK.CallOpts) +} + +func (_CCIPClientWithACK *CCIPClientWithACKCallerSession) ACKMESSAGEHEADER() (string, error) { + return _CCIPClientWithACK.Contract.ACKMESSAGEHEADER(&_CCIPClientWithACK.CallOpts) +} + +func (_CCIPClientWithACK *CCIPClientWithACKCaller) GetMessageContents(opts *bind.CallOpts, messageId [32]byte) (ClientAny2EVMMessage, error) { + var out []interface{} + err := _CCIPClientWithACK.contract.Call(opts, &out, "getMessageContents", messageId) + + if err != nil { + return *new(ClientAny2EVMMessage), err + } + + out0 := *abi.ConvertType(out[0], new(ClientAny2EVMMessage)).(*ClientAny2EVMMessage) + + return out0, err + +} + +func (_CCIPClientWithACK *CCIPClientWithACKSession) GetMessageContents(messageId [32]byte) (ClientAny2EVMMessage, error) { + return _CCIPClientWithACK.Contract.GetMessageContents(&_CCIPClientWithACK.CallOpts, messageId) +} + +func (_CCIPClientWithACK *CCIPClientWithACKCallerSession) GetMessageContents(messageId [32]byte) (ClientAny2EVMMessage, error) { + return _CCIPClientWithACK.Contract.GetMessageContents(&_CCIPClientWithACK.CallOpts, messageId) +} + +func (_CCIPClientWithACK *CCIPClientWithACKCaller) GetMessageStatus(opts *bind.CallOpts, messageId [32]byte) (*big.Int, error) { + var out []interface{} + err := _CCIPClientWithACK.contract.Call(opts, &out, "getMessageStatus", messageId) + + if err != nil { + return *new(*big.Int), err + } + + out0 := *abi.ConvertType(out[0], new(*big.Int)).(**big.Int) + + return out0, err + +} + +func (_CCIPClientWithACK *CCIPClientWithACKSession) GetMessageStatus(messageId [32]byte) (*big.Int, error) { + return _CCIPClientWithACK.Contract.GetMessageStatus(&_CCIPClientWithACK.CallOpts, messageId) +} + +func (_CCIPClientWithACK *CCIPClientWithACKCallerSession) GetMessageStatus(messageId [32]byte) (*big.Int, error) { + return _CCIPClientWithACK.Contract.GetMessageStatus(&_CCIPClientWithACK.CallOpts, messageId) +} + +func (_CCIPClientWithACK *CCIPClientWithACKCaller) GetRouter(opts *bind.CallOpts) (common.Address, error) { + var out []interface{} + err := _CCIPClientWithACK.contract.Call(opts, &out, "getRouter") + + if err != nil { + return *new(common.Address), err + } + + out0 := *abi.ConvertType(out[0], new(common.Address)).(*common.Address) + + return out0, err + +} + +func (_CCIPClientWithACK *CCIPClientWithACKSession) GetRouter() (common.Address, error) { + return _CCIPClientWithACK.Contract.GetRouter(&_CCIPClientWithACK.CallOpts) +} + +func (_CCIPClientWithACK *CCIPClientWithACKCallerSession) GetRouter() (common.Address, error) { + return _CCIPClientWithACK.Contract.GetRouter(&_CCIPClientWithACK.CallOpts) +} + +func (_CCIPClientWithACK *CCIPClientWithACKCaller) IsApprovedSender(opts *bind.CallOpts, sourceChainSelector uint64, senderAddr []byte) (bool, error) { + var out []interface{} + err := _CCIPClientWithACK.contract.Call(opts, &out, "isApprovedSender", sourceChainSelector, senderAddr) + + if err != nil { + return *new(bool), err + } + + out0 := *abi.ConvertType(out[0], new(bool)).(*bool) + + return out0, err + +} + +func (_CCIPClientWithACK *CCIPClientWithACKSession) IsApprovedSender(sourceChainSelector uint64, senderAddr []byte) (bool, error) { + return _CCIPClientWithACK.Contract.IsApprovedSender(&_CCIPClientWithACK.CallOpts, sourceChainSelector, senderAddr) +} + +func (_CCIPClientWithACK *CCIPClientWithACKCallerSession) IsApprovedSender(sourceChainSelector uint64, senderAddr []byte) (bool, error) { + return _CCIPClientWithACK.Contract.IsApprovedSender(&_CCIPClientWithACK.CallOpts, sourceChainSelector, senderAddr) +} + +func (_CCIPClientWithACK *CCIPClientWithACKCaller) Owner(opts *bind.CallOpts) (common.Address, error) { + var out []interface{} + err := _CCIPClientWithACK.contract.Call(opts, &out, "owner") + + if err != nil { + return *new(common.Address), err + } + + out0 := *abi.ConvertType(out[0], new(common.Address)).(*common.Address) + + return out0, err + +} + +func (_CCIPClientWithACK *CCIPClientWithACKSession) Owner() (common.Address, error) { + return _CCIPClientWithACK.Contract.Owner(&_CCIPClientWithACK.CallOpts) +} + +func (_CCIPClientWithACK *CCIPClientWithACKCallerSession) Owner() (common.Address, error) { + return _CCIPClientWithACK.Contract.Owner(&_CCIPClientWithACK.CallOpts) +} + +func (_CCIPClientWithACK *CCIPClientWithACKCaller) SChainConfigs(opts *bind.CallOpts, destChainSelector uint64) (SChainConfigs, + + error) { + var out []interface{} + err := _CCIPClientWithACK.contract.Call(opts, &out, "s_chainConfigs", destChainSelector) + + outstruct := new(SChainConfigs) + if err != nil { + return *outstruct, err + } + + outstruct.Recipient = *abi.ConvertType(out[0], new([]byte)).(*[]byte) + outstruct.ExtraArgsBytes = *abi.ConvertType(out[1], new([]byte)).(*[]byte) + + return *outstruct, err + +} + +func (_CCIPClientWithACK *CCIPClientWithACKSession) SChainConfigs(destChainSelector uint64) (SChainConfigs, + + error) { + return _CCIPClientWithACK.Contract.SChainConfigs(&_CCIPClientWithACK.CallOpts, destChainSelector) +} + +func (_CCIPClientWithACK *CCIPClientWithACKCallerSession) SChainConfigs(destChainSelector uint64) (SChainConfigs, + + error) { + return _CCIPClientWithACK.Contract.SChainConfigs(&_CCIPClientWithACK.CallOpts, destChainSelector) +} + +func (_CCIPClientWithACK *CCIPClientWithACKCaller) SFeeToken(opts *bind.CallOpts) (common.Address, error) { + var out []interface{} + err := _CCIPClientWithACK.contract.Call(opts, &out, "s_feeToken") + + if err != nil { + return *new(common.Address), err + } + + out0 := *abi.ConvertType(out[0], new(common.Address)).(*common.Address) + + return out0, err + +} + +func (_CCIPClientWithACK *CCIPClientWithACKSession) SFeeToken() (common.Address, error) { + return _CCIPClientWithACK.Contract.SFeeToken(&_CCIPClientWithACK.CallOpts) +} + +func (_CCIPClientWithACK *CCIPClientWithACKCallerSession) SFeeToken() (common.Address, error) { + return _CCIPClientWithACK.Contract.SFeeToken(&_CCIPClientWithACK.CallOpts) +} + +func (_CCIPClientWithACK *CCIPClientWithACKCaller) SMessageStatus(opts *bind.CallOpts, messageId [32]byte) (uint8, error) { + var out []interface{} + err := _CCIPClientWithACK.contract.Call(opts, &out, "s_messageStatus", messageId) + + if err != nil { + return *new(uint8), err + } + + out0 := *abi.ConvertType(out[0], new(uint8)).(*uint8) + + return out0, err + +} + +func (_CCIPClientWithACK *CCIPClientWithACKSession) SMessageStatus(messageId [32]byte) (uint8, error) { + return _CCIPClientWithACK.Contract.SMessageStatus(&_CCIPClientWithACK.CallOpts, messageId) +} + +func (_CCIPClientWithACK *CCIPClientWithACKCallerSession) SMessageStatus(messageId [32]byte) (uint8, error) { + return _CCIPClientWithACK.Contract.SMessageStatus(&_CCIPClientWithACK.CallOpts, messageId) +} + +func (_CCIPClientWithACK *CCIPClientWithACKTransactor) AbandonFailedMessage(opts *bind.TransactOpts, messageId [32]byte, receiver common.Address) (*types.Transaction, error) { + return _CCIPClientWithACK.contract.Transact(opts, "abandonFailedMessage", messageId, receiver) +} + +func (_CCIPClientWithACK *CCIPClientWithACKSession) AbandonFailedMessage(messageId [32]byte, receiver common.Address) (*types.Transaction, error) { + return _CCIPClientWithACK.Contract.AbandonFailedMessage(&_CCIPClientWithACK.TransactOpts, messageId, receiver) +} + +func (_CCIPClientWithACK *CCIPClientWithACKTransactorSession) AbandonFailedMessage(messageId [32]byte, receiver common.Address) (*types.Transaction, error) { + return _CCIPClientWithACK.Contract.AbandonFailedMessage(&_CCIPClientWithACK.TransactOpts, messageId, receiver) +} + +func (_CCIPClientWithACK *CCIPClientWithACKTransactor) AcceptOwnership(opts *bind.TransactOpts) (*types.Transaction, error) { + return _CCIPClientWithACK.contract.Transact(opts, "acceptOwnership") +} + +func (_CCIPClientWithACK *CCIPClientWithACKSession) AcceptOwnership() (*types.Transaction, error) { + return _CCIPClientWithACK.Contract.AcceptOwnership(&_CCIPClientWithACK.TransactOpts) +} + +func (_CCIPClientWithACK *CCIPClientWithACKTransactorSession) AcceptOwnership() (*types.Transaction, error) { + return _CCIPClientWithACK.Contract.AcceptOwnership(&_CCIPClientWithACK.TransactOpts) +} + +func (_CCIPClientWithACK *CCIPClientWithACKTransactor) ApplyChainUpdates(opts *bind.TransactOpts, chains []CCIPBaseChainUpdate) (*types.Transaction, error) { + return _CCIPClientWithACK.contract.Transact(opts, "applyChainUpdates", chains) +} + +func (_CCIPClientWithACK *CCIPClientWithACKSession) ApplyChainUpdates(chains []CCIPBaseChainUpdate) (*types.Transaction, error) { + return _CCIPClientWithACK.Contract.ApplyChainUpdates(&_CCIPClientWithACK.TransactOpts, chains) +} + +func (_CCIPClientWithACK *CCIPClientWithACKTransactorSession) ApplyChainUpdates(chains []CCIPBaseChainUpdate) (*types.Transaction, error) { + return _CCIPClientWithACK.Contract.ApplyChainUpdates(&_CCIPClientWithACK.TransactOpts, chains) +} + +func (_CCIPClientWithACK *CCIPClientWithACKTransactor) CcipReceive(opts *bind.TransactOpts, message ClientAny2EVMMessage) (*types.Transaction, error) { + return _CCIPClientWithACK.contract.Transact(opts, "ccipReceive", message) +} + +func (_CCIPClientWithACK *CCIPClientWithACKSession) CcipReceive(message ClientAny2EVMMessage) (*types.Transaction, error) { + return _CCIPClientWithACK.Contract.CcipReceive(&_CCIPClientWithACK.TransactOpts, message) +} + +func (_CCIPClientWithACK *CCIPClientWithACKTransactorSession) CcipReceive(message ClientAny2EVMMessage) (*types.Transaction, error) { + return _CCIPClientWithACK.Contract.CcipReceive(&_CCIPClientWithACK.TransactOpts, message) +} + +func (_CCIPClientWithACK *CCIPClientWithACKTransactor) CcipSend(opts *bind.TransactOpts, destChainSelector uint64, tokenAmounts []ClientEVMTokenAmount, data []byte) (*types.Transaction, error) { + return _CCIPClientWithACK.contract.Transact(opts, "ccipSend", destChainSelector, tokenAmounts, data) +} + +func (_CCIPClientWithACK *CCIPClientWithACKSession) CcipSend(destChainSelector uint64, tokenAmounts []ClientEVMTokenAmount, data []byte) (*types.Transaction, error) { + return _CCIPClientWithACK.Contract.CcipSend(&_CCIPClientWithACK.TransactOpts, destChainSelector, tokenAmounts, data) +} + +func (_CCIPClientWithACK *CCIPClientWithACKTransactorSession) CcipSend(destChainSelector uint64, tokenAmounts []ClientEVMTokenAmount, data []byte) (*types.Transaction, error) { + return _CCIPClientWithACK.Contract.CcipSend(&_CCIPClientWithACK.TransactOpts, destChainSelector, tokenAmounts, data) +} + +func (_CCIPClientWithACK *CCIPClientWithACKTransactor) ProcessMessage(opts *bind.TransactOpts, message ClientAny2EVMMessage) (*types.Transaction, error) { + return _CCIPClientWithACK.contract.Transact(opts, "processMessage", message) +} + +func (_CCIPClientWithACK *CCIPClientWithACKSession) ProcessMessage(message ClientAny2EVMMessage) (*types.Transaction, error) { + return _CCIPClientWithACK.Contract.ProcessMessage(&_CCIPClientWithACK.TransactOpts, message) +} + +func (_CCIPClientWithACK *CCIPClientWithACKTransactorSession) ProcessMessage(message ClientAny2EVMMessage) (*types.Transaction, error) { + return _CCIPClientWithACK.Contract.ProcessMessage(&_CCIPClientWithACK.TransactOpts, message) +} + +func (_CCIPClientWithACK *CCIPClientWithACKTransactor) RetryFailedMessage(opts *bind.TransactOpts, messageId [32]byte) (*types.Transaction, error) { + return _CCIPClientWithACK.contract.Transact(opts, "retryFailedMessage", messageId) +} + +func (_CCIPClientWithACK *CCIPClientWithACKSession) RetryFailedMessage(messageId [32]byte) (*types.Transaction, error) { + return _CCIPClientWithACK.Contract.RetryFailedMessage(&_CCIPClientWithACK.TransactOpts, messageId) +} + +func (_CCIPClientWithACK *CCIPClientWithACKTransactorSession) RetryFailedMessage(messageId [32]byte) (*types.Transaction, error) { + return _CCIPClientWithACK.Contract.RetryFailedMessage(&_CCIPClientWithACK.TransactOpts, messageId) +} + +func (_CCIPClientWithACK *CCIPClientWithACKTransactor) TransferOwnership(opts *bind.TransactOpts, to common.Address) (*types.Transaction, error) { + return _CCIPClientWithACK.contract.Transact(opts, "transferOwnership", to) +} + +func (_CCIPClientWithACK *CCIPClientWithACKSession) TransferOwnership(to common.Address) (*types.Transaction, error) { + return _CCIPClientWithACK.Contract.TransferOwnership(&_CCIPClientWithACK.TransactOpts, to) +} + +func (_CCIPClientWithACK *CCIPClientWithACKTransactorSession) TransferOwnership(to common.Address) (*types.Transaction, error) { + return _CCIPClientWithACK.Contract.TransferOwnership(&_CCIPClientWithACK.TransactOpts, to) +} + +func (_CCIPClientWithACK *CCIPClientWithACKTransactor) UpdateApprovedSenders(opts *bind.TransactOpts, adds []CCIPBaseApprovedSenderUpdate, removes []CCIPBaseApprovedSenderUpdate) (*types.Transaction, error) { + return _CCIPClientWithACK.contract.Transact(opts, "updateApprovedSenders", adds, removes) +} + +func (_CCIPClientWithACK *CCIPClientWithACKSession) UpdateApprovedSenders(adds []CCIPBaseApprovedSenderUpdate, removes []CCIPBaseApprovedSenderUpdate) (*types.Transaction, error) { + return _CCIPClientWithACK.Contract.UpdateApprovedSenders(&_CCIPClientWithACK.TransactOpts, adds, removes) +} + +func (_CCIPClientWithACK *CCIPClientWithACKTransactorSession) UpdateApprovedSenders(adds []CCIPBaseApprovedSenderUpdate, removes []CCIPBaseApprovedSenderUpdate) (*types.Transaction, error) { + return _CCIPClientWithACK.Contract.UpdateApprovedSenders(&_CCIPClientWithACK.TransactOpts, adds, removes) +} + +func (_CCIPClientWithACK *CCIPClientWithACKTransactor) UpdateFeeToken(opts *bind.TransactOpts, token common.Address) (*types.Transaction, error) { + return _CCIPClientWithACK.contract.Transact(opts, "updateFeeToken", token) +} + +func (_CCIPClientWithACK *CCIPClientWithACKSession) UpdateFeeToken(token common.Address) (*types.Transaction, error) { + return _CCIPClientWithACK.Contract.UpdateFeeToken(&_CCIPClientWithACK.TransactOpts, token) +} + +func (_CCIPClientWithACK *CCIPClientWithACKTransactorSession) UpdateFeeToken(token common.Address) (*types.Transaction, error) { + return _CCIPClientWithACK.Contract.UpdateFeeToken(&_CCIPClientWithACK.TransactOpts, token) +} + +func (_CCIPClientWithACK *CCIPClientWithACKTransactor) UpdateRouter(opts *bind.TransactOpts, newRouter common.Address) (*types.Transaction, error) { + return _CCIPClientWithACK.contract.Transact(opts, "updateRouter", newRouter) +} + +func (_CCIPClientWithACK *CCIPClientWithACKSession) UpdateRouter(newRouter common.Address) (*types.Transaction, error) { + return _CCIPClientWithACK.Contract.UpdateRouter(&_CCIPClientWithACK.TransactOpts, newRouter) +} + +func (_CCIPClientWithACK *CCIPClientWithACKTransactorSession) UpdateRouter(newRouter common.Address) (*types.Transaction, error) { + return _CCIPClientWithACK.Contract.UpdateRouter(&_CCIPClientWithACK.TransactOpts, newRouter) +} + +func (_CCIPClientWithACK *CCIPClientWithACKTransactor) WithdrawNativeToken(opts *bind.TransactOpts, to common.Address, amount *big.Int) (*types.Transaction, error) { + return _CCIPClientWithACK.contract.Transact(opts, "withdrawNativeToken", to, amount) +} + +func (_CCIPClientWithACK *CCIPClientWithACKSession) WithdrawNativeToken(to common.Address, amount *big.Int) (*types.Transaction, error) { + return _CCIPClientWithACK.Contract.WithdrawNativeToken(&_CCIPClientWithACK.TransactOpts, to, amount) +} + +func (_CCIPClientWithACK *CCIPClientWithACKTransactorSession) WithdrawNativeToken(to common.Address, amount *big.Int) (*types.Transaction, error) { + return _CCIPClientWithACK.Contract.WithdrawNativeToken(&_CCIPClientWithACK.TransactOpts, to, amount) +} + +func (_CCIPClientWithACK *CCIPClientWithACKTransactor) WithdrawTokens(opts *bind.TransactOpts, token common.Address, to common.Address, amount *big.Int) (*types.Transaction, error) { + return _CCIPClientWithACK.contract.Transact(opts, "withdrawTokens", token, to, amount) +} + +func (_CCIPClientWithACK *CCIPClientWithACKSession) WithdrawTokens(token common.Address, to common.Address, amount *big.Int) (*types.Transaction, error) { + return _CCIPClientWithACK.Contract.WithdrawTokens(&_CCIPClientWithACK.TransactOpts, token, to, amount) +} + +func (_CCIPClientWithACK *CCIPClientWithACKTransactorSession) WithdrawTokens(token common.Address, to common.Address, amount *big.Int) (*types.Transaction, error) { + return _CCIPClientWithACK.Contract.WithdrawTokens(&_CCIPClientWithACK.TransactOpts, token, to, amount) +} + +func (_CCIPClientWithACK *CCIPClientWithACKTransactor) Receive(opts *bind.TransactOpts) (*types.Transaction, error) { + return _CCIPClientWithACK.contract.RawTransact(opts, nil) +} + +func (_CCIPClientWithACK *CCIPClientWithACKSession) Receive() (*types.Transaction, error) { + return _CCIPClientWithACK.Contract.Receive(&_CCIPClientWithACK.TransactOpts) +} + +func (_CCIPClientWithACK *CCIPClientWithACKTransactorSession) Receive() (*types.Transaction, error) { + return _CCIPClientWithACK.Contract.Receive(&_CCIPClientWithACK.TransactOpts) +} + +type CCIPClientWithACKApprovedSenderAddedIterator struct { + Event *CCIPClientWithACKApprovedSenderAdded + + contract *bind.BoundContract + event string + + logs chan types.Log + sub ethereum.Subscription + done bool + fail error +} + +func (it *CCIPClientWithACKApprovedSenderAddedIterator) Next() bool { + + if it.fail != nil { + return false + } + + if it.done { + select { + case log := <-it.logs: + it.Event = new(CCIPClientWithACKApprovedSenderAdded) + if err := it.contract.UnpackLog(it.Event, it.event, log); err != nil { + it.fail = err + return false + } + it.Event.Raw = log + return true + + default: + return false + } + } + + select { + case log := <-it.logs: + it.Event = new(CCIPClientWithACKApprovedSenderAdded) + if err := it.contract.UnpackLog(it.Event, it.event, log); err != nil { + it.fail = err + return false + } + it.Event.Raw = log + return true + + case err := <-it.sub.Err(): + it.done = true + it.fail = err + return it.Next() + } +} + +func (it *CCIPClientWithACKApprovedSenderAddedIterator) Error() error { + return it.fail +} + +func (it *CCIPClientWithACKApprovedSenderAddedIterator) Close() error { + it.sub.Unsubscribe() + return nil +} + +type CCIPClientWithACKApprovedSenderAdded struct { + DestChainSelector uint64 + Recipient common.Hash + Raw types.Log +} + +func (_CCIPClientWithACK *CCIPClientWithACKFilterer) FilterApprovedSenderAdded(opts *bind.FilterOpts, destChainSelector []uint64, recipient [][]byte) (*CCIPClientWithACKApprovedSenderAddedIterator, error) { + + var destChainSelectorRule []interface{} + for _, destChainSelectorItem := range destChainSelector { + destChainSelectorRule = append(destChainSelectorRule, destChainSelectorItem) + } + var recipientRule []interface{} + for _, recipientItem := range recipient { + recipientRule = append(recipientRule, recipientItem) + } + + logs, sub, err := _CCIPClientWithACK.contract.FilterLogs(opts, "ApprovedSenderAdded", destChainSelectorRule, recipientRule) + if err != nil { + return nil, err + } + return &CCIPClientWithACKApprovedSenderAddedIterator{contract: _CCIPClientWithACK.contract, event: "ApprovedSenderAdded", logs: logs, sub: sub}, nil +} + +func (_CCIPClientWithACK *CCIPClientWithACKFilterer) WatchApprovedSenderAdded(opts *bind.WatchOpts, sink chan<- *CCIPClientWithACKApprovedSenderAdded, destChainSelector []uint64, recipient [][]byte) (event.Subscription, error) { + + var destChainSelectorRule []interface{} + for _, destChainSelectorItem := range destChainSelector { + destChainSelectorRule = append(destChainSelectorRule, destChainSelectorItem) + } + var recipientRule []interface{} + for _, recipientItem := range recipient { + recipientRule = append(recipientRule, recipientItem) + } + + logs, sub, err := _CCIPClientWithACK.contract.WatchLogs(opts, "ApprovedSenderAdded", destChainSelectorRule, recipientRule) + if err != nil { + return nil, err + } + return event.NewSubscription(func(quit <-chan struct{}) error { + defer sub.Unsubscribe() + for { + select { + case log := <-logs: + + event := new(CCIPClientWithACKApprovedSenderAdded) + if err := _CCIPClientWithACK.contract.UnpackLog(event, "ApprovedSenderAdded", log); err != nil { + return err + } + event.Raw = log + + select { + case sink <- event: + case err := <-sub.Err(): + return err + case <-quit: + return nil + } + case err := <-sub.Err(): + return err + case <-quit: + return nil + } + } + }), nil +} + +func (_CCIPClientWithACK *CCIPClientWithACKFilterer) ParseApprovedSenderAdded(log types.Log) (*CCIPClientWithACKApprovedSenderAdded, error) { + event := new(CCIPClientWithACKApprovedSenderAdded) + if err := _CCIPClientWithACK.contract.UnpackLog(event, "ApprovedSenderAdded", log); err != nil { + return nil, err + } + event.Raw = log + return event, nil +} + +type CCIPClientWithACKApprovedSenderRemovedIterator struct { + Event *CCIPClientWithACKApprovedSenderRemoved + + contract *bind.BoundContract + event string + + logs chan types.Log + sub ethereum.Subscription + done bool + fail error +} + +func (it *CCIPClientWithACKApprovedSenderRemovedIterator) Next() bool { + + if it.fail != nil { + return false + } + + if it.done { + select { + case log := <-it.logs: + it.Event = new(CCIPClientWithACKApprovedSenderRemoved) + if err := it.contract.UnpackLog(it.Event, it.event, log); err != nil { + it.fail = err + return false + } + it.Event.Raw = log + return true + + default: + return false + } + } + + select { + case log := <-it.logs: + it.Event = new(CCIPClientWithACKApprovedSenderRemoved) + if err := it.contract.UnpackLog(it.Event, it.event, log); err != nil { + it.fail = err + return false + } + it.Event.Raw = log + return true + + case err := <-it.sub.Err(): + it.done = true + it.fail = err + return it.Next() + } +} + +func (it *CCIPClientWithACKApprovedSenderRemovedIterator) Error() error { + return it.fail +} + +func (it *CCIPClientWithACKApprovedSenderRemovedIterator) Close() error { + it.sub.Unsubscribe() + return nil +} + +type CCIPClientWithACKApprovedSenderRemoved struct { + DestChainSelector uint64 + Recipient common.Hash + Raw types.Log +} + +func (_CCIPClientWithACK *CCIPClientWithACKFilterer) FilterApprovedSenderRemoved(opts *bind.FilterOpts, destChainSelector []uint64, recipient [][]byte) (*CCIPClientWithACKApprovedSenderRemovedIterator, error) { + + var destChainSelectorRule []interface{} + for _, destChainSelectorItem := range destChainSelector { + destChainSelectorRule = append(destChainSelectorRule, destChainSelectorItem) + } + var recipientRule []interface{} + for _, recipientItem := range recipient { + recipientRule = append(recipientRule, recipientItem) + } + + logs, sub, err := _CCIPClientWithACK.contract.FilterLogs(opts, "ApprovedSenderRemoved", destChainSelectorRule, recipientRule) + if err != nil { + return nil, err + } + return &CCIPClientWithACKApprovedSenderRemovedIterator{contract: _CCIPClientWithACK.contract, event: "ApprovedSenderRemoved", logs: logs, sub: sub}, nil +} + +func (_CCIPClientWithACK *CCIPClientWithACKFilterer) WatchApprovedSenderRemoved(opts *bind.WatchOpts, sink chan<- *CCIPClientWithACKApprovedSenderRemoved, destChainSelector []uint64, recipient [][]byte) (event.Subscription, error) { + + var destChainSelectorRule []interface{} + for _, destChainSelectorItem := range destChainSelector { + destChainSelectorRule = append(destChainSelectorRule, destChainSelectorItem) + } + var recipientRule []interface{} + for _, recipientItem := range recipient { + recipientRule = append(recipientRule, recipientItem) + } + + logs, sub, err := _CCIPClientWithACK.contract.WatchLogs(opts, "ApprovedSenderRemoved", destChainSelectorRule, recipientRule) + if err != nil { + return nil, err + } + return event.NewSubscription(func(quit <-chan struct{}) error { + defer sub.Unsubscribe() + for { + select { + case log := <-logs: + + event := new(CCIPClientWithACKApprovedSenderRemoved) + if err := _CCIPClientWithACK.contract.UnpackLog(event, "ApprovedSenderRemoved", log); err != nil { + return err + } + event.Raw = log + + select { + case sink <- event: + case err := <-sub.Err(): + return err + case <-quit: + return nil + } + case err := <-sub.Err(): + return err + case <-quit: + return nil + } + } + }), nil +} + +func (_CCIPClientWithACK *CCIPClientWithACKFilterer) ParseApprovedSenderRemoved(log types.Log) (*CCIPClientWithACKApprovedSenderRemoved, error) { + event := new(CCIPClientWithACKApprovedSenderRemoved) + if err := _CCIPClientWithACK.contract.UnpackLog(event, "ApprovedSenderRemoved", log); err != nil { + return nil, err + } + event.Raw = log + return event, nil +} + +type CCIPClientWithACKCCIPRouterModifiedIterator struct { + Event *CCIPClientWithACKCCIPRouterModified + + contract *bind.BoundContract + event string + + logs chan types.Log + sub ethereum.Subscription + done bool + fail error +} + +func (it *CCIPClientWithACKCCIPRouterModifiedIterator) Next() bool { + + if it.fail != nil { + return false + } + + if it.done { + select { + case log := <-it.logs: + it.Event = new(CCIPClientWithACKCCIPRouterModified) + if err := it.contract.UnpackLog(it.Event, it.event, log); err != nil { + it.fail = err + return false + } + it.Event.Raw = log + return true + + default: + return false + } + } + + select { + case log := <-it.logs: + it.Event = new(CCIPClientWithACKCCIPRouterModified) + if err := it.contract.UnpackLog(it.Event, it.event, log); err != nil { + it.fail = err + return false + } + it.Event.Raw = log + return true + + case err := <-it.sub.Err(): + it.done = true + it.fail = err + return it.Next() + } +} + +func (it *CCIPClientWithACKCCIPRouterModifiedIterator) Error() error { + return it.fail +} + +func (it *CCIPClientWithACKCCIPRouterModifiedIterator) Close() error { + it.sub.Unsubscribe() + return nil +} + +type CCIPClientWithACKCCIPRouterModified struct { + OldRouter common.Address + NewRouter common.Address + Raw types.Log +} + +func (_CCIPClientWithACK *CCIPClientWithACKFilterer) FilterCCIPRouterModified(opts *bind.FilterOpts, oldRouter []common.Address, newRouter []common.Address) (*CCIPClientWithACKCCIPRouterModifiedIterator, error) { + + var oldRouterRule []interface{} + for _, oldRouterItem := range oldRouter { + oldRouterRule = append(oldRouterRule, oldRouterItem) + } + var newRouterRule []interface{} + for _, newRouterItem := range newRouter { + newRouterRule = append(newRouterRule, newRouterItem) + } + + logs, sub, err := _CCIPClientWithACK.contract.FilterLogs(opts, "CCIPRouterModified", oldRouterRule, newRouterRule) + if err != nil { + return nil, err + } + return &CCIPClientWithACKCCIPRouterModifiedIterator{contract: _CCIPClientWithACK.contract, event: "CCIPRouterModified", logs: logs, sub: sub}, nil +} + +func (_CCIPClientWithACK *CCIPClientWithACKFilterer) WatchCCIPRouterModified(opts *bind.WatchOpts, sink chan<- *CCIPClientWithACKCCIPRouterModified, oldRouter []common.Address, newRouter []common.Address) (event.Subscription, error) { + + var oldRouterRule []interface{} + for _, oldRouterItem := range oldRouter { + oldRouterRule = append(oldRouterRule, oldRouterItem) + } + var newRouterRule []interface{} + for _, newRouterItem := range newRouter { + newRouterRule = append(newRouterRule, newRouterItem) + } + + logs, sub, err := _CCIPClientWithACK.contract.WatchLogs(opts, "CCIPRouterModified", oldRouterRule, newRouterRule) + if err != nil { + return nil, err + } + return event.NewSubscription(func(quit <-chan struct{}) error { + defer sub.Unsubscribe() + for { + select { + case log := <-logs: + + event := new(CCIPClientWithACKCCIPRouterModified) + if err := _CCIPClientWithACK.contract.UnpackLog(event, "CCIPRouterModified", log); err != nil { + return err + } + event.Raw = log + + select { + case sink <- event: + case err := <-sub.Err(): + return err + case <-quit: + return nil + } + case err := <-sub.Err(): + return err + case <-quit: + return nil + } + } + }), nil +} + +func (_CCIPClientWithACK *CCIPClientWithACKFilterer) ParseCCIPRouterModified(log types.Log) (*CCIPClientWithACKCCIPRouterModified, error) { + event := new(CCIPClientWithACKCCIPRouterModified) + if err := _CCIPClientWithACK.contract.UnpackLog(event, "CCIPRouterModified", log); err != nil { + return nil, err + } + event.Raw = log + return event, nil +} + +type CCIPClientWithACKChainAddedIterator struct { + Event *CCIPClientWithACKChainAdded + + contract *bind.BoundContract + event string + + logs chan types.Log + sub ethereum.Subscription + done bool + fail error +} + +func (it *CCIPClientWithACKChainAddedIterator) Next() bool { + + if it.fail != nil { + return false + } + + if it.done { + select { + case log := <-it.logs: + it.Event = new(CCIPClientWithACKChainAdded) + if err := it.contract.UnpackLog(it.Event, it.event, log); err != nil { + it.fail = err + return false + } + it.Event.Raw = log + return true + + default: + return false + } + } + + select { + case log := <-it.logs: + it.Event = new(CCIPClientWithACKChainAdded) + if err := it.contract.UnpackLog(it.Event, it.event, log); err != nil { + it.fail = err + return false + } + it.Event.Raw = log + return true + + case err := <-it.sub.Err(): + it.done = true + it.fail = err + return it.Next() + } +} + +func (it *CCIPClientWithACKChainAddedIterator) Error() error { + return it.fail +} + +func (it *CCIPClientWithACKChainAddedIterator) Close() error { + it.sub.Unsubscribe() + return nil +} + +type CCIPClientWithACKChainAdded struct { + RemoteChainSelector uint64 + Recipient common.Hash + ExtraArgsBytes []byte + Raw types.Log +} + +func (_CCIPClientWithACK *CCIPClientWithACKFilterer) FilterChainAdded(opts *bind.FilterOpts, remoteChainSelector []uint64, recipient [][]byte) (*CCIPClientWithACKChainAddedIterator, error) { + + var remoteChainSelectorRule []interface{} + for _, remoteChainSelectorItem := range remoteChainSelector { + remoteChainSelectorRule = append(remoteChainSelectorRule, remoteChainSelectorItem) + } + var recipientRule []interface{} + for _, recipientItem := range recipient { + recipientRule = append(recipientRule, recipientItem) + } + + logs, sub, err := _CCIPClientWithACK.contract.FilterLogs(opts, "ChainAdded", remoteChainSelectorRule, recipientRule) + if err != nil { + return nil, err + } + return &CCIPClientWithACKChainAddedIterator{contract: _CCIPClientWithACK.contract, event: "ChainAdded", logs: logs, sub: sub}, nil +} + +func (_CCIPClientWithACK *CCIPClientWithACKFilterer) WatchChainAdded(opts *bind.WatchOpts, sink chan<- *CCIPClientWithACKChainAdded, remoteChainSelector []uint64, recipient [][]byte) (event.Subscription, error) { + + var remoteChainSelectorRule []interface{} + for _, remoteChainSelectorItem := range remoteChainSelector { + remoteChainSelectorRule = append(remoteChainSelectorRule, remoteChainSelectorItem) + } + var recipientRule []interface{} + for _, recipientItem := range recipient { + recipientRule = append(recipientRule, recipientItem) + } + + logs, sub, err := _CCIPClientWithACK.contract.WatchLogs(opts, "ChainAdded", remoteChainSelectorRule, recipientRule) + if err != nil { + return nil, err + } + return event.NewSubscription(func(quit <-chan struct{}) error { + defer sub.Unsubscribe() + for { + select { + case log := <-logs: + + event := new(CCIPClientWithACKChainAdded) + if err := _CCIPClientWithACK.contract.UnpackLog(event, "ChainAdded", log); err != nil { + return err + } + event.Raw = log + + select { + case sink <- event: + case err := <-sub.Err(): + return err + case <-quit: + return nil + } + case err := <-sub.Err(): + return err + case <-quit: + return nil + } + } + }), nil +} + +func (_CCIPClientWithACK *CCIPClientWithACKFilterer) ParseChainAdded(log types.Log) (*CCIPClientWithACKChainAdded, error) { + event := new(CCIPClientWithACKChainAdded) + if err := _CCIPClientWithACK.contract.UnpackLog(event, "ChainAdded", log); err != nil { + return nil, err + } + event.Raw = log + return event, nil +} + +type CCIPClientWithACKChainRemovedIterator struct { + Event *CCIPClientWithACKChainRemoved + + contract *bind.BoundContract + event string + + logs chan types.Log + sub ethereum.Subscription + done bool + fail error +} + +func (it *CCIPClientWithACKChainRemovedIterator) Next() bool { + + if it.fail != nil { + return false + } + + if it.done { + select { + case log := <-it.logs: + it.Event = new(CCIPClientWithACKChainRemoved) + if err := it.contract.UnpackLog(it.Event, it.event, log); err != nil { + it.fail = err + return false + } + it.Event.Raw = log + return true + + default: + return false + } + } + + select { + case log := <-it.logs: + it.Event = new(CCIPClientWithACKChainRemoved) + if err := it.contract.UnpackLog(it.Event, it.event, log); err != nil { + it.fail = err + return false + } + it.Event.Raw = log + return true + + case err := <-it.sub.Err(): + it.done = true + it.fail = err + return it.Next() + } +} + +func (it *CCIPClientWithACKChainRemovedIterator) Error() error { + return it.fail +} + +func (it *CCIPClientWithACKChainRemovedIterator) Close() error { + it.sub.Unsubscribe() + return nil +} + +type CCIPClientWithACKChainRemoved struct { + RemoveChainSelector uint64 + Raw types.Log +} + +func (_CCIPClientWithACK *CCIPClientWithACKFilterer) FilterChainRemoved(opts *bind.FilterOpts, removeChainSelector []uint64) (*CCIPClientWithACKChainRemovedIterator, error) { + + var removeChainSelectorRule []interface{} + for _, removeChainSelectorItem := range removeChainSelector { + removeChainSelectorRule = append(removeChainSelectorRule, removeChainSelectorItem) + } + + logs, sub, err := _CCIPClientWithACK.contract.FilterLogs(opts, "ChainRemoved", removeChainSelectorRule) + if err != nil { + return nil, err + } + return &CCIPClientWithACKChainRemovedIterator{contract: _CCIPClientWithACK.contract, event: "ChainRemoved", logs: logs, sub: sub}, nil +} + +func (_CCIPClientWithACK *CCIPClientWithACKFilterer) WatchChainRemoved(opts *bind.WatchOpts, sink chan<- *CCIPClientWithACKChainRemoved, removeChainSelector []uint64) (event.Subscription, error) { + + var removeChainSelectorRule []interface{} + for _, removeChainSelectorItem := range removeChainSelector { + removeChainSelectorRule = append(removeChainSelectorRule, removeChainSelectorItem) + } + + logs, sub, err := _CCIPClientWithACK.contract.WatchLogs(opts, "ChainRemoved", removeChainSelectorRule) + if err != nil { + return nil, err + } + return event.NewSubscription(func(quit <-chan struct{}) error { + defer sub.Unsubscribe() + for { + select { + case log := <-logs: + + event := new(CCIPClientWithACKChainRemoved) + if err := _CCIPClientWithACK.contract.UnpackLog(event, "ChainRemoved", log); err != nil { + return err + } + event.Raw = log + + select { + case sink <- event: + case err := <-sub.Err(): + return err + case <-quit: + return nil + } + case err := <-sub.Err(): + return err + case <-quit: + return nil + } + } + }), nil +} + +func (_CCIPClientWithACK *CCIPClientWithACKFilterer) ParseChainRemoved(log types.Log) (*CCIPClientWithACKChainRemoved, error) { + event := new(CCIPClientWithACKChainRemoved) + if err := _CCIPClientWithACK.contract.UnpackLog(event, "ChainRemoved", log); err != nil { + return nil, err + } + event.Raw = log + return event, nil +} + +type CCIPClientWithACKFeeTokenUpdatedIterator struct { + Event *CCIPClientWithACKFeeTokenUpdated + + contract *bind.BoundContract + event string + + logs chan types.Log + sub ethereum.Subscription + done bool + fail error +} + +func (it *CCIPClientWithACKFeeTokenUpdatedIterator) Next() bool { + + if it.fail != nil { + return false + } + + if it.done { + select { + case log := <-it.logs: + it.Event = new(CCIPClientWithACKFeeTokenUpdated) + if err := it.contract.UnpackLog(it.Event, it.event, log); err != nil { + it.fail = err + return false + } + it.Event.Raw = log + return true + + default: + return false + } + } + + select { + case log := <-it.logs: + it.Event = new(CCIPClientWithACKFeeTokenUpdated) + if err := it.contract.UnpackLog(it.Event, it.event, log); err != nil { + it.fail = err + return false + } + it.Event.Raw = log + return true + + case err := <-it.sub.Err(): + it.done = true + it.fail = err + return it.Next() + } +} + +func (it *CCIPClientWithACKFeeTokenUpdatedIterator) Error() error { + return it.fail +} + +func (it *CCIPClientWithACKFeeTokenUpdatedIterator) Close() error { + it.sub.Unsubscribe() + return nil +} + +type CCIPClientWithACKFeeTokenUpdated struct { + OldToken common.Address + NewToken common.Address + Raw types.Log +} + +func (_CCIPClientWithACK *CCIPClientWithACKFilterer) FilterFeeTokenUpdated(opts *bind.FilterOpts, oldToken []common.Address, newToken []common.Address) (*CCIPClientWithACKFeeTokenUpdatedIterator, error) { + + var oldTokenRule []interface{} + for _, oldTokenItem := range oldToken { + oldTokenRule = append(oldTokenRule, oldTokenItem) + } + var newTokenRule []interface{} + for _, newTokenItem := range newToken { + newTokenRule = append(newTokenRule, newTokenItem) + } + + logs, sub, err := _CCIPClientWithACK.contract.FilterLogs(opts, "FeeTokenUpdated", oldTokenRule, newTokenRule) + if err != nil { + return nil, err + } + return &CCIPClientWithACKFeeTokenUpdatedIterator{contract: _CCIPClientWithACK.contract, event: "FeeTokenUpdated", logs: logs, sub: sub}, nil +} + +func (_CCIPClientWithACK *CCIPClientWithACKFilterer) WatchFeeTokenUpdated(opts *bind.WatchOpts, sink chan<- *CCIPClientWithACKFeeTokenUpdated, oldToken []common.Address, newToken []common.Address) (event.Subscription, error) { + + var oldTokenRule []interface{} + for _, oldTokenItem := range oldToken { + oldTokenRule = append(oldTokenRule, oldTokenItem) + } + var newTokenRule []interface{} + for _, newTokenItem := range newToken { + newTokenRule = append(newTokenRule, newTokenItem) + } + + logs, sub, err := _CCIPClientWithACK.contract.WatchLogs(opts, "FeeTokenUpdated", oldTokenRule, newTokenRule) + if err != nil { + return nil, err + } + return event.NewSubscription(func(quit <-chan struct{}) error { + defer sub.Unsubscribe() + for { + select { + case log := <-logs: + + event := new(CCIPClientWithACKFeeTokenUpdated) + if err := _CCIPClientWithACK.contract.UnpackLog(event, "FeeTokenUpdated", log); err != nil { + return err + } + event.Raw = log + + select { + case sink <- event: + case err := <-sub.Err(): + return err + case <-quit: + return nil + } + case err := <-sub.Err(): + return err + case <-quit: + return nil + } + } + }), nil +} + +func (_CCIPClientWithACK *CCIPClientWithACKFilterer) ParseFeeTokenUpdated(log types.Log) (*CCIPClientWithACKFeeTokenUpdated, error) { + event := new(CCIPClientWithACKFeeTokenUpdated) + if err := _CCIPClientWithACK.contract.UnpackLog(event, "FeeTokenUpdated", log); err != nil { + return nil, err + } + event.Raw = log + return event, nil +} + +type CCIPClientWithACKMessageAbandonedIterator struct { + Event *CCIPClientWithACKMessageAbandoned + + contract *bind.BoundContract + event string + + logs chan types.Log + sub ethereum.Subscription + done bool + fail error +} + +func (it *CCIPClientWithACKMessageAbandonedIterator) Next() bool { + + if it.fail != nil { + return false + } + + if it.done { + select { + case log := <-it.logs: + it.Event = new(CCIPClientWithACKMessageAbandoned) + if err := it.contract.UnpackLog(it.Event, it.event, log); err != nil { + it.fail = err + return false + } + it.Event.Raw = log + return true + + default: + return false + } + } + + select { + case log := <-it.logs: + it.Event = new(CCIPClientWithACKMessageAbandoned) + if err := it.contract.UnpackLog(it.Event, it.event, log); err != nil { + it.fail = err + return false + } + it.Event.Raw = log + return true + + case err := <-it.sub.Err(): + it.done = true + it.fail = err + return it.Next() + } +} + +func (it *CCIPClientWithACKMessageAbandonedIterator) Error() error { + return it.fail +} + +func (it *CCIPClientWithACKMessageAbandonedIterator) Close() error { + it.sub.Unsubscribe() + return nil +} + +type CCIPClientWithACKMessageAbandoned struct { + MessageId [32]byte + TokenReceiver common.Address + Raw types.Log +} + +func (_CCIPClientWithACK *CCIPClientWithACKFilterer) FilterMessageAbandoned(opts *bind.FilterOpts, messageId [][32]byte) (*CCIPClientWithACKMessageAbandonedIterator, error) { + + var messageIdRule []interface{} + for _, messageIdItem := range messageId { + messageIdRule = append(messageIdRule, messageIdItem) + } + + logs, sub, err := _CCIPClientWithACK.contract.FilterLogs(opts, "MessageAbandoned", messageIdRule) + if err != nil { + return nil, err + } + return &CCIPClientWithACKMessageAbandonedIterator{contract: _CCIPClientWithACK.contract, event: "MessageAbandoned", logs: logs, sub: sub}, nil +} + +func (_CCIPClientWithACK *CCIPClientWithACKFilterer) WatchMessageAbandoned(opts *bind.WatchOpts, sink chan<- *CCIPClientWithACKMessageAbandoned, messageId [][32]byte) (event.Subscription, error) { + + var messageIdRule []interface{} + for _, messageIdItem := range messageId { + messageIdRule = append(messageIdRule, messageIdItem) + } + + logs, sub, err := _CCIPClientWithACK.contract.WatchLogs(opts, "MessageAbandoned", messageIdRule) + if err != nil { + return nil, err + } + return event.NewSubscription(func(quit <-chan struct{}) error { + defer sub.Unsubscribe() + for { + select { + case log := <-logs: + + event := new(CCIPClientWithACKMessageAbandoned) + if err := _CCIPClientWithACK.contract.UnpackLog(event, "MessageAbandoned", log); err != nil { + return err + } + event.Raw = log + + select { + case sink <- event: + case err := <-sub.Err(): + return err + case <-quit: + return nil + } + case err := <-sub.Err(): + return err + case <-quit: + return nil + } + } + }), nil +} + +func (_CCIPClientWithACK *CCIPClientWithACKFilterer) ParseMessageAbandoned(log types.Log) (*CCIPClientWithACKMessageAbandoned, error) { + event := new(CCIPClientWithACKMessageAbandoned) + if err := _CCIPClientWithACK.contract.UnpackLog(event, "MessageAbandoned", log); err != nil { + return nil, err + } + event.Raw = log + return event, nil +} + +type CCIPClientWithACKMessageAckReceivedIterator struct { + Event *CCIPClientWithACKMessageAckReceived + + contract *bind.BoundContract + event string + + logs chan types.Log + sub ethereum.Subscription + done bool + fail error +} + +func (it *CCIPClientWithACKMessageAckReceivedIterator) Next() bool { + + if it.fail != nil { + return false + } + + if it.done { + select { + case log := <-it.logs: + it.Event = new(CCIPClientWithACKMessageAckReceived) + if err := it.contract.UnpackLog(it.Event, it.event, log); err != nil { + it.fail = err + return false + } + it.Event.Raw = log + return true + + default: + return false + } + } + + select { + case log := <-it.logs: + it.Event = new(CCIPClientWithACKMessageAckReceived) + if err := it.contract.UnpackLog(it.Event, it.event, log); err != nil { + it.fail = err + return false + } + it.Event.Raw = log + return true + + case err := <-it.sub.Err(): + it.done = true + it.fail = err + return it.Next() + } +} + +func (it *CCIPClientWithACKMessageAckReceivedIterator) Error() error { + return it.fail +} + +func (it *CCIPClientWithACKMessageAckReceivedIterator) Close() error { + it.sub.Unsubscribe() + return nil +} + +type CCIPClientWithACKMessageAckReceived struct { + MessageId [32]byte + Raw types.Log +} + +func (_CCIPClientWithACK *CCIPClientWithACKFilterer) FilterMessageAckReceived(opts *bind.FilterOpts) (*CCIPClientWithACKMessageAckReceivedIterator, error) { + + logs, sub, err := _CCIPClientWithACK.contract.FilterLogs(opts, "MessageAckReceived") + if err != nil { + return nil, err + } + return &CCIPClientWithACKMessageAckReceivedIterator{contract: _CCIPClientWithACK.contract, event: "MessageAckReceived", logs: logs, sub: sub}, nil +} + +func (_CCIPClientWithACK *CCIPClientWithACKFilterer) WatchMessageAckReceived(opts *bind.WatchOpts, sink chan<- *CCIPClientWithACKMessageAckReceived) (event.Subscription, error) { + + logs, sub, err := _CCIPClientWithACK.contract.WatchLogs(opts, "MessageAckReceived") + if err != nil { + return nil, err + } + return event.NewSubscription(func(quit <-chan struct{}) error { + defer sub.Unsubscribe() + for { + select { + case log := <-logs: + + event := new(CCIPClientWithACKMessageAckReceived) + if err := _CCIPClientWithACK.contract.UnpackLog(event, "MessageAckReceived", log); err != nil { + return err + } + event.Raw = log + + select { + case sink <- event: + case err := <-sub.Err(): + return err + case <-quit: + return nil + } + case err := <-sub.Err(): + return err + case <-quit: + return nil + } + } + }), nil +} + +func (_CCIPClientWithACK *CCIPClientWithACKFilterer) ParseMessageAckReceived(log types.Log) (*CCIPClientWithACKMessageAckReceived, error) { + event := new(CCIPClientWithACKMessageAckReceived) + if err := _CCIPClientWithACK.contract.UnpackLog(event, "MessageAckReceived", log); err != nil { + return nil, err + } + event.Raw = log + return event, nil +} + +type CCIPClientWithACKMessageAckSentIterator struct { + Event *CCIPClientWithACKMessageAckSent + + contract *bind.BoundContract + event string + + logs chan types.Log + sub ethereum.Subscription + done bool + fail error +} + +func (it *CCIPClientWithACKMessageAckSentIterator) Next() bool { + + if it.fail != nil { + return false + } + + if it.done { + select { + case log := <-it.logs: + it.Event = new(CCIPClientWithACKMessageAckSent) + if err := it.contract.UnpackLog(it.Event, it.event, log); err != nil { + it.fail = err + return false + } + it.Event.Raw = log + return true + + default: + return false + } + } + + select { + case log := <-it.logs: + it.Event = new(CCIPClientWithACKMessageAckSent) + if err := it.contract.UnpackLog(it.Event, it.event, log); err != nil { + it.fail = err + return false + } + it.Event.Raw = log + return true + + case err := <-it.sub.Err(): + it.done = true + it.fail = err + return it.Next() + } +} + +func (it *CCIPClientWithACKMessageAckSentIterator) Error() error { + return it.fail +} + +func (it *CCIPClientWithACKMessageAckSentIterator) Close() error { + it.sub.Unsubscribe() + return nil +} + +type CCIPClientWithACKMessageAckSent struct { + IncomingMessageId [32]byte + Raw types.Log +} + +func (_CCIPClientWithACK *CCIPClientWithACKFilterer) FilterMessageAckSent(opts *bind.FilterOpts) (*CCIPClientWithACKMessageAckSentIterator, error) { + + logs, sub, err := _CCIPClientWithACK.contract.FilterLogs(opts, "MessageAckSent") + if err != nil { + return nil, err + } + return &CCIPClientWithACKMessageAckSentIterator{contract: _CCIPClientWithACK.contract, event: "MessageAckSent", logs: logs, sub: sub}, nil +} + +func (_CCIPClientWithACK *CCIPClientWithACKFilterer) WatchMessageAckSent(opts *bind.WatchOpts, sink chan<- *CCIPClientWithACKMessageAckSent) (event.Subscription, error) { + + logs, sub, err := _CCIPClientWithACK.contract.WatchLogs(opts, "MessageAckSent") + if err != nil { + return nil, err + } + return event.NewSubscription(func(quit <-chan struct{}) error { + defer sub.Unsubscribe() + for { + select { + case log := <-logs: + + event := new(CCIPClientWithACKMessageAckSent) + if err := _CCIPClientWithACK.contract.UnpackLog(event, "MessageAckSent", log); err != nil { + return err + } + event.Raw = log + + select { + case sink <- event: + case err := <-sub.Err(): + return err + case <-quit: + return nil + } + case err := <-sub.Err(): + return err + case <-quit: + return nil + } + } + }), nil +} + +func (_CCIPClientWithACK *CCIPClientWithACKFilterer) ParseMessageAckSent(log types.Log) (*CCIPClientWithACKMessageAckSent, error) { + event := new(CCIPClientWithACKMessageAckSent) + if err := _CCIPClientWithACK.contract.UnpackLog(event, "MessageAckSent", log); err != nil { + return nil, err + } + event.Raw = log + return event, nil +} + +type CCIPClientWithACKMessageFailedIterator struct { + Event *CCIPClientWithACKMessageFailed + + contract *bind.BoundContract + event string + + logs chan types.Log + sub ethereum.Subscription + done bool + fail error +} + +func (it *CCIPClientWithACKMessageFailedIterator) Next() bool { + + if it.fail != nil { + return false + } + + if it.done { + select { + case log := <-it.logs: + it.Event = new(CCIPClientWithACKMessageFailed) + if err := it.contract.UnpackLog(it.Event, it.event, log); err != nil { + it.fail = err + return false + } + it.Event.Raw = log + return true + + default: + return false + } + } + + select { + case log := <-it.logs: + it.Event = new(CCIPClientWithACKMessageFailed) + if err := it.contract.UnpackLog(it.Event, it.event, log); err != nil { + it.fail = err + return false + } + it.Event.Raw = log + return true + + case err := <-it.sub.Err(): + it.done = true + it.fail = err + return it.Next() + } +} + +func (it *CCIPClientWithACKMessageFailedIterator) Error() error { + return it.fail +} + +func (it *CCIPClientWithACKMessageFailedIterator) Close() error { + it.sub.Unsubscribe() + return nil +} + +type CCIPClientWithACKMessageFailed struct { + MessageId [32]byte + Reason []byte + Raw types.Log +} + +func (_CCIPClientWithACK *CCIPClientWithACKFilterer) FilterMessageFailed(opts *bind.FilterOpts, messageId [][32]byte) (*CCIPClientWithACKMessageFailedIterator, error) { + + var messageIdRule []interface{} + for _, messageIdItem := range messageId { + messageIdRule = append(messageIdRule, messageIdItem) + } + + logs, sub, err := _CCIPClientWithACK.contract.FilterLogs(opts, "MessageFailed", messageIdRule) + if err != nil { + return nil, err + } + return &CCIPClientWithACKMessageFailedIterator{contract: _CCIPClientWithACK.contract, event: "MessageFailed", logs: logs, sub: sub}, nil +} + +func (_CCIPClientWithACK *CCIPClientWithACKFilterer) WatchMessageFailed(opts *bind.WatchOpts, sink chan<- *CCIPClientWithACKMessageFailed, messageId [][32]byte) (event.Subscription, error) { + + var messageIdRule []interface{} + for _, messageIdItem := range messageId { + messageIdRule = append(messageIdRule, messageIdItem) + } + + logs, sub, err := _CCIPClientWithACK.contract.WatchLogs(opts, "MessageFailed", messageIdRule) + if err != nil { + return nil, err + } + return event.NewSubscription(func(quit <-chan struct{}) error { + defer sub.Unsubscribe() + for { + select { + case log := <-logs: + + event := new(CCIPClientWithACKMessageFailed) + if err := _CCIPClientWithACK.contract.UnpackLog(event, "MessageFailed", log); err != nil { + return err + } + event.Raw = log + + select { + case sink <- event: + case err := <-sub.Err(): + return err + case <-quit: + return nil + } + case err := <-sub.Err(): + return err + case <-quit: + return nil + } + } + }), nil +} + +func (_CCIPClientWithACK *CCIPClientWithACKFilterer) ParseMessageFailed(log types.Log) (*CCIPClientWithACKMessageFailed, error) { + event := new(CCIPClientWithACKMessageFailed) + if err := _CCIPClientWithACK.contract.UnpackLog(event, "MessageFailed", log); err != nil { + return nil, err + } + event.Raw = log + return event, nil +} + +type CCIPClientWithACKMessageRecoveredIterator struct { + Event *CCIPClientWithACKMessageRecovered + + contract *bind.BoundContract + event string + + logs chan types.Log + sub ethereum.Subscription + done bool + fail error +} + +func (it *CCIPClientWithACKMessageRecoveredIterator) Next() bool { + + if it.fail != nil { + return false + } + + if it.done { + select { + case log := <-it.logs: + it.Event = new(CCIPClientWithACKMessageRecovered) + if err := it.contract.UnpackLog(it.Event, it.event, log); err != nil { + it.fail = err + return false + } + it.Event.Raw = log + return true + + default: + return false + } + } + + select { + case log := <-it.logs: + it.Event = new(CCIPClientWithACKMessageRecovered) + if err := it.contract.UnpackLog(it.Event, it.event, log); err != nil { + it.fail = err + return false + } + it.Event.Raw = log + return true + + case err := <-it.sub.Err(): + it.done = true + it.fail = err + return it.Next() + } +} + +func (it *CCIPClientWithACKMessageRecoveredIterator) Error() error { + return it.fail +} + +func (it *CCIPClientWithACKMessageRecoveredIterator) Close() error { + it.sub.Unsubscribe() + return nil +} + +type CCIPClientWithACKMessageRecovered struct { + MessageId [32]byte + Raw types.Log +} + +func (_CCIPClientWithACK *CCIPClientWithACKFilterer) FilterMessageRecovered(opts *bind.FilterOpts, messageId [][32]byte) (*CCIPClientWithACKMessageRecoveredIterator, error) { + + var messageIdRule []interface{} + for _, messageIdItem := range messageId { + messageIdRule = append(messageIdRule, messageIdItem) + } + + logs, sub, err := _CCIPClientWithACK.contract.FilterLogs(opts, "MessageRecovered", messageIdRule) + if err != nil { + return nil, err + } + return &CCIPClientWithACKMessageRecoveredIterator{contract: _CCIPClientWithACK.contract, event: "MessageRecovered", logs: logs, sub: sub}, nil +} + +func (_CCIPClientWithACK *CCIPClientWithACKFilterer) WatchMessageRecovered(opts *bind.WatchOpts, sink chan<- *CCIPClientWithACKMessageRecovered, messageId [][32]byte) (event.Subscription, error) { + + var messageIdRule []interface{} + for _, messageIdItem := range messageId { + messageIdRule = append(messageIdRule, messageIdItem) + } + + logs, sub, err := _CCIPClientWithACK.contract.WatchLogs(opts, "MessageRecovered", messageIdRule) + if err != nil { + return nil, err + } + return event.NewSubscription(func(quit <-chan struct{}) error { + defer sub.Unsubscribe() + for { + select { + case log := <-logs: + + event := new(CCIPClientWithACKMessageRecovered) + if err := _CCIPClientWithACK.contract.UnpackLog(event, "MessageRecovered", log); err != nil { + return err + } + event.Raw = log + + select { + case sink <- event: + case err := <-sub.Err(): + return err + case <-quit: + return nil + } + case err := <-sub.Err(): + return err + case <-quit: + return nil + } + } + }), nil +} + +func (_CCIPClientWithACK *CCIPClientWithACKFilterer) ParseMessageRecovered(log types.Log) (*CCIPClientWithACKMessageRecovered, error) { + event := new(CCIPClientWithACKMessageRecovered) + if err := _CCIPClientWithACK.contract.UnpackLog(event, "MessageRecovered", log); err != nil { + return nil, err + } + event.Raw = log + return event, nil +} + +type CCIPClientWithACKMessageSentIterator struct { + Event *CCIPClientWithACKMessageSent + + contract *bind.BoundContract + event string + + logs chan types.Log + sub ethereum.Subscription + done bool + fail error +} + +func (it *CCIPClientWithACKMessageSentIterator) Next() bool { + + if it.fail != nil { + return false + } + + if it.done { + select { + case log := <-it.logs: + it.Event = new(CCIPClientWithACKMessageSent) + if err := it.contract.UnpackLog(it.Event, it.event, log); err != nil { + it.fail = err + return false + } + it.Event.Raw = log + return true + + default: + return false + } + } + + select { + case log := <-it.logs: + it.Event = new(CCIPClientWithACKMessageSent) + if err := it.contract.UnpackLog(it.Event, it.event, log); err != nil { + it.fail = err + return false + } + it.Event.Raw = log + return true + + case err := <-it.sub.Err(): + it.done = true + it.fail = err + return it.Next() + } +} + +func (it *CCIPClientWithACKMessageSentIterator) Error() error { + return it.fail +} + +func (it *CCIPClientWithACKMessageSentIterator) Close() error { + it.sub.Unsubscribe() + return nil +} + +type CCIPClientWithACKMessageSent struct { + IncomingMessageId [32]byte + ACKMessageId [32]byte + Raw types.Log +} + +func (_CCIPClientWithACK *CCIPClientWithACKFilterer) FilterMessageSent(opts *bind.FilterOpts, incomingMessageId [][32]byte, ACKMessageId [][32]byte) (*CCIPClientWithACKMessageSentIterator, error) { + + var incomingMessageIdRule []interface{} + for _, incomingMessageIdItem := range incomingMessageId { + incomingMessageIdRule = append(incomingMessageIdRule, incomingMessageIdItem) + } + var ACKMessageIdRule []interface{} + for _, ACKMessageIdItem := range ACKMessageId { + ACKMessageIdRule = append(ACKMessageIdRule, ACKMessageIdItem) + } + + logs, sub, err := _CCIPClientWithACK.contract.FilterLogs(opts, "MessageSent", incomingMessageIdRule, ACKMessageIdRule) + if err != nil { + return nil, err + } + return &CCIPClientWithACKMessageSentIterator{contract: _CCIPClientWithACK.contract, event: "MessageSent", logs: logs, sub: sub}, nil +} + +func (_CCIPClientWithACK *CCIPClientWithACKFilterer) WatchMessageSent(opts *bind.WatchOpts, sink chan<- *CCIPClientWithACKMessageSent, incomingMessageId [][32]byte, ACKMessageId [][32]byte) (event.Subscription, error) { + + var incomingMessageIdRule []interface{} + for _, incomingMessageIdItem := range incomingMessageId { + incomingMessageIdRule = append(incomingMessageIdRule, incomingMessageIdItem) + } + var ACKMessageIdRule []interface{} + for _, ACKMessageIdItem := range ACKMessageId { + ACKMessageIdRule = append(ACKMessageIdRule, ACKMessageIdItem) + } + + logs, sub, err := _CCIPClientWithACK.contract.WatchLogs(opts, "MessageSent", incomingMessageIdRule, ACKMessageIdRule) + if err != nil { + return nil, err + } + return event.NewSubscription(func(quit <-chan struct{}) error { + defer sub.Unsubscribe() + for { + select { + case log := <-logs: + + event := new(CCIPClientWithACKMessageSent) + if err := _CCIPClientWithACK.contract.UnpackLog(event, "MessageSent", log); err != nil { + return err + } + event.Raw = log + + select { + case sink <- event: + case err := <-sub.Err(): + return err + case <-quit: + return nil + } + case err := <-sub.Err(): + return err + case <-quit: + return nil + } + } + }), nil +} + +func (_CCIPClientWithACK *CCIPClientWithACKFilterer) ParseMessageSent(log types.Log) (*CCIPClientWithACKMessageSent, error) { + event := new(CCIPClientWithACKMessageSent) + if err := _CCIPClientWithACK.contract.UnpackLog(event, "MessageSent", log); err != nil { + return nil, err + } + event.Raw = log + return event, nil +} + +type CCIPClientWithACKMessageSucceededIterator struct { + Event *CCIPClientWithACKMessageSucceeded + + contract *bind.BoundContract + event string + + logs chan types.Log + sub ethereum.Subscription + done bool + fail error +} + +func (it *CCIPClientWithACKMessageSucceededIterator) Next() bool { + + if it.fail != nil { + return false + } + + if it.done { + select { + case log := <-it.logs: + it.Event = new(CCIPClientWithACKMessageSucceeded) + if err := it.contract.UnpackLog(it.Event, it.event, log); err != nil { + it.fail = err + return false + } + it.Event.Raw = log + return true + + default: + return false + } + } + + select { + case log := <-it.logs: + it.Event = new(CCIPClientWithACKMessageSucceeded) + if err := it.contract.UnpackLog(it.Event, it.event, log); err != nil { + it.fail = err + return false + } + it.Event.Raw = log + return true + + case err := <-it.sub.Err(): + it.done = true + it.fail = err + return it.Next() + } +} + +func (it *CCIPClientWithACKMessageSucceededIterator) Error() error { + return it.fail +} + +func (it *CCIPClientWithACKMessageSucceededIterator) Close() error { + it.sub.Unsubscribe() + return nil +} + +type CCIPClientWithACKMessageSucceeded struct { + MessageId [32]byte + Raw types.Log +} + +func (_CCIPClientWithACK *CCIPClientWithACKFilterer) FilterMessageSucceeded(opts *bind.FilterOpts, messageId [][32]byte) (*CCIPClientWithACKMessageSucceededIterator, error) { + + var messageIdRule []interface{} + for _, messageIdItem := range messageId { + messageIdRule = append(messageIdRule, messageIdItem) + } + + logs, sub, err := _CCIPClientWithACK.contract.FilterLogs(opts, "MessageSucceeded", messageIdRule) + if err != nil { + return nil, err + } + return &CCIPClientWithACKMessageSucceededIterator{contract: _CCIPClientWithACK.contract, event: "MessageSucceeded", logs: logs, sub: sub}, nil +} + +func (_CCIPClientWithACK *CCIPClientWithACKFilterer) WatchMessageSucceeded(opts *bind.WatchOpts, sink chan<- *CCIPClientWithACKMessageSucceeded, messageId [][32]byte) (event.Subscription, error) { + + var messageIdRule []interface{} + for _, messageIdItem := range messageId { + messageIdRule = append(messageIdRule, messageIdItem) + } + + logs, sub, err := _CCIPClientWithACK.contract.WatchLogs(opts, "MessageSucceeded", messageIdRule) + if err != nil { + return nil, err + } + return event.NewSubscription(func(quit <-chan struct{}) error { + defer sub.Unsubscribe() + for { + select { + case log := <-logs: + + event := new(CCIPClientWithACKMessageSucceeded) + if err := _CCIPClientWithACK.contract.UnpackLog(event, "MessageSucceeded", log); err != nil { + return err + } + event.Raw = log + + select { + case sink <- event: + case err := <-sub.Err(): + return err + case <-quit: + return nil + } + case err := <-sub.Err(): + return err + case <-quit: + return nil + } + } + }), nil +} + +func (_CCIPClientWithACK *CCIPClientWithACKFilterer) ParseMessageSucceeded(log types.Log) (*CCIPClientWithACKMessageSucceeded, error) { + event := new(CCIPClientWithACKMessageSucceeded) + if err := _CCIPClientWithACK.contract.UnpackLog(event, "MessageSucceeded", log); err != nil { + return nil, err + } + event.Raw = log + return event, nil +} + +type CCIPClientWithACKOwnershipTransferRequestedIterator struct { + Event *CCIPClientWithACKOwnershipTransferRequested + + contract *bind.BoundContract + event string + + logs chan types.Log + sub ethereum.Subscription + done bool + fail error +} + +func (it *CCIPClientWithACKOwnershipTransferRequestedIterator) Next() bool { + + if it.fail != nil { + return false + } + + if it.done { + select { + case log := <-it.logs: + it.Event = new(CCIPClientWithACKOwnershipTransferRequested) + if err := it.contract.UnpackLog(it.Event, it.event, log); err != nil { + it.fail = err + return false + } + it.Event.Raw = log + return true + + default: + return false + } + } + + select { + case log := <-it.logs: + it.Event = new(CCIPClientWithACKOwnershipTransferRequested) + if err := it.contract.UnpackLog(it.Event, it.event, log); err != nil { + it.fail = err + return false + } + it.Event.Raw = log + return true + + case err := <-it.sub.Err(): + it.done = true + it.fail = err + return it.Next() + } +} + +func (it *CCIPClientWithACKOwnershipTransferRequestedIterator) Error() error { + return it.fail +} + +func (it *CCIPClientWithACKOwnershipTransferRequestedIterator) Close() error { + it.sub.Unsubscribe() + return nil +} + +type CCIPClientWithACKOwnershipTransferRequested struct { + From common.Address + To common.Address + Raw types.Log +} + +func (_CCIPClientWithACK *CCIPClientWithACKFilterer) FilterOwnershipTransferRequested(opts *bind.FilterOpts, from []common.Address, to []common.Address) (*CCIPClientWithACKOwnershipTransferRequestedIterator, error) { + + var fromRule []interface{} + for _, fromItem := range from { + fromRule = append(fromRule, fromItem) + } + var toRule []interface{} + for _, toItem := range to { + toRule = append(toRule, toItem) + } + + logs, sub, err := _CCIPClientWithACK.contract.FilterLogs(opts, "OwnershipTransferRequested", fromRule, toRule) + if err != nil { + return nil, err + } + return &CCIPClientWithACKOwnershipTransferRequestedIterator{contract: _CCIPClientWithACK.contract, event: "OwnershipTransferRequested", logs: logs, sub: sub}, nil +} + +func (_CCIPClientWithACK *CCIPClientWithACKFilterer) WatchOwnershipTransferRequested(opts *bind.WatchOpts, sink chan<- *CCIPClientWithACKOwnershipTransferRequested, from []common.Address, to []common.Address) (event.Subscription, error) { + + var fromRule []interface{} + for _, fromItem := range from { + fromRule = append(fromRule, fromItem) + } + var toRule []interface{} + for _, toItem := range to { + toRule = append(toRule, toItem) + } + + logs, sub, err := _CCIPClientWithACK.contract.WatchLogs(opts, "OwnershipTransferRequested", fromRule, toRule) + if err != nil { + return nil, err + } + return event.NewSubscription(func(quit <-chan struct{}) error { + defer sub.Unsubscribe() + for { + select { + case log := <-logs: + + event := new(CCIPClientWithACKOwnershipTransferRequested) + if err := _CCIPClientWithACK.contract.UnpackLog(event, "OwnershipTransferRequested", log); err != nil { + return err + } + event.Raw = log + + select { + case sink <- event: + case err := <-sub.Err(): + return err + case <-quit: + return nil + } + case err := <-sub.Err(): + return err + case <-quit: + return nil + } + } + }), nil +} + +func (_CCIPClientWithACK *CCIPClientWithACKFilterer) ParseOwnershipTransferRequested(log types.Log) (*CCIPClientWithACKOwnershipTransferRequested, error) { + event := new(CCIPClientWithACKOwnershipTransferRequested) + if err := _CCIPClientWithACK.contract.UnpackLog(event, "OwnershipTransferRequested", log); err != nil { + return nil, err + } + event.Raw = log + return event, nil +} + +type CCIPClientWithACKOwnershipTransferredIterator struct { + Event *CCIPClientWithACKOwnershipTransferred + + contract *bind.BoundContract + event string + + logs chan types.Log + sub ethereum.Subscription + done bool + fail error +} + +func (it *CCIPClientWithACKOwnershipTransferredIterator) Next() bool { + + if it.fail != nil { + return false + } + + if it.done { + select { + case log := <-it.logs: + it.Event = new(CCIPClientWithACKOwnershipTransferred) + if err := it.contract.UnpackLog(it.Event, it.event, log); err != nil { + it.fail = err + return false + } + it.Event.Raw = log + return true + + default: + return false + } + } + + select { + case log := <-it.logs: + it.Event = new(CCIPClientWithACKOwnershipTransferred) + if err := it.contract.UnpackLog(it.Event, it.event, log); err != nil { + it.fail = err + return false + } + it.Event.Raw = log + return true + + case err := <-it.sub.Err(): + it.done = true + it.fail = err + return it.Next() + } +} + +func (it *CCIPClientWithACKOwnershipTransferredIterator) Error() error { + return it.fail +} + +func (it *CCIPClientWithACKOwnershipTransferredIterator) Close() error { + it.sub.Unsubscribe() + return nil +} + +type CCIPClientWithACKOwnershipTransferred struct { + From common.Address + To common.Address + Raw types.Log +} + +func (_CCIPClientWithACK *CCIPClientWithACKFilterer) FilterOwnershipTransferred(opts *bind.FilterOpts, from []common.Address, to []common.Address) (*CCIPClientWithACKOwnershipTransferredIterator, error) { + + var fromRule []interface{} + for _, fromItem := range from { + fromRule = append(fromRule, fromItem) + } + var toRule []interface{} + for _, toItem := range to { + toRule = append(toRule, toItem) + } + + logs, sub, err := _CCIPClientWithACK.contract.FilterLogs(opts, "OwnershipTransferred", fromRule, toRule) + if err != nil { + return nil, err + } + return &CCIPClientWithACKOwnershipTransferredIterator{contract: _CCIPClientWithACK.contract, event: "OwnershipTransferred", logs: logs, sub: sub}, nil +} + +func (_CCIPClientWithACK *CCIPClientWithACKFilterer) WatchOwnershipTransferred(opts *bind.WatchOpts, sink chan<- *CCIPClientWithACKOwnershipTransferred, from []common.Address, to []common.Address) (event.Subscription, error) { + + var fromRule []interface{} + for _, fromItem := range from { + fromRule = append(fromRule, fromItem) + } + var toRule []interface{} + for _, toItem := range to { + toRule = append(toRule, toItem) + } + + logs, sub, err := _CCIPClientWithACK.contract.WatchLogs(opts, "OwnershipTransferred", fromRule, toRule) + if err != nil { + return nil, err + } + return event.NewSubscription(func(quit <-chan struct{}) error { + defer sub.Unsubscribe() + for { + select { + case log := <-logs: + + event := new(CCIPClientWithACKOwnershipTransferred) + if err := _CCIPClientWithACK.contract.UnpackLog(event, "OwnershipTransferred", log); err != nil { + return err + } + event.Raw = log + + select { + case sink <- event: + case err := <-sub.Err(): + return err + case <-quit: + return nil + } + case err := <-sub.Err(): + return err + case <-quit: + return nil + } + } + }), nil +} + +func (_CCIPClientWithACK *CCIPClientWithACKFilterer) ParseOwnershipTransferred(log types.Log) (*CCIPClientWithACKOwnershipTransferred, error) { + event := new(CCIPClientWithACKOwnershipTransferred) + if err := _CCIPClientWithACK.contract.UnpackLog(event, "OwnershipTransferred", log); err != nil { + return nil, err + } + event.Raw = log + return event, nil +} + +type CCIPClientWithACKTokensWithdrawnByOwnerIterator struct { + Event *CCIPClientWithACKTokensWithdrawnByOwner + + contract *bind.BoundContract + event string + + logs chan types.Log + sub ethereum.Subscription + done bool + fail error +} + +func (it *CCIPClientWithACKTokensWithdrawnByOwnerIterator) Next() bool { + + if it.fail != nil { + return false + } + + if it.done { + select { + case log := <-it.logs: + it.Event = new(CCIPClientWithACKTokensWithdrawnByOwner) + if err := it.contract.UnpackLog(it.Event, it.event, log); err != nil { + it.fail = err + return false + } + it.Event.Raw = log + return true + + default: + return false + } + } + + select { + case log := <-it.logs: + it.Event = new(CCIPClientWithACKTokensWithdrawnByOwner) + if err := it.contract.UnpackLog(it.Event, it.event, log); err != nil { + it.fail = err + return false + } + it.Event.Raw = log + return true + + case err := <-it.sub.Err(): + it.done = true + it.fail = err + return it.Next() + } +} + +func (it *CCIPClientWithACKTokensWithdrawnByOwnerIterator) Error() error { + return it.fail +} + +func (it *CCIPClientWithACKTokensWithdrawnByOwnerIterator) Close() error { + it.sub.Unsubscribe() + return nil +} + +type CCIPClientWithACKTokensWithdrawnByOwner struct { + Token common.Address + To common.Address + Amount *big.Int + Raw types.Log +} + +func (_CCIPClientWithACK *CCIPClientWithACKFilterer) FilterTokensWithdrawnByOwner(opts *bind.FilterOpts, token []common.Address, to []common.Address) (*CCIPClientWithACKTokensWithdrawnByOwnerIterator, error) { + + var tokenRule []interface{} + for _, tokenItem := range token { + tokenRule = append(tokenRule, tokenItem) + } + var toRule []interface{} + for _, toItem := range to { + toRule = append(toRule, toItem) + } + + logs, sub, err := _CCIPClientWithACK.contract.FilterLogs(opts, "TokensWithdrawnByOwner", tokenRule, toRule) + if err != nil { + return nil, err + } + return &CCIPClientWithACKTokensWithdrawnByOwnerIterator{contract: _CCIPClientWithACK.contract, event: "TokensWithdrawnByOwner", logs: logs, sub: sub}, nil +} + +func (_CCIPClientWithACK *CCIPClientWithACKFilterer) WatchTokensWithdrawnByOwner(opts *bind.WatchOpts, sink chan<- *CCIPClientWithACKTokensWithdrawnByOwner, token []common.Address, to []common.Address) (event.Subscription, error) { + + var tokenRule []interface{} + for _, tokenItem := range token { + tokenRule = append(tokenRule, tokenItem) + } + var toRule []interface{} + for _, toItem := range to { + toRule = append(toRule, toItem) + } + + logs, sub, err := _CCIPClientWithACK.contract.WatchLogs(opts, "TokensWithdrawnByOwner", tokenRule, toRule) + if err != nil { + return nil, err + } + return event.NewSubscription(func(quit <-chan struct{}) error { + defer sub.Unsubscribe() + for { + select { + case log := <-logs: + + event := new(CCIPClientWithACKTokensWithdrawnByOwner) + if err := _CCIPClientWithACK.contract.UnpackLog(event, "TokensWithdrawnByOwner", log); err != nil { + return err + } + event.Raw = log + + select { + case sink <- event: + case err := <-sub.Err(): + return err + case <-quit: + return nil + } + case err := <-sub.Err(): + return err + case <-quit: + return nil + } + } + }), nil +} + +func (_CCIPClientWithACK *CCIPClientWithACKFilterer) ParseTokensWithdrawnByOwner(log types.Log) (*CCIPClientWithACKTokensWithdrawnByOwner, error) { + event := new(CCIPClientWithACKTokensWithdrawnByOwner) + if err := _CCIPClientWithACK.contract.UnpackLog(event, "TokensWithdrawnByOwner", log); err != nil { + return nil, err + } + event.Raw = log + return event, nil +} + +type SChainConfigs struct { + Recipient []byte + ExtraArgsBytes []byte +} + +func (_CCIPClientWithACK *CCIPClientWithACK) ParseLog(log types.Log) (generated.AbigenLog, error) { + switch log.Topics[0] { + case _CCIPClientWithACK.abi.Events["ApprovedSenderAdded"].ID: + return _CCIPClientWithACK.ParseApprovedSenderAdded(log) + case _CCIPClientWithACK.abi.Events["ApprovedSenderRemoved"].ID: + return _CCIPClientWithACK.ParseApprovedSenderRemoved(log) + case _CCIPClientWithACK.abi.Events["CCIPRouterModified"].ID: + return _CCIPClientWithACK.ParseCCIPRouterModified(log) + case _CCIPClientWithACK.abi.Events["ChainAdded"].ID: + return _CCIPClientWithACK.ParseChainAdded(log) + case _CCIPClientWithACK.abi.Events["ChainRemoved"].ID: + return _CCIPClientWithACK.ParseChainRemoved(log) + case _CCIPClientWithACK.abi.Events["FeeTokenUpdated"].ID: + return _CCIPClientWithACK.ParseFeeTokenUpdated(log) + case _CCIPClientWithACK.abi.Events["MessageAbandoned"].ID: + return _CCIPClientWithACK.ParseMessageAbandoned(log) + case _CCIPClientWithACK.abi.Events["MessageAckReceived"].ID: + return _CCIPClientWithACK.ParseMessageAckReceived(log) + case _CCIPClientWithACK.abi.Events["MessageAckSent"].ID: + return _CCIPClientWithACK.ParseMessageAckSent(log) + case _CCIPClientWithACK.abi.Events["MessageFailed"].ID: + return _CCIPClientWithACK.ParseMessageFailed(log) + case _CCIPClientWithACK.abi.Events["MessageRecovered"].ID: + return _CCIPClientWithACK.ParseMessageRecovered(log) + case _CCIPClientWithACK.abi.Events["MessageSent"].ID: + return _CCIPClientWithACK.ParseMessageSent(log) + case _CCIPClientWithACK.abi.Events["MessageSucceeded"].ID: + return _CCIPClientWithACK.ParseMessageSucceeded(log) + case _CCIPClientWithACK.abi.Events["OwnershipTransferRequested"].ID: + return _CCIPClientWithACK.ParseOwnershipTransferRequested(log) + case _CCIPClientWithACK.abi.Events["OwnershipTransferred"].ID: + return _CCIPClientWithACK.ParseOwnershipTransferred(log) + case _CCIPClientWithACK.abi.Events["TokensWithdrawnByOwner"].ID: + return _CCIPClientWithACK.ParseTokensWithdrawnByOwner(log) + + default: + return nil, fmt.Errorf("abigen wrapper received unknown log topic: %v", log.Topics[0]) + } +} + +func (CCIPClientWithACKApprovedSenderAdded) Topic() common.Hash { + return common.HexToHash("0x72d9f73bb7cb11065e15df29d61e803a0eba356d509a7025a6f51ebdea07f9e7") +} + +func (CCIPClientWithACKApprovedSenderRemoved) Topic() common.Hash { + return common.HexToHash("0x021290bab0d93f4d9a243bd430e45dd4bc8238451e9abbba6fab4463677dfce9") +} + +func (CCIPClientWithACKCCIPRouterModified) Topic() common.Hash { + return common.HexToHash("0x3672b589036f39ac008505b790fcb05d484d70b65680ec64c089a3c173fdc4c8") +} + +func (CCIPClientWithACKChainAdded) Topic() common.Hash { + return common.HexToHash("0x1ced5bcae649ed29cebfa0010298ad6794bf3822e8cb754a6eee5353a9a87212") +} + +func (CCIPClientWithACKChainRemoved) Topic() common.Hash { + return common.HexToHash("0x5204aec90a3c794d8e90fded8b46ae9c7c552803e7e832e0c1d358396d859916") +} + +func (CCIPClientWithACKFeeTokenUpdated) Topic() common.Hash { + return common.HexToHash("0x91a03e1d689caf891fe531c01e290f7b718f9c6a3af6726d6d837d2b7bd82e67") +} + +func (CCIPClientWithACKMessageAbandoned) Topic() common.Hash { + return common.HexToHash("0xd5038100bd3dc9631d3c3f4f61a3e53e9d466f40c47af9897292c7b35e32a957") +} + +func (CCIPClientWithACKMessageAckReceived) Topic() common.Hash { + return common.HexToHash("0xef0cb160d3dc564cde61ae97d9981f9c4d92ace727a2ec202b18b223ea832a79") +} + +func (CCIPClientWithACKMessageAckSent) Topic() common.Hash { + return common.HexToHash("0x75944f95ba0be568cb30faeb0ef135cb73d07006939da29722d670a97f5c5b26") +} + +func (CCIPClientWithACKMessageFailed) Topic() common.Hash { + return common.HexToHash("0x55bc02a9ef6f146737edeeb425738006f67f077e7138de3bf84a15bde1a5b56f") +} + +func (CCIPClientWithACKMessageRecovered) Topic() common.Hash { + return common.HexToHash("0xef3bf8c64bc480286c4f3503b870ceb23e648d2d902e31fb7bb46680da6de8ad") +} + +func (CCIPClientWithACKMessageSent) Topic() common.Hash { + return common.HexToHash("0x9102b9031c3c59d8320bf14d84d7d7a3434366b91032fad1c87579cfc62b2372") +} + +func (CCIPClientWithACKMessageSucceeded) Topic() common.Hash { + return common.HexToHash("0xdf6958669026659bac75ba986685e11a7d271284989f565f2802522663e9a70f") +} + +func (CCIPClientWithACKOwnershipTransferRequested) Topic() common.Hash { + return common.HexToHash("0xed8889f560326eb138920d842192f0eb3dd22b4f139c87a2c57538e05bae1278") +} + +func (CCIPClientWithACKOwnershipTransferred) Topic() common.Hash { + return common.HexToHash("0x8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0") +} + +func (CCIPClientWithACKTokensWithdrawnByOwner) Topic() common.Hash { + return common.HexToHash("0x6832d9be2410a86571981e1e60fd4c1f9ea2a1034d6102a2b7d6c5e480adf02e") +} + +func (_CCIPClientWithACK *CCIPClientWithACK) Address() common.Address { + return _CCIPClientWithACK.address +} + +type CCIPClientWithACKInterface interface { + ACKMESSAGEHEADER(opts *bind.CallOpts) (string, error) + + GetMessageContents(opts *bind.CallOpts, messageId [32]byte) (ClientAny2EVMMessage, error) + + GetMessageStatus(opts *bind.CallOpts, messageId [32]byte) (*big.Int, error) + + GetRouter(opts *bind.CallOpts) (common.Address, error) + + IsApprovedSender(opts *bind.CallOpts, sourceChainSelector uint64, senderAddr []byte) (bool, error) + + Owner(opts *bind.CallOpts) (common.Address, error) + + SChainConfigs(opts *bind.CallOpts, destChainSelector uint64) (SChainConfigs, + + error) + + SFeeToken(opts *bind.CallOpts) (common.Address, error) + + SMessageStatus(opts *bind.CallOpts, messageId [32]byte) (uint8, error) + + AbandonFailedMessage(opts *bind.TransactOpts, messageId [32]byte, receiver common.Address) (*types.Transaction, error) + + AcceptOwnership(opts *bind.TransactOpts) (*types.Transaction, error) + + ApplyChainUpdates(opts *bind.TransactOpts, chains []CCIPBaseChainUpdate) (*types.Transaction, error) + + CcipReceive(opts *bind.TransactOpts, message ClientAny2EVMMessage) (*types.Transaction, error) + + CcipSend(opts *bind.TransactOpts, destChainSelector uint64, tokenAmounts []ClientEVMTokenAmount, data []byte) (*types.Transaction, error) + + ProcessMessage(opts *bind.TransactOpts, message ClientAny2EVMMessage) (*types.Transaction, error) + + RetryFailedMessage(opts *bind.TransactOpts, messageId [32]byte) (*types.Transaction, error) + + TransferOwnership(opts *bind.TransactOpts, to common.Address) (*types.Transaction, error) + + UpdateApprovedSenders(opts *bind.TransactOpts, adds []CCIPBaseApprovedSenderUpdate, removes []CCIPBaseApprovedSenderUpdate) (*types.Transaction, error) + + UpdateFeeToken(opts *bind.TransactOpts, token common.Address) (*types.Transaction, error) + + UpdateRouter(opts *bind.TransactOpts, newRouter common.Address) (*types.Transaction, error) + + WithdrawNativeToken(opts *bind.TransactOpts, to common.Address, amount *big.Int) (*types.Transaction, error) + + WithdrawTokens(opts *bind.TransactOpts, token common.Address, to common.Address, amount *big.Int) (*types.Transaction, error) + + Receive(opts *bind.TransactOpts) (*types.Transaction, error) + + FilterApprovedSenderAdded(opts *bind.FilterOpts, destChainSelector []uint64, recipient [][]byte) (*CCIPClientWithACKApprovedSenderAddedIterator, error) + + WatchApprovedSenderAdded(opts *bind.WatchOpts, sink chan<- *CCIPClientWithACKApprovedSenderAdded, destChainSelector []uint64, recipient [][]byte) (event.Subscription, error) + + ParseApprovedSenderAdded(log types.Log) (*CCIPClientWithACKApprovedSenderAdded, error) + + FilterApprovedSenderRemoved(opts *bind.FilterOpts, destChainSelector []uint64, recipient [][]byte) (*CCIPClientWithACKApprovedSenderRemovedIterator, error) + + WatchApprovedSenderRemoved(opts *bind.WatchOpts, sink chan<- *CCIPClientWithACKApprovedSenderRemoved, destChainSelector []uint64, recipient [][]byte) (event.Subscription, error) + + ParseApprovedSenderRemoved(log types.Log) (*CCIPClientWithACKApprovedSenderRemoved, error) + + FilterCCIPRouterModified(opts *bind.FilterOpts, oldRouter []common.Address, newRouter []common.Address) (*CCIPClientWithACKCCIPRouterModifiedIterator, error) + + WatchCCIPRouterModified(opts *bind.WatchOpts, sink chan<- *CCIPClientWithACKCCIPRouterModified, oldRouter []common.Address, newRouter []common.Address) (event.Subscription, error) + + ParseCCIPRouterModified(log types.Log) (*CCIPClientWithACKCCIPRouterModified, error) + + FilterChainAdded(opts *bind.FilterOpts, remoteChainSelector []uint64, recipient [][]byte) (*CCIPClientWithACKChainAddedIterator, error) + + WatchChainAdded(opts *bind.WatchOpts, sink chan<- *CCIPClientWithACKChainAdded, remoteChainSelector []uint64, recipient [][]byte) (event.Subscription, error) + + ParseChainAdded(log types.Log) (*CCIPClientWithACKChainAdded, error) + + FilterChainRemoved(opts *bind.FilterOpts, removeChainSelector []uint64) (*CCIPClientWithACKChainRemovedIterator, error) + + WatchChainRemoved(opts *bind.WatchOpts, sink chan<- *CCIPClientWithACKChainRemoved, removeChainSelector []uint64) (event.Subscription, error) + + ParseChainRemoved(log types.Log) (*CCIPClientWithACKChainRemoved, error) + + FilterFeeTokenUpdated(opts *bind.FilterOpts, oldToken []common.Address, newToken []common.Address) (*CCIPClientWithACKFeeTokenUpdatedIterator, error) + + WatchFeeTokenUpdated(opts *bind.WatchOpts, sink chan<- *CCIPClientWithACKFeeTokenUpdated, oldToken []common.Address, newToken []common.Address) (event.Subscription, error) + + ParseFeeTokenUpdated(log types.Log) (*CCIPClientWithACKFeeTokenUpdated, error) + + FilterMessageAbandoned(opts *bind.FilterOpts, messageId [][32]byte) (*CCIPClientWithACKMessageAbandonedIterator, error) + + WatchMessageAbandoned(opts *bind.WatchOpts, sink chan<- *CCIPClientWithACKMessageAbandoned, messageId [][32]byte) (event.Subscription, error) + + ParseMessageAbandoned(log types.Log) (*CCIPClientWithACKMessageAbandoned, error) + + FilterMessageAckReceived(opts *bind.FilterOpts) (*CCIPClientWithACKMessageAckReceivedIterator, error) + + WatchMessageAckReceived(opts *bind.WatchOpts, sink chan<- *CCIPClientWithACKMessageAckReceived) (event.Subscription, error) + + ParseMessageAckReceived(log types.Log) (*CCIPClientWithACKMessageAckReceived, error) + + FilterMessageAckSent(opts *bind.FilterOpts) (*CCIPClientWithACKMessageAckSentIterator, error) + + WatchMessageAckSent(opts *bind.WatchOpts, sink chan<- *CCIPClientWithACKMessageAckSent) (event.Subscription, error) + + ParseMessageAckSent(log types.Log) (*CCIPClientWithACKMessageAckSent, error) + + FilterMessageFailed(opts *bind.FilterOpts, messageId [][32]byte) (*CCIPClientWithACKMessageFailedIterator, error) + + WatchMessageFailed(opts *bind.WatchOpts, sink chan<- *CCIPClientWithACKMessageFailed, messageId [][32]byte) (event.Subscription, error) + + ParseMessageFailed(log types.Log) (*CCIPClientWithACKMessageFailed, error) + + FilterMessageRecovered(opts *bind.FilterOpts, messageId [][32]byte) (*CCIPClientWithACKMessageRecoveredIterator, error) + + WatchMessageRecovered(opts *bind.WatchOpts, sink chan<- *CCIPClientWithACKMessageRecovered, messageId [][32]byte) (event.Subscription, error) + + ParseMessageRecovered(log types.Log) (*CCIPClientWithACKMessageRecovered, error) + + FilterMessageSent(opts *bind.FilterOpts, incomingMessageId [][32]byte, ACKMessageId [][32]byte) (*CCIPClientWithACKMessageSentIterator, error) + + WatchMessageSent(opts *bind.WatchOpts, sink chan<- *CCIPClientWithACKMessageSent, incomingMessageId [][32]byte, ACKMessageId [][32]byte) (event.Subscription, error) + + ParseMessageSent(log types.Log) (*CCIPClientWithACKMessageSent, error) + + FilterMessageSucceeded(opts *bind.FilterOpts, messageId [][32]byte) (*CCIPClientWithACKMessageSucceededIterator, error) + + WatchMessageSucceeded(opts *bind.WatchOpts, sink chan<- *CCIPClientWithACKMessageSucceeded, messageId [][32]byte) (event.Subscription, error) + + ParseMessageSucceeded(log types.Log) (*CCIPClientWithACKMessageSucceeded, error) + + FilterOwnershipTransferRequested(opts *bind.FilterOpts, from []common.Address, to []common.Address) (*CCIPClientWithACKOwnershipTransferRequestedIterator, error) + + WatchOwnershipTransferRequested(opts *bind.WatchOpts, sink chan<- *CCIPClientWithACKOwnershipTransferRequested, from []common.Address, to []common.Address) (event.Subscription, error) + + ParseOwnershipTransferRequested(log types.Log) (*CCIPClientWithACKOwnershipTransferRequested, error) + + FilterOwnershipTransferred(opts *bind.FilterOpts, from []common.Address, to []common.Address) (*CCIPClientWithACKOwnershipTransferredIterator, error) + + WatchOwnershipTransferred(opts *bind.WatchOpts, sink chan<- *CCIPClientWithACKOwnershipTransferred, from []common.Address, to []common.Address) (event.Subscription, error) + + ParseOwnershipTransferred(log types.Log) (*CCIPClientWithACKOwnershipTransferred, error) + + FilterTokensWithdrawnByOwner(opts *bind.FilterOpts, token []common.Address, to []common.Address) (*CCIPClientWithACKTokensWithdrawnByOwnerIterator, error) + + WatchTokensWithdrawnByOwner(opts *bind.WatchOpts, sink chan<- *CCIPClientWithACKTokensWithdrawnByOwner, token []common.Address, to []common.Address) (event.Subscription, error) + + ParseTokensWithdrawnByOwner(log types.Log) (*CCIPClientWithACKTokensWithdrawnByOwner, error) + + ParseLog(log types.Log) (generated.AbigenLog, error) + + Address() common.Address +} diff --git a/core/gethwrappers/ccip/generated/ccipReceiverWithAck/ccipReceiverWithAck.go b/core/gethwrappers/ccip/generated/ccipReceiverWithAck/ccipReceiverWithAck.go index f695b20319..9471551845 100644 --- a/core/gethwrappers/ccip/generated/ccipReceiverWithAck/ccipReceiverWithAck.go +++ b/core/gethwrappers/ccip/generated/ccipReceiverWithAck/ccipReceiverWithAck.go @@ -1,7 +1,7 @@ // Code generated - DO NOT EDIT. // This file is a generated binding and any manual changes will be lost. -package ccipReceiverWithAck +package ccipReceiverWithACK import ( "errors" @@ -30,6 +30,18 @@ var ( _ = abi.ConvertType ) +type CCIPBaseApprovedSenderUpdate struct { + DestChainSelector uint64 + Sender []byte +} + +type CCIPBaseChainUpdate struct { + ChainSelector uint64 + Allowed bool + Recipient []byte + ExtraArgsBytes []byte +} + type ClientAny2EVMMessage struct { MessageId [32]byte SourceChainSelector uint64 @@ -43,22 +55,17 @@ type ClientEVMTokenAmount struct { Amount *big.Int } -type ICCIPClientBaseapprovedSenderUpdate struct { - DestChainSelector uint64 - Sender []byte -} - -var CCIPReceiverWithAckMetaData = &bind.MetaData{ - ABI: "[{\"inputs\":[{\"internalType\":\"address\",\"name\":\"router\",\"type\":\"address\"},{\"internalType\":\"contractIERC20\",\"name\":\"feeToken\",\"type\":\"address\"}],\"stateMutability\":\"nonpayable\",\"type\":\"constructor\"},{\"inputs\":[],\"name\":\"ErrorCase\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"uint64\",\"name\":\"chainSelector\",\"type\":\"uint64\"}],\"name\":\"InvalidChain\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"InvalidMagicBytes\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"bytes\",\"name\":\"recipient\",\"type\":\"bytes\"}],\"name\":\"InvalidRecipient\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"router\",\"type\":\"address\"}],\"name\":\"InvalidRouter\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"bytes\",\"name\":\"sender\",\"type\":\"bytes\"}],\"name\":\"InvalidSender\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"messageId\",\"type\":\"bytes32\"}],\"name\":\"MessageAlreadyAcknowledged\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"messageId\",\"type\":\"bytes32\"}],\"name\":\"MessageNotFailed\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"OnlySelf\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"ZeroAddressNotAllowed\",\"type\":\"error\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"oldToken\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"newToken\",\"type\":\"address\"}],\"name\":\"FeeTokenModified\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"}],\"name\":\"MessageAckReceived\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"bytes32\",\"name\":\"incomingMessageId\",\"type\":\"bytes32\"}],\"name\":\"MessageAckSent\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"bytes32\",\"name\":\"messageId\",\"type\":\"bytes32\"},{\"indexed\":false,\"internalType\":\"bytes\",\"name\":\"reason\",\"type\":\"bytes\"}],\"name\":\"MessageFailed\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"bytes32\",\"name\":\"messageId\",\"type\":\"bytes32\"}],\"name\":\"MessageRecovered\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"bytes32\",\"name\":\"incomingMessageId\",\"type\":\"bytes32\"},{\"indexed\":true,\"internalType\":\"bytes32\",\"name\":\"ACKMessageId\",\"type\":\"bytes32\"}],\"name\":\"MessageSent\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"bytes32\",\"name\":\"messageId\",\"type\":\"bytes32\"}],\"name\":\"MessageSucceeded\",\"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\"},{\"stateMutability\":\"payable\",\"type\":\"fallback\"},{\"inputs\":[],\"name\":\"ACKMESSAGEMAGICBYTES\",\"outputs\":[{\"internalType\":\"bytes\",\"name\":\"\",\"type\":\"bytes\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"acceptOwnership\",\"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\":\"structClient.EVMTokenAmount[]\",\"name\":\"destTokenAmounts\",\"type\":\"tuple[]\"}],\"internalType\":\"structClient.Any2EVMMessage\",\"name\":\"message\",\"type\":\"tuple\"}],\"name\":\"ccipReceive\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint64\",\"name\":\"chainSelector\",\"type\":\"uint64\"}],\"name\":\"disableChain\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint64\",\"name\":\"chainSelector\",\"type\":\"uint64\"},{\"internalType\":\"bytes\",\"name\":\"recipient\",\"type\":\"bytes\"},{\"internalType\":\"bytes\",\"name\":\"_extraArgsBytes\",\"type\":\"bytes\"}],\"name\":\"enableChain\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"messageId\",\"type\":\"bytes32\"}],\"name\":\"getMessageContents\",\"outputs\":[{\"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\":\"structClient.EVMTokenAmount[]\",\"name\":\"destTokenAmounts\",\"type\":\"tuple[]\"}],\"internalType\":\"structClient.Any2EVMMessage\",\"name\":\"\",\"type\":\"tuple\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"messageId\",\"type\":\"bytes32\"}],\"name\":\"getMessageStatus\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"getRouter\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint64\",\"name\":\"sourceChainSelector\",\"type\":\"uint64\"},{\"internalType\":\"bytes\",\"name\":\"senderAddr\",\"type\":\"bytes\"}],\"name\":\"isApprovedSender\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"token\",\"type\":\"address\"}],\"name\":\"modifyFeeToken\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"owner\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"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\":\"structClient.EVMTokenAmount[]\",\"name\":\"destTokenAmounts\",\"type\":\"tuple[]\"}],\"internalType\":\"structClient.Any2EVMMessage\",\"name\":\"message\",\"type\":\"tuple\"}],\"name\":\"processMessage\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"messageId\",\"type\":\"bytes32\"}],\"name\":\"retryFailedMessage\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint64\",\"name\":\"\",\"type\":\"uint64\"}],\"name\":\"s_chains\",\"outputs\":[{\"internalType\":\"bytes\",\"name\":\"recipient\",\"type\":\"bytes\"},{\"internalType\":\"bytes\",\"name\":\"extraArgsBytes\",\"type\":\"bytes\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"s_feeToken\",\"outputs\":[{\"internalType\":\"contractIERC20\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"messageId\",\"type\":\"bytes32\"}],\"name\":\"s_messageStatus\",\"outputs\":[{\"internalType\":\"enumCCIPReceiverWithACK.MessageStatus\",\"name\":\"status\",\"type\":\"uint8\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bool\",\"name\":\"simRevert\",\"type\":\"bool\"}],\"name\":\"setSimRevert\",\"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\":\"pure\",\"type\":\"function\"},{\"inputs\":[{\"components\":[{\"internalType\":\"uint64\",\"name\":\"destChainSelector\",\"type\":\"uint64\"},{\"internalType\":\"bytes\",\"name\":\"sender\",\"type\":\"bytes\"}],\"internalType\":\"structICCIPClientBase.approvedSenderUpdate[]\",\"name\":\"adds\",\"type\":\"tuple[]\"},{\"components\":[{\"internalType\":\"uint64\",\"name\":\"destChainSelector\",\"type\":\"uint64\"},{\"internalType\":\"bytes\",\"name\":\"sender\",\"type\":\"bytes\"}],\"internalType\":\"structICCIPClientBase.approvedSenderUpdate[]\",\"name\":\"removes\",\"type\":\"tuple[]\"}],\"name\":\"updateApprovedSenders\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"addresspayable\",\"name\":\"to\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"}],\"name\":\"withdrawNativeToken\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"token\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"}],\"name\":\"withdrawTokens\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"stateMutability\":\"payable\",\"type\":\"receive\"}]", - Bin: "0x60a06040523480156200001157600080fd5b5060405162003c7a38038062003c7a8339810160408190526200003491620005c4565b818033806000816200008d5760405162461bcd60e51b815260206004820152601860248201527f43616e6e6f7420736574206f776e657220746f207a65726f000000000000000060448201526064015b60405180910390fd5b600080546001600160a01b0319166001600160a01b0384811691909117909155811615620000c057620000c0816200013c565b5050506001600160a01b038116620000eb576040516342bcdf7f60e11b815260040160405180910390fd5b6001600160a01b0390811660805260078054610100600160a81b0319166101009285169283021790551590506200013457620001346001600160a01b03821683600019620001e7565b5050620006c1565b336001600160a01b03821603620001965760405162461bcd60e51b815260206004820152601760248201527f43616e6e6f74207472616e7366657220746f2073656c66000000000000000000604482015260640162000084565b600180546001600160a01b0319166001600160a01b0383811691821790925560008054604051929316917fed8889f560326eb138920d842192f0eb3dd22b4f139c87a2c57538e05bae12789190a350565b801580620002655750604051636eb1769f60e11b81523060048201526001600160a01b03838116602483015284169063dd62ed3e90604401602060405180830381865afa1580156200023d573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019062000263919062000603565b155b620002d95760405162461bcd60e51b815260206004820152603660248201527f5361666545524332303a20617070726f76652066726f6d206e6f6e2d7a65726f60448201527f20746f206e6f6e2d7a65726f20616c6c6f77616e636500000000000000000000606482015260840162000084565b604080516001600160a01b038416602482015260448082018490528251808303909101815260649091019091526020810180516001600160e01b0390811663095ea7b360e01b17909152620003319185916200033616565b505050565b6040805180820190915260208082527f5361666545524332303a206c6f772d6c6576656c2063616c6c206661696c65649082015260009062000385906001600160a01b03851690849062000407565b805190915015620003315780806020019051810190620003a691906200061d565b620003315760405162461bcd60e51b815260206004820152602a60248201527f5361666545524332303a204552433230206f7065726174696f6e20646964206e6044820152691bdd081cdd58d8d9595960b21b606482015260840162000084565b606062000418848460008562000420565b949350505050565b606082471015620004835760405162461bcd60e51b815260206004820152602660248201527f416464726573733a20696e73756666696369656e742062616c616e636520666f6044820152651c8818d85b1b60d21b606482015260840162000084565b600080866001600160a01b03168587604051620004a191906200066e565b60006040518083038185875af1925050503d8060008114620004e0576040519150601f19603f3d011682016040523d82523d6000602084013e620004e5565b606091505b509092509050620004f98783838762000504565b979650505050505050565b606083156200057857825160000362000570576001600160a01b0385163b620005705760405162461bcd60e51b815260206004820152601d60248201527f416464726573733a2063616c6c20746f206e6f6e2d636f6e7472616374000000604482015260640162000084565b508162000418565b6200041883838151156200058f5781518083602001fd5b8060405162461bcd60e51b81526004016200008491906200068c565b6001600160a01b0381168114620005c157600080fd5b50565b60008060408385031215620005d857600080fd5b8251620005e581620005ab565b6020840151909250620005f881620005ab565b809150509250929050565b6000602082840312156200061657600080fd5b5051919050565b6000602082840312156200063057600080fd5b815180151581146200064157600080fd5b9392505050565b60005b83811015620006655781810151838201526020016200064b565b50506000910152565b600082516200068281846020870162000648565b9190910192915050565b6020815260008251806020840152620006ad81604085016020870162000648565b601f01601f19169190910160400192915050565b60805161357a6200070060003960008181610451015281816105a10152818161063f01528181610dfd01528181611c450152611d11015261357a6000f3fe6080604052600436106101615760003560e01c80636939cd97116100bf578063b0f479a111610079578063e4ca875411610056578063e4ca8754146104b5578063f2fde38b146104d5578063ff2deec3146104f557005b8063b0f479a114610442578063cf6730f814610475578063d8469e401461049557005b80638462a2b9116100a75780638462a2b9146103b657806385572ffb146103d65780638da5cb5b146103f657005b80636939cd971461037457806379ba5097146103a157005b806341eade461161011b578063536c6bfa116100f8578063536c6bfa146103065780635dc5ebdb146103265780635e35359e1461035457005b806341eade46146102985780635075a9d4146102b857806352f813c3146102e657005b806311e85dff1161014957806311e85dff146101e0578063181f5a77146102005780633a51b79e1461024f57005b806305bfe9821461016a5780630e958d6b146101b057005b3661016857005b005b34801561017657600080fd5b5061019a610185366004612541565b60086020526000908152604090205460ff1681565b6040516101a79190612589565b60405180910390f35b3480156101bc57600080fd5b506101d06101cb366004612629565b610527565b60405190151581526020016101a7565b3480156101ec57600080fd5b506101686101fb3660046126a0565b610571565b34801561020c57600080fd5b5060408051808201909152601d81527f4343495052656365697665725769746841434b20312e302e302d64657600000060208201525b6040516101a7919061272b565b34801561025b57600080fd5b506102426040518060400160405280601581526020017f4d4553534147455f41434b4e4f574c45444745445f000000000000000000000081525081565b3480156102a457600080fd5b506101686102b336600461273e565b610701565b3480156102c457600080fd5b506102d86102d3366004612541565b610740565b6040519081526020016101a7565b3480156102f257600080fd5b50610168610301366004612769565b610753565b34801561031257600080fd5b50610168610321366004612786565b61078c565b34801561033257600080fd5b5061034661034136600461273e565b6107a2565b6040516101a79291906127b2565b34801561036057600080fd5b5061016861036f3660046127e0565b6108ce565b34801561038057600080fd5b5061039461038f366004612541565b6108f7565b6040516101a7919061287e565b3480156103ad57600080fd5b50610168610b02565b3480156103c257600080fd5b506101686103d1366004612957565b610c04565b3480156103e257600080fd5b506101686103f13660046129c3565b610de5565b34801561040257600080fd5b5060005473ffffffffffffffffffffffffffffffffffffffff165b60405173ffffffffffffffffffffffffffffffffffffffff90911681526020016101a7565b34801561044e57600080fd5b507f000000000000000000000000000000000000000000000000000000000000000061041d565b34801561048157600080fd5b506101686104903660046129c3565b6110d5565b3480156104a157600080fd5b506101686104b03660046129fe565b6112f2565b3480156104c157600080fd5b506101686104d0366004612541565b611354565b3480156104e157600080fd5b506101686104f03660046126a0565b6115d2565b34801561050157600080fd5b5060075461041d90610100900473ffffffffffffffffffffffffffffffffffffffff1681565b67ffffffffffffffff8316600090815260026020819052604080832090519101906105559085908590612a81565b9081526040519081900360200190205460ff1690509392505050565b6105796115e6565b600754610100900473ffffffffffffffffffffffffffffffffffffffff16156105e6576105e67f0000000000000000000000000000000000000000000000000000000000000000600754610100900473ffffffffffffffffffffffffffffffffffffffff16906000611669565b6007805473ffffffffffffffffffffffffffffffffffffffff8381166101008181027fffffffffffffffffffffff0000000000000000000000000000000000000000ff851617909455929091041690156106a3576106a37f0000000000000000000000000000000000000000000000000000000000000000600754610100900473ffffffffffffffffffffffffffffffffffffffff16907fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff611669565b8173ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff167f4a1cb6b940121ea2ba30fb9b494035cbfe2d4b6b080db8b502150410bef7eb4e60405160405180910390a35050565b6107096115e6565b67ffffffffffffffff811660009081526002602052604081209061072d82826124f3565b61073b6001830160006124f3565b505050565b600061074d600483611869565b92915050565b61075b6115e6565b600780547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0016911515919091179055565b6107946115e6565b61079e828261187c565b5050565b6002602052600090815260409020805481906107bd90612a91565b80601f01602080910402602001604051908101604052809291908181526020018280546107e990612a91565b80156108365780601f1061080b57610100808354040283529160200191610836565b820191906000526020600020905b81548152906001019060200180831161081957829003601f168201915b50505050509080600101805461084b90612a91565b80601f016020809104026020016040519081016040528092919081815260200182805461087790612a91565b80156108c45780601f10610899576101008083540402835291602001916108c4565b820191906000526020600020905b8154815290600101906020018083116108a757829003601f168201915b5050505050905082565b6108d66115e6565b61073b73ffffffffffffffffffffffffffffffffffffffff841683836119d6565b6040805160a08082018352600080835260208084018290526060848601819052808501819052608085015285825260038152908490208451928301855280548352600181015467ffffffffffffffff169183019190915260028101805493949293919284019161096690612a91565b80601f016020809104026020016040519081016040528092919081815260200182805461099290612a91565b80156109df5780601f106109b4576101008083540402835291602001916109df565b820191906000526020600020905b8154815290600101906020018083116109c257829003601f168201915b505050505081526020016003820180546109f890612a91565b80601f0160208091040260200160405190810160405280929190818152602001828054610a2490612a91565b8015610a715780601f10610a4657610100808354040283529160200191610a71565b820191906000526020600020905b815481529060010190602001808311610a5457829003601f168201915b5050505050815260200160048201805480602002602001604051908101604052809291908181526020016000905b82821015610af45760008481526020908190206040805180820190915260028502909101805473ffffffffffffffffffffffffffffffffffffffff168252600190810154828401529083529092019101610a9f565b505050915250909392505050565b60015473ffffffffffffffffffffffffffffffffffffffff163314610b88576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601660248201527f4d7573742062652070726f706f736564206f776e65720000000000000000000060448201526064015b60405180910390fd5b60008054337fffffffffffffffffffffffff00000000000000000000000000000000000000008083168217845560018054909116905560405173ffffffffffffffffffffffffffffffffffffffff90921692909183917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e091a350565b610c0c6115e6565b60005b81811015610cef5760026000848484818110610c2d57610c2d612ae4565b9050602002810190610c3f9190612b13565b610c4d90602081019061273e565b67ffffffffffffffff1667ffffffffffffffff168152602001908152602001600020600201838383818110610c8457610c84612ae4565b9050602002810190610c969190612b13565b610ca4906020810190612b51565b604051610cb2929190612a81565b90815260405190819003602001902080547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00169055600101610c0f565b5060005b83811015610dde57600160026000878785818110610d1357610d13612ae4565b9050602002810190610d259190612b13565b610d3390602081019061273e565b67ffffffffffffffff1667ffffffffffffffff168152602001908152602001600020600201868684818110610d6a57610d6a612ae4565b9050602002810190610d7c9190612b13565b610d8a906020810190612b51565b604051610d98929190612a81565b90815260405190819003602001902080549115157fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00909216919091179055600101610cf3565b5050505050565b3373ffffffffffffffffffffffffffffffffffffffff7f00000000000000000000000000000000000000000000000000000000000000001614610e56576040517fd7f73334000000000000000000000000000000000000000000000000000000008152336004820152602401610b7f565b610e66604082016020830161273e565b610e736040830183612b51565b8080601f016020809104026020016040519081016040528093929190818152602001838380828437600092018290525067ffffffffffffffff8616815260026020819052604091829020915191019350610ed09250849150612bb6565b9081526040519081900360200190205460ff16610f1b57806040517f5075bb38000000000000000000000000000000000000000000000000000000008152600401610b7f919061272b565b610f2b604084016020850161273e565b67ffffffffffffffff811660009081526002602052604090208054610f4f90612a91565b9050600003610f96576040517fd79f2ea400000000000000000000000000000000000000000000000000000000815267ffffffffffffffff82166004820152602401610b7f565b6040517fcf6730f8000000000000000000000000000000000000000000000000000000008152309063cf6730f890610fd2908790600401612cca565b600060405180830381600087803b158015610fec57600080fd5b505af1925050508015610ffd575060015b6110a2573d80801561102b576040519150601f19603f3d011682016040523d82523d6000602084013e611030565b606091505b50611042853560015b60049190611a2c565b5084356000908152600360205260409020859061105f82826130cb565b50506040518535907f55bc02a9ef6f146737edeeb425738006f67f077e7138de3bf84a15bde1a5b56f9061109490849061272b565b60405180910390a2506110cf565b6040518435907fdf6958669026659bac75ba986685e11a7d271284989f565f2802522663e9a70f90600090a25b50505050565b33301461110e576040517f14d4a4e800000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b600061111d6060830183612b51565b81019061112a91906132d9565b90506000816040015160018111156111445761114461255a565b036111525761079e82611a41565b60018160400151600181111561116a5761116a61255a565b0361079e57600080826020015180602001905181019061118a9190613385565b60408051808201909152601581527f4d4553534147455f41434b4e4f574c45444745445f000000000000000000000060209182015282519083012091935091507f1c778f21871bcc06cfebd177c4d0360c2f3550962fb071f69ed007e4f55f23b214611222576040517f9f0b03b000000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b600260008281526008602052604090205460ff1660028111156112475761124761255a565b03611281576040517f33704b2800000000000000000000000000000000000000000000000000000000815260048101829052602401610b7f565b60008181526008602090815260409182902080547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0016600217905590518281527fef0cb160d3dc564cde61ae97d9981f9c4d92ace727a2ec202b18b223ea832a79910160405180910390a150505050565b6112fa6115e6565b67ffffffffffffffff8516600090815260026020526040902061131e848683612e4f565b508015610dde5767ffffffffffffffff8516600090815260026020526040902060010161134c828483612e4f565b505050505050565b61135c6115e6565b6001611369600483611869565b146113a3576040517fb6e7826000000000000000000000000000000000000000000000000000000000815260048101829052602401610b7f565b6113ae816000611039565b506000818152600360209081526040808320815160a08101835281548152600182015467ffffffffffffffff169381019390935260028101805491928401916113f690612a91565b80601f016020809104026020016040519081016040528092919081815260200182805461142290612a91565b801561146f5780601f106114445761010080835404028352916020019161146f565b820191906000526020600020905b81548152906001019060200180831161145257829003601f168201915b5050505050815260200160038201805461148890612a91565b80601f01602080910402602001604051908101604052809291908181526020018280546114b490612a91565b80156115015780601f106114d657610100808354040283529160200191611501565b820191906000526020600020905b8154815290600101906020018083116114e457829003601f168201915b5050505050815260200160048201805480602002602001604051908101604052809291908181526020016000905b828210156115845760008481526020908190206040805180820190915260028502909101805473ffffffffffffffffffffffffffffffffffffffff16825260019081015482840152908352909201910161152f565b5050505081525050905061159781611df7565b6115a2600483611e9d565b5060405182907fef3bf8c64bc480286c4f3503b870ceb23e648d2d902e31fb7bb46680da6de8ad90600090a25050565b6115da6115e6565b6115e381611ea9565b50565b60005473ffffffffffffffffffffffffffffffffffffffff163314611667576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601660248201527f4f6e6c792063616c6c61626c65206279206f776e6572000000000000000000006044820152606401610b7f565b565b80158061170957506040517fdd62ed3e00000000000000000000000000000000000000000000000000000000815230600482015273ffffffffffffffffffffffffffffffffffffffff838116602483015284169063dd62ed3e90604401602060405180830381865afa1580156116e3573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906117079190613406565b155b611795576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152603660248201527f5361666545524332303a20617070726f76652066726f6d206e6f6e2d7a65726f60448201527f20746f206e6f6e2d7a65726f20616c6c6f77616e6365000000000000000000006064820152608401610b7f565b60405173ffffffffffffffffffffffffffffffffffffffff831660248201526044810182905261073b9084907f095ea7b300000000000000000000000000000000000000000000000000000000906064015b604080517fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe08184030181529190526020810180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff167fffffffff0000000000000000000000000000000000000000000000000000000090931692909217909152611f9e565b600061187583836120aa565b9392505050565b804710156118e6576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601d60248201527f416464726573733a20696e73756666696369656e742062616c616e63650000006044820152606401610b7f565b60008273ffffffffffffffffffffffffffffffffffffffff168260405160006040518083038185875af1925050503d8060008114611940576040519150601f19603f3d011682016040523d82523d6000602084013e611945565b606091505b505090508061073b576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152603a60248201527f416464726573733a20756e61626c6520746f2073656e642076616c75652c207260448201527f6563697069656e74206d617920686176652072657665727465640000000000006064820152608401610b7f565b60405173ffffffffffffffffffffffffffffffffffffffff831660248201526044810182905261073b9084907fa9059cbb00000000000000000000000000000000000000000000000000000000906064016117e7565b6000611a39848484612134565b949350505050565b6040805160008082526020820190925281611a7e565b6040805180820190915260008082526020820152815260200190600190039081611a575790505b50905060006040518060a00160405280848060400190611a9e9190612b51565b8080601f016020809104026020016040519081016040528093929190818152602001838380828437600092019190915250505090825250604080518082018252601581527f4d4553534147455f41434b4e4f574c45444745445f0000000000000000000000602082810191909152915192820192611b1f928835910161341f565b6040516020818303038152906040528152602001838152602001600760019054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200160026000866020016020810190611b8e919061273e565b67ffffffffffffffff1667ffffffffffffffff1681526020019081526020016000206001018054611bbe90612a91565b80601f0160208091040260200160405190810160405280929190818152602001828054611bea90612a91565b8015611c375780601f10611c0c57610100808354040283529160200191611c37565b820191906000526020600020905b815481529060010190602001808311611c1a57829003601f168201915b5050505050815250905060007f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff166320487ded856020016020810190611c92919061273e565b846040518363ffffffff1660e01b8152600401611cb0929190613441565b602060405180830381865afa158015611ccd573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611cf19190613406565b60075490915060009073ffffffffffffffffffffffffffffffffffffffff7f00000000000000000000000000000000000000000000000000000000000000008116916396f4e9f9916101009091041615611d4c576000611d4e565b835b611d5e6040890160208a0161273e565b866040518463ffffffff1660e01b8152600401611d7c929190613441565b60206040518083038185885af1158015611d9a573d6000803e3d6000fd5b50505050506040513d601f19601f82011682018060405250810190611dbf9190613406565b60405190915081908635907f9102b9031c3c59d8320bf14d84d7d7a3434366b91032fad1c87579cfc62b237290600090a35050505050565b60005b81608001515181101561079e57600082608001518281518110611e1f57611e1f612ae4565b6020026020010151602001519050600083608001518381518110611e4557611e45612ae4565b6020026020010151600001519050611e93611e7560005473ffffffffffffffffffffffffffffffffffffffff1690565b73ffffffffffffffffffffffffffffffffffffffff831690846119d6565b5050600101611dfa565b60006118758383612151565b3373ffffffffffffffffffffffffffffffffffffffff821603611f28576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601760248201527f43616e6e6f74207472616e7366657220746f2073656c660000000000000000006044820152606401610b7f565b600180547fffffffffffffffffffffffff00000000000000000000000000000000000000001673ffffffffffffffffffffffffffffffffffffffff83811691821790925560008054604051929316917fed8889f560326eb138920d842192f0eb3dd22b4f139c87a2c57538e05bae12789190a350565b6000612000826040518060400160405280602081526020017f5361666545524332303a206c6f772d6c6576656c2063616c6c206661696c65648152508573ffffffffffffffffffffffffffffffffffffffff1661216e9092919063ffffffff16565b80519091501561073b578080602001905181019061201e919061350e565b61073b576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602a60248201527f5361666545524332303a204552433230206f7065726174696f6e20646964206e60448201527f6f742073756363656564000000000000000000000000000000000000000000006064820152608401610b7f565b6000818152600283016020526040812054801515806120ce57506120ce848461217d565b611875576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601e60248201527f456e756d657261626c654d61703a206e6f6e6578697374656e74206b657900006044820152606401610b7f565b60008281526002840160205260408120829055611a398484612189565b600081815260028301602052604081208190556118758383612195565b6060611a3984846000856121a1565b600061187583836122ba565b600061187583836122d2565b60006118758383612321565b606082471015612233576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602660248201527f416464726573733a20696e73756666696369656e742062616c616e636520666f60448201527f722063616c6c00000000000000000000000000000000000000000000000000006064820152608401610b7f565b6000808673ffffffffffffffffffffffffffffffffffffffff16858760405161225c9190612bb6565b60006040518083038185875af1925050503d8060008114612299576040519150601f19603f3d011682016040523d82523d6000602084013e61229e565b606091505b50915091506122af87838387612414565b979650505050505050565b60008181526001830160205260408120541515611875565b60008181526001830160205260408120546123195750815460018181018455600084815260208082209093018490558454848252828601909352604090209190915561074d565b50600061074d565b6000818152600183016020526040812054801561240a57600061234560018361352b565b85549091506000906123599060019061352b565b90508181146123be57600086600001828154811061237957612379612ae4565b906000526020600020015490508087600001848154811061239c5761239c612ae4565b6000918252602080832090910192909255918252600188019052604090208390555b85548690806123cf576123cf61353e565b60019003818190600052602060002001600090559055856001016000868152602001908152602001600020600090556001935050505061074d565b600091505061074d565b606083156124aa5782516000036124a35773ffffffffffffffffffffffffffffffffffffffff85163b6124a3576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601d60248201527f416464726573733a2063616c6c20746f206e6f6e2d636f6e74726163740000006044820152606401610b7f565b5081611a39565b611a3983838151156124bf5781518083602001fd5b806040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610b7f919061272b565b5080546124ff90612a91565b6000825580601f1061250f575050565b601f0160209004906000526020600020908101906115e391905b8082111561253d5760008155600101612529565b5090565b60006020828403121561255357600080fd5b5035919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602160045260246000fd5b60208101600383106125c4577f4e487b7100000000000000000000000000000000000000000000000000000000600052602160045260246000fd5b91905290565b67ffffffffffffffff811681146115e357600080fd5b60008083601f8401126125f257600080fd5b50813567ffffffffffffffff81111561260a57600080fd5b60208301915083602082850101111561262257600080fd5b9250929050565b60008060006040848603121561263e57600080fd5b8335612649816125ca565b9250602084013567ffffffffffffffff81111561266557600080fd5b612671868287016125e0565b9497909650939450505050565b73ffffffffffffffffffffffffffffffffffffffff811681146115e357600080fd5b6000602082840312156126b257600080fd5b81356118758161267e565b60005b838110156126d85781810151838201526020016126c0565b50506000910152565b600081518084526126f98160208601602086016126bd565b601f017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0169290920160200192915050565b60208152600061187560208301846126e1565b60006020828403121561275057600080fd5b8135611875816125ca565b80151581146115e357600080fd5b60006020828403121561277b57600080fd5b81356118758161275b565b6000806040838503121561279957600080fd5b82356127a48161267e565b946020939093013593505050565b6040815260006127c560408301856126e1565b82810360208401526127d781856126e1565b95945050505050565b6000806000606084860312156127f557600080fd5b83356128008161267e565b925060208401356128108161267e565b929592945050506040919091013590565b60008151808452602080850194506020840160005b83811015612873578151805173ffffffffffffffffffffffffffffffffffffffff1688528301518388015260409096019590820190600101612836565b509495945050505050565b602081528151602082015267ffffffffffffffff60208301511660408201526000604083015160a060608401526128b860c08401826126e1565b905060608401517fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0808584030160808601526128f483836126e1565b925060808601519150808584030160a0860152506127d78282612821565b60008083601f84011261292457600080fd5b50813567ffffffffffffffff81111561293c57600080fd5b6020830191508360208260051b850101111561262257600080fd5b6000806000806040858703121561296d57600080fd5b843567ffffffffffffffff8082111561298557600080fd5b61299188838901612912565b909650945060208701359150808211156129aa57600080fd5b506129b787828801612912565b95989497509550505050565b6000602082840312156129d557600080fd5b813567ffffffffffffffff8111156129ec57600080fd5b820160a0818503121561187557600080fd5b600080600080600060608688031215612a1657600080fd5b8535612a21816125ca565b9450602086013567ffffffffffffffff80821115612a3e57600080fd5b612a4a89838a016125e0565b90965094506040880135915080821115612a6357600080fd5b50612a70888289016125e0565b969995985093965092949392505050565b8183823760009101908152919050565b600181811c90821680612aa557607f821691505b602082108103612ade577f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b50919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b600082357fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc1833603018112612b4757600080fd5b9190910192915050565b60008083357fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe1843603018112612b8657600080fd5b83018035915067ffffffffffffffff821115612ba157600080fd5b60200191503681900382131561262257600080fd5b60008251612b478184602087016126bd565b60008083357fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe1843603018112612bfd57600080fd5b830160208101925035905067ffffffffffffffff811115612c1d57600080fd5b80360382131561262257600080fd5b8183528181602085013750600060208284010152600060207fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0601f840116840101905092915050565b8183526000602080850194508260005b85811015612873578135612c988161267e565b73ffffffffffffffffffffffffffffffffffffffff168752818301358388015260409687019690910190600101612c85565b602081528135602082015260006020830135612ce5816125ca565b67ffffffffffffffff8082166040850152612d036040860186612bc8565b925060a06060860152612d1a60c086018483612c2c565b925050612d2a6060860186612bc8565b7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe080878603016080880152612d60858385612c2c565b9450608088013592507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe1883603018312612d9957600080fd5b60209288019283019235915083821115612db257600080fd5b8160061b3603831315612dc457600080fd5b8685030160a08701526122af848284612c75565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b601f82111561073b576000816000526020600020601f850160051c81016020861015612e305750805b601f850160051c820191505b8181101561134c57828155600101612e3c565b67ffffffffffffffff831115612e6757612e67612dd8565b612e7b83612e758354612a91565b83612e07565b6000601f841160018114612ecd5760008515612e975750838201355b7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff600387901b1c1916600186901b178355610dde565b6000838152602090207fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0861690835b82811015612f1c5786850135825560209485019460019092019101612efc565b5086821015612f57577fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff60f88860031b161c19848701351681555b505060018560011b0183555050505050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b8135612fa38161267e565b73ffffffffffffffffffffffffffffffffffffffff81167fffffffffffffffffffffffff000000000000000000000000000000000000000083541617825550602082013560018201555050565b6801000000000000000083111561300957613009612dd8565b8054838255808410156130965760017f7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff808316831461304a5761304a612f69565b808616861461305b5761305b612f69565b5060008360005260206000208360011b81018760011b820191505b80821015613091578282558284830155600282019150613076565b505050505b5060008181526020812083915b8581101561134c576130b58383612f98565b60409290920191600291909101906001016130a3565b813581556001810160208301356130e1816125ca565b67ffffffffffffffff8082167fffffffffffffffffffffffffffffffffffffffffffffffff00000000000000008454161783556131216040860186612b51565b93509150613133838360028701612e4f565b6131406060860186612b51565b93509150613152838360038701612e4f565b608085013592507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe185360301831261318957600080fd5b91840191823591508082111561319e57600080fd5b506020820191508060061b36038213156131b757600080fd5b6110cf818360048601612ff0565b6040516060810167ffffffffffffffff811182821017156131e8576131e8612dd8565b60405290565b604051601f82017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe016810167ffffffffffffffff8111828210171561323557613235612dd8565b604052919050565b600067ffffffffffffffff82111561325757613257612dd8565b50601f017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe01660200190565b600082601f83011261329457600080fd5b81356132a76132a28261323d565b6131ee565b8181528460208386010111156132bc57600080fd5b816020850160208301376000918101602001919091529392505050565b6000602082840312156132eb57600080fd5b813567ffffffffffffffff8082111561330357600080fd5b908301906060828603121561331757600080fd5b61331f6131c5565b82358281111561332e57600080fd5b61333a87828601613283565b82525060208301358281111561334f57600080fd5b61335b87828601613283565b602083015250604083013592506002831061337557600080fd5b6040810192909252509392505050565b6000806040838503121561339857600080fd5b825167ffffffffffffffff8111156133af57600080fd5b8301601f810185136133c057600080fd5b80516133ce6132a28261323d565b8181528660208385010111156133e357600080fd5b6133f48260208301602086016126bd565b60209590950151949694955050505050565b60006020828403121561341857600080fd5b5051919050565b60408152600061343260408301856126e1565b90508260208301529392505050565b67ffffffffffffffff83168152604060208201526000825160a0604084015261346d60e08401826126e1565b905060208401517fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc0808584030160608601526134a983836126e1565b925060408601519150808584030160808601526134c68383612821565b925073ffffffffffffffffffffffffffffffffffffffff60608701511660a086015260808601519150808584030160c08601525061350482826126e1565b9695505050505050565b60006020828403121561352057600080fd5b81516118758161275b565b8181038181111561074d5761074d612f69565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603160045260246000fdfea164736f6c6343000818000a", +var CCIPReceiverWithACKMetaData = &bind.MetaData{ + ABI: "[{\"inputs\":[{\"internalType\":\"address\",\"name\":\"router\",\"type\":\"address\"},{\"internalType\":\"contractIERC20\",\"name\":\"feeToken\",\"type\":\"address\"}],\"stateMutability\":\"nonpayable\",\"type\":\"constructor\"},{\"inputs\":[],\"name\":\"InvalidAckMessageHeader\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"uint64\",\"name\":\"chainSelector\",\"type\":\"uint64\"}],\"name\":\"InvalidChain\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"bytes\",\"name\":\"recipient\",\"type\":\"bytes\"}],\"name\":\"InvalidRecipient\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"router\",\"type\":\"address\"}],\"name\":\"InvalidRouter\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"bytes\",\"name\":\"sender\",\"type\":\"bytes\"}],\"name\":\"InvalidSender\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"messageId\",\"type\":\"bytes32\"}],\"name\":\"MessageAlreadyAcknowledged\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"messageId\",\"type\":\"bytes32\"}],\"name\":\"MessageNotFailed\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"OnlySelf\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"ZeroAddressNotAllowed\",\"type\":\"error\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"uint64\",\"name\":\"destChainSelector\",\"type\":\"uint64\"},{\"indexed\":true,\"internalType\":\"bytes\",\"name\":\"recipient\",\"type\":\"bytes\"}],\"name\":\"ApprovedSenderAdded\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"uint64\",\"name\":\"destChainSelector\",\"type\":\"uint64\"},{\"indexed\":true,\"internalType\":\"bytes\",\"name\":\"recipient\",\"type\":\"bytes\"}],\"name\":\"ApprovedSenderRemoved\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"oldRouter\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"newRouter\",\"type\":\"address\"}],\"name\":\"CCIPRouterModified\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"uint64\",\"name\":\"remoteChainSelector\",\"type\":\"uint64\"},{\"indexed\":true,\"internalType\":\"bytes\",\"name\":\"recipient\",\"type\":\"bytes\"},{\"indexed\":false,\"internalType\":\"bytes\",\"name\":\"extraArgsBytes\",\"type\":\"bytes\"}],\"name\":\"ChainAdded\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"uint64\",\"name\":\"removeChainSelector\",\"type\":\"uint64\"}],\"name\":\"ChainRemoved\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"oldToken\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"newToken\",\"type\":\"address\"}],\"name\":\"FeeTokenUpdated\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"bytes32\",\"name\":\"messageId\",\"type\":\"bytes32\"},{\"indexed\":false,\"internalType\":\"address\",\"name\":\"tokenReceiver\",\"type\":\"address\"}],\"name\":\"MessageAbandoned\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"bytes32\",\"name\":\"messageId\",\"type\":\"bytes32\"}],\"name\":\"MessageAckReceived\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"bytes32\",\"name\":\"incomingMessageId\",\"type\":\"bytes32\"}],\"name\":\"MessageAckSent\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"bytes32\",\"name\":\"messageId\",\"type\":\"bytes32\"},{\"indexed\":false,\"internalType\":\"bytes\",\"name\":\"reason\",\"type\":\"bytes\"}],\"name\":\"MessageFailed\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"bytes32\",\"name\":\"messageId\",\"type\":\"bytes32\"}],\"name\":\"MessageRecovered\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"bytes32\",\"name\":\"incomingMessageId\",\"type\":\"bytes32\"},{\"indexed\":true,\"internalType\":\"bytes32\",\"name\":\"ACKMessageId\",\"type\":\"bytes32\"}],\"name\":\"MessageSent\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"bytes32\",\"name\":\"messageId\",\"type\":\"bytes32\"}],\"name\":\"MessageSucceeded\",\"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\":\"token\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"}],\"name\":\"TokensWithdrawnByOwner\",\"type\":\"event\"},{\"inputs\":[],\"name\":\"ACK_MESSAGE_HEADER\",\"outputs\":[{\"internalType\":\"string\",\"name\":\"\",\"type\":\"string\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"messageId\",\"type\":\"bytes32\"},{\"internalType\":\"address\",\"name\":\"receiver\",\"type\":\"address\"}],\"name\":\"abandonFailedMessage\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"acceptOwnership\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"components\":[{\"internalType\":\"uint64\",\"name\":\"chainSelector\",\"type\":\"uint64\"},{\"internalType\":\"bool\",\"name\":\"allowed\",\"type\":\"bool\"},{\"internalType\":\"bytes\",\"name\":\"recipient\",\"type\":\"bytes\"},{\"internalType\":\"bytes\",\"name\":\"extraArgsBytes\",\"type\":\"bytes\"}],\"internalType\":\"structCCIPBase.ChainUpdate[]\",\"name\":\"chains\",\"type\":\"tuple[]\"}],\"name\":\"applyChainUpdates\",\"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\":\"structClient.EVMTokenAmount[]\",\"name\":\"destTokenAmounts\",\"type\":\"tuple[]\"}],\"internalType\":\"structClient.Any2EVMMessage\",\"name\":\"message\",\"type\":\"tuple\"}],\"name\":\"ccipReceive\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"messageId\",\"type\":\"bytes32\"}],\"name\":\"getMessageContents\",\"outputs\":[{\"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\":\"structClient.EVMTokenAmount[]\",\"name\":\"destTokenAmounts\",\"type\":\"tuple[]\"}],\"internalType\":\"structClient.Any2EVMMessage\",\"name\":\"\",\"type\":\"tuple\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"messageId\",\"type\":\"bytes32\"}],\"name\":\"getMessageStatus\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"getRouter\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint64\",\"name\":\"sourceChainSelector\",\"type\":\"uint64\"},{\"internalType\":\"bytes\",\"name\":\"senderAddr\",\"type\":\"bytes\"}],\"name\":\"isApprovedSender\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"owner\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"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\":\"structClient.EVMTokenAmount[]\",\"name\":\"destTokenAmounts\",\"type\":\"tuple[]\"}],\"internalType\":\"structClient.Any2EVMMessage\",\"name\":\"message\",\"type\":\"tuple\"}],\"name\":\"processMessage\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"messageId\",\"type\":\"bytes32\"}],\"name\":\"retryFailedMessage\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint64\",\"name\":\"destChainSelector\",\"type\":\"uint64\"}],\"name\":\"s_chainConfigs\",\"outputs\":[{\"internalType\":\"bytes\",\"name\":\"recipient\",\"type\":\"bytes\"},{\"internalType\":\"bytes\",\"name\":\"extraArgsBytes\",\"type\":\"bytes\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"s_feeToken\",\"outputs\":[{\"internalType\":\"contractIERC20\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"messageId\",\"type\":\"bytes32\"}],\"name\":\"s_messageStatus\",\"outputs\":[{\"internalType\":\"enumCCIPReceiverWithACK.MessageStatus\",\"name\":\"status\",\"type\":\"uint8\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"}],\"name\":\"transferOwnership\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"components\":[{\"internalType\":\"uint64\",\"name\":\"destChainSelector\",\"type\":\"uint64\"},{\"internalType\":\"bytes\",\"name\":\"sender\",\"type\":\"bytes\"}],\"internalType\":\"structCCIPBase.ApprovedSenderUpdate[]\",\"name\":\"adds\",\"type\":\"tuple[]\"},{\"components\":[{\"internalType\":\"uint64\",\"name\":\"destChainSelector\",\"type\":\"uint64\"},{\"internalType\":\"bytes\",\"name\":\"sender\",\"type\":\"bytes\"}],\"internalType\":\"structCCIPBase.ApprovedSenderUpdate[]\",\"name\":\"removes\",\"type\":\"tuple[]\"}],\"name\":\"updateApprovedSenders\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"token\",\"type\":\"address\"}],\"name\":\"updateFeeToken\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"newRouter\",\"type\":\"address\"}],\"name\":\"updateRouter\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"addresspayable\",\"name\":\"to\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"}],\"name\":\"withdrawNativeToken\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"token\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"}],\"name\":\"withdrawTokens\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"stateMutability\":\"payable\",\"type\":\"receive\"}]", + Bin: "0x60806040523480156200001157600080fd5b506040516200440438038062004404833981016040819052620000349162000565565b818033806000816200008d5760405162461bcd60e51b815260206004820152601860248201527f43616e6e6f7420736574206f776e657220746f207a65726f000000000000000060448201526064015b60405180910390fd5b600080546001600160a01b0319166001600160a01b0384811691909117909155811615620000c057620000c08162000141565b5050506001600160a01b038116620000eb576040516342bcdf7f60e11b815260040160405180910390fd5b600280546001600160a01b039283166001600160a01b0319918216179091556008805492851692909116821790551590506200013957620001396001600160a01b03821683600019620001ec565b50506200068a565b336001600160a01b038216036200019b5760405162461bcd60e51b815260206004820152601760248201527f43616e6e6f74207472616e7366657220746f2073656c66000000000000000000604482015260640162000084565b600180546001600160a01b0319166001600160a01b0383811691821790925560008054604051929316917fed8889f560326eb138920d842192f0eb3dd22b4f139c87a2c57538e05bae12789190a350565b604051636eb1769f60e11b81523060048201526001600160a01b038381166024830152600091839186169063dd62ed3e90604401602060405180830381865afa1580156200023e573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190620002649190620005a4565b620002709190620005be565b604080516001600160a01b038616602482015260448082018490528251808303909101815260649091019091526020810180516001600160e01b0390811663095ea7b360e01b17909152919250620002cc91869190620002d216565b50505050565b6040805180820190915260208082527f5361666545524332303a206c6f772d6c6576656c2063616c6c206661696c65649082015260009062000321906001600160a01b038516908490620003a8565b805190915015620003a35780806020019051810190620003429190620005e6565b620003a35760405162461bcd60e51b815260206004820152602a60248201527f5361666545524332303a204552433230206f7065726174696f6e20646964206e6044820152691bdd081cdd58d8d9595960b21b606482015260840162000084565b505050565b6060620003b98484600085620003c1565b949350505050565b606082471015620004245760405162461bcd60e51b815260206004820152602660248201527f416464726573733a20696e73756666696369656e742062616c616e636520666f6044820152651c8818d85b1b60d21b606482015260840162000084565b600080866001600160a01b0316858760405162000442919062000637565b60006040518083038185875af1925050503d806000811462000481576040519150601f19603f3d011682016040523d82523d6000602084013e62000486565b606091505b5090925090506200049a87838387620004a5565b979650505050505050565b606083156200051957825160000362000511576001600160a01b0385163b620005115760405162461bcd60e51b815260206004820152601d60248201527f416464726573733a2063616c6c20746f206e6f6e2d636f6e7472616374000000604482015260640162000084565b5081620003b9565b620003b98383815115620005305781518083602001fd5b8060405162461bcd60e51b815260040162000084919062000655565b6001600160a01b03811681146200056257600080fd5b50565b600080604083850312156200057957600080fd5b825162000586816200054c565b602084015190925062000599816200054c565b809150509250929050565b600060208284031215620005b757600080fd5b5051919050565b80820180821115620005e057634e487b7160e01b600052601160045260246000fd5b92915050565b600060208284031215620005f957600080fd5b815180151581146200060a57600080fd5b9392505050565b60005b838110156200062e57818101518382015260200162000614565b50506000910152565b600082516200064b81846020870162000611565b9190910192915050565b60208152600082518060208401526200067681604085016020870162000611565b601f01601f19169190910160400192915050565b613d6a806200069a6000396000f3fe60806040526004361061016e5760003560e01c80638462a2b9116100cb578063c851cc321161007f578063e4ca875411610059578063e4ca87541461047d578063f2fde38b1461049d578063ff2deec3146104bd57600080fd5b8063c851cc321461041d578063c89245d51461043d578063cf6730f81461045d57600080fd5b80638da5cb5b116100b05780638da5cb5b146103865780639fe74e26146103d2578063b0f479a1146103f257600080fd5b80638462a2b91461034657806385572ffb1461036657600080fd5b80635e35359e116101225780636d62d633116101075780636d62d633146102bb5780636fef519e146102db57806379ba50971461033157600080fd5b80635e35359e1461026e5780636939cd971461028e57600080fd5b806335f170ef1161015357806335f170ef146101f05780635075a9d41461021e578063536c6bfa1461024c57600080fd5b806305bfe9821461017a5780630e958d6b146101c057600080fd5b3661017557005b600080fd5b34801561018657600080fd5b506101aa610195366004612d33565b60096020526000908152604090205460ff1681565b6040516101b79190612d7b565b60405180910390f35b3480156101cc57600080fd5b506101e06101db366004612dd2565b6104ea565b60405190151581526020016101b7565b3480156101fc57600080fd5b5061021061020b366004612e57565b610535565b6040516101b7929190612ee2565b34801561022a57600080fd5b5061023e610239366004612d33565b610661565b6040519081526020016101b7565b34801561025857600080fd5b5061026c610267366004612f32565b610674565b005b34801561027a57600080fd5b5061026c610289366004612f5e565b6106d8565b34801561029a57600080fd5b506102ae6102a9366004612d33565b61076d565b6040516101b79190612ffc565b3480156102c757600080fd5b5061026c6102d6366004613090565b610978565b3480156102e757600080fd5b506103246040518060400160405280601581526020017f4d4553534147455f41434b4e4f574c45444745445f000000000000000000000081525081565b6040516101b791906130c0565b34801561033d57600080fd5b5061026c610c92565b34801561035257600080fd5b5061026c61036136600461311f565b610d8f565b34801561037257600080fd5b5061026c61038136600461318b565b6110d0565b34801561039257600080fd5b5060005473ffffffffffffffffffffffffffffffffffffffff165b60405173ffffffffffffffffffffffffffffffffffffffff90911681526020016101b7565b3480156103de57600080fd5b5061026c6103ed3660046131c6565b6112d9565b3480156103fe57600080fd5b5060025473ffffffffffffffffffffffffffffffffffffffff166103ad565b34801561042957600080fd5b5061026c610438366004613208565b61166a565b34801561044957600080fd5b5061026c610458366004613208565b611736565b34801561046957600080fd5b5061026c61047836600461318b565b6118aa565b34801561048957600080fd5b5061026c610498366004612d33565b611bf8565b3480156104a957600080fd5b5061026c6104b8366004613208565b611e62565b3480156104c957600080fd5b506008546103ad9073ffffffffffffffffffffffffffffffffffffffff1681565b67ffffffffffffffff831660009081526003602052604080822090516002909101906105199085908590613225565b9081526040519081900360200190205460ff1690509392505050565b60036020526000908152604090208054819061055090613235565b80601f016020809104026020016040519081016040528092919081815260200182805461057c90613235565b80156105c95780601f1061059e576101008083540402835291602001916105c9565b820191906000526020600020905b8154815290600101906020018083116105ac57829003601f168201915b5050505050908060010180546105de90613235565b80601f016020809104026020016040519081016040528092919081815260200182805461060a90613235565b80156106575780601f1061062c57610100808354040283529160200191610657565b820191906000526020600020905b81548152906001019060200180831161063a57829003601f168201915b5050505050905082565b600061066e600583611e76565b92915050565b61067c611e89565b6106868282611f0c565b60405181815273ffffffffffffffffffffffffffffffffffffffff8316906000907f6832d9be2410a86571981e1e60fd4c1f9ea2a1034d6102a2b7d6c5e480adf02e9060200160405180910390a35050565b6106e0611e89565b61070173ffffffffffffffffffffffffffffffffffffffff84168383612066565b8173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f6832d9be2410a86571981e1e60fd4c1f9ea2a1034d6102a2b7d6c5e480adf02e8360405161076091815260200190565b60405180910390a3505050565b6040805160a08082018352600080835260208084018290526060848601819052808501819052608085015285825260048152908490208451928301855280548352600181015467ffffffffffffffff16918301919091526002810180549394929391928401916107dc90613235565b80601f016020809104026020016040519081016040528092919081815260200182805461080890613235565b80156108555780601f1061082a57610100808354040283529160200191610855565b820191906000526020600020905b81548152906001019060200180831161083857829003601f168201915b5050505050815260200160038201805461086e90613235565b80601f016020809104026020016040519081016040528092919081815260200182805461089a90613235565b80156108e75780601f106108bc576101008083540402835291602001916108e7565b820191906000526020600020905b8154815290600101906020018083116108ca57829003601f168201915b5050505050815260200160048201805480602002602001604051908101604052809291908181526020016000905b8282101561096a5760008481526020908190206040805180820190915260028502909101805473ffffffffffffffffffffffffffffffffffffffff168252600190810154828401529083529092019101610915565b505050915250909392505050565b610980611e89565b600161098d600584611e76565b146109cc576040517fb6e78260000000000000000000000000000000000000000000000000000000008152600481018390526024015b60405180910390fd5b6109dc8260025b6005919061213a565b506000828152600460209081526040808320815160a08101835281548152600182015467ffffffffffffffff16938101939093526002810180549192840191610a2490613235565b80601f0160208091040260200160405190810160405280929190818152602001828054610a5090613235565b8015610a9d5780601f10610a7257610100808354040283529160200191610a9d565b820191906000526020600020905b815481529060010190602001808311610a8057829003601f168201915b50505050508152602001600382018054610ab690613235565b80601f0160208091040260200160405190810160405280929190818152602001828054610ae290613235565b8015610b2f5780601f10610b0457610100808354040283529160200191610b2f565b820191906000526020600020905b815481529060010190602001808311610b1257829003601f168201915b5050505050815260200160048201805480602002602001604051908101604052809291908181526020016000905b82821015610bb25760008481526020908190206040805180820190915260028502909101805473ffffffffffffffffffffffffffffffffffffffff168252600190810154828401529083529092019101610b5d565b5050505081525050905060005b816080015151811015610c4157610c398383608001518381518110610be657610be6613288565b60200260200101516020015184608001518481518110610c0857610c08613288565b60200260200101516000015173ffffffffffffffffffffffffffffffffffffffff166120669092919063ffffffff16565b600101610bbf565b5060405173ffffffffffffffffffffffffffffffffffffffff8316815283907fd5038100bd3dc9631d3c3f4f61a3e53e9d466f40c47af9897292c7b35e32a9579060200160405180910390a2505050565b60015473ffffffffffffffffffffffffffffffffffffffff163314610d13576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601660248201527f4d7573742062652070726f706f736564206f776e65720000000000000000000060448201526064016109c3565b60008054337fffffffffffffffffffffffff00000000000000000000000000000000000000008083168217845560018054909116905560405173ffffffffffffffffffffffffffffffffffffffff90921692909183917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e091a350565b610d97611e89565b60005b81811015610f2a5760036000848484818110610db857610db8613288565b9050602002810190610dca91906132b7565b610dd8906020810190612e57565b67ffffffffffffffff1667ffffffffffffffff168152602001908152602001600020600201838383818110610e0f57610e0f613288565b9050602002810190610e2191906132b7565b610e2f9060208101906132f5565b604051610e3d929190613225565b90815260405190819003602001902080547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00169055828282818110610e8457610e84613288565b9050602002810190610e9691906132b7565b610ea49060208101906132f5565b604051610eb2929190613225565b6040518091039020838383818110610ecc57610ecc613288565b9050602002810190610ede91906132b7565b610eec906020810190612e57565b67ffffffffffffffff167f021290bab0d93f4d9a243bd430e45dd4bc8238451e9abbba6fab4463677dfce960405160405180910390a3600101610d9a565b5060005b838110156110c957600160036000878785818110610f4e57610f4e613288565b9050602002810190610f6091906132b7565b610f6e906020810190612e57565b67ffffffffffffffff1667ffffffffffffffff168152602001908152602001600020600201868684818110610fa557610fa5613288565b9050602002810190610fb791906132b7565b610fc59060208101906132f5565b604051610fd3929190613225565b90815260405190819003602001902080549115157fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0090921691909117905584848281811061102357611023613288565b905060200281019061103591906132b7565b6110439060208101906132f5565b604051611051929190613225565b604051809103902085858381811061106b5761106b613288565b905060200281019061107d91906132b7565b61108b906020810190612e57565b67ffffffffffffffff167f72d9f73bb7cb11065e15df29d61e803a0eba356d509a7025a6f51ebdea07f9e760405160405180910390a3600101610f2e565b5050505050565b60025473ffffffffffffffffffffffffffffffffffffffff163314611123576040517fd7f733340000000000000000000000000000000000000000000000000000000081523360048201526024016109c3565b6111336040820160208301612e57565b67ffffffffffffffff811660009081526003602052604090208054819061115990613235565b90506000036111a0576040517fd79f2ea400000000000000000000000000000000000000000000000000000000815267ffffffffffffffff831660048201526024016109c3565b6040517fcf6730f8000000000000000000000000000000000000000000000000000000008152309063cf6730f8906111dc90869060040161345c565b600060405180830381600087803b1580156111f657600080fd5b505af1925050508015611207575060015b6112a7573d808015611235576040519150601f19603f3d011682016040523d82523d6000602084013e61123a565b606091505b50611247843560016109d3565b508335600090815260046020526040902084906112648282613865565b50506040518435907f55bc02a9ef6f146737edeeb425738006f67f077e7138de3bf84a15bde1a5b56f906112999084906130c0565b60405180910390a250505050565b6040518335907fdf6958669026659bac75ba986685e11a7d271284989f565f2802522663e9a70f90600090a25b505050565b6112e1611e89565b60005b818110156112d4578282828181106112fe576112fe613288565b9050602002810190611310919061395f565b6113219060408101906020016139a1565b6113ed576003600084848481811061133b5761133b613288565b905060200281019061134d919061395f565b61135b906020810190612e57565b67ffffffffffffffff1681526020810191909152604001600090812061138091612ce5565b82828281811061139257611392613288565b90506020028101906113a4919061395f565b6113b2906020810190612e57565b67ffffffffffffffff167f5204aec90a3c794d8e90fded8b46ae9c7c552803e7e832e0c1d358396d85991660405160405180910390a2611662565b8282828181106113ff576113ff613288565b9050602002810190611411919061395f565b61141f9060408101906132f5565b905060000361145a576040517f8579befe00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b60006003600085858581811061147257611472613288565b9050602002810190611484919061395f565b611492906020810190612e57565b67ffffffffffffffff1667ffffffffffffffff16815260200190815260200160002090508383838181106114c8576114c8613288565b90506020028101906114da919061395f565b6114e89060408101906132f5565b82916114f59190836135e9565b5083838381811061150857611508613288565b905060200281019061151a919061395f565b6115289060608101906132f5565b1590506115735783838381811061154157611541613288565b9050602002810190611553919061395f565b6115619060608101906132f5565b60018301916115719190836135e9565b505b83838381811061158557611585613288565b9050602002810190611597919061395f565b6115a59060408101906132f5565b6040516115b3929190613225565b60405180910390208484848181106115cd576115cd613288565b90506020028101906115df919061395f565b6115ed906020810190612e57565b67ffffffffffffffff167f1ced5bcae649ed29cebfa0010298ad6794bf3822e8cb754a6eee5353a9a8721286868681811061162a5761162a613288565b905060200281019061163c919061395f565b61164a9060608101906132f5565b6040516116589291906139be565b60405180910390a3505b6001016112e4565b611672611e89565b73ffffffffffffffffffffffffffffffffffffffff81166116bf576040517f8579befe00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6002805473ffffffffffffffffffffffffffffffffffffffff8381167fffffffffffffffffffffffff0000000000000000000000000000000000000000831681179093556040519116919082907f3672b589036f39ac008505b790fcb05d484d70b65680ec64c089a3c173fdc4c890600090a35050565b61173e611e89565b60085473ffffffffffffffffffffffffffffffffffffffff161561179f5761179f61177e60025473ffffffffffffffffffffffffffffffffffffffff1690565b60085473ffffffffffffffffffffffffffffffffffffffff1690600061214f565b6008805473ffffffffffffffffffffffffffffffffffffffff8381167fffffffffffffffffffffffff00000000000000000000000000000000000000008316811790935516901561184c5761184c61180c60025473ffffffffffffffffffffffffffffffffffffffff1690565b60085473ffffffffffffffffffffffffffffffffffffffff16907fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff6122d1565b8173ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff167f91a03e1d689caf891fe531c01e290f7b718f9c6a3af6726d6d837d2b7bd82e6760405160405180910390a35050565b3330146118e3576040517f14d4a4e800000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6118f36040820160208301612e57565b61190060408301836132f5565b8080601f016020809104026020016040519081016040528093929190818152602001838380828437600092018290525067ffffffffffffffff86168152600360205260409020805490935061195792509050613235565b159050806119ad5750600360008367ffffffffffffffff1667ffffffffffffffff1681526020019081526020016000206002018160405161199891906139d2565b9081526040519081900360200190205460ff16155b156119e657806040517f5075bb380000000000000000000000000000000000000000000000000000000081526004016109c391906130c0565b60006119f560608501856132f5565b810190611a029190613af8565b9050600081604001516001811115611a1c57611a1c612d4c565b03611a2f57611a2a846123cf565b611bf2565b600181604001516001811115611a4757611a47612d4c565b03611bf2576000808260200151806020019051810190611a679190613ba4565b915091506040518060400160405280601581526020017f4d4553534147455f41434b4e4f574c45444745445f0000000000000000000000815250604051602001611ab191906130c0565b6040516020818303038152906040528051906020012082604051602001611ad891906130c0565b6040516020818303038152906040528051906020012014611b25576040517fae15168d00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b600260008281526009602052604090205460ff166002811115611b4a57611b4a612d4c565b03611b84576040517f33704b28000000000000000000000000000000000000000000000000000000008152600481018290526024016109c3565b60008181526009602090815260409182902080547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0016600217905590518281527fef0cb160d3dc564cde61ae97d9981f9c4d92ace727a2ec202b18b223ea832a79910160405180910390a150505b50505050565b6001611c05600583611e76565b14611c3f576040517fb6e78260000000000000000000000000000000000000000000000000000000008152600481018290526024016109c3565b611c4a8160006109d3565b506000818152600460209081526040808320815160a08101835281548152600182015467ffffffffffffffff16938101939093526002810180549192840191611c9290613235565b80601f0160208091040260200160405190810160405280929190818152602001828054611cbe90613235565b8015611d0b5780601f10611ce057610100808354040283529160200191611d0b565b820191906000526020600020905b815481529060010190602001808311611cee57829003601f168201915b50505050508152602001600382018054611d2490613235565b80601f0160208091040260200160405190810160405280929190818152602001828054611d5090613235565b8015611d9d5780601f10611d7257610100808354040283529160200191611d9d565b820191906000526020600020905b815481529060010190602001808311611d8057829003601f168201915b5050505050815260200160048201805480602002602001604051908101604052809291908181526020016000905b82821015611e205760008481526020908190206040805180820190915260028502909101805473ffffffffffffffffffffffffffffffffffffffff168252600190810154828401529083529092019101611dcb565b50505050815250509050611e3381612745565b60405182907fef3bf8c64bc480286c4f3503b870ceb23e648d2d902e31fb7bb46680da6de8ad90600090a25050565b611e6a611e89565b611e73816127b7565b50565b6000611e8283836128ac565b9392505050565b60005473ffffffffffffffffffffffffffffffffffffffff163314611f0a576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601660248201527f4f6e6c792063616c6c61626c65206279206f776e65720000000000000000000060448201526064016109c3565b565b80471015611f76576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601d60248201527f416464726573733a20696e73756666696369656e742062616c616e636500000060448201526064016109c3565b60008273ffffffffffffffffffffffffffffffffffffffff168260405160006040518083038185875af1925050503d8060008114611fd0576040519150601f19603f3d011682016040523d82523d6000602084013e611fd5565b606091505b50509050806112d4576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152603a60248201527f416464726573733a20756e61626c6520746f2073656e642076616c75652c207260448201527f6563697069656e74206d6179206861766520726576657274656400000000000060648201526084016109c3565b60405173ffffffffffffffffffffffffffffffffffffffff83166024820152604481018290526112d49084907fa9059cbb00000000000000000000000000000000000000000000000000000000906064015b604080517fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe08184030181529190526020810180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff167fffffffff0000000000000000000000000000000000000000000000000000000090931692909217909152612936565b6000612147848484612a42565b949350505050565b8015806121ef57506040517fdd62ed3e00000000000000000000000000000000000000000000000000000000815230600482015273ffffffffffffffffffffffffffffffffffffffff838116602483015284169063dd62ed3e90604401602060405180830381865afa1580156121c9573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906121ed9190613c25565b155b61227b576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152603660248201527f5361666545524332303a20617070726f76652066726f6d206e6f6e2d7a65726f60448201527f20746f206e6f6e2d7a65726f20616c6c6f77616e63650000000000000000000060648201526084016109c3565b60405173ffffffffffffffffffffffffffffffffffffffff83166024820152604481018290526112d49084907f095ea7b300000000000000000000000000000000000000000000000000000000906064016120b8565b6040517fdd62ed3e00000000000000000000000000000000000000000000000000000000815230600482015273ffffffffffffffffffffffffffffffffffffffff8381166024830152600091839186169063dd62ed3e90604401602060405180830381865afa158015612348573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061236c9190613c25565b6123769190613c3e565b60405173ffffffffffffffffffffffffffffffffffffffff8516602482015260448101829052909150611bf29085907f095ea7b300000000000000000000000000000000000000000000000000000000906064016120b8565b604080516000808252602082019092528161240c565b60408051808201909152600080825260208201528152602001906001900390816123e55790505b50905060006040518060a0016040528084806040019061242c91906132f5565b8080601f016020809104026020016040519081016040528093929190818152602001838380828437600092019190915250505090825250604080518082018252601581527f4d4553534147455f41434b4e4f574c45444745445f00000000000000000000006020828101919091529151928201926124ad9288359101613c51565b604080517fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0818403018152918152908252602082810186905260085473ffffffffffffffffffffffffffffffffffffffff168383015260609092019160039160009161251d918901908901612e57565b67ffffffffffffffff1667ffffffffffffffff168152602001908152602001600020600101805461254d90613235565b80601f016020809104026020016040519081016040528092919081815260200182805461257990613235565b80156125c65780601f1061259b576101008083540402835291602001916125c6565b820191906000526020600020905b8154815290600101906020018083116125a957829003601f168201915b50505091909252505060025490915060009073ffffffffffffffffffffffffffffffffffffffff166320487ded6126036040870160208801612e57565b846040518363ffffffff1660e01b8152600401612621929190613c73565b602060405180830381865afa15801561263e573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906126629190613c25565b60025460085491925060009173ffffffffffffffffffffffffffffffffffffffff918216916396f4e9f991161561269a57600061269c565b835b6126ac6040890160208a01612e57565b866040518463ffffffff1660e01b81526004016126ca929190613c73565b60206040518083038185885af11580156126e8573d6000803e3d6000fd5b50505050506040513d601f19601f8201168201806040525081019061270d9190613c25565b60405190915081908635907f9102b9031c3c59d8320bf14d84d7d7a3434366b91032fad1c87579cfc62b237290600090a35050505050565b61274d611e89565b6040517fcf6730f8000000000000000000000000000000000000000000000000000000008152309063cf6730f890612789908490600401612ffc565b600060405180830381600087803b1580156127a357600080fd5b505af11580156110c9573d6000803e3d6000fd5b3373ffffffffffffffffffffffffffffffffffffffff821603612836576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601760248201527f43616e6e6f74207472616e7366657220746f2073656c6600000000000000000060448201526064016109c3565b600180547fffffffffffffffffffffffff00000000000000000000000000000000000000001673ffffffffffffffffffffffffffffffffffffffff83811691821790925560008054604051929316917fed8889f560326eb138920d842192f0eb3dd22b4f139c87a2c57538e05bae12789190a350565b6000818152600283016020526040812054801515806128d057506128d08484612a5f565b611e82576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601e60248201527f456e756d657261626c654d61703a206e6f6e6578697374656e74206b6579000060448201526064016109c3565b6000612998826040518060400160405280602081526020017f5361666545524332303a206c6f772d6c6576656c2063616c6c206661696c65648152508573ffffffffffffffffffffffffffffffffffffffff16612a6b9092919063ffffffff16565b8051909150156112d457808060200190518101906129b69190613d40565b6112d4576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602a60248201527f5361666545524332303a204552433230206f7065726174696f6e20646964206e60448201527f6f7420737563636565640000000000000000000000000000000000000000000060648201526084016109c3565b600082815260028401602052604081208290556121478484612a7a565b6000611e828383612a86565b60606121478484600085612a9e565b6000611e828383612bb7565b60008181526001830160205260408120541515611e82565b606082471015612b30576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602660248201527f416464726573733a20696e73756666696369656e742062616c616e636520666f60448201527f722063616c6c000000000000000000000000000000000000000000000000000060648201526084016109c3565b6000808673ffffffffffffffffffffffffffffffffffffffff168587604051612b5991906139d2565b60006040518083038185875af1925050503d8060008114612b96576040519150601f19603f3d011682016040523d82523d6000602084013e612b9b565b606091505b5091509150612bac87838387612c06565b979650505050505050565b6000818152600183016020526040812054612bfe5750815460018181018455600084815260208082209093018490558454848252828601909352604090209190915561066e565b50600061066e565b60608315612c9c578251600003612c955773ffffffffffffffffffffffffffffffffffffffff85163b612c95576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601d60248201527f416464726573733a2063616c6c20746f206e6f6e2d636f6e747261637400000060448201526064016109c3565b5081612147565b6121478383815115612cb15781518083602001fd5b806040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016109c391906130c0565b508054612cf190613235565b6000825580601f10612d01575050565b601f016020900490600052602060002090810190611e7391905b80821115612d2f5760008155600101612d1b565b5090565b600060208284031215612d4557600080fd5b5035919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602160045260246000fd5b6020810160038310612db6577f4e487b7100000000000000000000000000000000000000000000000000000000600052602160045260246000fd5b91905290565b67ffffffffffffffff81168114611e7357600080fd5b600080600060408486031215612de757600080fd5b8335612df281612dbc565b9250602084013567ffffffffffffffff80821115612e0f57600080fd5b818601915086601f830112612e2357600080fd5b813581811115612e3257600080fd5b876020828501011115612e4457600080fd5b6020830194508093505050509250925092565b600060208284031215612e6957600080fd5b8135611e8281612dbc565b60005b83811015612e8f578181015183820152602001612e77565b50506000910152565b60008151808452612eb0816020860160208601612e74565b601f017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0169290920160200192915050565b604081526000612ef56040830185612e98565b8281036020840152612f078185612e98565b95945050505050565b73ffffffffffffffffffffffffffffffffffffffff81168114611e7357600080fd5b60008060408385031215612f4557600080fd5b8235612f5081612f10565b946020939093013593505050565b600080600060608486031215612f7357600080fd5b8335612f7e81612f10565b92506020840135612f8e81612f10565b929592945050506040919091013590565b60008151808452602080850194506020840160005b83811015612ff1578151805173ffffffffffffffffffffffffffffffffffffffff1688528301518388015260409096019590820190600101612fb4565b509495945050505050565b602081528151602082015267ffffffffffffffff60208301511660408201526000604083015160a0606084015261303660c0840182612e98565b905060608401517fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0808584030160808601526130728383612e98565b925060808601519150808584030160a086015250612f078282612f9f565b600080604083850312156130a357600080fd5b8235915060208301356130b581612f10565b809150509250929050565b602081526000611e826020830184612e98565b60008083601f8401126130e557600080fd5b50813567ffffffffffffffff8111156130fd57600080fd5b6020830191508360208260051b850101111561311857600080fd5b9250929050565b6000806000806040858703121561313557600080fd5b843567ffffffffffffffff8082111561314d57600080fd5b613159888389016130d3565b9096509450602087013591508082111561317257600080fd5b5061317f878288016130d3565b95989497509550505050565b60006020828403121561319d57600080fd5b813567ffffffffffffffff8111156131b457600080fd5b820160a08185031215611e8257600080fd5b600080602083850312156131d957600080fd5b823567ffffffffffffffff8111156131f057600080fd5b6131fc858286016130d3565b90969095509350505050565b60006020828403121561321a57600080fd5b8135611e8281612f10565b8183823760009101908152919050565b600181811c9082168061324957607f821691505b602082108103613282577f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b50919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b600082357fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc18336030181126132eb57600080fd5b9190910192915050565b60008083357fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe184360301811261332a57600080fd5b83018035915067ffffffffffffffff82111561334557600080fd5b60200191503681900382131561311857600080fd5b60008083357fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe184360301811261338f57600080fd5b830160208101925035905067ffffffffffffffff8111156133af57600080fd5b80360382131561311857600080fd5b8183528181602085013750600060208284010152600060207fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0601f840116840101905092915050565b8183526000602080850194508260005b85811015612ff157813561342a81612f10565b73ffffffffffffffffffffffffffffffffffffffff168752818301358388015260409687019690910190600101613417565b60208152813560208201526000602083013561347781612dbc565b67ffffffffffffffff8082166040850152613495604086018661335a565b925060a060608601526134ac60c0860184836133be565b9250506134bc606086018661335a565b7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0808786030160808801526134f28583856133be565b9450608088013592507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe188360301831261352b57600080fd5b6020928801928301923591508382111561354457600080fd5b8160061b360383131561355657600080fd5b8685030160a0870152612bac848284613407565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b601f8211156112d4576000816000526020600020601f850160051c810160208610156135c25750805b601f850160051c820191505b818110156135e1578281556001016135ce565b505050505050565b67ffffffffffffffff8311156136015761360161356a565b6136158361360f8354613235565b83613599565b6000601f84116001811461366757600085156136315750838201355b7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff600387901b1c1916600186901b1783556110c9565b6000838152602090207fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0861690835b828110156136b65786850135825560209485019460019092019101613696565b50868210156136f1577fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff60f88860031b161c19848701351681555b505060018560011b0183555050505050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b813561373d81612f10565b73ffffffffffffffffffffffffffffffffffffffff81167fffffffffffffffffffffffff000000000000000000000000000000000000000083541617825550602082013560018201555050565b680100000000000000008311156137a3576137a361356a565b8054838255808410156138305760017f7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff80831683146137e4576137e4613703565b80861686146137f5576137f5613703565b5060008360005260206000208360011b81018760011b820191505b8082101561382b578282558284830155600282019150613810565b505050505b5060008181526020812083915b858110156135e15761384f8383613732565b604092909201916002919091019060010161383d565b8135815560018101602083013561387b81612dbc565b67ffffffffffffffff8082167fffffffffffffffffffffffffffffffffffffffffffffffff00000000000000008454161783556138bb60408601866132f5565b935091506138cd8383600287016135e9565b6138da60608601866132f5565b935091506138ec8383600387016135e9565b608085013592507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe185360301831261392357600080fd5b91840191823591508082111561393857600080fd5b506020820191508060061b360382131561395157600080fd5b611bf281836004860161378a565b600082357fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff818336030181126132eb57600080fd5b8015158114611e7357600080fd5b6000602082840312156139b357600080fd5b8135611e8281613993565b6020815260006121476020830184866133be565b600082516132eb818460208701612e74565b6040516060810167ffffffffffffffff81118282101715613a0757613a0761356a565b60405290565b604051601f82017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe016810167ffffffffffffffff81118282101715613a5457613a5461356a565b604052919050565b600067ffffffffffffffff821115613a7657613a7661356a565b50601f017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe01660200190565b600082601f830112613ab357600080fd5b8135613ac6613ac182613a5c565b613a0d565b818152846020838601011115613adb57600080fd5b816020850160208301376000918101602001919091529392505050565b600060208284031215613b0a57600080fd5b813567ffffffffffffffff80821115613b2257600080fd5b9083019060608286031215613b3657600080fd5b613b3e6139e4565b823582811115613b4d57600080fd5b613b5987828601613aa2565b825250602083013582811115613b6e57600080fd5b613b7a87828601613aa2565b6020830152506040830135925060028310613b9457600080fd5b6040810192909252509392505050565b60008060408385031215613bb757600080fd5b825167ffffffffffffffff811115613bce57600080fd5b8301601f81018513613bdf57600080fd5b8051613bed613ac182613a5c565b818152866020838501011115613c0257600080fd5b613c13826020830160208601612e74565b60209590950151949694955050505050565b600060208284031215613c3757600080fd5b5051919050565b8082018082111561066e5761066e613703565b604081526000613c646040830185612e98565b90508260208301529392505050565b67ffffffffffffffff83168152604060208201526000825160a06040840152613c9f60e0840182612e98565b905060208401517fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc080858403016060860152613cdb8383612e98565b92506040860151915080858403016080860152613cf88383612f9f565b925073ffffffffffffffffffffffffffffffffffffffff60608701511660a086015260808601519150808584030160c086015250613d368282612e98565b9695505050505050565b600060208284031215613d5257600080fd5b8151611e828161399356fea164736f6c6343000818000a", } -var CCIPReceiverWithAckABI = CCIPReceiverWithAckMetaData.ABI +var CCIPReceiverWithACKABI = CCIPReceiverWithACKMetaData.ABI -var CCIPReceiverWithAckBin = CCIPReceiverWithAckMetaData.Bin +var CCIPReceiverWithACKBin = CCIPReceiverWithACKMetaData.Bin -func DeployCCIPReceiverWithAck(auth *bind.TransactOpts, backend bind.ContractBackend, router common.Address, feeToken common.Address) (common.Address, *types.Transaction, *CCIPReceiverWithAck, error) { - parsed, err := CCIPReceiverWithAckMetaData.GetAbi() +func DeployCCIPReceiverWithACK(auth *bind.TransactOpts, backend bind.ContractBackend, router common.Address, feeToken common.Address) (common.Address, *types.Transaction, *CCIPReceiverWithACK, error) { + parsed, err := CCIPReceiverWithACKMetaData.GetAbi() if err != nil { return common.Address{}, nil, nil, err } @@ -66,154 +73,154 @@ func DeployCCIPReceiverWithAck(auth *bind.TransactOpts, backend bind.ContractBac return common.Address{}, nil, nil, errors.New("GetABI returned nil") } - address, tx, contract, err := bind.DeployContract(auth, *parsed, common.FromHex(CCIPReceiverWithAckBin), backend, router, feeToken) + address, tx, contract, err := bind.DeployContract(auth, *parsed, common.FromHex(CCIPReceiverWithACKBin), backend, router, feeToken) if err != nil { return common.Address{}, nil, nil, err } - return address, tx, &CCIPReceiverWithAck{address: address, abi: *parsed, CCIPReceiverWithAckCaller: CCIPReceiverWithAckCaller{contract: contract}, CCIPReceiverWithAckTransactor: CCIPReceiverWithAckTransactor{contract: contract}, CCIPReceiverWithAckFilterer: CCIPReceiverWithAckFilterer{contract: contract}}, nil + return address, tx, &CCIPReceiverWithACK{address: address, abi: *parsed, CCIPReceiverWithACKCaller: CCIPReceiverWithACKCaller{contract: contract}, CCIPReceiverWithACKTransactor: CCIPReceiverWithACKTransactor{contract: contract}, CCIPReceiverWithACKFilterer: CCIPReceiverWithACKFilterer{contract: contract}}, nil } -type CCIPReceiverWithAck struct { +type CCIPReceiverWithACK struct { address common.Address abi abi.ABI - CCIPReceiverWithAckCaller - CCIPReceiverWithAckTransactor - CCIPReceiverWithAckFilterer + CCIPReceiverWithACKCaller + CCIPReceiverWithACKTransactor + CCIPReceiverWithACKFilterer } -type CCIPReceiverWithAckCaller struct { +type CCIPReceiverWithACKCaller struct { contract *bind.BoundContract } -type CCIPReceiverWithAckTransactor struct { +type CCIPReceiverWithACKTransactor struct { contract *bind.BoundContract } -type CCIPReceiverWithAckFilterer struct { +type CCIPReceiverWithACKFilterer struct { contract *bind.BoundContract } -type CCIPReceiverWithAckSession struct { - Contract *CCIPReceiverWithAck +type CCIPReceiverWithACKSession struct { + Contract *CCIPReceiverWithACK CallOpts bind.CallOpts TransactOpts bind.TransactOpts } -type CCIPReceiverWithAckCallerSession struct { - Contract *CCIPReceiverWithAckCaller +type CCIPReceiverWithACKCallerSession struct { + Contract *CCIPReceiverWithACKCaller CallOpts bind.CallOpts } -type CCIPReceiverWithAckTransactorSession struct { - Contract *CCIPReceiverWithAckTransactor +type CCIPReceiverWithACKTransactorSession struct { + Contract *CCIPReceiverWithACKTransactor TransactOpts bind.TransactOpts } -type CCIPReceiverWithAckRaw struct { - Contract *CCIPReceiverWithAck +type CCIPReceiverWithACKRaw struct { + Contract *CCIPReceiverWithACK } -type CCIPReceiverWithAckCallerRaw struct { - Contract *CCIPReceiverWithAckCaller +type CCIPReceiverWithACKCallerRaw struct { + Contract *CCIPReceiverWithACKCaller } -type CCIPReceiverWithAckTransactorRaw struct { - Contract *CCIPReceiverWithAckTransactor +type CCIPReceiverWithACKTransactorRaw struct { + Contract *CCIPReceiverWithACKTransactor } -func NewCCIPReceiverWithAck(address common.Address, backend bind.ContractBackend) (*CCIPReceiverWithAck, error) { - abi, err := abi.JSON(strings.NewReader(CCIPReceiverWithAckABI)) +func NewCCIPReceiverWithACK(address common.Address, backend bind.ContractBackend) (*CCIPReceiverWithACK, error) { + abi, err := abi.JSON(strings.NewReader(CCIPReceiverWithACKABI)) if err != nil { return nil, err } - contract, err := bindCCIPReceiverWithAck(address, backend, backend, backend) + contract, err := bindCCIPReceiverWithACK(address, backend, backend, backend) if err != nil { return nil, err } - return &CCIPReceiverWithAck{address: address, abi: abi, CCIPReceiverWithAckCaller: CCIPReceiverWithAckCaller{contract: contract}, CCIPReceiverWithAckTransactor: CCIPReceiverWithAckTransactor{contract: contract}, CCIPReceiverWithAckFilterer: CCIPReceiverWithAckFilterer{contract: contract}}, nil + return &CCIPReceiverWithACK{address: address, abi: abi, CCIPReceiverWithACKCaller: CCIPReceiverWithACKCaller{contract: contract}, CCIPReceiverWithACKTransactor: CCIPReceiverWithACKTransactor{contract: contract}, CCIPReceiverWithACKFilterer: CCIPReceiverWithACKFilterer{contract: contract}}, nil } -func NewCCIPReceiverWithAckCaller(address common.Address, caller bind.ContractCaller) (*CCIPReceiverWithAckCaller, error) { - contract, err := bindCCIPReceiverWithAck(address, caller, nil, nil) +func NewCCIPReceiverWithACKCaller(address common.Address, caller bind.ContractCaller) (*CCIPReceiverWithACKCaller, error) { + contract, err := bindCCIPReceiverWithACK(address, caller, nil, nil) if err != nil { return nil, err } - return &CCIPReceiverWithAckCaller{contract: contract}, nil + return &CCIPReceiverWithACKCaller{contract: contract}, nil } -func NewCCIPReceiverWithAckTransactor(address common.Address, transactor bind.ContractTransactor) (*CCIPReceiverWithAckTransactor, error) { - contract, err := bindCCIPReceiverWithAck(address, nil, transactor, nil) +func NewCCIPReceiverWithACKTransactor(address common.Address, transactor bind.ContractTransactor) (*CCIPReceiverWithACKTransactor, error) { + contract, err := bindCCIPReceiverWithACK(address, nil, transactor, nil) if err != nil { return nil, err } - return &CCIPReceiverWithAckTransactor{contract: contract}, nil + return &CCIPReceiverWithACKTransactor{contract: contract}, nil } -func NewCCIPReceiverWithAckFilterer(address common.Address, filterer bind.ContractFilterer) (*CCIPReceiverWithAckFilterer, error) { - contract, err := bindCCIPReceiverWithAck(address, nil, nil, filterer) +func NewCCIPReceiverWithACKFilterer(address common.Address, filterer bind.ContractFilterer) (*CCIPReceiverWithACKFilterer, error) { + contract, err := bindCCIPReceiverWithACK(address, nil, nil, filterer) if err != nil { return nil, err } - return &CCIPReceiverWithAckFilterer{contract: contract}, nil + return &CCIPReceiverWithACKFilterer{contract: contract}, nil } -func bindCCIPReceiverWithAck(address common.Address, caller bind.ContractCaller, transactor bind.ContractTransactor, filterer bind.ContractFilterer) (*bind.BoundContract, error) { - parsed, err := CCIPReceiverWithAckMetaData.GetAbi() +func bindCCIPReceiverWithACK(address common.Address, caller bind.ContractCaller, transactor bind.ContractTransactor, filterer bind.ContractFilterer) (*bind.BoundContract, error) { + parsed, err := CCIPReceiverWithACKMetaData.GetAbi() if err != nil { return nil, err } return bind.NewBoundContract(address, *parsed, caller, transactor, filterer), nil } -func (_CCIPReceiverWithAck *CCIPReceiverWithAckRaw) Call(opts *bind.CallOpts, result *[]interface{}, method string, params ...interface{}) error { - return _CCIPReceiverWithAck.Contract.CCIPReceiverWithAckCaller.contract.Call(opts, result, method, params...) +func (_CCIPReceiverWithACK *CCIPReceiverWithACKRaw) Call(opts *bind.CallOpts, result *[]interface{}, method string, params ...interface{}) error { + return _CCIPReceiverWithACK.Contract.CCIPReceiverWithACKCaller.contract.Call(opts, result, method, params...) } -func (_CCIPReceiverWithAck *CCIPReceiverWithAckRaw) Transfer(opts *bind.TransactOpts) (*types.Transaction, error) { - return _CCIPReceiverWithAck.Contract.CCIPReceiverWithAckTransactor.contract.Transfer(opts) +func (_CCIPReceiverWithACK *CCIPReceiverWithACKRaw) Transfer(opts *bind.TransactOpts) (*types.Transaction, error) { + return _CCIPReceiverWithACK.Contract.CCIPReceiverWithACKTransactor.contract.Transfer(opts) } -func (_CCIPReceiverWithAck *CCIPReceiverWithAckRaw) Transact(opts *bind.TransactOpts, method string, params ...interface{}) (*types.Transaction, error) { - return _CCIPReceiverWithAck.Contract.CCIPReceiverWithAckTransactor.contract.Transact(opts, method, params...) +func (_CCIPReceiverWithACK *CCIPReceiverWithACKRaw) Transact(opts *bind.TransactOpts, method string, params ...interface{}) (*types.Transaction, error) { + return _CCIPReceiverWithACK.Contract.CCIPReceiverWithACKTransactor.contract.Transact(opts, method, params...) } -func (_CCIPReceiverWithAck *CCIPReceiverWithAckCallerRaw) Call(opts *bind.CallOpts, result *[]interface{}, method string, params ...interface{}) error { - return _CCIPReceiverWithAck.Contract.contract.Call(opts, result, method, params...) +func (_CCIPReceiverWithACK *CCIPReceiverWithACKCallerRaw) Call(opts *bind.CallOpts, result *[]interface{}, method string, params ...interface{}) error { + return _CCIPReceiverWithACK.Contract.contract.Call(opts, result, method, params...) } -func (_CCIPReceiverWithAck *CCIPReceiverWithAckTransactorRaw) Transfer(opts *bind.TransactOpts) (*types.Transaction, error) { - return _CCIPReceiverWithAck.Contract.contract.Transfer(opts) +func (_CCIPReceiverWithACK *CCIPReceiverWithACKTransactorRaw) Transfer(opts *bind.TransactOpts) (*types.Transaction, error) { + return _CCIPReceiverWithACK.Contract.contract.Transfer(opts) } -func (_CCIPReceiverWithAck *CCIPReceiverWithAckTransactorRaw) Transact(opts *bind.TransactOpts, method string, params ...interface{}) (*types.Transaction, error) { - return _CCIPReceiverWithAck.Contract.contract.Transact(opts, method, params...) +func (_CCIPReceiverWithACK *CCIPReceiverWithACKTransactorRaw) Transact(opts *bind.TransactOpts, method string, params ...interface{}) (*types.Transaction, error) { + return _CCIPReceiverWithACK.Contract.contract.Transact(opts, method, params...) } -func (_CCIPReceiverWithAck *CCIPReceiverWithAckCaller) ACKMESSAGEMAGICBYTES(opts *bind.CallOpts) ([]byte, error) { +func (_CCIPReceiverWithACK *CCIPReceiverWithACKCaller) ACKMESSAGEHEADER(opts *bind.CallOpts) (string, error) { var out []interface{} - err := _CCIPReceiverWithAck.contract.Call(opts, &out, "ACKMESSAGEMAGICBYTES") + err := _CCIPReceiverWithACK.contract.Call(opts, &out, "ACK_MESSAGE_HEADER") if err != nil { - return *new([]byte), err + return *new(string), err } - out0 := *abi.ConvertType(out[0], new([]byte)).(*[]byte) + out0 := *abi.ConvertType(out[0], new(string)).(*string) return out0, err } -func (_CCIPReceiverWithAck *CCIPReceiverWithAckSession) ACKMESSAGEMAGICBYTES() ([]byte, error) { - return _CCIPReceiverWithAck.Contract.ACKMESSAGEMAGICBYTES(&_CCIPReceiverWithAck.CallOpts) +func (_CCIPReceiverWithACK *CCIPReceiverWithACKSession) ACKMESSAGEHEADER() (string, error) { + return _CCIPReceiverWithACK.Contract.ACKMESSAGEHEADER(&_CCIPReceiverWithACK.CallOpts) } -func (_CCIPReceiverWithAck *CCIPReceiverWithAckCallerSession) ACKMESSAGEMAGICBYTES() ([]byte, error) { - return _CCIPReceiverWithAck.Contract.ACKMESSAGEMAGICBYTES(&_CCIPReceiverWithAck.CallOpts) +func (_CCIPReceiverWithACK *CCIPReceiverWithACKCallerSession) ACKMESSAGEHEADER() (string, error) { + return _CCIPReceiverWithACK.Contract.ACKMESSAGEHEADER(&_CCIPReceiverWithACK.CallOpts) } -func (_CCIPReceiverWithAck *CCIPReceiverWithAckCaller) GetMessageContents(opts *bind.CallOpts, messageId [32]byte) (ClientAny2EVMMessage, error) { +func (_CCIPReceiverWithACK *CCIPReceiverWithACKCaller) GetMessageContents(opts *bind.CallOpts, messageId [32]byte) (ClientAny2EVMMessage, error) { var out []interface{} - err := _CCIPReceiverWithAck.contract.Call(opts, &out, "getMessageContents", messageId) + err := _CCIPReceiverWithACK.contract.Call(opts, &out, "getMessageContents", messageId) if err != nil { return *new(ClientAny2EVMMessage), err @@ -225,17 +232,17 @@ func (_CCIPReceiverWithAck *CCIPReceiverWithAckCaller) GetMessageContents(opts * } -func (_CCIPReceiverWithAck *CCIPReceiverWithAckSession) GetMessageContents(messageId [32]byte) (ClientAny2EVMMessage, error) { - return _CCIPReceiverWithAck.Contract.GetMessageContents(&_CCIPReceiverWithAck.CallOpts, messageId) +func (_CCIPReceiverWithACK *CCIPReceiverWithACKSession) GetMessageContents(messageId [32]byte) (ClientAny2EVMMessage, error) { + return _CCIPReceiverWithACK.Contract.GetMessageContents(&_CCIPReceiverWithACK.CallOpts, messageId) } -func (_CCIPReceiverWithAck *CCIPReceiverWithAckCallerSession) GetMessageContents(messageId [32]byte) (ClientAny2EVMMessage, error) { - return _CCIPReceiverWithAck.Contract.GetMessageContents(&_CCIPReceiverWithAck.CallOpts, messageId) +func (_CCIPReceiverWithACK *CCIPReceiverWithACKCallerSession) GetMessageContents(messageId [32]byte) (ClientAny2EVMMessage, error) { + return _CCIPReceiverWithACK.Contract.GetMessageContents(&_CCIPReceiverWithACK.CallOpts, messageId) } -func (_CCIPReceiverWithAck *CCIPReceiverWithAckCaller) GetMessageStatus(opts *bind.CallOpts, messageId [32]byte) (*big.Int, error) { +func (_CCIPReceiverWithACK *CCIPReceiverWithACKCaller) GetMessageStatus(opts *bind.CallOpts, messageId [32]byte) (*big.Int, error) { var out []interface{} - err := _CCIPReceiverWithAck.contract.Call(opts, &out, "getMessageStatus", messageId) + err := _CCIPReceiverWithACK.contract.Call(opts, &out, "getMessageStatus", messageId) if err != nil { return *new(*big.Int), err @@ -247,17 +254,17 @@ func (_CCIPReceiverWithAck *CCIPReceiverWithAckCaller) GetMessageStatus(opts *bi } -func (_CCIPReceiverWithAck *CCIPReceiverWithAckSession) GetMessageStatus(messageId [32]byte) (*big.Int, error) { - return _CCIPReceiverWithAck.Contract.GetMessageStatus(&_CCIPReceiverWithAck.CallOpts, messageId) +func (_CCIPReceiverWithACK *CCIPReceiverWithACKSession) GetMessageStatus(messageId [32]byte) (*big.Int, error) { + return _CCIPReceiverWithACK.Contract.GetMessageStatus(&_CCIPReceiverWithACK.CallOpts, messageId) } -func (_CCIPReceiverWithAck *CCIPReceiverWithAckCallerSession) GetMessageStatus(messageId [32]byte) (*big.Int, error) { - return _CCIPReceiverWithAck.Contract.GetMessageStatus(&_CCIPReceiverWithAck.CallOpts, messageId) +func (_CCIPReceiverWithACK *CCIPReceiverWithACKCallerSession) GetMessageStatus(messageId [32]byte) (*big.Int, error) { + return _CCIPReceiverWithACK.Contract.GetMessageStatus(&_CCIPReceiverWithACK.CallOpts, messageId) } -func (_CCIPReceiverWithAck *CCIPReceiverWithAckCaller) GetRouter(opts *bind.CallOpts) (common.Address, error) { +func (_CCIPReceiverWithACK *CCIPReceiverWithACKCaller) GetRouter(opts *bind.CallOpts) (common.Address, error) { var out []interface{} - err := _CCIPReceiverWithAck.contract.Call(opts, &out, "getRouter") + err := _CCIPReceiverWithACK.contract.Call(opts, &out, "getRouter") if err != nil { return *new(common.Address), err @@ -269,17 +276,17 @@ func (_CCIPReceiverWithAck *CCIPReceiverWithAckCaller) GetRouter(opts *bind.Call } -func (_CCIPReceiverWithAck *CCIPReceiverWithAckSession) GetRouter() (common.Address, error) { - return _CCIPReceiverWithAck.Contract.GetRouter(&_CCIPReceiverWithAck.CallOpts) +func (_CCIPReceiverWithACK *CCIPReceiverWithACKSession) GetRouter() (common.Address, error) { + return _CCIPReceiverWithACK.Contract.GetRouter(&_CCIPReceiverWithACK.CallOpts) } -func (_CCIPReceiverWithAck *CCIPReceiverWithAckCallerSession) GetRouter() (common.Address, error) { - return _CCIPReceiverWithAck.Contract.GetRouter(&_CCIPReceiverWithAck.CallOpts) +func (_CCIPReceiverWithACK *CCIPReceiverWithACKCallerSession) GetRouter() (common.Address, error) { + return _CCIPReceiverWithACK.Contract.GetRouter(&_CCIPReceiverWithACK.CallOpts) } -func (_CCIPReceiverWithAck *CCIPReceiverWithAckCaller) IsApprovedSender(opts *bind.CallOpts, sourceChainSelector uint64, senderAddr []byte) (bool, error) { +func (_CCIPReceiverWithACK *CCIPReceiverWithACKCaller) IsApprovedSender(opts *bind.CallOpts, sourceChainSelector uint64, senderAddr []byte) (bool, error) { var out []interface{} - err := _CCIPReceiverWithAck.contract.Call(opts, &out, "isApprovedSender", sourceChainSelector, senderAddr) + err := _CCIPReceiverWithACK.contract.Call(opts, &out, "isApprovedSender", sourceChainSelector, senderAddr) if err != nil { return *new(bool), err @@ -291,17 +298,17 @@ func (_CCIPReceiverWithAck *CCIPReceiverWithAckCaller) IsApprovedSender(opts *bi } -func (_CCIPReceiverWithAck *CCIPReceiverWithAckSession) IsApprovedSender(sourceChainSelector uint64, senderAddr []byte) (bool, error) { - return _CCIPReceiverWithAck.Contract.IsApprovedSender(&_CCIPReceiverWithAck.CallOpts, sourceChainSelector, senderAddr) +func (_CCIPReceiverWithACK *CCIPReceiverWithACKSession) IsApprovedSender(sourceChainSelector uint64, senderAddr []byte) (bool, error) { + return _CCIPReceiverWithACK.Contract.IsApprovedSender(&_CCIPReceiverWithACK.CallOpts, sourceChainSelector, senderAddr) } -func (_CCIPReceiverWithAck *CCIPReceiverWithAckCallerSession) IsApprovedSender(sourceChainSelector uint64, senderAddr []byte) (bool, error) { - return _CCIPReceiverWithAck.Contract.IsApprovedSender(&_CCIPReceiverWithAck.CallOpts, sourceChainSelector, senderAddr) +func (_CCIPReceiverWithACK *CCIPReceiverWithACKCallerSession) IsApprovedSender(sourceChainSelector uint64, senderAddr []byte) (bool, error) { + return _CCIPReceiverWithACK.Contract.IsApprovedSender(&_CCIPReceiverWithACK.CallOpts, sourceChainSelector, senderAddr) } -func (_CCIPReceiverWithAck *CCIPReceiverWithAckCaller) Owner(opts *bind.CallOpts) (common.Address, error) { +func (_CCIPReceiverWithACK *CCIPReceiverWithACKCaller) Owner(opts *bind.CallOpts) (common.Address, error) { var out []interface{} - err := _CCIPReceiverWithAck.contract.Call(opts, &out, "owner") + err := _CCIPReceiverWithACK.contract.Call(opts, &out, "owner") if err != nil { return *new(common.Address), err @@ -313,21 +320,21 @@ func (_CCIPReceiverWithAck *CCIPReceiverWithAckCaller) Owner(opts *bind.CallOpts } -func (_CCIPReceiverWithAck *CCIPReceiverWithAckSession) Owner() (common.Address, error) { - return _CCIPReceiverWithAck.Contract.Owner(&_CCIPReceiverWithAck.CallOpts) +func (_CCIPReceiverWithACK *CCIPReceiverWithACKSession) Owner() (common.Address, error) { + return _CCIPReceiverWithACK.Contract.Owner(&_CCIPReceiverWithACK.CallOpts) } -func (_CCIPReceiverWithAck *CCIPReceiverWithAckCallerSession) Owner() (common.Address, error) { - return _CCIPReceiverWithAck.Contract.Owner(&_CCIPReceiverWithAck.CallOpts) +func (_CCIPReceiverWithACK *CCIPReceiverWithACKCallerSession) Owner() (common.Address, error) { + return _CCIPReceiverWithACK.Contract.Owner(&_CCIPReceiverWithACK.CallOpts) } -func (_CCIPReceiverWithAck *CCIPReceiverWithAckCaller) SChains(opts *bind.CallOpts, arg0 uint64) (SChains, +func (_CCIPReceiverWithACK *CCIPReceiverWithACKCaller) SChainConfigs(opts *bind.CallOpts, destChainSelector uint64) (SChainConfigs, error) { var out []interface{} - err := _CCIPReceiverWithAck.contract.Call(opts, &out, "s_chains", arg0) + err := _CCIPReceiverWithACK.contract.Call(opts, &out, "s_chainConfigs", destChainSelector) - outstruct := new(SChains) + outstruct := new(SChainConfigs) if err != nil { return *outstruct, err } @@ -339,21 +346,21 @@ func (_CCIPReceiverWithAck *CCIPReceiverWithAckCaller) SChains(opts *bind.CallOp } -func (_CCIPReceiverWithAck *CCIPReceiverWithAckSession) SChains(arg0 uint64) (SChains, +func (_CCIPReceiverWithACK *CCIPReceiverWithACKSession) SChainConfigs(destChainSelector uint64) (SChainConfigs, error) { - return _CCIPReceiverWithAck.Contract.SChains(&_CCIPReceiverWithAck.CallOpts, arg0) + return _CCIPReceiverWithACK.Contract.SChainConfigs(&_CCIPReceiverWithACK.CallOpts, destChainSelector) } -func (_CCIPReceiverWithAck *CCIPReceiverWithAckCallerSession) SChains(arg0 uint64) (SChains, +func (_CCIPReceiverWithACK *CCIPReceiverWithACKCallerSession) SChainConfigs(destChainSelector uint64) (SChainConfigs, error) { - return _CCIPReceiverWithAck.Contract.SChains(&_CCIPReceiverWithAck.CallOpts, arg0) + return _CCIPReceiverWithACK.Contract.SChainConfigs(&_CCIPReceiverWithACK.CallOpts, destChainSelector) } -func (_CCIPReceiverWithAck *CCIPReceiverWithAckCaller) SFeeToken(opts *bind.CallOpts) (common.Address, error) { +func (_CCIPReceiverWithACK *CCIPReceiverWithACKCaller) SFeeToken(opts *bind.CallOpts) (common.Address, error) { var out []interface{} - err := _CCIPReceiverWithAck.contract.Call(opts, &out, "s_feeToken") + err := _CCIPReceiverWithACK.contract.Call(opts, &out, "s_feeToken") if err != nil { return *new(common.Address), err @@ -365,17 +372,17 @@ func (_CCIPReceiverWithAck *CCIPReceiverWithAckCaller) SFeeToken(opts *bind.Call } -func (_CCIPReceiverWithAck *CCIPReceiverWithAckSession) SFeeToken() (common.Address, error) { - return _CCIPReceiverWithAck.Contract.SFeeToken(&_CCIPReceiverWithAck.CallOpts) +func (_CCIPReceiverWithACK *CCIPReceiverWithACKSession) SFeeToken() (common.Address, error) { + return _CCIPReceiverWithACK.Contract.SFeeToken(&_CCIPReceiverWithACK.CallOpts) } -func (_CCIPReceiverWithAck *CCIPReceiverWithAckCallerSession) SFeeToken() (common.Address, error) { - return _CCIPReceiverWithAck.Contract.SFeeToken(&_CCIPReceiverWithAck.CallOpts) +func (_CCIPReceiverWithACK *CCIPReceiverWithACKCallerSession) SFeeToken() (common.Address, error) { + return _CCIPReceiverWithACK.Contract.SFeeToken(&_CCIPReceiverWithACK.CallOpts) } -func (_CCIPReceiverWithAck *CCIPReceiverWithAckCaller) SMessageStatus(opts *bind.CallOpts, messageId [32]byte) (uint8, error) { +func (_CCIPReceiverWithACK *CCIPReceiverWithACKCaller) SMessageStatus(opts *bind.CallOpts, messageId [32]byte) (uint8, error) { var out []interface{} - err := _CCIPReceiverWithAck.contract.Call(opts, &out, "s_messageStatus", messageId) + err := _CCIPReceiverWithACK.contract.Call(opts, &out, "s_messageStatus", messageId) if err != nil { return *new(uint8), err @@ -387,206 +394,172 @@ func (_CCIPReceiverWithAck *CCIPReceiverWithAckCaller) SMessageStatus(opts *bind } -func (_CCIPReceiverWithAck *CCIPReceiverWithAckSession) SMessageStatus(messageId [32]byte) (uint8, error) { - return _CCIPReceiverWithAck.Contract.SMessageStatus(&_CCIPReceiverWithAck.CallOpts, messageId) -} - -func (_CCIPReceiverWithAck *CCIPReceiverWithAckCallerSession) SMessageStatus(messageId [32]byte) (uint8, error) { - return _CCIPReceiverWithAck.Contract.SMessageStatus(&_CCIPReceiverWithAck.CallOpts, messageId) -} - -func (_CCIPReceiverWithAck *CCIPReceiverWithAckCaller) TypeAndVersion(opts *bind.CallOpts) (string, error) { - var out []interface{} - err := _CCIPReceiverWithAck.contract.Call(opts, &out, "typeAndVersion") - - if err != nil { - return *new(string), err - } - - out0 := *abi.ConvertType(out[0], new(string)).(*string) - - return out0, err - -} - -func (_CCIPReceiverWithAck *CCIPReceiverWithAckSession) TypeAndVersion() (string, error) { - return _CCIPReceiverWithAck.Contract.TypeAndVersion(&_CCIPReceiverWithAck.CallOpts) -} - -func (_CCIPReceiverWithAck *CCIPReceiverWithAckCallerSession) TypeAndVersion() (string, error) { - return _CCIPReceiverWithAck.Contract.TypeAndVersion(&_CCIPReceiverWithAck.CallOpts) +func (_CCIPReceiverWithACK *CCIPReceiverWithACKSession) SMessageStatus(messageId [32]byte) (uint8, error) { + return _CCIPReceiverWithACK.Contract.SMessageStatus(&_CCIPReceiverWithACK.CallOpts, messageId) } -func (_CCIPReceiverWithAck *CCIPReceiverWithAckTransactor) AcceptOwnership(opts *bind.TransactOpts) (*types.Transaction, error) { - return _CCIPReceiverWithAck.contract.Transact(opts, "acceptOwnership") +func (_CCIPReceiverWithACK *CCIPReceiverWithACKCallerSession) SMessageStatus(messageId [32]byte) (uint8, error) { + return _CCIPReceiverWithACK.Contract.SMessageStatus(&_CCIPReceiverWithACK.CallOpts, messageId) } -func (_CCIPReceiverWithAck *CCIPReceiverWithAckSession) AcceptOwnership() (*types.Transaction, error) { - return _CCIPReceiverWithAck.Contract.AcceptOwnership(&_CCIPReceiverWithAck.TransactOpts) +func (_CCIPReceiverWithACK *CCIPReceiverWithACKTransactor) AbandonFailedMessage(opts *bind.TransactOpts, messageId [32]byte, receiver common.Address) (*types.Transaction, error) { + return _CCIPReceiverWithACK.contract.Transact(opts, "abandonFailedMessage", messageId, receiver) } -func (_CCIPReceiverWithAck *CCIPReceiverWithAckTransactorSession) AcceptOwnership() (*types.Transaction, error) { - return _CCIPReceiverWithAck.Contract.AcceptOwnership(&_CCIPReceiverWithAck.TransactOpts) +func (_CCIPReceiverWithACK *CCIPReceiverWithACKSession) AbandonFailedMessage(messageId [32]byte, receiver common.Address) (*types.Transaction, error) { + return _CCIPReceiverWithACK.Contract.AbandonFailedMessage(&_CCIPReceiverWithACK.TransactOpts, messageId, receiver) } -func (_CCIPReceiverWithAck *CCIPReceiverWithAckTransactor) CcipReceive(opts *bind.TransactOpts, message ClientAny2EVMMessage) (*types.Transaction, error) { - return _CCIPReceiverWithAck.contract.Transact(opts, "ccipReceive", message) +func (_CCIPReceiverWithACK *CCIPReceiverWithACKTransactorSession) AbandonFailedMessage(messageId [32]byte, receiver common.Address) (*types.Transaction, error) { + return _CCIPReceiverWithACK.Contract.AbandonFailedMessage(&_CCIPReceiverWithACK.TransactOpts, messageId, receiver) } -func (_CCIPReceiverWithAck *CCIPReceiverWithAckSession) CcipReceive(message ClientAny2EVMMessage) (*types.Transaction, error) { - return _CCIPReceiverWithAck.Contract.CcipReceive(&_CCIPReceiverWithAck.TransactOpts, message) +func (_CCIPReceiverWithACK *CCIPReceiverWithACKTransactor) AcceptOwnership(opts *bind.TransactOpts) (*types.Transaction, error) { + return _CCIPReceiverWithACK.contract.Transact(opts, "acceptOwnership") } -func (_CCIPReceiverWithAck *CCIPReceiverWithAckTransactorSession) CcipReceive(message ClientAny2EVMMessage) (*types.Transaction, error) { - return _CCIPReceiverWithAck.Contract.CcipReceive(&_CCIPReceiverWithAck.TransactOpts, message) +func (_CCIPReceiverWithACK *CCIPReceiverWithACKSession) AcceptOwnership() (*types.Transaction, error) { + return _CCIPReceiverWithACK.Contract.AcceptOwnership(&_CCIPReceiverWithACK.TransactOpts) } -func (_CCIPReceiverWithAck *CCIPReceiverWithAckTransactor) DisableChain(opts *bind.TransactOpts, chainSelector uint64) (*types.Transaction, error) { - return _CCIPReceiverWithAck.contract.Transact(opts, "disableChain", chainSelector) +func (_CCIPReceiverWithACK *CCIPReceiverWithACKTransactorSession) AcceptOwnership() (*types.Transaction, error) { + return _CCIPReceiverWithACK.Contract.AcceptOwnership(&_CCIPReceiverWithACK.TransactOpts) } -func (_CCIPReceiverWithAck *CCIPReceiverWithAckSession) DisableChain(chainSelector uint64) (*types.Transaction, error) { - return _CCIPReceiverWithAck.Contract.DisableChain(&_CCIPReceiverWithAck.TransactOpts, chainSelector) +func (_CCIPReceiverWithACK *CCIPReceiverWithACKTransactor) ApplyChainUpdates(opts *bind.TransactOpts, chains []CCIPBaseChainUpdate) (*types.Transaction, error) { + return _CCIPReceiverWithACK.contract.Transact(opts, "applyChainUpdates", chains) } -func (_CCIPReceiverWithAck *CCIPReceiverWithAckTransactorSession) DisableChain(chainSelector uint64) (*types.Transaction, error) { - return _CCIPReceiverWithAck.Contract.DisableChain(&_CCIPReceiverWithAck.TransactOpts, chainSelector) +func (_CCIPReceiverWithACK *CCIPReceiverWithACKSession) ApplyChainUpdates(chains []CCIPBaseChainUpdate) (*types.Transaction, error) { + return _CCIPReceiverWithACK.Contract.ApplyChainUpdates(&_CCIPReceiverWithACK.TransactOpts, chains) } -func (_CCIPReceiverWithAck *CCIPReceiverWithAckTransactor) EnableChain(opts *bind.TransactOpts, chainSelector uint64, recipient []byte, _extraArgsBytes []byte) (*types.Transaction, error) { - return _CCIPReceiverWithAck.contract.Transact(opts, "enableChain", chainSelector, recipient, _extraArgsBytes) +func (_CCIPReceiverWithACK *CCIPReceiverWithACKTransactorSession) ApplyChainUpdates(chains []CCIPBaseChainUpdate) (*types.Transaction, error) { + return _CCIPReceiverWithACK.Contract.ApplyChainUpdates(&_CCIPReceiverWithACK.TransactOpts, chains) } -func (_CCIPReceiverWithAck *CCIPReceiverWithAckSession) EnableChain(chainSelector uint64, recipient []byte, _extraArgsBytes []byte) (*types.Transaction, error) { - return _CCIPReceiverWithAck.Contract.EnableChain(&_CCIPReceiverWithAck.TransactOpts, chainSelector, recipient, _extraArgsBytes) +func (_CCIPReceiverWithACK *CCIPReceiverWithACKTransactor) CcipReceive(opts *bind.TransactOpts, message ClientAny2EVMMessage) (*types.Transaction, error) { + return _CCIPReceiverWithACK.contract.Transact(opts, "ccipReceive", message) } -func (_CCIPReceiverWithAck *CCIPReceiverWithAckTransactorSession) EnableChain(chainSelector uint64, recipient []byte, _extraArgsBytes []byte) (*types.Transaction, error) { - return _CCIPReceiverWithAck.Contract.EnableChain(&_CCIPReceiverWithAck.TransactOpts, chainSelector, recipient, _extraArgsBytes) +func (_CCIPReceiverWithACK *CCIPReceiverWithACKSession) CcipReceive(message ClientAny2EVMMessage) (*types.Transaction, error) { + return _CCIPReceiverWithACK.Contract.CcipReceive(&_CCIPReceiverWithACK.TransactOpts, message) } -func (_CCIPReceiverWithAck *CCIPReceiverWithAckTransactor) ModifyFeeToken(opts *bind.TransactOpts, token common.Address) (*types.Transaction, error) { - return _CCIPReceiverWithAck.contract.Transact(opts, "modifyFeeToken", token) +func (_CCIPReceiverWithACK *CCIPReceiverWithACKTransactorSession) CcipReceive(message ClientAny2EVMMessage) (*types.Transaction, error) { + return _CCIPReceiverWithACK.Contract.CcipReceive(&_CCIPReceiverWithACK.TransactOpts, message) } -func (_CCIPReceiverWithAck *CCIPReceiverWithAckSession) ModifyFeeToken(token common.Address) (*types.Transaction, error) { - return _CCIPReceiverWithAck.Contract.ModifyFeeToken(&_CCIPReceiverWithAck.TransactOpts, token) +func (_CCIPReceiverWithACK *CCIPReceiverWithACKTransactor) ProcessMessage(opts *bind.TransactOpts, message ClientAny2EVMMessage) (*types.Transaction, error) { + return _CCIPReceiverWithACK.contract.Transact(opts, "processMessage", message) } -func (_CCIPReceiverWithAck *CCIPReceiverWithAckTransactorSession) ModifyFeeToken(token common.Address) (*types.Transaction, error) { - return _CCIPReceiverWithAck.Contract.ModifyFeeToken(&_CCIPReceiverWithAck.TransactOpts, token) +func (_CCIPReceiverWithACK *CCIPReceiverWithACKSession) ProcessMessage(message ClientAny2EVMMessage) (*types.Transaction, error) { + return _CCIPReceiverWithACK.Contract.ProcessMessage(&_CCIPReceiverWithACK.TransactOpts, message) } -func (_CCIPReceiverWithAck *CCIPReceiverWithAckTransactor) ProcessMessage(opts *bind.TransactOpts, message ClientAny2EVMMessage) (*types.Transaction, error) { - return _CCIPReceiverWithAck.contract.Transact(opts, "processMessage", message) +func (_CCIPReceiverWithACK *CCIPReceiverWithACKTransactorSession) ProcessMessage(message ClientAny2EVMMessage) (*types.Transaction, error) { + return _CCIPReceiverWithACK.Contract.ProcessMessage(&_CCIPReceiverWithACK.TransactOpts, message) } -func (_CCIPReceiverWithAck *CCIPReceiverWithAckSession) ProcessMessage(message ClientAny2EVMMessage) (*types.Transaction, error) { - return _CCIPReceiverWithAck.Contract.ProcessMessage(&_CCIPReceiverWithAck.TransactOpts, message) +func (_CCIPReceiverWithACK *CCIPReceiverWithACKTransactor) RetryFailedMessage(opts *bind.TransactOpts, messageId [32]byte) (*types.Transaction, error) { + return _CCIPReceiverWithACK.contract.Transact(opts, "retryFailedMessage", messageId) } -func (_CCIPReceiverWithAck *CCIPReceiverWithAckTransactorSession) ProcessMessage(message ClientAny2EVMMessage) (*types.Transaction, error) { - return _CCIPReceiverWithAck.Contract.ProcessMessage(&_CCIPReceiverWithAck.TransactOpts, message) +func (_CCIPReceiverWithACK *CCIPReceiverWithACKSession) RetryFailedMessage(messageId [32]byte) (*types.Transaction, error) { + return _CCIPReceiverWithACK.Contract.RetryFailedMessage(&_CCIPReceiverWithACK.TransactOpts, messageId) } -func (_CCIPReceiverWithAck *CCIPReceiverWithAckTransactor) RetryFailedMessage(opts *bind.TransactOpts, messageId [32]byte) (*types.Transaction, error) { - return _CCIPReceiverWithAck.contract.Transact(opts, "retryFailedMessage", messageId) +func (_CCIPReceiverWithACK *CCIPReceiverWithACKTransactorSession) RetryFailedMessage(messageId [32]byte) (*types.Transaction, error) { + return _CCIPReceiverWithACK.Contract.RetryFailedMessage(&_CCIPReceiverWithACK.TransactOpts, messageId) } -func (_CCIPReceiverWithAck *CCIPReceiverWithAckSession) RetryFailedMessage(messageId [32]byte) (*types.Transaction, error) { - return _CCIPReceiverWithAck.Contract.RetryFailedMessage(&_CCIPReceiverWithAck.TransactOpts, messageId) +func (_CCIPReceiverWithACK *CCIPReceiverWithACKTransactor) TransferOwnership(opts *bind.TransactOpts, to common.Address) (*types.Transaction, error) { + return _CCIPReceiverWithACK.contract.Transact(opts, "transferOwnership", to) } -func (_CCIPReceiverWithAck *CCIPReceiverWithAckTransactorSession) RetryFailedMessage(messageId [32]byte) (*types.Transaction, error) { - return _CCIPReceiverWithAck.Contract.RetryFailedMessage(&_CCIPReceiverWithAck.TransactOpts, messageId) +func (_CCIPReceiverWithACK *CCIPReceiverWithACKSession) TransferOwnership(to common.Address) (*types.Transaction, error) { + return _CCIPReceiverWithACK.Contract.TransferOwnership(&_CCIPReceiverWithACK.TransactOpts, to) } -func (_CCIPReceiverWithAck *CCIPReceiverWithAckTransactor) SetSimRevert(opts *bind.TransactOpts, simRevert bool) (*types.Transaction, error) { - return _CCIPReceiverWithAck.contract.Transact(opts, "setSimRevert", simRevert) +func (_CCIPReceiverWithACK *CCIPReceiverWithACKTransactorSession) TransferOwnership(to common.Address) (*types.Transaction, error) { + return _CCIPReceiverWithACK.Contract.TransferOwnership(&_CCIPReceiverWithACK.TransactOpts, to) } -func (_CCIPReceiverWithAck *CCIPReceiverWithAckSession) SetSimRevert(simRevert bool) (*types.Transaction, error) { - return _CCIPReceiverWithAck.Contract.SetSimRevert(&_CCIPReceiverWithAck.TransactOpts, simRevert) +func (_CCIPReceiverWithACK *CCIPReceiverWithACKTransactor) UpdateApprovedSenders(opts *bind.TransactOpts, adds []CCIPBaseApprovedSenderUpdate, removes []CCIPBaseApprovedSenderUpdate) (*types.Transaction, error) { + return _CCIPReceiverWithACK.contract.Transact(opts, "updateApprovedSenders", adds, removes) } -func (_CCIPReceiverWithAck *CCIPReceiverWithAckTransactorSession) SetSimRevert(simRevert bool) (*types.Transaction, error) { - return _CCIPReceiverWithAck.Contract.SetSimRevert(&_CCIPReceiverWithAck.TransactOpts, simRevert) +func (_CCIPReceiverWithACK *CCIPReceiverWithACKSession) UpdateApprovedSenders(adds []CCIPBaseApprovedSenderUpdate, removes []CCIPBaseApprovedSenderUpdate) (*types.Transaction, error) { + return _CCIPReceiverWithACK.Contract.UpdateApprovedSenders(&_CCIPReceiverWithACK.TransactOpts, adds, removes) } -func (_CCIPReceiverWithAck *CCIPReceiverWithAckTransactor) TransferOwnership(opts *bind.TransactOpts, to common.Address) (*types.Transaction, error) { - return _CCIPReceiverWithAck.contract.Transact(opts, "transferOwnership", to) +func (_CCIPReceiverWithACK *CCIPReceiverWithACKTransactorSession) UpdateApprovedSenders(adds []CCIPBaseApprovedSenderUpdate, removes []CCIPBaseApprovedSenderUpdate) (*types.Transaction, error) { + return _CCIPReceiverWithACK.Contract.UpdateApprovedSenders(&_CCIPReceiverWithACK.TransactOpts, adds, removes) } -func (_CCIPReceiverWithAck *CCIPReceiverWithAckSession) TransferOwnership(to common.Address) (*types.Transaction, error) { - return _CCIPReceiverWithAck.Contract.TransferOwnership(&_CCIPReceiverWithAck.TransactOpts, to) +func (_CCIPReceiverWithACK *CCIPReceiverWithACKTransactor) UpdateFeeToken(opts *bind.TransactOpts, token common.Address) (*types.Transaction, error) { + return _CCIPReceiverWithACK.contract.Transact(opts, "updateFeeToken", token) } -func (_CCIPReceiverWithAck *CCIPReceiverWithAckTransactorSession) TransferOwnership(to common.Address) (*types.Transaction, error) { - return _CCIPReceiverWithAck.Contract.TransferOwnership(&_CCIPReceiverWithAck.TransactOpts, to) +func (_CCIPReceiverWithACK *CCIPReceiverWithACKSession) UpdateFeeToken(token common.Address) (*types.Transaction, error) { + return _CCIPReceiverWithACK.Contract.UpdateFeeToken(&_CCIPReceiverWithACK.TransactOpts, token) } -func (_CCIPReceiverWithAck *CCIPReceiverWithAckTransactor) UpdateApprovedSenders(opts *bind.TransactOpts, adds []ICCIPClientBaseapprovedSenderUpdate, removes []ICCIPClientBaseapprovedSenderUpdate) (*types.Transaction, error) { - return _CCIPReceiverWithAck.contract.Transact(opts, "updateApprovedSenders", adds, removes) +func (_CCIPReceiverWithACK *CCIPReceiverWithACKTransactorSession) UpdateFeeToken(token common.Address) (*types.Transaction, error) { + return _CCIPReceiverWithACK.Contract.UpdateFeeToken(&_CCIPReceiverWithACK.TransactOpts, token) } -func (_CCIPReceiverWithAck *CCIPReceiverWithAckSession) UpdateApprovedSenders(adds []ICCIPClientBaseapprovedSenderUpdate, removes []ICCIPClientBaseapprovedSenderUpdate) (*types.Transaction, error) { - return _CCIPReceiverWithAck.Contract.UpdateApprovedSenders(&_CCIPReceiverWithAck.TransactOpts, adds, removes) +func (_CCIPReceiverWithACK *CCIPReceiverWithACKTransactor) UpdateRouter(opts *bind.TransactOpts, newRouter common.Address) (*types.Transaction, error) { + return _CCIPReceiverWithACK.contract.Transact(opts, "updateRouter", newRouter) } -func (_CCIPReceiverWithAck *CCIPReceiverWithAckTransactorSession) UpdateApprovedSenders(adds []ICCIPClientBaseapprovedSenderUpdate, removes []ICCIPClientBaseapprovedSenderUpdate) (*types.Transaction, error) { - return _CCIPReceiverWithAck.Contract.UpdateApprovedSenders(&_CCIPReceiverWithAck.TransactOpts, adds, removes) +func (_CCIPReceiverWithACK *CCIPReceiverWithACKSession) UpdateRouter(newRouter common.Address) (*types.Transaction, error) { + return _CCIPReceiverWithACK.Contract.UpdateRouter(&_CCIPReceiverWithACK.TransactOpts, newRouter) } -func (_CCIPReceiverWithAck *CCIPReceiverWithAckTransactor) WithdrawNativeToken(opts *bind.TransactOpts, to common.Address, amount *big.Int) (*types.Transaction, error) { - return _CCIPReceiverWithAck.contract.Transact(opts, "withdrawNativeToken", to, amount) +func (_CCIPReceiverWithACK *CCIPReceiverWithACKTransactorSession) UpdateRouter(newRouter common.Address) (*types.Transaction, error) { + return _CCIPReceiverWithACK.Contract.UpdateRouter(&_CCIPReceiverWithACK.TransactOpts, newRouter) } -func (_CCIPReceiverWithAck *CCIPReceiverWithAckSession) WithdrawNativeToken(to common.Address, amount *big.Int) (*types.Transaction, error) { - return _CCIPReceiverWithAck.Contract.WithdrawNativeToken(&_CCIPReceiverWithAck.TransactOpts, to, amount) +func (_CCIPReceiverWithACK *CCIPReceiverWithACKTransactor) WithdrawNativeToken(opts *bind.TransactOpts, to common.Address, amount *big.Int) (*types.Transaction, error) { + return _CCIPReceiverWithACK.contract.Transact(opts, "withdrawNativeToken", to, amount) } -func (_CCIPReceiverWithAck *CCIPReceiverWithAckTransactorSession) WithdrawNativeToken(to common.Address, amount *big.Int) (*types.Transaction, error) { - return _CCIPReceiverWithAck.Contract.WithdrawNativeToken(&_CCIPReceiverWithAck.TransactOpts, to, amount) +func (_CCIPReceiverWithACK *CCIPReceiverWithACKSession) WithdrawNativeToken(to common.Address, amount *big.Int) (*types.Transaction, error) { + return _CCIPReceiverWithACK.Contract.WithdrawNativeToken(&_CCIPReceiverWithACK.TransactOpts, to, amount) } -func (_CCIPReceiverWithAck *CCIPReceiverWithAckTransactor) WithdrawTokens(opts *bind.TransactOpts, token common.Address, to common.Address, amount *big.Int) (*types.Transaction, error) { - return _CCIPReceiverWithAck.contract.Transact(opts, "withdrawTokens", token, to, amount) +func (_CCIPReceiverWithACK *CCIPReceiverWithACKTransactorSession) WithdrawNativeToken(to common.Address, amount *big.Int) (*types.Transaction, error) { + return _CCIPReceiverWithACK.Contract.WithdrawNativeToken(&_CCIPReceiverWithACK.TransactOpts, to, amount) } -func (_CCIPReceiverWithAck *CCIPReceiverWithAckSession) WithdrawTokens(token common.Address, to common.Address, amount *big.Int) (*types.Transaction, error) { - return _CCIPReceiverWithAck.Contract.WithdrawTokens(&_CCIPReceiverWithAck.TransactOpts, token, to, amount) +func (_CCIPReceiverWithACK *CCIPReceiverWithACKTransactor) WithdrawTokens(opts *bind.TransactOpts, token common.Address, to common.Address, amount *big.Int) (*types.Transaction, error) { + return _CCIPReceiverWithACK.contract.Transact(opts, "withdrawTokens", token, to, amount) } -func (_CCIPReceiverWithAck *CCIPReceiverWithAckTransactorSession) WithdrawTokens(token common.Address, to common.Address, amount *big.Int) (*types.Transaction, error) { - return _CCIPReceiverWithAck.Contract.WithdrawTokens(&_CCIPReceiverWithAck.TransactOpts, token, to, amount) +func (_CCIPReceiverWithACK *CCIPReceiverWithACKSession) WithdrawTokens(token common.Address, to common.Address, amount *big.Int) (*types.Transaction, error) { + return _CCIPReceiverWithACK.Contract.WithdrawTokens(&_CCIPReceiverWithACK.TransactOpts, token, to, amount) } -func (_CCIPReceiverWithAck *CCIPReceiverWithAckTransactor) Fallback(opts *bind.TransactOpts, calldata []byte) (*types.Transaction, error) { - return _CCIPReceiverWithAck.contract.RawTransact(opts, calldata) +func (_CCIPReceiverWithACK *CCIPReceiverWithACKTransactorSession) WithdrawTokens(token common.Address, to common.Address, amount *big.Int) (*types.Transaction, error) { + return _CCIPReceiverWithACK.Contract.WithdrawTokens(&_CCIPReceiverWithACK.TransactOpts, token, to, amount) } -func (_CCIPReceiverWithAck *CCIPReceiverWithAckSession) Fallback(calldata []byte) (*types.Transaction, error) { - return _CCIPReceiverWithAck.Contract.Fallback(&_CCIPReceiverWithAck.TransactOpts, calldata) +func (_CCIPReceiverWithACK *CCIPReceiverWithACKTransactor) Receive(opts *bind.TransactOpts) (*types.Transaction, error) { + return _CCIPReceiverWithACK.contract.RawTransact(opts, nil) } -func (_CCIPReceiverWithAck *CCIPReceiverWithAckTransactorSession) Fallback(calldata []byte) (*types.Transaction, error) { - return _CCIPReceiverWithAck.Contract.Fallback(&_CCIPReceiverWithAck.TransactOpts, calldata) +func (_CCIPReceiverWithACK *CCIPReceiverWithACKSession) Receive() (*types.Transaction, error) { + return _CCIPReceiverWithACK.Contract.Receive(&_CCIPReceiverWithACK.TransactOpts) } -func (_CCIPReceiverWithAck *CCIPReceiverWithAckTransactor) Receive(opts *bind.TransactOpts) (*types.Transaction, error) { - return _CCIPReceiverWithAck.contract.RawTransact(opts, nil) +func (_CCIPReceiverWithACK *CCIPReceiverWithACKTransactorSession) Receive() (*types.Transaction, error) { + return _CCIPReceiverWithACK.Contract.Receive(&_CCIPReceiverWithACK.TransactOpts) } -func (_CCIPReceiverWithAck *CCIPReceiverWithAckSession) Receive() (*types.Transaction, error) { - return _CCIPReceiverWithAck.Contract.Receive(&_CCIPReceiverWithAck.TransactOpts) -} - -func (_CCIPReceiverWithAck *CCIPReceiverWithAckTransactorSession) Receive() (*types.Transaction, error) { - return _CCIPReceiverWithAck.Contract.Receive(&_CCIPReceiverWithAck.TransactOpts) -} - -type CCIPReceiverWithAckFeeTokenModifiedIterator struct { - Event *CCIPReceiverWithAckFeeTokenModified +type CCIPReceiverWithACKApprovedSenderAddedIterator struct { + Event *CCIPReceiverWithACKApprovedSenderAdded contract *bind.BoundContract event string @@ -597,7 +570,7 @@ type CCIPReceiverWithAckFeeTokenModifiedIterator struct { fail error } -func (it *CCIPReceiverWithAckFeeTokenModifiedIterator) Next() bool { +func (it *CCIPReceiverWithACKApprovedSenderAddedIterator) Next() bool { if it.fail != nil { return false @@ -606,7 +579,7 @@ func (it *CCIPReceiverWithAckFeeTokenModifiedIterator) Next() bool { if it.done { select { case log := <-it.logs: - it.Event = new(CCIPReceiverWithAckFeeTokenModified) + it.Event = new(CCIPReceiverWithACKApprovedSenderAdded) if err := it.contract.UnpackLog(it.Event, it.event, log); err != nil { it.fail = err return false @@ -621,7 +594,7 @@ func (it *CCIPReceiverWithAckFeeTokenModifiedIterator) Next() bool { select { case log := <-it.logs: - it.Event = new(CCIPReceiverWithAckFeeTokenModified) + it.Event = new(CCIPReceiverWithACKApprovedSenderAdded) if err := it.contract.UnpackLog(it.Event, it.event, log); err != nil { it.fail = err return false @@ -636,51 +609,51 @@ func (it *CCIPReceiverWithAckFeeTokenModifiedIterator) Next() bool { } } -func (it *CCIPReceiverWithAckFeeTokenModifiedIterator) Error() error { +func (it *CCIPReceiverWithACKApprovedSenderAddedIterator) Error() error { return it.fail } -func (it *CCIPReceiverWithAckFeeTokenModifiedIterator) Close() error { +func (it *CCIPReceiverWithACKApprovedSenderAddedIterator) Close() error { it.sub.Unsubscribe() return nil } -type CCIPReceiverWithAckFeeTokenModified struct { - OldToken common.Address - NewToken common.Address - Raw types.Log +type CCIPReceiverWithACKApprovedSenderAdded struct { + DestChainSelector uint64 + Recipient common.Hash + Raw types.Log } -func (_CCIPReceiverWithAck *CCIPReceiverWithAckFilterer) FilterFeeTokenModified(opts *bind.FilterOpts, oldToken []common.Address, newToken []common.Address) (*CCIPReceiverWithAckFeeTokenModifiedIterator, error) { +func (_CCIPReceiverWithACK *CCIPReceiverWithACKFilterer) FilterApprovedSenderAdded(opts *bind.FilterOpts, destChainSelector []uint64, recipient [][]byte) (*CCIPReceiverWithACKApprovedSenderAddedIterator, error) { - var oldTokenRule []interface{} - for _, oldTokenItem := range oldToken { - oldTokenRule = append(oldTokenRule, oldTokenItem) + var destChainSelectorRule []interface{} + for _, destChainSelectorItem := range destChainSelector { + destChainSelectorRule = append(destChainSelectorRule, destChainSelectorItem) } - var newTokenRule []interface{} - for _, newTokenItem := range newToken { - newTokenRule = append(newTokenRule, newTokenItem) + var recipientRule []interface{} + for _, recipientItem := range recipient { + recipientRule = append(recipientRule, recipientItem) } - logs, sub, err := _CCIPReceiverWithAck.contract.FilterLogs(opts, "FeeTokenModified", oldTokenRule, newTokenRule) + logs, sub, err := _CCIPReceiverWithACK.contract.FilterLogs(opts, "ApprovedSenderAdded", destChainSelectorRule, recipientRule) if err != nil { return nil, err } - return &CCIPReceiverWithAckFeeTokenModifiedIterator{contract: _CCIPReceiverWithAck.contract, event: "FeeTokenModified", logs: logs, sub: sub}, nil + return &CCIPReceiverWithACKApprovedSenderAddedIterator{contract: _CCIPReceiverWithACK.contract, event: "ApprovedSenderAdded", logs: logs, sub: sub}, nil } -func (_CCIPReceiverWithAck *CCIPReceiverWithAckFilterer) WatchFeeTokenModified(opts *bind.WatchOpts, sink chan<- *CCIPReceiverWithAckFeeTokenModified, oldToken []common.Address, newToken []common.Address) (event.Subscription, error) { +func (_CCIPReceiverWithACK *CCIPReceiverWithACKFilterer) WatchApprovedSenderAdded(opts *bind.WatchOpts, sink chan<- *CCIPReceiverWithACKApprovedSenderAdded, destChainSelector []uint64, recipient [][]byte) (event.Subscription, error) { - var oldTokenRule []interface{} - for _, oldTokenItem := range oldToken { - oldTokenRule = append(oldTokenRule, oldTokenItem) + var destChainSelectorRule []interface{} + for _, destChainSelectorItem := range destChainSelector { + destChainSelectorRule = append(destChainSelectorRule, destChainSelectorItem) } - var newTokenRule []interface{} - for _, newTokenItem := range newToken { - newTokenRule = append(newTokenRule, newTokenItem) + var recipientRule []interface{} + for _, recipientItem := range recipient { + recipientRule = append(recipientRule, recipientItem) } - logs, sub, err := _CCIPReceiverWithAck.contract.WatchLogs(opts, "FeeTokenModified", oldTokenRule, newTokenRule) + logs, sub, err := _CCIPReceiverWithACK.contract.WatchLogs(opts, "ApprovedSenderAdded", destChainSelectorRule, recipientRule) if err != nil { return nil, err } @@ -690,8 +663,8 @@ func (_CCIPReceiverWithAck *CCIPReceiverWithAckFilterer) WatchFeeTokenModified(o select { case log := <-logs: - event := new(CCIPReceiverWithAckFeeTokenModified) - if err := _CCIPReceiverWithAck.contract.UnpackLog(event, "FeeTokenModified", log); err != nil { + event := new(CCIPReceiverWithACKApprovedSenderAdded) + if err := _CCIPReceiverWithACK.contract.UnpackLog(event, "ApprovedSenderAdded", log); err != nil { return err } event.Raw = log @@ -712,17 +685,17 @@ func (_CCIPReceiverWithAck *CCIPReceiverWithAckFilterer) WatchFeeTokenModified(o }), nil } -func (_CCIPReceiverWithAck *CCIPReceiverWithAckFilterer) ParseFeeTokenModified(log types.Log) (*CCIPReceiverWithAckFeeTokenModified, error) { - event := new(CCIPReceiverWithAckFeeTokenModified) - if err := _CCIPReceiverWithAck.contract.UnpackLog(event, "FeeTokenModified", log); err != nil { +func (_CCIPReceiverWithACK *CCIPReceiverWithACKFilterer) ParseApprovedSenderAdded(log types.Log) (*CCIPReceiverWithACKApprovedSenderAdded, error) { + event := new(CCIPReceiverWithACKApprovedSenderAdded) + if err := _CCIPReceiverWithACK.contract.UnpackLog(event, "ApprovedSenderAdded", log); err != nil { return nil, err } event.Raw = log return event, nil } -type CCIPReceiverWithAckMessageAckReceivedIterator struct { - Event *CCIPReceiverWithAckMessageAckReceived +type CCIPReceiverWithACKApprovedSenderRemovedIterator struct { + Event *CCIPReceiverWithACKApprovedSenderRemoved contract *bind.BoundContract event string @@ -733,7 +706,7 @@ type CCIPReceiverWithAckMessageAckReceivedIterator struct { fail error } -func (it *CCIPReceiverWithAckMessageAckReceivedIterator) Next() bool { +func (it *CCIPReceiverWithACKApprovedSenderRemovedIterator) Next() bool { if it.fail != nil { return false @@ -742,7 +715,7 @@ func (it *CCIPReceiverWithAckMessageAckReceivedIterator) Next() bool { if it.done { select { case log := <-it.logs: - it.Event = new(CCIPReceiverWithAckMessageAckReceived) + it.Event = new(CCIPReceiverWithACKApprovedSenderRemoved) if err := it.contract.UnpackLog(it.Event, it.event, log); err != nil { it.fail = err return false @@ -757,7 +730,7 @@ func (it *CCIPReceiverWithAckMessageAckReceivedIterator) Next() bool { select { case log := <-it.logs: - it.Event = new(CCIPReceiverWithAckMessageAckReceived) + it.Event = new(CCIPReceiverWithACKApprovedSenderRemoved) if err := it.contract.UnpackLog(it.Event, it.event, log); err != nil { it.fail = err return false @@ -772,32 +745,51 @@ func (it *CCIPReceiverWithAckMessageAckReceivedIterator) Next() bool { } } -func (it *CCIPReceiverWithAckMessageAckReceivedIterator) Error() error { +func (it *CCIPReceiverWithACKApprovedSenderRemovedIterator) Error() error { return it.fail } -func (it *CCIPReceiverWithAckMessageAckReceivedIterator) Close() error { +func (it *CCIPReceiverWithACKApprovedSenderRemovedIterator) Close() error { it.sub.Unsubscribe() return nil } -type CCIPReceiverWithAckMessageAckReceived struct { - Arg0 [32]byte - Raw types.Log +type CCIPReceiverWithACKApprovedSenderRemoved struct { + DestChainSelector uint64 + Recipient common.Hash + Raw types.Log } -func (_CCIPReceiverWithAck *CCIPReceiverWithAckFilterer) FilterMessageAckReceived(opts *bind.FilterOpts) (*CCIPReceiverWithAckMessageAckReceivedIterator, error) { +func (_CCIPReceiverWithACK *CCIPReceiverWithACKFilterer) FilterApprovedSenderRemoved(opts *bind.FilterOpts, destChainSelector []uint64, recipient [][]byte) (*CCIPReceiverWithACKApprovedSenderRemovedIterator, error) { - logs, sub, err := _CCIPReceiverWithAck.contract.FilterLogs(opts, "MessageAckReceived") + var destChainSelectorRule []interface{} + for _, destChainSelectorItem := range destChainSelector { + destChainSelectorRule = append(destChainSelectorRule, destChainSelectorItem) + } + var recipientRule []interface{} + for _, recipientItem := range recipient { + recipientRule = append(recipientRule, recipientItem) + } + + logs, sub, err := _CCIPReceiverWithACK.contract.FilterLogs(opts, "ApprovedSenderRemoved", destChainSelectorRule, recipientRule) if err != nil { return nil, err } - return &CCIPReceiverWithAckMessageAckReceivedIterator{contract: _CCIPReceiverWithAck.contract, event: "MessageAckReceived", logs: logs, sub: sub}, nil + return &CCIPReceiverWithACKApprovedSenderRemovedIterator{contract: _CCIPReceiverWithACK.contract, event: "ApprovedSenderRemoved", logs: logs, sub: sub}, nil } -func (_CCIPReceiverWithAck *CCIPReceiverWithAckFilterer) WatchMessageAckReceived(opts *bind.WatchOpts, sink chan<- *CCIPReceiverWithAckMessageAckReceived) (event.Subscription, error) { +func (_CCIPReceiverWithACK *CCIPReceiverWithACKFilterer) WatchApprovedSenderRemoved(opts *bind.WatchOpts, sink chan<- *CCIPReceiverWithACKApprovedSenderRemoved, destChainSelector []uint64, recipient [][]byte) (event.Subscription, error) { + + var destChainSelectorRule []interface{} + for _, destChainSelectorItem := range destChainSelector { + destChainSelectorRule = append(destChainSelectorRule, destChainSelectorItem) + } + var recipientRule []interface{} + for _, recipientItem := range recipient { + recipientRule = append(recipientRule, recipientItem) + } - logs, sub, err := _CCIPReceiverWithAck.contract.WatchLogs(opts, "MessageAckReceived") + logs, sub, err := _CCIPReceiverWithACK.contract.WatchLogs(opts, "ApprovedSenderRemoved", destChainSelectorRule, recipientRule) if err != nil { return nil, err } @@ -807,8 +799,8 @@ func (_CCIPReceiverWithAck *CCIPReceiverWithAckFilterer) WatchMessageAckReceived select { case log := <-logs: - event := new(CCIPReceiverWithAckMessageAckReceived) - if err := _CCIPReceiverWithAck.contract.UnpackLog(event, "MessageAckReceived", log); err != nil { + event := new(CCIPReceiverWithACKApprovedSenderRemoved) + if err := _CCIPReceiverWithACK.contract.UnpackLog(event, "ApprovedSenderRemoved", log); err != nil { return err } event.Raw = log @@ -829,17 +821,17 @@ func (_CCIPReceiverWithAck *CCIPReceiverWithAckFilterer) WatchMessageAckReceived }), nil } -func (_CCIPReceiverWithAck *CCIPReceiverWithAckFilterer) ParseMessageAckReceived(log types.Log) (*CCIPReceiverWithAckMessageAckReceived, error) { - event := new(CCIPReceiverWithAckMessageAckReceived) - if err := _CCIPReceiverWithAck.contract.UnpackLog(event, "MessageAckReceived", log); err != nil { +func (_CCIPReceiverWithACK *CCIPReceiverWithACKFilterer) ParseApprovedSenderRemoved(log types.Log) (*CCIPReceiverWithACKApprovedSenderRemoved, error) { + event := new(CCIPReceiverWithACKApprovedSenderRemoved) + if err := _CCIPReceiverWithACK.contract.UnpackLog(event, "ApprovedSenderRemoved", log); err != nil { return nil, err } event.Raw = log return event, nil } -type CCIPReceiverWithAckMessageAckSentIterator struct { - Event *CCIPReceiverWithAckMessageAckSent +type CCIPReceiverWithACKCCIPRouterModifiedIterator struct { + Event *CCIPReceiverWithACKCCIPRouterModified contract *bind.BoundContract event string @@ -850,7 +842,7 @@ type CCIPReceiverWithAckMessageAckSentIterator struct { fail error } -func (it *CCIPReceiverWithAckMessageAckSentIterator) Next() bool { +func (it *CCIPReceiverWithACKCCIPRouterModifiedIterator) Next() bool { if it.fail != nil { return false @@ -859,7 +851,7 @@ func (it *CCIPReceiverWithAckMessageAckSentIterator) Next() bool { if it.done { select { case log := <-it.logs: - it.Event = new(CCIPReceiverWithAckMessageAckSent) + it.Event = new(CCIPReceiverWithACKCCIPRouterModified) if err := it.contract.UnpackLog(it.Event, it.event, log); err != nil { it.fail = err return false @@ -874,7 +866,7 @@ func (it *CCIPReceiverWithAckMessageAckSentIterator) Next() bool { select { case log := <-it.logs: - it.Event = new(CCIPReceiverWithAckMessageAckSent) + it.Event = new(CCIPReceiverWithACKCCIPRouterModified) if err := it.contract.UnpackLog(it.Event, it.event, log); err != nil { it.fail = err return false @@ -889,32 +881,51 @@ func (it *CCIPReceiverWithAckMessageAckSentIterator) Next() bool { } } -func (it *CCIPReceiverWithAckMessageAckSentIterator) Error() error { +func (it *CCIPReceiverWithACKCCIPRouterModifiedIterator) Error() error { return it.fail } -func (it *CCIPReceiverWithAckMessageAckSentIterator) Close() error { +func (it *CCIPReceiverWithACKCCIPRouterModifiedIterator) Close() error { it.sub.Unsubscribe() return nil } -type CCIPReceiverWithAckMessageAckSent struct { - IncomingMessageId [32]byte - Raw types.Log +type CCIPReceiverWithACKCCIPRouterModified struct { + OldRouter common.Address + NewRouter common.Address + Raw types.Log } -func (_CCIPReceiverWithAck *CCIPReceiverWithAckFilterer) FilterMessageAckSent(opts *bind.FilterOpts) (*CCIPReceiverWithAckMessageAckSentIterator, error) { +func (_CCIPReceiverWithACK *CCIPReceiverWithACKFilterer) FilterCCIPRouterModified(opts *bind.FilterOpts, oldRouter []common.Address, newRouter []common.Address) (*CCIPReceiverWithACKCCIPRouterModifiedIterator, error) { + + var oldRouterRule []interface{} + for _, oldRouterItem := range oldRouter { + oldRouterRule = append(oldRouterRule, oldRouterItem) + } + var newRouterRule []interface{} + for _, newRouterItem := range newRouter { + newRouterRule = append(newRouterRule, newRouterItem) + } - logs, sub, err := _CCIPReceiverWithAck.contract.FilterLogs(opts, "MessageAckSent") + logs, sub, err := _CCIPReceiverWithACK.contract.FilterLogs(opts, "CCIPRouterModified", oldRouterRule, newRouterRule) if err != nil { return nil, err } - return &CCIPReceiverWithAckMessageAckSentIterator{contract: _CCIPReceiverWithAck.contract, event: "MessageAckSent", logs: logs, sub: sub}, nil + return &CCIPReceiverWithACKCCIPRouterModifiedIterator{contract: _CCIPReceiverWithACK.contract, event: "CCIPRouterModified", logs: logs, sub: sub}, nil } -func (_CCIPReceiverWithAck *CCIPReceiverWithAckFilterer) WatchMessageAckSent(opts *bind.WatchOpts, sink chan<- *CCIPReceiverWithAckMessageAckSent) (event.Subscription, error) { +func (_CCIPReceiverWithACK *CCIPReceiverWithACKFilterer) WatchCCIPRouterModified(opts *bind.WatchOpts, sink chan<- *CCIPReceiverWithACKCCIPRouterModified, oldRouter []common.Address, newRouter []common.Address) (event.Subscription, error) { - logs, sub, err := _CCIPReceiverWithAck.contract.WatchLogs(opts, "MessageAckSent") + var oldRouterRule []interface{} + for _, oldRouterItem := range oldRouter { + oldRouterRule = append(oldRouterRule, oldRouterItem) + } + var newRouterRule []interface{} + for _, newRouterItem := range newRouter { + newRouterRule = append(newRouterRule, newRouterItem) + } + + logs, sub, err := _CCIPReceiverWithACK.contract.WatchLogs(opts, "CCIPRouterModified", oldRouterRule, newRouterRule) if err != nil { return nil, err } @@ -924,8 +935,8 @@ func (_CCIPReceiverWithAck *CCIPReceiverWithAckFilterer) WatchMessageAckSent(opt select { case log := <-logs: - event := new(CCIPReceiverWithAckMessageAckSent) - if err := _CCIPReceiverWithAck.contract.UnpackLog(event, "MessageAckSent", log); err != nil { + event := new(CCIPReceiverWithACKCCIPRouterModified) + if err := _CCIPReceiverWithACK.contract.UnpackLog(event, "CCIPRouterModified", log); err != nil { return err } event.Raw = log @@ -946,17 +957,17 @@ func (_CCIPReceiverWithAck *CCIPReceiverWithAckFilterer) WatchMessageAckSent(opt }), nil } -func (_CCIPReceiverWithAck *CCIPReceiverWithAckFilterer) ParseMessageAckSent(log types.Log) (*CCIPReceiverWithAckMessageAckSent, error) { - event := new(CCIPReceiverWithAckMessageAckSent) - if err := _CCIPReceiverWithAck.contract.UnpackLog(event, "MessageAckSent", log); err != nil { +func (_CCIPReceiverWithACK *CCIPReceiverWithACKFilterer) ParseCCIPRouterModified(log types.Log) (*CCIPReceiverWithACKCCIPRouterModified, error) { + event := new(CCIPReceiverWithACKCCIPRouterModified) + if err := _CCIPReceiverWithACK.contract.UnpackLog(event, "CCIPRouterModified", log); err != nil { return nil, err } event.Raw = log return event, nil } -type CCIPReceiverWithAckMessageFailedIterator struct { - Event *CCIPReceiverWithAckMessageFailed +type CCIPReceiverWithACKChainAddedIterator struct { + Event *CCIPReceiverWithACKChainAdded contract *bind.BoundContract event string @@ -967,7 +978,7 @@ type CCIPReceiverWithAckMessageFailedIterator struct { fail error } -func (it *CCIPReceiverWithAckMessageFailedIterator) Next() bool { +func (it *CCIPReceiverWithACKChainAddedIterator) Next() bool { if it.fail != nil { return false @@ -976,7 +987,7 @@ func (it *CCIPReceiverWithAckMessageFailedIterator) Next() bool { if it.done { select { case log := <-it.logs: - it.Event = new(CCIPReceiverWithAckMessageFailed) + it.Event = new(CCIPReceiverWithACKChainAdded) if err := it.contract.UnpackLog(it.Event, it.event, log); err != nil { it.fail = err return false @@ -991,7 +1002,7 @@ func (it *CCIPReceiverWithAckMessageFailedIterator) Next() bool { select { case log := <-it.logs: - it.Event = new(CCIPReceiverWithAckMessageFailed) + it.Event = new(CCIPReceiverWithACKChainAdded) if err := it.contract.UnpackLog(it.Event, it.event, log); err != nil { it.fail = err return false @@ -1006,43 +1017,52 @@ func (it *CCIPReceiverWithAckMessageFailedIterator) Next() bool { } } -func (it *CCIPReceiverWithAckMessageFailedIterator) Error() error { +func (it *CCIPReceiverWithACKChainAddedIterator) Error() error { return it.fail } -func (it *CCIPReceiverWithAckMessageFailedIterator) Close() error { +func (it *CCIPReceiverWithACKChainAddedIterator) Close() error { it.sub.Unsubscribe() return nil } -type CCIPReceiverWithAckMessageFailed struct { - MessageId [32]byte - Reason []byte - Raw types.Log +type CCIPReceiverWithACKChainAdded struct { + RemoteChainSelector uint64 + Recipient common.Hash + ExtraArgsBytes []byte + Raw types.Log } -func (_CCIPReceiverWithAck *CCIPReceiverWithAckFilterer) FilterMessageFailed(opts *bind.FilterOpts, messageId [][32]byte) (*CCIPReceiverWithAckMessageFailedIterator, error) { +func (_CCIPReceiverWithACK *CCIPReceiverWithACKFilterer) FilterChainAdded(opts *bind.FilterOpts, remoteChainSelector []uint64, recipient [][]byte) (*CCIPReceiverWithACKChainAddedIterator, error) { - var messageIdRule []interface{} - for _, messageIdItem := range messageId { - messageIdRule = append(messageIdRule, messageIdItem) + var remoteChainSelectorRule []interface{} + for _, remoteChainSelectorItem := range remoteChainSelector { + remoteChainSelectorRule = append(remoteChainSelectorRule, remoteChainSelectorItem) + } + var recipientRule []interface{} + for _, recipientItem := range recipient { + recipientRule = append(recipientRule, recipientItem) } - logs, sub, err := _CCIPReceiverWithAck.contract.FilterLogs(opts, "MessageFailed", messageIdRule) + logs, sub, err := _CCIPReceiverWithACK.contract.FilterLogs(opts, "ChainAdded", remoteChainSelectorRule, recipientRule) if err != nil { return nil, err } - return &CCIPReceiverWithAckMessageFailedIterator{contract: _CCIPReceiverWithAck.contract, event: "MessageFailed", logs: logs, sub: sub}, nil + return &CCIPReceiverWithACKChainAddedIterator{contract: _CCIPReceiverWithACK.contract, event: "ChainAdded", logs: logs, sub: sub}, nil } -func (_CCIPReceiverWithAck *CCIPReceiverWithAckFilterer) WatchMessageFailed(opts *bind.WatchOpts, sink chan<- *CCIPReceiverWithAckMessageFailed, messageId [][32]byte) (event.Subscription, error) { +func (_CCIPReceiverWithACK *CCIPReceiverWithACKFilterer) WatchChainAdded(opts *bind.WatchOpts, sink chan<- *CCIPReceiverWithACKChainAdded, remoteChainSelector []uint64, recipient [][]byte) (event.Subscription, error) { - var messageIdRule []interface{} - for _, messageIdItem := range messageId { - messageIdRule = append(messageIdRule, messageIdItem) + var remoteChainSelectorRule []interface{} + for _, remoteChainSelectorItem := range remoteChainSelector { + remoteChainSelectorRule = append(remoteChainSelectorRule, remoteChainSelectorItem) + } + var recipientRule []interface{} + for _, recipientItem := range recipient { + recipientRule = append(recipientRule, recipientItem) } - logs, sub, err := _CCIPReceiverWithAck.contract.WatchLogs(opts, "MessageFailed", messageIdRule) + logs, sub, err := _CCIPReceiverWithACK.contract.WatchLogs(opts, "ChainAdded", remoteChainSelectorRule, recipientRule) if err != nil { return nil, err } @@ -1052,8 +1072,8 @@ func (_CCIPReceiverWithAck *CCIPReceiverWithAckFilterer) WatchMessageFailed(opts select { case log := <-logs: - event := new(CCIPReceiverWithAckMessageFailed) - if err := _CCIPReceiverWithAck.contract.UnpackLog(event, "MessageFailed", log); err != nil { + event := new(CCIPReceiverWithACKChainAdded) + if err := _CCIPReceiverWithACK.contract.UnpackLog(event, "ChainAdded", log); err != nil { return err } event.Raw = log @@ -1074,17 +1094,17 @@ func (_CCIPReceiverWithAck *CCIPReceiverWithAckFilterer) WatchMessageFailed(opts }), nil } -func (_CCIPReceiverWithAck *CCIPReceiverWithAckFilterer) ParseMessageFailed(log types.Log) (*CCIPReceiverWithAckMessageFailed, error) { - event := new(CCIPReceiverWithAckMessageFailed) - if err := _CCIPReceiverWithAck.contract.UnpackLog(event, "MessageFailed", log); err != nil { +func (_CCIPReceiverWithACK *CCIPReceiverWithACKFilterer) ParseChainAdded(log types.Log) (*CCIPReceiverWithACKChainAdded, error) { + event := new(CCIPReceiverWithACKChainAdded) + if err := _CCIPReceiverWithACK.contract.UnpackLog(event, "ChainAdded", log); err != nil { return nil, err } event.Raw = log return event, nil } -type CCIPReceiverWithAckMessageRecoveredIterator struct { - Event *CCIPReceiverWithAckMessageRecovered +type CCIPReceiverWithACKChainRemovedIterator struct { + Event *CCIPReceiverWithACKChainRemoved contract *bind.BoundContract event string @@ -1095,7 +1115,7 @@ type CCIPReceiverWithAckMessageRecoveredIterator struct { fail error } -func (it *CCIPReceiverWithAckMessageRecoveredIterator) Next() bool { +func (it *CCIPReceiverWithACKChainRemovedIterator) Next() bool { if it.fail != nil { return false @@ -1104,7 +1124,7 @@ func (it *CCIPReceiverWithAckMessageRecoveredIterator) Next() bool { if it.done { select { case log := <-it.logs: - it.Event = new(CCIPReceiverWithAckMessageRecovered) + it.Event = new(CCIPReceiverWithACKChainRemoved) if err := it.contract.UnpackLog(it.Event, it.event, log); err != nil { it.fail = err return false @@ -1119,7 +1139,7 @@ func (it *CCIPReceiverWithAckMessageRecoveredIterator) Next() bool { select { case log := <-it.logs: - it.Event = new(CCIPReceiverWithAckMessageRecovered) + it.Event = new(CCIPReceiverWithACKChainRemoved) if err := it.contract.UnpackLog(it.Event, it.event, log); err != nil { it.fail = err return false @@ -1134,42 +1154,42 @@ func (it *CCIPReceiverWithAckMessageRecoveredIterator) Next() bool { } } -func (it *CCIPReceiverWithAckMessageRecoveredIterator) Error() error { +func (it *CCIPReceiverWithACKChainRemovedIterator) Error() error { return it.fail } -func (it *CCIPReceiverWithAckMessageRecoveredIterator) Close() error { +func (it *CCIPReceiverWithACKChainRemovedIterator) Close() error { it.sub.Unsubscribe() return nil } -type CCIPReceiverWithAckMessageRecovered struct { - MessageId [32]byte - Raw types.Log +type CCIPReceiverWithACKChainRemoved struct { + RemoveChainSelector uint64 + Raw types.Log } -func (_CCIPReceiverWithAck *CCIPReceiverWithAckFilterer) FilterMessageRecovered(opts *bind.FilterOpts, messageId [][32]byte) (*CCIPReceiverWithAckMessageRecoveredIterator, error) { +func (_CCIPReceiverWithACK *CCIPReceiverWithACKFilterer) FilterChainRemoved(opts *bind.FilterOpts, removeChainSelector []uint64) (*CCIPReceiverWithACKChainRemovedIterator, error) { - var messageIdRule []interface{} - for _, messageIdItem := range messageId { - messageIdRule = append(messageIdRule, messageIdItem) + var removeChainSelectorRule []interface{} + for _, removeChainSelectorItem := range removeChainSelector { + removeChainSelectorRule = append(removeChainSelectorRule, removeChainSelectorItem) } - logs, sub, err := _CCIPReceiverWithAck.contract.FilterLogs(opts, "MessageRecovered", messageIdRule) + logs, sub, err := _CCIPReceiverWithACK.contract.FilterLogs(opts, "ChainRemoved", removeChainSelectorRule) if err != nil { return nil, err } - return &CCIPReceiverWithAckMessageRecoveredIterator{contract: _CCIPReceiverWithAck.contract, event: "MessageRecovered", logs: logs, sub: sub}, nil + return &CCIPReceiverWithACKChainRemovedIterator{contract: _CCIPReceiverWithACK.contract, event: "ChainRemoved", logs: logs, sub: sub}, nil } -func (_CCIPReceiverWithAck *CCIPReceiverWithAckFilterer) WatchMessageRecovered(opts *bind.WatchOpts, sink chan<- *CCIPReceiverWithAckMessageRecovered, messageId [][32]byte) (event.Subscription, error) { +func (_CCIPReceiverWithACK *CCIPReceiverWithACKFilterer) WatchChainRemoved(opts *bind.WatchOpts, sink chan<- *CCIPReceiverWithACKChainRemoved, removeChainSelector []uint64) (event.Subscription, error) { - var messageIdRule []interface{} - for _, messageIdItem := range messageId { - messageIdRule = append(messageIdRule, messageIdItem) + var removeChainSelectorRule []interface{} + for _, removeChainSelectorItem := range removeChainSelector { + removeChainSelectorRule = append(removeChainSelectorRule, removeChainSelectorItem) } - logs, sub, err := _CCIPReceiverWithAck.contract.WatchLogs(opts, "MessageRecovered", messageIdRule) + logs, sub, err := _CCIPReceiverWithACK.contract.WatchLogs(opts, "ChainRemoved", removeChainSelectorRule) if err != nil { return nil, err } @@ -1179,8 +1199,8 @@ func (_CCIPReceiverWithAck *CCIPReceiverWithAckFilterer) WatchMessageRecovered(o select { case log := <-logs: - event := new(CCIPReceiverWithAckMessageRecovered) - if err := _CCIPReceiverWithAck.contract.UnpackLog(event, "MessageRecovered", log); err != nil { + event := new(CCIPReceiverWithACKChainRemoved) + if err := _CCIPReceiverWithACK.contract.UnpackLog(event, "ChainRemoved", log); err != nil { return err } event.Raw = log @@ -1201,17 +1221,17 @@ func (_CCIPReceiverWithAck *CCIPReceiverWithAckFilterer) WatchMessageRecovered(o }), nil } -func (_CCIPReceiverWithAck *CCIPReceiverWithAckFilterer) ParseMessageRecovered(log types.Log) (*CCIPReceiverWithAckMessageRecovered, error) { - event := new(CCIPReceiverWithAckMessageRecovered) - if err := _CCIPReceiverWithAck.contract.UnpackLog(event, "MessageRecovered", log); err != nil { +func (_CCIPReceiverWithACK *CCIPReceiverWithACKFilterer) ParseChainRemoved(log types.Log) (*CCIPReceiverWithACKChainRemoved, error) { + event := new(CCIPReceiverWithACKChainRemoved) + if err := _CCIPReceiverWithACK.contract.UnpackLog(event, "ChainRemoved", log); err != nil { return nil, err } event.Raw = log return event, nil } -type CCIPReceiverWithAckMessageSentIterator struct { - Event *CCIPReceiverWithAckMessageSent +type CCIPReceiverWithACKFeeTokenUpdatedIterator struct { + Event *CCIPReceiverWithACKFeeTokenUpdated contract *bind.BoundContract event string @@ -1222,7 +1242,7 @@ type CCIPReceiverWithAckMessageSentIterator struct { fail error } -func (it *CCIPReceiverWithAckMessageSentIterator) Next() bool { +func (it *CCIPReceiverWithACKFeeTokenUpdatedIterator) Next() bool { if it.fail != nil { return false @@ -1231,7 +1251,7 @@ func (it *CCIPReceiverWithAckMessageSentIterator) Next() bool { if it.done { select { case log := <-it.logs: - it.Event = new(CCIPReceiverWithAckMessageSent) + it.Event = new(CCIPReceiverWithACKFeeTokenUpdated) if err := it.contract.UnpackLog(it.Event, it.event, log); err != nil { it.fail = err return false @@ -1246,7 +1266,7 @@ func (it *CCIPReceiverWithAckMessageSentIterator) Next() bool { select { case log := <-it.logs: - it.Event = new(CCIPReceiverWithAckMessageSent) + it.Event = new(CCIPReceiverWithACKFeeTokenUpdated) if err := it.contract.UnpackLog(it.Event, it.event, log); err != nil { it.fail = err return false @@ -1261,51 +1281,51 @@ func (it *CCIPReceiverWithAckMessageSentIterator) Next() bool { } } -func (it *CCIPReceiverWithAckMessageSentIterator) Error() error { +func (it *CCIPReceiverWithACKFeeTokenUpdatedIterator) Error() error { return it.fail } -func (it *CCIPReceiverWithAckMessageSentIterator) Close() error { +func (it *CCIPReceiverWithACKFeeTokenUpdatedIterator) Close() error { it.sub.Unsubscribe() return nil } -type CCIPReceiverWithAckMessageSent struct { - IncomingMessageId [32]byte - ACKMessageId [32]byte - Raw types.Log +type CCIPReceiverWithACKFeeTokenUpdated struct { + OldToken common.Address + NewToken common.Address + Raw types.Log } -func (_CCIPReceiverWithAck *CCIPReceiverWithAckFilterer) FilterMessageSent(opts *bind.FilterOpts, incomingMessageId [][32]byte, ACKMessageId [][32]byte) (*CCIPReceiverWithAckMessageSentIterator, error) { +func (_CCIPReceiverWithACK *CCIPReceiverWithACKFilterer) FilterFeeTokenUpdated(opts *bind.FilterOpts, oldToken []common.Address, newToken []common.Address) (*CCIPReceiverWithACKFeeTokenUpdatedIterator, error) { - var incomingMessageIdRule []interface{} - for _, incomingMessageIdItem := range incomingMessageId { - incomingMessageIdRule = append(incomingMessageIdRule, incomingMessageIdItem) + var oldTokenRule []interface{} + for _, oldTokenItem := range oldToken { + oldTokenRule = append(oldTokenRule, oldTokenItem) } - var ACKMessageIdRule []interface{} - for _, ACKMessageIdItem := range ACKMessageId { - ACKMessageIdRule = append(ACKMessageIdRule, ACKMessageIdItem) + var newTokenRule []interface{} + for _, newTokenItem := range newToken { + newTokenRule = append(newTokenRule, newTokenItem) } - logs, sub, err := _CCIPReceiverWithAck.contract.FilterLogs(opts, "MessageSent", incomingMessageIdRule, ACKMessageIdRule) + logs, sub, err := _CCIPReceiverWithACK.contract.FilterLogs(opts, "FeeTokenUpdated", oldTokenRule, newTokenRule) if err != nil { return nil, err } - return &CCIPReceiverWithAckMessageSentIterator{contract: _CCIPReceiverWithAck.contract, event: "MessageSent", logs: logs, sub: sub}, nil + return &CCIPReceiverWithACKFeeTokenUpdatedIterator{contract: _CCIPReceiverWithACK.contract, event: "FeeTokenUpdated", logs: logs, sub: sub}, nil } -func (_CCIPReceiverWithAck *CCIPReceiverWithAckFilterer) WatchMessageSent(opts *bind.WatchOpts, sink chan<- *CCIPReceiverWithAckMessageSent, incomingMessageId [][32]byte, ACKMessageId [][32]byte) (event.Subscription, error) { +func (_CCIPReceiverWithACK *CCIPReceiverWithACKFilterer) WatchFeeTokenUpdated(opts *bind.WatchOpts, sink chan<- *CCIPReceiverWithACKFeeTokenUpdated, oldToken []common.Address, newToken []common.Address) (event.Subscription, error) { - var incomingMessageIdRule []interface{} - for _, incomingMessageIdItem := range incomingMessageId { - incomingMessageIdRule = append(incomingMessageIdRule, incomingMessageIdItem) + var oldTokenRule []interface{} + for _, oldTokenItem := range oldToken { + oldTokenRule = append(oldTokenRule, oldTokenItem) } - var ACKMessageIdRule []interface{} - for _, ACKMessageIdItem := range ACKMessageId { - ACKMessageIdRule = append(ACKMessageIdRule, ACKMessageIdItem) + var newTokenRule []interface{} + for _, newTokenItem := range newToken { + newTokenRule = append(newTokenRule, newTokenItem) } - logs, sub, err := _CCIPReceiverWithAck.contract.WatchLogs(opts, "MessageSent", incomingMessageIdRule, ACKMessageIdRule) + logs, sub, err := _CCIPReceiverWithACK.contract.WatchLogs(opts, "FeeTokenUpdated", oldTokenRule, newTokenRule) if err != nil { return nil, err } @@ -1315,8 +1335,8 @@ func (_CCIPReceiverWithAck *CCIPReceiverWithAckFilterer) WatchMessageSent(opts * select { case log := <-logs: - event := new(CCIPReceiverWithAckMessageSent) - if err := _CCIPReceiverWithAck.contract.UnpackLog(event, "MessageSent", log); err != nil { + event := new(CCIPReceiverWithACKFeeTokenUpdated) + if err := _CCIPReceiverWithACK.contract.UnpackLog(event, "FeeTokenUpdated", log); err != nil { return err } event.Raw = log @@ -1337,17 +1357,17 @@ func (_CCIPReceiverWithAck *CCIPReceiverWithAckFilterer) WatchMessageSent(opts * }), nil } -func (_CCIPReceiverWithAck *CCIPReceiverWithAckFilterer) ParseMessageSent(log types.Log) (*CCIPReceiverWithAckMessageSent, error) { - event := new(CCIPReceiverWithAckMessageSent) - if err := _CCIPReceiverWithAck.contract.UnpackLog(event, "MessageSent", log); err != nil { +func (_CCIPReceiverWithACK *CCIPReceiverWithACKFilterer) ParseFeeTokenUpdated(log types.Log) (*CCIPReceiverWithACKFeeTokenUpdated, error) { + event := new(CCIPReceiverWithACKFeeTokenUpdated) + if err := _CCIPReceiverWithACK.contract.UnpackLog(event, "FeeTokenUpdated", log); err != nil { return nil, err } event.Raw = log return event, nil } -type CCIPReceiverWithAckMessageSucceededIterator struct { - Event *CCIPReceiverWithAckMessageSucceeded +type CCIPReceiverWithACKMessageAbandonedIterator struct { + Event *CCIPReceiverWithACKMessageAbandoned contract *bind.BoundContract event string @@ -1358,7 +1378,7 @@ type CCIPReceiverWithAckMessageSucceededIterator struct { fail error } -func (it *CCIPReceiverWithAckMessageSucceededIterator) Next() bool { +func (it *CCIPReceiverWithACKMessageAbandonedIterator) Next() bool { if it.fail != nil { return false @@ -1367,7 +1387,7 @@ func (it *CCIPReceiverWithAckMessageSucceededIterator) Next() bool { if it.done { select { case log := <-it.logs: - it.Event = new(CCIPReceiverWithAckMessageSucceeded) + it.Event = new(CCIPReceiverWithACKMessageAbandoned) if err := it.contract.UnpackLog(it.Event, it.event, log); err != nil { it.fail = err return false @@ -1382,7 +1402,7 @@ func (it *CCIPReceiverWithAckMessageSucceededIterator) Next() bool { select { case log := <-it.logs: - it.Event = new(CCIPReceiverWithAckMessageSucceeded) + it.Event = new(CCIPReceiverWithACKMessageAbandoned) if err := it.contract.UnpackLog(it.Event, it.event, log); err != nil { it.fail = err return false @@ -1397,42 +1417,43 @@ func (it *CCIPReceiverWithAckMessageSucceededIterator) Next() bool { } } -func (it *CCIPReceiverWithAckMessageSucceededIterator) Error() error { +func (it *CCIPReceiverWithACKMessageAbandonedIterator) Error() error { return it.fail } -func (it *CCIPReceiverWithAckMessageSucceededIterator) Close() error { +func (it *CCIPReceiverWithACKMessageAbandonedIterator) Close() error { it.sub.Unsubscribe() return nil } -type CCIPReceiverWithAckMessageSucceeded struct { - MessageId [32]byte - Raw types.Log +type CCIPReceiverWithACKMessageAbandoned struct { + MessageId [32]byte + TokenReceiver common.Address + Raw types.Log } -func (_CCIPReceiverWithAck *CCIPReceiverWithAckFilterer) FilterMessageSucceeded(opts *bind.FilterOpts, messageId [][32]byte) (*CCIPReceiverWithAckMessageSucceededIterator, error) { +func (_CCIPReceiverWithACK *CCIPReceiverWithACKFilterer) FilterMessageAbandoned(opts *bind.FilterOpts, messageId [][32]byte) (*CCIPReceiverWithACKMessageAbandonedIterator, error) { var messageIdRule []interface{} for _, messageIdItem := range messageId { messageIdRule = append(messageIdRule, messageIdItem) } - logs, sub, err := _CCIPReceiverWithAck.contract.FilterLogs(opts, "MessageSucceeded", messageIdRule) + logs, sub, err := _CCIPReceiverWithACK.contract.FilterLogs(opts, "MessageAbandoned", messageIdRule) if err != nil { return nil, err } - return &CCIPReceiverWithAckMessageSucceededIterator{contract: _CCIPReceiverWithAck.contract, event: "MessageSucceeded", logs: logs, sub: sub}, nil + return &CCIPReceiverWithACKMessageAbandonedIterator{contract: _CCIPReceiverWithACK.contract, event: "MessageAbandoned", logs: logs, sub: sub}, nil } -func (_CCIPReceiverWithAck *CCIPReceiverWithAckFilterer) WatchMessageSucceeded(opts *bind.WatchOpts, sink chan<- *CCIPReceiverWithAckMessageSucceeded, messageId [][32]byte) (event.Subscription, error) { +func (_CCIPReceiverWithACK *CCIPReceiverWithACKFilterer) WatchMessageAbandoned(opts *bind.WatchOpts, sink chan<- *CCIPReceiverWithACKMessageAbandoned, messageId [][32]byte) (event.Subscription, error) { var messageIdRule []interface{} for _, messageIdItem := range messageId { messageIdRule = append(messageIdRule, messageIdItem) } - logs, sub, err := _CCIPReceiverWithAck.contract.WatchLogs(opts, "MessageSucceeded", messageIdRule) + logs, sub, err := _CCIPReceiverWithACK.contract.WatchLogs(opts, "MessageAbandoned", messageIdRule) if err != nil { return nil, err } @@ -1442,8 +1463,8 @@ func (_CCIPReceiverWithAck *CCIPReceiverWithAckFilterer) WatchMessageSucceeded(o select { case log := <-logs: - event := new(CCIPReceiverWithAckMessageSucceeded) - if err := _CCIPReceiverWithAck.contract.UnpackLog(event, "MessageSucceeded", log); err != nil { + event := new(CCIPReceiverWithACKMessageAbandoned) + if err := _CCIPReceiverWithACK.contract.UnpackLog(event, "MessageAbandoned", log); err != nil { return err } event.Raw = log @@ -1464,17 +1485,17 @@ func (_CCIPReceiverWithAck *CCIPReceiverWithAckFilterer) WatchMessageSucceeded(o }), nil } -func (_CCIPReceiverWithAck *CCIPReceiverWithAckFilterer) ParseMessageSucceeded(log types.Log) (*CCIPReceiverWithAckMessageSucceeded, error) { - event := new(CCIPReceiverWithAckMessageSucceeded) - if err := _CCIPReceiverWithAck.contract.UnpackLog(event, "MessageSucceeded", log); err != nil { +func (_CCIPReceiverWithACK *CCIPReceiverWithACKFilterer) ParseMessageAbandoned(log types.Log) (*CCIPReceiverWithACKMessageAbandoned, error) { + event := new(CCIPReceiverWithACKMessageAbandoned) + if err := _CCIPReceiverWithACK.contract.UnpackLog(event, "MessageAbandoned", log); err != nil { return nil, err } event.Raw = log return event, nil } -type CCIPReceiverWithAckOwnershipTransferRequestedIterator struct { - Event *CCIPReceiverWithAckOwnershipTransferRequested +type CCIPReceiverWithACKMessageAckReceivedIterator struct { + Event *CCIPReceiverWithACKMessageAckReceived contract *bind.BoundContract event string @@ -1485,7 +1506,7 @@ type CCIPReceiverWithAckOwnershipTransferRequestedIterator struct { fail error } -func (it *CCIPReceiverWithAckOwnershipTransferRequestedIterator) Next() bool { +func (it *CCIPReceiverWithACKMessageAckReceivedIterator) Next() bool { if it.fail != nil { return false @@ -1494,7 +1515,7 @@ func (it *CCIPReceiverWithAckOwnershipTransferRequestedIterator) Next() bool { if it.done { select { case log := <-it.logs: - it.Event = new(CCIPReceiverWithAckOwnershipTransferRequested) + it.Event = new(CCIPReceiverWithACKMessageAckReceived) if err := it.contract.UnpackLog(it.Event, it.event, log); err != nil { it.fail = err return false @@ -1509,7 +1530,7 @@ func (it *CCIPReceiverWithAckOwnershipTransferRequestedIterator) Next() bool { select { case log := <-it.logs: - it.Event = new(CCIPReceiverWithAckOwnershipTransferRequested) + it.Event = new(CCIPReceiverWithACKMessageAckReceived) if err := it.contract.UnpackLog(it.Event, it.event, log); err != nil { it.fail = err return false @@ -1524,51 +1545,32 @@ func (it *CCIPReceiverWithAckOwnershipTransferRequestedIterator) Next() bool { } } -func (it *CCIPReceiverWithAckOwnershipTransferRequestedIterator) Error() error { +func (it *CCIPReceiverWithACKMessageAckReceivedIterator) Error() error { return it.fail } -func (it *CCIPReceiverWithAckOwnershipTransferRequestedIterator) Close() error { +func (it *CCIPReceiverWithACKMessageAckReceivedIterator) Close() error { it.sub.Unsubscribe() return nil } -type CCIPReceiverWithAckOwnershipTransferRequested struct { - From common.Address - To common.Address - Raw types.Log +type CCIPReceiverWithACKMessageAckReceived struct { + MessageId [32]byte + Raw types.Log } -func (_CCIPReceiverWithAck *CCIPReceiverWithAckFilterer) FilterOwnershipTransferRequested(opts *bind.FilterOpts, from []common.Address, to []common.Address) (*CCIPReceiverWithAckOwnershipTransferRequestedIterator, error) { - - var fromRule []interface{} - for _, fromItem := range from { - fromRule = append(fromRule, fromItem) - } - var toRule []interface{} - for _, toItem := range to { - toRule = append(toRule, toItem) - } +func (_CCIPReceiverWithACK *CCIPReceiverWithACKFilterer) FilterMessageAckReceived(opts *bind.FilterOpts) (*CCIPReceiverWithACKMessageAckReceivedIterator, error) { - logs, sub, err := _CCIPReceiverWithAck.contract.FilterLogs(opts, "OwnershipTransferRequested", fromRule, toRule) + logs, sub, err := _CCIPReceiverWithACK.contract.FilterLogs(opts, "MessageAckReceived") if err != nil { return nil, err } - return &CCIPReceiverWithAckOwnershipTransferRequestedIterator{contract: _CCIPReceiverWithAck.contract, event: "OwnershipTransferRequested", logs: logs, sub: sub}, nil + return &CCIPReceiverWithACKMessageAckReceivedIterator{contract: _CCIPReceiverWithACK.contract, event: "MessageAckReceived", logs: logs, sub: sub}, nil } -func (_CCIPReceiverWithAck *CCIPReceiverWithAckFilterer) WatchOwnershipTransferRequested(opts *bind.WatchOpts, sink chan<- *CCIPReceiverWithAckOwnershipTransferRequested, from []common.Address, to []common.Address) (event.Subscription, error) { - - var fromRule []interface{} - for _, fromItem := range from { - fromRule = append(fromRule, fromItem) - } - var toRule []interface{} - for _, toItem := range to { - toRule = append(toRule, toItem) - } +func (_CCIPReceiverWithACK *CCIPReceiverWithACKFilterer) WatchMessageAckReceived(opts *bind.WatchOpts, sink chan<- *CCIPReceiverWithACKMessageAckReceived) (event.Subscription, error) { - logs, sub, err := _CCIPReceiverWithAck.contract.WatchLogs(opts, "OwnershipTransferRequested", fromRule, toRule) + logs, sub, err := _CCIPReceiverWithACK.contract.WatchLogs(opts, "MessageAckReceived") if err != nil { return nil, err } @@ -1578,8 +1580,8 @@ func (_CCIPReceiverWithAck *CCIPReceiverWithAckFilterer) WatchOwnershipTransferR select { case log := <-logs: - event := new(CCIPReceiverWithAckOwnershipTransferRequested) - if err := _CCIPReceiverWithAck.contract.UnpackLog(event, "OwnershipTransferRequested", log); err != nil { + event := new(CCIPReceiverWithACKMessageAckReceived) + if err := _CCIPReceiverWithACK.contract.UnpackLog(event, "MessageAckReceived", log); err != nil { return err } event.Raw = log @@ -1600,17 +1602,17 @@ func (_CCIPReceiverWithAck *CCIPReceiverWithAckFilterer) WatchOwnershipTransferR }), nil } -func (_CCIPReceiverWithAck *CCIPReceiverWithAckFilterer) ParseOwnershipTransferRequested(log types.Log) (*CCIPReceiverWithAckOwnershipTransferRequested, error) { - event := new(CCIPReceiverWithAckOwnershipTransferRequested) - if err := _CCIPReceiverWithAck.contract.UnpackLog(event, "OwnershipTransferRequested", log); err != nil { +func (_CCIPReceiverWithACK *CCIPReceiverWithACKFilterer) ParseMessageAckReceived(log types.Log) (*CCIPReceiverWithACKMessageAckReceived, error) { + event := new(CCIPReceiverWithACKMessageAckReceived) + if err := _CCIPReceiverWithACK.contract.UnpackLog(event, "MessageAckReceived", log); err != nil { return nil, err } event.Raw = log return event, nil } -type CCIPReceiverWithAckOwnershipTransferredIterator struct { - Event *CCIPReceiverWithAckOwnershipTransferred +type CCIPReceiverWithACKMessageAckSentIterator struct { + Event *CCIPReceiverWithACKMessageAckSent contract *bind.BoundContract event string @@ -1621,7 +1623,7 @@ type CCIPReceiverWithAckOwnershipTransferredIterator struct { fail error } -func (it *CCIPReceiverWithAckOwnershipTransferredIterator) Next() bool { +func (it *CCIPReceiverWithACKMessageAckSentIterator) Next() bool { if it.fail != nil { return false @@ -1630,7 +1632,7 @@ func (it *CCIPReceiverWithAckOwnershipTransferredIterator) Next() bool { if it.done { select { case log := <-it.logs: - it.Event = new(CCIPReceiverWithAckOwnershipTransferred) + it.Event = new(CCIPReceiverWithACKMessageAckSent) if err := it.contract.UnpackLog(it.Event, it.event, log); err != nil { it.fail = err return false @@ -1645,7 +1647,7 @@ func (it *CCIPReceiverWithAckOwnershipTransferredIterator) Next() bool { select { case log := <-it.logs: - it.Event = new(CCIPReceiverWithAckOwnershipTransferred) + it.Event = new(CCIPReceiverWithACKMessageAckSent) if err := it.contract.UnpackLog(it.Event, it.event, log); err != nil { it.fail = err return false @@ -1660,51 +1662,32 @@ func (it *CCIPReceiverWithAckOwnershipTransferredIterator) Next() bool { } } -func (it *CCIPReceiverWithAckOwnershipTransferredIterator) Error() error { +func (it *CCIPReceiverWithACKMessageAckSentIterator) Error() error { return it.fail } -func (it *CCIPReceiverWithAckOwnershipTransferredIterator) Close() error { +func (it *CCIPReceiverWithACKMessageAckSentIterator) Close() error { it.sub.Unsubscribe() return nil } -type CCIPReceiverWithAckOwnershipTransferred struct { - From common.Address - To common.Address - Raw types.Log +type CCIPReceiverWithACKMessageAckSent struct { + IncomingMessageId [32]byte + Raw types.Log } -func (_CCIPReceiverWithAck *CCIPReceiverWithAckFilterer) FilterOwnershipTransferred(opts *bind.FilterOpts, from []common.Address, to []common.Address) (*CCIPReceiverWithAckOwnershipTransferredIterator, error) { - - var fromRule []interface{} - for _, fromItem := range from { - fromRule = append(fromRule, fromItem) - } - var toRule []interface{} - for _, toItem := range to { - toRule = append(toRule, toItem) - } +func (_CCIPReceiverWithACK *CCIPReceiverWithACKFilterer) FilterMessageAckSent(opts *bind.FilterOpts) (*CCIPReceiverWithACKMessageAckSentIterator, error) { - logs, sub, err := _CCIPReceiverWithAck.contract.FilterLogs(opts, "OwnershipTransferred", fromRule, toRule) + logs, sub, err := _CCIPReceiverWithACK.contract.FilterLogs(opts, "MessageAckSent") if err != nil { return nil, err } - return &CCIPReceiverWithAckOwnershipTransferredIterator{contract: _CCIPReceiverWithAck.contract, event: "OwnershipTransferred", logs: logs, sub: sub}, nil + return &CCIPReceiverWithACKMessageAckSentIterator{contract: _CCIPReceiverWithACK.contract, event: "MessageAckSent", logs: logs, sub: sub}, nil } -func (_CCIPReceiverWithAck *CCIPReceiverWithAckFilterer) WatchOwnershipTransferred(opts *bind.WatchOpts, sink chan<- *CCIPReceiverWithAckOwnershipTransferred, from []common.Address, to []common.Address) (event.Subscription, error) { - - var fromRule []interface{} - for _, fromItem := range from { - fromRule = append(fromRule, fromItem) - } - var toRule []interface{} - for _, toItem := range to { - toRule = append(toRule, toItem) - } +func (_CCIPReceiverWithACK *CCIPReceiverWithACKFilterer) WatchMessageAckSent(opts *bind.WatchOpts, sink chan<- *CCIPReceiverWithACKMessageAckSent) (event.Subscription, error) { - logs, sub, err := _CCIPReceiverWithAck.contract.WatchLogs(opts, "OwnershipTransferred", fromRule, toRule) + logs, sub, err := _CCIPReceiverWithACK.contract.WatchLogs(opts, "MessageAckSent") if err != nil { return nil, err } @@ -1714,8 +1697,8 @@ func (_CCIPReceiverWithAck *CCIPReceiverWithAckFilterer) WatchOwnershipTransferr select { case log := <-logs: - event := new(CCIPReceiverWithAckOwnershipTransferred) - if err := _CCIPReceiverWithAck.contract.UnpackLog(event, "OwnershipTransferred", log); err != nil { + event := new(CCIPReceiverWithACKMessageAckSent) + if err := _CCIPReceiverWithACK.contract.UnpackLog(event, "MessageAckSent", log); err != nil { return err } event.Raw = log @@ -1736,100 +1719,1069 @@ func (_CCIPReceiverWithAck *CCIPReceiverWithAckFilterer) WatchOwnershipTransferr }), nil } -func (_CCIPReceiverWithAck *CCIPReceiverWithAckFilterer) ParseOwnershipTransferred(log types.Log) (*CCIPReceiverWithAckOwnershipTransferred, error) { - event := new(CCIPReceiverWithAckOwnershipTransferred) - if err := _CCIPReceiverWithAck.contract.UnpackLog(event, "OwnershipTransferred", log); err != nil { +func (_CCIPReceiverWithACK *CCIPReceiverWithACKFilterer) ParseMessageAckSent(log types.Log) (*CCIPReceiverWithACKMessageAckSent, error) { + event := new(CCIPReceiverWithACKMessageAckSent) + if err := _CCIPReceiverWithACK.contract.UnpackLog(event, "MessageAckSent", log); err != nil { return nil, err } event.Raw = log return event, nil } -type SChains struct { - Recipient []byte - ExtraArgsBytes []byte +type CCIPReceiverWithACKMessageFailedIterator struct { + Event *CCIPReceiverWithACKMessageFailed + + contract *bind.BoundContract + event string + + logs chan types.Log + sub ethereum.Subscription + done bool + fail error } -func (_CCIPReceiverWithAck *CCIPReceiverWithAck) ParseLog(log types.Log) (generated.AbigenLog, error) { - switch log.Topics[0] { - case _CCIPReceiverWithAck.abi.Events["FeeTokenModified"].ID: - return _CCIPReceiverWithAck.ParseFeeTokenModified(log) - case _CCIPReceiverWithAck.abi.Events["MessageAckReceived"].ID: - return _CCIPReceiverWithAck.ParseMessageAckReceived(log) - case _CCIPReceiverWithAck.abi.Events["MessageAckSent"].ID: - return _CCIPReceiverWithAck.ParseMessageAckSent(log) - case _CCIPReceiverWithAck.abi.Events["MessageFailed"].ID: - return _CCIPReceiverWithAck.ParseMessageFailed(log) - case _CCIPReceiverWithAck.abi.Events["MessageRecovered"].ID: - return _CCIPReceiverWithAck.ParseMessageRecovered(log) - case _CCIPReceiverWithAck.abi.Events["MessageSent"].ID: - return _CCIPReceiverWithAck.ParseMessageSent(log) - case _CCIPReceiverWithAck.abi.Events["MessageSucceeded"].ID: - return _CCIPReceiverWithAck.ParseMessageSucceeded(log) - case _CCIPReceiverWithAck.abi.Events["OwnershipTransferRequested"].ID: - return _CCIPReceiverWithAck.ParseOwnershipTransferRequested(log) - case _CCIPReceiverWithAck.abi.Events["OwnershipTransferred"].ID: - return _CCIPReceiverWithAck.ParseOwnershipTransferred(log) +func (it *CCIPReceiverWithACKMessageFailedIterator) Next() bool { - default: - return nil, fmt.Errorf("abigen wrapper received unknown log topic: %v", log.Topics[0]) + if it.fail != nil { + return false } -} -func (CCIPReceiverWithAckFeeTokenModified) Topic() common.Hash { - return common.HexToHash("0x4a1cb6b940121ea2ba30fb9b494035cbfe2d4b6b080db8b502150410bef7eb4e") -} + if it.done { + select { + case log := <-it.logs: + it.Event = new(CCIPReceiverWithACKMessageFailed) + if err := it.contract.UnpackLog(it.Event, it.event, log); err != nil { + it.fail = err + return false + } + it.Event.Raw = log + return true -func (CCIPReceiverWithAckMessageAckReceived) Topic() common.Hash { - return common.HexToHash("0xef0cb160d3dc564cde61ae97d9981f9c4d92ace727a2ec202b18b223ea832a79") -} + default: + return false + } + } -func (CCIPReceiverWithAckMessageAckSent) Topic() common.Hash { - return common.HexToHash("0x75944f95ba0be568cb30faeb0ef135cb73d07006939da29722d670a97f5c5b26") -} + select { + case log := <-it.logs: + it.Event = new(CCIPReceiverWithACKMessageFailed) + if err := it.contract.UnpackLog(it.Event, it.event, log); err != nil { + it.fail = err + return false + } + it.Event.Raw = log + return true -func (CCIPReceiverWithAckMessageFailed) Topic() common.Hash { - return common.HexToHash("0x55bc02a9ef6f146737edeeb425738006f67f077e7138de3bf84a15bde1a5b56f") + case err := <-it.sub.Err(): + it.done = true + it.fail = err + return it.Next() + } } -func (CCIPReceiverWithAckMessageRecovered) Topic() common.Hash { - return common.HexToHash("0xef3bf8c64bc480286c4f3503b870ceb23e648d2d902e31fb7bb46680da6de8ad") +func (it *CCIPReceiverWithACKMessageFailedIterator) Error() error { + return it.fail } -func (CCIPReceiverWithAckMessageSent) Topic() common.Hash { - return common.HexToHash("0x9102b9031c3c59d8320bf14d84d7d7a3434366b91032fad1c87579cfc62b2372") +func (it *CCIPReceiverWithACKMessageFailedIterator) Close() error { + it.sub.Unsubscribe() + return nil } -func (CCIPReceiverWithAckMessageSucceeded) Topic() common.Hash { - return common.HexToHash("0xdf6958669026659bac75ba986685e11a7d271284989f565f2802522663e9a70f") +type CCIPReceiverWithACKMessageFailed struct { + MessageId [32]byte + Reason []byte + Raw types.Log } -func (CCIPReceiverWithAckOwnershipTransferRequested) Topic() common.Hash { - return common.HexToHash("0xed8889f560326eb138920d842192f0eb3dd22b4f139c87a2c57538e05bae1278") -} +func (_CCIPReceiverWithACK *CCIPReceiverWithACKFilterer) FilterMessageFailed(opts *bind.FilterOpts, messageId [][32]byte) (*CCIPReceiverWithACKMessageFailedIterator, error) { -func (CCIPReceiverWithAckOwnershipTransferred) Topic() common.Hash { - return common.HexToHash("0x8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0") -} + var messageIdRule []interface{} + for _, messageIdItem := range messageId { + messageIdRule = append(messageIdRule, messageIdItem) + } -func (_CCIPReceiverWithAck *CCIPReceiverWithAck) Address() common.Address { - return _CCIPReceiverWithAck.address + logs, sub, err := _CCIPReceiverWithACK.contract.FilterLogs(opts, "MessageFailed", messageIdRule) + if err != nil { + return nil, err + } + return &CCIPReceiverWithACKMessageFailedIterator{contract: _CCIPReceiverWithACK.contract, event: "MessageFailed", logs: logs, sub: sub}, nil } -type CCIPReceiverWithAckInterface interface { - ACKMESSAGEMAGICBYTES(opts *bind.CallOpts) ([]byte, error) +func (_CCIPReceiverWithACK *CCIPReceiverWithACKFilterer) WatchMessageFailed(opts *bind.WatchOpts, sink chan<- *CCIPReceiverWithACKMessageFailed, messageId [][32]byte) (event.Subscription, error) { - GetMessageContents(opts *bind.CallOpts, messageId [32]byte) (ClientAny2EVMMessage, error) - - GetMessageStatus(opts *bind.CallOpts, messageId [32]byte) (*big.Int, error) + var messageIdRule []interface{} + for _, messageIdItem := range messageId { + messageIdRule = append(messageIdRule, messageIdItem) + } - GetRouter(opts *bind.CallOpts) (common.Address, error) + logs, sub, err := _CCIPReceiverWithACK.contract.WatchLogs(opts, "MessageFailed", messageIdRule) + if err != nil { + return nil, err + } + return event.NewSubscription(func(quit <-chan struct{}) error { + defer sub.Unsubscribe() + for { + select { + case log := <-logs: - IsApprovedSender(opts *bind.CallOpts, sourceChainSelector uint64, senderAddr []byte) (bool, error) + event := new(CCIPReceiverWithACKMessageFailed) + if err := _CCIPReceiverWithACK.contract.UnpackLog(event, "MessageFailed", log); err != nil { + return err + } + event.Raw = log + + select { + case sink <- event: + case err := <-sub.Err(): + return err + case <-quit: + return nil + } + case err := <-sub.Err(): + return err + case <-quit: + return nil + } + } + }), nil +} + +func (_CCIPReceiverWithACK *CCIPReceiverWithACKFilterer) ParseMessageFailed(log types.Log) (*CCIPReceiverWithACKMessageFailed, error) { + event := new(CCIPReceiverWithACKMessageFailed) + if err := _CCIPReceiverWithACK.contract.UnpackLog(event, "MessageFailed", log); err != nil { + return nil, err + } + event.Raw = log + return event, nil +} + +type CCIPReceiverWithACKMessageRecoveredIterator struct { + Event *CCIPReceiverWithACKMessageRecovered + + contract *bind.BoundContract + event string + + logs chan types.Log + sub ethereum.Subscription + done bool + fail error +} + +func (it *CCIPReceiverWithACKMessageRecoveredIterator) Next() bool { + + if it.fail != nil { + return false + } + + if it.done { + select { + case log := <-it.logs: + it.Event = new(CCIPReceiverWithACKMessageRecovered) + if err := it.contract.UnpackLog(it.Event, it.event, log); err != nil { + it.fail = err + return false + } + it.Event.Raw = log + return true + + default: + return false + } + } + + select { + case log := <-it.logs: + it.Event = new(CCIPReceiverWithACKMessageRecovered) + if err := it.contract.UnpackLog(it.Event, it.event, log); err != nil { + it.fail = err + return false + } + it.Event.Raw = log + return true + + case err := <-it.sub.Err(): + it.done = true + it.fail = err + return it.Next() + } +} + +func (it *CCIPReceiverWithACKMessageRecoveredIterator) Error() error { + return it.fail +} + +func (it *CCIPReceiverWithACKMessageRecoveredIterator) Close() error { + it.sub.Unsubscribe() + return nil +} + +type CCIPReceiverWithACKMessageRecovered struct { + MessageId [32]byte + Raw types.Log +} + +func (_CCIPReceiverWithACK *CCIPReceiverWithACKFilterer) FilterMessageRecovered(opts *bind.FilterOpts, messageId [][32]byte) (*CCIPReceiverWithACKMessageRecoveredIterator, error) { + + var messageIdRule []interface{} + for _, messageIdItem := range messageId { + messageIdRule = append(messageIdRule, messageIdItem) + } + + logs, sub, err := _CCIPReceiverWithACK.contract.FilterLogs(opts, "MessageRecovered", messageIdRule) + if err != nil { + return nil, err + } + return &CCIPReceiverWithACKMessageRecoveredIterator{contract: _CCIPReceiverWithACK.contract, event: "MessageRecovered", logs: logs, sub: sub}, nil +} + +func (_CCIPReceiverWithACK *CCIPReceiverWithACKFilterer) WatchMessageRecovered(opts *bind.WatchOpts, sink chan<- *CCIPReceiverWithACKMessageRecovered, messageId [][32]byte) (event.Subscription, error) { + + var messageIdRule []interface{} + for _, messageIdItem := range messageId { + messageIdRule = append(messageIdRule, messageIdItem) + } + + logs, sub, err := _CCIPReceiverWithACK.contract.WatchLogs(opts, "MessageRecovered", messageIdRule) + if err != nil { + return nil, err + } + return event.NewSubscription(func(quit <-chan struct{}) error { + defer sub.Unsubscribe() + for { + select { + case log := <-logs: + + event := new(CCIPReceiverWithACKMessageRecovered) + if err := _CCIPReceiverWithACK.contract.UnpackLog(event, "MessageRecovered", log); err != nil { + return err + } + event.Raw = log + + select { + case sink <- event: + case err := <-sub.Err(): + return err + case <-quit: + return nil + } + case err := <-sub.Err(): + return err + case <-quit: + return nil + } + } + }), nil +} + +func (_CCIPReceiverWithACK *CCIPReceiverWithACKFilterer) ParseMessageRecovered(log types.Log) (*CCIPReceiverWithACKMessageRecovered, error) { + event := new(CCIPReceiverWithACKMessageRecovered) + if err := _CCIPReceiverWithACK.contract.UnpackLog(event, "MessageRecovered", log); err != nil { + return nil, err + } + event.Raw = log + return event, nil +} + +type CCIPReceiverWithACKMessageSentIterator struct { + Event *CCIPReceiverWithACKMessageSent + + contract *bind.BoundContract + event string + + logs chan types.Log + sub ethereum.Subscription + done bool + fail error +} + +func (it *CCIPReceiverWithACKMessageSentIterator) Next() bool { + + if it.fail != nil { + return false + } + + if it.done { + select { + case log := <-it.logs: + it.Event = new(CCIPReceiverWithACKMessageSent) + if err := it.contract.UnpackLog(it.Event, it.event, log); err != nil { + it.fail = err + return false + } + it.Event.Raw = log + return true + + default: + return false + } + } + + select { + case log := <-it.logs: + it.Event = new(CCIPReceiverWithACKMessageSent) + if err := it.contract.UnpackLog(it.Event, it.event, log); err != nil { + it.fail = err + return false + } + it.Event.Raw = log + return true + + case err := <-it.sub.Err(): + it.done = true + it.fail = err + return it.Next() + } +} + +func (it *CCIPReceiverWithACKMessageSentIterator) Error() error { + return it.fail +} + +func (it *CCIPReceiverWithACKMessageSentIterator) Close() error { + it.sub.Unsubscribe() + return nil +} + +type CCIPReceiverWithACKMessageSent struct { + IncomingMessageId [32]byte + ACKMessageId [32]byte + Raw types.Log +} + +func (_CCIPReceiverWithACK *CCIPReceiverWithACKFilterer) FilterMessageSent(opts *bind.FilterOpts, incomingMessageId [][32]byte, ACKMessageId [][32]byte) (*CCIPReceiverWithACKMessageSentIterator, error) { + + var incomingMessageIdRule []interface{} + for _, incomingMessageIdItem := range incomingMessageId { + incomingMessageIdRule = append(incomingMessageIdRule, incomingMessageIdItem) + } + var ACKMessageIdRule []interface{} + for _, ACKMessageIdItem := range ACKMessageId { + ACKMessageIdRule = append(ACKMessageIdRule, ACKMessageIdItem) + } + + logs, sub, err := _CCIPReceiverWithACK.contract.FilterLogs(opts, "MessageSent", incomingMessageIdRule, ACKMessageIdRule) + if err != nil { + return nil, err + } + return &CCIPReceiverWithACKMessageSentIterator{contract: _CCIPReceiverWithACK.contract, event: "MessageSent", logs: logs, sub: sub}, nil +} + +func (_CCIPReceiverWithACK *CCIPReceiverWithACKFilterer) WatchMessageSent(opts *bind.WatchOpts, sink chan<- *CCIPReceiverWithACKMessageSent, incomingMessageId [][32]byte, ACKMessageId [][32]byte) (event.Subscription, error) { + + var incomingMessageIdRule []interface{} + for _, incomingMessageIdItem := range incomingMessageId { + incomingMessageIdRule = append(incomingMessageIdRule, incomingMessageIdItem) + } + var ACKMessageIdRule []interface{} + for _, ACKMessageIdItem := range ACKMessageId { + ACKMessageIdRule = append(ACKMessageIdRule, ACKMessageIdItem) + } + + logs, sub, err := _CCIPReceiverWithACK.contract.WatchLogs(opts, "MessageSent", incomingMessageIdRule, ACKMessageIdRule) + if err != nil { + return nil, err + } + return event.NewSubscription(func(quit <-chan struct{}) error { + defer sub.Unsubscribe() + for { + select { + case log := <-logs: + + event := new(CCIPReceiverWithACKMessageSent) + if err := _CCIPReceiverWithACK.contract.UnpackLog(event, "MessageSent", log); err != nil { + return err + } + event.Raw = log + + select { + case sink <- event: + case err := <-sub.Err(): + return err + case <-quit: + return nil + } + case err := <-sub.Err(): + return err + case <-quit: + return nil + } + } + }), nil +} + +func (_CCIPReceiverWithACK *CCIPReceiverWithACKFilterer) ParseMessageSent(log types.Log) (*CCIPReceiverWithACKMessageSent, error) { + event := new(CCIPReceiverWithACKMessageSent) + if err := _CCIPReceiverWithACK.contract.UnpackLog(event, "MessageSent", log); err != nil { + return nil, err + } + event.Raw = log + return event, nil +} + +type CCIPReceiverWithACKMessageSucceededIterator struct { + Event *CCIPReceiverWithACKMessageSucceeded + + contract *bind.BoundContract + event string + + logs chan types.Log + sub ethereum.Subscription + done bool + fail error +} + +func (it *CCIPReceiverWithACKMessageSucceededIterator) Next() bool { + + if it.fail != nil { + return false + } + + if it.done { + select { + case log := <-it.logs: + it.Event = new(CCIPReceiverWithACKMessageSucceeded) + if err := it.contract.UnpackLog(it.Event, it.event, log); err != nil { + it.fail = err + return false + } + it.Event.Raw = log + return true + + default: + return false + } + } + + select { + case log := <-it.logs: + it.Event = new(CCIPReceiverWithACKMessageSucceeded) + if err := it.contract.UnpackLog(it.Event, it.event, log); err != nil { + it.fail = err + return false + } + it.Event.Raw = log + return true + + case err := <-it.sub.Err(): + it.done = true + it.fail = err + return it.Next() + } +} + +func (it *CCIPReceiverWithACKMessageSucceededIterator) Error() error { + return it.fail +} + +func (it *CCIPReceiverWithACKMessageSucceededIterator) Close() error { + it.sub.Unsubscribe() + return nil +} + +type CCIPReceiverWithACKMessageSucceeded struct { + MessageId [32]byte + Raw types.Log +} + +func (_CCIPReceiverWithACK *CCIPReceiverWithACKFilterer) FilterMessageSucceeded(opts *bind.FilterOpts, messageId [][32]byte) (*CCIPReceiverWithACKMessageSucceededIterator, error) { + + var messageIdRule []interface{} + for _, messageIdItem := range messageId { + messageIdRule = append(messageIdRule, messageIdItem) + } + + logs, sub, err := _CCIPReceiverWithACK.contract.FilterLogs(opts, "MessageSucceeded", messageIdRule) + if err != nil { + return nil, err + } + return &CCIPReceiverWithACKMessageSucceededIterator{contract: _CCIPReceiverWithACK.contract, event: "MessageSucceeded", logs: logs, sub: sub}, nil +} + +func (_CCIPReceiverWithACK *CCIPReceiverWithACKFilterer) WatchMessageSucceeded(opts *bind.WatchOpts, sink chan<- *CCIPReceiverWithACKMessageSucceeded, messageId [][32]byte) (event.Subscription, error) { + + var messageIdRule []interface{} + for _, messageIdItem := range messageId { + messageIdRule = append(messageIdRule, messageIdItem) + } + + logs, sub, err := _CCIPReceiverWithACK.contract.WatchLogs(opts, "MessageSucceeded", messageIdRule) + if err != nil { + return nil, err + } + return event.NewSubscription(func(quit <-chan struct{}) error { + defer sub.Unsubscribe() + for { + select { + case log := <-logs: + + event := new(CCIPReceiverWithACKMessageSucceeded) + if err := _CCIPReceiverWithACK.contract.UnpackLog(event, "MessageSucceeded", log); err != nil { + return err + } + event.Raw = log + + select { + case sink <- event: + case err := <-sub.Err(): + return err + case <-quit: + return nil + } + case err := <-sub.Err(): + return err + case <-quit: + return nil + } + } + }), nil +} + +func (_CCIPReceiverWithACK *CCIPReceiverWithACKFilterer) ParseMessageSucceeded(log types.Log) (*CCIPReceiverWithACKMessageSucceeded, error) { + event := new(CCIPReceiverWithACKMessageSucceeded) + if err := _CCIPReceiverWithACK.contract.UnpackLog(event, "MessageSucceeded", log); err != nil { + return nil, err + } + event.Raw = log + return event, nil +} + +type CCIPReceiverWithACKOwnershipTransferRequestedIterator struct { + Event *CCIPReceiverWithACKOwnershipTransferRequested + + contract *bind.BoundContract + event string + + logs chan types.Log + sub ethereum.Subscription + done bool + fail error +} + +func (it *CCIPReceiverWithACKOwnershipTransferRequestedIterator) Next() bool { + + if it.fail != nil { + return false + } + + if it.done { + select { + case log := <-it.logs: + it.Event = new(CCIPReceiverWithACKOwnershipTransferRequested) + if err := it.contract.UnpackLog(it.Event, it.event, log); err != nil { + it.fail = err + return false + } + it.Event.Raw = log + return true + + default: + return false + } + } + + select { + case log := <-it.logs: + it.Event = new(CCIPReceiverWithACKOwnershipTransferRequested) + if err := it.contract.UnpackLog(it.Event, it.event, log); err != nil { + it.fail = err + return false + } + it.Event.Raw = log + return true + + case err := <-it.sub.Err(): + it.done = true + it.fail = err + return it.Next() + } +} + +func (it *CCIPReceiverWithACKOwnershipTransferRequestedIterator) Error() error { + return it.fail +} + +func (it *CCIPReceiverWithACKOwnershipTransferRequestedIterator) Close() error { + it.sub.Unsubscribe() + return nil +} + +type CCIPReceiverWithACKOwnershipTransferRequested struct { + From common.Address + To common.Address + Raw types.Log +} + +func (_CCIPReceiverWithACK *CCIPReceiverWithACKFilterer) FilterOwnershipTransferRequested(opts *bind.FilterOpts, from []common.Address, to []common.Address) (*CCIPReceiverWithACKOwnershipTransferRequestedIterator, error) { + + var fromRule []interface{} + for _, fromItem := range from { + fromRule = append(fromRule, fromItem) + } + var toRule []interface{} + for _, toItem := range to { + toRule = append(toRule, toItem) + } + + logs, sub, err := _CCIPReceiverWithACK.contract.FilterLogs(opts, "OwnershipTransferRequested", fromRule, toRule) + if err != nil { + return nil, err + } + return &CCIPReceiverWithACKOwnershipTransferRequestedIterator{contract: _CCIPReceiverWithACK.contract, event: "OwnershipTransferRequested", logs: logs, sub: sub}, nil +} + +func (_CCIPReceiverWithACK *CCIPReceiverWithACKFilterer) WatchOwnershipTransferRequested(opts *bind.WatchOpts, sink chan<- *CCIPReceiverWithACKOwnershipTransferRequested, from []common.Address, to []common.Address) (event.Subscription, error) { + + var fromRule []interface{} + for _, fromItem := range from { + fromRule = append(fromRule, fromItem) + } + var toRule []interface{} + for _, toItem := range to { + toRule = append(toRule, toItem) + } + + logs, sub, err := _CCIPReceiverWithACK.contract.WatchLogs(opts, "OwnershipTransferRequested", fromRule, toRule) + if err != nil { + return nil, err + } + return event.NewSubscription(func(quit <-chan struct{}) error { + defer sub.Unsubscribe() + for { + select { + case log := <-logs: + + event := new(CCIPReceiverWithACKOwnershipTransferRequested) + if err := _CCIPReceiverWithACK.contract.UnpackLog(event, "OwnershipTransferRequested", log); err != nil { + return err + } + event.Raw = log + + select { + case sink <- event: + case err := <-sub.Err(): + return err + case <-quit: + return nil + } + case err := <-sub.Err(): + return err + case <-quit: + return nil + } + } + }), nil +} + +func (_CCIPReceiverWithACK *CCIPReceiverWithACKFilterer) ParseOwnershipTransferRequested(log types.Log) (*CCIPReceiverWithACKOwnershipTransferRequested, error) { + event := new(CCIPReceiverWithACKOwnershipTransferRequested) + if err := _CCIPReceiverWithACK.contract.UnpackLog(event, "OwnershipTransferRequested", log); err != nil { + return nil, err + } + event.Raw = log + return event, nil +} + +type CCIPReceiverWithACKOwnershipTransferredIterator struct { + Event *CCIPReceiverWithACKOwnershipTransferred + + contract *bind.BoundContract + event string + + logs chan types.Log + sub ethereum.Subscription + done bool + fail error +} + +func (it *CCIPReceiverWithACKOwnershipTransferredIterator) Next() bool { + + if it.fail != nil { + return false + } + + if it.done { + select { + case log := <-it.logs: + it.Event = new(CCIPReceiverWithACKOwnershipTransferred) + if err := it.contract.UnpackLog(it.Event, it.event, log); err != nil { + it.fail = err + return false + } + it.Event.Raw = log + return true + + default: + return false + } + } + + select { + case log := <-it.logs: + it.Event = new(CCIPReceiverWithACKOwnershipTransferred) + if err := it.contract.UnpackLog(it.Event, it.event, log); err != nil { + it.fail = err + return false + } + it.Event.Raw = log + return true + + case err := <-it.sub.Err(): + it.done = true + it.fail = err + return it.Next() + } +} + +func (it *CCIPReceiverWithACKOwnershipTransferredIterator) Error() error { + return it.fail +} + +func (it *CCIPReceiverWithACKOwnershipTransferredIterator) Close() error { + it.sub.Unsubscribe() + return nil +} + +type CCIPReceiverWithACKOwnershipTransferred struct { + From common.Address + To common.Address + Raw types.Log +} + +func (_CCIPReceiverWithACK *CCIPReceiverWithACKFilterer) FilterOwnershipTransferred(opts *bind.FilterOpts, from []common.Address, to []common.Address) (*CCIPReceiverWithACKOwnershipTransferredIterator, error) { + + var fromRule []interface{} + for _, fromItem := range from { + fromRule = append(fromRule, fromItem) + } + var toRule []interface{} + for _, toItem := range to { + toRule = append(toRule, toItem) + } + + logs, sub, err := _CCIPReceiverWithACK.contract.FilterLogs(opts, "OwnershipTransferred", fromRule, toRule) + if err != nil { + return nil, err + } + return &CCIPReceiverWithACKOwnershipTransferredIterator{contract: _CCIPReceiverWithACK.contract, event: "OwnershipTransferred", logs: logs, sub: sub}, nil +} + +func (_CCIPReceiverWithACK *CCIPReceiverWithACKFilterer) WatchOwnershipTransferred(opts *bind.WatchOpts, sink chan<- *CCIPReceiverWithACKOwnershipTransferred, from []common.Address, to []common.Address) (event.Subscription, error) { + + var fromRule []interface{} + for _, fromItem := range from { + fromRule = append(fromRule, fromItem) + } + var toRule []interface{} + for _, toItem := range to { + toRule = append(toRule, toItem) + } + + logs, sub, err := _CCIPReceiverWithACK.contract.WatchLogs(opts, "OwnershipTransferred", fromRule, toRule) + if err != nil { + return nil, err + } + return event.NewSubscription(func(quit <-chan struct{}) error { + defer sub.Unsubscribe() + for { + select { + case log := <-logs: + + event := new(CCIPReceiverWithACKOwnershipTransferred) + if err := _CCIPReceiverWithACK.contract.UnpackLog(event, "OwnershipTransferred", log); err != nil { + return err + } + event.Raw = log + + select { + case sink <- event: + case err := <-sub.Err(): + return err + case <-quit: + return nil + } + case err := <-sub.Err(): + return err + case <-quit: + return nil + } + } + }), nil +} + +func (_CCIPReceiverWithACK *CCIPReceiverWithACKFilterer) ParseOwnershipTransferred(log types.Log) (*CCIPReceiverWithACKOwnershipTransferred, error) { + event := new(CCIPReceiverWithACKOwnershipTransferred) + if err := _CCIPReceiverWithACK.contract.UnpackLog(event, "OwnershipTransferred", log); err != nil { + return nil, err + } + event.Raw = log + return event, nil +} + +type CCIPReceiverWithACKTokensWithdrawnByOwnerIterator struct { + Event *CCIPReceiverWithACKTokensWithdrawnByOwner + + contract *bind.BoundContract + event string + + logs chan types.Log + sub ethereum.Subscription + done bool + fail error +} + +func (it *CCIPReceiverWithACKTokensWithdrawnByOwnerIterator) Next() bool { + + if it.fail != nil { + return false + } + + if it.done { + select { + case log := <-it.logs: + it.Event = new(CCIPReceiverWithACKTokensWithdrawnByOwner) + if err := it.contract.UnpackLog(it.Event, it.event, log); err != nil { + it.fail = err + return false + } + it.Event.Raw = log + return true + + default: + return false + } + } + + select { + case log := <-it.logs: + it.Event = new(CCIPReceiverWithACKTokensWithdrawnByOwner) + if err := it.contract.UnpackLog(it.Event, it.event, log); err != nil { + it.fail = err + return false + } + it.Event.Raw = log + return true + + case err := <-it.sub.Err(): + it.done = true + it.fail = err + return it.Next() + } +} + +func (it *CCIPReceiverWithACKTokensWithdrawnByOwnerIterator) Error() error { + return it.fail +} + +func (it *CCIPReceiverWithACKTokensWithdrawnByOwnerIterator) Close() error { + it.sub.Unsubscribe() + return nil +} + +type CCIPReceiverWithACKTokensWithdrawnByOwner struct { + Token common.Address + To common.Address + Amount *big.Int + Raw types.Log +} + +func (_CCIPReceiverWithACK *CCIPReceiverWithACKFilterer) FilterTokensWithdrawnByOwner(opts *bind.FilterOpts, token []common.Address, to []common.Address) (*CCIPReceiverWithACKTokensWithdrawnByOwnerIterator, error) { + + var tokenRule []interface{} + for _, tokenItem := range token { + tokenRule = append(tokenRule, tokenItem) + } + var toRule []interface{} + for _, toItem := range to { + toRule = append(toRule, toItem) + } + + logs, sub, err := _CCIPReceiverWithACK.contract.FilterLogs(opts, "TokensWithdrawnByOwner", tokenRule, toRule) + if err != nil { + return nil, err + } + return &CCIPReceiverWithACKTokensWithdrawnByOwnerIterator{contract: _CCIPReceiverWithACK.contract, event: "TokensWithdrawnByOwner", logs: logs, sub: sub}, nil +} + +func (_CCIPReceiverWithACK *CCIPReceiverWithACKFilterer) WatchTokensWithdrawnByOwner(opts *bind.WatchOpts, sink chan<- *CCIPReceiverWithACKTokensWithdrawnByOwner, token []common.Address, to []common.Address) (event.Subscription, error) { + + var tokenRule []interface{} + for _, tokenItem := range token { + tokenRule = append(tokenRule, tokenItem) + } + var toRule []interface{} + for _, toItem := range to { + toRule = append(toRule, toItem) + } + + logs, sub, err := _CCIPReceiverWithACK.contract.WatchLogs(opts, "TokensWithdrawnByOwner", tokenRule, toRule) + if err != nil { + return nil, err + } + return event.NewSubscription(func(quit <-chan struct{}) error { + defer sub.Unsubscribe() + for { + select { + case log := <-logs: + + event := new(CCIPReceiverWithACKTokensWithdrawnByOwner) + if err := _CCIPReceiverWithACK.contract.UnpackLog(event, "TokensWithdrawnByOwner", log); err != nil { + return err + } + event.Raw = log + + select { + case sink <- event: + case err := <-sub.Err(): + return err + case <-quit: + return nil + } + case err := <-sub.Err(): + return err + case <-quit: + return nil + } + } + }), nil +} + +func (_CCIPReceiverWithACK *CCIPReceiverWithACKFilterer) ParseTokensWithdrawnByOwner(log types.Log) (*CCIPReceiverWithACKTokensWithdrawnByOwner, error) { + event := new(CCIPReceiverWithACKTokensWithdrawnByOwner) + if err := _CCIPReceiverWithACK.contract.UnpackLog(event, "TokensWithdrawnByOwner", log); err != nil { + return nil, err + } + event.Raw = log + return event, nil +} + +type SChainConfigs struct { + Recipient []byte + ExtraArgsBytes []byte +} + +func (_CCIPReceiverWithACK *CCIPReceiverWithACK) ParseLog(log types.Log) (generated.AbigenLog, error) { + switch log.Topics[0] { + case _CCIPReceiverWithACK.abi.Events["ApprovedSenderAdded"].ID: + return _CCIPReceiverWithACK.ParseApprovedSenderAdded(log) + case _CCIPReceiverWithACK.abi.Events["ApprovedSenderRemoved"].ID: + return _CCIPReceiverWithACK.ParseApprovedSenderRemoved(log) + case _CCIPReceiverWithACK.abi.Events["CCIPRouterModified"].ID: + return _CCIPReceiverWithACK.ParseCCIPRouterModified(log) + case _CCIPReceiverWithACK.abi.Events["ChainAdded"].ID: + return _CCIPReceiverWithACK.ParseChainAdded(log) + case _CCIPReceiverWithACK.abi.Events["ChainRemoved"].ID: + return _CCIPReceiverWithACK.ParseChainRemoved(log) + case _CCIPReceiverWithACK.abi.Events["FeeTokenUpdated"].ID: + return _CCIPReceiverWithACK.ParseFeeTokenUpdated(log) + case _CCIPReceiverWithACK.abi.Events["MessageAbandoned"].ID: + return _CCIPReceiverWithACK.ParseMessageAbandoned(log) + case _CCIPReceiverWithACK.abi.Events["MessageAckReceived"].ID: + return _CCIPReceiverWithACK.ParseMessageAckReceived(log) + case _CCIPReceiverWithACK.abi.Events["MessageAckSent"].ID: + return _CCIPReceiverWithACK.ParseMessageAckSent(log) + case _CCIPReceiverWithACK.abi.Events["MessageFailed"].ID: + return _CCIPReceiverWithACK.ParseMessageFailed(log) + case _CCIPReceiverWithACK.abi.Events["MessageRecovered"].ID: + return _CCIPReceiverWithACK.ParseMessageRecovered(log) + case _CCIPReceiverWithACK.abi.Events["MessageSent"].ID: + return _CCIPReceiverWithACK.ParseMessageSent(log) + case _CCIPReceiverWithACK.abi.Events["MessageSucceeded"].ID: + return _CCIPReceiverWithACK.ParseMessageSucceeded(log) + case _CCIPReceiverWithACK.abi.Events["OwnershipTransferRequested"].ID: + return _CCIPReceiverWithACK.ParseOwnershipTransferRequested(log) + case _CCIPReceiverWithACK.abi.Events["OwnershipTransferred"].ID: + return _CCIPReceiverWithACK.ParseOwnershipTransferred(log) + case _CCIPReceiverWithACK.abi.Events["TokensWithdrawnByOwner"].ID: + return _CCIPReceiverWithACK.ParseTokensWithdrawnByOwner(log) + + default: + return nil, fmt.Errorf("abigen wrapper received unknown log topic: %v", log.Topics[0]) + } +} + +func (CCIPReceiverWithACKApprovedSenderAdded) Topic() common.Hash { + return common.HexToHash("0x72d9f73bb7cb11065e15df29d61e803a0eba356d509a7025a6f51ebdea07f9e7") +} + +func (CCIPReceiverWithACKApprovedSenderRemoved) Topic() common.Hash { + return common.HexToHash("0x021290bab0d93f4d9a243bd430e45dd4bc8238451e9abbba6fab4463677dfce9") +} + +func (CCIPReceiverWithACKCCIPRouterModified) Topic() common.Hash { + return common.HexToHash("0x3672b589036f39ac008505b790fcb05d484d70b65680ec64c089a3c173fdc4c8") +} + +func (CCIPReceiverWithACKChainAdded) Topic() common.Hash { + return common.HexToHash("0x1ced5bcae649ed29cebfa0010298ad6794bf3822e8cb754a6eee5353a9a87212") +} + +func (CCIPReceiverWithACKChainRemoved) Topic() common.Hash { + return common.HexToHash("0x5204aec90a3c794d8e90fded8b46ae9c7c552803e7e832e0c1d358396d859916") +} + +func (CCIPReceiverWithACKFeeTokenUpdated) Topic() common.Hash { + return common.HexToHash("0x91a03e1d689caf891fe531c01e290f7b718f9c6a3af6726d6d837d2b7bd82e67") +} + +func (CCIPReceiverWithACKMessageAbandoned) Topic() common.Hash { + return common.HexToHash("0xd5038100bd3dc9631d3c3f4f61a3e53e9d466f40c47af9897292c7b35e32a957") +} + +func (CCIPReceiverWithACKMessageAckReceived) Topic() common.Hash { + return common.HexToHash("0xef0cb160d3dc564cde61ae97d9981f9c4d92ace727a2ec202b18b223ea832a79") +} + +func (CCIPReceiverWithACKMessageAckSent) Topic() common.Hash { + return common.HexToHash("0x75944f95ba0be568cb30faeb0ef135cb73d07006939da29722d670a97f5c5b26") +} + +func (CCIPReceiverWithACKMessageFailed) Topic() common.Hash { + return common.HexToHash("0x55bc02a9ef6f146737edeeb425738006f67f077e7138de3bf84a15bde1a5b56f") +} + +func (CCIPReceiverWithACKMessageRecovered) Topic() common.Hash { + return common.HexToHash("0xef3bf8c64bc480286c4f3503b870ceb23e648d2d902e31fb7bb46680da6de8ad") +} + +func (CCIPReceiverWithACKMessageSent) Topic() common.Hash { + return common.HexToHash("0x9102b9031c3c59d8320bf14d84d7d7a3434366b91032fad1c87579cfc62b2372") +} + +func (CCIPReceiverWithACKMessageSucceeded) Topic() common.Hash { + return common.HexToHash("0xdf6958669026659bac75ba986685e11a7d271284989f565f2802522663e9a70f") +} + +func (CCIPReceiverWithACKOwnershipTransferRequested) Topic() common.Hash { + return common.HexToHash("0xed8889f560326eb138920d842192f0eb3dd22b4f139c87a2c57538e05bae1278") +} + +func (CCIPReceiverWithACKOwnershipTransferred) Topic() common.Hash { + return common.HexToHash("0x8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0") +} + +func (CCIPReceiverWithACKTokensWithdrawnByOwner) Topic() common.Hash { + return common.HexToHash("0x6832d9be2410a86571981e1e60fd4c1f9ea2a1034d6102a2b7d6c5e480adf02e") +} + +func (_CCIPReceiverWithACK *CCIPReceiverWithACK) Address() common.Address { + return _CCIPReceiverWithACK.address +} + +type CCIPReceiverWithACKInterface interface { + ACKMESSAGEHEADER(opts *bind.CallOpts) (string, error) + + GetMessageContents(opts *bind.CallOpts, messageId [32]byte) (ClientAny2EVMMessage, error) + + GetMessageStatus(opts *bind.CallOpts, messageId [32]byte) (*big.Int, error) + + GetRouter(opts *bind.CallOpts) (common.Address, error) + + IsApprovedSender(opts *bind.CallOpts, sourceChainSelector uint64, senderAddr []byte) (bool, error) Owner(opts *bind.CallOpts) (common.Address, error) - SChains(opts *bind.CallOpts, arg0 uint64) (SChains, + SChainConfigs(opts *bind.CallOpts, destChainSelector uint64) (SChainConfigs, error) @@ -1837,89 +2789,127 @@ type CCIPReceiverWithAckInterface interface { SMessageStatus(opts *bind.CallOpts, messageId [32]byte) (uint8, error) - TypeAndVersion(opts *bind.CallOpts) (string, error) + AbandonFailedMessage(opts *bind.TransactOpts, messageId [32]byte, receiver common.Address) (*types.Transaction, error) AcceptOwnership(opts *bind.TransactOpts) (*types.Transaction, error) - CcipReceive(opts *bind.TransactOpts, message ClientAny2EVMMessage) (*types.Transaction, error) - - DisableChain(opts *bind.TransactOpts, chainSelector uint64) (*types.Transaction, error) - - EnableChain(opts *bind.TransactOpts, chainSelector uint64, recipient []byte, _extraArgsBytes []byte) (*types.Transaction, error) + ApplyChainUpdates(opts *bind.TransactOpts, chains []CCIPBaseChainUpdate) (*types.Transaction, error) - ModifyFeeToken(opts *bind.TransactOpts, token common.Address) (*types.Transaction, error) + CcipReceive(opts *bind.TransactOpts, message ClientAny2EVMMessage) (*types.Transaction, error) ProcessMessage(opts *bind.TransactOpts, message ClientAny2EVMMessage) (*types.Transaction, error) RetryFailedMessage(opts *bind.TransactOpts, messageId [32]byte) (*types.Transaction, error) - SetSimRevert(opts *bind.TransactOpts, simRevert bool) (*types.Transaction, error) - TransferOwnership(opts *bind.TransactOpts, to common.Address) (*types.Transaction, error) - UpdateApprovedSenders(opts *bind.TransactOpts, adds []ICCIPClientBaseapprovedSenderUpdate, removes []ICCIPClientBaseapprovedSenderUpdate) (*types.Transaction, error) + UpdateApprovedSenders(opts *bind.TransactOpts, adds []CCIPBaseApprovedSenderUpdate, removes []CCIPBaseApprovedSenderUpdate) (*types.Transaction, error) + + UpdateFeeToken(opts *bind.TransactOpts, token common.Address) (*types.Transaction, error) + + UpdateRouter(opts *bind.TransactOpts, newRouter common.Address) (*types.Transaction, error) WithdrawNativeToken(opts *bind.TransactOpts, to common.Address, amount *big.Int) (*types.Transaction, error) WithdrawTokens(opts *bind.TransactOpts, token common.Address, to common.Address, amount *big.Int) (*types.Transaction, error) - Fallback(opts *bind.TransactOpts, calldata []byte) (*types.Transaction, error) - Receive(opts *bind.TransactOpts) (*types.Transaction, error) - FilterFeeTokenModified(opts *bind.FilterOpts, oldToken []common.Address, newToken []common.Address) (*CCIPReceiverWithAckFeeTokenModifiedIterator, error) + FilterApprovedSenderAdded(opts *bind.FilterOpts, destChainSelector []uint64, recipient [][]byte) (*CCIPReceiverWithACKApprovedSenderAddedIterator, error) + + WatchApprovedSenderAdded(opts *bind.WatchOpts, sink chan<- *CCIPReceiverWithACKApprovedSenderAdded, destChainSelector []uint64, recipient [][]byte) (event.Subscription, error) + + ParseApprovedSenderAdded(log types.Log) (*CCIPReceiverWithACKApprovedSenderAdded, error) + + FilterApprovedSenderRemoved(opts *bind.FilterOpts, destChainSelector []uint64, recipient [][]byte) (*CCIPReceiverWithACKApprovedSenderRemovedIterator, error) + + WatchApprovedSenderRemoved(opts *bind.WatchOpts, sink chan<- *CCIPReceiverWithACKApprovedSenderRemoved, destChainSelector []uint64, recipient [][]byte) (event.Subscription, error) + + ParseApprovedSenderRemoved(log types.Log) (*CCIPReceiverWithACKApprovedSenderRemoved, error) + + FilterCCIPRouterModified(opts *bind.FilterOpts, oldRouter []common.Address, newRouter []common.Address) (*CCIPReceiverWithACKCCIPRouterModifiedIterator, error) + + WatchCCIPRouterModified(opts *bind.WatchOpts, sink chan<- *CCIPReceiverWithACKCCIPRouterModified, oldRouter []common.Address, newRouter []common.Address) (event.Subscription, error) + + ParseCCIPRouterModified(log types.Log) (*CCIPReceiverWithACKCCIPRouterModified, error) + + FilterChainAdded(opts *bind.FilterOpts, remoteChainSelector []uint64, recipient [][]byte) (*CCIPReceiverWithACKChainAddedIterator, error) + + WatchChainAdded(opts *bind.WatchOpts, sink chan<- *CCIPReceiverWithACKChainAdded, remoteChainSelector []uint64, recipient [][]byte) (event.Subscription, error) + + ParseChainAdded(log types.Log) (*CCIPReceiverWithACKChainAdded, error) + + FilterChainRemoved(opts *bind.FilterOpts, removeChainSelector []uint64) (*CCIPReceiverWithACKChainRemovedIterator, error) + + WatchChainRemoved(opts *bind.WatchOpts, sink chan<- *CCIPReceiverWithACKChainRemoved, removeChainSelector []uint64) (event.Subscription, error) + + ParseChainRemoved(log types.Log) (*CCIPReceiverWithACKChainRemoved, error) + + FilterFeeTokenUpdated(opts *bind.FilterOpts, oldToken []common.Address, newToken []common.Address) (*CCIPReceiverWithACKFeeTokenUpdatedIterator, error) + + WatchFeeTokenUpdated(opts *bind.WatchOpts, sink chan<- *CCIPReceiverWithACKFeeTokenUpdated, oldToken []common.Address, newToken []common.Address) (event.Subscription, error) + + ParseFeeTokenUpdated(log types.Log) (*CCIPReceiverWithACKFeeTokenUpdated, error) + + FilterMessageAbandoned(opts *bind.FilterOpts, messageId [][32]byte) (*CCIPReceiverWithACKMessageAbandonedIterator, error) + + WatchMessageAbandoned(opts *bind.WatchOpts, sink chan<- *CCIPReceiverWithACKMessageAbandoned, messageId [][32]byte) (event.Subscription, error) + + ParseMessageAbandoned(log types.Log) (*CCIPReceiverWithACKMessageAbandoned, error) + + FilterMessageAckReceived(opts *bind.FilterOpts) (*CCIPReceiverWithACKMessageAckReceivedIterator, error) - WatchFeeTokenModified(opts *bind.WatchOpts, sink chan<- *CCIPReceiverWithAckFeeTokenModified, oldToken []common.Address, newToken []common.Address) (event.Subscription, error) + WatchMessageAckReceived(opts *bind.WatchOpts, sink chan<- *CCIPReceiverWithACKMessageAckReceived) (event.Subscription, error) - ParseFeeTokenModified(log types.Log) (*CCIPReceiverWithAckFeeTokenModified, error) + ParseMessageAckReceived(log types.Log) (*CCIPReceiverWithACKMessageAckReceived, error) - FilterMessageAckReceived(opts *bind.FilterOpts) (*CCIPReceiverWithAckMessageAckReceivedIterator, error) + FilterMessageAckSent(opts *bind.FilterOpts) (*CCIPReceiverWithACKMessageAckSentIterator, error) - WatchMessageAckReceived(opts *bind.WatchOpts, sink chan<- *CCIPReceiverWithAckMessageAckReceived) (event.Subscription, error) + WatchMessageAckSent(opts *bind.WatchOpts, sink chan<- *CCIPReceiverWithACKMessageAckSent) (event.Subscription, error) - ParseMessageAckReceived(log types.Log) (*CCIPReceiverWithAckMessageAckReceived, error) + ParseMessageAckSent(log types.Log) (*CCIPReceiverWithACKMessageAckSent, error) - FilterMessageAckSent(opts *bind.FilterOpts) (*CCIPReceiverWithAckMessageAckSentIterator, error) + FilterMessageFailed(opts *bind.FilterOpts, messageId [][32]byte) (*CCIPReceiverWithACKMessageFailedIterator, error) - WatchMessageAckSent(opts *bind.WatchOpts, sink chan<- *CCIPReceiverWithAckMessageAckSent) (event.Subscription, error) + WatchMessageFailed(opts *bind.WatchOpts, sink chan<- *CCIPReceiverWithACKMessageFailed, messageId [][32]byte) (event.Subscription, error) - ParseMessageAckSent(log types.Log) (*CCIPReceiverWithAckMessageAckSent, error) + ParseMessageFailed(log types.Log) (*CCIPReceiverWithACKMessageFailed, error) - FilterMessageFailed(opts *bind.FilterOpts, messageId [][32]byte) (*CCIPReceiverWithAckMessageFailedIterator, error) + FilterMessageRecovered(opts *bind.FilterOpts, messageId [][32]byte) (*CCIPReceiverWithACKMessageRecoveredIterator, error) - WatchMessageFailed(opts *bind.WatchOpts, sink chan<- *CCIPReceiverWithAckMessageFailed, messageId [][32]byte) (event.Subscription, error) + WatchMessageRecovered(opts *bind.WatchOpts, sink chan<- *CCIPReceiverWithACKMessageRecovered, messageId [][32]byte) (event.Subscription, error) - ParseMessageFailed(log types.Log) (*CCIPReceiverWithAckMessageFailed, error) + ParseMessageRecovered(log types.Log) (*CCIPReceiverWithACKMessageRecovered, error) - FilterMessageRecovered(opts *bind.FilterOpts, messageId [][32]byte) (*CCIPReceiverWithAckMessageRecoveredIterator, error) + FilterMessageSent(opts *bind.FilterOpts, incomingMessageId [][32]byte, ACKMessageId [][32]byte) (*CCIPReceiverWithACKMessageSentIterator, error) - WatchMessageRecovered(opts *bind.WatchOpts, sink chan<- *CCIPReceiverWithAckMessageRecovered, messageId [][32]byte) (event.Subscription, error) + WatchMessageSent(opts *bind.WatchOpts, sink chan<- *CCIPReceiverWithACKMessageSent, incomingMessageId [][32]byte, ACKMessageId [][32]byte) (event.Subscription, error) - ParseMessageRecovered(log types.Log) (*CCIPReceiverWithAckMessageRecovered, error) + ParseMessageSent(log types.Log) (*CCIPReceiverWithACKMessageSent, error) - FilterMessageSent(opts *bind.FilterOpts, incomingMessageId [][32]byte, ACKMessageId [][32]byte) (*CCIPReceiverWithAckMessageSentIterator, error) + FilterMessageSucceeded(opts *bind.FilterOpts, messageId [][32]byte) (*CCIPReceiverWithACKMessageSucceededIterator, error) - WatchMessageSent(opts *bind.WatchOpts, sink chan<- *CCIPReceiverWithAckMessageSent, incomingMessageId [][32]byte, ACKMessageId [][32]byte) (event.Subscription, error) + WatchMessageSucceeded(opts *bind.WatchOpts, sink chan<- *CCIPReceiverWithACKMessageSucceeded, messageId [][32]byte) (event.Subscription, error) - ParseMessageSent(log types.Log) (*CCIPReceiverWithAckMessageSent, error) + ParseMessageSucceeded(log types.Log) (*CCIPReceiverWithACKMessageSucceeded, error) - FilterMessageSucceeded(opts *bind.FilterOpts, messageId [][32]byte) (*CCIPReceiverWithAckMessageSucceededIterator, error) + FilterOwnershipTransferRequested(opts *bind.FilterOpts, from []common.Address, to []common.Address) (*CCIPReceiverWithACKOwnershipTransferRequestedIterator, error) - WatchMessageSucceeded(opts *bind.WatchOpts, sink chan<- *CCIPReceiverWithAckMessageSucceeded, messageId [][32]byte) (event.Subscription, error) + WatchOwnershipTransferRequested(opts *bind.WatchOpts, sink chan<- *CCIPReceiverWithACKOwnershipTransferRequested, from []common.Address, to []common.Address) (event.Subscription, error) - ParseMessageSucceeded(log types.Log) (*CCIPReceiverWithAckMessageSucceeded, error) + ParseOwnershipTransferRequested(log types.Log) (*CCIPReceiverWithACKOwnershipTransferRequested, error) - FilterOwnershipTransferRequested(opts *bind.FilterOpts, from []common.Address, to []common.Address) (*CCIPReceiverWithAckOwnershipTransferRequestedIterator, error) + FilterOwnershipTransferred(opts *bind.FilterOpts, from []common.Address, to []common.Address) (*CCIPReceiverWithACKOwnershipTransferredIterator, error) - WatchOwnershipTransferRequested(opts *bind.WatchOpts, sink chan<- *CCIPReceiverWithAckOwnershipTransferRequested, from []common.Address, to []common.Address) (event.Subscription, error) + WatchOwnershipTransferred(opts *bind.WatchOpts, sink chan<- *CCIPReceiverWithACKOwnershipTransferred, from []common.Address, to []common.Address) (event.Subscription, error) - ParseOwnershipTransferRequested(log types.Log) (*CCIPReceiverWithAckOwnershipTransferRequested, error) + ParseOwnershipTransferred(log types.Log) (*CCIPReceiverWithACKOwnershipTransferred, error) - FilterOwnershipTransferred(opts *bind.FilterOpts, from []common.Address, to []common.Address) (*CCIPReceiverWithAckOwnershipTransferredIterator, error) + FilterTokensWithdrawnByOwner(opts *bind.FilterOpts, token []common.Address, to []common.Address) (*CCIPReceiverWithACKTokensWithdrawnByOwnerIterator, error) - WatchOwnershipTransferred(opts *bind.WatchOpts, sink chan<- *CCIPReceiverWithAckOwnershipTransferred, from []common.Address, to []common.Address) (event.Subscription, error) + WatchTokensWithdrawnByOwner(opts *bind.WatchOpts, sink chan<- *CCIPReceiverWithACKTokensWithdrawnByOwner, token []common.Address, to []common.Address) (event.Subscription, error) - ParseOwnershipTransferred(log types.Log) (*CCIPReceiverWithAckOwnershipTransferred, error) + ParseTokensWithdrawnByOwner(log types.Log) (*CCIPReceiverWithACKTokensWithdrawnByOwner, error) ParseLog(log types.Log) (generated.AbigenLog, error) diff --git a/core/gethwrappers/ccip/generation/generated-wrapper-dependency-versions-do-not-edit.txt b/core/gethwrappers/ccip/generation/generated-wrapper-dependency-versions-do-not-edit.txt index 67426196c0..7075e67b65 100644 --- a/core/gethwrappers/ccip/generation/generated-wrapper-dependency-versions-do-not-edit.txt +++ b/core/gethwrappers/ccip/generation/generated-wrapper-dependency-versions-do-not-edit.txt @@ -6,6 +6,7 @@ burn_mint_token_pool: ../../../contracts/solc/v0.8.24/BurnMintTokenPool/BurnMint burn_mint_token_pool_and_proxy: ../../../contracts/solc/v0.8.24/BurnMintTokenPoolAndProxy/BurnMintTokenPoolAndProxy.abi ../../../contracts/solc/v0.8.24/BurnMintTokenPoolAndProxy/BurnMintTokenPoolAndProxy.bin c7efa00d2be62a97a814730c8e13aa70794ebfdd38a9f3b3c11554a5dfd70478 burn_with_from_mint_token_pool: ../../../contracts/solc/v0.8.24/BurnWithFromMintTokenPool/BurnWithFromMintTokenPool.abi ../../../contracts/solc/v0.8.24/BurnWithFromMintTokenPool/BurnWithFromMintTokenPool.bin a0728e186af74968101135a58a483320ced9ab79b22b1b24ac6994254ee79097 ccipClient: ../../../contracts/solc/v0.8.24/CCIPClient/CCIPClient.abi ../../../contracts/solc/v0.8.24/CCIPClient/CCIPClient.bin 3f0dfdc726b764afa0dca19c1974a2d50e785423ff2035023f4ca7cf7933e4a6 +ccipClientWithACK: ../../../contracts/solc/v0.8.24/CCIPClientWithACK/CCIPClientWithACK.abi ../../../contracts/solc/v0.8.24/CCIPClientWithACK/CCIPClientWithACK.bin 446a05c235e14f263764f126ce06602c7035aab4bb984b204d40c89646cd7b09 ccipReceiver: ../../../contracts/solc/v0.8.24/CCIPReceiver/CCIPReceiver.abi ../../../contracts/solc/v0.8.24/CCIPReceiver/CCIPReceiver.bin 0d7d496ff6aaf37fcf8db25c708b6977c841650027a2028c864f7a0e17fa7b08 ccipReceiverWithACK: ../../../contracts/solc/v0.8.24/CCIPReceiverWithACK/CCIPReceiverWithACK.abi ../../../contracts/solc/v0.8.24/CCIPReceiverWithACK/CCIPReceiverWithACK.bin e6bfb15f1f320cceb76435f49b43c90bfcfc69b4561c811c4b938a6356a23566 ccipSender: ../../../contracts/solc/v0.8.24/CCIPSender/CCIPSender.abi ../../../contracts/solc/v0.8.24/CCIPSender/CCIPSender.bin e142b529faf36c9dbc55be72947493f235e1d6ac2d76658a2273ac8e53ac4f5e diff --git a/core/gethwrappers/ccip/go_generate.go b/core/gethwrappers/ccip/go_generate.go index 0bfd29b168..24d69dfecc 100644 --- a/core/gethwrappers/ccip/go_generate.go +++ b/core/gethwrappers/ccip/go_generate.go @@ -42,6 +42,7 @@ package ccip // Audited Reference Contracts //go:generate go run ../generation/generate/wrap.go ../../../contracts/solc/v0.8.24/CCIPReceiver/CCIPReceiver.abi ../../../contracts/solc/v0.8.24/CCIPReceiver/CCIPReceiver.bin CCIPReceiver ccipReceiver //go:generate go run ../generation/generate/wrap.go ../../../contracts/solc/v0.8.24/CCIPClient/CCIPClient.abi ../../../contracts/solc/v0.8.24/CCIPClient/CCIPClient.bin CCIPClient ccipClient +//go:generate go run ../generation/generate/wrap.go ../../../contracts/solc/v0.8.24/CCIPClientWithACK/CCIPClientWithACK.abi ../../../contracts/solc/v0.8.24/CCIPClientWithACK/CCIPClientWithACK.bin CCIPClientWithACK ccipClientWithACK //go:generate go run ../generation/generate/wrap.go ../../../contracts/solc/v0.8.24/CCIPSender/CCIPSender.abi ../../../contracts/solc/v0.8.24/CCIPSender/CCIPSender.bin CCIPSender ccipSender //go:generate go run ../generation/generate/wrap.go ../../../contracts/solc/v0.8.24/CCIPReceiverWithACK/CCIPReceiverWithACK.abi ../../../contracts/solc/v0.8.24/CCIPReceiverWithACK/CCIPReceiverWithACK.bin CCIPReceiverWithACK ccipReceiverWithACK