/* Autogenerated file. Do not edit manually. */ /* tslint:disable */ /* eslint-disable */ import { Signer, utils, Contract, ContractFactory, Overrides } from "ethers"; import { Provider, TransactionRequest } from "@ethersproject/providers"; import type { MessageReceiver, MessageReceiverInterface, } from "../MessageReceiver"; const _abi = [ { inputs: [], stateMutability: "nonpayable", type: "constructor", }, { anonymous: false, inputs: [ { indexed: false, internalType: "address", name: "executor", type: "address", }, ], name: "ExecutorUpdated", type: "event", }, { anonymous: false, inputs: [ { indexed: false, internalType: "uint8", name: "version", type: "uint8", }, ], name: "Initialized", type: "event", }, { anonymous: false, inputs: [ { indexed: false, internalType: "address", name: "messageBus", type: "address", }, ], name: "MessageBusUpdated", type: "event", }, { anonymous: false, inputs: [ { indexed: false, internalType: "address", name: "sender", type: "address", }, { indexed: false, internalType: "uint64", name: "srcChainId", type: "uint64", }, { indexed: false, internalType: "bytes", name: "message", type: "bytes", }, { indexed: false, internalType: "address", name: "executor", type: "address", }, ], name: "MessageExecuted", type: "event", }, { anonymous: false, inputs: [ { indexed: false, internalType: "address", name: "sender", type: "address", }, { indexed: false, internalType: "uint64", name: "srcChainId", type: "uint64", }, { indexed: false, internalType: "bytes", name: "message", type: "bytes", }, { indexed: false, internalType: "address", name: "executor", type: "address", }, { indexed: false, internalType: "bytes", name: "error", type: "bytes", }, ], name: "MessageFailed", type: "event", }, { anonymous: false, inputs: [ { indexed: false, internalType: "address", name: "sender", type: "address", }, { indexed: false, internalType: "contract IERC20Upgradeable", name: "token", type: "address", }, { indexed: false, internalType: "uint256", name: "amount", type: "uint256", }, { indexed: false, internalType: "uint64", name: "srcChainId", type: "uint64", }, { indexed: false, internalType: "bytes", name: "message", type: "bytes", }, { indexed: false, internalType: "address", name: "executor", type: "address", }, ], name: "MessageWithTransferExecuted", type: "event", }, { anonymous: false, inputs: [ { indexed: false, internalType: "address", name: "sender", type: "address", }, { indexed: false, internalType: "contract IERC20Upgradeable", name: "token", type: "address", }, { indexed: false, internalType: "uint256", name: "amount", type: "uint256", }, { indexed: false, internalType: "uint64", name: "srcChainId", type: "uint64", }, { indexed: false, internalType: "bytes", name: "message", type: "bytes", }, { indexed: false, internalType: "address", name: "executor", type: "address", }, { indexed: false, internalType: "bytes", name: "error", type: "bytes", }, ], name: "MessageWithTransferFailed", type: "event", }, { anonymous: false, inputs: [ { indexed: false, internalType: "address", name: "_sender", type: "address", }, { indexed: false, internalType: "address", name: "_token", type: "address", }, { indexed: false, internalType: "uint256", name: "_amount", type: "uint256", }, { indexed: false, internalType: "uint64", name: "_srcChainId", type: "uint64", }, { indexed: false, internalType: "bytes", name: "_message", type: "bytes", }, { indexed: false, internalType: "address", name: "executor", type: "address", }, ], name: "MessageWithTransferFallback", type: "event", }, { anonymous: false, inputs: [ { indexed: false, internalType: "address", name: "to", type: "address", }, { indexed: false, internalType: "uint256", name: "value", type: "uint256", }, ], name: "NativeWithdrawal", type: "event", }, { anonymous: false, inputs: [ { indexed: true, internalType: "address", name: "previousOwner", type: "address", }, { indexed: true, internalType: "address", name: "newOwner", type: "address", }, ], name: "OwnershipTransferred", type: "event", }, { anonymous: false, inputs: [ { indexed: false, internalType: "contract IRouter", name: "router", type: "address", }, ], name: "RouterUpdated", type: "event", }, { anonymous: false, inputs: [ { indexed: false, internalType: "contract IERC20Upgradeable", name: "token", type: "address", }, { indexed: false, internalType: "address", name: "to", type: "address", }, { indexed: false, internalType: "uint256", name: "value", type: "uint256", }, ], name: "Withdrawal", type: "event", }, { inputs: [ { internalType: "address", name: "sender", type: "address", }, { internalType: "uint64", name: "srcChainId", type: "uint64", }, { internalType: "bytes", name: "message", type: "bytes", }, { internalType: "address", name: "_executor", type: "address", }, ], name: "executeMessage", outputs: [ { internalType: "enum MessageReceiver.ExecutionStatus", name: "", type: "uint8", }, ], stateMutability: "payable", type: "function", }, { inputs: [ { internalType: "address", name: "_sender", type: "address", }, { internalType: "address", name: "_token", type: "address", }, { internalType: "uint256", name: "_amount", type: "uint256", }, { internalType: "uint64", name: "_srcChainId", type: "uint64", }, { internalType: "bytes", name: "_message", type: "bytes", }, { internalType: "address", name: "executor", type: "address", }, ], name: "executeMessageWithTransferFallback", outputs: [ { internalType: "enum MessageReceiver.ExecutionStatus", name: "", type: "uint8", }, ], stateMutability: "payable", type: "function", }, { inputs: [], name: "executor", outputs: [ { internalType: "address", name: "", type: "address", }, ], stateMutability: "view", type: "function", }, { inputs: [ { internalType: "address", name: "owner", type: "address", }, { internalType: "address", name: "_messageBus", type: "address", }, { internalType: "address", name: "_executor", type: "address", }, { internalType: "contract IRouter", name: "router", type: "address", }, ], name: "initialize", outputs: [], stateMutability: "nonpayable", type: "function", }, { inputs: [], name: "messageBus", outputs: [ { internalType: "address", name: "", type: "address", }, ], stateMutability: "view", type: "function", }, { inputs: [ { components: [ { internalType: "address", name: "sender", type: "address", }, { internalType: "address", name: "receiver", type: "address", }, { internalType: "uint64", name: "srcChainId", type: "uint64", }, { internalType: "bytes32", name: "srcTxHash", type: "bytes32", }, ], internalType: "struct MsgDataTypes.RouteInfo", name: "route", type: "tuple", }, { internalType: "uint64", name: "dstChainId", type: "uint64", }, { internalType: "bytes", name: "message", type: "bytes", }, ], name: "messageId", outputs: [ { internalType: "bytes32", name: "", type: "bytes32", }, ], stateMutability: "view", type: "function", }, { inputs: [], name: "owner", outputs: [ { internalType: "address", name: "", type: "address", }, ], stateMutability: "view", type: "function", }, { inputs: [ { internalType: "contract IERC20Upgradeable", name: "token", type: "address", }, { internalType: "address", name: "to", type: "address", }, { internalType: "uint256", name: "value", type: "uint256", }, ], name: "ownerWithdrawERC20", outputs: [], stateMutability: "nonpayable", type: "function", }, { inputs: [ { internalType: "address payable", name: "to", type: "address", }, { internalType: "uint256", name: "value", type: "uint256", }, ], name: "ownerWithdrawNative", outputs: [], stateMutability: "nonpayable", type: "function", }, { inputs: [], name: "renounceOwnership", outputs: [], stateMutability: "nonpayable", type: "function", }, { inputs: [], name: "router", outputs: [ { internalType: "contract IRouter", name: "", type: "address", }, ], stateMutability: "view", type: "function", }, { inputs: [ { internalType: "address", name: "_executor", type: "address", }, ], name: "setExecutor", outputs: [], stateMutability: "nonpayable", type: "function", }, { inputs: [ { internalType: "address", name: "messageBus", type: "address", }, ], name: "setMessageBus", outputs: [], stateMutability: "nonpayable", type: "function", }, { inputs: [ { internalType: "address", name: "newOwner", type: "address", }, ], name: "transferOwnership", outputs: [], stateMutability: "nonpayable", type: "function", }, ]; const _bytecode = "0x60806040523480156200001157600080fd5b5060006200002060016200008e565b9050801562000039576000805461ff0019166101001790555b801562000087576000805461ff00191690556040517f7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb3847402498906200007e9060019062000168565b60405180910390a15b50620001cb565b60008054610100900460ff1615620000f7578160ff166001148015620000c75750620000c5306200013b60201b620008611760201c565b155b620000ef5760405162461bcd60e51b8152600401620000e69062000178565b60405180910390fd5b506000919050565b60005460ff808416911610620001215760405162461bcd60e51b8152600401620000e69062000178565b506000805460ff191660ff92909216919091179055600190565b6001600160a01b03163b151590565b600060ff82165b92915050565b62000162816200014a565b82525050565b6020810162000151828462000157565b602080825281016200015181602e81527f496e697469616c697a61626c653a20636f6e747261637420697320616c72656160208201526d191e481a5b9a5d1a585b1a5e995960921b604082015260600190565b61192c80620001db6000396000f3fe6080604052600436106100dd5760003560e01c80639c649fdf1161007f578063c34c08e511610059578063c34c08e514610229578063f2fde38b14610249578063f887ea4014610269578063f8c8765e1461029c57600080fd5b80639c649fdf146101c9578063a1a227fa146101dc578063bb0248aa146101fc57600080fd5b8063699256f4116100bb578063699256f41461014d578063715018a61461016d5780638da5cb5b1461018257806393563a95146101a957600080fd5b80631c3c0ea8146100e2578063547cad12146101045780635ab7afc614610124575b600080fd5b3480156100ee57600080fd5b506101026100fd366004610cc9565b6102bc565b005b34801561011057600080fd5b5061010261011f366004610cc9565b6102fb565b610137610132366004610e0c565b61032e565b6040516101449190610efb565b60405180910390f35b34801561015957600080fd5b50610102610168366004610f09565b6103a9565b34801561017957600080fd5b50610102610457565b34801561018e57600080fd5b506033546001600160a01b03165b6040516101449190610f4f565b3480156101b557600080fd5b506101026101c4366004610f7c565b61048d565b6101376101d7366004610fcc565b6104fe565b3480156101e857600080fd5b5060655461019c906001600160a01b031681565b34801561020857600080fd5b5061021c6102173660046110b8565b6106fe565b604051610144919061112c565b34801561023557600080fd5b5060665461019c906001600160a01b031681565b34801561025557600080fd5b50610102610264366004610cc9565b61076e565b34801561027557600080fd5b5060005461028f906201000090046001600160a01b031681565b604051610144919061116a565b3480156102a857600080fd5b506101026102b7366004611178565b6107c7565b6033546001600160a01b031633146102ef5760405162461bcd60e51b81526004016102e690611205565b60405180910390fd5b6102f881610870565b50565b6033546001600160a01b031633146103255760405162461bcd60e51b81526004016102e690611205565b6102f8816108c6565b6065546000906001600160a01b0316331461035b5760405162461bcd60e51b81526004016102e69061125f565b7fa0b35e480a2add0100f918632470cc8260628f0e8e277690f77da458ff8f4ab7878787878787604051610394969594939291906112e1565b60405180910390a15060019695505050505050565b6033546001600160a01b031633146103d35760405162461bcd60e51b81526004016102e690611205565b6040516000906001600160a01b0384169083156108fc0290849084818181858888f193505050509050806104195760405162461bcd60e51b81526004016102e690611383565b7f2c876ecb97b3c6854f2488d373403f903eacb800e51c159a5c0c7a9c857e4827838360405161044a929190611393565b60405180910390a1505050565b6033546001600160a01b031633146104815760405162461bcd60e51b81526004016102e690611205565b61048b6000610912565b565b6033546001600160a01b031633146104b75760405162461bcd60e51b81526004016102e690611205565b6104cb6001600160a01b0384168383610964565b7f2717ead6b9200dd235aad468c9809ea400fe33ac69b5bfaa6d3e90fc922b639883838360405161044a939291906113ae565b6065546000906001600160a01b0316331461052b5760405162461bcd60e51b81526004016102e69061125f565b6066546001600160a01b038381169116146105585760405162461bcd60e51b81526004016102e690611414565b60008060029054906101000a90046001600160a01b03166001600160a01b031663ed1f63d36040518163ffffffff1660e01b815260040160206040518083038186803b1580156105a757600080fd5b505afa1580156105bb573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906105df919061142f565b604051633133c1a760e11b81529091506001600160a01b03821690636267834e9061060e908790600401611450565b600060405180830381600087803b15801561062857600080fd5b505af1925050508015610639575060015b6106b2573d808015610667576040519150601f19603f3d011682016040523d82523d6000602084013e61066c565b606091505b507f3f88ff8298d6747e2153a95db6eeb21dc4aff796440fbf0cc1fdd9b92fb0932e87878787856040516106a4959493929190611461565b60405180910390a1506106f0565b7f97d12f83b2e53c7bb615e1af268f1d2204437719613f9bb4ed4e34de92fa9e69868686866040516106e794939291906114af565b60405180910390a15b60019150505b949350505050565b6000600161070f6020870187610cc9565b61071f6040880160208901610cc9565b61072f6060890160408a016114f4565b886060013588888860405160200161074e9897969594939291906115b1565b604051602081830303815290604052805190602001209050949350505050565b6033546001600160a01b031633146107985760405162461bcd60e51b81526004016102e690611205565b6001600160a01b0381166107be5760405162461bcd60e51b81526004016102e69061166f565b6102f881610912565b60006107d360016109bf565b905080156107eb576000805461ff0019166101001790555b6107f485610912565b6107fd846108c6565b61080683610870565b61080f82610a4c565b801561085a576000805461ff00191690556040517f7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb38474024989061085190600190611693565b60405180910390a15b5050505050565b6001600160a01b03163b151590565b606680546001600160a01b0319166001600160a01b0383161790556040517fd9436ef9ce00ffeabc5da2489701502d3bd1a5ed7b254a1981fc5ffef9828e11906108bb908390610f4f565b60405180910390a150565b606580546001600160a01b0319166001600160a01b0383169081179091556040517f3f8223bcd8b3b875473e9f9e14e1ad075451a2b5ffd31591655da9a01516bf5e916108bb91610f4f565b603380546001600160a01b038381166001600160a01b0319831681179093556040519116919082907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e090600090a35050565b6109ba8363a9059cbb60e01b84846040516024016109839291906116a1565b60408051601f198184030181529190526020810180516001600160e01b03166001600160e01b031990931692909217909152610a7c565b505050565b60008054610100900460ff1615610a06578160ff1660011480156109e25750303b155b6109fe5760405162461bcd60e51b81526004016102e6906116fa565b506000919050565b60005460ff808416911610610a2d5760405162461bcd60e51b81526004016102e6906116fa565b506000805460ff191660ff92909216919091179055600190565b919050565b600054610100900460ff16610a735760405162461bcd60e51b81526004016102e690611752565b6102f881610b0b565b6000610ad1826040518060400160405280602081526020017f5361666545524332303a206c6f772d6c6576656c2063616c6c206661696c6564815250856001600160a01b0316610b839092919063ffffffff16565b8051909150156109ba5780806020019051810190610aef9190611775565b6109ba5760405162461bcd60e51b81526004016102e6906117dd565b6001600160a01b038116610b315760405162461bcd60e51b81526004016102e690611821565b6000805462010000600160b01b031916620100006001600160a01b038416021790556040517f7aed1d3e8155a07ccf395e44ea3109a0e2d6c9b29bbbe9f142d9790596f4dc80906108bb90839061116a565b6060610b928484600085610b9c565b90505b9392505050565b606082471015610bbe5760405162461bcd60e51b81526004016102e690611874565b6001600160a01b0385163b610be55760405162461bcd60e51b81526004016102e6906118b8565b600080866001600160a01b03168587604051610c0191906118ea565b60006040518083038185875af1925050503d8060008114610c3e576040519150601f19603f3d011682016040523d82523d6000602084013e610c43565b606091505b5091509150610c53828286610c5e565b979650505050505050565b60608315610c6d575081610b95565b825115610c7d5782518084602001fd5b8160405162461bcd60e51b81526004016102e69190611450565b60006001600160a01b0382165b92915050565b610cb381610c97565b81146102f857600080fd5b8035610ca481610caa565b600060208284031215610cde57610cde600080fd5b60006106f68484610cbe565b80610cb3565b8035610ca481610cea565b67ffffffffffffffff8116610cb3565b8035610ca481610cfb565b634e487b7160e01b600052604160045260246000fd5b601f19601f830116810181811067ffffffffffffffff82111715610d5257610d52610d16565b6040525050565b6000610d6460405190565b9050610a478282610d2c565b600067ffffffffffffffff821115610d8a57610d8a610d16565b601f19601f83011660200192915050565b82818337506000910152565b6000610dba610db584610d70565b610d59565b905082815260208101848484011115610dd557610dd5600080fd5b610de0848285610d9b565b509392505050565b600082601f830112610dfc57610dfc600080fd5b81356106f6848260208601610da7565b60008060008060008060c08789031215610e2857610e28600080fd5b6000610e348989610cbe565b9650506020610e4589828a01610cbe565b9550506040610e5689828a01610cf0565b9450506060610e6789828a01610d0b565b935050608087013567ffffffffffffffff811115610e8757610e87600080fd5b610e9389828a01610de8565b92505060a0610ea489828a01610cbe565b9150509295509295509295565b634e487b7160e01b600052602160045260246000fd5b600381106102f8576102f8610eb1565b80610a4781610ec7565b6000610ca482610ed7565b610ef581610ee1565b82525050565b60208101610ca48284610eec565b60008060408385031215610f1f57610f1f600080fd5b6000610f2b8585610cbe565b9250506020610f3c85828601610cf0565b9150509250929050565b610ef581610c97565b60208101610ca48284610f46565b6000610ca482610c97565b610cb381610f5d565b8035610ca481610f68565b600080600060608486031215610f9457610f94600080fd5b6000610fa08686610f71565b9350506020610fb186828701610cbe565b9250506040610fc286828701610cf0565b9150509250925092565b60008060008060808587031215610fe557610fe5600080fd5b6000610ff18787610cbe565b945050602061100287828801610d0b565b935050604085013567ffffffffffffffff81111561102257611022600080fd5b61102e87828801610de8565b925050606061103f87828801610cbe565b91505092959194509250565b60006080828403121561106057611060600080fd5b50919050565b60008083601f84011261107b5761107b600080fd5b50813567ffffffffffffffff81111561109657611096600080fd5b6020830191508360018202830111156110b1576110b1600080fd5b9250929050565b60008060008060c085870312156110d1576110d1600080fd5b60006110dd878761104b565b94505060806110ee87828801610d0b565b93505060a085013567ffffffffffffffff81111561110e5761110e600080fd5b61111a87828801611066565b95989497509550505050565b80610ef5565b60208101610ca48284611126565b60006001600160a01b038216610ca4565b6000610ca48261113a565b6000610ca48261114b565b610ef581611156565b60208101610ca48284611161565b6000806000806080858703121561119157611191600080fd5b600061119d8787610cbe565b94505060206111ae87828801610cbe565b93505060406111bf87828801610cbe565b925050606061103f87828801610f71565b60208082527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572910190815260005b5060200190565b60208082528101610ca4816111d0565b602a81526000602082017f4d65737361676552656365697665723a2063616c6c6572206973206e6f74206d8152696573736167652062757360b01b602082015291505b5060400190565b60208082528101610ca481611215565b67ffffffffffffffff8116610ef5565b60005b8381101561129a578181015183820152602001611282565b838111156112a9576000848401525b50505050565b60006112b9825190565b8084526020840193506112d081856020860161127f565b601f01601f19169290920192915050565b60c081016112ef8289610f46565b6112fc6020830188610f46565b6113096040830187611126565b611316606083018661126f565b818103608083015261132881856112af565b9050610c5360a0830184610f46565b602f81526000602082017f4f776e6572576974686472617761626c653a207769746864726177206e61746981526e1d99481d1bdad95b8819985a5b1959608a1b60208201529150611258565b60208082528101610ca481611337565b604081016113a18285611161565b610b956020830184611126565b606081016113bc8286611161565b6113c96020830185610f46565b6106f66040830184611126565b602181526000602082017f4d65737361676552656365697665723a20696e76616c6964206578656375746f8152603960f91b60208201529150611258565b60208082528101610ca4816113d6565b8051610ca481610f68565b60006020828403121561144457611444600080fd5b60006106f68484611424565b60208082528101610b9581846112af565b60a0810161146f8288610f46565b61147c602083018761126f565b818103604083015261148e81866112af565b905061149d6060830185610f46565b8181036080830152610c5381846112af565b608081016114bd8287610f46565b6114ca602083018661126f565b81810360408301526114dc81856112af565b90506114eb6060830184610f46565b95945050505050565b60006020828403121561150957611509600080fd5b60006106f68484610d0b565b600281106102f8576102f8610eb1565b80610a4781611515565b6000610ca482611525565b6000610ca48260f81b90565b610ef56115528261152f565b61153a565b6000610ca48260601b90565b6000610ca482611557565b610ef561157a82610c97565b611563565b6000610ca48260c01b90565b610ef567ffffffffffffffff821661157f565b60006115ab838584610d9b565b50500190565b60006115bd828b611546565b6001820191506115cd828a61156e565b6014820191506115dd828961156e565b6014820191506115ed828861158b565b6008820191506115fd8287611126565b60208201915061160d828661158b565b60088201915061161e82848661159e565b9a9950505050505050505050565b602681526000602082017f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206181526564647265737360d01b60208201529150611258565b60208082528101610ca48161162c565b600060ff8216610ca4565b610ef58161167f565b60208101610ca4828461168a565b604081016113a18285610f46565b602e81526000602082017f496e697469616c697a61626c653a20636f6e747261637420697320616c72656181526d191e481a5b9a5d1a585b1a5e995960921b60208201529150611258565b60208082528101610ca4816116af565b602b81526000602082017f496e697469616c697a61626c653a20636f6e7472616374206973206e6f74206981526a6e697469616c697a696e6760a81b60208201529150611258565b60208082528101610ca48161170a565b801515610cb3565b8051610ca481611762565b60006020828403121561178a5761178a600080fd5b60006106f6848461176a565b602a81526000602082017f5361666545524332303a204552433230206f7065726174696f6e20646964206e8152691bdd081cdd58d8d9595960b21b60208201529150611258565b60208082528101610ca481611796565b601b81526000602082017f526f75746572577261707065723a207a65726f20616464726573730000000000815291506111fe565b60208082528101610ca4816117ed565b602681526000602082017f416464726573733a20696e73756666696369656e742062616c616e636520666f8152651c8818d85b1b60d21b60208201529150611258565b60208082528101610ca481611831565b601d81526000602082017f416464726573733a2063616c6c20746f206e6f6e2d636f6e7472616374000000815291506111fe565b60208082528101610ca481611884565b60006118d2825190565b6118e081856020860161127f565b9290920192915050565b6000610b9582846118c856fea26469706673582212207ea531906c6055038eff4aa241e42c6c223170cc8e7d149976acdc663d5d101464736f6c63430008090033"; export class MessageReceiver__factory extends ContractFactory { constructor( ...args: [signer: Signer] | ConstructorParameters ) { if (args.length === 1) { super(_abi, _bytecode, args[0]); } else { super(...args); } } deploy( overrides?: Overrides & { from?: string | Promise } ): Promise { return super.deploy(overrides || {}) as Promise; } getDeployTransaction( overrides?: Overrides & { from?: string | Promise } ): TransactionRequest { return super.getDeployTransaction(overrides || {}); } attach(address: string): MessageReceiver { return super.attach(address) as MessageReceiver; } connect(signer: Signer): MessageReceiver__factory { return super.connect(signer) as MessageReceiver__factory; } static readonly bytecode = _bytecode; static readonly abi = _abi; static createInterface(): MessageReceiverInterface { return new utils.Interface(_abi) as MessageReceiverInterface; } static connect( address: string, signerOrProvider: Signer | Provider ): MessageReceiver { return new Contract(address, _abi, signerOrProvider) as MessageReceiver; } }