diff --git a/pkg/contracts/prototypes/zevm/gatewayzevm.sol/gatewayzevm.go b/pkg/contracts/prototypes/zevm/gatewayzevm.sol/gatewayzevm.go index 94955f86..9b9c795c 100644 --- a/pkg/contracts/prototypes/zevm/gatewayzevm.sol/gatewayzevm.go +++ b/pkg/contracts/prototypes/zevm/gatewayzevm.sol/gatewayzevm.go @@ -45,8 +45,8 @@ type ZContext struct { // GatewayZEVMMetaData contains all meta data concerning the GatewayZEVM contract. var GatewayZEVMMetaData = &bind.MetaData{ - ABI: "[{\"inputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"constructor\"},{\"inputs\":[],\"name\":\"CallerIsNotFungibleModule\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"FailedZetaSent\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"GasFeeTransferFailed\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"InsufficientZRC20Amount\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"InvalidTarget\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"WithdrawalFailed\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"ZRC20BurnFailed\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"ZRC20TransferFailed\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"ZeroAddress\",\"type\":\"error\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"address\",\"name\":\"previousAdmin\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"address\",\"name\":\"newAdmin\",\"type\":\"address\"}],\"name\":\"AdminChanged\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"beacon\",\"type\":\"address\"}],\"name\":\"BeaconUpgraded\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"sender\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"bytes\",\"name\":\"receiver\",\"type\":\"bytes\"},{\"indexed\":false,\"internalType\":\"bytes\",\"name\":\"message\",\"type\":\"bytes\"}],\"name\":\"Call\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"uint8\",\"name\":\"version\",\"type\":\"uint8\"}],\"name\":\"Initialized\",\"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\":true,\"internalType\":\"address\",\"name\":\"implementation\",\"type\":\"address\"}],\"name\":\"Upgraded\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"from\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"address\",\"name\":\"zrc20\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"bytes\",\"name\":\"to\",\"type\":\"bytes\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"value\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"gasfee\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"protocolFlatFee\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"bytes\",\"name\":\"message\",\"type\":\"bytes\"}],\"name\":\"Withdrawal\",\"type\":\"event\"},{\"inputs\":[],\"name\":\"FUNGIBLE_MODULE_ADDRESS\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes\",\"name\":\"receiver\",\"type\":\"bytes\"},{\"internalType\":\"bytes\",\"name\":\"message\",\"type\":\"bytes\"}],\"name\":\"call\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"zrc20\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"},{\"internalType\":\"address\",\"name\":\"target\",\"type\":\"address\"}],\"name\":\"deposit\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"components\":[{\"internalType\":\"bytes\",\"name\":\"origin\",\"type\":\"bytes\"},{\"internalType\":\"address\",\"name\":\"sender\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"chainID\",\"type\":\"uint256\"}],\"internalType\":\"structzContext\",\"name\":\"context\",\"type\":\"tuple\"},{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"},{\"internalType\":\"address\",\"name\":\"target\",\"type\":\"address\"},{\"internalType\":\"bytes\",\"name\":\"message\",\"type\":\"bytes\"}],\"name\":\"depositAndCall\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"components\":[{\"internalType\":\"bytes\",\"name\":\"origin\",\"type\":\"bytes\"},{\"internalType\":\"address\",\"name\":\"sender\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"chainID\",\"type\":\"uint256\"}],\"internalType\":\"structzContext\",\"name\":\"context\",\"type\":\"tuple\"},{\"internalType\":\"address\",\"name\":\"zrc20\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"},{\"internalType\":\"address\",\"name\":\"target\",\"type\":\"address\"},{\"internalType\":\"bytes\",\"name\":\"message\",\"type\":\"bytes\"}],\"name\":\"depositAndCall\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"components\":[{\"internalType\":\"bytes\",\"name\":\"origin\",\"type\":\"bytes\"},{\"internalType\":\"address\",\"name\":\"sender\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"chainID\",\"type\":\"uint256\"}],\"internalType\":\"structrevertContext\",\"name\":\"context\",\"type\":\"tuple\"},{\"internalType\":\"address\",\"name\":\"zrc20\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"},{\"internalType\":\"address\",\"name\":\"target\",\"type\":\"address\"},{\"internalType\":\"bytes\",\"name\":\"message\",\"type\":\"bytes\"}],\"name\":\"depositAndRevert\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"components\":[{\"internalType\":\"bytes\",\"name\":\"origin\",\"type\":\"bytes\"},{\"internalType\":\"address\",\"name\":\"sender\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"chainID\",\"type\":\"uint256\"}],\"internalType\":\"structzContext\",\"name\":\"context\",\"type\":\"tuple\"},{\"internalType\":\"address\",\"name\":\"zrc20\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"},{\"internalType\":\"address\",\"name\":\"target\",\"type\":\"address\"},{\"internalType\":\"bytes\",\"name\":\"message\",\"type\":\"bytes\"}],\"name\":\"execute\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"components\":[{\"internalType\":\"bytes\",\"name\":\"origin\",\"type\":\"bytes\"},{\"internalType\":\"address\",\"name\":\"sender\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"chainID\",\"type\":\"uint256\"}],\"internalType\":\"structrevertContext\",\"name\":\"context\",\"type\":\"tuple\"},{\"internalType\":\"address\",\"name\":\"zrc20\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"},{\"internalType\":\"address\",\"name\":\"target\",\"type\":\"address\"},{\"internalType\":\"bytes\",\"name\":\"message\",\"type\":\"bytes\"}],\"name\":\"executeRevert\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"_zetaToken\",\"type\":\"address\"}],\"name\":\"initialize\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"owner\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"proxiableUUID\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"renounceOwnership\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"newOwner\",\"type\":\"address\"}],\"name\":\"transferOwnership\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"newImplementation\",\"type\":\"address\"}],\"name\":\"upgradeTo\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"newImplementation\",\"type\":\"address\"},{\"internalType\":\"bytes\",\"name\":\"data\",\"type\":\"bytes\"}],\"name\":\"upgradeToAndCall\",\"outputs\":[],\"stateMutability\":\"payable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes\",\"name\":\"receiver\",\"type\":\"bytes\"},{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"},{\"internalType\":\"address\",\"name\":\"zrc20\",\"type\":\"address\"}],\"name\":\"withdraw\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"}],\"name\":\"withdraw\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"},{\"internalType\":\"bytes\",\"name\":\"message\",\"type\":\"bytes\"}],\"name\":\"withdrawAndCall\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes\",\"name\":\"receiver\",\"type\":\"bytes\"},{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"},{\"internalType\":\"address\",\"name\":\"zrc20\",\"type\":\"address\"},{\"internalType\":\"bytes\",\"name\":\"message\",\"type\":\"bytes\"}],\"name\":\"withdrawAndCall\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"zetaToken\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"}]", - Bin: "0x60a06040523073ffffffffffffffffffffffffffffffffffffffff1660809073ffffffffffffffffffffffffffffffffffffffff1660601b8152503480156200004757600080fd5b50620000586200005e60201b60201c565b62000208565b600060019054906101000a900460ff1615620000b1576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401620000a8906200015c565b60405180910390fd5b60ff801660008054906101000a900460ff1660ff1614620001225760ff6000806101000a81548160ff021916908360ff1602179055507f7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb384740249860ff6040516200011991906200017e565b60405180910390a15b565b6000620001336027836200019b565b91506200014082620001b9565b604082019050919050565b6200015681620001ac565b82525050565b60006020820190508181036000830152620001778162000124565b9050919050565b60006020820190506200019560008301846200014b565b92915050565b600082825260208201905092915050565b600060ff82169050919050565b7f496e697469616c697a61626c653a20636f6e747261637420697320696e69746960008201527f616c697a696e6700000000000000000000000000000000000000000000000000602082015250565b60805160601c613d4b6200024360003960008181610a0801528181610a9701528181610ba901528181610c380152610ce80152613d4b6000f3fe60806040526004361061011f5760003560e01c806352d1902d116100a0578063bcf7f32b11610064578063bcf7f32b14610374578063c39aca371461039d578063c4d66de8146103c6578063f2fde38b146103ef578063f45346dc146104185761011f565b806352d1902d146102b55780635af65967146102e0578063715018a6146103095780637993c1e0146103205780638da5cb5b146103495761011f565b80632e1a7d4d116100e75780632e1a7d4d146101f3578063309f50041461021c5780633659cfe6146102455780633ce4a5bc1461026e5780634f1ef286146102995761011f565b80630ac7c44c14610124578063135390f91461014d57806321501a951461017657806321e093b11461019f578063267e75a0146101ca575b600080fd5b34801561013057600080fd5b5061014b60048036038101906101469190612891565b610441565b005b34801561015957600080fd5b50610174600480360381019061016f919061290d565b6104a8565b005b34801561018257600080fd5b5061019d60048036038101906101989190612b8c565b61059f565b005b3480156101ab57600080fd5b506101b461076e565b6040516101c1919061316c565b60405180910390f35b3480156101d657600080fd5b506101f160048036038101906101ec9190612c8a565b610794565b005b3480156101ff57600080fd5b5061021a60048036038101906102159190612c30565b610856565b005b34801561022857600080fd5b50610243600480360381019061023e9190612a20565b610912565b005b34801561025157600080fd5b5061026c6004803603810190610267919061271b565b610a06565b005b34801561027a57600080fd5b50610283610b8f565b604051610290919061316c565b60405180910390f35b6102b360048036038101906102ae9190612748565b610ba7565b005b3480156102c157600080fd5b506102ca610ce4565b6040516102d791906133a3565b60405180910390f35b3480156102ec57600080fd5b5061030760048036038101906103029190612a20565b610d9d565b005b34801561031557600080fd5b5061031e610fcf565b005b34801561032c57600080fd5b506103476004803603810190610342919061297c565b610fe3565b005b34801561035557600080fd5b5061035e6110e0565b60405161036b919061316c565b60405180910390f35b34801561038057600080fd5b5061039b60048036038101906103969190612ad6565b61110a565b005b3480156103a957600080fd5b506103c460048036038101906103bf9190612ad6565b6111fe565b005b3480156103d257600080fd5b506103ed60048036038101906103e8919061271b565b611430565b005b3480156103fb57600080fd5b506104166004803603810190610411919061271b565b611627565b005b34801561042457600080fd5b5061043f600480360381019061043a91906127e4565b6116ab565b005b610449611867565b3373ffffffffffffffffffffffffffffffffffffffff167f2b5af078ce280d812dc2241658dc5435c93408020e5418eef55a2b536de51c0f848484604051610493939291906133be565b60405180910390a26104a36118b7565b505050565b6104b0611867565b60006104bc83836118c1565b90503373ffffffffffffffffffffffffffffffffffffffff167f2265ce9ec38ea098a1143406678482665a6e1ccd82ab22d37eea3a78abc57716838686858773ffffffffffffffffffffffffffffffffffffffff16634d8943bb6040518163ffffffff1660e01b815260040160206040518083038186803b15801561054057600080fd5b505afa158015610554573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906105789190612c5d565b60405161058995949392919061330d565b60405180910390a25061059a6118b7565b505050565b73735b14bb79463307aacbed86daf3322b1e6226ab73ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614610618576040517f2b2add3d00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b73735b14bb79463307aacbed86daf3322b1e6226ab73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16148061069157503073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16145b156106c8576040517f82d5d76a00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6106d28484611bb1565b8273ffffffffffffffffffffffffffffffffffffffff1663de43156e8660fb60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff168786866040518663ffffffff1660e01b8152600401610735959493929190613609565b600060405180830381600087803b15801561074f57600080fd5b505af1158015610763573d6000803e3d6000fd5b505050505050505050565b60fb60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b61079c611867565b6107ba8373735b14bb79463307aacbed86daf3322b1e6226ab611bb1565b3373ffffffffffffffffffffffffffffffffffffffff167f2265ce9ec38ea098a1143406678482665a6e1ccd82ab22d37eea3a78abc57716600073735b14bb79463307aacbed86daf3322b1e6226ab6040516020016108199190613125565b60405160208183030381529060405286600080888860405161084197969594939291906131be565b60405180910390a26108516118b7565b505050565b61085e611867565b61087c8173735b14bb79463307aacbed86daf3322b1e6226ab611bb1565b3373ffffffffffffffffffffffffffffffffffffffff167f2265ce9ec38ea098a1143406678482665a6e1ccd82ab22d37eea3a78abc57716600073735b14bb79463307aacbed86daf3322b1e6226ab6040516020016108db9190613125565b604051602081830303815290604052846000806040516108ff95949392919061322f565b60405180910390a261090f6118b7565b50565b73735b14bb79463307aacbed86daf3322b1e6226ab73ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff161461098b576040517f2b2add3d00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b8273ffffffffffffffffffffffffffffffffffffffff166369582bee87878786866040518663ffffffff1660e01b81526004016109cc9594939291906135b4565b600060405180830381600087803b1580156109e657600080fd5b505af11580156109fa573d6000803e3d6000fd5b50505050505050505050565b7f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff163073ffffffffffffffffffffffffffffffffffffffff161415610a95576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610a8c90613454565b60405180910390fd5b7f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff16610ad4611dcd565b73ffffffffffffffffffffffffffffffffffffffff1614610b2a576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610b2190613474565b60405180910390fd5b610b3381611e24565b610b8c81600067ffffffffffffffff811115610b5257610b516138ce565b5b6040519080825280601f01601f191660200182016040528015610b845781602001600182028036833780820191505090505b506000611e2f565b50565b73735b14bb79463307aacbed86daf3322b1e6226ab81565b7f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff163073ffffffffffffffffffffffffffffffffffffffff161415610c36576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610c2d90613454565b60405180910390fd5b7f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff16610c75611dcd565b73ffffffffffffffffffffffffffffffffffffffff1614610ccb576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610cc290613474565b60405180910390fd5b610cd482611e24565b610ce082826001611e2f565b5050565b60007f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff163073ffffffffffffffffffffffffffffffffffffffff1614610d74576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610d6b90613494565b60405180910390fd5b7f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc60001b905090565b73735b14bb79463307aacbed86daf3322b1e6226ab73ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614610e16576040517f2b2add3d00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b73735b14bb79463307aacbed86daf3322b1e6226ab73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff161480610e8f57503073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16145b15610ec6576040517f82d5d76a00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b8473ffffffffffffffffffffffffffffffffffffffff166347e7ef2484866040518363ffffffff1660e01b8152600401610f0192919061337a565b602060405180830381600087803b158015610f1b57600080fd5b505af1158015610f2f573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610f539190612837565b508273ffffffffffffffffffffffffffffffffffffffff166369582bee87878786866040518663ffffffff1660e01b8152600401610f959594939291906135b4565b600060405180830381600087803b158015610faf57600080fd5b505af1158015610fc3573d6000803e3d6000fd5b50505050505050505050565b610fd7611fac565b610fe1600061202a565b565b610feb611867565b6000610ff785856118c1565b90503373ffffffffffffffffffffffffffffffffffffffff167f2265ce9ec38ea098a1143406678482665a6e1ccd82ab22d37eea3a78abc57716858888858973ffffffffffffffffffffffffffffffffffffffff16634d8943bb6040518163ffffffff1660e01b815260040160206040518083038186803b15801561107b57600080fd5b505afa15801561108f573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906110b39190612c5d565b89896040516110c8979695949392919061329c565b60405180910390a2506110d96118b7565b5050505050565b6000603360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b73735b14bb79463307aacbed86daf3322b1e6226ab73ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614611183576040517f2b2add3d00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b8273ffffffffffffffffffffffffffffffffffffffff1663de43156e87878786866040518663ffffffff1660e01b81526004016111c4959493929190613609565b600060405180830381600087803b1580156111de57600080fd5b505af11580156111f2573d6000803e3d6000fd5b50505050505050505050565b73735b14bb79463307aacbed86daf3322b1e6226ab73ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614611277576040517f2b2add3d00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b73735b14bb79463307aacbed86daf3322b1e6226ab73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614806112f057503073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16145b15611327576040517f82d5d76a00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b8473ffffffffffffffffffffffffffffffffffffffff166347e7ef2484866040518363ffffffff1660e01b815260040161136292919061337a565b602060405180830381600087803b15801561137c57600080fd5b505af1158015611390573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906113b49190612837565b508273ffffffffffffffffffffffffffffffffffffffff1663de43156e87878786866040518663ffffffff1660e01b81526004016113f6959493929190613609565b600060405180830381600087803b15801561141057600080fd5b505af1158015611424573d6000803e3d6000fd5b50505050505050505050565b60008060019054906101000a900460ff161590508080156114615750600160008054906101000a900460ff1660ff16105b8061148e5750611470306120f0565b15801561148d5750600160008054906101000a900460ff1660ff16145b5b6114cd576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016114c4906134d4565b60405180910390fd5b60016000806101000a81548160ff021916908360ff160217905550801561150a576001600060016101000a81548160ff0219169083151502179055505b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff161415611571576040517fd92e233d00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b611579612113565b61158161216c565b6115896121bd565b8160fb60006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555080156116235760008060016101000a81548160ff0219169083151502179055507f7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb3847402498600160405161161a91906133f7565b60405180910390a15b5050565b61162f611fac565b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff16141561169f576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161169690613434565b60405180910390fd5b6116a88161202a565b50565b73735b14bb79463307aacbed86daf3322b1e6226ab73ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614611724576040517f2b2add3d00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b73735b14bb79463307aacbed86daf3322b1e6226ab73ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff16148061179d57503073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff16145b156117d4576040517f82d5d76a00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b8273ffffffffffffffffffffffffffffffffffffffff166347e7ef2482846040518363ffffffff1660e01b815260040161180f92919061337a565b602060405180830381600087803b15801561182957600080fd5b505af115801561183d573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906118619190612837565b50505050565b600260c95414156118ad576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016118a490613594565b60405180910390fd5b600260c981905550565b600160c981905550565b60008060008373ffffffffffffffffffffffffffffffffffffffff1663d9eeebed6040518163ffffffff1660e01b8152600401604080518083038186803b15801561190b57600080fd5b505afa15801561191f573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061194391906127a4565b915091508173ffffffffffffffffffffffffffffffffffffffff166323b872dd3373735b14bb79463307aacbed86daf3322b1e6226ab846040518463ffffffff1660e01b815260040161199893929190613187565b602060405180830381600087803b1580156119b257600080fd5b505af11580156119c6573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906119ea9190612837565b611a20576040517f0a7cd6d600000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b8373ffffffffffffffffffffffffffffffffffffffff166323b872dd3330886040518463ffffffff1660e01b8152600401611a5d93929190613187565b602060405180830381600087803b158015611a7757600080fd5b505af1158015611a8b573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611aaf9190612837565b611ae5576040517f4dd9ee8d00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b8373ffffffffffffffffffffffffffffffffffffffff166342966c68866040518263ffffffff1660e01b8152600401611b1e919061365e565b602060405180830381600087803b158015611b3857600080fd5b505af1158015611b4c573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611b709190612837565b611ba6576040517f2c77e05c00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b809250505092915050565b60fb60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166323b872dd3330856040518463ffffffff1660e01b8152600401611c1093929190613187565b602060405180830381600087803b158015611c2a57600080fd5b505af1158015611c3e573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611c629190612837565b611c98576040517fc7ffc47b00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b60fb60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16632e1a7d4d836040518263ffffffff1660e01b8152600401611cf3919061365e565b600060405180830381600087803b158015611d0d57600080fd5b505af1158015611d21573d6000803e3d6000fd5b5050505060008173ffffffffffffffffffffffffffffffffffffffff1683604051611d4b90613157565b60006040518083038185875af1925050503d8060008114611d88576040519150601f19603f3d011682016040523d82523d6000602084013e611d8d565b606091505b5050905080611dc8576040517fc7ffc47b00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b505050565b6000611dfb7f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc60001b612216565b60000160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b611e2c611fac565b50565b611e5b7f4910fdfa16fed3260ed0e7147f7cc6da11a60208b5b9406d12a635614ffd914360001b612220565b60000160009054906101000a900460ff1615611e7f57611e7a8361222a565b611fa7565b8273ffffffffffffffffffffffffffffffffffffffff166352d1902d6040518163ffffffff1660e01b815260040160206040518083038186803b158015611ec557600080fd5b505afa925050508015611ef657506040513d601f19601f82011682018060405250810190611ef39190612864565b60015b611f35576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611f2c906134f4565b60405180910390fd5b7f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc60001b8114611f9a576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611f91906134b4565b60405180910390fd5b50611fa68383836122e3565b5b505050565b611fb461230f565b73ffffffffffffffffffffffffffffffffffffffff16611fd26110e0565b73ffffffffffffffffffffffffffffffffffffffff1614612028576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161201f90613534565b60405180910390fd5b565b6000603360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905081603360006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508173ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35050565b6000808273ffffffffffffffffffffffffffffffffffffffff163b119050919050565b600060019054906101000a900460ff16612162576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161215990613574565b60405180910390fd5b61216a612317565b565b600060019054906101000a900460ff166121bb576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016121b290613574565b60405180910390fd5b565b600060019054906101000a900460ff1661220c576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161220390613574565b60405180910390fd5b612214612378565b565b6000819050919050565b6000819050919050565b612233816120f0565b612272576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161226990613514565b60405180910390fd5b8061229f7f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc60001b612216565b60000160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b6122ec836123d1565b6000825111806122f95750805b1561230a576123088383612420565b505b505050565b600033905090565b600060019054906101000a900460ff16612366576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161235d90613574565b60405180910390fd5b61237661237161230f565b61202a565b565b600060019054906101000a900460ff166123c7576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016123be90613574565b60405180910390fd5b600160c981905550565b6123da8161222a565b8073ffffffffffffffffffffffffffffffffffffffff167fbc7cd75a20ee27fd9adebab32041f755214dbc6bffa90cc0225b39da2e5c2d3b60405160405180910390a250565b60606124458383604051806060016040528060278152602001613cef6027913961244d565b905092915050565b60606000808573ffffffffffffffffffffffffffffffffffffffff16856040516124779190613140565b600060405180830381855af49150503d80600081146124b2576040519150601f19603f3d011682016040523d82523d6000602084013e6124b7565b606091505b50915091506124c8868383876124d3565b925050509392505050565b606083156125365760008351141561252e576124ee856120f0565b61252d576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161252490613554565b60405180910390fd5b5b829050612541565b6125408383612549565b5b949350505050565b60008251111561255c5781518083602001fd5b806040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016125909190613412565b60405180910390fd5b60006125ac6125a78461369e565b613679565b9050828152602081018484840111156125c8576125c761391b565b5b6125d3848285613837565b509392505050565b6000813590506125ea81613c92565b92915050565b6000815190506125ff81613c92565b92915050565b60008151905061261481613ca9565b92915050565b60008151905061262981613cc0565b92915050565b60008083601f84011261264557612644613907565b5b8235905067ffffffffffffffff81111561266257612661613902565b5b60208301915083600182028301111561267e5761267d613916565b5b9250929050565b600082601f83011261269a57612699613907565b5b81356126aa848260208601612599565b91505092915050565b6000606082840312156126c9576126c861390c565b5b81905092915050565b6000606082840312156126e8576126e761390c565b5b81905092915050565b60008135905061270081613cd7565b92915050565b60008151905061271581613cd7565b92915050565b6000602082840312156127315761273061392a565b5b600061273f848285016125db565b91505092915050565b6000806040838503121561275f5761275e61392a565b5b600061276d858286016125db565b925050602083013567ffffffffffffffff81111561278e5761278d613920565b5b61279a85828601612685565b9150509250929050565b600080604083850312156127bb576127ba61392a565b5b60006127c9858286016125f0565b92505060206127da85828601612706565b9150509250929050565b6000806000606084860312156127fd576127fc61392a565b5b600061280b868287016125db565b935050602061281c868287016126f1565b925050604061282d868287016125db565b9150509250925092565b60006020828403121561284d5761284c61392a565b5b600061285b84828501612605565b91505092915050565b60006020828403121561287a5761287961392a565b5b60006128888482850161261a565b91505092915050565b6000806000604084860312156128aa576128a961392a565b5b600084013567ffffffffffffffff8111156128c8576128c7613920565b5b6128d486828701612685565b935050602084013567ffffffffffffffff8111156128f5576128f4613920565b5b6129018682870161262f565b92509250509250925092565b6000806000606084860312156129265761292561392a565b5b600084013567ffffffffffffffff81111561294457612943613920565b5b61295086828701612685565b9350506020612961868287016126f1565b9250506040612972868287016125db565b9150509250925092565b6000806000806000608086880312156129985761299761392a565b5b600086013567ffffffffffffffff8111156129b6576129b5613920565b5b6129c288828901612685565b95505060206129d3888289016126f1565b94505060406129e4888289016125db565b935050606086013567ffffffffffffffff811115612a0557612a04613920565b5b612a118882890161262f565b92509250509295509295909350565b60008060008060008060a08789031215612a3d57612a3c61392a565b5b600087013567ffffffffffffffff811115612a5b57612a5a613920565b5b612a6789828a016126b3565b9650506020612a7889828a016125db565b9550506040612a8989828a016126f1565b9450506060612a9a89828a016125db565b935050608087013567ffffffffffffffff811115612abb57612aba613920565b5b612ac789828a0161262f565b92509250509295509295509295565b60008060008060008060a08789031215612af357612af261392a565b5b600087013567ffffffffffffffff811115612b1157612b10613920565b5b612b1d89828a016126d2565b9650506020612b2e89828a016125db565b9550506040612b3f89828a016126f1565b9450506060612b5089828a016125db565b935050608087013567ffffffffffffffff811115612b7157612b70613920565b5b612b7d89828a0161262f565b92509250509295509295509295565b600080600080600060808688031215612ba857612ba761392a565b5b600086013567ffffffffffffffff811115612bc657612bc5613920565b5b612bd2888289016126d2565b9550506020612be3888289016126f1565b9450506040612bf4888289016125db565b935050606086013567ffffffffffffffff811115612c1557612c14613920565b5b612c218882890161262f565b92509250509295509295909350565b600060208284031215612c4657612c4561392a565b5b6000612c54848285016126f1565b91505092915050565b600060208284031215612c7357612c7261392a565b5b6000612c8184828501612706565b91505092915050565b600080600060408486031215612ca357612ca261392a565b5b6000612cb1868287016126f1565b935050602084013567ffffffffffffffff811115612cd257612cd1613920565b5b612cde8682870161262f565b92509250509250925092565b612cf3816137b4565b82525050565b612d02816137b4565b82525050565b612d19612d14826137b4565b6138aa565b82525050565b612d28816137d2565b82525050565b6000612d3a83856136e5565b9350612d47838584613837565b612d508361392f565b840190509392505050565b6000612d6783856136f6565b9350612d74838584613837565b612d7d8361392f565b840190509392505050565b6000612d93826136cf565b612d9d81856136f6565b9350612dad818560208601613846565b612db68161392f565b840191505092915050565b6000612dcc826136cf565b612dd68185613707565b9350612de6818560208601613846565b80840191505092915050565b612dfb81613813565b82525050565b612e0a81613825565b82525050565b6000612e1b826136da565b612e258185613712565b9350612e35818560208601613846565b612e3e8161392f565b840191505092915050565b6000612e56602683613712565b9150612e618261394d565b604082019050919050565b6000612e79602c83613712565b9150612e848261399c565b604082019050919050565b6000612e9c602c83613712565b9150612ea7826139eb565b604082019050919050565b6000612ebf603883613712565b9150612eca82613a3a565b604082019050919050565b6000612ee2602983613712565b9150612eed82613a89565b604082019050919050565b6000612f05602e83613712565b9150612f1082613ad8565b604082019050919050565b6000612f28602e83613712565b9150612f3382613b27565b604082019050919050565b6000612f4b602d83613712565b9150612f5682613b76565b604082019050919050565b6000612f6e602083613712565b9150612f7982613bc5565b602082019050919050565b6000612f916000836136f6565b9150612f9c82613bee565b600082019050919050565b6000612fb4600083613707565b9150612fbf82613bee565b600082019050919050565b6000612fd7601d83613712565b9150612fe282613bf1565b602082019050919050565b6000612ffa602b83613712565b915061300582613c1a565b604082019050919050565b600061301d601f83613712565b915061302882613c69565b602082019050919050565b600060608301613046600084018461373a565b8583036000870152613059838284612d2e565b9250505061306a6020840184613723565b6130776020860182612cea565b50613085604084018461379d565b6130926040860182613107565b508091505092915050565b6000606083016130b0600084018461373a565b85830360008701526130c3838284612d2e565b925050506130d46020840184613723565b6130e16020860182612cea565b506130ef604084018461379d565b6130fc6040860182613107565b508091505092915050565b613110816137fc565b82525050565b61311f816137fc565b82525050565b60006131318284612d08565b60148201915081905092915050565b600061314c8284612dc1565b915081905092915050565b600061316282612fa7565b9150819050919050565b60006020820190506131816000830184612cf9565b92915050565b600060608201905061319c6000830186612cf9565b6131a96020830185612cf9565b6131b66040830184613116565b949350505050565b600060c0820190506131d3600083018a612cf9565b81810360208301526131e58189612d88565b90506131f46040830188613116565b6132016060830187612df2565b61320e6080830186612df2565b81810360a0830152613221818486612d5b565b905098975050505050505050565b600060c0820190506132446000830188612cf9565b81810360208301526132568187612d88565b90506132656040830186613116565b6132726060830185612df2565b61327f6080830184612df2565b81810360a083015261329081612f84565b90509695505050505050565b600060c0820190506132b1600083018a612cf9565b81810360208301526132c38189612d88565b90506132d26040830188613116565b6132df6060830187613116565b6132ec6080830186613116565b81810360a08301526132ff818486612d5b565b905098975050505050505050565b600060c0820190506133226000830188612cf9565b81810360208301526133348187612d88565b90506133436040830186613116565b6133506060830185613116565b61335d6080830184613116565b81810360a083015261336e81612f84565b90509695505050505050565b600060408201905061338f6000830185612cf9565b61339c6020830184613116565b9392505050565b60006020820190506133b86000830184612d1f565b92915050565b600060408201905081810360008301526133d88186612d88565b905081810360208301526133ed818486612d5b565b9050949350505050565b600060208201905061340c6000830184612e01565b92915050565b6000602082019050818103600083015261342c8184612e10565b905092915050565b6000602082019050818103600083015261344d81612e49565b9050919050565b6000602082019050818103600083015261346d81612e6c565b9050919050565b6000602082019050818103600083015261348d81612e8f565b9050919050565b600060208201905081810360008301526134ad81612eb2565b9050919050565b600060208201905081810360008301526134cd81612ed5565b9050919050565b600060208201905081810360008301526134ed81612ef8565b9050919050565b6000602082019050818103600083015261350d81612f1b565b9050919050565b6000602082019050818103600083015261352d81612f3e565b9050919050565b6000602082019050818103600083015261354d81612f61565b9050919050565b6000602082019050818103600083015261356d81612fca565b9050919050565b6000602082019050818103600083015261358d81612fed565b9050919050565b600060208201905081810360008301526135ad81613010565b9050919050565b600060808201905081810360008301526135ce8188613033565b90506135dd6020830187612cf9565b6135ea6040830186613116565b81810360608301526135fd818486612d5b565b90509695505050505050565b60006080820190508181036000830152613623818861309d565b90506136326020830187612cf9565b61363f6040830186613116565b8181036060830152613652818486612d5b565b90509695505050505050565b60006020820190506136736000830184613116565b92915050565b6000613683613694565b905061368f8282613879565b919050565b6000604051905090565b600067ffffffffffffffff8211156136b9576136b86138ce565b5b6136c28261392f565b9050602081019050919050565b600081519050919050565b600081519050919050565b600082825260208201905092915050565b600082825260208201905092915050565b600081905092915050565b600082825260208201905092915050565b600061373260208401846125db565b905092915050565b6000808335600160200384360303811261375757613756613925565b5b83810192508235915060208301925067ffffffffffffffff82111561377f5761377e6138fd565b5b60018202360384131561379557613794613911565b5b509250929050565b60006137ac60208401846126f1565b905092915050565b60006137bf826137dc565b9050919050565b60008115159050919050565b6000819050919050565b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000819050919050565b600060ff82169050919050565b600061381e826137fc565b9050919050565b600061383082613806565b9050919050565b82818337600083830152505050565b60005b83811015613864578082015181840152602081019050613849565b83811115613873576000848401525b50505050565b6138828261392f565b810181811067ffffffffffffffff821117156138a1576138a06138ce565b5b80604052505050565b60006138b5826138bc565b9050919050565b60006138c782613940565b9050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b600080fd5b600080fd5b600080fd5b600080fd5b600080fd5b600080fd5b600080fd5b600080fd5b600080fd5b600080fd5b6000601f19601f8301169050919050565b60008160601b9050919050565b7f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160008201527f6464726573730000000000000000000000000000000000000000000000000000602082015250565b7f46756e6374696f6e206d7573742062652063616c6c6564207468726f7567682060008201527f64656c656761746563616c6c0000000000000000000000000000000000000000602082015250565b7f46756e6374696f6e206d7573742062652063616c6c6564207468726f7567682060008201527f6163746976652070726f78790000000000000000000000000000000000000000602082015250565b7f555550535570677261646561626c653a206d757374206e6f742062652063616c60008201527f6c6564207468726f7567682064656c656761746563616c6c0000000000000000602082015250565b7f45524331393637557067726164653a20756e737570706f727465642070726f7860008201527f6961626c65555549440000000000000000000000000000000000000000000000602082015250565b7f496e697469616c697a61626c653a20636f6e747261637420697320616c72656160008201527f647920696e697469616c697a6564000000000000000000000000000000000000602082015250565b7f45524331393637557067726164653a206e657720696d706c656d656e7461746960008201527f6f6e206973206e6f742055555053000000000000000000000000000000000000602082015250565b7f455243313936373a206e657720696d706c656d656e746174696f6e206973206e60008201527f6f74206120636f6e747261637400000000000000000000000000000000000000602082015250565b7f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572600082015250565b50565b7f416464726573733a2063616c6c20746f206e6f6e2d636f6e7472616374000000600082015250565b7f496e697469616c697a61626c653a20636f6e7472616374206973206e6f74206960008201527f6e697469616c697a696e67000000000000000000000000000000000000000000602082015250565b7f5265656e7472616e637947756172643a207265656e7472616e742063616c6c00600082015250565b613c9b816137b4565b8114613ca657600080fd5b50565b613cb2816137c6565b8114613cbd57600080fd5b50565b613cc9816137d2565b8114613cd457600080fd5b50565b613ce0816137fc565b8114613ceb57600080fd5b5056fe416464726573733a206c6f772d6c6576656c2064656c65676174652063616c6c206661696c6564a2646970667358221220f66452d96b0f29cb642f932d3b97697f48dd681a5f7d2af932bf5658decdb88364736f6c63430008070033", + ABI: "[{\"inputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"constructor\"},{\"inputs\":[],\"name\":\"CallerIsNotFungibleModule\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"FailedZetaSent\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"GasFeeTransferFailed\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"InsufficientZRC20Amount\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"InvalidTarget\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"OnlyWZETAOrFungible\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"WithdrawalFailed\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"ZRC20BurnFailed\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"ZRC20TransferFailed\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"ZeroAddress\",\"type\":\"error\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"address\",\"name\":\"previousAdmin\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"address\",\"name\":\"newAdmin\",\"type\":\"address\"}],\"name\":\"AdminChanged\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"beacon\",\"type\":\"address\"}],\"name\":\"BeaconUpgraded\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"sender\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"bytes\",\"name\":\"receiver\",\"type\":\"bytes\"},{\"indexed\":false,\"internalType\":\"bytes\",\"name\":\"message\",\"type\":\"bytes\"}],\"name\":\"Call\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"uint8\",\"name\":\"version\",\"type\":\"uint8\"}],\"name\":\"Initialized\",\"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\":true,\"internalType\":\"address\",\"name\":\"implementation\",\"type\":\"address\"}],\"name\":\"Upgraded\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"from\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"address\",\"name\":\"zrc20\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"bytes\",\"name\":\"to\",\"type\":\"bytes\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"value\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"gasfee\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"protocolFlatFee\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"bytes\",\"name\":\"message\",\"type\":\"bytes\"}],\"name\":\"Withdrawal\",\"type\":\"event\"},{\"inputs\":[],\"name\":\"FUNGIBLE_MODULE_ADDRESS\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes\",\"name\":\"receiver\",\"type\":\"bytes\"},{\"internalType\":\"bytes\",\"name\":\"message\",\"type\":\"bytes\"}],\"name\":\"call\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"zrc20\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"},{\"internalType\":\"address\",\"name\":\"target\",\"type\":\"address\"}],\"name\":\"deposit\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"components\":[{\"internalType\":\"bytes\",\"name\":\"origin\",\"type\":\"bytes\"},{\"internalType\":\"address\",\"name\":\"sender\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"chainID\",\"type\":\"uint256\"}],\"internalType\":\"structzContext\",\"name\":\"context\",\"type\":\"tuple\"},{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"},{\"internalType\":\"address\",\"name\":\"target\",\"type\":\"address\"},{\"internalType\":\"bytes\",\"name\":\"message\",\"type\":\"bytes\"}],\"name\":\"depositAndCall\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"components\":[{\"internalType\":\"bytes\",\"name\":\"origin\",\"type\":\"bytes\"},{\"internalType\":\"address\",\"name\":\"sender\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"chainID\",\"type\":\"uint256\"}],\"internalType\":\"structzContext\",\"name\":\"context\",\"type\":\"tuple\"},{\"internalType\":\"address\",\"name\":\"zrc20\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"},{\"internalType\":\"address\",\"name\":\"target\",\"type\":\"address\"},{\"internalType\":\"bytes\",\"name\":\"message\",\"type\":\"bytes\"}],\"name\":\"depositAndCall\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"components\":[{\"internalType\":\"bytes\",\"name\":\"origin\",\"type\":\"bytes\"},{\"internalType\":\"address\",\"name\":\"sender\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"chainID\",\"type\":\"uint256\"}],\"internalType\":\"structrevertContext\",\"name\":\"context\",\"type\":\"tuple\"},{\"internalType\":\"address\",\"name\":\"zrc20\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"},{\"internalType\":\"address\",\"name\":\"target\",\"type\":\"address\"},{\"internalType\":\"bytes\",\"name\":\"message\",\"type\":\"bytes\"}],\"name\":\"depositAndRevert\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"components\":[{\"internalType\":\"bytes\",\"name\":\"origin\",\"type\":\"bytes\"},{\"internalType\":\"address\",\"name\":\"sender\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"chainID\",\"type\":\"uint256\"}],\"internalType\":\"structzContext\",\"name\":\"context\",\"type\":\"tuple\"},{\"internalType\":\"address\",\"name\":\"zrc20\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"},{\"internalType\":\"address\",\"name\":\"target\",\"type\":\"address\"},{\"internalType\":\"bytes\",\"name\":\"message\",\"type\":\"bytes\"}],\"name\":\"execute\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"components\":[{\"internalType\":\"bytes\",\"name\":\"origin\",\"type\":\"bytes\"},{\"internalType\":\"address\",\"name\":\"sender\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"chainID\",\"type\":\"uint256\"}],\"internalType\":\"structrevertContext\",\"name\":\"context\",\"type\":\"tuple\"},{\"internalType\":\"address\",\"name\":\"zrc20\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"},{\"internalType\":\"address\",\"name\":\"target\",\"type\":\"address\"},{\"internalType\":\"bytes\",\"name\":\"message\",\"type\":\"bytes\"}],\"name\":\"executeRevert\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"_zetaToken\",\"type\":\"address\"}],\"name\":\"initialize\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"owner\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"proxiableUUID\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"renounceOwnership\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"newOwner\",\"type\":\"address\"}],\"name\":\"transferOwnership\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"newImplementation\",\"type\":\"address\"}],\"name\":\"upgradeTo\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"newImplementation\",\"type\":\"address\"},{\"internalType\":\"bytes\",\"name\":\"data\",\"type\":\"bytes\"}],\"name\":\"upgradeToAndCall\",\"outputs\":[],\"stateMutability\":\"payable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes\",\"name\":\"receiver\",\"type\":\"bytes\"},{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"},{\"internalType\":\"address\",\"name\":\"zrc20\",\"type\":\"address\"}],\"name\":\"withdraw\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"}],\"name\":\"withdraw\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"},{\"internalType\":\"bytes\",\"name\":\"message\",\"type\":\"bytes\"}],\"name\":\"withdrawAndCall\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes\",\"name\":\"receiver\",\"type\":\"bytes\"},{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"},{\"internalType\":\"address\",\"name\":\"zrc20\",\"type\":\"address\"},{\"internalType\":\"bytes\",\"name\":\"message\",\"type\":\"bytes\"}],\"name\":\"withdrawAndCall\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"zetaToken\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"stateMutability\":\"payable\",\"type\":\"receive\"}]", + Bin: "0x60a06040523073ffffffffffffffffffffffffffffffffffffffff1660809073ffffffffffffffffffffffffffffffffffffffff1660601b8152503480156200004757600080fd5b50620000586200005e60201b60201c565b62000208565b600060019054906101000a900460ff1615620000b1576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401620000a8906200015c565b60405180910390fd5b60ff801660008054906101000a900460ff1660ff1614620001225760ff6000806101000a81548160ff021916908360ff1602179055507f7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb384740249860ff6040516200011991906200017e565b60405180910390a15b565b6000620001336027836200019b565b91506200014082620001b9565b604082019050919050565b6200015681620001ac565b82525050565b60006020820190508181036000830152620001778162000124565b9050919050565b60006020820190506200019560008301846200014b565b92915050565b600082825260208201905092915050565b600060ff82169050919050565b7f496e697469616c697a61626c653a20636f6e747261637420697320696e69746960008201527f616c697a696e6700000000000000000000000000000000000000000000000000602082015250565b60805160601c613e6d6200024360003960008181610b2a01528181610bb901528181610ccb01528181610d5a0152610e0a0152613e6d6000f3fe6080604052600436106101235760003560e01c806352d1902d116100a0578063bcf7f32b11610064578063bcf7f32b14610454578063c39aca371461047d578063c4d66de8146104a6578063f2fde38b146104cf578063f45346dc146104f8576101ff565b806352d1902d146103955780635af65967146103c0578063715018a6146103e95780637993c1e0146104005780638da5cb5b14610429576101ff565b80632e1a7d4d116100e75780632e1a7d4d146102d3578063309f5004146102fc5780633659cfe6146103255780633ce4a5bc1461034e5780634f1ef28614610379576101ff565b80630ac7c44c14610204578063135390f91461022d57806321501a951461025657806321e093b11461027f578063267e75a0146102aa576101ff565b366101ff5760fb60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16141580156101c6575073735b14bb79463307aacbed86daf3322b1e6226ab73ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614155b156101fd576040517f229930b200000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b005b600080fd5b34801561021057600080fd5b5061022b600480360381019061022691906129b3565b610521565b005b34801561023957600080fd5b50610254600480360381019061024f9190612a2f565b610588565b005b34801561026257600080fd5b5061027d60048036038101906102789190612cae565b61067f565b005b34801561028b57600080fd5b5061029461084e565b6040516102a1919061328e565b60405180910390f35b3480156102b657600080fd5b506102d160048036038101906102cc9190612dac565b610874565b005b3480156102df57600080fd5b506102fa60048036038101906102f59190612d52565b610957565b005b34801561030857600080fd5b50610323600480360381019061031e9190612b42565b610a34565b005b34801561033157600080fd5b5061034c6004803603810190610347919061283d565b610b28565b005b34801561035a57600080fd5b50610363610cb1565b604051610370919061328e565b60405180910390f35b610393600480360381019061038e919061286a565b610cc9565b005b3480156103a157600080fd5b506103aa610e06565b6040516103b791906134c5565b60405180910390f35b3480156103cc57600080fd5b506103e760048036038101906103e29190612b42565b610ebf565b005b3480156103f557600080fd5b506103fe6110f1565b005b34801561040c57600080fd5b5061042760048036038101906104229190612a9e565b611105565b005b34801561043557600080fd5b5061043e611202565b60405161044b919061328e565b60405180910390f35b34801561046057600080fd5b5061047b60048036038101906104769190612bf8565b61122c565b005b34801561048957600080fd5b506104a4600480360381019061049f9190612bf8565b611320565b005b3480156104b257600080fd5b506104cd60048036038101906104c8919061283d565b611552565b005b3480156104db57600080fd5b506104f660048036038101906104f1919061283d565b611749565b005b34801561050457600080fd5b5061051f600480360381019061051a9190612906565b6117cd565b005b610529611989565b3373ffffffffffffffffffffffffffffffffffffffff167f2b5af078ce280d812dc2241658dc5435c93408020e5418eef55a2b536de51c0f848484604051610573939291906134e0565b60405180910390a26105836119d9565b505050565b610590611989565b600061059c83836119e3565b90503373ffffffffffffffffffffffffffffffffffffffff167f2265ce9ec38ea098a1143406678482665a6e1ccd82ab22d37eea3a78abc57716838686858773ffffffffffffffffffffffffffffffffffffffff16634d8943bb6040518163ffffffff1660e01b815260040160206040518083038186803b15801561062057600080fd5b505afa158015610634573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906106589190612d7f565b60405161066995949392919061342f565b60405180910390a25061067a6119d9565b505050565b73735b14bb79463307aacbed86daf3322b1e6226ab73ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16146106f8576040517f2b2add3d00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b73735b14bb79463307aacbed86daf3322b1e6226ab73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16148061077157503073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16145b156107a8576040517f82d5d76a00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6107b28484611cd3565b8273ffffffffffffffffffffffffffffffffffffffff1663de43156e8660fb60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff168786866040518663ffffffff1660e01b815260040161081595949392919061372b565b600060405180830381600087803b15801561082f57600080fd5b505af1158015610843573d6000803e3d6000fd5b505050505050505050565b60fb60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b61087c611989565b61089a8373735b14bb79463307aacbed86daf3322b1e6226ab611cd3565b3373ffffffffffffffffffffffffffffffffffffffff167f2265ce9ec38ea098a1143406678482665a6e1ccd82ab22d37eea3a78abc5771660fb60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673735b14bb79463307aacbed86daf3322b1e6226ab60405160200161091a9190613247565b60405160208183030381529060405286600080888860405161094297969594939291906132e0565b60405180910390a26109526119d9565b505050565b61095f611989565b61097d8173735b14bb79463307aacbed86daf3322b1e6226ab611cd3565b3373ffffffffffffffffffffffffffffffffffffffff167f2265ce9ec38ea098a1143406678482665a6e1ccd82ab22d37eea3a78abc5771660fb60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673735b14bb79463307aacbed86daf3322b1e6226ab6040516020016109fd9190613247565b60405160208183030381529060405284600080604051610a21959493929190613351565b60405180910390a2610a316119d9565b50565b73735b14bb79463307aacbed86daf3322b1e6226ab73ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614610aad576040517f2b2add3d00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b8273ffffffffffffffffffffffffffffffffffffffff166369582bee87878786866040518663ffffffff1660e01b8152600401610aee9594939291906136d6565b600060405180830381600087803b158015610b0857600080fd5b505af1158015610b1c573d6000803e3d6000fd5b50505050505050505050565b7f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff163073ffffffffffffffffffffffffffffffffffffffff161415610bb7576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610bae90613576565b60405180910390fd5b7f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff16610bf6611eef565b73ffffffffffffffffffffffffffffffffffffffff1614610c4c576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610c4390613596565b60405180910390fd5b610c5581611f46565b610cae81600067ffffffffffffffff811115610c7457610c736139f0565b5b6040519080825280601f01601f191660200182016040528015610ca65781602001600182028036833780820191505090505b506000611f51565b50565b73735b14bb79463307aacbed86daf3322b1e6226ab81565b7f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff163073ffffffffffffffffffffffffffffffffffffffff161415610d58576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610d4f90613576565b60405180910390fd5b7f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff16610d97611eef565b73ffffffffffffffffffffffffffffffffffffffff1614610ded576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610de490613596565b60405180910390fd5b610df682611f46565b610e0282826001611f51565b5050565b60007f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff163073ffffffffffffffffffffffffffffffffffffffff1614610e96576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610e8d906135b6565b60405180910390fd5b7f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc60001b905090565b73735b14bb79463307aacbed86daf3322b1e6226ab73ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614610f38576040517f2b2add3d00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b73735b14bb79463307aacbed86daf3322b1e6226ab73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff161480610fb157503073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16145b15610fe8576040517f82d5d76a00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b8473ffffffffffffffffffffffffffffffffffffffff166347e7ef2484866040518363ffffffff1660e01b815260040161102392919061349c565b602060405180830381600087803b15801561103d57600080fd5b505af1158015611051573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906110759190612959565b508273ffffffffffffffffffffffffffffffffffffffff166369582bee87878786866040518663ffffffff1660e01b81526004016110b79594939291906136d6565b600060405180830381600087803b1580156110d157600080fd5b505af11580156110e5573d6000803e3d6000fd5b50505050505050505050565b6110f96120ce565b611103600061214c565b565b61110d611989565b600061111985856119e3565b90503373ffffffffffffffffffffffffffffffffffffffff167f2265ce9ec38ea098a1143406678482665a6e1ccd82ab22d37eea3a78abc57716858888858973ffffffffffffffffffffffffffffffffffffffff16634d8943bb6040518163ffffffff1660e01b815260040160206040518083038186803b15801561119d57600080fd5b505afa1580156111b1573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906111d59190612d7f565b89896040516111ea97969594939291906133be565b60405180910390a2506111fb6119d9565b5050505050565b6000603360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b73735b14bb79463307aacbed86daf3322b1e6226ab73ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16146112a5576040517f2b2add3d00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b8273ffffffffffffffffffffffffffffffffffffffff1663de43156e87878786866040518663ffffffff1660e01b81526004016112e695949392919061372b565b600060405180830381600087803b15801561130057600080fd5b505af1158015611314573d6000803e3d6000fd5b50505050505050505050565b73735b14bb79463307aacbed86daf3322b1e6226ab73ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614611399576040517f2b2add3d00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b73735b14bb79463307aacbed86daf3322b1e6226ab73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16148061141257503073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16145b15611449576040517f82d5d76a00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b8473ffffffffffffffffffffffffffffffffffffffff166347e7ef2484866040518363ffffffff1660e01b815260040161148492919061349c565b602060405180830381600087803b15801561149e57600080fd5b505af11580156114b2573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906114d69190612959565b508273ffffffffffffffffffffffffffffffffffffffff1663de43156e87878786866040518663ffffffff1660e01b815260040161151895949392919061372b565b600060405180830381600087803b15801561153257600080fd5b505af1158015611546573d6000803e3d6000fd5b50505050505050505050565b60008060019054906101000a900460ff161590508080156115835750600160008054906101000a900460ff1660ff16105b806115b0575061159230612212565b1580156115af5750600160008054906101000a900460ff1660ff16145b5b6115ef576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016115e6906135f6565b60405180910390fd5b60016000806101000a81548160ff021916908360ff160217905550801561162c576001600060016101000a81548160ff0219169083151502179055505b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff161415611693576040517fd92e233d00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b61169b612235565b6116a361228e565b6116ab6122df565b8160fb60006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555080156117455760008060016101000a81548160ff0219169083151502179055507f7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb3847402498600160405161173c9190613519565b60405180910390a15b5050565b6117516120ce565b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1614156117c1576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016117b890613556565b60405180910390fd5b6117ca8161214c565b50565b73735b14bb79463307aacbed86daf3322b1e6226ab73ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614611846576040517f2b2add3d00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b73735b14bb79463307aacbed86daf3322b1e6226ab73ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1614806118bf57503073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff16145b156118f6576040517f82d5d76a00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b8273ffffffffffffffffffffffffffffffffffffffff166347e7ef2482846040518363ffffffff1660e01b815260040161193192919061349c565b602060405180830381600087803b15801561194b57600080fd5b505af115801561195f573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906119839190612959565b50505050565b600260c95414156119cf576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016119c6906136b6565b60405180910390fd5b600260c981905550565b600160c981905550565b60008060008373ffffffffffffffffffffffffffffffffffffffff1663d9eeebed6040518163ffffffff1660e01b8152600401604080518083038186803b158015611a2d57600080fd5b505afa158015611a41573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611a6591906128c6565b915091508173ffffffffffffffffffffffffffffffffffffffff166323b872dd3373735b14bb79463307aacbed86daf3322b1e6226ab846040518463ffffffff1660e01b8152600401611aba939291906132a9565b602060405180830381600087803b158015611ad457600080fd5b505af1158015611ae8573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611b0c9190612959565b611b42576040517f0a7cd6d600000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b8373ffffffffffffffffffffffffffffffffffffffff166323b872dd3330886040518463ffffffff1660e01b8152600401611b7f939291906132a9565b602060405180830381600087803b158015611b9957600080fd5b505af1158015611bad573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611bd19190612959565b611c07576040517f4dd9ee8d00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b8373ffffffffffffffffffffffffffffffffffffffff166342966c68866040518263ffffffff1660e01b8152600401611c409190613780565b602060405180830381600087803b158015611c5a57600080fd5b505af1158015611c6e573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611c929190612959565b611cc8576040517f2c77e05c00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b809250505092915050565b60fb60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166323b872dd3330856040518463ffffffff1660e01b8152600401611d32939291906132a9565b602060405180830381600087803b158015611d4c57600080fd5b505af1158015611d60573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611d849190612959565b611dba576040517fc7ffc47b00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b60fb60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16632e1a7d4d836040518263ffffffff1660e01b8152600401611e159190613780565b600060405180830381600087803b158015611e2f57600080fd5b505af1158015611e43573d6000803e3d6000fd5b5050505060008173ffffffffffffffffffffffffffffffffffffffff1683604051611e6d90613279565b60006040518083038185875af1925050503d8060008114611eaa576040519150601f19603f3d011682016040523d82523d6000602084013e611eaf565b606091505b5050905080611eea576040517fc7ffc47b00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b505050565b6000611f1d7f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc60001b612338565b60000160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b611f4e6120ce565b50565b611f7d7f4910fdfa16fed3260ed0e7147f7cc6da11a60208b5b9406d12a635614ffd914360001b612342565b60000160009054906101000a900460ff1615611fa157611f9c8361234c565b6120c9565b8273ffffffffffffffffffffffffffffffffffffffff166352d1902d6040518163ffffffff1660e01b815260040160206040518083038186803b158015611fe757600080fd5b505afa92505050801561201857506040513d601f19601f820116820180604052508101906120159190612986565b60015b612057576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161204e90613616565b60405180910390fd5b7f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc60001b81146120bc576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016120b3906135d6565b60405180910390fd5b506120c8838383612405565b5b505050565b6120d6612431565b73ffffffffffffffffffffffffffffffffffffffff166120f4611202565b73ffffffffffffffffffffffffffffffffffffffff161461214a576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161214190613656565b60405180910390fd5b565b6000603360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905081603360006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508173ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35050565b6000808273ffffffffffffffffffffffffffffffffffffffff163b119050919050565b600060019054906101000a900460ff16612284576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161227b90613696565b60405180910390fd5b61228c612439565b565b600060019054906101000a900460ff166122dd576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016122d490613696565b60405180910390fd5b565b600060019054906101000a900460ff1661232e576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161232590613696565b60405180910390fd5b61233661249a565b565b6000819050919050565b6000819050919050565b61235581612212565b612394576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161238b90613636565b60405180910390fd5b806123c17f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc60001b612338565b60000160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b61240e836124f3565b60008251118061241b5750805b1561242c5761242a8383612542565b505b505050565b600033905090565b600060019054906101000a900460ff16612488576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161247f90613696565b60405180910390fd5b612498612493612431565b61214c565b565b600060019054906101000a900460ff166124e9576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016124e090613696565b60405180910390fd5b600160c981905550565b6124fc8161234c565b8073ffffffffffffffffffffffffffffffffffffffff167fbc7cd75a20ee27fd9adebab32041f755214dbc6bffa90cc0225b39da2e5c2d3b60405160405180910390a250565b60606125678383604051806060016040528060278152602001613e116027913961256f565b905092915050565b60606000808573ffffffffffffffffffffffffffffffffffffffff16856040516125999190613262565b600060405180830381855af49150503d80600081146125d4576040519150601f19603f3d011682016040523d82523d6000602084013e6125d9565b606091505b50915091506125ea868383876125f5565b925050509392505050565b60608315612658576000835114156126505761261085612212565b61264f576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161264690613676565b60405180910390fd5b5b829050612663565b612662838361266b565b5b949350505050565b60008251111561267e5781518083602001fd5b806040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016126b29190613534565b60405180910390fd5b60006126ce6126c9846137c0565b61379b565b9050828152602081018484840111156126ea576126e9613a3d565b5b6126f5848285613959565b509392505050565b60008135905061270c81613db4565b92915050565b60008151905061272181613db4565b92915050565b60008151905061273681613dcb565b92915050565b60008151905061274b81613de2565b92915050565b60008083601f84011261276757612766613a29565b5b8235905067ffffffffffffffff81111561278457612783613a24565b5b6020830191508360018202830111156127a05761279f613a38565b5b9250929050565b600082601f8301126127bc576127bb613a29565b5b81356127cc8482602086016126bb565b91505092915050565b6000606082840312156127eb576127ea613a2e565b5b81905092915050565b60006060828403121561280a57612809613a2e565b5b81905092915050565b60008135905061282281613df9565b92915050565b60008151905061283781613df9565b92915050565b60006020828403121561285357612852613a4c565b5b6000612861848285016126fd565b91505092915050565b6000806040838503121561288157612880613a4c565b5b600061288f858286016126fd565b925050602083013567ffffffffffffffff8111156128b0576128af613a42565b5b6128bc858286016127a7565b9150509250929050565b600080604083850312156128dd576128dc613a4c565b5b60006128eb85828601612712565b92505060206128fc85828601612828565b9150509250929050565b60008060006060848603121561291f5761291e613a4c565b5b600061292d868287016126fd565b935050602061293e86828701612813565b925050604061294f868287016126fd565b9150509250925092565b60006020828403121561296f5761296e613a4c565b5b600061297d84828501612727565b91505092915050565b60006020828403121561299c5761299b613a4c565b5b60006129aa8482850161273c565b91505092915050565b6000806000604084860312156129cc576129cb613a4c565b5b600084013567ffffffffffffffff8111156129ea576129e9613a42565b5b6129f6868287016127a7565b935050602084013567ffffffffffffffff811115612a1757612a16613a42565b5b612a2386828701612751565b92509250509250925092565b600080600060608486031215612a4857612a47613a4c565b5b600084013567ffffffffffffffff811115612a6657612a65613a42565b5b612a72868287016127a7565b9350506020612a8386828701612813565b9250506040612a94868287016126fd565b9150509250925092565b600080600080600060808688031215612aba57612ab9613a4c565b5b600086013567ffffffffffffffff811115612ad857612ad7613a42565b5b612ae4888289016127a7565b9550506020612af588828901612813565b9450506040612b06888289016126fd565b935050606086013567ffffffffffffffff811115612b2757612b26613a42565b5b612b3388828901612751565b92509250509295509295909350565b60008060008060008060a08789031215612b5f57612b5e613a4c565b5b600087013567ffffffffffffffff811115612b7d57612b7c613a42565b5b612b8989828a016127d5565b9650506020612b9a89828a016126fd565b9550506040612bab89828a01612813565b9450506060612bbc89828a016126fd565b935050608087013567ffffffffffffffff811115612bdd57612bdc613a42565b5b612be989828a01612751565b92509250509295509295509295565b60008060008060008060a08789031215612c1557612c14613a4c565b5b600087013567ffffffffffffffff811115612c3357612c32613a42565b5b612c3f89828a016127f4565b9650506020612c5089828a016126fd565b9550506040612c6189828a01612813565b9450506060612c7289828a016126fd565b935050608087013567ffffffffffffffff811115612c9357612c92613a42565b5b612c9f89828a01612751565b92509250509295509295509295565b600080600080600060808688031215612cca57612cc9613a4c565b5b600086013567ffffffffffffffff811115612ce857612ce7613a42565b5b612cf4888289016127f4565b9550506020612d0588828901612813565b9450506040612d16888289016126fd565b935050606086013567ffffffffffffffff811115612d3757612d36613a42565b5b612d4388828901612751565b92509250509295509295909350565b600060208284031215612d6857612d67613a4c565b5b6000612d7684828501612813565b91505092915050565b600060208284031215612d9557612d94613a4c565b5b6000612da384828501612828565b91505092915050565b600080600060408486031215612dc557612dc4613a4c565b5b6000612dd386828701612813565b935050602084013567ffffffffffffffff811115612df457612df3613a42565b5b612e0086828701612751565b92509250509250925092565b612e15816138d6565b82525050565b612e24816138d6565b82525050565b612e3b612e36826138d6565b6139cc565b82525050565b612e4a816138f4565b82525050565b6000612e5c8385613807565b9350612e69838584613959565b612e7283613a51565b840190509392505050565b6000612e898385613818565b9350612e96838584613959565b612e9f83613a51565b840190509392505050565b6000612eb5826137f1565b612ebf8185613818565b9350612ecf818560208601613968565b612ed881613a51565b840191505092915050565b6000612eee826137f1565b612ef88185613829565b9350612f08818560208601613968565b80840191505092915050565b612f1d81613935565b82525050565b612f2c81613947565b82525050565b6000612f3d826137fc565b612f478185613834565b9350612f57818560208601613968565b612f6081613a51565b840191505092915050565b6000612f78602683613834565b9150612f8382613a6f565b604082019050919050565b6000612f9b602c83613834565b9150612fa682613abe565b604082019050919050565b6000612fbe602c83613834565b9150612fc982613b0d565b604082019050919050565b6000612fe1603883613834565b9150612fec82613b5c565b604082019050919050565b6000613004602983613834565b915061300f82613bab565b604082019050919050565b6000613027602e83613834565b915061303282613bfa565b604082019050919050565b600061304a602e83613834565b915061305582613c49565b604082019050919050565b600061306d602d83613834565b915061307882613c98565b604082019050919050565b6000613090602083613834565b915061309b82613ce7565b602082019050919050565b60006130b3600083613818565b91506130be82613d10565b600082019050919050565b60006130d6600083613829565b91506130e182613d10565b600082019050919050565b60006130f9601d83613834565b915061310482613d13565b602082019050919050565b600061311c602b83613834565b915061312782613d3c565b604082019050919050565b600061313f601f83613834565b915061314a82613d8b565b602082019050919050565b600060608301613168600084018461385c565b858303600087015261317b838284612e50565b9250505061318c6020840184613845565b6131996020860182612e0c565b506131a760408401846138bf565b6131b46040860182613229565b508091505092915050565b6000606083016131d2600084018461385c565b85830360008701526131e5838284612e50565b925050506131f66020840184613845565b6132036020860182612e0c565b5061321160408401846138bf565b61321e6040860182613229565b508091505092915050565b6132328161391e565b82525050565b6132418161391e565b82525050565b60006132538284612e2a565b60148201915081905092915050565b600061326e8284612ee3565b915081905092915050565b6000613284826130c9565b9150819050919050565b60006020820190506132a36000830184612e1b565b92915050565b60006060820190506132be6000830186612e1b565b6132cb6020830185612e1b565b6132d86040830184613238565b949350505050565b600060c0820190506132f5600083018a612e1b565b81810360208301526133078189612eaa565b90506133166040830188613238565b6133236060830187612f14565b6133306080830186612f14565b81810360a0830152613343818486612e7d565b905098975050505050505050565b600060c0820190506133666000830188612e1b565b81810360208301526133788187612eaa565b90506133876040830186613238565b6133946060830185612f14565b6133a16080830184612f14565b81810360a08301526133b2816130a6565b90509695505050505050565b600060c0820190506133d3600083018a612e1b565b81810360208301526133e58189612eaa565b90506133f46040830188613238565b6134016060830187613238565b61340e6080830186613238565b81810360a0830152613421818486612e7d565b905098975050505050505050565b600060c0820190506134446000830188612e1b565b81810360208301526134568187612eaa565b90506134656040830186613238565b6134726060830185613238565b61347f6080830184613238565b81810360a0830152613490816130a6565b90509695505050505050565b60006040820190506134b16000830185612e1b565b6134be6020830184613238565b9392505050565b60006020820190506134da6000830184612e41565b92915050565b600060408201905081810360008301526134fa8186612eaa565b9050818103602083015261350f818486612e7d565b9050949350505050565b600060208201905061352e6000830184612f23565b92915050565b6000602082019050818103600083015261354e8184612f32565b905092915050565b6000602082019050818103600083015261356f81612f6b565b9050919050565b6000602082019050818103600083015261358f81612f8e565b9050919050565b600060208201905081810360008301526135af81612fb1565b9050919050565b600060208201905081810360008301526135cf81612fd4565b9050919050565b600060208201905081810360008301526135ef81612ff7565b9050919050565b6000602082019050818103600083015261360f8161301a565b9050919050565b6000602082019050818103600083015261362f8161303d565b9050919050565b6000602082019050818103600083015261364f81613060565b9050919050565b6000602082019050818103600083015261366f81613083565b9050919050565b6000602082019050818103600083015261368f816130ec565b9050919050565b600060208201905081810360008301526136af8161310f565b9050919050565b600060208201905081810360008301526136cf81613132565b9050919050565b600060808201905081810360008301526136f08188613155565b90506136ff6020830187612e1b565b61370c6040830186613238565b818103606083015261371f818486612e7d565b90509695505050505050565b6000608082019050818103600083015261374581886131bf565b90506137546020830187612e1b565b6137616040830186613238565b8181036060830152613774818486612e7d565b90509695505050505050565b60006020820190506137956000830184613238565b92915050565b60006137a56137b6565b90506137b1828261399b565b919050565b6000604051905090565b600067ffffffffffffffff8211156137db576137da6139f0565b5b6137e482613a51565b9050602081019050919050565b600081519050919050565b600081519050919050565b600082825260208201905092915050565b600082825260208201905092915050565b600081905092915050565b600082825260208201905092915050565b600061385460208401846126fd565b905092915050565b6000808335600160200384360303811261387957613878613a47565b5b83810192508235915060208301925067ffffffffffffffff8211156138a1576138a0613a1f565b5b6001820236038413156138b7576138b6613a33565b5b509250929050565b60006138ce6020840184612813565b905092915050565b60006138e1826138fe565b9050919050565b60008115159050919050565b6000819050919050565b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000819050919050565b600060ff82169050919050565b60006139408261391e565b9050919050565b600061395282613928565b9050919050565b82818337600083830152505050565b60005b8381101561398657808201518184015260208101905061396b565b83811115613995576000848401525b50505050565b6139a482613a51565b810181811067ffffffffffffffff821117156139c3576139c26139f0565b5b80604052505050565b60006139d7826139de565b9050919050565b60006139e982613a62565b9050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b600080fd5b600080fd5b600080fd5b600080fd5b600080fd5b600080fd5b600080fd5b600080fd5b600080fd5b600080fd5b6000601f19601f8301169050919050565b60008160601b9050919050565b7f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160008201527f6464726573730000000000000000000000000000000000000000000000000000602082015250565b7f46756e6374696f6e206d7573742062652063616c6c6564207468726f7567682060008201527f64656c656761746563616c6c0000000000000000000000000000000000000000602082015250565b7f46756e6374696f6e206d7573742062652063616c6c6564207468726f7567682060008201527f6163746976652070726f78790000000000000000000000000000000000000000602082015250565b7f555550535570677261646561626c653a206d757374206e6f742062652063616c60008201527f6c6564207468726f7567682064656c656761746563616c6c0000000000000000602082015250565b7f45524331393637557067726164653a20756e737570706f727465642070726f7860008201527f6961626c65555549440000000000000000000000000000000000000000000000602082015250565b7f496e697469616c697a61626c653a20636f6e747261637420697320616c72656160008201527f647920696e697469616c697a6564000000000000000000000000000000000000602082015250565b7f45524331393637557067726164653a206e657720696d706c656d656e7461746960008201527f6f6e206973206e6f742055555053000000000000000000000000000000000000602082015250565b7f455243313936373a206e657720696d706c656d656e746174696f6e206973206e60008201527f6f74206120636f6e747261637400000000000000000000000000000000000000602082015250565b7f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572600082015250565b50565b7f416464726573733a2063616c6c20746f206e6f6e2d636f6e7472616374000000600082015250565b7f496e697469616c697a61626c653a20636f6e7472616374206973206e6f74206960008201527f6e697469616c697a696e67000000000000000000000000000000000000000000602082015250565b7f5265656e7472616e637947756172643a207265656e7472616e742063616c6c00600082015250565b613dbd816138d6565b8114613dc857600080fd5b50565b613dd4816138e8565b8114613ddf57600080fd5b50565b613deb816138f4565b8114613df657600080fd5b50565b613e028161391e565b8114613e0d57600080fd5b5056fe416464726573733a206c6f772d6c6576656c2064656c65676174652063616c6c206661696c6564a2646970667358221220e282ad47b588d26949a07fb7fc6ba46fa9721e07254d668e544a8f2413001c5064736f6c63430008070033", } // GatewayZEVMABI is the input ABI used to generate the binding from. @@ -676,6 +676,27 @@ func (_GatewayZEVM *GatewayZEVMTransactorSession) WithdrawAndCall0(receiver []by return _GatewayZEVM.Contract.WithdrawAndCall0(&_GatewayZEVM.TransactOpts, receiver, amount, zrc20, message) } +// Receive is a paid mutator transaction binding the contract receive function. +// +// Solidity: receive() payable returns() +func (_GatewayZEVM *GatewayZEVMTransactor) Receive(opts *bind.TransactOpts) (*types.Transaction, error) { + return _GatewayZEVM.contract.RawTransact(opts, nil) // calldata is disallowed for receive function +} + +// Receive is a paid mutator transaction binding the contract receive function. +// +// Solidity: receive() payable returns() +func (_GatewayZEVM *GatewayZEVMSession) Receive() (*types.Transaction, error) { + return _GatewayZEVM.Contract.Receive(&_GatewayZEVM.TransactOpts) +} + +// Receive is a paid mutator transaction binding the contract receive function. +// +// Solidity: receive() payable returns() +func (_GatewayZEVM *GatewayZEVMTransactorSession) Receive() (*types.Transaction, error) { + return _GatewayZEVM.Contract.Receive(&_GatewayZEVM.TransactOpts) +} + // GatewayZEVMAdminChangedIterator is returned from FilterAdminChanged and is used to iterate over the raw logs and unpacked data for AdminChanged events raised by the GatewayZEVM contract. type GatewayZEVMAdminChangedIterator struct { Event *GatewayZEVMAdminChanged // Event containing the contract specifics and raw log diff --git a/pkg/contracts/prototypes/zevm/igatewayzevm.sol/igatewayzevmerrors.go b/pkg/contracts/prototypes/zevm/igatewayzevm.sol/igatewayzevmerrors.go index 37bf4109..0e4b7176 100644 --- a/pkg/contracts/prototypes/zevm/igatewayzevm.sol/igatewayzevmerrors.go +++ b/pkg/contracts/prototypes/zevm/igatewayzevm.sol/igatewayzevmerrors.go @@ -31,7 +31,7 @@ var ( // IGatewayZEVMErrorsMetaData contains all meta data concerning the IGatewayZEVMErrors contract. var IGatewayZEVMErrorsMetaData = &bind.MetaData{ - ABI: "[{\"inputs\":[],\"name\":\"CallerIsNotFungibleModule\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"FailedZetaSent\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"GasFeeTransferFailed\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"InsufficientZRC20Amount\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"InvalidTarget\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"WithdrawalFailed\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"ZRC20BurnFailed\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"ZRC20TransferFailed\",\"type\":\"error\"}]", + ABI: "[{\"inputs\":[],\"name\":\"CallerIsNotFungibleModule\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"FailedZetaSent\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"GasFeeTransferFailed\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"InsufficientZRC20Amount\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"InvalidTarget\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"OnlyWZETAOrFungible\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"WithdrawalFailed\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"ZRC20BurnFailed\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"ZRC20TransferFailed\",\"type\":\"error\"}]", } // IGatewayZEVMErrorsABI is the input ABI used to generate the binding from. diff --git a/pkg/contracts/prototypes/zevm/senderzevm.sol/senderzevm.go b/pkg/contracts/prototypes/zevm/senderzevm.sol/senderzevm.go index 1eab6500..f19d71fe 100644 --- a/pkg/contracts/prototypes/zevm/senderzevm.sol/senderzevm.go +++ b/pkg/contracts/prototypes/zevm/senderzevm.sol/senderzevm.go @@ -32,7 +32,7 @@ var ( // SenderZEVMMetaData contains all meta data concerning the SenderZEVM contract. var SenderZEVMMetaData = &bind.MetaData{ ABI: "[{\"inputs\":[{\"internalType\":\"address\",\"name\":\"_gateway\",\"type\":\"address\"}],\"stateMutability\":\"nonpayable\",\"type\":\"constructor\"},{\"inputs\":[],\"name\":\"ApprovalFailed\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"bytes\",\"name\":\"receiver\",\"type\":\"bytes\"},{\"internalType\":\"string\",\"name\":\"str\",\"type\":\"string\"},{\"internalType\":\"uint256\",\"name\":\"num\",\"type\":\"uint256\"},{\"internalType\":\"bool\",\"name\":\"flag\",\"type\":\"bool\"}],\"name\":\"callReceiver\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"gateway\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes\",\"name\":\"receiver\",\"type\":\"bytes\"},{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"},{\"internalType\":\"address\",\"name\":\"zrc20\",\"type\":\"address\"},{\"internalType\":\"string\",\"name\":\"str\",\"type\":\"string\"},{\"internalType\":\"uint256\",\"name\":\"num\",\"type\":\"uint256\"},{\"internalType\":\"bool\",\"name\":\"flag\",\"type\":\"bool\"}],\"name\":\"withdrawAndCallReceiver\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"}]", - Bin: "0x608060405234801561001057600080fd5b50604051610bcd380380610bcd8339818101604052810190610032919061008d565b806000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050610108565b600081519050610087816100f1565b92915050565b6000602082840312156100a3576100a26100ec565b5b60006100b184828501610078565b91505092915050565b60006100c5826100cc565b9050919050565b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b600080fd5b6100fa816100ba565b811461010557600080fd5b50565b610ab6806101176000396000f3fe608060405234801561001057600080fd5b50600436106100415760003560e01c80630abd890514610046578063116191b614610062578063a0a1730b14610080575b600080fd5b610060600480360381019061005b91906105fd565b61009c565b005b61006a6102af565b6040516100779190610761565b60405180910390f35b61009a6004803603810190610095919061055e565b6102d3565b005b60008383836040516024016100b39392919061082f565b6040516020818303038152906040527fe04d4f97000000000000000000000000000000000000000000000000000000007bffffffffffffffffffffffffffffffffffffffffffffffffffffffff19166020820180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff838183161783525050505090508473ffffffffffffffffffffffffffffffffffffffff1663095ea7b360008054906101000a900473ffffffffffffffffffffffffffffffffffffffff16886040518363ffffffff1660e01b815260040161018d92919061077c565b602060405180830381600087803b1580156101a757600080fd5b505af11580156101bb573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906101df9190610531565b610215576040517f8164f84200000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b60008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16637993c1e0888888856040518563ffffffff1660e01b815260040161027494939291906107dc565b600060405180830381600087803b15801561028e57600080fd5b505af11580156102a2573d6000803e3d6000fd5b5050505050505050505050565b60008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b60008383836040516024016102ea9392919061082f565b6040516020818303038152906040527fe04d4f97000000000000000000000000000000000000000000000000000000007bffffffffffffffffffffffffffffffffffffffffffffffffffffffff19166020820180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff8381831617835250505050905060008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16630ac7c44c86836040518363ffffffff1660e01b81526004016103c49291906107a5565b600060405180830381600087803b1580156103de57600080fd5b505af11580156103f2573d6000803e3d6000fd5b505050505050505050565b600061041061040b84610892565b61086d565b90508281526020810184848401111561042c5761042b610a1b565b5b610437848285610974565b509392505050565b600061045261044d846108c3565b61086d565b90508281526020810184848401111561046e5761046d610a1b565b5b610479848285610974565b509392505050565b60008135905061049081610a3b565b92915050565b6000813590506104a581610a52565b92915050565b6000815190506104ba81610a52565b92915050565b600082601f8301126104d5576104d4610a16565b5b81356104e58482602086016103fd565b91505092915050565b600082601f83011261050357610502610a16565b5b813561051384826020860161043f565b91505092915050565b60008135905061052b81610a69565b92915050565b60006020828403121561054757610546610a25565b5b6000610555848285016104ab565b91505092915050565b6000806000806080858703121561057857610577610a25565b5b600085013567ffffffffffffffff81111561059657610595610a20565b5b6105a2878288016104c0565b945050602085013567ffffffffffffffff8111156105c3576105c2610a20565b5b6105cf878288016104ee565b93505060406105e08782880161051c565b92505060606105f187828801610496565b91505092959194509250565b60008060008060008060c0878903121561061a57610619610a25565b5b600087013567ffffffffffffffff81111561063857610637610a20565b5b61064489828a016104c0565b965050602061065589828a0161051c565b955050604061066689828a01610481565b945050606087013567ffffffffffffffff81111561068757610686610a20565b5b61069389828a016104ee565b93505060806106a489828a0161051c565b92505060a06106b589828a01610496565b9150509295509295509295565b6106cb8161092c565b82525050565b6106da8161093e565b82525050565b60006106eb826108f4565b6106f5818561090a565b9350610705818560208601610983565b61070e81610a2a565b840191505092915050565b6000610724826108ff565b61072e818561091b565b935061073e818560208601610983565b61074781610a2a565b840191505092915050565b61075b8161096a565b82525050565b600060208201905061077660008301846106c2565b92915050565b600060408201905061079160008301856106c2565b61079e6020830184610752565b9392505050565b600060408201905081810360008301526107bf81856106e0565b905081810360208301526107d381846106e0565b90509392505050565b600060808201905081810360008301526107f681876106e0565b90506108056020830186610752565b61081260408301856106c2565b818103606083015261082481846106e0565b905095945050505050565b600060608201905081810360008301526108498186610719565b90506108586020830185610752565b61086560408301846106d1565b949350505050565b6000610877610888565b905061088382826109b6565b919050565b6000604051905090565b600067ffffffffffffffff8211156108ad576108ac6109e7565b5b6108b682610a2a565b9050602081019050919050565b600067ffffffffffffffff8211156108de576108dd6109e7565b5b6108e782610a2a565b9050602081019050919050565b600081519050919050565b600081519050919050565b600082825260208201905092915050565b600082825260208201905092915050565b60006109378261094a565b9050919050565b60008115159050919050565b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000819050919050565b82818337600083830152505050565b60005b838110156109a1578082015181840152602081019050610986565b838111156109b0576000848401525b50505050565b6109bf82610a2a565b810181811067ffffffffffffffff821117156109de576109dd6109e7565b5b80604052505050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b600080fd5b600080fd5b600080fd5b600080fd5b6000601f19601f8301169050919050565b610a448161092c565b8114610a4f57600080fd5b50565b610a5b8161093e565b8114610a6657600080fd5b50565b610a728161096a565b8114610a7d57600080fd5b5056fea2646970667358221220fd57bf78c5d65dbfce97aa7f4d7757321c1b53a122e7c588ff9fce739d2ac95664736f6c63430008070033", + Bin: "0x608060405234801561001057600080fd5b50604051610bcd380380610bcd8339818101604052810190610032919061008d565b806000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050610108565b600081519050610087816100f1565b92915050565b6000602082840312156100a3576100a26100ec565b5b60006100b184828501610078565b91505092915050565b60006100c5826100cc565b9050919050565b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b600080fd5b6100fa816100ba565b811461010557600080fd5b50565b610ab6806101176000396000f3fe608060405234801561001057600080fd5b50600436106100415760003560e01c80630abd890514610046578063116191b614610062578063a0a1730b14610080575b600080fd5b610060600480360381019061005b91906105fd565b61009c565b005b61006a6102af565b6040516100779190610761565b60405180910390f35b61009a6004803603810190610095919061055e565b6102d3565b005b60008383836040516024016100b39392919061082f565b6040516020818303038152906040527fe04d4f97000000000000000000000000000000000000000000000000000000007bffffffffffffffffffffffffffffffffffffffffffffffffffffffff19166020820180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff838183161783525050505090508473ffffffffffffffffffffffffffffffffffffffff1663095ea7b360008054906101000a900473ffffffffffffffffffffffffffffffffffffffff16886040518363ffffffff1660e01b815260040161018d92919061077c565b602060405180830381600087803b1580156101a757600080fd5b505af11580156101bb573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906101df9190610531565b610215576040517f8164f84200000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b60008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16637993c1e0888888856040518563ffffffff1660e01b815260040161027494939291906107dc565b600060405180830381600087803b15801561028e57600080fd5b505af11580156102a2573d6000803e3d6000fd5b5050505050505050505050565b60008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b60008383836040516024016102ea9392919061082f565b6040516020818303038152906040527fe04d4f97000000000000000000000000000000000000000000000000000000007bffffffffffffffffffffffffffffffffffffffffffffffffffffffff19166020820180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff8381831617835250505050905060008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16630ac7c44c86836040518363ffffffff1660e01b81526004016103c49291906107a5565b600060405180830381600087803b1580156103de57600080fd5b505af11580156103f2573d6000803e3d6000fd5b505050505050505050565b600061041061040b84610892565b61086d565b90508281526020810184848401111561042c5761042b610a1b565b5b610437848285610974565b509392505050565b600061045261044d846108c3565b61086d565b90508281526020810184848401111561046e5761046d610a1b565b5b610479848285610974565b509392505050565b60008135905061049081610a3b565b92915050565b6000813590506104a581610a52565b92915050565b6000815190506104ba81610a52565b92915050565b600082601f8301126104d5576104d4610a16565b5b81356104e58482602086016103fd565b91505092915050565b600082601f83011261050357610502610a16565b5b813561051384826020860161043f565b91505092915050565b60008135905061052b81610a69565b92915050565b60006020828403121561054757610546610a25565b5b6000610555848285016104ab565b91505092915050565b6000806000806080858703121561057857610577610a25565b5b600085013567ffffffffffffffff81111561059657610595610a20565b5b6105a2878288016104c0565b945050602085013567ffffffffffffffff8111156105c3576105c2610a20565b5b6105cf878288016104ee565b93505060406105e08782880161051c565b92505060606105f187828801610496565b91505092959194509250565b60008060008060008060c0878903121561061a57610619610a25565b5b600087013567ffffffffffffffff81111561063857610637610a20565b5b61064489828a016104c0565b965050602061065589828a0161051c565b955050604061066689828a01610481565b945050606087013567ffffffffffffffff81111561068757610686610a20565b5b61069389828a016104ee565b93505060806106a489828a0161051c565b92505060a06106b589828a01610496565b9150509295509295509295565b6106cb8161092c565b82525050565b6106da8161093e565b82525050565b60006106eb826108f4565b6106f5818561090a565b9350610705818560208601610983565b61070e81610a2a565b840191505092915050565b6000610724826108ff565b61072e818561091b565b935061073e818560208601610983565b61074781610a2a565b840191505092915050565b61075b8161096a565b82525050565b600060208201905061077660008301846106c2565b92915050565b600060408201905061079160008301856106c2565b61079e6020830184610752565b9392505050565b600060408201905081810360008301526107bf81856106e0565b905081810360208301526107d381846106e0565b90509392505050565b600060808201905081810360008301526107f681876106e0565b90506108056020830186610752565b61081260408301856106c2565b818103606083015261082481846106e0565b905095945050505050565b600060608201905081810360008301526108498186610719565b90506108586020830185610752565b61086560408301846106d1565b949350505050565b6000610877610888565b905061088382826109b6565b919050565b6000604051905090565b600067ffffffffffffffff8211156108ad576108ac6109e7565b5b6108b682610a2a565b9050602081019050919050565b600067ffffffffffffffff8211156108de576108dd6109e7565b5b6108e782610a2a565b9050602081019050919050565b600081519050919050565b600081519050919050565b600082825260208201905092915050565b600082825260208201905092915050565b60006109378261094a565b9050919050565b60008115159050919050565b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000819050919050565b82818337600083830152505050565b60005b838110156109a1578082015181840152602081019050610986565b838111156109b0576000848401525b50505050565b6109bf82610a2a565b810181811067ffffffffffffffff821117156109de576109dd6109e7565b5b80604052505050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b600080fd5b600080fd5b600080fd5b600080fd5b6000601f19601f8301169050919050565b610a448161092c565b8114610a4f57600080fd5b50565b610a5b8161093e565b8114610a6657600080fd5b50565b610a728161096a565b8114610a7d57600080fd5b5056fea26469706673582212200cd8c693763a39f751ed29a5721dc440baec596173844c26c3f7b13e0d4e8b8464736f6c63430008070033", } // SenderZEVMABI is the input ABI used to generate the binding from. diff --git a/pkg/contracts/prototypes/zevm/testzcontract.sol/testzcontract.go b/pkg/contracts/prototypes/zevm/testzcontract.sol/testzcontract.go index 36b72b20..751835ca 100644 --- a/pkg/contracts/prototypes/zevm/testzcontract.sol/testzcontract.go +++ b/pkg/contracts/prototypes/zevm/testzcontract.sol/testzcontract.go @@ -45,8 +45,8 @@ type ZContext struct { // TestZContractMetaData contains all meta data concerning the TestZContract contract. var TestZContractMetaData = &bind.MetaData{ - ABI: "[{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"bytes\",\"name\":\"origin\",\"type\":\"bytes\"},{\"indexed\":false,\"internalType\":\"address\",\"name\":\"sender\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"chainID\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"address\",\"name\":\"msgSender\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"string\",\"name\":\"message\",\"type\":\"string\"}],\"name\":\"ContextData\",\"type\":\"event\"},{\"inputs\":[{\"components\":[{\"internalType\":\"bytes\",\"name\":\"origin\",\"type\":\"bytes\"},{\"internalType\":\"address\",\"name\":\"sender\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"chainID\",\"type\":\"uint256\"}],\"internalType\":\"structzContext\",\"name\":\"context\",\"type\":\"tuple\"},{\"internalType\":\"address\",\"name\":\"zrc20\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"},{\"internalType\":\"bytes\",\"name\":\"message\",\"type\":\"bytes\"}],\"name\":\"onCrossChainCall\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"components\":[{\"internalType\":\"bytes\",\"name\":\"origin\",\"type\":\"bytes\"},{\"internalType\":\"address\",\"name\":\"sender\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"chainID\",\"type\":\"uint256\"}],\"internalType\":\"structrevertContext\",\"name\":\"context\",\"type\":\"tuple\"},{\"internalType\":\"address\",\"name\":\"zrc20\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"},{\"internalType\":\"bytes\",\"name\":\"message\",\"type\":\"bytes\"}],\"name\":\"onRevert\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"}]", - Bin: "0x608060405234801561001057600080fd5b506107cb806100206000396000f3fe608060405234801561001057600080fd5b50600436106100365760003560e01c806369582bee1461003b578063de43156e14610057575b600080fd5b61005560048036038101906100509190610331565b610073565b005b610071600480360381019061006c91906103d5565b610100565b005b6060600083839050111561009357828281019061009091906102e8565b90505b7fcdc8ee677dc5ebe680fb18cebda5e26ba5ea1f0ba504a47e2a9a2ecb476dc98e8680600001906100c49190610560565b8860200160208101906100d791906102bb565b896040013533866040516100f0969594939291906104fd565b60405180910390a1505050505050565b6060600083839050111561012057828281019061011d91906102e8565b90505b7fcdc8ee677dc5ebe680fb18cebda5e26ba5ea1f0ba504a47e2a9a2ecb476dc98e8680600001906101519190610560565b88602001602081019061016491906102bb565b8960400135338660405161017d969594939291906104fd565b60405180910390a1505050505050565b60006101a061019b846105e8565b6105c3565b9050828152602081018484840111156101bc576101bb610747565b5b6101c7848285610682565b509392505050565b6000813590506101de81610767565b92915050565b60008083601f8401126101fa576101f9610729565b5b8235905067ffffffffffffffff81111561021757610216610724565b5b6020830191508360018202830111156102335761023261073d565b5b9250929050565b600082601f83011261024f5761024e610729565b5b813561025f84826020860161018d565b91505092915050565b60006060828403121561027e5761027d610733565b5b81905092915050565b60006060828403121561029d5761029c610733565b5b81905092915050565b6000813590506102b58161077e565b92915050565b6000602082840312156102d1576102d0610751565b5b60006102df848285016101cf565b91505092915050565b6000602082840312156102fe576102fd610751565b5b600082013567ffffffffffffffff81111561031c5761031b61074c565b5b6103288482850161023a565b91505092915050565b60008060008060006080868803121561034d5761034c610751565b5b600086013567ffffffffffffffff81111561036b5761036a61074c565b5b61037788828901610268565b9550506020610388888289016101cf565b9450506040610399888289016102a6565b935050606086013567ffffffffffffffff8111156103ba576103b961074c565b5b6103c6888289016101e4565b92509250509295509295909350565b6000806000806000608086880312156103f1576103f0610751565b5b600086013567ffffffffffffffff81111561040f5761040e61074c565b5b61041b88828901610287565b955050602061042c888289016101cf565b945050604061043d888289016102a6565b935050606086013567ffffffffffffffff81111561045e5761045d61074c565b5b61046a888289016101e4565b92509250509295509295909350565b61048281610646565b82525050565b60006104948385610624565b93506104a1838584610682565b6104aa83610756565b840190509392505050565b60006104c082610619565b6104ca8185610635565b93506104da818560208601610691565b6104e381610756565b840191505092915050565b6104f781610678565b82525050565b600060a082019050818103600083015261051881888a610488565b90506105276020830187610479565b61053460408301866104ee565b6105416060830185610479565b818103608083015261055381846104b5565b9050979650505050505050565b6000808335600160200384360303811261057d5761057c610738565b5b80840192508235915067ffffffffffffffff82111561059f5761059e61072e565b5b6020830192506001820236038313156105bb576105ba610742565b5b509250929050565b60006105cd6105de565b90506105d982826106c4565b919050565b6000604051905090565b600067ffffffffffffffff821115610603576106026106f5565b5b61060c82610756565b9050602081019050919050565b600081519050919050565b600082825260208201905092915050565b600082825260208201905092915050565b600061065182610658565b9050919050565b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000819050919050565b82818337600083830152505050565b60005b838110156106af578082015181840152602081019050610694565b838111156106be576000848401525b50505050565b6106cd82610756565b810181811067ffffffffffffffff821117156106ec576106eb6106f5565b5b80604052505050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b600080fd5b600080fd5b600080fd5b600080fd5b600080fd5b600080fd5b600080fd5b600080fd5b600080fd5b600080fd5b6000601f19601f8301169050919050565b61077081610646565b811461077b57600080fd5b50565b61078781610678565b811461079257600080fd5b5056fea2646970667358221220996d3660341a1bd04005b32d62cd8d770a9af1acdfbed4e5684f1a111d225cde64736f6c63430008070033", + ABI: "[{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"bytes\",\"name\":\"origin\",\"type\":\"bytes\"},{\"indexed\":false,\"internalType\":\"address\",\"name\":\"sender\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"chainID\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"address\",\"name\":\"msgSender\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"string\",\"name\":\"message\",\"type\":\"string\"}],\"name\":\"ContextData\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"bytes\",\"name\":\"origin\",\"type\":\"bytes\"},{\"indexed\":false,\"internalType\":\"address\",\"name\":\"sender\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"chainID\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"address\",\"name\":\"msgSender\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"string\",\"name\":\"message\",\"type\":\"string\"}],\"name\":\"ContextDataRevert\",\"type\":\"event\"},{\"stateMutability\":\"payable\",\"type\":\"fallback\"},{\"inputs\":[{\"components\":[{\"internalType\":\"bytes\",\"name\":\"origin\",\"type\":\"bytes\"},{\"internalType\":\"address\",\"name\":\"sender\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"chainID\",\"type\":\"uint256\"}],\"internalType\":\"structzContext\",\"name\":\"context\",\"type\":\"tuple\"},{\"internalType\":\"address\",\"name\":\"zrc20\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"},{\"internalType\":\"bytes\",\"name\":\"message\",\"type\":\"bytes\"}],\"name\":\"onCrossChainCall\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"components\":[{\"internalType\":\"bytes\",\"name\":\"origin\",\"type\":\"bytes\"},{\"internalType\":\"address\",\"name\":\"sender\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"chainID\",\"type\":\"uint256\"}],\"internalType\":\"structrevertContext\",\"name\":\"context\",\"type\":\"tuple\"},{\"internalType\":\"address\",\"name\":\"zrc20\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"},{\"internalType\":\"bytes\",\"name\":\"message\",\"type\":\"bytes\"}],\"name\":\"onRevert\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"stateMutability\":\"payable\",\"type\":\"receive\"}]", + Bin: "0x608060405234801561001057600080fd5b506107e0806100206000396000f3fe60806040526004361061002d5760003560e01c806369582bee14610036578063de43156e1461005f57610034565b3661003457005b005b34801561004257600080fd5b5061005d60048036038101906100589190610346565b610088565b005b34801561006b57600080fd5b50610086600480360381019061008191906103ea565b610115565b005b606060008383905011156100a85782828101906100a591906102fd565b90505b7ffdc887992b033668833927e252058e468fac0b6bd196d520f09c61b740e999488680600001906100d99190610575565b8860200160208101906100ec91906102d0565b8960400135338660405161010596959493929190610512565b60405180910390a1505050505050565b6060600083839050111561013557828281019061013291906102fd565b90505b7fcdc8ee677dc5ebe680fb18cebda5e26ba5ea1f0ba504a47e2a9a2ecb476dc98e8680600001906101669190610575565b88602001602081019061017991906102d0565b8960400135338660405161019296959493929190610512565b60405180910390a1505050505050565b60006101b56101b0846105fd565b6105d8565b9050828152602081018484840111156101d1576101d061075c565b5b6101dc848285610697565b509392505050565b6000813590506101f38161077c565b92915050565b60008083601f84011261020f5761020e61073e565b5b8235905067ffffffffffffffff81111561022c5761022b610739565b5b60208301915083600182028301111561024857610247610752565b5b9250929050565b600082601f8301126102645761026361073e565b5b81356102748482602086016101a2565b91505092915050565b60006060828403121561029357610292610748565b5b81905092915050565b6000606082840312156102b2576102b1610748565b5b81905092915050565b6000813590506102ca81610793565b92915050565b6000602082840312156102e6576102e5610766565b5b60006102f4848285016101e4565b91505092915050565b60006020828403121561031357610312610766565b5b600082013567ffffffffffffffff81111561033157610330610761565b5b61033d8482850161024f565b91505092915050565b60008060008060006080868803121561036257610361610766565b5b600086013567ffffffffffffffff8111156103805761037f610761565b5b61038c8882890161027d565b955050602061039d888289016101e4565b94505060406103ae888289016102bb565b935050606086013567ffffffffffffffff8111156103cf576103ce610761565b5b6103db888289016101f9565b92509250509295509295909350565b60008060008060006080868803121561040657610405610766565b5b600086013567ffffffffffffffff81111561042457610423610761565b5b6104308882890161029c565b9550506020610441888289016101e4565b9450506040610452888289016102bb565b935050606086013567ffffffffffffffff81111561047357610472610761565b5b61047f888289016101f9565b92509250509295509295909350565b6104978161065b565b82525050565b60006104a98385610639565b93506104b6838584610697565b6104bf8361076b565b840190509392505050565b60006104d58261062e565b6104df818561064a565b93506104ef8185602086016106a6565b6104f88161076b565b840191505092915050565b61050c8161068d565b82525050565b600060a082019050818103600083015261052d81888a61049d565b905061053c602083018761048e565b6105496040830186610503565b610556606083018561048e565b818103608083015261056881846104ca565b9050979650505050505050565b600080833560016020038436030381126105925761059161074d565b5b80840192508235915067ffffffffffffffff8211156105b4576105b3610743565b5b6020830192506001820236038313156105d0576105cf610757565b5b509250929050565b60006105e26105f3565b90506105ee82826106d9565b919050565b6000604051905090565b600067ffffffffffffffff8211156106185761061761070a565b5b6106218261076b565b9050602081019050919050565b600081519050919050565b600082825260208201905092915050565b600082825260208201905092915050565b60006106668261066d565b9050919050565b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000819050919050565b82818337600083830152505050565b60005b838110156106c45780820151818401526020810190506106a9565b838111156106d3576000848401525b50505050565b6106e28261076b565b810181811067ffffffffffffffff821117156107015761070061070a565b5b80604052505050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b600080fd5b600080fd5b600080fd5b600080fd5b600080fd5b600080fd5b600080fd5b600080fd5b600080fd5b600080fd5b6000601f19601f8301169050919050565b6107858161065b565b811461079057600080fd5b50565b61079c8161068d565b81146107a757600080fd5b5056fea26469706673582212206e1d5161a8564bff4ad3771706535f8697b52467c67a937ab41be2b7692b6a3a64736f6c63430008070033", } // TestZContractABI is the input ABI used to generate the binding from. @@ -258,6 +258,48 @@ func (_TestZContract *TestZContractTransactorSession) OnRevert(context RevertCon return _TestZContract.Contract.OnRevert(&_TestZContract.TransactOpts, context, zrc20, amount, message) } +// Fallback is a paid mutator transaction binding the contract fallback function. +// +// Solidity: fallback() payable returns() +func (_TestZContract *TestZContractTransactor) Fallback(opts *bind.TransactOpts, calldata []byte) (*types.Transaction, error) { + return _TestZContract.contract.RawTransact(opts, calldata) +} + +// Fallback is a paid mutator transaction binding the contract fallback function. +// +// Solidity: fallback() payable returns() +func (_TestZContract *TestZContractSession) Fallback(calldata []byte) (*types.Transaction, error) { + return _TestZContract.Contract.Fallback(&_TestZContract.TransactOpts, calldata) +} + +// Fallback is a paid mutator transaction binding the contract fallback function. +// +// Solidity: fallback() payable returns() +func (_TestZContract *TestZContractTransactorSession) Fallback(calldata []byte) (*types.Transaction, error) { + return _TestZContract.Contract.Fallback(&_TestZContract.TransactOpts, calldata) +} + +// Receive is a paid mutator transaction binding the contract receive function. +// +// Solidity: receive() payable returns() +func (_TestZContract *TestZContractTransactor) Receive(opts *bind.TransactOpts) (*types.Transaction, error) { + return _TestZContract.contract.RawTransact(opts, nil) // calldata is disallowed for receive function +} + +// Receive is a paid mutator transaction binding the contract receive function. +// +// Solidity: receive() payable returns() +func (_TestZContract *TestZContractSession) Receive() (*types.Transaction, error) { + return _TestZContract.Contract.Receive(&_TestZContract.TransactOpts) +} + +// Receive is a paid mutator transaction binding the contract receive function. +// +// Solidity: receive() payable returns() +func (_TestZContract *TestZContractTransactorSession) Receive() (*types.Transaction, error) { + return _TestZContract.Contract.Receive(&_TestZContract.TransactOpts) +} + // TestZContractContextDataIterator is returned from FilterContextData and is used to iterate over the raw logs and unpacked data for ContextData events raised by the TestZContract contract. type TestZContractContextDataIterator struct { Event *TestZContractContextData // Event containing the contract specifics and raw log @@ -395,3 +437,141 @@ func (_TestZContract *TestZContractFilterer) ParseContextData(log types.Log) (*T event.Raw = log return event, nil } + +// TestZContractContextDataRevertIterator is returned from FilterContextDataRevert and is used to iterate over the raw logs and unpacked data for ContextDataRevert events raised by the TestZContract contract. +type TestZContractContextDataRevertIterator struct { + Event *TestZContractContextDataRevert // Event containing the contract specifics and raw log + + contract *bind.BoundContract // Generic contract to use for unpacking event data + event string // Event name to use for unpacking event data + + logs chan types.Log // Log channel receiving the found contract events + sub ethereum.Subscription // Subscription for errors, completion and termination + done bool // Whether the subscription completed delivering logs + fail error // Occurred error to stop iteration +} + +// Next advances the iterator to the subsequent event, returning whether there +// are any more events found. In case of a retrieval or parsing error, false is +// returned and Error() can be queried for the exact failure. +func (it *TestZContractContextDataRevertIterator) Next() bool { + // If the iterator failed, stop iterating + if it.fail != nil { + return false + } + // If the iterator completed, deliver directly whatever's available + if it.done { + select { + case log := <-it.logs: + it.Event = new(TestZContractContextDataRevert) + 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 + } + } + // Iterator still in progress, wait for either a data or an error event + select { + case log := <-it.logs: + it.Event = new(TestZContractContextDataRevert) + 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() + } +} + +// Error returns any retrieval or parsing error occurred during filtering. +func (it *TestZContractContextDataRevertIterator) Error() error { + return it.fail +} + +// Close terminates the iteration process, releasing any pending underlying +// resources. +func (it *TestZContractContextDataRevertIterator) Close() error { + it.sub.Unsubscribe() + return nil +} + +// TestZContractContextDataRevert represents a ContextDataRevert event raised by the TestZContract contract. +type TestZContractContextDataRevert struct { + Origin []byte + Sender common.Address + ChainID *big.Int + MsgSender common.Address + Message string + Raw types.Log // Blockchain specific contextual infos +} + +// FilterContextDataRevert is a free log retrieval operation binding the contract event 0xfdc887992b033668833927e252058e468fac0b6bd196d520f09c61b740e99948. +// +// Solidity: event ContextDataRevert(bytes origin, address sender, uint256 chainID, address msgSender, string message) +func (_TestZContract *TestZContractFilterer) FilterContextDataRevert(opts *bind.FilterOpts) (*TestZContractContextDataRevertIterator, error) { + + logs, sub, err := _TestZContract.contract.FilterLogs(opts, "ContextDataRevert") + if err != nil { + return nil, err + } + return &TestZContractContextDataRevertIterator{contract: _TestZContract.contract, event: "ContextDataRevert", logs: logs, sub: sub}, nil +} + +// WatchContextDataRevert is a free log subscription operation binding the contract event 0xfdc887992b033668833927e252058e468fac0b6bd196d520f09c61b740e99948. +// +// Solidity: event ContextDataRevert(bytes origin, address sender, uint256 chainID, address msgSender, string message) +func (_TestZContract *TestZContractFilterer) WatchContextDataRevert(opts *bind.WatchOpts, sink chan<- *TestZContractContextDataRevert) (event.Subscription, error) { + + logs, sub, err := _TestZContract.contract.WatchLogs(opts, "ContextDataRevert") + if err != nil { + return nil, err + } + return event.NewSubscription(func(quit <-chan struct{}) error { + defer sub.Unsubscribe() + for { + select { + case log := <-logs: + // New log arrived, parse the event and forward to the user + event := new(TestZContractContextDataRevert) + if err := _TestZContract.contract.UnpackLog(event, "ContextDataRevert", 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 +} + +// ParseContextDataRevert is a log parse operation binding the contract event 0xfdc887992b033668833927e252058e468fac0b6bd196d520f09c61b740e99948. +// +// Solidity: event ContextDataRevert(bytes origin, address sender, uint256 chainID, address msgSender, string message) +func (_TestZContract *TestZContractFilterer) ParseContextDataRevert(log types.Log) (*TestZContractContextDataRevert, error) { + event := new(TestZContractContextDataRevert) + if err := _TestZContract.contract.UnpackLog(event, "ContextDataRevert", log); err != nil { + return nil, err + } + event.Raw = log + return event, nil +} diff --git a/pkg/contracts/zevm/wzeta.sol/weth9.go b/pkg/contracts/zevm/wzeta.sol/weth9.go index bce542f1..162a6c50 100644 --- a/pkg/contracts/zevm/wzeta.sol/weth9.go +++ b/pkg/contracts/zevm/wzeta.sol/weth9.go @@ -31,8 +31,8 @@ var ( // WETH9MetaData contains all meta data concerning the WETH9 contract. var WETH9MetaData = &bind.MetaData{ - ABI: "[{\"constant\":true,\"inputs\":[],\"name\":\"name\",\"outputs\":[{\"name\":\"\",\"type\":\"string\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":false,\"inputs\":[{\"name\":\"guy\",\"type\":\"address\"},{\"name\":\"wad\",\"type\":\"uint256\"}],\"name\":\"approve\",\"outputs\":[{\"name\":\"\",\"type\":\"bool\"}],\"payable\":false,\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[],\"name\":\"totalSupply\",\"outputs\":[{\"name\":\"\",\"type\":\"uint256\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":false,\"inputs\":[{\"name\":\"src\",\"type\":\"address\"},{\"name\":\"dst\",\"type\":\"address\"},{\"name\":\"wad\",\"type\":\"uint256\"}],\"name\":\"transferFrom\",\"outputs\":[{\"name\":\"\",\"type\":\"bool\"}],\"payable\":false,\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"constant\":false,\"inputs\":[{\"name\":\"wad\",\"type\":\"uint256\"}],\"name\":\"withdraw\",\"outputs\":[],\"payable\":false,\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[],\"name\":\"decimals\",\"outputs\":[{\"name\":\"\",\"type\":\"uint8\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[{\"name\":\"\",\"type\":\"address\"}],\"name\":\"balanceOf\",\"outputs\":[{\"name\":\"\",\"type\":\"uint256\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[],\"name\":\"symbol\",\"outputs\":[{\"name\":\"\",\"type\":\"string\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":false,\"inputs\":[{\"name\":\"dst\",\"type\":\"address\"},{\"name\":\"wad\",\"type\":\"uint256\"}],\"name\":\"transfer\",\"outputs\":[{\"name\":\"\",\"type\":\"bool\"}],\"payable\":false,\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"constant\":false,\"inputs\":[],\"name\":\"deposit\",\"outputs\":[],\"payable\":true,\"stateMutability\":\"payable\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[{\"name\":\"\",\"type\":\"address\"},{\"name\":\"\",\"type\":\"address\"}],\"name\":\"allowance\",\"outputs\":[{\"name\":\"\",\"type\":\"uint256\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"payable\":true,\"stateMutability\":\"payable\",\"type\":\"fallback\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"name\":\"src\",\"type\":\"address\"},{\"indexed\":true,\"name\":\"guy\",\"type\":\"address\"},{\"indexed\":false,\"name\":\"wad\",\"type\":\"uint256\"}],\"name\":\"Approval\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"name\":\"src\",\"type\":\"address\"},{\"indexed\":true,\"name\":\"dst\",\"type\":\"address\"},{\"indexed\":false,\"name\":\"wad\",\"type\":\"uint256\"}],\"name\":\"Transfer\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"name\":\"dst\",\"type\":\"address\"},{\"indexed\":false,\"name\":\"wad\",\"type\":\"uint256\"}],\"name\":\"Deposit\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"name\":\"src\",\"type\":\"address\"},{\"indexed\":false,\"name\":\"wad\",\"type\":\"uint256\"}],\"name\":\"Withdrawal\",\"type\":\"event\"}]", - Bin: "0x60606040526040805190810160405280600c81526020017f57726170706564205a65746100000000000000000000000000000000000000008152506000908051906020019061004f9291906100c8565b506040805190810160405280600581526020017f575a4554410000000000000000000000000000000000000000000000000000008152506001908051906020019061009b9291906100c8565b506012600260006101000a81548160ff021916908360ff16021790555034156100c357600080fd5b61016d565b828054600181600116156101000203166002900490600052602060002090601f016020900481019282601f1061010957805160ff1916838001178555610137565b82800160010185558215610137579182015b8281111561013657825182559160200191906001019061011b565b5b5090506101449190610148565b5090565b61016a91905b8082111561016657600081600090555060010161014e565b5090565b90565b610c348061017c6000396000f3006060604052600436106100af576000357c0100000000000000000000000000000000000000000000000000000000900463ffffffff16806306fdde03146100b9578063095ea7b31461014757806318160ddd146101a157806323b872dd146101ca5780632e1a7d4d14610243578063313ce5671461026657806370a082311461029557806395d89b41146102e2578063a9059cbb14610370578063d0e30db0146103ca578063dd62ed3e146103d4575b6100b7610440565b005b34156100c457600080fd5b6100cc6104dd565b6040518080602001828103825283818151815260200191508051906020019080838360005b8381101561010c5780820151818401526020810190506100f1565b50505050905090810190601f1680156101395780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b341561015257600080fd5b610187600480803573ffffffffffffffffffffffffffffffffffffffff1690602001909190803590602001909190505061057b565b604051808215151515815260200191505060405180910390f35b34156101ac57600080fd5b6101b461066d565b6040518082815260200191505060405180910390f35b34156101d557600080fd5b610229600480803573ffffffffffffffffffffffffffffffffffffffff1690602001909190803573ffffffffffffffffffffffffffffffffffffffff1690602001909190803590602001909190505061068c565b604051808215151515815260200191505060405180910390f35b341561024e57600080fd5b61026460048080359060200190919050506109d9565b005b341561027157600080fd5b610279610b05565b604051808260ff1660ff16815260200191505060405180910390f35b34156102a057600080fd5b6102cc600480803573ffffffffffffffffffffffffffffffffffffffff16906020019091905050610b18565b6040518082815260200191505060405180910390f35b34156102ed57600080fd5b6102f5610b30565b6040518080602001828103825283818151815260200191508051906020019080838360005b8381101561033557808201518184015260208101905061031a565b50505050905090810190601f1680156103625780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b341561037b57600080fd5b6103b0600480803573ffffffffffffffffffffffffffffffffffffffff16906020019091908035906020019091905050610bce565b604051808215151515815260200191505060405180910390f35b6103d2610440565b005b34156103df57600080fd5b61042a600480803573ffffffffffffffffffffffffffffffffffffffff1690602001909190803573ffffffffffffffffffffffffffffffffffffffff16906020019091905050610be3565b6040518082815260200191505060405180910390f35b34600360003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600082825401925050819055503373ffffffffffffffffffffffffffffffffffffffff167fe1fffcc4923d04b559f4d29a8bfc6cda04eb5b0d3c460751c2402c5c5cc9109c346040518082815260200191505060405180910390a2565b60008054600181600116156101000203166002900480601f0160208091040260200160405190810160405280929190818152602001828054600181600116156101000203166002900480156105735780601f1061054857610100808354040283529160200191610573565b820191906000526020600020905b81548152906001019060200180831161055657829003601f168201915b505050505081565b600081600460003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508273ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925846040518082815260200191505060405180910390a36001905092915050565b60003073ffffffffffffffffffffffffffffffffffffffff1631905090565b600081600360008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054101515156106dc57600080fd5b3373ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff16141580156107b457507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff600460008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205414155b156108cf5781600460008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020541015151561084457600080fd5b81600460008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600082825403925050819055505b81600360008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000828254039250508190555081600360008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600082825401925050819055508273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef846040518082815260200191505060405180910390a3600190509392505050565b80600360003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205410151515610a2757600080fd5b80600360003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600082825403925050819055503373ffffffffffffffffffffffffffffffffffffffff166108fc829081150290604051600060405180830381858888f193505050501515610ab457600080fd5b3373ffffffffffffffffffffffffffffffffffffffff167f7fcf532c15f0a6db0bd6d0e038bea71d30d808c7d98cb3bf7268a95bf5081b65826040518082815260200191505060405180910390a250565b600260009054906101000a900460ff1681565b60036020528060005260406000206000915090505481565b60018054600181600116156101000203166002900480601f016020809104026020016040519081016040528092919081815260200182805460018160011615610100020316600290048015610bc65780601f10610b9b57610100808354040283529160200191610bc6565b820191906000526020600020905b815481529060010190602001808311610ba957829003601f168201915b505050505081565b6000610bdb33848461068c565b905092915050565b60046020528160005260406000206020528060005260406000206000915091505054815600a165627a7a723058208e8d099f48a4e7a73b2709a09da4e0704fd1cb7ce15b8cdf4a7552b81095bc530029", + ABI: "[{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"src\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"guy\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"wad\",\"type\":\"uint256\"}],\"name\":\"Approval\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"dst\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"wad\",\"type\":\"uint256\"}],\"name\":\"Deposit\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"src\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"dst\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"wad\",\"type\":\"uint256\"}],\"name\":\"Transfer\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"src\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"wad\",\"type\":\"uint256\"}],\"name\":\"Withdrawal\",\"type\":\"event\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"name\":\"allowance\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"guy\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"wad\",\"type\":\"uint256\"}],\"name\":\"approve\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"name\":\"balanceOf\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"decimals\",\"outputs\":[{\"internalType\":\"uint8\",\"name\":\"\",\"type\":\"uint8\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"deposit\",\"outputs\":[],\"stateMutability\":\"payable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"name\",\"outputs\":[{\"internalType\":\"string\",\"name\":\"\",\"type\":\"string\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"symbol\",\"outputs\":[{\"internalType\":\"string\",\"name\":\"\",\"type\":\"string\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"totalSupply\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"dst\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"wad\",\"type\":\"uint256\"}],\"name\":\"transfer\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"src\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"dst\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"wad\",\"type\":\"uint256\"}],\"name\":\"transferFrom\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"wad\",\"type\":\"uint256\"}],\"name\":\"withdraw\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"stateMutability\":\"payable\",\"type\":\"receive\"}]", + Bin: "0x60806040526040518060400160405280600d81526020017f57726170706564204574686572000000000000000000000000000000000000008152506000908051906020019062000051929190620000d0565b506040518060400160405280600481526020017f5745544800000000000000000000000000000000000000000000000000000000815250600190805190602001906200009f929190620000d0565b506012600260006101000a81548160ff021916908360ff160217905550348015620000c957600080fd5b50620001e5565b828054620000de9062000180565b90600052602060002090601f0160209004810192826200010257600085556200014e565b82601f106200011d57805160ff19168380011785556200014e565b828001600101855582156200014e579182015b828111156200014d57825182559160200191906001019062000130565b5b5090506200015d919062000161565b5090565b5b808211156200017c57600081600090555060010162000162565b5090565b600060028204905060018216806200019957607f821691505b60208210811415620001b057620001af620001b6565b5b50919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b610fd380620001f56000396000f3fe6080604052600436106100a05760003560e01c8063313ce56711610064578063313ce567146101ad57806370a08231146101d857806395d89b4114610215578063a9059cbb14610240578063d0e30db01461027d578063dd62ed3e14610287576100af565b806306fdde03146100b4578063095ea7b3146100df57806318160ddd1461011c57806323b872dd146101475780632e1a7d4d14610184576100af565b366100af576100ad6102c4565b005b600080fd5b3480156100c057600080fd5b506100c961036a565b6040516100d69190610d20565b60405180910390f35b3480156100eb57600080fd5b5061010660048036038101906101019190610c0f565b6103f8565b6040516101139190610d05565b60405180910390f35b34801561012857600080fd5b506101316104ea565b60405161013e9190610d62565b60405180910390f35b34801561015357600080fd5b5061016e60048036038101906101699190610bbc565b6104f2565b60405161017b9190610d05565b60405180910390f35b34801561019057600080fd5b506101ab60048036038101906101a69190610c4f565b6108c2565b005b3480156101b957600080fd5b506101c2610a32565b6040516101cf9190610d7d565b60405180910390f35b3480156101e457600080fd5b506101ff60048036038101906101fa9190610b4f565b610a45565b60405161020c9190610d62565b60405180910390f35b34801561022157600080fd5b5061022a610a5d565b6040516102379190610d20565b60405180910390f35b34801561024c57600080fd5b5061026760048036038101906102629190610c0f565b610aeb565b6040516102749190610d05565b60405180910390f35b6102856102c4565b005b34801561029357600080fd5b506102ae60048036038101906102a99190610b7c565b610b00565b6040516102bb9190610d62565b60405180910390f35b34600360003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008282546103139190610db4565b925050819055503373ffffffffffffffffffffffffffffffffffffffff167fe1fffcc4923d04b559f4d29a8bfc6cda04eb5b0d3c460751c2402c5c5cc9109c346040516103609190610d62565b60405180910390a2565b6000805461037790610ec6565b80601f01602080910402602001604051908101604052809291908181526020018280546103a390610ec6565b80156103f05780601f106103c5576101008083540402835291602001916103f0565b820191906000526020600020905b8154815290600101906020018083116103d357829003601f168201915b505050505081565b600081600460003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508273ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925846040516104d89190610d62565b60405180910390a36001905092915050565b600047905090565b600081600360008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020541015610576576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161056d90610d42565b60405180910390fd5b3373ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff161415801561064e57507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff600460008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205414155b156107a65781600460008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020541015610712576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161070990610d42565b60405180910390fd5b81600460008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600082825461079e9190610e0a565b925050819055505b81600360008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008282546107f59190610e0a565b9250508190555081600360008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600082825461084b9190610db4565b925050819055508273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef846040516108af9190610d62565b60405180910390a3600190509392505050565b80600360003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020541015610944576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161093b90610d42565b60405180910390fd5b80600360003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008282546109939190610e0a565b925050819055503373ffffffffffffffffffffffffffffffffffffffff166108fc829081150290604051600060405180830381858888f193505050501580156109e0573d6000803e3d6000fd5b503373ffffffffffffffffffffffffffffffffffffffff167f7fcf532c15f0a6db0bd6d0e038bea71d30d808c7d98cb3bf7268a95bf5081b6582604051610a279190610d62565b60405180910390a250565b600260009054906101000a900460ff1681565b60036020528060005260406000206000915090505481565b60018054610a6a90610ec6565b80601f0160208091040260200160405190810160405280929190818152602001828054610a9690610ec6565b8015610ae35780601f10610ab857610100808354040283529160200191610ae3565b820191906000526020600020905b815481529060010190602001808311610ac657829003601f168201915b505050505081565b6000610af83384846104f2565b905092915050565b6004602052816000526040600020602052806000526040600020600091509150505481565b600081359050610b3481610f6f565b92915050565b600081359050610b4981610f86565b92915050565b600060208284031215610b6557610b64610f56565b5b6000610b7384828501610b25565b91505092915050565b60008060408385031215610b9357610b92610f56565b5b6000610ba185828601610b25565b9250506020610bb285828601610b25565b9150509250929050565b600080600060608486031215610bd557610bd4610f56565b5b6000610be386828701610b25565b9350506020610bf486828701610b25565b9250506040610c0586828701610b3a565b9150509250925092565b60008060408385031215610c2657610c25610f56565b5b6000610c3485828601610b25565b9250506020610c4585828601610b3a565b9150509250929050565b600060208284031215610c6557610c64610f56565b5b6000610c7384828501610b3a565b91505092915050565b610c8581610e50565b82525050565b6000610c9682610d98565b610ca08185610da3565b9350610cb0818560208601610e93565b610cb981610f5b565b840191505092915050565b6000610cd1600083610da3565b9150610cdc82610f6c565b600082019050919050565b610cf081610e7c565b82525050565b610cff81610e86565b82525050565b6000602082019050610d1a6000830184610c7c565b92915050565b60006020820190508181036000830152610d3a8184610c8b565b905092915050565b60006020820190508181036000830152610d5b81610cc4565b9050919050565b6000602082019050610d776000830184610ce7565b92915050565b6000602082019050610d926000830184610cf6565b92915050565b600081519050919050565b600082825260208201905092915050565b6000610dbf82610e7c565b9150610dca83610e7c565b9250827fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff03821115610dff57610dfe610ef8565b5b828201905092915050565b6000610e1582610e7c565b9150610e2083610e7c565b925082821015610e3357610e32610ef8565b5b828203905092915050565b6000610e4982610e5c565b9050919050565b60008115159050919050565b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000819050919050565b600060ff82169050919050565b60005b83811015610eb1578082015181840152602081019050610e96565b83811115610ec0576000848401525b50505050565b60006002820490506001821680610ede57607f821691505b60208210811415610ef257610ef1610f27565b5b50919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b600080fd5b6000601f19601f8301169050919050565b50565b610f7881610e3e565b8114610f8357600080fd5b50565b610f8f81610e7c565b8114610f9a57600080fd5b5056fea2646970667358221220ed2297470e8d6c8e387b5cdc1c81dd38decdf0b011f3c15df9f52f6da3dcc17664736f6c63430008070033", } // WETH9ABI is the input ABI used to generate the binding from. @@ -493,25 +493,25 @@ func (_WETH9 *WETH9TransactorSession) Withdraw(wad *big.Int) (*types.Transaction return _WETH9.Contract.Withdraw(&_WETH9.TransactOpts, wad) } -// Fallback is a paid mutator transaction binding the contract fallback function. +// Receive is a paid mutator transaction binding the contract receive function. // -// Solidity: fallback() payable returns() -func (_WETH9 *WETH9Transactor) Fallback(opts *bind.TransactOpts, calldata []byte) (*types.Transaction, error) { - return _WETH9.contract.RawTransact(opts, calldata) +// Solidity: receive() payable returns() +func (_WETH9 *WETH9Transactor) Receive(opts *bind.TransactOpts) (*types.Transaction, error) { + return _WETH9.contract.RawTransact(opts, nil) // calldata is disallowed for receive function } -// Fallback is a paid mutator transaction binding the contract fallback function. +// Receive is a paid mutator transaction binding the contract receive function. // -// Solidity: fallback() payable returns() -func (_WETH9 *WETH9Session) Fallback(calldata []byte) (*types.Transaction, error) { - return _WETH9.Contract.Fallback(&_WETH9.TransactOpts, calldata) +// Solidity: receive() payable returns() +func (_WETH9 *WETH9Session) Receive() (*types.Transaction, error) { + return _WETH9.Contract.Receive(&_WETH9.TransactOpts) } -// Fallback is a paid mutator transaction binding the contract fallback function. +// Receive is a paid mutator transaction binding the contract receive function. // -// Solidity: fallback() payable returns() -func (_WETH9 *WETH9TransactorSession) Fallback(calldata []byte) (*types.Transaction, error) { - return _WETH9.Contract.Fallback(&_WETH9.TransactOpts, calldata) +// Solidity: receive() payable returns() +func (_WETH9 *WETH9TransactorSession) Receive() (*types.Transaction, error) { + return _WETH9.Contract.Receive(&_WETH9.TransactOpts) } // WETH9ApprovalIterator is returned from FilterApproval and is used to iterate over the raw logs and unpacked data for Approval events raised by the WETH9 contract. diff --git a/typechain-types/contracts/prototypes/zevm/TestZContract.ts b/typechain-types/contracts/prototypes/zevm/TestZContract.ts index 89fc8331..52795556 100644 --- a/typechain-types/contracts/prototypes/zevm/TestZContract.ts +++ b/typechain-types/contracts/prototypes/zevm/TestZContract.ts @@ -88,9 +88,11 @@ export interface TestZContractInterface extends utils.Interface { events: { "ContextData(bytes,address,uint256,address,string)": EventFragment; + "ContextDataRevert(bytes,address,uint256,address,string)": EventFragment; }; getEvent(nameOrSignatureOrTopic: "ContextData"): EventFragment; + getEvent(nameOrSignatureOrTopic: "ContextDataRevert"): EventFragment; } export interface ContextDataEventObject { @@ -107,6 +109,21 @@ export type ContextDataEvent = TypedEvent< export type ContextDataEventFilter = TypedEventFilter; +export interface ContextDataRevertEventObject { + origin: string; + sender: string; + chainID: BigNumber; + msgSender: string; + message: string; +} +export type ContextDataRevertEvent = TypedEvent< + [string, string, BigNumber, string, string], + ContextDataRevertEventObject +>; + +export type ContextDataRevertEventFilter = + TypedEventFilter; + export interface TestZContract extends BaseContract { connect(signerOrProvider: Signer | Provider | string): this; attach(addressOrName: string): this; @@ -200,6 +217,21 @@ export interface TestZContract extends BaseContract { msgSender?: null, message?: null ): ContextDataEventFilter; + + "ContextDataRevert(bytes,address,uint256,address,string)"( + origin?: null, + sender?: null, + chainID?: null, + msgSender?: null, + message?: null + ): ContextDataRevertEventFilter; + ContextDataRevert( + origin?: null, + sender?: null, + chainID?: null, + msgSender?: null, + message?: null + ): ContextDataRevertEventFilter; }; estimateGas: { diff --git a/typechain-types/factories/contracts/prototypes/zevm/GatewayZEVM__factory.ts b/typechain-types/factories/contracts/prototypes/zevm/GatewayZEVM__factory.ts index 114b2279..2ff27a16 100644 --- a/typechain-types/factories/contracts/prototypes/zevm/GatewayZEVM__factory.ts +++ b/typechain-types/factories/contracts/prototypes/zevm/GatewayZEVM__factory.ts @@ -40,6 +40,11 @@ const _abi = [ name: "InvalidTarget", type: "error", }, + { + inputs: [], + name: "OnlyWZETAOrFungible", + type: "error", + }, { inputs: [], name: "WithdrawalFailed", @@ -695,10 +700,14 @@ const _abi = [ stateMutability: "view", type: "function", }, + { + stateMutability: "payable", + type: "receive", + }, ] as const; const _bytecode = - "0x60a06040523073ffffffffffffffffffffffffffffffffffffffff1660809073ffffffffffffffffffffffffffffffffffffffff1660601b8152503480156200004757600080fd5b50620000586200005e60201b60201c565b62000208565b600060019054906101000a900460ff1615620000b1576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401620000a8906200015c565b60405180910390fd5b60ff801660008054906101000a900460ff1660ff1614620001225760ff6000806101000a81548160ff021916908360ff1602179055507f7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb384740249860ff6040516200011991906200017e565b60405180910390a15b565b6000620001336027836200019b565b91506200014082620001b9565b604082019050919050565b6200015681620001ac565b82525050565b60006020820190508181036000830152620001778162000124565b9050919050565b60006020820190506200019560008301846200014b565b92915050565b600082825260208201905092915050565b600060ff82169050919050565b7f496e697469616c697a61626c653a20636f6e747261637420697320696e69746960008201527f616c697a696e6700000000000000000000000000000000000000000000000000602082015250565b60805160601c613d4b6200024360003960008181610a0801528181610a9701528181610ba901528181610c380152610ce80152613d4b6000f3fe60806040526004361061011f5760003560e01c806352d1902d116100a0578063bcf7f32b11610064578063bcf7f32b14610374578063c39aca371461039d578063c4d66de8146103c6578063f2fde38b146103ef578063f45346dc146104185761011f565b806352d1902d146102b55780635af65967146102e0578063715018a6146103095780637993c1e0146103205780638da5cb5b146103495761011f565b80632e1a7d4d116100e75780632e1a7d4d146101f3578063309f50041461021c5780633659cfe6146102455780633ce4a5bc1461026e5780634f1ef286146102995761011f565b80630ac7c44c14610124578063135390f91461014d57806321501a951461017657806321e093b11461019f578063267e75a0146101ca575b600080fd5b34801561013057600080fd5b5061014b60048036038101906101469190612891565b610441565b005b34801561015957600080fd5b50610174600480360381019061016f919061290d565b6104a8565b005b34801561018257600080fd5b5061019d60048036038101906101989190612b8c565b61059f565b005b3480156101ab57600080fd5b506101b461076e565b6040516101c1919061316c565b60405180910390f35b3480156101d657600080fd5b506101f160048036038101906101ec9190612c8a565b610794565b005b3480156101ff57600080fd5b5061021a60048036038101906102159190612c30565b610856565b005b34801561022857600080fd5b50610243600480360381019061023e9190612a20565b610912565b005b34801561025157600080fd5b5061026c6004803603810190610267919061271b565b610a06565b005b34801561027a57600080fd5b50610283610b8f565b604051610290919061316c565b60405180910390f35b6102b360048036038101906102ae9190612748565b610ba7565b005b3480156102c157600080fd5b506102ca610ce4565b6040516102d791906133a3565b60405180910390f35b3480156102ec57600080fd5b5061030760048036038101906103029190612a20565b610d9d565b005b34801561031557600080fd5b5061031e610fcf565b005b34801561032c57600080fd5b506103476004803603810190610342919061297c565b610fe3565b005b34801561035557600080fd5b5061035e6110e0565b60405161036b919061316c565b60405180910390f35b34801561038057600080fd5b5061039b60048036038101906103969190612ad6565b61110a565b005b3480156103a957600080fd5b506103c460048036038101906103bf9190612ad6565b6111fe565b005b3480156103d257600080fd5b506103ed60048036038101906103e8919061271b565b611430565b005b3480156103fb57600080fd5b506104166004803603810190610411919061271b565b611627565b005b34801561042457600080fd5b5061043f600480360381019061043a91906127e4565b6116ab565b005b610449611867565b3373ffffffffffffffffffffffffffffffffffffffff167f2b5af078ce280d812dc2241658dc5435c93408020e5418eef55a2b536de51c0f848484604051610493939291906133be565b60405180910390a26104a36118b7565b505050565b6104b0611867565b60006104bc83836118c1565b90503373ffffffffffffffffffffffffffffffffffffffff167f2265ce9ec38ea098a1143406678482665a6e1ccd82ab22d37eea3a78abc57716838686858773ffffffffffffffffffffffffffffffffffffffff16634d8943bb6040518163ffffffff1660e01b815260040160206040518083038186803b15801561054057600080fd5b505afa158015610554573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906105789190612c5d565b60405161058995949392919061330d565b60405180910390a25061059a6118b7565b505050565b73735b14bb79463307aacbed86daf3322b1e6226ab73ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614610618576040517f2b2add3d00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b73735b14bb79463307aacbed86daf3322b1e6226ab73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16148061069157503073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16145b156106c8576040517f82d5d76a00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6106d28484611bb1565b8273ffffffffffffffffffffffffffffffffffffffff1663de43156e8660fb60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff168786866040518663ffffffff1660e01b8152600401610735959493929190613609565b600060405180830381600087803b15801561074f57600080fd5b505af1158015610763573d6000803e3d6000fd5b505050505050505050565b60fb60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b61079c611867565b6107ba8373735b14bb79463307aacbed86daf3322b1e6226ab611bb1565b3373ffffffffffffffffffffffffffffffffffffffff167f2265ce9ec38ea098a1143406678482665a6e1ccd82ab22d37eea3a78abc57716600073735b14bb79463307aacbed86daf3322b1e6226ab6040516020016108199190613125565b60405160208183030381529060405286600080888860405161084197969594939291906131be565b60405180910390a26108516118b7565b505050565b61085e611867565b61087c8173735b14bb79463307aacbed86daf3322b1e6226ab611bb1565b3373ffffffffffffffffffffffffffffffffffffffff167f2265ce9ec38ea098a1143406678482665a6e1ccd82ab22d37eea3a78abc57716600073735b14bb79463307aacbed86daf3322b1e6226ab6040516020016108db9190613125565b604051602081830303815290604052846000806040516108ff95949392919061322f565b60405180910390a261090f6118b7565b50565b73735b14bb79463307aacbed86daf3322b1e6226ab73ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff161461098b576040517f2b2add3d00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b8273ffffffffffffffffffffffffffffffffffffffff166369582bee87878786866040518663ffffffff1660e01b81526004016109cc9594939291906135b4565b600060405180830381600087803b1580156109e657600080fd5b505af11580156109fa573d6000803e3d6000fd5b50505050505050505050565b7f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff163073ffffffffffffffffffffffffffffffffffffffff161415610a95576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610a8c90613454565b60405180910390fd5b7f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff16610ad4611dcd565b73ffffffffffffffffffffffffffffffffffffffff1614610b2a576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610b2190613474565b60405180910390fd5b610b3381611e24565b610b8c81600067ffffffffffffffff811115610b5257610b516138ce565b5b6040519080825280601f01601f191660200182016040528015610b845781602001600182028036833780820191505090505b506000611e2f565b50565b73735b14bb79463307aacbed86daf3322b1e6226ab81565b7f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff163073ffffffffffffffffffffffffffffffffffffffff161415610c36576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610c2d90613454565b60405180910390fd5b7f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff16610c75611dcd565b73ffffffffffffffffffffffffffffffffffffffff1614610ccb576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610cc290613474565b60405180910390fd5b610cd482611e24565b610ce082826001611e2f565b5050565b60007f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff163073ffffffffffffffffffffffffffffffffffffffff1614610d74576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610d6b90613494565b60405180910390fd5b7f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc60001b905090565b73735b14bb79463307aacbed86daf3322b1e6226ab73ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614610e16576040517f2b2add3d00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b73735b14bb79463307aacbed86daf3322b1e6226ab73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff161480610e8f57503073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16145b15610ec6576040517f82d5d76a00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b8473ffffffffffffffffffffffffffffffffffffffff166347e7ef2484866040518363ffffffff1660e01b8152600401610f0192919061337a565b602060405180830381600087803b158015610f1b57600080fd5b505af1158015610f2f573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610f539190612837565b508273ffffffffffffffffffffffffffffffffffffffff166369582bee87878786866040518663ffffffff1660e01b8152600401610f959594939291906135b4565b600060405180830381600087803b158015610faf57600080fd5b505af1158015610fc3573d6000803e3d6000fd5b50505050505050505050565b610fd7611fac565b610fe1600061202a565b565b610feb611867565b6000610ff785856118c1565b90503373ffffffffffffffffffffffffffffffffffffffff167f2265ce9ec38ea098a1143406678482665a6e1ccd82ab22d37eea3a78abc57716858888858973ffffffffffffffffffffffffffffffffffffffff16634d8943bb6040518163ffffffff1660e01b815260040160206040518083038186803b15801561107b57600080fd5b505afa15801561108f573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906110b39190612c5d565b89896040516110c8979695949392919061329c565b60405180910390a2506110d96118b7565b5050505050565b6000603360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b73735b14bb79463307aacbed86daf3322b1e6226ab73ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614611183576040517f2b2add3d00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b8273ffffffffffffffffffffffffffffffffffffffff1663de43156e87878786866040518663ffffffff1660e01b81526004016111c4959493929190613609565b600060405180830381600087803b1580156111de57600080fd5b505af11580156111f2573d6000803e3d6000fd5b50505050505050505050565b73735b14bb79463307aacbed86daf3322b1e6226ab73ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614611277576040517f2b2add3d00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b73735b14bb79463307aacbed86daf3322b1e6226ab73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614806112f057503073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16145b15611327576040517f82d5d76a00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b8473ffffffffffffffffffffffffffffffffffffffff166347e7ef2484866040518363ffffffff1660e01b815260040161136292919061337a565b602060405180830381600087803b15801561137c57600080fd5b505af1158015611390573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906113b49190612837565b508273ffffffffffffffffffffffffffffffffffffffff1663de43156e87878786866040518663ffffffff1660e01b81526004016113f6959493929190613609565b600060405180830381600087803b15801561141057600080fd5b505af1158015611424573d6000803e3d6000fd5b50505050505050505050565b60008060019054906101000a900460ff161590508080156114615750600160008054906101000a900460ff1660ff16105b8061148e5750611470306120f0565b15801561148d5750600160008054906101000a900460ff1660ff16145b5b6114cd576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016114c4906134d4565b60405180910390fd5b60016000806101000a81548160ff021916908360ff160217905550801561150a576001600060016101000a81548160ff0219169083151502179055505b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff161415611571576040517fd92e233d00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b611579612113565b61158161216c565b6115896121bd565b8160fb60006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555080156116235760008060016101000a81548160ff0219169083151502179055507f7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb3847402498600160405161161a91906133f7565b60405180910390a15b5050565b61162f611fac565b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff16141561169f576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161169690613434565b60405180910390fd5b6116a88161202a565b50565b73735b14bb79463307aacbed86daf3322b1e6226ab73ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614611724576040517f2b2add3d00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b73735b14bb79463307aacbed86daf3322b1e6226ab73ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff16148061179d57503073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff16145b156117d4576040517f82d5d76a00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b8273ffffffffffffffffffffffffffffffffffffffff166347e7ef2482846040518363ffffffff1660e01b815260040161180f92919061337a565b602060405180830381600087803b15801561182957600080fd5b505af115801561183d573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906118619190612837565b50505050565b600260c95414156118ad576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016118a490613594565b60405180910390fd5b600260c981905550565b600160c981905550565b60008060008373ffffffffffffffffffffffffffffffffffffffff1663d9eeebed6040518163ffffffff1660e01b8152600401604080518083038186803b15801561190b57600080fd5b505afa15801561191f573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061194391906127a4565b915091508173ffffffffffffffffffffffffffffffffffffffff166323b872dd3373735b14bb79463307aacbed86daf3322b1e6226ab846040518463ffffffff1660e01b815260040161199893929190613187565b602060405180830381600087803b1580156119b257600080fd5b505af11580156119c6573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906119ea9190612837565b611a20576040517f0a7cd6d600000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b8373ffffffffffffffffffffffffffffffffffffffff166323b872dd3330886040518463ffffffff1660e01b8152600401611a5d93929190613187565b602060405180830381600087803b158015611a7757600080fd5b505af1158015611a8b573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611aaf9190612837565b611ae5576040517f4dd9ee8d00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b8373ffffffffffffffffffffffffffffffffffffffff166342966c68866040518263ffffffff1660e01b8152600401611b1e919061365e565b602060405180830381600087803b158015611b3857600080fd5b505af1158015611b4c573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611b709190612837565b611ba6576040517f2c77e05c00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b809250505092915050565b60fb60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166323b872dd3330856040518463ffffffff1660e01b8152600401611c1093929190613187565b602060405180830381600087803b158015611c2a57600080fd5b505af1158015611c3e573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611c629190612837565b611c98576040517fc7ffc47b00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b60fb60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16632e1a7d4d836040518263ffffffff1660e01b8152600401611cf3919061365e565b600060405180830381600087803b158015611d0d57600080fd5b505af1158015611d21573d6000803e3d6000fd5b5050505060008173ffffffffffffffffffffffffffffffffffffffff1683604051611d4b90613157565b60006040518083038185875af1925050503d8060008114611d88576040519150601f19603f3d011682016040523d82523d6000602084013e611d8d565b606091505b5050905080611dc8576040517fc7ffc47b00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b505050565b6000611dfb7f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc60001b612216565b60000160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b611e2c611fac565b50565b611e5b7f4910fdfa16fed3260ed0e7147f7cc6da11a60208b5b9406d12a635614ffd914360001b612220565b60000160009054906101000a900460ff1615611e7f57611e7a8361222a565b611fa7565b8273ffffffffffffffffffffffffffffffffffffffff166352d1902d6040518163ffffffff1660e01b815260040160206040518083038186803b158015611ec557600080fd5b505afa925050508015611ef657506040513d601f19601f82011682018060405250810190611ef39190612864565b60015b611f35576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611f2c906134f4565b60405180910390fd5b7f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc60001b8114611f9a576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611f91906134b4565b60405180910390fd5b50611fa68383836122e3565b5b505050565b611fb461230f565b73ffffffffffffffffffffffffffffffffffffffff16611fd26110e0565b73ffffffffffffffffffffffffffffffffffffffff1614612028576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161201f90613534565b60405180910390fd5b565b6000603360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905081603360006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508173ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35050565b6000808273ffffffffffffffffffffffffffffffffffffffff163b119050919050565b600060019054906101000a900460ff16612162576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161215990613574565b60405180910390fd5b61216a612317565b565b600060019054906101000a900460ff166121bb576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016121b290613574565b60405180910390fd5b565b600060019054906101000a900460ff1661220c576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161220390613574565b60405180910390fd5b612214612378565b565b6000819050919050565b6000819050919050565b612233816120f0565b612272576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161226990613514565b60405180910390fd5b8061229f7f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc60001b612216565b60000160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b6122ec836123d1565b6000825111806122f95750805b1561230a576123088383612420565b505b505050565b600033905090565b600060019054906101000a900460ff16612366576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161235d90613574565b60405180910390fd5b61237661237161230f565b61202a565b565b600060019054906101000a900460ff166123c7576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016123be90613574565b60405180910390fd5b600160c981905550565b6123da8161222a565b8073ffffffffffffffffffffffffffffffffffffffff167fbc7cd75a20ee27fd9adebab32041f755214dbc6bffa90cc0225b39da2e5c2d3b60405160405180910390a250565b60606124458383604051806060016040528060278152602001613cef6027913961244d565b905092915050565b60606000808573ffffffffffffffffffffffffffffffffffffffff16856040516124779190613140565b600060405180830381855af49150503d80600081146124b2576040519150601f19603f3d011682016040523d82523d6000602084013e6124b7565b606091505b50915091506124c8868383876124d3565b925050509392505050565b606083156125365760008351141561252e576124ee856120f0565b61252d576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161252490613554565b60405180910390fd5b5b829050612541565b6125408383612549565b5b949350505050565b60008251111561255c5781518083602001fd5b806040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016125909190613412565b60405180910390fd5b60006125ac6125a78461369e565b613679565b9050828152602081018484840111156125c8576125c761391b565b5b6125d3848285613837565b509392505050565b6000813590506125ea81613c92565b92915050565b6000815190506125ff81613c92565b92915050565b60008151905061261481613ca9565b92915050565b60008151905061262981613cc0565b92915050565b60008083601f84011261264557612644613907565b5b8235905067ffffffffffffffff81111561266257612661613902565b5b60208301915083600182028301111561267e5761267d613916565b5b9250929050565b600082601f83011261269a57612699613907565b5b81356126aa848260208601612599565b91505092915050565b6000606082840312156126c9576126c861390c565b5b81905092915050565b6000606082840312156126e8576126e761390c565b5b81905092915050565b60008135905061270081613cd7565b92915050565b60008151905061271581613cd7565b92915050565b6000602082840312156127315761273061392a565b5b600061273f848285016125db565b91505092915050565b6000806040838503121561275f5761275e61392a565b5b600061276d858286016125db565b925050602083013567ffffffffffffffff81111561278e5761278d613920565b5b61279a85828601612685565b9150509250929050565b600080604083850312156127bb576127ba61392a565b5b60006127c9858286016125f0565b92505060206127da85828601612706565b9150509250929050565b6000806000606084860312156127fd576127fc61392a565b5b600061280b868287016125db565b935050602061281c868287016126f1565b925050604061282d868287016125db565b9150509250925092565b60006020828403121561284d5761284c61392a565b5b600061285b84828501612605565b91505092915050565b60006020828403121561287a5761287961392a565b5b60006128888482850161261a565b91505092915050565b6000806000604084860312156128aa576128a961392a565b5b600084013567ffffffffffffffff8111156128c8576128c7613920565b5b6128d486828701612685565b935050602084013567ffffffffffffffff8111156128f5576128f4613920565b5b6129018682870161262f565b92509250509250925092565b6000806000606084860312156129265761292561392a565b5b600084013567ffffffffffffffff81111561294457612943613920565b5b61295086828701612685565b9350506020612961868287016126f1565b9250506040612972868287016125db565b9150509250925092565b6000806000806000608086880312156129985761299761392a565b5b600086013567ffffffffffffffff8111156129b6576129b5613920565b5b6129c288828901612685565b95505060206129d3888289016126f1565b94505060406129e4888289016125db565b935050606086013567ffffffffffffffff811115612a0557612a04613920565b5b612a118882890161262f565b92509250509295509295909350565b60008060008060008060a08789031215612a3d57612a3c61392a565b5b600087013567ffffffffffffffff811115612a5b57612a5a613920565b5b612a6789828a016126b3565b9650506020612a7889828a016125db565b9550506040612a8989828a016126f1565b9450506060612a9a89828a016125db565b935050608087013567ffffffffffffffff811115612abb57612aba613920565b5b612ac789828a0161262f565b92509250509295509295509295565b60008060008060008060a08789031215612af357612af261392a565b5b600087013567ffffffffffffffff811115612b1157612b10613920565b5b612b1d89828a016126d2565b9650506020612b2e89828a016125db565b9550506040612b3f89828a016126f1565b9450506060612b5089828a016125db565b935050608087013567ffffffffffffffff811115612b7157612b70613920565b5b612b7d89828a0161262f565b92509250509295509295509295565b600080600080600060808688031215612ba857612ba761392a565b5b600086013567ffffffffffffffff811115612bc657612bc5613920565b5b612bd2888289016126d2565b9550506020612be3888289016126f1565b9450506040612bf4888289016125db565b935050606086013567ffffffffffffffff811115612c1557612c14613920565b5b612c218882890161262f565b92509250509295509295909350565b600060208284031215612c4657612c4561392a565b5b6000612c54848285016126f1565b91505092915050565b600060208284031215612c7357612c7261392a565b5b6000612c8184828501612706565b91505092915050565b600080600060408486031215612ca357612ca261392a565b5b6000612cb1868287016126f1565b935050602084013567ffffffffffffffff811115612cd257612cd1613920565b5b612cde8682870161262f565b92509250509250925092565b612cf3816137b4565b82525050565b612d02816137b4565b82525050565b612d19612d14826137b4565b6138aa565b82525050565b612d28816137d2565b82525050565b6000612d3a83856136e5565b9350612d47838584613837565b612d508361392f565b840190509392505050565b6000612d6783856136f6565b9350612d74838584613837565b612d7d8361392f565b840190509392505050565b6000612d93826136cf565b612d9d81856136f6565b9350612dad818560208601613846565b612db68161392f565b840191505092915050565b6000612dcc826136cf565b612dd68185613707565b9350612de6818560208601613846565b80840191505092915050565b612dfb81613813565b82525050565b612e0a81613825565b82525050565b6000612e1b826136da565b612e258185613712565b9350612e35818560208601613846565b612e3e8161392f565b840191505092915050565b6000612e56602683613712565b9150612e618261394d565b604082019050919050565b6000612e79602c83613712565b9150612e848261399c565b604082019050919050565b6000612e9c602c83613712565b9150612ea7826139eb565b604082019050919050565b6000612ebf603883613712565b9150612eca82613a3a565b604082019050919050565b6000612ee2602983613712565b9150612eed82613a89565b604082019050919050565b6000612f05602e83613712565b9150612f1082613ad8565b604082019050919050565b6000612f28602e83613712565b9150612f3382613b27565b604082019050919050565b6000612f4b602d83613712565b9150612f5682613b76565b604082019050919050565b6000612f6e602083613712565b9150612f7982613bc5565b602082019050919050565b6000612f916000836136f6565b9150612f9c82613bee565b600082019050919050565b6000612fb4600083613707565b9150612fbf82613bee565b600082019050919050565b6000612fd7601d83613712565b9150612fe282613bf1565b602082019050919050565b6000612ffa602b83613712565b915061300582613c1a565b604082019050919050565b600061301d601f83613712565b915061302882613c69565b602082019050919050565b600060608301613046600084018461373a565b8583036000870152613059838284612d2e565b9250505061306a6020840184613723565b6130776020860182612cea565b50613085604084018461379d565b6130926040860182613107565b508091505092915050565b6000606083016130b0600084018461373a565b85830360008701526130c3838284612d2e565b925050506130d46020840184613723565b6130e16020860182612cea565b506130ef604084018461379d565b6130fc6040860182613107565b508091505092915050565b613110816137fc565b82525050565b61311f816137fc565b82525050565b60006131318284612d08565b60148201915081905092915050565b600061314c8284612dc1565b915081905092915050565b600061316282612fa7565b9150819050919050565b60006020820190506131816000830184612cf9565b92915050565b600060608201905061319c6000830186612cf9565b6131a96020830185612cf9565b6131b66040830184613116565b949350505050565b600060c0820190506131d3600083018a612cf9565b81810360208301526131e58189612d88565b90506131f46040830188613116565b6132016060830187612df2565b61320e6080830186612df2565b81810360a0830152613221818486612d5b565b905098975050505050505050565b600060c0820190506132446000830188612cf9565b81810360208301526132568187612d88565b90506132656040830186613116565b6132726060830185612df2565b61327f6080830184612df2565b81810360a083015261329081612f84565b90509695505050505050565b600060c0820190506132b1600083018a612cf9565b81810360208301526132c38189612d88565b90506132d26040830188613116565b6132df6060830187613116565b6132ec6080830186613116565b81810360a08301526132ff818486612d5b565b905098975050505050505050565b600060c0820190506133226000830188612cf9565b81810360208301526133348187612d88565b90506133436040830186613116565b6133506060830185613116565b61335d6080830184613116565b81810360a083015261336e81612f84565b90509695505050505050565b600060408201905061338f6000830185612cf9565b61339c6020830184613116565b9392505050565b60006020820190506133b86000830184612d1f565b92915050565b600060408201905081810360008301526133d88186612d88565b905081810360208301526133ed818486612d5b565b9050949350505050565b600060208201905061340c6000830184612e01565b92915050565b6000602082019050818103600083015261342c8184612e10565b905092915050565b6000602082019050818103600083015261344d81612e49565b9050919050565b6000602082019050818103600083015261346d81612e6c565b9050919050565b6000602082019050818103600083015261348d81612e8f565b9050919050565b600060208201905081810360008301526134ad81612eb2565b9050919050565b600060208201905081810360008301526134cd81612ed5565b9050919050565b600060208201905081810360008301526134ed81612ef8565b9050919050565b6000602082019050818103600083015261350d81612f1b565b9050919050565b6000602082019050818103600083015261352d81612f3e565b9050919050565b6000602082019050818103600083015261354d81612f61565b9050919050565b6000602082019050818103600083015261356d81612fca565b9050919050565b6000602082019050818103600083015261358d81612fed565b9050919050565b600060208201905081810360008301526135ad81613010565b9050919050565b600060808201905081810360008301526135ce8188613033565b90506135dd6020830187612cf9565b6135ea6040830186613116565b81810360608301526135fd818486612d5b565b90509695505050505050565b60006080820190508181036000830152613623818861309d565b90506136326020830187612cf9565b61363f6040830186613116565b8181036060830152613652818486612d5b565b90509695505050505050565b60006020820190506136736000830184613116565b92915050565b6000613683613694565b905061368f8282613879565b919050565b6000604051905090565b600067ffffffffffffffff8211156136b9576136b86138ce565b5b6136c28261392f565b9050602081019050919050565b600081519050919050565b600081519050919050565b600082825260208201905092915050565b600082825260208201905092915050565b600081905092915050565b600082825260208201905092915050565b600061373260208401846125db565b905092915050565b6000808335600160200384360303811261375757613756613925565b5b83810192508235915060208301925067ffffffffffffffff82111561377f5761377e6138fd565b5b60018202360384131561379557613794613911565b5b509250929050565b60006137ac60208401846126f1565b905092915050565b60006137bf826137dc565b9050919050565b60008115159050919050565b6000819050919050565b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000819050919050565b600060ff82169050919050565b600061381e826137fc565b9050919050565b600061383082613806565b9050919050565b82818337600083830152505050565b60005b83811015613864578082015181840152602081019050613849565b83811115613873576000848401525b50505050565b6138828261392f565b810181811067ffffffffffffffff821117156138a1576138a06138ce565b5b80604052505050565b60006138b5826138bc565b9050919050565b60006138c782613940565b9050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b600080fd5b600080fd5b600080fd5b600080fd5b600080fd5b600080fd5b600080fd5b600080fd5b600080fd5b600080fd5b6000601f19601f8301169050919050565b60008160601b9050919050565b7f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160008201527f6464726573730000000000000000000000000000000000000000000000000000602082015250565b7f46756e6374696f6e206d7573742062652063616c6c6564207468726f7567682060008201527f64656c656761746563616c6c0000000000000000000000000000000000000000602082015250565b7f46756e6374696f6e206d7573742062652063616c6c6564207468726f7567682060008201527f6163746976652070726f78790000000000000000000000000000000000000000602082015250565b7f555550535570677261646561626c653a206d757374206e6f742062652063616c60008201527f6c6564207468726f7567682064656c656761746563616c6c0000000000000000602082015250565b7f45524331393637557067726164653a20756e737570706f727465642070726f7860008201527f6961626c65555549440000000000000000000000000000000000000000000000602082015250565b7f496e697469616c697a61626c653a20636f6e747261637420697320616c72656160008201527f647920696e697469616c697a6564000000000000000000000000000000000000602082015250565b7f45524331393637557067726164653a206e657720696d706c656d656e7461746960008201527f6f6e206973206e6f742055555053000000000000000000000000000000000000602082015250565b7f455243313936373a206e657720696d706c656d656e746174696f6e206973206e60008201527f6f74206120636f6e747261637400000000000000000000000000000000000000602082015250565b7f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572600082015250565b50565b7f416464726573733a2063616c6c20746f206e6f6e2d636f6e7472616374000000600082015250565b7f496e697469616c697a61626c653a20636f6e7472616374206973206e6f74206960008201527f6e697469616c697a696e67000000000000000000000000000000000000000000602082015250565b7f5265656e7472616e637947756172643a207265656e7472616e742063616c6c00600082015250565b613c9b816137b4565b8114613ca657600080fd5b50565b613cb2816137c6565b8114613cbd57600080fd5b50565b613cc9816137d2565b8114613cd457600080fd5b50565b613ce0816137fc565b8114613ceb57600080fd5b5056fe416464726573733a206c6f772d6c6576656c2064656c65676174652063616c6c206661696c6564a2646970667358221220f66452d96b0f29cb642f932d3b97697f48dd681a5f7d2af932bf5658decdb88364736f6c63430008070033"; + "0x60a06040523073ffffffffffffffffffffffffffffffffffffffff1660809073ffffffffffffffffffffffffffffffffffffffff1660601b8152503480156200004757600080fd5b50620000586200005e60201b60201c565b62000208565b600060019054906101000a900460ff1615620000b1576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401620000a8906200015c565b60405180910390fd5b60ff801660008054906101000a900460ff1660ff1614620001225760ff6000806101000a81548160ff021916908360ff1602179055507f7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb384740249860ff6040516200011991906200017e565b60405180910390a15b565b6000620001336027836200019b565b91506200014082620001b9565b604082019050919050565b6200015681620001ac565b82525050565b60006020820190508181036000830152620001778162000124565b9050919050565b60006020820190506200019560008301846200014b565b92915050565b600082825260208201905092915050565b600060ff82169050919050565b7f496e697469616c697a61626c653a20636f6e747261637420697320696e69746960008201527f616c697a696e6700000000000000000000000000000000000000000000000000602082015250565b60805160601c613e6d6200024360003960008181610b2a01528181610bb901528181610ccb01528181610d5a0152610e0a0152613e6d6000f3fe6080604052600436106101235760003560e01c806352d1902d116100a0578063bcf7f32b11610064578063bcf7f32b14610454578063c39aca371461047d578063c4d66de8146104a6578063f2fde38b146104cf578063f45346dc146104f8576101ff565b806352d1902d146103955780635af65967146103c0578063715018a6146103e95780637993c1e0146104005780638da5cb5b14610429576101ff565b80632e1a7d4d116100e75780632e1a7d4d146102d3578063309f5004146102fc5780633659cfe6146103255780633ce4a5bc1461034e5780634f1ef28614610379576101ff565b80630ac7c44c14610204578063135390f91461022d57806321501a951461025657806321e093b11461027f578063267e75a0146102aa576101ff565b366101ff5760fb60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16141580156101c6575073735b14bb79463307aacbed86daf3322b1e6226ab73ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614155b156101fd576040517f229930b200000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b005b600080fd5b34801561021057600080fd5b5061022b600480360381019061022691906129b3565b610521565b005b34801561023957600080fd5b50610254600480360381019061024f9190612a2f565b610588565b005b34801561026257600080fd5b5061027d60048036038101906102789190612cae565b61067f565b005b34801561028b57600080fd5b5061029461084e565b6040516102a1919061328e565b60405180910390f35b3480156102b657600080fd5b506102d160048036038101906102cc9190612dac565b610874565b005b3480156102df57600080fd5b506102fa60048036038101906102f59190612d52565b610957565b005b34801561030857600080fd5b50610323600480360381019061031e9190612b42565b610a34565b005b34801561033157600080fd5b5061034c6004803603810190610347919061283d565b610b28565b005b34801561035a57600080fd5b50610363610cb1565b604051610370919061328e565b60405180910390f35b610393600480360381019061038e919061286a565b610cc9565b005b3480156103a157600080fd5b506103aa610e06565b6040516103b791906134c5565b60405180910390f35b3480156103cc57600080fd5b506103e760048036038101906103e29190612b42565b610ebf565b005b3480156103f557600080fd5b506103fe6110f1565b005b34801561040c57600080fd5b5061042760048036038101906104229190612a9e565b611105565b005b34801561043557600080fd5b5061043e611202565b60405161044b919061328e565b60405180910390f35b34801561046057600080fd5b5061047b60048036038101906104769190612bf8565b61122c565b005b34801561048957600080fd5b506104a4600480360381019061049f9190612bf8565b611320565b005b3480156104b257600080fd5b506104cd60048036038101906104c8919061283d565b611552565b005b3480156104db57600080fd5b506104f660048036038101906104f1919061283d565b611749565b005b34801561050457600080fd5b5061051f600480360381019061051a9190612906565b6117cd565b005b610529611989565b3373ffffffffffffffffffffffffffffffffffffffff167f2b5af078ce280d812dc2241658dc5435c93408020e5418eef55a2b536de51c0f848484604051610573939291906134e0565b60405180910390a26105836119d9565b505050565b610590611989565b600061059c83836119e3565b90503373ffffffffffffffffffffffffffffffffffffffff167f2265ce9ec38ea098a1143406678482665a6e1ccd82ab22d37eea3a78abc57716838686858773ffffffffffffffffffffffffffffffffffffffff16634d8943bb6040518163ffffffff1660e01b815260040160206040518083038186803b15801561062057600080fd5b505afa158015610634573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906106589190612d7f565b60405161066995949392919061342f565b60405180910390a25061067a6119d9565b505050565b73735b14bb79463307aacbed86daf3322b1e6226ab73ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16146106f8576040517f2b2add3d00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b73735b14bb79463307aacbed86daf3322b1e6226ab73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16148061077157503073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16145b156107a8576040517f82d5d76a00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6107b28484611cd3565b8273ffffffffffffffffffffffffffffffffffffffff1663de43156e8660fb60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff168786866040518663ffffffff1660e01b815260040161081595949392919061372b565b600060405180830381600087803b15801561082f57600080fd5b505af1158015610843573d6000803e3d6000fd5b505050505050505050565b60fb60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b61087c611989565b61089a8373735b14bb79463307aacbed86daf3322b1e6226ab611cd3565b3373ffffffffffffffffffffffffffffffffffffffff167f2265ce9ec38ea098a1143406678482665a6e1ccd82ab22d37eea3a78abc5771660fb60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673735b14bb79463307aacbed86daf3322b1e6226ab60405160200161091a9190613247565b60405160208183030381529060405286600080888860405161094297969594939291906132e0565b60405180910390a26109526119d9565b505050565b61095f611989565b61097d8173735b14bb79463307aacbed86daf3322b1e6226ab611cd3565b3373ffffffffffffffffffffffffffffffffffffffff167f2265ce9ec38ea098a1143406678482665a6e1ccd82ab22d37eea3a78abc5771660fb60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673735b14bb79463307aacbed86daf3322b1e6226ab6040516020016109fd9190613247565b60405160208183030381529060405284600080604051610a21959493929190613351565b60405180910390a2610a316119d9565b50565b73735b14bb79463307aacbed86daf3322b1e6226ab73ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614610aad576040517f2b2add3d00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b8273ffffffffffffffffffffffffffffffffffffffff166369582bee87878786866040518663ffffffff1660e01b8152600401610aee9594939291906136d6565b600060405180830381600087803b158015610b0857600080fd5b505af1158015610b1c573d6000803e3d6000fd5b50505050505050505050565b7f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff163073ffffffffffffffffffffffffffffffffffffffff161415610bb7576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610bae90613576565b60405180910390fd5b7f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff16610bf6611eef565b73ffffffffffffffffffffffffffffffffffffffff1614610c4c576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610c4390613596565b60405180910390fd5b610c5581611f46565b610cae81600067ffffffffffffffff811115610c7457610c736139f0565b5b6040519080825280601f01601f191660200182016040528015610ca65781602001600182028036833780820191505090505b506000611f51565b50565b73735b14bb79463307aacbed86daf3322b1e6226ab81565b7f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff163073ffffffffffffffffffffffffffffffffffffffff161415610d58576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610d4f90613576565b60405180910390fd5b7f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff16610d97611eef565b73ffffffffffffffffffffffffffffffffffffffff1614610ded576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610de490613596565b60405180910390fd5b610df682611f46565b610e0282826001611f51565b5050565b60007f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff163073ffffffffffffffffffffffffffffffffffffffff1614610e96576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610e8d906135b6565b60405180910390fd5b7f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc60001b905090565b73735b14bb79463307aacbed86daf3322b1e6226ab73ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614610f38576040517f2b2add3d00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b73735b14bb79463307aacbed86daf3322b1e6226ab73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff161480610fb157503073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16145b15610fe8576040517f82d5d76a00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b8473ffffffffffffffffffffffffffffffffffffffff166347e7ef2484866040518363ffffffff1660e01b815260040161102392919061349c565b602060405180830381600087803b15801561103d57600080fd5b505af1158015611051573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906110759190612959565b508273ffffffffffffffffffffffffffffffffffffffff166369582bee87878786866040518663ffffffff1660e01b81526004016110b79594939291906136d6565b600060405180830381600087803b1580156110d157600080fd5b505af11580156110e5573d6000803e3d6000fd5b50505050505050505050565b6110f96120ce565b611103600061214c565b565b61110d611989565b600061111985856119e3565b90503373ffffffffffffffffffffffffffffffffffffffff167f2265ce9ec38ea098a1143406678482665a6e1ccd82ab22d37eea3a78abc57716858888858973ffffffffffffffffffffffffffffffffffffffff16634d8943bb6040518163ffffffff1660e01b815260040160206040518083038186803b15801561119d57600080fd5b505afa1580156111b1573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906111d59190612d7f565b89896040516111ea97969594939291906133be565b60405180910390a2506111fb6119d9565b5050505050565b6000603360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b73735b14bb79463307aacbed86daf3322b1e6226ab73ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16146112a5576040517f2b2add3d00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b8273ffffffffffffffffffffffffffffffffffffffff1663de43156e87878786866040518663ffffffff1660e01b81526004016112e695949392919061372b565b600060405180830381600087803b15801561130057600080fd5b505af1158015611314573d6000803e3d6000fd5b50505050505050505050565b73735b14bb79463307aacbed86daf3322b1e6226ab73ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614611399576040517f2b2add3d00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b73735b14bb79463307aacbed86daf3322b1e6226ab73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16148061141257503073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16145b15611449576040517f82d5d76a00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b8473ffffffffffffffffffffffffffffffffffffffff166347e7ef2484866040518363ffffffff1660e01b815260040161148492919061349c565b602060405180830381600087803b15801561149e57600080fd5b505af11580156114b2573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906114d69190612959565b508273ffffffffffffffffffffffffffffffffffffffff1663de43156e87878786866040518663ffffffff1660e01b815260040161151895949392919061372b565b600060405180830381600087803b15801561153257600080fd5b505af1158015611546573d6000803e3d6000fd5b50505050505050505050565b60008060019054906101000a900460ff161590508080156115835750600160008054906101000a900460ff1660ff16105b806115b0575061159230612212565b1580156115af5750600160008054906101000a900460ff1660ff16145b5b6115ef576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016115e6906135f6565b60405180910390fd5b60016000806101000a81548160ff021916908360ff160217905550801561162c576001600060016101000a81548160ff0219169083151502179055505b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff161415611693576040517fd92e233d00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b61169b612235565b6116a361228e565b6116ab6122df565b8160fb60006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555080156117455760008060016101000a81548160ff0219169083151502179055507f7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb3847402498600160405161173c9190613519565b60405180910390a15b5050565b6117516120ce565b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1614156117c1576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016117b890613556565b60405180910390fd5b6117ca8161214c565b50565b73735b14bb79463307aacbed86daf3322b1e6226ab73ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614611846576040517f2b2add3d00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b73735b14bb79463307aacbed86daf3322b1e6226ab73ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1614806118bf57503073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff16145b156118f6576040517f82d5d76a00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b8273ffffffffffffffffffffffffffffffffffffffff166347e7ef2482846040518363ffffffff1660e01b815260040161193192919061349c565b602060405180830381600087803b15801561194b57600080fd5b505af115801561195f573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906119839190612959565b50505050565b600260c95414156119cf576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016119c6906136b6565b60405180910390fd5b600260c981905550565b600160c981905550565b60008060008373ffffffffffffffffffffffffffffffffffffffff1663d9eeebed6040518163ffffffff1660e01b8152600401604080518083038186803b158015611a2d57600080fd5b505afa158015611a41573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611a6591906128c6565b915091508173ffffffffffffffffffffffffffffffffffffffff166323b872dd3373735b14bb79463307aacbed86daf3322b1e6226ab846040518463ffffffff1660e01b8152600401611aba939291906132a9565b602060405180830381600087803b158015611ad457600080fd5b505af1158015611ae8573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611b0c9190612959565b611b42576040517f0a7cd6d600000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b8373ffffffffffffffffffffffffffffffffffffffff166323b872dd3330886040518463ffffffff1660e01b8152600401611b7f939291906132a9565b602060405180830381600087803b158015611b9957600080fd5b505af1158015611bad573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611bd19190612959565b611c07576040517f4dd9ee8d00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b8373ffffffffffffffffffffffffffffffffffffffff166342966c68866040518263ffffffff1660e01b8152600401611c409190613780565b602060405180830381600087803b158015611c5a57600080fd5b505af1158015611c6e573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611c929190612959565b611cc8576040517f2c77e05c00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b809250505092915050565b60fb60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166323b872dd3330856040518463ffffffff1660e01b8152600401611d32939291906132a9565b602060405180830381600087803b158015611d4c57600080fd5b505af1158015611d60573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611d849190612959565b611dba576040517fc7ffc47b00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b60fb60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16632e1a7d4d836040518263ffffffff1660e01b8152600401611e159190613780565b600060405180830381600087803b158015611e2f57600080fd5b505af1158015611e43573d6000803e3d6000fd5b5050505060008173ffffffffffffffffffffffffffffffffffffffff1683604051611e6d90613279565b60006040518083038185875af1925050503d8060008114611eaa576040519150601f19603f3d011682016040523d82523d6000602084013e611eaf565b606091505b5050905080611eea576040517fc7ffc47b00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b505050565b6000611f1d7f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc60001b612338565b60000160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b611f4e6120ce565b50565b611f7d7f4910fdfa16fed3260ed0e7147f7cc6da11a60208b5b9406d12a635614ffd914360001b612342565b60000160009054906101000a900460ff1615611fa157611f9c8361234c565b6120c9565b8273ffffffffffffffffffffffffffffffffffffffff166352d1902d6040518163ffffffff1660e01b815260040160206040518083038186803b158015611fe757600080fd5b505afa92505050801561201857506040513d601f19601f820116820180604052508101906120159190612986565b60015b612057576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161204e90613616565b60405180910390fd5b7f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc60001b81146120bc576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016120b3906135d6565b60405180910390fd5b506120c8838383612405565b5b505050565b6120d6612431565b73ffffffffffffffffffffffffffffffffffffffff166120f4611202565b73ffffffffffffffffffffffffffffffffffffffff161461214a576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161214190613656565b60405180910390fd5b565b6000603360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905081603360006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508173ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35050565b6000808273ffffffffffffffffffffffffffffffffffffffff163b119050919050565b600060019054906101000a900460ff16612284576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161227b90613696565b60405180910390fd5b61228c612439565b565b600060019054906101000a900460ff166122dd576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016122d490613696565b60405180910390fd5b565b600060019054906101000a900460ff1661232e576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161232590613696565b60405180910390fd5b61233661249a565b565b6000819050919050565b6000819050919050565b61235581612212565b612394576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161238b90613636565b60405180910390fd5b806123c17f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc60001b612338565b60000160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b61240e836124f3565b60008251118061241b5750805b1561242c5761242a8383612542565b505b505050565b600033905090565b600060019054906101000a900460ff16612488576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161247f90613696565b60405180910390fd5b612498612493612431565b61214c565b565b600060019054906101000a900460ff166124e9576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016124e090613696565b60405180910390fd5b600160c981905550565b6124fc8161234c565b8073ffffffffffffffffffffffffffffffffffffffff167fbc7cd75a20ee27fd9adebab32041f755214dbc6bffa90cc0225b39da2e5c2d3b60405160405180910390a250565b60606125678383604051806060016040528060278152602001613e116027913961256f565b905092915050565b60606000808573ffffffffffffffffffffffffffffffffffffffff16856040516125999190613262565b600060405180830381855af49150503d80600081146125d4576040519150601f19603f3d011682016040523d82523d6000602084013e6125d9565b606091505b50915091506125ea868383876125f5565b925050509392505050565b60608315612658576000835114156126505761261085612212565b61264f576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161264690613676565b60405180910390fd5b5b829050612663565b612662838361266b565b5b949350505050565b60008251111561267e5781518083602001fd5b806040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016126b29190613534565b60405180910390fd5b60006126ce6126c9846137c0565b61379b565b9050828152602081018484840111156126ea576126e9613a3d565b5b6126f5848285613959565b509392505050565b60008135905061270c81613db4565b92915050565b60008151905061272181613db4565b92915050565b60008151905061273681613dcb565b92915050565b60008151905061274b81613de2565b92915050565b60008083601f84011261276757612766613a29565b5b8235905067ffffffffffffffff81111561278457612783613a24565b5b6020830191508360018202830111156127a05761279f613a38565b5b9250929050565b600082601f8301126127bc576127bb613a29565b5b81356127cc8482602086016126bb565b91505092915050565b6000606082840312156127eb576127ea613a2e565b5b81905092915050565b60006060828403121561280a57612809613a2e565b5b81905092915050565b60008135905061282281613df9565b92915050565b60008151905061283781613df9565b92915050565b60006020828403121561285357612852613a4c565b5b6000612861848285016126fd565b91505092915050565b6000806040838503121561288157612880613a4c565b5b600061288f858286016126fd565b925050602083013567ffffffffffffffff8111156128b0576128af613a42565b5b6128bc858286016127a7565b9150509250929050565b600080604083850312156128dd576128dc613a4c565b5b60006128eb85828601612712565b92505060206128fc85828601612828565b9150509250929050565b60008060006060848603121561291f5761291e613a4c565b5b600061292d868287016126fd565b935050602061293e86828701612813565b925050604061294f868287016126fd565b9150509250925092565b60006020828403121561296f5761296e613a4c565b5b600061297d84828501612727565b91505092915050565b60006020828403121561299c5761299b613a4c565b5b60006129aa8482850161273c565b91505092915050565b6000806000604084860312156129cc576129cb613a4c565b5b600084013567ffffffffffffffff8111156129ea576129e9613a42565b5b6129f6868287016127a7565b935050602084013567ffffffffffffffff811115612a1757612a16613a42565b5b612a2386828701612751565b92509250509250925092565b600080600060608486031215612a4857612a47613a4c565b5b600084013567ffffffffffffffff811115612a6657612a65613a42565b5b612a72868287016127a7565b9350506020612a8386828701612813565b9250506040612a94868287016126fd565b9150509250925092565b600080600080600060808688031215612aba57612ab9613a4c565b5b600086013567ffffffffffffffff811115612ad857612ad7613a42565b5b612ae4888289016127a7565b9550506020612af588828901612813565b9450506040612b06888289016126fd565b935050606086013567ffffffffffffffff811115612b2757612b26613a42565b5b612b3388828901612751565b92509250509295509295909350565b60008060008060008060a08789031215612b5f57612b5e613a4c565b5b600087013567ffffffffffffffff811115612b7d57612b7c613a42565b5b612b8989828a016127d5565b9650506020612b9a89828a016126fd565b9550506040612bab89828a01612813565b9450506060612bbc89828a016126fd565b935050608087013567ffffffffffffffff811115612bdd57612bdc613a42565b5b612be989828a01612751565b92509250509295509295509295565b60008060008060008060a08789031215612c1557612c14613a4c565b5b600087013567ffffffffffffffff811115612c3357612c32613a42565b5b612c3f89828a016127f4565b9650506020612c5089828a016126fd565b9550506040612c6189828a01612813565b9450506060612c7289828a016126fd565b935050608087013567ffffffffffffffff811115612c9357612c92613a42565b5b612c9f89828a01612751565b92509250509295509295509295565b600080600080600060808688031215612cca57612cc9613a4c565b5b600086013567ffffffffffffffff811115612ce857612ce7613a42565b5b612cf4888289016127f4565b9550506020612d0588828901612813565b9450506040612d16888289016126fd565b935050606086013567ffffffffffffffff811115612d3757612d36613a42565b5b612d4388828901612751565b92509250509295509295909350565b600060208284031215612d6857612d67613a4c565b5b6000612d7684828501612813565b91505092915050565b600060208284031215612d9557612d94613a4c565b5b6000612da384828501612828565b91505092915050565b600080600060408486031215612dc557612dc4613a4c565b5b6000612dd386828701612813565b935050602084013567ffffffffffffffff811115612df457612df3613a42565b5b612e0086828701612751565b92509250509250925092565b612e15816138d6565b82525050565b612e24816138d6565b82525050565b612e3b612e36826138d6565b6139cc565b82525050565b612e4a816138f4565b82525050565b6000612e5c8385613807565b9350612e69838584613959565b612e7283613a51565b840190509392505050565b6000612e898385613818565b9350612e96838584613959565b612e9f83613a51565b840190509392505050565b6000612eb5826137f1565b612ebf8185613818565b9350612ecf818560208601613968565b612ed881613a51565b840191505092915050565b6000612eee826137f1565b612ef88185613829565b9350612f08818560208601613968565b80840191505092915050565b612f1d81613935565b82525050565b612f2c81613947565b82525050565b6000612f3d826137fc565b612f478185613834565b9350612f57818560208601613968565b612f6081613a51565b840191505092915050565b6000612f78602683613834565b9150612f8382613a6f565b604082019050919050565b6000612f9b602c83613834565b9150612fa682613abe565b604082019050919050565b6000612fbe602c83613834565b9150612fc982613b0d565b604082019050919050565b6000612fe1603883613834565b9150612fec82613b5c565b604082019050919050565b6000613004602983613834565b915061300f82613bab565b604082019050919050565b6000613027602e83613834565b915061303282613bfa565b604082019050919050565b600061304a602e83613834565b915061305582613c49565b604082019050919050565b600061306d602d83613834565b915061307882613c98565b604082019050919050565b6000613090602083613834565b915061309b82613ce7565b602082019050919050565b60006130b3600083613818565b91506130be82613d10565b600082019050919050565b60006130d6600083613829565b91506130e182613d10565b600082019050919050565b60006130f9601d83613834565b915061310482613d13565b602082019050919050565b600061311c602b83613834565b915061312782613d3c565b604082019050919050565b600061313f601f83613834565b915061314a82613d8b565b602082019050919050565b600060608301613168600084018461385c565b858303600087015261317b838284612e50565b9250505061318c6020840184613845565b6131996020860182612e0c565b506131a760408401846138bf565b6131b46040860182613229565b508091505092915050565b6000606083016131d2600084018461385c565b85830360008701526131e5838284612e50565b925050506131f66020840184613845565b6132036020860182612e0c565b5061321160408401846138bf565b61321e6040860182613229565b508091505092915050565b6132328161391e565b82525050565b6132418161391e565b82525050565b60006132538284612e2a565b60148201915081905092915050565b600061326e8284612ee3565b915081905092915050565b6000613284826130c9565b9150819050919050565b60006020820190506132a36000830184612e1b565b92915050565b60006060820190506132be6000830186612e1b565b6132cb6020830185612e1b565b6132d86040830184613238565b949350505050565b600060c0820190506132f5600083018a612e1b565b81810360208301526133078189612eaa565b90506133166040830188613238565b6133236060830187612f14565b6133306080830186612f14565b81810360a0830152613343818486612e7d565b905098975050505050505050565b600060c0820190506133666000830188612e1b565b81810360208301526133788187612eaa565b90506133876040830186613238565b6133946060830185612f14565b6133a16080830184612f14565b81810360a08301526133b2816130a6565b90509695505050505050565b600060c0820190506133d3600083018a612e1b565b81810360208301526133e58189612eaa565b90506133f46040830188613238565b6134016060830187613238565b61340e6080830186613238565b81810360a0830152613421818486612e7d565b905098975050505050505050565b600060c0820190506134446000830188612e1b565b81810360208301526134568187612eaa565b90506134656040830186613238565b6134726060830185613238565b61347f6080830184613238565b81810360a0830152613490816130a6565b90509695505050505050565b60006040820190506134b16000830185612e1b565b6134be6020830184613238565b9392505050565b60006020820190506134da6000830184612e41565b92915050565b600060408201905081810360008301526134fa8186612eaa565b9050818103602083015261350f818486612e7d565b9050949350505050565b600060208201905061352e6000830184612f23565b92915050565b6000602082019050818103600083015261354e8184612f32565b905092915050565b6000602082019050818103600083015261356f81612f6b565b9050919050565b6000602082019050818103600083015261358f81612f8e565b9050919050565b600060208201905081810360008301526135af81612fb1565b9050919050565b600060208201905081810360008301526135cf81612fd4565b9050919050565b600060208201905081810360008301526135ef81612ff7565b9050919050565b6000602082019050818103600083015261360f8161301a565b9050919050565b6000602082019050818103600083015261362f8161303d565b9050919050565b6000602082019050818103600083015261364f81613060565b9050919050565b6000602082019050818103600083015261366f81613083565b9050919050565b6000602082019050818103600083015261368f816130ec565b9050919050565b600060208201905081810360008301526136af8161310f565b9050919050565b600060208201905081810360008301526136cf81613132565b9050919050565b600060808201905081810360008301526136f08188613155565b90506136ff6020830187612e1b565b61370c6040830186613238565b818103606083015261371f818486612e7d565b90509695505050505050565b6000608082019050818103600083015261374581886131bf565b90506137546020830187612e1b565b6137616040830186613238565b8181036060830152613774818486612e7d565b90509695505050505050565b60006020820190506137956000830184613238565b92915050565b60006137a56137b6565b90506137b1828261399b565b919050565b6000604051905090565b600067ffffffffffffffff8211156137db576137da6139f0565b5b6137e482613a51565b9050602081019050919050565b600081519050919050565b600081519050919050565b600082825260208201905092915050565b600082825260208201905092915050565b600081905092915050565b600082825260208201905092915050565b600061385460208401846126fd565b905092915050565b6000808335600160200384360303811261387957613878613a47565b5b83810192508235915060208301925067ffffffffffffffff8211156138a1576138a0613a1f565b5b6001820236038413156138b7576138b6613a33565b5b509250929050565b60006138ce6020840184612813565b905092915050565b60006138e1826138fe565b9050919050565b60008115159050919050565b6000819050919050565b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000819050919050565b600060ff82169050919050565b60006139408261391e565b9050919050565b600061395282613928565b9050919050565b82818337600083830152505050565b60005b8381101561398657808201518184015260208101905061396b565b83811115613995576000848401525b50505050565b6139a482613a51565b810181811067ffffffffffffffff821117156139c3576139c26139f0565b5b80604052505050565b60006139d7826139de565b9050919050565b60006139e982613a62565b9050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b600080fd5b600080fd5b600080fd5b600080fd5b600080fd5b600080fd5b600080fd5b600080fd5b600080fd5b600080fd5b6000601f19601f8301169050919050565b60008160601b9050919050565b7f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160008201527f6464726573730000000000000000000000000000000000000000000000000000602082015250565b7f46756e6374696f6e206d7573742062652063616c6c6564207468726f7567682060008201527f64656c656761746563616c6c0000000000000000000000000000000000000000602082015250565b7f46756e6374696f6e206d7573742062652063616c6c6564207468726f7567682060008201527f6163746976652070726f78790000000000000000000000000000000000000000602082015250565b7f555550535570677261646561626c653a206d757374206e6f742062652063616c60008201527f6c6564207468726f7567682064656c656761746563616c6c0000000000000000602082015250565b7f45524331393637557067726164653a20756e737570706f727465642070726f7860008201527f6961626c65555549440000000000000000000000000000000000000000000000602082015250565b7f496e697469616c697a61626c653a20636f6e747261637420697320616c72656160008201527f647920696e697469616c697a6564000000000000000000000000000000000000602082015250565b7f45524331393637557067726164653a206e657720696d706c656d656e7461746960008201527f6f6e206973206e6f742055555053000000000000000000000000000000000000602082015250565b7f455243313936373a206e657720696d706c656d656e746174696f6e206973206e60008201527f6f74206120636f6e747261637400000000000000000000000000000000000000602082015250565b7f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572600082015250565b50565b7f416464726573733a2063616c6c20746f206e6f6e2d636f6e7472616374000000600082015250565b7f496e697469616c697a61626c653a20636f6e7472616374206973206e6f74206960008201527f6e697469616c697a696e67000000000000000000000000000000000000000000602082015250565b7f5265656e7472616e637947756172643a207265656e7472616e742063616c6c00600082015250565b613dbd816138d6565b8114613dc857600080fd5b50565b613dd4816138e8565b8114613ddf57600080fd5b50565b613deb816138f4565b8114613df657600080fd5b50565b613e028161391e565b8114613e0d57600080fd5b5056fe416464726573733a206c6f772d6c6576656c2064656c65676174652063616c6c206661696c6564a2646970667358221220e282ad47b588d26949a07fb7fc6ba46fa9721e07254d668e544a8f2413001c5064736f6c63430008070033"; type GatewayZEVMConstructorParams = | [signer?: Signer] diff --git a/typechain-types/factories/contracts/prototypes/zevm/IGatewayZEVM.sol/IGatewayZEVMErrors__factory.ts b/typechain-types/factories/contracts/prototypes/zevm/IGatewayZEVM.sol/IGatewayZEVMErrors__factory.ts index bde7160e..63b3a271 100644 --- a/typechain-types/factories/contracts/prototypes/zevm/IGatewayZEVM.sol/IGatewayZEVMErrors__factory.ts +++ b/typechain-types/factories/contracts/prototypes/zevm/IGatewayZEVM.sol/IGatewayZEVMErrors__factory.ts @@ -35,6 +35,11 @@ const _abi = [ name: "InvalidTarget", type: "error", }, + { + inputs: [], + name: "OnlyWZETAOrFungible", + type: "error", + }, { inputs: [], name: "WithdrawalFailed", diff --git a/typechain-types/factories/contracts/prototypes/zevm/SenderZEVM__factory.ts b/typechain-types/factories/contracts/prototypes/zevm/SenderZEVM__factory.ts index ac2734d6..62861b75 100644 --- a/typechain-types/factories/contracts/prototypes/zevm/SenderZEVM__factory.ts +++ b/typechain-types/factories/contracts/prototypes/zevm/SenderZEVM__factory.ts @@ -108,7 +108,7 @@ const _abi = [ ] as const; const _bytecode = - "0x608060405234801561001057600080fd5b50604051610bcd380380610bcd8339818101604052810190610032919061008d565b806000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050610108565b600081519050610087816100f1565b92915050565b6000602082840312156100a3576100a26100ec565b5b60006100b184828501610078565b91505092915050565b60006100c5826100cc565b9050919050565b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b600080fd5b6100fa816100ba565b811461010557600080fd5b50565b610ab6806101176000396000f3fe608060405234801561001057600080fd5b50600436106100415760003560e01c80630abd890514610046578063116191b614610062578063a0a1730b14610080575b600080fd5b610060600480360381019061005b91906105fd565b61009c565b005b61006a6102af565b6040516100779190610761565b60405180910390f35b61009a6004803603810190610095919061055e565b6102d3565b005b60008383836040516024016100b39392919061082f565b6040516020818303038152906040527fe04d4f97000000000000000000000000000000000000000000000000000000007bffffffffffffffffffffffffffffffffffffffffffffffffffffffff19166020820180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff838183161783525050505090508473ffffffffffffffffffffffffffffffffffffffff1663095ea7b360008054906101000a900473ffffffffffffffffffffffffffffffffffffffff16886040518363ffffffff1660e01b815260040161018d92919061077c565b602060405180830381600087803b1580156101a757600080fd5b505af11580156101bb573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906101df9190610531565b610215576040517f8164f84200000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b60008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16637993c1e0888888856040518563ffffffff1660e01b815260040161027494939291906107dc565b600060405180830381600087803b15801561028e57600080fd5b505af11580156102a2573d6000803e3d6000fd5b5050505050505050505050565b60008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b60008383836040516024016102ea9392919061082f565b6040516020818303038152906040527fe04d4f97000000000000000000000000000000000000000000000000000000007bffffffffffffffffffffffffffffffffffffffffffffffffffffffff19166020820180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff8381831617835250505050905060008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16630ac7c44c86836040518363ffffffff1660e01b81526004016103c49291906107a5565b600060405180830381600087803b1580156103de57600080fd5b505af11580156103f2573d6000803e3d6000fd5b505050505050505050565b600061041061040b84610892565b61086d565b90508281526020810184848401111561042c5761042b610a1b565b5b610437848285610974565b509392505050565b600061045261044d846108c3565b61086d565b90508281526020810184848401111561046e5761046d610a1b565b5b610479848285610974565b509392505050565b60008135905061049081610a3b565b92915050565b6000813590506104a581610a52565b92915050565b6000815190506104ba81610a52565b92915050565b600082601f8301126104d5576104d4610a16565b5b81356104e58482602086016103fd565b91505092915050565b600082601f83011261050357610502610a16565b5b813561051384826020860161043f565b91505092915050565b60008135905061052b81610a69565b92915050565b60006020828403121561054757610546610a25565b5b6000610555848285016104ab565b91505092915050565b6000806000806080858703121561057857610577610a25565b5b600085013567ffffffffffffffff81111561059657610595610a20565b5b6105a2878288016104c0565b945050602085013567ffffffffffffffff8111156105c3576105c2610a20565b5b6105cf878288016104ee565b93505060406105e08782880161051c565b92505060606105f187828801610496565b91505092959194509250565b60008060008060008060c0878903121561061a57610619610a25565b5b600087013567ffffffffffffffff81111561063857610637610a20565b5b61064489828a016104c0565b965050602061065589828a0161051c565b955050604061066689828a01610481565b945050606087013567ffffffffffffffff81111561068757610686610a20565b5b61069389828a016104ee565b93505060806106a489828a0161051c565b92505060a06106b589828a01610496565b9150509295509295509295565b6106cb8161092c565b82525050565b6106da8161093e565b82525050565b60006106eb826108f4565b6106f5818561090a565b9350610705818560208601610983565b61070e81610a2a565b840191505092915050565b6000610724826108ff565b61072e818561091b565b935061073e818560208601610983565b61074781610a2a565b840191505092915050565b61075b8161096a565b82525050565b600060208201905061077660008301846106c2565b92915050565b600060408201905061079160008301856106c2565b61079e6020830184610752565b9392505050565b600060408201905081810360008301526107bf81856106e0565b905081810360208301526107d381846106e0565b90509392505050565b600060808201905081810360008301526107f681876106e0565b90506108056020830186610752565b61081260408301856106c2565b818103606083015261082481846106e0565b905095945050505050565b600060608201905081810360008301526108498186610719565b90506108586020830185610752565b61086560408301846106d1565b949350505050565b6000610877610888565b905061088382826109b6565b919050565b6000604051905090565b600067ffffffffffffffff8211156108ad576108ac6109e7565b5b6108b682610a2a565b9050602081019050919050565b600067ffffffffffffffff8211156108de576108dd6109e7565b5b6108e782610a2a565b9050602081019050919050565b600081519050919050565b600081519050919050565b600082825260208201905092915050565b600082825260208201905092915050565b60006109378261094a565b9050919050565b60008115159050919050565b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000819050919050565b82818337600083830152505050565b60005b838110156109a1578082015181840152602081019050610986565b838111156109b0576000848401525b50505050565b6109bf82610a2a565b810181811067ffffffffffffffff821117156109de576109dd6109e7565b5b80604052505050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b600080fd5b600080fd5b600080fd5b600080fd5b6000601f19601f8301169050919050565b610a448161092c565b8114610a4f57600080fd5b50565b610a5b8161093e565b8114610a6657600080fd5b50565b610a728161096a565b8114610a7d57600080fd5b5056fea2646970667358221220fd57bf78c5d65dbfce97aa7f4d7757321c1b53a122e7c588ff9fce739d2ac95664736f6c63430008070033"; + "0x608060405234801561001057600080fd5b50604051610bcd380380610bcd8339818101604052810190610032919061008d565b806000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050610108565b600081519050610087816100f1565b92915050565b6000602082840312156100a3576100a26100ec565b5b60006100b184828501610078565b91505092915050565b60006100c5826100cc565b9050919050565b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b600080fd5b6100fa816100ba565b811461010557600080fd5b50565b610ab6806101176000396000f3fe608060405234801561001057600080fd5b50600436106100415760003560e01c80630abd890514610046578063116191b614610062578063a0a1730b14610080575b600080fd5b610060600480360381019061005b91906105fd565b61009c565b005b61006a6102af565b6040516100779190610761565b60405180910390f35b61009a6004803603810190610095919061055e565b6102d3565b005b60008383836040516024016100b39392919061082f565b6040516020818303038152906040527fe04d4f97000000000000000000000000000000000000000000000000000000007bffffffffffffffffffffffffffffffffffffffffffffffffffffffff19166020820180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff838183161783525050505090508473ffffffffffffffffffffffffffffffffffffffff1663095ea7b360008054906101000a900473ffffffffffffffffffffffffffffffffffffffff16886040518363ffffffff1660e01b815260040161018d92919061077c565b602060405180830381600087803b1580156101a757600080fd5b505af11580156101bb573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906101df9190610531565b610215576040517f8164f84200000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b60008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16637993c1e0888888856040518563ffffffff1660e01b815260040161027494939291906107dc565b600060405180830381600087803b15801561028e57600080fd5b505af11580156102a2573d6000803e3d6000fd5b5050505050505050505050565b60008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b60008383836040516024016102ea9392919061082f565b6040516020818303038152906040527fe04d4f97000000000000000000000000000000000000000000000000000000007bffffffffffffffffffffffffffffffffffffffffffffffffffffffff19166020820180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff8381831617835250505050905060008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16630ac7c44c86836040518363ffffffff1660e01b81526004016103c49291906107a5565b600060405180830381600087803b1580156103de57600080fd5b505af11580156103f2573d6000803e3d6000fd5b505050505050505050565b600061041061040b84610892565b61086d565b90508281526020810184848401111561042c5761042b610a1b565b5b610437848285610974565b509392505050565b600061045261044d846108c3565b61086d565b90508281526020810184848401111561046e5761046d610a1b565b5b610479848285610974565b509392505050565b60008135905061049081610a3b565b92915050565b6000813590506104a581610a52565b92915050565b6000815190506104ba81610a52565b92915050565b600082601f8301126104d5576104d4610a16565b5b81356104e58482602086016103fd565b91505092915050565b600082601f83011261050357610502610a16565b5b813561051384826020860161043f565b91505092915050565b60008135905061052b81610a69565b92915050565b60006020828403121561054757610546610a25565b5b6000610555848285016104ab565b91505092915050565b6000806000806080858703121561057857610577610a25565b5b600085013567ffffffffffffffff81111561059657610595610a20565b5b6105a2878288016104c0565b945050602085013567ffffffffffffffff8111156105c3576105c2610a20565b5b6105cf878288016104ee565b93505060406105e08782880161051c565b92505060606105f187828801610496565b91505092959194509250565b60008060008060008060c0878903121561061a57610619610a25565b5b600087013567ffffffffffffffff81111561063857610637610a20565b5b61064489828a016104c0565b965050602061065589828a0161051c565b955050604061066689828a01610481565b945050606087013567ffffffffffffffff81111561068757610686610a20565b5b61069389828a016104ee565b93505060806106a489828a0161051c565b92505060a06106b589828a01610496565b9150509295509295509295565b6106cb8161092c565b82525050565b6106da8161093e565b82525050565b60006106eb826108f4565b6106f5818561090a565b9350610705818560208601610983565b61070e81610a2a565b840191505092915050565b6000610724826108ff565b61072e818561091b565b935061073e818560208601610983565b61074781610a2a565b840191505092915050565b61075b8161096a565b82525050565b600060208201905061077660008301846106c2565b92915050565b600060408201905061079160008301856106c2565b61079e6020830184610752565b9392505050565b600060408201905081810360008301526107bf81856106e0565b905081810360208301526107d381846106e0565b90509392505050565b600060808201905081810360008301526107f681876106e0565b90506108056020830186610752565b61081260408301856106c2565b818103606083015261082481846106e0565b905095945050505050565b600060608201905081810360008301526108498186610719565b90506108586020830185610752565b61086560408301846106d1565b949350505050565b6000610877610888565b905061088382826109b6565b919050565b6000604051905090565b600067ffffffffffffffff8211156108ad576108ac6109e7565b5b6108b682610a2a565b9050602081019050919050565b600067ffffffffffffffff8211156108de576108dd6109e7565b5b6108e782610a2a565b9050602081019050919050565b600081519050919050565b600081519050919050565b600082825260208201905092915050565b600082825260208201905092915050565b60006109378261094a565b9050919050565b60008115159050919050565b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000819050919050565b82818337600083830152505050565b60005b838110156109a1578082015181840152602081019050610986565b838111156109b0576000848401525b50505050565b6109bf82610a2a565b810181811067ffffffffffffffff821117156109de576109dd6109e7565b5b80604052505050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b600080fd5b600080fd5b600080fd5b600080fd5b6000601f19601f8301169050919050565b610a448161092c565b8114610a4f57600080fd5b50565b610a5b8161093e565b8114610a6657600080fd5b50565b610a728161096a565b8114610a7d57600080fd5b5056fea26469706673582212200cd8c693763a39f751ed29a5721dc440baec596173844c26c3f7b13e0d4e8b8464736f6c63430008070033"; type SenderZEVMConstructorParams = | [signer?: Signer] diff --git a/typechain-types/factories/contracts/prototypes/zevm/TestZContract__factory.ts b/typechain-types/factories/contracts/prototypes/zevm/TestZContract__factory.ts index a5db2e04..bf251da5 100644 --- a/typechain-types/factories/contracts/prototypes/zevm/TestZContract__factory.ts +++ b/typechain-types/factories/contracts/prototypes/zevm/TestZContract__factory.ts @@ -47,6 +47,47 @@ const _abi = [ name: "ContextData", type: "event", }, + { + anonymous: false, + inputs: [ + { + indexed: false, + internalType: "bytes", + name: "origin", + type: "bytes", + }, + { + indexed: false, + internalType: "address", + name: "sender", + type: "address", + }, + { + indexed: false, + internalType: "uint256", + name: "chainID", + type: "uint256", + }, + { + indexed: false, + internalType: "address", + name: "msgSender", + type: "address", + }, + { + indexed: false, + internalType: "string", + name: "message", + type: "string", + }, + ], + name: "ContextDataRevert", + type: "event", + }, + { + stateMutability: "payable", + type: "fallback", + }, { inputs: [ { @@ -137,10 +178,14 @@ const _abi = [ stateMutability: "nonpayable", type: "function", }, + { + stateMutability: "payable", + type: "receive", + }, ] as const; const _bytecode = - "0x608060405234801561001057600080fd5b506107cb806100206000396000f3fe608060405234801561001057600080fd5b50600436106100365760003560e01c806369582bee1461003b578063de43156e14610057575b600080fd5b61005560048036038101906100509190610331565b610073565b005b610071600480360381019061006c91906103d5565b610100565b005b6060600083839050111561009357828281019061009091906102e8565b90505b7fcdc8ee677dc5ebe680fb18cebda5e26ba5ea1f0ba504a47e2a9a2ecb476dc98e8680600001906100c49190610560565b8860200160208101906100d791906102bb565b896040013533866040516100f0969594939291906104fd565b60405180910390a1505050505050565b6060600083839050111561012057828281019061011d91906102e8565b90505b7fcdc8ee677dc5ebe680fb18cebda5e26ba5ea1f0ba504a47e2a9a2ecb476dc98e8680600001906101519190610560565b88602001602081019061016491906102bb565b8960400135338660405161017d969594939291906104fd565b60405180910390a1505050505050565b60006101a061019b846105e8565b6105c3565b9050828152602081018484840111156101bc576101bb610747565b5b6101c7848285610682565b509392505050565b6000813590506101de81610767565b92915050565b60008083601f8401126101fa576101f9610729565b5b8235905067ffffffffffffffff81111561021757610216610724565b5b6020830191508360018202830111156102335761023261073d565b5b9250929050565b600082601f83011261024f5761024e610729565b5b813561025f84826020860161018d565b91505092915050565b60006060828403121561027e5761027d610733565b5b81905092915050565b60006060828403121561029d5761029c610733565b5b81905092915050565b6000813590506102b58161077e565b92915050565b6000602082840312156102d1576102d0610751565b5b60006102df848285016101cf565b91505092915050565b6000602082840312156102fe576102fd610751565b5b600082013567ffffffffffffffff81111561031c5761031b61074c565b5b6103288482850161023a565b91505092915050565b60008060008060006080868803121561034d5761034c610751565b5b600086013567ffffffffffffffff81111561036b5761036a61074c565b5b61037788828901610268565b9550506020610388888289016101cf565b9450506040610399888289016102a6565b935050606086013567ffffffffffffffff8111156103ba576103b961074c565b5b6103c6888289016101e4565b92509250509295509295909350565b6000806000806000608086880312156103f1576103f0610751565b5b600086013567ffffffffffffffff81111561040f5761040e61074c565b5b61041b88828901610287565b955050602061042c888289016101cf565b945050604061043d888289016102a6565b935050606086013567ffffffffffffffff81111561045e5761045d61074c565b5b61046a888289016101e4565b92509250509295509295909350565b61048281610646565b82525050565b60006104948385610624565b93506104a1838584610682565b6104aa83610756565b840190509392505050565b60006104c082610619565b6104ca8185610635565b93506104da818560208601610691565b6104e381610756565b840191505092915050565b6104f781610678565b82525050565b600060a082019050818103600083015261051881888a610488565b90506105276020830187610479565b61053460408301866104ee565b6105416060830185610479565b818103608083015261055381846104b5565b9050979650505050505050565b6000808335600160200384360303811261057d5761057c610738565b5b80840192508235915067ffffffffffffffff82111561059f5761059e61072e565b5b6020830192506001820236038313156105bb576105ba610742565b5b509250929050565b60006105cd6105de565b90506105d982826106c4565b919050565b6000604051905090565b600067ffffffffffffffff821115610603576106026106f5565b5b61060c82610756565b9050602081019050919050565b600081519050919050565b600082825260208201905092915050565b600082825260208201905092915050565b600061065182610658565b9050919050565b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000819050919050565b82818337600083830152505050565b60005b838110156106af578082015181840152602081019050610694565b838111156106be576000848401525b50505050565b6106cd82610756565b810181811067ffffffffffffffff821117156106ec576106eb6106f5565b5b80604052505050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b600080fd5b600080fd5b600080fd5b600080fd5b600080fd5b600080fd5b600080fd5b600080fd5b600080fd5b600080fd5b6000601f19601f8301169050919050565b61077081610646565b811461077b57600080fd5b50565b61078781610678565b811461079257600080fd5b5056fea2646970667358221220996d3660341a1bd04005b32d62cd8d770a9af1acdfbed4e5684f1a111d225cde64736f6c63430008070033"; + "0x608060405234801561001057600080fd5b506107e0806100206000396000f3fe60806040526004361061002d5760003560e01c806369582bee14610036578063de43156e1461005f57610034565b3661003457005b005b34801561004257600080fd5b5061005d60048036038101906100589190610346565b610088565b005b34801561006b57600080fd5b50610086600480360381019061008191906103ea565b610115565b005b606060008383905011156100a85782828101906100a591906102fd565b90505b7ffdc887992b033668833927e252058e468fac0b6bd196d520f09c61b740e999488680600001906100d99190610575565b8860200160208101906100ec91906102d0565b8960400135338660405161010596959493929190610512565b60405180910390a1505050505050565b6060600083839050111561013557828281019061013291906102fd565b90505b7fcdc8ee677dc5ebe680fb18cebda5e26ba5ea1f0ba504a47e2a9a2ecb476dc98e8680600001906101669190610575565b88602001602081019061017991906102d0565b8960400135338660405161019296959493929190610512565b60405180910390a1505050505050565b60006101b56101b0846105fd565b6105d8565b9050828152602081018484840111156101d1576101d061075c565b5b6101dc848285610697565b509392505050565b6000813590506101f38161077c565b92915050565b60008083601f84011261020f5761020e61073e565b5b8235905067ffffffffffffffff81111561022c5761022b610739565b5b60208301915083600182028301111561024857610247610752565b5b9250929050565b600082601f8301126102645761026361073e565b5b81356102748482602086016101a2565b91505092915050565b60006060828403121561029357610292610748565b5b81905092915050565b6000606082840312156102b2576102b1610748565b5b81905092915050565b6000813590506102ca81610793565b92915050565b6000602082840312156102e6576102e5610766565b5b60006102f4848285016101e4565b91505092915050565b60006020828403121561031357610312610766565b5b600082013567ffffffffffffffff81111561033157610330610761565b5b61033d8482850161024f565b91505092915050565b60008060008060006080868803121561036257610361610766565b5b600086013567ffffffffffffffff8111156103805761037f610761565b5b61038c8882890161027d565b955050602061039d888289016101e4565b94505060406103ae888289016102bb565b935050606086013567ffffffffffffffff8111156103cf576103ce610761565b5b6103db888289016101f9565b92509250509295509295909350565b60008060008060006080868803121561040657610405610766565b5b600086013567ffffffffffffffff81111561042457610423610761565b5b6104308882890161029c565b9550506020610441888289016101e4565b9450506040610452888289016102bb565b935050606086013567ffffffffffffffff81111561047357610472610761565b5b61047f888289016101f9565b92509250509295509295909350565b6104978161065b565b82525050565b60006104a98385610639565b93506104b6838584610697565b6104bf8361076b565b840190509392505050565b60006104d58261062e565b6104df818561064a565b93506104ef8185602086016106a6565b6104f88161076b565b840191505092915050565b61050c8161068d565b82525050565b600060a082019050818103600083015261052d81888a61049d565b905061053c602083018761048e565b6105496040830186610503565b610556606083018561048e565b818103608083015261056881846104ca565b9050979650505050505050565b600080833560016020038436030381126105925761059161074d565b5b80840192508235915067ffffffffffffffff8211156105b4576105b3610743565b5b6020830192506001820236038313156105d0576105cf610757565b5b509250929050565b60006105e26105f3565b90506105ee82826106d9565b919050565b6000604051905090565b600067ffffffffffffffff8211156106185761061761070a565b5b6106218261076b565b9050602081019050919050565b600081519050919050565b600082825260208201905092915050565b600082825260208201905092915050565b60006106668261066d565b9050919050565b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000819050919050565b82818337600083830152505050565b60005b838110156106c45780820151818401526020810190506106a9565b838111156106d3576000848401525b50505050565b6106e28261076b565b810181811067ffffffffffffffff821117156107015761070061070a565b5b80604052505050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b600080fd5b600080fd5b600080fd5b600080fd5b600080fd5b600080fd5b600080fd5b600080fd5b600080fd5b600080fd5b6000601f19601f8301169050919050565b6107858161065b565b811461079057600080fd5b50565b61079c8161068d565b81146107a757600080fd5b5056fea26469706673582212206e1d5161a8564bff4ad3771706535f8697b52467c67a937ab41be2b7692b6a3a64736f6c63430008070033"; type TestZContractConstructorParams = | [signer?: Signer]