From b3485b98037df850cf1433d7f3f91e00b468c6d5 Mon Sep 17 00:00:00 2001 From: skosito Date: Tue, 23 Jul 2024 16:16:25 +0200 Subject: [PATCH] receiver reentrancy checks --- contracts/prototypes/evm/ReceiverEVM.sol | 7 ++++--- .../prototypes/evm/receiverevm.sol/receiverevm.go | 2 +- .../contracts/prototypes/evm/ReceiverEVM__factory.ts | 2 +- 3 files changed, 6 insertions(+), 5 deletions(-) diff --git a/contracts/prototypes/evm/ReceiverEVM.sol b/contracts/prototypes/evm/ReceiverEVM.sol index a3ee5afa..c3887d97 100644 --- a/contracts/prototypes/evm/ReceiverEVM.sol +++ b/contracts/prototypes/evm/ReceiverEVM.sol @@ -3,10 +3,11 @@ pragma solidity ^0.8.0; import "@openzeppelin/contracts/token/ERC20/IERC20.sol"; import "@openzeppelin/contracts/token/ERC20/utils/SafeERC20.sol"; +import "@openzeppelin/contracts/security/ReentrancyGuard.sol"; import "./IReceiverEVM.sol"; // @notice This contract is used just for testing -contract ReceiverEVM is IReceiverEVMEvents { +contract ReceiverEVM is IReceiverEVMEvents, ReentrancyGuard { using SafeERC20 for IERC20; error ZeroAmount(); @@ -21,7 +22,7 @@ contract ReceiverEVM is IReceiverEVMEvents { } // Function using IERC20 - function receiveERC20(uint256 amount, address token, address destination) external { + function receiveERC20(uint256 amount, address token, address destination) external nonReentrant { // Transfer tokens from the Gateway contract to the destination address IERC20(token).safeTransferFrom(msg.sender, destination, amount); @@ -29,7 +30,7 @@ contract ReceiverEVM is IReceiverEVMEvents { } // Function using IERC20 to partially transfer tokens - function receiveERC20Partial(uint256 amount, address token, address destination) external { + function receiveERC20Partial(uint256 amount, address token, address destination) external nonReentrant { uint256 amountToSend = amount / 2; if (amountToSend == 0) revert ZeroAmount(); diff --git a/pkg/contracts/prototypes/evm/receiverevm.sol/receiverevm.go b/pkg/contracts/prototypes/evm/receiverevm.sol/receiverevm.go index 7084fdf3..0780dd48 100644 --- a/pkg/contracts/prototypes/evm/receiverevm.sol/receiverevm.go +++ b/pkg/contracts/prototypes/evm/receiverevm.sol/receiverevm.go @@ -32,7 +32,7 @@ var ( // ReceiverEVMMetaData contains all meta data concerning the ReceiverEVM contract. var ReceiverEVMMetaData = &bind.MetaData{ ABI: "[{\"inputs\":[],\"name\":\"ZeroAmount\",\"type\":\"error\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"address\",\"name\":\"sender\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"address\",\"name\":\"token\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"address\",\"name\":\"destination\",\"type\":\"address\"}],\"name\":\"ReceivedERC20\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"address\",\"name\":\"sender\",\"type\":\"address\"}],\"name\":\"ReceivedNoParams\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"address\",\"name\":\"sender\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"string[]\",\"name\":\"strs\",\"type\":\"string[]\"},{\"indexed\":false,\"internalType\":\"uint256[]\",\"name\":\"nums\",\"type\":\"uint256[]\"},{\"indexed\":false,\"internalType\":\"bool\",\"name\":\"flag\",\"type\":\"bool\"}],\"name\":\"ReceivedNonPayable\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"address\",\"name\":\"sender\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"value\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"string\",\"name\":\"str\",\"type\":\"string\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"num\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"bool\",\"name\":\"flag\",\"type\":\"bool\"}],\"name\":\"ReceivedPayable\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"address\",\"name\":\"sender\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"bytes\",\"name\":\"data\",\"type\":\"bytes\"}],\"name\":\"ReceivedRevert\",\"type\":\"event\"},{\"stateMutability\":\"payable\",\"type\":\"fallback\"},{\"inputs\":[{\"internalType\":\"bytes\",\"name\":\"data\",\"type\":\"bytes\"}],\"name\":\"onRevert\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"},{\"internalType\":\"address\",\"name\":\"token\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"destination\",\"type\":\"address\"}],\"name\":\"receiveERC20\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"},{\"internalType\":\"address\",\"name\":\"token\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"destination\",\"type\":\"address\"}],\"name\":\"receiveERC20Partial\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"receiveNoParams\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"string[]\",\"name\":\"strs\",\"type\":\"string[]\"},{\"internalType\":\"uint256[]\",\"name\":\"nums\",\"type\":\"uint256[]\"},{\"internalType\":\"bool\",\"name\":\"flag\",\"type\":\"bool\"}],\"name\":\"receiveNonPayable\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"string\",\"name\":\"str\",\"type\":\"string\"},{\"internalType\":\"uint256\",\"name\":\"num\",\"type\":\"uint256\"},{\"internalType\":\"bool\",\"name\":\"flag\",\"type\":\"bool\"}],\"name\":\"receivePayable\",\"outputs\":[],\"stateMutability\":\"payable\",\"type\":\"function\"},{\"stateMutability\":\"payable\",\"type\":\"receive\"}]", - Bin: "0x608060405234801561001057600080fd5b5061136d806100206000396000f3fe6080604052600436106100595760003560e01c8063357fc5a2146100625780636ed701691461008b5780638fcaa0b5146100a2578063c5131691146100cb578063e04d4f97146100f4578063f05b6abf1461011057610060565b3661006057005b005b34801561006e57600080fd5b5061008960048036038101906100849190610a68565b610139565b005b34801561009757600080fd5b506100a06101a8565b005b3480156100ae57600080fd5b506100c960048036038101906100c491906109ac565b6101e1565b005b3480156100d757600080fd5b506100f260048036038101906100ed9190610a68565b610220565b005b61010e600480360381019061010991906109f9565b6102dc565b005b34801561011c57600080fd5b50610137600480360381019061013291906108f4565b610320565b005b6101663382858573ffffffffffffffffffffffffffffffffffffffff16610362909392919063ffffffff16565b7f2b58128f24a9f59127cc5b5430d70542b22220f2d9adaa86e442b816ab98af603384848460405161019b9493929190610e1d565b60405180910390a1505050565b7fbcaadb46b82a48af60b608f58959ae6b8310d1b0a0d094c2e9ec3208ed39f2a0336040516101d79190610d46565b60405180910390a1565b7f0d3f65f00e631663aa85c96330b5c7a83bb29af3630c0063776f985edc3037aa33838360405161021493929190610deb565b60405180910390a15050565b600060028461022f91906110b2565b9050600081141561026c576040517f1f2a200500000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6102993383838673ffffffffffffffffffffffffffffffffffffffff16610362909392919063ffffffff16565b7f2b58128f24a9f59127cc5b5430d70542b22220f2d9adaa86e442b816ab98af60338285856040516102ce9493929190610e1d565b60405180910390a150505050565b7f1f1ff1f5fb41346850b2f5c04e6c767e2f1c8a525c5c0c5cdb60cdf3ca5f62fa3334858585604051610313959493929190610e62565b60405180910390a1505050565b7f74a53cd528a921fca7dbdee62f86819051d3cc98f214951f4238e8843f20b146338484846040516103559493929190610d98565b60405180910390a1505050565b6103e5846323b872dd60e01b85858560405160240161038393929190610d61565b604051602081830303815290604052907bffffffffffffffffffffffffffffffffffffffffffffffffffffffff19166020820180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff83818316178352505050506103eb565b50505050565b600061044d826040518060400160405280602081526020017f5361666545524332303a206c6f772d6c6576656c2063616c6c206661696c65648152508573ffffffffffffffffffffffffffffffffffffffff166104b29092919063ffffffff16565b90506000815111156104ad578080602001905181019061046d919061097f565b6104ac576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016104a390610f1e565b60405180910390fd5b5b505050565b60606104c184846000856104ca565b90509392505050565b60608247101561050f576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161050690610ede565b60405180910390fd5b6000808673ffffffffffffffffffffffffffffffffffffffff1685876040516105389190610d2f565b60006040518083038185875af1925050503d8060008114610575576040519150601f19603f3d011682016040523d82523d6000602084013e61057a565b606091505b509150915061058b87838387610597565b92505050949350505050565b606083156105fa576000835114156105f2576105b28561060d565b6105f1576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016105e890610efe565b60405180910390fd5b5b829050610605565b6106048383610630565b5b949350505050565b6000808273ffffffffffffffffffffffffffffffffffffffff163b119050919050565b6000825111156106435781518083602001fd5b806040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016106779190610ebc565b60405180910390fd5b600061069361068e84610f63565b610f3e565b905080838252602082019050828560208602820111156106b6576106b5611206565b5b60005b8581101561070457813567ffffffffffffffff8111156106dc576106db611201565b5b8086016106e989826108b1565b855260208501945060208401935050506001810190506106b9565b5050509392505050565b600061072161071c84610f8f565b610f3e565b9050808382526020820190508285602086028201111561074457610743611206565b5b60005b85811015610774578161075a88826108df565b845260208401935060208301925050600181019050610747565b5050509392505050565b600061079161078c84610fbb565b610f3e565b9050828152602081018484840111156107ad576107ac61120b565b5b6107b884828561112b565b509392505050565b6000813590506107cf816112f2565b92915050565b600082601f8301126107ea576107e9611201565b5b81356107fa848260208601610680565b91505092915050565b600082601f83011261081857610817611201565b5b813561082884826020860161070e565b91505092915050565b60008135905061084081611309565b92915050565b60008151905061085581611309565b92915050565b60008083601f84011261087157610870611201565b5b8235905067ffffffffffffffff81111561088e5761088d6111fc565b5b6020830191508360018202830111156108aa576108a9611206565b5b9250929050565b600082601f8301126108c6576108c5611201565b5b81356108d684826020860161077e565b91505092915050565b6000813590506108ee81611320565b92915050565b60008060006060848603121561090d5761090c611215565b5b600084013567ffffffffffffffff81111561092b5761092a611210565b5b610937868287016107d5565b935050602084013567ffffffffffffffff81111561095857610957611210565b5b61096486828701610803565b925050604061097586828701610831565b9150509250925092565b60006020828403121561099557610994611215565b5b60006109a384828501610846565b91505092915050565b600080602083850312156109c3576109c2611215565b5b600083013567ffffffffffffffff8111156109e1576109e0611210565b5b6109ed8582860161085b565b92509250509250929050565b600080600060608486031215610a1257610a11611215565b5b600084013567ffffffffffffffff811115610a3057610a2f611210565b5b610a3c868287016108b1565b9350506020610a4d868287016108df565b9250506040610a5e86828701610831565b9150509250925092565b600080600060608486031215610a8157610a80611215565b5b6000610a8f868287016108df565b9350506020610aa0868287016107c0565b9250506040610ab1868287016107c0565b9150509250925092565b6000610ac78383610c36565b905092915050565b6000610adb8383610d11565b60208301905092915050565b610af0816110e3565b82525050565b6000610b018261100c565b610b0b8185611052565b935083602082028501610b1d85610fec565b8060005b85811015610b595784840389528151610b3a8582610abb565b9450610b4583611038565b925060208a01995050600181019050610b21565b50829750879550505050505092915050565b6000610b7682611017565b610b808185611063565b9350610b8b83610ffc565b8060005b83811015610bbc578151610ba38882610acf565b9750610bae83611045565b925050600181019050610b8f565b5085935050505092915050565b610bd2816110f5565b82525050565b6000610be48385611074565b9350610bf183858461112b565b610bfa8361121a565b840190509392505050565b6000610c1082611022565b610c1a8185611085565b9350610c2a81856020860161113a565b80840191505092915050565b6000610c418261102d565b610c4b8185611090565b9350610c5b81856020860161113a565b610c648161121a565b840191505092915050565b6000610c7a8261102d565b610c8481856110a1565b9350610c9481856020860161113a565b610c9d8161121a565b840191505092915050565b6000610cb56026836110a1565b9150610cc08261122b565b604082019050919050565b6000610cd8601d836110a1565b9150610ce38261127a565b602082019050919050565b6000610cfb602a836110a1565b9150610d06826112a3565b604082019050919050565b610d1a81611121565b82525050565b610d2981611121565b82525050565b6000610d3b8284610c05565b915081905092915050565b6000602082019050610d5b6000830184610ae7565b92915050565b6000606082019050610d766000830186610ae7565b610d836020830185610ae7565b610d906040830184610d20565b949350505050565b6000608082019050610dad6000830187610ae7565b8181036020830152610dbf8186610af6565b90508181036040830152610dd38185610b6b565b9050610de26060830184610bc9565b95945050505050565b6000604082019050610e006000830186610ae7565b8181036020830152610e13818486610bd8565b9050949350505050565b6000608082019050610e326000830187610ae7565b610e3f6020830186610d20565b610e4c6040830185610ae7565b610e596060830184610ae7565b95945050505050565b600060a082019050610e776000830188610ae7565b610e846020830187610d20565b8181036040830152610e968186610c6f565b9050610ea56060830185610d20565b610eb26080830184610bc9565b9695505050505050565b60006020820190508181036000830152610ed68184610c6f565b905092915050565b60006020820190508181036000830152610ef781610ca8565b9050919050565b60006020820190508181036000830152610f1781610ccb565b9050919050565b60006020820190508181036000830152610f3781610cee565b9050919050565b6000610f48610f59565b9050610f54828261116d565b919050565b6000604051905090565b600067ffffffffffffffff821115610f7e57610f7d6111cd565b5b602082029050602081019050919050565b600067ffffffffffffffff821115610faa57610fa96111cd565b5b602082029050602081019050919050565b600067ffffffffffffffff821115610fd657610fd56111cd565b5b610fdf8261121a565b9050602081019050919050565b6000819050602082019050919050565b6000819050602082019050919050565b600081519050919050565b600081519050919050565b600081519050919050565b600081519050919050565b6000602082019050919050565b6000602082019050919050565b600082825260208201905092915050565b600082825260208201905092915050565b600082825260208201905092915050565b600081905092915050565b600082825260208201905092915050565b600082825260208201905092915050565b60006110bd82611121565b91506110c883611121565b9250826110d8576110d761119e565b5b828204905092915050565b60006110ee82611101565b9050919050565b60008115159050919050565b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000819050919050565b82818337600083830152505050565b60005b8381101561115857808201518184015260208101905061113d565b83811115611167576000848401525b50505050565b6111768261121a565b810181811067ffffffffffffffff82111715611195576111946111cd565b5b80604052505050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b600080fd5b600080fd5b600080fd5b600080fd5b600080fd5b600080fd5b6000601f19601f8301169050919050565b7f416464726573733a20696e73756666696369656e742062616c616e636520666f60008201527f722063616c6c0000000000000000000000000000000000000000000000000000602082015250565b7f416464726573733a2063616c6c20746f206e6f6e2d636f6e7472616374000000600082015250565b7f5361666545524332303a204552433230206f7065726174696f6e20646964206e60008201527f6f74207375636365656400000000000000000000000000000000000000000000602082015250565b6112fb816110e3565b811461130657600080fd5b50565b611312816110f5565b811461131d57600080fd5b50565b61132981611121565b811461133457600080fd5b5056fea2646970667358221220a0309d6315771693572c6c753bf9ab1fb30e2f89e0783f8d0607561f1a5589dc64736f6c63430008070033", + Bin: "0x608060405234801561001057600080fd5b506001600081905550611453806100286000396000f3fe6080604052600436106100595760003560e01c8063357fc5a2146100625780636ed701691461008b5780638fcaa0b5146100a2578063c5131691146100cb578063e04d4f97146100f4578063f05b6abf1461011057610060565b3661006057005b005b34801561006e57600080fd5b5061008960048036038101906100849190610ae2565b610139565b005b34801561009757600080fd5b506100a06101b8565b005b3480156100ae57600080fd5b506100c960048036038101906100c49190610a26565b6101f1565b005b3480156100d757600080fd5b506100f260048036038101906100ed9190610ae2565b610230565b005b61010e60048036038101906101099190610a73565b6102fc565b005b34801561011c57600080fd5b506101376004803603810190610132919061096e565b610340565b005b610141610382565b61016e3382858573ffffffffffffffffffffffffffffffffffffffff166103d2909392919063ffffffff16565b7f2b58128f24a9f59127cc5b5430d70542b22220f2d9adaa86e442b816ab98af60338484846040516101a39493929190610eba565b60405180910390a16101b361045b565b505050565b7fbcaadb46b82a48af60b608f58959ae6b8310d1b0a0d094c2e9ec3208ed39f2a0336040516101e79190610de3565b60405180910390a1565b7f0d3f65f00e631663aa85c96330b5c7a83bb29af3630c0063776f985edc3037aa33838360405161022493929190610e88565b60405180910390a15050565b610238610382565b6000600284610247919061116f565b90506000811415610284576040517f1f2a200500000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6102b13383838673ffffffffffffffffffffffffffffffffffffffff166103d2909392919063ffffffff16565b7f2b58128f24a9f59127cc5b5430d70542b22220f2d9adaa86e442b816ab98af60338285856040516102e69493929190610eba565b60405180910390a1506102f761045b565b505050565b7f1f1ff1f5fb41346850b2f5c04e6c767e2f1c8a525c5c0c5cdb60cdf3ca5f62fa3334858585604051610333959493929190610eff565b60405180910390a1505050565b7f74a53cd528a921fca7dbdee62f86819051d3cc98f214951f4238e8843f20b146338484846040516103759493929190610e35565b60405180910390a1505050565b600260005414156103c8576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016103bf90610fdb565b60405180910390fd5b6002600081905550565b610455846323b872dd60e01b8585856040516024016103f393929190610dfe565b604051602081830303815290604052907bffffffffffffffffffffffffffffffffffffffffffffffffffffffff19166020820180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff8381831617835250505050610465565b50505050565b6001600081905550565b60006104c7826040518060400160405280602081526020017f5361666545524332303a206c6f772d6c6576656c2063616c6c206661696c65648152508573ffffffffffffffffffffffffffffffffffffffff1661052c9092919063ffffffff16565b905060008151111561052757808060200190518101906104e791906109f9565b610526576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161051d90610fbb565b60405180910390fd5b5b505050565b606061053b8484600085610544565b90509392505050565b606082471015610589576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161058090610f7b565b60405180910390fd5b6000808673ffffffffffffffffffffffffffffffffffffffff1685876040516105b29190610dcc565b60006040518083038185875af1925050503d80600081146105ef576040519150601f19603f3d011682016040523d82523d6000602084013e6105f4565b606091505b509150915061060587838387610611565b92505050949350505050565b606083156106745760008351141561066c5761062c85610687565b61066b576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161066290610f9b565b60405180910390fd5b5b82905061067f565b61067e83836106aa565b5b949350505050565b6000808273ffffffffffffffffffffffffffffffffffffffff163b119050919050565b6000825111156106bd5781518083602001fd5b806040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016106f19190610f59565b60405180910390fd5b600061070d61070884611020565b610ffb565b905080838252602082019050828560208602820111156107305761072f6112c3565b5b60005b8581101561077e57813567ffffffffffffffff811115610756576107556112be565b5b808601610763898261092b565b85526020850194506020840193505050600181019050610733565b5050509392505050565b600061079b6107968461104c565b610ffb565b905080838252602082019050828560208602820111156107be576107bd6112c3565b5b60005b858110156107ee57816107d48882610959565b8452602084019350602083019250506001810190506107c1565b5050509392505050565b600061080b61080684611078565b610ffb565b905082815260208101848484011115610827576108266112c8565b5b6108328482856111e8565b509392505050565b600081359050610849816113d8565b92915050565b600082601f830112610864576108636112be565b5b81356108748482602086016106fa565b91505092915050565b600082601f830112610892576108916112be565b5b81356108a2848260208601610788565b91505092915050565b6000813590506108ba816113ef565b92915050565b6000815190506108cf816113ef565b92915050565b60008083601f8401126108eb576108ea6112be565b5b8235905067ffffffffffffffff811115610908576109076112b9565b5b602083019150836001820283011115610924576109236112c3565b5b9250929050565b600082601f8301126109405761093f6112be565b5b81356109508482602086016107f8565b91505092915050565b60008135905061096881611406565b92915050565b600080600060608486031215610987576109866112d2565b5b600084013567ffffffffffffffff8111156109a5576109a46112cd565b5b6109b18682870161084f565b935050602084013567ffffffffffffffff8111156109d2576109d16112cd565b5b6109de8682870161087d565b92505060406109ef868287016108ab565b9150509250925092565b600060208284031215610a0f57610a0e6112d2565b5b6000610a1d848285016108c0565b91505092915050565b60008060208385031215610a3d57610a3c6112d2565b5b600083013567ffffffffffffffff811115610a5b57610a5a6112cd565b5b610a67858286016108d5565b92509250509250929050565b600080600060608486031215610a8c57610a8b6112d2565b5b600084013567ffffffffffffffff811115610aaa57610aa96112cd565b5b610ab68682870161092b565b9350506020610ac786828701610959565b9250506040610ad8868287016108ab565b9150509250925092565b600080600060608486031215610afb57610afa6112d2565b5b6000610b0986828701610959565b9350506020610b1a8682870161083a565b9250506040610b2b8682870161083a565b9150509250925092565b6000610b418383610cb0565b905092915050565b6000610b558383610dae565b60208301905092915050565b610b6a816111a0565b82525050565b6000610b7b826110c9565b610b85818561110f565b935083602082028501610b97856110a9565b8060005b85811015610bd35784840389528151610bb48582610b35565b9450610bbf836110f5565b925060208a01995050600181019050610b9b565b50829750879550505050505092915050565b6000610bf0826110d4565b610bfa8185611120565b9350610c05836110b9565b8060005b83811015610c36578151610c1d8882610b49565b9750610c2883611102565b925050600181019050610c09565b5085935050505092915050565b610c4c816111b2565b82525050565b6000610c5e8385611131565b9350610c6b8385846111e8565b610c74836112d7565b840190509392505050565b6000610c8a826110df565b610c948185611142565b9350610ca48185602086016111f7565b80840191505092915050565b6000610cbb826110ea565b610cc5818561114d565b9350610cd58185602086016111f7565b610cde816112d7565b840191505092915050565b6000610cf4826110ea565b610cfe818561115e565b9350610d0e8185602086016111f7565b610d17816112d7565b840191505092915050565b6000610d2f60268361115e565b9150610d3a826112e8565b604082019050919050565b6000610d52601d8361115e565b9150610d5d82611337565b602082019050919050565b6000610d75602a8361115e565b9150610d8082611360565b604082019050919050565b6000610d98601f8361115e565b9150610da3826113af565b602082019050919050565b610db7816111de565b82525050565b610dc6816111de565b82525050565b6000610dd88284610c7f565b915081905092915050565b6000602082019050610df86000830184610b61565b92915050565b6000606082019050610e136000830186610b61565b610e206020830185610b61565b610e2d6040830184610dbd565b949350505050565b6000608082019050610e4a6000830187610b61565b8181036020830152610e5c8186610b70565b90508181036040830152610e708185610be5565b9050610e7f6060830184610c43565b95945050505050565b6000604082019050610e9d6000830186610b61565b8181036020830152610eb0818486610c52565b9050949350505050565b6000608082019050610ecf6000830187610b61565b610edc6020830186610dbd565b610ee96040830185610b61565b610ef66060830184610b61565b95945050505050565b600060a082019050610f146000830188610b61565b610f216020830187610dbd565b8181036040830152610f338186610ce9565b9050610f426060830185610dbd565b610f4f6080830184610c43565b9695505050505050565b60006020820190508181036000830152610f738184610ce9565b905092915050565b60006020820190508181036000830152610f9481610d22565b9050919050565b60006020820190508181036000830152610fb481610d45565b9050919050565b60006020820190508181036000830152610fd481610d68565b9050919050565b60006020820190508181036000830152610ff481610d8b565b9050919050565b6000611005611016565b9050611011828261122a565b919050565b6000604051905090565b600067ffffffffffffffff82111561103b5761103a61128a565b5b602082029050602081019050919050565b600067ffffffffffffffff8211156110675761106661128a565b5b602082029050602081019050919050565b600067ffffffffffffffff8211156110935761109261128a565b5b61109c826112d7565b9050602081019050919050565b6000819050602082019050919050565b6000819050602082019050919050565b600081519050919050565b600081519050919050565b600081519050919050565b600081519050919050565b6000602082019050919050565b6000602082019050919050565b600082825260208201905092915050565b600082825260208201905092915050565b600082825260208201905092915050565b600081905092915050565b600082825260208201905092915050565b600082825260208201905092915050565b600061117a826111de565b9150611185836111de565b9250826111955761119461125b565b5b828204905092915050565b60006111ab826111be565b9050919050565b60008115159050919050565b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000819050919050565b82818337600083830152505050565b60005b838110156112155780820151818401526020810190506111fa565b83811115611224576000848401525b50505050565b611233826112d7565b810181811067ffffffffffffffff821117156112525761125161128a565b5b80604052505050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b600080fd5b600080fd5b600080fd5b600080fd5b600080fd5b600080fd5b6000601f19601f8301169050919050565b7f416464726573733a20696e73756666696369656e742062616c616e636520666f60008201527f722063616c6c0000000000000000000000000000000000000000000000000000602082015250565b7f416464726573733a2063616c6c20746f206e6f6e2d636f6e7472616374000000600082015250565b7f5361666545524332303a204552433230206f7065726174696f6e20646964206e60008201527f6f74207375636365656400000000000000000000000000000000000000000000602082015250565b7f5265656e7472616e637947756172643a207265656e7472616e742063616c6c00600082015250565b6113e1816111a0565b81146113ec57600080fd5b50565b6113f8816111b2565b811461140357600080fd5b50565b61140f816111de565b811461141a57600080fd5b5056fea2646970667358221220806b40b0ed017d4b60c2eaaa0b400159c25423da3eb36986617bf147e45550f364736f6c63430008070033", } // ReceiverEVMABI is the input ABI used to generate the binding from. diff --git a/typechain-types/factories/contracts/prototypes/evm/ReceiverEVM__factory.ts b/typechain-types/factories/contracts/prototypes/evm/ReceiverEVM__factory.ts index eafce597..b964a1fe 100644 --- a/typechain-types/factories/contracts/prototypes/evm/ReceiverEVM__factory.ts +++ b/typechain-types/factories/contracts/prototypes/evm/ReceiverEVM__factory.ts @@ -269,7 +269,7 @@ const _abi = [ ] as const; const _bytecode = - "0x608060405234801561001057600080fd5b5061136d806100206000396000f3fe6080604052600436106100595760003560e01c8063357fc5a2146100625780636ed701691461008b5780638fcaa0b5146100a2578063c5131691146100cb578063e04d4f97146100f4578063f05b6abf1461011057610060565b3661006057005b005b34801561006e57600080fd5b5061008960048036038101906100849190610a68565b610139565b005b34801561009757600080fd5b506100a06101a8565b005b3480156100ae57600080fd5b506100c960048036038101906100c491906109ac565b6101e1565b005b3480156100d757600080fd5b506100f260048036038101906100ed9190610a68565b610220565b005b61010e600480360381019061010991906109f9565b6102dc565b005b34801561011c57600080fd5b50610137600480360381019061013291906108f4565b610320565b005b6101663382858573ffffffffffffffffffffffffffffffffffffffff16610362909392919063ffffffff16565b7f2b58128f24a9f59127cc5b5430d70542b22220f2d9adaa86e442b816ab98af603384848460405161019b9493929190610e1d565b60405180910390a1505050565b7fbcaadb46b82a48af60b608f58959ae6b8310d1b0a0d094c2e9ec3208ed39f2a0336040516101d79190610d46565b60405180910390a1565b7f0d3f65f00e631663aa85c96330b5c7a83bb29af3630c0063776f985edc3037aa33838360405161021493929190610deb565b60405180910390a15050565b600060028461022f91906110b2565b9050600081141561026c576040517f1f2a200500000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6102993383838673ffffffffffffffffffffffffffffffffffffffff16610362909392919063ffffffff16565b7f2b58128f24a9f59127cc5b5430d70542b22220f2d9adaa86e442b816ab98af60338285856040516102ce9493929190610e1d565b60405180910390a150505050565b7f1f1ff1f5fb41346850b2f5c04e6c767e2f1c8a525c5c0c5cdb60cdf3ca5f62fa3334858585604051610313959493929190610e62565b60405180910390a1505050565b7f74a53cd528a921fca7dbdee62f86819051d3cc98f214951f4238e8843f20b146338484846040516103559493929190610d98565b60405180910390a1505050565b6103e5846323b872dd60e01b85858560405160240161038393929190610d61565b604051602081830303815290604052907bffffffffffffffffffffffffffffffffffffffffffffffffffffffff19166020820180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff83818316178352505050506103eb565b50505050565b600061044d826040518060400160405280602081526020017f5361666545524332303a206c6f772d6c6576656c2063616c6c206661696c65648152508573ffffffffffffffffffffffffffffffffffffffff166104b29092919063ffffffff16565b90506000815111156104ad578080602001905181019061046d919061097f565b6104ac576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016104a390610f1e565b60405180910390fd5b5b505050565b60606104c184846000856104ca565b90509392505050565b60608247101561050f576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161050690610ede565b60405180910390fd5b6000808673ffffffffffffffffffffffffffffffffffffffff1685876040516105389190610d2f565b60006040518083038185875af1925050503d8060008114610575576040519150601f19603f3d011682016040523d82523d6000602084013e61057a565b606091505b509150915061058b87838387610597565b92505050949350505050565b606083156105fa576000835114156105f2576105b28561060d565b6105f1576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016105e890610efe565b60405180910390fd5b5b829050610605565b6106048383610630565b5b949350505050565b6000808273ffffffffffffffffffffffffffffffffffffffff163b119050919050565b6000825111156106435781518083602001fd5b806040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016106779190610ebc565b60405180910390fd5b600061069361068e84610f63565b610f3e565b905080838252602082019050828560208602820111156106b6576106b5611206565b5b60005b8581101561070457813567ffffffffffffffff8111156106dc576106db611201565b5b8086016106e989826108b1565b855260208501945060208401935050506001810190506106b9565b5050509392505050565b600061072161071c84610f8f565b610f3e565b9050808382526020820190508285602086028201111561074457610743611206565b5b60005b85811015610774578161075a88826108df565b845260208401935060208301925050600181019050610747565b5050509392505050565b600061079161078c84610fbb565b610f3e565b9050828152602081018484840111156107ad576107ac61120b565b5b6107b884828561112b565b509392505050565b6000813590506107cf816112f2565b92915050565b600082601f8301126107ea576107e9611201565b5b81356107fa848260208601610680565b91505092915050565b600082601f83011261081857610817611201565b5b813561082884826020860161070e565b91505092915050565b60008135905061084081611309565b92915050565b60008151905061085581611309565b92915050565b60008083601f84011261087157610870611201565b5b8235905067ffffffffffffffff81111561088e5761088d6111fc565b5b6020830191508360018202830111156108aa576108a9611206565b5b9250929050565b600082601f8301126108c6576108c5611201565b5b81356108d684826020860161077e565b91505092915050565b6000813590506108ee81611320565b92915050565b60008060006060848603121561090d5761090c611215565b5b600084013567ffffffffffffffff81111561092b5761092a611210565b5b610937868287016107d5565b935050602084013567ffffffffffffffff81111561095857610957611210565b5b61096486828701610803565b925050604061097586828701610831565b9150509250925092565b60006020828403121561099557610994611215565b5b60006109a384828501610846565b91505092915050565b600080602083850312156109c3576109c2611215565b5b600083013567ffffffffffffffff8111156109e1576109e0611210565b5b6109ed8582860161085b565b92509250509250929050565b600080600060608486031215610a1257610a11611215565b5b600084013567ffffffffffffffff811115610a3057610a2f611210565b5b610a3c868287016108b1565b9350506020610a4d868287016108df565b9250506040610a5e86828701610831565b9150509250925092565b600080600060608486031215610a8157610a80611215565b5b6000610a8f868287016108df565b9350506020610aa0868287016107c0565b9250506040610ab1868287016107c0565b9150509250925092565b6000610ac78383610c36565b905092915050565b6000610adb8383610d11565b60208301905092915050565b610af0816110e3565b82525050565b6000610b018261100c565b610b0b8185611052565b935083602082028501610b1d85610fec565b8060005b85811015610b595784840389528151610b3a8582610abb565b9450610b4583611038565b925060208a01995050600181019050610b21565b50829750879550505050505092915050565b6000610b7682611017565b610b808185611063565b9350610b8b83610ffc565b8060005b83811015610bbc578151610ba38882610acf565b9750610bae83611045565b925050600181019050610b8f565b5085935050505092915050565b610bd2816110f5565b82525050565b6000610be48385611074565b9350610bf183858461112b565b610bfa8361121a565b840190509392505050565b6000610c1082611022565b610c1a8185611085565b9350610c2a81856020860161113a565b80840191505092915050565b6000610c418261102d565b610c4b8185611090565b9350610c5b81856020860161113a565b610c648161121a565b840191505092915050565b6000610c7a8261102d565b610c8481856110a1565b9350610c9481856020860161113a565b610c9d8161121a565b840191505092915050565b6000610cb56026836110a1565b9150610cc08261122b565b604082019050919050565b6000610cd8601d836110a1565b9150610ce38261127a565b602082019050919050565b6000610cfb602a836110a1565b9150610d06826112a3565b604082019050919050565b610d1a81611121565b82525050565b610d2981611121565b82525050565b6000610d3b8284610c05565b915081905092915050565b6000602082019050610d5b6000830184610ae7565b92915050565b6000606082019050610d766000830186610ae7565b610d836020830185610ae7565b610d906040830184610d20565b949350505050565b6000608082019050610dad6000830187610ae7565b8181036020830152610dbf8186610af6565b90508181036040830152610dd38185610b6b565b9050610de26060830184610bc9565b95945050505050565b6000604082019050610e006000830186610ae7565b8181036020830152610e13818486610bd8565b9050949350505050565b6000608082019050610e326000830187610ae7565b610e3f6020830186610d20565b610e4c6040830185610ae7565b610e596060830184610ae7565b95945050505050565b600060a082019050610e776000830188610ae7565b610e846020830187610d20565b8181036040830152610e968186610c6f565b9050610ea56060830185610d20565b610eb26080830184610bc9565b9695505050505050565b60006020820190508181036000830152610ed68184610c6f565b905092915050565b60006020820190508181036000830152610ef781610ca8565b9050919050565b60006020820190508181036000830152610f1781610ccb565b9050919050565b60006020820190508181036000830152610f3781610cee565b9050919050565b6000610f48610f59565b9050610f54828261116d565b919050565b6000604051905090565b600067ffffffffffffffff821115610f7e57610f7d6111cd565b5b602082029050602081019050919050565b600067ffffffffffffffff821115610faa57610fa96111cd565b5b602082029050602081019050919050565b600067ffffffffffffffff821115610fd657610fd56111cd565b5b610fdf8261121a565b9050602081019050919050565b6000819050602082019050919050565b6000819050602082019050919050565b600081519050919050565b600081519050919050565b600081519050919050565b600081519050919050565b6000602082019050919050565b6000602082019050919050565b600082825260208201905092915050565b600082825260208201905092915050565b600082825260208201905092915050565b600081905092915050565b600082825260208201905092915050565b600082825260208201905092915050565b60006110bd82611121565b91506110c883611121565b9250826110d8576110d761119e565b5b828204905092915050565b60006110ee82611101565b9050919050565b60008115159050919050565b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000819050919050565b82818337600083830152505050565b60005b8381101561115857808201518184015260208101905061113d565b83811115611167576000848401525b50505050565b6111768261121a565b810181811067ffffffffffffffff82111715611195576111946111cd565b5b80604052505050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b600080fd5b600080fd5b600080fd5b600080fd5b600080fd5b600080fd5b6000601f19601f8301169050919050565b7f416464726573733a20696e73756666696369656e742062616c616e636520666f60008201527f722063616c6c0000000000000000000000000000000000000000000000000000602082015250565b7f416464726573733a2063616c6c20746f206e6f6e2d636f6e7472616374000000600082015250565b7f5361666545524332303a204552433230206f7065726174696f6e20646964206e60008201527f6f74207375636365656400000000000000000000000000000000000000000000602082015250565b6112fb816110e3565b811461130657600080fd5b50565b611312816110f5565b811461131d57600080fd5b50565b61132981611121565b811461133457600080fd5b5056fea2646970667358221220a0309d6315771693572c6c753bf9ab1fb30e2f89e0783f8d0607561f1a5589dc64736f6c63430008070033"; + "0x608060405234801561001057600080fd5b506001600081905550611453806100286000396000f3fe6080604052600436106100595760003560e01c8063357fc5a2146100625780636ed701691461008b5780638fcaa0b5146100a2578063c5131691146100cb578063e04d4f97146100f4578063f05b6abf1461011057610060565b3661006057005b005b34801561006e57600080fd5b5061008960048036038101906100849190610ae2565b610139565b005b34801561009757600080fd5b506100a06101b8565b005b3480156100ae57600080fd5b506100c960048036038101906100c49190610a26565b6101f1565b005b3480156100d757600080fd5b506100f260048036038101906100ed9190610ae2565b610230565b005b61010e60048036038101906101099190610a73565b6102fc565b005b34801561011c57600080fd5b506101376004803603810190610132919061096e565b610340565b005b610141610382565b61016e3382858573ffffffffffffffffffffffffffffffffffffffff166103d2909392919063ffffffff16565b7f2b58128f24a9f59127cc5b5430d70542b22220f2d9adaa86e442b816ab98af60338484846040516101a39493929190610eba565b60405180910390a16101b361045b565b505050565b7fbcaadb46b82a48af60b608f58959ae6b8310d1b0a0d094c2e9ec3208ed39f2a0336040516101e79190610de3565b60405180910390a1565b7f0d3f65f00e631663aa85c96330b5c7a83bb29af3630c0063776f985edc3037aa33838360405161022493929190610e88565b60405180910390a15050565b610238610382565b6000600284610247919061116f565b90506000811415610284576040517f1f2a200500000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6102b13383838673ffffffffffffffffffffffffffffffffffffffff166103d2909392919063ffffffff16565b7f2b58128f24a9f59127cc5b5430d70542b22220f2d9adaa86e442b816ab98af60338285856040516102e69493929190610eba565b60405180910390a1506102f761045b565b505050565b7f1f1ff1f5fb41346850b2f5c04e6c767e2f1c8a525c5c0c5cdb60cdf3ca5f62fa3334858585604051610333959493929190610eff565b60405180910390a1505050565b7f74a53cd528a921fca7dbdee62f86819051d3cc98f214951f4238e8843f20b146338484846040516103759493929190610e35565b60405180910390a1505050565b600260005414156103c8576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016103bf90610fdb565b60405180910390fd5b6002600081905550565b610455846323b872dd60e01b8585856040516024016103f393929190610dfe565b604051602081830303815290604052907bffffffffffffffffffffffffffffffffffffffffffffffffffffffff19166020820180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff8381831617835250505050610465565b50505050565b6001600081905550565b60006104c7826040518060400160405280602081526020017f5361666545524332303a206c6f772d6c6576656c2063616c6c206661696c65648152508573ffffffffffffffffffffffffffffffffffffffff1661052c9092919063ffffffff16565b905060008151111561052757808060200190518101906104e791906109f9565b610526576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161051d90610fbb565b60405180910390fd5b5b505050565b606061053b8484600085610544565b90509392505050565b606082471015610589576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161058090610f7b565b60405180910390fd5b6000808673ffffffffffffffffffffffffffffffffffffffff1685876040516105b29190610dcc565b60006040518083038185875af1925050503d80600081146105ef576040519150601f19603f3d011682016040523d82523d6000602084013e6105f4565b606091505b509150915061060587838387610611565b92505050949350505050565b606083156106745760008351141561066c5761062c85610687565b61066b576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161066290610f9b565b60405180910390fd5b5b82905061067f565b61067e83836106aa565b5b949350505050565b6000808273ffffffffffffffffffffffffffffffffffffffff163b119050919050565b6000825111156106bd5781518083602001fd5b806040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016106f19190610f59565b60405180910390fd5b600061070d61070884611020565b610ffb565b905080838252602082019050828560208602820111156107305761072f6112c3565b5b60005b8581101561077e57813567ffffffffffffffff811115610756576107556112be565b5b808601610763898261092b565b85526020850194506020840193505050600181019050610733565b5050509392505050565b600061079b6107968461104c565b610ffb565b905080838252602082019050828560208602820111156107be576107bd6112c3565b5b60005b858110156107ee57816107d48882610959565b8452602084019350602083019250506001810190506107c1565b5050509392505050565b600061080b61080684611078565b610ffb565b905082815260208101848484011115610827576108266112c8565b5b6108328482856111e8565b509392505050565b600081359050610849816113d8565b92915050565b600082601f830112610864576108636112be565b5b81356108748482602086016106fa565b91505092915050565b600082601f830112610892576108916112be565b5b81356108a2848260208601610788565b91505092915050565b6000813590506108ba816113ef565b92915050565b6000815190506108cf816113ef565b92915050565b60008083601f8401126108eb576108ea6112be565b5b8235905067ffffffffffffffff811115610908576109076112b9565b5b602083019150836001820283011115610924576109236112c3565b5b9250929050565b600082601f8301126109405761093f6112be565b5b81356109508482602086016107f8565b91505092915050565b60008135905061096881611406565b92915050565b600080600060608486031215610987576109866112d2565b5b600084013567ffffffffffffffff8111156109a5576109a46112cd565b5b6109b18682870161084f565b935050602084013567ffffffffffffffff8111156109d2576109d16112cd565b5b6109de8682870161087d565b92505060406109ef868287016108ab565b9150509250925092565b600060208284031215610a0f57610a0e6112d2565b5b6000610a1d848285016108c0565b91505092915050565b60008060208385031215610a3d57610a3c6112d2565b5b600083013567ffffffffffffffff811115610a5b57610a5a6112cd565b5b610a67858286016108d5565b92509250509250929050565b600080600060608486031215610a8c57610a8b6112d2565b5b600084013567ffffffffffffffff811115610aaa57610aa96112cd565b5b610ab68682870161092b565b9350506020610ac786828701610959565b9250506040610ad8868287016108ab565b9150509250925092565b600080600060608486031215610afb57610afa6112d2565b5b6000610b0986828701610959565b9350506020610b1a8682870161083a565b9250506040610b2b8682870161083a565b9150509250925092565b6000610b418383610cb0565b905092915050565b6000610b558383610dae565b60208301905092915050565b610b6a816111a0565b82525050565b6000610b7b826110c9565b610b85818561110f565b935083602082028501610b97856110a9565b8060005b85811015610bd35784840389528151610bb48582610b35565b9450610bbf836110f5565b925060208a01995050600181019050610b9b565b50829750879550505050505092915050565b6000610bf0826110d4565b610bfa8185611120565b9350610c05836110b9565b8060005b83811015610c36578151610c1d8882610b49565b9750610c2883611102565b925050600181019050610c09565b5085935050505092915050565b610c4c816111b2565b82525050565b6000610c5e8385611131565b9350610c6b8385846111e8565b610c74836112d7565b840190509392505050565b6000610c8a826110df565b610c948185611142565b9350610ca48185602086016111f7565b80840191505092915050565b6000610cbb826110ea565b610cc5818561114d565b9350610cd58185602086016111f7565b610cde816112d7565b840191505092915050565b6000610cf4826110ea565b610cfe818561115e565b9350610d0e8185602086016111f7565b610d17816112d7565b840191505092915050565b6000610d2f60268361115e565b9150610d3a826112e8565b604082019050919050565b6000610d52601d8361115e565b9150610d5d82611337565b602082019050919050565b6000610d75602a8361115e565b9150610d8082611360565b604082019050919050565b6000610d98601f8361115e565b9150610da3826113af565b602082019050919050565b610db7816111de565b82525050565b610dc6816111de565b82525050565b6000610dd88284610c7f565b915081905092915050565b6000602082019050610df86000830184610b61565b92915050565b6000606082019050610e136000830186610b61565b610e206020830185610b61565b610e2d6040830184610dbd565b949350505050565b6000608082019050610e4a6000830187610b61565b8181036020830152610e5c8186610b70565b90508181036040830152610e708185610be5565b9050610e7f6060830184610c43565b95945050505050565b6000604082019050610e9d6000830186610b61565b8181036020830152610eb0818486610c52565b9050949350505050565b6000608082019050610ecf6000830187610b61565b610edc6020830186610dbd565b610ee96040830185610b61565b610ef66060830184610b61565b95945050505050565b600060a082019050610f146000830188610b61565b610f216020830187610dbd565b8181036040830152610f338186610ce9565b9050610f426060830185610dbd565b610f4f6080830184610c43565b9695505050505050565b60006020820190508181036000830152610f738184610ce9565b905092915050565b60006020820190508181036000830152610f9481610d22565b9050919050565b60006020820190508181036000830152610fb481610d45565b9050919050565b60006020820190508181036000830152610fd481610d68565b9050919050565b60006020820190508181036000830152610ff481610d8b565b9050919050565b6000611005611016565b9050611011828261122a565b919050565b6000604051905090565b600067ffffffffffffffff82111561103b5761103a61128a565b5b602082029050602081019050919050565b600067ffffffffffffffff8211156110675761106661128a565b5b602082029050602081019050919050565b600067ffffffffffffffff8211156110935761109261128a565b5b61109c826112d7565b9050602081019050919050565b6000819050602082019050919050565b6000819050602082019050919050565b600081519050919050565b600081519050919050565b600081519050919050565b600081519050919050565b6000602082019050919050565b6000602082019050919050565b600082825260208201905092915050565b600082825260208201905092915050565b600082825260208201905092915050565b600081905092915050565b600082825260208201905092915050565b600082825260208201905092915050565b600061117a826111de565b9150611185836111de565b9250826111955761119461125b565b5b828204905092915050565b60006111ab826111be565b9050919050565b60008115159050919050565b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000819050919050565b82818337600083830152505050565b60005b838110156112155780820151818401526020810190506111fa565b83811115611224576000848401525b50505050565b611233826112d7565b810181811067ffffffffffffffff821117156112525761125161128a565b5b80604052505050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b600080fd5b600080fd5b600080fd5b600080fd5b600080fd5b600080fd5b6000601f19601f8301169050919050565b7f416464726573733a20696e73756666696369656e742062616c616e636520666f60008201527f722063616c6c0000000000000000000000000000000000000000000000000000602082015250565b7f416464726573733a2063616c6c20746f206e6f6e2d636f6e7472616374000000600082015250565b7f5361666545524332303a204552433230206f7065726174696f6e20646964206e60008201527f6f74207375636365656400000000000000000000000000000000000000000000602082015250565b7f5265656e7472616e637947756172643a207265656e7472616e742063616c6c00600082015250565b6113e1816111a0565b81146113ec57600080fd5b50565b6113f8816111b2565b811461140357600080fd5b50565b61140f816111de565b811461141a57600080fd5b5056fea2646970667358221220806b40b0ed017d4b60c2eaaa0b400159c25423da3eb36986617bf147e45550f364736f6c63430008070033"; type ReceiverEVMConstructorParams = | [signer?: Signer]