From 8c3b172ee76555b0bd8e7f0b5b6185741ac64bfc Mon Sep 17 00:00:00 2001 From: Stefan Iliev <46542846+StefanIliev545@users.noreply.github.com> Date: Tue, 5 Nov 2024 13:29:46 +0200 Subject: [PATCH] Keyless synthetic transactions (#2095) * Moved around the need for key to sign transactions * Replaced hardcoded l2 message bus in some places. * up solc * Fix for linter. * Fix for tenscan. * PR review. --------- Co-authored-by: StefanIliev545 --- .../ERC1967/ERC1967Proxy.sol/ERC1967Proxy.bin | 2 +- .../ERC1967/ERC1967Utils.sol/ERC1967Utils.bin | 2 +- .../transparent/ProxyAdmin.sol/ProxyAdmin.bin | 2 +- .../TransparentUpgradeableProxy.bin | 2 +- .../ERC20/utils/SafeERC20.sol/SafeERC20.bin | 2 +- .../contracts/utils/Address.sol/Address.bin | 2 +- .../utils/StorageSlot.sol/StorageSlot.bin | 2 +- .../contracts/utils/Strings.sol/Strings.bin | 2 +- .../utils/cryptography/ECDSA.sol/ECDSA.bin | 2 +- .../MerkleProof.sol/MerkleProof.bin | 2 +- .../MessageHashUtils.sol/MessageHashUtils.bin | 2 +- .../contracts/utils/math/Math.sol/Math.bin | 2 +- .../utils/math/SignedMath.sol/SignedMath.bin | 2 +- .../L1/ObscuroBridge.sol/ObscuroBridge.bin | 2 +- .../L2/EthereumBridge.sol/EthereumBridge.bin | 2 +- .../ConstantSupplyERC20.bin | 2 +- .../src/common/ObsERC20.sol/ObsERC20.bin | 2 +- .../common/WrappedERC20.sol/WrappedERC20.bin | 2 +- .../ManagementContract.bin | 2 +- .../MerkleTreeMessageBus.bin | 2 +- .../MerkleTreeMessageBus.json | 36 ++++ .../messaging/MessageBus.sol/MessageBus.bin | 2 +- .../messaging/MessageBus.sol/MessageBus.json | 36 ++++ .../CrossChainMessenger.bin | 2 +- .../exported/src/system/Logger.sol/Logger.bin | 2 +- .../SystemDeployer.sol/SystemDeployer.bin | 2 +- .../src/system/Transaction.sol/Structs.bin | 2 +- .../TransactionPostProcessor.bin | 2 +- .../TransactionPostProcessor.json | 18 -- .../GasConsumerBalance.bin | 2 +- .../exported/src/zen/ZenBase.sol/ZenBase.bin | 2 +- .../src/zen/ZenTestnet.sol/ZenTestnet.bin | 2 +- contracts/generated/Address/Address.go | 2 +- .../ConstantSupplyERC20.go | 2 +- .../CrossChainMessenger.go | 2 +- contracts/generated/ECDSA/ECDSA.go | 2 +- .../generated/ERC1967Proxy/ERC1967Proxy.go | 2 +- .../generated/ERC1967Utils/ERC1967Utils.go | 2 +- .../EthereumBridge/EthereumBridge.go | 2 +- .../GasConsumerBalance/GasConsumerBalance.go | 2 +- contracts/generated/Logger/Logger.go | 2 +- .../ManagementContract/ManagementContract.go | 2 +- contracts/generated/Math/Math.go | 2 +- .../generated/MerkleProof/MerkleProof.go | 2 +- .../MerkleTreeMessageBus.go | 159 +++++++++++++++++- contracts/generated/MessageBus/MessageBus.go | 159 +++++++++++++++++- contracts/generated/ObsERC20/ObsERC20.go | 2 +- .../generated/ObscuroBridge/ObscuroBridge.go | 2 +- contracts/generated/ProxyAdmin/ProxyAdmin.go | 2 +- contracts/generated/SafeERC20/SafeERC20.go | 2 +- contracts/generated/Strings/Strings.go | 2 +- .../SystemDeployer/SystemDeployer.go | 2 +- .../TransactionPostProcessor.go | 59 ++----- .../TransparentUpgradeableProxy.go | 2 +- .../generated/WrappedERC20/WrappedERC20.go | 2 +- contracts/generated/ZenBase/ZenBase.go | 2 +- contracts/generated/ZenTestnet/ZenTestnet.go | 2 +- contracts/hardhat.config.ts | 2 +- .../src/management/ManagementContract.sol | 1 - .../src/messaging/MerkleTreeMessageBus.sol | 1 + contracts/src/messaging/MessageBus.sol | 24 ++- contracts/src/system/SystemDeployer.sol | 12 +- .../src/system/TransactionPostProcessor.sol | 12 +- go/common/types.go | 1 + go/enclave/components/batch_executor.go | 14 +- go/enclave/crosschain/interfaces.go | 8 +- go/enclave/crosschain/message_bus_manager.go | 30 +++- go/enclave/evm/evm_facade.go | 2 +- go/enclave/evm/transaction_overlay.go | 56 ++++++ go/enclave/nodetype/sequencer.go | 17 +- go/enclave/system/hooks.go | 28 ++- integration/simulation/simulation.go | 37 +++- .../simulation/transaction_injector.go | 7 +- integration/simulation/validate_chain.go | 8 +- integration/tenscan/tenscan_test.go | 8 +- 75 files changed, 654 insertions(+), 183 deletions(-) create mode 100644 go/enclave/evm/transaction_overlay.go diff --git a/contracts/exported/@openzeppelin/contracts/proxy/ERC1967/ERC1967Proxy.sol/ERC1967Proxy.bin b/contracts/exported/@openzeppelin/contracts/proxy/ERC1967/ERC1967Proxy.sol/ERC1967Proxy.bin index d68eb9aa24..d7bcdbb3fc 100644 --- a/contracts/exported/@openzeppelin/contracts/proxy/ERC1967/ERC1967Proxy.sol/ERC1967Proxy.bin +++ b/contracts/exported/@openzeppelin/contracts/proxy/ERC1967/ERC1967Proxy.sol/ERC1967Proxy.bin @@ -1 +1 @@ -60806040526040516104d53803806104d58339810160408190526100229161036e565b61002c8282610033565b5050610410565b61003c82610092565b6040516001600160a01b038316907fbc7cd75a20ee27fd9adebab32041f755214dbc6bffa90cc0225b39da2e5c2d3b90600090a2805115610086576100818282610109565b505050565b61008e610182565b5050565b806001600160a01b03163b6000036100c85780604051634c9c8ce360e01b81526004016100bf91906103d6565b60405180910390fd5b7f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc80546001600160a01b0319166001600160a01b0392909216919091179055565b6060600080846001600160a01b0316846040516101269190610406565b600060405180830381855af49150503d8060008114610161576040519150601f19603f3d011682016040523d82523d6000602084013e610166565b606091505b5090925090506101778583836101a3565b925050505b92915050565b34156101a15760405163b398979f60e01b815260040160405180910390fd5b565b6060826101b8576101b3826101f9565b6101f2565b81511580156101cf57506001600160a01b0384163b155b156101ef5783604051639996b31560e01b81526004016100bf91906103d6565b50805b9392505050565b8051156102095780518082602001fd5b604051630a12f52160e11b815260040160405180910390fd5b50565b60006001600160a01b03821661017c565b61023f81610225565b811461022257600080fd5b805161017c81610236565b634e487b7160e01b600052604160045260246000fd5b601f19601f83011681016001600160401b038111828210171561029057610290610255565b6040525050565b60006102a260405190565b90506102ae828261026b565b919050565b60006001600160401b038211156102cc576102cc610255565b601f19601f83011660200192915050565b60005b838110156102f85781810151838201526020016102e0565b50506000910152565b600061031461030f846102b3565b610297565b90508281526020810184848401111561032f5761032f600080fd5b61033a8482856102dd565b509392505050565b600082601f83011261035657610356600080fd5b8151610366848260208601610301565b949350505050565b6000806040838503121561038457610384600080fd5b6000610390858561024a565b602085015190935090506001600160401b038111156103b1576103b1600080fd5b6103bd85828601610342565b9150509250929050565b6103d081610225565b82525050565b6020810161017c82846103c7565b60006103ee825190565b6103fc8185602086016102dd565b9290920192915050565b61017c81836103e4565b60b78061041e6000396000f3fe6080604052600a600c565b005b60186014601a565b605e565b565b600060597f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc5473ffffffffffffffffffffffffffffffffffffffff1690565b905090565b3660008037600080366000845af43d6000803e808015607c573d6000f35b3d6000fdfea2646970667358221220679fbeba69a00d05fa2e591d481116c1a8115ed7134fc16aa8e7363bf3aec10164736f6c63430008140033 \ No newline at end of file +60806040526040516104d53803806104d58339810160408190526100229161036e565b61002c8282610033565b5050610410565b61003c82610092565b6040516001600160a01b038316907fbc7cd75a20ee27fd9adebab32041f755214dbc6bffa90cc0225b39da2e5c2d3b90600090a2805115610086576100818282610109565b505050565b61008e610182565b5050565b806001600160a01b03163b6000036100c85780604051634c9c8ce360e01b81526004016100bf91906103d6565b60405180910390fd5b7f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc80546001600160a01b0319166001600160a01b0392909216919091179055565b6060600080846001600160a01b0316846040516101269190610406565b600060405180830381855af49150503d8060008114610161576040519150601f19603f3d011682016040523d82523d6000602084013e610166565b606091505b5090925090506101778583836101a3565b925050505b92915050565b34156101a15760405163b398979f60e01b815260040160405180910390fd5b565b6060826101b8576101b3826101f9565b6101f2565b81511580156101cf57506001600160a01b0384163b155b156101ef5783604051639996b31560e01b81526004016100bf91906103d6565b50805b9392505050565b8051156102095780518082602001fd5b604051630a12f52160e11b815260040160405180910390fd5b50565b60006001600160a01b03821661017c565b61023f81610225565b811461022257600080fd5b805161017c81610236565b634e487b7160e01b600052604160045260246000fd5b601f19601f83011681016001600160401b038111828210171561029057610290610255565b6040525050565b60006102a260405190565b90506102ae828261026b565b919050565b60006001600160401b038211156102cc576102cc610255565b601f19601f83011660200192915050565b60005b838110156102f85781810151838201526020016102e0565b50506000910152565b600061031461030f846102b3565b610297565b90508281526020810184848401111561032f5761032f600080fd5b61033a8482856102dd565b509392505050565b600082601f83011261035657610356600080fd5b8151610366848260208601610301565b949350505050565b6000806040838503121561038457610384600080fd5b6000610390858561024a565b602085015190935090506001600160401b038111156103b1576103b1600080fd5b6103bd85828601610342565b9150509250929050565b6103d081610225565b82525050565b6020810161017c82846103c7565b60006103ee825190565b6103fc8185602086016102dd565b9290920192915050565b61017c81836103e4565b60b78061041e6000396000f3fe6080604052600a600c565b005b60186014601a565b605e565b565b600060597f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc5473ffffffffffffffffffffffffffffffffffffffff1690565b905090565b3660008037600080366000845af43d6000803e808015607c573d6000f35b3d6000fdfea2646970667358221220af0ad56f192a7d1bfa60e5538e4a309664aeb1af6cdbcf5ffe7d317ac444c19264736f6c63430008150033 \ No newline at end of file diff --git a/contracts/exported/@openzeppelin/contracts/proxy/ERC1967/ERC1967Utils.sol/ERC1967Utils.bin b/contracts/exported/@openzeppelin/contracts/proxy/ERC1967/ERC1967Utils.sol/ERC1967Utils.bin index 605cee1112..4809aae8f5 100644 --- a/contracts/exported/@openzeppelin/contracts/proxy/ERC1967/ERC1967Utils.sol/ERC1967Utils.bin +++ b/contracts/exported/@openzeppelin/contracts/proxy/ERC1967/ERC1967Utils.sol/ERC1967Utils.bin @@ -1 +1 @@ -60566037600b82828239805160001a607314602a57634e487b7160e01b600052600060045260246000fd5b30600052607381538281f3fe73000000000000000000000000000000000000000030146080604052600080fdfea2646970667358221220ec29ed6df4a2008096043ff8d92e1dd9d99c6cc624ee92395edf2d28183ba61964736f6c63430008140033 \ No newline at end of file +60566037600b82828239805160001a607314602a57634e487b7160e01b600052600060045260246000fd5b30600052607381538281f3fe73000000000000000000000000000000000000000030146080604052600080fdfea26469706673582212209c8743ddfc5db36f715983637591eefdb90bb3bd861ff75e197f8bfa9b46e10a64736f6c63430008150033 \ No newline at end of file diff --git a/contracts/exported/@openzeppelin/contracts/proxy/transparent/ProxyAdmin.sol/ProxyAdmin.bin b/contracts/exported/@openzeppelin/contracts/proxy/transparent/ProxyAdmin.sol/ProxyAdmin.bin index e029f822a7..c5631d8533 100644 --- a/contracts/exported/@openzeppelin/contracts/proxy/transparent/ProxyAdmin.sol/ProxyAdmin.bin +++ b/contracts/exported/@openzeppelin/contracts/proxy/transparent/ProxyAdmin.sol/ProxyAdmin.bin @@ -1 +1 @@ -608060405234801561001057600080fd5b506040516106ff3803806106ff83398101604081905261002f916100f8565b806001600160a01b038116610063576000604051631e4fbdf760e01b815260040161005a9190610130565b60405180910390fd5b61006c81610073565b505061013e565b600080546001600160a01b038381166001600160a01b0319831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b60006001600160a01b0382165b92915050565b6100df816100c3565b81146100ea57600080fd5b50565b80516100d0816100d6565b60006020828403121561010d5761010d600080fd5b600061011984846100ed565b949350505050565b61012a816100c3565b82525050565b602081016100d08284610121565b6105b28061014d6000396000f3fe60806040526004361061005a5760003560e01c80639623609d116100435780639623609d146100a5578063ad3cb1cc146100b8578063f2fde38b1461010e57600080fd5b8063715018a61461005f5780638da5cb5b14610076575b600080fd5b34801561006b57600080fd5b5061007461012e565b005b34801561008257600080fd5b506000546001600160a01b031660405161009c91906102fa565b60405180910390f35b6100746100b3366004610462565b610142565b3480156100c457600080fd5b506101016040518060400160405280600581526020017f352e302e3000000000000000000000000000000000000000000000000000000081525081565b60405161009c9190610523565b34801561011a57600080fd5b5061007461012936600461053b565b6101ca565b61013661022a565b6101406000610270565b565b61014a61022a565b6040517f4f1ef2860000000000000000000000000000000000000000000000000000000081526001600160a01b03841690634f1ef286903490610193908690869060040161055c565b6000604051808303818588803b1580156101ac57600080fd5b505af11580156101c0573d6000803e3d6000fd5b5050505050505050565b6101d261022a565b6001600160a01b03811661021e5760006040517f1e4fbdf700000000000000000000000000000000000000000000000000000000815260040161021591906102fa565b60405180910390fd5b61022781610270565b50565b6000546001600160a01b0316331461014057336040517f118cdaa700000000000000000000000000000000000000000000000000000000815260040161021591906102fa565b600080546001600160a01b038381167fffffffffffffffffffffffff0000000000000000000000000000000000000000831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b60006001600160a01b0382165b92915050565b6102f4816102d8565b82525050565b602081016102e582846102eb565b60006102e5826102d8565b61031c81610308565b811461022757600080fd5b80356102e581610313565b61031c816102d8565b80356102e581610332565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b601f19601f830116810181811067ffffffffffffffff8211171561039b5761039b610346565b6040525050565b60006103ad60405190565b90506103b98282610375565b919050565b600067ffffffffffffffff8211156103d8576103d8610346565b601f19601f83011660200192915050565b82818337506000910152565b6000610408610403846103be565b6103a2565b90508281526020810184848401111561042357610423600080fd5b61042e8482856103e9565b509392505050565b600082601f83011261044a5761044a600080fd5b813561045a8482602086016103f5565b949350505050565b60008060006060848603121561047a5761047a600080fd5b60006104868686610327565b93505060206104978682870161033b565b925050604084013567ffffffffffffffff8111156104b7576104b7600080fd5b6104c386828701610436565b9150509250925092565b60005b838110156104e85781810151838201526020016104d0565b50506000910152565b60006104fb825190565b8084526020840193506105128185602086016104cd565b601f01601f19169290920192915050565b6020808252810161053481846104f1565b9392505050565b60006020828403121561055057610550600080fd5b600061045a848461033b565b6040810161056a82856102eb565b818103602083015261045a81846104f156fea2646970667358221220b0f8a95a6e2425eadd967ffc0cf44240f936f4de811b02bbb90ac6935cf0ce6a64736f6c63430008140033 \ No newline at end of file +608060405234801561001057600080fd5b506040516106ff3803806106ff83398101604081905261002f916100f8565b806001600160a01b038116610063576000604051631e4fbdf760e01b815260040161005a9190610130565b60405180910390fd5b61006c81610073565b505061013e565b600080546001600160a01b038381166001600160a01b0319831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b60006001600160a01b0382165b92915050565b6100df816100c3565b81146100ea57600080fd5b50565b80516100d0816100d6565b60006020828403121561010d5761010d600080fd5b600061011984846100ed565b949350505050565b61012a816100c3565b82525050565b602081016100d08284610121565b6105b28061014d6000396000f3fe60806040526004361061005a5760003560e01c80639623609d116100435780639623609d146100a5578063ad3cb1cc146100b8578063f2fde38b1461010e57600080fd5b8063715018a61461005f5780638da5cb5b14610076575b600080fd5b34801561006b57600080fd5b5061007461012e565b005b34801561008257600080fd5b506000546001600160a01b031660405161009c91906102fa565b60405180910390f35b6100746100b3366004610462565b610142565b3480156100c457600080fd5b506101016040518060400160405280600581526020017f352e302e3000000000000000000000000000000000000000000000000000000081525081565b60405161009c9190610523565b34801561011a57600080fd5b5061007461012936600461053b565b6101ca565b61013661022a565b6101406000610270565b565b61014a61022a565b6040517f4f1ef2860000000000000000000000000000000000000000000000000000000081526001600160a01b03841690634f1ef286903490610193908690869060040161055c565b6000604051808303818588803b1580156101ac57600080fd5b505af11580156101c0573d6000803e3d6000fd5b5050505050505050565b6101d261022a565b6001600160a01b03811661021e5760006040517f1e4fbdf700000000000000000000000000000000000000000000000000000000815260040161021591906102fa565b60405180910390fd5b61022781610270565b50565b6000546001600160a01b0316331461014057336040517f118cdaa700000000000000000000000000000000000000000000000000000000815260040161021591906102fa565b600080546001600160a01b038381167fffffffffffffffffffffffff0000000000000000000000000000000000000000831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b60006001600160a01b0382165b92915050565b6102f4816102d8565b82525050565b602081016102e582846102eb565b60006102e5826102d8565b61031c81610308565b811461022757600080fd5b80356102e581610313565b61031c816102d8565b80356102e581610332565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b601f19601f830116810181811067ffffffffffffffff8211171561039b5761039b610346565b6040525050565b60006103ad60405190565b90506103b98282610375565b919050565b600067ffffffffffffffff8211156103d8576103d8610346565b601f19601f83011660200192915050565b82818337506000910152565b6000610408610403846103be565b6103a2565b90508281526020810184848401111561042357610423600080fd5b61042e8482856103e9565b509392505050565b600082601f83011261044a5761044a600080fd5b813561045a8482602086016103f5565b949350505050565b60008060006060848603121561047a5761047a600080fd5b60006104868686610327565b93505060206104978682870161033b565b925050604084013567ffffffffffffffff8111156104b7576104b7600080fd5b6104c386828701610436565b9150509250925092565b60005b838110156104e85781810151838201526020016104d0565b50506000910152565b60006104fb825190565b8084526020840193506105128185602086016104cd565b601f01601f19169290920192915050565b6020808252810161053481846104f1565b9392505050565b60006020828403121561055057610550600080fd5b600061045a848461033b565b6040810161056a82856102eb565b818103602083015261045a81846104f156fea2646970667358221220bc53b042dace43e275ea4e3c2111fb2632f7c79b2d985ac0664bd97ca15c79a164736f6c63430008150033 \ No newline at end of file diff --git a/contracts/exported/@openzeppelin/contracts/proxy/transparent/TransparentUpgradeableProxy.sol/TransparentUpgradeableProxy.bin b/contracts/exported/@openzeppelin/contracts/proxy/transparent/TransparentUpgradeableProxy.sol/TransparentUpgradeableProxy.bin index 7c1346a00a..8ae56908d6 100644 --- a/contracts/exported/@openzeppelin/contracts/proxy/transparent/TransparentUpgradeableProxy.sol/TransparentUpgradeableProxy.bin +++ b/contracts/exported/@openzeppelin/contracts/proxy/transparent/TransparentUpgradeableProxy.sol/TransparentUpgradeableProxy.bin @@ -1 +1 @@ -60a06040526040516200132c3803806200132c8339810160408190526200002691620004c5565b828162000034828262000098565b505081604051620000459062000351565b6200005191906200054c565b604051809103906000f0801580156200006e573d6000803e3d6000fd5b506001600160a01b03166080526200008f6200008960805190565b620000fe565b505050620005ac565b620000a38262000167565b6040516001600160a01b038316907fbc7cd75a20ee27fd9adebab32041f755214dbc6bffa90cc0225b39da2e5c2d3b90600090a2805115620000f057620000eb8282620001e4565b505050565b620000fa62000263565b5050565b7f7e644d79422f17c01e4894b5f4f588d331ebfa28653d42ae832dc59e38c9798f620001406000805160206200130c833981519152546001600160a01b031690565b82604051620001519291906200055c565b60405180910390a1620001648162000285565b50565b806001600160a01b03163b600003620001a05780604051634c9c8ce360e01b81526004016200019791906200054c565b60405180910390fd5b807f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc5b80546001600160a01b0319166001600160a01b039290921691909117905550565b6060600080846001600160a01b031684604051620002039190620005a0565b600060405180830381855af49150503d806000811462000240576040519150601f19603f3d011682016040523d82523d6000602084013e62000245565b606091505b50909250905062000258858383620002c9565b925050505b92915050565b3415620002835760405163b398979f60e01b815260040160405180910390fd5b565b6001600160a01b038116620002b2576000604051633173bdd160e11b81526004016200019791906200054c565b806000805160206200130c833981519152620001c3565b606082620002e257620002dc8262000327565b62000320565b8151158015620002fa57506001600160a01b0384163b155b156200031d5783604051639996b31560e01b81526004016200019791906200054c565b50805b9392505050565b805115620003385780518082602001fd5b604051630a12f52160e11b815260040160405180910390fd5b6106ff8062000c0d83390190565b60006001600160a01b0382166200025d565b6200037c816200035f565b81146200016457600080fd5b80516200025d8162000371565b634e487b7160e01b600052604160045260246000fd5b601f19601f83011681016001600160401b0381118282101715620003d357620003d362000395565b6040525050565b6000620003e660405190565b9050620003f48282620003ab565b919050565b60006001600160401b0382111562000415576200041562000395565b601f19601f83011660200192915050565b60005b838110156200044357818101518382015260200162000429565b50506000910152565b6000620004636200045d84620003f9565b620003da565b905082815260208101848484011115620004805762000480600080fd5b6200048d84828562000426565b509392505050565b600082601f830112620004ab57620004ab600080fd5b8151620004bd8482602086016200044c565b949350505050565b600080600060608486031215620004df57620004df600080fd5b6000620004ed868662000388565b9350506020620005008682870162000388565b604086015190935090506001600160401b03811115620005235762000523600080fd5b620005318682870162000495565b9150509250925092565b62000546816200035f565b82525050565b602081016200025d82846200053b565b604081016200056c82856200053b565b6200032060208301846200053b565b600062000586825190565b6200059681856020860162000426565b9290920192915050565b6200025d81836200057b565b608051610646620005c76000396000601001526106466000f3fe608060405261000c61000e565b005b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031633036100c5576000357fffffffff00000000000000000000000000000000000000000000000000000000167f4f1ef28600000000000000000000000000000000000000000000000000000000146100bb576040517fd2b576ec00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6100c36100cd565b565b6100c36100fc565b6000806100dd36600481846103cf565b8101906100ea919061054b565b915091506100f8828261010c565b5050565b6100c3610107610167565b61019f565b610115826101c3565b6040516001600160a01b038316907fbc7cd75a20ee27fd9adebab32041f755214dbc6bffa90cc0225b39da2e5c2d3b90600090a280511561015f5761015a828261026b565b505050565b6100f86102e3565b600061019a7f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc546001600160a01b031690565b905090565b3660008037600080366000845af43d6000803e8080156101be573d6000f35b3d6000fd5b806001600160a01b03163b60000361021257806040517f4c9c8ce300000000000000000000000000000000000000000000000000000000815260040161020991906105b2565b60405180910390fd5b7f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc80547fffffffffffffffffffffffff0000000000000000000000000000000000000000166001600160a01b0392909216919091179055565b6060600080846001600160a01b0316846040516102889190610606565b600060405180830381855af49150503d80600081146102c3576040519150601f19603f3d011682016040523d82523d6000602084013e6102c8565b606091505b50915091506102d885838361031b565b925050505b92915050565b34156100c3576040517fb398979f00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6060826103305761032b8261038a565b610383565b815115801561034757506001600160a01b0384163b155b1561038057836040517f9996b31500000000000000000000000000000000000000000000000000000000815260040161020991906105b2565b50805b9392505050565b80511561039a5780518082602001fd5b6040517f1425ea4200000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b50565b600080858511156103e2576103e2600080fd5b838611156103f2576103f2600080fd5b5050820193919092039150565b60006001600160a01b0382166102dd565b610419816103ff565b81146103cc57600080fd5b80356102dd81610410565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b601f19601f830116810181811067ffffffffffffffff821117156104845761048461042f565b6040525050565b600061049660405190565b90506104a2828261045e565b919050565b600067ffffffffffffffff8211156104c1576104c161042f565b601f19601f83011660200192915050565b82818337506000910152565b60006104f16104ec846104a7565b61048b565b90508281526020810184848401111561050c5761050c600080fd5b6105178482856104d2565b509392505050565b600082601f83011261053357610533600080fd5b81356105438482602086016104de565b949350505050565b6000806040838503121561056157610561600080fd5b600061056d8585610424565b925050602083013567ffffffffffffffff81111561058d5761058d600080fd5b6105998582860161051f565b9150509250929050565b6105ac816103ff565b82525050565b602081016102dd82846105a3565b60005b838110156105db5781810151838201526020016105c3565b50506000910152565b60006105ee825190565b6105fc8185602086016105c0565b9290920192915050565b6102dd81836105e456fea2646970667358221220eecd99cd63d826407d5639a8db1821a6b0aadb0feacc1d2f9d4541d896c80bd464736f6c63430008140033608060405234801561001057600080fd5b506040516106ff3803806106ff83398101604081905261002f916100f8565b806001600160a01b038116610063576000604051631e4fbdf760e01b815260040161005a9190610130565b60405180910390fd5b61006c81610073565b505061013e565b600080546001600160a01b038381166001600160a01b0319831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b60006001600160a01b0382165b92915050565b6100df816100c3565b81146100ea57600080fd5b50565b80516100d0816100d6565b60006020828403121561010d5761010d600080fd5b600061011984846100ed565b949350505050565b61012a816100c3565b82525050565b602081016100d08284610121565b6105b28061014d6000396000f3fe60806040526004361061005a5760003560e01c80639623609d116100435780639623609d146100a5578063ad3cb1cc146100b8578063f2fde38b1461010e57600080fd5b8063715018a61461005f5780638da5cb5b14610076575b600080fd5b34801561006b57600080fd5b5061007461012e565b005b34801561008257600080fd5b506000546001600160a01b031660405161009c91906102fa565b60405180910390f35b6100746100b3366004610462565b610142565b3480156100c457600080fd5b506101016040518060400160405280600581526020017f352e302e3000000000000000000000000000000000000000000000000000000081525081565b60405161009c9190610523565b34801561011a57600080fd5b5061007461012936600461053b565b6101ca565b61013661022a565b6101406000610270565b565b61014a61022a565b6040517f4f1ef2860000000000000000000000000000000000000000000000000000000081526001600160a01b03841690634f1ef286903490610193908690869060040161055c565b6000604051808303818588803b1580156101ac57600080fd5b505af11580156101c0573d6000803e3d6000fd5b5050505050505050565b6101d261022a565b6001600160a01b03811661021e5760006040517f1e4fbdf700000000000000000000000000000000000000000000000000000000815260040161021591906102fa565b60405180910390fd5b61022781610270565b50565b6000546001600160a01b0316331461014057336040517f118cdaa700000000000000000000000000000000000000000000000000000000815260040161021591906102fa565b600080546001600160a01b038381167fffffffffffffffffffffffff0000000000000000000000000000000000000000831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b60006001600160a01b0382165b92915050565b6102f4816102d8565b82525050565b602081016102e582846102eb565b60006102e5826102d8565b61031c81610308565b811461022757600080fd5b80356102e581610313565b61031c816102d8565b80356102e581610332565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b601f19601f830116810181811067ffffffffffffffff8211171561039b5761039b610346565b6040525050565b60006103ad60405190565b90506103b98282610375565b919050565b600067ffffffffffffffff8211156103d8576103d8610346565b601f19601f83011660200192915050565b82818337506000910152565b6000610408610403846103be565b6103a2565b90508281526020810184848401111561042357610423600080fd5b61042e8482856103e9565b509392505050565b600082601f83011261044a5761044a600080fd5b813561045a8482602086016103f5565b949350505050565b60008060006060848603121561047a5761047a600080fd5b60006104868686610327565b93505060206104978682870161033b565b925050604084013567ffffffffffffffff8111156104b7576104b7600080fd5b6104c386828701610436565b9150509250925092565b60005b838110156104e85781810151838201526020016104d0565b50506000910152565b60006104fb825190565b8084526020840193506105128185602086016104cd565b601f01601f19169290920192915050565b6020808252810161053481846104f1565b9392505050565b60006020828403121561055057610550600080fd5b600061045a848461033b565b6040810161056a82856102eb565b818103602083015261045a81846104f156fea2646970667358221220b0f8a95a6e2425eadd967ffc0cf44240f936f4de811b02bbb90ac6935cf0ce6a64736f6c63430008140033b53127684a568b3173ae13b9f8a6016e243e63b6e8ee1178d6a717850b5d6103 \ No newline at end of file +60a06040526040516200132c3803806200132c8339810160408190526200002691620004c5565b828162000034828262000098565b505081604051620000459062000351565b6200005191906200054c565b604051809103906000f0801580156200006e573d6000803e3d6000fd5b506001600160a01b03166080526200008f6200008960805190565b620000fe565b505050620005ac565b620000a38262000167565b6040516001600160a01b038316907fbc7cd75a20ee27fd9adebab32041f755214dbc6bffa90cc0225b39da2e5c2d3b90600090a2805115620000f057620000eb8282620001e4565b505050565b620000fa62000263565b5050565b7f7e644d79422f17c01e4894b5f4f588d331ebfa28653d42ae832dc59e38c9798f620001406000805160206200130c833981519152546001600160a01b031690565b82604051620001519291906200055c565b60405180910390a1620001648162000285565b50565b806001600160a01b03163b600003620001a05780604051634c9c8ce360e01b81526004016200019791906200054c565b60405180910390fd5b807f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc5b80546001600160a01b0319166001600160a01b039290921691909117905550565b6060600080846001600160a01b031684604051620002039190620005a0565b600060405180830381855af49150503d806000811462000240576040519150601f19603f3d011682016040523d82523d6000602084013e62000245565b606091505b50909250905062000258858383620002c9565b925050505b92915050565b3415620002835760405163b398979f60e01b815260040160405180910390fd5b565b6001600160a01b038116620002b2576000604051633173bdd160e11b81526004016200019791906200054c565b806000805160206200130c833981519152620001c3565b606082620002e257620002dc8262000327565b62000320565b8151158015620002fa57506001600160a01b0384163b155b156200031d5783604051639996b31560e01b81526004016200019791906200054c565b50805b9392505050565b805115620003385780518082602001fd5b604051630a12f52160e11b815260040160405180910390fd5b6106ff8062000c0d83390190565b60006001600160a01b0382166200025d565b6200037c816200035f565b81146200016457600080fd5b80516200025d8162000371565b634e487b7160e01b600052604160045260246000fd5b601f19601f83011681016001600160401b0381118282101715620003d357620003d362000395565b6040525050565b6000620003e660405190565b9050620003f48282620003ab565b919050565b60006001600160401b0382111562000415576200041562000395565b601f19601f83011660200192915050565b60005b838110156200044357818101518382015260200162000429565b50506000910152565b6000620004636200045d84620003f9565b620003da565b905082815260208101848484011115620004805762000480600080fd5b6200048d84828562000426565b509392505050565b600082601f830112620004ab57620004ab600080fd5b8151620004bd8482602086016200044c565b949350505050565b600080600060608486031215620004df57620004df600080fd5b6000620004ed868662000388565b9350506020620005008682870162000388565b604086015190935090506001600160401b03811115620005235762000523600080fd5b620005318682870162000495565b9150509250925092565b62000546816200035f565b82525050565b602081016200025d82846200053b565b604081016200056c82856200053b565b6200032060208301846200053b565b600062000586825190565b6200059681856020860162000426565b9290920192915050565b6200025d81836200057b565b608051610646620005c76000396000601001526106466000f3fe608060405261000c61000e565b005b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031633036100c5576000357fffffffff00000000000000000000000000000000000000000000000000000000167f4f1ef28600000000000000000000000000000000000000000000000000000000146100bb576040517fd2b576ec00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6100c36100cd565b565b6100c36100fc565b6000806100dd36600481846103cf565b8101906100ea919061054b565b915091506100f8828261010c565b5050565b6100c3610107610167565b61019f565b610115826101c3565b6040516001600160a01b038316907fbc7cd75a20ee27fd9adebab32041f755214dbc6bffa90cc0225b39da2e5c2d3b90600090a280511561015f5761015a828261026b565b505050565b6100f86102e3565b600061019a7f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc546001600160a01b031690565b905090565b3660008037600080366000845af43d6000803e8080156101be573d6000f35b3d6000fd5b806001600160a01b03163b60000361021257806040517f4c9c8ce300000000000000000000000000000000000000000000000000000000815260040161020991906105b2565b60405180910390fd5b7f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc80547fffffffffffffffffffffffff0000000000000000000000000000000000000000166001600160a01b0392909216919091179055565b6060600080846001600160a01b0316846040516102889190610606565b600060405180830381855af49150503d80600081146102c3576040519150601f19603f3d011682016040523d82523d6000602084013e6102c8565b606091505b50915091506102d885838361031b565b925050505b92915050565b34156100c3576040517fb398979f00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6060826103305761032b8261038a565b610383565b815115801561034757506001600160a01b0384163b155b1561038057836040517f9996b31500000000000000000000000000000000000000000000000000000000815260040161020991906105b2565b50805b9392505050565b80511561039a5780518082602001fd5b6040517f1425ea4200000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b50565b600080858511156103e2576103e2600080fd5b838611156103f2576103f2600080fd5b5050820193919092039150565b60006001600160a01b0382166102dd565b610419816103ff565b81146103cc57600080fd5b80356102dd81610410565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b601f19601f830116810181811067ffffffffffffffff821117156104845761048461042f565b6040525050565b600061049660405190565b90506104a2828261045e565b919050565b600067ffffffffffffffff8211156104c1576104c161042f565b601f19601f83011660200192915050565b82818337506000910152565b60006104f16104ec846104a7565b61048b565b90508281526020810184848401111561050c5761050c600080fd5b6105178482856104d2565b509392505050565b600082601f83011261053357610533600080fd5b81356105438482602086016104de565b949350505050565b6000806040838503121561056157610561600080fd5b600061056d8585610424565b925050602083013567ffffffffffffffff81111561058d5761058d600080fd5b6105998582860161051f565b9150509250929050565b6105ac816103ff565b82525050565b602081016102dd82846105a3565b60005b838110156105db5781810151838201526020016105c3565b50506000910152565b60006105ee825190565b6105fc8185602086016105c0565b9290920192915050565b6102dd81836105e456fea26469706673582212209a20b849817245e3cac5f59a8de1da61769680733e5cb208d7418240470f1f7364736f6c63430008150033608060405234801561001057600080fd5b506040516106ff3803806106ff83398101604081905261002f916100f8565b806001600160a01b038116610063576000604051631e4fbdf760e01b815260040161005a9190610130565b60405180910390fd5b61006c81610073565b505061013e565b600080546001600160a01b038381166001600160a01b0319831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b60006001600160a01b0382165b92915050565b6100df816100c3565b81146100ea57600080fd5b50565b80516100d0816100d6565b60006020828403121561010d5761010d600080fd5b600061011984846100ed565b949350505050565b61012a816100c3565b82525050565b602081016100d08284610121565b6105b28061014d6000396000f3fe60806040526004361061005a5760003560e01c80639623609d116100435780639623609d146100a5578063ad3cb1cc146100b8578063f2fde38b1461010e57600080fd5b8063715018a61461005f5780638da5cb5b14610076575b600080fd5b34801561006b57600080fd5b5061007461012e565b005b34801561008257600080fd5b506000546001600160a01b031660405161009c91906102fa565b60405180910390f35b6100746100b3366004610462565b610142565b3480156100c457600080fd5b506101016040518060400160405280600581526020017f352e302e3000000000000000000000000000000000000000000000000000000081525081565b60405161009c9190610523565b34801561011a57600080fd5b5061007461012936600461053b565b6101ca565b61013661022a565b6101406000610270565b565b61014a61022a565b6040517f4f1ef2860000000000000000000000000000000000000000000000000000000081526001600160a01b03841690634f1ef286903490610193908690869060040161055c565b6000604051808303818588803b1580156101ac57600080fd5b505af11580156101c0573d6000803e3d6000fd5b5050505050505050565b6101d261022a565b6001600160a01b03811661021e5760006040517f1e4fbdf700000000000000000000000000000000000000000000000000000000815260040161021591906102fa565b60405180910390fd5b61022781610270565b50565b6000546001600160a01b0316331461014057336040517f118cdaa700000000000000000000000000000000000000000000000000000000815260040161021591906102fa565b600080546001600160a01b038381167fffffffffffffffffffffffff0000000000000000000000000000000000000000831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b60006001600160a01b0382165b92915050565b6102f4816102d8565b82525050565b602081016102e582846102eb565b60006102e5826102d8565b61031c81610308565b811461022757600080fd5b80356102e581610313565b61031c816102d8565b80356102e581610332565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b601f19601f830116810181811067ffffffffffffffff8211171561039b5761039b610346565b6040525050565b60006103ad60405190565b90506103b98282610375565b919050565b600067ffffffffffffffff8211156103d8576103d8610346565b601f19601f83011660200192915050565b82818337506000910152565b6000610408610403846103be565b6103a2565b90508281526020810184848401111561042357610423600080fd5b61042e8482856103e9565b509392505050565b600082601f83011261044a5761044a600080fd5b813561045a8482602086016103f5565b949350505050565b60008060006060848603121561047a5761047a600080fd5b60006104868686610327565b93505060206104978682870161033b565b925050604084013567ffffffffffffffff8111156104b7576104b7600080fd5b6104c386828701610436565b9150509250925092565b60005b838110156104e85781810151838201526020016104d0565b50506000910152565b60006104fb825190565b8084526020840193506105128185602086016104cd565b601f01601f19169290920192915050565b6020808252810161053481846104f1565b9392505050565b60006020828403121561055057610550600080fd5b600061045a848461033b565b6040810161056a82856102eb565b818103602083015261045a81846104f156fea2646970667358221220bc53b042dace43e275ea4e3c2111fb2632f7c79b2d985ac0664bd97ca15c79a164736f6c63430008150033b53127684a568b3173ae13b9f8a6016e243e63b6e8ee1178d6a717850b5d6103 \ No newline at end of file diff --git a/contracts/exported/@openzeppelin/contracts/token/ERC20/utils/SafeERC20.sol/SafeERC20.bin b/contracts/exported/@openzeppelin/contracts/token/ERC20/utils/SafeERC20.sol/SafeERC20.bin index 10206c79d9..f36348159e 100644 --- a/contracts/exported/@openzeppelin/contracts/token/ERC20/utils/SafeERC20.sol/SafeERC20.bin +++ b/contracts/exported/@openzeppelin/contracts/token/ERC20/utils/SafeERC20.sol/SafeERC20.bin @@ -1 +1 @@ -60566037600b82828239805160001a607314602a57634e487b7160e01b600052600060045260246000fd5b30600052607381538281f3fe73000000000000000000000000000000000000000030146080604052600080fdfea26469706673582212200834405c28dfefdd147fe97412057aaa8d46ea72cd97cab9a17d38d82e1e2d5c64736f6c63430008140033 \ No newline at end of file +60566037600b82828239805160001a607314602a57634e487b7160e01b600052600060045260246000fd5b30600052607381538281f3fe73000000000000000000000000000000000000000030146080604052600080fdfea2646970667358221220bfc23a0f53ebed26b1686f1a14e3c95322dd51ff86eb83ade06e6f6cebf9894a64736f6c63430008150033 \ No newline at end of file diff --git a/contracts/exported/@openzeppelin/contracts/utils/Address.sol/Address.bin b/contracts/exported/@openzeppelin/contracts/utils/Address.sol/Address.bin index 81cc0cf207..cbb7db0cc7 100644 --- a/contracts/exported/@openzeppelin/contracts/utils/Address.sol/Address.bin +++ b/contracts/exported/@openzeppelin/contracts/utils/Address.sol/Address.bin @@ -1 +1 @@ -60566037600b82828239805160001a607314602a57634e487b7160e01b600052600060045260246000fd5b30600052607381538281f3fe73000000000000000000000000000000000000000030146080604052600080fdfea264697066735822122071923496e8dc037afc52f2cd62212c1969857e590755963b8b4983d40c3bb00864736f6c63430008140033 \ No newline at end of file +60566037600b82828239805160001a607314602a57634e487b7160e01b600052600060045260246000fd5b30600052607381538281f3fe73000000000000000000000000000000000000000030146080604052600080fdfea2646970667358221220d74e230a1c3698413be30397c8e30a7647b12e3f7cd265bc7728b971a53935b464736f6c63430008150033 \ No newline at end of file diff --git a/contracts/exported/@openzeppelin/contracts/utils/StorageSlot.sol/StorageSlot.bin b/contracts/exported/@openzeppelin/contracts/utils/StorageSlot.sol/StorageSlot.bin index 0fb29def1f..9bd5df46d6 100644 --- a/contracts/exported/@openzeppelin/contracts/utils/StorageSlot.sol/StorageSlot.bin +++ b/contracts/exported/@openzeppelin/contracts/utils/StorageSlot.sol/StorageSlot.bin @@ -1 +1 @@ -60566037600b82828239805160001a607314602a57634e487b7160e01b600052600060045260246000fd5b30600052607381538281f3fe73000000000000000000000000000000000000000030146080604052600080fdfea2646970667358221220b6f23ef25fdbfe16d388d96678f86289f04c1c76e1dadfa3b3578cbd8e70c51864736f6c63430008140033 \ No newline at end of file +60566037600b82828239805160001a607314602a57634e487b7160e01b600052600060045260246000fd5b30600052607381538281f3fe73000000000000000000000000000000000000000030146080604052600080fdfea2646970667358221220bf78855439f1f7306e2b15b6291a9e9c166caa9d9d9edc46db11645d0428274864736f6c63430008150033 \ No newline at end of file diff --git a/contracts/exported/@openzeppelin/contracts/utils/Strings.sol/Strings.bin b/contracts/exported/@openzeppelin/contracts/utils/Strings.sol/Strings.bin index a88db98874..fb9e095e4a 100644 --- a/contracts/exported/@openzeppelin/contracts/utils/Strings.sol/Strings.bin +++ b/contracts/exported/@openzeppelin/contracts/utils/Strings.sol/Strings.bin @@ -1 +1 @@ -60566037600b82828239805160001a607314602a57634e487b7160e01b600052600060045260246000fd5b30600052607381538281f3fe73000000000000000000000000000000000000000030146080604052600080fdfea2646970667358221220f166ed4452d36dd4143cb215aa71e152ba4daaeb96f79a92b1d682a72555143b64736f6c63430008140033 \ No newline at end of file +60566037600b82828239805160001a607314602a57634e487b7160e01b600052600060045260246000fd5b30600052607381538281f3fe73000000000000000000000000000000000000000030146080604052600080fdfea26469706673582212203651aa30fb1f5f18cc2014cc59e9e9021d87428d65aa7e6b2376cc1a6bcf85ba64736f6c63430008150033 \ No newline at end of file diff --git a/contracts/exported/@openzeppelin/contracts/utils/cryptography/ECDSA.sol/ECDSA.bin b/contracts/exported/@openzeppelin/contracts/utils/cryptography/ECDSA.sol/ECDSA.bin index 230425de59..2e224492f1 100644 --- a/contracts/exported/@openzeppelin/contracts/utils/cryptography/ECDSA.sol/ECDSA.bin +++ b/contracts/exported/@openzeppelin/contracts/utils/cryptography/ECDSA.sol/ECDSA.bin @@ -1 +1 @@ -60566037600b82828239805160001a607314602a57634e487b7160e01b600052600060045260246000fd5b30600052607381538281f3fe73000000000000000000000000000000000000000030146080604052600080fdfea2646970667358221220bed6531959ba38008e9f9a5d2707c1ef562c27a99949f9835dc4d5d47d0cf1e764736f6c63430008140033 \ No newline at end of file +60566037600b82828239805160001a607314602a57634e487b7160e01b600052600060045260246000fd5b30600052607381538281f3fe73000000000000000000000000000000000000000030146080604052600080fdfea26469706673582212207b9be294925ae7a4b046c2ea4eabd9690441e56d3c593a7fa370449ab2dc9acb64736f6c63430008150033 \ No newline at end of file diff --git a/contracts/exported/@openzeppelin/contracts/utils/cryptography/MerkleProof.sol/MerkleProof.bin b/contracts/exported/@openzeppelin/contracts/utils/cryptography/MerkleProof.sol/MerkleProof.bin index 948fdf4b7d..cccf376bdb 100644 --- a/contracts/exported/@openzeppelin/contracts/utils/cryptography/MerkleProof.sol/MerkleProof.bin +++ b/contracts/exported/@openzeppelin/contracts/utils/cryptography/MerkleProof.sol/MerkleProof.bin @@ -1 +1 @@ -60566037600b82828239805160001a607314602a57634e487b7160e01b600052600060045260246000fd5b30600052607381538281f3fe73000000000000000000000000000000000000000030146080604052600080fdfea264697066735822122080442f2339b8ab59fa4383dcc9d3015c47c095fcd92fcb1469919dc03ae053dc64736f6c63430008140033 \ No newline at end of file +60566037600b82828239805160001a607314602a57634e487b7160e01b600052600060045260246000fd5b30600052607381538281f3fe73000000000000000000000000000000000000000030146080604052600080fdfea2646970667358221220b03739715b97b8cd939533363ffa4c21e9ac592f7e17a0f844889d2235c2a21264736f6c63430008150033 \ No newline at end of file diff --git a/contracts/exported/@openzeppelin/contracts/utils/cryptography/MessageHashUtils.sol/MessageHashUtils.bin b/contracts/exported/@openzeppelin/contracts/utils/cryptography/MessageHashUtils.sol/MessageHashUtils.bin index 7e15cbef73..632b54277b 100644 --- a/contracts/exported/@openzeppelin/contracts/utils/cryptography/MessageHashUtils.sol/MessageHashUtils.bin +++ b/contracts/exported/@openzeppelin/contracts/utils/cryptography/MessageHashUtils.sol/MessageHashUtils.bin @@ -1 +1 @@ -60566037600b82828239805160001a607314602a57634e487b7160e01b600052600060045260246000fd5b30600052607381538281f3fe73000000000000000000000000000000000000000030146080604052600080fdfea2646970667358221220522807ac03be5d97bf4bba2570521a65c5524eeb3f2aed2f33fa4f65d600772364736f6c63430008140033 \ No newline at end of file +60566037600b82828239805160001a607314602a57634e487b7160e01b600052600060045260246000fd5b30600052607381538281f3fe73000000000000000000000000000000000000000030146080604052600080fdfea264697066735822122044f7a60e98843713a53f4e1660e640a422f094d824eb001540a39a9c03e622b464736f6c63430008150033 \ No newline at end of file diff --git a/contracts/exported/@openzeppelin/contracts/utils/math/Math.sol/Math.bin b/contracts/exported/@openzeppelin/contracts/utils/math/Math.sol/Math.bin index 6f7564ac76..8aa0f6ac53 100644 --- a/contracts/exported/@openzeppelin/contracts/utils/math/Math.sol/Math.bin +++ b/contracts/exported/@openzeppelin/contracts/utils/math/Math.sol/Math.bin @@ -1 +1 @@ -60566037600b82828239805160001a607314602a57634e487b7160e01b600052600060045260246000fd5b30600052607381538281f3fe73000000000000000000000000000000000000000030146080604052600080fdfea2646970667358221220f93dbf057c351e267c96ba7e12cf3ec4eddf62f98eaf43eb22ad92eaefa402b764736f6c63430008140033 \ No newline at end of file +60566037600b82828239805160001a607314602a57634e487b7160e01b600052600060045260246000fd5b30600052607381538281f3fe73000000000000000000000000000000000000000030146080604052600080fdfea26469706673582212208055b3213f078c05f41b14d45f592bf02a523f3474c978b794f77f26a61bed6264736f6c63430008150033 \ No newline at end of file diff --git a/contracts/exported/@openzeppelin/contracts/utils/math/SignedMath.sol/SignedMath.bin b/contracts/exported/@openzeppelin/contracts/utils/math/SignedMath.sol/SignedMath.bin index 705002b558..74d610a0c3 100644 --- a/contracts/exported/@openzeppelin/contracts/utils/math/SignedMath.sol/SignedMath.bin +++ b/contracts/exported/@openzeppelin/contracts/utils/math/SignedMath.sol/SignedMath.bin @@ -1 +1 @@ -60566037600b82828239805160001a607314602a57634e487b7160e01b600052600060045260246000fd5b30600052607381538281f3fe73000000000000000000000000000000000000000030146080604052600080fdfea2646970667358221220c2d2101f9048b118a815205cf81053ae9e7e0ba3554c7319fcc4be5ce1a57d1064736f6c63430008140033 \ No newline at end of file +60566037600b82828239805160001a607314602a57634e487b7160e01b600052600060045260246000fd5b30600052607381538281f3fe73000000000000000000000000000000000000000030146080604052600080fdfea2646970667358221220b789ea8d9ba7a194b7d91f3b048352a2c4fd22891cf27790b953ca49a6e4fe3864736f6c63430008150033 \ No newline at end of file diff --git a/contracts/exported/src/bridge/L1/ObscuroBridge.sol/ObscuroBridge.bin b/contracts/exported/src/bridge/L1/ObscuroBridge.sol/ObscuroBridge.bin index 24f368b3ea..e09d36b2e6 100644 --- a/contracts/exported/src/bridge/L1/ObscuroBridge.sol/ObscuroBridge.bin +++ b/contracts/exported/src/bridge/L1/ObscuroBridge.sol/ObscuroBridge.bin @@ -1 +1 @@ -60806040526001805463ffffffff60a01b1916905534801561002057600080fd5b50611b84806100306000396000f3fe6080604052600436106101445760003560e01c806375b238fc116100c0578063a217fddf11610074578063c4d66de811610059578063c4d66de8146103b4578063d547741f146103d4578063e4c3ebc7146103f457600080fd5b8063a217fddf1461037f578063a381c8e21461039457600080fd5b806383bece4d116100a557806383bece4d146102f957806391d148541461031957806393b374421461035f57600080fd5b806375b238fc146102a557806375cb2672146102d957600080fd5b80632f2ff15d11610117578063498d82ab116100fc578063498d82ab146102315780635d872970146102515780635fa7b5841461028557600080fd5b80632f2ff15d146101f157806336568abe1461021157600080fd5b806301ffc9a71461014957806316ce81491461017f5780631888d712146101a1578063248a9ca3146101b4575b600080fd5b34801561015557600080fd5b50610169610164366004611320565b610428565b6040516101769190611353565b60405180910390f35b34801561018b57600080fd5b5061019f61019a366004611386565b610491565b005b61019f6101af366004611386565b6104eb565b3480156101c057600080fd5b506101e46101cf3660046113b8565b60009081526002602052604090206001015490565b60405161017691906113df565b3480156101fd57600080fd5b5061019f61020c3660046113ed565b6105f6565b34801561021d57600080fd5b5061019f61022c3660046113ed565b610621565b34801561023d57600080fd5b5061019f61024c36600461147c565b610672565b34801561025d57600080fd5b506101e47f9f225881f6e7ac8a885b63aa2269cbce78dd6a669864ccd2cd2517a8e709d73a81565b34801561029157600080fd5b5061019f6102a0366004611386565b610737565b3480156102b157600080fd5b506101e47fa49807205ce4d355092ef5a8a18f56e8913cf4a201fbe287825b095693c2177581565b3480156102e557600080fd5b5061019f6102f4366004611386565b61078b565b34801561030557600080fd5b5061019f61031436600461150c565b610866565b34801561032557600080fd5b506101696103343660046113ed565b60009182526002602090815260408084206001600160a01b0393909316845291905290205460ff1690565b34801561036b57600080fd5b5061019f61037a366004611386565b610980565b34801561038b57600080fd5b506101e4600081565b3480156103a057600080fd5b5061019f6103af36600461150c565b6109d4565b3480156103c057600080fd5b5061019f6103cf366004611386565b610ac3565b3480156103e057600080fd5b5061019f6103ef3660046113ed565b610c5c565b34801561040057600080fd5b506101e47fd2fb17ceaa388942529b17e0006ffc4d559f040dd4f2157b8070f17ad211057881565b60006001600160e01b031982167f7965db0b00000000000000000000000000000000000000000000000000000000148061048b57507f01ffc9a7000000000000000000000000000000000000000000000000000000006001600160e01b03198316145b92915050565b7fa49807205ce4d355092ef5a8a18f56e8913cf4a201fbe287825b095693c217756104bb81610c81565b506003805473ffffffffffffffffffffffffffffffffffffffff19166001600160a01b0392909216919091179055565b600034116105145760405162461bcd60e51b815260040161050b90611590565b60405180910390fd5b60006040518060400160405280348152602001836001600160a01b031681525060405160200161054491906115c8565b60408051601f19818403018152919052600354909150610573906001600160a01b03168260025b600080610c8e565b6001546040517f346633fb0000000000000000000000000000000000000000000000000000000081526001600160a01b039091169063346633fb9034906105c090869083906004016115d6565b6000604051808303818588803b1580156105d957600080fd5b505af11580156105ed573d6000803e3d6000fd5b50505050505050565b60008281526002602052604090206001015461061181610c81565b61061b8383610d9a565b50505050565b6001600160a01b0381163314610663576040517f6697b23200000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b61066d8282610e48565b505050565b7fa49807205ce4d355092ef5a8a18f56e8913cf4a201fbe287825b095693c2177561069c81610c81565b6106c67f9f225881f6e7ac8a885b63aa2269cbce78dd6a669864ccd2cd2517a8e709d73a87610d9a565b50600063458ffd6360e01b87878787876040516024016106ea95949392919061161d565b60408051601f198184030181529190526020810180516001600160e01b03166001600160e01b0319909316929092179091526003549091506105ed906001600160a01b031682600161056b565b7fa49807205ce4d355092ef5a8a18f56e8913cf4a201fbe287825b095693c2177561076181610c81565b61066d7f9f225881f6e7ac8a885b63aa2269cbce78dd6a669864ccd2cd2517a8e709d73a83610e48565b610793610ecf565b6000805473ffffffffffffffffffffffffffffffffffffffff19166001600160a01b038316908117909155604080517fa1a227fa000000000000000000000000000000000000000000000000000000008152905163a1a227fa916004808201926020929091908290030181865afa158015610812573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906108369190611669565b6001805473ffffffffffffffffffffffffffffffffffffffff19166001600160a01b039290921691909117905550565b6003546000546001600160a01b03918216911633146108975760405162461bcd60e51b815260040161050b906116e4565b806001600160a01b03166108a9610f38565b6001600160a01b0316146108cf5760405162461bcd60e51b815260040161050b9061174c565b6001600160a01b03841660009081527f32ef73018533fa188e9e42b313c0a4048c6052342b662fb7510c0d1abcea3413602052604090205460ff161561091f5761091a848484610fb5565b61061b565b6001600160a01b03841660009081527f13ad2d85210d477fe1a6e25654c8250308cf29b050a4bf0b039d70467486712c602052604090205460ff16156109685761091a82610fc0565b60405162461bcd60e51b815260040161050b906117b4565b7fa49807205ce4d355092ef5a8a18f56e8913cf4a201fbe287825b095693c217756109aa81610c81565b61066d7fa49807205ce4d355092ef5a8a18f56e8913cf4a201fbe287825b095693c2177583610d9a565b600082116109f45760405162461bcd60e51b815260040161050b906117f6565b6001600160a01b03831660009081527f32ef73018533fa188e9e42b313c0a4048c6052342b662fb7510c0d1abcea3413602052604090205460ff16610a4b5760405162461bcd60e51b815260040161050b90611806565b610a5783333085611032565b60006383bece4d60e01b848484604051602401610a769392919061188d565b60408051601f198184030181529190526020810180516001600160e01b03166001600160e01b03199093169290921790915260035490915061061b906001600160a01b031682600061056b565b7ff0c57e16840df040f15088dc2f81fe391c3923bec73e23a9662efc9c229c6a00805468010000000000000000810460ff16159067ffffffffffffffff16600081158015610b0e5750825b905060008267ffffffffffffffff166001148015610b2b5750303b155b905081158015610b39575080155b15610b70576040517ff92ee8a900000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b845467ffffffffffffffff191660011785558315610ba457845468ff00000000000000001916680100000000000000001785555b610bad8661078b565b610bd77fa49807205ce4d355092ef5a8a18f56e8913cf4a201fbe287825b095693c2177533610d9a565b50610c037fd2fb17ceaa388942529b17e0006ffc4d559f040dd4f2157b8070f17ad21105786000610d9a565b508315610c5457845468ff0000000000000000191685556040517fc7f505b2f371ae2175ee4913f4499e1f2633a7b5936321eed1cdaeb6115181d290610c4b906001906118d0565b60405180910390a15b505050505050565b600082815260026020526040902060010154610c7781610c81565b61061b8383610e48565b610c8b813361108c565b50565b60006040518060600160405280876001600160a01b0316815260200186815260200184815250604051602001610cc4919061197d565b60408051808303601f19018152919052600180549192506001600160a01b0382169163b1454caa917401000000000000000000000000000000000000000090910463ffffffff16906014610d17836119bd565b91906101000a81548163ffffffff021916908363ffffffff1602179055508684866040518563ffffffff1660e01b8152600401610d5794939291906119f5565b6020604051808303816000875af1158015610d76573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906105ed9190611a55565b60008281526002602090815260408083206001600160a01b038516845290915281205460ff16610e405760008381526002602090815260408083206001600160a01b03861684529091529020805460ff19166001179055610df83390565b6001600160a01b0316826001600160a01b0316847f2f8788117e7eff1d82e926ec794901d17c78024a50270940304540a733656f0d60405160405180910390a450600161048b565b50600061048b565b60008281526002602090815260408083206001600160a01b038516845290915281205460ff1615610e405760008381526002602090815260408083206001600160a01b0386168085529252808320805460ff1916905551339286917ff6391f5c32d9c69d2a47ea670b442974b53935d1edc7fd64eb21e047a839171b9190a450600161048b565b7ff0c57e16840df040f15088dc2f81fe391c3923bec73e23a9662efc9c229c6a005468010000000000000000900460ff16610f36576040517fd7e6bcf800000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b565b60008060009054906101000a90046001600160a01b03166001600160a01b03166363012de56040518163ffffffff1660e01b8152600401602060405180830381865afa158015610f8c573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610fb09190611669565b905090565b61066d8382846110ec565b6040516000906001600160a01b038316908281818181865af19150503d8060008114611008576040519150601f19603f3d011682016040523d82523d6000602084013e61100d565b606091505b505090508061102e5760405162461bcd60e51b815260040161050b90611aa8565b5050565b61061b84856001600160a01b03166323b872dd86868660405160240161105a93929190611ab8565b604051602081830303815290604052915060e01b6020820180516001600160e01b038381831617835250505050611112565b60008281526002602090815260408083206001600160a01b038516845290915290205460ff1661102e5780826040517fe2517d3f00000000000000000000000000000000000000000000000000000000815260040161050b9291906115d6565b61066d83846001600160a01b031663a9059cbb858560405160240161105a9291906115d6565b60006111276001600160a01b03841683611185565b9050805160001415801561114c57508080602001905181019061114a9190611af3565b155b1561066d57826040517f5274afe700000000000000000000000000000000000000000000000000000000815260040161050b9190611b14565b60606111938383600061119a565b9392505050565b6060814710156111d857306040517fcd78605900000000000000000000000000000000000000000000000000000000815260040161050b9190611b14565b600080856001600160a01b031684866040516111f49190611b44565b60006040518083038185875af1925050503d8060008114611231576040519150601f19603f3d011682016040523d82523d6000602084013e611236565b606091505b5091509150611246868383611250565b9695505050505050565b60608261126557611260826112bc565b611193565b815115801561127c57506001600160a01b0384163b155b156112b557836040517f9996b31500000000000000000000000000000000000000000000000000000000815260040161050b9190611b14565b5080611193565b8051156112cc5780518082602001fd5b6040517f1425ea4200000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6001600160e01b031981165b8114610c8b57600080fd5b803561048b816112fe565b60006020828403121561133557611335600080fd5b60006113418484611315565b949350505050565b8015155b82525050565b6020810161048b8284611349565b60006001600160a01b03821661048b565b61130a81611361565b803561048b81611372565b60006020828403121561139b5761139b600080fd5b6000611341848461137b565b8061130a565b803561048b816113a7565b6000602082840312156113cd576113cd600080fd5b600061134184846113ad565b8061134d565b6020810161048b82846113d9565b6000806040838503121561140357611403600080fd5b600061140f85856113ad565b92505060206114208582860161137b565b9150509250929050565b60008083601f84011261143f5761143f600080fd5b50813567ffffffffffffffff81111561145a5761145a600080fd5b60208301915083600182028301111561147557611475600080fd5b9250929050565b60008060008060006060868803121561149757611497600080fd5b60006114a3888861137b565b955050602086013567ffffffffffffffff8111156114c3576114c3600080fd5b6114cf8882890161142a565b9450945050604086013567ffffffffffffffff8111156114f1576114f1600080fd5b6114fd8882890161142a565b92509250509295509295909350565b60008060006060848603121561152457611524600080fd5b6000611530868661137b565b9350506020611541868287016113ad565b92505060406115528682870161137b565b9150509250925092565b600f8152602081017f456d707479207472616e736665722e0000000000000000000000000000000000815290505b60200190565b6020808252810161048b8161155c565b61134d81611361565b80516115b583826113d9565b50602081015161066d60208401826115a0565b6040810161048b82846115a9565b604081016115e482856115a0565b61119360208301846113d9565b82818337506000910152565b8183526020830192506116118284836115f1565b50601f01601f19160190565b6060810161162b82886115a0565b818103602083015261163e8186886115fd565b905081810360408301526116538184866115fd565b979650505050505050565b805161048b81611372565b60006020828403121561167e5761167e600080fd5b6000611341848461165e565b60308152602081017f436f6e74726163742063616c6c6572206973206e6f742074686520726567697381527f7465726564206d657373656e6765722100000000000000000000000000000000602082015290505b60400190565b6020808252810161048b8161168a565b60318152602081017f43726f737320636861696e206d65737361676520636f6d696e672066726f6d2081527f696e636f72726563742073656e64657221000000000000000000000000000000602082015290506116de565b6020808252810161048b816116f4565b60258152602081017f417474656d7074696e6720746f20776974686472617720756e6b6e6f776e206181527f737365742e000000000000000000000000000000000000000000000000000000602082015290506116de565b6020808252810161048b8161175c565b601a8152602081017f417474656d7074696e6720656d707479207472616e736665722e0000000000008152905061158a565b6020808252810161048b816117c4565b6020808252810161048b81604e81527f54686973206164647265737320686173206e6f74206265656e20676976656e2060208201527f61207479706520616e64206973207468757320636f6e73696465726564206e6f60408201527f742077686974656c69737465642e000000000000000000000000000000000000606082015260800190565b6060810161189b82866115a0565b6118a860208301856113d9565b61134160408301846115a0565b600067ffffffffffffffff821661048b565b61134d816118b5565b6020810161048b82846118c7565b60005b838110156118f95781810151838201526020016118e1565b50506000910152565b600061190c825190565b8084526020840193506119238185602086016118de565b601f01601f19169290920192915050565b8051600090606084019061194885826115a0565b50602083015184820360208601526119608282611902565b915050604083015161197560408601826113d9565b509392505050565b602080825281016111938184611934565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b63ffffffff16600063fffffffe1982016119d9576119d961198e565b5060010190565b63ffffffff811661134d565b60ff811661134d565b60808101611a0382876119e0565b611a1060208301866119e0565b8181036040830152611a228185611902565b9050611a3160608301846119ec565b95945050505050565b67ffffffffffffffff811661130a565b805161048b81611a3a565b600060208284031215611a6a57611a6a600080fd5b60006113418484611a4a565b60148152602081017f4661696c656420746f2073656e642045746865720000000000000000000000008152905061158a565b6020808252810161048b81611a76565b60608101611ac682866115a0565b611ad360208301856115a0565b61134160408301846113d9565b80151561130a565b805161048b81611ae0565b600060208284031215611b0857611b08600080fd5b60006113418484611ae8565b6020810161048b82846115a0565b6000611b2c825190565b611b3a8185602086016118de565b9290920192915050565b61048b8183611b2256fea2646970667358221220c0d6e7e9bdac6ee621cf30669202695a724feb35cde67924ae717a6ca45ff57b64736f6c63430008140033 \ No newline at end of file +60806040526001805463ffffffff60a01b1916905534801561002057600080fd5b50611b84806100306000396000f3fe6080604052600436106101445760003560e01c806375b238fc116100c0578063a217fddf11610074578063c4d66de811610059578063c4d66de8146103b4578063d547741f146103d4578063e4c3ebc7146103f457600080fd5b8063a217fddf1461037f578063a381c8e21461039457600080fd5b806383bece4d116100a557806383bece4d146102f957806391d148541461031957806393b374421461035f57600080fd5b806375b238fc146102a557806375cb2672146102d957600080fd5b80632f2ff15d11610117578063498d82ab116100fc578063498d82ab146102315780635d872970146102515780635fa7b5841461028557600080fd5b80632f2ff15d146101f157806336568abe1461021157600080fd5b806301ffc9a71461014957806316ce81491461017f5780631888d712146101a1578063248a9ca3146101b4575b600080fd5b34801561015557600080fd5b50610169610164366004611320565b610428565b6040516101769190611353565b60405180910390f35b34801561018b57600080fd5b5061019f61019a366004611386565b610491565b005b61019f6101af366004611386565b6104eb565b3480156101c057600080fd5b506101e46101cf3660046113b8565b60009081526002602052604090206001015490565b60405161017691906113df565b3480156101fd57600080fd5b5061019f61020c3660046113ed565b6105f6565b34801561021d57600080fd5b5061019f61022c3660046113ed565b610621565b34801561023d57600080fd5b5061019f61024c36600461147c565b610672565b34801561025d57600080fd5b506101e47f9f225881f6e7ac8a885b63aa2269cbce78dd6a669864ccd2cd2517a8e709d73a81565b34801561029157600080fd5b5061019f6102a0366004611386565b610737565b3480156102b157600080fd5b506101e47fa49807205ce4d355092ef5a8a18f56e8913cf4a201fbe287825b095693c2177581565b3480156102e557600080fd5b5061019f6102f4366004611386565b61078b565b34801561030557600080fd5b5061019f61031436600461150c565b610866565b34801561032557600080fd5b506101696103343660046113ed565b60009182526002602090815260408084206001600160a01b0393909316845291905290205460ff1690565b34801561036b57600080fd5b5061019f61037a366004611386565b610980565b34801561038b57600080fd5b506101e4600081565b3480156103a057600080fd5b5061019f6103af36600461150c565b6109d4565b3480156103c057600080fd5b5061019f6103cf366004611386565b610ac3565b3480156103e057600080fd5b5061019f6103ef3660046113ed565b610c5c565b34801561040057600080fd5b506101e47fd2fb17ceaa388942529b17e0006ffc4d559f040dd4f2157b8070f17ad211057881565b60006001600160e01b031982167f7965db0b00000000000000000000000000000000000000000000000000000000148061048b57507f01ffc9a7000000000000000000000000000000000000000000000000000000006001600160e01b03198316145b92915050565b7fa49807205ce4d355092ef5a8a18f56e8913cf4a201fbe287825b095693c217756104bb81610c81565b506003805473ffffffffffffffffffffffffffffffffffffffff19166001600160a01b0392909216919091179055565b600034116105145760405162461bcd60e51b815260040161050b90611590565b60405180910390fd5b60006040518060400160405280348152602001836001600160a01b031681525060405160200161054491906115c8565b60408051601f19818403018152919052600354909150610573906001600160a01b03168260025b600080610c8e565b6001546040517f346633fb0000000000000000000000000000000000000000000000000000000081526001600160a01b039091169063346633fb9034906105c090869083906004016115d6565b6000604051808303818588803b1580156105d957600080fd5b505af11580156105ed573d6000803e3d6000fd5b50505050505050565b60008281526002602052604090206001015461061181610c81565b61061b8383610d9a565b50505050565b6001600160a01b0381163314610663576040517f6697b23200000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b61066d8282610e48565b505050565b7fa49807205ce4d355092ef5a8a18f56e8913cf4a201fbe287825b095693c2177561069c81610c81565b6106c67f9f225881f6e7ac8a885b63aa2269cbce78dd6a669864ccd2cd2517a8e709d73a87610d9a565b50600063458ffd6360e01b87878787876040516024016106ea95949392919061161d565b60408051601f198184030181529190526020810180516001600160e01b03166001600160e01b0319909316929092179091526003549091506105ed906001600160a01b031682600161056b565b7fa49807205ce4d355092ef5a8a18f56e8913cf4a201fbe287825b095693c2177561076181610c81565b61066d7f9f225881f6e7ac8a885b63aa2269cbce78dd6a669864ccd2cd2517a8e709d73a83610e48565b610793610ecf565b6000805473ffffffffffffffffffffffffffffffffffffffff19166001600160a01b038316908117909155604080517fa1a227fa000000000000000000000000000000000000000000000000000000008152905163a1a227fa916004808201926020929091908290030181865afa158015610812573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906108369190611669565b6001805473ffffffffffffffffffffffffffffffffffffffff19166001600160a01b039290921691909117905550565b6003546000546001600160a01b03918216911633146108975760405162461bcd60e51b815260040161050b906116e4565b806001600160a01b03166108a9610f38565b6001600160a01b0316146108cf5760405162461bcd60e51b815260040161050b9061174c565b6001600160a01b03841660009081527f32ef73018533fa188e9e42b313c0a4048c6052342b662fb7510c0d1abcea3413602052604090205460ff161561091f5761091a848484610fb5565b61061b565b6001600160a01b03841660009081527f13ad2d85210d477fe1a6e25654c8250308cf29b050a4bf0b039d70467486712c602052604090205460ff16156109685761091a82610fc0565b60405162461bcd60e51b815260040161050b906117b4565b7fa49807205ce4d355092ef5a8a18f56e8913cf4a201fbe287825b095693c217756109aa81610c81565b61066d7fa49807205ce4d355092ef5a8a18f56e8913cf4a201fbe287825b095693c2177583610d9a565b600082116109f45760405162461bcd60e51b815260040161050b906117f6565b6001600160a01b03831660009081527f32ef73018533fa188e9e42b313c0a4048c6052342b662fb7510c0d1abcea3413602052604090205460ff16610a4b5760405162461bcd60e51b815260040161050b90611806565b610a5783333085611032565b60006383bece4d60e01b848484604051602401610a769392919061188d565b60408051601f198184030181529190526020810180516001600160e01b03166001600160e01b03199093169290921790915260035490915061061b906001600160a01b031682600061056b565b7ff0c57e16840df040f15088dc2f81fe391c3923bec73e23a9662efc9c229c6a00805468010000000000000000810460ff16159067ffffffffffffffff16600081158015610b0e5750825b905060008267ffffffffffffffff166001148015610b2b5750303b155b905081158015610b39575080155b15610b70576040517ff92ee8a900000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b845467ffffffffffffffff191660011785558315610ba457845468ff00000000000000001916680100000000000000001785555b610bad8661078b565b610bd77fa49807205ce4d355092ef5a8a18f56e8913cf4a201fbe287825b095693c2177533610d9a565b50610c037fd2fb17ceaa388942529b17e0006ffc4d559f040dd4f2157b8070f17ad21105786000610d9a565b508315610c5457845468ff0000000000000000191685556040517fc7f505b2f371ae2175ee4913f4499e1f2633a7b5936321eed1cdaeb6115181d290610c4b906001906118d0565b60405180910390a15b505050505050565b600082815260026020526040902060010154610c7781610c81565b61061b8383610e48565b610c8b813361108c565b50565b60006040518060600160405280876001600160a01b0316815260200186815260200184815250604051602001610cc4919061197d565b60408051808303601f19018152919052600180549192506001600160a01b0382169163b1454caa917401000000000000000000000000000000000000000090910463ffffffff16906014610d17836119bd565b91906101000a81548163ffffffff021916908363ffffffff1602179055508684866040518563ffffffff1660e01b8152600401610d5794939291906119f5565b6020604051808303816000875af1158015610d76573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906105ed9190611a55565b60008281526002602090815260408083206001600160a01b038516845290915281205460ff16610e405760008381526002602090815260408083206001600160a01b03861684529091529020805460ff19166001179055610df83390565b6001600160a01b0316826001600160a01b0316847f2f8788117e7eff1d82e926ec794901d17c78024a50270940304540a733656f0d60405160405180910390a450600161048b565b50600061048b565b60008281526002602090815260408083206001600160a01b038516845290915281205460ff1615610e405760008381526002602090815260408083206001600160a01b0386168085529252808320805460ff1916905551339286917ff6391f5c32d9c69d2a47ea670b442974b53935d1edc7fd64eb21e047a839171b9190a450600161048b565b7ff0c57e16840df040f15088dc2f81fe391c3923bec73e23a9662efc9c229c6a005468010000000000000000900460ff16610f36576040517fd7e6bcf800000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b565b60008060009054906101000a90046001600160a01b03166001600160a01b03166363012de56040518163ffffffff1660e01b8152600401602060405180830381865afa158015610f8c573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610fb09190611669565b905090565b61066d8382846110ec565b6040516000906001600160a01b038316908281818181865af19150503d8060008114611008576040519150601f19603f3d011682016040523d82523d6000602084013e61100d565b606091505b505090508061102e5760405162461bcd60e51b815260040161050b90611aa8565b5050565b61061b84856001600160a01b03166323b872dd86868660405160240161105a93929190611ab8565b604051602081830303815290604052915060e01b6020820180516001600160e01b038381831617835250505050611112565b60008281526002602090815260408083206001600160a01b038516845290915290205460ff1661102e5780826040517fe2517d3f00000000000000000000000000000000000000000000000000000000815260040161050b9291906115d6565b61066d83846001600160a01b031663a9059cbb858560405160240161105a9291906115d6565b60006111276001600160a01b03841683611185565b9050805160001415801561114c57508080602001905181019061114a9190611af3565b155b1561066d57826040517f5274afe700000000000000000000000000000000000000000000000000000000815260040161050b9190611b14565b60606111938383600061119a565b9392505050565b6060814710156111d857306040517fcd78605900000000000000000000000000000000000000000000000000000000815260040161050b9190611b14565b600080856001600160a01b031684866040516111f49190611b44565b60006040518083038185875af1925050503d8060008114611231576040519150601f19603f3d011682016040523d82523d6000602084013e611236565b606091505b5091509150611246868383611250565b9695505050505050565b60608261126557611260826112bc565b611193565b815115801561127c57506001600160a01b0384163b155b156112b557836040517f9996b31500000000000000000000000000000000000000000000000000000000815260040161050b9190611b14565b5080611193565b8051156112cc5780518082602001fd5b6040517f1425ea4200000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6001600160e01b031981165b8114610c8b57600080fd5b803561048b816112fe565b60006020828403121561133557611335600080fd5b60006113418484611315565b949350505050565b8015155b82525050565b6020810161048b8284611349565b60006001600160a01b03821661048b565b61130a81611361565b803561048b81611372565b60006020828403121561139b5761139b600080fd5b6000611341848461137b565b8061130a565b803561048b816113a7565b6000602082840312156113cd576113cd600080fd5b600061134184846113ad565b8061134d565b6020810161048b82846113d9565b6000806040838503121561140357611403600080fd5b600061140f85856113ad565b92505060206114208582860161137b565b9150509250929050565b60008083601f84011261143f5761143f600080fd5b50813567ffffffffffffffff81111561145a5761145a600080fd5b60208301915083600182028301111561147557611475600080fd5b9250929050565b60008060008060006060868803121561149757611497600080fd5b60006114a3888861137b565b955050602086013567ffffffffffffffff8111156114c3576114c3600080fd5b6114cf8882890161142a565b9450945050604086013567ffffffffffffffff8111156114f1576114f1600080fd5b6114fd8882890161142a565b92509250509295509295909350565b60008060006060848603121561152457611524600080fd5b6000611530868661137b565b9350506020611541868287016113ad565b92505060406115528682870161137b565b9150509250925092565b600f8152602081017f456d707479207472616e736665722e0000000000000000000000000000000000815290505b60200190565b6020808252810161048b8161155c565b61134d81611361565b80516115b583826113d9565b50602081015161066d60208401826115a0565b6040810161048b82846115a9565b604081016115e482856115a0565b61119360208301846113d9565b82818337506000910152565b8183526020830192506116118284836115f1565b50601f01601f19160190565b6060810161162b82886115a0565b818103602083015261163e8186886115fd565b905081810360408301526116538184866115fd565b979650505050505050565b805161048b81611372565b60006020828403121561167e5761167e600080fd5b6000611341848461165e565b60308152602081017f436f6e74726163742063616c6c6572206973206e6f742074686520726567697381527f7465726564206d657373656e6765722100000000000000000000000000000000602082015290505b60400190565b6020808252810161048b8161168a565b60318152602081017f43726f737320636861696e206d65737361676520636f6d696e672066726f6d2081527f696e636f72726563742073656e64657221000000000000000000000000000000602082015290506116de565b6020808252810161048b816116f4565b60258152602081017f417474656d7074696e6720746f20776974686472617720756e6b6e6f776e206181527f737365742e000000000000000000000000000000000000000000000000000000602082015290506116de565b6020808252810161048b8161175c565b601a8152602081017f417474656d7074696e6720656d707479207472616e736665722e0000000000008152905061158a565b6020808252810161048b816117c4565b6020808252810161048b81604e81527f54686973206164647265737320686173206e6f74206265656e20676976656e2060208201527f61207479706520616e64206973207468757320636f6e73696465726564206e6f60408201527f742077686974656c69737465642e000000000000000000000000000000000000606082015260800190565b6060810161189b82866115a0565b6118a860208301856113d9565b61134160408301846115a0565b600067ffffffffffffffff821661048b565b61134d816118b5565b6020810161048b82846118c7565b60005b838110156118f95781810151838201526020016118e1565b50506000910152565b600061190c825190565b8084526020840193506119238185602086016118de565b601f01601f19169290920192915050565b8051600090606084019061194885826115a0565b50602083015184820360208601526119608282611902565b915050604083015161197560408601826113d9565b509392505050565b602080825281016111938184611934565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b63ffffffff16600063fffffffe1982016119d9576119d961198e565b5060010190565b63ffffffff811661134d565b60ff811661134d565b60808101611a0382876119e0565b611a1060208301866119e0565b8181036040830152611a228185611902565b9050611a3160608301846119ec565b95945050505050565b67ffffffffffffffff811661130a565b805161048b81611a3a565b600060208284031215611a6a57611a6a600080fd5b60006113418484611a4a565b60148152602081017f4661696c656420746f2073656e642045746865720000000000000000000000008152905061158a565b6020808252810161048b81611a76565b60608101611ac682866115a0565b611ad360208301856115a0565b61134160408301846113d9565b80151561130a565b805161048b81611ae0565b600060208284031215611b0857611b08600080fd5b60006113418484611ae8565b6020810161048b82846115a0565b6000611b2c825190565b611b3a8185602086016118de565b9290920192915050565b61048b8183611b2256fea2646970667358221220d70bea5019f2062e22f351cd0d4cb8d9f734eac087a468eb72bff8b0aa790a6364736f6c63430008150033 \ No newline at end of file diff --git a/contracts/exported/src/bridge/L2/EthereumBridge.sol/EthereumBridge.bin b/contracts/exported/src/bridge/L2/EthereumBridge.sol/EthereumBridge.bin index 6904d285a1..3fa09d9d33 100644 --- a/contracts/exported/src/bridge/L2/EthereumBridge.sol/EthereumBridge.bin +++ b/contracts/exported/src/bridge/L2/EthereumBridge.sol/EthereumBridge.bin @@ -1 +1 @@ -60806040526001805463ffffffff60a01b1916905534801561002057600080fd5b50612abd806100306000396000f3fe608060405260043610620000c65760003560e01c806383bece4d11620000735780639e405b7111620000555780639e405b711462000256578063a381c8e21462000290578063d5c6b50414620002b557620000ef565b806383bece4d14620001e35780639813c7b2146200020857620000ef565b8063458ffd6311620000a9578063458ffd631462000174578063485cc955146200019957806375cb267214620001be57620000ef565b80628d48e314620001095780631888d712146200015b57620000ef565b36620000ef5760405162461bcd60e51b8152600401620000e69062000d72565b60405180910390fd5b60405162461bcd60e51b8152600401620000e69062000dbe565b3480156200011657600080fd5b50620001436200012836600462000e09565b6004602052600090815260409020546001600160a01b031681565b60405162000152919062000e47565b60405180910390f35b620001726200016c36600462000e09565b620002fe565b005b3480156200018157600080fd5b50620001726200019336600462000eaf565b6200047e565b348015620001a657600080fd5b5062000172620001b836600462000f4b565b620005e7565b348015620001cb57600080fd5b5062000172620001dd36600462000e09565b6200075b565b348015620001f057600080fd5b50620001726200020236600462000fa2565b6200083b565b3480156200021557600080fd5b50620002476200022736600462000e09565b6001600160a01b0390811660009081526002602052604090205416151590565b60405162000152919062001003565b3480156200026357600080fd5b50620001436200027536600462000e09565b6003602052600090815260409020546001600160a01b031681565b3480156200029d57600080fd5b5062000172620002af36600462000fa2565b6200097f565b348015620002c257600080fd5b50620002ef620002d436600462000e09565b6002602052600090815260409020546001600160a01b031681565b60405162000152919062001038565b60003411620003215760405162461bcd60e51b8152600401620000e6906200107b565b600080805260036020527f3617319a054d772f909f7c479a2cebe5066e836a939412e32403c99029b92eff546040516383bece4d60e01b9162000377916001600160a01b03909116903490869060240162001094565b60408051601f198184030181529190526020810180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff167fffffffff0000000000000000000000000000000000000000000000000000000090931692909217909152600554909150620003f7906001600160a01b03168260005b60008062000b0b565b6001546040517f346633fb0000000000000000000000000000000000000000000000000000000081526001600160a01b039091169063346633fb903490620004469086908390600401620010c2565b6000604051808303818588803b1580156200046057600080fd5b505af115801562000475573d6000803e3d6000fd5b50505050505050565b6005546000546001600160a01b0391821691163314620004b25760405162461bcd60e51b8152600401620000e69062001141565b806001600160a01b0316620004c662000c20565b6001600160a01b031614620004ef5760405162461bcd60e51b8152600401620000e690620011ac565b600085858585604051620005039062000d0a565b620005129493929190620011ec565b604051809103906000f0801580156200052f573d6000803e3d6000fd5b506001600160a01b038082166000818152600260209081526040808320805473ffffffffffffffffffffffffffffffffffffffff199081168617909155600383528184208054968f169682168717905594835260049091529081902080549093169091179091555190915081907f30c05779f384e0ae9d43bbf7ec4417f28bdc53d02a35551b6eb270a9c4c71dca90620005d5908a9084908b908b908b908b9062001221565b60405180910390a15050505050505050565b7ff0c57e16840df040f15088dc2f81fe391c3923bec73e23a9662efc9c229c6a00805468010000000000000000810460ff16159067ffffffffffffffff16600081158015620006335750825b905060008267ffffffffffffffff166001148015620006515750303b155b90508115801562000660575080155b1562000698576040517ff92ee8a900000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b845467ffffffffffffffff191660011785558315620006cd57845468ff00000000000000001916680100000000000000001785555b620006d8876200075b565b6005805473ffffffffffffffffffffffffffffffffffffffff19166001600160a01b03881617905583156200047557845468ff0000000000000000191685556040517fc7f505b2f371ae2175ee4913f4499e1f2633a7b5936321eed1cdaeb6115181d2906200074a9060019062001296565b60405180910390a150505050505050565b6200076562000ca0565b6000805473ffffffffffffffffffffffffffffffffffffffff19166001600160a01b038316908117909155604080517fa1a227fa000000000000000000000000000000000000000000000000000000008152905163a1a227fa916004808201926020929091908290030181865afa158015620007e5573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906200080b9190620012b3565b6001805473ffffffffffffffffffffffffffffffffffffffff19166001600160a01b039290921691909117905550565b6005546000546001600160a01b03918216911633146200086f5760405162461bcd60e51b8152600401620000e69062001141565b806001600160a01b03166200088362000c20565b6001600160a01b031614620008ac5760405162461bcd60e51b8152600401620000e690620011ac565b6001600160a01b03808516600090815260046020908152604080832054841680845260029092529091205490911680620008fa5760405162461bcd60e51b8152600401620000e69062001331565b6040517f979005ad0000000000000000000000000000000000000000000000000000000081526001600160a01b0382169063979005ad90620009439087908990600401620010c2565b600060405180830381600087803b1580156200095e57600080fd5b505af115801562000973573d6000803e3d6000fd5b50505050505050505050565b6001600160a01b0380841660009081526002602052604090205416620009b95760405162461bcd60e51b8152600401620000e69062001376565b6001600160a01b03808416600090815260026020526040908190205490517f1dd319cb0000000000000000000000000000000000000000000000000000000081529116908190631dd319cb9062000a179033908790600401620010c2565b600060405180830381600087803b15801562000a3257600080fd5b505af115801562000a47573d6000803e3d6000fd5b5050506001600160a01b038086166000908152600360205260408082205490519193506383bece4d60e01b9262000a88929116908790879060240162001094565b60408051601f198184030181529190526020810180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff167fffffffff000000000000000000000000000000000000000000000000000000009093169290921790915260055490915062000b04906001600160a01b0316826000620003ee565b5050505050565b60006040518060600160405280876001600160a01b031681526020018681526020018481525060405160200162000b43919062001432565b60408051808303601f19018152919052600180549192506001600160a01b0382169163b1454caa917401000000000000000000000000000000000000000090910463ffffffff1690601462000b988362001474565b91906101000a81548163ffffffff021916908363ffffffff1602179055508684866040518563ffffffff1660e01b815260040162000bda9493929190620014b1565b6020604051808303816000875af115801562000bfa573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906200047591906200151c565b60008060009054906101000a90046001600160a01b03166001600160a01b03166363012de56040518163ffffffff1660e01b8152600401602060405180830381865afa15801562000c75573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019062000c9b9190620012b3565b905090565b7ff0c57e16840df040f15088dc2f81fe391c3923bec73e23a9662efc9c229c6a005468010000000000000000900460ff1662000d08576040517fd7e6bcf800000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b565b611546806200154283390190565b60238152602081017f436f6e747261637420646f6573206e6f7420737570706f72742072656365697681527f6528290000000000000000000000000000000000000000000000000000000000602082015290505b60400190565b6020808252810162000d848162000d18565b92915050565b601d8152602081017f66616c6c6261636b2829206d6574686f6420756e737570706f72746564000000815290505b60200190565b6020808252810162000d848162000d8a565b60006001600160a01b03821662000d84565b62000ded8162000dd0565b811462000df957600080fd5b50565b803562000d848162000de2565b60006020828403121562000e205762000e20600080fd5b600062000e2e848462000dfc565b949350505050565b62000e418162000dd0565b82525050565b6020810162000d84828462000e36565b60008083601f84011262000e6e5762000e6e600080fd5b50813567ffffffffffffffff81111562000e8b5762000e8b600080fd5b60208301915083600182028301111562000ea85762000ea8600080fd5b9250929050565b60008060008060006060868803121562000ecc5762000ecc600080fd5b600062000eda888862000dfc565b955050602086013567ffffffffffffffff81111562000efc5762000efc600080fd5b62000f0a8882890162000e57565b9450945050604086013567ffffffffffffffff81111562000f2e5762000f2e600080fd5b62000f3c8882890162000e57565b92509250509295509295909350565b6000806040838503121562000f635762000f63600080fd5b600062000f71858562000dfc565b925050602062000f848582860162000dfc565b9150509250929050565b8062000ded565b803562000d848162000f8e565b60008060006060848603121562000fbc5762000fbc600080fd5b600062000fca868662000dfc565b935050602062000fdd8682870162000f95565b925050604062000ff08682870162000dfc565b9150509250925092565b80151562000e41565b6020810162000d84828462000ffa565b600062000d848262000dd0565b600062000d848262001013565b62000e418162001020565b6020810162000d8482846200102d565b600d8152602081017f4e6f7468696e672073656e742e000000000000000000000000000000000000008152905062000db8565b6020808252810162000d848162001048565b8062000e41565b60608101620010a4828662000e36565b620010b360208301856200108d565b62000e2e604083018462000e36565b60408101620010d2828562000e36565b620010e160208301846200108d565b9392505050565b60308152602081017f436f6e74726163742063616c6c6572206973206e6f742074686520726567697381527f7465726564206d657373656e67657221000000000000000000000000000000006020820152905062000d6c565b6020808252810162000d8481620010e8565b60318152602081017f43726f737320636861696e206d65737361676520636f6d696e672066726f6d2081527f696e636f72726563742073656e646572210000000000000000000000000000006020820152905062000d6c565b6020808252810162000d848162001153565b82818337506000910152565b818352602083019250620011e0828483620011be565b50601f01601f19160190565b6040808252810162001200818688620011ca565b9050818103602083015262001217818486620011ca565b9695505050505050565b6080810162001231828962000e36565b62001240602083018862000e36565b818103604083015262001255818688620011ca565b905081810360608301526200126c818486620011ca565b98975050505050505050565b600067ffffffffffffffff821662000d84565b62000e418162001278565b6020810162000d8482846200128b565b805162000d848162000de2565b600060208284031215620012ca57620012ca600080fd5b600062000e2e8484620012a6565b602b8152602081017f526563656976696e672061737365747320666f7220756e6b6e6f776e2077726181527f7070656420746f6b656e210000000000000000000000000000000000000000006020820152905062000d6c565b6020808252810162000d8481620012d8565b60158152602081017f4e6f206d617070696e6720666f7220746f6b656e2e00000000000000000000008152905062000db8565b6020808252810162000d848162001343565b60005b83811015620013a55781810151838201526020016200138b565b50506000910152565b6000620013b9825190565b808452602084019350620013d281856020860162001388565b601f01601f19169290920192915050565b80516000906060840190620013f9858262000e36565b5060208301518482036020860152620014138282620013ae565b91505060408301516200142a60408601826200108d565b509392505050565b60208082528101620010e18184620013e3565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b63ffffffff16600063fffffffe19820162001493576200149362001445565b5060010190565b63ffffffff811662000e41565b60ff811662000e41565b60808101620014c182876200149a565b620014d060208301866200149a565b8181036040830152620014e48185620013ae565b9050620014f56060830184620014a7565b95945050505050565b67ffffffffffffffff811662000ded565b805162000d8481620014fe565b600060208284031215620015335762001533600080fd5b600062000e2e84846200150f56fe6080604052600580546001600160a01b03191673deb34a740eca1ec42c8b8204cbec0ba34fdd27f31790553480156200003757600080fd5b5060405162001546380380620015468339810160408190526200005a916200029e565b8181818160036200006c838262000412565b5060046200007b828262000412565b5050505050620000b27fa49807205ce4d355092ef5a8a18f56e8913cf4a201fbe287825b095693c2177533620000bb60201b60201c565b505050620004de565b60008281526007602090815260408083206001600160a01b038516845290915281205460ff16620001645760008381526007602090815260408083206001600160a01b03861684529091529020805460ff191660011790556200011b3390565b6001600160a01b0316826001600160a01b0316847f2f8788117e7eff1d82e926ec794901d17c78024a50270940304540a733656f0d60405160405180910390a450600162000168565b5060005b92915050565b634e487b7160e01b600052604160045260246000fd5b601f19601f83011681016001600160401b0381118282101715620001ac57620001ac6200016e565b6040525050565b6000620001bf60405190565b9050620001cd828262000184565b919050565b60006001600160401b03821115620001ee57620001ee6200016e565b601f19601f83011660200192915050565b60005b838110156200021c57818101518382015260200162000202565b50506000910152565b60006200023c6200023684620001d2565b620001b3565b905082815260208101848484011115620002595762000259600080fd5b62000266848285620001ff565b509392505050565b600082601f830112620002845762000284600080fd5b81516200029684826020860162000225565b949350505050565b60008060408385031215620002b657620002b6600080fd5b82516001600160401b03811115620002d157620002d1600080fd5b620002df858286016200026e565b602085015190935090506001600160401b03811115620003025762000302600080fd5b62000310858286016200026e565b9150509250929050565b634e487b7160e01b600052602260045260246000fd5b6002810460018216806200034557607f821691505b6020821081036200035a576200035a6200031a565b50919050565b6000620001686200036e8381565b90565b6200037c8362000360565b815460001960089490940293841b1916921b91909117905550565b6000620003a681848462000371565b505050565b81811015620003ca57620003c160008262000397565b600101620003ab565b5050565b601f821115620003a6576000818152602090206020601f85010481016020851015620003f75750805b6200040b6020601f860104830182620003ab565b5050505050565b81516001600160401b038111156200042e576200042e6200016e565b6200043a825462000330565b62000447828285620003ce565b506020601f8211600181146200047f5760008315620004665750848201515b600019600885021c19811660028502178555506200040b565b600084815260208120601f198516915b82811015620004b157878501518255602094850194600190920191016200048f565b5084821015620004cf5783870151600019601f87166008021c191681555b50505050600202600101905550565b61105880620004ee6000396000f3fe608060405234801561001057600080fd5b50600436106101515760003560e01c806336568abe116100cd578063979005ad11610081578063a9059cbb11610066578063a9059cbb146102ce578063d547741f146102e1578063dd62ed3e146102f457600080fd5b8063979005ad146102b3578063a217fddf146102c657600080fd5b806375b238fc116100b257806375b238fc1461024b57806391d148541461027257806395d89b41146102ab57600080fd5b806336568abe1461022557806370a082311461023857600080fd5b80631dd319cb11610124578063248a9ca311610109578063248a9ca3146101e05780632f2ff15d14610203578063313ce5671461021657600080fd5b80631dd319cb146101b857806323b872dd146101cd57600080fd5b806301ffc9a71461015657806306fdde031461017f578063095ea7b31461019457806318160ddd146101a7575b600080fd5b610169610164366004610c49565b610307565b6040516101769190610c7c565b60405180910390f35b6101876103a0565b6040516101769190610ce0565b6101696101a2366004610d27565b610432565b6002545b6040516101769190610d6a565b6101cb6101c6366004610d27565b61044a565b005b6101696101db366004610d78565b6104b4565b6101ab6101ee366004610dc8565b60009081526007602052604090206001015490565b6101cb610211366004610de9565b6104da565b60126040516101769190610e25565b6101cb610233366004610de9565b610505565b6101ab610246366004610e33565b610551565b6101ab7fa49807205ce4d355092ef5a8a18f56e8913cf4a201fbe287825b095693c2177581565b610169610280366004610de9565b60009182526007602090815260408084206001600160a01b0393909316845291905290205460ff1690565b6101876105c7565b6101cb6102c1366004610d27565b6105d6565b6101ab600081565b6101696102dc366004610d27565b61060a565b6101cb6102ef366004610de9565b610618565b6101ab610302366004610e54565b61063d565b60007fffffffff0000000000000000000000000000000000000000000000000000000082167f7965db0b00000000000000000000000000000000000000000000000000000000148061039a57507f01ffc9a7000000000000000000000000000000000000000000000000000000007fffffffff000000000000000000000000000000000000000000000000000000008316145b92915050565b6060600380546103af90610e8c565b80601f01602080910402602001604051908101604052809291908181526020018280546103db90610e8c565b80156104285780601f106103fd57610100808354040283529160200191610428565b820191906000526020600020905b81548152906001019060200180831161040b57829003601f168201915b5050505050905090565b6000336104408185856106f8565b5060019392505050565b7fa49807205ce4d355092ef5a8a18f56e8913cf4a201fbe287825b095693c2177561047481610705565b8161047e84610551565b10156104a55760405162461bcd60e51b815260040161049c90610eec565b60405180910390fd5b6104af8383610712565b505050565b6000336104c285828561074c565b6104cd8585856107b2565b60019150505b9392505050565b6000828152600760205260409020600101546104f581610705565b6104ff8383610811565b50505050565b6001600160a01b0381163314610547576040517f6697b23200000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6104af82826108bf565b60006001600160a01b0382163203610581576001600160a01b03821660009081526020819052604090205461039a565b6001600160a01b03821633036105af576001600160a01b03821660009081526020819052604090205461039a565b60405162461bcd60e51b815260040161049c90610f2e565b6060600480546103af90610e8c565b7fa49807205ce4d355092ef5a8a18f56e8913cf4a201fbe287825b095693c2177561060081610705565b6104af8383610946565b6000336104408185856107b2565b60008281526007602052604090206001015461063381610705565b6104ff83836108bf565b6000326001600160a01b038416148061065e5750326001600160a01b038316145b15610691576001600160a01b038084166000908152600160209081526040808320938616835292905220545b905061039a565b336001600160a01b03841614806106b05750336001600160a01b038316145b156106e0576001600160a01b0380841660009081526001602090815260408083209386168352929052205461068a565b60405162461bcd60e51b815260040161049c90610f3e565b6104af838383600161097c565b61070f8133610a81565b50565b6001600160a01b03821661073c576000604051634b637e8f60e11b815260040161049c9190610fa8565b61074882600083610ae1565b5050565b6000610758848461063d565b905060001981146104ff57818110156107a3578281836040517ffb8f41b200000000000000000000000000000000000000000000000000000000815260040161049c93929190610fb6565b6104ff8484848403600061097c565b6001600160a01b0383166107dc576000604051634b637e8f60e11b815260040161049c9190610fa8565b6001600160a01b03821661080657600060405163ec442f0560e01b815260040161049c9190610fa8565b6104af838383610ae1565b60008281526007602090815260408083206001600160a01b038516845290915281205460ff166108b75760008381526007602090815260408083206001600160a01b03861684529091529020805460ff1916600117905561086f3390565b6001600160a01b0316826001600160a01b0316847f2f8788117e7eff1d82e926ec794901d17c78024a50270940304540a733656f0d60405160405180910390a450600161039a565b50600061039a565b60008281526007602090815260408083206001600160a01b038516845290915281205460ff16156108b75760008381526007602090815260408083206001600160a01b0386168085529252808320805460ff1916905551339286917ff6391f5c32d9c69d2a47ea670b442974b53935d1edc7fd64eb21e047a839171b9190a450600161039a565b6001600160a01b03821661097057600060405163ec442f0560e01b815260040161049c9190610fa8565b61074860008383610ae1565b6001600160a01b0384166109bf5760006040517fe602df0500000000000000000000000000000000000000000000000000000000815260040161049c9190610fa8565b6001600160a01b038316610a025760006040517f94280d6200000000000000000000000000000000000000000000000000000000815260040161049c9190610fa8565b6001600160a01b03808516600090815260016020908152604080832093871683529290522082905580156104ff57826001600160a01b0316846001600160a01b03167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92584604051610a739190610d6a565b60405180910390a350505050565b60008281526007602090815260408083206001600160a01b038516845290915290205460ff166107485780826040517fe2517d3f00000000000000000000000000000000000000000000000000000000815260040161049c929190610fde565b6001600160a01b038316610b0c578060026000828254610b01919061100f565b90915550610b849050565b6001600160a01b03831660009081526020819052604090205481811015610b65578381836040517fe450d38c00000000000000000000000000000000000000000000000000000000815260040161049c93929190610fb6565b6001600160a01b03841660009081526020819052604090209082900390555b6001600160a01b038216610ba057600280548290039055610bbf565b6001600160a01b03821660009081526020819052604090208054820190555b816001600160a01b0316836001600160a01b03167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef83604051610c029190610d6a565b60405180910390a3505050565b7fffffffff0000000000000000000000000000000000000000000000000000000081165b811461070f57600080fd5b803561039a81610c0f565b600060208284031215610c5e57610c5e600080fd5b6000610c6a8484610c3e565b949350505050565b8015155b82525050565b6020810161039a8284610c72565b60005b83811015610ca5578181015183820152602001610c8d565b50506000910152565b6000610cb8825190565b808452602084019350610ccf818560208601610c8a565b601f01601f19169290920192915050565b602080825281016104d38184610cae565b60006001600160a01b03821661039a565b610c3381610cf1565b803561039a81610d02565b80610c33565b803561039a81610d16565b60008060408385031215610d3d57610d3d600080fd5b6000610d498585610d0b565b9250506020610d5a85828601610d1c565b9150509250929050565b80610c76565b6020810161039a8284610d64565b600080600060608486031215610d9057610d90600080fd5b6000610d9c8686610d0b565b9350506020610dad86828701610d0b565b9250506040610dbe86828701610d1c565b9150509250925092565b600060208284031215610ddd57610ddd600080fd5b6000610c6a8484610d1c565b60008060408385031215610dff57610dff600080fd5b6000610e0b8585610d1c565b9250506020610d5a85828601610d0b565b60ff8116610c76565b6020810161039a8284610e1c565b600060208284031215610e4857610e48600080fd5b6000610c6a8484610d0b565b60008060408385031215610e6a57610e6a600080fd5b6000610e0b8585610d0b565b634e487b7160e01b600052602260045260246000fd5b600281046001821680610ea057607f821691505b602082108103610eb257610eb2610e76565b50919050565b60158152602081017f496e73756666696369656e742062616c616e63652e0000000000000000000000815290505b60200190565b6020808252810161039a81610eb8565b601f8152602081017f4e6f7420616c6c6f77656420746f2072656164207468652062616c616e63650081529050610ee6565b6020808252810161039a81610efc565b6020808252810161039a81602181527f4e6f7420616c6c6f77656420746f20726561642074686520616c6c6f77616e6360208201527f6500000000000000000000000000000000000000000000000000000000000000604082015260600190565b610c7681610cf1565b6020810161039a8284610f9f565b60608101610fc48286610f9f565b610fd16020830185610d64565b610c6a6040830184610d64565b60408101610fec8285610f9f565b6104d36020830184610d64565b634e487b7160e01b600052601160045260246000fd5b8082018082111561039a5761039a610ff956fea26469706673582212200ccb938df157c83569bb97b7cac53f726956a8f0a388597c60ae24feb0f05f4964736f6c63430008140033a26469706673582212204172d93cfb8a2353e719050fdcace139042298bb5992a07468564b3316bce15664736f6c63430008140033 \ No newline at end of file +60806040526001805463ffffffff60a01b1916905534801561002057600080fd5b50612abd806100306000396000f3fe608060405260043610620000c65760003560e01c806383bece4d11620000735780639e405b7111620000555780639e405b711462000256578063a381c8e21462000290578063d5c6b50414620002b557620000ef565b806383bece4d14620001e35780639813c7b2146200020857620000ef565b8063458ffd6311620000a9578063458ffd631462000174578063485cc955146200019957806375cb267214620001be57620000ef565b80628d48e314620001095780631888d712146200015b57620000ef565b36620000ef5760405162461bcd60e51b8152600401620000e69062000d72565b60405180910390fd5b60405162461bcd60e51b8152600401620000e69062000dbe565b3480156200011657600080fd5b50620001436200012836600462000e09565b6004602052600090815260409020546001600160a01b031681565b60405162000152919062000e47565b60405180910390f35b620001726200016c36600462000e09565b620002fe565b005b3480156200018157600080fd5b50620001726200019336600462000eaf565b6200047e565b348015620001a657600080fd5b5062000172620001b836600462000f4b565b620005e7565b348015620001cb57600080fd5b5062000172620001dd36600462000e09565b6200075b565b348015620001f057600080fd5b50620001726200020236600462000fa2565b6200083b565b3480156200021557600080fd5b50620002476200022736600462000e09565b6001600160a01b0390811660009081526002602052604090205416151590565b60405162000152919062001003565b3480156200026357600080fd5b50620001436200027536600462000e09565b6003602052600090815260409020546001600160a01b031681565b3480156200029d57600080fd5b5062000172620002af36600462000fa2565b6200097f565b348015620002c257600080fd5b50620002ef620002d436600462000e09565b6002602052600090815260409020546001600160a01b031681565b60405162000152919062001038565b60003411620003215760405162461bcd60e51b8152600401620000e6906200107b565b600080805260036020527f3617319a054d772f909f7c479a2cebe5066e836a939412e32403c99029b92eff546040516383bece4d60e01b9162000377916001600160a01b03909116903490869060240162001094565b60408051601f198184030181529190526020810180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff167fffffffff0000000000000000000000000000000000000000000000000000000090931692909217909152600554909150620003f7906001600160a01b03168260005b60008062000b0b565b6001546040517f346633fb0000000000000000000000000000000000000000000000000000000081526001600160a01b039091169063346633fb903490620004469086908390600401620010c2565b6000604051808303818588803b1580156200046057600080fd5b505af115801562000475573d6000803e3d6000fd5b50505050505050565b6005546000546001600160a01b0391821691163314620004b25760405162461bcd60e51b8152600401620000e69062001141565b806001600160a01b0316620004c662000c20565b6001600160a01b031614620004ef5760405162461bcd60e51b8152600401620000e690620011ac565b600085858585604051620005039062000d0a565b620005129493929190620011ec565b604051809103906000f0801580156200052f573d6000803e3d6000fd5b506001600160a01b038082166000818152600260209081526040808320805473ffffffffffffffffffffffffffffffffffffffff199081168617909155600383528184208054968f169682168717905594835260049091529081902080549093169091179091555190915081907f30c05779f384e0ae9d43bbf7ec4417f28bdc53d02a35551b6eb270a9c4c71dca90620005d5908a9084908b908b908b908b9062001221565b60405180910390a15050505050505050565b7ff0c57e16840df040f15088dc2f81fe391c3923bec73e23a9662efc9c229c6a00805468010000000000000000810460ff16159067ffffffffffffffff16600081158015620006335750825b905060008267ffffffffffffffff166001148015620006515750303b155b90508115801562000660575080155b1562000698576040517ff92ee8a900000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b845467ffffffffffffffff191660011785558315620006cd57845468ff00000000000000001916680100000000000000001785555b620006d8876200075b565b6005805473ffffffffffffffffffffffffffffffffffffffff19166001600160a01b03881617905583156200047557845468ff0000000000000000191685556040517fc7f505b2f371ae2175ee4913f4499e1f2633a7b5936321eed1cdaeb6115181d2906200074a9060019062001296565b60405180910390a150505050505050565b6200076562000ca0565b6000805473ffffffffffffffffffffffffffffffffffffffff19166001600160a01b038316908117909155604080517fa1a227fa000000000000000000000000000000000000000000000000000000008152905163a1a227fa916004808201926020929091908290030181865afa158015620007e5573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906200080b9190620012b3565b6001805473ffffffffffffffffffffffffffffffffffffffff19166001600160a01b039290921691909117905550565b6005546000546001600160a01b03918216911633146200086f5760405162461bcd60e51b8152600401620000e69062001141565b806001600160a01b03166200088362000c20565b6001600160a01b031614620008ac5760405162461bcd60e51b8152600401620000e690620011ac565b6001600160a01b03808516600090815260046020908152604080832054841680845260029092529091205490911680620008fa5760405162461bcd60e51b8152600401620000e69062001331565b6040517f979005ad0000000000000000000000000000000000000000000000000000000081526001600160a01b0382169063979005ad90620009439087908990600401620010c2565b600060405180830381600087803b1580156200095e57600080fd5b505af115801562000973573d6000803e3d6000fd5b50505050505050505050565b6001600160a01b0380841660009081526002602052604090205416620009b95760405162461bcd60e51b8152600401620000e69062001376565b6001600160a01b03808416600090815260026020526040908190205490517f1dd319cb0000000000000000000000000000000000000000000000000000000081529116908190631dd319cb9062000a179033908790600401620010c2565b600060405180830381600087803b15801562000a3257600080fd5b505af115801562000a47573d6000803e3d6000fd5b5050506001600160a01b038086166000908152600360205260408082205490519193506383bece4d60e01b9262000a88929116908790879060240162001094565b60408051601f198184030181529190526020810180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff167fffffffff000000000000000000000000000000000000000000000000000000009093169290921790915260055490915062000b04906001600160a01b0316826000620003ee565b5050505050565b60006040518060600160405280876001600160a01b031681526020018681526020018481525060405160200162000b43919062001432565b60408051808303601f19018152919052600180549192506001600160a01b0382169163b1454caa917401000000000000000000000000000000000000000090910463ffffffff1690601462000b988362001474565b91906101000a81548163ffffffff021916908363ffffffff1602179055508684866040518563ffffffff1660e01b815260040162000bda9493929190620014b1565b6020604051808303816000875af115801562000bfa573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906200047591906200151c565b60008060009054906101000a90046001600160a01b03166001600160a01b03166363012de56040518163ffffffff1660e01b8152600401602060405180830381865afa15801562000c75573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019062000c9b9190620012b3565b905090565b7ff0c57e16840df040f15088dc2f81fe391c3923bec73e23a9662efc9c229c6a005468010000000000000000900460ff1662000d08576040517fd7e6bcf800000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b565b611546806200154283390190565b60238152602081017f436f6e747261637420646f6573206e6f7420737570706f72742072656365697681527f6528290000000000000000000000000000000000000000000000000000000000602082015290505b60400190565b6020808252810162000d848162000d18565b92915050565b601d8152602081017f66616c6c6261636b2829206d6574686f6420756e737570706f72746564000000815290505b60200190565b6020808252810162000d848162000d8a565b60006001600160a01b03821662000d84565b62000ded8162000dd0565b811462000df957600080fd5b50565b803562000d848162000de2565b60006020828403121562000e205762000e20600080fd5b600062000e2e848462000dfc565b949350505050565b62000e418162000dd0565b82525050565b6020810162000d84828462000e36565b60008083601f84011262000e6e5762000e6e600080fd5b50813567ffffffffffffffff81111562000e8b5762000e8b600080fd5b60208301915083600182028301111562000ea85762000ea8600080fd5b9250929050565b60008060008060006060868803121562000ecc5762000ecc600080fd5b600062000eda888862000dfc565b955050602086013567ffffffffffffffff81111562000efc5762000efc600080fd5b62000f0a8882890162000e57565b9450945050604086013567ffffffffffffffff81111562000f2e5762000f2e600080fd5b62000f3c8882890162000e57565b92509250509295509295909350565b6000806040838503121562000f635762000f63600080fd5b600062000f71858562000dfc565b925050602062000f848582860162000dfc565b9150509250929050565b8062000ded565b803562000d848162000f8e565b60008060006060848603121562000fbc5762000fbc600080fd5b600062000fca868662000dfc565b935050602062000fdd8682870162000f95565b925050604062000ff08682870162000dfc565b9150509250925092565b80151562000e41565b6020810162000d84828462000ffa565b600062000d848262000dd0565b600062000d848262001013565b62000e418162001020565b6020810162000d8482846200102d565b600d8152602081017f4e6f7468696e672073656e742e000000000000000000000000000000000000008152905062000db8565b6020808252810162000d848162001048565b8062000e41565b60608101620010a4828662000e36565b620010b360208301856200108d565b62000e2e604083018462000e36565b60408101620010d2828562000e36565b620010e160208301846200108d565b9392505050565b60308152602081017f436f6e74726163742063616c6c6572206973206e6f742074686520726567697381527f7465726564206d657373656e67657221000000000000000000000000000000006020820152905062000d6c565b6020808252810162000d8481620010e8565b60318152602081017f43726f737320636861696e206d65737361676520636f6d696e672066726f6d2081527f696e636f72726563742073656e646572210000000000000000000000000000006020820152905062000d6c565b6020808252810162000d848162001153565b82818337506000910152565b818352602083019250620011e0828483620011be565b50601f01601f19160190565b6040808252810162001200818688620011ca565b9050818103602083015262001217818486620011ca565b9695505050505050565b6080810162001231828962000e36565b62001240602083018862000e36565b818103604083015262001255818688620011ca565b905081810360608301526200126c818486620011ca565b98975050505050505050565b600067ffffffffffffffff821662000d84565b62000e418162001278565b6020810162000d8482846200128b565b805162000d848162000de2565b600060208284031215620012ca57620012ca600080fd5b600062000e2e8484620012a6565b602b8152602081017f526563656976696e672061737365747320666f7220756e6b6e6f776e2077726181527f7070656420746f6b656e210000000000000000000000000000000000000000006020820152905062000d6c565b6020808252810162000d8481620012d8565b60158152602081017f4e6f206d617070696e6720666f7220746f6b656e2e00000000000000000000008152905062000db8565b6020808252810162000d848162001343565b60005b83811015620013a55781810151838201526020016200138b565b50506000910152565b6000620013b9825190565b808452602084019350620013d281856020860162001388565b601f01601f19169290920192915050565b80516000906060840190620013f9858262000e36565b5060208301518482036020860152620014138282620013ae565b91505060408301516200142a60408601826200108d565b509392505050565b60208082528101620010e18184620013e3565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b63ffffffff16600063fffffffe19820162001493576200149362001445565b5060010190565b63ffffffff811662000e41565b60ff811662000e41565b60808101620014c182876200149a565b620014d060208301866200149a565b8181036040830152620014e48185620013ae565b9050620014f56060830184620014a7565b95945050505050565b67ffffffffffffffff811662000ded565b805162000d8481620014fe565b600060208284031215620015335762001533600080fd5b600062000e2e84846200150f56fe6080604052600580546001600160a01b03191673deb34a740eca1ec42c8b8204cbec0ba34fdd27f31790553480156200003757600080fd5b5060405162001546380380620015468339810160408190526200005a916200029e565b8181818160036200006c838262000412565b5060046200007b828262000412565b5050505050620000b27fa49807205ce4d355092ef5a8a18f56e8913cf4a201fbe287825b095693c2177533620000bb60201b60201c565b505050620004de565b60008281526007602090815260408083206001600160a01b038516845290915281205460ff16620001645760008381526007602090815260408083206001600160a01b03861684529091529020805460ff191660011790556200011b3390565b6001600160a01b0316826001600160a01b0316847f2f8788117e7eff1d82e926ec794901d17c78024a50270940304540a733656f0d60405160405180910390a450600162000168565b5060005b92915050565b634e487b7160e01b600052604160045260246000fd5b601f19601f83011681016001600160401b0381118282101715620001ac57620001ac6200016e565b6040525050565b6000620001bf60405190565b9050620001cd828262000184565b919050565b60006001600160401b03821115620001ee57620001ee6200016e565b601f19601f83011660200192915050565b60005b838110156200021c57818101518382015260200162000202565b50506000910152565b60006200023c6200023684620001d2565b620001b3565b905082815260208101848484011115620002595762000259600080fd5b62000266848285620001ff565b509392505050565b600082601f830112620002845762000284600080fd5b81516200029684826020860162000225565b949350505050565b60008060408385031215620002b657620002b6600080fd5b82516001600160401b03811115620002d157620002d1600080fd5b620002df858286016200026e565b602085015190935090506001600160401b03811115620003025762000302600080fd5b62000310858286016200026e565b9150509250929050565b634e487b7160e01b600052602260045260246000fd5b6002810460018216806200034557607f821691505b6020821081036200035a576200035a6200031a565b50919050565b6000620001686200036e8381565b90565b6200037c8362000360565b815460001960089490940293841b1916921b91909117905550565b6000620003a681848462000371565b505050565b81811015620003ca57620003c160008262000397565b600101620003ab565b5050565b601f821115620003a6576000818152602090206020601f85010481016020851015620003f75750805b6200040b6020601f860104830182620003ab565b5050505050565b81516001600160401b038111156200042e576200042e6200016e565b6200043a825462000330565b62000447828285620003ce565b506020601f8211600181146200047f5760008315620004665750848201515b600019600885021c19811660028502178555506200040b565b600084815260208120601f198516915b82811015620004b157878501518255602094850194600190920191016200048f565b5084821015620004cf5783870151600019601f87166008021c191681555b50505050600202600101905550565b61105880620004ee6000396000f3fe608060405234801561001057600080fd5b50600436106101515760003560e01c806336568abe116100cd578063979005ad11610081578063a9059cbb11610066578063a9059cbb146102ce578063d547741f146102e1578063dd62ed3e146102f457600080fd5b8063979005ad146102b3578063a217fddf146102c657600080fd5b806375b238fc116100b257806375b238fc1461024b57806391d148541461027257806395d89b41146102ab57600080fd5b806336568abe1461022557806370a082311461023857600080fd5b80631dd319cb11610124578063248a9ca311610109578063248a9ca3146101e05780632f2ff15d14610203578063313ce5671461021657600080fd5b80631dd319cb146101b857806323b872dd146101cd57600080fd5b806301ffc9a71461015657806306fdde031461017f578063095ea7b31461019457806318160ddd146101a7575b600080fd5b610169610164366004610c49565b610307565b6040516101769190610c7c565b60405180910390f35b6101876103a0565b6040516101769190610ce0565b6101696101a2366004610d27565b610432565b6002545b6040516101769190610d6a565b6101cb6101c6366004610d27565b61044a565b005b6101696101db366004610d78565b6104b4565b6101ab6101ee366004610dc8565b60009081526007602052604090206001015490565b6101cb610211366004610de9565b6104da565b60126040516101769190610e25565b6101cb610233366004610de9565b610505565b6101ab610246366004610e33565b610551565b6101ab7fa49807205ce4d355092ef5a8a18f56e8913cf4a201fbe287825b095693c2177581565b610169610280366004610de9565b60009182526007602090815260408084206001600160a01b0393909316845291905290205460ff1690565b6101876105c7565b6101cb6102c1366004610d27565b6105d6565b6101ab600081565b6101696102dc366004610d27565b61060a565b6101cb6102ef366004610de9565b610618565b6101ab610302366004610e54565b61063d565b60007fffffffff0000000000000000000000000000000000000000000000000000000082167f7965db0b00000000000000000000000000000000000000000000000000000000148061039a57507f01ffc9a7000000000000000000000000000000000000000000000000000000007fffffffff000000000000000000000000000000000000000000000000000000008316145b92915050565b6060600380546103af90610e8c565b80601f01602080910402602001604051908101604052809291908181526020018280546103db90610e8c565b80156104285780601f106103fd57610100808354040283529160200191610428565b820191906000526020600020905b81548152906001019060200180831161040b57829003601f168201915b5050505050905090565b6000336104408185856106f8565b5060019392505050565b7fa49807205ce4d355092ef5a8a18f56e8913cf4a201fbe287825b095693c2177561047481610705565b8161047e84610551565b10156104a55760405162461bcd60e51b815260040161049c90610eec565b60405180910390fd5b6104af8383610712565b505050565b6000336104c285828561074c565b6104cd8585856107b2565b60019150505b9392505050565b6000828152600760205260409020600101546104f581610705565b6104ff8383610811565b50505050565b6001600160a01b0381163314610547576040517f6697b23200000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6104af82826108bf565b60006001600160a01b0382163203610581576001600160a01b03821660009081526020819052604090205461039a565b6001600160a01b03821633036105af576001600160a01b03821660009081526020819052604090205461039a565b60405162461bcd60e51b815260040161049c90610f2e565b6060600480546103af90610e8c565b7fa49807205ce4d355092ef5a8a18f56e8913cf4a201fbe287825b095693c2177561060081610705565b6104af8383610946565b6000336104408185856107b2565b60008281526007602052604090206001015461063381610705565b6104ff83836108bf565b6000326001600160a01b038416148061065e5750326001600160a01b038316145b15610691576001600160a01b038084166000908152600160209081526040808320938616835292905220545b905061039a565b336001600160a01b03841614806106b05750336001600160a01b038316145b156106e0576001600160a01b0380841660009081526001602090815260408083209386168352929052205461068a565b60405162461bcd60e51b815260040161049c90610f3e565b6104af838383600161097c565b61070f8133610a81565b50565b6001600160a01b03821661073c576000604051634b637e8f60e11b815260040161049c9190610fa8565b61074882600083610ae1565b5050565b6000610758848461063d565b905060001981146104ff57818110156107a3578281836040517ffb8f41b200000000000000000000000000000000000000000000000000000000815260040161049c93929190610fb6565b6104ff8484848403600061097c565b6001600160a01b0383166107dc576000604051634b637e8f60e11b815260040161049c9190610fa8565b6001600160a01b03821661080657600060405163ec442f0560e01b815260040161049c9190610fa8565b6104af838383610ae1565b60008281526007602090815260408083206001600160a01b038516845290915281205460ff166108b75760008381526007602090815260408083206001600160a01b03861684529091529020805460ff1916600117905561086f3390565b6001600160a01b0316826001600160a01b0316847f2f8788117e7eff1d82e926ec794901d17c78024a50270940304540a733656f0d60405160405180910390a450600161039a565b50600061039a565b60008281526007602090815260408083206001600160a01b038516845290915281205460ff16156108b75760008381526007602090815260408083206001600160a01b0386168085529252808320805460ff1916905551339286917ff6391f5c32d9c69d2a47ea670b442974b53935d1edc7fd64eb21e047a839171b9190a450600161039a565b6001600160a01b03821661097057600060405163ec442f0560e01b815260040161049c9190610fa8565b61074860008383610ae1565b6001600160a01b0384166109bf5760006040517fe602df0500000000000000000000000000000000000000000000000000000000815260040161049c9190610fa8565b6001600160a01b038316610a025760006040517f94280d6200000000000000000000000000000000000000000000000000000000815260040161049c9190610fa8565b6001600160a01b03808516600090815260016020908152604080832093871683529290522082905580156104ff57826001600160a01b0316846001600160a01b03167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92584604051610a739190610d6a565b60405180910390a350505050565b60008281526007602090815260408083206001600160a01b038516845290915290205460ff166107485780826040517fe2517d3f00000000000000000000000000000000000000000000000000000000815260040161049c929190610fde565b6001600160a01b038316610b0c578060026000828254610b01919061100f565b90915550610b849050565b6001600160a01b03831660009081526020819052604090205481811015610b65578381836040517fe450d38c00000000000000000000000000000000000000000000000000000000815260040161049c93929190610fb6565b6001600160a01b03841660009081526020819052604090209082900390555b6001600160a01b038216610ba057600280548290039055610bbf565b6001600160a01b03821660009081526020819052604090208054820190555b816001600160a01b0316836001600160a01b03167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef83604051610c029190610d6a565b60405180910390a3505050565b7fffffffff0000000000000000000000000000000000000000000000000000000081165b811461070f57600080fd5b803561039a81610c0f565b600060208284031215610c5e57610c5e600080fd5b6000610c6a8484610c3e565b949350505050565b8015155b82525050565b6020810161039a8284610c72565b60005b83811015610ca5578181015183820152602001610c8d565b50506000910152565b6000610cb8825190565b808452602084019350610ccf818560208601610c8a565b601f01601f19169290920192915050565b602080825281016104d38184610cae565b60006001600160a01b03821661039a565b610c3381610cf1565b803561039a81610d02565b80610c33565b803561039a81610d16565b60008060408385031215610d3d57610d3d600080fd5b6000610d498585610d0b565b9250506020610d5a85828601610d1c565b9150509250929050565b80610c76565b6020810161039a8284610d64565b600080600060608486031215610d9057610d90600080fd5b6000610d9c8686610d0b565b9350506020610dad86828701610d0b565b9250506040610dbe86828701610d1c565b9150509250925092565b600060208284031215610ddd57610ddd600080fd5b6000610c6a8484610d1c565b60008060408385031215610dff57610dff600080fd5b6000610e0b8585610d1c565b9250506020610d5a85828601610d0b565b60ff8116610c76565b6020810161039a8284610e1c565b600060208284031215610e4857610e48600080fd5b6000610c6a8484610d0b565b60008060408385031215610e6a57610e6a600080fd5b6000610e0b8585610d0b565b634e487b7160e01b600052602260045260246000fd5b600281046001821680610ea057607f821691505b602082108103610eb257610eb2610e76565b50919050565b60158152602081017f496e73756666696369656e742062616c616e63652e0000000000000000000000815290505b60200190565b6020808252810161039a81610eb8565b601f8152602081017f4e6f7420616c6c6f77656420746f2072656164207468652062616c616e63650081529050610ee6565b6020808252810161039a81610efc565b6020808252810161039a81602181527f4e6f7420616c6c6f77656420746f20726561642074686520616c6c6f77616e6360208201527f6500000000000000000000000000000000000000000000000000000000000000604082015260600190565b610c7681610cf1565b6020810161039a8284610f9f565b60608101610fc48286610f9f565b610fd16020830185610d64565b610c6a6040830184610d64565b60408101610fec8285610f9f565b6104d36020830184610d64565b634e487b7160e01b600052601160045260246000fd5b8082018082111561039a5761039a610ff956fea264697066735822122015a37e58522ca26bdd51e6ea23c5953be6e295684d318926ea7d989d6576fe1c64736f6c63430008150033a2646970667358221220f32fa9bbc81033e4c32c93807c57829cac33e49d74d4612615588dff6d00a05564736f6c63430008150033 \ No newline at end of file diff --git a/contracts/exported/src/common/ConstantSupplyERC20.sol/ConstantSupplyERC20.bin b/contracts/exported/src/common/ConstantSupplyERC20.sol/ConstantSupplyERC20.bin index c9617a025f..d78d489082 100644 --- a/contracts/exported/src/common/ConstantSupplyERC20.sol/ConstantSupplyERC20.bin +++ b/contracts/exported/src/common/ConstantSupplyERC20.sol/ConstantSupplyERC20.bin @@ -1 +1 @@ -60806040523480156200001157600080fd5b5060405162000ebb38038062000ebb833981016040819052620000349162000312565b8282600362000044838262000497565b50600462000053828262000497565b5050506200006833826200007160201b60201c565b50505062000607565b6001600160a01b038216620000a757600060405163ec442f0560e01b81526004016200009e919062000586565b60405180910390fd5b620000b560008383620000b9565b5050565b6001600160a01b038316620000e8578060026000828254620000dc9190620005ac565b909155506200014a9050565b6001600160a01b038316600090815260208190526040902054818110156200012b5783818360405163391434e360e21b81526004016200009e93929190620005c9565b6001600160a01b03841660009081526020819052604090209082900390555b6001600160a01b038216620001685760028054829003905562000187565b6001600160a01b03821660009081526020819052604090208054820190555b816001600160a01b0316836001600160a01b03167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef83604051620001cc9190620005f7565b60405180910390a3505050565b634e487b7160e01b600052604160045260246000fd5b601f19601f83011681016001600160401b0381118282101715620002175762000217620001d9565b6040525050565b60006200022a60405190565b9050620002388282620001ef565b919050565b60006001600160401b03821115620002595762000259620001d9565b601f19601f83011660200192915050565b60005b83811015620002875781810151838201526020016200026d565b50506000910152565b6000620002a7620002a1846200023d565b6200021e565b905082815260208101848484011115620002c457620002c4600080fd5b620002d18482856200026a565b509392505050565b600082601f830112620002ef57620002ef600080fd5b81516200030184826020860162000290565b949350505050565b80515b92915050565b6000806000606084860312156200032c576200032c600080fd5b83516001600160401b03811115620003475762000347600080fd5b6200035586828701620002d9565b602086015190945090506001600160401b03811115620003785762000378600080fd5b6200038686828701620002d9565b9250506040620003998682870162000309565b9150509250925092565b634e487b7160e01b600052602260045260246000fd5b600281046001821680620003ce57607f821691505b602082108103620003e357620003e3620003a3565b50919050565b60006200030c620003f78381565b90565b6200040583620003e9565b815460001960089490940293841b1916921b91909117905550565b60006200042f818484620003fa565b505050565b81811015620000b5576200044a60008262000420565b60010162000434565b601f8211156200042f576000818152602090206020601f850104810160208510156200047c5750805b620004906020601f86010483018262000434565b5050505050565b81516001600160401b03811115620004b357620004b3620001d9565b620004bf8254620003b9565b620004cc82828562000453565b506020601f821160018114620005045760008315620004eb5750848201515b600019600885021c198116600285021785555062000490565b600084815260208120601f198516915b8281101562000536578785015182556020948501946001909201910162000514565b5084821015620005545783870151600019601f87166008021c191681555b50505050600202600101905550565b60006001600160a01b0382166200030c565b620005808162000563565b82525050565b602081016200030c828462000575565b634e487b7160e01b600052601160045260246000fd5b808201808211156200030c576200030c62000596565b8062000580565b60608101620005d9828662000575565b620005e86020830185620005c2565b620003016040830184620005c2565b602081016200030c8284620005c2565b6108a480620006176000396000f3fe608060405234801561001057600080fd5b50600436106100a35760003560e01c8063313ce5671161007657806395d89b411161005b57806395d89b4114610142578063a9059cbb1461014a578063dd62ed3e1461015d57600080fd5b8063313ce5671461010a57806370a082311461011957600080fd5b806306fdde03146100a8578063095ea7b3146100c657806318160ddd146100e657806323b872dd146100f7575b600080fd5b6100b0610196565b6040516100bd919061063c565b60405180910390f35b6100d96100d4366004610698565b610228565b6040516100bd91906106df565b6002545b6040516100bd91906106f3565b6100d9610105366004610701565b610242565b60126040516100bd919061075a565b6100ea610127366004610768565b6001600160a01b031660009081526020819052604090205490565b6100b0610266565b6100d9610158366004610698565b610275565b6100ea61016b366004610791565b6001600160a01b03918216600090815260016020908152604080832093909416825291909152205490565b6060600380546101a5906107da565b80601f01602080910402602001604051908101604052809291908181526020018280546101d1906107da565b801561021e5780601f106101f35761010080835404028352916020019161021e565b820191906000526020600020905b81548152906001019060200180831161020157829003601f168201915b5050505050905090565b600033610236818585610283565b60019150505b92915050565b600033610250858285610295565b61025b858585610322565b506001949350505050565b6060600480546101a5906107da565b600033610236818585610322565b61029083838360016103b3565b505050565b6001600160a01b03838116600090815260016020908152604080832093861683529290522054600019811461031c578181101561030d578281836040517ffb8f41b20000000000000000000000000000000000000000000000000000000081526004016103049392919061080f565b60405180910390fd5b61031c848484840360006103b3565b50505050565b6001600160a01b0383166103655760006040517f96c6fd1e0000000000000000000000000000000000000000000000000000000081526004016103049190610837565b6001600160a01b0382166103a85760006040517fec442f050000000000000000000000000000000000000000000000000000000081526004016103049190610837565b6102908383836104b8565b6001600160a01b0384166103f65760006040517fe602df050000000000000000000000000000000000000000000000000000000081526004016103049190610837565b6001600160a01b0383166104395760006040517f94280d620000000000000000000000000000000000000000000000000000000081526004016103049190610837565b6001600160a01b038085166000908152600160209081526040808320938716835292905220829055801561031c57826001600160a01b0316846001600160a01b03167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925846040516104aa91906106f3565b60405180910390a350505050565b6001600160a01b0383166104e35780600260008282546104d8919061085b565b9091555061055b9050565b6001600160a01b0383166000908152602081905260409020548181101561053c578381836040517fe450d38c0000000000000000000000000000000000000000000000000000000081526004016103049392919061080f565b6001600160a01b03841660009081526020819052604090209082900390555b6001600160a01b03821661057757600280548290039055610596565b6001600160a01b03821660009081526020819052604090208054820190555b816001600160a01b0316836001600160a01b03167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef836040516105d991906106f3565b60405180910390a3505050565b60005b838110156106015781810151838201526020016105e9565b50506000910152565b6000610614825190565b80845260208401935061062b8185602086016105e6565b601f01601f19169290920192915050565b6020808252810161064d818461060a565b9392505050565b60006001600160a01b03821661023c565b61066e81610654565b811461067957600080fd5b50565b803561023c81610665565b8061066e565b803561023c81610687565b600080604083850312156106ae576106ae600080fd5b60006106ba858561067c565b92505060206106cb8582860161068d565b9150509250929050565b8015155b82525050565b6020810161023c82846106d5565b806106d9565b6020810161023c82846106ed565b60008060006060848603121561071957610719600080fd5b6000610725868661067c565b93505060206107368682870161067c565b92505060406107478682870161068d565b9150509250925092565b60ff81166106d9565b6020810161023c8284610751565b60006020828403121561077d5761077d600080fd5b6000610789848461067c565b949350505050565b600080604083850312156107a7576107a7600080fd5b60006107b3858561067c565b92505060206106cb8582860161067c565b634e487b7160e01b600052602260045260246000fd5b6002810460018216806107ee57607f821691505b602082108103610800576108006107c4565b50919050565b6106d981610654565b6060810161081d8286610806565b61082a60208301856106ed565b61078960408301846106ed565b6020810161023c8284610806565b634e487b7160e01b600052601160045260246000fd5b8082018082111561023c5761023c61084556fea26469706673582212202d779dff7fe9ec7ab0604366da8ad9497916e439b37454dbdbc1f22c4e6aa1fb64736f6c63430008140033 \ No newline at end of file +60806040523480156200001157600080fd5b5060405162000ebb38038062000ebb833981016040819052620000349162000312565b8282600362000044838262000497565b50600462000053828262000497565b5050506200006833826200007160201b60201c565b50505062000607565b6001600160a01b038216620000a757600060405163ec442f0560e01b81526004016200009e919062000586565b60405180910390fd5b620000b560008383620000b9565b5050565b6001600160a01b038316620000e8578060026000828254620000dc9190620005ac565b909155506200014a9050565b6001600160a01b038316600090815260208190526040902054818110156200012b5783818360405163391434e360e21b81526004016200009e93929190620005c9565b6001600160a01b03841660009081526020819052604090209082900390555b6001600160a01b038216620001685760028054829003905562000187565b6001600160a01b03821660009081526020819052604090208054820190555b816001600160a01b0316836001600160a01b03167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef83604051620001cc9190620005f7565b60405180910390a3505050565b634e487b7160e01b600052604160045260246000fd5b601f19601f83011681016001600160401b0381118282101715620002175762000217620001d9565b6040525050565b60006200022a60405190565b9050620002388282620001ef565b919050565b60006001600160401b03821115620002595762000259620001d9565b601f19601f83011660200192915050565b60005b83811015620002875781810151838201526020016200026d565b50506000910152565b6000620002a7620002a1846200023d565b6200021e565b905082815260208101848484011115620002c457620002c4600080fd5b620002d18482856200026a565b509392505050565b600082601f830112620002ef57620002ef600080fd5b81516200030184826020860162000290565b949350505050565b80515b92915050565b6000806000606084860312156200032c576200032c600080fd5b83516001600160401b03811115620003475762000347600080fd5b6200035586828701620002d9565b602086015190945090506001600160401b03811115620003785762000378600080fd5b6200038686828701620002d9565b9250506040620003998682870162000309565b9150509250925092565b634e487b7160e01b600052602260045260246000fd5b600281046001821680620003ce57607f821691505b602082108103620003e357620003e3620003a3565b50919050565b60006200030c620003f78381565b90565b6200040583620003e9565b815460001960089490940293841b1916921b91909117905550565b60006200042f818484620003fa565b505050565b81811015620000b5576200044a60008262000420565b60010162000434565b601f8211156200042f576000818152602090206020601f850104810160208510156200047c5750805b620004906020601f86010483018262000434565b5050505050565b81516001600160401b03811115620004b357620004b3620001d9565b620004bf8254620003b9565b620004cc82828562000453565b506020601f821160018114620005045760008315620004eb5750848201515b600019600885021c198116600285021785555062000490565b600084815260208120601f198516915b8281101562000536578785015182556020948501946001909201910162000514565b5084821015620005545783870151600019601f87166008021c191681555b50505050600202600101905550565b60006001600160a01b0382166200030c565b620005808162000563565b82525050565b602081016200030c828462000575565b634e487b7160e01b600052601160045260246000fd5b808201808211156200030c576200030c62000596565b8062000580565b60608101620005d9828662000575565b620005e86020830185620005c2565b620003016040830184620005c2565b602081016200030c8284620005c2565b6108a480620006176000396000f3fe608060405234801561001057600080fd5b50600436106100a35760003560e01c8063313ce5671161007657806395d89b411161005b57806395d89b4114610142578063a9059cbb1461014a578063dd62ed3e1461015d57600080fd5b8063313ce5671461010a57806370a082311461011957600080fd5b806306fdde03146100a8578063095ea7b3146100c657806318160ddd146100e657806323b872dd146100f7575b600080fd5b6100b0610196565b6040516100bd919061063c565b60405180910390f35b6100d96100d4366004610698565b610228565b6040516100bd91906106df565b6002545b6040516100bd91906106f3565b6100d9610105366004610701565b610242565b60126040516100bd919061075a565b6100ea610127366004610768565b6001600160a01b031660009081526020819052604090205490565b6100b0610266565b6100d9610158366004610698565b610275565b6100ea61016b366004610791565b6001600160a01b03918216600090815260016020908152604080832093909416825291909152205490565b6060600380546101a5906107da565b80601f01602080910402602001604051908101604052809291908181526020018280546101d1906107da565b801561021e5780601f106101f35761010080835404028352916020019161021e565b820191906000526020600020905b81548152906001019060200180831161020157829003601f168201915b5050505050905090565b600033610236818585610283565b60019150505b92915050565b600033610250858285610295565b61025b858585610322565b506001949350505050565b6060600480546101a5906107da565b600033610236818585610322565b61029083838360016103b3565b505050565b6001600160a01b03838116600090815260016020908152604080832093861683529290522054600019811461031c578181101561030d578281836040517ffb8f41b20000000000000000000000000000000000000000000000000000000081526004016103049392919061080f565b60405180910390fd5b61031c848484840360006103b3565b50505050565b6001600160a01b0383166103655760006040517f96c6fd1e0000000000000000000000000000000000000000000000000000000081526004016103049190610837565b6001600160a01b0382166103a85760006040517fec442f050000000000000000000000000000000000000000000000000000000081526004016103049190610837565b6102908383836104b8565b6001600160a01b0384166103f65760006040517fe602df050000000000000000000000000000000000000000000000000000000081526004016103049190610837565b6001600160a01b0383166104395760006040517f94280d620000000000000000000000000000000000000000000000000000000081526004016103049190610837565b6001600160a01b038085166000908152600160209081526040808320938716835292905220829055801561031c57826001600160a01b0316846001600160a01b03167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925846040516104aa91906106f3565b60405180910390a350505050565b6001600160a01b0383166104e35780600260008282546104d8919061085b565b9091555061055b9050565b6001600160a01b0383166000908152602081905260409020548181101561053c578381836040517fe450d38c0000000000000000000000000000000000000000000000000000000081526004016103049392919061080f565b6001600160a01b03841660009081526020819052604090209082900390555b6001600160a01b03821661057757600280548290039055610596565b6001600160a01b03821660009081526020819052604090208054820190555b816001600160a01b0316836001600160a01b03167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef836040516105d991906106f3565b60405180910390a3505050565b60005b838110156106015781810151838201526020016105e9565b50506000910152565b6000610614825190565b80845260208401935061062b8185602086016105e6565b601f01601f19169290920192915050565b6020808252810161064d818461060a565b9392505050565b60006001600160a01b03821661023c565b61066e81610654565b811461067957600080fd5b50565b803561023c81610665565b8061066e565b803561023c81610687565b600080604083850312156106ae576106ae600080fd5b60006106ba858561067c565b92505060206106cb8582860161068d565b9150509250929050565b8015155b82525050565b6020810161023c82846106d5565b806106d9565b6020810161023c82846106ed565b60008060006060848603121561071957610719600080fd5b6000610725868661067c565b93505060206107368682870161067c565b92505060406107478682870161068d565b9150509250925092565b60ff81166106d9565b6020810161023c8284610751565b60006020828403121561077d5761077d600080fd5b6000610789848461067c565b949350505050565b600080604083850312156107a7576107a7600080fd5b60006107b3858561067c565b92505060206106cb8582860161067c565b634e487b7160e01b600052602260045260246000fd5b6002810460018216806107ee57607f821691505b602082108103610800576108006107c4565b50919050565b6106d981610654565b6060810161081d8286610806565b61082a60208301856106ed565b61078960408301846106ed565b6020810161023c8284610806565b634e487b7160e01b600052601160045260246000fd5b8082018082111561023c5761023c61084556fea264697066735822122091ea0ede169de058ccdd3cb7d029ac7763f9230cde51285aac42f1fd73afff7264736f6c63430008150033 \ No newline at end of file diff --git a/contracts/exported/src/common/ObsERC20.sol/ObsERC20.bin b/contracts/exported/src/common/ObsERC20.sol/ObsERC20.bin index 4cc8273e9f..0628eab967 100644 --- a/contracts/exported/src/common/ObsERC20.sol/ObsERC20.bin +++ b/contracts/exported/src/common/ObsERC20.sol/ObsERC20.bin @@ -1 +1 @@ -6080604052600580546001600160a01b03191673deb34a740eca1ec42c8b8204cbec0ba34fdd27f31790553480156200003757600080fd5b5060405162000e2738038062000e278339810160408190526200005a91620001b4565b818160036200006a83826200032e565b5060046200007982826200032e565b5050505050620003fa565b634e487b7160e01b600052604160045260246000fd5b601f19601f83011681016001600160401b0381118282101715620000c257620000c262000084565b6040525050565b6000620000d560405190565b9050620000e382826200009a565b919050565b60006001600160401b0382111562000104576200010462000084565b601f19601f83011660200192915050565b60005b838110156200013257818101518382015260200162000118565b50506000910152565b6000620001526200014c84620000e8565b620000c9565b9050828152602081018484840111156200016f576200016f600080fd5b6200017c84828562000115565b509392505050565b600082601f8301126200019a576200019a600080fd5b8151620001ac8482602086016200013b565b949350505050565b60008060408385031215620001cc57620001cc600080fd5b82516001600160401b03811115620001e757620001e7600080fd5b620001f58582860162000184565b602085015190935090506001600160401b03811115620002185762000218600080fd5b620002268582860162000184565b9150509250929050565b634e487b7160e01b600052602260045260246000fd5b6002810460018216806200025b57607f821691505b60208210810362000270576200027062000230565b50919050565b600062000287620002848381565b90565b92915050565b620002988362000276565b815460001960089490940293841b1916921b91909117905550565b6000620002c28184846200028d565b505050565b81811015620002e657620002dd600082620002b3565b600101620002c7565b5050565b601f821115620002c2576000818152602090206020601f85010481016020851015620003135750805b620003276020601f860104830182620002c7565b5050505050565b81516001600160401b038111156200034a576200034a62000084565b62000356825462000246565b62000363828285620002ea565b506020601f8211600181146200039b5760008315620003825750848201515b600019600885021c198116600285021785555062000327565b600084815260208120601f198516915b82811015620003cd5787850151825560209485019460019092019101620003ab565b5084821015620003eb5783870151600019601f87166008021c191681555b50505050600202600101905550565b610a1d806200040a6000396000f3fe608060405234801561001057600080fd5b50600436106100a35760003560e01c8063313ce5671161007657806395d89b411161005b57806395d89b411461012c578063a9059cbb14610134578063dd62ed3e1461014757600080fd5b8063313ce5671461010a57806370a082311461011957600080fd5b806306fdde03146100a8578063095ea7b3146100c657806318160ddd146100e657806323b872dd146100f7575b600080fd5b6100b061015a565b6040516100bd9190610719565b60405180910390f35b6100d96100d4366004610775565b6101ec565b6040516100bd91906107bc565b6002545b6040516100bd91906107d0565b6100d96101053660046107de565b610206565b60126040516100bd9190610837565b6100ea610127366004610845565b61022a565b6100b06102a9565b6100d9610142366004610775565b6102b8565b6100ea61015536600461086e565b6102c6565b606060038054610169906108b7565b80601f0160208091040260200160405190810160405280929190818152602001828054610195906108b7565b80156101e25780601f106101b7576101008083540402835291602001916101e2565b820191906000526020600020905b8154815290600101906020018083116101c557829003601f168201915b5050505050905090565b6000336101fa818585610381565b60019150505b92915050565b600033610214858285610393565b61021f8585856103ff565b506001949350505050565b60006001600160a01b038216320361025a576001600160a01b038216600090815260208190526040902054610200565b6001600160a01b0382163303610288576001600160a01b038216600090815260208190526040902054610200565b60405162461bcd60e51b81526004016102a0906108e3565b60405180910390fd5b606060048054610169906108b7565b6000336101fa8185856103ff565b6000326001600160a01b03841614806102e75750326001600160a01b038316145b1561031a576001600160a01b038084166000908152600160209081526040808320938616835292905220545b9050610200565b336001600160a01b03841614806103395750336001600160a01b038316145b15610369576001600160a01b03808416600090815260016020908152604080832093861683529290522054610313565b60405162461bcd60e51b81526004016102a09061091e565b61038e8383836001610490565b505050565b600061039f84846102c6565b905060001981146103f957818110156103ea578281836040517ffb8f41b20000000000000000000000000000000000000000000000000000000081526004016102a093929190610988565b6103f984848484036000610490565b50505050565b6001600160a01b0383166104425760006040517f96c6fd1e0000000000000000000000000000000000000000000000000000000081526004016102a091906109b0565b6001600160a01b0382166104855760006040517fec442f050000000000000000000000000000000000000000000000000000000081526004016102a091906109b0565b61038e838383610595565b6001600160a01b0384166104d35760006040517fe602df050000000000000000000000000000000000000000000000000000000081526004016102a091906109b0565b6001600160a01b0383166105165760006040517f94280d620000000000000000000000000000000000000000000000000000000081526004016102a091906109b0565b6001600160a01b03808516600090815260016020908152604080832093871683529290522082905580156103f957826001600160a01b0316846001600160a01b03167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b9258460405161058791906107d0565b60405180910390a350505050565b6001600160a01b0383166105c05780600260008282546105b591906109d4565b909155506106389050565b6001600160a01b03831660009081526020819052604090205481811015610619578381836040517fe450d38c0000000000000000000000000000000000000000000000000000000081526004016102a093929190610988565b6001600160a01b03841660009081526020819052604090209082900390555b6001600160a01b03821661065457600280548290039055610673565b6001600160a01b03821660009081526020819052604090208054820190555b816001600160a01b0316836001600160a01b03167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef836040516106b691906107d0565b60405180910390a3505050565b60005b838110156106de5781810151838201526020016106c6565b50506000910152565b60006106f1825190565b8084526020840193506107088185602086016106c3565b601f01601f19169290920192915050565b6020808252810161072a81846106e7565b9392505050565b60006001600160a01b038216610200565b61074b81610731565b811461075657600080fd5b50565b803561020081610742565b8061074b565b803561020081610764565b6000806040838503121561078b5761078b600080fd5b60006107978585610759565b92505060206107a88582860161076a565b9150509250929050565b8015155b82525050565b6020810161020082846107b2565b806107b6565b6020810161020082846107ca565b6000806000606084860312156107f6576107f6600080fd5b60006108028686610759565b935050602061081386828701610759565b92505060406108248682870161076a565b9150509250925092565b60ff81166107b6565b60208101610200828461082e565b60006020828403121561085a5761085a600080fd5b60006108668484610759565b949350505050565b6000806040838503121561088457610884600080fd5b60006108908585610759565b92505060206107a885828601610759565b634e487b7160e01b600052602260045260246000fd5b6002810460018216806108cb57607f821691505b6020821081036108dd576108dd6108a1565b50919050565b6020808252810161020081601f81527f4e6f7420616c6c6f77656420746f2072656164207468652062616c616e636500602082015260400190565b6020808252810161020081602181527f4e6f7420616c6c6f77656420746f20726561642074686520616c6c6f77616e6360208201527f6500000000000000000000000000000000000000000000000000000000000000604082015260600190565b6107b681610731565b60608101610996828661097f565b6109a360208301856107ca565b61086660408301846107ca565b60208101610200828461097f565b634e487b7160e01b600052601160045260246000fd5b80820180821115610200576102006109be56fea26469706673582212208605d75a03ddd59a97d9c8e27114de8317efd7bea6f2a10b229239dc96ed2d6d64736f6c63430008140033 \ No newline at end of file +6080604052600580546001600160a01b03191673deb34a740eca1ec42c8b8204cbec0ba34fdd27f31790553480156200003757600080fd5b5060405162000e2738038062000e278339810160408190526200005a91620001b4565b818160036200006a83826200032e565b5060046200007982826200032e565b5050505050620003fa565b634e487b7160e01b600052604160045260246000fd5b601f19601f83011681016001600160401b0381118282101715620000c257620000c262000084565b6040525050565b6000620000d560405190565b9050620000e382826200009a565b919050565b60006001600160401b0382111562000104576200010462000084565b601f19601f83011660200192915050565b60005b838110156200013257818101518382015260200162000118565b50506000910152565b6000620001526200014c84620000e8565b620000c9565b9050828152602081018484840111156200016f576200016f600080fd5b6200017c84828562000115565b509392505050565b600082601f8301126200019a576200019a600080fd5b8151620001ac8482602086016200013b565b949350505050565b60008060408385031215620001cc57620001cc600080fd5b82516001600160401b03811115620001e757620001e7600080fd5b620001f58582860162000184565b602085015190935090506001600160401b03811115620002185762000218600080fd5b620002268582860162000184565b9150509250929050565b634e487b7160e01b600052602260045260246000fd5b6002810460018216806200025b57607f821691505b60208210810362000270576200027062000230565b50919050565b600062000287620002848381565b90565b92915050565b620002988362000276565b815460001960089490940293841b1916921b91909117905550565b6000620002c28184846200028d565b505050565b81811015620002e657620002dd600082620002b3565b600101620002c7565b5050565b601f821115620002c2576000818152602090206020601f85010481016020851015620003135750805b620003276020601f860104830182620002c7565b5050505050565b81516001600160401b038111156200034a576200034a62000084565b62000356825462000246565b62000363828285620002ea565b506020601f8211600181146200039b5760008315620003825750848201515b600019600885021c198116600285021785555062000327565b600084815260208120601f198516915b82811015620003cd5787850151825560209485019460019092019101620003ab565b5084821015620003eb5783870151600019601f87166008021c191681555b50505050600202600101905550565b610a1d806200040a6000396000f3fe608060405234801561001057600080fd5b50600436106100a35760003560e01c8063313ce5671161007657806395d89b411161005b57806395d89b411461012c578063a9059cbb14610134578063dd62ed3e1461014757600080fd5b8063313ce5671461010a57806370a082311461011957600080fd5b806306fdde03146100a8578063095ea7b3146100c657806318160ddd146100e657806323b872dd146100f7575b600080fd5b6100b061015a565b6040516100bd9190610719565b60405180910390f35b6100d96100d4366004610775565b6101ec565b6040516100bd91906107bc565b6002545b6040516100bd91906107d0565b6100d96101053660046107de565b610206565b60126040516100bd9190610837565b6100ea610127366004610845565b61022a565b6100b06102a9565b6100d9610142366004610775565b6102b8565b6100ea61015536600461086e565b6102c6565b606060038054610169906108b7565b80601f0160208091040260200160405190810160405280929190818152602001828054610195906108b7565b80156101e25780601f106101b7576101008083540402835291602001916101e2565b820191906000526020600020905b8154815290600101906020018083116101c557829003601f168201915b5050505050905090565b6000336101fa818585610381565b60019150505b92915050565b600033610214858285610393565b61021f8585856103ff565b506001949350505050565b60006001600160a01b038216320361025a576001600160a01b038216600090815260208190526040902054610200565b6001600160a01b0382163303610288576001600160a01b038216600090815260208190526040902054610200565b60405162461bcd60e51b81526004016102a0906108e3565b60405180910390fd5b606060048054610169906108b7565b6000336101fa8185856103ff565b6000326001600160a01b03841614806102e75750326001600160a01b038316145b1561031a576001600160a01b038084166000908152600160209081526040808320938616835292905220545b9050610200565b336001600160a01b03841614806103395750336001600160a01b038316145b15610369576001600160a01b03808416600090815260016020908152604080832093861683529290522054610313565b60405162461bcd60e51b81526004016102a09061091e565b61038e8383836001610490565b505050565b600061039f84846102c6565b905060001981146103f957818110156103ea578281836040517ffb8f41b20000000000000000000000000000000000000000000000000000000081526004016102a093929190610988565b6103f984848484036000610490565b50505050565b6001600160a01b0383166104425760006040517f96c6fd1e0000000000000000000000000000000000000000000000000000000081526004016102a091906109b0565b6001600160a01b0382166104855760006040517fec442f050000000000000000000000000000000000000000000000000000000081526004016102a091906109b0565b61038e838383610595565b6001600160a01b0384166104d35760006040517fe602df050000000000000000000000000000000000000000000000000000000081526004016102a091906109b0565b6001600160a01b0383166105165760006040517f94280d620000000000000000000000000000000000000000000000000000000081526004016102a091906109b0565b6001600160a01b03808516600090815260016020908152604080832093871683529290522082905580156103f957826001600160a01b0316846001600160a01b03167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b9258460405161058791906107d0565b60405180910390a350505050565b6001600160a01b0383166105c05780600260008282546105b591906109d4565b909155506106389050565b6001600160a01b03831660009081526020819052604090205481811015610619578381836040517fe450d38c0000000000000000000000000000000000000000000000000000000081526004016102a093929190610988565b6001600160a01b03841660009081526020819052604090209082900390555b6001600160a01b03821661065457600280548290039055610673565b6001600160a01b03821660009081526020819052604090208054820190555b816001600160a01b0316836001600160a01b03167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef836040516106b691906107d0565b60405180910390a3505050565b60005b838110156106de5781810151838201526020016106c6565b50506000910152565b60006106f1825190565b8084526020840193506107088185602086016106c3565b601f01601f19169290920192915050565b6020808252810161072a81846106e7565b9392505050565b60006001600160a01b038216610200565b61074b81610731565b811461075657600080fd5b50565b803561020081610742565b8061074b565b803561020081610764565b6000806040838503121561078b5761078b600080fd5b60006107978585610759565b92505060206107a88582860161076a565b9150509250929050565b8015155b82525050565b6020810161020082846107b2565b806107b6565b6020810161020082846107ca565b6000806000606084860312156107f6576107f6600080fd5b60006108028686610759565b935050602061081386828701610759565b92505060406108248682870161076a565b9150509250925092565b60ff81166107b6565b60208101610200828461082e565b60006020828403121561085a5761085a600080fd5b60006108668484610759565b949350505050565b6000806040838503121561088457610884600080fd5b60006108908585610759565b92505060206107a885828601610759565b634e487b7160e01b600052602260045260246000fd5b6002810460018216806108cb57607f821691505b6020821081036108dd576108dd6108a1565b50919050565b6020808252810161020081601f81527f4e6f7420616c6c6f77656420746f2072656164207468652062616c616e636500602082015260400190565b6020808252810161020081602181527f4e6f7420616c6c6f77656420746f20726561642074686520616c6c6f77616e6360208201527f6500000000000000000000000000000000000000000000000000000000000000604082015260600190565b6107b681610731565b60608101610996828661097f565b6109a360208301856107ca565b61086660408301846107ca565b60208101610200828461097f565b634e487b7160e01b600052601160045260246000fd5b80820180821115610200576102006109be56fea2646970667358221220aba9443c9aef21109782a283d8f74e7df6eea5835c2ccc66f4ae7e5c36a42f3564736f6c63430008150033 \ No newline at end of file diff --git a/contracts/exported/src/common/WrappedERC20.sol/WrappedERC20.bin b/contracts/exported/src/common/WrappedERC20.sol/WrappedERC20.bin index 5528d1f6c8..7481263297 100644 --- a/contracts/exported/src/common/WrappedERC20.sol/WrappedERC20.bin +++ b/contracts/exported/src/common/WrappedERC20.sol/WrappedERC20.bin @@ -1 +1 @@ -6080604052600580546001600160a01b03191673deb34a740eca1ec42c8b8204cbec0ba34fdd27f31790553480156200003757600080fd5b5060405162001546380380620015468339810160408190526200005a916200029e565b8181818160036200006c838262000412565b5060046200007b828262000412565b5050505050620000b27fa49807205ce4d355092ef5a8a18f56e8913cf4a201fbe287825b095693c2177533620000bb60201b60201c565b505050620004de565b60008281526007602090815260408083206001600160a01b038516845290915281205460ff16620001645760008381526007602090815260408083206001600160a01b03861684529091529020805460ff191660011790556200011b3390565b6001600160a01b0316826001600160a01b0316847f2f8788117e7eff1d82e926ec794901d17c78024a50270940304540a733656f0d60405160405180910390a450600162000168565b5060005b92915050565b634e487b7160e01b600052604160045260246000fd5b601f19601f83011681016001600160401b0381118282101715620001ac57620001ac6200016e565b6040525050565b6000620001bf60405190565b9050620001cd828262000184565b919050565b60006001600160401b03821115620001ee57620001ee6200016e565b601f19601f83011660200192915050565b60005b838110156200021c57818101518382015260200162000202565b50506000910152565b60006200023c6200023684620001d2565b620001b3565b905082815260208101848484011115620002595762000259600080fd5b62000266848285620001ff565b509392505050565b600082601f830112620002845762000284600080fd5b81516200029684826020860162000225565b949350505050565b60008060408385031215620002b657620002b6600080fd5b82516001600160401b03811115620002d157620002d1600080fd5b620002df858286016200026e565b602085015190935090506001600160401b03811115620003025762000302600080fd5b62000310858286016200026e565b9150509250929050565b634e487b7160e01b600052602260045260246000fd5b6002810460018216806200034557607f821691505b6020821081036200035a576200035a6200031a565b50919050565b6000620001686200036e8381565b90565b6200037c8362000360565b815460001960089490940293841b1916921b91909117905550565b6000620003a681848462000371565b505050565b81811015620003ca57620003c160008262000397565b600101620003ab565b5050565b601f821115620003a6576000818152602090206020601f85010481016020851015620003f75750805b6200040b6020601f860104830182620003ab565b5050505050565b81516001600160401b038111156200042e576200042e6200016e565b6200043a825462000330565b62000447828285620003ce565b506020601f8211600181146200047f5760008315620004665750848201515b600019600885021c19811660028502178555506200040b565b600084815260208120601f198516915b82811015620004b157878501518255602094850194600190920191016200048f565b5084821015620004cf5783870151600019601f87166008021c191681555b50505050600202600101905550565b61105880620004ee6000396000f3fe608060405234801561001057600080fd5b50600436106101515760003560e01c806336568abe116100cd578063979005ad11610081578063a9059cbb11610066578063a9059cbb146102ce578063d547741f146102e1578063dd62ed3e146102f457600080fd5b8063979005ad146102b3578063a217fddf146102c657600080fd5b806375b238fc116100b257806375b238fc1461024b57806391d148541461027257806395d89b41146102ab57600080fd5b806336568abe1461022557806370a082311461023857600080fd5b80631dd319cb11610124578063248a9ca311610109578063248a9ca3146101e05780632f2ff15d14610203578063313ce5671461021657600080fd5b80631dd319cb146101b857806323b872dd146101cd57600080fd5b806301ffc9a71461015657806306fdde031461017f578063095ea7b31461019457806318160ddd146101a7575b600080fd5b610169610164366004610c49565b610307565b6040516101769190610c7c565b60405180910390f35b6101876103a0565b6040516101769190610ce0565b6101696101a2366004610d27565b610432565b6002545b6040516101769190610d6a565b6101cb6101c6366004610d27565b61044a565b005b6101696101db366004610d78565b6104b4565b6101ab6101ee366004610dc8565b60009081526007602052604090206001015490565b6101cb610211366004610de9565b6104da565b60126040516101769190610e25565b6101cb610233366004610de9565b610505565b6101ab610246366004610e33565b610551565b6101ab7fa49807205ce4d355092ef5a8a18f56e8913cf4a201fbe287825b095693c2177581565b610169610280366004610de9565b60009182526007602090815260408084206001600160a01b0393909316845291905290205460ff1690565b6101876105c7565b6101cb6102c1366004610d27565b6105d6565b6101ab600081565b6101696102dc366004610d27565b61060a565b6101cb6102ef366004610de9565b610618565b6101ab610302366004610e54565b61063d565b60007fffffffff0000000000000000000000000000000000000000000000000000000082167f7965db0b00000000000000000000000000000000000000000000000000000000148061039a57507f01ffc9a7000000000000000000000000000000000000000000000000000000007fffffffff000000000000000000000000000000000000000000000000000000008316145b92915050565b6060600380546103af90610e8c565b80601f01602080910402602001604051908101604052809291908181526020018280546103db90610e8c565b80156104285780601f106103fd57610100808354040283529160200191610428565b820191906000526020600020905b81548152906001019060200180831161040b57829003601f168201915b5050505050905090565b6000336104408185856106f8565b5060019392505050565b7fa49807205ce4d355092ef5a8a18f56e8913cf4a201fbe287825b095693c2177561047481610705565b8161047e84610551565b10156104a55760405162461bcd60e51b815260040161049c90610eec565b60405180910390fd5b6104af8383610712565b505050565b6000336104c285828561074c565b6104cd8585856107b2565b60019150505b9392505050565b6000828152600760205260409020600101546104f581610705565b6104ff8383610811565b50505050565b6001600160a01b0381163314610547576040517f6697b23200000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6104af82826108bf565b60006001600160a01b0382163203610581576001600160a01b03821660009081526020819052604090205461039a565b6001600160a01b03821633036105af576001600160a01b03821660009081526020819052604090205461039a565b60405162461bcd60e51b815260040161049c90610f2e565b6060600480546103af90610e8c565b7fa49807205ce4d355092ef5a8a18f56e8913cf4a201fbe287825b095693c2177561060081610705565b6104af8383610946565b6000336104408185856107b2565b60008281526007602052604090206001015461063381610705565b6104ff83836108bf565b6000326001600160a01b038416148061065e5750326001600160a01b038316145b15610691576001600160a01b038084166000908152600160209081526040808320938616835292905220545b905061039a565b336001600160a01b03841614806106b05750336001600160a01b038316145b156106e0576001600160a01b0380841660009081526001602090815260408083209386168352929052205461068a565b60405162461bcd60e51b815260040161049c90610f3e565b6104af838383600161097c565b61070f8133610a81565b50565b6001600160a01b03821661073c576000604051634b637e8f60e11b815260040161049c9190610fa8565b61074882600083610ae1565b5050565b6000610758848461063d565b905060001981146104ff57818110156107a3578281836040517ffb8f41b200000000000000000000000000000000000000000000000000000000815260040161049c93929190610fb6565b6104ff8484848403600061097c565b6001600160a01b0383166107dc576000604051634b637e8f60e11b815260040161049c9190610fa8565b6001600160a01b03821661080657600060405163ec442f0560e01b815260040161049c9190610fa8565b6104af838383610ae1565b60008281526007602090815260408083206001600160a01b038516845290915281205460ff166108b75760008381526007602090815260408083206001600160a01b03861684529091529020805460ff1916600117905561086f3390565b6001600160a01b0316826001600160a01b0316847f2f8788117e7eff1d82e926ec794901d17c78024a50270940304540a733656f0d60405160405180910390a450600161039a565b50600061039a565b60008281526007602090815260408083206001600160a01b038516845290915281205460ff16156108b75760008381526007602090815260408083206001600160a01b0386168085529252808320805460ff1916905551339286917ff6391f5c32d9c69d2a47ea670b442974b53935d1edc7fd64eb21e047a839171b9190a450600161039a565b6001600160a01b03821661097057600060405163ec442f0560e01b815260040161049c9190610fa8565b61074860008383610ae1565b6001600160a01b0384166109bf5760006040517fe602df0500000000000000000000000000000000000000000000000000000000815260040161049c9190610fa8565b6001600160a01b038316610a025760006040517f94280d6200000000000000000000000000000000000000000000000000000000815260040161049c9190610fa8565b6001600160a01b03808516600090815260016020908152604080832093871683529290522082905580156104ff57826001600160a01b0316846001600160a01b03167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92584604051610a739190610d6a565b60405180910390a350505050565b60008281526007602090815260408083206001600160a01b038516845290915290205460ff166107485780826040517fe2517d3f00000000000000000000000000000000000000000000000000000000815260040161049c929190610fde565b6001600160a01b038316610b0c578060026000828254610b01919061100f565b90915550610b849050565b6001600160a01b03831660009081526020819052604090205481811015610b65578381836040517fe450d38c00000000000000000000000000000000000000000000000000000000815260040161049c93929190610fb6565b6001600160a01b03841660009081526020819052604090209082900390555b6001600160a01b038216610ba057600280548290039055610bbf565b6001600160a01b03821660009081526020819052604090208054820190555b816001600160a01b0316836001600160a01b03167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef83604051610c029190610d6a565b60405180910390a3505050565b7fffffffff0000000000000000000000000000000000000000000000000000000081165b811461070f57600080fd5b803561039a81610c0f565b600060208284031215610c5e57610c5e600080fd5b6000610c6a8484610c3e565b949350505050565b8015155b82525050565b6020810161039a8284610c72565b60005b83811015610ca5578181015183820152602001610c8d565b50506000910152565b6000610cb8825190565b808452602084019350610ccf818560208601610c8a565b601f01601f19169290920192915050565b602080825281016104d38184610cae565b60006001600160a01b03821661039a565b610c3381610cf1565b803561039a81610d02565b80610c33565b803561039a81610d16565b60008060408385031215610d3d57610d3d600080fd5b6000610d498585610d0b565b9250506020610d5a85828601610d1c565b9150509250929050565b80610c76565b6020810161039a8284610d64565b600080600060608486031215610d9057610d90600080fd5b6000610d9c8686610d0b565b9350506020610dad86828701610d0b565b9250506040610dbe86828701610d1c565b9150509250925092565b600060208284031215610ddd57610ddd600080fd5b6000610c6a8484610d1c565b60008060408385031215610dff57610dff600080fd5b6000610e0b8585610d1c565b9250506020610d5a85828601610d0b565b60ff8116610c76565b6020810161039a8284610e1c565b600060208284031215610e4857610e48600080fd5b6000610c6a8484610d0b565b60008060408385031215610e6a57610e6a600080fd5b6000610e0b8585610d0b565b634e487b7160e01b600052602260045260246000fd5b600281046001821680610ea057607f821691505b602082108103610eb257610eb2610e76565b50919050565b60158152602081017f496e73756666696369656e742062616c616e63652e0000000000000000000000815290505b60200190565b6020808252810161039a81610eb8565b601f8152602081017f4e6f7420616c6c6f77656420746f2072656164207468652062616c616e63650081529050610ee6565b6020808252810161039a81610efc565b6020808252810161039a81602181527f4e6f7420616c6c6f77656420746f20726561642074686520616c6c6f77616e6360208201527f6500000000000000000000000000000000000000000000000000000000000000604082015260600190565b610c7681610cf1565b6020810161039a8284610f9f565b60608101610fc48286610f9f565b610fd16020830185610d64565b610c6a6040830184610d64565b60408101610fec8285610f9f565b6104d36020830184610d64565b634e487b7160e01b600052601160045260246000fd5b8082018082111561039a5761039a610ff956fea26469706673582212200ccb938df157c83569bb97b7cac53f726956a8f0a388597c60ae24feb0f05f4964736f6c63430008140033 \ No newline at end of file +6080604052600580546001600160a01b03191673deb34a740eca1ec42c8b8204cbec0ba34fdd27f31790553480156200003757600080fd5b5060405162001546380380620015468339810160408190526200005a916200029e565b8181818160036200006c838262000412565b5060046200007b828262000412565b5050505050620000b27fa49807205ce4d355092ef5a8a18f56e8913cf4a201fbe287825b095693c2177533620000bb60201b60201c565b505050620004de565b60008281526007602090815260408083206001600160a01b038516845290915281205460ff16620001645760008381526007602090815260408083206001600160a01b03861684529091529020805460ff191660011790556200011b3390565b6001600160a01b0316826001600160a01b0316847f2f8788117e7eff1d82e926ec794901d17c78024a50270940304540a733656f0d60405160405180910390a450600162000168565b5060005b92915050565b634e487b7160e01b600052604160045260246000fd5b601f19601f83011681016001600160401b0381118282101715620001ac57620001ac6200016e565b6040525050565b6000620001bf60405190565b9050620001cd828262000184565b919050565b60006001600160401b03821115620001ee57620001ee6200016e565b601f19601f83011660200192915050565b60005b838110156200021c57818101518382015260200162000202565b50506000910152565b60006200023c6200023684620001d2565b620001b3565b905082815260208101848484011115620002595762000259600080fd5b62000266848285620001ff565b509392505050565b600082601f830112620002845762000284600080fd5b81516200029684826020860162000225565b949350505050565b60008060408385031215620002b657620002b6600080fd5b82516001600160401b03811115620002d157620002d1600080fd5b620002df858286016200026e565b602085015190935090506001600160401b03811115620003025762000302600080fd5b62000310858286016200026e565b9150509250929050565b634e487b7160e01b600052602260045260246000fd5b6002810460018216806200034557607f821691505b6020821081036200035a576200035a6200031a565b50919050565b6000620001686200036e8381565b90565b6200037c8362000360565b815460001960089490940293841b1916921b91909117905550565b6000620003a681848462000371565b505050565b81811015620003ca57620003c160008262000397565b600101620003ab565b5050565b601f821115620003a6576000818152602090206020601f85010481016020851015620003f75750805b6200040b6020601f860104830182620003ab565b5050505050565b81516001600160401b038111156200042e576200042e6200016e565b6200043a825462000330565b62000447828285620003ce565b506020601f8211600181146200047f5760008315620004665750848201515b600019600885021c19811660028502178555506200040b565b600084815260208120601f198516915b82811015620004b157878501518255602094850194600190920191016200048f565b5084821015620004cf5783870151600019601f87166008021c191681555b50505050600202600101905550565b61105880620004ee6000396000f3fe608060405234801561001057600080fd5b50600436106101515760003560e01c806336568abe116100cd578063979005ad11610081578063a9059cbb11610066578063a9059cbb146102ce578063d547741f146102e1578063dd62ed3e146102f457600080fd5b8063979005ad146102b3578063a217fddf146102c657600080fd5b806375b238fc116100b257806375b238fc1461024b57806391d148541461027257806395d89b41146102ab57600080fd5b806336568abe1461022557806370a082311461023857600080fd5b80631dd319cb11610124578063248a9ca311610109578063248a9ca3146101e05780632f2ff15d14610203578063313ce5671461021657600080fd5b80631dd319cb146101b857806323b872dd146101cd57600080fd5b806301ffc9a71461015657806306fdde031461017f578063095ea7b31461019457806318160ddd146101a7575b600080fd5b610169610164366004610c49565b610307565b6040516101769190610c7c565b60405180910390f35b6101876103a0565b6040516101769190610ce0565b6101696101a2366004610d27565b610432565b6002545b6040516101769190610d6a565b6101cb6101c6366004610d27565b61044a565b005b6101696101db366004610d78565b6104b4565b6101ab6101ee366004610dc8565b60009081526007602052604090206001015490565b6101cb610211366004610de9565b6104da565b60126040516101769190610e25565b6101cb610233366004610de9565b610505565b6101ab610246366004610e33565b610551565b6101ab7fa49807205ce4d355092ef5a8a18f56e8913cf4a201fbe287825b095693c2177581565b610169610280366004610de9565b60009182526007602090815260408084206001600160a01b0393909316845291905290205460ff1690565b6101876105c7565b6101cb6102c1366004610d27565b6105d6565b6101ab600081565b6101696102dc366004610d27565b61060a565b6101cb6102ef366004610de9565b610618565b6101ab610302366004610e54565b61063d565b60007fffffffff0000000000000000000000000000000000000000000000000000000082167f7965db0b00000000000000000000000000000000000000000000000000000000148061039a57507f01ffc9a7000000000000000000000000000000000000000000000000000000007fffffffff000000000000000000000000000000000000000000000000000000008316145b92915050565b6060600380546103af90610e8c565b80601f01602080910402602001604051908101604052809291908181526020018280546103db90610e8c565b80156104285780601f106103fd57610100808354040283529160200191610428565b820191906000526020600020905b81548152906001019060200180831161040b57829003601f168201915b5050505050905090565b6000336104408185856106f8565b5060019392505050565b7fa49807205ce4d355092ef5a8a18f56e8913cf4a201fbe287825b095693c2177561047481610705565b8161047e84610551565b10156104a55760405162461bcd60e51b815260040161049c90610eec565b60405180910390fd5b6104af8383610712565b505050565b6000336104c285828561074c565b6104cd8585856107b2565b60019150505b9392505050565b6000828152600760205260409020600101546104f581610705565b6104ff8383610811565b50505050565b6001600160a01b0381163314610547576040517f6697b23200000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6104af82826108bf565b60006001600160a01b0382163203610581576001600160a01b03821660009081526020819052604090205461039a565b6001600160a01b03821633036105af576001600160a01b03821660009081526020819052604090205461039a565b60405162461bcd60e51b815260040161049c90610f2e565b6060600480546103af90610e8c565b7fa49807205ce4d355092ef5a8a18f56e8913cf4a201fbe287825b095693c2177561060081610705565b6104af8383610946565b6000336104408185856107b2565b60008281526007602052604090206001015461063381610705565b6104ff83836108bf565b6000326001600160a01b038416148061065e5750326001600160a01b038316145b15610691576001600160a01b038084166000908152600160209081526040808320938616835292905220545b905061039a565b336001600160a01b03841614806106b05750336001600160a01b038316145b156106e0576001600160a01b0380841660009081526001602090815260408083209386168352929052205461068a565b60405162461bcd60e51b815260040161049c90610f3e565b6104af838383600161097c565b61070f8133610a81565b50565b6001600160a01b03821661073c576000604051634b637e8f60e11b815260040161049c9190610fa8565b61074882600083610ae1565b5050565b6000610758848461063d565b905060001981146104ff57818110156107a3578281836040517ffb8f41b200000000000000000000000000000000000000000000000000000000815260040161049c93929190610fb6565b6104ff8484848403600061097c565b6001600160a01b0383166107dc576000604051634b637e8f60e11b815260040161049c9190610fa8565b6001600160a01b03821661080657600060405163ec442f0560e01b815260040161049c9190610fa8565b6104af838383610ae1565b60008281526007602090815260408083206001600160a01b038516845290915281205460ff166108b75760008381526007602090815260408083206001600160a01b03861684529091529020805460ff1916600117905561086f3390565b6001600160a01b0316826001600160a01b0316847f2f8788117e7eff1d82e926ec794901d17c78024a50270940304540a733656f0d60405160405180910390a450600161039a565b50600061039a565b60008281526007602090815260408083206001600160a01b038516845290915281205460ff16156108b75760008381526007602090815260408083206001600160a01b0386168085529252808320805460ff1916905551339286917ff6391f5c32d9c69d2a47ea670b442974b53935d1edc7fd64eb21e047a839171b9190a450600161039a565b6001600160a01b03821661097057600060405163ec442f0560e01b815260040161049c9190610fa8565b61074860008383610ae1565b6001600160a01b0384166109bf5760006040517fe602df0500000000000000000000000000000000000000000000000000000000815260040161049c9190610fa8565b6001600160a01b038316610a025760006040517f94280d6200000000000000000000000000000000000000000000000000000000815260040161049c9190610fa8565b6001600160a01b03808516600090815260016020908152604080832093871683529290522082905580156104ff57826001600160a01b0316846001600160a01b03167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92584604051610a739190610d6a565b60405180910390a350505050565b60008281526007602090815260408083206001600160a01b038516845290915290205460ff166107485780826040517fe2517d3f00000000000000000000000000000000000000000000000000000000815260040161049c929190610fde565b6001600160a01b038316610b0c578060026000828254610b01919061100f565b90915550610b849050565b6001600160a01b03831660009081526020819052604090205481811015610b65578381836040517fe450d38c00000000000000000000000000000000000000000000000000000000815260040161049c93929190610fb6565b6001600160a01b03841660009081526020819052604090209082900390555b6001600160a01b038216610ba057600280548290039055610bbf565b6001600160a01b03821660009081526020819052604090208054820190555b816001600160a01b0316836001600160a01b03167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef83604051610c029190610d6a565b60405180910390a3505050565b7fffffffff0000000000000000000000000000000000000000000000000000000081165b811461070f57600080fd5b803561039a81610c0f565b600060208284031215610c5e57610c5e600080fd5b6000610c6a8484610c3e565b949350505050565b8015155b82525050565b6020810161039a8284610c72565b60005b83811015610ca5578181015183820152602001610c8d565b50506000910152565b6000610cb8825190565b808452602084019350610ccf818560208601610c8a565b601f01601f19169290920192915050565b602080825281016104d38184610cae565b60006001600160a01b03821661039a565b610c3381610cf1565b803561039a81610d02565b80610c33565b803561039a81610d16565b60008060408385031215610d3d57610d3d600080fd5b6000610d498585610d0b565b9250506020610d5a85828601610d1c565b9150509250929050565b80610c76565b6020810161039a8284610d64565b600080600060608486031215610d9057610d90600080fd5b6000610d9c8686610d0b565b9350506020610dad86828701610d0b565b9250506040610dbe86828701610d1c565b9150509250925092565b600060208284031215610ddd57610ddd600080fd5b6000610c6a8484610d1c565b60008060408385031215610dff57610dff600080fd5b6000610e0b8585610d1c565b9250506020610d5a85828601610d0b565b60ff8116610c76565b6020810161039a8284610e1c565b600060208284031215610e4857610e48600080fd5b6000610c6a8484610d0b565b60008060408385031215610e6a57610e6a600080fd5b6000610e0b8585610d0b565b634e487b7160e01b600052602260045260246000fd5b600281046001821680610ea057607f821691505b602082108103610eb257610eb2610e76565b50919050565b60158152602081017f496e73756666696369656e742062616c616e63652e0000000000000000000000815290505b60200190565b6020808252810161039a81610eb8565b601f8152602081017f4e6f7420616c6c6f77656420746f2072656164207468652062616c616e63650081529050610ee6565b6020808252810161039a81610efc565b6020808252810161039a81602181527f4e6f7420616c6c6f77656420746f20726561642074686520616c6c6f77616e6360208201527f6500000000000000000000000000000000000000000000000000000000000000604082015260600190565b610c7681610cf1565b6020810161039a8284610f9f565b60608101610fc48286610f9f565b610fd16020830185610d64565b610c6a6040830184610d64565b60408101610fec8285610f9f565b6104d36020830184610d64565b634e487b7160e01b600052601160045260246000fd5b8082018082111561039a5761039a610ff956fea264697066735822122015a37e58522ca26bdd51e6ea23c5953be6e295684d318926ea7d989d6576fe1c64736f6c63430008150033 \ No newline at end of file diff --git a/contracts/exported/src/management/ManagementContract.sol/ManagementContract.bin b/contracts/exported/src/management/ManagementContract.sol/ManagementContract.bin index 6afeae8fcc..43167eca34 100644 --- a/contracts/exported/src/management/ManagementContract.sol/ManagementContract.bin +++ b/contracts/exported/src/management/ManagementContract.sol/ManagementContract.bin @@ -1 +1 @@ -608060405234801561001057600080fd5b5061001a3361001f565b610090565b7f9016d09d72d40fdae2fd8ceac6b6234c7706214fd39c1cd1e609a0528c19930080546001600160a01b031981166001600160a01b03848116918217845560405192169182907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e090600090a3505050565b614da480620000a06000396000f3fe60806040523480156200001157600080fd5b5060043610620002005760003560e01c80638129fc1c1162000119578063a25eb31c11620000af578063db5d91b1116200007a578063db5d91b114620004f9578063e34fbfc81462000528578063e874eb20146200053d578063f2fde38b146200055157600080fd5b8063a25eb31c14620004a3578063a4ab2faa14620004ba578063a52f433c14620004d1578063d4fab88714620004e257600080fd5b806387059edb11620000f057806387059edb14620004125780638da5cb5b146200042957806398077e86146200045a578063a1a227fa146200048057600080fd5b80638129fc1c14620003bb5780638236a7ba14620003c55780638415482614620003ec57600080fd5b806347665738116200019b5780636a30d26c11620001665780636a30d26c14620003775780636b9707d61462000390578063715018a614620003a75780637281099614620003b157600080fd5b806347665738146200030b5780635371a2161462000322578063568699c8146200033957806368e10383146200036057600080fd5b80632f0cb9e311620001dc5780632f0cb9e314620002575780633e60a22f146200028c57806343348b2f14620002d2578063440c953b146200030157600080fd5b80620ddd27146200020557806303e72e481462000227578063073b6ef31462000240575b600080fd5b6200020f600e5481565b6040516200021e919062001b7d565b60405180910390f35b6200023e6200023836600462001cd3565b62000568565b005b6200023e6200025136600462001e6e565b6200067b565b6200027d6200026836600462001f5b565b600c6020526000908152604090205460ff1681565b6040516200021e919062001f89565b620002c36200029d36600462001f99565b80516020818301810180516003825292820191909301209152546001600160a01b031681565b6040516200021e919062001fe5565b6200027d620002e336600462001ff5565b6001600160a01b031660009081526020819052604090205460ff1690565b6200020f60055481565b6200023e6200031c36600462001ff5565b62000899565b6200023e6200033336600462002088565b62000940565b620003506200034a36600462001f5b565b62000af6565b6040516200021e929190620021a4565b6200023e62000371366004620021c8565b62000b4f565b6200038162000bf8565b6040516200021e9190620022e9565b6200023e620003a136600462001ff5565b62000cdb565b6200023e62000d72565b6200023e62000d8a565b6200023e62000e15565b620003dc620003d636600462001f5b565b62000fff565b6040516200021e929190620022fc565b6200027d620003fd36600462001f5b565b600d6020526000908152604090205460ff1681565b620003dc6200042336600462001f5b565b620010ef565b7f9016d09d72d40fdae2fd8ceac6b6234c7706214fd39c1cd1e609a0528c199300546001600160a01b0316620002c3565b620004716200046b36600462001f5b565b62001169565b6040516200021e91906200230c565b600a5462000494906001600160a01b031681565b6040516200021e919062002369565b6200023e620004b4366004620023a7565b6200121e565b6200027d620004cb36600462002419565b62001334565b600454610100900460ff166200027d565b6200023e620004f336600462002470565b620013c6565b6200027d6200050a36600462001ff5565b6001600160a01b031660009081526001602052604090205460ff1690565b6200023e620005393660046200252e565b5050565b600b5462000494906001600160a01b031681565b6200023e6200056236600462001ff5565b620014af565b620005726200150d565b60006001600160a01b03166003836040516200058f9190620025a1565b908152604051908190036020019020546001600160a01b031603620005ee57600280546001810182556000919091527f405787fa12a823e0f2b7631cc41b3ba8828b3321ca811111fa75cd3aa3bb5ace01620005ec838262002691565b505b80600383604051620006019190620025a1565b90815260405190819003602001812080546001600160a01b039390931673ffffffffffffffffffffffffffffffffffffffff19909316929092179091557f17b2f9f5748931099ffee882b5b64f4a560b5c55da9b4f4e396dae3bb9f98cb5906200066f90849084906200275e565b60405180910390a15050565b6000828152600860205260409020548114620006b45760405162461bcd60e51b8152600401620006ab90620027b5565b60405180910390fd5b60006200072689898989604051602001620006d3949392919062002825565b6040516020818303038152906040528051906020012086868080601f0160208091040260200160405190810160405280939291908181526020018383808284376000920191909152506200158592505050565b6001600160a01b03811660009081526020819052604090205490915060ff16620007645760405162461bcd60e51b8152600401620006ab90620028a4565b600e8990556000805b87518110156200087457600b5488516001600160a01b039091169063b6aed0cb908a9084908110620007a357620007a3620028b6565b6020026020010151620007b690620028d7565b426040518363ffffffff1660e01b8152600401620007d692919062002911565b600060405180830381600087803b158015620007f157600080fd5b505af115801562000806573d6000803e3d6000fd5b5050505081888281518110620008205762000820620028b6565b60200260200101516200083390620028d7565b6040516020016200084692919062002911565b60405160208183030381529060405280519060200120915080806200086b9062002946565b9150506200076d565b506000908152600d60205260409020805460ff19166001179055505050505050505050565b620008a36200150d565b6001600160a01b03811660009081526020819052604090205460ff16620008de5760405162461bcd60e51b8152600401620006ab90620028a4565b6001600160a01b038116600090815260016020819052604091829020805460ff19169091179055517ffe64c7181f0fc60e300dc02cca368cdfa94d7ca45902de3b9a9d80070e760936906200093590839062001fe5565b60405180910390a150565b600b546040517fb201246f0000000000000000000000000000000000000000000000000000000081526001600160a01b039091169063b201246f906200099190879087908790879060040162002a9b565b60006040518083038186803b158015620009aa57600080fd5b505afa158015620009bf573d6000803e3d6000fd5b50505050600084604051602001620009d8919062002ada565b60408051601f1981840301815291815281516020928301206000818152600c90935291205490915060ff161562000a235760405162461bcd60e51b8152600401620006ab9062002b1d565b6001600c60008760405160200162000a3c919062002ada565b60408051808303601f190181529181528151602092830120835282820193909352908201600020805460ff191693151593909317909255600a546001600160a01b0316916399a3ad219162000a979190890190890162001ff5565b87604001356040518363ffffffff1660e01b815260040162000abb92919062002b2f565b600060405180830381600087803b15801562000ad657600080fd5b505af115801562000aeb573d6000803e3d6000fd5b505050505050505050565b60408051606080820183526000808352602083019190915291810182905260008062000b2285620010ef565b915091508162000b385760009590945092505050565b600094855260086020526040909420549492505050565b60045460ff161562000b755760405162461bcd60e51b8152600401620006ab9062002b99565b60048054600160ff1991821681179092556001600160a01b0387166000908152602081815260408083208054851686179055908490529081902080549092169092179055517ffe64c7181f0fc60e300dc02cca368cdfa94d7ca45902de3b9a9d80070e7609369062000be990879062001fe5565b60405180910390a15050505050565b60606002805480602002602001604051908101604052809291908181526020016000905b8282101562000cd257838290600052602060002001805462000c3e90620025c3565b80601f016020809104026020016040519081016040528092919081815260200182805462000c6c90620025c3565b801562000cbd5780601f1062000c915761010080835404028352916020019162000cbd565b820191906000526020600020905b81548152906001019060200180831162000c9f57829003601f168201915b50505050508152602001906001019062000c1c565b50505050905090565b62000ce56200150d565b6001600160a01b03811660009081526001602052604090205460ff1662000d205760405162461bcd60e51b8152600401620006ab9062002bde565b6001600160a01b03811660009081526001602052604090819020805460ff19169055517f0f279980343c7ca542fde9fa5396555068efb5cd560d9cf9c191aa2911079b47906200093590839062001fe5565b62000d7c6200150d565b62000d886000620015b5565b565b62000d946200150d565b600a546040517f36d2da900000000000000000000000000000000000000000000000000000000081526001600160a01b03909116906336d2da909062000ddf90339060040162001fe5565b600060405180830381600087803b15801562000dfa57600080fd5b505af115801562000e0f573d6000803e3d6000fd5b50505050565b7ff0c57e16840df040f15088dc2f81fe391c3923bec73e23a9662efc9c229c6a00805468010000000000000000810460ff16159067ffffffffffffffff1660008115801562000e615750825b905060008267ffffffffffffffff16600114801562000e7f5750303b155b90508115801562000e8e575080155b1562000ec6576040517ff92ee8a900000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b845467ffffffffffffffff19166001178555831562000efb57845468ff00000000000000001916680100000000000000001785555b62000f063362001633565b6000600555600160095560405162000f1e9062001b67565b604051809103906000f08015801562000f3b573d6000803e3d6000fd5b50600b80546001600160a01b039290921673ffffffffffffffffffffffffffffffffffffffff199283168117909155600a805490921681179091556040517fbd726cf82ac9c3260b1495107182e336e0654b25c10915648c0cc15b2bb72cbf9162000fa69162001fe5565b60405180910390a1831562000ff857845468ff0000000000000000191685556040517fc7f505b2f371ae2175ee4913f4499e1f2633a7b5936321eed1cdaeb6115181d29062000be99060019062002c0e565b5050505050565b6040805160608082018352600080835260208084018390528385018290528582526006815284822085519384019095528454835260018501805492958694939092840191906200104f90620025c3565b80601f01602080910402602001604051908101604052809291908181526020018280546200107d90620025c3565b8015620010ce5780601f10620010a257610100808354040283529160200191620010ce565b820191906000526020600020905b815481529060010190602001808311620010b057829003601f168201915b50505091835250506002919091015460209091015280519094149492505050565b604080516060808201835260008083526020830191909152918101829052600083815260076020526040812054908190036200115457505060408051606081018252600080825282516020818101855282825283015291810182905290939092509050565b6200115f8162000fff565b9250925050915091565b600281815481106200117a57600080fd5b9060005260206000200160009150905080546200119790620025c3565b80601f0160208091040260200160405190810160405280929190818152602001828054620011c590620025c3565b8015620012165780601f10620011ea5761010080835404028352916020019162001216565b820191906000526020600020905b815481529060010190602001808311620011f857829003601f168201915b505050505081565b600062001270833562001235602086018662002c1e565b8080601f0160208091040260200160405190810160405280939291908181526020018383808284376000920191909152506200158592505050565b6001600160a01b03811660009081526020819052604090205490915060ff16620012ae5760405162461bcd60e51b8152600401620006ab90620028a4565b6001600160a01b03811660009081526001602052604090205460ff16620012e95760405162461bcd60e51b8152600401620006ab9062002bde565b620012f48362001648565b6040517fd6555bff8670bd3008dc064c30bb56d6ac7cb14ae801e36146fe4e7c6a504a5890620013279085359062001b7d565b60405180910390a1505050565b600080805b8351811015620013ad5781848281518110620013595762001359620028b6565b60200260200101516200136c90620028d7565b6040516020016200137f92919062002911565b6040516020818303038152906040528051906020012091508080620013a49062002946565b91505062001339565b506000908152600d602052604090205460ff1692915050565b6001600160a01b03851660009081526020819052604090205460ff1680620014025760405162461bcd60e51b8152600401620006ab9062002cd2565b8115620014845760006200143b878786604051602001620014269392919062002d13565b604051602081830303815290604052620016f5565b905060006200144b828762001585565b9050876001600160a01b0316816001600160a01b031614620014815760405162461bcd60e51b8152600401620006ab9062002d96565b50505b5050506001600160a01b039091166000908152602081905260409020805460ff191660011790555050565b620014b96200150d565b6001600160a01b038116620014ff5760006040517f1e4fbdf7000000000000000000000000000000000000000000000000000000008152600401620006ab919062001fe5565b6200150a81620015b5565b50565b33620015407f9016d09d72d40fdae2fd8ceac6b6234c7706214fd39c1cd1e609a0528c199300546001600160a01b031690565b6001600160a01b03161462000d8857336040517f118cdaa7000000000000000000000000000000000000000000000000000000008152600401620006ab919062001fe5565b60008060008062001597868662001734565b925092509250620015a9828262001785565b50909150505b92915050565b7f9016d09d72d40fdae2fd8ceac6b6234c7706214fd39c1cd1e609a0528c199300805473ffffffffffffffffffffffffffffffffffffffff1981166001600160a01b03848116918217845560405192169182907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e090600090a3505050565b6200163d6200189b565b6200150a8162001903565b80356000908152600660205260409020819062001666828262002f39565b505060095460009081526007602052604090208135908190556200168c60014362002f45565b40604051602001620016a092919062002911565b60408051601f198184030181529181528151602092830120600980546000908152600890945291832055805491620016d88362002946565b9190505550600554816040013511156200150a5760400135600555565b60006200170382516200190d565b826040516020016200171792919062002f5b565b604051602081830303815290604052805190602001209050919050565b60008060008351604103620017725760208401516040850151606086015160001a6200176388828585620019b5565b9550955095505050506200177e565b50508151600091506002905b9250925092565b60008260038111156200179c576200179c62002f9b565b03620017a6575050565b6001826003811115620017bd57620017bd62002f9b565b03620017f5576040517ff645eedf00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b60028260038111156200180c576200180c62002f9b565b0362001848576040517ffce698f7000000000000000000000000000000000000000000000000000000008152620006ab90829060040162001b7d565b60038260038111156200185f576200185f62002f9b565b036200053957806040517fd78bce0c000000000000000000000000000000000000000000000000000000008152600401620006ab919062001b7d565b7ff0c57e16840df040f15088dc2f81fe391c3923bec73e23a9662efc9c229c6a005468010000000000000000900460ff1662000d88576040517fd7e6bcf800000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b620014b96200189b565b606060006200191c8362001a7e565b600101905060008167ffffffffffffffff8111156200193f576200193f62001b8d565b6040519080825280601f01601f1916602001820160405280156200196a576020820181803683370190505b5090508181016020015b600019017f3031323334353637383961626364656600000000000000000000000000000000600a86061a8153600a850494508462001974575b509392505050565b600080807f7fffffffffffffffffffffffffffffff5d576e7357a4501ddfe92f46681b20a0841115620019f2575060009150600390508262001a74565b60006001888888886040516000815260200160405260405162001a19949392919062002fbb565b6020604051602081039080840390855afa15801562001a3c573d6000803e3d6000fd5b5050604051601f1901519150506001600160a01b03811662001a6a5750600092506001915082905062001a74565b9250600091508190505b9450945094915050565b6000807a184f03e93ff9f4daa797ed6e38ed64bf6a1f010000000000000000831062001ac8577a184f03e93ff9f4daa797ed6e38ed64bf6a1f010000000000000000830492506040015b6d04ee2d6d415b85acef8100000000831062001af5576d04ee2d6d415b85acef8100000000830492506020015b662386f26fc10000831062001b1457662386f26fc10000830492506010015b6305f5e100831062001b2d576305f5e100830492506008015b612710831062001b4257612710830492506004015b6064831062001b55576064830492506002015b600a8310620015af5760010192915050565b611d768062002ff983390190565b805b82525050565b60208101620015af828462001b75565b634e487b7160e01b600052604160045260246000fd5b601f19601f830116810181811067ffffffffffffffff8211171562001bcc5762001bcc62001b8d565b6040525050565b600062001bdf60405190565b905062001bed828262001ba3565b919050565b600067ffffffffffffffff82111562001c0f5762001c0f62001b8d565b601f19601f83011660200192915050565b82818337506000910152565b600062001c4362001c3d8462001bf2565b62001bd3565b90508281526020810184848401111562001c605762001c60600080fd5b620019ad84828562001c20565b600082601f83011262001c835762001c83600080fd5b813562001c9584826020860162001c2c565b949350505050565b60006001600160a01b038216620015af565b62001cba8162001c9d565b81146200150a57600080fd5b8035620015af8162001caf565b6000806040838503121562001ceb5762001ceb600080fd5b823567ffffffffffffffff81111562001d075762001d07600080fd5b62001d158582860162001c6d565b925050602062001d288582860162001cc6565b9150509250929050565b8062001cba565b8035620015af8162001d32565b600067ffffffffffffffff82111562001d635762001d6362001b8d565b5060209081020190565b600062001d7e62001c3d8462001d46565b8381529050602080820190840283018581111562001d9f5762001d9f600080fd5b835b8181101562001de457803567ffffffffffffffff81111562001dc65762001dc6600080fd5b850162001dd4888262001c6d565b8452506020928301920162001da1565b5050509392505050565b600082601f83011262001e045762001e04600080fd5b813562001c9584826020860162001d6d565b60008083601f84011262001e2d5762001e2d600080fd5b50813567ffffffffffffffff81111562001e4a5762001e4a600080fd5b60208301915083600182028301111562001e675762001e67600080fd5b9250929050565b60008060008060008060008060e0898b03121562001e8f5762001e8f600080fd5b600062001e9d8b8b62001d39565b985050602062001eb08b828c0162001d39565b975050604062001ec38b828c0162001d39565b965050606089013567ffffffffffffffff81111562001ee55762001ee5600080fd5b62001ef38b828c0162001dee565b955050608089013567ffffffffffffffff81111562001f155762001f15600080fd5b62001f238b828c0162001e16565b945094505060a062001f388b828c0162001d39565b92505060c062001f4b8b828c0162001d39565b9150509295985092959890939650565b60006020828403121562001f725762001f72600080fd5b600062001c95848462001d39565b80151562001b77565b60208101620015af828462001f80565b60006020828403121562001fb05762001fb0600080fd5b813567ffffffffffffffff81111562001fcc5762001fcc600080fd5b62001c958482850162001c6d565b62001b778162001c9d565b60208101620015af828462001fda565b6000602082840312156200200c576200200c600080fd5b600062001c95848462001cc6565b600060808284031215620020315762002031600080fd5b50919050565b60008083601f8401126200204e576200204e600080fd5b50813567ffffffffffffffff8111156200206b576200206b600080fd5b60208301915083602082028301111562001e675762001e67600080fd5b60008060008060c08587031215620020a357620020a3600080fd5b6000620020b187876200201a565b945050608085013567ffffffffffffffff811115620020d357620020d3600080fd5b620020e18782880162002037565b935093505060a0620020f68782880162001d39565b91505092959194509250565b60005b838110156200211f57818101518382015260200162002105565b50506000910152565b600062002133825190565b8084526020840193506200214c81856020860162002102565b601f01601f19169290920192915050565b8051600090606084019062002173858262001b75565b50602083015184820360208601526200218d828262002128565b9150506040830151620019ad604086018262001b75565b60408101620021b4828562001b75565b818103602083015262001c9581846200215d565b600080600080600060608688031215620021e557620021e5600080fd5b6000620021f3888862001cc6565b955050602086013567ffffffffffffffff811115620022155762002215600080fd5b620022238882890162001e16565b9450945050604086013567ffffffffffffffff811115620022475762002247600080fd5b620022558882890162001e16565b92509250509295509295909350565b600062002272838362002128565b9392505050565b60200190565b60006200228a825190565b80845260208401935083602082028501620022a58560200190565b60005b84811015620022dd5783830388528151620022c4848262002264565b93505060208201602098909801979150600101620022a8565b50909695505050505050565b602080825281016200227281846200227f565b60408101620021b4828562001f80565b6020808252810162002272818462002128565b6000620015af6001600160a01b03831662002338565b90565b6001600160a01b031690565b6000620015af826200231f565b6000620015af8262002344565b62001b778162002351565b60208101620015af82846200235e565b600060608284031215620020315762002031600080fd5b600060208284031215620020315762002031600080fd5b60008060408385031215620023bf57620023bf600080fd5b823567ffffffffffffffff811115620023db57620023db600080fd5b620023e98582860162002379565b925050602083013567ffffffffffffffff8111156200240b576200240b600080fd5b62001d288582860162002390565b600060208284031215620024305762002430600080fd5b813567ffffffffffffffff8111156200244c576200244c600080fd5b62001c958482850162001dee565b80151562001cba565b8035620015af816200245a565b600080600080600060a086880312156200248d576200248d600080fd5b60006200249b888862001cc6565b9550506020620024ae8882890162001cc6565b945050604086013567ffffffffffffffff811115620024d057620024d0600080fd5b620024de8882890162001c6d565b935050606086013567ffffffffffffffff811115620025005762002500600080fd5b6200250e8882890162001c6d565b9250506080620025218882890162002463565b9150509295509295909350565b60008060208385031215620025465762002546600080fd5b823567ffffffffffffffff811115620025625762002562600080fd5b620025708582860162001e16565b92509250509250929050565b600062002587825190565b6200259781856020860162002102565b9290920192915050565b620015af81836200257c565b634e487b7160e01b600052602260045260246000fd5b600281046001821680620025d857607f821691505b602082108103620020315762002031620025ad565b6000620015af620023358381565b6200260683620025ed565b815460001960089490940293841b1916921b91909117905550565b600062002630818484620025fb565b505050565b8181101562000539576200264b60008262002621565b60010162002635565b601f82111562002630576000818152602090206020601f850104810160208510156200267d5750805b62000ff86020601f86010483018262002635565b815167ffffffffffffffff811115620026ae57620026ae62001b8d565b620026ba8254620025c3565b620026c782828562002654565b506020601f821160018114620026ff5760008315620026e65750848201515b600019600885021c198116600285021785555062000ff8565b600084815260208120601f198516915b828110156200273157878501518255602094850194600190920191016200270f565b50848210156200274f5783870151600019601f87166008021c191681555b50505050600202600101905550565b6040808252810162002771818562002128565b905062002272602083018462001fda565b600e8152602081017f496e76616c696420666f726b49440000000000000000000000000000000000008152905062002279565b60208082528101620015af8162002782565b6000620027d2825190565b80845260208401935083602082028501620027ed8560200190565b60005b84811015620022dd57838303885281516200280c848262002264565b93505060208201602098909801979150600101620027f0565b6080810162002835828762001b75565b62002844602083018662001b75565b62002853604083018562001b75565b8181036060830152620028678184620027c7565b9695505050505050565b60168152602081017f656e636c6176654944206e6f74206174746573746564000000000000000000008152905062002279565b60208082528101620015af8162002871565b634e487b7160e01b600052603260045260246000fd5b6000620015af825190565b6000620028e2825190565b60208301620028f181620028cc565b925050602081101562002031576000196020919091036008021b16919050565b6040810162002921828562001b75565b62002272602083018462001b75565b634e487b7160e01b600052601160045260246000fd5b6000600182016200295b576200295b62002930565b5060010190565b506000620015af602083018362001cc6565b506000620015af602083018362001d39565b67ffffffffffffffff811662001cba565b8035620015af8162002986565b506000620015af602083018362002997565b67ffffffffffffffff811662001b77565b620029d3818062002962565b620029df838262001fda565b50620029ef602082018262002962565b620029fe602084018262001fda565b5062002a0e604082018262002974565b62002a1d604084018262001b75565b5062002a2d6060820182620029a4565b620026306060840182620029b6565b82818337505050565b81835260208301925060007f07ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff83111562002a825762002a82600080fd5b60208302925062002a9583858462002a3c565b50500190565b60c0810162002aab8287620029c7565b818103608083015262002ac081858762002a45565b905062002ad160a083018462001b75565b95945050505050565b60808101620015af8284620029c7565b60188152602081017f7769746864726177616c20616c7265616479207370656e7400000000000000008152905062002279565b60208082528101620015af8162002aea565b6040810162002921828562001fda565b60228152602081017f6e6574776f726b2073656372657420616c726561647920696e697469616c697a81527f6564000000000000000000000000000000000000000000000000000000000000602082015290505b60400190565b60208082528101620015af8162002b3f565b60198152602081017f656e636c6176654944206e6f7420612073657175656e636572000000000000008152905062002279565b60208082528101620015af8162002bab565b600067ffffffffffffffff8216620015af565b62001b778162002bf0565b60208101620015af828462002c03565b6000808335601e193685900301811262002c3b5762002c3b600080fd5b8301915050803567ffffffffffffffff81111562002c5c5762002c5c600080fd5b60208201915060018102360382131562001e675762001e67600080fd5b60238152602081017f726573706f6e64696e67206174746573746572206973206e6f7420617474657381527f74656400000000000000000000000000000000000000000000000000000000006020820152905062002b93565b60208082528101620015af8162002c79565b6000620015af8260601b90565b6000620015af8262002ce4565b62001b7762002d0d8262001c9d565b62002cf1565b62002d1f818562002cfe565b60140162002d2e818462002cfe565b60140162001c9581836200257c565b602c8152602081017f63616c63756c61746564206164647265737320616e642061747465737465724981527f4420646f6e74206d6174636800000000000000000000000000000000000000006020820152905062002b93565b60208082528101620015af8162002d3d565b60008135620015af8162001d32565b600081620015af565b62002dcb8262002db7565b62002dda620023358262002db7565b8255505050565b8267ffffffffffffffff81111562002dfd5762002dfd62001b8d565b62002e098254620025c3565b62002e1682828562002654565b506000601f82116001811462002e4e576000831562002e355750848201355b600019600885021c198116600285021785555062002eab565b600084815260209020601f19841690835b8281101562002e81578785013582556020948501946001909201910162002e5f565b508482101562002e9f57600019601f86166008021c19848801351681555b50506001600284020184555b505050505050565b6200263083838362002de1565b62002ecb82620025ed565b8062002dda565b80828062002ee08162002da8565b905062002eee818462002dc0565b505050600181016020830162002f05818562002c1e565b915062002f1482828562002eb3565b50505060028101604083018062002f2b8262002da8565b905062000ff8818462002ec0565b62000539828262002ed2565b81810381811115620015af57620015af62002930565b7f19457468657265756d205369676e6564204d6573736167653a0a0000000000008152601a0162002f8d81846200257c565b90506200227281836200257c565b634e487b7160e01b600052602160045260246000fd5b60ff811662001b77565b6080810162002fcb828762001b75565b62002fda602083018662002fb1565b62002fe9604083018562001b75565b62002ad1606083018462001b7556fe60806040523480156200001157600080fd5b50338062000040576000604051631e4fbdf760e01b8152600401620000379190620000c6565b60405180910390fd5b6200004b8162000052565b50620000d6565b600080546001600160a01b038381166001600160a01b0319831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b60006001600160a01b0382165b92915050565b620000c081620000a2565b82525050565b60208101620000af8284620000b5565b611c9080620000e66000396000f3fe6080604052600436106100e15760003560e01c80639730886d1161007f578063b201246f11610059578063b201246f146102d4578063b6aed0cb146102f4578063e138a8d214610314578063f2fde38b1461033457610155565b80639730886d1461026757806399a3ad2114610287578063b1454caa146102a757610155565b8063346633fb116100bb578063346633fb146101f957806336d2da901461020c578063715018a61461022c5780638da5cb5b1461024157610155565b80630fcfbd11146101765780630fe9188e146101ac57806333a88c72146101cc57610155565b36610155576040517f346633fb000000000000000000000000000000000000000000000000000000008152309063346633fb9034906101269033908390600401610bea565b6000604051808303818588803b15801561013f57600080fd5b505af1158015610153573d6000803e3d6000fd5b005b60405162461bcd60e51b815260040161016d90610c39565b60405180910390fd5b34801561018257600080fd5b50610196610191366004610c64565b610354565b6040516101a39190610c9f565b60405180910390f35b3480156101b857600080fd5b506101536101c7366004610cc5565b6103b4565b3480156101d857600080fd5b506101ec6101e7366004610c64565b6103fa565b6040516101a39190610cee565b610153610207366004610d10565b61044d565b34801561021857600080fd5b50610153610227366004610d4d565b6104d7565b34801561023857600080fd5b50610153610556565b34801561024d57600080fd5b506000546001600160a01b03166040516101a39190610d6e565b34801561027357600080fd5b50610153610282366004610d7c565b61056a565b34801561029357600080fd5b506101536102a2366004610d10565b610666565b3480156102b357600080fd5b506102c76102c2366004610e35565b6106e6565b6040516101a39190610ec9565b3480156102e057600080fd5b506101536102ef366004610f37565b61073f565b34801561030057600080fd5b5061015361030f366004610fa7565b610840565b34801561032057600080fd5b5061015361032f366004610fc9565b610886565b34801561034057600080fd5b5061015361034f366004610d4d565b6109c9565b6000808260405160200161036891906111e6565b60408051601f19818403018152918152815160209283012060008181526001909352912054909150806103ad5760405162461bcd60e51b815260040161016d90611235565b9392505050565b6103bc610a20565b60008181526004602052604081205490036103e95760405162461bcd60e51b815260040161016d90611277565b600090815260046020526040812055565b6000808260405160200161040e91906111e6565b60408051601f1981840301815291815281516020928301206000818152600190935291205490915080158015906104455750428111155b949350505050565b60003411801561045c57508034145b6104785760405162461bcd60e51b815260040161016d906112df565b600061048333610a66565b9050826001600160a01b0316336001600160a01b03167f50c536ac33a920f00755865b831d17bf4cff0b2e0345f65b16d52bfc004068b634846040516104ca9291906112ef565b60405180910390a3505050565b6104df610a20565b6000816001600160a01b03164760405160006040518083038185875af1925050503d806000811461052c576040519150601f19603f3d011682016040523d82523d6000602084013e610531565b606091505b50509050806105525760405162461bcd60e51b815260040161016d9061133c565b5050565b61055e610a20565b6105686000610ac4565b565b610572610a20565b600061057e8242611362565b905060008360405160200161059391906111e6565b60408051601f19818403018152918152815160209283012060008181526001909352912054909150156105d85760405162461bcd60e51b815260040161016d906113cd565b60008181526001602090815260408220849055600291906105fb90870187610d4d565b6001600160a01b03168152602081019190915260400160009081209061062760808701606088016113dd565b63ffffffff1681526020808201929092526040016000908120805460018101825590825291902085916004020161065e8282611844565b505050505050565b61066e610a20565b6000826001600160a01b03168260405160006040518083038185875af1925050503d80600081146106bb576040519150601f19603f3d011682016040523d82523d6000602084013e6106c0565b606091505b50509050806106e15760405162461bcd60e51b815260040161016d9061133c565b505050565b60006106f133610a66565b90507fb93c37389233beb85a3a726c3f15c2d15533ee74cb602f20f490dfffef7759373382888888888860405161072e979695949392919061184e565b60405180910390a195945050505050565b600081815260046020526040812054900361076c5760405162461bcd60e51b815260040161016d90611909565b60008181526004602052604090205442101561079a5760405162461bcd60e51b815260040161016d90611955565b6000846040516020016107ad91906119da565b604051602081830303815290604052805190602001206040516020016107d39190611a1a565b60405160208183030381529060405280519060200120905061081d848484846040516020016108029190611a39565b60405160208183030381529060405280519060200120610b2c565b6108395760405162461bcd60e51b815260040161016d90611aa3565b5050505050565b610848610a20565b600082815260046020526040902054156108745760405162461bcd60e51b815260040161016d90611b0b565b60009182526004602052604090912055565b60008181526004602052604081205490036108b35760405162461bcd60e51b815260040161016d90611909565b6000818152600460205260409020544210156108e15760405162461bcd60e51b815260040161016d90611955565b60006108f06020860186610d4d565b6109006040870160208801611b1b565b61091060608801604089016113dd565b6109206080890160608a016113dd565b61092d60808a018a611556565b61093d60c08c0160a08d01611b3c565b604051602001610953979695949392919061184e565b60405160208183030381529060405280519060200120905060008160405160200161097e9190611b8f565b6040516020818303038152906040528051906020012090506109ad858585846040516020016108029190611a39565b61065e5760405162461bcd60e51b815260040161016d90611bf7565b6109d1610a20565b6001600160a01b038116610a145760006040517f1e4fbdf700000000000000000000000000000000000000000000000000000000815260040161016d9190610d6e565b610a1d81610ac4565b50565b6000546001600160a01b0316331461056857336040517f118cdaa700000000000000000000000000000000000000000000000000000000815260040161016d9190610d6e565b6001600160a01b0381166000908152600360205260408120805467ffffffffffffffff169160019190610a998385611c07565b92506101000a81548167ffffffffffffffff021916908367ffffffffffffffff160217905550919050565b600080546001600160a01b038381167fffffffffffffffffffffffff0000000000000000000000000000000000000000831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b600082610b3a868685610b44565b1495945050505050565b600081815b84811015610b8757610b7382878784818110610b6757610b67611c2b565b90506020020135610b90565b915080610b7f81611c41565b915050610b49565b50949350505050565b6000818310610bac576000828152602084905260409020610bbb565b60008381526020839052604090205b90505b92915050565b60006001600160a01b038216610bbe565b610bde81610bc4565b82525050565b80610bde565b60408101610bf88285610bd5565b6103ad6020830184610be4565b600b8152602081017f756e737570706f72746564000000000000000000000000000000000000000000815290505b60200190565b60208082528101610bbe81610c05565b600060c08284031215610c5e57610c5e600080fd5b50919050565b600060208284031215610c7957610c79600080fd5b813567ffffffffffffffff811115610c9357610c93600080fd5b61044584828501610c49565b60208101610bbe8284610be4565b805b8114610a1d57600080fd5b8035610bbe81610cad565b600060208284031215610cda57610cda600080fd5b60006104458484610cba565b801515610bde565b60208101610bbe8284610ce6565b610caf81610bc4565b8035610bbe81610cfc565b60008060408385031215610d2657610d26600080fd5b6000610d328585610d05565b9250506020610d4385828601610cba565b9150509250929050565b600060208284031215610d6257610d62600080fd5b60006104458484610d05565b60208101610bbe8284610bd5565b60008060408385031215610d9257610d92600080fd5b823567ffffffffffffffff811115610dac57610dac600080fd5b610d3285828601610c49565b63ffffffff8116610caf565b8035610bbe81610db8565b60008083601f840112610de457610de4600080fd5b50813567ffffffffffffffff811115610dff57610dff600080fd5b602083019150836001820283011115610e1a57610e1a600080fd5b9250929050565b60ff8116610caf565b8035610bbe81610e21565b600080600080600060808688031215610e5057610e50600080fd5b6000610e5c8888610dc4565b9550506020610e6d88828901610dc4565b945050604086013567ffffffffffffffff811115610e8d57610e8d600080fd5b610e9988828901610dcf565b93509350506060610eac88828901610e2a565b9150509295509295909350565b67ffffffffffffffff8116610bde565b60208101610bbe8284610eb9565b600060808284031215610c5e57610c5e600080fd5b60008083601f840112610f0157610f01600080fd5b50813567ffffffffffffffff811115610f1c57610f1c600080fd5b602083019150836020820283011115610e1a57610e1a600080fd5b60008060008060c08587031215610f5057610f50600080fd5b6000610f5c8787610ed7565b945050608085013567ffffffffffffffff811115610f7c57610f7c600080fd5b610f8887828801610eec565b935093505060a0610f9b87828801610cba565b91505092959194509250565b60008060408385031215610fbd57610fbd600080fd5b6000610d328585610cba565b60008060008060608587031215610fe257610fe2600080fd5b843567ffffffffffffffff811115610ffc57610ffc600080fd5b61100887828801610c49565b945050602085013567ffffffffffffffff81111561102857611028600080fd5b61103487828801610eec565b93509350506040610f9b87828801610cba565b506000610bbe6020830183610d05565b67ffffffffffffffff8116610caf565b8035610bbe81611057565b506000610bbe6020830183611067565b506000610bbe6020830183610dc4565b63ffffffff8116610bde565b6000808335601e19368590030181126110b9576110b9600080fd5b830160208101925035905067ffffffffffffffff8111156110dc576110dc600080fd5b36819003821315610e1a57610e1a600080fd5b82818337506000910152565b81835260208301925061110f8284836110ef565b50601f01601f19160190565b506000610bbe6020830183610e2a565b60ff8116610bde565b600060c083016111448380611047565b61114e8582610bd5565b5061115c6020840184611072565b6111696020860182610eb9565b506111776040840184611082565b6111846040860182611092565b506111926060840184611082565b61119f6060860182611092565b506111ad608084018461109e565b85830360808701526111c08382846110fb565b925050506111d160a084018461111b565b6111de60a086018261112b565b509392505050565b60208082528101610bbb8184611134565b60218152602081017f54686973206d65737361676520776173206e65766572207375626d69747465648152601760f91b602082015290505b60400190565b60208082528101610bbe816111f7565b601a8152602081017f537461746520726f6f7420646f6573206e6f742065786973742e00000000000081529050610c33565b60208082528101610bbe81611245565b60308152602081017f417474656d7074696e6720746f2073656e642076616c756520776974686f757481527f2070726f766964696e67204574686572000000000000000000000000000000006020820152905061122f565b60208082528101610bbe81611287565b604081016112fd8285610be4565b6103ad6020830184610eb9565b60148152602081017f6661696c65642073656e64696e672076616c756500000000000000000000000081529050610c33565b60208082528101610bbe8161130a565b634e487b7160e01b600052601160045260246000fd5b80820180821115610bbe57610bbe61134c565b60218152602081017f4d657373616765207375626d6974746564206d6f7265207468616e206f6e636581527f21000000000000000000000000000000000000000000000000000000000000006020820152905061122f565b60208082528101610bbe81611375565b6000602082840312156113f2576113f2600080fd5b60006104458484610dc4565b60008135610bbe81610cfc565b60006001600160a01b03835b81169019929092169190911792915050565b6000610bbe6001600160a01b038316611440565b90565b6001600160a01b031690565b6000610bbe82611429565b6000610bbe8261144c565b61146b82611457565b61147681835461140b565b8255505050565b60008135610bbe81611057565b60007bffffffffffffffff00000000000000000000000000000000000000006114178460a01b90565b600067ffffffffffffffff8216610bbe565b6114ce826114b3565b61147681835461148a565b60008135610bbe81610db8565b60007fffffffff000000000000000000000000000000000000000000000000000000006114178460e01b90565b600063ffffffff8216610bbe565b61152a82611513565b6114768183546114e6565b600063ffffffff83611417565b61154b82611513565b611476818354611535565b6000808335601e193685900301811261157157611571600080fd5b8301915050803567ffffffffffffffff81111561159057611590600080fd5b602082019150600181023603821315610e1a57610e1a600080fd5b634e487b7160e01b600052604160045260246000fd5b634e487b7160e01b600052602260045260246000fd5b6002810460018216806115eb57607f821691505b602082108103610c5e57610c5e6115c1565b6000610bbe61143d8381565b611612836115fd565b815460001960089490940293841b1916921b91909117905550565b60006106e1818484611609565b818110156105525761164d60008261162d565b60010161163a565b601f8211156106e1576000818152602090206020601f8501048101602085101561167c5750805b6108396020601f86010483018261163a565b8267ffffffffffffffff8111156116a7576116a76115ab565b6116b182546115d7565b6116bc828285611655565b506000601f8211600181146116f157600083156116d95750848201355b600019600885021c198116600285021785555061065e565b600084815260209020601f19841690835b828110156117225787850135825560209485019460019092019101611702565b508482101561173f57600019601f86166008021c19848801351681555b5050505060020260010190555050565b6106e183838361168e565b60008135610bbe81610e21565b600060ff83611417565b600060ff8216610bbe565b61178582611771565b611476818354611767565b80828061179c816113fe565b90506117a88184611462565b505060208301806117b88261147d565b90506117c481846114c5565b505060408301806117d4826114d9565b90506117e08184611521565b5050506001810160608301806117f5826114d9565b90506118018184611542565b50505060028101608083016118168185611556565b915061182382828561174f565b5050506003810160a08301806118388261175a565b9050610839818461177c565b6105528282611790565b60c0810161185c828a610bd5565b6118696020830189610eb9565b6118766040830188611092565b6118836060830187611092565b81810360808301526118968185876110fb565b90506118a560a083018461112b565b98975050505050505050565b602a8152602081017f526f6f74206973206e6f74207075626c6973686564206f6e2074686973206d6581527f7373616765206275732e000000000000000000000000000000000000000000006020820152905061122f565b60208082528101610bbe816118b1565b60218152602081017f526f6f74206973206e6f7420636f6e736964657265642066696e616c207965748152601760f91b6020820152905061122f565b60208082528101610bbe81611919565b506000610bbe6020830183610cba565b61197f8180611047565b6119898382610bd5565b506119976020820182611047565b6119a46020840182610bd5565b506119b26040820182611965565b6119bf6040840182610be4565b506119cd6060820182611072565b6106e16060840182610eb9565b60808101610bbe8284611975565b60018152602081017f760000000000000000000000000000000000000000000000000000000000000081529050610c33565b60408082528101611a2a816119e8565b9050610bbe6020830184610be4565b611a438183610be4565b602001919050565b60338152602081017f496e76616c696420696e636c7573696f6e2070726f6f6620666f722076616c7581527f65207472616e73666572206d6573736167652e000000000000000000000000006020820152905061122f565b60208082528101610bbe81611a4b565b60258152602081017f526f6f7420616c726561647920616464656420746f20746865206d657373616781527f65206275730000000000000000000000000000000000000000000000000000006020820152905061122f565b60208082528101610bbe81611ab3565b600060208284031215611b3057611b30600080fd5b60006104458484611067565b600060208284031215611b5157611b51600080fd5b60006104458484610e2a565b60018152602081017f6d0000000000000000000000000000000000000000000000000000000000000081529050610c33565b60408082528101611a2a81611b5d565b60308152602081017f496e76616c696420696e636c7573696f6e2070726f6f6620666f722063726f7381527f7320636861696e206d6573736167652e000000000000000000000000000000006020820152905061122f565b60208082528101610bbe81611b9f565b67ffffffffffffffff918216919081169082820190811115610bbe57610bbe61134c565b634e487b7160e01b600052603260045260246000fd5b600060018201611c5357611c5361134c565b506001019056fea2646970667358221220c14e2710742599f7771122ca1f57bd3ae8ca32813cfd99de41e7782f2b9bc44a64736f6c63430008140033a26469706673582212209e8550c9691566b4539cf49821bdbd4b9b45bebd4a23bbb4bf77f10c91230a7064736f6c63430008140033 \ No newline at end of file +608060405234801561001057600080fd5b5061001a3361001f565b610090565b7f9016d09d72d40fdae2fd8ceac6b6234c7706214fd39c1cd1e609a0528c19930080546001600160a01b031981166001600160a01b03848116918217845560405192169182907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e090600090a3505050565b61518580620000a06000396000f3fe60806040523480156200001157600080fd5b5060043610620002005760003560e01c80638129fc1c1162000119578063a25eb31c11620000af578063db5d91b1116200007a578063db5d91b114620004f9578063e34fbfc81462000528578063e874eb20146200053d578063f2fde38b146200055157600080fd5b8063a25eb31c14620004a3578063a4ab2faa14620004ba578063a52f433c14620004d1578063d4fab88714620004e257600080fd5b806387059edb11620000f057806387059edb14620004125780638da5cb5b146200042957806398077e86146200045a578063a1a227fa146200048057600080fd5b80638129fc1c14620003bb5780638236a7ba14620003c55780638415482614620003ec57600080fd5b806347665738116200019b5780636a30d26c11620001665780636a30d26c14620003775780636b9707d61462000390578063715018a614620003a75780637281099614620003b157600080fd5b806347665738146200030b5780635371a2161462000322578063568699c8146200033957806368e10383146200036057600080fd5b80632f0cb9e311620001dc5780632f0cb9e314620002575780633e60a22f146200028c57806343348b2f14620002d2578063440c953b146200030157600080fd5b80620ddd27146200020557806303e72e481462000227578063073b6ef31462000240575b600080fd5b6200020f600e5481565b6040516200021e919062001b7d565b60405180910390f35b6200023e6200023836600462001cd3565b62000568565b005b6200023e6200025136600462001e6e565b6200067b565b6200027d6200026836600462001f5b565b600c6020526000908152604090205460ff1681565b6040516200021e919062001f89565b620002c36200029d36600462001f99565b80516020818301810180516003825292820191909301209152546001600160a01b031681565b6040516200021e919062001fe5565b6200027d620002e336600462001ff5565b6001600160a01b031660009081526020819052604090205460ff1690565b6200020f60055481565b6200023e6200031c36600462001ff5565b62000899565b6200023e6200033336600462002088565b62000940565b620003506200034a36600462001f5b565b62000af6565b6040516200021e929190620021a4565b6200023e62000371366004620021c8565b62000b4f565b6200038162000bf8565b6040516200021e9190620022e9565b6200023e620003a136600462001ff5565b62000cdb565b6200023e62000d72565b6200023e62000d8a565b6200023e62000e15565b620003dc620003d636600462001f5b565b62000fff565b6040516200021e929190620022fc565b6200027d620003fd36600462001f5b565b600d6020526000908152604090205460ff1681565b620003dc6200042336600462001f5b565b620010ef565b7f9016d09d72d40fdae2fd8ceac6b6234c7706214fd39c1cd1e609a0528c199300546001600160a01b0316620002c3565b620004716200046b36600462001f5b565b62001169565b6040516200021e91906200230c565b600a5462000494906001600160a01b031681565b6040516200021e919062002369565b6200023e620004b4366004620023a7565b6200121e565b6200027d620004cb36600462002419565b62001334565b600454610100900460ff166200027d565b6200023e620004f336600462002470565b620013c6565b6200027d6200050a36600462001ff5565b6001600160a01b031660009081526001602052604090205460ff1690565b6200023e620005393660046200252e565b5050565b600b5462000494906001600160a01b031681565b6200023e6200056236600462001ff5565b620014af565b620005726200150d565b60006001600160a01b03166003836040516200058f9190620025a1565b908152604051908190036020019020546001600160a01b031603620005ee57600280546001810182556000919091527f405787fa12a823e0f2b7631cc41b3ba8828b3321ca811111fa75cd3aa3bb5ace01620005ec838262002691565b505b80600383604051620006019190620025a1565b90815260405190819003602001812080546001600160a01b039390931673ffffffffffffffffffffffffffffffffffffffff19909316929092179091557f17b2f9f5748931099ffee882b5b64f4a560b5c55da9b4f4e396dae3bb9f98cb5906200066f90849084906200275e565b60405180910390a15050565b6000828152600860205260409020548114620006b45760405162461bcd60e51b8152600401620006ab90620027b5565b60405180910390fd5b60006200072689898989604051602001620006d3949392919062002825565b6040516020818303038152906040528051906020012086868080601f0160208091040260200160405190810160405280939291908181526020018383808284376000920191909152506200158592505050565b6001600160a01b03811660009081526020819052604090205490915060ff16620007645760405162461bcd60e51b8152600401620006ab90620028a4565b600e8990556000805b87518110156200087457600b5488516001600160a01b039091169063b6aed0cb908a9084908110620007a357620007a3620028b6565b6020026020010151620007b690620028d7565b426040518363ffffffff1660e01b8152600401620007d692919062002911565b600060405180830381600087803b158015620007f157600080fd5b505af115801562000806573d6000803e3d6000fd5b5050505081888281518110620008205762000820620028b6565b60200260200101516200083390620028d7565b6040516020016200084692919062002911565b60405160208183030381529060405280519060200120915080806200086b9062002946565b9150506200076d565b506000908152600d60205260409020805460ff19166001179055505050505050505050565b620008a36200150d565b6001600160a01b03811660009081526020819052604090205460ff16620008de5760405162461bcd60e51b8152600401620006ab90620028a4565b6001600160a01b038116600090815260016020819052604091829020805460ff19169091179055517ffe64c7181f0fc60e300dc02cca368cdfa94d7ca45902de3b9a9d80070e760936906200093590839062001fe5565b60405180910390a150565b600b546040517fb201246f0000000000000000000000000000000000000000000000000000000081526001600160a01b039091169063b201246f906200099190879087908790879060040162002a9b565b60006040518083038186803b158015620009aa57600080fd5b505afa158015620009bf573d6000803e3d6000fd5b50505050600084604051602001620009d8919062002ada565b60408051601f1981840301815291815281516020928301206000818152600c90935291205490915060ff161562000a235760405162461bcd60e51b8152600401620006ab9062002b1d565b6001600c60008760405160200162000a3c919062002ada565b60408051808303601f190181529181528151602092830120835282820193909352908201600020805460ff191693151593909317909255600a546001600160a01b0316916399a3ad219162000a979190890190890162001ff5565b87604001356040518363ffffffff1660e01b815260040162000abb92919062002b2f565b600060405180830381600087803b15801562000ad657600080fd5b505af115801562000aeb573d6000803e3d6000fd5b505050505050505050565b60408051606080820183526000808352602083019190915291810182905260008062000b2285620010ef565b915091508162000b385760009590945092505050565b600094855260086020526040909420549492505050565b60045460ff161562000b755760405162461bcd60e51b8152600401620006ab9062002b99565b60048054600160ff1991821681179092556001600160a01b0387166000908152602081815260408083208054851686179055908490529081902080549092169092179055517ffe64c7181f0fc60e300dc02cca368cdfa94d7ca45902de3b9a9d80070e7609369062000be990879062001fe5565b60405180910390a15050505050565b60606002805480602002602001604051908101604052809291908181526020016000905b8282101562000cd257838290600052602060002001805462000c3e90620025c3565b80601f016020809104026020016040519081016040528092919081815260200182805462000c6c90620025c3565b801562000cbd5780601f1062000c915761010080835404028352916020019162000cbd565b820191906000526020600020905b81548152906001019060200180831162000c9f57829003601f168201915b50505050508152602001906001019062000c1c565b50505050905090565b62000ce56200150d565b6001600160a01b03811660009081526001602052604090205460ff1662000d205760405162461bcd60e51b8152600401620006ab9062002bde565b6001600160a01b03811660009081526001602052604090819020805460ff19169055517f0f279980343c7ca542fde9fa5396555068efb5cd560d9cf9c191aa2911079b47906200093590839062001fe5565b62000d7c6200150d565b62000d886000620015b5565b565b62000d946200150d565b600a546040517f36d2da900000000000000000000000000000000000000000000000000000000081526001600160a01b03909116906336d2da909062000ddf90339060040162001fe5565b600060405180830381600087803b15801562000dfa57600080fd5b505af115801562000e0f573d6000803e3d6000fd5b50505050565b7ff0c57e16840df040f15088dc2f81fe391c3923bec73e23a9662efc9c229c6a00805468010000000000000000810460ff16159067ffffffffffffffff1660008115801562000e615750825b905060008267ffffffffffffffff16600114801562000e7f5750303b155b90508115801562000e8e575080155b1562000ec6576040517ff92ee8a900000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b845467ffffffffffffffff19166001178555831562000efb57845468ff00000000000000001916680100000000000000001785555b62000f063362001633565b6000600555600160095560405162000f1e9062001b67565b604051809103906000f08015801562000f3b573d6000803e3d6000fd5b50600b80546001600160a01b039290921673ffffffffffffffffffffffffffffffffffffffff199283168117909155600a805490921681179091556040517fbd726cf82ac9c3260b1495107182e336e0654b25c10915648c0cc15b2bb72cbf9162000fa69162001fe5565b60405180910390a1831562000ff857845468ff0000000000000000191685556040517fc7f505b2f371ae2175ee4913f4499e1f2633a7b5936321eed1cdaeb6115181d29062000be99060019062002c0e565b5050505050565b6040805160608082018352600080835260208084018390528385018290528582526006815284822085519384019095528454835260018501805492958694939092840191906200104f90620025c3565b80601f01602080910402602001604051908101604052809291908181526020018280546200107d90620025c3565b8015620010ce5780601f10620010a257610100808354040283529160200191620010ce565b820191906000526020600020905b815481529060010190602001808311620010b057829003601f168201915b50505091835250506002919091015460209091015280519094149492505050565b604080516060808201835260008083526020830191909152918101829052600083815260076020526040812054908190036200115457505060408051606081018252600080825282516020818101855282825283015291810182905290939092509050565b6200115f8162000fff565b9250925050915091565b600281815481106200117a57600080fd5b9060005260206000200160009150905080546200119790620025c3565b80601f0160208091040260200160405190810160405280929190818152602001828054620011c590620025c3565b8015620012165780601f10620011ea5761010080835404028352916020019162001216565b820191906000526020600020905b815481529060010190602001808311620011f857829003601f168201915b505050505081565b600062001270833562001235602086018662002c1e565b8080601f0160208091040260200160405190810160405280939291908181526020018383808284376000920191909152506200158592505050565b6001600160a01b03811660009081526020819052604090205490915060ff16620012ae5760405162461bcd60e51b8152600401620006ab90620028a4565b6001600160a01b03811660009081526001602052604090205460ff16620012e95760405162461bcd60e51b8152600401620006ab9062002bde565b620012f48362001648565b6040517fd6555bff8670bd3008dc064c30bb56d6ac7cb14ae801e36146fe4e7c6a504a5890620013279085359062001b7d565b60405180910390a1505050565b600080805b8351811015620013ad5781848281518110620013595762001359620028b6565b60200260200101516200136c90620028d7565b6040516020016200137f92919062002911565b6040516020818303038152906040528051906020012091508080620013a49062002946565b91505062001339565b506000908152600d602052604090205460ff1692915050565b6001600160a01b03851660009081526020819052604090205460ff1680620014025760405162461bcd60e51b8152600401620006ab9062002cd2565b8115620014845760006200143b878786604051602001620014269392919062002d13565b604051602081830303815290604052620016f5565b905060006200144b828762001585565b9050876001600160a01b0316816001600160a01b031614620014815760405162461bcd60e51b8152600401620006ab9062002d96565b50505b5050506001600160a01b039091166000908152602081905260409020805460ff191660011790555050565b620014b96200150d565b6001600160a01b038116620014ff5760006040517f1e4fbdf7000000000000000000000000000000000000000000000000000000008152600401620006ab919062001fe5565b6200150a81620015b5565b50565b33620015407f9016d09d72d40fdae2fd8ceac6b6234c7706214fd39c1cd1e609a0528c199300546001600160a01b031690565b6001600160a01b03161462000d8857336040517f118cdaa7000000000000000000000000000000000000000000000000000000008152600401620006ab919062001fe5565b60008060008062001597868662001734565b925092509250620015a9828262001785565b50909150505b92915050565b7f9016d09d72d40fdae2fd8ceac6b6234c7706214fd39c1cd1e609a0528c199300805473ffffffffffffffffffffffffffffffffffffffff1981166001600160a01b03848116918217845560405192169182907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e090600090a3505050565b6200163d6200189b565b6200150a8162001903565b80356000908152600660205260409020819062001666828262002f39565b505060095460009081526007602052604090208135908190556200168c60014362002f45565b40604051602001620016a092919062002911565b60408051601f198184030181529181528151602092830120600980546000908152600890945291832055805491620016d88362002946565b9190505550600554816040013511156200150a5760400135600555565b60006200170382516200190d565b826040516020016200171792919062002f5b565b604051602081830303815290604052805190602001209050919050565b60008060008351604103620017725760208401516040850151606086015160001a6200176388828585620019b5565b9550955095505050506200177e565b50508151600091506002905b9250925092565b60008260038111156200179c576200179c62002f9b565b03620017a6575050565b6001826003811115620017bd57620017bd62002f9b565b03620017f5576040517ff645eedf00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b60028260038111156200180c576200180c62002f9b565b0362001848576040517ffce698f7000000000000000000000000000000000000000000000000000000008152620006ab90829060040162001b7d565b60038260038111156200185f576200185f62002f9b565b036200053957806040517fd78bce0c000000000000000000000000000000000000000000000000000000008152600401620006ab919062001b7d565b7ff0c57e16840df040f15088dc2f81fe391c3923bec73e23a9662efc9c229c6a005468010000000000000000900460ff1662000d88576040517fd7e6bcf800000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b620014b96200189b565b606060006200191c8362001a7e565b600101905060008167ffffffffffffffff8111156200193f576200193f62001b8d565b6040519080825280601f01601f1916602001820160405280156200196a576020820181803683370190505b5090508181016020015b600019017f3031323334353637383961626364656600000000000000000000000000000000600a86061a8153600a850494508462001974575b509392505050565b600080807f7fffffffffffffffffffffffffffffff5d576e7357a4501ddfe92f46681b20a0841115620019f2575060009150600390508262001a74565b60006001888888886040516000815260200160405260405162001a19949392919062002fbb565b6020604051602081039080840390855afa15801562001a3c573d6000803e3d6000fd5b5050604051601f1901519150506001600160a01b03811662001a6a5750600092506001915082905062001a74565b9250600091508190505b9450945094915050565b6000807a184f03e93ff9f4daa797ed6e38ed64bf6a1f010000000000000000831062001ac8577a184f03e93ff9f4daa797ed6e38ed64bf6a1f010000000000000000830492506040015b6d04ee2d6d415b85acef8100000000831062001af5576d04ee2d6d415b85acef8100000000830492506020015b662386f26fc10000831062001b1457662386f26fc10000830492506010015b6305f5e100831062001b2d576305f5e100830492506008015b612710831062001b4257612710830492506004015b6064831062001b55576064830492506002015b600a8310620015af5760010192915050565b6121578062002ff983390190565b805b82525050565b60208101620015af828462001b75565b634e487b7160e01b600052604160045260246000fd5b601f19601f830116810181811067ffffffffffffffff8211171562001bcc5762001bcc62001b8d565b6040525050565b600062001bdf60405190565b905062001bed828262001ba3565b919050565b600067ffffffffffffffff82111562001c0f5762001c0f62001b8d565b601f19601f83011660200192915050565b82818337506000910152565b600062001c4362001c3d8462001bf2565b62001bd3565b90508281526020810184848401111562001c605762001c60600080fd5b620019ad84828562001c20565b600082601f83011262001c835762001c83600080fd5b813562001c9584826020860162001c2c565b949350505050565b60006001600160a01b038216620015af565b62001cba8162001c9d565b81146200150a57600080fd5b8035620015af8162001caf565b6000806040838503121562001ceb5762001ceb600080fd5b823567ffffffffffffffff81111562001d075762001d07600080fd5b62001d158582860162001c6d565b925050602062001d288582860162001cc6565b9150509250929050565b8062001cba565b8035620015af8162001d32565b600067ffffffffffffffff82111562001d635762001d6362001b8d565b5060209081020190565b600062001d7e62001c3d8462001d46565b8381529050602080820190840283018581111562001d9f5762001d9f600080fd5b835b8181101562001de457803567ffffffffffffffff81111562001dc65762001dc6600080fd5b850162001dd4888262001c6d565b8452506020928301920162001da1565b5050509392505050565b600082601f83011262001e045762001e04600080fd5b813562001c9584826020860162001d6d565b60008083601f84011262001e2d5762001e2d600080fd5b50813567ffffffffffffffff81111562001e4a5762001e4a600080fd5b60208301915083600182028301111562001e675762001e67600080fd5b9250929050565b60008060008060008060008060e0898b03121562001e8f5762001e8f600080fd5b600062001e9d8b8b62001d39565b985050602062001eb08b828c0162001d39565b975050604062001ec38b828c0162001d39565b965050606089013567ffffffffffffffff81111562001ee55762001ee5600080fd5b62001ef38b828c0162001dee565b955050608089013567ffffffffffffffff81111562001f155762001f15600080fd5b62001f238b828c0162001e16565b945094505060a062001f388b828c0162001d39565b92505060c062001f4b8b828c0162001d39565b9150509295985092959890939650565b60006020828403121562001f725762001f72600080fd5b600062001c95848462001d39565b80151562001b77565b60208101620015af828462001f80565b60006020828403121562001fb05762001fb0600080fd5b813567ffffffffffffffff81111562001fcc5762001fcc600080fd5b62001c958482850162001c6d565b62001b778162001c9d565b60208101620015af828462001fda565b6000602082840312156200200c576200200c600080fd5b600062001c95848462001cc6565b600060808284031215620020315762002031600080fd5b50919050565b60008083601f8401126200204e576200204e600080fd5b50813567ffffffffffffffff8111156200206b576200206b600080fd5b60208301915083602082028301111562001e675762001e67600080fd5b60008060008060c08587031215620020a357620020a3600080fd5b6000620020b187876200201a565b945050608085013567ffffffffffffffff811115620020d357620020d3600080fd5b620020e18782880162002037565b935093505060a0620020f68782880162001d39565b91505092959194509250565b60005b838110156200211f57818101518382015260200162002105565b50506000910152565b600062002133825190565b8084526020840193506200214c81856020860162002102565b601f01601f19169290920192915050565b8051600090606084019062002173858262001b75565b50602083015184820360208601526200218d828262002128565b9150506040830151620019ad604086018262001b75565b60408101620021b4828562001b75565b818103602083015262001c9581846200215d565b600080600080600060608688031215620021e557620021e5600080fd5b6000620021f3888862001cc6565b955050602086013567ffffffffffffffff811115620022155762002215600080fd5b620022238882890162001e16565b9450945050604086013567ffffffffffffffff811115620022475762002247600080fd5b620022558882890162001e16565b92509250509295509295909350565b600062002272838362002128565b9392505050565b60200190565b60006200228a825190565b80845260208401935083602082028501620022a58560200190565b60005b84811015620022dd5783830388528151620022c4848262002264565b93505060208201602098909801979150600101620022a8565b50909695505050505050565b602080825281016200227281846200227f565b60408101620021b4828562001f80565b6020808252810162002272818462002128565b6000620015af6001600160a01b03831662002338565b90565b6001600160a01b031690565b6000620015af826200231f565b6000620015af8262002344565b62001b778162002351565b60208101620015af82846200235e565b600060608284031215620020315762002031600080fd5b600060208284031215620020315762002031600080fd5b60008060408385031215620023bf57620023bf600080fd5b823567ffffffffffffffff811115620023db57620023db600080fd5b620023e98582860162002379565b925050602083013567ffffffffffffffff8111156200240b576200240b600080fd5b62001d288582860162002390565b600060208284031215620024305762002430600080fd5b813567ffffffffffffffff8111156200244c576200244c600080fd5b62001c958482850162001dee565b80151562001cba565b8035620015af816200245a565b600080600080600060a086880312156200248d576200248d600080fd5b60006200249b888862001cc6565b9550506020620024ae8882890162001cc6565b945050604086013567ffffffffffffffff811115620024d057620024d0600080fd5b620024de8882890162001c6d565b935050606086013567ffffffffffffffff811115620025005762002500600080fd5b6200250e8882890162001c6d565b9250506080620025218882890162002463565b9150509295509295909350565b60008060208385031215620025465762002546600080fd5b823567ffffffffffffffff811115620025625762002562600080fd5b620025708582860162001e16565b92509250509250929050565b600062002587825190565b6200259781856020860162002102565b9290920192915050565b620015af81836200257c565b634e487b7160e01b600052602260045260246000fd5b600281046001821680620025d857607f821691505b602082108103620020315762002031620025ad565b6000620015af620023358381565b6200260683620025ed565b815460001960089490940293841b1916921b91909117905550565b600062002630818484620025fb565b505050565b8181101562000539576200264b60008262002621565b60010162002635565b601f82111562002630576000818152602090206020601f850104810160208510156200267d5750805b62000ff86020601f86010483018262002635565b815167ffffffffffffffff811115620026ae57620026ae62001b8d565b620026ba8254620025c3565b620026c782828562002654565b506020601f821160018114620026ff5760008315620026e65750848201515b600019600885021c198116600285021785555062000ff8565b600084815260208120601f198516915b828110156200273157878501518255602094850194600190920191016200270f565b50848210156200274f5783870151600019601f87166008021c191681555b50505050600202600101905550565b6040808252810162002771818562002128565b905062002272602083018462001fda565b600e8152602081017f496e76616c696420666f726b49440000000000000000000000000000000000008152905062002279565b60208082528101620015af8162002782565b6000620027d2825190565b80845260208401935083602082028501620027ed8560200190565b60005b84811015620022dd57838303885281516200280c848262002264565b93505060208201602098909801979150600101620027f0565b6080810162002835828762001b75565b62002844602083018662001b75565b62002853604083018562001b75565b8181036060830152620028678184620027c7565b9695505050505050565b60168152602081017f656e636c6176654944206e6f74206174746573746564000000000000000000008152905062002279565b60208082528101620015af8162002871565b634e487b7160e01b600052603260045260246000fd5b6000620015af825190565b6000620028e2825190565b60208301620028f181620028cc565b925050602081101562002031576000196020919091036008021b16919050565b6040810162002921828562001b75565b62002272602083018462001b75565b634e487b7160e01b600052601160045260246000fd5b6000600182016200295b576200295b62002930565b5060010190565b506000620015af602083018362001cc6565b506000620015af602083018362001d39565b67ffffffffffffffff811662001cba565b8035620015af8162002986565b506000620015af602083018362002997565b67ffffffffffffffff811662001b77565b620029d3818062002962565b620029df838262001fda565b50620029ef602082018262002962565b620029fe602084018262001fda565b5062002a0e604082018262002974565b62002a1d604084018262001b75565b5062002a2d6060820182620029a4565b620026306060840182620029b6565b82818337505050565b81835260208301925060007f07ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff83111562002a825762002a82600080fd5b60208302925062002a9583858462002a3c565b50500190565b60c0810162002aab8287620029c7565b818103608083015262002ac081858762002a45565b905062002ad160a083018462001b75565b95945050505050565b60808101620015af8284620029c7565b60188152602081017f7769746864726177616c20616c7265616479207370656e7400000000000000008152905062002279565b60208082528101620015af8162002aea565b6040810162002921828562001fda565b60228152602081017f6e6574776f726b2073656372657420616c726561647920696e697469616c697a81527f6564000000000000000000000000000000000000000000000000000000000000602082015290505b60400190565b60208082528101620015af8162002b3f565b60198152602081017f656e636c6176654944206e6f7420612073657175656e636572000000000000008152905062002279565b60208082528101620015af8162002bab565b600067ffffffffffffffff8216620015af565b62001b778162002bf0565b60208101620015af828462002c03565b6000808335601e193685900301811262002c3b5762002c3b600080fd5b8301915050803567ffffffffffffffff81111562002c5c5762002c5c600080fd5b60208201915060018102360382131562001e675762001e67600080fd5b60238152602081017f726573706f6e64696e67206174746573746572206973206e6f7420617474657381527f74656400000000000000000000000000000000000000000000000000000000006020820152905062002b93565b60208082528101620015af8162002c79565b6000620015af8260601b90565b6000620015af8262002ce4565b62001b7762002d0d8262001c9d565b62002cf1565b62002d1f818562002cfe565b60140162002d2e818462002cfe565b60140162001c9581836200257c565b602c8152602081017f63616c63756c61746564206164647265737320616e642061747465737465724981527f4420646f6e74206d6174636800000000000000000000000000000000000000006020820152905062002b93565b60208082528101620015af8162002d3d565b60008135620015af8162001d32565b600081620015af565b62002dcb8262002db7565b62002dda620023358262002db7565b8255505050565b8267ffffffffffffffff81111562002dfd5762002dfd62001b8d565b62002e098254620025c3565b62002e1682828562002654565b506000601f82116001811462002e4e576000831562002e355750848201355b600019600885021c198116600285021785555062002eab565b600084815260209020601f19841690835b8281101562002e81578785013582556020948501946001909201910162002e5f565b508482101562002e9f57600019601f86166008021c19848801351681555b50506001600284020184555b505050505050565b6200263083838362002de1565b62002ecb82620025ed565b8062002dda565b80828062002ee08162002da8565b905062002eee818462002dc0565b505050600181016020830162002f05818562002c1e565b915062002f1482828562002eb3565b50505060028101604083018062002f2b8262002da8565b905062000ff8818462002ec0565b62000539828262002ed2565b81810381811115620015af57620015af62002930565b7f19457468657265756d205369676e6564204d6573736167653a0a0000000000008152601a0162002f8d81846200257c565b90506200227281836200257c565b634e487b7160e01b600052602160045260246000fd5b60ff811662001b77565b6080810162002fcb828762001b75565b62002fda602083018662002fb1565b62002fe9604083018562001b75565b62002ad1606083018462001b7556fe60806040523480156200001157600080fd5b506200001d336200002d565b620000276200009e565b62000152565b7f9016d09d72d40fdae2fd8ceac6b6234c7706214fd39c1cd1e609a0528c19930080546001600160a01b031981166001600160a01b03848116918217845560405192169182907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e090600090a3505050565b7ff0c57e16840df040f15088dc2f81fe391c3923bec73e23a9662efc9c229c6a00805468010000000000000000900460ff1615620000ef5760405163f92ee8a960e01b815260040160405180910390fd5b80546001600160401b03908116146200014f5780546001600160401b0319166001600160401b0390811782556040519081527fc7f505b2f371ae2175ee4913f4499e1f2633a7b5936321eed1cdaeb6115181d29060200160405180910390a15b50565b611ff580620001626000396000f3fe6080604052600436106100ec5760003560e01c80639730886d1161008a578063b6aed0cb11610059578063b6aed0cb1461031e578063c4d66de81461033e578063e138a8d21461035e578063f2fde38b1461037e57610160565b80639730886d1461029157806399a3ad21146102b1578063b1454caa146102d1578063b201246f146102fe57610160565b8063346633fb116100c6578063346633fb1461020457806336d2da9014610217578063715018a6146102375780638da5cb5b1461024c57610160565b80630fcfbd11146101815780630fe9188e146101b757806333a88c72146101d757610160565b36610160576040517f346633fb000000000000000000000000000000000000000000000000000000008152309063346633fb9034906101319033908390600401610ebc565b6000604051808303818588803b15801561014a57600080fd5b505af115801561015e573d6000803e3d6000fd5b005b60405162461bcd60e51b815260040161017890610f0b565b60405180910390fd5b34801561018d57600080fd5b506101a161019c366004610f36565b61039e565b6040516101ae9190610f71565b60405180910390f35b3480156101c357600080fd5b5061015e6101d2366004610f97565b6103fd565b3480156101e357600080fd5b506101f76101f2366004610f36565b610443565b6040516101ae9190610fc0565b61015e610212366004610fe2565b610495565b34801561022357600080fd5b5061015e61023236600461101f565b61051f565b34801561024357600080fd5b5061015e61059e565b34801561025857600080fd5b507f9016d09d72d40fdae2fd8ceac6b6234c7706214fd39c1cd1e609a0528c199300546001600160a01b03166040516101ae9190611040565b34801561029d57600080fd5b5061015e6102ac36600461104e565b6105b2565b3480156102bd57600080fd5b5061015e6102cc366004610fe2565b610727565b3480156102dd57600080fd5b506102f16102ec366004611107565b6107a7565b6040516101ae919061119b565b34801561030a57600080fd5b5061015e610319366004611209565b610800565b34801561032a57600080fd5b5061015e610339366004611279565b610901565b34801561034a57600080fd5b5061015e61035936600461101f565b610947565b34801561036a57600080fd5b5061015e61037936600461129b565b610a89565b34801561038a57600080fd5b5061015e61039936600461101f565b610bcc565b600080826040516020016103b291906114b8565b60408051601f198184030181529181528151602092830120600081815292839052912054909150806103f65760405162461bcd60e51b815260040161017890611507565b9392505050565b610405610c23565b60008181526003602052604081205490036104325760405162461bcd60e51b815260040161017890611549565b600090815260036020526040812055565b6000808260405160200161045791906114b8565b60408051601f198184030181529181528151602092830120600081815292839052912054909150801580159061048d5750428111155b949350505050565b6000341180156104a457508034145b6104c05760405162461bcd60e51b8152600401610178906115b1565b60006104cb33610c97565b9050826001600160a01b0316336001600160a01b03167f50c536ac33a920f00755865b831d17bf4cff0b2e0345f65b16d52bfc004068b634846040516105129291906115c1565b60405180910390a3505050565b610527610c23565b6000816001600160a01b03164760405160006040518083038185875af1925050503d8060008114610574576040519150601f19603f3d011682016040523d82523d6000602084013e610579565b606091505b505090508061059a5760405162461bcd60e51b81526004016101789061160e565b5050565b6105a6610c23565b6105b06000610cf5565b565b60006105bf600130611634565b90506105f27f9016d09d72d40fdae2fd8ceac6b6234c7706214fd39c1cd1e609a0528c199300546001600160a01b031690565b6001600160a01b0316336001600160a01b031614806106195750336001600160a01b038216145b6106355760405162461bcd60e51b815260040161017890611689565b60006106418342611699565b905060008460405160200161065691906114b8565b60408051601f1981840301815291815281516020928301206000818152928390529120549091501561069a5760405162461bcd60e51b815260040161017890611704565b6000818152602081815260408220849055600191906106bb9088018861101f565b6001600160a01b0316815260208101919091526040016000908120906106e76080880160608901611714565b63ffffffff1681526020808201929092526040016000908120805460018101825590825291902086916004020161071e8282611b87565b50505050505050565b61072f610c23565b6000826001600160a01b03168260405160006040518083038185875af1925050503d806000811461077c576040519150601f19603f3d011682016040523d82523d6000602084013e610781565b606091505b50509050806107a25760405162461bcd60e51b81526004016101789061160e565b505050565b60006107b233610c97565b90507fb93c37389233beb85a3a726c3f15c2d15533ee74cb602f20f490dfffef775937338288888888886040516107ef9796959493929190611b91565b60405180910390a195945050505050565b600081815260036020526040812054900361082d5760405162461bcd60e51b815260040161017890611c4c565b60008181526003602052604090205442101561085b5760405162461bcd60e51b815260040161017890611c98565b60008460405160200161086e9190611d1d565b604051602081830303815290604052805190602001206040516020016108949190611d5d565b6040516020818303038152906040528051906020012090506108de848484846040516020016108c39190611d7c565b60405160208183030381529060405280519060200120610d7e565b6108fa5760405162461bcd60e51b815260040161017890611de6565b5050505050565b610909610c23565b600082815260036020526040902054156109355760405162461bcd60e51b815260040161017890611e4e565b60009182526003602052604090912055565b7ff0c57e16840df040f15088dc2f81fe391c3923bec73e23a9662efc9c229c6a00805468010000000000000000810460ff16159067ffffffffffffffff166000811580156109925750825b905060008267ffffffffffffffff1660011480156109af5750303b155b9050811580156109bd575080155b156109f4576040517ff92ee8a900000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b845467ffffffffffffffff191660011785558315610a2857845468ff00000000000000001916680100000000000000001785555b610a3186610d96565b8315610a8157845468ff0000000000000000191685556040517fc7f505b2f371ae2175ee4913f4499e1f2633a7b5936321eed1cdaeb6115181d290610a7890600190611e72565b60405180910390a15b505050505050565b6000818152600360205260408120549003610ab65760405162461bcd60e51b815260040161017890611c4c565b600081815260036020526040902054421015610ae45760405162461bcd60e51b815260040161017890611c98565b6000610af3602086018661101f565b610b036040870160208801611e80565b610b136060880160408901611714565b610b236080890160608a01611714565b610b3060808a018a611899565b610b4060c08c0160a08d01611ea1565b604051602001610b569796959493929190611b91565b604051602081830303815290604052805190602001209050600081604051602001610b819190611ef4565b604051602081830303815290604052805190602001209050610bb0858585846040516020016108c39190611d7c565b610a815760405162461bcd60e51b815260040161017890611f5c565b610bd4610c23565b6001600160a01b038116610c175760006040517f1e4fbdf70000000000000000000000000000000000000000000000000000000081526004016101789190611040565b610c2081610cf5565b50565b33610c557f9016d09d72d40fdae2fd8ceac6b6234c7706214fd39c1cd1e609a0528c199300546001600160a01b031690565b6001600160a01b0316146105b057336040517f118cdaa70000000000000000000000000000000000000000000000000000000081526004016101789190611040565b6001600160a01b0381166000908152600260205260408120805467ffffffffffffffff169160019190610cca8385611f6c565b92506101000a81548167ffffffffffffffff021916908367ffffffffffffffff160217905550919050565b7f9016d09d72d40fdae2fd8ceac6b6234c7706214fd39c1cd1e609a0528c19930080547fffffffffffffffffffffffff000000000000000000000000000000000000000081166001600160a01b03848116918217845560405192169182907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e090600090a3505050565b600082610d8c868685610da7565b1495945050505050565b610d9e610df3565b610c2081610e5a565b600081815b84811015610dea57610dd682878784818110610dca57610dca611f90565b90506020020135610e62565b915080610de281611fa6565b915050610dac565b50949350505050565b7ff0c57e16840df040f15088dc2f81fe391c3923bec73e23a9662efc9c229c6a005468010000000000000000900460ff166105b0576040517fd7e6bcf800000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b610bd4610df3565b6000818310610e7e576000828152602084905260409020610e8d565b60008381526020839052604090205b90505b92915050565b60006001600160a01b038216610e90565b610eb081610e96565b82525050565b80610eb0565b60408101610eca8285610ea7565b6103f66020830184610eb6565b600b8152602081017f756e737570706f72746564000000000000000000000000000000000000000000815290505b60200190565b60208082528101610e9081610ed7565b600060c08284031215610f3057610f30600080fd5b50919050565b600060208284031215610f4b57610f4b600080fd5b813567ffffffffffffffff811115610f6557610f65600080fd5b61048d84828501610f1b565b60208101610e908284610eb6565b805b8114610c2057600080fd5b8035610e9081610f7f565b600060208284031215610fac57610fac600080fd5b600061048d8484610f8c565b801515610eb0565b60208101610e908284610fb8565b610f8181610e96565b8035610e9081610fce565b60008060408385031215610ff857610ff8600080fd5b60006110048585610fd7565b925050602061101585828601610f8c565b9150509250929050565b60006020828403121561103457611034600080fd5b600061048d8484610fd7565b60208101610e908284610ea7565b6000806040838503121561106457611064600080fd5b823567ffffffffffffffff81111561107e5761107e600080fd5b61100485828601610f1b565b63ffffffff8116610f81565b8035610e908161108a565b60008083601f8401126110b6576110b6600080fd5b50813567ffffffffffffffff8111156110d1576110d1600080fd5b6020830191508360018202830111156110ec576110ec600080fd5b9250929050565b60ff8116610f81565b8035610e90816110f3565b60008060008060006080868803121561112257611122600080fd5b600061112e8888611096565b955050602061113f88828901611096565b945050604086013567ffffffffffffffff81111561115f5761115f600080fd5b61116b888289016110a1565b9350935050606061117e888289016110fc565b9150509295509295909350565b67ffffffffffffffff8116610eb0565b60208101610e90828461118b565b600060808284031215610f3057610f30600080fd5b60008083601f8401126111d3576111d3600080fd5b50813567ffffffffffffffff8111156111ee576111ee600080fd5b6020830191508360208202830111156110ec576110ec600080fd5b60008060008060c0858703121561122257611222600080fd5b600061122e87876111a9565b945050608085013567ffffffffffffffff81111561124e5761124e600080fd5b61125a878288016111be565b935093505060a061126d87828801610f8c565b91505092959194509250565b6000806040838503121561128f5761128f600080fd5b60006110048585610f8c565b600080600080606085870312156112b4576112b4600080fd5b843567ffffffffffffffff8111156112ce576112ce600080fd5b6112da87828801610f1b565b945050602085013567ffffffffffffffff8111156112fa576112fa600080fd5b611306878288016111be565b9350935050604061126d87828801610f8c565b506000610e906020830183610fd7565b67ffffffffffffffff8116610f81565b8035610e9081611329565b506000610e906020830183611339565b506000610e906020830183611096565b63ffffffff8116610eb0565b6000808335601e193685900301811261138b5761138b600080fd5b830160208101925035905067ffffffffffffffff8111156113ae576113ae600080fd5b368190038213156110ec576110ec600080fd5b82818337506000910152565b8183526020830192506113e18284836113c1565b50601f01601f19160190565b506000610e9060208301836110fc565b60ff8116610eb0565b600060c083016114168380611319565b6114208582610ea7565b5061142e6020840184611344565b61143b602086018261118b565b506114496040840184611354565b6114566040860182611364565b506114646060840184611354565b6114716060860182611364565b5061147f6080840184611370565b85830360808701526114928382846113cd565b925050506114a360a08401846113ed565b6114b060a08601826113fd565b509392505050565b60208082528101610e8d8184611406565b60218152602081017f54686973206d65737361676520776173206e65766572207375626d69747465648152601760f91b602082015290505b60400190565b60208082528101610e90816114c9565b601a8152602081017f537461746520726f6f7420646f6573206e6f742065786973742e00000000000081529050610f05565b60208082528101610e9081611517565b60308152602081017f417474656d7074696e6720746f2073656e642076616c756520776974686f757481527f2070726f766964696e672045746865720000000000000000000000000000000060208201529050611501565b60208082528101610e9081611559565b604081016115cf8285610eb6565b6103f6602083018461118b565b60148152602081017f6661696c65642073656e64696e672076616c756500000000000000000000000081529050610f05565b60208082528101610e90816115dc565b634e487b7160e01b600052601160045260246000fd5b6001600160a01b03918216919081169082820390811115610e9057610e9061161e565b60118152602081017f4e6f74206f776e6572206f722073656c6600000000000000000000000000000081529050610f05565b60208082528101610e9081611657565b80820180821115610e9057610e9061161e565b60218152602081017f4d657373616765207375626d6974746564206d6f7265207468616e206f6e636581527f210000000000000000000000000000000000000000000000000000000000000060208201529050611501565b60208082528101610e90816116ac565b60006020828403121561172957611729600080fd5b600061048d8484611096565b60008135610e9081610fce565b60006001600160a01b03835b81169019929092169190911792915050565b6000610e906001600160a01b038316611777565b90565b6001600160a01b031690565b6000610e9082611760565b6000610e9082611783565b6117a28261178e565b6117ad818354611742565b8255505050565b60008135610e9081611329565b60007bffffffffffffffff000000000000000000000000000000000000000061174e8460a01b90565b6000610e9067ffffffffffffffff83165b67ffffffffffffffff1690565b611811826117ea565b6117ad8183546117c1565b60008135610e908161108a565b60007fffffffff0000000000000000000000000000000000000000000000000000000061174e8460e01b90565b600063ffffffff8216610e90565b61186d82611856565b6117ad818354611829565b600063ffffffff8361174e565b61188e82611856565b6117ad818354611878565b6000808335601e19368590030181126118b4576118b4600080fd5b8301915050803567ffffffffffffffff8111156118d3576118d3600080fd5b6020820191506001810236038213156110ec576110ec600080fd5b634e487b7160e01b600052604160045260246000fd5b634e487b7160e01b600052602260045260246000fd5b60028104600182168061192e57607f821691505b602082108103610f3057610f30611904565b6000610e906117748381565b61195583611940565b815460001960089490940293841b1916921b91909117905550565b60006107a281848461194c565b8181101561059a57611990600082611970565b60010161197d565b601f8211156107a2576000818152602090206020601f850104810160208510156119bf5750805b6108fa6020601f86010483018261197d565b8267ffffffffffffffff8111156119ea576119ea6118ee565b6119f4825461191a565b6119ff828285611998565b506000601f821160018114611a345760008315611a1c5750848201355b600019600885021c1981166002850217855550610a81565b600084815260209020601f19841690835b82811015611a655787850135825560209485019460019092019101611a45565b5084821015611a8257600019601f86166008021c19848801351681555b5050505060020260010190555050565b6107a28383836119d1565b60008135610e90816110f3565b600060ff8361174e565b600060ff8216610e90565b611ac882611ab4565b6117ad818354611aaa565b808280611adf81611735565b9050611aeb8184611799565b50506020830180611afb826117b4565b9050611b078184611808565b50506040830180611b178261181c565b9050611b238184611864565b505050600181016060830180611b388261181c565b9050611b448184611885565b5050506002810160808301611b598185611899565b9150611b66828285611a92565b5050506003810160a0830180611b7b82611a9d565b90506108fa8184611abf565b61059a8282611ad3565b60c08101611b9f828a610ea7565b611bac602083018961118b565b611bb96040830188611364565b611bc66060830187611364565b8181036080830152611bd98185876113cd565b9050611be860a08301846113fd565b98975050505050505050565b602a8152602081017f526f6f74206973206e6f74207075626c6973686564206f6e2074686973206d6581527f7373616765206275732e0000000000000000000000000000000000000000000060208201529050611501565b60208082528101610e9081611bf4565b60218152602081017f526f6f74206973206e6f7420636f6e736964657265642066696e616c207965748152601760f91b60208201529050611501565b60208082528101610e9081611c5c565b506000610e906020830183610f8c565b611cc28180611319565b611ccc8382610ea7565b50611cda6020820182611319565b611ce76020840182610ea7565b50611cf56040820182611ca8565b611d026040840182610eb6565b50611d106060820182611344565b6107a2606084018261118b565b60808101610e908284611cb8565b60018152602081017f760000000000000000000000000000000000000000000000000000000000000081529050610f05565b60408082528101611d6d81611d2b565b9050610e906020830184610eb6565b611d868183610eb6565b602001919050565b60338152602081017f496e76616c696420696e636c7573696f6e2070726f6f6620666f722076616c7581527f65207472616e73666572206d6573736167652e0000000000000000000000000060208201529050611501565b60208082528101610e9081611d8e565b60258152602081017f526f6f7420616c726561647920616464656420746f20746865206d657373616781527f652062757300000000000000000000000000000000000000000000000000000060208201529050611501565b60208082528101610e9081611df6565b6000610e90826117fb565b610eb081611e5e565b60208101610e908284611e69565b600060208284031215611e9557611e95600080fd5b600061048d8484611339565b600060208284031215611eb657611eb6600080fd5b600061048d84846110fc565b60018152602081017f6d0000000000000000000000000000000000000000000000000000000000000081529050610f05565b60408082528101611d6d81611ec2565b60308152602081017f496e76616c696420696e636c7573696f6e2070726f6f6620666f722063726f7381527f7320636861696e206d6573736167652e0000000000000000000000000000000060208201529050611501565b60208082528101610e9081611f04565b67ffffffffffffffff918216919081169082820190811115610e9057610e9061161e565b634e487b7160e01b600052603260045260246000fd5b600060018201611fb857611fb861161e565b506001019056fea2646970667358221220b765f1dcb71fc1a477b68645e3b185262574a58a520c2f06b8b8758eaac24c8364736f6c63430008150033a2646970667358221220ac70be67404d33a141c9e08884c79536a0b85c8cb414bc8b0fdb9d84b72d499464736f6c63430008150033 \ No newline at end of file diff --git a/contracts/exported/src/messaging/MerkleTreeMessageBus.sol/MerkleTreeMessageBus.bin b/contracts/exported/src/messaging/MerkleTreeMessageBus.sol/MerkleTreeMessageBus.bin index 67bd5235dd..cc8d327af4 100644 --- a/contracts/exported/src/messaging/MerkleTreeMessageBus.sol/MerkleTreeMessageBus.bin +++ b/contracts/exported/src/messaging/MerkleTreeMessageBus.sol/MerkleTreeMessageBus.bin @@ -1 +1 @@ -60806040523480156200001157600080fd5b50338062000040576000604051631e4fbdf760e01b8152600401620000379190620000c6565b60405180910390fd5b6200004b8162000052565b50620000d6565b600080546001600160a01b038381166001600160a01b0319831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b60006001600160a01b0382165b92915050565b620000c081620000a2565b82525050565b60208101620000af8284620000b5565b611c9080620000e66000396000f3fe6080604052600436106100e15760003560e01c80639730886d1161007f578063b201246f11610059578063b201246f146102d4578063b6aed0cb146102f4578063e138a8d214610314578063f2fde38b1461033457610155565b80639730886d1461026757806399a3ad2114610287578063b1454caa146102a757610155565b8063346633fb116100bb578063346633fb146101f957806336d2da901461020c578063715018a61461022c5780638da5cb5b1461024157610155565b80630fcfbd11146101765780630fe9188e146101ac57806333a88c72146101cc57610155565b36610155576040517f346633fb000000000000000000000000000000000000000000000000000000008152309063346633fb9034906101269033908390600401610bea565b6000604051808303818588803b15801561013f57600080fd5b505af1158015610153573d6000803e3d6000fd5b005b60405162461bcd60e51b815260040161016d90610c39565b60405180910390fd5b34801561018257600080fd5b50610196610191366004610c64565b610354565b6040516101a39190610c9f565b60405180910390f35b3480156101b857600080fd5b506101536101c7366004610cc5565b6103b4565b3480156101d857600080fd5b506101ec6101e7366004610c64565b6103fa565b6040516101a39190610cee565b610153610207366004610d10565b61044d565b34801561021857600080fd5b50610153610227366004610d4d565b6104d7565b34801561023857600080fd5b50610153610556565b34801561024d57600080fd5b506000546001600160a01b03166040516101a39190610d6e565b34801561027357600080fd5b50610153610282366004610d7c565b61056a565b34801561029357600080fd5b506101536102a2366004610d10565b610666565b3480156102b357600080fd5b506102c76102c2366004610e35565b6106e6565b6040516101a39190610ec9565b3480156102e057600080fd5b506101536102ef366004610f37565b61073f565b34801561030057600080fd5b5061015361030f366004610fa7565b610840565b34801561032057600080fd5b5061015361032f366004610fc9565b610886565b34801561034057600080fd5b5061015361034f366004610d4d565b6109c9565b6000808260405160200161036891906111e6565b60408051601f19818403018152918152815160209283012060008181526001909352912054909150806103ad5760405162461bcd60e51b815260040161016d90611235565b9392505050565b6103bc610a20565b60008181526004602052604081205490036103e95760405162461bcd60e51b815260040161016d90611277565b600090815260046020526040812055565b6000808260405160200161040e91906111e6565b60408051601f1981840301815291815281516020928301206000818152600190935291205490915080158015906104455750428111155b949350505050565b60003411801561045c57508034145b6104785760405162461bcd60e51b815260040161016d906112df565b600061048333610a66565b9050826001600160a01b0316336001600160a01b03167f50c536ac33a920f00755865b831d17bf4cff0b2e0345f65b16d52bfc004068b634846040516104ca9291906112ef565b60405180910390a3505050565b6104df610a20565b6000816001600160a01b03164760405160006040518083038185875af1925050503d806000811461052c576040519150601f19603f3d011682016040523d82523d6000602084013e610531565b606091505b50509050806105525760405162461bcd60e51b815260040161016d9061133c565b5050565b61055e610a20565b6105686000610ac4565b565b610572610a20565b600061057e8242611362565b905060008360405160200161059391906111e6565b60408051601f19818403018152918152815160209283012060008181526001909352912054909150156105d85760405162461bcd60e51b815260040161016d906113cd565b60008181526001602090815260408220849055600291906105fb90870187610d4d565b6001600160a01b03168152602081019190915260400160009081209061062760808701606088016113dd565b63ffffffff1681526020808201929092526040016000908120805460018101825590825291902085916004020161065e8282611844565b505050505050565b61066e610a20565b6000826001600160a01b03168260405160006040518083038185875af1925050503d80600081146106bb576040519150601f19603f3d011682016040523d82523d6000602084013e6106c0565b606091505b50509050806106e15760405162461bcd60e51b815260040161016d9061133c565b505050565b60006106f133610a66565b90507fb93c37389233beb85a3a726c3f15c2d15533ee74cb602f20f490dfffef7759373382888888888860405161072e979695949392919061184e565b60405180910390a195945050505050565b600081815260046020526040812054900361076c5760405162461bcd60e51b815260040161016d90611909565b60008181526004602052604090205442101561079a5760405162461bcd60e51b815260040161016d90611955565b6000846040516020016107ad91906119da565b604051602081830303815290604052805190602001206040516020016107d39190611a1a565b60405160208183030381529060405280519060200120905061081d848484846040516020016108029190611a39565b60405160208183030381529060405280519060200120610b2c565b6108395760405162461bcd60e51b815260040161016d90611aa3565b5050505050565b610848610a20565b600082815260046020526040902054156108745760405162461bcd60e51b815260040161016d90611b0b565b60009182526004602052604090912055565b60008181526004602052604081205490036108b35760405162461bcd60e51b815260040161016d90611909565b6000818152600460205260409020544210156108e15760405162461bcd60e51b815260040161016d90611955565b60006108f06020860186610d4d565b6109006040870160208801611b1b565b61091060608801604089016113dd565b6109206080890160608a016113dd565b61092d60808a018a611556565b61093d60c08c0160a08d01611b3c565b604051602001610953979695949392919061184e565b60405160208183030381529060405280519060200120905060008160405160200161097e9190611b8f565b6040516020818303038152906040528051906020012090506109ad858585846040516020016108029190611a39565b61065e5760405162461bcd60e51b815260040161016d90611bf7565b6109d1610a20565b6001600160a01b038116610a145760006040517f1e4fbdf700000000000000000000000000000000000000000000000000000000815260040161016d9190610d6e565b610a1d81610ac4565b50565b6000546001600160a01b0316331461056857336040517f118cdaa700000000000000000000000000000000000000000000000000000000815260040161016d9190610d6e565b6001600160a01b0381166000908152600360205260408120805467ffffffffffffffff169160019190610a998385611c07565b92506101000a81548167ffffffffffffffff021916908367ffffffffffffffff160217905550919050565b600080546001600160a01b038381167fffffffffffffffffffffffff0000000000000000000000000000000000000000831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b600082610b3a868685610b44565b1495945050505050565b600081815b84811015610b8757610b7382878784818110610b6757610b67611c2b565b90506020020135610b90565b915080610b7f81611c41565b915050610b49565b50949350505050565b6000818310610bac576000828152602084905260409020610bbb565b60008381526020839052604090205b90505b92915050565b60006001600160a01b038216610bbe565b610bde81610bc4565b82525050565b80610bde565b60408101610bf88285610bd5565b6103ad6020830184610be4565b600b8152602081017f756e737570706f72746564000000000000000000000000000000000000000000815290505b60200190565b60208082528101610bbe81610c05565b600060c08284031215610c5e57610c5e600080fd5b50919050565b600060208284031215610c7957610c79600080fd5b813567ffffffffffffffff811115610c9357610c93600080fd5b61044584828501610c49565b60208101610bbe8284610be4565b805b8114610a1d57600080fd5b8035610bbe81610cad565b600060208284031215610cda57610cda600080fd5b60006104458484610cba565b801515610bde565b60208101610bbe8284610ce6565b610caf81610bc4565b8035610bbe81610cfc565b60008060408385031215610d2657610d26600080fd5b6000610d328585610d05565b9250506020610d4385828601610cba565b9150509250929050565b600060208284031215610d6257610d62600080fd5b60006104458484610d05565b60208101610bbe8284610bd5565b60008060408385031215610d9257610d92600080fd5b823567ffffffffffffffff811115610dac57610dac600080fd5b610d3285828601610c49565b63ffffffff8116610caf565b8035610bbe81610db8565b60008083601f840112610de457610de4600080fd5b50813567ffffffffffffffff811115610dff57610dff600080fd5b602083019150836001820283011115610e1a57610e1a600080fd5b9250929050565b60ff8116610caf565b8035610bbe81610e21565b600080600080600060808688031215610e5057610e50600080fd5b6000610e5c8888610dc4565b9550506020610e6d88828901610dc4565b945050604086013567ffffffffffffffff811115610e8d57610e8d600080fd5b610e9988828901610dcf565b93509350506060610eac88828901610e2a565b9150509295509295909350565b67ffffffffffffffff8116610bde565b60208101610bbe8284610eb9565b600060808284031215610c5e57610c5e600080fd5b60008083601f840112610f0157610f01600080fd5b50813567ffffffffffffffff811115610f1c57610f1c600080fd5b602083019150836020820283011115610e1a57610e1a600080fd5b60008060008060c08587031215610f5057610f50600080fd5b6000610f5c8787610ed7565b945050608085013567ffffffffffffffff811115610f7c57610f7c600080fd5b610f8887828801610eec565b935093505060a0610f9b87828801610cba565b91505092959194509250565b60008060408385031215610fbd57610fbd600080fd5b6000610d328585610cba565b60008060008060608587031215610fe257610fe2600080fd5b843567ffffffffffffffff811115610ffc57610ffc600080fd5b61100887828801610c49565b945050602085013567ffffffffffffffff81111561102857611028600080fd5b61103487828801610eec565b93509350506040610f9b87828801610cba565b506000610bbe6020830183610d05565b67ffffffffffffffff8116610caf565b8035610bbe81611057565b506000610bbe6020830183611067565b506000610bbe6020830183610dc4565b63ffffffff8116610bde565b6000808335601e19368590030181126110b9576110b9600080fd5b830160208101925035905067ffffffffffffffff8111156110dc576110dc600080fd5b36819003821315610e1a57610e1a600080fd5b82818337506000910152565b81835260208301925061110f8284836110ef565b50601f01601f19160190565b506000610bbe6020830183610e2a565b60ff8116610bde565b600060c083016111448380611047565b61114e8582610bd5565b5061115c6020840184611072565b6111696020860182610eb9565b506111776040840184611082565b6111846040860182611092565b506111926060840184611082565b61119f6060860182611092565b506111ad608084018461109e565b85830360808701526111c08382846110fb565b925050506111d160a084018461111b565b6111de60a086018261112b565b509392505050565b60208082528101610bbb8184611134565b60218152602081017f54686973206d65737361676520776173206e65766572207375626d69747465648152601760f91b602082015290505b60400190565b60208082528101610bbe816111f7565b601a8152602081017f537461746520726f6f7420646f6573206e6f742065786973742e00000000000081529050610c33565b60208082528101610bbe81611245565b60308152602081017f417474656d7074696e6720746f2073656e642076616c756520776974686f757481527f2070726f766964696e67204574686572000000000000000000000000000000006020820152905061122f565b60208082528101610bbe81611287565b604081016112fd8285610be4565b6103ad6020830184610eb9565b60148152602081017f6661696c65642073656e64696e672076616c756500000000000000000000000081529050610c33565b60208082528101610bbe8161130a565b634e487b7160e01b600052601160045260246000fd5b80820180821115610bbe57610bbe61134c565b60218152602081017f4d657373616765207375626d6974746564206d6f7265207468616e206f6e636581527f21000000000000000000000000000000000000000000000000000000000000006020820152905061122f565b60208082528101610bbe81611375565b6000602082840312156113f2576113f2600080fd5b60006104458484610dc4565b60008135610bbe81610cfc565b60006001600160a01b03835b81169019929092169190911792915050565b6000610bbe6001600160a01b038316611440565b90565b6001600160a01b031690565b6000610bbe82611429565b6000610bbe8261144c565b61146b82611457565b61147681835461140b565b8255505050565b60008135610bbe81611057565b60007bffffffffffffffff00000000000000000000000000000000000000006114178460a01b90565b600067ffffffffffffffff8216610bbe565b6114ce826114b3565b61147681835461148a565b60008135610bbe81610db8565b60007fffffffff000000000000000000000000000000000000000000000000000000006114178460e01b90565b600063ffffffff8216610bbe565b61152a82611513565b6114768183546114e6565b600063ffffffff83611417565b61154b82611513565b611476818354611535565b6000808335601e193685900301811261157157611571600080fd5b8301915050803567ffffffffffffffff81111561159057611590600080fd5b602082019150600181023603821315610e1a57610e1a600080fd5b634e487b7160e01b600052604160045260246000fd5b634e487b7160e01b600052602260045260246000fd5b6002810460018216806115eb57607f821691505b602082108103610c5e57610c5e6115c1565b6000610bbe61143d8381565b611612836115fd565b815460001960089490940293841b1916921b91909117905550565b60006106e1818484611609565b818110156105525761164d60008261162d565b60010161163a565b601f8211156106e1576000818152602090206020601f8501048101602085101561167c5750805b6108396020601f86010483018261163a565b8267ffffffffffffffff8111156116a7576116a76115ab565b6116b182546115d7565b6116bc828285611655565b506000601f8211600181146116f157600083156116d95750848201355b600019600885021c198116600285021785555061065e565b600084815260209020601f19841690835b828110156117225787850135825560209485019460019092019101611702565b508482101561173f57600019601f86166008021c19848801351681555b5050505060020260010190555050565b6106e183838361168e565b60008135610bbe81610e21565b600060ff83611417565b600060ff8216610bbe565b61178582611771565b611476818354611767565b80828061179c816113fe565b90506117a88184611462565b505060208301806117b88261147d565b90506117c481846114c5565b505060408301806117d4826114d9565b90506117e08184611521565b5050506001810160608301806117f5826114d9565b90506118018184611542565b50505060028101608083016118168185611556565b915061182382828561174f565b5050506003810160a08301806118388261175a565b9050610839818461177c565b6105528282611790565b60c0810161185c828a610bd5565b6118696020830189610eb9565b6118766040830188611092565b6118836060830187611092565b81810360808301526118968185876110fb565b90506118a560a083018461112b565b98975050505050505050565b602a8152602081017f526f6f74206973206e6f74207075626c6973686564206f6e2074686973206d6581527f7373616765206275732e000000000000000000000000000000000000000000006020820152905061122f565b60208082528101610bbe816118b1565b60218152602081017f526f6f74206973206e6f7420636f6e736964657265642066696e616c207965748152601760f91b6020820152905061122f565b60208082528101610bbe81611919565b506000610bbe6020830183610cba565b61197f8180611047565b6119898382610bd5565b506119976020820182611047565b6119a46020840182610bd5565b506119b26040820182611965565b6119bf6040840182610be4565b506119cd6060820182611072565b6106e16060840182610eb9565b60808101610bbe8284611975565b60018152602081017f760000000000000000000000000000000000000000000000000000000000000081529050610c33565b60408082528101611a2a816119e8565b9050610bbe6020830184610be4565b611a438183610be4565b602001919050565b60338152602081017f496e76616c696420696e636c7573696f6e2070726f6f6620666f722076616c7581527f65207472616e73666572206d6573736167652e000000000000000000000000006020820152905061122f565b60208082528101610bbe81611a4b565b60258152602081017f526f6f7420616c726561647920616464656420746f20746865206d657373616781527f65206275730000000000000000000000000000000000000000000000000000006020820152905061122f565b60208082528101610bbe81611ab3565b600060208284031215611b3057611b30600080fd5b60006104458484611067565b600060208284031215611b5157611b51600080fd5b60006104458484610e2a565b60018152602081017f6d0000000000000000000000000000000000000000000000000000000000000081529050610c33565b60408082528101611a2a81611b5d565b60308152602081017f496e76616c696420696e636c7573696f6e2070726f6f6620666f722063726f7381527f7320636861696e206d6573736167652e000000000000000000000000000000006020820152905061122f565b60208082528101610bbe81611b9f565b67ffffffffffffffff918216919081169082820190811115610bbe57610bbe61134c565b634e487b7160e01b600052603260045260246000fd5b600060018201611c5357611c5361134c565b506001019056fea2646970667358221220c14e2710742599f7771122ca1f57bd3ae8ca32813cfd99de41e7782f2b9bc44a64736f6c63430008140033 \ No newline at end of file +60806040523480156200001157600080fd5b506200001d336200002d565b620000276200009e565b62000152565b7f9016d09d72d40fdae2fd8ceac6b6234c7706214fd39c1cd1e609a0528c19930080546001600160a01b031981166001600160a01b03848116918217845560405192169182907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e090600090a3505050565b7ff0c57e16840df040f15088dc2f81fe391c3923bec73e23a9662efc9c229c6a00805468010000000000000000900460ff1615620000ef5760405163f92ee8a960e01b815260040160405180910390fd5b80546001600160401b03908116146200014f5780546001600160401b0319166001600160401b0390811782556040519081527fc7f505b2f371ae2175ee4913f4499e1f2633a7b5936321eed1cdaeb6115181d29060200160405180910390a15b50565b611ff580620001626000396000f3fe6080604052600436106100ec5760003560e01c80639730886d1161008a578063b6aed0cb11610059578063b6aed0cb1461031e578063c4d66de81461033e578063e138a8d21461035e578063f2fde38b1461037e57610160565b80639730886d1461029157806399a3ad21146102b1578063b1454caa146102d1578063b201246f146102fe57610160565b8063346633fb116100c6578063346633fb1461020457806336d2da9014610217578063715018a6146102375780638da5cb5b1461024c57610160565b80630fcfbd11146101815780630fe9188e146101b757806333a88c72146101d757610160565b36610160576040517f346633fb000000000000000000000000000000000000000000000000000000008152309063346633fb9034906101319033908390600401610ebc565b6000604051808303818588803b15801561014a57600080fd5b505af115801561015e573d6000803e3d6000fd5b005b60405162461bcd60e51b815260040161017890610f0b565b60405180910390fd5b34801561018d57600080fd5b506101a161019c366004610f36565b61039e565b6040516101ae9190610f71565b60405180910390f35b3480156101c357600080fd5b5061015e6101d2366004610f97565b6103fd565b3480156101e357600080fd5b506101f76101f2366004610f36565b610443565b6040516101ae9190610fc0565b61015e610212366004610fe2565b610495565b34801561022357600080fd5b5061015e61023236600461101f565b61051f565b34801561024357600080fd5b5061015e61059e565b34801561025857600080fd5b507f9016d09d72d40fdae2fd8ceac6b6234c7706214fd39c1cd1e609a0528c199300546001600160a01b03166040516101ae9190611040565b34801561029d57600080fd5b5061015e6102ac36600461104e565b6105b2565b3480156102bd57600080fd5b5061015e6102cc366004610fe2565b610727565b3480156102dd57600080fd5b506102f16102ec366004611107565b6107a7565b6040516101ae919061119b565b34801561030a57600080fd5b5061015e610319366004611209565b610800565b34801561032a57600080fd5b5061015e610339366004611279565b610901565b34801561034a57600080fd5b5061015e61035936600461101f565b610947565b34801561036a57600080fd5b5061015e61037936600461129b565b610a89565b34801561038a57600080fd5b5061015e61039936600461101f565b610bcc565b600080826040516020016103b291906114b8565b60408051601f198184030181529181528151602092830120600081815292839052912054909150806103f65760405162461bcd60e51b815260040161017890611507565b9392505050565b610405610c23565b60008181526003602052604081205490036104325760405162461bcd60e51b815260040161017890611549565b600090815260036020526040812055565b6000808260405160200161045791906114b8565b60408051601f198184030181529181528151602092830120600081815292839052912054909150801580159061048d5750428111155b949350505050565b6000341180156104a457508034145b6104c05760405162461bcd60e51b8152600401610178906115b1565b60006104cb33610c97565b9050826001600160a01b0316336001600160a01b03167f50c536ac33a920f00755865b831d17bf4cff0b2e0345f65b16d52bfc004068b634846040516105129291906115c1565b60405180910390a3505050565b610527610c23565b6000816001600160a01b03164760405160006040518083038185875af1925050503d8060008114610574576040519150601f19603f3d011682016040523d82523d6000602084013e610579565b606091505b505090508061059a5760405162461bcd60e51b81526004016101789061160e565b5050565b6105a6610c23565b6105b06000610cf5565b565b60006105bf600130611634565b90506105f27f9016d09d72d40fdae2fd8ceac6b6234c7706214fd39c1cd1e609a0528c199300546001600160a01b031690565b6001600160a01b0316336001600160a01b031614806106195750336001600160a01b038216145b6106355760405162461bcd60e51b815260040161017890611689565b60006106418342611699565b905060008460405160200161065691906114b8565b60408051601f1981840301815291815281516020928301206000818152928390529120549091501561069a5760405162461bcd60e51b815260040161017890611704565b6000818152602081815260408220849055600191906106bb9088018861101f565b6001600160a01b0316815260208101919091526040016000908120906106e76080880160608901611714565b63ffffffff1681526020808201929092526040016000908120805460018101825590825291902086916004020161071e8282611b87565b50505050505050565b61072f610c23565b6000826001600160a01b03168260405160006040518083038185875af1925050503d806000811461077c576040519150601f19603f3d011682016040523d82523d6000602084013e610781565b606091505b50509050806107a25760405162461bcd60e51b81526004016101789061160e565b505050565b60006107b233610c97565b90507fb93c37389233beb85a3a726c3f15c2d15533ee74cb602f20f490dfffef775937338288888888886040516107ef9796959493929190611b91565b60405180910390a195945050505050565b600081815260036020526040812054900361082d5760405162461bcd60e51b815260040161017890611c4c565b60008181526003602052604090205442101561085b5760405162461bcd60e51b815260040161017890611c98565b60008460405160200161086e9190611d1d565b604051602081830303815290604052805190602001206040516020016108949190611d5d565b6040516020818303038152906040528051906020012090506108de848484846040516020016108c39190611d7c565b60405160208183030381529060405280519060200120610d7e565b6108fa5760405162461bcd60e51b815260040161017890611de6565b5050505050565b610909610c23565b600082815260036020526040902054156109355760405162461bcd60e51b815260040161017890611e4e565b60009182526003602052604090912055565b7ff0c57e16840df040f15088dc2f81fe391c3923bec73e23a9662efc9c229c6a00805468010000000000000000810460ff16159067ffffffffffffffff166000811580156109925750825b905060008267ffffffffffffffff1660011480156109af5750303b155b9050811580156109bd575080155b156109f4576040517ff92ee8a900000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b845467ffffffffffffffff191660011785558315610a2857845468ff00000000000000001916680100000000000000001785555b610a3186610d96565b8315610a8157845468ff0000000000000000191685556040517fc7f505b2f371ae2175ee4913f4499e1f2633a7b5936321eed1cdaeb6115181d290610a7890600190611e72565b60405180910390a15b505050505050565b6000818152600360205260408120549003610ab65760405162461bcd60e51b815260040161017890611c4c565b600081815260036020526040902054421015610ae45760405162461bcd60e51b815260040161017890611c98565b6000610af3602086018661101f565b610b036040870160208801611e80565b610b136060880160408901611714565b610b236080890160608a01611714565b610b3060808a018a611899565b610b4060c08c0160a08d01611ea1565b604051602001610b569796959493929190611b91565b604051602081830303815290604052805190602001209050600081604051602001610b819190611ef4565b604051602081830303815290604052805190602001209050610bb0858585846040516020016108c39190611d7c565b610a815760405162461bcd60e51b815260040161017890611f5c565b610bd4610c23565b6001600160a01b038116610c175760006040517f1e4fbdf70000000000000000000000000000000000000000000000000000000081526004016101789190611040565b610c2081610cf5565b50565b33610c557f9016d09d72d40fdae2fd8ceac6b6234c7706214fd39c1cd1e609a0528c199300546001600160a01b031690565b6001600160a01b0316146105b057336040517f118cdaa70000000000000000000000000000000000000000000000000000000081526004016101789190611040565b6001600160a01b0381166000908152600260205260408120805467ffffffffffffffff169160019190610cca8385611f6c565b92506101000a81548167ffffffffffffffff021916908367ffffffffffffffff160217905550919050565b7f9016d09d72d40fdae2fd8ceac6b6234c7706214fd39c1cd1e609a0528c19930080547fffffffffffffffffffffffff000000000000000000000000000000000000000081166001600160a01b03848116918217845560405192169182907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e090600090a3505050565b600082610d8c868685610da7565b1495945050505050565b610d9e610df3565b610c2081610e5a565b600081815b84811015610dea57610dd682878784818110610dca57610dca611f90565b90506020020135610e62565b915080610de281611fa6565b915050610dac565b50949350505050565b7ff0c57e16840df040f15088dc2f81fe391c3923bec73e23a9662efc9c229c6a005468010000000000000000900460ff166105b0576040517fd7e6bcf800000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b610bd4610df3565b6000818310610e7e576000828152602084905260409020610e8d565b60008381526020839052604090205b90505b92915050565b60006001600160a01b038216610e90565b610eb081610e96565b82525050565b80610eb0565b60408101610eca8285610ea7565b6103f66020830184610eb6565b600b8152602081017f756e737570706f72746564000000000000000000000000000000000000000000815290505b60200190565b60208082528101610e9081610ed7565b600060c08284031215610f3057610f30600080fd5b50919050565b600060208284031215610f4b57610f4b600080fd5b813567ffffffffffffffff811115610f6557610f65600080fd5b61048d84828501610f1b565b60208101610e908284610eb6565b805b8114610c2057600080fd5b8035610e9081610f7f565b600060208284031215610fac57610fac600080fd5b600061048d8484610f8c565b801515610eb0565b60208101610e908284610fb8565b610f8181610e96565b8035610e9081610fce565b60008060408385031215610ff857610ff8600080fd5b60006110048585610fd7565b925050602061101585828601610f8c565b9150509250929050565b60006020828403121561103457611034600080fd5b600061048d8484610fd7565b60208101610e908284610ea7565b6000806040838503121561106457611064600080fd5b823567ffffffffffffffff81111561107e5761107e600080fd5b61100485828601610f1b565b63ffffffff8116610f81565b8035610e908161108a565b60008083601f8401126110b6576110b6600080fd5b50813567ffffffffffffffff8111156110d1576110d1600080fd5b6020830191508360018202830111156110ec576110ec600080fd5b9250929050565b60ff8116610f81565b8035610e90816110f3565b60008060008060006080868803121561112257611122600080fd5b600061112e8888611096565b955050602061113f88828901611096565b945050604086013567ffffffffffffffff81111561115f5761115f600080fd5b61116b888289016110a1565b9350935050606061117e888289016110fc565b9150509295509295909350565b67ffffffffffffffff8116610eb0565b60208101610e90828461118b565b600060808284031215610f3057610f30600080fd5b60008083601f8401126111d3576111d3600080fd5b50813567ffffffffffffffff8111156111ee576111ee600080fd5b6020830191508360208202830111156110ec576110ec600080fd5b60008060008060c0858703121561122257611222600080fd5b600061122e87876111a9565b945050608085013567ffffffffffffffff81111561124e5761124e600080fd5b61125a878288016111be565b935093505060a061126d87828801610f8c565b91505092959194509250565b6000806040838503121561128f5761128f600080fd5b60006110048585610f8c565b600080600080606085870312156112b4576112b4600080fd5b843567ffffffffffffffff8111156112ce576112ce600080fd5b6112da87828801610f1b565b945050602085013567ffffffffffffffff8111156112fa576112fa600080fd5b611306878288016111be565b9350935050604061126d87828801610f8c565b506000610e906020830183610fd7565b67ffffffffffffffff8116610f81565b8035610e9081611329565b506000610e906020830183611339565b506000610e906020830183611096565b63ffffffff8116610eb0565b6000808335601e193685900301811261138b5761138b600080fd5b830160208101925035905067ffffffffffffffff8111156113ae576113ae600080fd5b368190038213156110ec576110ec600080fd5b82818337506000910152565b8183526020830192506113e18284836113c1565b50601f01601f19160190565b506000610e9060208301836110fc565b60ff8116610eb0565b600060c083016114168380611319565b6114208582610ea7565b5061142e6020840184611344565b61143b602086018261118b565b506114496040840184611354565b6114566040860182611364565b506114646060840184611354565b6114716060860182611364565b5061147f6080840184611370565b85830360808701526114928382846113cd565b925050506114a360a08401846113ed565b6114b060a08601826113fd565b509392505050565b60208082528101610e8d8184611406565b60218152602081017f54686973206d65737361676520776173206e65766572207375626d69747465648152601760f91b602082015290505b60400190565b60208082528101610e90816114c9565b601a8152602081017f537461746520726f6f7420646f6573206e6f742065786973742e00000000000081529050610f05565b60208082528101610e9081611517565b60308152602081017f417474656d7074696e6720746f2073656e642076616c756520776974686f757481527f2070726f766964696e672045746865720000000000000000000000000000000060208201529050611501565b60208082528101610e9081611559565b604081016115cf8285610eb6565b6103f6602083018461118b565b60148152602081017f6661696c65642073656e64696e672076616c756500000000000000000000000081529050610f05565b60208082528101610e90816115dc565b634e487b7160e01b600052601160045260246000fd5b6001600160a01b03918216919081169082820390811115610e9057610e9061161e565b60118152602081017f4e6f74206f776e6572206f722073656c6600000000000000000000000000000081529050610f05565b60208082528101610e9081611657565b80820180821115610e9057610e9061161e565b60218152602081017f4d657373616765207375626d6974746564206d6f7265207468616e206f6e636581527f210000000000000000000000000000000000000000000000000000000000000060208201529050611501565b60208082528101610e90816116ac565b60006020828403121561172957611729600080fd5b600061048d8484611096565b60008135610e9081610fce565b60006001600160a01b03835b81169019929092169190911792915050565b6000610e906001600160a01b038316611777565b90565b6001600160a01b031690565b6000610e9082611760565b6000610e9082611783565b6117a28261178e565b6117ad818354611742565b8255505050565b60008135610e9081611329565b60007bffffffffffffffff000000000000000000000000000000000000000061174e8460a01b90565b6000610e9067ffffffffffffffff83165b67ffffffffffffffff1690565b611811826117ea565b6117ad8183546117c1565b60008135610e908161108a565b60007fffffffff0000000000000000000000000000000000000000000000000000000061174e8460e01b90565b600063ffffffff8216610e90565b61186d82611856565b6117ad818354611829565b600063ffffffff8361174e565b61188e82611856565b6117ad818354611878565b6000808335601e19368590030181126118b4576118b4600080fd5b8301915050803567ffffffffffffffff8111156118d3576118d3600080fd5b6020820191506001810236038213156110ec576110ec600080fd5b634e487b7160e01b600052604160045260246000fd5b634e487b7160e01b600052602260045260246000fd5b60028104600182168061192e57607f821691505b602082108103610f3057610f30611904565b6000610e906117748381565b61195583611940565b815460001960089490940293841b1916921b91909117905550565b60006107a281848461194c565b8181101561059a57611990600082611970565b60010161197d565b601f8211156107a2576000818152602090206020601f850104810160208510156119bf5750805b6108fa6020601f86010483018261197d565b8267ffffffffffffffff8111156119ea576119ea6118ee565b6119f4825461191a565b6119ff828285611998565b506000601f821160018114611a345760008315611a1c5750848201355b600019600885021c1981166002850217855550610a81565b600084815260209020601f19841690835b82811015611a655787850135825560209485019460019092019101611a45565b5084821015611a8257600019601f86166008021c19848801351681555b5050505060020260010190555050565b6107a28383836119d1565b60008135610e90816110f3565b600060ff8361174e565b600060ff8216610e90565b611ac882611ab4565b6117ad818354611aaa565b808280611adf81611735565b9050611aeb8184611799565b50506020830180611afb826117b4565b9050611b078184611808565b50506040830180611b178261181c565b9050611b238184611864565b505050600181016060830180611b388261181c565b9050611b448184611885565b5050506002810160808301611b598185611899565b9150611b66828285611a92565b5050506003810160a0830180611b7b82611a9d565b90506108fa8184611abf565b61059a8282611ad3565b60c08101611b9f828a610ea7565b611bac602083018961118b565b611bb96040830188611364565b611bc66060830187611364565b8181036080830152611bd98185876113cd565b9050611be860a08301846113fd565b98975050505050505050565b602a8152602081017f526f6f74206973206e6f74207075626c6973686564206f6e2074686973206d6581527f7373616765206275732e0000000000000000000000000000000000000000000060208201529050611501565b60208082528101610e9081611bf4565b60218152602081017f526f6f74206973206e6f7420636f6e736964657265642066696e616c207965748152601760f91b60208201529050611501565b60208082528101610e9081611c5c565b506000610e906020830183610f8c565b611cc28180611319565b611ccc8382610ea7565b50611cda6020820182611319565b611ce76020840182610ea7565b50611cf56040820182611ca8565b611d026040840182610eb6565b50611d106060820182611344565b6107a2606084018261118b565b60808101610e908284611cb8565b60018152602081017f760000000000000000000000000000000000000000000000000000000000000081529050610f05565b60408082528101611d6d81611d2b565b9050610e906020830184610eb6565b611d868183610eb6565b602001919050565b60338152602081017f496e76616c696420696e636c7573696f6e2070726f6f6620666f722076616c7581527f65207472616e73666572206d6573736167652e0000000000000000000000000060208201529050611501565b60208082528101610e9081611d8e565b60258152602081017f526f6f7420616c726561647920616464656420746f20746865206d657373616781527f652062757300000000000000000000000000000000000000000000000000000060208201529050611501565b60208082528101610e9081611df6565b6000610e90826117fb565b610eb081611e5e565b60208101610e908284611e69565b600060208284031215611e9557611e95600080fd5b600061048d8484611339565b600060208284031215611eb657611eb6600080fd5b600061048d84846110fc565b60018152602081017f6d0000000000000000000000000000000000000000000000000000000000000081529050610f05565b60408082528101611d6d81611ec2565b60308152602081017f496e76616c696420696e636c7573696f6e2070726f6f6620666f722063726f7381527f7320636861696e206d6573736167652e0000000000000000000000000000000060208201529050611501565b60208082528101610e9081611f04565b67ffffffffffffffff918216919081169082820190811115610e9057610e9061161e565b634e487b7160e01b600052603260045260246000fd5b600060018201611fb857611fb861161e565b506001019056fea2646970667358221220b765f1dcb71fc1a477b68645e3b185262574a58a520c2f06b8b8758eaac24c8364736f6c63430008150033 \ No newline at end of file diff --git a/contracts/exported/src/messaging/MerkleTreeMessageBus.sol/MerkleTreeMessageBus.json b/contracts/exported/src/messaging/MerkleTreeMessageBus.sol/MerkleTreeMessageBus.json index c23ddc2777..72f35cdc44 100644 --- a/contracts/exported/src/messaging/MerkleTreeMessageBus.sol/MerkleTreeMessageBus.json +++ b/contracts/exported/src/messaging/MerkleTreeMessageBus.sol/MerkleTreeMessageBus.json @@ -4,6 +4,16 @@ "stateMutability": "nonpayable", "type": "constructor" }, + { + "inputs": [], + "name": "InvalidInitialization", + "type": "error" + }, + { + "inputs": [], + "name": "NotInitializing", + "type": "error" + }, { "inputs": [ { @@ -26,6 +36,19 @@ "name": "OwnableUnauthorizedAccount", "type": "error" }, + { + "anonymous": false, + "inputs": [ + { + "indexed": false, + "internalType": "uint64", + "name": "version", + "type": "uint64" + } + ], + "name": "Initialized", + "type": "event" + }, { "anonymous": false, "inputs": [ @@ -205,6 +228,19 @@ "stateMutability": "view", "type": "function" }, + { + "inputs": [ + { + "internalType": "address", + "name": "caller", + "type": "address" + } + ], + "name": "initialize", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + }, { "inputs": [], "name": "owner", diff --git a/contracts/exported/src/messaging/MessageBus.sol/MessageBus.bin b/contracts/exported/src/messaging/MessageBus.sol/MessageBus.bin index 45949c5fda..89776c626c 100644 --- a/contracts/exported/src/messaging/MessageBus.sol/MessageBus.bin +++ b/contracts/exported/src/messaging/MessageBus.sol/MessageBus.bin @@ -1 +1 @@ -608060405234801561001057600080fd5b50338061003c576000604051631e4fbdf760e01b815260040161003391906100bd565b60405180910390fd5b6100458161004b565b506100cb565b600080546001600160a01b038381166001600160a01b0319831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b60006001600160a01b0382165b92915050565b6100b78161009b565b82525050565b602081016100a882846100ae565b61134d806100da6000396000f3fe6080604052600436106100b55760003560e01c80638da5cb5b1161006957806399a3ad211161004e57806399a3ad211461023b578063b1454caa1461025b578063f2fde38b1461028857610129565b80638da5cb5b146101f55780639730886d1461021b57610129565b8063346633fb1161009a578063346633fb146101ad57806336d2da90146101c0578063715018a6146101e057610129565b80630fcfbd111461014a57806333a88c721461018057610129565b36610129576040517f346633fb000000000000000000000000000000000000000000000000000000008152309063346633fb9034906100fa90339083906004016107d8565b6000604051808303818588803b15801561011357600080fd5b505af1158015610127573d6000803e3d6000fd5b005b60405162461bcd60e51b815260040161014190610827565b60405180910390fd5b34801561015657600080fd5b5061016a610165366004610852565b6102a8565b604051610177919061088d565b60405180910390f35b34801561018c57600080fd5b506101a061019b366004610852565b610308565b60405161017791906108a3565b6101276101bb3660046108e1565b61035b565b3480156101cc57600080fd5b506101276101db36600461091e565b6103e5565b3480156101ec57600080fd5b50610127610464565b34801561020157600080fd5b506000546001600160a01b0316604051610177919061093f565b34801561022757600080fd5b5061012761023636600461094d565b610478565b34801561024757600080fd5b506101276102563660046108e1565b610574565b34801561026757600080fd5b5061027b610276366004610a06565b6105f4565b6040516101779190610a9a565b34801561029457600080fd5b506101276102a336600461091e565b61064d565b600080826040516020016102bc9190610c47565b60408051601f19818403018152918152815160209283012060008181526001909352912054909150806103015760405162461bcd60e51b815260040161014190610cb2565b9392505050565b6000808260405160200161031c9190610c47565b60408051601f1981840301815291815281516020928301206000818152600190935291205490915080158015906103535750428111155b949350505050565b60003411801561036a57508034145b6103865760405162461bcd60e51b815260040161014190610d1a565b6000610391336106a4565b9050826001600160a01b0316336001600160a01b03167f50c536ac33a920f00755865b831d17bf4cff0b2e0345f65b16d52bfc004068b634846040516103d8929190610d2a565b60405180910390a3505050565b6103ed610702565b6000816001600160a01b03164760405160006040518083038185875af1925050503d806000811461043a576040519150601f19603f3d011682016040523d82523d6000602084013e61043f565b606091505b50509050806104605760405162461bcd60e51b815260040161014190610d77565b5050565b61046c610702565b6104766000610748565b565b610480610702565b600061048c8242610d9d565b90506000836040516020016104a19190610c47565b60408051601f19818403018152918152815160209283012060008181526001909352912054909150156104e65760405162461bcd60e51b815260040161014190610e08565b60008181526001602090815260408220849055600291906105099087018761091e565b6001600160a01b0316815260208101919091526040016000908120906105356080870160608801610e18565b63ffffffff1681526020808201929092526040016000908120805460018101825590825291902085916004020161056c8282611286565b505050505050565b61057c610702565b6000826001600160a01b03168260405160006040518083038185875af1925050503d80600081146105c9576040519150601f19603f3d011682016040523d82523d6000602084013e6105ce565b606091505b50509050806105ef5760405162461bcd60e51b815260040161014190610d77565b505050565b60006105ff336106a4565b90507fb93c37389233beb85a3a726c3f15c2d15533ee74cb602f20f490dfffef7759373382888888888860405161063c9796959493929190611290565b60405180910390a195945050505050565b610655610702565b6001600160a01b0381166106985760006040517f1e4fbdf7000000000000000000000000000000000000000000000000000000008152600401610141919061093f565b6106a181610748565b50565b6001600160a01b0381166000908152600360205260408120805467ffffffffffffffff1691600191906106d783856112f3565b92506101000a81548167ffffffffffffffff021916908367ffffffffffffffff160217905550919050565b6000546001600160a01b0316331461047657336040517f118cdaa7000000000000000000000000000000000000000000000000000000008152600401610141919061093f565b600080546001600160a01b038381167fffffffffffffffffffffffff0000000000000000000000000000000000000000831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b60006001600160a01b0382165b92915050565b6107cc816107b0565b82525050565b806107cc565b604081016107e682856107c3565b61030160208301846107d2565b600b8152602081017f756e737570706f72746564000000000000000000000000000000000000000000815290505b60200190565b602080825281016107bd816107f3565b600060c0828403121561084c5761084c600080fd5b50919050565b60006020828403121561086757610867600080fd5b813567ffffffffffffffff81111561088157610881600080fd5b61035384828501610837565b602081016107bd82846107d2565b8015156107cc565b602081016107bd828461089b565b6108ba816107b0565b81146106a157600080fd5b80356107bd816108b1565b806108ba565b80356107bd816108d0565b600080604083850312156108f7576108f7600080fd5b600061090385856108c5565b9250506020610914858286016108d6565b9150509250929050565b60006020828403121561093357610933600080fd5b600061035384846108c5565b602081016107bd82846107c3565b6000806040838503121561096357610963600080fd5b823567ffffffffffffffff81111561097d5761097d600080fd5b61090385828601610837565b63ffffffff81166108ba565b80356107bd81610989565b60008083601f8401126109b5576109b5600080fd5b50813567ffffffffffffffff8111156109d0576109d0600080fd5b6020830191508360018202830111156109eb576109eb600080fd5b9250929050565b60ff81166108ba565b80356107bd816109f2565b600080600080600060808688031215610a2157610a21600080fd5b6000610a2d8888610995565b9550506020610a3e88828901610995565b945050604086013567ffffffffffffffff811115610a5e57610a5e600080fd5b610a6a888289016109a0565b93509350506060610a7d888289016109fb565b9150509295509295909350565b67ffffffffffffffff81166107cc565b602081016107bd8284610a8a565b5060006107bd60208301836108c5565b67ffffffffffffffff81166108ba565b80356107bd81610ab8565b5060006107bd6020830183610ac8565b5060006107bd6020830183610995565b63ffffffff81166107cc565b6000808335601e1936859003018112610b1a57610b1a600080fd5b830160208101925035905067ffffffffffffffff811115610b3d57610b3d600080fd5b368190038213156109eb576109eb600080fd5b82818337506000910152565b818352602083019250610b70828483610b50565b50601f01601f19160190565b5060006107bd60208301836109fb565b60ff81166107cc565b600060c08301610ba58380610aa8565b610baf85826107c3565b50610bbd6020840184610ad3565b610bca6020860182610a8a565b50610bd86040840184610ae3565b610be56040860182610af3565b50610bf36060840184610ae3565b610c006060860182610af3565b50610c0e6080840184610aff565b8583036080870152610c21838284610b5c565b92505050610c3260a0840184610b7c565b610c3f60a0860182610b8c565b509392505050565b602080825281016103018184610b95565b60218152602081017f54686973206d65737361676520776173206e65766572207375626d697474656481527f2e00000000000000000000000000000000000000000000000000000000000000602082015290505b60400190565b602080825281016107bd81610c58565b60308152602081017f417474656d7074696e6720746f2073656e642076616c756520776974686f757481527f2070726f766964696e672045746865720000000000000000000000000000000060208201529050610cac565b602080825281016107bd81610cc2565b60408101610d3882856107d2565b6103016020830184610a8a565b60148152602081017f6661696c65642073656e64696e672076616c756500000000000000000000000081529050610821565b602080825281016107bd81610d45565b634e487b7160e01b600052601160045260246000fd5b808201808211156107bd576107bd610d87565b60218152602081017f4d657373616765207375626d6974746564206d6f7265207468616e206f6e636581527f210000000000000000000000000000000000000000000000000000000000000060208201529050610cac565b602080825281016107bd81610db0565b600060208284031215610e2d57610e2d600080fd5b60006103538484610995565b600081356107bd816108b1565b60006001600160a01b03835b81169019929092169190911792915050565b60006107bd6001600160a01b038316610e7b565b90565b6001600160a01b031690565b60006107bd82610e64565b60006107bd82610e87565b610ea682610e92565b610eb1818354610e46565b8255505050565b600081356107bd81610ab8565b60007bffffffffffffffff0000000000000000000000000000000000000000610e528460a01b90565b600067ffffffffffffffff82166107bd565b610f0982610eee565b610eb1818354610ec5565b600081356107bd81610989565b60007fffffffff00000000000000000000000000000000000000000000000000000000610e528460e01b90565b600063ffffffff82166107bd565b610f6582610f4e565b610eb1818354610f21565b600063ffffffff83610e52565b610f8682610f4e565b610eb1818354610f70565b6000808335601e1936859003018112610fac57610fac600080fd5b8301915050803567ffffffffffffffff811115610fcb57610fcb600080fd5b6020820191506001810236038213156109eb576109eb600080fd5b634e487b7160e01b600052604160045260246000fd5b634e487b7160e01b600052602260045260246000fd5b60028104600182168061102657607f821691505b60208210810361084c5761084c610ffc565b60006107bd610e788381565b61104d83611038565b815460001960089490940293841b1916921b91909117905550565b60006105ef818484611044565b8181101561046057611088600082611068565b600101611075565b601f8211156105ef576000818152602090206020601f850104810160208510156110b75750805b6110c96020601f860104830182611075565b5050505050565b8267ffffffffffffffff8111156110e9576110e9610fe6565b6110f38254611012565b6110fe828285611090565b506000601f821160018114611133576000831561111b5750848201355b600019600885021c198116600285021785555061056c565b600084815260209020601f19841690835b828110156111645787850135825560209485019460019092019101611144565b508482101561118157600019601f86166008021c19848801351681555b5050505060020260010190555050565b6105ef8383836110d0565b600081356107bd816109f2565b600060ff83610e52565b600060ff82166107bd565b6111c7826111b3565b610eb18183546111a9565b8082806111de81610e39565b90506111ea8184610e9d565b505060208301806111fa82610eb8565b90506112068184610f00565b5050604083018061121682610f14565b90506112228184610f5c565b50505060018101606083018061123782610f14565b90506112438184610f7d565b50505060028101608083016112588185610f91565b9150611265828285611191565b5050506003810160a083018061127a8261119c565b90506110c981846111be565b61046082826111d2565b60c0810161129e828a6107c3565b6112ab6020830189610a8a565b6112b86040830188610af3565b6112c56060830187610af3565b81810360808301526112d8818587610b5c565b90506112e760a0830184610b8c565b98975050505050505050565b67ffffffffffffffff9182169190811690828201908111156107bd576107bd610d8756fea264697066735822122042ebfb5e754c029c4a229a7ae2e07e276fa0abbea16ed56651f87297125bca7464736f6c63430008140033 \ No newline at end of file +608060405234801561001057600080fd5b5061001a33610027565b610022610098565b61014a565b7f9016d09d72d40fdae2fd8ceac6b6234c7706214fd39c1cd1e609a0528c19930080546001600160a01b031981166001600160a01b03848116918217845560405192169182907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e090600090a3505050565b7ff0c57e16840df040f15088dc2f81fe391c3923bec73e23a9662efc9c229c6a00805468010000000000000000900460ff16156100e85760405163f92ee8a960e01b815260040160405180910390fd5b80546001600160401b03908116146101475780546001600160401b0319166001600160401b0390811782556040519081527fc7f505b2f371ae2175ee4913f4499e1f2633a7b5936321eed1cdaeb6115181d29060200160405180910390a15b50565b6116b2806101596000396000f3fe6080604052600436106100c05760003560e01c80638da5cb5b11610074578063b1454caa1161004e578063b1454caa14610285578063c4d66de8146102b2578063f2fde38b146102d257610134565b80638da5cb5b146102005780639730886d1461024557806399a3ad211461026557610134565b8063346633fb116100a5578063346633fb146101b857806336d2da90146101cb578063715018a6146101eb57610134565b80630fcfbd111461015557806333a88c721461018b57610134565b36610134576040517f346633fb000000000000000000000000000000000000000000000000000000008152309063346633fb9034906101059033908390600401610aaa565b6000604051808303818588803b15801561011e57600080fd5b505af1158015610132573d6000803e3d6000fd5b005b60405162461bcd60e51b815260040161014c90610af9565b60405180910390fd5b34801561016157600080fd5b50610175610170366004610b24565b6102f2565b6040516101829190610b5f565b60405180910390f35b34801561019757600080fd5b506101ab6101a6366004610b24565b610351565b6040516101829190610b75565b6101326101c6366004610bb3565b6103a3565b3480156101d757600080fd5b506101326101e6366004610bf0565b61042d565b3480156101f757600080fd5b506101326104ac565b34801561020c57600080fd5b507f9016d09d72d40fdae2fd8ceac6b6234c7706214fd39c1cd1e609a0528c199300546001600160a01b03166040516101829190610c11565b34801561025157600080fd5b50610132610260366004610c1f565b6104c0565b34801561027157600080fd5b50610132610280366004610bb3565b610635565b34801561029157600080fd5b506102a56102a0366004610cd8565b6106b5565b6040516101829190610d6c565b3480156102be57600080fd5b506101326102cd366004610bf0565b61070e565b3480156102de57600080fd5b506101326102ed366004610bf0565b610850565b600080826040516020016103069190610f19565b60408051601f1981840301815291815281516020928301206000818152928390529120549091508061034a5760405162461bcd60e51b815260040161014c90610f84565b9392505050565b600080826040516020016103659190610f19565b60408051601f198184030181529181528151602092830120600081815292839052912054909150801580159061039b5750428111155b949350505050565b6000341180156103b257508034145b6103ce5760405162461bcd60e51b815260040161014c90610fec565b60006103d9336108a7565b9050826001600160a01b0316336001600160a01b03167f50c536ac33a920f00755865b831d17bf4cff0b2e0345f65b16d52bfc004068b63484604051610420929190610ffc565b60405180910390a3505050565b610435610905565b6000816001600160a01b03164760405160006040518083038185875af1925050503d8060008114610482576040519150601f19603f3d011682016040523d82523d6000602084013e610487565b606091505b50509050806104a85760405162461bcd60e51b815260040161014c90611049565b5050565b6104b4610905565b6104be6000610979565b565b60006104cd60013061106f565b90506105007f9016d09d72d40fdae2fd8ceac6b6234c7706214fd39c1cd1e609a0528c199300546001600160a01b031690565b6001600160a01b0316336001600160a01b031614806105275750336001600160a01b038216145b6105435760405162461bcd60e51b815260040161014c906110c4565b600061054f83426110d4565b90506000846040516020016105649190610f19565b60408051601f198184030181529181528151602092830120600081815292839052912054909150156105a85760405162461bcd60e51b815260040161014c9061113f565b6000818152602081815260408220849055600191906105c990880188610bf0565b6001600160a01b0316815260208101919091526040016000908120906105f5608088016060890161114f565b63ffffffff1681526020808201929092526040016000908120805460018101825590825291902086916004020161062c82826115c9565b50505050505050565b61063d610905565b6000826001600160a01b03168260405160006040518083038185875af1925050503d806000811461068a576040519150601f19603f3d011682016040523d82523d6000602084013e61068f565b606091505b50509050806106b05760405162461bcd60e51b815260040161014c90611049565b505050565b60006106c0336108a7565b90507fb93c37389233beb85a3a726c3f15c2d15533ee74cb602f20f490dfffef775937338288888888886040516106fd97969594939291906115d3565b60405180910390a195945050505050565b7ff0c57e16840df040f15088dc2f81fe391c3923bec73e23a9662efc9c229c6a00805468010000000000000000810460ff16159067ffffffffffffffff166000811580156107595750825b905060008267ffffffffffffffff1660011480156107765750303b155b905081158015610784575080155b156107bb576040517ff92ee8a900000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b845467ffffffffffffffff1916600117855583156107ef57845468ff00000000000000001916680100000000000000001785555b6107f886610a02565b831561084857845468ff0000000000000000191685556040517fc7f505b2f371ae2175ee4913f4499e1f2633a7b5936321eed1cdaeb6115181d29061083f9060019061164a565b60405180910390a15b505050505050565b610858610905565b6001600160a01b03811661089b5760006040517f1e4fbdf700000000000000000000000000000000000000000000000000000000815260040161014c9190610c11565b6108a481610979565b50565b6001600160a01b0381166000908152600260205260408120805467ffffffffffffffff1691600191906108da8385611658565b92506101000a81548167ffffffffffffffff021916908367ffffffffffffffff160217905550919050565b336109377f9016d09d72d40fdae2fd8ceac6b6234c7706214fd39c1cd1e609a0528c199300546001600160a01b031690565b6001600160a01b0316146104be57336040517f118cdaa700000000000000000000000000000000000000000000000000000000815260040161014c9190610c11565b7f9016d09d72d40fdae2fd8ceac6b6234c7706214fd39c1cd1e609a0528c19930080547fffffffffffffffffffffffff000000000000000000000000000000000000000081166001600160a01b03848116918217845560405192169182907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e090600090a3505050565b610a0a610a13565b6108a481610a7a565b7ff0c57e16840df040f15088dc2f81fe391c3923bec73e23a9662efc9c229c6a005468010000000000000000900460ff166104be576040517fd7e6bcf800000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b610858610a13565b60006001600160a01b0382165b92915050565b610a9e81610a82565b82525050565b80610a9e565b60408101610ab88285610a95565b61034a6020830184610aa4565b600b8152602081017f756e737570706f72746564000000000000000000000000000000000000000000815290505b60200190565b60208082528101610a8f81610ac5565b600060c08284031215610b1e57610b1e600080fd5b50919050565b600060208284031215610b3957610b39600080fd5b813567ffffffffffffffff811115610b5357610b53600080fd5b61039b84828501610b09565b60208101610a8f8284610aa4565b801515610a9e565b60208101610a8f8284610b6d565b610b8c81610a82565b81146108a457600080fd5b8035610a8f81610b83565b80610b8c565b8035610a8f81610ba2565b60008060408385031215610bc957610bc9600080fd5b6000610bd58585610b97565b9250506020610be685828601610ba8565b9150509250929050565b600060208284031215610c0557610c05600080fd5b600061039b8484610b97565b60208101610a8f8284610a95565b60008060408385031215610c3557610c35600080fd5b823567ffffffffffffffff811115610c4f57610c4f600080fd5b610bd585828601610b09565b63ffffffff8116610b8c565b8035610a8f81610c5b565b60008083601f840112610c8757610c87600080fd5b50813567ffffffffffffffff811115610ca257610ca2600080fd5b602083019150836001820283011115610cbd57610cbd600080fd5b9250929050565b60ff8116610b8c565b8035610a8f81610cc4565b600080600080600060808688031215610cf357610cf3600080fd5b6000610cff8888610c67565b9550506020610d1088828901610c67565b945050604086013567ffffffffffffffff811115610d3057610d30600080fd5b610d3c88828901610c72565b93509350506060610d4f88828901610ccd565b9150509295509295909350565b67ffffffffffffffff8116610a9e565b60208101610a8f8284610d5c565b506000610a8f6020830183610b97565b67ffffffffffffffff8116610b8c565b8035610a8f81610d8a565b506000610a8f6020830183610d9a565b506000610a8f6020830183610c67565b63ffffffff8116610a9e565b6000808335601e1936859003018112610dec57610dec600080fd5b830160208101925035905067ffffffffffffffff811115610e0f57610e0f600080fd5b36819003821315610cbd57610cbd600080fd5b82818337506000910152565b818352602083019250610e42828483610e22565b50601f01601f19160190565b506000610a8f6020830183610ccd565b60ff8116610a9e565b600060c08301610e778380610d7a565b610e818582610a95565b50610e8f6020840184610da5565b610e9c6020860182610d5c565b50610eaa6040840184610db5565b610eb76040860182610dc5565b50610ec56060840184610db5565b610ed26060860182610dc5565b50610ee06080840184610dd1565b8583036080870152610ef3838284610e2e565b92505050610f0460a0840184610e4e565b610f1160a0860182610e5e565b509392505050565b6020808252810161034a8184610e67565b60218152602081017f54686973206d65737361676520776173206e65766572207375626d697474656481527f2e00000000000000000000000000000000000000000000000000000000000000602082015290505b60400190565b60208082528101610a8f81610f2a565b60308152602081017f417474656d7074696e6720746f2073656e642076616c756520776974686f757481527f2070726f766964696e672045746865720000000000000000000000000000000060208201529050610f7e565b60208082528101610a8f81610f94565b6040810161100a8285610aa4565b61034a6020830184610d5c565b60148152602081017f6661696c65642073656e64696e672076616c756500000000000000000000000081529050610af3565b60208082528101610a8f81611017565b634e487b7160e01b600052601160045260246000fd5b6001600160a01b03918216919081169082820390811115610a8f57610a8f611059565b60118152602081017f4e6f74206f776e6572206f722073656c6600000000000000000000000000000081529050610af3565b60208082528101610a8f81611092565b80820180821115610a8f57610a8f611059565b60218152602081017f4d657373616765207375626d6974746564206d6f7265207468616e206f6e636581527f210000000000000000000000000000000000000000000000000000000000000060208201529050610f7e565b60208082528101610a8f816110e7565b60006020828403121561116457611164600080fd5b600061039b8484610c67565b60008135610a8f81610b83565b60006001600160a01b03835b81169019929092169190911792915050565b6000610a8f6001600160a01b0383166111b2565b90565b6001600160a01b031690565b6000610a8f8261119b565b6000610a8f826111be565b6111dd826111c9565b6111e881835461117d565b8255505050565b60008135610a8f81610d8a565b60007bffffffffffffffff00000000000000000000000000000000000000006111898460a01b90565b6000610a8f67ffffffffffffffff83165b67ffffffffffffffff1690565b61124c82611225565b6111e88183546111fc565b60008135610a8f81610c5b565b60007fffffffff000000000000000000000000000000000000000000000000000000006111898460e01b90565b600063ffffffff8216610a8f565b6112a882611291565b6111e8818354611264565b600063ffffffff83611189565b6112c982611291565b6111e88183546112b3565b6000808335601e19368590030181126112ef576112ef600080fd5b8301915050803567ffffffffffffffff81111561130e5761130e600080fd5b602082019150600181023603821315610cbd57610cbd600080fd5b634e487b7160e01b600052604160045260246000fd5b634e487b7160e01b600052602260045260246000fd5b60028104600182168061136957607f821691505b602082108103610b1e57610b1e61133f565b6000610a8f6111af8381565b6113908361137b565b815460001960089490940293841b1916921b91909117905550565b60006106b0818484611387565b818110156104a8576113cb6000826113ab565b6001016113b8565b601f8211156106b0576000818152602090206020601f850104810160208510156113fa5750805b61140c6020601f8601048301826113b8565b5050505050565b8267ffffffffffffffff81111561142c5761142c611329565b6114368254611355565b6114418282856113d3565b506000601f821160018114611476576000831561145e5750848201355b600019600885021c1981166002850217855550610848565b600084815260209020601f19841690835b828110156114a75787850135825560209485019460019092019101611487565b50848210156114c457600019601f86166008021c19848801351681555b5050505060020260010190555050565b6106b0838383611413565b60008135610a8f81610cc4565b600060ff83611189565b600060ff8216610a8f565b61150a826114f6565b6111e88183546114ec565b80828061152181611170565b905061152d81846111d4565b5050602083018061153d826111ef565b90506115498184611243565b5050604083018061155982611257565b9050611565818461129f565b50505060018101606083018061157a82611257565b905061158681846112c0565b505050600281016080830161159b81856112d4565b91506115a88282856114d4565b5050506003810160a08301806115bd826114df565b905061140c8184611501565b6104a88282611515565b60c081016115e1828a610a95565b6115ee6020830189610d5c565b6115fb6040830188610dc5565b6116086060830187610dc5565b818103608083015261161b818587610e2e565b905061162a60a0830184610e5e565b98975050505050505050565b6000610a8f82611236565b610a9e81611636565b60208101610a8f8284611641565b67ffffffffffffffff918216919081169082820190811115610a8f57610a8f61105956fea264697066735822122054b3bb8148cdbafe0aca39b986ef2610fd18ea01fc3554d63624fda624c6d21164736f6c63430008150033 \ No newline at end of file diff --git a/contracts/exported/src/messaging/MessageBus.sol/MessageBus.json b/contracts/exported/src/messaging/MessageBus.sol/MessageBus.json index 8dc127bbb2..4a9775456d 100644 --- a/contracts/exported/src/messaging/MessageBus.sol/MessageBus.json +++ b/contracts/exported/src/messaging/MessageBus.sol/MessageBus.json @@ -4,6 +4,16 @@ "stateMutability": "nonpayable", "type": "constructor" }, + { + "inputs": [], + "name": "InvalidInitialization", + "type": "error" + }, + { + "inputs": [], + "name": "NotInitializing", + "type": "error" + }, { "inputs": [ { @@ -26,6 +36,19 @@ "name": "OwnableUnauthorizedAccount", "type": "error" }, + { + "anonymous": false, + "inputs": [ + { + "indexed": false, + "internalType": "uint64", + "name": "version", + "type": "uint64" + } + ], + "name": "Initialized", + "type": "event" + }, { "anonymous": false, "inputs": [ @@ -174,6 +197,19 @@ "stateMutability": "view", "type": "function" }, + { + "inputs": [ + { + "internalType": "address", + "name": "caller", + "type": "address" + } + ], + "name": "initialize", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + }, { "inputs": [], "name": "owner", diff --git a/contracts/exported/src/messaging/messenger/CrossChainMessenger.sol/CrossChainMessenger.bin b/contracts/exported/src/messaging/messenger/CrossChainMessenger.sol/CrossChainMessenger.bin index f4f0f2b0dc..3a51eb8c4c 100644 --- a/contracts/exported/src/messaging/messenger/CrossChainMessenger.sol/CrossChainMessenger.bin +++ b/contracts/exported/src/messaging/messenger/CrossChainMessenger.sol/CrossChainMessenger.bin @@ -1 +1 @@ -608060405234801561001057600080fd5b50610ff9806100206000396000f3fe608060405234801561001057600080fd5b50600436106100725760003560e01c80639b7cf1ee116100505780639b7cf1ee146100d5578063a1a227fa146100e8578063c4d66de8146100f957600080fd5b80630671b22e146100775780635b76f28b1461008c57806363012de5146100b5575b600080fd5b61008a61008536600461078b565b61010c565b005b61009f61009a366004610885565b610211565b6040516100ac9190610937565b60405180910390f35b6001546100c8906001600160a01b031681565b6040516100ac919061095e565b61008a6100e336600461096c565b610291565b6000546001600160a01b03166100c8565b61008a6101073660046109af565b610387565b610118848484846104e7565b61012560208501856109af565b600180546001600160a01b0319166001600160a01b0392909216919091179055600061015460808601866109d0565b8101906101619190610bb1565b905060008082600001516001600160a01b03165a84602001516040516101879190610c0e565b60006040518083038160008787f1925050503d80600081146101c5576040519150601f19603f3d011682016040523d82523d6000602084013e6101ca565b606091505b5091509150816101f8578060405163a5fa8d2b60e01b81526004016101ef9190610937565b60405180910390fd5b5050600180546001600160a01b03191690555050505050565b60606040518060600160405280856001600160a01b0316815260200184848080601f0160208091040260200160405190810160405280939291908181526020018383808284376000920182905250938552505050602091820152604051610279929101610c5f565b60405160208183030381529060405290509392505050565b61029a816105e0565b6102a760208201826109af565b600180546001600160a01b0319166001600160a01b039290921691909117905560006102d660808301836109d0565b8101906102e39190610bb1565b905060008082600001516001600160a01b03165a84602001516040516103099190610c0e565b60006040518083038160008787f1925050503d8060008114610347576040519150601f19603f3d011682016040523d82523d6000602084013e61034c565b606091505b509150915081610371578060405163a5fa8d2b60e01b81526004016101ef9190610937565b5050600180546001600160a01b03191690555050565b7ff0c57e16840df040f15088dc2f81fe391c3923bec73e23a9662efc9c229c6a00805468010000000000000000810460ff16159067ffffffffffffffff166000811580156103d25750825b905060008267ffffffffffffffff1660011480156103ef5750303b155b9050811580156103fd575080155b15610434576040517ff92ee8a900000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b845467ffffffffffffffff19166001178555831561046857845468ff00000000000000001916680100000000000000001785555b600080546001600160a01b0388166001600160a01b03199182161790915560018054909116905583156104df57845468ff0000000000000000191685556040517fc7f505b2f371ae2175ee4913f4499e1f2633a7b5936321eed1cdaeb6115181d2906104d690600190610c8b565b60405180910390a15b505050505050565b6000546040517fe138a8d20000000000000000000000000000000000000000000000000000000081526001600160a01b039091169063e138a8d290610536908790879087908790600401610eba565b60006040518083038186803b15801561054e57600080fd5b505afa158015610562573d6000803e3d6000fd5b505050506000846040516020016105799190610ef8565b60408051601f1981840301815291815281516020928301206000818152600290935291205490915060ff16156105c15760405162461bcd60e51b81526004016101ef90610f3d565b6000908152600260205260409020805460ff1916600117905550505050565b6000546040517f33a88c720000000000000000000000000000000000000000000000000000000081526001600160a01b03909116906333a88c7290610629908490600401610ef8565b602060405180830381865afa158015610646573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061066a9190610f60565b6106865760405162461bcd60e51b81526004016101ef90610fb3565b6000816040516020016106999190610ef8565b60408051601f1981840301815291815281516020928301206000818152600290935291205490915060ff16156106e15760405162461bcd60e51b81526004016101ef90610f3d565b6000908152600260205260409020805460ff1916600117905550565b600060c0828403121561071257610712600080fd5b50919050565b60008083601f84011261072d5761072d600080fd5b50813567ffffffffffffffff81111561074857610748600080fd5b60208301915083602082028301111561076357610763600080fd5b9250929050565b805b811461077757600080fd5b50565b80356107858161076a565b92915050565b600080600080606085870312156107a4576107a4600080fd5b843567ffffffffffffffff8111156107be576107be600080fd5b6107ca878288016106fd565b945050602085013567ffffffffffffffff8111156107ea576107ea600080fd5b6107f687828801610718565b935093505060406108098782880161077a565b91505092959194509250565b60006001600160a01b038216610785565b61076c81610815565b803561078581610826565b60008083601f84011261084f5761084f600080fd5b50813567ffffffffffffffff81111561086a5761086a600080fd5b60208301915083600182028301111561076357610763600080fd5b60008060006040848603121561089d5761089d600080fd5b60006108a9868661082f565b935050602084013567ffffffffffffffff8111156108c9576108c9600080fd5b6108d58682870161083a565b92509250509250925092565b60005b838110156108fc5781810151838201526020016108e4565b50506000910152565b600061090f825190565b8084526020840193506109268185602086016108e1565b601f01601f19169290920192915050565b602080825281016109488184610905565b9392505050565b61095881610815565b82525050565b60208101610785828461094f565b60006020828403121561098157610981600080fd5b813567ffffffffffffffff81111561099b5761099b600080fd5b6109a7848285016106fd565b949350505050565b6000602082840312156109c4576109c4600080fd5b60006109a7848461082f565b6000808335601e19368590030181126109eb576109eb600080fd5b8301915050803567ffffffffffffffff811115610a0a57610a0a600080fd5b60208201915060018102360382131561076357610763600080fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b601f19601f830116810181811067ffffffffffffffff82111715610a7a57610a7a610a25565b6040525050565b6000610a8c60405190565b9050610a988282610a54565b919050565b600067ffffffffffffffff821115610ab757610ab7610a25565b601f19601f83011660200192915050565b82818337506000910152565b6000610ae7610ae284610a9d565b610a81565b905082815260208101848484011115610b0257610b02600080fd5b610b0d848285610ac8565b509392505050565b600082601f830112610b2957610b29600080fd5b81356109a7848260208601610ad4565b600060608284031215610b4e57610b4e600080fd5b610b586060610a81565b90506000610b66848461082f565b90820152602082013567ffffffffffffffff811115610b8757610b87600080fd5b610b9384828501610b15565b6020830152506040610ba78482850161077a565b9082015292915050565b600060208284031215610bc657610bc6600080fd5b813567ffffffffffffffff811115610be057610be0600080fd5b6109a784828501610b39565b6000610bf6825190565b610c048185602086016108e1565b9290920192915050565b6107858183610bec565b80610958565b80516000906060840190610c32858261094f565b5060208301518482036020860152610c4a8282610905565b9150506040830151610b0d6040860182610c18565b602080825281016109488184610c1e565b600067ffffffffffffffff8216610785565b61095881610c70565b602081016107858284610c82565b506000610785602083018361082f565b67ffffffffffffffff811661076c565b803561078581610ca9565b5060006107856020830183610cb9565b67ffffffffffffffff8116610958565b63ffffffff811661076c565b803561078581610ce4565b5060006107856020830183610cf0565b63ffffffff8116610958565b6000808335601e1936859003018112610d3257610d32600080fd5b830160208101925035905067ffffffffffffffff811115610d5557610d55600080fd5b3681900382131561076357610763600080fd5b818352602083019250610d7c828483610ac8565b50601f01601f19160190565b60ff811661076c565b803561078581610d88565b5060006107856020830183610d91565b60ff8116610958565b600060c08301610dc58380610c99565b610dcf858261094f565b50610ddd6020840184610cc4565b610dea6020860182610cd4565b50610df86040840184610cfb565b610e056040860182610d0b565b50610e136060840184610cfb565b610e206060860182610d0b565b50610e2e6080840184610d17565b8583036080870152610e41838284610d68565b92505050610e5260a0840184610d9c565b610b0d60a0860182610dac565b82818337505050565b81835260208301925060007f07ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff831115610ea357610ea3600080fd5b602083029250610eb4838584610e5f565b50500190565b60608082528101610ecb8187610db5565b90508181036020830152610ee0818587610e68565b9050610eef6040830184610c18565b95945050505050565b602080825281016109488184610db5565b60198152602081017f4d65737361676520616c726561647920636f6e73756d65642e00000000000000815290505b60200190565b6020808252810161078581610f09565b80151561076c565b805161078581610f4d565b600060208284031215610f7557610f75600080fd5b60006109a78484610f55565b601f8152602081017f4d657373616765206e6f7420666f756e64206f722066696e616c697a65642e0081529050610f37565b6020808252810161078581610f8156fea2646970667358221220b19a157d54d31fc9b484675b1b5bbc3bb2bcb9f0cf90b7e3cf4c7fd69e2d0bad64736f6c63430008140033 \ No newline at end of file +608060405234801561001057600080fd5b50610ff9806100206000396000f3fe608060405234801561001057600080fd5b50600436106100725760003560e01c80639b7cf1ee116100505780639b7cf1ee146100d5578063a1a227fa146100e8578063c4d66de8146100f957600080fd5b80630671b22e146100775780635b76f28b1461008c57806363012de5146100b5575b600080fd5b61008a61008536600461078b565b61010c565b005b61009f61009a366004610885565b610211565b6040516100ac9190610937565b60405180910390f35b6001546100c8906001600160a01b031681565b6040516100ac919061095e565b61008a6100e336600461096c565b610291565b6000546001600160a01b03166100c8565b61008a6101073660046109af565b610387565b610118848484846104e7565b61012560208501856109af565b600180546001600160a01b0319166001600160a01b0392909216919091179055600061015460808601866109d0565b8101906101619190610bb1565b905060008082600001516001600160a01b03165a84602001516040516101879190610c0e565b60006040518083038160008787f1925050503d80600081146101c5576040519150601f19603f3d011682016040523d82523d6000602084013e6101ca565b606091505b5091509150816101f8578060405163a5fa8d2b60e01b81526004016101ef9190610937565b60405180910390fd5b5050600180546001600160a01b03191690555050505050565b60606040518060600160405280856001600160a01b0316815260200184848080601f0160208091040260200160405190810160405280939291908181526020018383808284376000920182905250938552505050602091820152604051610279929101610c5f565b60405160208183030381529060405290509392505050565b61029a816105e0565b6102a760208201826109af565b600180546001600160a01b0319166001600160a01b039290921691909117905560006102d660808301836109d0565b8101906102e39190610bb1565b905060008082600001516001600160a01b03165a84602001516040516103099190610c0e565b60006040518083038160008787f1925050503d8060008114610347576040519150601f19603f3d011682016040523d82523d6000602084013e61034c565b606091505b509150915081610371578060405163a5fa8d2b60e01b81526004016101ef9190610937565b5050600180546001600160a01b03191690555050565b7ff0c57e16840df040f15088dc2f81fe391c3923bec73e23a9662efc9c229c6a00805468010000000000000000810460ff16159067ffffffffffffffff166000811580156103d25750825b905060008267ffffffffffffffff1660011480156103ef5750303b155b9050811580156103fd575080155b15610434576040517ff92ee8a900000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b845467ffffffffffffffff19166001178555831561046857845468ff00000000000000001916680100000000000000001785555b600080546001600160a01b0388166001600160a01b03199182161790915560018054909116905583156104df57845468ff0000000000000000191685556040517fc7f505b2f371ae2175ee4913f4499e1f2633a7b5936321eed1cdaeb6115181d2906104d690600190610c8b565b60405180910390a15b505050505050565b6000546040517fe138a8d20000000000000000000000000000000000000000000000000000000081526001600160a01b039091169063e138a8d290610536908790879087908790600401610eba565b60006040518083038186803b15801561054e57600080fd5b505afa158015610562573d6000803e3d6000fd5b505050506000846040516020016105799190610ef8565b60408051601f1981840301815291815281516020928301206000818152600290935291205490915060ff16156105c15760405162461bcd60e51b81526004016101ef90610f3d565b6000908152600260205260409020805460ff1916600117905550505050565b6000546040517f33a88c720000000000000000000000000000000000000000000000000000000081526001600160a01b03909116906333a88c7290610629908490600401610ef8565b602060405180830381865afa158015610646573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061066a9190610f60565b6106865760405162461bcd60e51b81526004016101ef90610fb3565b6000816040516020016106999190610ef8565b60408051601f1981840301815291815281516020928301206000818152600290935291205490915060ff16156106e15760405162461bcd60e51b81526004016101ef90610f3d565b6000908152600260205260409020805460ff1916600117905550565b600060c0828403121561071257610712600080fd5b50919050565b60008083601f84011261072d5761072d600080fd5b50813567ffffffffffffffff81111561074857610748600080fd5b60208301915083602082028301111561076357610763600080fd5b9250929050565b805b811461077757600080fd5b50565b80356107858161076a565b92915050565b600080600080606085870312156107a4576107a4600080fd5b843567ffffffffffffffff8111156107be576107be600080fd5b6107ca878288016106fd565b945050602085013567ffffffffffffffff8111156107ea576107ea600080fd5b6107f687828801610718565b935093505060406108098782880161077a565b91505092959194509250565b60006001600160a01b038216610785565b61076c81610815565b803561078581610826565b60008083601f84011261084f5761084f600080fd5b50813567ffffffffffffffff81111561086a5761086a600080fd5b60208301915083600182028301111561076357610763600080fd5b60008060006040848603121561089d5761089d600080fd5b60006108a9868661082f565b935050602084013567ffffffffffffffff8111156108c9576108c9600080fd5b6108d58682870161083a565b92509250509250925092565b60005b838110156108fc5781810151838201526020016108e4565b50506000910152565b600061090f825190565b8084526020840193506109268185602086016108e1565b601f01601f19169290920192915050565b602080825281016109488184610905565b9392505050565b61095881610815565b82525050565b60208101610785828461094f565b60006020828403121561098157610981600080fd5b813567ffffffffffffffff81111561099b5761099b600080fd5b6109a7848285016106fd565b949350505050565b6000602082840312156109c4576109c4600080fd5b60006109a7848461082f565b6000808335601e19368590030181126109eb576109eb600080fd5b8301915050803567ffffffffffffffff811115610a0a57610a0a600080fd5b60208201915060018102360382131561076357610763600080fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b601f19601f830116810181811067ffffffffffffffff82111715610a7a57610a7a610a25565b6040525050565b6000610a8c60405190565b9050610a988282610a54565b919050565b600067ffffffffffffffff821115610ab757610ab7610a25565b601f19601f83011660200192915050565b82818337506000910152565b6000610ae7610ae284610a9d565b610a81565b905082815260208101848484011115610b0257610b02600080fd5b610b0d848285610ac8565b509392505050565b600082601f830112610b2957610b29600080fd5b81356109a7848260208601610ad4565b600060608284031215610b4e57610b4e600080fd5b610b586060610a81565b90506000610b66848461082f565b90820152602082013567ffffffffffffffff811115610b8757610b87600080fd5b610b9384828501610b15565b6020830152506040610ba78482850161077a565b9082015292915050565b600060208284031215610bc657610bc6600080fd5b813567ffffffffffffffff811115610be057610be0600080fd5b6109a784828501610b39565b6000610bf6825190565b610c048185602086016108e1565b9290920192915050565b6107858183610bec565b80610958565b80516000906060840190610c32858261094f565b5060208301518482036020860152610c4a8282610905565b9150506040830151610b0d6040860182610c18565b602080825281016109488184610c1e565b600067ffffffffffffffff8216610785565b61095881610c70565b602081016107858284610c82565b506000610785602083018361082f565b67ffffffffffffffff811661076c565b803561078581610ca9565b5060006107856020830183610cb9565b67ffffffffffffffff8116610958565b63ffffffff811661076c565b803561078581610ce4565b5060006107856020830183610cf0565b63ffffffff8116610958565b6000808335601e1936859003018112610d3257610d32600080fd5b830160208101925035905067ffffffffffffffff811115610d5557610d55600080fd5b3681900382131561076357610763600080fd5b818352602083019250610d7c828483610ac8565b50601f01601f19160190565b60ff811661076c565b803561078581610d88565b5060006107856020830183610d91565b60ff8116610958565b600060c08301610dc58380610c99565b610dcf858261094f565b50610ddd6020840184610cc4565b610dea6020860182610cd4565b50610df86040840184610cfb565b610e056040860182610d0b565b50610e136060840184610cfb565b610e206060860182610d0b565b50610e2e6080840184610d17565b8583036080870152610e41838284610d68565b92505050610e5260a0840184610d9c565b610b0d60a0860182610dac565b82818337505050565b81835260208301925060007f07ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff831115610ea357610ea3600080fd5b602083029250610eb4838584610e5f565b50500190565b60608082528101610ecb8187610db5565b90508181036020830152610ee0818587610e68565b9050610eef6040830184610c18565b95945050505050565b602080825281016109488184610db5565b60198152602081017f4d65737361676520616c726561647920636f6e73756d65642e00000000000000815290505b60200190565b6020808252810161078581610f09565b80151561076c565b805161078581610f4d565b600060208284031215610f7557610f75600080fd5b60006109a78484610f55565b601f8152602081017f4d657373616765206e6f7420666f756e64206f722066696e616c697a65642e0081529050610f37565b6020808252810161078581610f8156fea264697066735822122047f28995de7130c3998b1599d405fb370dedbc68b4a589631e78ea0032bfd28164736f6c63430008150033 \ No newline at end of file diff --git a/contracts/exported/src/system/Logger.sol/Logger.bin b/contracts/exported/src/system/Logger.sol/Logger.bin index 7c6cd9f112..28e2949160 100644 --- a/contracts/exported/src/system/Logger.sol/Logger.bin +++ b/contracts/exported/src/system/Logger.sol/Logger.bin @@ -1 +1 @@ -6101af61003a600b82828239805160001a60731461002d57634e487b7160e01b600052600060045260246000fd5b30600052607381538281f3fe73000000000000000000000000000000000000000030146080604052600436106100355760003560e01c80632e3c2a4d1461003a575b600080fd5b81801561004657600080fd5b5061005a6100553660046100eb565b61005c565b005b7f96561394bac381230de4649200e8831afcab1f451881bbade9ef209f6dd30480828260405161008d92919061015f565b60405180910390a15050565b60008083601f8401126100ae576100ae600080fd5b50813567ffffffffffffffff8111156100c9576100c9600080fd5b6020830191508360018202830111156100e4576100e4600080fd5b9250929050565b6000806020838503121561010157610101600080fd5b823567ffffffffffffffff81111561011b5761011b600080fd5b61012785828601610099565b92509250509250929050565b82818337506000910152565b818352602083019250610153828483610133565b50601f01601f19160190565b6020808252810161017181848661013f565b94935050505056fea2646970667358221220fccf38bd7af76a75484caca7fe2ce8683fdbead8d5476c2ee93dbc825f85c56964736f6c63430008140033 \ No newline at end of file +6101af61003a600b82828239805160001a60731461002d57634e487b7160e01b600052600060045260246000fd5b30600052607381538281f3fe73000000000000000000000000000000000000000030146080604052600436106100355760003560e01c80632e3c2a4d1461003a575b600080fd5b81801561004657600080fd5b5061005a6100553660046100eb565b61005c565b005b7f96561394bac381230de4649200e8831afcab1f451881bbade9ef209f6dd30480828260405161008d92919061015f565b60405180910390a15050565b60008083601f8401126100ae576100ae600080fd5b50813567ffffffffffffffff8111156100c9576100c9600080fd5b6020830191508360018202830111156100e4576100e4600080fd5b9250929050565b6000806020838503121561010157610101600080fd5b823567ffffffffffffffff81111561011b5761011b600080fd5b61012785828601610099565b92509250509250929050565b82818337506000910152565b818352602083019250610153828483610133565b50601f01601f19160190565b6020808252810161017181848661013f565b94935050505056fea264697066735822122007133e6865990a286b3061b3149c23af2b18d81bea79f5ffd90ef8bcbf5c455264736f6c63430008150033 \ No newline at end of file diff --git a/contracts/exported/src/system/SystemDeployer.sol/SystemDeployer.bin b/contracts/exported/src/system/SystemDeployer.sol/SystemDeployer.bin index 7c92097797..60e075c7e5 100644 --- a/contracts/exported/src/system/SystemDeployer.sol/SystemDeployer.bin +++ b/contracts/exported/src/system/SystemDeployer.sol/SystemDeployer.bin @@ -1 +1 @@ -60806040523480156200001157600080fd5b5060405162002501380380620025018339810160408190526200003491620001bf565b6200003f8162000046565b5062000307565b6000604051620000569062000169565b604051809103906000f08015801562000073573d6000803e3d6000fd5b509050600063485cc95560e01b833360405160240162000095929190620001fd565b604051602081830303815290604052906001600160e01b0319166020820180516001600160e01b03838183161783525050505090506000620000df8385846200012060201b60201c565b90507fbd64e14789a915ea657e42f2dbf0b973227708fa64b58766287637985d1ade698160405162000112919062000223565b60405180910390a150505050565b600080848484604051620001349062000177565b6200014293929190620002cb565b604051809103906000f0801580156200015f573d6000803e3d6000fd5b5095945050505050565b610e80806200035583390190565b61132c80620011d583390190565b60006001600160a01b0382165b92915050565b620001a38162000185565b8114620001af57600080fd5b50565b8051620001928162000198565b600060208284031215620001d657620001d6600080fd5b6000620001e48484620001b2565b949350505050565b620001f78162000185565b82525050565b604081016200020d8285620001ec565b6200021c6020830184620001ec565b9392505050565b604080825281016200025f81601981527f5472616e73616374696f6e73506f737450726f636573736f7200000000000000602082015260400190565b9050620001926020830184620001ec565b60005b838110156200028d57818101518382015260200162000273565b50506000910152565b6000620002a1825190565b808452602084019350620002ba81856020860162000270565b601f01601f19169290920192915050565b60608101620002db8286620001ec565b620002ea6020830185620001ec565b8181036040830152620002fe818462000296565b95945050505050565b603f80620003166000396000f3fe6080604052600080fdfea264697066735822122095ecebd4c7b5c8bccc7d44a2c6a4ed977570ad4c230a5edc80a524e46958ebf564736f6c63430008140033608060405234801561001057600080fd5b50610e60806100206000396000f3fe608060405234801561001057600080fd5b50600436106100d45760003560e01c80635f03a66111610081578063a217fddf1161005b578063a217fddf14610205578063d547741f1461020d578063ee546fd81461022057600080fd5b80635f03a6611461019457806364c55a9d146101bb57806391d14854146101ce57600080fd5b806336568abe116100b257806336568abe14610147578063485cc9551461015a578063508a50f41461016d57600080fd5b806301ffc9a7146100d9578063248a9ca3146101025780632f2ff15d14610132575b600080fd5b6100ec6100e73660046108a6565b610297565b6040516100f991906108d9565b60405180910390f35b6101256101103660046108f8565b60009081526020819052604090206001015490565b6040516100f9919061091f565b610145610140366004610952565b610330565b005b610145610155366004610952565b61035b565b61014561016836600461098f565b6103ac565b6101257ff16bb8781ef1311f8fe06747bcbe481e695502acdcb0cb8c03aa03899e39a59881565b6101257f33dd54660937884a707404066945db647918933f71cc471efc6d6d0c3665d8db81565b6101456101c9366004610a03565b610548565b6100ec6101dc366004610952565b6000918252602082815260408084206001600160a01b0393909316845291905290205460ff1690565b610125600081565b61014561021b366004610952565b6106ab565b61014561022e366004610a4b565b6001805480820182556000919091527fb10e2d527612073b26eecdfd717e6a320cf44b4afac2b0732d9fcbe2b7fa0cf60180547fffffffffffffffffffffffff0000000000000000000000000000000000000000166001600160a01b0392909216919091179055565b60007fffffffff0000000000000000000000000000000000000000000000000000000082167f7965db0b00000000000000000000000000000000000000000000000000000000148061032a57507f01ffc9a7000000000000000000000000000000000000000000000000000000007fffffffff000000000000000000000000000000000000000000000000000000008316145b92915050565b60008281526020819052604090206001015461034b816106d0565b61035583836106dd565b50505050565b6001600160a01b038116331461039d576040517f6697b23200000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6103a78282610787565b505050565b7ff0c57e16840df040f15088dc2f81fe391c3923bec73e23a9662efc9c229c6a00805468010000000000000000810460ff16159067ffffffffffffffff166000811580156103f75750825b905060008267ffffffffffffffff1660011480156104145750303b155b905081158015610422575080155b15610459576040517ff92ee8a900000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b845467ffffffffffffffff19166001178555831561048d57845468ff00000000000000001916680100000000000000001785555b6104986000886106dd565b506104c37ff16bb8781ef1311f8fe06747bcbe481e695502acdcb0cb8c03aa03899e39a598886106dd565b506104ee7f33dd54660937884a707404066945db647918933f71cc471efc6d6d0c3665d8db876106dd565b50831561053f57845468ff0000000000000000191685556040517fc7f505b2f371ae2175ee4913f4499e1f2633a7b5936321eed1cdaeb6115181d29061053690600190610a87565b60405180910390a15b50505050505050565b7f33dd54660937884a707404066945db647918933f71cc471efc6d6d0c3665d8db610572816106d0565b60008290036105b6576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016105ad90610a95565b60405180910390fd5b6040517f3357352afe45ddda257f56623a512152c527b6f11555ec2fb2fdbbe72ddece41906105e690849061091f565b60405180910390a160005b6001548110156103555760006001828154811061061057610610610ad0565b6000918252602090912001546040517f9f9976af0000000000000000000000000000000000000000000000000000000081526001600160a01b0390911691508190639f9976af906106679088908890600401610dce565b600060405180830381600087803b15801561068157600080fd5b505af1158015610695573d6000803e3d6000fd5b5050505050806106a490610df6565b90506105f1565b6000828152602081905260409020600101546106c6816106d0565b6103558383610787565b6106da813361080a565b50565b6000828152602081815260408083206001600160a01b038516845290915281205460ff1661077f576000838152602081815260408083206001600160a01b03861684529091529020805460ff191660011790556107373390565b6001600160a01b0316826001600160a01b0316847f2f8788117e7eff1d82e926ec794901d17c78024a50270940304540a733656f0d60405160405180910390a450600161032a565b50600061032a565b6000828152602081815260408083206001600160a01b038516845290915281205460ff161561077f576000838152602081815260408083206001600160a01b0386168085529252808320805460ff1916905551339286917ff6391f5c32d9c69d2a47ea670b442974b53935d1edc7fd64eb21e047a839171b9190a450600161032a565b6000828152602081815260408083206001600160a01b038516845290915290205460ff166108685780826040517fe2517d3f0000000000000000000000000000000000000000000000000000000081526004016105ad929190610e0f565b5050565b7fffffffff0000000000000000000000000000000000000000000000000000000081165b81146106da57600080fd5b803561032a8161086c565b6000602082840312156108bb576108bb600080fd5b60006108c7848461089b565b949350505050565b8015155b82525050565b6020810161032a82846108cf565b80610890565b803561032a816108e7565b60006020828403121561090d5761090d600080fd5b60006108c784846108ed565b806108d3565b6020810161032a8284610919565b60006001600160a01b03821661032a565b6108908161092d565b803561032a8161093e565b6000806040838503121561096857610968600080fd5b600061097485856108ed565b925050602061098585828601610947565b9150509250929050565b600080604083850312156109a5576109a5600080fd5b60006109748585610947565b60008083601f8401126109c6576109c6600080fd5b50813567ffffffffffffffff8111156109e1576109e1600080fd5b6020830191508360208202830111156109fc576109fc600080fd5b9250929050565b60008060208385031215610a1957610a19600080fd5b823567ffffffffffffffff811115610a3357610a33600080fd5b610a3f858286016109b1565b92509250509250929050565b600060208284031215610a6057610a60600080fd5b60006108c78484610947565b600067ffffffffffffffff821661032a565b6108d381610a6c565b6020810161032a8284610a7e565b6020808252810161032a81601a81527f4e6f207472616e73616374696f6e7320746f20636f6e76657274000000000000602082015260400190565b634e487b7160e01b600052603260045260246000fd5b60ff8116610890565b803561032a81610ae6565b50600061032a6020830183610aef565b60ff81166108d3565b50600061032a60208301836108ed565b50600061032a6020830183610947565b6108d38161092d565b6000808335601e1936859003018112610b5757610b57600080fd5b830160208101925035905067ffffffffffffffff811115610b7a57610b7a600080fd5b368190038213156109fc576109fc600080fd5b82818337506000910152565b818352602083019250610bad828483610b8d565b50601f01601f19160190565b801515610890565b803561032a81610bb9565b50600061032a6020830183610bc1565b67ffffffffffffffff8116610890565b803561032a81610bdc565b50600061032a6020830183610bec565b67ffffffffffffffff81166108d3565b60006101408301610c288380610afa565b610c328582610b0a565b50610c406020840184610b13565b610c4d6020860182610919565b50610c5b6040840184610b13565b610c686040860182610919565b50610c766060840184610b13565b610c836060860182610919565b50610c916080840184610b23565b610c9e6080860182610b33565b50610cac60a0840184610b13565b610cb960a0860182610919565b50610cc760c0840184610b3c565b85830360c0870152610cda838284610b99565b92505050610ceb60e0840184610b23565b610cf860e0860182610b33565b50610d07610100840184610bcc565b610d156101008601826108cf565b50610d24610120840184610bf7565b610d32610120860182610c07565b509392505050565b6000610d468383610c17565b9392505050565b6000823561013e1936849003018112610d6857610d68600080fd5b90910192915050565b818352602083019250600083602084028101838060005b87811015610dc1578484038952610d9f8284610d4d565b610da98582610d3a565b94505060208201602099909901989150600101610d88565b5091979650505050505050565b602080825281016108c7818486610d71565b634e487b7160e01b600052601160045260246000fd5b600060018201610e0857610e08610de0565b5060010190565b60408101610e1d8285610b33565b610d46602083018461091956fea26469706673582212200b0c2d8cf0499a5aeaa5aad09b481762d0bf45ab68c10f7ee4b33405bc19462d64736f6c6343000814003360a06040526040516200132c3803806200132c8339810160408190526200002691620004c5565b828162000034828262000098565b505081604051620000459062000351565b6200005191906200054c565b604051809103906000f0801580156200006e573d6000803e3d6000fd5b506001600160a01b03166080526200008f6200008960805190565b620000fe565b505050620005ac565b620000a38262000167565b6040516001600160a01b038316907fbc7cd75a20ee27fd9adebab32041f755214dbc6bffa90cc0225b39da2e5c2d3b90600090a2805115620000f057620000eb8282620001e4565b505050565b620000fa62000263565b5050565b7f7e644d79422f17c01e4894b5f4f588d331ebfa28653d42ae832dc59e38c9798f620001406000805160206200130c833981519152546001600160a01b031690565b82604051620001519291906200055c565b60405180910390a1620001648162000285565b50565b806001600160a01b03163b600003620001a05780604051634c9c8ce360e01b81526004016200019791906200054c565b60405180910390fd5b807f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc5b80546001600160a01b0319166001600160a01b039290921691909117905550565b6060600080846001600160a01b031684604051620002039190620005a0565b600060405180830381855af49150503d806000811462000240576040519150601f19603f3d011682016040523d82523d6000602084013e62000245565b606091505b50909250905062000258858383620002c9565b925050505b92915050565b3415620002835760405163b398979f60e01b815260040160405180910390fd5b565b6001600160a01b038116620002b2576000604051633173bdd160e11b81526004016200019791906200054c565b806000805160206200130c833981519152620001c3565b606082620002e257620002dc8262000327565b62000320565b8151158015620002fa57506001600160a01b0384163b155b156200031d5783604051639996b31560e01b81526004016200019791906200054c565b50805b9392505050565b805115620003385780518082602001fd5b604051630a12f52160e11b815260040160405180910390fd5b6106ff8062000c0d83390190565b60006001600160a01b0382166200025d565b6200037c816200035f565b81146200016457600080fd5b80516200025d8162000371565b634e487b7160e01b600052604160045260246000fd5b601f19601f83011681016001600160401b0381118282101715620003d357620003d362000395565b6040525050565b6000620003e660405190565b9050620003f48282620003ab565b919050565b60006001600160401b0382111562000415576200041562000395565b601f19601f83011660200192915050565b60005b838110156200044357818101518382015260200162000429565b50506000910152565b6000620004636200045d84620003f9565b620003da565b905082815260208101848484011115620004805762000480600080fd5b6200048d84828562000426565b509392505050565b600082601f830112620004ab57620004ab600080fd5b8151620004bd8482602086016200044c565b949350505050565b600080600060608486031215620004df57620004df600080fd5b6000620004ed868662000388565b9350506020620005008682870162000388565b604086015190935090506001600160401b03811115620005235762000523600080fd5b620005318682870162000495565b9150509250925092565b62000546816200035f565b82525050565b602081016200025d82846200053b565b604081016200056c82856200053b565b6200032060208301846200053b565b600062000586825190565b6200059681856020860162000426565b9290920192915050565b6200025d81836200057b565b608051610646620005c76000396000601001526106466000f3fe608060405261000c61000e565b005b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031633036100c5576000357fffffffff00000000000000000000000000000000000000000000000000000000167f4f1ef28600000000000000000000000000000000000000000000000000000000146100bb576040517fd2b576ec00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6100c36100cd565b565b6100c36100fc565b6000806100dd36600481846103cf565b8101906100ea919061054b565b915091506100f8828261010c565b5050565b6100c3610107610167565b61019f565b610115826101c3565b6040516001600160a01b038316907fbc7cd75a20ee27fd9adebab32041f755214dbc6bffa90cc0225b39da2e5c2d3b90600090a280511561015f5761015a828261026b565b505050565b6100f86102e3565b600061019a7f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc546001600160a01b031690565b905090565b3660008037600080366000845af43d6000803e8080156101be573d6000f35b3d6000fd5b806001600160a01b03163b60000361021257806040517f4c9c8ce300000000000000000000000000000000000000000000000000000000815260040161020991906105b2565b60405180910390fd5b7f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc80547fffffffffffffffffffffffff0000000000000000000000000000000000000000166001600160a01b0392909216919091179055565b6060600080846001600160a01b0316846040516102889190610606565b600060405180830381855af49150503d80600081146102c3576040519150601f19603f3d011682016040523d82523d6000602084013e6102c8565b606091505b50915091506102d885838361031b565b925050505b92915050565b34156100c3576040517fb398979f00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6060826103305761032b8261038a565b610383565b815115801561034757506001600160a01b0384163b155b1561038057836040517f9996b31500000000000000000000000000000000000000000000000000000000815260040161020991906105b2565b50805b9392505050565b80511561039a5780518082602001fd5b6040517f1425ea4200000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b50565b600080858511156103e2576103e2600080fd5b838611156103f2576103f2600080fd5b5050820193919092039150565b60006001600160a01b0382166102dd565b610419816103ff565b81146103cc57600080fd5b80356102dd81610410565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b601f19601f830116810181811067ffffffffffffffff821117156104845761048461042f565b6040525050565b600061049660405190565b90506104a2828261045e565b919050565b600067ffffffffffffffff8211156104c1576104c161042f565b601f19601f83011660200192915050565b82818337506000910152565b60006104f16104ec846104a7565b61048b565b90508281526020810184848401111561050c5761050c600080fd5b6105178482856104d2565b509392505050565b600082601f83011261053357610533600080fd5b81356105438482602086016104de565b949350505050565b6000806040838503121561056157610561600080fd5b600061056d8585610424565b925050602083013567ffffffffffffffff81111561058d5761058d600080fd5b6105998582860161051f565b9150509250929050565b6105ac816103ff565b82525050565b602081016102dd82846105a3565b60005b838110156105db5781810151838201526020016105c3565b50506000910152565b60006105ee825190565b6105fc8185602086016105c0565b9290920192915050565b6102dd81836105e456fea2646970667358221220eecd99cd63d826407d5639a8db1821a6b0aadb0feacc1d2f9d4541d896c80bd464736f6c63430008140033608060405234801561001057600080fd5b506040516106ff3803806106ff83398101604081905261002f916100f8565b806001600160a01b038116610063576000604051631e4fbdf760e01b815260040161005a9190610130565b60405180910390fd5b61006c81610073565b505061013e565b600080546001600160a01b038381166001600160a01b0319831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b60006001600160a01b0382165b92915050565b6100df816100c3565b81146100ea57600080fd5b50565b80516100d0816100d6565b60006020828403121561010d5761010d600080fd5b600061011984846100ed565b949350505050565b61012a816100c3565b82525050565b602081016100d08284610121565b6105b28061014d6000396000f3fe60806040526004361061005a5760003560e01c80639623609d116100435780639623609d146100a5578063ad3cb1cc146100b8578063f2fde38b1461010e57600080fd5b8063715018a61461005f5780638da5cb5b14610076575b600080fd5b34801561006b57600080fd5b5061007461012e565b005b34801561008257600080fd5b506000546001600160a01b031660405161009c91906102fa565b60405180910390f35b6100746100b3366004610462565b610142565b3480156100c457600080fd5b506101016040518060400160405280600581526020017f352e302e3000000000000000000000000000000000000000000000000000000081525081565b60405161009c9190610523565b34801561011a57600080fd5b5061007461012936600461053b565b6101ca565b61013661022a565b6101406000610270565b565b61014a61022a565b6040517f4f1ef2860000000000000000000000000000000000000000000000000000000081526001600160a01b03841690634f1ef286903490610193908690869060040161055c565b6000604051808303818588803b1580156101ac57600080fd5b505af11580156101c0573d6000803e3d6000fd5b5050505050505050565b6101d261022a565b6001600160a01b03811661021e5760006040517f1e4fbdf700000000000000000000000000000000000000000000000000000000815260040161021591906102fa565b60405180910390fd5b61022781610270565b50565b6000546001600160a01b0316331461014057336040517f118cdaa700000000000000000000000000000000000000000000000000000000815260040161021591906102fa565b600080546001600160a01b038381167fffffffffffffffffffffffff0000000000000000000000000000000000000000831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b60006001600160a01b0382165b92915050565b6102f4816102d8565b82525050565b602081016102e582846102eb565b60006102e5826102d8565b61031c81610308565b811461022757600080fd5b80356102e581610313565b61031c816102d8565b80356102e581610332565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b601f19601f830116810181811067ffffffffffffffff8211171561039b5761039b610346565b6040525050565b60006103ad60405190565b90506103b98282610375565b919050565b600067ffffffffffffffff8211156103d8576103d8610346565b601f19601f83011660200192915050565b82818337506000910152565b6000610408610403846103be565b6103a2565b90508281526020810184848401111561042357610423600080fd5b61042e8482856103e9565b509392505050565b600082601f83011261044a5761044a600080fd5b813561045a8482602086016103f5565b949350505050565b60008060006060848603121561047a5761047a600080fd5b60006104868686610327565b93505060206104978682870161033b565b925050604084013567ffffffffffffffff8111156104b7576104b7600080fd5b6104c386828701610436565b9150509250925092565b60005b838110156104e85781810151838201526020016104d0565b50506000910152565b60006104fb825190565b8084526020840193506105128185602086016104cd565b601f01601f19169290920192915050565b6020808252810161053481846104f1565b9392505050565b60006020828403121561055057610550600080fd5b600061045a848461033b565b6040810161056a82856102eb565b818103602083015261045a81846104f156fea2646970667358221220b0f8a95a6e2425eadd967ffc0cf44240f936f4de811b02bbb90ac6935cf0ce6a64736f6c63430008140033b53127684a568b3173ae13b9f8a6016e243e63b6e8ee1178d6a717850b5d6103 \ No newline at end of file +60806040523480156200001157600080fd5b5060405162003df238038062003df283398101604081905262000034916200027e565b6200003f8162000051565b6200004a8162000118565b50620003ec565b600060405162000061906200021a565b604051809103906000f0801580156200007e573d6000803e3d6000fd5b509050600063c4d66de860e01b836040516024016200009e9190620002bc565b604051602081830303815290604052906001600160e01b0319166020820180516001600160e01b03838183161783525050505090506000620000e8838584620001d160201b60201c565b905060008051602062003dd2833981519152816040516200010a919062000300565b60405180910390a150505050565b6000604051620001289062000228565b604051809103906000f08015801562000145573d6000803e3d6000fd5b509050600063c4d66de860e01b83604051602401620001659190620002bc565b604051602081830303815290604052906001600160e01b0319166020820180516001600160e01b03838183161783525050505090506000620001af838584620001d160201b60201c565b905060008051602062003dd2833981519152816040516200010a919062000343565b600080848484604051620001e59062000236565b620001f393929190620003b0565b604051809103906000f08015801562000210573d6000803e3d6000fd5b5095945050505050565b610e61806200043a83390190565b61180b806200129b83390190565b61132c8062002aa683390190565b60006001600160a01b0382165b92915050565b620002628162000244565b81146200026e57600080fd5b50565b8051620002518162000257565b600060208284031215620002955762000295600080fd5b6000620002a3848462000271565b949350505050565b620002b68162000244565b82525050565b60208101620002518284620002ab565b60198152602081017f5472616e73616374696f6e73506f737450726f636573736f7200000000000000815290505b60200190565b604080825281016200031281620002cc565b9050620002516020830184620002ab565b600a815260208101694d65737361676542757360b01b81529050620002fa565b60408082528101620003128162000323565b60005b838110156200037257818101518382015260200162000358565b50506000910152565b600062000386825190565b8084526020840193506200039f81856020860162000355565b601f01601f19169290920192915050565b60608101620003c08286620002ab565b620003cf6020830185620002ab565b8181036040830152620003e381846200037b565b95945050505050565b603f80620003fb6000396000f3fe6080604052600080fdfea2646970667358221220244e489330cb1428c356b7e1f8326d45f7128d6d965825901ff4ccdb5baffc5e64736f6c63430008150033608060405234801561001057600080fd5b50610e41806100206000396000f3fe608060405234801561001057600080fd5b50600436106100c95760003560e01c806364c55a9d11610081578063c4d66de81161005b578063c4d66de8146101c8578063d547741f146101db578063ee546fd8146101ee57600080fd5b806364c55a9d1461017657806391d1485414610189578063a217fddf146101c057600080fd5b80632f2ff15d116100b25780632f2ff15d1461012757806336568abe1461013c578063508a50f41461014f57600080fd5b806301ffc9a7146100ce578063248a9ca3146100f7575b600080fd5b6100e16100dc36600461083b565b610265565b6040516100ee919061086e565b60405180910390f35b61011a61010536600461088d565b60009081526020819052604090206001015490565b6040516100ee91906108b4565b61013a6101353660046108e7565b6102fe565b005b61013a61014a3660046108e7565b610329565b61011a7ff16bb8781ef1311f8fe06747bcbe481e695502acdcb0cb8c03aa03899e39a59881565b61013a610184366004610976565b61037a565b6100e16101973660046108e7565b6000918252602082815260408084206001600160a01b0393909316845291905290205460ff1690565b61011a600081565b61013a6101d63660046109be565b6104d0565b61013a6101e93660046108e7565b610640565b61013a6101fc3660046109be565b6001805480820182556000919091527fb10e2d527612073b26eecdfd717e6a320cf44b4afac2b0732d9fcbe2b7fa0cf60180547fffffffffffffffffffffffff0000000000000000000000000000000000000000166001600160a01b0392909216919091179055565b60007fffffffff0000000000000000000000000000000000000000000000000000000082167f7965db0b0000000000000000000000000000000000000000000000000000000014806102f857507f01ffc9a7000000000000000000000000000000000000000000000000000000007fffffffff000000000000000000000000000000000000000000000000000000008316145b92915050565b60008281526020819052604090206001015461031981610665565b6103238383610672565b50505050565b6001600160a01b038116331461036b576040517f6697b23200000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b610375828261071c565b505050565b60006103876001306109f5565b9050336001600160a01b038216146103ba5760405162461bcd60e51b81526004016103b190610a4c565b60405180910390fd5b60008290036103db5760405162461bcd60e51b81526004016103b190610a8e565b6040517f3357352afe45ddda257f56623a512152c527b6f11555ec2fb2fdbbe72ddece419061040b9084906108b4565b60405180910390a160005b6001548110156103235760006001828154811061043557610435610a9e565b6000918252602090912001546040517f9f9976af0000000000000000000000000000000000000000000000000000000081526001600160a01b0390911691508190639f9976af9061048c9088908890600401610d9c565b600060405180830381600087803b1580156104a657600080fd5b505af11580156104ba573d6000803e3d6000fd5b5050505050806104c990610dae565b9050610416565b7ff0c57e16840df040f15088dc2f81fe391c3923bec73e23a9662efc9c229c6a00805468010000000000000000810460ff16159067ffffffffffffffff1660008115801561051b5750825b905060008267ffffffffffffffff1660011480156105385750303b155b905081158015610546575080155b1561057d576040517ff92ee8a900000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b845467ffffffffffffffff1916600117855583156105b157845468ff00000000000000001916680100000000000000001785555b6105bc600087610672565b506105e77ff16bb8781ef1311f8fe06747bcbe481e695502acdcb0cb8c03aa03899e39a59887610672565b50831561063857845468ff0000000000000000191685556040517fc7f505b2f371ae2175ee4913f4499e1f2633a7b5936321eed1cdaeb6115181d29061062f90600190610de2565b60405180910390a15b505050505050565b60008281526020819052604090206001015461065b81610665565b610323838361071c565b61066f813361079f565b50565b6000828152602081815260408083206001600160a01b038516845290915281205460ff16610714576000838152602081815260408083206001600160a01b03861684529091529020805460ff191660011790556106cc3390565b6001600160a01b0316826001600160a01b0316847f2f8788117e7eff1d82e926ec794901d17c78024a50270940304540a733656f0d60405160405180910390a45060016102f8565b5060006102f8565b6000828152602081815260408083206001600160a01b038516845290915281205460ff1615610714576000838152602081815260408083206001600160a01b0386168085529252808320805460ff1916905551339286917ff6391f5c32d9c69d2a47ea670b442974b53935d1edc7fd64eb21e047a839171b9190a45060016102f8565b6000828152602081815260408083206001600160a01b038516845290915290205460ff166107fd5780826040517fe2517d3f0000000000000000000000000000000000000000000000000000000081526004016103b1929190610df0565b5050565b7fffffffff0000000000000000000000000000000000000000000000000000000081165b811461066f57600080fd5b80356102f881610801565b60006020828403121561085057610850600080fd5b600061085c8484610830565b949350505050565b8015155b82525050565b602081016102f88284610864565b80610825565b80356102f88161087c565b6000602082840312156108a2576108a2600080fd5b600061085c8484610882565b80610868565b602081016102f882846108ae565b60006001600160a01b0382166102f8565b610825816108c2565b80356102f8816108d3565b600080604083850312156108fd576108fd600080fd5b60006109098585610882565b925050602061091a858286016108dc565b9150509250929050565b60008083601f84011261093957610939600080fd5b50813567ffffffffffffffff81111561095457610954600080fd5b60208301915083602082028301111561096f5761096f600080fd5b9250929050565b6000806020838503121561098c5761098c600080fd5b823567ffffffffffffffff8111156109a6576109a6600080fd5b6109b285828601610924565b92509250509250929050565b6000602082840312156109d3576109d3600080fd5b600061085c84846108dc565b634e487b7160e01b600052601160045260246000fd5b6001600160a01b039182169190811690828203908111156102f8576102f86109df565b60088152602081017f4e6f742073656c66000000000000000000000000000000000000000000000000815290505b60200190565b602080825281016102f881610a18565b601a8152602081017f4e6f207472616e73616374696f6e7320746f20636f6e7665727400000000000081529050610a46565b602080825281016102f881610a5c565b634e487b7160e01b600052603260045260246000fd5b60ff8116610825565b80356102f881610ab4565b5060006102f86020830183610abd565b60ff8116610868565b5060006102f86020830183610882565b5060006102f860208301836108dc565b610868816108c2565b6000808335601e1936859003018112610b2557610b25600080fd5b830160208101925035905067ffffffffffffffff811115610b4857610b48600080fd5b3681900382131561096f5761096f600080fd5b82818337506000910152565b818352602083019250610b7b828483610b5b565b50601f01601f19160190565b801515610825565b80356102f881610b87565b5060006102f86020830183610b8f565b67ffffffffffffffff8116610825565b80356102f881610baa565b5060006102f86020830183610bba565b67ffffffffffffffff8116610868565b60006101408301610bf68380610ac8565b610c008582610ad8565b50610c0e6020840184610ae1565b610c1b60208601826108ae565b50610c296040840184610ae1565b610c3660408601826108ae565b50610c446060840184610ae1565b610c5160608601826108ae565b50610c5f6080840184610af1565b610c6c6080860182610b01565b50610c7a60a0840184610ae1565b610c8760a08601826108ae565b50610c9560c0840184610b0a565b85830360c0870152610ca8838284610b67565b92505050610cb960e0840184610af1565b610cc660e0860182610b01565b50610cd5610100840184610b9a565b610ce3610100860182610864565b50610cf2610120840184610bc5565b610d00610120860182610bd5565b509392505050565b6000610d148383610be5565b9392505050565b6000823561013e1936849003018112610d3657610d36600080fd5b90910192915050565b818352602083019250600083602084028101838060005b87811015610d8f578484038952610d6d8284610d1b565b610d778582610d08565b94505060208201602099909901989150600101610d56565b5091979650505050505050565b6020808252810161085c818486610d3f565b600060018201610dc057610dc06109df565b5060010190565b600067ffffffffffffffff82166102f8565b61086881610dc7565b602081016102f88284610dd9565b60408101610dfe8285610b01565b610d1460208301846108ae56fea2646970667358221220a2829afc1b81bbd1feb9c6e28aa15934fd8a00d5bce0d721a5aef549094dc19364736f6c63430008150033608060405234801561001057600080fd5b5061001a33610027565b610022610098565b61014a565b7f9016d09d72d40fdae2fd8ceac6b6234c7706214fd39c1cd1e609a0528c19930080546001600160a01b031981166001600160a01b03848116918217845560405192169182907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e090600090a3505050565b7ff0c57e16840df040f15088dc2f81fe391c3923bec73e23a9662efc9c229c6a00805468010000000000000000900460ff16156100e85760405163f92ee8a960e01b815260040160405180910390fd5b80546001600160401b03908116146101475780546001600160401b0319166001600160401b0390811782556040519081527fc7f505b2f371ae2175ee4913f4499e1f2633a7b5936321eed1cdaeb6115181d29060200160405180910390a15b50565b6116b2806101596000396000f3fe6080604052600436106100c05760003560e01c80638da5cb5b11610074578063b1454caa1161004e578063b1454caa14610285578063c4d66de8146102b2578063f2fde38b146102d257610134565b80638da5cb5b146102005780639730886d1461024557806399a3ad211461026557610134565b8063346633fb116100a5578063346633fb146101b857806336d2da90146101cb578063715018a6146101eb57610134565b80630fcfbd111461015557806333a88c721461018b57610134565b36610134576040517f346633fb000000000000000000000000000000000000000000000000000000008152309063346633fb9034906101059033908390600401610aaa565b6000604051808303818588803b15801561011e57600080fd5b505af1158015610132573d6000803e3d6000fd5b005b60405162461bcd60e51b815260040161014c90610af9565b60405180910390fd5b34801561016157600080fd5b50610175610170366004610b24565b6102f2565b6040516101829190610b5f565b60405180910390f35b34801561019757600080fd5b506101ab6101a6366004610b24565b610351565b6040516101829190610b75565b6101326101c6366004610bb3565b6103a3565b3480156101d757600080fd5b506101326101e6366004610bf0565b61042d565b3480156101f757600080fd5b506101326104ac565b34801561020c57600080fd5b507f9016d09d72d40fdae2fd8ceac6b6234c7706214fd39c1cd1e609a0528c199300546001600160a01b03166040516101829190610c11565b34801561025157600080fd5b50610132610260366004610c1f565b6104c0565b34801561027157600080fd5b50610132610280366004610bb3565b610635565b34801561029157600080fd5b506102a56102a0366004610cd8565b6106b5565b6040516101829190610d6c565b3480156102be57600080fd5b506101326102cd366004610bf0565b61070e565b3480156102de57600080fd5b506101326102ed366004610bf0565b610850565b600080826040516020016103069190610f19565b60408051601f1981840301815291815281516020928301206000818152928390529120549091508061034a5760405162461bcd60e51b815260040161014c90610f84565b9392505050565b600080826040516020016103659190610f19565b60408051601f198184030181529181528151602092830120600081815292839052912054909150801580159061039b5750428111155b949350505050565b6000341180156103b257508034145b6103ce5760405162461bcd60e51b815260040161014c90610fec565b60006103d9336108a7565b9050826001600160a01b0316336001600160a01b03167f50c536ac33a920f00755865b831d17bf4cff0b2e0345f65b16d52bfc004068b63484604051610420929190610ffc565b60405180910390a3505050565b610435610905565b6000816001600160a01b03164760405160006040518083038185875af1925050503d8060008114610482576040519150601f19603f3d011682016040523d82523d6000602084013e610487565b606091505b50509050806104a85760405162461bcd60e51b815260040161014c90611049565b5050565b6104b4610905565b6104be6000610979565b565b60006104cd60013061106f565b90506105007f9016d09d72d40fdae2fd8ceac6b6234c7706214fd39c1cd1e609a0528c199300546001600160a01b031690565b6001600160a01b0316336001600160a01b031614806105275750336001600160a01b038216145b6105435760405162461bcd60e51b815260040161014c906110c4565b600061054f83426110d4565b90506000846040516020016105649190610f19565b60408051601f198184030181529181528151602092830120600081815292839052912054909150156105a85760405162461bcd60e51b815260040161014c9061113f565b6000818152602081815260408220849055600191906105c990880188610bf0565b6001600160a01b0316815260208101919091526040016000908120906105f5608088016060890161114f565b63ffffffff1681526020808201929092526040016000908120805460018101825590825291902086916004020161062c82826115c9565b50505050505050565b61063d610905565b6000826001600160a01b03168260405160006040518083038185875af1925050503d806000811461068a576040519150601f19603f3d011682016040523d82523d6000602084013e61068f565b606091505b50509050806106b05760405162461bcd60e51b815260040161014c90611049565b505050565b60006106c0336108a7565b90507fb93c37389233beb85a3a726c3f15c2d15533ee74cb602f20f490dfffef775937338288888888886040516106fd97969594939291906115d3565b60405180910390a195945050505050565b7ff0c57e16840df040f15088dc2f81fe391c3923bec73e23a9662efc9c229c6a00805468010000000000000000810460ff16159067ffffffffffffffff166000811580156107595750825b905060008267ffffffffffffffff1660011480156107765750303b155b905081158015610784575080155b156107bb576040517ff92ee8a900000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b845467ffffffffffffffff1916600117855583156107ef57845468ff00000000000000001916680100000000000000001785555b6107f886610a02565b831561084857845468ff0000000000000000191685556040517fc7f505b2f371ae2175ee4913f4499e1f2633a7b5936321eed1cdaeb6115181d29061083f9060019061164a565b60405180910390a15b505050505050565b610858610905565b6001600160a01b03811661089b5760006040517f1e4fbdf700000000000000000000000000000000000000000000000000000000815260040161014c9190610c11565b6108a481610979565b50565b6001600160a01b0381166000908152600260205260408120805467ffffffffffffffff1691600191906108da8385611658565b92506101000a81548167ffffffffffffffff021916908367ffffffffffffffff160217905550919050565b336109377f9016d09d72d40fdae2fd8ceac6b6234c7706214fd39c1cd1e609a0528c199300546001600160a01b031690565b6001600160a01b0316146104be57336040517f118cdaa700000000000000000000000000000000000000000000000000000000815260040161014c9190610c11565b7f9016d09d72d40fdae2fd8ceac6b6234c7706214fd39c1cd1e609a0528c19930080547fffffffffffffffffffffffff000000000000000000000000000000000000000081166001600160a01b03848116918217845560405192169182907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e090600090a3505050565b610a0a610a13565b6108a481610a7a565b7ff0c57e16840df040f15088dc2f81fe391c3923bec73e23a9662efc9c229c6a005468010000000000000000900460ff166104be576040517fd7e6bcf800000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b610858610a13565b60006001600160a01b0382165b92915050565b610a9e81610a82565b82525050565b80610a9e565b60408101610ab88285610a95565b61034a6020830184610aa4565b600b8152602081017f756e737570706f72746564000000000000000000000000000000000000000000815290505b60200190565b60208082528101610a8f81610ac5565b600060c08284031215610b1e57610b1e600080fd5b50919050565b600060208284031215610b3957610b39600080fd5b813567ffffffffffffffff811115610b5357610b53600080fd5b61039b84828501610b09565b60208101610a8f8284610aa4565b801515610a9e565b60208101610a8f8284610b6d565b610b8c81610a82565b81146108a457600080fd5b8035610a8f81610b83565b80610b8c565b8035610a8f81610ba2565b60008060408385031215610bc957610bc9600080fd5b6000610bd58585610b97565b9250506020610be685828601610ba8565b9150509250929050565b600060208284031215610c0557610c05600080fd5b600061039b8484610b97565b60208101610a8f8284610a95565b60008060408385031215610c3557610c35600080fd5b823567ffffffffffffffff811115610c4f57610c4f600080fd5b610bd585828601610b09565b63ffffffff8116610b8c565b8035610a8f81610c5b565b60008083601f840112610c8757610c87600080fd5b50813567ffffffffffffffff811115610ca257610ca2600080fd5b602083019150836001820283011115610cbd57610cbd600080fd5b9250929050565b60ff8116610b8c565b8035610a8f81610cc4565b600080600080600060808688031215610cf357610cf3600080fd5b6000610cff8888610c67565b9550506020610d1088828901610c67565b945050604086013567ffffffffffffffff811115610d3057610d30600080fd5b610d3c88828901610c72565b93509350506060610d4f88828901610ccd565b9150509295509295909350565b67ffffffffffffffff8116610a9e565b60208101610a8f8284610d5c565b506000610a8f6020830183610b97565b67ffffffffffffffff8116610b8c565b8035610a8f81610d8a565b506000610a8f6020830183610d9a565b506000610a8f6020830183610c67565b63ffffffff8116610a9e565b6000808335601e1936859003018112610dec57610dec600080fd5b830160208101925035905067ffffffffffffffff811115610e0f57610e0f600080fd5b36819003821315610cbd57610cbd600080fd5b82818337506000910152565b818352602083019250610e42828483610e22565b50601f01601f19160190565b506000610a8f6020830183610ccd565b60ff8116610a9e565b600060c08301610e778380610d7a565b610e818582610a95565b50610e8f6020840184610da5565b610e9c6020860182610d5c565b50610eaa6040840184610db5565b610eb76040860182610dc5565b50610ec56060840184610db5565b610ed26060860182610dc5565b50610ee06080840184610dd1565b8583036080870152610ef3838284610e2e565b92505050610f0460a0840184610e4e565b610f1160a0860182610e5e565b509392505050565b6020808252810161034a8184610e67565b60218152602081017f54686973206d65737361676520776173206e65766572207375626d697474656481527f2e00000000000000000000000000000000000000000000000000000000000000602082015290505b60400190565b60208082528101610a8f81610f2a565b60308152602081017f417474656d7074696e6720746f2073656e642076616c756520776974686f757481527f2070726f766964696e672045746865720000000000000000000000000000000060208201529050610f7e565b60208082528101610a8f81610f94565b6040810161100a8285610aa4565b61034a6020830184610d5c565b60148152602081017f6661696c65642073656e64696e672076616c756500000000000000000000000081529050610af3565b60208082528101610a8f81611017565b634e487b7160e01b600052601160045260246000fd5b6001600160a01b03918216919081169082820390811115610a8f57610a8f611059565b60118152602081017f4e6f74206f776e6572206f722073656c6600000000000000000000000000000081529050610af3565b60208082528101610a8f81611092565b80820180821115610a8f57610a8f611059565b60218152602081017f4d657373616765207375626d6974746564206d6f7265207468616e206f6e636581527f210000000000000000000000000000000000000000000000000000000000000060208201529050610f7e565b60208082528101610a8f816110e7565b60006020828403121561116457611164600080fd5b600061039b8484610c67565b60008135610a8f81610b83565b60006001600160a01b03835b81169019929092169190911792915050565b6000610a8f6001600160a01b0383166111b2565b90565b6001600160a01b031690565b6000610a8f8261119b565b6000610a8f826111be565b6111dd826111c9565b6111e881835461117d565b8255505050565b60008135610a8f81610d8a565b60007bffffffffffffffff00000000000000000000000000000000000000006111898460a01b90565b6000610a8f67ffffffffffffffff83165b67ffffffffffffffff1690565b61124c82611225565b6111e88183546111fc565b60008135610a8f81610c5b565b60007fffffffff000000000000000000000000000000000000000000000000000000006111898460e01b90565b600063ffffffff8216610a8f565b6112a882611291565b6111e8818354611264565b600063ffffffff83611189565b6112c982611291565b6111e88183546112b3565b6000808335601e19368590030181126112ef576112ef600080fd5b8301915050803567ffffffffffffffff81111561130e5761130e600080fd5b602082019150600181023603821315610cbd57610cbd600080fd5b634e487b7160e01b600052604160045260246000fd5b634e487b7160e01b600052602260045260246000fd5b60028104600182168061136957607f821691505b602082108103610b1e57610b1e61133f565b6000610a8f6111af8381565b6113908361137b565b815460001960089490940293841b1916921b91909117905550565b60006106b0818484611387565b818110156104a8576113cb6000826113ab565b6001016113b8565b601f8211156106b0576000818152602090206020601f850104810160208510156113fa5750805b61140c6020601f8601048301826113b8565b5050505050565b8267ffffffffffffffff81111561142c5761142c611329565b6114368254611355565b6114418282856113d3565b506000601f821160018114611476576000831561145e5750848201355b600019600885021c1981166002850217855550610848565b600084815260209020601f19841690835b828110156114a75787850135825560209485019460019092019101611487565b50848210156114c457600019601f86166008021c19848801351681555b5050505060020260010190555050565b6106b0838383611413565b60008135610a8f81610cc4565b600060ff83611189565b600060ff8216610a8f565b61150a826114f6565b6111e88183546114ec565b80828061152181611170565b905061152d81846111d4565b5050602083018061153d826111ef565b90506115498184611243565b5050604083018061155982611257565b9050611565818461129f565b50505060018101606083018061157a82611257565b905061158681846112c0565b505050600281016080830161159b81856112d4565b91506115a88282856114d4565b5050506003810160a08301806115bd826114df565b905061140c8184611501565b6104a88282611515565b60c081016115e1828a610a95565b6115ee6020830189610d5c565b6115fb6040830188610dc5565b6116086060830187610dc5565b818103608083015261161b818587610e2e565b905061162a60a0830184610e5e565b98975050505050505050565b6000610a8f82611236565b610a9e81611636565b60208101610a8f8284611641565b67ffffffffffffffff918216919081169082820190811115610a8f57610a8f61105956fea264697066735822122054b3bb8148cdbafe0aca39b986ef2610fd18ea01fc3554d63624fda624c6d21164736f6c6343000815003360a06040526040516200132c3803806200132c8339810160408190526200002691620004c5565b828162000034828262000098565b505081604051620000459062000351565b6200005191906200054c565b604051809103906000f0801580156200006e573d6000803e3d6000fd5b506001600160a01b03166080526200008f6200008960805190565b620000fe565b505050620005ac565b620000a38262000167565b6040516001600160a01b038316907fbc7cd75a20ee27fd9adebab32041f755214dbc6bffa90cc0225b39da2e5c2d3b90600090a2805115620000f057620000eb8282620001e4565b505050565b620000fa62000263565b5050565b7f7e644d79422f17c01e4894b5f4f588d331ebfa28653d42ae832dc59e38c9798f620001406000805160206200130c833981519152546001600160a01b031690565b82604051620001519291906200055c565b60405180910390a1620001648162000285565b50565b806001600160a01b03163b600003620001a05780604051634c9c8ce360e01b81526004016200019791906200054c565b60405180910390fd5b807f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc5b80546001600160a01b0319166001600160a01b039290921691909117905550565b6060600080846001600160a01b031684604051620002039190620005a0565b600060405180830381855af49150503d806000811462000240576040519150601f19603f3d011682016040523d82523d6000602084013e62000245565b606091505b50909250905062000258858383620002c9565b925050505b92915050565b3415620002835760405163b398979f60e01b815260040160405180910390fd5b565b6001600160a01b038116620002b2576000604051633173bdd160e11b81526004016200019791906200054c565b806000805160206200130c833981519152620001c3565b606082620002e257620002dc8262000327565b62000320565b8151158015620002fa57506001600160a01b0384163b155b156200031d5783604051639996b31560e01b81526004016200019791906200054c565b50805b9392505050565b805115620003385780518082602001fd5b604051630a12f52160e11b815260040160405180910390fd5b6106ff8062000c0d83390190565b60006001600160a01b0382166200025d565b6200037c816200035f565b81146200016457600080fd5b80516200025d8162000371565b634e487b7160e01b600052604160045260246000fd5b601f19601f83011681016001600160401b0381118282101715620003d357620003d362000395565b6040525050565b6000620003e660405190565b9050620003f48282620003ab565b919050565b60006001600160401b0382111562000415576200041562000395565b601f19601f83011660200192915050565b60005b838110156200044357818101518382015260200162000429565b50506000910152565b6000620004636200045d84620003f9565b620003da565b905082815260208101848484011115620004805762000480600080fd5b6200048d84828562000426565b509392505050565b600082601f830112620004ab57620004ab600080fd5b8151620004bd8482602086016200044c565b949350505050565b600080600060608486031215620004df57620004df600080fd5b6000620004ed868662000388565b9350506020620005008682870162000388565b604086015190935090506001600160401b03811115620005235762000523600080fd5b620005318682870162000495565b9150509250925092565b62000546816200035f565b82525050565b602081016200025d82846200053b565b604081016200056c82856200053b565b6200032060208301846200053b565b600062000586825190565b6200059681856020860162000426565b9290920192915050565b6200025d81836200057b565b608051610646620005c76000396000601001526106466000f3fe608060405261000c61000e565b005b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031633036100c5576000357fffffffff00000000000000000000000000000000000000000000000000000000167f4f1ef28600000000000000000000000000000000000000000000000000000000146100bb576040517fd2b576ec00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6100c36100cd565b565b6100c36100fc565b6000806100dd36600481846103cf565b8101906100ea919061054b565b915091506100f8828261010c565b5050565b6100c3610107610167565b61019f565b610115826101c3565b6040516001600160a01b038316907fbc7cd75a20ee27fd9adebab32041f755214dbc6bffa90cc0225b39da2e5c2d3b90600090a280511561015f5761015a828261026b565b505050565b6100f86102e3565b600061019a7f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc546001600160a01b031690565b905090565b3660008037600080366000845af43d6000803e8080156101be573d6000f35b3d6000fd5b806001600160a01b03163b60000361021257806040517f4c9c8ce300000000000000000000000000000000000000000000000000000000815260040161020991906105b2565b60405180910390fd5b7f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc80547fffffffffffffffffffffffff0000000000000000000000000000000000000000166001600160a01b0392909216919091179055565b6060600080846001600160a01b0316846040516102889190610606565b600060405180830381855af49150503d80600081146102c3576040519150601f19603f3d011682016040523d82523d6000602084013e6102c8565b606091505b50915091506102d885838361031b565b925050505b92915050565b34156100c3576040517fb398979f00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6060826103305761032b8261038a565b610383565b815115801561034757506001600160a01b0384163b155b1561038057836040517f9996b31500000000000000000000000000000000000000000000000000000000815260040161020991906105b2565b50805b9392505050565b80511561039a5780518082602001fd5b6040517f1425ea4200000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b50565b600080858511156103e2576103e2600080fd5b838611156103f2576103f2600080fd5b5050820193919092039150565b60006001600160a01b0382166102dd565b610419816103ff565b81146103cc57600080fd5b80356102dd81610410565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b601f19601f830116810181811067ffffffffffffffff821117156104845761048461042f565b6040525050565b600061049660405190565b90506104a2828261045e565b919050565b600067ffffffffffffffff8211156104c1576104c161042f565b601f19601f83011660200192915050565b82818337506000910152565b60006104f16104ec846104a7565b61048b565b90508281526020810184848401111561050c5761050c600080fd5b6105178482856104d2565b509392505050565b600082601f83011261053357610533600080fd5b81356105438482602086016104de565b949350505050565b6000806040838503121561056157610561600080fd5b600061056d8585610424565b925050602083013567ffffffffffffffff81111561058d5761058d600080fd5b6105998582860161051f565b9150509250929050565b6105ac816103ff565b82525050565b602081016102dd82846105a3565b60005b838110156105db5781810151838201526020016105c3565b50506000910152565b60006105ee825190565b6105fc8185602086016105c0565b9290920192915050565b6102dd81836105e456fea26469706673582212209a20b849817245e3cac5f59a8de1da61769680733e5cb208d7418240470f1f7364736f6c63430008150033608060405234801561001057600080fd5b506040516106ff3803806106ff83398101604081905261002f916100f8565b806001600160a01b038116610063576000604051631e4fbdf760e01b815260040161005a9190610130565b60405180910390fd5b61006c81610073565b505061013e565b600080546001600160a01b038381166001600160a01b0319831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b60006001600160a01b0382165b92915050565b6100df816100c3565b81146100ea57600080fd5b50565b80516100d0816100d6565b60006020828403121561010d5761010d600080fd5b600061011984846100ed565b949350505050565b61012a816100c3565b82525050565b602081016100d08284610121565b6105b28061014d6000396000f3fe60806040526004361061005a5760003560e01c80639623609d116100435780639623609d146100a5578063ad3cb1cc146100b8578063f2fde38b1461010e57600080fd5b8063715018a61461005f5780638da5cb5b14610076575b600080fd5b34801561006b57600080fd5b5061007461012e565b005b34801561008257600080fd5b506000546001600160a01b031660405161009c91906102fa565b60405180910390f35b6100746100b3366004610462565b610142565b3480156100c457600080fd5b506101016040518060400160405280600581526020017f352e302e3000000000000000000000000000000000000000000000000000000081525081565b60405161009c9190610523565b34801561011a57600080fd5b5061007461012936600461053b565b6101ca565b61013661022a565b6101406000610270565b565b61014a61022a565b6040517f4f1ef2860000000000000000000000000000000000000000000000000000000081526001600160a01b03841690634f1ef286903490610193908690869060040161055c565b6000604051808303818588803b1580156101ac57600080fd5b505af11580156101c0573d6000803e3d6000fd5b5050505050505050565b6101d261022a565b6001600160a01b03811661021e5760006040517f1e4fbdf700000000000000000000000000000000000000000000000000000000815260040161021591906102fa565b60405180910390fd5b61022781610270565b50565b6000546001600160a01b0316331461014057336040517f118cdaa700000000000000000000000000000000000000000000000000000000815260040161021591906102fa565b600080546001600160a01b038381167fffffffffffffffffffffffff0000000000000000000000000000000000000000831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b60006001600160a01b0382165b92915050565b6102f4816102d8565b82525050565b602081016102e582846102eb565b60006102e5826102d8565b61031c81610308565b811461022757600080fd5b80356102e581610313565b61031c816102d8565b80356102e581610332565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b601f19601f830116810181811067ffffffffffffffff8211171561039b5761039b610346565b6040525050565b60006103ad60405190565b90506103b98282610375565b919050565b600067ffffffffffffffff8211156103d8576103d8610346565b601f19601f83011660200192915050565b82818337506000910152565b6000610408610403846103be565b6103a2565b90508281526020810184848401111561042357610423600080fd5b61042e8482856103e9565b509392505050565b600082601f83011261044a5761044a600080fd5b813561045a8482602086016103f5565b949350505050565b60008060006060848603121561047a5761047a600080fd5b60006104868686610327565b93505060206104978682870161033b565b925050604084013567ffffffffffffffff8111156104b7576104b7600080fd5b6104c386828701610436565b9150509250925092565b60005b838110156104e85781810151838201526020016104d0565b50506000910152565b60006104fb825190565b8084526020840193506105128185602086016104cd565b601f01601f19169290920192915050565b6020808252810161053481846104f1565b9392505050565b60006020828403121561055057610550600080fd5b600061045a848461033b565b6040810161056a82856102eb565b818103602083015261045a81846104f156fea2646970667358221220bc53b042dace43e275ea4e3c2111fb2632f7c79b2d985ac0664bd97ca15c79a164736f6c63430008150033b53127684a568b3173ae13b9f8a6016e243e63b6e8ee1178d6a717850b5d6103bd64e14789a915ea657e42f2dbf0b973227708fa64b58766287637985d1ade69 \ No newline at end of file diff --git a/contracts/exported/src/system/Transaction.sol/Structs.bin b/contracts/exported/src/system/Transaction.sol/Structs.bin index 52aed23584..84deb1cf20 100644 --- a/contracts/exported/src/system/Transaction.sol/Structs.bin +++ b/contracts/exported/src/system/Transaction.sol/Structs.bin @@ -1 +1 @@ -60566037600b82828239805160001a607314602a57634e487b7160e01b600052600060045260246000fd5b30600052607381538281f3fe73000000000000000000000000000000000000000030146080604052600080fdfea26469706673582212207f339c5f0759e37566d29ad4c9220a9f9e83d6ce90dc4e9ae55a296e42bfe19e64736f6c63430008140033 \ No newline at end of file +60566037600b82828239805160001a607314602a57634e487b7160e01b600052600060045260246000fd5b30600052607381538281f3fe73000000000000000000000000000000000000000030146080604052600080fdfea264697066735822122032175d88d3a7b1998650b0ab451e19f7513948dcc3f79b30ee2efb24ce71603c64736f6c63430008150033 \ No newline at end of file diff --git a/contracts/exported/src/system/TransactionPostProcessor.sol/TransactionPostProcessor.bin b/contracts/exported/src/system/TransactionPostProcessor.sol/TransactionPostProcessor.bin index 188adccc5b..8120603392 100644 --- a/contracts/exported/src/system/TransactionPostProcessor.sol/TransactionPostProcessor.bin +++ b/contracts/exported/src/system/TransactionPostProcessor.sol/TransactionPostProcessor.bin @@ -1 +1 @@ -608060405234801561001057600080fd5b50610e60806100206000396000f3fe608060405234801561001057600080fd5b50600436106100d45760003560e01c80635f03a66111610081578063a217fddf1161005b578063a217fddf14610205578063d547741f1461020d578063ee546fd81461022057600080fd5b80635f03a6611461019457806364c55a9d146101bb57806391d14854146101ce57600080fd5b806336568abe116100b257806336568abe14610147578063485cc9551461015a578063508a50f41461016d57600080fd5b806301ffc9a7146100d9578063248a9ca3146101025780632f2ff15d14610132575b600080fd5b6100ec6100e73660046108a6565b610297565b6040516100f991906108d9565b60405180910390f35b6101256101103660046108f8565b60009081526020819052604090206001015490565b6040516100f9919061091f565b610145610140366004610952565b610330565b005b610145610155366004610952565b61035b565b61014561016836600461098f565b6103ac565b6101257ff16bb8781ef1311f8fe06747bcbe481e695502acdcb0cb8c03aa03899e39a59881565b6101257f33dd54660937884a707404066945db647918933f71cc471efc6d6d0c3665d8db81565b6101456101c9366004610a03565b610548565b6100ec6101dc366004610952565b6000918252602082815260408084206001600160a01b0393909316845291905290205460ff1690565b610125600081565b61014561021b366004610952565b6106ab565b61014561022e366004610a4b565b6001805480820182556000919091527fb10e2d527612073b26eecdfd717e6a320cf44b4afac2b0732d9fcbe2b7fa0cf60180547fffffffffffffffffffffffff0000000000000000000000000000000000000000166001600160a01b0392909216919091179055565b60007fffffffff0000000000000000000000000000000000000000000000000000000082167f7965db0b00000000000000000000000000000000000000000000000000000000148061032a57507f01ffc9a7000000000000000000000000000000000000000000000000000000007fffffffff000000000000000000000000000000000000000000000000000000008316145b92915050565b60008281526020819052604090206001015461034b816106d0565b61035583836106dd565b50505050565b6001600160a01b038116331461039d576040517f6697b23200000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6103a78282610787565b505050565b7ff0c57e16840df040f15088dc2f81fe391c3923bec73e23a9662efc9c229c6a00805468010000000000000000810460ff16159067ffffffffffffffff166000811580156103f75750825b905060008267ffffffffffffffff1660011480156104145750303b155b905081158015610422575080155b15610459576040517ff92ee8a900000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b845467ffffffffffffffff19166001178555831561048d57845468ff00000000000000001916680100000000000000001785555b6104986000886106dd565b506104c37ff16bb8781ef1311f8fe06747bcbe481e695502acdcb0cb8c03aa03899e39a598886106dd565b506104ee7f33dd54660937884a707404066945db647918933f71cc471efc6d6d0c3665d8db876106dd565b50831561053f57845468ff0000000000000000191685556040517fc7f505b2f371ae2175ee4913f4499e1f2633a7b5936321eed1cdaeb6115181d29061053690600190610a87565b60405180910390a15b50505050505050565b7f33dd54660937884a707404066945db647918933f71cc471efc6d6d0c3665d8db610572816106d0565b60008290036105b6576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016105ad90610a95565b60405180910390fd5b6040517f3357352afe45ddda257f56623a512152c527b6f11555ec2fb2fdbbe72ddece41906105e690849061091f565b60405180910390a160005b6001548110156103555760006001828154811061061057610610610ad0565b6000918252602090912001546040517f9f9976af0000000000000000000000000000000000000000000000000000000081526001600160a01b0390911691508190639f9976af906106679088908890600401610dce565b600060405180830381600087803b15801561068157600080fd5b505af1158015610695573d6000803e3d6000fd5b5050505050806106a490610df6565b90506105f1565b6000828152602081905260409020600101546106c6816106d0565b6103558383610787565b6106da813361080a565b50565b6000828152602081815260408083206001600160a01b038516845290915281205460ff1661077f576000838152602081815260408083206001600160a01b03861684529091529020805460ff191660011790556107373390565b6001600160a01b0316826001600160a01b0316847f2f8788117e7eff1d82e926ec794901d17c78024a50270940304540a733656f0d60405160405180910390a450600161032a565b50600061032a565b6000828152602081815260408083206001600160a01b038516845290915281205460ff161561077f576000838152602081815260408083206001600160a01b0386168085529252808320805460ff1916905551339286917ff6391f5c32d9c69d2a47ea670b442974b53935d1edc7fd64eb21e047a839171b9190a450600161032a565b6000828152602081815260408083206001600160a01b038516845290915290205460ff166108685780826040517fe2517d3f0000000000000000000000000000000000000000000000000000000081526004016105ad929190610e0f565b5050565b7fffffffff0000000000000000000000000000000000000000000000000000000081165b81146106da57600080fd5b803561032a8161086c565b6000602082840312156108bb576108bb600080fd5b60006108c7848461089b565b949350505050565b8015155b82525050565b6020810161032a82846108cf565b80610890565b803561032a816108e7565b60006020828403121561090d5761090d600080fd5b60006108c784846108ed565b806108d3565b6020810161032a8284610919565b60006001600160a01b03821661032a565b6108908161092d565b803561032a8161093e565b6000806040838503121561096857610968600080fd5b600061097485856108ed565b925050602061098585828601610947565b9150509250929050565b600080604083850312156109a5576109a5600080fd5b60006109748585610947565b60008083601f8401126109c6576109c6600080fd5b50813567ffffffffffffffff8111156109e1576109e1600080fd5b6020830191508360208202830111156109fc576109fc600080fd5b9250929050565b60008060208385031215610a1957610a19600080fd5b823567ffffffffffffffff811115610a3357610a33600080fd5b610a3f858286016109b1565b92509250509250929050565b600060208284031215610a6057610a60600080fd5b60006108c78484610947565b600067ffffffffffffffff821661032a565b6108d381610a6c565b6020810161032a8284610a7e565b6020808252810161032a81601a81527f4e6f207472616e73616374696f6e7320746f20636f6e76657274000000000000602082015260400190565b634e487b7160e01b600052603260045260246000fd5b60ff8116610890565b803561032a81610ae6565b50600061032a6020830183610aef565b60ff81166108d3565b50600061032a60208301836108ed565b50600061032a6020830183610947565b6108d38161092d565b6000808335601e1936859003018112610b5757610b57600080fd5b830160208101925035905067ffffffffffffffff811115610b7a57610b7a600080fd5b368190038213156109fc576109fc600080fd5b82818337506000910152565b818352602083019250610bad828483610b8d565b50601f01601f19160190565b801515610890565b803561032a81610bb9565b50600061032a6020830183610bc1565b67ffffffffffffffff8116610890565b803561032a81610bdc565b50600061032a6020830183610bec565b67ffffffffffffffff81166108d3565b60006101408301610c288380610afa565b610c328582610b0a565b50610c406020840184610b13565b610c4d6020860182610919565b50610c5b6040840184610b13565b610c686040860182610919565b50610c766060840184610b13565b610c836060860182610919565b50610c916080840184610b23565b610c9e6080860182610b33565b50610cac60a0840184610b13565b610cb960a0860182610919565b50610cc760c0840184610b3c565b85830360c0870152610cda838284610b99565b92505050610ceb60e0840184610b23565b610cf860e0860182610b33565b50610d07610100840184610bcc565b610d156101008601826108cf565b50610d24610120840184610bf7565b610d32610120860182610c07565b509392505050565b6000610d468383610c17565b9392505050565b6000823561013e1936849003018112610d6857610d68600080fd5b90910192915050565b818352602083019250600083602084028101838060005b87811015610dc1578484038952610d9f8284610d4d565b610da98582610d3a565b94505060208201602099909901989150600101610d88565b5091979650505050505050565b602080825281016108c7818486610d71565b634e487b7160e01b600052601160045260246000fd5b600060018201610e0857610e08610de0565b5060010190565b60408101610e1d8285610b33565b610d46602083018461091956fea26469706673582212200b0c2d8cf0499a5aeaa5aad09b481762d0bf45ab68c10f7ee4b33405bc19462d64736f6c63430008140033 \ No newline at end of file +608060405234801561001057600080fd5b50610e41806100206000396000f3fe608060405234801561001057600080fd5b50600436106100c95760003560e01c806364c55a9d11610081578063c4d66de81161005b578063c4d66de8146101c8578063d547741f146101db578063ee546fd8146101ee57600080fd5b806364c55a9d1461017657806391d1485414610189578063a217fddf146101c057600080fd5b80632f2ff15d116100b25780632f2ff15d1461012757806336568abe1461013c578063508a50f41461014f57600080fd5b806301ffc9a7146100ce578063248a9ca3146100f7575b600080fd5b6100e16100dc36600461083b565b610265565b6040516100ee919061086e565b60405180910390f35b61011a61010536600461088d565b60009081526020819052604090206001015490565b6040516100ee91906108b4565b61013a6101353660046108e7565b6102fe565b005b61013a61014a3660046108e7565b610329565b61011a7ff16bb8781ef1311f8fe06747bcbe481e695502acdcb0cb8c03aa03899e39a59881565b61013a610184366004610976565b61037a565b6100e16101973660046108e7565b6000918252602082815260408084206001600160a01b0393909316845291905290205460ff1690565b61011a600081565b61013a6101d63660046109be565b6104d0565b61013a6101e93660046108e7565b610640565b61013a6101fc3660046109be565b6001805480820182556000919091527fb10e2d527612073b26eecdfd717e6a320cf44b4afac2b0732d9fcbe2b7fa0cf60180547fffffffffffffffffffffffff0000000000000000000000000000000000000000166001600160a01b0392909216919091179055565b60007fffffffff0000000000000000000000000000000000000000000000000000000082167f7965db0b0000000000000000000000000000000000000000000000000000000014806102f857507f01ffc9a7000000000000000000000000000000000000000000000000000000007fffffffff000000000000000000000000000000000000000000000000000000008316145b92915050565b60008281526020819052604090206001015461031981610665565b6103238383610672565b50505050565b6001600160a01b038116331461036b576040517f6697b23200000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b610375828261071c565b505050565b60006103876001306109f5565b9050336001600160a01b038216146103ba5760405162461bcd60e51b81526004016103b190610a4c565b60405180910390fd5b60008290036103db5760405162461bcd60e51b81526004016103b190610a8e565b6040517f3357352afe45ddda257f56623a512152c527b6f11555ec2fb2fdbbe72ddece419061040b9084906108b4565b60405180910390a160005b6001548110156103235760006001828154811061043557610435610a9e565b6000918252602090912001546040517f9f9976af0000000000000000000000000000000000000000000000000000000081526001600160a01b0390911691508190639f9976af9061048c9088908890600401610d9c565b600060405180830381600087803b1580156104a657600080fd5b505af11580156104ba573d6000803e3d6000fd5b5050505050806104c990610dae565b9050610416565b7ff0c57e16840df040f15088dc2f81fe391c3923bec73e23a9662efc9c229c6a00805468010000000000000000810460ff16159067ffffffffffffffff1660008115801561051b5750825b905060008267ffffffffffffffff1660011480156105385750303b155b905081158015610546575080155b1561057d576040517ff92ee8a900000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b845467ffffffffffffffff1916600117855583156105b157845468ff00000000000000001916680100000000000000001785555b6105bc600087610672565b506105e77ff16bb8781ef1311f8fe06747bcbe481e695502acdcb0cb8c03aa03899e39a59887610672565b50831561063857845468ff0000000000000000191685556040517fc7f505b2f371ae2175ee4913f4499e1f2633a7b5936321eed1cdaeb6115181d29061062f90600190610de2565b60405180910390a15b505050505050565b60008281526020819052604090206001015461065b81610665565b610323838361071c565b61066f813361079f565b50565b6000828152602081815260408083206001600160a01b038516845290915281205460ff16610714576000838152602081815260408083206001600160a01b03861684529091529020805460ff191660011790556106cc3390565b6001600160a01b0316826001600160a01b0316847f2f8788117e7eff1d82e926ec794901d17c78024a50270940304540a733656f0d60405160405180910390a45060016102f8565b5060006102f8565b6000828152602081815260408083206001600160a01b038516845290915281205460ff1615610714576000838152602081815260408083206001600160a01b0386168085529252808320805460ff1916905551339286917ff6391f5c32d9c69d2a47ea670b442974b53935d1edc7fd64eb21e047a839171b9190a45060016102f8565b6000828152602081815260408083206001600160a01b038516845290915290205460ff166107fd5780826040517fe2517d3f0000000000000000000000000000000000000000000000000000000081526004016103b1929190610df0565b5050565b7fffffffff0000000000000000000000000000000000000000000000000000000081165b811461066f57600080fd5b80356102f881610801565b60006020828403121561085057610850600080fd5b600061085c8484610830565b949350505050565b8015155b82525050565b602081016102f88284610864565b80610825565b80356102f88161087c565b6000602082840312156108a2576108a2600080fd5b600061085c8484610882565b80610868565b602081016102f882846108ae565b60006001600160a01b0382166102f8565b610825816108c2565b80356102f8816108d3565b600080604083850312156108fd576108fd600080fd5b60006109098585610882565b925050602061091a858286016108dc565b9150509250929050565b60008083601f84011261093957610939600080fd5b50813567ffffffffffffffff81111561095457610954600080fd5b60208301915083602082028301111561096f5761096f600080fd5b9250929050565b6000806020838503121561098c5761098c600080fd5b823567ffffffffffffffff8111156109a6576109a6600080fd5b6109b285828601610924565b92509250509250929050565b6000602082840312156109d3576109d3600080fd5b600061085c84846108dc565b634e487b7160e01b600052601160045260246000fd5b6001600160a01b039182169190811690828203908111156102f8576102f86109df565b60088152602081017f4e6f742073656c66000000000000000000000000000000000000000000000000815290505b60200190565b602080825281016102f881610a18565b601a8152602081017f4e6f207472616e73616374696f6e7320746f20636f6e7665727400000000000081529050610a46565b602080825281016102f881610a5c565b634e487b7160e01b600052603260045260246000fd5b60ff8116610825565b80356102f881610ab4565b5060006102f86020830183610abd565b60ff8116610868565b5060006102f86020830183610882565b5060006102f860208301836108dc565b610868816108c2565b6000808335601e1936859003018112610b2557610b25600080fd5b830160208101925035905067ffffffffffffffff811115610b4857610b48600080fd5b3681900382131561096f5761096f600080fd5b82818337506000910152565b818352602083019250610b7b828483610b5b565b50601f01601f19160190565b801515610825565b80356102f881610b87565b5060006102f86020830183610b8f565b67ffffffffffffffff8116610825565b80356102f881610baa565b5060006102f86020830183610bba565b67ffffffffffffffff8116610868565b60006101408301610bf68380610ac8565b610c008582610ad8565b50610c0e6020840184610ae1565b610c1b60208601826108ae565b50610c296040840184610ae1565b610c3660408601826108ae565b50610c446060840184610ae1565b610c5160608601826108ae565b50610c5f6080840184610af1565b610c6c6080860182610b01565b50610c7a60a0840184610ae1565b610c8760a08601826108ae565b50610c9560c0840184610b0a565b85830360c0870152610ca8838284610b67565b92505050610cb960e0840184610af1565b610cc660e0860182610b01565b50610cd5610100840184610b9a565b610ce3610100860182610864565b50610cf2610120840184610bc5565b610d00610120860182610bd5565b509392505050565b6000610d148383610be5565b9392505050565b6000823561013e1936849003018112610d3657610d36600080fd5b90910192915050565b818352602083019250600083602084028101838060005b87811015610d8f578484038952610d6d8284610d1b565b610d778582610d08565b94505060208201602099909901989150600101610d56565b5091979650505050505050565b6020808252810161085c818486610d3f565b600060018201610dc057610dc06109df565b5060010190565b600067ffffffffffffffff82166102f8565b61086881610dc7565b602081016102f88284610dd9565b60408101610dfe8285610b01565b610d1460208301846108ae56fea2646970667358221220a2829afc1b81bbd1feb9c6e28aa15934fd8a00d5bce0d721a5aef549094dc19364736f6c63430008150033 \ No newline at end of file diff --git a/contracts/exported/src/system/TransactionPostProcessor.sol/TransactionPostProcessor.json b/contracts/exported/src/system/TransactionPostProcessor.sol/TransactionPostProcessor.json index ae22ec7a41..523e5a44da 100644 --- a/contracts/exported/src/system/TransactionPostProcessor.sol/TransactionPostProcessor.json +++ b/contracts/exported/src/system/TransactionPostProcessor.sol/TransactionPostProcessor.json @@ -157,19 +157,6 @@ "stateMutability": "view", "type": "function" }, - { - "inputs": [], - "name": "HOOK_CALLER_ROLE", - "outputs": [ - { - "internalType": "bytes32", - "name": "", - "type": "bytes32" - } - ], - "stateMutability": "view", - "type": "function" - }, { "inputs": [ { @@ -250,11 +237,6 @@ "internalType": "address", "name": "eoaAdmin", "type": "address" - }, - { - "internalType": "address", - "name": "authorizedCaller", - "type": "address" } ], "name": "initialize", diff --git a/contracts/exported/src/testing/GasConsumerBalance.sol/GasConsumerBalance.bin b/contracts/exported/src/testing/GasConsumerBalance.sol/GasConsumerBalance.bin index 2397eb0a47..01e4af89d8 100644 --- a/contracts/exported/src/testing/GasConsumerBalance.sol/GasConsumerBalance.bin +++ b/contracts/exported/src/testing/GasConsumerBalance.sol/GasConsumerBalance.bin @@ -1 +1 @@ -608060405234801561001057600080fd5b50600080546001600160a01b0319163317905561023c806100326000396000f3fe608060405234801561001057600080fd5b506004361061004c5760003560e01c806373cc802a1461005157806383197ef0146100a85780638da5cb5b146100b0578063c1cfb99a146100a6575b600080fd5b6100a661005f366004610185565b600080547fffffffffffffffffffffffff00000000000000000000000000000000000000001673ffffffffffffffffffffffffffffffffffffffff92909216919091179055565b005b6100a66100e6565b6000546100d09073ffffffffffffffffffffffffffffffffffffffff1681565b6040516100dd91906101bd565b60405180910390f35b60005473ffffffffffffffffffffffffffffffffffffffff163314610140576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610137906101cb565b60405180910390fd5b30ff5b600073ffffffffffffffffffffffffffffffffffffffff82165b92915050565b61016c81610143565b811461017757600080fd5b50565b803561015d81610163565b60006020828403121561019a5761019a600080fd5b60006101a6848461017a565b949350505050565b6101b781610143565b82525050565b6020810161015d82846101ae565b6020808252810161015d81601581527f596f7520617265206e6f7420746865206f776e6572000000000000000000000060208201526040019056fea26469706673582212200e31111a553d671d87128078e7cb05bffb77af15bb82d394b7cc2b0b873f75cb64736f6c63430008140033 \ No newline at end of file +608060405234801561001057600080fd5b50600080546001600160a01b0319163317905561023c806100326000396000f3fe608060405234801561001057600080fd5b506004361061004c5760003560e01c806373cc802a1461005157806383197ef0146100a85780638da5cb5b146100b0578063c1cfb99a146100a6575b600080fd5b6100a661005f366004610185565b600080547fffffffffffffffffffffffff00000000000000000000000000000000000000001673ffffffffffffffffffffffffffffffffffffffff92909216919091179055565b005b6100a66100e6565b6000546100d09073ffffffffffffffffffffffffffffffffffffffff1681565b6040516100dd91906101bd565b60405180910390f35b60005473ffffffffffffffffffffffffffffffffffffffff163314610140576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610137906101cb565b60405180910390fd5b30ff5b600073ffffffffffffffffffffffffffffffffffffffff82165b92915050565b61016c81610143565b811461017757600080fd5b50565b803561015d81610163565b60006020828403121561019a5761019a600080fd5b60006101a6848461017a565b949350505050565b6101b781610143565b82525050565b6020810161015d82846101ae565b6020808252810161015d81601581527f596f7520617265206e6f7420746865206f776e6572000000000000000000000060208201526040019056fea2646970667358221220b30748e6044bd6e6bd1865e299bdb154c2f030105056739fc4767cbf784e74fb64736f6c63430008150033 \ No newline at end of file diff --git a/contracts/exported/src/zen/ZenBase.sol/ZenBase.bin b/contracts/exported/src/zen/ZenBase.sol/ZenBase.bin index 6f7a2b6908..7fade9ade4 100644 --- a/contracts/exported/src/zen/ZenBase.sol/ZenBase.bin +++ b/contracts/exported/src/zen/ZenBase.sol/ZenBase.bin @@ -1 +1 @@ -60806040523480156200001157600080fd5b506040516200115f3803806200115f8339810160408190526200003491620001ad565b33604051806040016040528060038152602001622d32b760e91b815250604051806040016040528060038152602001622d22a760e91b81525081600390816200007e9190620002e8565b5060046200008d8282620002e8565b5050506001600160a01b038116620000c6576000604051631e4fbdf760e01b8152600401620000bd9190620003c5565b60405180910390fd5b620000d18162000121565b506001600160a01b038116620000fb5760405162461bcd60e51b8152600401620000bd90620003d5565b600680546001600160a01b0319166001600160a01b03929092169190911790556200041e565b600580546001600160a01b038381166001600160a01b0319831681179093556040519116919082907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e090600090a35050565b60006001600160a01b0382165b92915050565b620001918162000173565b81146200019d57600080fd5b50565b8051620001808162000186565b600060208284031215620001c457620001c4600080fd5b6000620001d28484620001a0565b949350505050565b634e487b7160e01b600052604160045260246000fd5b634e487b7160e01b600052602260045260246000fd5b6002810460018216806200021b57607f821691505b602082108103620002305762000230620001f0565b50919050565b600062000180620002448381565b90565b620002528362000236565b815460001960089490940293841b1916921b91909117905550565b60006200027c81848462000247565b505050565b81811015620002a057620002976000826200026d565b60010162000281565b5050565b601f8211156200027c576000818152602090206020601f85010481016020851015620002cd5750805b620002e16020601f86010483018262000281565b5050505050565b81516001600160401b03811115620003045762000304620001da565b62000310825462000206565b6200031d828285620002a4565b506020601f8211600181146200035557600083156200033c5750848201515b600019600885021c1981166002850217855550620002e1565b600084815260208120601f198516915b8281101562000387578785015182556020948501946001909201910162000365565b5084821015620003a55783870151600019601f87166008021c191681555b50505050600202600101905550565b620003bf8162000173565b82525050565b60208101620001808284620003b4565b602080825281016200018081602481527f496e76616c6964207472616e73616374696f6e20616e616c797a6572206164646020820152637265737360e01b604082015260600190565b610d31806200042e6000396000f3fe608060405234801561001057600080fd5b50600436106100df5760003560e01c8063715018a61161008c5780639f9976af116100665780639f9976af146101a9578063a9059cbb146101bc578063dd62ed3e146101cf578063f2fde38b1461020857600080fd5b8063715018a61461017e5780638da5cb5b1461018857806395d89b41146101a157600080fd5b806323b872dd116100bd57806323b872dd14610133578063313ce5671461014657806370a082311461015557600080fd5b806306fdde03146100e4578063095ea7b31461010257806318160ddd14610122575b600080fd5b6100ec61021b565b6040516100f99190610916565b60405180910390f35b610115610110366004610968565b6102ad565b6040516100f991906109af565b6002545b6040516100f991906109c3565b6101156101413660046109d1565b6102c7565b60126040516100f99190610a2a565b610126610163366004610a38565b6001600160a01b031660009081526020819052604090205490565b6101866102ed565b005b6005546001600160a01b03166040516100f99190610a6a565b6100ec610301565b6101866101b7366004610aca565b610310565b6101156101ca366004610968565b610435565b6101266101dd366004610b12565b6001600160a01b03918216600090815260016020908152604080832093909416825291909152205490565b610186610216366004610a38565b610443565b60606003805461022a90610b5b565b80601f016020809104026020016040519081016040528092919081815260200182805461025690610b5b565b80156102a35780601f10610278576101008083540402835291602001916102a3565b820191906000526020600020905b81548152906001019060200180831161028657829003601f168201915b5050505050905090565b6000336102bb81858561049a565b60019150505b92915050565b6000336102d58582856104a7565b6102e085858561052b565b60019150505b9392505050565b6102f56105a3565b6102ff60006105e9565b565b60606004805461022a90610b5b565b6006546001600160a01b031633146103435760405162461bcd60e51b815260040161033a90610b87565b60405180910390fd5b60008190036103645760405162461bcd60e51b815260040161033a90610be8565b60005b81811015610430576103af83838381811061038457610384610c23565b90506020028101906103969190610c39565b6103a89061010081019060e001610a38565b6001610653565b7fe848a9a1096c6a1986f56a70fb7fb3250e28b1f56d41fa97ac643492c6c853d18383838181106103e2576103e2610c23565b90506020028101906103f49190610c39565b6104069061010081019060e001610a38565b6001604051610416929190610c76565b60405180910390a18061042881610ca7565b915050610367565b505050565b6000336102bb81858561052b565b61044b6105a3565b6001600160a01b03811661048e5760006040517f1e4fbdf700000000000000000000000000000000000000000000000000000000815260040161033a9190610a6a565b610497816105e9565b50565b610430838383600161068d565b6001600160a01b0383811660009081526001602090815260408083209386168352929052205460001981146105255781811015610516578281836040517ffb8f41b200000000000000000000000000000000000000000000000000000000815260040161033a93929190610cc0565b6105258484848403600061068d565b50505050565b6001600160a01b03831661056e5760006040517f96c6fd1e00000000000000000000000000000000000000000000000000000000815260040161033a9190610a6a565b6001600160a01b03821661059857600060405163ec442f0560e01b815260040161033a9190610a6a565b610430838383610792565b6005546001600160a01b031633146102ff57336040517f118cdaa700000000000000000000000000000000000000000000000000000000815260040161033a9190610a6a565b600580546001600160a01b038381167fffffffffffffffffffffffff0000000000000000000000000000000000000000831681179093556040519116919082907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e090600090a35050565b6001600160a01b03821661067d57600060405163ec442f0560e01b815260040161033a9190610a6a565b61068960008383610792565b5050565b6001600160a01b0384166106d05760006040517fe602df0500000000000000000000000000000000000000000000000000000000815260040161033a9190610a6a565b6001600160a01b0383166107135760006040517f94280d6200000000000000000000000000000000000000000000000000000000815260040161033a9190610a6a565b6001600160a01b038085166000908152600160209081526040808320938716835292905220829055801561052557826001600160a01b0316846001600160a01b03167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b9258460405161078491906109c3565b60405180910390a350505050565b6001600160a01b0383166107bd5780600260008282546107b29190610ce8565b909155506108359050565b6001600160a01b03831660009081526020819052604090205481811015610816578381836040517fe450d38c00000000000000000000000000000000000000000000000000000000815260040161033a93929190610cc0565b6001600160a01b03841660009081526020819052604090209082900390555b6001600160a01b03821661085157600280548290039055610870565b6001600160a01b03821660009081526020819052604090208054820190555b816001600160a01b0316836001600160a01b03167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef836040516108b391906109c3565b60405180910390a3505050565b60005b838110156108db5781810151838201526020016108c3565b50506000910152565b60006108ee825190565b8084526020840193506109058185602086016108c0565b601f01601f19169290920192915050565b602080825281016102e681846108e4565b60006001600160a01b0382166102c1565b61094181610927565b811461049757600080fd5b80356102c181610938565b80610941565b80356102c181610957565b6000806040838503121561097e5761097e600080fd5b600061098a858561094c565b925050602061099b8582860161095d565b9150509250929050565b8015155b82525050565b602081016102c182846109a5565b806109a9565b602081016102c182846109bd565b6000806000606084860312156109e9576109e9600080fd5b60006109f5868661094c565b9350506020610a068682870161094c565b9250506040610a178682870161095d565b9150509250925092565b60ff81166109a9565b602081016102c18284610a21565b600060208284031215610a4d57610a4d600080fd5b6000610a59848461094c565b949350505050565b6109a981610927565b602081016102c18284610a61565b60008083601f840112610a8d57610a8d600080fd5b50813567ffffffffffffffff811115610aa857610aa8600080fd5b602083019150836020820283011115610ac357610ac3600080fd5b9250929050565b60008060208385031215610ae057610ae0600080fd5b823567ffffffffffffffff811115610afa57610afa600080fd5b610b0685828601610a78565b92509250509250929050565b60008060408385031215610b2857610b28600080fd5b6000610b34858561094c565b925050602061099b8582860161094c565b634e487b7160e01b600052602260045260246000fd5b600281046001821680610b6f57607f821691505b602082108103610b8157610b81610b45565b50919050565b602080825281016102c181602c81527f43616c6c65723a2063616c6c6572206973206e6f74207468652064657369676e60208201527f6174656420616464726573730000000000000000000000000000000000000000604082015260600190565b602080825281016102c181601a81527f4e6f207472616e73616374696f6e7320746f20636f6e76657274000000000000602082015260400190565b634e487b7160e01b600052603260045260246000fd5b6000823561013e1936849003018112610c5457610c54600080fd5b9190910192915050565b60006102c1610c6a8381565b90565b6109a981610c5e565b60408101610c848285610a61565b6102e66020830184610c6d565b634e487b7160e01b600052601160045260246000fd5b600060018201610cb957610cb9610c91565b5060010190565b60608101610cce8286610a61565b610cdb60208301856109bd565b610a5960408301846109bd565b808201808211156102c1576102c1610c9156fea2646970667358221220e0821c2da2d89cd6268be84339e5df240d1410e215bce1cee061b134a30c086764736f6c63430008140033 \ No newline at end of file +60806040523480156200001157600080fd5b506040516200115f3803806200115f8339810160408190526200003491620001ad565b33604051806040016040528060038152602001622d32b760e91b815250604051806040016040528060038152602001622d22a760e91b81525081600390816200007e9190620002e8565b5060046200008d8282620002e8565b5050506001600160a01b038116620000c6576000604051631e4fbdf760e01b8152600401620000bd9190620003c5565b60405180910390fd5b620000d18162000121565b506001600160a01b038116620000fb5760405162461bcd60e51b8152600401620000bd90620003d5565b600680546001600160a01b0319166001600160a01b03929092169190911790556200041e565b600580546001600160a01b038381166001600160a01b0319831681179093556040519116919082907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e090600090a35050565b60006001600160a01b0382165b92915050565b620001918162000173565b81146200019d57600080fd5b50565b8051620001808162000186565b600060208284031215620001c457620001c4600080fd5b6000620001d28484620001a0565b949350505050565b634e487b7160e01b600052604160045260246000fd5b634e487b7160e01b600052602260045260246000fd5b6002810460018216806200021b57607f821691505b602082108103620002305762000230620001f0565b50919050565b600062000180620002448381565b90565b620002528362000236565b815460001960089490940293841b1916921b91909117905550565b60006200027c81848462000247565b505050565b81811015620002a057620002976000826200026d565b60010162000281565b5050565b601f8211156200027c576000818152602090206020601f85010481016020851015620002cd5750805b620002e16020601f86010483018262000281565b5050505050565b81516001600160401b03811115620003045762000304620001da565b62000310825462000206565b6200031d828285620002a4565b506020601f8211600181146200035557600083156200033c5750848201515b600019600885021c1981166002850217855550620002e1565b600084815260208120601f198516915b8281101562000387578785015182556020948501946001909201910162000365565b5084821015620003a55783870151600019601f87166008021c191681555b50505050600202600101905550565b620003bf8162000173565b82525050565b60208101620001808284620003b4565b602080825281016200018081602481527f496e76616c6964207472616e73616374696f6e20616e616c797a6572206164646020820152637265737360e01b604082015260600190565b610d31806200042e6000396000f3fe608060405234801561001057600080fd5b50600436106100df5760003560e01c8063715018a61161008c5780639f9976af116100665780639f9976af146101a9578063a9059cbb146101bc578063dd62ed3e146101cf578063f2fde38b1461020857600080fd5b8063715018a61461017e5780638da5cb5b1461018857806395d89b41146101a157600080fd5b806323b872dd116100bd57806323b872dd14610133578063313ce5671461014657806370a082311461015557600080fd5b806306fdde03146100e4578063095ea7b31461010257806318160ddd14610122575b600080fd5b6100ec61021b565b6040516100f99190610916565b60405180910390f35b610115610110366004610968565b6102ad565b6040516100f991906109af565b6002545b6040516100f991906109c3565b6101156101413660046109d1565b6102c7565b60126040516100f99190610a2a565b610126610163366004610a38565b6001600160a01b031660009081526020819052604090205490565b6101866102ed565b005b6005546001600160a01b03166040516100f99190610a6a565b6100ec610301565b6101866101b7366004610aca565b610310565b6101156101ca366004610968565b610435565b6101266101dd366004610b12565b6001600160a01b03918216600090815260016020908152604080832093909416825291909152205490565b610186610216366004610a38565b610443565b60606003805461022a90610b5b565b80601f016020809104026020016040519081016040528092919081815260200182805461025690610b5b565b80156102a35780601f10610278576101008083540402835291602001916102a3565b820191906000526020600020905b81548152906001019060200180831161028657829003601f168201915b5050505050905090565b6000336102bb81858561049a565b60019150505b92915050565b6000336102d58582856104a7565b6102e085858561052b565b60019150505b9392505050565b6102f56105a3565b6102ff60006105e9565b565b60606004805461022a90610b5b565b6006546001600160a01b031633146103435760405162461bcd60e51b815260040161033a90610b87565b60405180910390fd5b60008190036103645760405162461bcd60e51b815260040161033a90610be8565b60005b81811015610430576103af83838381811061038457610384610c23565b90506020028101906103969190610c39565b6103a89061010081019060e001610a38565b6001610653565b7fe848a9a1096c6a1986f56a70fb7fb3250e28b1f56d41fa97ac643492c6c853d18383838181106103e2576103e2610c23565b90506020028101906103f49190610c39565b6104069061010081019060e001610a38565b6001604051610416929190610c76565b60405180910390a18061042881610ca7565b915050610367565b505050565b6000336102bb81858561052b565b61044b6105a3565b6001600160a01b03811661048e5760006040517f1e4fbdf700000000000000000000000000000000000000000000000000000000815260040161033a9190610a6a565b610497816105e9565b50565b610430838383600161068d565b6001600160a01b0383811660009081526001602090815260408083209386168352929052205460001981146105255781811015610516578281836040517ffb8f41b200000000000000000000000000000000000000000000000000000000815260040161033a93929190610cc0565b6105258484848403600061068d565b50505050565b6001600160a01b03831661056e5760006040517f96c6fd1e00000000000000000000000000000000000000000000000000000000815260040161033a9190610a6a565b6001600160a01b03821661059857600060405163ec442f0560e01b815260040161033a9190610a6a565b610430838383610792565b6005546001600160a01b031633146102ff57336040517f118cdaa700000000000000000000000000000000000000000000000000000000815260040161033a9190610a6a565b600580546001600160a01b038381167fffffffffffffffffffffffff0000000000000000000000000000000000000000831681179093556040519116919082907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e090600090a35050565b6001600160a01b03821661067d57600060405163ec442f0560e01b815260040161033a9190610a6a565b61068960008383610792565b5050565b6001600160a01b0384166106d05760006040517fe602df0500000000000000000000000000000000000000000000000000000000815260040161033a9190610a6a565b6001600160a01b0383166107135760006040517f94280d6200000000000000000000000000000000000000000000000000000000815260040161033a9190610a6a565b6001600160a01b038085166000908152600160209081526040808320938716835292905220829055801561052557826001600160a01b0316846001600160a01b03167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b9258460405161078491906109c3565b60405180910390a350505050565b6001600160a01b0383166107bd5780600260008282546107b29190610ce8565b909155506108359050565b6001600160a01b03831660009081526020819052604090205481811015610816578381836040517fe450d38c00000000000000000000000000000000000000000000000000000000815260040161033a93929190610cc0565b6001600160a01b03841660009081526020819052604090209082900390555b6001600160a01b03821661085157600280548290039055610870565b6001600160a01b03821660009081526020819052604090208054820190555b816001600160a01b0316836001600160a01b03167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef836040516108b391906109c3565b60405180910390a3505050565b60005b838110156108db5781810151838201526020016108c3565b50506000910152565b60006108ee825190565b8084526020840193506109058185602086016108c0565b601f01601f19169290920192915050565b602080825281016102e681846108e4565b60006001600160a01b0382166102c1565b61094181610927565b811461049757600080fd5b80356102c181610938565b80610941565b80356102c181610957565b6000806040838503121561097e5761097e600080fd5b600061098a858561094c565b925050602061099b8582860161095d565b9150509250929050565b8015155b82525050565b602081016102c182846109a5565b806109a9565b602081016102c182846109bd565b6000806000606084860312156109e9576109e9600080fd5b60006109f5868661094c565b9350506020610a068682870161094c565b9250506040610a178682870161095d565b9150509250925092565b60ff81166109a9565b602081016102c18284610a21565b600060208284031215610a4d57610a4d600080fd5b6000610a59848461094c565b949350505050565b6109a981610927565b602081016102c18284610a61565b60008083601f840112610a8d57610a8d600080fd5b50813567ffffffffffffffff811115610aa857610aa8600080fd5b602083019150836020820283011115610ac357610ac3600080fd5b9250929050565b60008060208385031215610ae057610ae0600080fd5b823567ffffffffffffffff811115610afa57610afa600080fd5b610b0685828601610a78565b92509250509250929050565b60008060408385031215610b2857610b28600080fd5b6000610b34858561094c565b925050602061099b8582860161094c565b634e487b7160e01b600052602260045260246000fd5b600281046001821680610b6f57607f821691505b602082108103610b8157610b81610b45565b50919050565b602080825281016102c181602c81527f43616c6c65723a2063616c6c6572206973206e6f74207468652064657369676e60208201527f6174656420616464726573730000000000000000000000000000000000000000604082015260600190565b602080825281016102c181601a81527f4e6f207472616e73616374696f6e7320746f20636f6e76657274000000000000602082015260400190565b634e487b7160e01b600052603260045260246000fd5b6000823561013e1936849003018112610c5457610c54600080fd5b9190910192915050565b60006102c1610c6a8381565b90565b6109a981610c5e565b60408101610c848285610a61565b6102e66020830184610c6d565b634e487b7160e01b600052601160045260246000fd5b600060018201610cb957610cb9610c91565b5060010190565b60608101610cce8286610a61565b610cdb60208301856109bd565b610a5960408301846109bd565b808201808211156102c1576102c1610c9156fea264697066735822122036c31eb715ecd8e46b6b1572d2c583e9792e8561c8256d9322cb3a53e739149e64736f6c63430008150033 \ No newline at end of file diff --git a/contracts/exported/src/zen/ZenTestnet.sol/ZenTestnet.bin b/contracts/exported/src/zen/ZenTestnet.sol/ZenTestnet.bin index 6974cb8de1..875c6ec48a 100644 --- a/contracts/exported/src/zen/ZenTestnet.sol/ZenTestnet.bin +++ b/contracts/exported/src/zen/ZenTestnet.sol/ZenTestnet.bin @@ -1 +1 @@ -608060405234801561001057600080fd5b5061001961001e565b6100d0565b7ff0c57e16840df040f15088dc2f81fe391c3923bec73e23a9662efc9c229c6a00805468010000000000000000900460ff161561006e5760405163f92ee8a960e01b815260040160405180910390fd5b80546001600160401b03908116146100cd5780546001600160401b0319166001600160401b0390811782556040519081527fc7f505b2f371ae2175ee4913f4499e1f2633a7b5936321eed1cdaeb6115181d29060200160405180910390a15b50565b6113ea806100df6000396000f3fe608060405234801561001057600080fd5b50600436106100ea5760003560e01c80638da5cb5b1161008c578063a9059cbb11610066578063a9059cbb14610224578063c4d66de814610237578063dd62ed3e1461024a578063f2fde38b146102a257600080fd5b80638da5cb5b146101d157806395d89b41146102095780639f9976af1461021157600080fd5b806323b872dd116100c857806323b872dd1461015d578063313ce5671461017057806370a082311461017f578063715018a6146101c757600080fd5b806306fdde03146100ef578063095ea7b31461010d57806318160ddd1461012d575b600080fd5b6100f76102b5565b6040516101049190610dda565b60405180910390f35b61012061011b366004610e2c565b61038a565b6040516101049190610e73565b7f52c63247e1f47db19d5ce0460030c497f067ca4cebf71ba98eeadabe20bace02545b6040516101049190610e87565b61012061016b366004610e95565b6103a4565b60126040516101049190610eee565b61015061018d366004610efc565b6001600160a01b031660009081527f52c63247e1f47db19d5ce0460030c497f067ca4cebf71ba98eeadabe20bace00602052604090205490565b6101cf6103ca565b005b7f9016d09d72d40fdae2fd8ceac6b6234c7706214fd39c1cd1e609a0528c199300546001600160a01b03166040516101049190610f2e565b6100f76103de565b6101cf61021f366004610f8e565b61042f565b610120610232366004610e2c565b610554565b6101cf610245366004610efc565b610562565b610150610258366004610fd6565b6001600160a01b0391821660009081527f52c63247e1f47db19d5ce0460030c497f067ca4cebf71ba98eeadabe20bace016020908152604080832093909416825291909152205490565b6101cf6102b0366004610efc565b610766565b7f52c63247e1f47db19d5ce0460030c497f067ca4cebf71ba98eeadabe20bace0380546060917f52c63247e1f47db19d5ce0460030c497f067ca4cebf71ba98eeadabe20bace00916103069061101f565b80601f01602080910402602001604051908101604052809291908181526020018280546103329061101f565b801561037f5780601f106103545761010080835404028352916020019161037f565b820191906000526020600020905b81548152906001019060200180831161036257829003601f168201915b505050505091505090565b6000336103988185856107bd565b60019150505b92915050565b6000336103b28582856107ca565b6103bd85858561086d565b60019150505b9392505050565b6103d26108e5565b6103dc6000610959565b565b7f52c63247e1f47db19d5ce0460030c497f067ca4cebf71ba98eeadabe20bace0480546060917f52c63247e1f47db19d5ce0460030c497f067ca4cebf71ba98eeadabe20bace00916103069061101f565b6000546001600160a01b031633146104625760405162461bcd60e51b8152600401610459906110a5565b60405180910390fd5b60008190036104835760405162461bcd60e51b8152600401610459906110b5565b60005b8181101561054f576104ce8383838181106104a3576104a36110f0565b90506020028101906104b59190611106565b6104c79061010081019060e001610efc565b60016109d7565b7fe848a9a1096c6a1986f56a70fb7fb3250e28b1f56d41fa97ac643492c6c853d1838383818110610501576105016110f0565b90506020028101906105139190611106565b6105259061010081019060e001610efc565b6001604051610535929190611143565b60405180910390a18061054781611174565b915050610486565b505050565b60003361039881858561086d565b7ff0c57e16840df040f15088dc2f81fe391c3923bec73e23a9662efc9c229c6a00805468010000000000000000810460ff16159067ffffffffffffffff166000811580156105ad5750825b905060008267ffffffffffffffff1660011480156105ca5750303b155b9050811580156105d8575080155b1561060f576040517ff92ee8a900000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b845467ffffffffffffffff19166001178555831561064357845468ff00000000000000001916680100000000000000001785555b6001600160a01b0386166106695760405162461bcd60e51b8152600401610459906111e5565b6106dd6040518060400160405280600381526020017f5a656e00000000000000000000000000000000000000000000000000000000008152506040518060400160405280600381526020017f5a454e0000000000000000000000000000000000000000000000000000000000815250610a11565b6106e633610a23565b6000805473ffffffffffffffffffffffffffffffffffffffff19166001600160a01b038816179055831561075e57845468ff0000000000000000191685556040517fc7f505b2f371ae2175ee4913f4499e1f2633a7b5936321eed1cdaeb6115181d29061075590600190611210565b60405180910390a15b505050505050565b61076e6108e5565b6001600160a01b0381166107b15760006040517f1e4fbdf70000000000000000000000000000000000000000000000000000000081526004016104599190610f2e565b6107ba81610959565b50565b61054f8383836001610a34565b6001600160a01b0383811660009081527f52c63247e1f47db19d5ce0460030c497f067ca4cebf71ba98eeadabe20bace01602090815260408083209386168352929052205460001981146108675781811015610858578281836040517ffb8f41b20000000000000000000000000000000000000000000000000000000081526004016104599392919061121e565b61086784848484036000610a34565b50505050565b6001600160a01b0383166108b05760006040517f96c6fd1e0000000000000000000000000000000000000000000000000000000081526004016104599190610f2e565b6001600160a01b0382166108da57600060405163ec442f0560e01b81526004016104599190610f2e565b61054f838383610b5e565b336109177f9016d09d72d40fdae2fd8ceac6b6234c7706214fd39c1cd1e609a0528c199300546001600160a01b031690565b6001600160a01b0316146103dc57336040517f118cdaa70000000000000000000000000000000000000000000000000000000081526004016104599190610f2e565b7f9016d09d72d40fdae2fd8ceac6b6234c7706214fd39c1cd1e609a0528c199300805473ffffffffffffffffffffffffffffffffffffffff1981166001600160a01b03848116918217845560405192169182907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e090600090a3505050565b6001600160a01b038216610a0157600060405163ec442f0560e01b81526004016104599190610f2e565b610a0d60008383610b5e565b5050565b610a19610cb2565b610a0d8282610d19565b610a2b610cb2565b6107ba81610d7c565b7f52c63247e1f47db19d5ce0460030c497f067ca4cebf71ba98eeadabe20bace006001600160a01b038516610a985760006040517fe602df050000000000000000000000000000000000000000000000000000000081526004016104599190610f2e565b6001600160a01b038416610adb5760006040517f94280d620000000000000000000000000000000000000000000000000000000081526004016104599190610f2e565b6001600160a01b03808616600090815260018301602090815260408083209388168352929052208390558115610b5757836001600160a01b0316856001600160a01b03167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92585604051610b4e9190610e87565b60405180910390a35b5050505050565b7f52c63247e1f47db19d5ce0460030c497f067ca4cebf71ba98eeadabe20bace006001600160a01b038416610bac5781816002016000828254610ba19190611246565b90915550610c249050565b6001600160a01b03841660009081526020829052604090205482811015610c05578481846040517fe450d38c0000000000000000000000000000000000000000000000000000000081526004016104599392919061121e565b6001600160a01b03851660009081526020839052604090209083900390555b6001600160a01b038316610c42576002810180548390039055610c61565b6001600160a01b03831660009081526020829052604090208054830190555b826001600160a01b0316846001600160a01b03167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef84604051610ca49190610e87565b60405180910390a350505050565b7ff0c57e16840df040f15088dc2f81fe391c3923bec73e23a9662efc9c229c6a005468010000000000000000900460ff166103dc576040517fd7e6bcf800000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b610d21610cb2565b7f52c63247e1f47db19d5ce0460030c497f067ca4cebf71ba98eeadabe20bace007f52c63247e1f47db19d5ce0460030c497f067ca4cebf71ba98eeadabe20bace03610d6d84826112f4565b506004810161086783826112f4565b61076e610cb2565b60005b83811015610d9f578181015183820152602001610d87565b50506000910152565b6000610db2825190565b808452602084019350610dc9818560208601610d84565b601f01601f19169290920192915050565b602080825281016103c38184610da8565b60006001600160a01b03821661039e565b610e0581610deb565b81146107ba57600080fd5b803561039e81610dfc565b80610e05565b803561039e81610e1b565b60008060408385031215610e4257610e42600080fd5b6000610e4e8585610e10565b9250506020610e5f85828601610e21565b9150509250929050565b8015155b82525050565b6020810161039e8284610e69565b80610e6d565b6020810161039e8284610e81565b600080600060608486031215610ead57610ead600080fd5b6000610eb98686610e10565b9350506020610eca86828701610e10565b9250506040610edb86828701610e21565b9150509250925092565b60ff8116610e6d565b6020810161039e8284610ee5565b600060208284031215610f1157610f11600080fd5b6000610f1d8484610e10565b949350505050565b610e6d81610deb565b6020810161039e8284610f25565b60008083601f840112610f5157610f51600080fd5b50813567ffffffffffffffff811115610f6c57610f6c600080fd5b602083019150836020820283011115610f8757610f87600080fd5b9250929050565b60008060208385031215610fa457610fa4600080fd5b823567ffffffffffffffff811115610fbe57610fbe600080fd5b610fca85828601610f3c565b92509250509250929050565b60008060408385031215610fec57610fec600080fd5b6000610ff88585610e10565b9250506020610e5f85828601610e10565b634e487b7160e01b600052602260045260246000fd5b60028104600182168061103357607f821691505b60208210810361104557611045611009565b50919050565b602c8152602081017f43616c6c65723a2063616c6c6572206973206e6f74207468652064657369676e81527f6174656420616464726573730000000000000000000000000000000000000000602082015290505b60400190565b6020808252810161039e8161104b565b6020808252810161039e81601a81527f4e6f207472616e73616374696f6e7320746f20636f6e76657274000000000000602082015260400190565b634e487b7160e01b600052603260045260246000fd5b6000823561013e193684900301811261112157611121600080fd5b9190910192915050565b600061039e6111378381565b90565b610e6d8161112b565b604081016111518285610f25565b6103c3602083018461113a565b634e487b7160e01b600052601160045260246000fd5b6000600182016111865761118661115e565b5060010190565b60248152602081017f496e76616c6964207472616e73616374696f6e20616e616c797a65722061646481527f72657373000000000000000000000000000000000000000000000000000000006020820152905061109f565b6020808252810161039e8161118d565b600067ffffffffffffffff821661039e565b610e6d816111f5565b6020810161039e8284611207565b6060810161122c8286610f25565b6112396020830185610e81565b610f1d6040830184610e81565b8082018082111561039e5761039e61115e565b634e487b7160e01b600052604160045260246000fd5b6112788361112b565b815460001960089490940293841b1916921b91909117905550565b600061054f81848461126f565b81811015610a0d576112b3600082611293565b6001016112a0565b601f82111561054f576000818152602090206020601f850104810160208510156112e25750805b610b576020601f8601048301826112a0565b815167ffffffffffffffff81111561130e5761130e611259565b611318825461101f565b6113238282856112bb565b506020601f82116001811461135857600083156113405750848201515b600019600885021c1981166002850217855550610b57565b600084815260208120601f198516915b828110156113885787850151825560209485019460019092019101611368565b50848210156113a55783870151600019601f87166008021c191681555b5050505060020260010190555056fea2646970667358221220af83f7a345a0203ea0ecb6c433c7d1c60f7e5d631ffc58ce324e6d920720682864736f6c63430008140033 \ No newline at end of file +608060405234801561001057600080fd5b5061001961001e565b6100d0565b7ff0c57e16840df040f15088dc2f81fe391c3923bec73e23a9662efc9c229c6a00805468010000000000000000900460ff161561006e5760405163f92ee8a960e01b815260040160405180910390fd5b80546001600160401b03908116146100cd5780546001600160401b0319166001600160401b0390811782556040519081527fc7f505b2f371ae2175ee4913f4499e1f2633a7b5936321eed1cdaeb6115181d29060200160405180910390a15b50565b6113ea806100df6000396000f3fe608060405234801561001057600080fd5b50600436106100ea5760003560e01c80638da5cb5b1161008c578063a9059cbb11610066578063a9059cbb14610224578063c4d66de814610237578063dd62ed3e1461024a578063f2fde38b146102a257600080fd5b80638da5cb5b146101d157806395d89b41146102095780639f9976af1461021157600080fd5b806323b872dd116100c857806323b872dd1461015d578063313ce5671461017057806370a082311461017f578063715018a6146101c757600080fd5b806306fdde03146100ef578063095ea7b31461010d57806318160ddd1461012d575b600080fd5b6100f76102b5565b6040516101049190610dda565b60405180910390f35b61012061011b366004610e2c565b61038a565b6040516101049190610e73565b7f52c63247e1f47db19d5ce0460030c497f067ca4cebf71ba98eeadabe20bace02545b6040516101049190610e87565b61012061016b366004610e95565b6103a4565b60126040516101049190610eee565b61015061018d366004610efc565b6001600160a01b031660009081527f52c63247e1f47db19d5ce0460030c497f067ca4cebf71ba98eeadabe20bace00602052604090205490565b6101cf6103ca565b005b7f9016d09d72d40fdae2fd8ceac6b6234c7706214fd39c1cd1e609a0528c199300546001600160a01b03166040516101049190610f2e565b6100f76103de565b6101cf61021f366004610f8e565b61042f565b610120610232366004610e2c565b610554565b6101cf610245366004610efc565b610562565b610150610258366004610fd6565b6001600160a01b0391821660009081527f52c63247e1f47db19d5ce0460030c497f067ca4cebf71ba98eeadabe20bace016020908152604080832093909416825291909152205490565b6101cf6102b0366004610efc565b610766565b7f52c63247e1f47db19d5ce0460030c497f067ca4cebf71ba98eeadabe20bace0380546060917f52c63247e1f47db19d5ce0460030c497f067ca4cebf71ba98eeadabe20bace00916103069061101f565b80601f01602080910402602001604051908101604052809291908181526020018280546103329061101f565b801561037f5780601f106103545761010080835404028352916020019161037f565b820191906000526020600020905b81548152906001019060200180831161036257829003601f168201915b505050505091505090565b6000336103988185856107bd565b60019150505b92915050565b6000336103b28582856107ca565b6103bd85858561086d565b60019150505b9392505050565b6103d26108e5565b6103dc6000610959565b565b7f52c63247e1f47db19d5ce0460030c497f067ca4cebf71ba98eeadabe20bace0480546060917f52c63247e1f47db19d5ce0460030c497f067ca4cebf71ba98eeadabe20bace00916103069061101f565b6000546001600160a01b031633146104625760405162461bcd60e51b8152600401610459906110a5565b60405180910390fd5b60008190036104835760405162461bcd60e51b8152600401610459906110b5565b60005b8181101561054f576104ce8383838181106104a3576104a36110f0565b90506020028101906104b59190611106565b6104c79061010081019060e001610efc565b60016109d7565b7fe848a9a1096c6a1986f56a70fb7fb3250e28b1f56d41fa97ac643492c6c853d1838383818110610501576105016110f0565b90506020028101906105139190611106565b6105259061010081019060e001610efc565b6001604051610535929190611143565b60405180910390a18061054781611174565b915050610486565b505050565b60003361039881858561086d565b7ff0c57e16840df040f15088dc2f81fe391c3923bec73e23a9662efc9c229c6a00805468010000000000000000810460ff16159067ffffffffffffffff166000811580156105ad5750825b905060008267ffffffffffffffff1660011480156105ca5750303b155b9050811580156105d8575080155b1561060f576040517ff92ee8a900000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b845467ffffffffffffffff19166001178555831561064357845468ff00000000000000001916680100000000000000001785555b6001600160a01b0386166106695760405162461bcd60e51b8152600401610459906111e5565b6106dd6040518060400160405280600381526020017f5a656e00000000000000000000000000000000000000000000000000000000008152506040518060400160405280600381526020017f5a454e0000000000000000000000000000000000000000000000000000000000815250610a11565b6106e633610a23565b6000805473ffffffffffffffffffffffffffffffffffffffff19166001600160a01b038816179055831561075e57845468ff0000000000000000191685556040517fc7f505b2f371ae2175ee4913f4499e1f2633a7b5936321eed1cdaeb6115181d29061075590600190611210565b60405180910390a15b505050505050565b61076e6108e5565b6001600160a01b0381166107b15760006040517f1e4fbdf70000000000000000000000000000000000000000000000000000000081526004016104599190610f2e565b6107ba81610959565b50565b61054f8383836001610a34565b6001600160a01b0383811660009081527f52c63247e1f47db19d5ce0460030c497f067ca4cebf71ba98eeadabe20bace01602090815260408083209386168352929052205460001981146108675781811015610858578281836040517ffb8f41b20000000000000000000000000000000000000000000000000000000081526004016104599392919061121e565b61086784848484036000610a34565b50505050565b6001600160a01b0383166108b05760006040517f96c6fd1e0000000000000000000000000000000000000000000000000000000081526004016104599190610f2e565b6001600160a01b0382166108da57600060405163ec442f0560e01b81526004016104599190610f2e565b61054f838383610b5e565b336109177f9016d09d72d40fdae2fd8ceac6b6234c7706214fd39c1cd1e609a0528c199300546001600160a01b031690565b6001600160a01b0316146103dc57336040517f118cdaa70000000000000000000000000000000000000000000000000000000081526004016104599190610f2e565b7f9016d09d72d40fdae2fd8ceac6b6234c7706214fd39c1cd1e609a0528c199300805473ffffffffffffffffffffffffffffffffffffffff1981166001600160a01b03848116918217845560405192169182907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e090600090a3505050565b6001600160a01b038216610a0157600060405163ec442f0560e01b81526004016104599190610f2e565b610a0d60008383610b5e565b5050565b610a19610cb2565b610a0d8282610d19565b610a2b610cb2565b6107ba81610d7c565b7f52c63247e1f47db19d5ce0460030c497f067ca4cebf71ba98eeadabe20bace006001600160a01b038516610a985760006040517fe602df050000000000000000000000000000000000000000000000000000000081526004016104599190610f2e565b6001600160a01b038416610adb5760006040517f94280d620000000000000000000000000000000000000000000000000000000081526004016104599190610f2e565b6001600160a01b03808616600090815260018301602090815260408083209388168352929052208390558115610b5757836001600160a01b0316856001600160a01b03167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92585604051610b4e9190610e87565b60405180910390a35b5050505050565b7f52c63247e1f47db19d5ce0460030c497f067ca4cebf71ba98eeadabe20bace006001600160a01b038416610bac5781816002016000828254610ba19190611246565b90915550610c249050565b6001600160a01b03841660009081526020829052604090205482811015610c05578481846040517fe450d38c0000000000000000000000000000000000000000000000000000000081526004016104599392919061121e565b6001600160a01b03851660009081526020839052604090209083900390555b6001600160a01b038316610c42576002810180548390039055610c61565b6001600160a01b03831660009081526020829052604090208054830190555b826001600160a01b0316846001600160a01b03167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef84604051610ca49190610e87565b60405180910390a350505050565b7ff0c57e16840df040f15088dc2f81fe391c3923bec73e23a9662efc9c229c6a005468010000000000000000900460ff166103dc576040517fd7e6bcf800000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b610d21610cb2565b7f52c63247e1f47db19d5ce0460030c497f067ca4cebf71ba98eeadabe20bace007f52c63247e1f47db19d5ce0460030c497f067ca4cebf71ba98eeadabe20bace03610d6d84826112f4565b506004810161086783826112f4565b61076e610cb2565b60005b83811015610d9f578181015183820152602001610d87565b50506000910152565b6000610db2825190565b808452602084019350610dc9818560208601610d84565b601f01601f19169290920192915050565b602080825281016103c38184610da8565b60006001600160a01b03821661039e565b610e0581610deb565b81146107ba57600080fd5b803561039e81610dfc565b80610e05565b803561039e81610e1b565b60008060408385031215610e4257610e42600080fd5b6000610e4e8585610e10565b9250506020610e5f85828601610e21565b9150509250929050565b8015155b82525050565b6020810161039e8284610e69565b80610e6d565b6020810161039e8284610e81565b600080600060608486031215610ead57610ead600080fd5b6000610eb98686610e10565b9350506020610eca86828701610e10565b9250506040610edb86828701610e21565b9150509250925092565b60ff8116610e6d565b6020810161039e8284610ee5565b600060208284031215610f1157610f11600080fd5b6000610f1d8484610e10565b949350505050565b610e6d81610deb565b6020810161039e8284610f25565b60008083601f840112610f5157610f51600080fd5b50813567ffffffffffffffff811115610f6c57610f6c600080fd5b602083019150836020820283011115610f8757610f87600080fd5b9250929050565b60008060208385031215610fa457610fa4600080fd5b823567ffffffffffffffff811115610fbe57610fbe600080fd5b610fca85828601610f3c565b92509250509250929050565b60008060408385031215610fec57610fec600080fd5b6000610ff88585610e10565b9250506020610e5f85828601610e10565b634e487b7160e01b600052602260045260246000fd5b60028104600182168061103357607f821691505b60208210810361104557611045611009565b50919050565b602c8152602081017f43616c6c65723a2063616c6c6572206973206e6f74207468652064657369676e81527f6174656420616464726573730000000000000000000000000000000000000000602082015290505b60400190565b6020808252810161039e8161104b565b6020808252810161039e81601a81527f4e6f207472616e73616374696f6e7320746f20636f6e76657274000000000000602082015260400190565b634e487b7160e01b600052603260045260246000fd5b6000823561013e193684900301811261112157611121600080fd5b9190910192915050565b600061039e6111378381565b90565b610e6d8161112b565b604081016111518285610f25565b6103c3602083018461113a565b634e487b7160e01b600052601160045260246000fd5b6000600182016111865761118661115e565b5060010190565b60248152602081017f496e76616c6964207472616e73616374696f6e20616e616c797a65722061646481527f72657373000000000000000000000000000000000000000000000000000000006020820152905061109f565b6020808252810161039e8161118d565b600067ffffffffffffffff821661039e565b610e6d816111f5565b6020810161039e8284611207565b6060810161122c8286610f25565b6112396020830185610e81565b610f1d6040830184610e81565b8082018082111561039e5761039e61115e565b634e487b7160e01b600052604160045260246000fd5b6112788361112b565b815460001960089490940293841b1916921b91909117905550565b600061054f81848461126f565b81811015610a0d576112b3600082611293565b6001016112a0565b601f82111561054f576000818152602090206020601f850104810160208510156112e25750805b610b576020601f8601048301826112a0565b815167ffffffffffffffff81111561130e5761130e611259565b611318825461101f565b6113238282856112bb565b506020601f82116001811461135857600083156113405750848201515b600019600885021c1981166002850217855550610b57565b600084815260208120601f198516915b828110156113885787850151825560209485019460019092019101611368565b50848210156113a55783870151600019601f87166008021c191681555b5050505060020260010190555056fea2646970667358221220c92d36796669f09a165d85f5ad6ccaec7365a19d0cba54a86db26b29f35b60dd64736f6c63430008150033 \ No newline at end of file diff --git a/contracts/generated/Address/Address.go b/contracts/generated/Address/Address.go index e7fe56cf12..9f86d3ad50 100644 --- a/contracts/generated/Address/Address.go +++ b/contracts/generated/Address/Address.go @@ -32,7 +32,7 @@ var ( // AddressMetaData contains all meta data concerning the Address contract. var AddressMetaData = &bind.MetaData{ ABI: "[{\"inputs\":[{\"internalType\":\"address\",\"name\":\"target\",\"type\":\"address\"}],\"name\":\"AddressEmptyCode\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"}],\"name\":\"AddressInsufficientBalance\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"FailedInnerCall\",\"type\":\"error\"}]", - Bin: "0x60566037600b82828239805160001a607314602a57634e487b7160e01b600052600060045260246000fd5b30600052607381538281f3fe73000000000000000000000000000000000000000030146080604052600080fdfea264697066735822122071923496e8dc037afc52f2cd62212c1969857e590755963b8b4983d40c3bb00864736f6c63430008140033", + Bin: "0x60566037600b82828239805160001a607314602a57634e487b7160e01b600052600060045260246000fd5b30600052607381538281f3fe73000000000000000000000000000000000000000030146080604052600080fdfea2646970667358221220d74e230a1c3698413be30397c8e30a7647b12e3f7cd265bc7728b971a53935b464736f6c63430008150033", } // AddressABI is the input ABI used to generate the binding from. diff --git a/contracts/generated/ConstantSupplyERC20/ConstantSupplyERC20.go b/contracts/generated/ConstantSupplyERC20/ConstantSupplyERC20.go index f23a967743..c4e04c8c38 100644 --- a/contracts/generated/ConstantSupplyERC20/ConstantSupplyERC20.go +++ b/contracts/generated/ConstantSupplyERC20/ConstantSupplyERC20.go @@ -32,7 +32,7 @@ var ( // ConstantSupplyERC20MetaData contains all meta data concerning the ConstantSupplyERC20 contract. var ConstantSupplyERC20MetaData = &bind.MetaData{ ABI: "[{\"inputs\":[{\"internalType\":\"string\",\"name\":\"name\",\"type\":\"string\"},{\"internalType\":\"string\",\"name\":\"symbol\",\"type\":\"string\"},{\"internalType\":\"uint256\",\"name\":\"initialSupply\",\"type\":\"uint256\"}],\"stateMutability\":\"nonpayable\",\"type\":\"constructor\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"spender\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"allowance\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"needed\",\"type\":\"uint256\"}],\"name\":\"ERC20InsufficientAllowance\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"sender\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"balance\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"needed\",\"type\":\"uint256\"}],\"name\":\"ERC20InsufficientBalance\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"approver\",\"type\":\"address\"}],\"name\":\"ERC20InvalidApprover\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"receiver\",\"type\":\"address\"}],\"name\":\"ERC20InvalidReceiver\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"sender\",\"type\":\"address\"}],\"name\":\"ERC20InvalidSender\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"spender\",\"type\":\"address\"}],\"name\":\"ERC20InvalidSpender\",\"type\":\"error\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"spender\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"value\",\"type\":\"uint256\"}],\"name\":\"Approval\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"from\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"value\",\"type\":\"uint256\"}],\"name\":\"Transfer\",\"type\":\"event\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"spender\",\"type\":\"address\"}],\"name\":\"allowance\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"spender\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"value\",\"type\":\"uint256\"}],\"name\":\"approve\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"}],\"name\":\"balanceOf\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"decimals\",\"outputs\":[{\"internalType\":\"uint8\",\"name\":\"\",\"type\":\"uint8\"}],\"stateMutability\":\"view\",\"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\":\"to\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"value\",\"type\":\"uint256\"}],\"name\":\"transfer\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"from\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"value\",\"type\":\"uint256\"}],\"name\":\"transferFrom\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"}]", - Bin: "0x60806040523480156200001157600080fd5b5060405162000ebb38038062000ebb833981016040819052620000349162000312565b8282600362000044838262000497565b50600462000053828262000497565b5050506200006833826200007160201b60201c565b50505062000607565b6001600160a01b038216620000a757600060405163ec442f0560e01b81526004016200009e919062000586565b60405180910390fd5b620000b560008383620000b9565b5050565b6001600160a01b038316620000e8578060026000828254620000dc9190620005ac565b909155506200014a9050565b6001600160a01b038316600090815260208190526040902054818110156200012b5783818360405163391434e360e21b81526004016200009e93929190620005c9565b6001600160a01b03841660009081526020819052604090209082900390555b6001600160a01b038216620001685760028054829003905562000187565b6001600160a01b03821660009081526020819052604090208054820190555b816001600160a01b0316836001600160a01b03167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef83604051620001cc9190620005f7565b60405180910390a3505050565b634e487b7160e01b600052604160045260246000fd5b601f19601f83011681016001600160401b0381118282101715620002175762000217620001d9565b6040525050565b60006200022a60405190565b9050620002388282620001ef565b919050565b60006001600160401b03821115620002595762000259620001d9565b601f19601f83011660200192915050565b60005b83811015620002875781810151838201526020016200026d565b50506000910152565b6000620002a7620002a1846200023d565b6200021e565b905082815260208101848484011115620002c457620002c4600080fd5b620002d18482856200026a565b509392505050565b600082601f830112620002ef57620002ef600080fd5b81516200030184826020860162000290565b949350505050565b80515b92915050565b6000806000606084860312156200032c576200032c600080fd5b83516001600160401b03811115620003475762000347600080fd5b6200035586828701620002d9565b602086015190945090506001600160401b03811115620003785762000378600080fd5b6200038686828701620002d9565b9250506040620003998682870162000309565b9150509250925092565b634e487b7160e01b600052602260045260246000fd5b600281046001821680620003ce57607f821691505b602082108103620003e357620003e3620003a3565b50919050565b60006200030c620003f78381565b90565b6200040583620003e9565b815460001960089490940293841b1916921b91909117905550565b60006200042f818484620003fa565b505050565b81811015620000b5576200044a60008262000420565b60010162000434565b601f8211156200042f576000818152602090206020601f850104810160208510156200047c5750805b620004906020601f86010483018262000434565b5050505050565b81516001600160401b03811115620004b357620004b3620001d9565b620004bf8254620003b9565b620004cc82828562000453565b506020601f821160018114620005045760008315620004eb5750848201515b600019600885021c198116600285021785555062000490565b600084815260208120601f198516915b8281101562000536578785015182556020948501946001909201910162000514565b5084821015620005545783870151600019601f87166008021c191681555b50505050600202600101905550565b60006001600160a01b0382166200030c565b620005808162000563565b82525050565b602081016200030c828462000575565b634e487b7160e01b600052601160045260246000fd5b808201808211156200030c576200030c62000596565b8062000580565b60608101620005d9828662000575565b620005e86020830185620005c2565b620003016040830184620005c2565b602081016200030c8284620005c2565b6108a480620006176000396000f3fe608060405234801561001057600080fd5b50600436106100a35760003560e01c8063313ce5671161007657806395d89b411161005b57806395d89b4114610142578063a9059cbb1461014a578063dd62ed3e1461015d57600080fd5b8063313ce5671461010a57806370a082311461011957600080fd5b806306fdde03146100a8578063095ea7b3146100c657806318160ddd146100e657806323b872dd146100f7575b600080fd5b6100b0610196565b6040516100bd919061063c565b60405180910390f35b6100d96100d4366004610698565b610228565b6040516100bd91906106df565b6002545b6040516100bd91906106f3565b6100d9610105366004610701565b610242565b60126040516100bd919061075a565b6100ea610127366004610768565b6001600160a01b031660009081526020819052604090205490565b6100b0610266565b6100d9610158366004610698565b610275565b6100ea61016b366004610791565b6001600160a01b03918216600090815260016020908152604080832093909416825291909152205490565b6060600380546101a5906107da565b80601f01602080910402602001604051908101604052809291908181526020018280546101d1906107da565b801561021e5780601f106101f35761010080835404028352916020019161021e565b820191906000526020600020905b81548152906001019060200180831161020157829003601f168201915b5050505050905090565b600033610236818585610283565b60019150505b92915050565b600033610250858285610295565b61025b858585610322565b506001949350505050565b6060600480546101a5906107da565b600033610236818585610322565b61029083838360016103b3565b505050565b6001600160a01b03838116600090815260016020908152604080832093861683529290522054600019811461031c578181101561030d578281836040517ffb8f41b20000000000000000000000000000000000000000000000000000000081526004016103049392919061080f565b60405180910390fd5b61031c848484840360006103b3565b50505050565b6001600160a01b0383166103655760006040517f96c6fd1e0000000000000000000000000000000000000000000000000000000081526004016103049190610837565b6001600160a01b0382166103a85760006040517fec442f050000000000000000000000000000000000000000000000000000000081526004016103049190610837565b6102908383836104b8565b6001600160a01b0384166103f65760006040517fe602df050000000000000000000000000000000000000000000000000000000081526004016103049190610837565b6001600160a01b0383166104395760006040517f94280d620000000000000000000000000000000000000000000000000000000081526004016103049190610837565b6001600160a01b038085166000908152600160209081526040808320938716835292905220829055801561031c57826001600160a01b0316846001600160a01b03167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925846040516104aa91906106f3565b60405180910390a350505050565b6001600160a01b0383166104e35780600260008282546104d8919061085b565b9091555061055b9050565b6001600160a01b0383166000908152602081905260409020548181101561053c578381836040517fe450d38c0000000000000000000000000000000000000000000000000000000081526004016103049392919061080f565b6001600160a01b03841660009081526020819052604090209082900390555b6001600160a01b03821661057757600280548290039055610596565b6001600160a01b03821660009081526020819052604090208054820190555b816001600160a01b0316836001600160a01b03167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef836040516105d991906106f3565b60405180910390a3505050565b60005b838110156106015781810151838201526020016105e9565b50506000910152565b6000610614825190565b80845260208401935061062b8185602086016105e6565b601f01601f19169290920192915050565b6020808252810161064d818461060a565b9392505050565b60006001600160a01b03821661023c565b61066e81610654565b811461067957600080fd5b50565b803561023c81610665565b8061066e565b803561023c81610687565b600080604083850312156106ae576106ae600080fd5b60006106ba858561067c565b92505060206106cb8582860161068d565b9150509250929050565b8015155b82525050565b6020810161023c82846106d5565b806106d9565b6020810161023c82846106ed565b60008060006060848603121561071957610719600080fd5b6000610725868661067c565b93505060206107368682870161067c565b92505060406107478682870161068d565b9150509250925092565b60ff81166106d9565b6020810161023c8284610751565b60006020828403121561077d5761077d600080fd5b6000610789848461067c565b949350505050565b600080604083850312156107a7576107a7600080fd5b60006107b3858561067c565b92505060206106cb8582860161067c565b634e487b7160e01b600052602260045260246000fd5b6002810460018216806107ee57607f821691505b602082108103610800576108006107c4565b50919050565b6106d981610654565b6060810161081d8286610806565b61082a60208301856106ed565b61078960408301846106ed565b6020810161023c8284610806565b634e487b7160e01b600052601160045260246000fd5b8082018082111561023c5761023c61084556fea26469706673582212202d779dff7fe9ec7ab0604366da8ad9497916e439b37454dbdbc1f22c4e6aa1fb64736f6c63430008140033", + Bin: "0x60806040523480156200001157600080fd5b5060405162000ebb38038062000ebb833981016040819052620000349162000312565b8282600362000044838262000497565b50600462000053828262000497565b5050506200006833826200007160201b60201c565b50505062000607565b6001600160a01b038216620000a757600060405163ec442f0560e01b81526004016200009e919062000586565b60405180910390fd5b620000b560008383620000b9565b5050565b6001600160a01b038316620000e8578060026000828254620000dc9190620005ac565b909155506200014a9050565b6001600160a01b038316600090815260208190526040902054818110156200012b5783818360405163391434e360e21b81526004016200009e93929190620005c9565b6001600160a01b03841660009081526020819052604090209082900390555b6001600160a01b038216620001685760028054829003905562000187565b6001600160a01b03821660009081526020819052604090208054820190555b816001600160a01b0316836001600160a01b03167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef83604051620001cc9190620005f7565b60405180910390a3505050565b634e487b7160e01b600052604160045260246000fd5b601f19601f83011681016001600160401b0381118282101715620002175762000217620001d9565b6040525050565b60006200022a60405190565b9050620002388282620001ef565b919050565b60006001600160401b03821115620002595762000259620001d9565b601f19601f83011660200192915050565b60005b83811015620002875781810151838201526020016200026d565b50506000910152565b6000620002a7620002a1846200023d565b6200021e565b905082815260208101848484011115620002c457620002c4600080fd5b620002d18482856200026a565b509392505050565b600082601f830112620002ef57620002ef600080fd5b81516200030184826020860162000290565b949350505050565b80515b92915050565b6000806000606084860312156200032c576200032c600080fd5b83516001600160401b03811115620003475762000347600080fd5b6200035586828701620002d9565b602086015190945090506001600160401b03811115620003785762000378600080fd5b6200038686828701620002d9565b9250506040620003998682870162000309565b9150509250925092565b634e487b7160e01b600052602260045260246000fd5b600281046001821680620003ce57607f821691505b602082108103620003e357620003e3620003a3565b50919050565b60006200030c620003f78381565b90565b6200040583620003e9565b815460001960089490940293841b1916921b91909117905550565b60006200042f818484620003fa565b505050565b81811015620000b5576200044a60008262000420565b60010162000434565b601f8211156200042f576000818152602090206020601f850104810160208510156200047c5750805b620004906020601f86010483018262000434565b5050505050565b81516001600160401b03811115620004b357620004b3620001d9565b620004bf8254620003b9565b620004cc82828562000453565b506020601f821160018114620005045760008315620004eb5750848201515b600019600885021c198116600285021785555062000490565b600084815260208120601f198516915b8281101562000536578785015182556020948501946001909201910162000514565b5084821015620005545783870151600019601f87166008021c191681555b50505050600202600101905550565b60006001600160a01b0382166200030c565b620005808162000563565b82525050565b602081016200030c828462000575565b634e487b7160e01b600052601160045260246000fd5b808201808211156200030c576200030c62000596565b8062000580565b60608101620005d9828662000575565b620005e86020830185620005c2565b620003016040830184620005c2565b602081016200030c8284620005c2565b6108a480620006176000396000f3fe608060405234801561001057600080fd5b50600436106100a35760003560e01c8063313ce5671161007657806395d89b411161005b57806395d89b4114610142578063a9059cbb1461014a578063dd62ed3e1461015d57600080fd5b8063313ce5671461010a57806370a082311461011957600080fd5b806306fdde03146100a8578063095ea7b3146100c657806318160ddd146100e657806323b872dd146100f7575b600080fd5b6100b0610196565b6040516100bd919061063c565b60405180910390f35b6100d96100d4366004610698565b610228565b6040516100bd91906106df565b6002545b6040516100bd91906106f3565b6100d9610105366004610701565b610242565b60126040516100bd919061075a565b6100ea610127366004610768565b6001600160a01b031660009081526020819052604090205490565b6100b0610266565b6100d9610158366004610698565b610275565b6100ea61016b366004610791565b6001600160a01b03918216600090815260016020908152604080832093909416825291909152205490565b6060600380546101a5906107da565b80601f01602080910402602001604051908101604052809291908181526020018280546101d1906107da565b801561021e5780601f106101f35761010080835404028352916020019161021e565b820191906000526020600020905b81548152906001019060200180831161020157829003601f168201915b5050505050905090565b600033610236818585610283565b60019150505b92915050565b600033610250858285610295565b61025b858585610322565b506001949350505050565b6060600480546101a5906107da565b600033610236818585610322565b61029083838360016103b3565b505050565b6001600160a01b03838116600090815260016020908152604080832093861683529290522054600019811461031c578181101561030d578281836040517ffb8f41b20000000000000000000000000000000000000000000000000000000081526004016103049392919061080f565b60405180910390fd5b61031c848484840360006103b3565b50505050565b6001600160a01b0383166103655760006040517f96c6fd1e0000000000000000000000000000000000000000000000000000000081526004016103049190610837565b6001600160a01b0382166103a85760006040517fec442f050000000000000000000000000000000000000000000000000000000081526004016103049190610837565b6102908383836104b8565b6001600160a01b0384166103f65760006040517fe602df050000000000000000000000000000000000000000000000000000000081526004016103049190610837565b6001600160a01b0383166104395760006040517f94280d620000000000000000000000000000000000000000000000000000000081526004016103049190610837565b6001600160a01b038085166000908152600160209081526040808320938716835292905220829055801561031c57826001600160a01b0316846001600160a01b03167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925846040516104aa91906106f3565b60405180910390a350505050565b6001600160a01b0383166104e35780600260008282546104d8919061085b565b9091555061055b9050565b6001600160a01b0383166000908152602081905260409020548181101561053c578381836040517fe450d38c0000000000000000000000000000000000000000000000000000000081526004016103049392919061080f565b6001600160a01b03841660009081526020819052604090209082900390555b6001600160a01b03821661057757600280548290039055610596565b6001600160a01b03821660009081526020819052604090208054820190555b816001600160a01b0316836001600160a01b03167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef836040516105d991906106f3565b60405180910390a3505050565b60005b838110156106015781810151838201526020016105e9565b50506000910152565b6000610614825190565b80845260208401935061062b8185602086016105e6565b601f01601f19169290920192915050565b6020808252810161064d818461060a565b9392505050565b60006001600160a01b03821661023c565b61066e81610654565b811461067957600080fd5b50565b803561023c81610665565b8061066e565b803561023c81610687565b600080604083850312156106ae576106ae600080fd5b60006106ba858561067c565b92505060206106cb8582860161068d565b9150509250929050565b8015155b82525050565b6020810161023c82846106d5565b806106d9565b6020810161023c82846106ed565b60008060006060848603121561071957610719600080fd5b6000610725868661067c565b93505060206107368682870161067c565b92505060406107478682870161068d565b9150509250925092565b60ff81166106d9565b6020810161023c8284610751565b60006020828403121561077d5761077d600080fd5b6000610789848461067c565b949350505050565b600080604083850312156107a7576107a7600080fd5b60006107b3858561067c565b92505060206106cb8582860161067c565b634e487b7160e01b600052602260045260246000fd5b6002810460018216806107ee57607f821691505b602082108103610800576108006107c4565b50919050565b6106d981610654565b6060810161081d8286610806565b61082a60208301856106ed565b61078960408301846106ed565b6020810161023c8284610806565b634e487b7160e01b600052601160045260246000fd5b8082018082111561023c5761023c61084556fea264697066735822122091ea0ede169de058ccdd3cb7d029ac7763f9230cde51285aac42f1fd73afff7264736f6c63430008150033", } // ConstantSupplyERC20ABI is the input ABI used to generate the binding from. diff --git a/contracts/generated/CrossChainMessenger/CrossChainMessenger.go b/contracts/generated/CrossChainMessenger/CrossChainMessenger.go index e70de298dd..b2ddc8e63b 100644 --- a/contracts/generated/CrossChainMessenger/CrossChainMessenger.go +++ b/contracts/generated/CrossChainMessenger/CrossChainMessenger.go @@ -42,7 +42,7 @@ type StructsCrossChainMessage struct { // CrossChainMessengerMetaData contains all meta data concerning the CrossChainMessenger contract. var CrossChainMessengerMetaData = &bind.MetaData{ ABI: "[{\"inputs\":[{\"internalType\":\"bytes\",\"name\":\"error\",\"type\":\"bytes\"}],\"name\":\"CallFailed\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"InvalidInitialization\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"NotInitializing\",\"type\":\"error\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"uint64\",\"name\":\"version\",\"type\":\"uint64\"}],\"name\":\"Initialized\",\"type\":\"event\"},{\"inputs\":[],\"name\":\"crossChainSender\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"target\",\"type\":\"address\"},{\"internalType\":\"bytes\",\"name\":\"payload\",\"type\":\"bytes\"}],\"name\":\"encodeCall\",\"outputs\":[{\"internalType\":\"bytes\",\"name\":\"\",\"type\":\"bytes\"}],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"messageBusAddr\",\"type\":\"address\"}],\"name\":\"initialize\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"messageBus\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"components\":[{\"internalType\":\"address\",\"name\":\"sender\",\"type\":\"address\"},{\"internalType\":\"uint64\",\"name\":\"sequence\",\"type\":\"uint64\"},{\"internalType\":\"uint32\",\"name\":\"nonce\",\"type\":\"uint32\"},{\"internalType\":\"uint32\",\"name\":\"topic\",\"type\":\"uint32\"},{\"internalType\":\"bytes\",\"name\":\"payload\",\"type\":\"bytes\"},{\"internalType\":\"uint8\",\"name\":\"consistencyLevel\",\"type\":\"uint8\"}],\"internalType\":\"structStructs.CrossChainMessage\",\"name\":\"message\",\"type\":\"tuple\"}],\"name\":\"relayMessage\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"components\":[{\"internalType\":\"address\",\"name\":\"sender\",\"type\":\"address\"},{\"internalType\":\"uint64\",\"name\":\"sequence\",\"type\":\"uint64\"},{\"internalType\":\"uint32\",\"name\":\"nonce\",\"type\":\"uint32\"},{\"internalType\":\"uint32\",\"name\":\"topic\",\"type\":\"uint32\"},{\"internalType\":\"bytes\",\"name\":\"payload\",\"type\":\"bytes\"},{\"internalType\":\"uint8\",\"name\":\"consistencyLevel\",\"type\":\"uint8\"}],\"internalType\":\"structStructs.CrossChainMessage\",\"name\":\"message\",\"type\":\"tuple\"},{\"internalType\":\"bytes32[]\",\"name\":\"proof\",\"type\":\"bytes32[]\"},{\"internalType\":\"bytes32\",\"name\":\"root\",\"type\":\"bytes32\"}],\"name\":\"relayMessageWithProof\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"}]", - Bin: "0x608060405234801561001057600080fd5b50610ff9806100206000396000f3fe608060405234801561001057600080fd5b50600436106100725760003560e01c80639b7cf1ee116100505780639b7cf1ee146100d5578063a1a227fa146100e8578063c4d66de8146100f957600080fd5b80630671b22e146100775780635b76f28b1461008c57806363012de5146100b5575b600080fd5b61008a61008536600461078b565b61010c565b005b61009f61009a366004610885565b610211565b6040516100ac9190610937565b60405180910390f35b6001546100c8906001600160a01b031681565b6040516100ac919061095e565b61008a6100e336600461096c565b610291565b6000546001600160a01b03166100c8565b61008a6101073660046109af565b610387565b610118848484846104e7565b61012560208501856109af565b600180546001600160a01b0319166001600160a01b0392909216919091179055600061015460808601866109d0565b8101906101619190610bb1565b905060008082600001516001600160a01b03165a84602001516040516101879190610c0e565b60006040518083038160008787f1925050503d80600081146101c5576040519150601f19603f3d011682016040523d82523d6000602084013e6101ca565b606091505b5091509150816101f8578060405163a5fa8d2b60e01b81526004016101ef9190610937565b60405180910390fd5b5050600180546001600160a01b03191690555050505050565b60606040518060600160405280856001600160a01b0316815260200184848080601f0160208091040260200160405190810160405280939291908181526020018383808284376000920182905250938552505050602091820152604051610279929101610c5f565b60405160208183030381529060405290509392505050565b61029a816105e0565b6102a760208201826109af565b600180546001600160a01b0319166001600160a01b039290921691909117905560006102d660808301836109d0565b8101906102e39190610bb1565b905060008082600001516001600160a01b03165a84602001516040516103099190610c0e565b60006040518083038160008787f1925050503d8060008114610347576040519150601f19603f3d011682016040523d82523d6000602084013e61034c565b606091505b509150915081610371578060405163a5fa8d2b60e01b81526004016101ef9190610937565b5050600180546001600160a01b03191690555050565b7ff0c57e16840df040f15088dc2f81fe391c3923bec73e23a9662efc9c229c6a00805468010000000000000000810460ff16159067ffffffffffffffff166000811580156103d25750825b905060008267ffffffffffffffff1660011480156103ef5750303b155b9050811580156103fd575080155b15610434576040517ff92ee8a900000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b845467ffffffffffffffff19166001178555831561046857845468ff00000000000000001916680100000000000000001785555b600080546001600160a01b0388166001600160a01b03199182161790915560018054909116905583156104df57845468ff0000000000000000191685556040517fc7f505b2f371ae2175ee4913f4499e1f2633a7b5936321eed1cdaeb6115181d2906104d690600190610c8b565b60405180910390a15b505050505050565b6000546040517fe138a8d20000000000000000000000000000000000000000000000000000000081526001600160a01b039091169063e138a8d290610536908790879087908790600401610eba565b60006040518083038186803b15801561054e57600080fd5b505afa158015610562573d6000803e3d6000fd5b505050506000846040516020016105799190610ef8565b60408051601f1981840301815291815281516020928301206000818152600290935291205490915060ff16156105c15760405162461bcd60e51b81526004016101ef90610f3d565b6000908152600260205260409020805460ff1916600117905550505050565b6000546040517f33a88c720000000000000000000000000000000000000000000000000000000081526001600160a01b03909116906333a88c7290610629908490600401610ef8565b602060405180830381865afa158015610646573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061066a9190610f60565b6106865760405162461bcd60e51b81526004016101ef90610fb3565b6000816040516020016106999190610ef8565b60408051601f1981840301815291815281516020928301206000818152600290935291205490915060ff16156106e15760405162461bcd60e51b81526004016101ef90610f3d565b6000908152600260205260409020805460ff1916600117905550565b600060c0828403121561071257610712600080fd5b50919050565b60008083601f84011261072d5761072d600080fd5b50813567ffffffffffffffff81111561074857610748600080fd5b60208301915083602082028301111561076357610763600080fd5b9250929050565b805b811461077757600080fd5b50565b80356107858161076a565b92915050565b600080600080606085870312156107a4576107a4600080fd5b843567ffffffffffffffff8111156107be576107be600080fd5b6107ca878288016106fd565b945050602085013567ffffffffffffffff8111156107ea576107ea600080fd5b6107f687828801610718565b935093505060406108098782880161077a565b91505092959194509250565b60006001600160a01b038216610785565b61076c81610815565b803561078581610826565b60008083601f84011261084f5761084f600080fd5b50813567ffffffffffffffff81111561086a5761086a600080fd5b60208301915083600182028301111561076357610763600080fd5b60008060006040848603121561089d5761089d600080fd5b60006108a9868661082f565b935050602084013567ffffffffffffffff8111156108c9576108c9600080fd5b6108d58682870161083a565b92509250509250925092565b60005b838110156108fc5781810151838201526020016108e4565b50506000910152565b600061090f825190565b8084526020840193506109268185602086016108e1565b601f01601f19169290920192915050565b602080825281016109488184610905565b9392505050565b61095881610815565b82525050565b60208101610785828461094f565b60006020828403121561098157610981600080fd5b813567ffffffffffffffff81111561099b5761099b600080fd5b6109a7848285016106fd565b949350505050565b6000602082840312156109c4576109c4600080fd5b60006109a7848461082f565b6000808335601e19368590030181126109eb576109eb600080fd5b8301915050803567ffffffffffffffff811115610a0a57610a0a600080fd5b60208201915060018102360382131561076357610763600080fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b601f19601f830116810181811067ffffffffffffffff82111715610a7a57610a7a610a25565b6040525050565b6000610a8c60405190565b9050610a988282610a54565b919050565b600067ffffffffffffffff821115610ab757610ab7610a25565b601f19601f83011660200192915050565b82818337506000910152565b6000610ae7610ae284610a9d565b610a81565b905082815260208101848484011115610b0257610b02600080fd5b610b0d848285610ac8565b509392505050565b600082601f830112610b2957610b29600080fd5b81356109a7848260208601610ad4565b600060608284031215610b4e57610b4e600080fd5b610b586060610a81565b90506000610b66848461082f565b90820152602082013567ffffffffffffffff811115610b8757610b87600080fd5b610b9384828501610b15565b6020830152506040610ba78482850161077a565b9082015292915050565b600060208284031215610bc657610bc6600080fd5b813567ffffffffffffffff811115610be057610be0600080fd5b6109a784828501610b39565b6000610bf6825190565b610c048185602086016108e1565b9290920192915050565b6107858183610bec565b80610958565b80516000906060840190610c32858261094f565b5060208301518482036020860152610c4a8282610905565b9150506040830151610b0d6040860182610c18565b602080825281016109488184610c1e565b600067ffffffffffffffff8216610785565b61095881610c70565b602081016107858284610c82565b506000610785602083018361082f565b67ffffffffffffffff811661076c565b803561078581610ca9565b5060006107856020830183610cb9565b67ffffffffffffffff8116610958565b63ffffffff811661076c565b803561078581610ce4565b5060006107856020830183610cf0565b63ffffffff8116610958565b6000808335601e1936859003018112610d3257610d32600080fd5b830160208101925035905067ffffffffffffffff811115610d5557610d55600080fd5b3681900382131561076357610763600080fd5b818352602083019250610d7c828483610ac8565b50601f01601f19160190565b60ff811661076c565b803561078581610d88565b5060006107856020830183610d91565b60ff8116610958565b600060c08301610dc58380610c99565b610dcf858261094f565b50610ddd6020840184610cc4565b610dea6020860182610cd4565b50610df86040840184610cfb565b610e056040860182610d0b565b50610e136060840184610cfb565b610e206060860182610d0b565b50610e2e6080840184610d17565b8583036080870152610e41838284610d68565b92505050610e5260a0840184610d9c565b610b0d60a0860182610dac565b82818337505050565b81835260208301925060007f07ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff831115610ea357610ea3600080fd5b602083029250610eb4838584610e5f565b50500190565b60608082528101610ecb8187610db5565b90508181036020830152610ee0818587610e68565b9050610eef6040830184610c18565b95945050505050565b602080825281016109488184610db5565b60198152602081017f4d65737361676520616c726561647920636f6e73756d65642e00000000000000815290505b60200190565b6020808252810161078581610f09565b80151561076c565b805161078581610f4d565b600060208284031215610f7557610f75600080fd5b60006109a78484610f55565b601f8152602081017f4d657373616765206e6f7420666f756e64206f722066696e616c697a65642e0081529050610f37565b6020808252810161078581610f8156fea2646970667358221220b19a157d54d31fc9b484675b1b5bbc3bb2bcb9f0cf90b7e3cf4c7fd69e2d0bad64736f6c63430008140033", + Bin: "0x608060405234801561001057600080fd5b50610ff9806100206000396000f3fe608060405234801561001057600080fd5b50600436106100725760003560e01c80639b7cf1ee116100505780639b7cf1ee146100d5578063a1a227fa146100e8578063c4d66de8146100f957600080fd5b80630671b22e146100775780635b76f28b1461008c57806363012de5146100b5575b600080fd5b61008a61008536600461078b565b61010c565b005b61009f61009a366004610885565b610211565b6040516100ac9190610937565b60405180910390f35b6001546100c8906001600160a01b031681565b6040516100ac919061095e565b61008a6100e336600461096c565b610291565b6000546001600160a01b03166100c8565b61008a6101073660046109af565b610387565b610118848484846104e7565b61012560208501856109af565b600180546001600160a01b0319166001600160a01b0392909216919091179055600061015460808601866109d0565b8101906101619190610bb1565b905060008082600001516001600160a01b03165a84602001516040516101879190610c0e565b60006040518083038160008787f1925050503d80600081146101c5576040519150601f19603f3d011682016040523d82523d6000602084013e6101ca565b606091505b5091509150816101f8578060405163a5fa8d2b60e01b81526004016101ef9190610937565b60405180910390fd5b5050600180546001600160a01b03191690555050505050565b60606040518060600160405280856001600160a01b0316815260200184848080601f0160208091040260200160405190810160405280939291908181526020018383808284376000920182905250938552505050602091820152604051610279929101610c5f565b60405160208183030381529060405290509392505050565b61029a816105e0565b6102a760208201826109af565b600180546001600160a01b0319166001600160a01b039290921691909117905560006102d660808301836109d0565b8101906102e39190610bb1565b905060008082600001516001600160a01b03165a84602001516040516103099190610c0e565b60006040518083038160008787f1925050503d8060008114610347576040519150601f19603f3d011682016040523d82523d6000602084013e61034c565b606091505b509150915081610371578060405163a5fa8d2b60e01b81526004016101ef9190610937565b5050600180546001600160a01b03191690555050565b7ff0c57e16840df040f15088dc2f81fe391c3923bec73e23a9662efc9c229c6a00805468010000000000000000810460ff16159067ffffffffffffffff166000811580156103d25750825b905060008267ffffffffffffffff1660011480156103ef5750303b155b9050811580156103fd575080155b15610434576040517ff92ee8a900000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b845467ffffffffffffffff19166001178555831561046857845468ff00000000000000001916680100000000000000001785555b600080546001600160a01b0388166001600160a01b03199182161790915560018054909116905583156104df57845468ff0000000000000000191685556040517fc7f505b2f371ae2175ee4913f4499e1f2633a7b5936321eed1cdaeb6115181d2906104d690600190610c8b565b60405180910390a15b505050505050565b6000546040517fe138a8d20000000000000000000000000000000000000000000000000000000081526001600160a01b039091169063e138a8d290610536908790879087908790600401610eba565b60006040518083038186803b15801561054e57600080fd5b505afa158015610562573d6000803e3d6000fd5b505050506000846040516020016105799190610ef8565b60408051601f1981840301815291815281516020928301206000818152600290935291205490915060ff16156105c15760405162461bcd60e51b81526004016101ef90610f3d565b6000908152600260205260409020805460ff1916600117905550505050565b6000546040517f33a88c720000000000000000000000000000000000000000000000000000000081526001600160a01b03909116906333a88c7290610629908490600401610ef8565b602060405180830381865afa158015610646573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061066a9190610f60565b6106865760405162461bcd60e51b81526004016101ef90610fb3565b6000816040516020016106999190610ef8565b60408051601f1981840301815291815281516020928301206000818152600290935291205490915060ff16156106e15760405162461bcd60e51b81526004016101ef90610f3d565b6000908152600260205260409020805460ff1916600117905550565b600060c0828403121561071257610712600080fd5b50919050565b60008083601f84011261072d5761072d600080fd5b50813567ffffffffffffffff81111561074857610748600080fd5b60208301915083602082028301111561076357610763600080fd5b9250929050565b805b811461077757600080fd5b50565b80356107858161076a565b92915050565b600080600080606085870312156107a4576107a4600080fd5b843567ffffffffffffffff8111156107be576107be600080fd5b6107ca878288016106fd565b945050602085013567ffffffffffffffff8111156107ea576107ea600080fd5b6107f687828801610718565b935093505060406108098782880161077a565b91505092959194509250565b60006001600160a01b038216610785565b61076c81610815565b803561078581610826565b60008083601f84011261084f5761084f600080fd5b50813567ffffffffffffffff81111561086a5761086a600080fd5b60208301915083600182028301111561076357610763600080fd5b60008060006040848603121561089d5761089d600080fd5b60006108a9868661082f565b935050602084013567ffffffffffffffff8111156108c9576108c9600080fd5b6108d58682870161083a565b92509250509250925092565b60005b838110156108fc5781810151838201526020016108e4565b50506000910152565b600061090f825190565b8084526020840193506109268185602086016108e1565b601f01601f19169290920192915050565b602080825281016109488184610905565b9392505050565b61095881610815565b82525050565b60208101610785828461094f565b60006020828403121561098157610981600080fd5b813567ffffffffffffffff81111561099b5761099b600080fd5b6109a7848285016106fd565b949350505050565b6000602082840312156109c4576109c4600080fd5b60006109a7848461082f565b6000808335601e19368590030181126109eb576109eb600080fd5b8301915050803567ffffffffffffffff811115610a0a57610a0a600080fd5b60208201915060018102360382131561076357610763600080fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b601f19601f830116810181811067ffffffffffffffff82111715610a7a57610a7a610a25565b6040525050565b6000610a8c60405190565b9050610a988282610a54565b919050565b600067ffffffffffffffff821115610ab757610ab7610a25565b601f19601f83011660200192915050565b82818337506000910152565b6000610ae7610ae284610a9d565b610a81565b905082815260208101848484011115610b0257610b02600080fd5b610b0d848285610ac8565b509392505050565b600082601f830112610b2957610b29600080fd5b81356109a7848260208601610ad4565b600060608284031215610b4e57610b4e600080fd5b610b586060610a81565b90506000610b66848461082f565b90820152602082013567ffffffffffffffff811115610b8757610b87600080fd5b610b9384828501610b15565b6020830152506040610ba78482850161077a565b9082015292915050565b600060208284031215610bc657610bc6600080fd5b813567ffffffffffffffff811115610be057610be0600080fd5b6109a784828501610b39565b6000610bf6825190565b610c048185602086016108e1565b9290920192915050565b6107858183610bec565b80610958565b80516000906060840190610c32858261094f565b5060208301518482036020860152610c4a8282610905565b9150506040830151610b0d6040860182610c18565b602080825281016109488184610c1e565b600067ffffffffffffffff8216610785565b61095881610c70565b602081016107858284610c82565b506000610785602083018361082f565b67ffffffffffffffff811661076c565b803561078581610ca9565b5060006107856020830183610cb9565b67ffffffffffffffff8116610958565b63ffffffff811661076c565b803561078581610ce4565b5060006107856020830183610cf0565b63ffffffff8116610958565b6000808335601e1936859003018112610d3257610d32600080fd5b830160208101925035905067ffffffffffffffff811115610d5557610d55600080fd5b3681900382131561076357610763600080fd5b818352602083019250610d7c828483610ac8565b50601f01601f19160190565b60ff811661076c565b803561078581610d88565b5060006107856020830183610d91565b60ff8116610958565b600060c08301610dc58380610c99565b610dcf858261094f565b50610ddd6020840184610cc4565b610dea6020860182610cd4565b50610df86040840184610cfb565b610e056040860182610d0b565b50610e136060840184610cfb565b610e206060860182610d0b565b50610e2e6080840184610d17565b8583036080870152610e41838284610d68565b92505050610e5260a0840184610d9c565b610b0d60a0860182610dac565b82818337505050565b81835260208301925060007f07ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff831115610ea357610ea3600080fd5b602083029250610eb4838584610e5f565b50500190565b60608082528101610ecb8187610db5565b90508181036020830152610ee0818587610e68565b9050610eef6040830184610c18565b95945050505050565b602080825281016109488184610db5565b60198152602081017f4d65737361676520616c726561647920636f6e73756d65642e00000000000000815290505b60200190565b6020808252810161078581610f09565b80151561076c565b805161078581610f4d565b600060208284031215610f7557610f75600080fd5b60006109a78484610f55565b601f8152602081017f4d657373616765206e6f7420666f756e64206f722066696e616c697a65642e0081529050610f37565b6020808252810161078581610f8156fea264697066735822122047f28995de7130c3998b1599d405fb370dedbc68b4a589631e78ea0032bfd28164736f6c63430008150033", } // CrossChainMessengerABI is the input ABI used to generate the binding from. diff --git a/contracts/generated/ECDSA/ECDSA.go b/contracts/generated/ECDSA/ECDSA.go index 3be7c4b73e..d444ed4c3e 100644 --- a/contracts/generated/ECDSA/ECDSA.go +++ b/contracts/generated/ECDSA/ECDSA.go @@ -32,7 +32,7 @@ var ( // ECDSAMetaData contains all meta data concerning the ECDSA contract. var ECDSAMetaData = &bind.MetaData{ ABI: "[{\"inputs\":[],\"name\":\"ECDSAInvalidSignature\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"length\",\"type\":\"uint256\"}],\"name\":\"ECDSAInvalidSignatureLength\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"s\",\"type\":\"bytes32\"}],\"name\":\"ECDSAInvalidSignatureS\",\"type\":\"error\"}]", - Bin: "0x60566037600b82828239805160001a607314602a57634e487b7160e01b600052600060045260246000fd5b30600052607381538281f3fe73000000000000000000000000000000000000000030146080604052600080fdfea2646970667358221220bed6531959ba38008e9f9a5d2707c1ef562c27a99949f9835dc4d5d47d0cf1e764736f6c63430008140033", + Bin: "0x60566037600b82828239805160001a607314602a57634e487b7160e01b600052600060045260246000fd5b30600052607381538281f3fe73000000000000000000000000000000000000000030146080604052600080fdfea26469706673582212207b9be294925ae7a4b046c2ea4eabd9690441e56d3c593a7fa370449ab2dc9acb64736f6c63430008150033", } // ECDSAABI is the input ABI used to generate the binding from. diff --git a/contracts/generated/ERC1967Proxy/ERC1967Proxy.go b/contracts/generated/ERC1967Proxy/ERC1967Proxy.go index b7388044d1..efcd80e421 100644 --- a/contracts/generated/ERC1967Proxy/ERC1967Proxy.go +++ b/contracts/generated/ERC1967Proxy/ERC1967Proxy.go @@ -32,7 +32,7 @@ var ( // ERC1967ProxyMetaData contains all meta data concerning the ERC1967Proxy contract. var ERC1967ProxyMetaData = &bind.MetaData{ ABI: "[{\"inputs\":[{\"internalType\":\"address\",\"name\":\"implementation\",\"type\":\"address\"},{\"internalType\":\"bytes\",\"name\":\"_data\",\"type\":\"bytes\"}],\"stateMutability\":\"payable\",\"type\":\"constructor\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"target\",\"type\":\"address\"}],\"name\":\"AddressEmptyCode\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"implementation\",\"type\":\"address\"}],\"name\":\"ERC1967InvalidImplementation\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"ERC1967NonPayable\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"FailedInnerCall\",\"type\":\"error\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"implementation\",\"type\":\"address\"}],\"name\":\"Upgraded\",\"type\":\"event\"},{\"stateMutability\":\"payable\",\"type\":\"fallback\"}]", - Bin: "0x60806040526040516104d53803806104d58339810160408190526100229161036e565b61002c8282610033565b5050610410565b61003c82610092565b6040516001600160a01b038316907fbc7cd75a20ee27fd9adebab32041f755214dbc6bffa90cc0225b39da2e5c2d3b90600090a2805115610086576100818282610109565b505050565b61008e610182565b5050565b806001600160a01b03163b6000036100c85780604051634c9c8ce360e01b81526004016100bf91906103d6565b60405180910390fd5b7f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc80546001600160a01b0319166001600160a01b0392909216919091179055565b6060600080846001600160a01b0316846040516101269190610406565b600060405180830381855af49150503d8060008114610161576040519150601f19603f3d011682016040523d82523d6000602084013e610166565b606091505b5090925090506101778583836101a3565b925050505b92915050565b34156101a15760405163b398979f60e01b815260040160405180910390fd5b565b6060826101b8576101b3826101f9565b6101f2565b81511580156101cf57506001600160a01b0384163b155b156101ef5783604051639996b31560e01b81526004016100bf91906103d6565b50805b9392505050565b8051156102095780518082602001fd5b604051630a12f52160e11b815260040160405180910390fd5b50565b60006001600160a01b03821661017c565b61023f81610225565b811461022257600080fd5b805161017c81610236565b634e487b7160e01b600052604160045260246000fd5b601f19601f83011681016001600160401b038111828210171561029057610290610255565b6040525050565b60006102a260405190565b90506102ae828261026b565b919050565b60006001600160401b038211156102cc576102cc610255565b601f19601f83011660200192915050565b60005b838110156102f85781810151838201526020016102e0565b50506000910152565b600061031461030f846102b3565b610297565b90508281526020810184848401111561032f5761032f600080fd5b61033a8482856102dd565b509392505050565b600082601f83011261035657610356600080fd5b8151610366848260208601610301565b949350505050565b6000806040838503121561038457610384600080fd5b6000610390858561024a565b602085015190935090506001600160401b038111156103b1576103b1600080fd5b6103bd85828601610342565b9150509250929050565b6103d081610225565b82525050565b6020810161017c82846103c7565b60006103ee825190565b6103fc8185602086016102dd565b9290920192915050565b61017c81836103e4565b60b78061041e6000396000f3fe6080604052600a600c565b005b60186014601a565b605e565b565b600060597f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc5473ffffffffffffffffffffffffffffffffffffffff1690565b905090565b3660008037600080366000845af43d6000803e808015607c573d6000f35b3d6000fdfea2646970667358221220679fbeba69a00d05fa2e591d481116c1a8115ed7134fc16aa8e7363bf3aec10164736f6c63430008140033", + Bin: "0x60806040526040516104d53803806104d58339810160408190526100229161036e565b61002c8282610033565b5050610410565b61003c82610092565b6040516001600160a01b038316907fbc7cd75a20ee27fd9adebab32041f755214dbc6bffa90cc0225b39da2e5c2d3b90600090a2805115610086576100818282610109565b505050565b61008e610182565b5050565b806001600160a01b03163b6000036100c85780604051634c9c8ce360e01b81526004016100bf91906103d6565b60405180910390fd5b7f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc80546001600160a01b0319166001600160a01b0392909216919091179055565b6060600080846001600160a01b0316846040516101269190610406565b600060405180830381855af49150503d8060008114610161576040519150601f19603f3d011682016040523d82523d6000602084013e610166565b606091505b5090925090506101778583836101a3565b925050505b92915050565b34156101a15760405163b398979f60e01b815260040160405180910390fd5b565b6060826101b8576101b3826101f9565b6101f2565b81511580156101cf57506001600160a01b0384163b155b156101ef5783604051639996b31560e01b81526004016100bf91906103d6565b50805b9392505050565b8051156102095780518082602001fd5b604051630a12f52160e11b815260040160405180910390fd5b50565b60006001600160a01b03821661017c565b61023f81610225565b811461022257600080fd5b805161017c81610236565b634e487b7160e01b600052604160045260246000fd5b601f19601f83011681016001600160401b038111828210171561029057610290610255565b6040525050565b60006102a260405190565b90506102ae828261026b565b919050565b60006001600160401b038211156102cc576102cc610255565b601f19601f83011660200192915050565b60005b838110156102f85781810151838201526020016102e0565b50506000910152565b600061031461030f846102b3565b610297565b90508281526020810184848401111561032f5761032f600080fd5b61033a8482856102dd565b509392505050565b600082601f83011261035657610356600080fd5b8151610366848260208601610301565b949350505050565b6000806040838503121561038457610384600080fd5b6000610390858561024a565b602085015190935090506001600160401b038111156103b1576103b1600080fd5b6103bd85828601610342565b9150509250929050565b6103d081610225565b82525050565b6020810161017c82846103c7565b60006103ee825190565b6103fc8185602086016102dd565b9290920192915050565b61017c81836103e4565b60b78061041e6000396000f3fe6080604052600a600c565b005b60186014601a565b605e565b565b600060597f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc5473ffffffffffffffffffffffffffffffffffffffff1690565b905090565b3660008037600080366000845af43d6000803e808015607c573d6000f35b3d6000fdfea2646970667358221220af0ad56f192a7d1bfa60e5538e4a309664aeb1af6cdbcf5ffe7d317ac444c19264736f6c63430008150033", } // ERC1967ProxyABI is the input ABI used to generate the binding from. diff --git a/contracts/generated/ERC1967Utils/ERC1967Utils.go b/contracts/generated/ERC1967Utils/ERC1967Utils.go index e51556fabc..d8f26f9f95 100644 --- a/contracts/generated/ERC1967Utils/ERC1967Utils.go +++ b/contracts/generated/ERC1967Utils/ERC1967Utils.go @@ -32,7 +32,7 @@ var ( // ERC1967UtilsMetaData contains all meta data concerning the ERC1967Utils contract. var ERC1967UtilsMetaData = &bind.MetaData{ ABI: "[{\"inputs\":[{\"internalType\":\"address\",\"name\":\"admin\",\"type\":\"address\"}],\"name\":\"ERC1967InvalidAdmin\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"beacon\",\"type\":\"address\"}],\"name\":\"ERC1967InvalidBeacon\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"implementation\",\"type\":\"address\"}],\"name\":\"ERC1967InvalidImplementation\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"ERC1967NonPayable\",\"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\":\"implementation\",\"type\":\"address\"}],\"name\":\"Upgraded\",\"type\":\"event\"}]", - Bin: "0x60566037600b82828239805160001a607314602a57634e487b7160e01b600052600060045260246000fd5b30600052607381538281f3fe73000000000000000000000000000000000000000030146080604052600080fdfea2646970667358221220ec29ed6df4a2008096043ff8d92e1dd9d99c6cc624ee92395edf2d28183ba61964736f6c63430008140033", + Bin: "0x60566037600b82828239805160001a607314602a57634e487b7160e01b600052600060045260246000fd5b30600052607381538281f3fe73000000000000000000000000000000000000000030146080604052600080fdfea26469706673582212209c8743ddfc5db36f715983637591eefdb90bb3bd861ff75e197f8bfa9b46e10a64736f6c63430008150033", } // ERC1967UtilsABI is the input ABI used to generate the binding from. diff --git a/contracts/generated/EthereumBridge/EthereumBridge.go b/contracts/generated/EthereumBridge/EthereumBridge.go index 493965af5c..b976e83f85 100644 --- a/contracts/generated/EthereumBridge/EthereumBridge.go +++ b/contracts/generated/EthereumBridge/EthereumBridge.go @@ -32,7 +32,7 @@ var ( // EthereumBridgeMetaData contains all meta data concerning the EthereumBridge contract. var EthereumBridgeMetaData = &bind.MetaData{ ABI: "[{\"inputs\":[],\"name\":\"InvalidInitialization\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"NotInitializing\",\"type\":\"error\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"address\",\"name\":\"remoteAddress\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"address\",\"name\":\"localAddress\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"string\",\"name\":\"name\",\"type\":\"string\"},{\"indexed\":false,\"internalType\":\"string\",\"name\":\"symbol\",\"type\":\"string\"}],\"name\":\"CreatedWrappedToken\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"uint64\",\"name\":\"version\",\"type\":\"uint64\"}],\"name\":\"Initialized\",\"type\":\"event\"},{\"stateMutability\":\"payable\",\"type\":\"fallback\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"messengerAddress\",\"type\":\"address\"}],\"name\":\"configure\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"wrappedToken\",\"type\":\"address\"}],\"name\":\"hasTokenMapping\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"messenger\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"remoteBridge\",\"type\":\"address\"}],\"name\":\"initialize\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"name\":\"localToRemoteToken\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"crossChainAddress\",\"type\":\"address\"},{\"internalType\":\"string\",\"name\":\"name\",\"type\":\"string\"},{\"internalType\":\"string\",\"name\":\"symbol\",\"type\":\"string\"}],\"name\":\"onCreateTokenCommand\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"asset\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"},{\"internalType\":\"address\",\"name\":\"receiver\",\"type\":\"address\"}],\"name\":\"receiveAssets\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"name\":\"remoteToLocalToken\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"asset\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"},{\"internalType\":\"address\",\"name\":\"receiver\",\"type\":\"address\"}],\"name\":\"sendERC20\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"receiver\",\"type\":\"address\"}],\"name\":\"sendNative\",\"outputs\":[],\"stateMutability\":\"payable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"name\":\"wrappedTokens\",\"outputs\":[{\"internalType\":\"contractWrappedERC20\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"stateMutability\":\"payable\",\"type\":\"receive\"}]", - Bin: "0x60806040526001805463ffffffff60a01b1916905534801561002057600080fd5b50612abd806100306000396000f3fe608060405260043610620000c65760003560e01c806383bece4d11620000735780639e405b7111620000555780639e405b711462000256578063a381c8e21462000290578063d5c6b50414620002b557620000ef565b806383bece4d14620001e35780639813c7b2146200020857620000ef565b8063458ffd6311620000a9578063458ffd631462000174578063485cc955146200019957806375cb267214620001be57620000ef565b80628d48e314620001095780631888d712146200015b57620000ef565b36620000ef5760405162461bcd60e51b8152600401620000e69062000d72565b60405180910390fd5b60405162461bcd60e51b8152600401620000e69062000dbe565b3480156200011657600080fd5b50620001436200012836600462000e09565b6004602052600090815260409020546001600160a01b031681565b60405162000152919062000e47565b60405180910390f35b620001726200016c36600462000e09565b620002fe565b005b3480156200018157600080fd5b50620001726200019336600462000eaf565b6200047e565b348015620001a657600080fd5b5062000172620001b836600462000f4b565b620005e7565b348015620001cb57600080fd5b5062000172620001dd36600462000e09565b6200075b565b348015620001f057600080fd5b50620001726200020236600462000fa2565b6200083b565b3480156200021557600080fd5b50620002476200022736600462000e09565b6001600160a01b0390811660009081526002602052604090205416151590565b60405162000152919062001003565b3480156200026357600080fd5b50620001436200027536600462000e09565b6003602052600090815260409020546001600160a01b031681565b3480156200029d57600080fd5b5062000172620002af36600462000fa2565b6200097f565b348015620002c257600080fd5b50620002ef620002d436600462000e09565b6002602052600090815260409020546001600160a01b031681565b60405162000152919062001038565b60003411620003215760405162461bcd60e51b8152600401620000e6906200107b565b600080805260036020527f3617319a054d772f909f7c479a2cebe5066e836a939412e32403c99029b92eff546040516383bece4d60e01b9162000377916001600160a01b03909116903490869060240162001094565b60408051601f198184030181529190526020810180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff167fffffffff0000000000000000000000000000000000000000000000000000000090931692909217909152600554909150620003f7906001600160a01b03168260005b60008062000b0b565b6001546040517f346633fb0000000000000000000000000000000000000000000000000000000081526001600160a01b039091169063346633fb903490620004469086908390600401620010c2565b6000604051808303818588803b1580156200046057600080fd5b505af115801562000475573d6000803e3d6000fd5b50505050505050565b6005546000546001600160a01b0391821691163314620004b25760405162461bcd60e51b8152600401620000e69062001141565b806001600160a01b0316620004c662000c20565b6001600160a01b031614620004ef5760405162461bcd60e51b8152600401620000e690620011ac565b600085858585604051620005039062000d0a565b620005129493929190620011ec565b604051809103906000f0801580156200052f573d6000803e3d6000fd5b506001600160a01b038082166000818152600260209081526040808320805473ffffffffffffffffffffffffffffffffffffffff199081168617909155600383528184208054968f169682168717905594835260049091529081902080549093169091179091555190915081907f30c05779f384e0ae9d43bbf7ec4417f28bdc53d02a35551b6eb270a9c4c71dca90620005d5908a9084908b908b908b908b9062001221565b60405180910390a15050505050505050565b7ff0c57e16840df040f15088dc2f81fe391c3923bec73e23a9662efc9c229c6a00805468010000000000000000810460ff16159067ffffffffffffffff16600081158015620006335750825b905060008267ffffffffffffffff166001148015620006515750303b155b90508115801562000660575080155b1562000698576040517ff92ee8a900000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b845467ffffffffffffffff191660011785558315620006cd57845468ff00000000000000001916680100000000000000001785555b620006d8876200075b565b6005805473ffffffffffffffffffffffffffffffffffffffff19166001600160a01b03881617905583156200047557845468ff0000000000000000191685556040517fc7f505b2f371ae2175ee4913f4499e1f2633a7b5936321eed1cdaeb6115181d2906200074a9060019062001296565b60405180910390a150505050505050565b6200076562000ca0565b6000805473ffffffffffffffffffffffffffffffffffffffff19166001600160a01b038316908117909155604080517fa1a227fa000000000000000000000000000000000000000000000000000000008152905163a1a227fa916004808201926020929091908290030181865afa158015620007e5573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906200080b9190620012b3565b6001805473ffffffffffffffffffffffffffffffffffffffff19166001600160a01b039290921691909117905550565b6005546000546001600160a01b03918216911633146200086f5760405162461bcd60e51b8152600401620000e69062001141565b806001600160a01b03166200088362000c20565b6001600160a01b031614620008ac5760405162461bcd60e51b8152600401620000e690620011ac565b6001600160a01b03808516600090815260046020908152604080832054841680845260029092529091205490911680620008fa5760405162461bcd60e51b8152600401620000e69062001331565b6040517f979005ad0000000000000000000000000000000000000000000000000000000081526001600160a01b0382169063979005ad90620009439087908990600401620010c2565b600060405180830381600087803b1580156200095e57600080fd5b505af115801562000973573d6000803e3d6000fd5b50505050505050505050565b6001600160a01b0380841660009081526002602052604090205416620009b95760405162461bcd60e51b8152600401620000e69062001376565b6001600160a01b03808416600090815260026020526040908190205490517f1dd319cb0000000000000000000000000000000000000000000000000000000081529116908190631dd319cb9062000a179033908790600401620010c2565b600060405180830381600087803b15801562000a3257600080fd5b505af115801562000a47573d6000803e3d6000fd5b5050506001600160a01b038086166000908152600360205260408082205490519193506383bece4d60e01b9262000a88929116908790879060240162001094565b60408051601f198184030181529190526020810180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff167fffffffff000000000000000000000000000000000000000000000000000000009093169290921790915260055490915062000b04906001600160a01b0316826000620003ee565b5050505050565b60006040518060600160405280876001600160a01b031681526020018681526020018481525060405160200162000b43919062001432565b60408051808303601f19018152919052600180549192506001600160a01b0382169163b1454caa917401000000000000000000000000000000000000000090910463ffffffff1690601462000b988362001474565b91906101000a81548163ffffffff021916908363ffffffff1602179055508684866040518563ffffffff1660e01b815260040162000bda9493929190620014b1565b6020604051808303816000875af115801562000bfa573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906200047591906200151c565b60008060009054906101000a90046001600160a01b03166001600160a01b03166363012de56040518163ffffffff1660e01b8152600401602060405180830381865afa15801562000c75573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019062000c9b9190620012b3565b905090565b7ff0c57e16840df040f15088dc2f81fe391c3923bec73e23a9662efc9c229c6a005468010000000000000000900460ff1662000d08576040517fd7e6bcf800000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b565b611546806200154283390190565b60238152602081017f436f6e747261637420646f6573206e6f7420737570706f72742072656365697681527f6528290000000000000000000000000000000000000000000000000000000000602082015290505b60400190565b6020808252810162000d848162000d18565b92915050565b601d8152602081017f66616c6c6261636b2829206d6574686f6420756e737570706f72746564000000815290505b60200190565b6020808252810162000d848162000d8a565b60006001600160a01b03821662000d84565b62000ded8162000dd0565b811462000df957600080fd5b50565b803562000d848162000de2565b60006020828403121562000e205762000e20600080fd5b600062000e2e848462000dfc565b949350505050565b62000e418162000dd0565b82525050565b6020810162000d84828462000e36565b60008083601f84011262000e6e5762000e6e600080fd5b50813567ffffffffffffffff81111562000e8b5762000e8b600080fd5b60208301915083600182028301111562000ea85762000ea8600080fd5b9250929050565b60008060008060006060868803121562000ecc5762000ecc600080fd5b600062000eda888862000dfc565b955050602086013567ffffffffffffffff81111562000efc5762000efc600080fd5b62000f0a8882890162000e57565b9450945050604086013567ffffffffffffffff81111562000f2e5762000f2e600080fd5b62000f3c8882890162000e57565b92509250509295509295909350565b6000806040838503121562000f635762000f63600080fd5b600062000f71858562000dfc565b925050602062000f848582860162000dfc565b9150509250929050565b8062000ded565b803562000d848162000f8e565b60008060006060848603121562000fbc5762000fbc600080fd5b600062000fca868662000dfc565b935050602062000fdd8682870162000f95565b925050604062000ff08682870162000dfc565b9150509250925092565b80151562000e41565b6020810162000d84828462000ffa565b600062000d848262000dd0565b600062000d848262001013565b62000e418162001020565b6020810162000d8482846200102d565b600d8152602081017f4e6f7468696e672073656e742e000000000000000000000000000000000000008152905062000db8565b6020808252810162000d848162001048565b8062000e41565b60608101620010a4828662000e36565b620010b360208301856200108d565b62000e2e604083018462000e36565b60408101620010d2828562000e36565b620010e160208301846200108d565b9392505050565b60308152602081017f436f6e74726163742063616c6c6572206973206e6f742074686520726567697381527f7465726564206d657373656e67657221000000000000000000000000000000006020820152905062000d6c565b6020808252810162000d8481620010e8565b60318152602081017f43726f737320636861696e206d65737361676520636f6d696e672066726f6d2081527f696e636f72726563742073656e646572210000000000000000000000000000006020820152905062000d6c565b6020808252810162000d848162001153565b82818337506000910152565b818352602083019250620011e0828483620011be565b50601f01601f19160190565b6040808252810162001200818688620011ca565b9050818103602083015262001217818486620011ca565b9695505050505050565b6080810162001231828962000e36565b62001240602083018862000e36565b818103604083015262001255818688620011ca565b905081810360608301526200126c818486620011ca565b98975050505050505050565b600067ffffffffffffffff821662000d84565b62000e418162001278565b6020810162000d8482846200128b565b805162000d848162000de2565b600060208284031215620012ca57620012ca600080fd5b600062000e2e8484620012a6565b602b8152602081017f526563656976696e672061737365747320666f7220756e6b6e6f776e2077726181527f7070656420746f6b656e210000000000000000000000000000000000000000006020820152905062000d6c565b6020808252810162000d8481620012d8565b60158152602081017f4e6f206d617070696e6720666f7220746f6b656e2e00000000000000000000008152905062000db8565b6020808252810162000d848162001343565b60005b83811015620013a55781810151838201526020016200138b565b50506000910152565b6000620013b9825190565b808452602084019350620013d281856020860162001388565b601f01601f19169290920192915050565b80516000906060840190620013f9858262000e36565b5060208301518482036020860152620014138282620013ae565b91505060408301516200142a60408601826200108d565b509392505050565b60208082528101620010e18184620013e3565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b63ffffffff16600063fffffffe19820162001493576200149362001445565b5060010190565b63ffffffff811662000e41565b60ff811662000e41565b60808101620014c182876200149a565b620014d060208301866200149a565b8181036040830152620014e48185620013ae565b9050620014f56060830184620014a7565b95945050505050565b67ffffffffffffffff811662000ded565b805162000d8481620014fe565b600060208284031215620015335762001533600080fd5b600062000e2e84846200150f56fe6080604052600580546001600160a01b03191673deb34a740eca1ec42c8b8204cbec0ba34fdd27f31790553480156200003757600080fd5b5060405162001546380380620015468339810160408190526200005a916200029e565b8181818160036200006c838262000412565b5060046200007b828262000412565b5050505050620000b27fa49807205ce4d355092ef5a8a18f56e8913cf4a201fbe287825b095693c2177533620000bb60201b60201c565b505050620004de565b60008281526007602090815260408083206001600160a01b038516845290915281205460ff16620001645760008381526007602090815260408083206001600160a01b03861684529091529020805460ff191660011790556200011b3390565b6001600160a01b0316826001600160a01b0316847f2f8788117e7eff1d82e926ec794901d17c78024a50270940304540a733656f0d60405160405180910390a450600162000168565b5060005b92915050565b634e487b7160e01b600052604160045260246000fd5b601f19601f83011681016001600160401b0381118282101715620001ac57620001ac6200016e565b6040525050565b6000620001bf60405190565b9050620001cd828262000184565b919050565b60006001600160401b03821115620001ee57620001ee6200016e565b601f19601f83011660200192915050565b60005b838110156200021c57818101518382015260200162000202565b50506000910152565b60006200023c6200023684620001d2565b620001b3565b905082815260208101848484011115620002595762000259600080fd5b62000266848285620001ff565b509392505050565b600082601f830112620002845762000284600080fd5b81516200029684826020860162000225565b949350505050565b60008060408385031215620002b657620002b6600080fd5b82516001600160401b03811115620002d157620002d1600080fd5b620002df858286016200026e565b602085015190935090506001600160401b03811115620003025762000302600080fd5b62000310858286016200026e565b9150509250929050565b634e487b7160e01b600052602260045260246000fd5b6002810460018216806200034557607f821691505b6020821081036200035a576200035a6200031a565b50919050565b6000620001686200036e8381565b90565b6200037c8362000360565b815460001960089490940293841b1916921b91909117905550565b6000620003a681848462000371565b505050565b81811015620003ca57620003c160008262000397565b600101620003ab565b5050565b601f821115620003a6576000818152602090206020601f85010481016020851015620003f75750805b6200040b6020601f860104830182620003ab565b5050505050565b81516001600160401b038111156200042e576200042e6200016e565b6200043a825462000330565b62000447828285620003ce565b506020601f8211600181146200047f5760008315620004665750848201515b600019600885021c19811660028502178555506200040b565b600084815260208120601f198516915b82811015620004b157878501518255602094850194600190920191016200048f565b5084821015620004cf5783870151600019601f87166008021c191681555b50505050600202600101905550565b61105880620004ee6000396000f3fe608060405234801561001057600080fd5b50600436106101515760003560e01c806336568abe116100cd578063979005ad11610081578063a9059cbb11610066578063a9059cbb146102ce578063d547741f146102e1578063dd62ed3e146102f457600080fd5b8063979005ad146102b3578063a217fddf146102c657600080fd5b806375b238fc116100b257806375b238fc1461024b57806391d148541461027257806395d89b41146102ab57600080fd5b806336568abe1461022557806370a082311461023857600080fd5b80631dd319cb11610124578063248a9ca311610109578063248a9ca3146101e05780632f2ff15d14610203578063313ce5671461021657600080fd5b80631dd319cb146101b857806323b872dd146101cd57600080fd5b806301ffc9a71461015657806306fdde031461017f578063095ea7b31461019457806318160ddd146101a7575b600080fd5b610169610164366004610c49565b610307565b6040516101769190610c7c565b60405180910390f35b6101876103a0565b6040516101769190610ce0565b6101696101a2366004610d27565b610432565b6002545b6040516101769190610d6a565b6101cb6101c6366004610d27565b61044a565b005b6101696101db366004610d78565b6104b4565b6101ab6101ee366004610dc8565b60009081526007602052604090206001015490565b6101cb610211366004610de9565b6104da565b60126040516101769190610e25565b6101cb610233366004610de9565b610505565b6101ab610246366004610e33565b610551565b6101ab7fa49807205ce4d355092ef5a8a18f56e8913cf4a201fbe287825b095693c2177581565b610169610280366004610de9565b60009182526007602090815260408084206001600160a01b0393909316845291905290205460ff1690565b6101876105c7565b6101cb6102c1366004610d27565b6105d6565b6101ab600081565b6101696102dc366004610d27565b61060a565b6101cb6102ef366004610de9565b610618565b6101ab610302366004610e54565b61063d565b60007fffffffff0000000000000000000000000000000000000000000000000000000082167f7965db0b00000000000000000000000000000000000000000000000000000000148061039a57507f01ffc9a7000000000000000000000000000000000000000000000000000000007fffffffff000000000000000000000000000000000000000000000000000000008316145b92915050565b6060600380546103af90610e8c565b80601f01602080910402602001604051908101604052809291908181526020018280546103db90610e8c565b80156104285780601f106103fd57610100808354040283529160200191610428565b820191906000526020600020905b81548152906001019060200180831161040b57829003601f168201915b5050505050905090565b6000336104408185856106f8565b5060019392505050565b7fa49807205ce4d355092ef5a8a18f56e8913cf4a201fbe287825b095693c2177561047481610705565b8161047e84610551565b10156104a55760405162461bcd60e51b815260040161049c90610eec565b60405180910390fd5b6104af8383610712565b505050565b6000336104c285828561074c565b6104cd8585856107b2565b60019150505b9392505050565b6000828152600760205260409020600101546104f581610705565b6104ff8383610811565b50505050565b6001600160a01b0381163314610547576040517f6697b23200000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6104af82826108bf565b60006001600160a01b0382163203610581576001600160a01b03821660009081526020819052604090205461039a565b6001600160a01b03821633036105af576001600160a01b03821660009081526020819052604090205461039a565b60405162461bcd60e51b815260040161049c90610f2e565b6060600480546103af90610e8c565b7fa49807205ce4d355092ef5a8a18f56e8913cf4a201fbe287825b095693c2177561060081610705565b6104af8383610946565b6000336104408185856107b2565b60008281526007602052604090206001015461063381610705565b6104ff83836108bf565b6000326001600160a01b038416148061065e5750326001600160a01b038316145b15610691576001600160a01b038084166000908152600160209081526040808320938616835292905220545b905061039a565b336001600160a01b03841614806106b05750336001600160a01b038316145b156106e0576001600160a01b0380841660009081526001602090815260408083209386168352929052205461068a565b60405162461bcd60e51b815260040161049c90610f3e565b6104af838383600161097c565b61070f8133610a81565b50565b6001600160a01b03821661073c576000604051634b637e8f60e11b815260040161049c9190610fa8565b61074882600083610ae1565b5050565b6000610758848461063d565b905060001981146104ff57818110156107a3578281836040517ffb8f41b200000000000000000000000000000000000000000000000000000000815260040161049c93929190610fb6565b6104ff8484848403600061097c565b6001600160a01b0383166107dc576000604051634b637e8f60e11b815260040161049c9190610fa8565b6001600160a01b03821661080657600060405163ec442f0560e01b815260040161049c9190610fa8565b6104af838383610ae1565b60008281526007602090815260408083206001600160a01b038516845290915281205460ff166108b75760008381526007602090815260408083206001600160a01b03861684529091529020805460ff1916600117905561086f3390565b6001600160a01b0316826001600160a01b0316847f2f8788117e7eff1d82e926ec794901d17c78024a50270940304540a733656f0d60405160405180910390a450600161039a565b50600061039a565b60008281526007602090815260408083206001600160a01b038516845290915281205460ff16156108b75760008381526007602090815260408083206001600160a01b0386168085529252808320805460ff1916905551339286917ff6391f5c32d9c69d2a47ea670b442974b53935d1edc7fd64eb21e047a839171b9190a450600161039a565b6001600160a01b03821661097057600060405163ec442f0560e01b815260040161049c9190610fa8565b61074860008383610ae1565b6001600160a01b0384166109bf5760006040517fe602df0500000000000000000000000000000000000000000000000000000000815260040161049c9190610fa8565b6001600160a01b038316610a025760006040517f94280d6200000000000000000000000000000000000000000000000000000000815260040161049c9190610fa8565b6001600160a01b03808516600090815260016020908152604080832093871683529290522082905580156104ff57826001600160a01b0316846001600160a01b03167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92584604051610a739190610d6a565b60405180910390a350505050565b60008281526007602090815260408083206001600160a01b038516845290915290205460ff166107485780826040517fe2517d3f00000000000000000000000000000000000000000000000000000000815260040161049c929190610fde565b6001600160a01b038316610b0c578060026000828254610b01919061100f565b90915550610b849050565b6001600160a01b03831660009081526020819052604090205481811015610b65578381836040517fe450d38c00000000000000000000000000000000000000000000000000000000815260040161049c93929190610fb6565b6001600160a01b03841660009081526020819052604090209082900390555b6001600160a01b038216610ba057600280548290039055610bbf565b6001600160a01b03821660009081526020819052604090208054820190555b816001600160a01b0316836001600160a01b03167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef83604051610c029190610d6a565b60405180910390a3505050565b7fffffffff0000000000000000000000000000000000000000000000000000000081165b811461070f57600080fd5b803561039a81610c0f565b600060208284031215610c5e57610c5e600080fd5b6000610c6a8484610c3e565b949350505050565b8015155b82525050565b6020810161039a8284610c72565b60005b83811015610ca5578181015183820152602001610c8d565b50506000910152565b6000610cb8825190565b808452602084019350610ccf818560208601610c8a565b601f01601f19169290920192915050565b602080825281016104d38184610cae565b60006001600160a01b03821661039a565b610c3381610cf1565b803561039a81610d02565b80610c33565b803561039a81610d16565b60008060408385031215610d3d57610d3d600080fd5b6000610d498585610d0b565b9250506020610d5a85828601610d1c565b9150509250929050565b80610c76565b6020810161039a8284610d64565b600080600060608486031215610d9057610d90600080fd5b6000610d9c8686610d0b565b9350506020610dad86828701610d0b565b9250506040610dbe86828701610d1c565b9150509250925092565b600060208284031215610ddd57610ddd600080fd5b6000610c6a8484610d1c565b60008060408385031215610dff57610dff600080fd5b6000610e0b8585610d1c565b9250506020610d5a85828601610d0b565b60ff8116610c76565b6020810161039a8284610e1c565b600060208284031215610e4857610e48600080fd5b6000610c6a8484610d0b565b60008060408385031215610e6a57610e6a600080fd5b6000610e0b8585610d0b565b634e487b7160e01b600052602260045260246000fd5b600281046001821680610ea057607f821691505b602082108103610eb257610eb2610e76565b50919050565b60158152602081017f496e73756666696369656e742062616c616e63652e0000000000000000000000815290505b60200190565b6020808252810161039a81610eb8565b601f8152602081017f4e6f7420616c6c6f77656420746f2072656164207468652062616c616e63650081529050610ee6565b6020808252810161039a81610efc565b6020808252810161039a81602181527f4e6f7420616c6c6f77656420746f20726561642074686520616c6c6f77616e6360208201527f6500000000000000000000000000000000000000000000000000000000000000604082015260600190565b610c7681610cf1565b6020810161039a8284610f9f565b60608101610fc48286610f9f565b610fd16020830185610d64565b610c6a6040830184610d64565b60408101610fec8285610f9f565b6104d36020830184610d64565b634e487b7160e01b600052601160045260246000fd5b8082018082111561039a5761039a610ff956fea26469706673582212200ccb938df157c83569bb97b7cac53f726956a8f0a388597c60ae24feb0f05f4964736f6c63430008140033a26469706673582212204172d93cfb8a2353e719050fdcace139042298bb5992a07468564b3316bce15664736f6c63430008140033", + Bin: "0x60806040526001805463ffffffff60a01b1916905534801561002057600080fd5b50612abd806100306000396000f3fe608060405260043610620000c65760003560e01c806383bece4d11620000735780639e405b7111620000555780639e405b711462000256578063a381c8e21462000290578063d5c6b50414620002b557620000ef565b806383bece4d14620001e35780639813c7b2146200020857620000ef565b8063458ffd6311620000a9578063458ffd631462000174578063485cc955146200019957806375cb267214620001be57620000ef565b80628d48e314620001095780631888d712146200015b57620000ef565b36620000ef5760405162461bcd60e51b8152600401620000e69062000d72565b60405180910390fd5b60405162461bcd60e51b8152600401620000e69062000dbe565b3480156200011657600080fd5b50620001436200012836600462000e09565b6004602052600090815260409020546001600160a01b031681565b60405162000152919062000e47565b60405180910390f35b620001726200016c36600462000e09565b620002fe565b005b3480156200018157600080fd5b50620001726200019336600462000eaf565b6200047e565b348015620001a657600080fd5b5062000172620001b836600462000f4b565b620005e7565b348015620001cb57600080fd5b5062000172620001dd36600462000e09565b6200075b565b348015620001f057600080fd5b50620001726200020236600462000fa2565b6200083b565b3480156200021557600080fd5b50620002476200022736600462000e09565b6001600160a01b0390811660009081526002602052604090205416151590565b60405162000152919062001003565b3480156200026357600080fd5b50620001436200027536600462000e09565b6003602052600090815260409020546001600160a01b031681565b3480156200029d57600080fd5b5062000172620002af36600462000fa2565b6200097f565b348015620002c257600080fd5b50620002ef620002d436600462000e09565b6002602052600090815260409020546001600160a01b031681565b60405162000152919062001038565b60003411620003215760405162461bcd60e51b8152600401620000e6906200107b565b600080805260036020527f3617319a054d772f909f7c479a2cebe5066e836a939412e32403c99029b92eff546040516383bece4d60e01b9162000377916001600160a01b03909116903490869060240162001094565b60408051601f198184030181529190526020810180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff167fffffffff0000000000000000000000000000000000000000000000000000000090931692909217909152600554909150620003f7906001600160a01b03168260005b60008062000b0b565b6001546040517f346633fb0000000000000000000000000000000000000000000000000000000081526001600160a01b039091169063346633fb903490620004469086908390600401620010c2565b6000604051808303818588803b1580156200046057600080fd5b505af115801562000475573d6000803e3d6000fd5b50505050505050565b6005546000546001600160a01b0391821691163314620004b25760405162461bcd60e51b8152600401620000e69062001141565b806001600160a01b0316620004c662000c20565b6001600160a01b031614620004ef5760405162461bcd60e51b8152600401620000e690620011ac565b600085858585604051620005039062000d0a565b620005129493929190620011ec565b604051809103906000f0801580156200052f573d6000803e3d6000fd5b506001600160a01b038082166000818152600260209081526040808320805473ffffffffffffffffffffffffffffffffffffffff199081168617909155600383528184208054968f169682168717905594835260049091529081902080549093169091179091555190915081907f30c05779f384e0ae9d43bbf7ec4417f28bdc53d02a35551b6eb270a9c4c71dca90620005d5908a9084908b908b908b908b9062001221565b60405180910390a15050505050505050565b7ff0c57e16840df040f15088dc2f81fe391c3923bec73e23a9662efc9c229c6a00805468010000000000000000810460ff16159067ffffffffffffffff16600081158015620006335750825b905060008267ffffffffffffffff166001148015620006515750303b155b90508115801562000660575080155b1562000698576040517ff92ee8a900000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b845467ffffffffffffffff191660011785558315620006cd57845468ff00000000000000001916680100000000000000001785555b620006d8876200075b565b6005805473ffffffffffffffffffffffffffffffffffffffff19166001600160a01b03881617905583156200047557845468ff0000000000000000191685556040517fc7f505b2f371ae2175ee4913f4499e1f2633a7b5936321eed1cdaeb6115181d2906200074a9060019062001296565b60405180910390a150505050505050565b6200076562000ca0565b6000805473ffffffffffffffffffffffffffffffffffffffff19166001600160a01b038316908117909155604080517fa1a227fa000000000000000000000000000000000000000000000000000000008152905163a1a227fa916004808201926020929091908290030181865afa158015620007e5573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906200080b9190620012b3565b6001805473ffffffffffffffffffffffffffffffffffffffff19166001600160a01b039290921691909117905550565b6005546000546001600160a01b03918216911633146200086f5760405162461bcd60e51b8152600401620000e69062001141565b806001600160a01b03166200088362000c20565b6001600160a01b031614620008ac5760405162461bcd60e51b8152600401620000e690620011ac565b6001600160a01b03808516600090815260046020908152604080832054841680845260029092529091205490911680620008fa5760405162461bcd60e51b8152600401620000e69062001331565b6040517f979005ad0000000000000000000000000000000000000000000000000000000081526001600160a01b0382169063979005ad90620009439087908990600401620010c2565b600060405180830381600087803b1580156200095e57600080fd5b505af115801562000973573d6000803e3d6000fd5b50505050505050505050565b6001600160a01b0380841660009081526002602052604090205416620009b95760405162461bcd60e51b8152600401620000e69062001376565b6001600160a01b03808416600090815260026020526040908190205490517f1dd319cb0000000000000000000000000000000000000000000000000000000081529116908190631dd319cb9062000a179033908790600401620010c2565b600060405180830381600087803b15801562000a3257600080fd5b505af115801562000a47573d6000803e3d6000fd5b5050506001600160a01b038086166000908152600360205260408082205490519193506383bece4d60e01b9262000a88929116908790879060240162001094565b60408051601f198184030181529190526020810180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff167fffffffff000000000000000000000000000000000000000000000000000000009093169290921790915260055490915062000b04906001600160a01b0316826000620003ee565b5050505050565b60006040518060600160405280876001600160a01b031681526020018681526020018481525060405160200162000b43919062001432565b60408051808303601f19018152919052600180549192506001600160a01b0382169163b1454caa917401000000000000000000000000000000000000000090910463ffffffff1690601462000b988362001474565b91906101000a81548163ffffffff021916908363ffffffff1602179055508684866040518563ffffffff1660e01b815260040162000bda9493929190620014b1565b6020604051808303816000875af115801562000bfa573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906200047591906200151c565b60008060009054906101000a90046001600160a01b03166001600160a01b03166363012de56040518163ffffffff1660e01b8152600401602060405180830381865afa15801562000c75573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019062000c9b9190620012b3565b905090565b7ff0c57e16840df040f15088dc2f81fe391c3923bec73e23a9662efc9c229c6a005468010000000000000000900460ff1662000d08576040517fd7e6bcf800000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b565b611546806200154283390190565b60238152602081017f436f6e747261637420646f6573206e6f7420737570706f72742072656365697681527f6528290000000000000000000000000000000000000000000000000000000000602082015290505b60400190565b6020808252810162000d848162000d18565b92915050565b601d8152602081017f66616c6c6261636b2829206d6574686f6420756e737570706f72746564000000815290505b60200190565b6020808252810162000d848162000d8a565b60006001600160a01b03821662000d84565b62000ded8162000dd0565b811462000df957600080fd5b50565b803562000d848162000de2565b60006020828403121562000e205762000e20600080fd5b600062000e2e848462000dfc565b949350505050565b62000e418162000dd0565b82525050565b6020810162000d84828462000e36565b60008083601f84011262000e6e5762000e6e600080fd5b50813567ffffffffffffffff81111562000e8b5762000e8b600080fd5b60208301915083600182028301111562000ea85762000ea8600080fd5b9250929050565b60008060008060006060868803121562000ecc5762000ecc600080fd5b600062000eda888862000dfc565b955050602086013567ffffffffffffffff81111562000efc5762000efc600080fd5b62000f0a8882890162000e57565b9450945050604086013567ffffffffffffffff81111562000f2e5762000f2e600080fd5b62000f3c8882890162000e57565b92509250509295509295909350565b6000806040838503121562000f635762000f63600080fd5b600062000f71858562000dfc565b925050602062000f848582860162000dfc565b9150509250929050565b8062000ded565b803562000d848162000f8e565b60008060006060848603121562000fbc5762000fbc600080fd5b600062000fca868662000dfc565b935050602062000fdd8682870162000f95565b925050604062000ff08682870162000dfc565b9150509250925092565b80151562000e41565b6020810162000d84828462000ffa565b600062000d848262000dd0565b600062000d848262001013565b62000e418162001020565b6020810162000d8482846200102d565b600d8152602081017f4e6f7468696e672073656e742e000000000000000000000000000000000000008152905062000db8565b6020808252810162000d848162001048565b8062000e41565b60608101620010a4828662000e36565b620010b360208301856200108d565b62000e2e604083018462000e36565b60408101620010d2828562000e36565b620010e160208301846200108d565b9392505050565b60308152602081017f436f6e74726163742063616c6c6572206973206e6f742074686520726567697381527f7465726564206d657373656e67657221000000000000000000000000000000006020820152905062000d6c565b6020808252810162000d8481620010e8565b60318152602081017f43726f737320636861696e206d65737361676520636f6d696e672066726f6d2081527f696e636f72726563742073656e646572210000000000000000000000000000006020820152905062000d6c565b6020808252810162000d848162001153565b82818337506000910152565b818352602083019250620011e0828483620011be565b50601f01601f19160190565b6040808252810162001200818688620011ca565b9050818103602083015262001217818486620011ca565b9695505050505050565b6080810162001231828962000e36565b62001240602083018862000e36565b818103604083015262001255818688620011ca565b905081810360608301526200126c818486620011ca565b98975050505050505050565b600067ffffffffffffffff821662000d84565b62000e418162001278565b6020810162000d8482846200128b565b805162000d848162000de2565b600060208284031215620012ca57620012ca600080fd5b600062000e2e8484620012a6565b602b8152602081017f526563656976696e672061737365747320666f7220756e6b6e6f776e2077726181527f7070656420746f6b656e210000000000000000000000000000000000000000006020820152905062000d6c565b6020808252810162000d8481620012d8565b60158152602081017f4e6f206d617070696e6720666f7220746f6b656e2e00000000000000000000008152905062000db8565b6020808252810162000d848162001343565b60005b83811015620013a55781810151838201526020016200138b565b50506000910152565b6000620013b9825190565b808452602084019350620013d281856020860162001388565b601f01601f19169290920192915050565b80516000906060840190620013f9858262000e36565b5060208301518482036020860152620014138282620013ae565b91505060408301516200142a60408601826200108d565b509392505050565b60208082528101620010e18184620013e3565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b63ffffffff16600063fffffffe19820162001493576200149362001445565b5060010190565b63ffffffff811662000e41565b60ff811662000e41565b60808101620014c182876200149a565b620014d060208301866200149a565b8181036040830152620014e48185620013ae565b9050620014f56060830184620014a7565b95945050505050565b67ffffffffffffffff811662000ded565b805162000d8481620014fe565b600060208284031215620015335762001533600080fd5b600062000e2e84846200150f56fe6080604052600580546001600160a01b03191673deb34a740eca1ec42c8b8204cbec0ba34fdd27f31790553480156200003757600080fd5b5060405162001546380380620015468339810160408190526200005a916200029e565b8181818160036200006c838262000412565b5060046200007b828262000412565b5050505050620000b27fa49807205ce4d355092ef5a8a18f56e8913cf4a201fbe287825b095693c2177533620000bb60201b60201c565b505050620004de565b60008281526007602090815260408083206001600160a01b038516845290915281205460ff16620001645760008381526007602090815260408083206001600160a01b03861684529091529020805460ff191660011790556200011b3390565b6001600160a01b0316826001600160a01b0316847f2f8788117e7eff1d82e926ec794901d17c78024a50270940304540a733656f0d60405160405180910390a450600162000168565b5060005b92915050565b634e487b7160e01b600052604160045260246000fd5b601f19601f83011681016001600160401b0381118282101715620001ac57620001ac6200016e565b6040525050565b6000620001bf60405190565b9050620001cd828262000184565b919050565b60006001600160401b03821115620001ee57620001ee6200016e565b601f19601f83011660200192915050565b60005b838110156200021c57818101518382015260200162000202565b50506000910152565b60006200023c6200023684620001d2565b620001b3565b905082815260208101848484011115620002595762000259600080fd5b62000266848285620001ff565b509392505050565b600082601f830112620002845762000284600080fd5b81516200029684826020860162000225565b949350505050565b60008060408385031215620002b657620002b6600080fd5b82516001600160401b03811115620002d157620002d1600080fd5b620002df858286016200026e565b602085015190935090506001600160401b03811115620003025762000302600080fd5b62000310858286016200026e565b9150509250929050565b634e487b7160e01b600052602260045260246000fd5b6002810460018216806200034557607f821691505b6020821081036200035a576200035a6200031a565b50919050565b6000620001686200036e8381565b90565b6200037c8362000360565b815460001960089490940293841b1916921b91909117905550565b6000620003a681848462000371565b505050565b81811015620003ca57620003c160008262000397565b600101620003ab565b5050565b601f821115620003a6576000818152602090206020601f85010481016020851015620003f75750805b6200040b6020601f860104830182620003ab565b5050505050565b81516001600160401b038111156200042e576200042e6200016e565b6200043a825462000330565b62000447828285620003ce565b506020601f8211600181146200047f5760008315620004665750848201515b600019600885021c19811660028502178555506200040b565b600084815260208120601f198516915b82811015620004b157878501518255602094850194600190920191016200048f565b5084821015620004cf5783870151600019601f87166008021c191681555b50505050600202600101905550565b61105880620004ee6000396000f3fe608060405234801561001057600080fd5b50600436106101515760003560e01c806336568abe116100cd578063979005ad11610081578063a9059cbb11610066578063a9059cbb146102ce578063d547741f146102e1578063dd62ed3e146102f457600080fd5b8063979005ad146102b3578063a217fddf146102c657600080fd5b806375b238fc116100b257806375b238fc1461024b57806391d148541461027257806395d89b41146102ab57600080fd5b806336568abe1461022557806370a082311461023857600080fd5b80631dd319cb11610124578063248a9ca311610109578063248a9ca3146101e05780632f2ff15d14610203578063313ce5671461021657600080fd5b80631dd319cb146101b857806323b872dd146101cd57600080fd5b806301ffc9a71461015657806306fdde031461017f578063095ea7b31461019457806318160ddd146101a7575b600080fd5b610169610164366004610c49565b610307565b6040516101769190610c7c565b60405180910390f35b6101876103a0565b6040516101769190610ce0565b6101696101a2366004610d27565b610432565b6002545b6040516101769190610d6a565b6101cb6101c6366004610d27565b61044a565b005b6101696101db366004610d78565b6104b4565b6101ab6101ee366004610dc8565b60009081526007602052604090206001015490565b6101cb610211366004610de9565b6104da565b60126040516101769190610e25565b6101cb610233366004610de9565b610505565b6101ab610246366004610e33565b610551565b6101ab7fa49807205ce4d355092ef5a8a18f56e8913cf4a201fbe287825b095693c2177581565b610169610280366004610de9565b60009182526007602090815260408084206001600160a01b0393909316845291905290205460ff1690565b6101876105c7565b6101cb6102c1366004610d27565b6105d6565b6101ab600081565b6101696102dc366004610d27565b61060a565b6101cb6102ef366004610de9565b610618565b6101ab610302366004610e54565b61063d565b60007fffffffff0000000000000000000000000000000000000000000000000000000082167f7965db0b00000000000000000000000000000000000000000000000000000000148061039a57507f01ffc9a7000000000000000000000000000000000000000000000000000000007fffffffff000000000000000000000000000000000000000000000000000000008316145b92915050565b6060600380546103af90610e8c565b80601f01602080910402602001604051908101604052809291908181526020018280546103db90610e8c565b80156104285780601f106103fd57610100808354040283529160200191610428565b820191906000526020600020905b81548152906001019060200180831161040b57829003601f168201915b5050505050905090565b6000336104408185856106f8565b5060019392505050565b7fa49807205ce4d355092ef5a8a18f56e8913cf4a201fbe287825b095693c2177561047481610705565b8161047e84610551565b10156104a55760405162461bcd60e51b815260040161049c90610eec565b60405180910390fd5b6104af8383610712565b505050565b6000336104c285828561074c565b6104cd8585856107b2565b60019150505b9392505050565b6000828152600760205260409020600101546104f581610705565b6104ff8383610811565b50505050565b6001600160a01b0381163314610547576040517f6697b23200000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6104af82826108bf565b60006001600160a01b0382163203610581576001600160a01b03821660009081526020819052604090205461039a565b6001600160a01b03821633036105af576001600160a01b03821660009081526020819052604090205461039a565b60405162461bcd60e51b815260040161049c90610f2e565b6060600480546103af90610e8c565b7fa49807205ce4d355092ef5a8a18f56e8913cf4a201fbe287825b095693c2177561060081610705565b6104af8383610946565b6000336104408185856107b2565b60008281526007602052604090206001015461063381610705565b6104ff83836108bf565b6000326001600160a01b038416148061065e5750326001600160a01b038316145b15610691576001600160a01b038084166000908152600160209081526040808320938616835292905220545b905061039a565b336001600160a01b03841614806106b05750336001600160a01b038316145b156106e0576001600160a01b0380841660009081526001602090815260408083209386168352929052205461068a565b60405162461bcd60e51b815260040161049c90610f3e565b6104af838383600161097c565b61070f8133610a81565b50565b6001600160a01b03821661073c576000604051634b637e8f60e11b815260040161049c9190610fa8565b61074882600083610ae1565b5050565b6000610758848461063d565b905060001981146104ff57818110156107a3578281836040517ffb8f41b200000000000000000000000000000000000000000000000000000000815260040161049c93929190610fb6565b6104ff8484848403600061097c565b6001600160a01b0383166107dc576000604051634b637e8f60e11b815260040161049c9190610fa8565b6001600160a01b03821661080657600060405163ec442f0560e01b815260040161049c9190610fa8565b6104af838383610ae1565b60008281526007602090815260408083206001600160a01b038516845290915281205460ff166108b75760008381526007602090815260408083206001600160a01b03861684529091529020805460ff1916600117905561086f3390565b6001600160a01b0316826001600160a01b0316847f2f8788117e7eff1d82e926ec794901d17c78024a50270940304540a733656f0d60405160405180910390a450600161039a565b50600061039a565b60008281526007602090815260408083206001600160a01b038516845290915281205460ff16156108b75760008381526007602090815260408083206001600160a01b0386168085529252808320805460ff1916905551339286917ff6391f5c32d9c69d2a47ea670b442974b53935d1edc7fd64eb21e047a839171b9190a450600161039a565b6001600160a01b03821661097057600060405163ec442f0560e01b815260040161049c9190610fa8565b61074860008383610ae1565b6001600160a01b0384166109bf5760006040517fe602df0500000000000000000000000000000000000000000000000000000000815260040161049c9190610fa8565b6001600160a01b038316610a025760006040517f94280d6200000000000000000000000000000000000000000000000000000000815260040161049c9190610fa8565b6001600160a01b03808516600090815260016020908152604080832093871683529290522082905580156104ff57826001600160a01b0316846001600160a01b03167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92584604051610a739190610d6a565b60405180910390a350505050565b60008281526007602090815260408083206001600160a01b038516845290915290205460ff166107485780826040517fe2517d3f00000000000000000000000000000000000000000000000000000000815260040161049c929190610fde565b6001600160a01b038316610b0c578060026000828254610b01919061100f565b90915550610b849050565b6001600160a01b03831660009081526020819052604090205481811015610b65578381836040517fe450d38c00000000000000000000000000000000000000000000000000000000815260040161049c93929190610fb6565b6001600160a01b03841660009081526020819052604090209082900390555b6001600160a01b038216610ba057600280548290039055610bbf565b6001600160a01b03821660009081526020819052604090208054820190555b816001600160a01b0316836001600160a01b03167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef83604051610c029190610d6a565b60405180910390a3505050565b7fffffffff0000000000000000000000000000000000000000000000000000000081165b811461070f57600080fd5b803561039a81610c0f565b600060208284031215610c5e57610c5e600080fd5b6000610c6a8484610c3e565b949350505050565b8015155b82525050565b6020810161039a8284610c72565b60005b83811015610ca5578181015183820152602001610c8d565b50506000910152565b6000610cb8825190565b808452602084019350610ccf818560208601610c8a565b601f01601f19169290920192915050565b602080825281016104d38184610cae565b60006001600160a01b03821661039a565b610c3381610cf1565b803561039a81610d02565b80610c33565b803561039a81610d16565b60008060408385031215610d3d57610d3d600080fd5b6000610d498585610d0b565b9250506020610d5a85828601610d1c565b9150509250929050565b80610c76565b6020810161039a8284610d64565b600080600060608486031215610d9057610d90600080fd5b6000610d9c8686610d0b565b9350506020610dad86828701610d0b565b9250506040610dbe86828701610d1c565b9150509250925092565b600060208284031215610ddd57610ddd600080fd5b6000610c6a8484610d1c565b60008060408385031215610dff57610dff600080fd5b6000610e0b8585610d1c565b9250506020610d5a85828601610d0b565b60ff8116610c76565b6020810161039a8284610e1c565b600060208284031215610e4857610e48600080fd5b6000610c6a8484610d0b565b60008060408385031215610e6a57610e6a600080fd5b6000610e0b8585610d0b565b634e487b7160e01b600052602260045260246000fd5b600281046001821680610ea057607f821691505b602082108103610eb257610eb2610e76565b50919050565b60158152602081017f496e73756666696369656e742062616c616e63652e0000000000000000000000815290505b60200190565b6020808252810161039a81610eb8565b601f8152602081017f4e6f7420616c6c6f77656420746f2072656164207468652062616c616e63650081529050610ee6565b6020808252810161039a81610efc565b6020808252810161039a81602181527f4e6f7420616c6c6f77656420746f20726561642074686520616c6c6f77616e6360208201527f6500000000000000000000000000000000000000000000000000000000000000604082015260600190565b610c7681610cf1565b6020810161039a8284610f9f565b60608101610fc48286610f9f565b610fd16020830185610d64565b610c6a6040830184610d64565b60408101610fec8285610f9f565b6104d36020830184610d64565b634e487b7160e01b600052601160045260246000fd5b8082018082111561039a5761039a610ff956fea264697066735822122015a37e58522ca26bdd51e6ea23c5953be6e295684d318926ea7d989d6576fe1c64736f6c63430008150033a2646970667358221220f32fa9bbc81033e4c32c93807c57829cac33e49d74d4612615588dff6d00a05564736f6c63430008150033", } // EthereumBridgeABI is the input ABI used to generate the binding from. diff --git a/contracts/generated/GasConsumerBalance/GasConsumerBalance.go b/contracts/generated/GasConsumerBalance/GasConsumerBalance.go index 68455f7282..ec9ba7c492 100644 --- a/contracts/generated/GasConsumerBalance/GasConsumerBalance.go +++ b/contracts/generated/GasConsumerBalance/GasConsumerBalance.go @@ -32,7 +32,7 @@ var ( // GasConsumerBalanceMetaData contains all meta data concerning the GasConsumerBalance contract. var GasConsumerBalanceMetaData = &bind.MetaData{ ABI: "[{\"inputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"constructor\"},{\"inputs\":[],\"name\":\"destroy\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"get_balance\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"owner\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"_owner\",\"type\":\"address\"}],\"name\":\"resetOwner\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"}]", - Bin: "0x608060405234801561001057600080fd5b50600080546001600160a01b0319163317905561023c806100326000396000f3fe608060405234801561001057600080fd5b506004361061004c5760003560e01c806373cc802a1461005157806383197ef0146100a85780638da5cb5b146100b0578063c1cfb99a146100a6575b600080fd5b6100a661005f366004610185565b600080547fffffffffffffffffffffffff00000000000000000000000000000000000000001673ffffffffffffffffffffffffffffffffffffffff92909216919091179055565b005b6100a66100e6565b6000546100d09073ffffffffffffffffffffffffffffffffffffffff1681565b6040516100dd91906101bd565b60405180910390f35b60005473ffffffffffffffffffffffffffffffffffffffff163314610140576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610137906101cb565b60405180910390fd5b30ff5b600073ffffffffffffffffffffffffffffffffffffffff82165b92915050565b61016c81610143565b811461017757600080fd5b50565b803561015d81610163565b60006020828403121561019a5761019a600080fd5b60006101a6848461017a565b949350505050565b6101b781610143565b82525050565b6020810161015d82846101ae565b6020808252810161015d81601581527f596f7520617265206e6f7420746865206f776e6572000000000000000000000060208201526040019056fea26469706673582212200e31111a553d671d87128078e7cb05bffb77af15bb82d394b7cc2b0b873f75cb64736f6c63430008140033", + Bin: "0x608060405234801561001057600080fd5b50600080546001600160a01b0319163317905561023c806100326000396000f3fe608060405234801561001057600080fd5b506004361061004c5760003560e01c806373cc802a1461005157806383197ef0146100a85780638da5cb5b146100b0578063c1cfb99a146100a6575b600080fd5b6100a661005f366004610185565b600080547fffffffffffffffffffffffff00000000000000000000000000000000000000001673ffffffffffffffffffffffffffffffffffffffff92909216919091179055565b005b6100a66100e6565b6000546100d09073ffffffffffffffffffffffffffffffffffffffff1681565b6040516100dd91906101bd565b60405180910390f35b60005473ffffffffffffffffffffffffffffffffffffffff163314610140576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610137906101cb565b60405180910390fd5b30ff5b600073ffffffffffffffffffffffffffffffffffffffff82165b92915050565b61016c81610143565b811461017757600080fd5b50565b803561015d81610163565b60006020828403121561019a5761019a600080fd5b60006101a6848461017a565b949350505050565b6101b781610143565b82525050565b6020810161015d82846101ae565b6020808252810161015d81601581527f596f7520617265206e6f7420746865206f776e6572000000000000000000000060208201526040019056fea2646970667358221220b30748e6044bd6e6bd1865e299bdb154c2f030105056739fc4767cbf784e74fb64736f6c63430008150033", } // GasConsumerBalanceABI is the input ABI used to generate the binding from. diff --git a/contracts/generated/Logger/Logger.go b/contracts/generated/Logger/Logger.go index ad8e418274..483962e3c6 100644 --- a/contracts/generated/Logger/Logger.go +++ b/contracts/generated/Logger/Logger.go @@ -32,7 +32,7 @@ var ( // LoggerMetaData contains all meta data concerning the Logger contract. var LoggerMetaData = &bind.MetaData{ ABI: "[{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"string\",\"name\":\"message\",\"type\":\"string\"}],\"name\":\"LogMessage\",\"type\":\"event\"}]", - Bin: "0x6101af61003a600b82828239805160001a60731461002d57634e487b7160e01b600052600060045260246000fd5b30600052607381538281f3fe73000000000000000000000000000000000000000030146080604052600436106100355760003560e01c80632e3c2a4d1461003a575b600080fd5b81801561004657600080fd5b5061005a6100553660046100eb565b61005c565b005b7f96561394bac381230de4649200e8831afcab1f451881bbade9ef209f6dd30480828260405161008d92919061015f565b60405180910390a15050565b60008083601f8401126100ae576100ae600080fd5b50813567ffffffffffffffff8111156100c9576100c9600080fd5b6020830191508360018202830111156100e4576100e4600080fd5b9250929050565b6000806020838503121561010157610101600080fd5b823567ffffffffffffffff81111561011b5761011b600080fd5b61012785828601610099565b92509250509250929050565b82818337506000910152565b818352602083019250610153828483610133565b50601f01601f19160190565b6020808252810161017181848661013f565b94935050505056fea2646970667358221220fccf38bd7af76a75484caca7fe2ce8683fdbead8d5476c2ee93dbc825f85c56964736f6c63430008140033", + Bin: "0x6101af61003a600b82828239805160001a60731461002d57634e487b7160e01b600052600060045260246000fd5b30600052607381538281f3fe73000000000000000000000000000000000000000030146080604052600436106100355760003560e01c80632e3c2a4d1461003a575b600080fd5b81801561004657600080fd5b5061005a6100553660046100eb565b61005c565b005b7f96561394bac381230de4649200e8831afcab1f451881bbade9ef209f6dd30480828260405161008d92919061015f565b60405180910390a15050565b60008083601f8401126100ae576100ae600080fd5b50813567ffffffffffffffff8111156100c9576100c9600080fd5b6020830191508360018202830111156100e4576100e4600080fd5b9250929050565b6000806020838503121561010157610101600080fd5b823567ffffffffffffffff81111561011b5761011b600080fd5b61012785828601610099565b92509250509250929050565b82818337506000910152565b818352602083019250610153828483610133565b50601f01601f19160190565b6020808252810161017181848661013f565b94935050505056fea264697066735822122007133e6865990a286b3061b3149c23af2b18d81bea79f5ffd90ef8bcbf5c455264736f6c63430008150033", } // LoggerABI is the input ABI used to generate the binding from. diff --git a/contracts/generated/ManagementContract/ManagementContract.go b/contracts/generated/ManagementContract/ManagementContract.go index 017eaee461..e43de12773 100644 --- a/contracts/generated/ManagementContract/ManagementContract.go +++ b/contracts/generated/ManagementContract/ManagementContract.go @@ -62,7 +62,7 @@ type StructsValueTransferMessage struct { // ManagementContractMetaData contains all meta data concerning the ManagementContract contract. var ManagementContractMetaData = &bind.MetaData{ ABI: "[{\"inputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"constructor\"},{\"inputs\":[],\"name\":\"ECDSAInvalidSignature\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"length\",\"type\":\"uint256\"}],\"name\":\"ECDSAInvalidSignatureLength\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"s\",\"type\":\"bytes32\"}],\"name\":\"ECDSAInvalidSignatureS\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"InvalidInitialization\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"NotInitializing\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"}],\"name\":\"OwnableInvalidOwner\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"}],\"name\":\"OwnableUnauthorizedAccount\",\"type\":\"error\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"string\",\"name\":\"key\",\"type\":\"string\"},{\"indexed\":false,\"internalType\":\"address\",\"name\":\"newAddress\",\"type\":\"address\"}],\"name\":\"ImportantContractAddressUpdated\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"uint64\",\"name\":\"version\",\"type\":\"uint64\"}],\"name\":\"Initialized\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"address\",\"name\":\"messageBusAddress\",\"type\":\"address\"}],\"name\":\"LogManagementContractCreated\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"previousOwner\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"newOwner\",\"type\":\"address\"}],\"name\":\"OwnershipTransferred\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"bytes32\",\"name\":\"rollupHash\",\"type\":\"bytes32\"}],\"name\":\"RollupAdded\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"address\",\"name\":\"enclaveID\",\"type\":\"address\"}],\"name\":\"SequencerEnclaveGranted\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"address\",\"name\":\"enclaveID\",\"type\":\"address\"}],\"name\":\"SequencerEnclaveRevoked\",\"type\":\"event\"},{\"inputs\":[{\"components\":[{\"internalType\":\"bytes32\",\"name\":\"Hash\",\"type\":\"bytes32\"},{\"internalType\":\"bytes\",\"name\":\"Signature\",\"type\":\"bytes\"},{\"internalType\":\"uint256\",\"name\":\"LastSequenceNumber\",\"type\":\"uint256\"}],\"internalType\":\"structStructs.MetaRollup\",\"name\":\"r\",\"type\":\"tuple\"},{\"components\":[{\"components\":[{\"internalType\":\"address\",\"name\":\"sender\",\"type\":\"address\"},{\"internalType\":\"uint64\",\"name\":\"sequence\",\"type\":\"uint64\"},{\"internalType\":\"uint32\",\"name\":\"nonce\",\"type\":\"uint32\"},{\"internalType\":\"uint32\",\"name\":\"topic\",\"type\":\"uint32\"},{\"internalType\":\"bytes\",\"name\":\"payload\",\"type\":\"bytes\"},{\"internalType\":\"uint8\",\"name\":\"consistencyLevel\",\"type\":\"uint8\"}],\"internalType\":\"structStructs.CrossChainMessage[]\",\"name\":\"messages\",\"type\":\"tuple[]\"}],\"internalType\":\"structStructs.HeaderCrossChainData\",\"name\":\"\",\"type\":\"tuple\"}],\"name\":\"AddRollup\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"_addr\",\"type\":\"address\"}],\"name\":\"Attested\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"components\":[{\"internalType\":\"address\",\"name\":\"sender\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"receiver\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"},{\"internalType\":\"uint64\",\"name\":\"sequence\",\"type\":\"uint64\"}],\"internalType\":\"structStructs.ValueTransferMessage\",\"name\":\"_msg\",\"type\":\"tuple\"},{\"internalType\":\"bytes32[]\",\"name\":\"proof\",\"type\":\"bytes32[]\"},{\"internalType\":\"bytes32\",\"name\":\"root\",\"type\":\"bytes32\"}],\"name\":\"ExtractNativeValue\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"GetImportantContractKeys\",\"outputs\":[{\"internalType\":\"string[]\",\"name\":\"\",\"type\":\"string[]\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"rollupHash\",\"type\":\"bytes32\"}],\"name\":\"GetRollupByHash\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"},{\"components\":[{\"internalType\":\"bytes32\",\"name\":\"Hash\",\"type\":\"bytes32\"},{\"internalType\":\"bytes\",\"name\":\"Signature\",\"type\":\"bytes\"},{\"internalType\":\"uint256\",\"name\":\"LastSequenceNumber\",\"type\":\"uint256\"}],\"internalType\":\"structStructs.MetaRollup\",\"name\":\"\",\"type\":\"tuple\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"number\",\"type\":\"uint256\"}],\"name\":\"GetRollupByNumber\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"},{\"components\":[{\"internalType\":\"bytes32\",\"name\":\"Hash\",\"type\":\"bytes32\"},{\"internalType\":\"bytes\",\"name\":\"Signature\",\"type\":\"bytes\"},{\"internalType\":\"uint256\",\"name\":\"LastSequenceNumber\",\"type\":\"uint256\"}],\"internalType\":\"structStructs.MetaRollup\",\"name\":\"\",\"type\":\"tuple\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"number\",\"type\":\"uint256\"}],\"name\":\"GetUniqueForkID\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"},{\"components\":[{\"internalType\":\"bytes32\",\"name\":\"Hash\",\"type\":\"bytes32\"},{\"internalType\":\"bytes\",\"name\":\"Signature\",\"type\":\"bytes\"},{\"internalType\":\"uint256\",\"name\":\"LastSequenceNumber\",\"type\":\"uint256\"}],\"internalType\":\"structStructs.MetaRollup\",\"name\":\"\",\"type\":\"tuple\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"_addr\",\"type\":\"address\"}],\"name\":\"GrantSequencerEnclave\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"_enclaveID\",\"type\":\"address\"},{\"internalType\":\"bytes\",\"name\":\"_initSecret\",\"type\":\"bytes\"},{\"internalType\":\"string\",\"name\":\"_genesisAttestation\",\"type\":\"string\"}],\"name\":\"InitializeNetworkSecret\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"_addr\",\"type\":\"address\"}],\"name\":\"IsSequencerEnclave\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"IsWithdrawalAvailable\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"string\",\"name\":\"requestReport\",\"type\":\"string\"}],\"name\":\"RequestNetworkSecret\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"attesterID\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"requesterID\",\"type\":\"address\"},{\"internalType\":\"bytes\",\"name\":\"attesterSig\",\"type\":\"bytes\"},{\"internalType\":\"bytes\",\"name\":\"responseSecret\",\"type\":\"bytes\"},{\"internalType\":\"bool\",\"name\":\"verifyAttester\",\"type\":\"bool\"}],\"name\":\"RespondNetworkSecret\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"RetrieveAllBridgeFunds\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"_addr\",\"type\":\"address\"}],\"name\":\"RevokeSequencerEnclave\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"string\",\"name\":\"key\",\"type\":\"string\"},{\"internalType\":\"address\",\"name\":\"newAddress\",\"type\":\"address\"}],\"name\":\"SetImportantContractAddress\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"_lastBatchHash\",\"type\":\"bytes32\"},{\"internalType\":\"bytes32\",\"name\":\"blockHash\",\"type\":\"bytes32\"},{\"internalType\":\"uint256\",\"name\":\"blockNum\",\"type\":\"uint256\"},{\"internalType\":\"bytes[]\",\"name\":\"crossChainHashes\",\"type\":\"bytes[]\"},{\"internalType\":\"bytes\",\"name\":\"signature\",\"type\":\"bytes\"},{\"internalType\":\"uint256\",\"name\":\"rollupNumber\",\"type\":\"uint256\"},{\"internalType\":\"bytes32\",\"name\":\"forkID\",\"type\":\"bytes32\"}],\"name\":\"addCrossChainMessagesRoot\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"string\",\"name\":\"\",\"type\":\"string\"}],\"name\":\"importantContractAddresses\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"name\":\"importantContractKeys\",\"outputs\":[{\"internalType\":\"string\",\"name\":\"\",\"type\":\"string\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"initialize\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes[]\",\"name\":\"crossChainHashes\",\"type\":\"bytes[]\"}],\"name\":\"isBundleAvailable\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"}],\"name\":\"isBundleSaved\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"}],\"name\":\"isWithdrawalSpent\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"lastBatchHash\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"lastBatchSeqNo\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"merkleMessageBus\",\"outputs\":[{\"internalType\":\"contractIMerkleTreeMessageBus\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"messageBus\",\"outputs\":[{\"internalType\":\"contractIMessageBus\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"owner\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"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\"}]", - Bin: "0x608060405234801561001057600080fd5b5061001a3361001f565b610090565b7f9016d09d72d40fdae2fd8ceac6b6234c7706214fd39c1cd1e609a0528c19930080546001600160a01b031981166001600160a01b03848116918217845560405192169182907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e090600090a3505050565b614da480620000a06000396000f3fe60806040523480156200001157600080fd5b5060043610620002005760003560e01c80638129fc1c1162000119578063a25eb31c11620000af578063db5d91b1116200007a578063db5d91b114620004f9578063e34fbfc81462000528578063e874eb20146200053d578063f2fde38b146200055157600080fd5b8063a25eb31c14620004a3578063a4ab2faa14620004ba578063a52f433c14620004d1578063d4fab88714620004e257600080fd5b806387059edb11620000f057806387059edb14620004125780638da5cb5b146200042957806398077e86146200045a578063a1a227fa146200048057600080fd5b80638129fc1c14620003bb5780638236a7ba14620003c55780638415482614620003ec57600080fd5b806347665738116200019b5780636a30d26c11620001665780636a30d26c14620003775780636b9707d61462000390578063715018a614620003a75780637281099614620003b157600080fd5b806347665738146200030b5780635371a2161462000322578063568699c8146200033957806368e10383146200036057600080fd5b80632f0cb9e311620001dc5780632f0cb9e314620002575780633e60a22f146200028c57806343348b2f14620002d2578063440c953b146200030157600080fd5b80620ddd27146200020557806303e72e481462000227578063073b6ef31462000240575b600080fd5b6200020f600e5481565b6040516200021e919062001b7d565b60405180910390f35b6200023e6200023836600462001cd3565b62000568565b005b6200023e6200025136600462001e6e565b6200067b565b6200027d6200026836600462001f5b565b600c6020526000908152604090205460ff1681565b6040516200021e919062001f89565b620002c36200029d36600462001f99565b80516020818301810180516003825292820191909301209152546001600160a01b031681565b6040516200021e919062001fe5565b6200027d620002e336600462001ff5565b6001600160a01b031660009081526020819052604090205460ff1690565b6200020f60055481565b6200023e6200031c36600462001ff5565b62000899565b6200023e6200033336600462002088565b62000940565b620003506200034a36600462001f5b565b62000af6565b6040516200021e929190620021a4565b6200023e62000371366004620021c8565b62000b4f565b6200038162000bf8565b6040516200021e9190620022e9565b6200023e620003a136600462001ff5565b62000cdb565b6200023e62000d72565b6200023e62000d8a565b6200023e62000e15565b620003dc620003d636600462001f5b565b62000fff565b6040516200021e929190620022fc565b6200027d620003fd36600462001f5b565b600d6020526000908152604090205460ff1681565b620003dc6200042336600462001f5b565b620010ef565b7f9016d09d72d40fdae2fd8ceac6b6234c7706214fd39c1cd1e609a0528c199300546001600160a01b0316620002c3565b620004716200046b36600462001f5b565b62001169565b6040516200021e91906200230c565b600a5462000494906001600160a01b031681565b6040516200021e919062002369565b6200023e620004b4366004620023a7565b6200121e565b6200027d620004cb36600462002419565b62001334565b600454610100900460ff166200027d565b6200023e620004f336600462002470565b620013c6565b6200027d6200050a36600462001ff5565b6001600160a01b031660009081526001602052604090205460ff1690565b6200023e620005393660046200252e565b5050565b600b5462000494906001600160a01b031681565b6200023e6200056236600462001ff5565b620014af565b620005726200150d565b60006001600160a01b03166003836040516200058f9190620025a1565b908152604051908190036020019020546001600160a01b031603620005ee57600280546001810182556000919091527f405787fa12a823e0f2b7631cc41b3ba8828b3321ca811111fa75cd3aa3bb5ace01620005ec838262002691565b505b80600383604051620006019190620025a1565b90815260405190819003602001812080546001600160a01b039390931673ffffffffffffffffffffffffffffffffffffffff19909316929092179091557f17b2f9f5748931099ffee882b5b64f4a560b5c55da9b4f4e396dae3bb9f98cb5906200066f90849084906200275e565b60405180910390a15050565b6000828152600860205260409020548114620006b45760405162461bcd60e51b8152600401620006ab90620027b5565b60405180910390fd5b60006200072689898989604051602001620006d3949392919062002825565b6040516020818303038152906040528051906020012086868080601f0160208091040260200160405190810160405280939291908181526020018383808284376000920191909152506200158592505050565b6001600160a01b03811660009081526020819052604090205490915060ff16620007645760405162461bcd60e51b8152600401620006ab90620028a4565b600e8990556000805b87518110156200087457600b5488516001600160a01b039091169063b6aed0cb908a9084908110620007a357620007a3620028b6565b6020026020010151620007b690620028d7565b426040518363ffffffff1660e01b8152600401620007d692919062002911565b600060405180830381600087803b158015620007f157600080fd5b505af115801562000806573d6000803e3d6000fd5b5050505081888281518110620008205762000820620028b6565b60200260200101516200083390620028d7565b6040516020016200084692919062002911565b60405160208183030381529060405280519060200120915080806200086b9062002946565b9150506200076d565b506000908152600d60205260409020805460ff19166001179055505050505050505050565b620008a36200150d565b6001600160a01b03811660009081526020819052604090205460ff16620008de5760405162461bcd60e51b8152600401620006ab90620028a4565b6001600160a01b038116600090815260016020819052604091829020805460ff19169091179055517ffe64c7181f0fc60e300dc02cca368cdfa94d7ca45902de3b9a9d80070e760936906200093590839062001fe5565b60405180910390a150565b600b546040517fb201246f0000000000000000000000000000000000000000000000000000000081526001600160a01b039091169063b201246f906200099190879087908790879060040162002a9b565b60006040518083038186803b158015620009aa57600080fd5b505afa158015620009bf573d6000803e3d6000fd5b50505050600084604051602001620009d8919062002ada565b60408051601f1981840301815291815281516020928301206000818152600c90935291205490915060ff161562000a235760405162461bcd60e51b8152600401620006ab9062002b1d565b6001600c60008760405160200162000a3c919062002ada565b60408051808303601f190181529181528151602092830120835282820193909352908201600020805460ff191693151593909317909255600a546001600160a01b0316916399a3ad219162000a979190890190890162001ff5565b87604001356040518363ffffffff1660e01b815260040162000abb92919062002b2f565b600060405180830381600087803b15801562000ad657600080fd5b505af115801562000aeb573d6000803e3d6000fd5b505050505050505050565b60408051606080820183526000808352602083019190915291810182905260008062000b2285620010ef565b915091508162000b385760009590945092505050565b600094855260086020526040909420549492505050565b60045460ff161562000b755760405162461bcd60e51b8152600401620006ab9062002b99565b60048054600160ff1991821681179092556001600160a01b0387166000908152602081815260408083208054851686179055908490529081902080549092169092179055517ffe64c7181f0fc60e300dc02cca368cdfa94d7ca45902de3b9a9d80070e7609369062000be990879062001fe5565b60405180910390a15050505050565b60606002805480602002602001604051908101604052809291908181526020016000905b8282101562000cd257838290600052602060002001805462000c3e90620025c3565b80601f016020809104026020016040519081016040528092919081815260200182805462000c6c90620025c3565b801562000cbd5780601f1062000c915761010080835404028352916020019162000cbd565b820191906000526020600020905b81548152906001019060200180831162000c9f57829003601f168201915b50505050508152602001906001019062000c1c565b50505050905090565b62000ce56200150d565b6001600160a01b03811660009081526001602052604090205460ff1662000d205760405162461bcd60e51b8152600401620006ab9062002bde565b6001600160a01b03811660009081526001602052604090819020805460ff19169055517f0f279980343c7ca542fde9fa5396555068efb5cd560d9cf9c191aa2911079b47906200093590839062001fe5565b62000d7c6200150d565b62000d886000620015b5565b565b62000d946200150d565b600a546040517f36d2da900000000000000000000000000000000000000000000000000000000081526001600160a01b03909116906336d2da909062000ddf90339060040162001fe5565b600060405180830381600087803b15801562000dfa57600080fd5b505af115801562000e0f573d6000803e3d6000fd5b50505050565b7ff0c57e16840df040f15088dc2f81fe391c3923bec73e23a9662efc9c229c6a00805468010000000000000000810460ff16159067ffffffffffffffff1660008115801562000e615750825b905060008267ffffffffffffffff16600114801562000e7f5750303b155b90508115801562000e8e575080155b1562000ec6576040517ff92ee8a900000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b845467ffffffffffffffff19166001178555831562000efb57845468ff00000000000000001916680100000000000000001785555b62000f063362001633565b6000600555600160095560405162000f1e9062001b67565b604051809103906000f08015801562000f3b573d6000803e3d6000fd5b50600b80546001600160a01b039290921673ffffffffffffffffffffffffffffffffffffffff199283168117909155600a805490921681179091556040517fbd726cf82ac9c3260b1495107182e336e0654b25c10915648c0cc15b2bb72cbf9162000fa69162001fe5565b60405180910390a1831562000ff857845468ff0000000000000000191685556040517fc7f505b2f371ae2175ee4913f4499e1f2633a7b5936321eed1cdaeb6115181d29062000be99060019062002c0e565b5050505050565b6040805160608082018352600080835260208084018390528385018290528582526006815284822085519384019095528454835260018501805492958694939092840191906200104f90620025c3565b80601f01602080910402602001604051908101604052809291908181526020018280546200107d90620025c3565b8015620010ce5780601f10620010a257610100808354040283529160200191620010ce565b820191906000526020600020905b815481529060010190602001808311620010b057829003601f168201915b50505091835250506002919091015460209091015280519094149492505050565b604080516060808201835260008083526020830191909152918101829052600083815260076020526040812054908190036200115457505060408051606081018252600080825282516020818101855282825283015291810182905290939092509050565b6200115f8162000fff565b9250925050915091565b600281815481106200117a57600080fd5b9060005260206000200160009150905080546200119790620025c3565b80601f0160208091040260200160405190810160405280929190818152602001828054620011c590620025c3565b8015620012165780601f10620011ea5761010080835404028352916020019162001216565b820191906000526020600020905b815481529060010190602001808311620011f857829003601f168201915b505050505081565b600062001270833562001235602086018662002c1e565b8080601f0160208091040260200160405190810160405280939291908181526020018383808284376000920191909152506200158592505050565b6001600160a01b03811660009081526020819052604090205490915060ff16620012ae5760405162461bcd60e51b8152600401620006ab90620028a4565b6001600160a01b03811660009081526001602052604090205460ff16620012e95760405162461bcd60e51b8152600401620006ab9062002bde565b620012f48362001648565b6040517fd6555bff8670bd3008dc064c30bb56d6ac7cb14ae801e36146fe4e7c6a504a5890620013279085359062001b7d565b60405180910390a1505050565b600080805b8351811015620013ad5781848281518110620013595762001359620028b6565b60200260200101516200136c90620028d7565b6040516020016200137f92919062002911565b6040516020818303038152906040528051906020012091508080620013a49062002946565b91505062001339565b506000908152600d602052604090205460ff1692915050565b6001600160a01b03851660009081526020819052604090205460ff1680620014025760405162461bcd60e51b8152600401620006ab9062002cd2565b8115620014845760006200143b878786604051602001620014269392919062002d13565b604051602081830303815290604052620016f5565b905060006200144b828762001585565b9050876001600160a01b0316816001600160a01b031614620014815760405162461bcd60e51b8152600401620006ab9062002d96565b50505b5050506001600160a01b039091166000908152602081905260409020805460ff191660011790555050565b620014b96200150d565b6001600160a01b038116620014ff5760006040517f1e4fbdf7000000000000000000000000000000000000000000000000000000008152600401620006ab919062001fe5565b6200150a81620015b5565b50565b33620015407f9016d09d72d40fdae2fd8ceac6b6234c7706214fd39c1cd1e609a0528c199300546001600160a01b031690565b6001600160a01b03161462000d8857336040517f118cdaa7000000000000000000000000000000000000000000000000000000008152600401620006ab919062001fe5565b60008060008062001597868662001734565b925092509250620015a9828262001785565b50909150505b92915050565b7f9016d09d72d40fdae2fd8ceac6b6234c7706214fd39c1cd1e609a0528c199300805473ffffffffffffffffffffffffffffffffffffffff1981166001600160a01b03848116918217845560405192169182907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e090600090a3505050565b6200163d6200189b565b6200150a8162001903565b80356000908152600660205260409020819062001666828262002f39565b505060095460009081526007602052604090208135908190556200168c60014362002f45565b40604051602001620016a092919062002911565b60408051601f198184030181529181528151602092830120600980546000908152600890945291832055805491620016d88362002946565b9190505550600554816040013511156200150a5760400135600555565b60006200170382516200190d565b826040516020016200171792919062002f5b565b604051602081830303815290604052805190602001209050919050565b60008060008351604103620017725760208401516040850151606086015160001a6200176388828585620019b5565b9550955095505050506200177e565b50508151600091506002905b9250925092565b60008260038111156200179c576200179c62002f9b565b03620017a6575050565b6001826003811115620017bd57620017bd62002f9b565b03620017f5576040517ff645eedf00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b60028260038111156200180c576200180c62002f9b565b0362001848576040517ffce698f7000000000000000000000000000000000000000000000000000000008152620006ab90829060040162001b7d565b60038260038111156200185f576200185f62002f9b565b036200053957806040517fd78bce0c000000000000000000000000000000000000000000000000000000008152600401620006ab919062001b7d565b7ff0c57e16840df040f15088dc2f81fe391c3923bec73e23a9662efc9c229c6a005468010000000000000000900460ff1662000d88576040517fd7e6bcf800000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b620014b96200189b565b606060006200191c8362001a7e565b600101905060008167ffffffffffffffff8111156200193f576200193f62001b8d565b6040519080825280601f01601f1916602001820160405280156200196a576020820181803683370190505b5090508181016020015b600019017f3031323334353637383961626364656600000000000000000000000000000000600a86061a8153600a850494508462001974575b509392505050565b600080807f7fffffffffffffffffffffffffffffff5d576e7357a4501ddfe92f46681b20a0841115620019f2575060009150600390508262001a74565b60006001888888886040516000815260200160405260405162001a19949392919062002fbb565b6020604051602081039080840390855afa15801562001a3c573d6000803e3d6000fd5b5050604051601f1901519150506001600160a01b03811662001a6a5750600092506001915082905062001a74565b9250600091508190505b9450945094915050565b6000807a184f03e93ff9f4daa797ed6e38ed64bf6a1f010000000000000000831062001ac8577a184f03e93ff9f4daa797ed6e38ed64bf6a1f010000000000000000830492506040015b6d04ee2d6d415b85acef8100000000831062001af5576d04ee2d6d415b85acef8100000000830492506020015b662386f26fc10000831062001b1457662386f26fc10000830492506010015b6305f5e100831062001b2d576305f5e100830492506008015b612710831062001b4257612710830492506004015b6064831062001b55576064830492506002015b600a8310620015af5760010192915050565b611d768062002ff983390190565b805b82525050565b60208101620015af828462001b75565b634e487b7160e01b600052604160045260246000fd5b601f19601f830116810181811067ffffffffffffffff8211171562001bcc5762001bcc62001b8d565b6040525050565b600062001bdf60405190565b905062001bed828262001ba3565b919050565b600067ffffffffffffffff82111562001c0f5762001c0f62001b8d565b601f19601f83011660200192915050565b82818337506000910152565b600062001c4362001c3d8462001bf2565b62001bd3565b90508281526020810184848401111562001c605762001c60600080fd5b620019ad84828562001c20565b600082601f83011262001c835762001c83600080fd5b813562001c9584826020860162001c2c565b949350505050565b60006001600160a01b038216620015af565b62001cba8162001c9d565b81146200150a57600080fd5b8035620015af8162001caf565b6000806040838503121562001ceb5762001ceb600080fd5b823567ffffffffffffffff81111562001d075762001d07600080fd5b62001d158582860162001c6d565b925050602062001d288582860162001cc6565b9150509250929050565b8062001cba565b8035620015af8162001d32565b600067ffffffffffffffff82111562001d635762001d6362001b8d565b5060209081020190565b600062001d7e62001c3d8462001d46565b8381529050602080820190840283018581111562001d9f5762001d9f600080fd5b835b8181101562001de457803567ffffffffffffffff81111562001dc65762001dc6600080fd5b850162001dd4888262001c6d565b8452506020928301920162001da1565b5050509392505050565b600082601f83011262001e045762001e04600080fd5b813562001c9584826020860162001d6d565b60008083601f84011262001e2d5762001e2d600080fd5b50813567ffffffffffffffff81111562001e4a5762001e4a600080fd5b60208301915083600182028301111562001e675762001e67600080fd5b9250929050565b60008060008060008060008060e0898b03121562001e8f5762001e8f600080fd5b600062001e9d8b8b62001d39565b985050602062001eb08b828c0162001d39565b975050604062001ec38b828c0162001d39565b965050606089013567ffffffffffffffff81111562001ee55762001ee5600080fd5b62001ef38b828c0162001dee565b955050608089013567ffffffffffffffff81111562001f155762001f15600080fd5b62001f238b828c0162001e16565b945094505060a062001f388b828c0162001d39565b92505060c062001f4b8b828c0162001d39565b9150509295985092959890939650565b60006020828403121562001f725762001f72600080fd5b600062001c95848462001d39565b80151562001b77565b60208101620015af828462001f80565b60006020828403121562001fb05762001fb0600080fd5b813567ffffffffffffffff81111562001fcc5762001fcc600080fd5b62001c958482850162001c6d565b62001b778162001c9d565b60208101620015af828462001fda565b6000602082840312156200200c576200200c600080fd5b600062001c95848462001cc6565b600060808284031215620020315762002031600080fd5b50919050565b60008083601f8401126200204e576200204e600080fd5b50813567ffffffffffffffff8111156200206b576200206b600080fd5b60208301915083602082028301111562001e675762001e67600080fd5b60008060008060c08587031215620020a357620020a3600080fd5b6000620020b187876200201a565b945050608085013567ffffffffffffffff811115620020d357620020d3600080fd5b620020e18782880162002037565b935093505060a0620020f68782880162001d39565b91505092959194509250565b60005b838110156200211f57818101518382015260200162002105565b50506000910152565b600062002133825190565b8084526020840193506200214c81856020860162002102565b601f01601f19169290920192915050565b8051600090606084019062002173858262001b75565b50602083015184820360208601526200218d828262002128565b9150506040830151620019ad604086018262001b75565b60408101620021b4828562001b75565b818103602083015262001c9581846200215d565b600080600080600060608688031215620021e557620021e5600080fd5b6000620021f3888862001cc6565b955050602086013567ffffffffffffffff811115620022155762002215600080fd5b620022238882890162001e16565b9450945050604086013567ffffffffffffffff811115620022475762002247600080fd5b620022558882890162001e16565b92509250509295509295909350565b600062002272838362002128565b9392505050565b60200190565b60006200228a825190565b80845260208401935083602082028501620022a58560200190565b60005b84811015620022dd5783830388528151620022c4848262002264565b93505060208201602098909801979150600101620022a8565b50909695505050505050565b602080825281016200227281846200227f565b60408101620021b4828562001f80565b6020808252810162002272818462002128565b6000620015af6001600160a01b03831662002338565b90565b6001600160a01b031690565b6000620015af826200231f565b6000620015af8262002344565b62001b778162002351565b60208101620015af82846200235e565b600060608284031215620020315762002031600080fd5b600060208284031215620020315762002031600080fd5b60008060408385031215620023bf57620023bf600080fd5b823567ffffffffffffffff811115620023db57620023db600080fd5b620023e98582860162002379565b925050602083013567ffffffffffffffff8111156200240b576200240b600080fd5b62001d288582860162002390565b600060208284031215620024305762002430600080fd5b813567ffffffffffffffff8111156200244c576200244c600080fd5b62001c958482850162001dee565b80151562001cba565b8035620015af816200245a565b600080600080600060a086880312156200248d576200248d600080fd5b60006200249b888862001cc6565b9550506020620024ae8882890162001cc6565b945050604086013567ffffffffffffffff811115620024d057620024d0600080fd5b620024de8882890162001c6d565b935050606086013567ffffffffffffffff811115620025005762002500600080fd5b6200250e8882890162001c6d565b9250506080620025218882890162002463565b9150509295509295909350565b60008060208385031215620025465762002546600080fd5b823567ffffffffffffffff811115620025625762002562600080fd5b620025708582860162001e16565b92509250509250929050565b600062002587825190565b6200259781856020860162002102565b9290920192915050565b620015af81836200257c565b634e487b7160e01b600052602260045260246000fd5b600281046001821680620025d857607f821691505b602082108103620020315762002031620025ad565b6000620015af620023358381565b6200260683620025ed565b815460001960089490940293841b1916921b91909117905550565b600062002630818484620025fb565b505050565b8181101562000539576200264b60008262002621565b60010162002635565b601f82111562002630576000818152602090206020601f850104810160208510156200267d5750805b62000ff86020601f86010483018262002635565b815167ffffffffffffffff811115620026ae57620026ae62001b8d565b620026ba8254620025c3565b620026c782828562002654565b506020601f821160018114620026ff5760008315620026e65750848201515b600019600885021c198116600285021785555062000ff8565b600084815260208120601f198516915b828110156200273157878501518255602094850194600190920191016200270f565b50848210156200274f5783870151600019601f87166008021c191681555b50505050600202600101905550565b6040808252810162002771818562002128565b905062002272602083018462001fda565b600e8152602081017f496e76616c696420666f726b49440000000000000000000000000000000000008152905062002279565b60208082528101620015af8162002782565b6000620027d2825190565b80845260208401935083602082028501620027ed8560200190565b60005b84811015620022dd57838303885281516200280c848262002264565b93505060208201602098909801979150600101620027f0565b6080810162002835828762001b75565b62002844602083018662001b75565b62002853604083018562001b75565b8181036060830152620028678184620027c7565b9695505050505050565b60168152602081017f656e636c6176654944206e6f74206174746573746564000000000000000000008152905062002279565b60208082528101620015af8162002871565b634e487b7160e01b600052603260045260246000fd5b6000620015af825190565b6000620028e2825190565b60208301620028f181620028cc565b925050602081101562002031576000196020919091036008021b16919050565b6040810162002921828562001b75565b62002272602083018462001b75565b634e487b7160e01b600052601160045260246000fd5b6000600182016200295b576200295b62002930565b5060010190565b506000620015af602083018362001cc6565b506000620015af602083018362001d39565b67ffffffffffffffff811662001cba565b8035620015af8162002986565b506000620015af602083018362002997565b67ffffffffffffffff811662001b77565b620029d3818062002962565b620029df838262001fda565b50620029ef602082018262002962565b620029fe602084018262001fda565b5062002a0e604082018262002974565b62002a1d604084018262001b75565b5062002a2d6060820182620029a4565b620026306060840182620029b6565b82818337505050565b81835260208301925060007f07ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff83111562002a825762002a82600080fd5b60208302925062002a9583858462002a3c565b50500190565b60c0810162002aab8287620029c7565b818103608083015262002ac081858762002a45565b905062002ad160a083018462001b75565b95945050505050565b60808101620015af8284620029c7565b60188152602081017f7769746864726177616c20616c7265616479207370656e7400000000000000008152905062002279565b60208082528101620015af8162002aea565b6040810162002921828562001fda565b60228152602081017f6e6574776f726b2073656372657420616c726561647920696e697469616c697a81527f6564000000000000000000000000000000000000000000000000000000000000602082015290505b60400190565b60208082528101620015af8162002b3f565b60198152602081017f656e636c6176654944206e6f7420612073657175656e636572000000000000008152905062002279565b60208082528101620015af8162002bab565b600067ffffffffffffffff8216620015af565b62001b778162002bf0565b60208101620015af828462002c03565b6000808335601e193685900301811262002c3b5762002c3b600080fd5b8301915050803567ffffffffffffffff81111562002c5c5762002c5c600080fd5b60208201915060018102360382131562001e675762001e67600080fd5b60238152602081017f726573706f6e64696e67206174746573746572206973206e6f7420617474657381527f74656400000000000000000000000000000000000000000000000000000000006020820152905062002b93565b60208082528101620015af8162002c79565b6000620015af8260601b90565b6000620015af8262002ce4565b62001b7762002d0d8262001c9d565b62002cf1565b62002d1f818562002cfe565b60140162002d2e818462002cfe565b60140162001c9581836200257c565b602c8152602081017f63616c63756c61746564206164647265737320616e642061747465737465724981527f4420646f6e74206d6174636800000000000000000000000000000000000000006020820152905062002b93565b60208082528101620015af8162002d3d565b60008135620015af8162001d32565b600081620015af565b62002dcb8262002db7565b62002dda620023358262002db7565b8255505050565b8267ffffffffffffffff81111562002dfd5762002dfd62001b8d565b62002e098254620025c3565b62002e1682828562002654565b506000601f82116001811462002e4e576000831562002e355750848201355b600019600885021c198116600285021785555062002eab565b600084815260209020601f19841690835b8281101562002e81578785013582556020948501946001909201910162002e5f565b508482101562002e9f57600019601f86166008021c19848801351681555b50506001600284020184555b505050505050565b6200263083838362002de1565b62002ecb82620025ed565b8062002dda565b80828062002ee08162002da8565b905062002eee818462002dc0565b505050600181016020830162002f05818562002c1e565b915062002f1482828562002eb3565b50505060028101604083018062002f2b8262002da8565b905062000ff8818462002ec0565b62000539828262002ed2565b81810381811115620015af57620015af62002930565b7f19457468657265756d205369676e6564204d6573736167653a0a0000000000008152601a0162002f8d81846200257c565b90506200227281836200257c565b634e487b7160e01b600052602160045260246000fd5b60ff811662001b77565b6080810162002fcb828762001b75565b62002fda602083018662002fb1565b62002fe9604083018562001b75565b62002ad1606083018462001b7556fe60806040523480156200001157600080fd5b50338062000040576000604051631e4fbdf760e01b8152600401620000379190620000c6565b60405180910390fd5b6200004b8162000052565b50620000d6565b600080546001600160a01b038381166001600160a01b0319831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b60006001600160a01b0382165b92915050565b620000c081620000a2565b82525050565b60208101620000af8284620000b5565b611c9080620000e66000396000f3fe6080604052600436106100e15760003560e01c80639730886d1161007f578063b201246f11610059578063b201246f146102d4578063b6aed0cb146102f4578063e138a8d214610314578063f2fde38b1461033457610155565b80639730886d1461026757806399a3ad2114610287578063b1454caa146102a757610155565b8063346633fb116100bb578063346633fb146101f957806336d2da901461020c578063715018a61461022c5780638da5cb5b1461024157610155565b80630fcfbd11146101765780630fe9188e146101ac57806333a88c72146101cc57610155565b36610155576040517f346633fb000000000000000000000000000000000000000000000000000000008152309063346633fb9034906101269033908390600401610bea565b6000604051808303818588803b15801561013f57600080fd5b505af1158015610153573d6000803e3d6000fd5b005b60405162461bcd60e51b815260040161016d90610c39565b60405180910390fd5b34801561018257600080fd5b50610196610191366004610c64565b610354565b6040516101a39190610c9f565b60405180910390f35b3480156101b857600080fd5b506101536101c7366004610cc5565b6103b4565b3480156101d857600080fd5b506101ec6101e7366004610c64565b6103fa565b6040516101a39190610cee565b610153610207366004610d10565b61044d565b34801561021857600080fd5b50610153610227366004610d4d565b6104d7565b34801561023857600080fd5b50610153610556565b34801561024d57600080fd5b506000546001600160a01b03166040516101a39190610d6e565b34801561027357600080fd5b50610153610282366004610d7c565b61056a565b34801561029357600080fd5b506101536102a2366004610d10565b610666565b3480156102b357600080fd5b506102c76102c2366004610e35565b6106e6565b6040516101a39190610ec9565b3480156102e057600080fd5b506101536102ef366004610f37565b61073f565b34801561030057600080fd5b5061015361030f366004610fa7565b610840565b34801561032057600080fd5b5061015361032f366004610fc9565b610886565b34801561034057600080fd5b5061015361034f366004610d4d565b6109c9565b6000808260405160200161036891906111e6565b60408051601f19818403018152918152815160209283012060008181526001909352912054909150806103ad5760405162461bcd60e51b815260040161016d90611235565b9392505050565b6103bc610a20565b60008181526004602052604081205490036103e95760405162461bcd60e51b815260040161016d90611277565b600090815260046020526040812055565b6000808260405160200161040e91906111e6565b60408051601f1981840301815291815281516020928301206000818152600190935291205490915080158015906104455750428111155b949350505050565b60003411801561045c57508034145b6104785760405162461bcd60e51b815260040161016d906112df565b600061048333610a66565b9050826001600160a01b0316336001600160a01b03167f50c536ac33a920f00755865b831d17bf4cff0b2e0345f65b16d52bfc004068b634846040516104ca9291906112ef565b60405180910390a3505050565b6104df610a20565b6000816001600160a01b03164760405160006040518083038185875af1925050503d806000811461052c576040519150601f19603f3d011682016040523d82523d6000602084013e610531565b606091505b50509050806105525760405162461bcd60e51b815260040161016d9061133c565b5050565b61055e610a20565b6105686000610ac4565b565b610572610a20565b600061057e8242611362565b905060008360405160200161059391906111e6565b60408051601f19818403018152918152815160209283012060008181526001909352912054909150156105d85760405162461bcd60e51b815260040161016d906113cd565b60008181526001602090815260408220849055600291906105fb90870187610d4d565b6001600160a01b03168152602081019190915260400160009081209061062760808701606088016113dd565b63ffffffff1681526020808201929092526040016000908120805460018101825590825291902085916004020161065e8282611844565b505050505050565b61066e610a20565b6000826001600160a01b03168260405160006040518083038185875af1925050503d80600081146106bb576040519150601f19603f3d011682016040523d82523d6000602084013e6106c0565b606091505b50509050806106e15760405162461bcd60e51b815260040161016d9061133c565b505050565b60006106f133610a66565b90507fb93c37389233beb85a3a726c3f15c2d15533ee74cb602f20f490dfffef7759373382888888888860405161072e979695949392919061184e565b60405180910390a195945050505050565b600081815260046020526040812054900361076c5760405162461bcd60e51b815260040161016d90611909565b60008181526004602052604090205442101561079a5760405162461bcd60e51b815260040161016d90611955565b6000846040516020016107ad91906119da565b604051602081830303815290604052805190602001206040516020016107d39190611a1a565b60405160208183030381529060405280519060200120905061081d848484846040516020016108029190611a39565b60405160208183030381529060405280519060200120610b2c565b6108395760405162461bcd60e51b815260040161016d90611aa3565b5050505050565b610848610a20565b600082815260046020526040902054156108745760405162461bcd60e51b815260040161016d90611b0b565b60009182526004602052604090912055565b60008181526004602052604081205490036108b35760405162461bcd60e51b815260040161016d90611909565b6000818152600460205260409020544210156108e15760405162461bcd60e51b815260040161016d90611955565b60006108f06020860186610d4d565b6109006040870160208801611b1b565b61091060608801604089016113dd565b6109206080890160608a016113dd565b61092d60808a018a611556565b61093d60c08c0160a08d01611b3c565b604051602001610953979695949392919061184e565b60405160208183030381529060405280519060200120905060008160405160200161097e9190611b8f565b6040516020818303038152906040528051906020012090506109ad858585846040516020016108029190611a39565b61065e5760405162461bcd60e51b815260040161016d90611bf7565b6109d1610a20565b6001600160a01b038116610a145760006040517f1e4fbdf700000000000000000000000000000000000000000000000000000000815260040161016d9190610d6e565b610a1d81610ac4565b50565b6000546001600160a01b0316331461056857336040517f118cdaa700000000000000000000000000000000000000000000000000000000815260040161016d9190610d6e565b6001600160a01b0381166000908152600360205260408120805467ffffffffffffffff169160019190610a998385611c07565b92506101000a81548167ffffffffffffffff021916908367ffffffffffffffff160217905550919050565b600080546001600160a01b038381167fffffffffffffffffffffffff0000000000000000000000000000000000000000831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b600082610b3a868685610b44565b1495945050505050565b600081815b84811015610b8757610b7382878784818110610b6757610b67611c2b565b90506020020135610b90565b915080610b7f81611c41565b915050610b49565b50949350505050565b6000818310610bac576000828152602084905260409020610bbb565b60008381526020839052604090205b90505b92915050565b60006001600160a01b038216610bbe565b610bde81610bc4565b82525050565b80610bde565b60408101610bf88285610bd5565b6103ad6020830184610be4565b600b8152602081017f756e737570706f72746564000000000000000000000000000000000000000000815290505b60200190565b60208082528101610bbe81610c05565b600060c08284031215610c5e57610c5e600080fd5b50919050565b600060208284031215610c7957610c79600080fd5b813567ffffffffffffffff811115610c9357610c93600080fd5b61044584828501610c49565b60208101610bbe8284610be4565b805b8114610a1d57600080fd5b8035610bbe81610cad565b600060208284031215610cda57610cda600080fd5b60006104458484610cba565b801515610bde565b60208101610bbe8284610ce6565b610caf81610bc4565b8035610bbe81610cfc565b60008060408385031215610d2657610d26600080fd5b6000610d328585610d05565b9250506020610d4385828601610cba565b9150509250929050565b600060208284031215610d6257610d62600080fd5b60006104458484610d05565b60208101610bbe8284610bd5565b60008060408385031215610d9257610d92600080fd5b823567ffffffffffffffff811115610dac57610dac600080fd5b610d3285828601610c49565b63ffffffff8116610caf565b8035610bbe81610db8565b60008083601f840112610de457610de4600080fd5b50813567ffffffffffffffff811115610dff57610dff600080fd5b602083019150836001820283011115610e1a57610e1a600080fd5b9250929050565b60ff8116610caf565b8035610bbe81610e21565b600080600080600060808688031215610e5057610e50600080fd5b6000610e5c8888610dc4565b9550506020610e6d88828901610dc4565b945050604086013567ffffffffffffffff811115610e8d57610e8d600080fd5b610e9988828901610dcf565b93509350506060610eac88828901610e2a565b9150509295509295909350565b67ffffffffffffffff8116610bde565b60208101610bbe8284610eb9565b600060808284031215610c5e57610c5e600080fd5b60008083601f840112610f0157610f01600080fd5b50813567ffffffffffffffff811115610f1c57610f1c600080fd5b602083019150836020820283011115610e1a57610e1a600080fd5b60008060008060c08587031215610f5057610f50600080fd5b6000610f5c8787610ed7565b945050608085013567ffffffffffffffff811115610f7c57610f7c600080fd5b610f8887828801610eec565b935093505060a0610f9b87828801610cba565b91505092959194509250565b60008060408385031215610fbd57610fbd600080fd5b6000610d328585610cba565b60008060008060608587031215610fe257610fe2600080fd5b843567ffffffffffffffff811115610ffc57610ffc600080fd5b61100887828801610c49565b945050602085013567ffffffffffffffff81111561102857611028600080fd5b61103487828801610eec565b93509350506040610f9b87828801610cba565b506000610bbe6020830183610d05565b67ffffffffffffffff8116610caf565b8035610bbe81611057565b506000610bbe6020830183611067565b506000610bbe6020830183610dc4565b63ffffffff8116610bde565b6000808335601e19368590030181126110b9576110b9600080fd5b830160208101925035905067ffffffffffffffff8111156110dc576110dc600080fd5b36819003821315610e1a57610e1a600080fd5b82818337506000910152565b81835260208301925061110f8284836110ef565b50601f01601f19160190565b506000610bbe6020830183610e2a565b60ff8116610bde565b600060c083016111448380611047565b61114e8582610bd5565b5061115c6020840184611072565b6111696020860182610eb9565b506111776040840184611082565b6111846040860182611092565b506111926060840184611082565b61119f6060860182611092565b506111ad608084018461109e565b85830360808701526111c08382846110fb565b925050506111d160a084018461111b565b6111de60a086018261112b565b509392505050565b60208082528101610bbb8184611134565b60218152602081017f54686973206d65737361676520776173206e65766572207375626d69747465648152601760f91b602082015290505b60400190565b60208082528101610bbe816111f7565b601a8152602081017f537461746520726f6f7420646f6573206e6f742065786973742e00000000000081529050610c33565b60208082528101610bbe81611245565b60308152602081017f417474656d7074696e6720746f2073656e642076616c756520776974686f757481527f2070726f766964696e67204574686572000000000000000000000000000000006020820152905061122f565b60208082528101610bbe81611287565b604081016112fd8285610be4565b6103ad6020830184610eb9565b60148152602081017f6661696c65642073656e64696e672076616c756500000000000000000000000081529050610c33565b60208082528101610bbe8161130a565b634e487b7160e01b600052601160045260246000fd5b80820180821115610bbe57610bbe61134c565b60218152602081017f4d657373616765207375626d6974746564206d6f7265207468616e206f6e636581527f21000000000000000000000000000000000000000000000000000000000000006020820152905061122f565b60208082528101610bbe81611375565b6000602082840312156113f2576113f2600080fd5b60006104458484610dc4565b60008135610bbe81610cfc565b60006001600160a01b03835b81169019929092169190911792915050565b6000610bbe6001600160a01b038316611440565b90565b6001600160a01b031690565b6000610bbe82611429565b6000610bbe8261144c565b61146b82611457565b61147681835461140b565b8255505050565b60008135610bbe81611057565b60007bffffffffffffffff00000000000000000000000000000000000000006114178460a01b90565b600067ffffffffffffffff8216610bbe565b6114ce826114b3565b61147681835461148a565b60008135610bbe81610db8565b60007fffffffff000000000000000000000000000000000000000000000000000000006114178460e01b90565b600063ffffffff8216610bbe565b61152a82611513565b6114768183546114e6565b600063ffffffff83611417565b61154b82611513565b611476818354611535565b6000808335601e193685900301811261157157611571600080fd5b8301915050803567ffffffffffffffff81111561159057611590600080fd5b602082019150600181023603821315610e1a57610e1a600080fd5b634e487b7160e01b600052604160045260246000fd5b634e487b7160e01b600052602260045260246000fd5b6002810460018216806115eb57607f821691505b602082108103610c5e57610c5e6115c1565b6000610bbe61143d8381565b611612836115fd565b815460001960089490940293841b1916921b91909117905550565b60006106e1818484611609565b818110156105525761164d60008261162d565b60010161163a565b601f8211156106e1576000818152602090206020601f8501048101602085101561167c5750805b6108396020601f86010483018261163a565b8267ffffffffffffffff8111156116a7576116a76115ab565b6116b182546115d7565b6116bc828285611655565b506000601f8211600181146116f157600083156116d95750848201355b600019600885021c198116600285021785555061065e565b600084815260209020601f19841690835b828110156117225787850135825560209485019460019092019101611702565b508482101561173f57600019601f86166008021c19848801351681555b5050505060020260010190555050565b6106e183838361168e565b60008135610bbe81610e21565b600060ff83611417565b600060ff8216610bbe565b61178582611771565b611476818354611767565b80828061179c816113fe565b90506117a88184611462565b505060208301806117b88261147d565b90506117c481846114c5565b505060408301806117d4826114d9565b90506117e08184611521565b5050506001810160608301806117f5826114d9565b90506118018184611542565b50505060028101608083016118168185611556565b915061182382828561174f565b5050506003810160a08301806118388261175a565b9050610839818461177c565b6105528282611790565b60c0810161185c828a610bd5565b6118696020830189610eb9565b6118766040830188611092565b6118836060830187611092565b81810360808301526118968185876110fb565b90506118a560a083018461112b565b98975050505050505050565b602a8152602081017f526f6f74206973206e6f74207075626c6973686564206f6e2074686973206d6581527f7373616765206275732e000000000000000000000000000000000000000000006020820152905061122f565b60208082528101610bbe816118b1565b60218152602081017f526f6f74206973206e6f7420636f6e736964657265642066696e616c207965748152601760f91b6020820152905061122f565b60208082528101610bbe81611919565b506000610bbe6020830183610cba565b61197f8180611047565b6119898382610bd5565b506119976020820182611047565b6119a46020840182610bd5565b506119b26040820182611965565b6119bf6040840182610be4565b506119cd6060820182611072565b6106e16060840182610eb9565b60808101610bbe8284611975565b60018152602081017f760000000000000000000000000000000000000000000000000000000000000081529050610c33565b60408082528101611a2a816119e8565b9050610bbe6020830184610be4565b611a438183610be4565b602001919050565b60338152602081017f496e76616c696420696e636c7573696f6e2070726f6f6620666f722076616c7581527f65207472616e73666572206d6573736167652e000000000000000000000000006020820152905061122f565b60208082528101610bbe81611a4b565b60258152602081017f526f6f7420616c726561647920616464656420746f20746865206d657373616781527f65206275730000000000000000000000000000000000000000000000000000006020820152905061122f565b60208082528101610bbe81611ab3565b600060208284031215611b3057611b30600080fd5b60006104458484611067565b600060208284031215611b5157611b51600080fd5b60006104458484610e2a565b60018152602081017f6d0000000000000000000000000000000000000000000000000000000000000081529050610c33565b60408082528101611a2a81611b5d565b60308152602081017f496e76616c696420696e636c7573696f6e2070726f6f6620666f722063726f7381527f7320636861696e206d6573736167652e000000000000000000000000000000006020820152905061122f565b60208082528101610bbe81611b9f565b67ffffffffffffffff918216919081169082820190811115610bbe57610bbe61134c565b634e487b7160e01b600052603260045260246000fd5b600060018201611c5357611c5361134c565b506001019056fea2646970667358221220c14e2710742599f7771122ca1f57bd3ae8ca32813cfd99de41e7782f2b9bc44a64736f6c63430008140033a26469706673582212209e8550c9691566b4539cf49821bdbd4b9b45bebd4a23bbb4bf77f10c91230a7064736f6c63430008140033", + Bin: "0x608060405234801561001057600080fd5b5061001a3361001f565b610090565b7f9016d09d72d40fdae2fd8ceac6b6234c7706214fd39c1cd1e609a0528c19930080546001600160a01b031981166001600160a01b03848116918217845560405192169182907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e090600090a3505050565b61518580620000a06000396000f3fe60806040523480156200001157600080fd5b5060043610620002005760003560e01c80638129fc1c1162000119578063a25eb31c11620000af578063db5d91b1116200007a578063db5d91b114620004f9578063e34fbfc81462000528578063e874eb20146200053d578063f2fde38b146200055157600080fd5b8063a25eb31c14620004a3578063a4ab2faa14620004ba578063a52f433c14620004d1578063d4fab88714620004e257600080fd5b806387059edb11620000f057806387059edb14620004125780638da5cb5b146200042957806398077e86146200045a578063a1a227fa146200048057600080fd5b80638129fc1c14620003bb5780638236a7ba14620003c55780638415482614620003ec57600080fd5b806347665738116200019b5780636a30d26c11620001665780636a30d26c14620003775780636b9707d61462000390578063715018a614620003a75780637281099614620003b157600080fd5b806347665738146200030b5780635371a2161462000322578063568699c8146200033957806368e10383146200036057600080fd5b80632f0cb9e311620001dc5780632f0cb9e314620002575780633e60a22f146200028c57806343348b2f14620002d2578063440c953b146200030157600080fd5b80620ddd27146200020557806303e72e481462000227578063073b6ef31462000240575b600080fd5b6200020f600e5481565b6040516200021e919062001b7d565b60405180910390f35b6200023e6200023836600462001cd3565b62000568565b005b6200023e6200025136600462001e6e565b6200067b565b6200027d6200026836600462001f5b565b600c6020526000908152604090205460ff1681565b6040516200021e919062001f89565b620002c36200029d36600462001f99565b80516020818301810180516003825292820191909301209152546001600160a01b031681565b6040516200021e919062001fe5565b6200027d620002e336600462001ff5565b6001600160a01b031660009081526020819052604090205460ff1690565b6200020f60055481565b6200023e6200031c36600462001ff5565b62000899565b6200023e6200033336600462002088565b62000940565b620003506200034a36600462001f5b565b62000af6565b6040516200021e929190620021a4565b6200023e62000371366004620021c8565b62000b4f565b6200038162000bf8565b6040516200021e9190620022e9565b6200023e620003a136600462001ff5565b62000cdb565b6200023e62000d72565b6200023e62000d8a565b6200023e62000e15565b620003dc620003d636600462001f5b565b62000fff565b6040516200021e929190620022fc565b6200027d620003fd36600462001f5b565b600d6020526000908152604090205460ff1681565b620003dc6200042336600462001f5b565b620010ef565b7f9016d09d72d40fdae2fd8ceac6b6234c7706214fd39c1cd1e609a0528c199300546001600160a01b0316620002c3565b620004716200046b36600462001f5b565b62001169565b6040516200021e91906200230c565b600a5462000494906001600160a01b031681565b6040516200021e919062002369565b6200023e620004b4366004620023a7565b6200121e565b6200027d620004cb36600462002419565b62001334565b600454610100900460ff166200027d565b6200023e620004f336600462002470565b620013c6565b6200027d6200050a36600462001ff5565b6001600160a01b031660009081526001602052604090205460ff1690565b6200023e620005393660046200252e565b5050565b600b5462000494906001600160a01b031681565b6200023e6200056236600462001ff5565b620014af565b620005726200150d565b60006001600160a01b03166003836040516200058f9190620025a1565b908152604051908190036020019020546001600160a01b031603620005ee57600280546001810182556000919091527f405787fa12a823e0f2b7631cc41b3ba8828b3321ca811111fa75cd3aa3bb5ace01620005ec838262002691565b505b80600383604051620006019190620025a1565b90815260405190819003602001812080546001600160a01b039390931673ffffffffffffffffffffffffffffffffffffffff19909316929092179091557f17b2f9f5748931099ffee882b5b64f4a560b5c55da9b4f4e396dae3bb9f98cb5906200066f90849084906200275e565b60405180910390a15050565b6000828152600860205260409020548114620006b45760405162461bcd60e51b8152600401620006ab90620027b5565b60405180910390fd5b60006200072689898989604051602001620006d3949392919062002825565b6040516020818303038152906040528051906020012086868080601f0160208091040260200160405190810160405280939291908181526020018383808284376000920191909152506200158592505050565b6001600160a01b03811660009081526020819052604090205490915060ff16620007645760405162461bcd60e51b8152600401620006ab90620028a4565b600e8990556000805b87518110156200087457600b5488516001600160a01b039091169063b6aed0cb908a9084908110620007a357620007a3620028b6565b6020026020010151620007b690620028d7565b426040518363ffffffff1660e01b8152600401620007d692919062002911565b600060405180830381600087803b158015620007f157600080fd5b505af115801562000806573d6000803e3d6000fd5b5050505081888281518110620008205762000820620028b6565b60200260200101516200083390620028d7565b6040516020016200084692919062002911565b60405160208183030381529060405280519060200120915080806200086b9062002946565b9150506200076d565b506000908152600d60205260409020805460ff19166001179055505050505050505050565b620008a36200150d565b6001600160a01b03811660009081526020819052604090205460ff16620008de5760405162461bcd60e51b8152600401620006ab90620028a4565b6001600160a01b038116600090815260016020819052604091829020805460ff19169091179055517ffe64c7181f0fc60e300dc02cca368cdfa94d7ca45902de3b9a9d80070e760936906200093590839062001fe5565b60405180910390a150565b600b546040517fb201246f0000000000000000000000000000000000000000000000000000000081526001600160a01b039091169063b201246f906200099190879087908790879060040162002a9b565b60006040518083038186803b158015620009aa57600080fd5b505afa158015620009bf573d6000803e3d6000fd5b50505050600084604051602001620009d8919062002ada565b60408051601f1981840301815291815281516020928301206000818152600c90935291205490915060ff161562000a235760405162461bcd60e51b8152600401620006ab9062002b1d565b6001600c60008760405160200162000a3c919062002ada565b60408051808303601f190181529181528151602092830120835282820193909352908201600020805460ff191693151593909317909255600a546001600160a01b0316916399a3ad219162000a979190890190890162001ff5565b87604001356040518363ffffffff1660e01b815260040162000abb92919062002b2f565b600060405180830381600087803b15801562000ad657600080fd5b505af115801562000aeb573d6000803e3d6000fd5b505050505050505050565b60408051606080820183526000808352602083019190915291810182905260008062000b2285620010ef565b915091508162000b385760009590945092505050565b600094855260086020526040909420549492505050565b60045460ff161562000b755760405162461bcd60e51b8152600401620006ab9062002b99565b60048054600160ff1991821681179092556001600160a01b0387166000908152602081815260408083208054851686179055908490529081902080549092169092179055517ffe64c7181f0fc60e300dc02cca368cdfa94d7ca45902de3b9a9d80070e7609369062000be990879062001fe5565b60405180910390a15050505050565b60606002805480602002602001604051908101604052809291908181526020016000905b8282101562000cd257838290600052602060002001805462000c3e90620025c3565b80601f016020809104026020016040519081016040528092919081815260200182805462000c6c90620025c3565b801562000cbd5780601f1062000c915761010080835404028352916020019162000cbd565b820191906000526020600020905b81548152906001019060200180831162000c9f57829003601f168201915b50505050508152602001906001019062000c1c565b50505050905090565b62000ce56200150d565b6001600160a01b03811660009081526001602052604090205460ff1662000d205760405162461bcd60e51b8152600401620006ab9062002bde565b6001600160a01b03811660009081526001602052604090819020805460ff19169055517f0f279980343c7ca542fde9fa5396555068efb5cd560d9cf9c191aa2911079b47906200093590839062001fe5565b62000d7c6200150d565b62000d886000620015b5565b565b62000d946200150d565b600a546040517f36d2da900000000000000000000000000000000000000000000000000000000081526001600160a01b03909116906336d2da909062000ddf90339060040162001fe5565b600060405180830381600087803b15801562000dfa57600080fd5b505af115801562000e0f573d6000803e3d6000fd5b50505050565b7ff0c57e16840df040f15088dc2f81fe391c3923bec73e23a9662efc9c229c6a00805468010000000000000000810460ff16159067ffffffffffffffff1660008115801562000e615750825b905060008267ffffffffffffffff16600114801562000e7f5750303b155b90508115801562000e8e575080155b1562000ec6576040517ff92ee8a900000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b845467ffffffffffffffff19166001178555831562000efb57845468ff00000000000000001916680100000000000000001785555b62000f063362001633565b6000600555600160095560405162000f1e9062001b67565b604051809103906000f08015801562000f3b573d6000803e3d6000fd5b50600b80546001600160a01b039290921673ffffffffffffffffffffffffffffffffffffffff199283168117909155600a805490921681179091556040517fbd726cf82ac9c3260b1495107182e336e0654b25c10915648c0cc15b2bb72cbf9162000fa69162001fe5565b60405180910390a1831562000ff857845468ff0000000000000000191685556040517fc7f505b2f371ae2175ee4913f4499e1f2633a7b5936321eed1cdaeb6115181d29062000be99060019062002c0e565b5050505050565b6040805160608082018352600080835260208084018390528385018290528582526006815284822085519384019095528454835260018501805492958694939092840191906200104f90620025c3565b80601f01602080910402602001604051908101604052809291908181526020018280546200107d90620025c3565b8015620010ce5780601f10620010a257610100808354040283529160200191620010ce565b820191906000526020600020905b815481529060010190602001808311620010b057829003601f168201915b50505091835250506002919091015460209091015280519094149492505050565b604080516060808201835260008083526020830191909152918101829052600083815260076020526040812054908190036200115457505060408051606081018252600080825282516020818101855282825283015291810182905290939092509050565b6200115f8162000fff565b9250925050915091565b600281815481106200117a57600080fd5b9060005260206000200160009150905080546200119790620025c3565b80601f0160208091040260200160405190810160405280929190818152602001828054620011c590620025c3565b8015620012165780601f10620011ea5761010080835404028352916020019162001216565b820191906000526020600020905b815481529060010190602001808311620011f857829003601f168201915b505050505081565b600062001270833562001235602086018662002c1e565b8080601f0160208091040260200160405190810160405280939291908181526020018383808284376000920191909152506200158592505050565b6001600160a01b03811660009081526020819052604090205490915060ff16620012ae5760405162461bcd60e51b8152600401620006ab90620028a4565b6001600160a01b03811660009081526001602052604090205460ff16620012e95760405162461bcd60e51b8152600401620006ab9062002bde565b620012f48362001648565b6040517fd6555bff8670bd3008dc064c30bb56d6ac7cb14ae801e36146fe4e7c6a504a5890620013279085359062001b7d565b60405180910390a1505050565b600080805b8351811015620013ad5781848281518110620013595762001359620028b6565b60200260200101516200136c90620028d7565b6040516020016200137f92919062002911565b6040516020818303038152906040528051906020012091508080620013a49062002946565b91505062001339565b506000908152600d602052604090205460ff1692915050565b6001600160a01b03851660009081526020819052604090205460ff1680620014025760405162461bcd60e51b8152600401620006ab9062002cd2565b8115620014845760006200143b878786604051602001620014269392919062002d13565b604051602081830303815290604052620016f5565b905060006200144b828762001585565b9050876001600160a01b0316816001600160a01b031614620014815760405162461bcd60e51b8152600401620006ab9062002d96565b50505b5050506001600160a01b039091166000908152602081905260409020805460ff191660011790555050565b620014b96200150d565b6001600160a01b038116620014ff5760006040517f1e4fbdf7000000000000000000000000000000000000000000000000000000008152600401620006ab919062001fe5565b6200150a81620015b5565b50565b33620015407f9016d09d72d40fdae2fd8ceac6b6234c7706214fd39c1cd1e609a0528c199300546001600160a01b031690565b6001600160a01b03161462000d8857336040517f118cdaa7000000000000000000000000000000000000000000000000000000008152600401620006ab919062001fe5565b60008060008062001597868662001734565b925092509250620015a9828262001785565b50909150505b92915050565b7f9016d09d72d40fdae2fd8ceac6b6234c7706214fd39c1cd1e609a0528c199300805473ffffffffffffffffffffffffffffffffffffffff1981166001600160a01b03848116918217845560405192169182907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e090600090a3505050565b6200163d6200189b565b6200150a8162001903565b80356000908152600660205260409020819062001666828262002f39565b505060095460009081526007602052604090208135908190556200168c60014362002f45565b40604051602001620016a092919062002911565b60408051601f198184030181529181528151602092830120600980546000908152600890945291832055805491620016d88362002946565b9190505550600554816040013511156200150a5760400135600555565b60006200170382516200190d565b826040516020016200171792919062002f5b565b604051602081830303815290604052805190602001209050919050565b60008060008351604103620017725760208401516040850151606086015160001a6200176388828585620019b5565b9550955095505050506200177e565b50508151600091506002905b9250925092565b60008260038111156200179c576200179c62002f9b565b03620017a6575050565b6001826003811115620017bd57620017bd62002f9b565b03620017f5576040517ff645eedf00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b60028260038111156200180c576200180c62002f9b565b0362001848576040517ffce698f7000000000000000000000000000000000000000000000000000000008152620006ab90829060040162001b7d565b60038260038111156200185f576200185f62002f9b565b036200053957806040517fd78bce0c000000000000000000000000000000000000000000000000000000008152600401620006ab919062001b7d565b7ff0c57e16840df040f15088dc2f81fe391c3923bec73e23a9662efc9c229c6a005468010000000000000000900460ff1662000d88576040517fd7e6bcf800000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b620014b96200189b565b606060006200191c8362001a7e565b600101905060008167ffffffffffffffff8111156200193f576200193f62001b8d565b6040519080825280601f01601f1916602001820160405280156200196a576020820181803683370190505b5090508181016020015b600019017f3031323334353637383961626364656600000000000000000000000000000000600a86061a8153600a850494508462001974575b509392505050565b600080807f7fffffffffffffffffffffffffffffff5d576e7357a4501ddfe92f46681b20a0841115620019f2575060009150600390508262001a74565b60006001888888886040516000815260200160405260405162001a19949392919062002fbb565b6020604051602081039080840390855afa15801562001a3c573d6000803e3d6000fd5b5050604051601f1901519150506001600160a01b03811662001a6a5750600092506001915082905062001a74565b9250600091508190505b9450945094915050565b6000807a184f03e93ff9f4daa797ed6e38ed64bf6a1f010000000000000000831062001ac8577a184f03e93ff9f4daa797ed6e38ed64bf6a1f010000000000000000830492506040015b6d04ee2d6d415b85acef8100000000831062001af5576d04ee2d6d415b85acef8100000000830492506020015b662386f26fc10000831062001b1457662386f26fc10000830492506010015b6305f5e100831062001b2d576305f5e100830492506008015b612710831062001b4257612710830492506004015b6064831062001b55576064830492506002015b600a8310620015af5760010192915050565b6121578062002ff983390190565b805b82525050565b60208101620015af828462001b75565b634e487b7160e01b600052604160045260246000fd5b601f19601f830116810181811067ffffffffffffffff8211171562001bcc5762001bcc62001b8d565b6040525050565b600062001bdf60405190565b905062001bed828262001ba3565b919050565b600067ffffffffffffffff82111562001c0f5762001c0f62001b8d565b601f19601f83011660200192915050565b82818337506000910152565b600062001c4362001c3d8462001bf2565b62001bd3565b90508281526020810184848401111562001c605762001c60600080fd5b620019ad84828562001c20565b600082601f83011262001c835762001c83600080fd5b813562001c9584826020860162001c2c565b949350505050565b60006001600160a01b038216620015af565b62001cba8162001c9d565b81146200150a57600080fd5b8035620015af8162001caf565b6000806040838503121562001ceb5762001ceb600080fd5b823567ffffffffffffffff81111562001d075762001d07600080fd5b62001d158582860162001c6d565b925050602062001d288582860162001cc6565b9150509250929050565b8062001cba565b8035620015af8162001d32565b600067ffffffffffffffff82111562001d635762001d6362001b8d565b5060209081020190565b600062001d7e62001c3d8462001d46565b8381529050602080820190840283018581111562001d9f5762001d9f600080fd5b835b8181101562001de457803567ffffffffffffffff81111562001dc65762001dc6600080fd5b850162001dd4888262001c6d565b8452506020928301920162001da1565b5050509392505050565b600082601f83011262001e045762001e04600080fd5b813562001c9584826020860162001d6d565b60008083601f84011262001e2d5762001e2d600080fd5b50813567ffffffffffffffff81111562001e4a5762001e4a600080fd5b60208301915083600182028301111562001e675762001e67600080fd5b9250929050565b60008060008060008060008060e0898b03121562001e8f5762001e8f600080fd5b600062001e9d8b8b62001d39565b985050602062001eb08b828c0162001d39565b975050604062001ec38b828c0162001d39565b965050606089013567ffffffffffffffff81111562001ee55762001ee5600080fd5b62001ef38b828c0162001dee565b955050608089013567ffffffffffffffff81111562001f155762001f15600080fd5b62001f238b828c0162001e16565b945094505060a062001f388b828c0162001d39565b92505060c062001f4b8b828c0162001d39565b9150509295985092959890939650565b60006020828403121562001f725762001f72600080fd5b600062001c95848462001d39565b80151562001b77565b60208101620015af828462001f80565b60006020828403121562001fb05762001fb0600080fd5b813567ffffffffffffffff81111562001fcc5762001fcc600080fd5b62001c958482850162001c6d565b62001b778162001c9d565b60208101620015af828462001fda565b6000602082840312156200200c576200200c600080fd5b600062001c95848462001cc6565b600060808284031215620020315762002031600080fd5b50919050565b60008083601f8401126200204e576200204e600080fd5b50813567ffffffffffffffff8111156200206b576200206b600080fd5b60208301915083602082028301111562001e675762001e67600080fd5b60008060008060c08587031215620020a357620020a3600080fd5b6000620020b187876200201a565b945050608085013567ffffffffffffffff811115620020d357620020d3600080fd5b620020e18782880162002037565b935093505060a0620020f68782880162001d39565b91505092959194509250565b60005b838110156200211f57818101518382015260200162002105565b50506000910152565b600062002133825190565b8084526020840193506200214c81856020860162002102565b601f01601f19169290920192915050565b8051600090606084019062002173858262001b75565b50602083015184820360208601526200218d828262002128565b9150506040830151620019ad604086018262001b75565b60408101620021b4828562001b75565b818103602083015262001c9581846200215d565b600080600080600060608688031215620021e557620021e5600080fd5b6000620021f3888862001cc6565b955050602086013567ffffffffffffffff811115620022155762002215600080fd5b620022238882890162001e16565b9450945050604086013567ffffffffffffffff811115620022475762002247600080fd5b620022558882890162001e16565b92509250509295509295909350565b600062002272838362002128565b9392505050565b60200190565b60006200228a825190565b80845260208401935083602082028501620022a58560200190565b60005b84811015620022dd5783830388528151620022c4848262002264565b93505060208201602098909801979150600101620022a8565b50909695505050505050565b602080825281016200227281846200227f565b60408101620021b4828562001f80565b6020808252810162002272818462002128565b6000620015af6001600160a01b03831662002338565b90565b6001600160a01b031690565b6000620015af826200231f565b6000620015af8262002344565b62001b778162002351565b60208101620015af82846200235e565b600060608284031215620020315762002031600080fd5b600060208284031215620020315762002031600080fd5b60008060408385031215620023bf57620023bf600080fd5b823567ffffffffffffffff811115620023db57620023db600080fd5b620023e98582860162002379565b925050602083013567ffffffffffffffff8111156200240b576200240b600080fd5b62001d288582860162002390565b600060208284031215620024305762002430600080fd5b813567ffffffffffffffff8111156200244c576200244c600080fd5b62001c958482850162001dee565b80151562001cba565b8035620015af816200245a565b600080600080600060a086880312156200248d576200248d600080fd5b60006200249b888862001cc6565b9550506020620024ae8882890162001cc6565b945050604086013567ffffffffffffffff811115620024d057620024d0600080fd5b620024de8882890162001c6d565b935050606086013567ffffffffffffffff811115620025005762002500600080fd5b6200250e8882890162001c6d565b9250506080620025218882890162002463565b9150509295509295909350565b60008060208385031215620025465762002546600080fd5b823567ffffffffffffffff811115620025625762002562600080fd5b620025708582860162001e16565b92509250509250929050565b600062002587825190565b6200259781856020860162002102565b9290920192915050565b620015af81836200257c565b634e487b7160e01b600052602260045260246000fd5b600281046001821680620025d857607f821691505b602082108103620020315762002031620025ad565b6000620015af620023358381565b6200260683620025ed565b815460001960089490940293841b1916921b91909117905550565b600062002630818484620025fb565b505050565b8181101562000539576200264b60008262002621565b60010162002635565b601f82111562002630576000818152602090206020601f850104810160208510156200267d5750805b62000ff86020601f86010483018262002635565b815167ffffffffffffffff811115620026ae57620026ae62001b8d565b620026ba8254620025c3565b620026c782828562002654565b506020601f821160018114620026ff5760008315620026e65750848201515b600019600885021c198116600285021785555062000ff8565b600084815260208120601f198516915b828110156200273157878501518255602094850194600190920191016200270f565b50848210156200274f5783870151600019601f87166008021c191681555b50505050600202600101905550565b6040808252810162002771818562002128565b905062002272602083018462001fda565b600e8152602081017f496e76616c696420666f726b49440000000000000000000000000000000000008152905062002279565b60208082528101620015af8162002782565b6000620027d2825190565b80845260208401935083602082028501620027ed8560200190565b60005b84811015620022dd57838303885281516200280c848262002264565b93505060208201602098909801979150600101620027f0565b6080810162002835828762001b75565b62002844602083018662001b75565b62002853604083018562001b75565b8181036060830152620028678184620027c7565b9695505050505050565b60168152602081017f656e636c6176654944206e6f74206174746573746564000000000000000000008152905062002279565b60208082528101620015af8162002871565b634e487b7160e01b600052603260045260246000fd5b6000620015af825190565b6000620028e2825190565b60208301620028f181620028cc565b925050602081101562002031576000196020919091036008021b16919050565b6040810162002921828562001b75565b62002272602083018462001b75565b634e487b7160e01b600052601160045260246000fd5b6000600182016200295b576200295b62002930565b5060010190565b506000620015af602083018362001cc6565b506000620015af602083018362001d39565b67ffffffffffffffff811662001cba565b8035620015af8162002986565b506000620015af602083018362002997565b67ffffffffffffffff811662001b77565b620029d3818062002962565b620029df838262001fda565b50620029ef602082018262002962565b620029fe602084018262001fda565b5062002a0e604082018262002974565b62002a1d604084018262001b75565b5062002a2d6060820182620029a4565b620026306060840182620029b6565b82818337505050565b81835260208301925060007f07ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff83111562002a825762002a82600080fd5b60208302925062002a9583858462002a3c565b50500190565b60c0810162002aab8287620029c7565b818103608083015262002ac081858762002a45565b905062002ad160a083018462001b75565b95945050505050565b60808101620015af8284620029c7565b60188152602081017f7769746864726177616c20616c7265616479207370656e7400000000000000008152905062002279565b60208082528101620015af8162002aea565b6040810162002921828562001fda565b60228152602081017f6e6574776f726b2073656372657420616c726561647920696e697469616c697a81527f6564000000000000000000000000000000000000000000000000000000000000602082015290505b60400190565b60208082528101620015af8162002b3f565b60198152602081017f656e636c6176654944206e6f7420612073657175656e636572000000000000008152905062002279565b60208082528101620015af8162002bab565b600067ffffffffffffffff8216620015af565b62001b778162002bf0565b60208101620015af828462002c03565b6000808335601e193685900301811262002c3b5762002c3b600080fd5b8301915050803567ffffffffffffffff81111562002c5c5762002c5c600080fd5b60208201915060018102360382131562001e675762001e67600080fd5b60238152602081017f726573706f6e64696e67206174746573746572206973206e6f7420617474657381527f74656400000000000000000000000000000000000000000000000000000000006020820152905062002b93565b60208082528101620015af8162002c79565b6000620015af8260601b90565b6000620015af8262002ce4565b62001b7762002d0d8262001c9d565b62002cf1565b62002d1f818562002cfe565b60140162002d2e818462002cfe565b60140162001c9581836200257c565b602c8152602081017f63616c63756c61746564206164647265737320616e642061747465737465724981527f4420646f6e74206d6174636800000000000000000000000000000000000000006020820152905062002b93565b60208082528101620015af8162002d3d565b60008135620015af8162001d32565b600081620015af565b62002dcb8262002db7565b62002dda620023358262002db7565b8255505050565b8267ffffffffffffffff81111562002dfd5762002dfd62001b8d565b62002e098254620025c3565b62002e1682828562002654565b506000601f82116001811462002e4e576000831562002e355750848201355b600019600885021c198116600285021785555062002eab565b600084815260209020601f19841690835b8281101562002e81578785013582556020948501946001909201910162002e5f565b508482101562002e9f57600019601f86166008021c19848801351681555b50506001600284020184555b505050505050565b6200263083838362002de1565b62002ecb82620025ed565b8062002dda565b80828062002ee08162002da8565b905062002eee818462002dc0565b505050600181016020830162002f05818562002c1e565b915062002f1482828562002eb3565b50505060028101604083018062002f2b8262002da8565b905062000ff8818462002ec0565b62000539828262002ed2565b81810381811115620015af57620015af62002930565b7f19457468657265756d205369676e6564204d6573736167653a0a0000000000008152601a0162002f8d81846200257c565b90506200227281836200257c565b634e487b7160e01b600052602160045260246000fd5b60ff811662001b77565b6080810162002fcb828762001b75565b62002fda602083018662002fb1565b62002fe9604083018562001b75565b62002ad1606083018462001b7556fe60806040523480156200001157600080fd5b506200001d336200002d565b620000276200009e565b62000152565b7f9016d09d72d40fdae2fd8ceac6b6234c7706214fd39c1cd1e609a0528c19930080546001600160a01b031981166001600160a01b03848116918217845560405192169182907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e090600090a3505050565b7ff0c57e16840df040f15088dc2f81fe391c3923bec73e23a9662efc9c229c6a00805468010000000000000000900460ff1615620000ef5760405163f92ee8a960e01b815260040160405180910390fd5b80546001600160401b03908116146200014f5780546001600160401b0319166001600160401b0390811782556040519081527fc7f505b2f371ae2175ee4913f4499e1f2633a7b5936321eed1cdaeb6115181d29060200160405180910390a15b50565b611ff580620001626000396000f3fe6080604052600436106100ec5760003560e01c80639730886d1161008a578063b6aed0cb11610059578063b6aed0cb1461031e578063c4d66de81461033e578063e138a8d21461035e578063f2fde38b1461037e57610160565b80639730886d1461029157806399a3ad21146102b1578063b1454caa146102d1578063b201246f146102fe57610160565b8063346633fb116100c6578063346633fb1461020457806336d2da9014610217578063715018a6146102375780638da5cb5b1461024c57610160565b80630fcfbd11146101815780630fe9188e146101b757806333a88c72146101d757610160565b36610160576040517f346633fb000000000000000000000000000000000000000000000000000000008152309063346633fb9034906101319033908390600401610ebc565b6000604051808303818588803b15801561014a57600080fd5b505af115801561015e573d6000803e3d6000fd5b005b60405162461bcd60e51b815260040161017890610f0b565b60405180910390fd5b34801561018d57600080fd5b506101a161019c366004610f36565b61039e565b6040516101ae9190610f71565b60405180910390f35b3480156101c357600080fd5b5061015e6101d2366004610f97565b6103fd565b3480156101e357600080fd5b506101f76101f2366004610f36565b610443565b6040516101ae9190610fc0565b61015e610212366004610fe2565b610495565b34801561022357600080fd5b5061015e61023236600461101f565b61051f565b34801561024357600080fd5b5061015e61059e565b34801561025857600080fd5b507f9016d09d72d40fdae2fd8ceac6b6234c7706214fd39c1cd1e609a0528c199300546001600160a01b03166040516101ae9190611040565b34801561029d57600080fd5b5061015e6102ac36600461104e565b6105b2565b3480156102bd57600080fd5b5061015e6102cc366004610fe2565b610727565b3480156102dd57600080fd5b506102f16102ec366004611107565b6107a7565b6040516101ae919061119b565b34801561030a57600080fd5b5061015e610319366004611209565b610800565b34801561032a57600080fd5b5061015e610339366004611279565b610901565b34801561034a57600080fd5b5061015e61035936600461101f565b610947565b34801561036a57600080fd5b5061015e61037936600461129b565b610a89565b34801561038a57600080fd5b5061015e61039936600461101f565b610bcc565b600080826040516020016103b291906114b8565b60408051601f198184030181529181528151602092830120600081815292839052912054909150806103f65760405162461bcd60e51b815260040161017890611507565b9392505050565b610405610c23565b60008181526003602052604081205490036104325760405162461bcd60e51b815260040161017890611549565b600090815260036020526040812055565b6000808260405160200161045791906114b8565b60408051601f198184030181529181528151602092830120600081815292839052912054909150801580159061048d5750428111155b949350505050565b6000341180156104a457508034145b6104c05760405162461bcd60e51b8152600401610178906115b1565b60006104cb33610c97565b9050826001600160a01b0316336001600160a01b03167f50c536ac33a920f00755865b831d17bf4cff0b2e0345f65b16d52bfc004068b634846040516105129291906115c1565b60405180910390a3505050565b610527610c23565b6000816001600160a01b03164760405160006040518083038185875af1925050503d8060008114610574576040519150601f19603f3d011682016040523d82523d6000602084013e610579565b606091505b505090508061059a5760405162461bcd60e51b81526004016101789061160e565b5050565b6105a6610c23565b6105b06000610cf5565b565b60006105bf600130611634565b90506105f27f9016d09d72d40fdae2fd8ceac6b6234c7706214fd39c1cd1e609a0528c199300546001600160a01b031690565b6001600160a01b0316336001600160a01b031614806106195750336001600160a01b038216145b6106355760405162461bcd60e51b815260040161017890611689565b60006106418342611699565b905060008460405160200161065691906114b8565b60408051601f1981840301815291815281516020928301206000818152928390529120549091501561069a5760405162461bcd60e51b815260040161017890611704565b6000818152602081815260408220849055600191906106bb9088018861101f565b6001600160a01b0316815260208101919091526040016000908120906106e76080880160608901611714565b63ffffffff1681526020808201929092526040016000908120805460018101825590825291902086916004020161071e8282611b87565b50505050505050565b61072f610c23565b6000826001600160a01b03168260405160006040518083038185875af1925050503d806000811461077c576040519150601f19603f3d011682016040523d82523d6000602084013e610781565b606091505b50509050806107a25760405162461bcd60e51b81526004016101789061160e565b505050565b60006107b233610c97565b90507fb93c37389233beb85a3a726c3f15c2d15533ee74cb602f20f490dfffef775937338288888888886040516107ef9796959493929190611b91565b60405180910390a195945050505050565b600081815260036020526040812054900361082d5760405162461bcd60e51b815260040161017890611c4c565b60008181526003602052604090205442101561085b5760405162461bcd60e51b815260040161017890611c98565b60008460405160200161086e9190611d1d565b604051602081830303815290604052805190602001206040516020016108949190611d5d565b6040516020818303038152906040528051906020012090506108de848484846040516020016108c39190611d7c565b60405160208183030381529060405280519060200120610d7e565b6108fa5760405162461bcd60e51b815260040161017890611de6565b5050505050565b610909610c23565b600082815260036020526040902054156109355760405162461bcd60e51b815260040161017890611e4e565b60009182526003602052604090912055565b7ff0c57e16840df040f15088dc2f81fe391c3923bec73e23a9662efc9c229c6a00805468010000000000000000810460ff16159067ffffffffffffffff166000811580156109925750825b905060008267ffffffffffffffff1660011480156109af5750303b155b9050811580156109bd575080155b156109f4576040517ff92ee8a900000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b845467ffffffffffffffff191660011785558315610a2857845468ff00000000000000001916680100000000000000001785555b610a3186610d96565b8315610a8157845468ff0000000000000000191685556040517fc7f505b2f371ae2175ee4913f4499e1f2633a7b5936321eed1cdaeb6115181d290610a7890600190611e72565b60405180910390a15b505050505050565b6000818152600360205260408120549003610ab65760405162461bcd60e51b815260040161017890611c4c565b600081815260036020526040902054421015610ae45760405162461bcd60e51b815260040161017890611c98565b6000610af3602086018661101f565b610b036040870160208801611e80565b610b136060880160408901611714565b610b236080890160608a01611714565b610b3060808a018a611899565b610b4060c08c0160a08d01611ea1565b604051602001610b569796959493929190611b91565b604051602081830303815290604052805190602001209050600081604051602001610b819190611ef4565b604051602081830303815290604052805190602001209050610bb0858585846040516020016108c39190611d7c565b610a815760405162461bcd60e51b815260040161017890611f5c565b610bd4610c23565b6001600160a01b038116610c175760006040517f1e4fbdf70000000000000000000000000000000000000000000000000000000081526004016101789190611040565b610c2081610cf5565b50565b33610c557f9016d09d72d40fdae2fd8ceac6b6234c7706214fd39c1cd1e609a0528c199300546001600160a01b031690565b6001600160a01b0316146105b057336040517f118cdaa70000000000000000000000000000000000000000000000000000000081526004016101789190611040565b6001600160a01b0381166000908152600260205260408120805467ffffffffffffffff169160019190610cca8385611f6c565b92506101000a81548167ffffffffffffffff021916908367ffffffffffffffff160217905550919050565b7f9016d09d72d40fdae2fd8ceac6b6234c7706214fd39c1cd1e609a0528c19930080547fffffffffffffffffffffffff000000000000000000000000000000000000000081166001600160a01b03848116918217845560405192169182907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e090600090a3505050565b600082610d8c868685610da7565b1495945050505050565b610d9e610df3565b610c2081610e5a565b600081815b84811015610dea57610dd682878784818110610dca57610dca611f90565b90506020020135610e62565b915080610de281611fa6565b915050610dac565b50949350505050565b7ff0c57e16840df040f15088dc2f81fe391c3923bec73e23a9662efc9c229c6a005468010000000000000000900460ff166105b0576040517fd7e6bcf800000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b610bd4610df3565b6000818310610e7e576000828152602084905260409020610e8d565b60008381526020839052604090205b90505b92915050565b60006001600160a01b038216610e90565b610eb081610e96565b82525050565b80610eb0565b60408101610eca8285610ea7565b6103f66020830184610eb6565b600b8152602081017f756e737570706f72746564000000000000000000000000000000000000000000815290505b60200190565b60208082528101610e9081610ed7565b600060c08284031215610f3057610f30600080fd5b50919050565b600060208284031215610f4b57610f4b600080fd5b813567ffffffffffffffff811115610f6557610f65600080fd5b61048d84828501610f1b565b60208101610e908284610eb6565b805b8114610c2057600080fd5b8035610e9081610f7f565b600060208284031215610fac57610fac600080fd5b600061048d8484610f8c565b801515610eb0565b60208101610e908284610fb8565b610f8181610e96565b8035610e9081610fce565b60008060408385031215610ff857610ff8600080fd5b60006110048585610fd7565b925050602061101585828601610f8c565b9150509250929050565b60006020828403121561103457611034600080fd5b600061048d8484610fd7565b60208101610e908284610ea7565b6000806040838503121561106457611064600080fd5b823567ffffffffffffffff81111561107e5761107e600080fd5b61100485828601610f1b565b63ffffffff8116610f81565b8035610e908161108a565b60008083601f8401126110b6576110b6600080fd5b50813567ffffffffffffffff8111156110d1576110d1600080fd5b6020830191508360018202830111156110ec576110ec600080fd5b9250929050565b60ff8116610f81565b8035610e90816110f3565b60008060008060006080868803121561112257611122600080fd5b600061112e8888611096565b955050602061113f88828901611096565b945050604086013567ffffffffffffffff81111561115f5761115f600080fd5b61116b888289016110a1565b9350935050606061117e888289016110fc565b9150509295509295909350565b67ffffffffffffffff8116610eb0565b60208101610e90828461118b565b600060808284031215610f3057610f30600080fd5b60008083601f8401126111d3576111d3600080fd5b50813567ffffffffffffffff8111156111ee576111ee600080fd5b6020830191508360208202830111156110ec576110ec600080fd5b60008060008060c0858703121561122257611222600080fd5b600061122e87876111a9565b945050608085013567ffffffffffffffff81111561124e5761124e600080fd5b61125a878288016111be565b935093505060a061126d87828801610f8c565b91505092959194509250565b6000806040838503121561128f5761128f600080fd5b60006110048585610f8c565b600080600080606085870312156112b4576112b4600080fd5b843567ffffffffffffffff8111156112ce576112ce600080fd5b6112da87828801610f1b565b945050602085013567ffffffffffffffff8111156112fa576112fa600080fd5b611306878288016111be565b9350935050604061126d87828801610f8c565b506000610e906020830183610fd7565b67ffffffffffffffff8116610f81565b8035610e9081611329565b506000610e906020830183611339565b506000610e906020830183611096565b63ffffffff8116610eb0565b6000808335601e193685900301811261138b5761138b600080fd5b830160208101925035905067ffffffffffffffff8111156113ae576113ae600080fd5b368190038213156110ec576110ec600080fd5b82818337506000910152565b8183526020830192506113e18284836113c1565b50601f01601f19160190565b506000610e9060208301836110fc565b60ff8116610eb0565b600060c083016114168380611319565b6114208582610ea7565b5061142e6020840184611344565b61143b602086018261118b565b506114496040840184611354565b6114566040860182611364565b506114646060840184611354565b6114716060860182611364565b5061147f6080840184611370565b85830360808701526114928382846113cd565b925050506114a360a08401846113ed565b6114b060a08601826113fd565b509392505050565b60208082528101610e8d8184611406565b60218152602081017f54686973206d65737361676520776173206e65766572207375626d69747465648152601760f91b602082015290505b60400190565b60208082528101610e90816114c9565b601a8152602081017f537461746520726f6f7420646f6573206e6f742065786973742e00000000000081529050610f05565b60208082528101610e9081611517565b60308152602081017f417474656d7074696e6720746f2073656e642076616c756520776974686f757481527f2070726f766964696e672045746865720000000000000000000000000000000060208201529050611501565b60208082528101610e9081611559565b604081016115cf8285610eb6565b6103f6602083018461118b565b60148152602081017f6661696c65642073656e64696e672076616c756500000000000000000000000081529050610f05565b60208082528101610e90816115dc565b634e487b7160e01b600052601160045260246000fd5b6001600160a01b03918216919081169082820390811115610e9057610e9061161e565b60118152602081017f4e6f74206f776e6572206f722073656c6600000000000000000000000000000081529050610f05565b60208082528101610e9081611657565b80820180821115610e9057610e9061161e565b60218152602081017f4d657373616765207375626d6974746564206d6f7265207468616e206f6e636581527f210000000000000000000000000000000000000000000000000000000000000060208201529050611501565b60208082528101610e90816116ac565b60006020828403121561172957611729600080fd5b600061048d8484611096565b60008135610e9081610fce565b60006001600160a01b03835b81169019929092169190911792915050565b6000610e906001600160a01b038316611777565b90565b6001600160a01b031690565b6000610e9082611760565b6000610e9082611783565b6117a28261178e565b6117ad818354611742565b8255505050565b60008135610e9081611329565b60007bffffffffffffffff000000000000000000000000000000000000000061174e8460a01b90565b6000610e9067ffffffffffffffff83165b67ffffffffffffffff1690565b611811826117ea565b6117ad8183546117c1565b60008135610e908161108a565b60007fffffffff0000000000000000000000000000000000000000000000000000000061174e8460e01b90565b600063ffffffff8216610e90565b61186d82611856565b6117ad818354611829565b600063ffffffff8361174e565b61188e82611856565b6117ad818354611878565b6000808335601e19368590030181126118b4576118b4600080fd5b8301915050803567ffffffffffffffff8111156118d3576118d3600080fd5b6020820191506001810236038213156110ec576110ec600080fd5b634e487b7160e01b600052604160045260246000fd5b634e487b7160e01b600052602260045260246000fd5b60028104600182168061192e57607f821691505b602082108103610f3057610f30611904565b6000610e906117748381565b61195583611940565b815460001960089490940293841b1916921b91909117905550565b60006107a281848461194c565b8181101561059a57611990600082611970565b60010161197d565b601f8211156107a2576000818152602090206020601f850104810160208510156119bf5750805b6108fa6020601f86010483018261197d565b8267ffffffffffffffff8111156119ea576119ea6118ee565b6119f4825461191a565b6119ff828285611998565b506000601f821160018114611a345760008315611a1c5750848201355b600019600885021c1981166002850217855550610a81565b600084815260209020601f19841690835b82811015611a655787850135825560209485019460019092019101611a45565b5084821015611a8257600019601f86166008021c19848801351681555b5050505060020260010190555050565b6107a28383836119d1565b60008135610e90816110f3565b600060ff8361174e565b600060ff8216610e90565b611ac882611ab4565b6117ad818354611aaa565b808280611adf81611735565b9050611aeb8184611799565b50506020830180611afb826117b4565b9050611b078184611808565b50506040830180611b178261181c565b9050611b238184611864565b505050600181016060830180611b388261181c565b9050611b448184611885565b5050506002810160808301611b598185611899565b9150611b66828285611a92565b5050506003810160a0830180611b7b82611a9d565b90506108fa8184611abf565b61059a8282611ad3565b60c08101611b9f828a610ea7565b611bac602083018961118b565b611bb96040830188611364565b611bc66060830187611364565b8181036080830152611bd98185876113cd565b9050611be860a08301846113fd565b98975050505050505050565b602a8152602081017f526f6f74206973206e6f74207075626c6973686564206f6e2074686973206d6581527f7373616765206275732e0000000000000000000000000000000000000000000060208201529050611501565b60208082528101610e9081611bf4565b60218152602081017f526f6f74206973206e6f7420636f6e736964657265642066696e616c207965748152601760f91b60208201529050611501565b60208082528101610e9081611c5c565b506000610e906020830183610f8c565b611cc28180611319565b611ccc8382610ea7565b50611cda6020820182611319565b611ce76020840182610ea7565b50611cf56040820182611ca8565b611d026040840182610eb6565b50611d106060820182611344565b6107a2606084018261118b565b60808101610e908284611cb8565b60018152602081017f760000000000000000000000000000000000000000000000000000000000000081529050610f05565b60408082528101611d6d81611d2b565b9050610e906020830184610eb6565b611d868183610eb6565b602001919050565b60338152602081017f496e76616c696420696e636c7573696f6e2070726f6f6620666f722076616c7581527f65207472616e73666572206d6573736167652e0000000000000000000000000060208201529050611501565b60208082528101610e9081611d8e565b60258152602081017f526f6f7420616c726561647920616464656420746f20746865206d657373616781527f652062757300000000000000000000000000000000000000000000000000000060208201529050611501565b60208082528101610e9081611df6565b6000610e90826117fb565b610eb081611e5e565b60208101610e908284611e69565b600060208284031215611e9557611e95600080fd5b600061048d8484611339565b600060208284031215611eb657611eb6600080fd5b600061048d84846110fc565b60018152602081017f6d0000000000000000000000000000000000000000000000000000000000000081529050610f05565b60408082528101611d6d81611ec2565b60308152602081017f496e76616c696420696e636c7573696f6e2070726f6f6620666f722063726f7381527f7320636861696e206d6573736167652e0000000000000000000000000000000060208201529050611501565b60208082528101610e9081611f04565b67ffffffffffffffff918216919081169082820190811115610e9057610e9061161e565b634e487b7160e01b600052603260045260246000fd5b600060018201611fb857611fb861161e565b506001019056fea2646970667358221220b765f1dcb71fc1a477b68645e3b185262574a58a520c2f06b8b8758eaac24c8364736f6c63430008150033a2646970667358221220ac70be67404d33a141c9e08884c79536a0b85c8cb414bc8b0fdb9d84b72d499464736f6c63430008150033", } // ManagementContractABI is the input ABI used to generate the binding from. diff --git a/contracts/generated/Math/Math.go b/contracts/generated/Math/Math.go index 4a4e7ae61b..b5911f9e13 100644 --- a/contracts/generated/Math/Math.go +++ b/contracts/generated/Math/Math.go @@ -32,7 +32,7 @@ var ( // MathMetaData contains all meta data concerning the Math contract. var MathMetaData = &bind.MetaData{ ABI: "[{\"inputs\":[],\"name\":\"MathOverflowedMulDiv\",\"type\":\"error\"}]", - Bin: "0x60566037600b82828239805160001a607314602a57634e487b7160e01b600052600060045260246000fd5b30600052607381538281f3fe73000000000000000000000000000000000000000030146080604052600080fdfea2646970667358221220f93dbf057c351e267c96ba7e12cf3ec4eddf62f98eaf43eb22ad92eaefa402b764736f6c63430008140033", + Bin: "0x60566037600b82828239805160001a607314602a57634e487b7160e01b600052600060045260246000fd5b30600052607381538281f3fe73000000000000000000000000000000000000000030146080604052600080fdfea26469706673582212208055b3213f078c05f41b14d45f592bf02a523f3474c978b794f77f26a61bed6264736f6c63430008150033", } // MathABI is the input ABI used to generate the binding from. diff --git a/contracts/generated/MerkleProof/MerkleProof.go b/contracts/generated/MerkleProof/MerkleProof.go index 27b6557ad2..08f5a1d8a6 100644 --- a/contracts/generated/MerkleProof/MerkleProof.go +++ b/contracts/generated/MerkleProof/MerkleProof.go @@ -32,7 +32,7 @@ var ( // MerkleProofMetaData contains all meta data concerning the MerkleProof contract. var MerkleProofMetaData = &bind.MetaData{ ABI: "[{\"inputs\":[],\"name\":\"MerkleProofInvalidMultiproof\",\"type\":\"error\"}]", - Bin: "0x60566037600b82828239805160001a607314602a57634e487b7160e01b600052600060045260246000fd5b30600052607381538281f3fe73000000000000000000000000000000000000000030146080604052600080fdfea264697066735822122080442f2339b8ab59fa4383dcc9d3015c47c095fcd92fcb1469919dc03ae053dc64736f6c63430008140033", + Bin: "0x60566037600b82828239805160001a607314602a57634e487b7160e01b600052600060045260246000fd5b30600052607381538281f3fe73000000000000000000000000000000000000000030146080604052600080fdfea2646970667358221220b03739715b97b8cd939533363ffa4c21e9ac592f7e17a0f844889d2235c2a21264736f6c63430008150033", } // MerkleProofABI is the input ABI used to generate the binding from. diff --git a/contracts/generated/MerkleTreeMessageBus/MerkleTreeMessageBus.go b/contracts/generated/MerkleTreeMessageBus/MerkleTreeMessageBus.go index 029d2f4512..6f5f9976a3 100644 --- a/contracts/generated/MerkleTreeMessageBus/MerkleTreeMessageBus.go +++ b/contracts/generated/MerkleTreeMessageBus/MerkleTreeMessageBus.go @@ -49,8 +49,8 @@ type StructsValueTransferMessage struct { // MerkleTreeMessageBusMetaData contains all meta data concerning the MerkleTreeMessageBus contract. var MerkleTreeMessageBusMetaData = &bind.MetaData{ - ABI: "[{\"inputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"constructor\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"}],\"name\":\"OwnableInvalidOwner\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"}],\"name\":\"OwnableUnauthorizedAccount\",\"type\":\"error\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"address\",\"name\":\"sender\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint64\",\"name\":\"sequence\",\"type\":\"uint64\"},{\"indexed\":false,\"internalType\":\"uint32\",\"name\":\"nonce\",\"type\":\"uint32\"},{\"indexed\":false,\"internalType\":\"uint32\",\"name\":\"topic\",\"type\":\"uint32\"},{\"indexed\":false,\"internalType\":\"bytes\",\"name\":\"payload\",\"type\":\"bytes\"},{\"indexed\":false,\"internalType\":\"uint8\",\"name\":\"consistencyLevel\",\"type\":\"uint8\"}],\"name\":\"LogMessagePublished\",\"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\":\"sender\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"receiver\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"uint64\",\"name\":\"sequence\",\"type\":\"uint64\"}],\"name\":\"ValueTransfer\",\"type\":\"event\"},{\"stateMutability\":\"payable\",\"type\":\"fallback\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"stateRoot\",\"type\":\"bytes32\"},{\"internalType\":\"uint256\",\"name\":\"activationTime\",\"type\":\"uint256\"}],\"name\":\"addStateRoot\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"stateRoot\",\"type\":\"bytes32\"}],\"name\":\"disableStateRoot\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"components\":[{\"internalType\":\"address\",\"name\":\"sender\",\"type\":\"address\"},{\"internalType\":\"uint64\",\"name\":\"sequence\",\"type\":\"uint64\"},{\"internalType\":\"uint32\",\"name\":\"nonce\",\"type\":\"uint32\"},{\"internalType\":\"uint32\",\"name\":\"topic\",\"type\":\"uint32\"},{\"internalType\":\"bytes\",\"name\":\"payload\",\"type\":\"bytes\"},{\"internalType\":\"uint8\",\"name\":\"consistencyLevel\",\"type\":\"uint8\"}],\"internalType\":\"structStructs.CrossChainMessage\",\"name\":\"crossChainMessage\",\"type\":\"tuple\"}],\"name\":\"getMessageTimeOfFinality\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"owner\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint32\",\"name\":\"nonce\",\"type\":\"uint32\"},{\"internalType\":\"uint32\",\"name\":\"topic\",\"type\":\"uint32\"},{\"internalType\":\"bytes\",\"name\":\"payload\",\"type\":\"bytes\"},{\"internalType\":\"uint8\",\"name\":\"consistencyLevel\",\"type\":\"uint8\"}],\"name\":\"publishMessage\",\"outputs\":[{\"internalType\":\"uint64\",\"name\":\"sequence\",\"type\":\"uint64\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"receiver\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"}],\"name\":\"receiveValueFromL2\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"renounceOwnership\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"receiver\",\"type\":\"address\"}],\"name\":\"retrieveAllFunds\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"receiver\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"}],\"name\":\"sendValueToL2\",\"outputs\":[],\"stateMutability\":\"payable\",\"type\":\"function\"},{\"inputs\":[{\"components\":[{\"internalType\":\"address\",\"name\":\"sender\",\"type\":\"address\"},{\"internalType\":\"uint64\",\"name\":\"sequence\",\"type\":\"uint64\"},{\"internalType\":\"uint32\",\"name\":\"nonce\",\"type\":\"uint32\"},{\"internalType\":\"uint32\",\"name\":\"topic\",\"type\":\"uint32\"},{\"internalType\":\"bytes\",\"name\":\"payload\",\"type\":\"bytes\"},{\"internalType\":\"uint8\",\"name\":\"consistencyLevel\",\"type\":\"uint8\"}],\"internalType\":\"structStructs.CrossChainMessage\",\"name\":\"crossChainMessage\",\"type\":\"tuple\"},{\"internalType\":\"uint256\",\"name\":\"finalAfterTimestamp\",\"type\":\"uint256\"}],\"name\":\"storeCrossChainMessage\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"newOwner\",\"type\":\"address\"}],\"name\":\"transferOwnership\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"components\":[{\"internalType\":\"address\",\"name\":\"sender\",\"type\":\"address\"},{\"internalType\":\"uint64\",\"name\":\"sequence\",\"type\":\"uint64\"},{\"internalType\":\"uint32\",\"name\":\"nonce\",\"type\":\"uint32\"},{\"internalType\":\"uint32\",\"name\":\"topic\",\"type\":\"uint32\"},{\"internalType\":\"bytes\",\"name\":\"payload\",\"type\":\"bytes\"},{\"internalType\":\"uint8\",\"name\":\"consistencyLevel\",\"type\":\"uint8\"}],\"internalType\":\"structStructs.CrossChainMessage\",\"name\":\"crossChainMessage\",\"type\":\"tuple\"}],\"name\":\"verifyMessageFinalized\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"components\":[{\"internalType\":\"address\",\"name\":\"sender\",\"type\":\"address\"},{\"internalType\":\"uint64\",\"name\":\"sequence\",\"type\":\"uint64\"},{\"internalType\":\"uint32\",\"name\":\"nonce\",\"type\":\"uint32\"},{\"internalType\":\"uint32\",\"name\":\"topic\",\"type\":\"uint32\"},{\"internalType\":\"bytes\",\"name\":\"payload\",\"type\":\"bytes\"},{\"internalType\":\"uint8\",\"name\":\"consistencyLevel\",\"type\":\"uint8\"}],\"internalType\":\"structStructs.CrossChainMessage\",\"name\":\"message\",\"type\":\"tuple\"},{\"internalType\":\"bytes32[]\",\"name\":\"proof\",\"type\":\"bytes32[]\"},{\"internalType\":\"bytes32\",\"name\":\"root\",\"type\":\"bytes32\"}],\"name\":\"verifyMessageInclusion\",\"outputs\":[],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"components\":[{\"internalType\":\"address\",\"name\":\"sender\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"receiver\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"},{\"internalType\":\"uint64\",\"name\":\"sequence\",\"type\":\"uint64\"}],\"internalType\":\"structStructs.ValueTransferMessage\",\"name\":\"message\",\"type\":\"tuple\"},{\"internalType\":\"bytes32[]\",\"name\":\"proof\",\"type\":\"bytes32[]\"},{\"internalType\":\"bytes32\",\"name\":\"root\",\"type\":\"bytes32\"}],\"name\":\"verifyValueTransferInclusion\",\"outputs\":[],\"stateMutability\":\"view\",\"type\":\"function\"},{\"stateMutability\":\"payable\",\"type\":\"receive\"}]", - Bin: "0x60806040523480156200001157600080fd5b50338062000040576000604051631e4fbdf760e01b8152600401620000379190620000c6565b60405180910390fd5b6200004b8162000052565b50620000d6565b600080546001600160a01b038381166001600160a01b0319831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b60006001600160a01b0382165b92915050565b620000c081620000a2565b82525050565b60208101620000af8284620000b5565b611c9080620000e66000396000f3fe6080604052600436106100e15760003560e01c80639730886d1161007f578063b201246f11610059578063b201246f146102d4578063b6aed0cb146102f4578063e138a8d214610314578063f2fde38b1461033457610155565b80639730886d1461026757806399a3ad2114610287578063b1454caa146102a757610155565b8063346633fb116100bb578063346633fb146101f957806336d2da901461020c578063715018a61461022c5780638da5cb5b1461024157610155565b80630fcfbd11146101765780630fe9188e146101ac57806333a88c72146101cc57610155565b36610155576040517f346633fb000000000000000000000000000000000000000000000000000000008152309063346633fb9034906101269033908390600401610bea565b6000604051808303818588803b15801561013f57600080fd5b505af1158015610153573d6000803e3d6000fd5b005b60405162461bcd60e51b815260040161016d90610c39565b60405180910390fd5b34801561018257600080fd5b50610196610191366004610c64565b610354565b6040516101a39190610c9f565b60405180910390f35b3480156101b857600080fd5b506101536101c7366004610cc5565b6103b4565b3480156101d857600080fd5b506101ec6101e7366004610c64565b6103fa565b6040516101a39190610cee565b610153610207366004610d10565b61044d565b34801561021857600080fd5b50610153610227366004610d4d565b6104d7565b34801561023857600080fd5b50610153610556565b34801561024d57600080fd5b506000546001600160a01b03166040516101a39190610d6e565b34801561027357600080fd5b50610153610282366004610d7c565b61056a565b34801561029357600080fd5b506101536102a2366004610d10565b610666565b3480156102b357600080fd5b506102c76102c2366004610e35565b6106e6565b6040516101a39190610ec9565b3480156102e057600080fd5b506101536102ef366004610f37565b61073f565b34801561030057600080fd5b5061015361030f366004610fa7565b610840565b34801561032057600080fd5b5061015361032f366004610fc9565b610886565b34801561034057600080fd5b5061015361034f366004610d4d565b6109c9565b6000808260405160200161036891906111e6565b60408051601f19818403018152918152815160209283012060008181526001909352912054909150806103ad5760405162461bcd60e51b815260040161016d90611235565b9392505050565b6103bc610a20565b60008181526004602052604081205490036103e95760405162461bcd60e51b815260040161016d90611277565b600090815260046020526040812055565b6000808260405160200161040e91906111e6565b60408051601f1981840301815291815281516020928301206000818152600190935291205490915080158015906104455750428111155b949350505050565b60003411801561045c57508034145b6104785760405162461bcd60e51b815260040161016d906112df565b600061048333610a66565b9050826001600160a01b0316336001600160a01b03167f50c536ac33a920f00755865b831d17bf4cff0b2e0345f65b16d52bfc004068b634846040516104ca9291906112ef565b60405180910390a3505050565b6104df610a20565b6000816001600160a01b03164760405160006040518083038185875af1925050503d806000811461052c576040519150601f19603f3d011682016040523d82523d6000602084013e610531565b606091505b50509050806105525760405162461bcd60e51b815260040161016d9061133c565b5050565b61055e610a20565b6105686000610ac4565b565b610572610a20565b600061057e8242611362565b905060008360405160200161059391906111e6565b60408051601f19818403018152918152815160209283012060008181526001909352912054909150156105d85760405162461bcd60e51b815260040161016d906113cd565b60008181526001602090815260408220849055600291906105fb90870187610d4d565b6001600160a01b03168152602081019190915260400160009081209061062760808701606088016113dd565b63ffffffff1681526020808201929092526040016000908120805460018101825590825291902085916004020161065e8282611844565b505050505050565b61066e610a20565b6000826001600160a01b03168260405160006040518083038185875af1925050503d80600081146106bb576040519150601f19603f3d011682016040523d82523d6000602084013e6106c0565b606091505b50509050806106e15760405162461bcd60e51b815260040161016d9061133c565b505050565b60006106f133610a66565b90507fb93c37389233beb85a3a726c3f15c2d15533ee74cb602f20f490dfffef7759373382888888888860405161072e979695949392919061184e565b60405180910390a195945050505050565b600081815260046020526040812054900361076c5760405162461bcd60e51b815260040161016d90611909565b60008181526004602052604090205442101561079a5760405162461bcd60e51b815260040161016d90611955565b6000846040516020016107ad91906119da565b604051602081830303815290604052805190602001206040516020016107d39190611a1a565b60405160208183030381529060405280519060200120905061081d848484846040516020016108029190611a39565b60405160208183030381529060405280519060200120610b2c565b6108395760405162461bcd60e51b815260040161016d90611aa3565b5050505050565b610848610a20565b600082815260046020526040902054156108745760405162461bcd60e51b815260040161016d90611b0b565b60009182526004602052604090912055565b60008181526004602052604081205490036108b35760405162461bcd60e51b815260040161016d90611909565b6000818152600460205260409020544210156108e15760405162461bcd60e51b815260040161016d90611955565b60006108f06020860186610d4d565b6109006040870160208801611b1b565b61091060608801604089016113dd565b6109206080890160608a016113dd565b61092d60808a018a611556565b61093d60c08c0160a08d01611b3c565b604051602001610953979695949392919061184e565b60405160208183030381529060405280519060200120905060008160405160200161097e9190611b8f565b6040516020818303038152906040528051906020012090506109ad858585846040516020016108029190611a39565b61065e5760405162461bcd60e51b815260040161016d90611bf7565b6109d1610a20565b6001600160a01b038116610a145760006040517f1e4fbdf700000000000000000000000000000000000000000000000000000000815260040161016d9190610d6e565b610a1d81610ac4565b50565b6000546001600160a01b0316331461056857336040517f118cdaa700000000000000000000000000000000000000000000000000000000815260040161016d9190610d6e565b6001600160a01b0381166000908152600360205260408120805467ffffffffffffffff169160019190610a998385611c07565b92506101000a81548167ffffffffffffffff021916908367ffffffffffffffff160217905550919050565b600080546001600160a01b038381167fffffffffffffffffffffffff0000000000000000000000000000000000000000831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b600082610b3a868685610b44565b1495945050505050565b600081815b84811015610b8757610b7382878784818110610b6757610b67611c2b565b90506020020135610b90565b915080610b7f81611c41565b915050610b49565b50949350505050565b6000818310610bac576000828152602084905260409020610bbb565b60008381526020839052604090205b90505b92915050565b60006001600160a01b038216610bbe565b610bde81610bc4565b82525050565b80610bde565b60408101610bf88285610bd5565b6103ad6020830184610be4565b600b8152602081017f756e737570706f72746564000000000000000000000000000000000000000000815290505b60200190565b60208082528101610bbe81610c05565b600060c08284031215610c5e57610c5e600080fd5b50919050565b600060208284031215610c7957610c79600080fd5b813567ffffffffffffffff811115610c9357610c93600080fd5b61044584828501610c49565b60208101610bbe8284610be4565b805b8114610a1d57600080fd5b8035610bbe81610cad565b600060208284031215610cda57610cda600080fd5b60006104458484610cba565b801515610bde565b60208101610bbe8284610ce6565b610caf81610bc4565b8035610bbe81610cfc565b60008060408385031215610d2657610d26600080fd5b6000610d328585610d05565b9250506020610d4385828601610cba565b9150509250929050565b600060208284031215610d6257610d62600080fd5b60006104458484610d05565b60208101610bbe8284610bd5565b60008060408385031215610d9257610d92600080fd5b823567ffffffffffffffff811115610dac57610dac600080fd5b610d3285828601610c49565b63ffffffff8116610caf565b8035610bbe81610db8565b60008083601f840112610de457610de4600080fd5b50813567ffffffffffffffff811115610dff57610dff600080fd5b602083019150836001820283011115610e1a57610e1a600080fd5b9250929050565b60ff8116610caf565b8035610bbe81610e21565b600080600080600060808688031215610e5057610e50600080fd5b6000610e5c8888610dc4565b9550506020610e6d88828901610dc4565b945050604086013567ffffffffffffffff811115610e8d57610e8d600080fd5b610e9988828901610dcf565b93509350506060610eac88828901610e2a565b9150509295509295909350565b67ffffffffffffffff8116610bde565b60208101610bbe8284610eb9565b600060808284031215610c5e57610c5e600080fd5b60008083601f840112610f0157610f01600080fd5b50813567ffffffffffffffff811115610f1c57610f1c600080fd5b602083019150836020820283011115610e1a57610e1a600080fd5b60008060008060c08587031215610f5057610f50600080fd5b6000610f5c8787610ed7565b945050608085013567ffffffffffffffff811115610f7c57610f7c600080fd5b610f8887828801610eec565b935093505060a0610f9b87828801610cba565b91505092959194509250565b60008060408385031215610fbd57610fbd600080fd5b6000610d328585610cba565b60008060008060608587031215610fe257610fe2600080fd5b843567ffffffffffffffff811115610ffc57610ffc600080fd5b61100887828801610c49565b945050602085013567ffffffffffffffff81111561102857611028600080fd5b61103487828801610eec565b93509350506040610f9b87828801610cba565b506000610bbe6020830183610d05565b67ffffffffffffffff8116610caf565b8035610bbe81611057565b506000610bbe6020830183611067565b506000610bbe6020830183610dc4565b63ffffffff8116610bde565b6000808335601e19368590030181126110b9576110b9600080fd5b830160208101925035905067ffffffffffffffff8111156110dc576110dc600080fd5b36819003821315610e1a57610e1a600080fd5b82818337506000910152565b81835260208301925061110f8284836110ef565b50601f01601f19160190565b506000610bbe6020830183610e2a565b60ff8116610bde565b600060c083016111448380611047565b61114e8582610bd5565b5061115c6020840184611072565b6111696020860182610eb9565b506111776040840184611082565b6111846040860182611092565b506111926060840184611082565b61119f6060860182611092565b506111ad608084018461109e565b85830360808701526111c08382846110fb565b925050506111d160a084018461111b565b6111de60a086018261112b565b509392505050565b60208082528101610bbb8184611134565b60218152602081017f54686973206d65737361676520776173206e65766572207375626d69747465648152601760f91b602082015290505b60400190565b60208082528101610bbe816111f7565b601a8152602081017f537461746520726f6f7420646f6573206e6f742065786973742e00000000000081529050610c33565b60208082528101610bbe81611245565b60308152602081017f417474656d7074696e6720746f2073656e642076616c756520776974686f757481527f2070726f766964696e67204574686572000000000000000000000000000000006020820152905061122f565b60208082528101610bbe81611287565b604081016112fd8285610be4565b6103ad6020830184610eb9565b60148152602081017f6661696c65642073656e64696e672076616c756500000000000000000000000081529050610c33565b60208082528101610bbe8161130a565b634e487b7160e01b600052601160045260246000fd5b80820180821115610bbe57610bbe61134c565b60218152602081017f4d657373616765207375626d6974746564206d6f7265207468616e206f6e636581527f21000000000000000000000000000000000000000000000000000000000000006020820152905061122f565b60208082528101610bbe81611375565b6000602082840312156113f2576113f2600080fd5b60006104458484610dc4565b60008135610bbe81610cfc565b60006001600160a01b03835b81169019929092169190911792915050565b6000610bbe6001600160a01b038316611440565b90565b6001600160a01b031690565b6000610bbe82611429565b6000610bbe8261144c565b61146b82611457565b61147681835461140b565b8255505050565b60008135610bbe81611057565b60007bffffffffffffffff00000000000000000000000000000000000000006114178460a01b90565b600067ffffffffffffffff8216610bbe565b6114ce826114b3565b61147681835461148a565b60008135610bbe81610db8565b60007fffffffff000000000000000000000000000000000000000000000000000000006114178460e01b90565b600063ffffffff8216610bbe565b61152a82611513565b6114768183546114e6565b600063ffffffff83611417565b61154b82611513565b611476818354611535565b6000808335601e193685900301811261157157611571600080fd5b8301915050803567ffffffffffffffff81111561159057611590600080fd5b602082019150600181023603821315610e1a57610e1a600080fd5b634e487b7160e01b600052604160045260246000fd5b634e487b7160e01b600052602260045260246000fd5b6002810460018216806115eb57607f821691505b602082108103610c5e57610c5e6115c1565b6000610bbe61143d8381565b611612836115fd565b815460001960089490940293841b1916921b91909117905550565b60006106e1818484611609565b818110156105525761164d60008261162d565b60010161163a565b601f8211156106e1576000818152602090206020601f8501048101602085101561167c5750805b6108396020601f86010483018261163a565b8267ffffffffffffffff8111156116a7576116a76115ab565b6116b182546115d7565b6116bc828285611655565b506000601f8211600181146116f157600083156116d95750848201355b600019600885021c198116600285021785555061065e565b600084815260209020601f19841690835b828110156117225787850135825560209485019460019092019101611702565b508482101561173f57600019601f86166008021c19848801351681555b5050505060020260010190555050565b6106e183838361168e565b60008135610bbe81610e21565b600060ff83611417565b600060ff8216610bbe565b61178582611771565b611476818354611767565b80828061179c816113fe565b90506117a88184611462565b505060208301806117b88261147d565b90506117c481846114c5565b505060408301806117d4826114d9565b90506117e08184611521565b5050506001810160608301806117f5826114d9565b90506118018184611542565b50505060028101608083016118168185611556565b915061182382828561174f565b5050506003810160a08301806118388261175a565b9050610839818461177c565b6105528282611790565b60c0810161185c828a610bd5565b6118696020830189610eb9565b6118766040830188611092565b6118836060830187611092565b81810360808301526118968185876110fb565b90506118a560a083018461112b565b98975050505050505050565b602a8152602081017f526f6f74206973206e6f74207075626c6973686564206f6e2074686973206d6581527f7373616765206275732e000000000000000000000000000000000000000000006020820152905061122f565b60208082528101610bbe816118b1565b60218152602081017f526f6f74206973206e6f7420636f6e736964657265642066696e616c207965748152601760f91b6020820152905061122f565b60208082528101610bbe81611919565b506000610bbe6020830183610cba565b61197f8180611047565b6119898382610bd5565b506119976020820182611047565b6119a46020840182610bd5565b506119b26040820182611965565b6119bf6040840182610be4565b506119cd6060820182611072565b6106e16060840182610eb9565b60808101610bbe8284611975565b60018152602081017f760000000000000000000000000000000000000000000000000000000000000081529050610c33565b60408082528101611a2a816119e8565b9050610bbe6020830184610be4565b611a438183610be4565b602001919050565b60338152602081017f496e76616c696420696e636c7573696f6e2070726f6f6620666f722076616c7581527f65207472616e73666572206d6573736167652e000000000000000000000000006020820152905061122f565b60208082528101610bbe81611a4b565b60258152602081017f526f6f7420616c726561647920616464656420746f20746865206d657373616781527f65206275730000000000000000000000000000000000000000000000000000006020820152905061122f565b60208082528101610bbe81611ab3565b600060208284031215611b3057611b30600080fd5b60006104458484611067565b600060208284031215611b5157611b51600080fd5b60006104458484610e2a565b60018152602081017f6d0000000000000000000000000000000000000000000000000000000000000081529050610c33565b60408082528101611a2a81611b5d565b60308152602081017f496e76616c696420696e636c7573696f6e2070726f6f6620666f722063726f7381527f7320636861696e206d6573736167652e000000000000000000000000000000006020820152905061122f565b60208082528101610bbe81611b9f565b67ffffffffffffffff918216919081169082820190811115610bbe57610bbe61134c565b634e487b7160e01b600052603260045260246000fd5b600060018201611c5357611c5361134c565b506001019056fea2646970667358221220c14e2710742599f7771122ca1f57bd3ae8ca32813cfd99de41e7782f2b9bc44a64736f6c63430008140033", + ABI: "[{\"inputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"constructor\"},{\"inputs\":[],\"name\":\"InvalidInitialization\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"NotInitializing\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"}],\"name\":\"OwnableInvalidOwner\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"}],\"name\":\"OwnableUnauthorizedAccount\",\"type\":\"error\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"uint64\",\"name\":\"version\",\"type\":\"uint64\"}],\"name\":\"Initialized\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"address\",\"name\":\"sender\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint64\",\"name\":\"sequence\",\"type\":\"uint64\"},{\"indexed\":false,\"internalType\":\"uint32\",\"name\":\"nonce\",\"type\":\"uint32\"},{\"indexed\":false,\"internalType\":\"uint32\",\"name\":\"topic\",\"type\":\"uint32\"},{\"indexed\":false,\"internalType\":\"bytes\",\"name\":\"payload\",\"type\":\"bytes\"},{\"indexed\":false,\"internalType\":\"uint8\",\"name\":\"consistencyLevel\",\"type\":\"uint8\"}],\"name\":\"LogMessagePublished\",\"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\":\"sender\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"receiver\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"uint64\",\"name\":\"sequence\",\"type\":\"uint64\"}],\"name\":\"ValueTransfer\",\"type\":\"event\"},{\"stateMutability\":\"payable\",\"type\":\"fallback\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"stateRoot\",\"type\":\"bytes32\"},{\"internalType\":\"uint256\",\"name\":\"activationTime\",\"type\":\"uint256\"}],\"name\":\"addStateRoot\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"stateRoot\",\"type\":\"bytes32\"}],\"name\":\"disableStateRoot\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"components\":[{\"internalType\":\"address\",\"name\":\"sender\",\"type\":\"address\"},{\"internalType\":\"uint64\",\"name\":\"sequence\",\"type\":\"uint64\"},{\"internalType\":\"uint32\",\"name\":\"nonce\",\"type\":\"uint32\"},{\"internalType\":\"uint32\",\"name\":\"topic\",\"type\":\"uint32\"},{\"internalType\":\"bytes\",\"name\":\"payload\",\"type\":\"bytes\"},{\"internalType\":\"uint8\",\"name\":\"consistencyLevel\",\"type\":\"uint8\"}],\"internalType\":\"structStructs.CrossChainMessage\",\"name\":\"crossChainMessage\",\"type\":\"tuple\"}],\"name\":\"getMessageTimeOfFinality\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"caller\",\"type\":\"address\"}],\"name\":\"initialize\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"owner\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint32\",\"name\":\"nonce\",\"type\":\"uint32\"},{\"internalType\":\"uint32\",\"name\":\"topic\",\"type\":\"uint32\"},{\"internalType\":\"bytes\",\"name\":\"payload\",\"type\":\"bytes\"},{\"internalType\":\"uint8\",\"name\":\"consistencyLevel\",\"type\":\"uint8\"}],\"name\":\"publishMessage\",\"outputs\":[{\"internalType\":\"uint64\",\"name\":\"sequence\",\"type\":\"uint64\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"receiver\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"}],\"name\":\"receiveValueFromL2\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"renounceOwnership\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"receiver\",\"type\":\"address\"}],\"name\":\"retrieveAllFunds\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"receiver\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"}],\"name\":\"sendValueToL2\",\"outputs\":[],\"stateMutability\":\"payable\",\"type\":\"function\"},{\"inputs\":[{\"components\":[{\"internalType\":\"address\",\"name\":\"sender\",\"type\":\"address\"},{\"internalType\":\"uint64\",\"name\":\"sequence\",\"type\":\"uint64\"},{\"internalType\":\"uint32\",\"name\":\"nonce\",\"type\":\"uint32\"},{\"internalType\":\"uint32\",\"name\":\"topic\",\"type\":\"uint32\"},{\"internalType\":\"bytes\",\"name\":\"payload\",\"type\":\"bytes\"},{\"internalType\":\"uint8\",\"name\":\"consistencyLevel\",\"type\":\"uint8\"}],\"internalType\":\"structStructs.CrossChainMessage\",\"name\":\"crossChainMessage\",\"type\":\"tuple\"},{\"internalType\":\"uint256\",\"name\":\"finalAfterTimestamp\",\"type\":\"uint256\"}],\"name\":\"storeCrossChainMessage\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"newOwner\",\"type\":\"address\"}],\"name\":\"transferOwnership\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"components\":[{\"internalType\":\"address\",\"name\":\"sender\",\"type\":\"address\"},{\"internalType\":\"uint64\",\"name\":\"sequence\",\"type\":\"uint64\"},{\"internalType\":\"uint32\",\"name\":\"nonce\",\"type\":\"uint32\"},{\"internalType\":\"uint32\",\"name\":\"topic\",\"type\":\"uint32\"},{\"internalType\":\"bytes\",\"name\":\"payload\",\"type\":\"bytes\"},{\"internalType\":\"uint8\",\"name\":\"consistencyLevel\",\"type\":\"uint8\"}],\"internalType\":\"structStructs.CrossChainMessage\",\"name\":\"crossChainMessage\",\"type\":\"tuple\"}],\"name\":\"verifyMessageFinalized\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"components\":[{\"internalType\":\"address\",\"name\":\"sender\",\"type\":\"address\"},{\"internalType\":\"uint64\",\"name\":\"sequence\",\"type\":\"uint64\"},{\"internalType\":\"uint32\",\"name\":\"nonce\",\"type\":\"uint32\"},{\"internalType\":\"uint32\",\"name\":\"topic\",\"type\":\"uint32\"},{\"internalType\":\"bytes\",\"name\":\"payload\",\"type\":\"bytes\"},{\"internalType\":\"uint8\",\"name\":\"consistencyLevel\",\"type\":\"uint8\"}],\"internalType\":\"structStructs.CrossChainMessage\",\"name\":\"message\",\"type\":\"tuple\"},{\"internalType\":\"bytes32[]\",\"name\":\"proof\",\"type\":\"bytes32[]\"},{\"internalType\":\"bytes32\",\"name\":\"root\",\"type\":\"bytes32\"}],\"name\":\"verifyMessageInclusion\",\"outputs\":[],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"components\":[{\"internalType\":\"address\",\"name\":\"sender\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"receiver\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"},{\"internalType\":\"uint64\",\"name\":\"sequence\",\"type\":\"uint64\"}],\"internalType\":\"structStructs.ValueTransferMessage\",\"name\":\"message\",\"type\":\"tuple\"},{\"internalType\":\"bytes32[]\",\"name\":\"proof\",\"type\":\"bytes32[]\"},{\"internalType\":\"bytes32\",\"name\":\"root\",\"type\":\"bytes32\"}],\"name\":\"verifyValueTransferInclusion\",\"outputs\":[],\"stateMutability\":\"view\",\"type\":\"function\"},{\"stateMutability\":\"payable\",\"type\":\"receive\"}]", + Bin: "0x60806040523480156200001157600080fd5b506200001d336200002d565b620000276200009e565b62000152565b7f9016d09d72d40fdae2fd8ceac6b6234c7706214fd39c1cd1e609a0528c19930080546001600160a01b031981166001600160a01b03848116918217845560405192169182907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e090600090a3505050565b7ff0c57e16840df040f15088dc2f81fe391c3923bec73e23a9662efc9c229c6a00805468010000000000000000900460ff1615620000ef5760405163f92ee8a960e01b815260040160405180910390fd5b80546001600160401b03908116146200014f5780546001600160401b0319166001600160401b0390811782556040519081527fc7f505b2f371ae2175ee4913f4499e1f2633a7b5936321eed1cdaeb6115181d29060200160405180910390a15b50565b611ff580620001626000396000f3fe6080604052600436106100ec5760003560e01c80639730886d1161008a578063b6aed0cb11610059578063b6aed0cb1461031e578063c4d66de81461033e578063e138a8d21461035e578063f2fde38b1461037e57610160565b80639730886d1461029157806399a3ad21146102b1578063b1454caa146102d1578063b201246f146102fe57610160565b8063346633fb116100c6578063346633fb1461020457806336d2da9014610217578063715018a6146102375780638da5cb5b1461024c57610160565b80630fcfbd11146101815780630fe9188e146101b757806333a88c72146101d757610160565b36610160576040517f346633fb000000000000000000000000000000000000000000000000000000008152309063346633fb9034906101319033908390600401610ebc565b6000604051808303818588803b15801561014a57600080fd5b505af115801561015e573d6000803e3d6000fd5b005b60405162461bcd60e51b815260040161017890610f0b565b60405180910390fd5b34801561018d57600080fd5b506101a161019c366004610f36565b61039e565b6040516101ae9190610f71565b60405180910390f35b3480156101c357600080fd5b5061015e6101d2366004610f97565b6103fd565b3480156101e357600080fd5b506101f76101f2366004610f36565b610443565b6040516101ae9190610fc0565b61015e610212366004610fe2565b610495565b34801561022357600080fd5b5061015e61023236600461101f565b61051f565b34801561024357600080fd5b5061015e61059e565b34801561025857600080fd5b507f9016d09d72d40fdae2fd8ceac6b6234c7706214fd39c1cd1e609a0528c199300546001600160a01b03166040516101ae9190611040565b34801561029d57600080fd5b5061015e6102ac36600461104e565b6105b2565b3480156102bd57600080fd5b5061015e6102cc366004610fe2565b610727565b3480156102dd57600080fd5b506102f16102ec366004611107565b6107a7565b6040516101ae919061119b565b34801561030a57600080fd5b5061015e610319366004611209565b610800565b34801561032a57600080fd5b5061015e610339366004611279565b610901565b34801561034a57600080fd5b5061015e61035936600461101f565b610947565b34801561036a57600080fd5b5061015e61037936600461129b565b610a89565b34801561038a57600080fd5b5061015e61039936600461101f565b610bcc565b600080826040516020016103b291906114b8565b60408051601f198184030181529181528151602092830120600081815292839052912054909150806103f65760405162461bcd60e51b815260040161017890611507565b9392505050565b610405610c23565b60008181526003602052604081205490036104325760405162461bcd60e51b815260040161017890611549565b600090815260036020526040812055565b6000808260405160200161045791906114b8565b60408051601f198184030181529181528151602092830120600081815292839052912054909150801580159061048d5750428111155b949350505050565b6000341180156104a457508034145b6104c05760405162461bcd60e51b8152600401610178906115b1565b60006104cb33610c97565b9050826001600160a01b0316336001600160a01b03167f50c536ac33a920f00755865b831d17bf4cff0b2e0345f65b16d52bfc004068b634846040516105129291906115c1565b60405180910390a3505050565b610527610c23565b6000816001600160a01b03164760405160006040518083038185875af1925050503d8060008114610574576040519150601f19603f3d011682016040523d82523d6000602084013e610579565b606091505b505090508061059a5760405162461bcd60e51b81526004016101789061160e565b5050565b6105a6610c23565b6105b06000610cf5565b565b60006105bf600130611634565b90506105f27f9016d09d72d40fdae2fd8ceac6b6234c7706214fd39c1cd1e609a0528c199300546001600160a01b031690565b6001600160a01b0316336001600160a01b031614806106195750336001600160a01b038216145b6106355760405162461bcd60e51b815260040161017890611689565b60006106418342611699565b905060008460405160200161065691906114b8565b60408051601f1981840301815291815281516020928301206000818152928390529120549091501561069a5760405162461bcd60e51b815260040161017890611704565b6000818152602081815260408220849055600191906106bb9088018861101f565b6001600160a01b0316815260208101919091526040016000908120906106e76080880160608901611714565b63ffffffff1681526020808201929092526040016000908120805460018101825590825291902086916004020161071e8282611b87565b50505050505050565b61072f610c23565b6000826001600160a01b03168260405160006040518083038185875af1925050503d806000811461077c576040519150601f19603f3d011682016040523d82523d6000602084013e610781565b606091505b50509050806107a25760405162461bcd60e51b81526004016101789061160e565b505050565b60006107b233610c97565b90507fb93c37389233beb85a3a726c3f15c2d15533ee74cb602f20f490dfffef775937338288888888886040516107ef9796959493929190611b91565b60405180910390a195945050505050565b600081815260036020526040812054900361082d5760405162461bcd60e51b815260040161017890611c4c565b60008181526003602052604090205442101561085b5760405162461bcd60e51b815260040161017890611c98565b60008460405160200161086e9190611d1d565b604051602081830303815290604052805190602001206040516020016108949190611d5d565b6040516020818303038152906040528051906020012090506108de848484846040516020016108c39190611d7c565b60405160208183030381529060405280519060200120610d7e565b6108fa5760405162461bcd60e51b815260040161017890611de6565b5050505050565b610909610c23565b600082815260036020526040902054156109355760405162461bcd60e51b815260040161017890611e4e565b60009182526003602052604090912055565b7ff0c57e16840df040f15088dc2f81fe391c3923bec73e23a9662efc9c229c6a00805468010000000000000000810460ff16159067ffffffffffffffff166000811580156109925750825b905060008267ffffffffffffffff1660011480156109af5750303b155b9050811580156109bd575080155b156109f4576040517ff92ee8a900000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b845467ffffffffffffffff191660011785558315610a2857845468ff00000000000000001916680100000000000000001785555b610a3186610d96565b8315610a8157845468ff0000000000000000191685556040517fc7f505b2f371ae2175ee4913f4499e1f2633a7b5936321eed1cdaeb6115181d290610a7890600190611e72565b60405180910390a15b505050505050565b6000818152600360205260408120549003610ab65760405162461bcd60e51b815260040161017890611c4c565b600081815260036020526040902054421015610ae45760405162461bcd60e51b815260040161017890611c98565b6000610af3602086018661101f565b610b036040870160208801611e80565b610b136060880160408901611714565b610b236080890160608a01611714565b610b3060808a018a611899565b610b4060c08c0160a08d01611ea1565b604051602001610b569796959493929190611b91565b604051602081830303815290604052805190602001209050600081604051602001610b819190611ef4565b604051602081830303815290604052805190602001209050610bb0858585846040516020016108c39190611d7c565b610a815760405162461bcd60e51b815260040161017890611f5c565b610bd4610c23565b6001600160a01b038116610c175760006040517f1e4fbdf70000000000000000000000000000000000000000000000000000000081526004016101789190611040565b610c2081610cf5565b50565b33610c557f9016d09d72d40fdae2fd8ceac6b6234c7706214fd39c1cd1e609a0528c199300546001600160a01b031690565b6001600160a01b0316146105b057336040517f118cdaa70000000000000000000000000000000000000000000000000000000081526004016101789190611040565b6001600160a01b0381166000908152600260205260408120805467ffffffffffffffff169160019190610cca8385611f6c565b92506101000a81548167ffffffffffffffff021916908367ffffffffffffffff160217905550919050565b7f9016d09d72d40fdae2fd8ceac6b6234c7706214fd39c1cd1e609a0528c19930080547fffffffffffffffffffffffff000000000000000000000000000000000000000081166001600160a01b03848116918217845560405192169182907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e090600090a3505050565b600082610d8c868685610da7565b1495945050505050565b610d9e610df3565b610c2081610e5a565b600081815b84811015610dea57610dd682878784818110610dca57610dca611f90565b90506020020135610e62565b915080610de281611fa6565b915050610dac565b50949350505050565b7ff0c57e16840df040f15088dc2f81fe391c3923bec73e23a9662efc9c229c6a005468010000000000000000900460ff166105b0576040517fd7e6bcf800000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b610bd4610df3565b6000818310610e7e576000828152602084905260409020610e8d565b60008381526020839052604090205b90505b92915050565b60006001600160a01b038216610e90565b610eb081610e96565b82525050565b80610eb0565b60408101610eca8285610ea7565b6103f66020830184610eb6565b600b8152602081017f756e737570706f72746564000000000000000000000000000000000000000000815290505b60200190565b60208082528101610e9081610ed7565b600060c08284031215610f3057610f30600080fd5b50919050565b600060208284031215610f4b57610f4b600080fd5b813567ffffffffffffffff811115610f6557610f65600080fd5b61048d84828501610f1b565b60208101610e908284610eb6565b805b8114610c2057600080fd5b8035610e9081610f7f565b600060208284031215610fac57610fac600080fd5b600061048d8484610f8c565b801515610eb0565b60208101610e908284610fb8565b610f8181610e96565b8035610e9081610fce565b60008060408385031215610ff857610ff8600080fd5b60006110048585610fd7565b925050602061101585828601610f8c565b9150509250929050565b60006020828403121561103457611034600080fd5b600061048d8484610fd7565b60208101610e908284610ea7565b6000806040838503121561106457611064600080fd5b823567ffffffffffffffff81111561107e5761107e600080fd5b61100485828601610f1b565b63ffffffff8116610f81565b8035610e908161108a565b60008083601f8401126110b6576110b6600080fd5b50813567ffffffffffffffff8111156110d1576110d1600080fd5b6020830191508360018202830111156110ec576110ec600080fd5b9250929050565b60ff8116610f81565b8035610e90816110f3565b60008060008060006080868803121561112257611122600080fd5b600061112e8888611096565b955050602061113f88828901611096565b945050604086013567ffffffffffffffff81111561115f5761115f600080fd5b61116b888289016110a1565b9350935050606061117e888289016110fc565b9150509295509295909350565b67ffffffffffffffff8116610eb0565b60208101610e90828461118b565b600060808284031215610f3057610f30600080fd5b60008083601f8401126111d3576111d3600080fd5b50813567ffffffffffffffff8111156111ee576111ee600080fd5b6020830191508360208202830111156110ec576110ec600080fd5b60008060008060c0858703121561122257611222600080fd5b600061122e87876111a9565b945050608085013567ffffffffffffffff81111561124e5761124e600080fd5b61125a878288016111be565b935093505060a061126d87828801610f8c565b91505092959194509250565b6000806040838503121561128f5761128f600080fd5b60006110048585610f8c565b600080600080606085870312156112b4576112b4600080fd5b843567ffffffffffffffff8111156112ce576112ce600080fd5b6112da87828801610f1b565b945050602085013567ffffffffffffffff8111156112fa576112fa600080fd5b611306878288016111be565b9350935050604061126d87828801610f8c565b506000610e906020830183610fd7565b67ffffffffffffffff8116610f81565b8035610e9081611329565b506000610e906020830183611339565b506000610e906020830183611096565b63ffffffff8116610eb0565b6000808335601e193685900301811261138b5761138b600080fd5b830160208101925035905067ffffffffffffffff8111156113ae576113ae600080fd5b368190038213156110ec576110ec600080fd5b82818337506000910152565b8183526020830192506113e18284836113c1565b50601f01601f19160190565b506000610e9060208301836110fc565b60ff8116610eb0565b600060c083016114168380611319565b6114208582610ea7565b5061142e6020840184611344565b61143b602086018261118b565b506114496040840184611354565b6114566040860182611364565b506114646060840184611354565b6114716060860182611364565b5061147f6080840184611370565b85830360808701526114928382846113cd565b925050506114a360a08401846113ed565b6114b060a08601826113fd565b509392505050565b60208082528101610e8d8184611406565b60218152602081017f54686973206d65737361676520776173206e65766572207375626d69747465648152601760f91b602082015290505b60400190565b60208082528101610e90816114c9565b601a8152602081017f537461746520726f6f7420646f6573206e6f742065786973742e00000000000081529050610f05565b60208082528101610e9081611517565b60308152602081017f417474656d7074696e6720746f2073656e642076616c756520776974686f757481527f2070726f766964696e672045746865720000000000000000000000000000000060208201529050611501565b60208082528101610e9081611559565b604081016115cf8285610eb6565b6103f6602083018461118b565b60148152602081017f6661696c65642073656e64696e672076616c756500000000000000000000000081529050610f05565b60208082528101610e90816115dc565b634e487b7160e01b600052601160045260246000fd5b6001600160a01b03918216919081169082820390811115610e9057610e9061161e565b60118152602081017f4e6f74206f776e6572206f722073656c6600000000000000000000000000000081529050610f05565b60208082528101610e9081611657565b80820180821115610e9057610e9061161e565b60218152602081017f4d657373616765207375626d6974746564206d6f7265207468616e206f6e636581527f210000000000000000000000000000000000000000000000000000000000000060208201529050611501565b60208082528101610e90816116ac565b60006020828403121561172957611729600080fd5b600061048d8484611096565b60008135610e9081610fce565b60006001600160a01b03835b81169019929092169190911792915050565b6000610e906001600160a01b038316611777565b90565b6001600160a01b031690565b6000610e9082611760565b6000610e9082611783565b6117a28261178e565b6117ad818354611742565b8255505050565b60008135610e9081611329565b60007bffffffffffffffff000000000000000000000000000000000000000061174e8460a01b90565b6000610e9067ffffffffffffffff83165b67ffffffffffffffff1690565b611811826117ea565b6117ad8183546117c1565b60008135610e908161108a565b60007fffffffff0000000000000000000000000000000000000000000000000000000061174e8460e01b90565b600063ffffffff8216610e90565b61186d82611856565b6117ad818354611829565b600063ffffffff8361174e565b61188e82611856565b6117ad818354611878565b6000808335601e19368590030181126118b4576118b4600080fd5b8301915050803567ffffffffffffffff8111156118d3576118d3600080fd5b6020820191506001810236038213156110ec576110ec600080fd5b634e487b7160e01b600052604160045260246000fd5b634e487b7160e01b600052602260045260246000fd5b60028104600182168061192e57607f821691505b602082108103610f3057610f30611904565b6000610e906117748381565b61195583611940565b815460001960089490940293841b1916921b91909117905550565b60006107a281848461194c565b8181101561059a57611990600082611970565b60010161197d565b601f8211156107a2576000818152602090206020601f850104810160208510156119bf5750805b6108fa6020601f86010483018261197d565b8267ffffffffffffffff8111156119ea576119ea6118ee565b6119f4825461191a565b6119ff828285611998565b506000601f821160018114611a345760008315611a1c5750848201355b600019600885021c1981166002850217855550610a81565b600084815260209020601f19841690835b82811015611a655787850135825560209485019460019092019101611a45565b5084821015611a8257600019601f86166008021c19848801351681555b5050505060020260010190555050565b6107a28383836119d1565b60008135610e90816110f3565b600060ff8361174e565b600060ff8216610e90565b611ac882611ab4565b6117ad818354611aaa565b808280611adf81611735565b9050611aeb8184611799565b50506020830180611afb826117b4565b9050611b078184611808565b50506040830180611b178261181c565b9050611b238184611864565b505050600181016060830180611b388261181c565b9050611b448184611885565b5050506002810160808301611b598185611899565b9150611b66828285611a92565b5050506003810160a0830180611b7b82611a9d565b90506108fa8184611abf565b61059a8282611ad3565b60c08101611b9f828a610ea7565b611bac602083018961118b565b611bb96040830188611364565b611bc66060830187611364565b8181036080830152611bd98185876113cd565b9050611be860a08301846113fd565b98975050505050505050565b602a8152602081017f526f6f74206973206e6f74207075626c6973686564206f6e2074686973206d6581527f7373616765206275732e0000000000000000000000000000000000000000000060208201529050611501565b60208082528101610e9081611bf4565b60218152602081017f526f6f74206973206e6f7420636f6e736964657265642066696e616c207965748152601760f91b60208201529050611501565b60208082528101610e9081611c5c565b506000610e906020830183610f8c565b611cc28180611319565b611ccc8382610ea7565b50611cda6020820182611319565b611ce76020840182610ea7565b50611cf56040820182611ca8565b611d026040840182610eb6565b50611d106060820182611344565b6107a2606084018261118b565b60808101610e908284611cb8565b60018152602081017f760000000000000000000000000000000000000000000000000000000000000081529050610f05565b60408082528101611d6d81611d2b565b9050610e906020830184610eb6565b611d868183610eb6565b602001919050565b60338152602081017f496e76616c696420696e636c7573696f6e2070726f6f6620666f722076616c7581527f65207472616e73666572206d6573736167652e0000000000000000000000000060208201529050611501565b60208082528101610e9081611d8e565b60258152602081017f526f6f7420616c726561647920616464656420746f20746865206d657373616781527f652062757300000000000000000000000000000000000000000000000000000060208201529050611501565b60208082528101610e9081611df6565b6000610e90826117fb565b610eb081611e5e565b60208101610e908284611e69565b600060208284031215611e9557611e95600080fd5b600061048d8484611339565b600060208284031215611eb657611eb6600080fd5b600061048d84846110fc565b60018152602081017f6d0000000000000000000000000000000000000000000000000000000000000081529050610f05565b60408082528101611d6d81611ec2565b60308152602081017f496e76616c696420696e636c7573696f6e2070726f6f6620666f722063726f7381527f7320636861696e206d6573736167652e0000000000000000000000000000000060208201529050611501565b60208082528101610e9081611f04565b67ffffffffffffffff918216919081169082820190811115610e9057610e9061161e565b634e487b7160e01b600052603260045260246000fd5b600060018201611fb857611fb861161e565b506001019056fea2646970667358221220b765f1dcb71fc1a477b68645e3b185262574a58a520c2f06b8b8758eaac24c8364736f6c63430008150033", } // MerkleTreeMessageBusABI is the input ABI used to generate the binding from. @@ -413,6 +413,27 @@ func (_MerkleTreeMessageBus *MerkleTreeMessageBusTransactorSession) DisableState return _MerkleTreeMessageBus.Contract.DisableStateRoot(&_MerkleTreeMessageBus.TransactOpts, stateRoot) } +// Initialize is a paid mutator transaction binding the contract method 0xc4d66de8. +// +// Solidity: function initialize(address caller) returns() +func (_MerkleTreeMessageBus *MerkleTreeMessageBusTransactor) Initialize(opts *bind.TransactOpts, caller common.Address) (*types.Transaction, error) { + return _MerkleTreeMessageBus.contract.Transact(opts, "initialize", caller) +} + +// Initialize is a paid mutator transaction binding the contract method 0xc4d66de8. +// +// Solidity: function initialize(address caller) returns() +func (_MerkleTreeMessageBus *MerkleTreeMessageBusSession) Initialize(caller common.Address) (*types.Transaction, error) { + return _MerkleTreeMessageBus.Contract.Initialize(&_MerkleTreeMessageBus.TransactOpts, caller) +} + +// Initialize is a paid mutator transaction binding the contract method 0xc4d66de8. +// +// Solidity: function initialize(address caller) returns() +func (_MerkleTreeMessageBus *MerkleTreeMessageBusTransactorSession) Initialize(caller common.Address) (*types.Transaction, error) { + return _MerkleTreeMessageBus.Contract.Initialize(&_MerkleTreeMessageBus.TransactOpts, caller) +} + // PublishMessage is a paid mutator transaction binding the contract method 0xb1454caa. // // Solidity: function publishMessage(uint32 nonce, uint32 topic, bytes payload, uint8 consistencyLevel) returns(uint64 sequence) @@ -602,6 +623,140 @@ func (_MerkleTreeMessageBus *MerkleTreeMessageBusTransactorSession) Receive() (* return _MerkleTreeMessageBus.Contract.Receive(&_MerkleTreeMessageBus.TransactOpts) } +// MerkleTreeMessageBusInitializedIterator is returned from FilterInitialized and is used to iterate over the raw logs and unpacked data for Initialized events raised by the MerkleTreeMessageBus contract. +type MerkleTreeMessageBusInitializedIterator struct { + Event *MerkleTreeMessageBusInitialized // 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 *MerkleTreeMessageBusInitializedIterator) 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(MerkleTreeMessageBusInitialized) + 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(MerkleTreeMessageBusInitialized) + 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 *MerkleTreeMessageBusInitializedIterator) Error() error { + return it.fail +} + +// Close terminates the iteration process, releasing any pending underlying +// resources. +func (it *MerkleTreeMessageBusInitializedIterator) Close() error { + it.sub.Unsubscribe() + return nil +} + +// MerkleTreeMessageBusInitialized represents a Initialized event raised by the MerkleTreeMessageBus contract. +type MerkleTreeMessageBusInitialized struct { + Version uint64 + Raw types.Log // Blockchain specific contextual infos +} + +// FilterInitialized is a free log retrieval operation binding the contract event 0xc7f505b2f371ae2175ee4913f4499e1f2633a7b5936321eed1cdaeb6115181d2. +// +// Solidity: event Initialized(uint64 version) +func (_MerkleTreeMessageBus *MerkleTreeMessageBusFilterer) FilterInitialized(opts *bind.FilterOpts) (*MerkleTreeMessageBusInitializedIterator, error) { + + logs, sub, err := _MerkleTreeMessageBus.contract.FilterLogs(opts, "Initialized") + if err != nil { + return nil, err + } + return &MerkleTreeMessageBusInitializedIterator{contract: _MerkleTreeMessageBus.contract, event: "Initialized", logs: logs, sub: sub}, nil +} + +// WatchInitialized is a free log subscription operation binding the contract event 0xc7f505b2f371ae2175ee4913f4499e1f2633a7b5936321eed1cdaeb6115181d2. +// +// Solidity: event Initialized(uint64 version) +func (_MerkleTreeMessageBus *MerkleTreeMessageBusFilterer) WatchInitialized(opts *bind.WatchOpts, sink chan<- *MerkleTreeMessageBusInitialized) (event.Subscription, error) { + + logs, sub, err := _MerkleTreeMessageBus.contract.WatchLogs(opts, "Initialized") + 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(MerkleTreeMessageBusInitialized) + if err := _MerkleTreeMessageBus.contract.UnpackLog(event, "Initialized", 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 +} + +// ParseInitialized is a log parse operation binding the contract event 0xc7f505b2f371ae2175ee4913f4499e1f2633a7b5936321eed1cdaeb6115181d2. +// +// Solidity: event Initialized(uint64 version) +func (_MerkleTreeMessageBus *MerkleTreeMessageBusFilterer) ParseInitialized(log types.Log) (*MerkleTreeMessageBusInitialized, error) { + event := new(MerkleTreeMessageBusInitialized) + if err := _MerkleTreeMessageBus.contract.UnpackLog(event, "Initialized", log); err != nil { + return nil, err + } + event.Raw = log + return event, nil +} + // MerkleTreeMessageBusLogMessagePublishedIterator is returned from FilterLogMessagePublished and is used to iterate over the raw logs and unpacked data for LogMessagePublished events raised by the MerkleTreeMessageBus contract. type MerkleTreeMessageBusLogMessagePublishedIterator struct { Event *MerkleTreeMessageBusLogMessagePublished // Event containing the contract specifics and raw log diff --git a/contracts/generated/MessageBus/MessageBus.go b/contracts/generated/MessageBus/MessageBus.go index a3bdc7b4f2..b9270558c9 100644 --- a/contracts/generated/MessageBus/MessageBus.go +++ b/contracts/generated/MessageBus/MessageBus.go @@ -41,8 +41,8 @@ type StructsCrossChainMessage struct { // MessageBusMetaData contains all meta data concerning the MessageBus contract. var MessageBusMetaData = &bind.MetaData{ - ABI: "[{\"inputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"constructor\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"}],\"name\":\"OwnableInvalidOwner\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"}],\"name\":\"OwnableUnauthorizedAccount\",\"type\":\"error\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"address\",\"name\":\"sender\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint64\",\"name\":\"sequence\",\"type\":\"uint64\"},{\"indexed\":false,\"internalType\":\"uint32\",\"name\":\"nonce\",\"type\":\"uint32\"},{\"indexed\":false,\"internalType\":\"uint32\",\"name\":\"topic\",\"type\":\"uint32\"},{\"indexed\":false,\"internalType\":\"bytes\",\"name\":\"payload\",\"type\":\"bytes\"},{\"indexed\":false,\"internalType\":\"uint8\",\"name\":\"consistencyLevel\",\"type\":\"uint8\"}],\"name\":\"LogMessagePublished\",\"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\":\"sender\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"receiver\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"uint64\",\"name\":\"sequence\",\"type\":\"uint64\"}],\"name\":\"ValueTransfer\",\"type\":\"event\"},{\"stateMutability\":\"payable\",\"type\":\"fallback\"},{\"inputs\":[{\"components\":[{\"internalType\":\"address\",\"name\":\"sender\",\"type\":\"address\"},{\"internalType\":\"uint64\",\"name\":\"sequence\",\"type\":\"uint64\"},{\"internalType\":\"uint32\",\"name\":\"nonce\",\"type\":\"uint32\"},{\"internalType\":\"uint32\",\"name\":\"topic\",\"type\":\"uint32\"},{\"internalType\":\"bytes\",\"name\":\"payload\",\"type\":\"bytes\"},{\"internalType\":\"uint8\",\"name\":\"consistencyLevel\",\"type\":\"uint8\"}],\"internalType\":\"structStructs.CrossChainMessage\",\"name\":\"crossChainMessage\",\"type\":\"tuple\"}],\"name\":\"getMessageTimeOfFinality\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"owner\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint32\",\"name\":\"nonce\",\"type\":\"uint32\"},{\"internalType\":\"uint32\",\"name\":\"topic\",\"type\":\"uint32\"},{\"internalType\":\"bytes\",\"name\":\"payload\",\"type\":\"bytes\"},{\"internalType\":\"uint8\",\"name\":\"consistencyLevel\",\"type\":\"uint8\"}],\"name\":\"publishMessage\",\"outputs\":[{\"internalType\":\"uint64\",\"name\":\"sequence\",\"type\":\"uint64\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"receiver\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"}],\"name\":\"receiveValueFromL2\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"renounceOwnership\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"receiver\",\"type\":\"address\"}],\"name\":\"retrieveAllFunds\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"receiver\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"}],\"name\":\"sendValueToL2\",\"outputs\":[],\"stateMutability\":\"payable\",\"type\":\"function\"},{\"inputs\":[{\"components\":[{\"internalType\":\"address\",\"name\":\"sender\",\"type\":\"address\"},{\"internalType\":\"uint64\",\"name\":\"sequence\",\"type\":\"uint64\"},{\"internalType\":\"uint32\",\"name\":\"nonce\",\"type\":\"uint32\"},{\"internalType\":\"uint32\",\"name\":\"topic\",\"type\":\"uint32\"},{\"internalType\":\"bytes\",\"name\":\"payload\",\"type\":\"bytes\"},{\"internalType\":\"uint8\",\"name\":\"consistencyLevel\",\"type\":\"uint8\"}],\"internalType\":\"structStructs.CrossChainMessage\",\"name\":\"crossChainMessage\",\"type\":\"tuple\"},{\"internalType\":\"uint256\",\"name\":\"finalAfterTimestamp\",\"type\":\"uint256\"}],\"name\":\"storeCrossChainMessage\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"newOwner\",\"type\":\"address\"}],\"name\":\"transferOwnership\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"components\":[{\"internalType\":\"address\",\"name\":\"sender\",\"type\":\"address\"},{\"internalType\":\"uint64\",\"name\":\"sequence\",\"type\":\"uint64\"},{\"internalType\":\"uint32\",\"name\":\"nonce\",\"type\":\"uint32\"},{\"internalType\":\"uint32\",\"name\":\"topic\",\"type\":\"uint32\"},{\"internalType\":\"bytes\",\"name\":\"payload\",\"type\":\"bytes\"},{\"internalType\":\"uint8\",\"name\":\"consistencyLevel\",\"type\":\"uint8\"}],\"internalType\":\"structStructs.CrossChainMessage\",\"name\":\"crossChainMessage\",\"type\":\"tuple\"}],\"name\":\"verifyMessageFinalized\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"stateMutability\":\"payable\",\"type\":\"receive\"}]", - Bin: "0x608060405234801561001057600080fd5b50338061003c576000604051631e4fbdf760e01b815260040161003391906100bd565b60405180910390fd5b6100458161004b565b506100cb565b600080546001600160a01b038381166001600160a01b0319831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b60006001600160a01b0382165b92915050565b6100b78161009b565b82525050565b602081016100a882846100ae565b61134d806100da6000396000f3fe6080604052600436106100b55760003560e01c80638da5cb5b1161006957806399a3ad211161004e57806399a3ad211461023b578063b1454caa1461025b578063f2fde38b1461028857610129565b80638da5cb5b146101f55780639730886d1461021b57610129565b8063346633fb1161009a578063346633fb146101ad57806336d2da90146101c0578063715018a6146101e057610129565b80630fcfbd111461014a57806333a88c721461018057610129565b36610129576040517f346633fb000000000000000000000000000000000000000000000000000000008152309063346633fb9034906100fa90339083906004016107d8565b6000604051808303818588803b15801561011357600080fd5b505af1158015610127573d6000803e3d6000fd5b005b60405162461bcd60e51b815260040161014190610827565b60405180910390fd5b34801561015657600080fd5b5061016a610165366004610852565b6102a8565b604051610177919061088d565b60405180910390f35b34801561018c57600080fd5b506101a061019b366004610852565b610308565b60405161017791906108a3565b6101276101bb3660046108e1565b61035b565b3480156101cc57600080fd5b506101276101db36600461091e565b6103e5565b3480156101ec57600080fd5b50610127610464565b34801561020157600080fd5b506000546001600160a01b0316604051610177919061093f565b34801561022757600080fd5b5061012761023636600461094d565b610478565b34801561024757600080fd5b506101276102563660046108e1565b610574565b34801561026757600080fd5b5061027b610276366004610a06565b6105f4565b6040516101779190610a9a565b34801561029457600080fd5b506101276102a336600461091e565b61064d565b600080826040516020016102bc9190610c47565b60408051601f19818403018152918152815160209283012060008181526001909352912054909150806103015760405162461bcd60e51b815260040161014190610cb2565b9392505050565b6000808260405160200161031c9190610c47565b60408051601f1981840301815291815281516020928301206000818152600190935291205490915080158015906103535750428111155b949350505050565b60003411801561036a57508034145b6103865760405162461bcd60e51b815260040161014190610d1a565b6000610391336106a4565b9050826001600160a01b0316336001600160a01b03167f50c536ac33a920f00755865b831d17bf4cff0b2e0345f65b16d52bfc004068b634846040516103d8929190610d2a565b60405180910390a3505050565b6103ed610702565b6000816001600160a01b03164760405160006040518083038185875af1925050503d806000811461043a576040519150601f19603f3d011682016040523d82523d6000602084013e61043f565b606091505b50509050806104605760405162461bcd60e51b815260040161014190610d77565b5050565b61046c610702565b6104766000610748565b565b610480610702565b600061048c8242610d9d565b90506000836040516020016104a19190610c47565b60408051601f19818403018152918152815160209283012060008181526001909352912054909150156104e65760405162461bcd60e51b815260040161014190610e08565b60008181526001602090815260408220849055600291906105099087018761091e565b6001600160a01b0316815260208101919091526040016000908120906105356080870160608801610e18565b63ffffffff1681526020808201929092526040016000908120805460018101825590825291902085916004020161056c8282611286565b505050505050565b61057c610702565b6000826001600160a01b03168260405160006040518083038185875af1925050503d80600081146105c9576040519150601f19603f3d011682016040523d82523d6000602084013e6105ce565b606091505b50509050806105ef5760405162461bcd60e51b815260040161014190610d77565b505050565b60006105ff336106a4565b90507fb93c37389233beb85a3a726c3f15c2d15533ee74cb602f20f490dfffef7759373382888888888860405161063c9796959493929190611290565b60405180910390a195945050505050565b610655610702565b6001600160a01b0381166106985760006040517f1e4fbdf7000000000000000000000000000000000000000000000000000000008152600401610141919061093f565b6106a181610748565b50565b6001600160a01b0381166000908152600360205260408120805467ffffffffffffffff1691600191906106d783856112f3565b92506101000a81548167ffffffffffffffff021916908367ffffffffffffffff160217905550919050565b6000546001600160a01b0316331461047657336040517f118cdaa7000000000000000000000000000000000000000000000000000000008152600401610141919061093f565b600080546001600160a01b038381167fffffffffffffffffffffffff0000000000000000000000000000000000000000831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b60006001600160a01b0382165b92915050565b6107cc816107b0565b82525050565b806107cc565b604081016107e682856107c3565b61030160208301846107d2565b600b8152602081017f756e737570706f72746564000000000000000000000000000000000000000000815290505b60200190565b602080825281016107bd816107f3565b600060c0828403121561084c5761084c600080fd5b50919050565b60006020828403121561086757610867600080fd5b813567ffffffffffffffff81111561088157610881600080fd5b61035384828501610837565b602081016107bd82846107d2565b8015156107cc565b602081016107bd828461089b565b6108ba816107b0565b81146106a157600080fd5b80356107bd816108b1565b806108ba565b80356107bd816108d0565b600080604083850312156108f7576108f7600080fd5b600061090385856108c5565b9250506020610914858286016108d6565b9150509250929050565b60006020828403121561093357610933600080fd5b600061035384846108c5565b602081016107bd82846107c3565b6000806040838503121561096357610963600080fd5b823567ffffffffffffffff81111561097d5761097d600080fd5b61090385828601610837565b63ffffffff81166108ba565b80356107bd81610989565b60008083601f8401126109b5576109b5600080fd5b50813567ffffffffffffffff8111156109d0576109d0600080fd5b6020830191508360018202830111156109eb576109eb600080fd5b9250929050565b60ff81166108ba565b80356107bd816109f2565b600080600080600060808688031215610a2157610a21600080fd5b6000610a2d8888610995565b9550506020610a3e88828901610995565b945050604086013567ffffffffffffffff811115610a5e57610a5e600080fd5b610a6a888289016109a0565b93509350506060610a7d888289016109fb565b9150509295509295909350565b67ffffffffffffffff81166107cc565b602081016107bd8284610a8a565b5060006107bd60208301836108c5565b67ffffffffffffffff81166108ba565b80356107bd81610ab8565b5060006107bd6020830183610ac8565b5060006107bd6020830183610995565b63ffffffff81166107cc565b6000808335601e1936859003018112610b1a57610b1a600080fd5b830160208101925035905067ffffffffffffffff811115610b3d57610b3d600080fd5b368190038213156109eb576109eb600080fd5b82818337506000910152565b818352602083019250610b70828483610b50565b50601f01601f19160190565b5060006107bd60208301836109fb565b60ff81166107cc565b600060c08301610ba58380610aa8565b610baf85826107c3565b50610bbd6020840184610ad3565b610bca6020860182610a8a565b50610bd86040840184610ae3565b610be56040860182610af3565b50610bf36060840184610ae3565b610c006060860182610af3565b50610c0e6080840184610aff565b8583036080870152610c21838284610b5c565b92505050610c3260a0840184610b7c565b610c3f60a0860182610b8c565b509392505050565b602080825281016103018184610b95565b60218152602081017f54686973206d65737361676520776173206e65766572207375626d697474656481527f2e00000000000000000000000000000000000000000000000000000000000000602082015290505b60400190565b602080825281016107bd81610c58565b60308152602081017f417474656d7074696e6720746f2073656e642076616c756520776974686f757481527f2070726f766964696e672045746865720000000000000000000000000000000060208201529050610cac565b602080825281016107bd81610cc2565b60408101610d3882856107d2565b6103016020830184610a8a565b60148152602081017f6661696c65642073656e64696e672076616c756500000000000000000000000081529050610821565b602080825281016107bd81610d45565b634e487b7160e01b600052601160045260246000fd5b808201808211156107bd576107bd610d87565b60218152602081017f4d657373616765207375626d6974746564206d6f7265207468616e206f6e636581527f210000000000000000000000000000000000000000000000000000000000000060208201529050610cac565b602080825281016107bd81610db0565b600060208284031215610e2d57610e2d600080fd5b60006103538484610995565b600081356107bd816108b1565b60006001600160a01b03835b81169019929092169190911792915050565b60006107bd6001600160a01b038316610e7b565b90565b6001600160a01b031690565b60006107bd82610e64565b60006107bd82610e87565b610ea682610e92565b610eb1818354610e46565b8255505050565b600081356107bd81610ab8565b60007bffffffffffffffff0000000000000000000000000000000000000000610e528460a01b90565b600067ffffffffffffffff82166107bd565b610f0982610eee565b610eb1818354610ec5565b600081356107bd81610989565b60007fffffffff00000000000000000000000000000000000000000000000000000000610e528460e01b90565b600063ffffffff82166107bd565b610f6582610f4e565b610eb1818354610f21565b600063ffffffff83610e52565b610f8682610f4e565b610eb1818354610f70565b6000808335601e1936859003018112610fac57610fac600080fd5b8301915050803567ffffffffffffffff811115610fcb57610fcb600080fd5b6020820191506001810236038213156109eb576109eb600080fd5b634e487b7160e01b600052604160045260246000fd5b634e487b7160e01b600052602260045260246000fd5b60028104600182168061102657607f821691505b60208210810361084c5761084c610ffc565b60006107bd610e788381565b61104d83611038565b815460001960089490940293841b1916921b91909117905550565b60006105ef818484611044565b8181101561046057611088600082611068565b600101611075565b601f8211156105ef576000818152602090206020601f850104810160208510156110b75750805b6110c96020601f860104830182611075565b5050505050565b8267ffffffffffffffff8111156110e9576110e9610fe6565b6110f38254611012565b6110fe828285611090565b506000601f821160018114611133576000831561111b5750848201355b600019600885021c198116600285021785555061056c565b600084815260209020601f19841690835b828110156111645787850135825560209485019460019092019101611144565b508482101561118157600019601f86166008021c19848801351681555b5050505060020260010190555050565b6105ef8383836110d0565b600081356107bd816109f2565b600060ff83610e52565b600060ff82166107bd565b6111c7826111b3565b610eb18183546111a9565b8082806111de81610e39565b90506111ea8184610e9d565b505060208301806111fa82610eb8565b90506112068184610f00565b5050604083018061121682610f14565b90506112228184610f5c565b50505060018101606083018061123782610f14565b90506112438184610f7d565b50505060028101608083016112588185610f91565b9150611265828285611191565b5050506003810160a083018061127a8261119c565b90506110c981846111be565b61046082826111d2565b60c0810161129e828a6107c3565b6112ab6020830189610a8a565b6112b86040830188610af3565b6112c56060830187610af3565b81810360808301526112d8818587610b5c565b90506112e760a0830184610b8c565b98975050505050505050565b67ffffffffffffffff9182169190811690828201908111156107bd576107bd610d8756fea264697066735822122042ebfb5e754c029c4a229a7ae2e07e276fa0abbea16ed56651f87297125bca7464736f6c63430008140033", + ABI: "[{\"inputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"constructor\"},{\"inputs\":[],\"name\":\"InvalidInitialization\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"NotInitializing\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"}],\"name\":\"OwnableInvalidOwner\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"}],\"name\":\"OwnableUnauthorizedAccount\",\"type\":\"error\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"uint64\",\"name\":\"version\",\"type\":\"uint64\"}],\"name\":\"Initialized\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"address\",\"name\":\"sender\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint64\",\"name\":\"sequence\",\"type\":\"uint64\"},{\"indexed\":false,\"internalType\":\"uint32\",\"name\":\"nonce\",\"type\":\"uint32\"},{\"indexed\":false,\"internalType\":\"uint32\",\"name\":\"topic\",\"type\":\"uint32\"},{\"indexed\":false,\"internalType\":\"bytes\",\"name\":\"payload\",\"type\":\"bytes\"},{\"indexed\":false,\"internalType\":\"uint8\",\"name\":\"consistencyLevel\",\"type\":\"uint8\"}],\"name\":\"LogMessagePublished\",\"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\":\"sender\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"receiver\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"uint64\",\"name\":\"sequence\",\"type\":\"uint64\"}],\"name\":\"ValueTransfer\",\"type\":\"event\"},{\"stateMutability\":\"payable\",\"type\":\"fallback\"},{\"inputs\":[{\"components\":[{\"internalType\":\"address\",\"name\":\"sender\",\"type\":\"address\"},{\"internalType\":\"uint64\",\"name\":\"sequence\",\"type\":\"uint64\"},{\"internalType\":\"uint32\",\"name\":\"nonce\",\"type\":\"uint32\"},{\"internalType\":\"uint32\",\"name\":\"topic\",\"type\":\"uint32\"},{\"internalType\":\"bytes\",\"name\":\"payload\",\"type\":\"bytes\"},{\"internalType\":\"uint8\",\"name\":\"consistencyLevel\",\"type\":\"uint8\"}],\"internalType\":\"structStructs.CrossChainMessage\",\"name\":\"crossChainMessage\",\"type\":\"tuple\"}],\"name\":\"getMessageTimeOfFinality\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"caller\",\"type\":\"address\"}],\"name\":\"initialize\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"owner\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint32\",\"name\":\"nonce\",\"type\":\"uint32\"},{\"internalType\":\"uint32\",\"name\":\"topic\",\"type\":\"uint32\"},{\"internalType\":\"bytes\",\"name\":\"payload\",\"type\":\"bytes\"},{\"internalType\":\"uint8\",\"name\":\"consistencyLevel\",\"type\":\"uint8\"}],\"name\":\"publishMessage\",\"outputs\":[{\"internalType\":\"uint64\",\"name\":\"sequence\",\"type\":\"uint64\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"receiver\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"}],\"name\":\"receiveValueFromL2\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"renounceOwnership\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"receiver\",\"type\":\"address\"}],\"name\":\"retrieveAllFunds\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"receiver\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"}],\"name\":\"sendValueToL2\",\"outputs\":[],\"stateMutability\":\"payable\",\"type\":\"function\"},{\"inputs\":[{\"components\":[{\"internalType\":\"address\",\"name\":\"sender\",\"type\":\"address\"},{\"internalType\":\"uint64\",\"name\":\"sequence\",\"type\":\"uint64\"},{\"internalType\":\"uint32\",\"name\":\"nonce\",\"type\":\"uint32\"},{\"internalType\":\"uint32\",\"name\":\"topic\",\"type\":\"uint32\"},{\"internalType\":\"bytes\",\"name\":\"payload\",\"type\":\"bytes\"},{\"internalType\":\"uint8\",\"name\":\"consistencyLevel\",\"type\":\"uint8\"}],\"internalType\":\"structStructs.CrossChainMessage\",\"name\":\"crossChainMessage\",\"type\":\"tuple\"},{\"internalType\":\"uint256\",\"name\":\"finalAfterTimestamp\",\"type\":\"uint256\"}],\"name\":\"storeCrossChainMessage\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"newOwner\",\"type\":\"address\"}],\"name\":\"transferOwnership\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"components\":[{\"internalType\":\"address\",\"name\":\"sender\",\"type\":\"address\"},{\"internalType\":\"uint64\",\"name\":\"sequence\",\"type\":\"uint64\"},{\"internalType\":\"uint32\",\"name\":\"nonce\",\"type\":\"uint32\"},{\"internalType\":\"uint32\",\"name\":\"topic\",\"type\":\"uint32\"},{\"internalType\":\"bytes\",\"name\":\"payload\",\"type\":\"bytes\"},{\"internalType\":\"uint8\",\"name\":\"consistencyLevel\",\"type\":\"uint8\"}],\"internalType\":\"structStructs.CrossChainMessage\",\"name\":\"crossChainMessage\",\"type\":\"tuple\"}],\"name\":\"verifyMessageFinalized\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"stateMutability\":\"payable\",\"type\":\"receive\"}]", + Bin: "0x608060405234801561001057600080fd5b5061001a33610027565b610022610098565b61014a565b7f9016d09d72d40fdae2fd8ceac6b6234c7706214fd39c1cd1e609a0528c19930080546001600160a01b031981166001600160a01b03848116918217845560405192169182907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e090600090a3505050565b7ff0c57e16840df040f15088dc2f81fe391c3923bec73e23a9662efc9c229c6a00805468010000000000000000900460ff16156100e85760405163f92ee8a960e01b815260040160405180910390fd5b80546001600160401b03908116146101475780546001600160401b0319166001600160401b0390811782556040519081527fc7f505b2f371ae2175ee4913f4499e1f2633a7b5936321eed1cdaeb6115181d29060200160405180910390a15b50565b6116b2806101596000396000f3fe6080604052600436106100c05760003560e01c80638da5cb5b11610074578063b1454caa1161004e578063b1454caa14610285578063c4d66de8146102b2578063f2fde38b146102d257610134565b80638da5cb5b146102005780639730886d1461024557806399a3ad211461026557610134565b8063346633fb116100a5578063346633fb146101b857806336d2da90146101cb578063715018a6146101eb57610134565b80630fcfbd111461015557806333a88c721461018b57610134565b36610134576040517f346633fb000000000000000000000000000000000000000000000000000000008152309063346633fb9034906101059033908390600401610aaa565b6000604051808303818588803b15801561011e57600080fd5b505af1158015610132573d6000803e3d6000fd5b005b60405162461bcd60e51b815260040161014c90610af9565b60405180910390fd5b34801561016157600080fd5b50610175610170366004610b24565b6102f2565b6040516101829190610b5f565b60405180910390f35b34801561019757600080fd5b506101ab6101a6366004610b24565b610351565b6040516101829190610b75565b6101326101c6366004610bb3565b6103a3565b3480156101d757600080fd5b506101326101e6366004610bf0565b61042d565b3480156101f757600080fd5b506101326104ac565b34801561020c57600080fd5b507f9016d09d72d40fdae2fd8ceac6b6234c7706214fd39c1cd1e609a0528c199300546001600160a01b03166040516101829190610c11565b34801561025157600080fd5b50610132610260366004610c1f565b6104c0565b34801561027157600080fd5b50610132610280366004610bb3565b610635565b34801561029157600080fd5b506102a56102a0366004610cd8565b6106b5565b6040516101829190610d6c565b3480156102be57600080fd5b506101326102cd366004610bf0565b61070e565b3480156102de57600080fd5b506101326102ed366004610bf0565b610850565b600080826040516020016103069190610f19565b60408051601f1981840301815291815281516020928301206000818152928390529120549091508061034a5760405162461bcd60e51b815260040161014c90610f84565b9392505050565b600080826040516020016103659190610f19565b60408051601f198184030181529181528151602092830120600081815292839052912054909150801580159061039b5750428111155b949350505050565b6000341180156103b257508034145b6103ce5760405162461bcd60e51b815260040161014c90610fec565b60006103d9336108a7565b9050826001600160a01b0316336001600160a01b03167f50c536ac33a920f00755865b831d17bf4cff0b2e0345f65b16d52bfc004068b63484604051610420929190610ffc565b60405180910390a3505050565b610435610905565b6000816001600160a01b03164760405160006040518083038185875af1925050503d8060008114610482576040519150601f19603f3d011682016040523d82523d6000602084013e610487565b606091505b50509050806104a85760405162461bcd60e51b815260040161014c90611049565b5050565b6104b4610905565b6104be6000610979565b565b60006104cd60013061106f565b90506105007f9016d09d72d40fdae2fd8ceac6b6234c7706214fd39c1cd1e609a0528c199300546001600160a01b031690565b6001600160a01b0316336001600160a01b031614806105275750336001600160a01b038216145b6105435760405162461bcd60e51b815260040161014c906110c4565b600061054f83426110d4565b90506000846040516020016105649190610f19565b60408051601f198184030181529181528151602092830120600081815292839052912054909150156105a85760405162461bcd60e51b815260040161014c9061113f565b6000818152602081815260408220849055600191906105c990880188610bf0565b6001600160a01b0316815260208101919091526040016000908120906105f5608088016060890161114f565b63ffffffff1681526020808201929092526040016000908120805460018101825590825291902086916004020161062c82826115c9565b50505050505050565b61063d610905565b6000826001600160a01b03168260405160006040518083038185875af1925050503d806000811461068a576040519150601f19603f3d011682016040523d82523d6000602084013e61068f565b606091505b50509050806106b05760405162461bcd60e51b815260040161014c90611049565b505050565b60006106c0336108a7565b90507fb93c37389233beb85a3a726c3f15c2d15533ee74cb602f20f490dfffef775937338288888888886040516106fd97969594939291906115d3565b60405180910390a195945050505050565b7ff0c57e16840df040f15088dc2f81fe391c3923bec73e23a9662efc9c229c6a00805468010000000000000000810460ff16159067ffffffffffffffff166000811580156107595750825b905060008267ffffffffffffffff1660011480156107765750303b155b905081158015610784575080155b156107bb576040517ff92ee8a900000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b845467ffffffffffffffff1916600117855583156107ef57845468ff00000000000000001916680100000000000000001785555b6107f886610a02565b831561084857845468ff0000000000000000191685556040517fc7f505b2f371ae2175ee4913f4499e1f2633a7b5936321eed1cdaeb6115181d29061083f9060019061164a565b60405180910390a15b505050505050565b610858610905565b6001600160a01b03811661089b5760006040517f1e4fbdf700000000000000000000000000000000000000000000000000000000815260040161014c9190610c11565b6108a481610979565b50565b6001600160a01b0381166000908152600260205260408120805467ffffffffffffffff1691600191906108da8385611658565b92506101000a81548167ffffffffffffffff021916908367ffffffffffffffff160217905550919050565b336109377f9016d09d72d40fdae2fd8ceac6b6234c7706214fd39c1cd1e609a0528c199300546001600160a01b031690565b6001600160a01b0316146104be57336040517f118cdaa700000000000000000000000000000000000000000000000000000000815260040161014c9190610c11565b7f9016d09d72d40fdae2fd8ceac6b6234c7706214fd39c1cd1e609a0528c19930080547fffffffffffffffffffffffff000000000000000000000000000000000000000081166001600160a01b03848116918217845560405192169182907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e090600090a3505050565b610a0a610a13565b6108a481610a7a565b7ff0c57e16840df040f15088dc2f81fe391c3923bec73e23a9662efc9c229c6a005468010000000000000000900460ff166104be576040517fd7e6bcf800000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b610858610a13565b60006001600160a01b0382165b92915050565b610a9e81610a82565b82525050565b80610a9e565b60408101610ab88285610a95565b61034a6020830184610aa4565b600b8152602081017f756e737570706f72746564000000000000000000000000000000000000000000815290505b60200190565b60208082528101610a8f81610ac5565b600060c08284031215610b1e57610b1e600080fd5b50919050565b600060208284031215610b3957610b39600080fd5b813567ffffffffffffffff811115610b5357610b53600080fd5b61039b84828501610b09565b60208101610a8f8284610aa4565b801515610a9e565b60208101610a8f8284610b6d565b610b8c81610a82565b81146108a457600080fd5b8035610a8f81610b83565b80610b8c565b8035610a8f81610ba2565b60008060408385031215610bc957610bc9600080fd5b6000610bd58585610b97565b9250506020610be685828601610ba8565b9150509250929050565b600060208284031215610c0557610c05600080fd5b600061039b8484610b97565b60208101610a8f8284610a95565b60008060408385031215610c3557610c35600080fd5b823567ffffffffffffffff811115610c4f57610c4f600080fd5b610bd585828601610b09565b63ffffffff8116610b8c565b8035610a8f81610c5b565b60008083601f840112610c8757610c87600080fd5b50813567ffffffffffffffff811115610ca257610ca2600080fd5b602083019150836001820283011115610cbd57610cbd600080fd5b9250929050565b60ff8116610b8c565b8035610a8f81610cc4565b600080600080600060808688031215610cf357610cf3600080fd5b6000610cff8888610c67565b9550506020610d1088828901610c67565b945050604086013567ffffffffffffffff811115610d3057610d30600080fd5b610d3c88828901610c72565b93509350506060610d4f88828901610ccd565b9150509295509295909350565b67ffffffffffffffff8116610a9e565b60208101610a8f8284610d5c565b506000610a8f6020830183610b97565b67ffffffffffffffff8116610b8c565b8035610a8f81610d8a565b506000610a8f6020830183610d9a565b506000610a8f6020830183610c67565b63ffffffff8116610a9e565b6000808335601e1936859003018112610dec57610dec600080fd5b830160208101925035905067ffffffffffffffff811115610e0f57610e0f600080fd5b36819003821315610cbd57610cbd600080fd5b82818337506000910152565b818352602083019250610e42828483610e22565b50601f01601f19160190565b506000610a8f6020830183610ccd565b60ff8116610a9e565b600060c08301610e778380610d7a565b610e818582610a95565b50610e8f6020840184610da5565b610e9c6020860182610d5c565b50610eaa6040840184610db5565b610eb76040860182610dc5565b50610ec56060840184610db5565b610ed26060860182610dc5565b50610ee06080840184610dd1565b8583036080870152610ef3838284610e2e565b92505050610f0460a0840184610e4e565b610f1160a0860182610e5e565b509392505050565b6020808252810161034a8184610e67565b60218152602081017f54686973206d65737361676520776173206e65766572207375626d697474656481527f2e00000000000000000000000000000000000000000000000000000000000000602082015290505b60400190565b60208082528101610a8f81610f2a565b60308152602081017f417474656d7074696e6720746f2073656e642076616c756520776974686f757481527f2070726f766964696e672045746865720000000000000000000000000000000060208201529050610f7e565b60208082528101610a8f81610f94565b6040810161100a8285610aa4565b61034a6020830184610d5c565b60148152602081017f6661696c65642073656e64696e672076616c756500000000000000000000000081529050610af3565b60208082528101610a8f81611017565b634e487b7160e01b600052601160045260246000fd5b6001600160a01b03918216919081169082820390811115610a8f57610a8f611059565b60118152602081017f4e6f74206f776e6572206f722073656c6600000000000000000000000000000081529050610af3565b60208082528101610a8f81611092565b80820180821115610a8f57610a8f611059565b60218152602081017f4d657373616765207375626d6974746564206d6f7265207468616e206f6e636581527f210000000000000000000000000000000000000000000000000000000000000060208201529050610f7e565b60208082528101610a8f816110e7565b60006020828403121561116457611164600080fd5b600061039b8484610c67565b60008135610a8f81610b83565b60006001600160a01b03835b81169019929092169190911792915050565b6000610a8f6001600160a01b0383166111b2565b90565b6001600160a01b031690565b6000610a8f8261119b565b6000610a8f826111be565b6111dd826111c9565b6111e881835461117d565b8255505050565b60008135610a8f81610d8a565b60007bffffffffffffffff00000000000000000000000000000000000000006111898460a01b90565b6000610a8f67ffffffffffffffff83165b67ffffffffffffffff1690565b61124c82611225565b6111e88183546111fc565b60008135610a8f81610c5b565b60007fffffffff000000000000000000000000000000000000000000000000000000006111898460e01b90565b600063ffffffff8216610a8f565b6112a882611291565b6111e8818354611264565b600063ffffffff83611189565b6112c982611291565b6111e88183546112b3565b6000808335601e19368590030181126112ef576112ef600080fd5b8301915050803567ffffffffffffffff81111561130e5761130e600080fd5b602082019150600181023603821315610cbd57610cbd600080fd5b634e487b7160e01b600052604160045260246000fd5b634e487b7160e01b600052602260045260246000fd5b60028104600182168061136957607f821691505b602082108103610b1e57610b1e61133f565b6000610a8f6111af8381565b6113908361137b565b815460001960089490940293841b1916921b91909117905550565b60006106b0818484611387565b818110156104a8576113cb6000826113ab565b6001016113b8565b601f8211156106b0576000818152602090206020601f850104810160208510156113fa5750805b61140c6020601f8601048301826113b8565b5050505050565b8267ffffffffffffffff81111561142c5761142c611329565b6114368254611355565b6114418282856113d3565b506000601f821160018114611476576000831561145e5750848201355b600019600885021c1981166002850217855550610848565b600084815260209020601f19841690835b828110156114a75787850135825560209485019460019092019101611487565b50848210156114c457600019601f86166008021c19848801351681555b5050505060020260010190555050565b6106b0838383611413565b60008135610a8f81610cc4565b600060ff83611189565b600060ff8216610a8f565b61150a826114f6565b6111e88183546114ec565b80828061152181611170565b905061152d81846111d4565b5050602083018061153d826111ef565b90506115498184611243565b5050604083018061155982611257565b9050611565818461129f565b50505060018101606083018061157a82611257565b905061158681846112c0565b505050600281016080830161159b81856112d4565b91506115a88282856114d4565b5050506003810160a08301806115bd826114df565b905061140c8184611501565b6104a88282611515565b60c081016115e1828a610a95565b6115ee6020830189610d5c565b6115fb6040830188610dc5565b6116086060830187610dc5565b818103608083015261161b818587610e2e565b905061162a60a0830184610e5e565b98975050505050505050565b6000610a8f82611236565b610a9e81611636565b60208101610a8f8284611641565b67ffffffffffffffff918216919081169082820190811115610a8f57610a8f61105956fea264697066735822122054b3bb8148cdbafe0aca39b986ef2610fd18ea01fc3554d63624fda624c6d21164736f6c63430008150033", } // MessageBusABI is the input ABI used to generate the binding from. @@ -305,6 +305,27 @@ func (_MessageBus *MessageBusCallerSession) VerifyMessageFinalized(crossChainMes return _MessageBus.Contract.VerifyMessageFinalized(&_MessageBus.CallOpts, crossChainMessage) } +// Initialize is a paid mutator transaction binding the contract method 0xc4d66de8. +// +// Solidity: function initialize(address caller) returns() +func (_MessageBus *MessageBusTransactor) Initialize(opts *bind.TransactOpts, caller common.Address) (*types.Transaction, error) { + return _MessageBus.contract.Transact(opts, "initialize", caller) +} + +// Initialize is a paid mutator transaction binding the contract method 0xc4d66de8. +// +// Solidity: function initialize(address caller) returns() +func (_MessageBus *MessageBusSession) Initialize(caller common.Address) (*types.Transaction, error) { + return _MessageBus.Contract.Initialize(&_MessageBus.TransactOpts, caller) +} + +// Initialize is a paid mutator transaction binding the contract method 0xc4d66de8. +// +// Solidity: function initialize(address caller) returns() +func (_MessageBus *MessageBusTransactorSession) Initialize(caller common.Address) (*types.Transaction, error) { + return _MessageBus.Contract.Initialize(&_MessageBus.TransactOpts, caller) +} + // PublishMessage is a paid mutator transaction binding the contract method 0xb1454caa. // // Solidity: function publishMessage(uint32 nonce, uint32 topic, bytes payload, uint8 consistencyLevel) returns(uint64 sequence) @@ -494,6 +515,140 @@ func (_MessageBus *MessageBusTransactorSession) Receive() (*types.Transaction, e return _MessageBus.Contract.Receive(&_MessageBus.TransactOpts) } +// MessageBusInitializedIterator is returned from FilterInitialized and is used to iterate over the raw logs and unpacked data for Initialized events raised by the MessageBus contract. +type MessageBusInitializedIterator struct { + Event *MessageBusInitialized // 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 *MessageBusInitializedIterator) 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(MessageBusInitialized) + 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(MessageBusInitialized) + 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 *MessageBusInitializedIterator) Error() error { + return it.fail +} + +// Close terminates the iteration process, releasing any pending underlying +// resources. +func (it *MessageBusInitializedIterator) Close() error { + it.sub.Unsubscribe() + return nil +} + +// MessageBusInitialized represents a Initialized event raised by the MessageBus contract. +type MessageBusInitialized struct { + Version uint64 + Raw types.Log // Blockchain specific contextual infos +} + +// FilterInitialized is a free log retrieval operation binding the contract event 0xc7f505b2f371ae2175ee4913f4499e1f2633a7b5936321eed1cdaeb6115181d2. +// +// Solidity: event Initialized(uint64 version) +func (_MessageBus *MessageBusFilterer) FilterInitialized(opts *bind.FilterOpts) (*MessageBusInitializedIterator, error) { + + logs, sub, err := _MessageBus.contract.FilterLogs(opts, "Initialized") + if err != nil { + return nil, err + } + return &MessageBusInitializedIterator{contract: _MessageBus.contract, event: "Initialized", logs: logs, sub: sub}, nil +} + +// WatchInitialized is a free log subscription operation binding the contract event 0xc7f505b2f371ae2175ee4913f4499e1f2633a7b5936321eed1cdaeb6115181d2. +// +// Solidity: event Initialized(uint64 version) +func (_MessageBus *MessageBusFilterer) WatchInitialized(opts *bind.WatchOpts, sink chan<- *MessageBusInitialized) (event.Subscription, error) { + + logs, sub, err := _MessageBus.contract.WatchLogs(opts, "Initialized") + 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(MessageBusInitialized) + if err := _MessageBus.contract.UnpackLog(event, "Initialized", 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 +} + +// ParseInitialized is a log parse operation binding the contract event 0xc7f505b2f371ae2175ee4913f4499e1f2633a7b5936321eed1cdaeb6115181d2. +// +// Solidity: event Initialized(uint64 version) +func (_MessageBus *MessageBusFilterer) ParseInitialized(log types.Log) (*MessageBusInitialized, error) { + event := new(MessageBusInitialized) + if err := _MessageBus.contract.UnpackLog(event, "Initialized", log); err != nil { + return nil, err + } + event.Raw = log + return event, nil +} + // MessageBusLogMessagePublishedIterator is returned from FilterLogMessagePublished and is used to iterate over the raw logs and unpacked data for LogMessagePublished events raised by the MessageBus contract. type MessageBusLogMessagePublishedIterator struct { Event *MessageBusLogMessagePublished // Event containing the contract specifics and raw log diff --git a/contracts/generated/ObsERC20/ObsERC20.go b/contracts/generated/ObsERC20/ObsERC20.go index f3aba77ce5..144601d523 100644 --- a/contracts/generated/ObsERC20/ObsERC20.go +++ b/contracts/generated/ObsERC20/ObsERC20.go @@ -32,7 +32,7 @@ var ( // ObsERC20MetaData contains all meta data concerning the ObsERC20 contract. var ObsERC20MetaData = &bind.MetaData{ ABI: "[{\"inputs\":[{\"internalType\":\"string\",\"name\":\"name\",\"type\":\"string\"},{\"internalType\":\"string\",\"name\":\"symbol\",\"type\":\"string\"}],\"stateMutability\":\"nonpayable\",\"type\":\"constructor\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"spender\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"allowance\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"needed\",\"type\":\"uint256\"}],\"name\":\"ERC20InsufficientAllowance\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"sender\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"balance\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"needed\",\"type\":\"uint256\"}],\"name\":\"ERC20InsufficientBalance\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"approver\",\"type\":\"address\"}],\"name\":\"ERC20InvalidApprover\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"receiver\",\"type\":\"address\"}],\"name\":\"ERC20InvalidReceiver\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"sender\",\"type\":\"address\"}],\"name\":\"ERC20InvalidSender\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"spender\",\"type\":\"address\"}],\"name\":\"ERC20InvalidSpender\",\"type\":\"error\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"spender\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"value\",\"type\":\"uint256\"}],\"name\":\"Approval\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"from\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"value\",\"type\":\"uint256\"}],\"name\":\"Transfer\",\"type\":\"event\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"spender\",\"type\":\"address\"}],\"name\":\"allowance\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"spender\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"value\",\"type\":\"uint256\"}],\"name\":\"approve\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"}],\"name\":\"balanceOf\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"decimals\",\"outputs\":[{\"internalType\":\"uint8\",\"name\":\"\",\"type\":\"uint8\"}],\"stateMutability\":\"view\",\"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\":\"to\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"value\",\"type\":\"uint256\"}],\"name\":\"transfer\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"from\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"value\",\"type\":\"uint256\"}],\"name\":\"transferFrom\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"}]", - Bin: "0x6080604052600580546001600160a01b03191673deb34a740eca1ec42c8b8204cbec0ba34fdd27f31790553480156200003757600080fd5b5060405162000e2738038062000e278339810160408190526200005a91620001b4565b818160036200006a83826200032e565b5060046200007982826200032e565b5050505050620003fa565b634e487b7160e01b600052604160045260246000fd5b601f19601f83011681016001600160401b0381118282101715620000c257620000c262000084565b6040525050565b6000620000d560405190565b9050620000e382826200009a565b919050565b60006001600160401b0382111562000104576200010462000084565b601f19601f83011660200192915050565b60005b838110156200013257818101518382015260200162000118565b50506000910152565b6000620001526200014c84620000e8565b620000c9565b9050828152602081018484840111156200016f576200016f600080fd5b6200017c84828562000115565b509392505050565b600082601f8301126200019a576200019a600080fd5b8151620001ac8482602086016200013b565b949350505050565b60008060408385031215620001cc57620001cc600080fd5b82516001600160401b03811115620001e757620001e7600080fd5b620001f58582860162000184565b602085015190935090506001600160401b03811115620002185762000218600080fd5b620002268582860162000184565b9150509250929050565b634e487b7160e01b600052602260045260246000fd5b6002810460018216806200025b57607f821691505b60208210810362000270576200027062000230565b50919050565b600062000287620002848381565b90565b92915050565b620002988362000276565b815460001960089490940293841b1916921b91909117905550565b6000620002c28184846200028d565b505050565b81811015620002e657620002dd600082620002b3565b600101620002c7565b5050565b601f821115620002c2576000818152602090206020601f85010481016020851015620003135750805b620003276020601f860104830182620002c7565b5050505050565b81516001600160401b038111156200034a576200034a62000084565b62000356825462000246565b62000363828285620002ea565b506020601f8211600181146200039b5760008315620003825750848201515b600019600885021c198116600285021785555062000327565b600084815260208120601f198516915b82811015620003cd5787850151825560209485019460019092019101620003ab565b5084821015620003eb5783870151600019601f87166008021c191681555b50505050600202600101905550565b610a1d806200040a6000396000f3fe608060405234801561001057600080fd5b50600436106100a35760003560e01c8063313ce5671161007657806395d89b411161005b57806395d89b411461012c578063a9059cbb14610134578063dd62ed3e1461014757600080fd5b8063313ce5671461010a57806370a082311461011957600080fd5b806306fdde03146100a8578063095ea7b3146100c657806318160ddd146100e657806323b872dd146100f7575b600080fd5b6100b061015a565b6040516100bd9190610719565b60405180910390f35b6100d96100d4366004610775565b6101ec565b6040516100bd91906107bc565b6002545b6040516100bd91906107d0565b6100d96101053660046107de565b610206565b60126040516100bd9190610837565b6100ea610127366004610845565b61022a565b6100b06102a9565b6100d9610142366004610775565b6102b8565b6100ea61015536600461086e565b6102c6565b606060038054610169906108b7565b80601f0160208091040260200160405190810160405280929190818152602001828054610195906108b7565b80156101e25780601f106101b7576101008083540402835291602001916101e2565b820191906000526020600020905b8154815290600101906020018083116101c557829003601f168201915b5050505050905090565b6000336101fa818585610381565b60019150505b92915050565b600033610214858285610393565b61021f8585856103ff565b506001949350505050565b60006001600160a01b038216320361025a576001600160a01b038216600090815260208190526040902054610200565b6001600160a01b0382163303610288576001600160a01b038216600090815260208190526040902054610200565b60405162461bcd60e51b81526004016102a0906108e3565b60405180910390fd5b606060048054610169906108b7565b6000336101fa8185856103ff565b6000326001600160a01b03841614806102e75750326001600160a01b038316145b1561031a576001600160a01b038084166000908152600160209081526040808320938616835292905220545b9050610200565b336001600160a01b03841614806103395750336001600160a01b038316145b15610369576001600160a01b03808416600090815260016020908152604080832093861683529290522054610313565b60405162461bcd60e51b81526004016102a09061091e565b61038e8383836001610490565b505050565b600061039f84846102c6565b905060001981146103f957818110156103ea578281836040517ffb8f41b20000000000000000000000000000000000000000000000000000000081526004016102a093929190610988565b6103f984848484036000610490565b50505050565b6001600160a01b0383166104425760006040517f96c6fd1e0000000000000000000000000000000000000000000000000000000081526004016102a091906109b0565b6001600160a01b0382166104855760006040517fec442f050000000000000000000000000000000000000000000000000000000081526004016102a091906109b0565b61038e838383610595565b6001600160a01b0384166104d35760006040517fe602df050000000000000000000000000000000000000000000000000000000081526004016102a091906109b0565b6001600160a01b0383166105165760006040517f94280d620000000000000000000000000000000000000000000000000000000081526004016102a091906109b0565b6001600160a01b03808516600090815260016020908152604080832093871683529290522082905580156103f957826001600160a01b0316846001600160a01b03167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b9258460405161058791906107d0565b60405180910390a350505050565b6001600160a01b0383166105c05780600260008282546105b591906109d4565b909155506106389050565b6001600160a01b03831660009081526020819052604090205481811015610619578381836040517fe450d38c0000000000000000000000000000000000000000000000000000000081526004016102a093929190610988565b6001600160a01b03841660009081526020819052604090209082900390555b6001600160a01b03821661065457600280548290039055610673565b6001600160a01b03821660009081526020819052604090208054820190555b816001600160a01b0316836001600160a01b03167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef836040516106b691906107d0565b60405180910390a3505050565b60005b838110156106de5781810151838201526020016106c6565b50506000910152565b60006106f1825190565b8084526020840193506107088185602086016106c3565b601f01601f19169290920192915050565b6020808252810161072a81846106e7565b9392505050565b60006001600160a01b038216610200565b61074b81610731565b811461075657600080fd5b50565b803561020081610742565b8061074b565b803561020081610764565b6000806040838503121561078b5761078b600080fd5b60006107978585610759565b92505060206107a88582860161076a565b9150509250929050565b8015155b82525050565b6020810161020082846107b2565b806107b6565b6020810161020082846107ca565b6000806000606084860312156107f6576107f6600080fd5b60006108028686610759565b935050602061081386828701610759565b92505060406108248682870161076a565b9150509250925092565b60ff81166107b6565b60208101610200828461082e565b60006020828403121561085a5761085a600080fd5b60006108668484610759565b949350505050565b6000806040838503121561088457610884600080fd5b60006108908585610759565b92505060206107a885828601610759565b634e487b7160e01b600052602260045260246000fd5b6002810460018216806108cb57607f821691505b6020821081036108dd576108dd6108a1565b50919050565b6020808252810161020081601f81527f4e6f7420616c6c6f77656420746f2072656164207468652062616c616e636500602082015260400190565b6020808252810161020081602181527f4e6f7420616c6c6f77656420746f20726561642074686520616c6c6f77616e6360208201527f6500000000000000000000000000000000000000000000000000000000000000604082015260600190565b6107b681610731565b60608101610996828661097f565b6109a360208301856107ca565b61086660408301846107ca565b60208101610200828461097f565b634e487b7160e01b600052601160045260246000fd5b80820180821115610200576102006109be56fea26469706673582212208605d75a03ddd59a97d9c8e27114de8317efd7bea6f2a10b229239dc96ed2d6d64736f6c63430008140033", + Bin: "0x6080604052600580546001600160a01b03191673deb34a740eca1ec42c8b8204cbec0ba34fdd27f31790553480156200003757600080fd5b5060405162000e2738038062000e278339810160408190526200005a91620001b4565b818160036200006a83826200032e565b5060046200007982826200032e565b5050505050620003fa565b634e487b7160e01b600052604160045260246000fd5b601f19601f83011681016001600160401b0381118282101715620000c257620000c262000084565b6040525050565b6000620000d560405190565b9050620000e382826200009a565b919050565b60006001600160401b0382111562000104576200010462000084565b601f19601f83011660200192915050565b60005b838110156200013257818101518382015260200162000118565b50506000910152565b6000620001526200014c84620000e8565b620000c9565b9050828152602081018484840111156200016f576200016f600080fd5b6200017c84828562000115565b509392505050565b600082601f8301126200019a576200019a600080fd5b8151620001ac8482602086016200013b565b949350505050565b60008060408385031215620001cc57620001cc600080fd5b82516001600160401b03811115620001e757620001e7600080fd5b620001f58582860162000184565b602085015190935090506001600160401b03811115620002185762000218600080fd5b620002268582860162000184565b9150509250929050565b634e487b7160e01b600052602260045260246000fd5b6002810460018216806200025b57607f821691505b60208210810362000270576200027062000230565b50919050565b600062000287620002848381565b90565b92915050565b620002988362000276565b815460001960089490940293841b1916921b91909117905550565b6000620002c28184846200028d565b505050565b81811015620002e657620002dd600082620002b3565b600101620002c7565b5050565b601f821115620002c2576000818152602090206020601f85010481016020851015620003135750805b620003276020601f860104830182620002c7565b5050505050565b81516001600160401b038111156200034a576200034a62000084565b62000356825462000246565b62000363828285620002ea565b506020601f8211600181146200039b5760008315620003825750848201515b600019600885021c198116600285021785555062000327565b600084815260208120601f198516915b82811015620003cd5787850151825560209485019460019092019101620003ab565b5084821015620003eb5783870151600019601f87166008021c191681555b50505050600202600101905550565b610a1d806200040a6000396000f3fe608060405234801561001057600080fd5b50600436106100a35760003560e01c8063313ce5671161007657806395d89b411161005b57806395d89b411461012c578063a9059cbb14610134578063dd62ed3e1461014757600080fd5b8063313ce5671461010a57806370a082311461011957600080fd5b806306fdde03146100a8578063095ea7b3146100c657806318160ddd146100e657806323b872dd146100f7575b600080fd5b6100b061015a565b6040516100bd9190610719565b60405180910390f35b6100d96100d4366004610775565b6101ec565b6040516100bd91906107bc565b6002545b6040516100bd91906107d0565b6100d96101053660046107de565b610206565b60126040516100bd9190610837565b6100ea610127366004610845565b61022a565b6100b06102a9565b6100d9610142366004610775565b6102b8565b6100ea61015536600461086e565b6102c6565b606060038054610169906108b7565b80601f0160208091040260200160405190810160405280929190818152602001828054610195906108b7565b80156101e25780601f106101b7576101008083540402835291602001916101e2565b820191906000526020600020905b8154815290600101906020018083116101c557829003601f168201915b5050505050905090565b6000336101fa818585610381565b60019150505b92915050565b600033610214858285610393565b61021f8585856103ff565b506001949350505050565b60006001600160a01b038216320361025a576001600160a01b038216600090815260208190526040902054610200565b6001600160a01b0382163303610288576001600160a01b038216600090815260208190526040902054610200565b60405162461bcd60e51b81526004016102a0906108e3565b60405180910390fd5b606060048054610169906108b7565b6000336101fa8185856103ff565b6000326001600160a01b03841614806102e75750326001600160a01b038316145b1561031a576001600160a01b038084166000908152600160209081526040808320938616835292905220545b9050610200565b336001600160a01b03841614806103395750336001600160a01b038316145b15610369576001600160a01b03808416600090815260016020908152604080832093861683529290522054610313565b60405162461bcd60e51b81526004016102a09061091e565b61038e8383836001610490565b505050565b600061039f84846102c6565b905060001981146103f957818110156103ea578281836040517ffb8f41b20000000000000000000000000000000000000000000000000000000081526004016102a093929190610988565b6103f984848484036000610490565b50505050565b6001600160a01b0383166104425760006040517f96c6fd1e0000000000000000000000000000000000000000000000000000000081526004016102a091906109b0565b6001600160a01b0382166104855760006040517fec442f050000000000000000000000000000000000000000000000000000000081526004016102a091906109b0565b61038e838383610595565b6001600160a01b0384166104d35760006040517fe602df050000000000000000000000000000000000000000000000000000000081526004016102a091906109b0565b6001600160a01b0383166105165760006040517f94280d620000000000000000000000000000000000000000000000000000000081526004016102a091906109b0565b6001600160a01b03808516600090815260016020908152604080832093871683529290522082905580156103f957826001600160a01b0316846001600160a01b03167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b9258460405161058791906107d0565b60405180910390a350505050565b6001600160a01b0383166105c05780600260008282546105b591906109d4565b909155506106389050565b6001600160a01b03831660009081526020819052604090205481811015610619578381836040517fe450d38c0000000000000000000000000000000000000000000000000000000081526004016102a093929190610988565b6001600160a01b03841660009081526020819052604090209082900390555b6001600160a01b03821661065457600280548290039055610673565b6001600160a01b03821660009081526020819052604090208054820190555b816001600160a01b0316836001600160a01b03167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef836040516106b691906107d0565b60405180910390a3505050565b60005b838110156106de5781810151838201526020016106c6565b50506000910152565b60006106f1825190565b8084526020840193506107088185602086016106c3565b601f01601f19169290920192915050565b6020808252810161072a81846106e7565b9392505050565b60006001600160a01b038216610200565b61074b81610731565b811461075657600080fd5b50565b803561020081610742565b8061074b565b803561020081610764565b6000806040838503121561078b5761078b600080fd5b60006107978585610759565b92505060206107a88582860161076a565b9150509250929050565b8015155b82525050565b6020810161020082846107b2565b806107b6565b6020810161020082846107ca565b6000806000606084860312156107f6576107f6600080fd5b60006108028686610759565b935050602061081386828701610759565b92505060406108248682870161076a565b9150509250925092565b60ff81166107b6565b60208101610200828461082e565b60006020828403121561085a5761085a600080fd5b60006108668484610759565b949350505050565b6000806040838503121561088457610884600080fd5b60006108908585610759565b92505060206107a885828601610759565b634e487b7160e01b600052602260045260246000fd5b6002810460018216806108cb57607f821691505b6020821081036108dd576108dd6108a1565b50919050565b6020808252810161020081601f81527f4e6f7420616c6c6f77656420746f2072656164207468652062616c616e636500602082015260400190565b6020808252810161020081602181527f4e6f7420616c6c6f77656420746f20726561642074686520616c6c6f77616e6360208201527f6500000000000000000000000000000000000000000000000000000000000000604082015260600190565b6107b681610731565b60608101610996828661097f565b6109a360208301856107ca565b61086660408301846107ca565b60208101610200828461097f565b634e487b7160e01b600052601160045260246000fd5b80820180821115610200576102006109be56fea2646970667358221220aba9443c9aef21109782a283d8f74e7df6eea5835c2ccc66f4ae7e5c36a42f3564736f6c63430008150033", } // ObsERC20ABI is the input ABI used to generate the binding from. diff --git a/contracts/generated/ObscuroBridge/ObscuroBridge.go b/contracts/generated/ObscuroBridge/ObscuroBridge.go index 49e5d5fa84..d637f2de84 100644 --- a/contracts/generated/ObscuroBridge/ObscuroBridge.go +++ b/contracts/generated/ObscuroBridge/ObscuroBridge.go @@ -32,7 +32,7 @@ var ( // ObscuroBridgeMetaData contains all meta data concerning the ObscuroBridge contract. var ObscuroBridgeMetaData = &bind.MetaData{ ABI: "[{\"inputs\":[],\"name\":\"AccessControlBadConfirmation\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"},{\"internalType\":\"bytes32\",\"name\":\"neededRole\",\"type\":\"bytes32\"}],\"name\":\"AccessControlUnauthorizedAccount\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"target\",\"type\":\"address\"}],\"name\":\"AddressEmptyCode\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"}],\"name\":\"AddressInsufficientBalance\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"FailedInnerCall\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"InvalidInitialization\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"NotInitializing\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"token\",\"type\":\"address\"}],\"name\":\"SafeERC20FailedOperation\",\"type\":\"error\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"uint64\",\"name\":\"version\",\"type\":\"uint64\"}],\"name\":\"Initialized\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"bytes32\",\"name\":\"role\",\"type\":\"bytes32\"},{\"indexed\":true,\"internalType\":\"bytes32\",\"name\":\"previousAdminRole\",\"type\":\"bytes32\"},{\"indexed\":true,\"internalType\":\"bytes32\",\"name\":\"newAdminRole\",\"type\":\"bytes32\"}],\"name\":\"RoleAdminChanged\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"bytes32\",\"name\":\"role\",\"type\":\"bytes32\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"sender\",\"type\":\"address\"}],\"name\":\"RoleGranted\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"bytes32\",\"name\":\"role\",\"type\":\"bytes32\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"sender\",\"type\":\"address\"}],\"name\":\"RoleRevoked\",\"type\":\"event\"},{\"inputs\":[],\"name\":\"ADMIN_ROLE\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"DEFAULT_ADMIN_ROLE\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"ERC20_TOKEN_ROLE\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"NATIVE_TOKEN_ROLE\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"messengerAddress\",\"type\":\"address\"}],\"name\":\"configure\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"role\",\"type\":\"bytes32\"}],\"name\":\"getRoleAdmin\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"role\",\"type\":\"bytes32\"},{\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"}],\"name\":\"grantRole\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"role\",\"type\":\"bytes32\"},{\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"}],\"name\":\"hasRole\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"messenger\",\"type\":\"address\"}],\"name\":\"initialize\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"newAdmin\",\"type\":\"address\"}],\"name\":\"promoteToAdmin\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"asset\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"},{\"internalType\":\"address\",\"name\":\"receiver\",\"type\":\"address\"}],\"name\":\"receiveAssets\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"asset\",\"type\":\"address\"}],\"name\":\"removeToken\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"role\",\"type\":\"bytes32\"},{\"internalType\":\"address\",\"name\":\"callerConfirmation\",\"type\":\"address\"}],\"name\":\"renounceRole\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"role\",\"type\":\"bytes32\"},{\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"}],\"name\":\"revokeRole\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"asset\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"},{\"internalType\":\"address\",\"name\":\"receiver\",\"type\":\"address\"}],\"name\":\"sendERC20\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"receiver\",\"type\":\"address\"}],\"name\":\"sendNative\",\"outputs\":[],\"stateMutability\":\"payable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"bridge\",\"type\":\"address\"}],\"name\":\"setRemoteBridge\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes4\",\"name\":\"interfaceId\",\"type\":\"bytes4\"}],\"name\":\"supportsInterface\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"asset\",\"type\":\"address\"},{\"internalType\":\"string\",\"name\":\"name\",\"type\":\"string\"},{\"internalType\":\"string\",\"name\":\"symbol\",\"type\":\"string\"}],\"name\":\"whitelistToken\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"}]", - Bin: "0x60806040526001805463ffffffff60a01b1916905534801561002057600080fd5b50611b84806100306000396000f3fe6080604052600436106101445760003560e01c806375b238fc116100c0578063a217fddf11610074578063c4d66de811610059578063c4d66de8146103b4578063d547741f146103d4578063e4c3ebc7146103f457600080fd5b8063a217fddf1461037f578063a381c8e21461039457600080fd5b806383bece4d116100a557806383bece4d146102f957806391d148541461031957806393b374421461035f57600080fd5b806375b238fc146102a557806375cb2672146102d957600080fd5b80632f2ff15d11610117578063498d82ab116100fc578063498d82ab146102315780635d872970146102515780635fa7b5841461028557600080fd5b80632f2ff15d146101f157806336568abe1461021157600080fd5b806301ffc9a71461014957806316ce81491461017f5780631888d712146101a1578063248a9ca3146101b4575b600080fd5b34801561015557600080fd5b50610169610164366004611320565b610428565b6040516101769190611353565b60405180910390f35b34801561018b57600080fd5b5061019f61019a366004611386565b610491565b005b61019f6101af366004611386565b6104eb565b3480156101c057600080fd5b506101e46101cf3660046113b8565b60009081526002602052604090206001015490565b60405161017691906113df565b3480156101fd57600080fd5b5061019f61020c3660046113ed565b6105f6565b34801561021d57600080fd5b5061019f61022c3660046113ed565b610621565b34801561023d57600080fd5b5061019f61024c36600461147c565b610672565b34801561025d57600080fd5b506101e47f9f225881f6e7ac8a885b63aa2269cbce78dd6a669864ccd2cd2517a8e709d73a81565b34801561029157600080fd5b5061019f6102a0366004611386565b610737565b3480156102b157600080fd5b506101e47fa49807205ce4d355092ef5a8a18f56e8913cf4a201fbe287825b095693c2177581565b3480156102e557600080fd5b5061019f6102f4366004611386565b61078b565b34801561030557600080fd5b5061019f61031436600461150c565b610866565b34801561032557600080fd5b506101696103343660046113ed565b60009182526002602090815260408084206001600160a01b0393909316845291905290205460ff1690565b34801561036b57600080fd5b5061019f61037a366004611386565b610980565b34801561038b57600080fd5b506101e4600081565b3480156103a057600080fd5b5061019f6103af36600461150c565b6109d4565b3480156103c057600080fd5b5061019f6103cf366004611386565b610ac3565b3480156103e057600080fd5b5061019f6103ef3660046113ed565b610c5c565b34801561040057600080fd5b506101e47fd2fb17ceaa388942529b17e0006ffc4d559f040dd4f2157b8070f17ad211057881565b60006001600160e01b031982167f7965db0b00000000000000000000000000000000000000000000000000000000148061048b57507f01ffc9a7000000000000000000000000000000000000000000000000000000006001600160e01b03198316145b92915050565b7fa49807205ce4d355092ef5a8a18f56e8913cf4a201fbe287825b095693c217756104bb81610c81565b506003805473ffffffffffffffffffffffffffffffffffffffff19166001600160a01b0392909216919091179055565b600034116105145760405162461bcd60e51b815260040161050b90611590565b60405180910390fd5b60006040518060400160405280348152602001836001600160a01b031681525060405160200161054491906115c8565b60408051601f19818403018152919052600354909150610573906001600160a01b03168260025b600080610c8e565b6001546040517f346633fb0000000000000000000000000000000000000000000000000000000081526001600160a01b039091169063346633fb9034906105c090869083906004016115d6565b6000604051808303818588803b1580156105d957600080fd5b505af11580156105ed573d6000803e3d6000fd5b50505050505050565b60008281526002602052604090206001015461061181610c81565b61061b8383610d9a565b50505050565b6001600160a01b0381163314610663576040517f6697b23200000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b61066d8282610e48565b505050565b7fa49807205ce4d355092ef5a8a18f56e8913cf4a201fbe287825b095693c2177561069c81610c81565b6106c67f9f225881f6e7ac8a885b63aa2269cbce78dd6a669864ccd2cd2517a8e709d73a87610d9a565b50600063458ffd6360e01b87878787876040516024016106ea95949392919061161d565b60408051601f198184030181529190526020810180516001600160e01b03166001600160e01b0319909316929092179091526003549091506105ed906001600160a01b031682600161056b565b7fa49807205ce4d355092ef5a8a18f56e8913cf4a201fbe287825b095693c2177561076181610c81565b61066d7f9f225881f6e7ac8a885b63aa2269cbce78dd6a669864ccd2cd2517a8e709d73a83610e48565b610793610ecf565b6000805473ffffffffffffffffffffffffffffffffffffffff19166001600160a01b038316908117909155604080517fa1a227fa000000000000000000000000000000000000000000000000000000008152905163a1a227fa916004808201926020929091908290030181865afa158015610812573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906108369190611669565b6001805473ffffffffffffffffffffffffffffffffffffffff19166001600160a01b039290921691909117905550565b6003546000546001600160a01b03918216911633146108975760405162461bcd60e51b815260040161050b906116e4565b806001600160a01b03166108a9610f38565b6001600160a01b0316146108cf5760405162461bcd60e51b815260040161050b9061174c565b6001600160a01b03841660009081527f32ef73018533fa188e9e42b313c0a4048c6052342b662fb7510c0d1abcea3413602052604090205460ff161561091f5761091a848484610fb5565b61061b565b6001600160a01b03841660009081527f13ad2d85210d477fe1a6e25654c8250308cf29b050a4bf0b039d70467486712c602052604090205460ff16156109685761091a82610fc0565b60405162461bcd60e51b815260040161050b906117b4565b7fa49807205ce4d355092ef5a8a18f56e8913cf4a201fbe287825b095693c217756109aa81610c81565b61066d7fa49807205ce4d355092ef5a8a18f56e8913cf4a201fbe287825b095693c2177583610d9a565b600082116109f45760405162461bcd60e51b815260040161050b906117f6565b6001600160a01b03831660009081527f32ef73018533fa188e9e42b313c0a4048c6052342b662fb7510c0d1abcea3413602052604090205460ff16610a4b5760405162461bcd60e51b815260040161050b90611806565b610a5783333085611032565b60006383bece4d60e01b848484604051602401610a769392919061188d565b60408051601f198184030181529190526020810180516001600160e01b03166001600160e01b03199093169290921790915260035490915061061b906001600160a01b031682600061056b565b7ff0c57e16840df040f15088dc2f81fe391c3923bec73e23a9662efc9c229c6a00805468010000000000000000810460ff16159067ffffffffffffffff16600081158015610b0e5750825b905060008267ffffffffffffffff166001148015610b2b5750303b155b905081158015610b39575080155b15610b70576040517ff92ee8a900000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b845467ffffffffffffffff191660011785558315610ba457845468ff00000000000000001916680100000000000000001785555b610bad8661078b565b610bd77fa49807205ce4d355092ef5a8a18f56e8913cf4a201fbe287825b095693c2177533610d9a565b50610c037fd2fb17ceaa388942529b17e0006ffc4d559f040dd4f2157b8070f17ad21105786000610d9a565b508315610c5457845468ff0000000000000000191685556040517fc7f505b2f371ae2175ee4913f4499e1f2633a7b5936321eed1cdaeb6115181d290610c4b906001906118d0565b60405180910390a15b505050505050565b600082815260026020526040902060010154610c7781610c81565b61061b8383610e48565b610c8b813361108c565b50565b60006040518060600160405280876001600160a01b0316815260200186815260200184815250604051602001610cc4919061197d565b60408051808303601f19018152919052600180549192506001600160a01b0382169163b1454caa917401000000000000000000000000000000000000000090910463ffffffff16906014610d17836119bd565b91906101000a81548163ffffffff021916908363ffffffff1602179055508684866040518563ffffffff1660e01b8152600401610d5794939291906119f5565b6020604051808303816000875af1158015610d76573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906105ed9190611a55565b60008281526002602090815260408083206001600160a01b038516845290915281205460ff16610e405760008381526002602090815260408083206001600160a01b03861684529091529020805460ff19166001179055610df83390565b6001600160a01b0316826001600160a01b0316847f2f8788117e7eff1d82e926ec794901d17c78024a50270940304540a733656f0d60405160405180910390a450600161048b565b50600061048b565b60008281526002602090815260408083206001600160a01b038516845290915281205460ff1615610e405760008381526002602090815260408083206001600160a01b0386168085529252808320805460ff1916905551339286917ff6391f5c32d9c69d2a47ea670b442974b53935d1edc7fd64eb21e047a839171b9190a450600161048b565b7ff0c57e16840df040f15088dc2f81fe391c3923bec73e23a9662efc9c229c6a005468010000000000000000900460ff16610f36576040517fd7e6bcf800000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b565b60008060009054906101000a90046001600160a01b03166001600160a01b03166363012de56040518163ffffffff1660e01b8152600401602060405180830381865afa158015610f8c573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610fb09190611669565b905090565b61066d8382846110ec565b6040516000906001600160a01b038316908281818181865af19150503d8060008114611008576040519150601f19603f3d011682016040523d82523d6000602084013e61100d565b606091505b505090508061102e5760405162461bcd60e51b815260040161050b90611aa8565b5050565b61061b84856001600160a01b03166323b872dd86868660405160240161105a93929190611ab8565b604051602081830303815290604052915060e01b6020820180516001600160e01b038381831617835250505050611112565b60008281526002602090815260408083206001600160a01b038516845290915290205460ff1661102e5780826040517fe2517d3f00000000000000000000000000000000000000000000000000000000815260040161050b9291906115d6565b61066d83846001600160a01b031663a9059cbb858560405160240161105a9291906115d6565b60006111276001600160a01b03841683611185565b9050805160001415801561114c57508080602001905181019061114a9190611af3565b155b1561066d57826040517f5274afe700000000000000000000000000000000000000000000000000000000815260040161050b9190611b14565b60606111938383600061119a565b9392505050565b6060814710156111d857306040517fcd78605900000000000000000000000000000000000000000000000000000000815260040161050b9190611b14565b600080856001600160a01b031684866040516111f49190611b44565b60006040518083038185875af1925050503d8060008114611231576040519150601f19603f3d011682016040523d82523d6000602084013e611236565b606091505b5091509150611246868383611250565b9695505050505050565b60608261126557611260826112bc565b611193565b815115801561127c57506001600160a01b0384163b155b156112b557836040517f9996b31500000000000000000000000000000000000000000000000000000000815260040161050b9190611b14565b5080611193565b8051156112cc5780518082602001fd5b6040517f1425ea4200000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6001600160e01b031981165b8114610c8b57600080fd5b803561048b816112fe565b60006020828403121561133557611335600080fd5b60006113418484611315565b949350505050565b8015155b82525050565b6020810161048b8284611349565b60006001600160a01b03821661048b565b61130a81611361565b803561048b81611372565b60006020828403121561139b5761139b600080fd5b6000611341848461137b565b8061130a565b803561048b816113a7565b6000602082840312156113cd576113cd600080fd5b600061134184846113ad565b8061134d565b6020810161048b82846113d9565b6000806040838503121561140357611403600080fd5b600061140f85856113ad565b92505060206114208582860161137b565b9150509250929050565b60008083601f84011261143f5761143f600080fd5b50813567ffffffffffffffff81111561145a5761145a600080fd5b60208301915083600182028301111561147557611475600080fd5b9250929050565b60008060008060006060868803121561149757611497600080fd5b60006114a3888861137b565b955050602086013567ffffffffffffffff8111156114c3576114c3600080fd5b6114cf8882890161142a565b9450945050604086013567ffffffffffffffff8111156114f1576114f1600080fd5b6114fd8882890161142a565b92509250509295509295909350565b60008060006060848603121561152457611524600080fd5b6000611530868661137b565b9350506020611541868287016113ad565b92505060406115528682870161137b565b9150509250925092565b600f8152602081017f456d707479207472616e736665722e0000000000000000000000000000000000815290505b60200190565b6020808252810161048b8161155c565b61134d81611361565b80516115b583826113d9565b50602081015161066d60208401826115a0565b6040810161048b82846115a9565b604081016115e482856115a0565b61119360208301846113d9565b82818337506000910152565b8183526020830192506116118284836115f1565b50601f01601f19160190565b6060810161162b82886115a0565b818103602083015261163e8186886115fd565b905081810360408301526116538184866115fd565b979650505050505050565b805161048b81611372565b60006020828403121561167e5761167e600080fd5b6000611341848461165e565b60308152602081017f436f6e74726163742063616c6c6572206973206e6f742074686520726567697381527f7465726564206d657373656e6765722100000000000000000000000000000000602082015290505b60400190565b6020808252810161048b8161168a565b60318152602081017f43726f737320636861696e206d65737361676520636f6d696e672066726f6d2081527f696e636f72726563742073656e64657221000000000000000000000000000000602082015290506116de565b6020808252810161048b816116f4565b60258152602081017f417474656d7074696e6720746f20776974686472617720756e6b6e6f776e206181527f737365742e000000000000000000000000000000000000000000000000000000602082015290506116de565b6020808252810161048b8161175c565b601a8152602081017f417474656d7074696e6720656d707479207472616e736665722e0000000000008152905061158a565b6020808252810161048b816117c4565b6020808252810161048b81604e81527f54686973206164647265737320686173206e6f74206265656e20676976656e2060208201527f61207479706520616e64206973207468757320636f6e73696465726564206e6f60408201527f742077686974656c69737465642e000000000000000000000000000000000000606082015260800190565b6060810161189b82866115a0565b6118a860208301856113d9565b61134160408301846115a0565b600067ffffffffffffffff821661048b565b61134d816118b5565b6020810161048b82846118c7565b60005b838110156118f95781810151838201526020016118e1565b50506000910152565b600061190c825190565b8084526020840193506119238185602086016118de565b601f01601f19169290920192915050565b8051600090606084019061194885826115a0565b50602083015184820360208601526119608282611902565b915050604083015161197560408601826113d9565b509392505050565b602080825281016111938184611934565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b63ffffffff16600063fffffffe1982016119d9576119d961198e565b5060010190565b63ffffffff811661134d565b60ff811661134d565b60808101611a0382876119e0565b611a1060208301866119e0565b8181036040830152611a228185611902565b9050611a3160608301846119ec565b95945050505050565b67ffffffffffffffff811661130a565b805161048b81611a3a565b600060208284031215611a6a57611a6a600080fd5b60006113418484611a4a565b60148152602081017f4661696c656420746f2073656e642045746865720000000000000000000000008152905061158a565b6020808252810161048b81611a76565b60608101611ac682866115a0565b611ad360208301856115a0565b61134160408301846113d9565b80151561130a565b805161048b81611ae0565b600060208284031215611b0857611b08600080fd5b60006113418484611ae8565b6020810161048b82846115a0565b6000611b2c825190565b611b3a8185602086016118de565b9290920192915050565b61048b8183611b2256fea2646970667358221220c0d6e7e9bdac6ee621cf30669202695a724feb35cde67924ae717a6ca45ff57b64736f6c63430008140033", + Bin: "0x60806040526001805463ffffffff60a01b1916905534801561002057600080fd5b50611b84806100306000396000f3fe6080604052600436106101445760003560e01c806375b238fc116100c0578063a217fddf11610074578063c4d66de811610059578063c4d66de8146103b4578063d547741f146103d4578063e4c3ebc7146103f457600080fd5b8063a217fddf1461037f578063a381c8e21461039457600080fd5b806383bece4d116100a557806383bece4d146102f957806391d148541461031957806393b374421461035f57600080fd5b806375b238fc146102a557806375cb2672146102d957600080fd5b80632f2ff15d11610117578063498d82ab116100fc578063498d82ab146102315780635d872970146102515780635fa7b5841461028557600080fd5b80632f2ff15d146101f157806336568abe1461021157600080fd5b806301ffc9a71461014957806316ce81491461017f5780631888d712146101a1578063248a9ca3146101b4575b600080fd5b34801561015557600080fd5b50610169610164366004611320565b610428565b6040516101769190611353565b60405180910390f35b34801561018b57600080fd5b5061019f61019a366004611386565b610491565b005b61019f6101af366004611386565b6104eb565b3480156101c057600080fd5b506101e46101cf3660046113b8565b60009081526002602052604090206001015490565b60405161017691906113df565b3480156101fd57600080fd5b5061019f61020c3660046113ed565b6105f6565b34801561021d57600080fd5b5061019f61022c3660046113ed565b610621565b34801561023d57600080fd5b5061019f61024c36600461147c565b610672565b34801561025d57600080fd5b506101e47f9f225881f6e7ac8a885b63aa2269cbce78dd6a669864ccd2cd2517a8e709d73a81565b34801561029157600080fd5b5061019f6102a0366004611386565b610737565b3480156102b157600080fd5b506101e47fa49807205ce4d355092ef5a8a18f56e8913cf4a201fbe287825b095693c2177581565b3480156102e557600080fd5b5061019f6102f4366004611386565b61078b565b34801561030557600080fd5b5061019f61031436600461150c565b610866565b34801561032557600080fd5b506101696103343660046113ed565b60009182526002602090815260408084206001600160a01b0393909316845291905290205460ff1690565b34801561036b57600080fd5b5061019f61037a366004611386565b610980565b34801561038b57600080fd5b506101e4600081565b3480156103a057600080fd5b5061019f6103af36600461150c565b6109d4565b3480156103c057600080fd5b5061019f6103cf366004611386565b610ac3565b3480156103e057600080fd5b5061019f6103ef3660046113ed565b610c5c565b34801561040057600080fd5b506101e47fd2fb17ceaa388942529b17e0006ffc4d559f040dd4f2157b8070f17ad211057881565b60006001600160e01b031982167f7965db0b00000000000000000000000000000000000000000000000000000000148061048b57507f01ffc9a7000000000000000000000000000000000000000000000000000000006001600160e01b03198316145b92915050565b7fa49807205ce4d355092ef5a8a18f56e8913cf4a201fbe287825b095693c217756104bb81610c81565b506003805473ffffffffffffffffffffffffffffffffffffffff19166001600160a01b0392909216919091179055565b600034116105145760405162461bcd60e51b815260040161050b90611590565b60405180910390fd5b60006040518060400160405280348152602001836001600160a01b031681525060405160200161054491906115c8565b60408051601f19818403018152919052600354909150610573906001600160a01b03168260025b600080610c8e565b6001546040517f346633fb0000000000000000000000000000000000000000000000000000000081526001600160a01b039091169063346633fb9034906105c090869083906004016115d6565b6000604051808303818588803b1580156105d957600080fd5b505af11580156105ed573d6000803e3d6000fd5b50505050505050565b60008281526002602052604090206001015461061181610c81565b61061b8383610d9a565b50505050565b6001600160a01b0381163314610663576040517f6697b23200000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b61066d8282610e48565b505050565b7fa49807205ce4d355092ef5a8a18f56e8913cf4a201fbe287825b095693c2177561069c81610c81565b6106c67f9f225881f6e7ac8a885b63aa2269cbce78dd6a669864ccd2cd2517a8e709d73a87610d9a565b50600063458ffd6360e01b87878787876040516024016106ea95949392919061161d565b60408051601f198184030181529190526020810180516001600160e01b03166001600160e01b0319909316929092179091526003549091506105ed906001600160a01b031682600161056b565b7fa49807205ce4d355092ef5a8a18f56e8913cf4a201fbe287825b095693c2177561076181610c81565b61066d7f9f225881f6e7ac8a885b63aa2269cbce78dd6a669864ccd2cd2517a8e709d73a83610e48565b610793610ecf565b6000805473ffffffffffffffffffffffffffffffffffffffff19166001600160a01b038316908117909155604080517fa1a227fa000000000000000000000000000000000000000000000000000000008152905163a1a227fa916004808201926020929091908290030181865afa158015610812573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906108369190611669565b6001805473ffffffffffffffffffffffffffffffffffffffff19166001600160a01b039290921691909117905550565b6003546000546001600160a01b03918216911633146108975760405162461bcd60e51b815260040161050b906116e4565b806001600160a01b03166108a9610f38565b6001600160a01b0316146108cf5760405162461bcd60e51b815260040161050b9061174c565b6001600160a01b03841660009081527f32ef73018533fa188e9e42b313c0a4048c6052342b662fb7510c0d1abcea3413602052604090205460ff161561091f5761091a848484610fb5565b61061b565b6001600160a01b03841660009081527f13ad2d85210d477fe1a6e25654c8250308cf29b050a4bf0b039d70467486712c602052604090205460ff16156109685761091a82610fc0565b60405162461bcd60e51b815260040161050b906117b4565b7fa49807205ce4d355092ef5a8a18f56e8913cf4a201fbe287825b095693c217756109aa81610c81565b61066d7fa49807205ce4d355092ef5a8a18f56e8913cf4a201fbe287825b095693c2177583610d9a565b600082116109f45760405162461bcd60e51b815260040161050b906117f6565b6001600160a01b03831660009081527f32ef73018533fa188e9e42b313c0a4048c6052342b662fb7510c0d1abcea3413602052604090205460ff16610a4b5760405162461bcd60e51b815260040161050b90611806565b610a5783333085611032565b60006383bece4d60e01b848484604051602401610a769392919061188d565b60408051601f198184030181529190526020810180516001600160e01b03166001600160e01b03199093169290921790915260035490915061061b906001600160a01b031682600061056b565b7ff0c57e16840df040f15088dc2f81fe391c3923bec73e23a9662efc9c229c6a00805468010000000000000000810460ff16159067ffffffffffffffff16600081158015610b0e5750825b905060008267ffffffffffffffff166001148015610b2b5750303b155b905081158015610b39575080155b15610b70576040517ff92ee8a900000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b845467ffffffffffffffff191660011785558315610ba457845468ff00000000000000001916680100000000000000001785555b610bad8661078b565b610bd77fa49807205ce4d355092ef5a8a18f56e8913cf4a201fbe287825b095693c2177533610d9a565b50610c037fd2fb17ceaa388942529b17e0006ffc4d559f040dd4f2157b8070f17ad21105786000610d9a565b508315610c5457845468ff0000000000000000191685556040517fc7f505b2f371ae2175ee4913f4499e1f2633a7b5936321eed1cdaeb6115181d290610c4b906001906118d0565b60405180910390a15b505050505050565b600082815260026020526040902060010154610c7781610c81565b61061b8383610e48565b610c8b813361108c565b50565b60006040518060600160405280876001600160a01b0316815260200186815260200184815250604051602001610cc4919061197d565b60408051808303601f19018152919052600180549192506001600160a01b0382169163b1454caa917401000000000000000000000000000000000000000090910463ffffffff16906014610d17836119bd565b91906101000a81548163ffffffff021916908363ffffffff1602179055508684866040518563ffffffff1660e01b8152600401610d5794939291906119f5565b6020604051808303816000875af1158015610d76573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906105ed9190611a55565b60008281526002602090815260408083206001600160a01b038516845290915281205460ff16610e405760008381526002602090815260408083206001600160a01b03861684529091529020805460ff19166001179055610df83390565b6001600160a01b0316826001600160a01b0316847f2f8788117e7eff1d82e926ec794901d17c78024a50270940304540a733656f0d60405160405180910390a450600161048b565b50600061048b565b60008281526002602090815260408083206001600160a01b038516845290915281205460ff1615610e405760008381526002602090815260408083206001600160a01b0386168085529252808320805460ff1916905551339286917ff6391f5c32d9c69d2a47ea670b442974b53935d1edc7fd64eb21e047a839171b9190a450600161048b565b7ff0c57e16840df040f15088dc2f81fe391c3923bec73e23a9662efc9c229c6a005468010000000000000000900460ff16610f36576040517fd7e6bcf800000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b565b60008060009054906101000a90046001600160a01b03166001600160a01b03166363012de56040518163ffffffff1660e01b8152600401602060405180830381865afa158015610f8c573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610fb09190611669565b905090565b61066d8382846110ec565b6040516000906001600160a01b038316908281818181865af19150503d8060008114611008576040519150601f19603f3d011682016040523d82523d6000602084013e61100d565b606091505b505090508061102e5760405162461bcd60e51b815260040161050b90611aa8565b5050565b61061b84856001600160a01b03166323b872dd86868660405160240161105a93929190611ab8565b604051602081830303815290604052915060e01b6020820180516001600160e01b038381831617835250505050611112565b60008281526002602090815260408083206001600160a01b038516845290915290205460ff1661102e5780826040517fe2517d3f00000000000000000000000000000000000000000000000000000000815260040161050b9291906115d6565b61066d83846001600160a01b031663a9059cbb858560405160240161105a9291906115d6565b60006111276001600160a01b03841683611185565b9050805160001415801561114c57508080602001905181019061114a9190611af3565b155b1561066d57826040517f5274afe700000000000000000000000000000000000000000000000000000000815260040161050b9190611b14565b60606111938383600061119a565b9392505050565b6060814710156111d857306040517fcd78605900000000000000000000000000000000000000000000000000000000815260040161050b9190611b14565b600080856001600160a01b031684866040516111f49190611b44565b60006040518083038185875af1925050503d8060008114611231576040519150601f19603f3d011682016040523d82523d6000602084013e611236565b606091505b5091509150611246868383611250565b9695505050505050565b60608261126557611260826112bc565b611193565b815115801561127c57506001600160a01b0384163b155b156112b557836040517f9996b31500000000000000000000000000000000000000000000000000000000815260040161050b9190611b14565b5080611193565b8051156112cc5780518082602001fd5b6040517f1425ea4200000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6001600160e01b031981165b8114610c8b57600080fd5b803561048b816112fe565b60006020828403121561133557611335600080fd5b60006113418484611315565b949350505050565b8015155b82525050565b6020810161048b8284611349565b60006001600160a01b03821661048b565b61130a81611361565b803561048b81611372565b60006020828403121561139b5761139b600080fd5b6000611341848461137b565b8061130a565b803561048b816113a7565b6000602082840312156113cd576113cd600080fd5b600061134184846113ad565b8061134d565b6020810161048b82846113d9565b6000806040838503121561140357611403600080fd5b600061140f85856113ad565b92505060206114208582860161137b565b9150509250929050565b60008083601f84011261143f5761143f600080fd5b50813567ffffffffffffffff81111561145a5761145a600080fd5b60208301915083600182028301111561147557611475600080fd5b9250929050565b60008060008060006060868803121561149757611497600080fd5b60006114a3888861137b565b955050602086013567ffffffffffffffff8111156114c3576114c3600080fd5b6114cf8882890161142a565b9450945050604086013567ffffffffffffffff8111156114f1576114f1600080fd5b6114fd8882890161142a565b92509250509295509295909350565b60008060006060848603121561152457611524600080fd5b6000611530868661137b565b9350506020611541868287016113ad565b92505060406115528682870161137b565b9150509250925092565b600f8152602081017f456d707479207472616e736665722e0000000000000000000000000000000000815290505b60200190565b6020808252810161048b8161155c565b61134d81611361565b80516115b583826113d9565b50602081015161066d60208401826115a0565b6040810161048b82846115a9565b604081016115e482856115a0565b61119360208301846113d9565b82818337506000910152565b8183526020830192506116118284836115f1565b50601f01601f19160190565b6060810161162b82886115a0565b818103602083015261163e8186886115fd565b905081810360408301526116538184866115fd565b979650505050505050565b805161048b81611372565b60006020828403121561167e5761167e600080fd5b6000611341848461165e565b60308152602081017f436f6e74726163742063616c6c6572206973206e6f742074686520726567697381527f7465726564206d657373656e6765722100000000000000000000000000000000602082015290505b60400190565b6020808252810161048b8161168a565b60318152602081017f43726f737320636861696e206d65737361676520636f6d696e672066726f6d2081527f696e636f72726563742073656e64657221000000000000000000000000000000602082015290506116de565b6020808252810161048b816116f4565b60258152602081017f417474656d7074696e6720746f20776974686472617720756e6b6e6f776e206181527f737365742e000000000000000000000000000000000000000000000000000000602082015290506116de565b6020808252810161048b8161175c565b601a8152602081017f417474656d7074696e6720656d707479207472616e736665722e0000000000008152905061158a565b6020808252810161048b816117c4565b6020808252810161048b81604e81527f54686973206164647265737320686173206e6f74206265656e20676976656e2060208201527f61207479706520616e64206973207468757320636f6e73696465726564206e6f60408201527f742077686974656c69737465642e000000000000000000000000000000000000606082015260800190565b6060810161189b82866115a0565b6118a860208301856113d9565b61134160408301846115a0565b600067ffffffffffffffff821661048b565b61134d816118b5565b6020810161048b82846118c7565b60005b838110156118f95781810151838201526020016118e1565b50506000910152565b600061190c825190565b8084526020840193506119238185602086016118de565b601f01601f19169290920192915050565b8051600090606084019061194885826115a0565b50602083015184820360208601526119608282611902565b915050604083015161197560408601826113d9565b509392505050565b602080825281016111938184611934565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b63ffffffff16600063fffffffe1982016119d9576119d961198e565b5060010190565b63ffffffff811661134d565b60ff811661134d565b60808101611a0382876119e0565b611a1060208301866119e0565b8181036040830152611a228185611902565b9050611a3160608301846119ec565b95945050505050565b67ffffffffffffffff811661130a565b805161048b81611a3a565b600060208284031215611a6a57611a6a600080fd5b60006113418484611a4a565b60148152602081017f4661696c656420746f2073656e642045746865720000000000000000000000008152905061158a565b6020808252810161048b81611a76565b60608101611ac682866115a0565b611ad360208301856115a0565b61134160408301846113d9565b80151561130a565b805161048b81611ae0565b600060208284031215611b0857611b08600080fd5b60006113418484611ae8565b6020810161048b82846115a0565b6000611b2c825190565b611b3a8185602086016118de565b9290920192915050565b61048b8183611b2256fea2646970667358221220d70bea5019f2062e22f351cd0d4cb8d9f734eac087a468eb72bff8b0aa790a6364736f6c63430008150033", } // ObscuroBridgeABI is the input ABI used to generate the binding from. diff --git a/contracts/generated/ProxyAdmin/ProxyAdmin.go b/contracts/generated/ProxyAdmin/ProxyAdmin.go index 036cc9703c..4161fde7b2 100644 --- a/contracts/generated/ProxyAdmin/ProxyAdmin.go +++ b/contracts/generated/ProxyAdmin/ProxyAdmin.go @@ -32,7 +32,7 @@ var ( // ProxyAdminMetaData contains all meta data concerning the ProxyAdmin contract. var ProxyAdminMetaData = &bind.MetaData{ ABI: "[{\"inputs\":[{\"internalType\":\"address\",\"name\":\"initialOwner\",\"type\":\"address\"}],\"stateMutability\":\"nonpayable\",\"type\":\"constructor\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"}],\"name\":\"OwnableInvalidOwner\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"}],\"name\":\"OwnableUnauthorizedAccount\",\"type\":\"error\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"previousOwner\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"newOwner\",\"type\":\"address\"}],\"name\":\"OwnershipTransferred\",\"type\":\"event\"},{\"inputs\":[],\"name\":\"UPGRADE_INTERFACE_VERSION\",\"outputs\":[{\"internalType\":\"string\",\"name\":\"\",\"type\":\"string\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"owner\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"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\":\"contractITransparentUpgradeableProxy\",\"name\":\"proxy\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"implementation\",\"type\":\"address\"},{\"internalType\":\"bytes\",\"name\":\"data\",\"type\":\"bytes\"}],\"name\":\"upgradeAndCall\",\"outputs\":[],\"stateMutability\":\"payable\",\"type\":\"function\"}]", - Bin: "0x608060405234801561001057600080fd5b506040516106ff3803806106ff83398101604081905261002f916100f8565b806001600160a01b038116610063576000604051631e4fbdf760e01b815260040161005a9190610130565b60405180910390fd5b61006c81610073565b505061013e565b600080546001600160a01b038381166001600160a01b0319831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b60006001600160a01b0382165b92915050565b6100df816100c3565b81146100ea57600080fd5b50565b80516100d0816100d6565b60006020828403121561010d5761010d600080fd5b600061011984846100ed565b949350505050565b61012a816100c3565b82525050565b602081016100d08284610121565b6105b28061014d6000396000f3fe60806040526004361061005a5760003560e01c80639623609d116100435780639623609d146100a5578063ad3cb1cc146100b8578063f2fde38b1461010e57600080fd5b8063715018a61461005f5780638da5cb5b14610076575b600080fd5b34801561006b57600080fd5b5061007461012e565b005b34801561008257600080fd5b506000546001600160a01b031660405161009c91906102fa565b60405180910390f35b6100746100b3366004610462565b610142565b3480156100c457600080fd5b506101016040518060400160405280600581526020017f352e302e3000000000000000000000000000000000000000000000000000000081525081565b60405161009c9190610523565b34801561011a57600080fd5b5061007461012936600461053b565b6101ca565b61013661022a565b6101406000610270565b565b61014a61022a565b6040517f4f1ef2860000000000000000000000000000000000000000000000000000000081526001600160a01b03841690634f1ef286903490610193908690869060040161055c565b6000604051808303818588803b1580156101ac57600080fd5b505af11580156101c0573d6000803e3d6000fd5b5050505050505050565b6101d261022a565b6001600160a01b03811661021e5760006040517f1e4fbdf700000000000000000000000000000000000000000000000000000000815260040161021591906102fa565b60405180910390fd5b61022781610270565b50565b6000546001600160a01b0316331461014057336040517f118cdaa700000000000000000000000000000000000000000000000000000000815260040161021591906102fa565b600080546001600160a01b038381167fffffffffffffffffffffffff0000000000000000000000000000000000000000831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b60006001600160a01b0382165b92915050565b6102f4816102d8565b82525050565b602081016102e582846102eb565b60006102e5826102d8565b61031c81610308565b811461022757600080fd5b80356102e581610313565b61031c816102d8565b80356102e581610332565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b601f19601f830116810181811067ffffffffffffffff8211171561039b5761039b610346565b6040525050565b60006103ad60405190565b90506103b98282610375565b919050565b600067ffffffffffffffff8211156103d8576103d8610346565b601f19601f83011660200192915050565b82818337506000910152565b6000610408610403846103be565b6103a2565b90508281526020810184848401111561042357610423600080fd5b61042e8482856103e9565b509392505050565b600082601f83011261044a5761044a600080fd5b813561045a8482602086016103f5565b949350505050565b60008060006060848603121561047a5761047a600080fd5b60006104868686610327565b93505060206104978682870161033b565b925050604084013567ffffffffffffffff8111156104b7576104b7600080fd5b6104c386828701610436565b9150509250925092565b60005b838110156104e85781810151838201526020016104d0565b50506000910152565b60006104fb825190565b8084526020840193506105128185602086016104cd565b601f01601f19169290920192915050565b6020808252810161053481846104f1565b9392505050565b60006020828403121561055057610550600080fd5b600061045a848461033b565b6040810161056a82856102eb565b818103602083015261045a81846104f156fea2646970667358221220b0f8a95a6e2425eadd967ffc0cf44240f936f4de811b02bbb90ac6935cf0ce6a64736f6c63430008140033", + Bin: "0x608060405234801561001057600080fd5b506040516106ff3803806106ff83398101604081905261002f916100f8565b806001600160a01b038116610063576000604051631e4fbdf760e01b815260040161005a9190610130565b60405180910390fd5b61006c81610073565b505061013e565b600080546001600160a01b038381166001600160a01b0319831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b60006001600160a01b0382165b92915050565b6100df816100c3565b81146100ea57600080fd5b50565b80516100d0816100d6565b60006020828403121561010d5761010d600080fd5b600061011984846100ed565b949350505050565b61012a816100c3565b82525050565b602081016100d08284610121565b6105b28061014d6000396000f3fe60806040526004361061005a5760003560e01c80639623609d116100435780639623609d146100a5578063ad3cb1cc146100b8578063f2fde38b1461010e57600080fd5b8063715018a61461005f5780638da5cb5b14610076575b600080fd5b34801561006b57600080fd5b5061007461012e565b005b34801561008257600080fd5b506000546001600160a01b031660405161009c91906102fa565b60405180910390f35b6100746100b3366004610462565b610142565b3480156100c457600080fd5b506101016040518060400160405280600581526020017f352e302e3000000000000000000000000000000000000000000000000000000081525081565b60405161009c9190610523565b34801561011a57600080fd5b5061007461012936600461053b565b6101ca565b61013661022a565b6101406000610270565b565b61014a61022a565b6040517f4f1ef2860000000000000000000000000000000000000000000000000000000081526001600160a01b03841690634f1ef286903490610193908690869060040161055c565b6000604051808303818588803b1580156101ac57600080fd5b505af11580156101c0573d6000803e3d6000fd5b5050505050505050565b6101d261022a565b6001600160a01b03811661021e5760006040517f1e4fbdf700000000000000000000000000000000000000000000000000000000815260040161021591906102fa565b60405180910390fd5b61022781610270565b50565b6000546001600160a01b0316331461014057336040517f118cdaa700000000000000000000000000000000000000000000000000000000815260040161021591906102fa565b600080546001600160a01b038381167fffffffffffffffffffffffff0000000000000000000000000000000000000000831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b60006001600160a01b0382165b92915050565b6102f4816102d8565b82525050565b602081016102e582846102eb565b60006102e5826102d8565b61031c81610308565b811461022757600080fd5b80356102e581610313565b61031c816102d8565b80356102e581610332565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b601f19601f830116810181811067ffffffffffffffff8211171561039b5761039b610346565b6040525050565b60006103ad60405190565b90506103b98282610375565b919050565b600067ffffffffffffffff8211156103d8576103d8610346565b601f19601f83011660200192915050565b82818337506000910152565b6000610408610403846103be565b6103a2565b90508281526020810184848401111561042357610423600080fd5b61042e8482856103e9565b509392505050565b600082601f83011261044a5761044a600080fd5b813561045a8482602086016103f5565b949350505050565b60008060006060848603121561047a5761047a600080fd5b60006104868686610327565b93505060206104978682870161033b565b925050604084013567ffffffffffffffff8111156104b7576104b7600080fd5b6104c386828701610436565b9150509250925092565b60005b838110156104e85781810151838201526020016104d0565b50506000910152565b60006104fb825190565b8084526020840193506105128185602086016104cd565b601f01601f19169290920192915050565b6020808252810161053481846104f1565b9392505050565b60006020828403121561055057610550600080fd5b600061045a848461033b565b6040810161056a82856102eb565b818103602083015261045a81846104f156fea2646970667358221220bc53b042dace43e275ea4e3c2111fb2632f7c79b2d985ac0664bd97ca15c79a164736f6c63430008150033", } // ProxyAdminABI is the input ABI used to generate the binding from. diff --git a/contracts/generated/SafeERC20/SafeERC20.go b/contracts/generated/SafeERC20/SafeERC20.go index 19355a4f9d..f35b55eed2 100644 --- a/contracts/generated/SafeERC20/SafeERC20.go +++ b/contracts/generated/SafeERC20/SafeERC20.go @@ -32,7 +32,7 @@ var ( // SafeERC20MetaData contains all meta data concerning the SafeERC20 contract. var SafeERC20MetaData = &bind.MetaData{ ABI: "[{\"inputs\":[{\"internalType\":\"address\",\"name\":\"spender\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"currentAllowance\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"requestedDecrease\",\"type\":\"uint256\"}],\"name\":\"SafeERC20FailedDecreaseAllowance\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"token\",\"type\":\"address\"}],\"name\":\"SafeERC20FailedOperation\",\"type\":\"error\"}]", - Bin: "0x60566037600b82828239805160001a607314602a57634e487b7160e01b600052600060045260246000fd5b30600052607381538281f3fe73000000000000000000000000000000000000000030146080604052600080fdfea26469706673582212200834405c28dfefdd147fe97412057aaa8d46ea72cd97cab9a17d38d82e1e2d5c64736f6c63430008140033", + Bin: "0x60566037600b82828239805160001a607314602a57634e487b7160e01b600052600060045260246000fd5b30600052607381538281f3fe73000000000000000000000000000000000000000030146080604052600080fdfea2646970667358221220bfc23a0f53ebed26b1686f1a14e3c95322dd51ff86eb83ade06e6f6cebf9894a64736f6c63430008150033", } // SafeERC20ABI is the input ABI used to generate the binding from. diff --git a/contracts/generated/Strings/Strings.go b/contracts/generated/Strings/Strings.go index 64db271322..97259d60b1 100644 --- a/contracts/generated/Strings/Strings.go +++ b/contracts/generated/Strings/Strings.go @@ -32,7 +32,7 @@ var ( // StringsMetaData contains all meta data concerning the Strings contract. var StringsMetaData = &bind.MetaData{ ABI: "[{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"value\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"length\",\"type\":\"uint256\"}],\"name\":\"StringsInsufficientHexLength\",\"type\":\"error\"}]", - Bin: "0x60566037600b82828239805160001a607314602a57634e487b7160e01b600052600060045260246000fd5b30600052607381538281f3fe73000000000000000000000000000000000000000030146080604052600080fdfea2646970667358221220f166ed4452d36dd4143cb215aa71e152ba4daaeb96f79a92b1d682a72555143b64736f6c63430008140033", + Bin: "0x60566037600b82828239805160001a607314602a57634e487b7160e01b600052600060045260246000fd5b30600052607381538281f3fe73000000000000000000000000000000000000000030146080604052600080fdfea26469706673582212203651aa30fb1f5f18cc2014cc59e9e9021d87428d65aa7e6b2376cc1a6bcf85ba64736f6c63430008150033", } // StringsABI is the input ABI used to generate the binding from. diff --git a/contracts/generated/SystemDeployer/SystemDeployer.go b/contracts/generated/SystemDeployer/SystemDeployer.go index 995c06a73c..07cd5882ed 100644 --- a/contracts/generated/SystemDeployer/SystemDeployer.go +++ b/contracts/generated/SystemDeployer/SystemDeployer.go @@ -32,7 +32,7 @@ var ( // SystemDeployerMetaData contains all meta data concerning the SystemDeployer contract. var SystemDeployerMetaData = &bind.MetaData{ ABI: "[{\"inputs\":[{\"internalType\":\"address\",\"name\":\"eoaAdmin\",\"type\":\"address\"}],\"stateMutability\":\"nonpayable\",\"type\":\"constructor\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"string\",\"name\":\"name\",\"type\":\"string\"},{\"indexed\":false,\"internalType\":\"address\",\"name\":\"contractAddress\",\"type\":\"address\"}],\"name\":\"SystemContractDeployed\",\"type\":\"event\"}]", - Bin: "0x60806040523480156200001157600080fd5b5060405162002501380380620025018339810160408190526200003491620001bf565b6200003f8162000046565b5062000307565b6000604051620000569062000169565b604051809103906000f08015801562000073573d6000803e3d6000fd5b509050600063485cc95560e01b833360405160240162000095929190620001fd565b604051602081830303815290604052906001600160e01b0319166020820180516001600160e01b03838183161783525050505090506000620000df8385846200012060201b60201c565b90507fbd64e14789a915ea657e42f2dbf0b973227708fa64b58766287637985d1ade698160405162000112919062000223565b60405180910390a150505050565b600080848484604051620001349062000177565b6200014293929190620002cb565b604051809103906000f0801580156200015f573d6000803e3d6000fd5b5095945050505050565b610e80806200035583390190565b61132c80620011d583390190565b60006001600160a01b0382165b92915050565b620001a38162000185565b8114620001af57600080fd5b50565b8051620001928162000198565b600060208284031215620001d657620001d6600080fd5b6000620001e48484620001b2565b949350505050565b620001f78162000185565b82525050565b604081016200020d8285620001ec565b6200021c6020830184620001ec565b9392505050565b604080825281016200025f81601981527f5472616e73616374696f6e73506f737450726f636573736f7200000000000000602082015260400190565b9050620001926020830184620001ec565b60005b838110156200028d57818101518382015260200162000273565b50506000910152565b6000620002a1825190565b808452602084019350620002ba81856020860162000270565b601f01601f19169290920192915050565b60608101620002db8286620001ec565b620002ea6020830185620001ec565b8181036040830152620002fe818462000296565b95945050505050565b603f80620003166000396000f3fe6080604052600080fdfea264697066735822122095ecebd4c7b5c8bccc7d44a2c6a4ed977570ad4c230a5edc80a524e46958ebf564736f6c63430008140033608060405234801561001057600080fd5b50610e60806100206000396000f3fe608060405234801561001057600080fd5b50600436106100d45760003560e01c80635f03a66111610081578063a217fddf1161005b578063a217fddf14610205578063d547741f1461020d578063ee546fd81461022057600080fd5b80635f03a6611461019457806364c55a9d146101bb57806391d14854146101ce57600080fd5b806336568abe116100b257806336568abe14610147578063485cc9551461015a578063508a50f41461016d57600080fd5b806301ffc9a7146100d9578063248a9ca3146101025780632f2ff15d14610132575b600080fd5b6100ec6100e73660046108a6565b610297565b6040516100f991906108d9565b60405180910390f35b6101256101103660046108f8565b60009081526020819052604090206001015490565b6040516100f9919061091f565b610145610140366004610952565b610330565b005b610145610155366004610952565b61035b565b61014561016836600461098f565b6103ac565b6101257ff16bb8781ef1311f8fe06747bcbe481e695502acdcb0cb8c03aa03899e39a59881565b6101257f33dd54660937884a707404066945db647918933f71cc471efc6d6d0c3665d8db81565b6101456101c9366004610a03565b610548565b6100ec6101dc366004610952565b6000918252602082815260408084206001600160a01b0393909316845291905290205460ff1690565b610125600081565b61014561021b366004610952565b6106ab565b61014561022e366004610a4b565b6001805480820182556000919091527fb10e2d527612073b26eecdfd717e6a320cf44b4afac2b0732d9fcbe2b7fa0cf60180547fffffffffffffffffffffffff0000000000000000000000000000000000000000166001600160a01b0392909216919091179055565b60007fffffffff0000000000000000000000000000000000000000000000000000000082167f7965db0b00000000000000000000000000000000000000000000000000000000148061032a57507f01ffc9a7000000000000000000000000000000000000000000000000000000007fffffffff000000000000000000000000000000000000000000000000000000008316145b92915050565b60008281526020819052604090206001015461034b816106d0565b61035583836106dd565b50505050565b6001600160a01b038116331461039d576040517f6697b23200000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6103a78282610787565b505050565b7ff0c57e16840df040f15088dc2f81fe391c3923bec73e23a9662efc9c229c6a00805468010000000000000000810460ff16159067ffffffffffffffff166000811580156103f75750825b905060008267ffffffffffffffff1660011480156104145750303b155b905081158015610422575080155b15610459576040517ff92ee8a900000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b845467ffffffffffffffff19166001178555831561048d57845468ff00000000000000001916680100000000000000001785555b6104986000886106dd565b506104c37ff16bb8781ef1311f8fe06747bcbe481e695502acdcb0cb8c03aa03899e39a598886106dd565b506104ee7f33dd54660937884a707404066945db647918933f71cc471efc6d6d0c3665d8db876106dd565b50831561053f57845468ff0000000000000000191685556040517fc7f505b2f371ae2175ee4913f4499e1f2633a7b5936321eed1cdaeb6115181d29061053690600190610a87565b60405180910390a15b50505050505050565b7f33dd54660937884a707404066945db647918933f71cc471efc6d6d0c3665d8db610572816106d0565b60008290036105b6576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016105ad90610a95565b60405180910390fd5b6040517f3357352afe45ddda257f56623a512152c527b6f11555ec2fb2fdbbe72ddece41906105e690849061091f565b60405180910390a160005b6001548110156103555760006001828154811061061057610610610ad0565b6000918252602090912001546040517f9f9976af0000000000000000000000000000000000000000000000000000000081526001600160a01b0390911691508190639f9976af906106679088908890600401610dce565b600060405180830381600087803b15801561068157600080fd5b505af1158015610695573d6000803e3d6000fd5b5050505050806106a490610df6565b90506105f1565b6000828152602081905260409020600101546106c6816106d0565b6103558383610787565b6106da813361080a565b50565b6000828152602081815260408083206001600160a01b038516845290915281205460ff1661077f576000838152602081815260408083206001600160a01b03861684529091529020805460ff191660011790556107373390565b6001600160a01b0316826001600160a01b0316847f2f8788117e7eff1d82e926ec794901d17c78024a50270940304540a733656f0d60405160405180910390a450600161032a565b50600061032a565b6000828152602081815260408083206001600160a01b038516845290915281205460ff161561077f576000838152602081815260408083206001600160a01b0386168085529252808320805460ff1916905551339286917ff6391f5c32d9c69d2a47ea670b442974b53935d1edc7fd64eb21e047a839171b9190a450600161032a565b6000828152602081815260408083206001600160a01b038516845290915290205460ff166108685780826040517fe2517d3f0000000000000000000000000000000000000000000000000000000081526004016105ad929190610e0f565b5050565b7fffffffff0000000000000000000000000000000000000000000000000000000081165b81146106da57600080fd5b803561032a8161086c565b6000602082840312156108bb576108bb600080fd5b60006108c7848461089b565b949350505050565b8015155b82525050565b6020810161032a82846108cf565b80610890565b803561032a816108e7565b60006020828403121561090d5761090d600080fd5b60006108c784846108ed565b806108d3565b6020810161032a8284610919565b60006001600160a01b03821661032a565b6108908161092d565b803561032a8161093e565b6000806040838503121561096857610968600080fd5b600061097485856108ed565b925050602061098585828601610947565b9150509250929050565b600080604083850312156109a5576109a5600080fd5b60006109748585610947565b60008083601f8401126109c6576109c6600080fd5b50813567ffffffffffffffff8111156109e1576109e1600080fd5b6020830191508360208202830111156109fc576109fc600080fd5b9250929050565b60008060208385031215610a1957610a19600080fd5b823567ffffffffffffffff811115610a3357610a33600080fd5b610a3f858286016109b1565b92509250509250929050565b600060208284031215610a6057610a60600080fd5b60006108c78484610947565b600067ffffffffffffffff821661032a565b6108d381610a6c565b6020810161032a8284610a7e565b6020808252810161032a81601a81527f4e6f207472616e73616374696f6e7320746f20636f6e76657274000000000000602082015260400190565b634e487b7160e01b600052603260045260246000fd5b60ff8116610890565b803561032a81610ae6565b50600061032a6020830183610aef565b60ff81166108d3565b50600061032a60208301836108ed565b50600061032a6020830183610947565b6108d38161092d565b6000808335601e1936859003018112610b5757610b57600080fd5b830160208101925035905067ffffffffffffffff811115610b7a57610b7a600080fd5b368190038213156109fc576109fc600080fd5b82818337506000910152565b818352602083019250610bad828483610b8d565b50601f01601f19160190565b801515610890565b803561032a81610bb9565b50600061032a6020830183610bc1565b67ffffffffffffffff8116610890565b803561032a81610bdc565b50600061032a6020830183610bec565b67ffffffffffffffff81166108d3565b60006101408301610c288380610afa565b610c328582610b0a565b50610c406020840184610b13565b610c4d6020860182610919565b50610c5b6040840184610b13565b610c686040860182610919565b50610c766060840184610b13565b610c836060860182610919565b50610c916080840184610b23565b610c9e6080860182610b33565b50610cac60a0840184610b13565b610cb960a0860182610919565b50610cc760c0840184610b3c565b85830360c0870152610cda838284610b99565b92505050610ceb60e0840184610b23565b610cf860e0860182610b33565b50610d07610100840184610bcc565b610d156101008601826108cf565b50610d24610120840184610bf7565b610d32610120860182610c07565b509392505050565b6000610d468383610c17565b9392505050565b6000823561013e1936849003018112610d6857610d68600080fd5b90910192915050565b818352602083019250600083602084028101838060005b87811015610dc1578484038952610d9f8284610d4d565b610da98582610d3a565b94505060208201602099909901989150600101610d88565b5091979650505050505050565b602080825281016108c7818486610d71565b634e487b7160e01b600052601160045260246000fd5b600060018201610e0857610e08610de0565b5060010190565b60408101610e1d8285610b33565b610d46602083018461091956fea26469706673582212200b0c2d8cf0499a5aeaa5aad09b481762d0bf45ab68c10f7ee4b33405bc19462d64736f6c6343000814003360a06040526040516200132c3803806200132c8339810160408190526200002691620004c5565b828162000034828262000098565b505081604051620000459062000351565b6200005191906200054c565b604051809103906000f0801580156200006e573d6000803e3d6000fd5b506001600160a01b03166080526200008f6200008960805190565b620000fe565b505050620005ac565b620000a38262000167565b6040516001600160a01b038316907fbc7cd75a20ee27fd9adebab32041f755214dbc6bffa90cc0225b39da2e5c2d3b90600090a2805115620000f057620000eb8282620001e4565b505050565b620000fa62000263565b5050565b7f7e644d79422f17c01e4894b5f4f588d331ebfa28653d42ae832dc59e38c9798f620001406000805160206200130c833981519152546001600160a01b031690565b82604051620001519291906200055c565b60405180910390a1620001648162000285565b50565b806001600160a01b03163b600003620001a05780604051634c9c8ce360e01b81526004016200019791906200054c565b60405180910390fd5b807f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc5b80546001600160a01b0319166001600160a01b039290921691909117905550565b6060600080846001600160a01b031684604051620002039190620005a0565b600060405180830381855af49150503d806000811462000240576040519150601f19603f3d011682016040523d82523d6000602084013e62000245565b606091505b50909250905062000258858383620002c9565b925050505b92915050565b3415620002835760405163b398979f60e01b815260040160405180910390fd5b565b6001600160a01b038116620002b2576000604051633173bdd160e11b81526004016200019791906200054c565b806000805160206200130c833981519152620001c3565b606082620002e257620002dc8262000327565b62000320565b8151158015620002fa57506001600160a01b0384163b155b156200031d5783604051639996b31560e01b81526004016200019791906200054c565b50805b9392505050565b805115620003385780518082602001fd5b604051630a12f52160e11b815260040160405180910390fd5b6106ff8062000c0d83390190565b60006001600160a01b0382166200025d565b6200037c816200035f565b81146200016457600080fd5b80516200025d8162000371565b634e487b7160e01b600052604160045260246000fd5b601f19601f83011681016001600160401b0381118282101715620003d357620003d362000395565b6040525050565b6000620003e660405190565b9050620003f48282620003ab565b919050565b60006001600160401b0382111562000415576200041562000395565b601f19601f83011660200192915050565b60005b838110156200044357818101518382015260200162000429565b50506000910152565b6000620004636200045d84620003f9565b620003da565b905082815260208101848484011115620004805762000480600080fd5b6200048d84828562000426565b509392505050565b600082601f830112620004ab57620004ab600080fd5b8151620004bd8482602086016200044c565b949350505050565b600080600060608486031215620004df57620004df600080fd5b6000620004ed868662000388565b9350506020620005008682870162000388565b604086015190935090506001600160401b03811115620005235762000523600080fd5b620005318682870162000495565b9150509250925092565b62000546816200035f565b82525050565b602081016200025d82846200053b565b604081016200056c82856200053b565b6200032060208301846200053b565b600062000586825190565b6200059681856020860162000426565b9290920192915050565b6200025d81836200057b565b608051610646620005c76000396000601001526106466000f3fe608060405261000c61000e565b005b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031633036100c5576000357fffffffff00000000000000000000000000000000000000000000000000000000167f4f1ef28600000000000000000000000000000000000000000000000000000000146100bb576040517fd2b576ec00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6100c36100cd565b565b6100c36100fc565b6000806100dd36600481846103cf565b8101906100ea919061054b565b915091506100f8828261010c565b5050565b6100c3610107610167565b61019f565b610115826101c3565b6040516001600160a01b038316907fbc7cd75a20ee27fd9adebab32041f755214dbc6bffa90cc0225b39da2e5c2d3b90600090a280511561015f5761015a828261026b565b505050565b6100f86102e3565b600061019a7f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc546001600160a01b031690565b905090565b3660008037600080366000845af43d6000803e8080156101be573d6000f35b3d6000fd5b806001600160a01b03163b60000361021257806040517f4c9c8ce300000000000000000000000000000000000000000000000000000000815260040161020991906105b2565b60405180910390fd5b7f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc80547fffffffffffffffffffffffff0000000000000000000000000000000000000000166001600160a01b0392909216919091179055565b6060600080846001600160a01b0316846040516102889190610606565b600060405180830381855af49150503d80600081146102c3576040519150601f19603f3d011682016040523d82523d6000602084013e6102c8565b606091505b50915091506102d885838361031b565b925050505b92915050565b34156100c3576040517fb398979f00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6060826103305761032b8261038a565b610383565b815115801561034757506001600160a01b0384163b155b1561038057836040517f9996b31500000000000000000000000000000000000000000000000000000000815260040161020991906105b2565b50805b9392505050565b80511561039a5780518082602001fd5b6040517f1425ea4200000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b50565b600080858511156103e2576103e2600080fd5b838611156103f2576103f2600080fd5b5050820193919092039150565b60006001600160a01b0382166102dd565b610419816103ff565b81146103cc57600080fd5b80356102dd81610410565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b601f19601f830116810181811067ffffffffffffffff821117156104845761048461042f565b6040525050565b600061049660405190565b90506104a2828261045e565b919050565b600067ffffffffffffffff8211156104c1576104c161042f565b601f19601f83011660200192915050565b82818337506000910152565b60006104f16104ec846104a7565b61048b565b90508281526020810184848401111561050c5761050c600080fd5b6105178482856104d2565b509392505050565b600082601f83011261053357610533600080fd5b81356105438482602086016104de565b949350505050565b6000806040838503121561056157610561600080fd5b600061056d8585610424565b925050602083013567ffffffffffffffff81111561058d5761058d600080fd5b6105998582860161051f565b9150509250929050565b6105ac816103ff565b82525050565b602081016102dd82846105a3565b60005b838110156105db5781810151838201526020016105c3565b50506000910152565b60006105ee825190565b6105fc8185602086016105c0565b9290920192915050565b6102dd81836105e456fea2646970667358221220eecd99cd63d826407d5639a8db1821a6b0aadb0feacc1d2f9d4541d896c80bd464736f6c63430008140033608060405234801561001057600080fd5b506040516106ff3803806106ff83398101604081905261002f916100f8565b806001600160a01b038116610063576000604051631e4fbdf760e01b815260040161005a9190610130565b60405180910390fd5b61006c81610073565b505061013e565b600080546001600160a01b038381166001600160a01b0319831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b60006001600160a01b0382165b92915050565b6100df816100c3565b81146100ea57600080fd5b50565b80516100d0816100d6565b60006020828403121561010d5761010d600080fd5b600061011984846100ed565b949350505050565b61012a816100c3565b82525050565b602081016100d08284610121565b6105b28061014d6000396000f3fe60806040526004361061005a5760003560e01c80639623609d116100435780639623609d146100a5578063ad3cb1cc146100b8578063f2fde38b1461010e57600080fd5b8063715018a61461005f5780638da5cb5b14610076575b600080fd5b34801561006b57600080fd5b5061007461012e565b005b34801561008257600080fd5b506000546001600160a01b031660405161009c91906102fa565b60405180910390f35b6100746100b3366004610462565b610142565b3480156100c457600080fd5b506101016040518060400160405280600581526020017f352e302e3000000000000000000000000000000000000000000000000000000081525081565b60405161009c9190610523565b34801561011a57600080fd5b5061007461012936600461053b565b6101ca565b61013661022a565b6101406000610270565b565b61014a61022a565b6040517f4f1ef2860000000000000000000000000000000000000000000000000000000081526001600160a01b03841690634f1ef286903490610193908690869060040161055c565b6000604051808303818588803b1580156101ac57600080fd5b505af11580156101c0573d6000803e3d6000fd5b5050505050505050565b6101d261022a565b6001600160a01b03811661021e5760006040517f1e4fbdf700000000000000000000000000000000000000000000000000000000815260040161021591906102fa565b60405180910390fd5b61022781610270565b50565b6000546001600160a01b0316331461014057336040517f118cdaa700000000000000000000000000000000000000000000000000000000815260040161021591906102fa565b600080546001600160a01b038381167fffffffffffffffffffffffff0000000000000000000000000000000000000000831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b60006001600160a01b0382165b92915050565b6102f4816102d8565b82525050565b602081016102e582846102eb565b60006102e5826102d8565b61031c81610308565b811461022757600080fd5b80356102e581610313565b61031c816102d8565b80356102e581610332565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b601f19601f830116810181811067ffffffffffffffff8211171561039b5761039b610346565b6040525050565b60006103ad60405190565b90506103b98282610375565b919050565b600067ffffffffffffffff8211156103d8576103d8610346565b601f19601f83011660200192915050565b82818337506000910152565b6000610408610403846103be565b6103a2565b90508281526020810184848401111561042357610423600080fd5b61042e8482856103e9565b509392505050565b600082601f83011261044a5761044a600080fd5b813561045a8482602086016103f5565b949350505050565b60008060006060848603121561047a5761047a600080fd5b60006104868686610327565b93505060206104978682870161033b565b925050604084013567ffffffffffffffff8111156104b7576104b7600080fd5b6104c386828701610436565b9150509250925092565b60005b838110156104e85781810151838201526020016104d0565b50506000910152565b60006104fb825190565b8084526020840193506105128185602086016104cd565b601f01601f19169290920192915050565b6020808252810161053481846104f1565b9392505050565b60006020828403121561055057610550600080fd5b600061045a848461033b565b6040810161056a82856102eb565b818103602083015261045a81846104f156fea2646970667358221220b0f8a95a6e2425eadd967ffc0cf44240f936f4de811b02bbb90ac6935cf0ce6a64736f6c63430008140033b53127684a568b3173ae13b9f8a6016e243e63b6e8ee1178d6a717850b5d6103", + Bin: "0x60806040523480156200001157600080fd5b5060405162003df238038062003df283398101604081905262000034916200027e565b6200003f8162000051565b6200004a8162000118565b50620003ec565b600060405162000061906200021a565b604051809103906000f0801580156200007e573d6000803e3d6000fd5b509050600063c4d66de860e01b836040516024016200009e9190620002bc565b604051602081830303815290604052906001600160e01b0319166020820180516001600160e01b03838183161783525050505090506000620000e8838584620001d160201b60201c565b905060008051602062003dd2833981519152816040516200010a919062000300565b60405180910390a150505050565b6000604051620001289062000228565b604051809103906000f08015801562000145573d6000803e3d6000fd5b509050600063c4d66de860e01b83604051602401620001659190620002bc565b604051602081830303815290604052906001600160e01b0319166020820180516001600160e01b03838183161783525050505090506000620001af838584620001d160201b60201c565b905060008051602062003dd2833981519152816040516200010a919062000343565b600080848484604051620001e59062000236565b620001f393929190620003b0565b604051809103906000f08015801562000210573d6000803e3d6000fd5b5095945050505050565b610e61806200043a83390190565b61180b806200129b83390190565b61132c8062002aa683390190565b60006001600160a01b0382165b92915050565b620002628162000244565b81146200026e57600080fd5b50565b8051620002518162000257565b600060208284031215620002955762000295600080fd5b6000620002a3848462000271565b949350505050565b620002b68162000244565b82525050565b60208101620002518284620002ab565b60198152602081017f5472616e73616374696f6e73506f737450726f636573736f7200000000000000815290505b60200190565b604080825281016200031281620002cc565b9050620002516020830184620002ab565b600a815260208101694d65737361676542757360b01b81529050620002fa565b60408082528101620003128162000323565b60005b838110156200037257818101518382015260200162000358565b50506000910152565b600062000386825190565b8084526020840193506200039f81856020860162000355565b601f01601f19169290920192915050565b60608101620003c08286620002ab565b620003cf6020830185620002ab565b8181036040830152620003e381846200037b565b95945050505050565b603f80620003fb6000396000f3fe6080604052600080fdfea2646970667358221220244e489330cb1428c356b7e1f8326d45f7128d6d965825901ff4ccdb5baffc5e64736f6c63430008150033608060405234801561001057600080fd5b50610e41806100206000396000f3fe608060405234801561001057600080fd5b50600436106100c95760003560e01c806364c55a9d11610081578063c4d66de81161005b578063c4d66de8146101c8578063d547741f146101db578063ee546fd8146101ee57600080fd5b806364c55a9d1461017657806391d1485414610189578063a217fddf146101c057600080fd5b80632f2ff15d116100b25780632f2ff15d1461012757806336568abe1461013c578063508a50f41461014f57600080fd5b806301ffc9a7146100ce578063248a9ca3146100f7575b600080fd5b6100e16100dc36600461083b565b610265565b6040516100ee919061086e565b60405180910390f35b61011a61010536600461088d565b60009081526020819052604090206001015490565b6040516100ee91906108b4565b61013a6101353660046108e7565b6102fe565b005b61013a61014a3660046108e7565b610329565b61011a7ff16bb8781ef1311f8fe06747bcbe481e695502acdcb0cb8c03aa03899e39a59881565b61013a610184366004610976565b61037a565b6100e16101973660046108e7565b6000918252602082815260408084206001600160a01b0393909316845291905290205460ff1690565b61011a600081565b61013a6101d63660046109be565b6104d0565b61013a6101e93660046108e7565b610640565b61013a6101fc3660046109be565b6001805480820182556000919091527fb10e2d527612073b26eecdfd717e6a320cf44b4afac2b0732d9fcbe2b7fa0cf60180547fffffffffffffffffffffffff0000000000000000000000000000000000000000166001600160a01b0392909216919091179055565b60007fffffffff0000000000000000000000000000000000000000000000000000000082167f7965db0b0000000000000000000000000000000000000000000000000000000014806102f857507f01ffc9a7000000000000000000000000000000000000000000000000000000007fffffffff000000000000000000000000000000000000000000000000000000008316145b92915050565b60008281526020819052604090206001015461031981610665565b6103238383610672565b50505050565b6001600160a01b038116331461036b576040517f6697b23200000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b610375828261071c565b505050565b60006103876001306109f5565b9050336001600160a01b038216146103ba5760405162461bcd60e51b81526004016103b190610a4c565b60405180910390fd5b60008290036103db5760405162461bcd60e51b81526004016103b190610a8e565b6040517f3357352afe45ddda257f56623a512152c527b6f11555ec2fb2fdbbe72ddece419061040b9084906108b4565b60405180910390a160005b6001548110156103235760006001828154811061043557610435610a9e565b6000918252602090912001546040517f9f9976af0000000000000000000000000000000000000000000000000000000081526001600160a01b0390911691508190639f9976af9061048c9088908890600401610d9c565b600060405180830381600087803b1580156104a657600080fd5b505af11580156104ba573d6000803e3d6000fd5b5050505050806104c990610dae565b9050610416565b7ff0c57e16840df040f15088dc2f81fe391c3923bec73e23a9662efc9c229c6a00805468010000000000000000810460ff16159067ffffffffffffffff1660008115801561051b5750825b905060008267ffffffffffffffff1660011480156105385750303b155b905081158015610546575080155b1561057d576040517ff92ee8a900000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b845467ffffffffffffffff1916600117855583156105b157845468ff00000000000000001916680100000000000000001785555b6105bc600087610672565b506105e77ff16bb8781ef1311f8fe06747bcbe481e695502acdcb0cb8c03aa03899e39a59887610672565b50831561063857845468ff0000000000000000191685556040517fc7f505b2f371ae2175ee4913f4499e1f2633a7b5936321eed1cdaeb6115181d29061062f90600190610de2565b60405180910390a15b505050505050565b60008281526020819052604090206001015461065b81610665565b610323838361071c565b61066f813361079f565b50565b6000828152602081815260408083206001600160a01b038516845290915281205460ff16610714576000838152602081815260408083206001600160a01b03861684529091529020805460ff191660011790556106cc3390565b6001600160a01b0316826001600160a01b0316847f2f8788117e7eff1d82e926ec794901d17c78024a50270940304540a733656f0d60405160405180910390a45060016102f8565b5060006102f8565b6000828152602081815260408083206001600160a01b038516845290915281205460ff1615610714576000838152602081815260408083206001600160a01b0386168085529252808320805460ff1916905551339286917ff6391f5c32d9c69d2a47ea670b442974b53935d1edc7fd64eb21e047a839171b9190a45060016102f8565b6000828152602081815260408083206001600160a01b038516845290915290205460ff166107fd5780826040517fe2517d3f0000000000000000000000000000000000000000000000000000000081526004016103b1929190610df0565b5050565b7fffffffff0000000000000000000000000000000000000000000000000000000081165b811461066f57600080fd5b80356102f881610801565b60006020828403121561085057610850600080fd5b600061085c8484610830565b949350505050565b8015155b82525050565b602081016102f88284610864565b80610825565b80356102f88161087c565b6000602082840312156108a2576108a2600080fd5b600061085c8484610882565b80610868565b602081016102f882846108ae565b60006001600160a01b0382166102f8565b610825816108c2565b80356102f8816108d3565b600080604083850312156108fd576108fd600080fd5b60006109098585610882565b925050602061091a858286016108dc565b9150509250929050565b60008083601f84011261093957610939600080fd5b50813567ffffffffffffffff81111561095457610954600080fd5b60208301915083602082028301111561096f5761096f600080fd5b9250929050565b6000806020838503121561098c5761098c600080fd5b823567ffffffffffffffff8111156109a6576109a6600080fd5b6109b285828601610924565b92509250509250929050565b6000602082840312156109d3576109d3600080fd5b600061085c84846108dc565b634e487b7160e01b600052601160045260246000fd5b6001600160a01b039182169190811690828203908111156102f8576102f86109df565b60088152602081017f4e6f742073656c66000000000000000000000000000000000000000000000000815290505b60200190565b602080825281016102f881610a18565b601a8152602081017f4e6f207472616e73616374696f6e7320746f20636f6e7665727400000000000081529050610a46565b602080825281016102f881610a5c565b634e487b7160e01b600052603260045260246000fd5b60ff8116610825565b80356102f881610ab4565b5060006102f86020830183610abd565b60ff8116610868565b5060006102f86020830183610882565b5060006102f860208301836108dc565b610868816108c2565b6000808335601e1936859003018112610b2557610b25600080fd5b830160208101925035905067ffffffffffffffff811115610b4857610b48600080fd5b3681900382131561096f5761096f600080fd5b82818337506000910152565b818352602083019250610b7b828483610b5b565b50601f01601f19160190565b801515610825565b80356102f881610b87565b5060006102f86020830183610b8f565b67ffffffffffffffff8116610825565b80356102f881610baa565b5060006102f86020830183610bba565b67ffffffffffffffff8116610868565b60006101408301610bf68380610ac8565b610c008582610ad8565b50610c0e6020840184610ae1565b610c1b60208601826108ae565b50610c296040840184610ae1565b610c3660408601826108ae565b50610c446060840184610ae1565b610c5160608601826108ae565b50610c5f6080840184610af1565b610c6c6080860182610b01565b50610c7a60a0840184610ae1565b610c8760a08601826108ae565b50610c9560c0840184610b0a565b85830360c0870152610ca8838284610b67565b92505050610cb960e0840184610af1565b610cc660e0860182610b01565b50610cd5610100840184610b9a565b610ce3610100860182610864565b50610cf2610120840184610bc5565b610d00610120860182610bd5565b509392505050565b6000610d148383610be5565b9392505050565b6000823561013e1936849003018112610d3657610d36600080fd5b90910192915050565b818352602083019250600083602084028101838060005b87811015610d8f578484038952610d6d8284610d1b565b610d778582610d08565b94505060208201602099909901989150600101610d56565b5091979650505050505050565b6020808252810161085c818486610d3f565b600060018201610dc057610dc06109df565b5060010190565b600067ffffffffffffffff82166102f8565b61086881610dc7565b602081016102f88284610dd9565b60408101610dfe8285610b01565b610d1460208301846108ae56fea2646970667358221220a2829afc1b81bbd1feb9c6e28aa15934fd8a00d5bce0d721a5aef549094dc19364736f6c63430008150033608060405234801561001057600080fd5b5061001a33610027565b610022610098565b61014a565b7f9016d09d72d40fdae2fd8ceac6b6234c7706214fd39c1cd1e609a0528c19930080546001600160a01b031981166001600160a01b03848116918217845560405192169182907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e090600090a3505050565b7ff0c57e16840df040f15088dc2f81fe391c3923bec73e23a9662efc9c229c6a00805468010000000000000000900460ff16156100e85760405163f92ee8a960e01b815260040160405180910390fd5b80546001600160401b03908116146101475780546001600160401b0319166001600160401b0390811782556040519081527fc7f505b2f371ae2175ee4913f4499e1f2633a7b5936321eed1cdaeb6115181d29060200160405180910390a15b50565b6116b2806101596000396000f3fe6080604052600436106100c05760003560e01c80638da5cb5b11610074578063b1454caa1161004e578063b1454caa14610285578063c4d66de8146102b2578063f2fde38b146102d257610134565b80638da5cb5b146102005780639730886d1461024557806399a3ad211461026557610134565b8063346633fb116100a5578063346633fb146101b857806336d2da90146101cb578063715018a6146101eb57610134565b80630fcfbd111461015557806333a88c721461018b57610134565b36610134576040517f346633fb000000000000000000000000000000000000000000000000000000008152309063346633fb9034906101059033908390600401610aaa565b6000604051808303818588803b15801561011e57600080fd5b505af1158015610132573d6000803e3d6000fd5b005b60405162461bcd60e51b815260040161014c90610af9565b60405180910390fd5b34801561016157600080fd5b50610175610170366004610b24565b6102f2565b6040516101829190610b5f565b60405180910390f35b34801561019757600080fd5b506101ab6101a6366004610b24565b610351565b6040516101829190610b75565b6101326101c6366004610bb3565b6103a3565b3480156101d757600080fd5b506101326101e6366004610bf0565b61042d565b3480156101f757600080fd5b506101326104ac565b34801561020c57600080fd5b507f9016d09d72d40fdae2fd8ceac6b6234c7706214fd39c1cd1e609a0528c199300546001600160a01b03166040516101829190610c11565b34801561025157600080fd5b50610132610260366004610c1f565b6104c0565b34801561027157600080fd5b50610132610280366004610bb3565b610635565b34801561029157600080fd5b506102a56102a0366004610cd8565b6106b5565b6040516101829190610d6c565b3480156102be57600080fd5b506101326102cd366004610bf0565b61070e565b3480156102de57600080fd5b506101326102ed366004610bf0565b610850565b600080826040516020016103069190610f19565b60408051601f1981840301815291815281516020928301206000818152928390529120549091508061034a5760405162461bcd60e51b815260040161014c90610f84565b9392505050565b600080826040516020016103659190610f19565b60408051601f198184030181529181528151602092830120600081815292839052912054909150801580159061039b5750428111155b949350505050565b6000341180156103b257508034145b6103ce5760405162461bcd60e51b815260040161014c90610fec565b60006103d9336108a7565b9050826001600160a01b0316336001600160a01b03167f50c536ac33a920f00755865b831d17bf4cff0b2e0345f65b16d52bfc004068b63484604051610420929190610ffc565b60405180910390a3505050565b610435610905565b6000816001600160a01b03164760405160006040518083038185875af1925050503d8060008114610482576040519150601f19603f3d011682016040523d82523d6000602084013e610487565b606091505b50509050806104a85760405162461bcd60e51b815260040161014c90611049565b5050565b6104b4610905565b6104be6000610979565b565b60006104cd60013061106f565b90506105007f9016d09d72d40fdae2fd8ceac6b6234c7706214fd39c1cd1e609a0528c199300546001600160a01b031690565b6001600160a01b0316336001600160a01b031614806105275750336001600160a01b038216145b6105435760405162461bcd60e51b815260040161014c906110c4565b600061054f83426110d4565b90506000846040516020016105649190610f19565b60408051601f198184030181529181528151602092830120600081815292839052912054909150156105a85760405162461bcd60e51b815260040161014c9061113f565b6000818152602081815260408220849055600191906105c990880188610bf0565b6001600160a01b0316815260208101919091526040016000908120906105f5608088016060890161114f565b63ffffffff1681526020808201929092526040016000908120805460018101825590825291902086916004020161062c82826115c9565b50505050505050565b61063d610905565b6000826001600160a01b03168260405160006040518083038185875af1925050503d806000811461068a576040519150601f19603f3d011682016040523d82523d6000602084013e61068f565b606091505b50509050806106b05760405162461bcd60e51b815260040161014c90611049565b505050565b60006106c0336108a7565b90507fb93c37389233beb85a3a726c3f15c2d15533ee74cb602f20f490dfffef775937338288888888886040516106fd97969594939291906115d3565b60405180910390a195945050505050565b7ff0c57e16840df040f15088dc2f81fe391c3923bec73e23a9662efc9c229c6a00805468010000000000000000810460ff16159067ffffffffffffffff166000811580156107595750825b905060008267ffffffffffffffff1660011480156107765750303b155b905081158015610784575080155b156107bb576040517ff92ee8a900000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b845467ffffffffffffffff1916600117855583156107ef57845468ff00000000000000001916680100000000000000001785555b6107f886610a02565b831561084857845468ff0000000000000000191685556040517fc7f505b2f371ae2175ee4913f4499e1f2633a7b5936321eed1cdaeb6115181d29061083f9060019061164a565b60405180910390a15b505050505050565b610858610905565b6001600160a01b03811661089b5760006040517f1e4fbdf700000000000000000000000000000000000000000000000000000000815260040161014c9190610c11565b6108a481610979565b50565b6001600160a01b0381166000908152600260205260408120805467ffffffffffffffff1691600191906108da8385611658565b92506101000a81548167ffffffffffffffff021916908367ffffffffffffffff160217905550919050565b336109377f9016d09d72d40fdae2fd8ceac6b6234c7706214fd39c1cd1e609a0528c199300546001600160a01b031690565b6001600160a01b0316146104be57336040517f118cdaa700000000000000000000000000000000000000000000000000000000815260040161014c9190610c11565b7f9016d09d72d40fdae2fd8ceac6b6234c7706214fd39c1cd1e609a0528c19930080547fffffffffffffffffffffffff000000000000000000000000000000000000000081166001600160a01b03848116918217845560405192169182907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e090600090a3505050565b610a0a610a13565b6108a481610a7a565b7ff0c57e16840df040f15088dc2f81fe391c3923bec73e23a9662efc9c229c6a005468010000000000000000900460ff166104be576040517fd7e6bcf800000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b610858610a13565b60006001600160a01b0382165b92915050565b610a9e81610a82565b82525050565b80610a9e565b60408101610ab88285610a95565b61034a6020830184610aa4565b600b8152602081017f756e737570706f72746564000000000000000000000000000000000000000000815290505b60200190565b60208082528101610a8f81610ac5565b600060c08284031215610b1e57610b1e600080fd5b50919050565b600060208284031215610b3957610b39600080fd5b813567ffffffffffffffff811115610b5357610b53600080fd5b61039b84828501610b09565b60208101610a8f8284610aa4565b801515610a9e565b60208101610a8f8284610b6d565b610b8c81610a82565b81146108a457600080fd5b8035610a8f81610b83565b80610b8c565b8035610a8f81610ba2565b60008060408385031215610bc957610bc9600080fd5b6000610bd58585610b97565b9250506020610be685828601610ba8565b9150509250929050565b600060208284031215610c0557610c05600080fd5b600061039b8484610b97565b60208101610a8f8284610a95565b60008060408385031215610c3557610c35600080fd5b823567ffffffffffffffff811115610c4f57610c4f600080fd5b610bd585828601610b09565b63ffffffff8116610b8c565b8035610a8f81610c5b565b60008083601f840112610c8757610c87600080fd5b50813567ffffffffffffffff811115610ca257610ca2600080fd5b602083019150836001820283011115610cbd57610cbd600080fd5b9250929050565b60ff8116610b8c565b8035610a8f81610cc4565b600080600080600060808688031215610cf357610cf3600080fd5b6000610cff8888610c67565b9550506020610d1088828901610c67565b945050604086013567ffffffffffffffff811115610d3057610d30600080fd5b610d3c88828901610c72565b93509350506060610d4f88828901610ccd565b9150509295509295909350565b67ffffffffffffffff8116610a9e565b60208101610a8f8284610d5c565b506000610a8f6020830183610b97565b67ffffffffffffffff8116610b8c565b8035610a8f81610d8a565b506000610a8f6020830183610d9a565b506000610a8f6020830183610c67565b63ffffffff8116610a9e565b6000808335601e1936859003018112610dec57610dec600080fd5b830160208101925035905067ffffffffffffffff811115610e0f57610e0f600080fd5b36819003821315610cbd57610cbd600080fd5b82818337506000910152565b818352602083019250610e42828483610e22565b50601f01601f19160190565b506000610a8f6020830183610ccd565b60ff8116610a9e565b600060c08301610e778380610d7a565b610e818582610a95565b50610e8f6020840184610da5565b610e9c6020860182610d5c565b50610eaa6040840184610db5565b610eb76040860182610dc5565b50610ec56060840184610db5565b610ed26060860182610dc5565b50610ee06080840184610dd1565b8583036080870152610ef3838284610e2e565b92505050610f0460a0840184610e4e565b610f1160a0860182610e5e565b509392505050565b6020808252810161034a8184610e67565b60218152602081017f54686973206d65737361676520776173206e65766572207375626d697474656481527f2e00000000000000000000000000000000000000000000000000000000000000602082015290505b60400190565b60208082528101610a8f81610f2a565b60308152602081017f417474656d7074696e6720746f2073656e642076616c756520776974686f757481527f2070726f766964696e672045746865720000000000000000000000000000000060208201529050610f7e565b60208082528101610a8f81610f94565b6040810161100a8285610aa4565b61034a6020830184610d5c565b60148152602081017f6661696c65642073656e64696e672076616c756500000000000000000000000081529050610af3565b60208082528101610a8f81611017565b634e487b7160e01b600052601160045260246000fd5b6001600160a01b03918216919081169082820390811115610a8f57610a8f611059565b60118152602081017f4e6f74206f776e6572206f722073656c6600000000000000000000000000000081529050610af3565b60208082528101610a8f81611092565b80820180821115610a8f57610a8f611059565b60218152602081017f4d657373616765207375626d6974746564206d6f7265207468616e206f6e636581527f210000000000000000000000000000000000000000000000000000000000000060208201529050610f7e565b60208082528101610a8f816110e7565b60006020828403121561116457611164600080fd5b600061039b8484610c67565b60008135610a8f81610b83565b60006001600160a01b03835b81169019929092169190911792915050565b6000610a8f6001600160a01b0383166111b2565b90565b6001600160a01b031690565b6000610a8f8261119b565b6000610a8f826111be565b6111dd826111c9565b6111e881835461117d565b8255505050565b60008135610a8f81610d8a565b60007bffffffffffffffff00000000000000000000000000000000000000006111898460a01b90565b6000610a8f67ffffffffffffffff83165b67ffffffffffffffff1690565b61124c82611225565b6111e88183546111fc565b60008135610a8f81610c5b565b60007fffffffff000000000000000000000000000000000000000000000000000000006111898460e01b90565b600063ffffffff8216610a8f565b6112a882611291565b6111e8818354611264565b600063ffffffff83611189565b6112c982611291565b6111e88183546112b3565b6000808335601e19368590030181126112ef576112ef600080fd5b8301915050803567ffffffffffffffff81111561130e5761130e600080fd5b602082019150600181023603821315610cbd57610cbd600080fd5b634e487b7160e01b600052604160045260246000fd5b634e487b7160e01b600052602260045260246000fd5b60028104600182168061136957607f821691505b602082108103610b1e57610b1e61133f565b6000610a8f6111af8381565b6113908361137b565b815460001960089490940293841b1916921b91909117905550565b60006106b0818484611387565b818110156104a8576113cb6000826113ab565b6001016113b8565b601f8211156106b0576000818152602090206020601f850104810160208510156113fa5750805b61140c6020601f8601048301826113b8565b5050505050565b8267ffffffffffffffff81111561142c5761142c611329565b6114368254611355565b6114418282856113d3565b506000601f821160018114611476576000831561145e5750848201355b600019600885021c1981166002850217855550610848565b600084815260209020601f19841690835b828110156114a75787850135825560209485019460019092019101611487565b50848210156114c457600019601f86166008021c19848801351681555b5050505060020260010190555050565b6106b0838383611413565b60008135610a8f81610cc4565b600060ff83611189565b600060ff8216610a8f565b61150a826114f6565b6111e88183546114ec565b80828061152181611170565b905061152d81846111d4565b5050602083018061153d826111ef565b90506115498184611243565b5050604083018061155982611257565b9050611565818461129f565b50505060018101606083018061157a82611257565b905061158681846112c0565b505050600281016080830161159b81856112d4565b91506115a88282856114d4565b5050506003810160a08301806115bd826114df565b905061140c8184611501565b6104a88282611515565b60c081016115e1828a610a95565b6115ee6020830189610d5c565b6115fb6040830188610dc5565b6116086060830187610dc5565b818103608083015261161b818587610e2e565b905061162a60a0830184610e5e565b98975050505050505050565b6000610a8f82611236565b610a9e81611636565b60208101610a8f8284611641565b67ffffffffffffffff918216919081169082820190811115610a8f57610a8f61105956fea264697066735822122054b3bb8148cdbafe0aca39b986ef2610fd18ea01fc3554d63624fda624c6d21164736f6c6343000815003360a06040526040516200132c3803806200132c8339810160408190526200002691620004c5565b828162000034828262000098565b505081604051620000459062000351565b6200005191906200054c565b604051809103906000f0801580156200006e573d6000803e3d6000fd5b506001600160a01b03166080526200008f6200008960805190565b620000fe565b505050620005ac565b620000a38262000167565b6040516001600160a01b038316907fbc7cd75a20ee27fd9adebab32041f755214dbc6bffa90cc0225b39da2e5c2d3b90600090a2805115620000f057620000eb8282620001e4565b505050565b620000fa62000263565b5050565b7f7e644d79422f17c01e4894b5f4f588d331ebfa28653d42ae832dc59e38c9798f620001406000805160206200130c833981519152546001600160a01b031690565b82604051620001519291906200055c565b60405180910390a1620001648162000285565b50565b806001600160a01b03163b600003620001a05780604051634c9c8ce360e01b81526004016200019791906200054c565b60405180910390fd5b807f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc5b80546001600160a01b0319166001600160a01b039290921691909117905550565b6060600080846001600160a01b031684604051620002039190620005a0565b600060405180830381855af49150503d806000811462000240576040519150601f19603f3d011682016040523d82523d6000602084013e62000245565b606091505b50909250905062000258858383620002c9565b925050505b92915050565b3415620002835760405163b398979f60e01b815260040160405180910390fd5b565b6001600160a01b038116620002b2576000604051633173bdd160e11b81526004016200019791906200054c565b806000805160206200130c833981519152620001c3565b606082620002e257620002dc8262000327565b62000320565b8151158015620002fa57506001600160a01b0384163b155b156200031d5783604051639996b31560e01b81526004016200019791906200054c565b50805b9392505050565b805115620003385780518082602001fd5b604051630a12f52160e11b815260040160405180910390fd5b6106ff8062000c0d83390190565b60006001600160a01b0382166200025d565b6200037c816200035f565b81146200016457600080fd5b80516200025d8162000371565b634e487b7160e01b600052604160045260246000fd5b601f19601f83011681016001600160401b0381118282101715620003d357620003d362000395565b6040525050565b6000620003e660405190565b9050620003f48282620003ab565b919050565b60006001600160401b0382111562000415576200041562000395565b601f19601f83011660200192915050565b60005b838110156200044357818101518382015260200162000429565b50506000910152565b6000620004636200045d84620003f9565b620003da565b905082815260208101848484011115620004805762000480600080fd5b6200048d84828562000426565b509392505050565b600082601f830112620004ab57620004ab600080fd5b8151620004bd8482602086016200044c565b949350505050565b600080600060608486031215620004df57620004df600080fd5b6000620004ed868662000388565b9350506020620005008682870162000388565b604086015190935090506001600160401b03811115620005235762000523600080fd5b620005318682870162000495565b9150509250925092565b62000546816200035f565b82525050565b602081016200025d82846200053b565b604081016200056c82856200053b565b6200032060208301846200053b565b600062000586825190565b6200059681856020860162000426565b9290920192915050565b6200025d81836200057b565b608051610646620005c76000396000601001526106466000f3fe608060405261000c61000e565b005b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031633036100c5576000357fffffffff00000000000000000000000000000000000000000000000000000000167f4f1ef28600000000000000000000000000000000000000000000000000000000146100bb576040517fd2b576ec00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6100c36100cd565b565b6100c36100fc565b6000806100dd36600481846103cf565b8101906100ea919061054b565b915091506100f8828261010c565b5050565b6100c3610107610167565b61019f565b610115826101c3565b6040516001600160a01b038316907fbc7cd75a20ee27fd9adebab32041f755214dbc6bffa90cc0225b39da2e5c2d3b90600090a280511561015f5761015a828261026b565b505050565b6100f86102e3565b600061019a7f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc546001600160a01b031690565b905090565b3660008037600080366000845af43d6000803e8080156101be573d6000f35b3d6000fd5b806001600160a01b03163b60000361021257806040517f4c9c8ce300000000000000000000000000000000000000000000000000000000815260040161020991906105b2565b60405180910390fd5b7f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc80547fffffffffffffffffffffffff0000000000000000000000000000000000000000166001600160a01b0392909216919091179055565b6060600080846001600160a01b0316846040516102889190610606565b600060405180830381855af49150503d80600081146102c3576040519150601f19603f3d011682016040523d82523d6000602084013e6102c8565b606091505b50915091506102d885838361031b565b925050505b92915050565b34156100c3576040517fb398979f00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6060826103305761032b8261038a565b610383565b815115801561034757506001600160a01b0384163b155b1561038057836040517f9996b31500000000000000000000000000000000000000000000000000000000815260040161020991906105b2565b50805b9392505050565b80511561039a5780518082602001fd5b6040517f1425ea4200000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b50565b600080858511156103e2576103e2600080fd5b838611156103f2576103f2600080fd5b5050820193919092039150565b60006001600160a01b0382166102dd565b610419816103ff565b81146103cc57600080fd5b80356102dd81610410565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b601f19601f830116810181811067ffffffffffffffff821117156104845761048461042f565b6040525050565b600061049660405190565b90506104a2828261045e565b919050565b600067ffffffffffffffff8211156104c1576104c161042f565b601f19601f83011660200192915050565b82818337506000910152565b60006104f16104ec846104a7565b61048b565b90508281526020810184848401111561050c5761050c600080fd5b6105178482856104d2565b509392505050565b600082601f83011261053357610533600080fd5b81356105438482602086016104de565b949350505050565b6000806040838503121561056157610561600080fd5b600061056d8585610424565b925050602083013567ffffffffffffffff81111561058d5761058d600080fd5b6105998582860161051f565b9150509250929050565b6105ac816103ff565b82525050565b602081016102dd82846105a3565b60005b838110156105db5781810151838201526020016105c3565b50506000910152565b60006105ee825190565b6105fc8185602086016105c0565b9290920192915050565b6102dd81836105e456fea26469706673582212209a20b849817245e3cac5f59a8de1da61769680733e5cb208d7418240470f1f7364736f6c63430008150033608060405234801561001057600080fd5b506040516106ff3803806106ff83398101604081905261002f916100f8565b806001600160a01b038116610063576000604051631e4fbdf760e01b815260040161005a9190610130565b60405180910390fd5b61006c81610073565b505061013e565b600080546001600160a01b038381166001600160a01b0319831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b60006001600160a01b0382165b92915050565b6100df816100c3565b81146100ea57600080fd5b50565b80516100d0816100d6565b60006020828403121561010d5761010d600080fd5b600061011984846100ed565b949350505050565b61012a816100c3565b82525050565b602081016100d08284610121565b6105b28061014d6000396000f3fe60806040526004361061005a5760003560e01c80639623609d116100435780639623609d146100a5578063ad3cb1cc146100b8578063f2fde38b1461010e57600080fd5b8063715018a61461005f5780638da5cb5b14610076575b600080fd5b34801561006b57600080fd5b5061007461012e565b005b34801561008257600080fd5b506000546001600160a01b031660405161009c91906102fa565b60405180910390f35b6100746100b3366004610462565b610142565b3480156100c457600080fd5b506101016040518060400160405280600581526020017f352e302e3000000000000000000000000000000000000000000000000000000081525081565b60405161009c9190610523565b34801561011a57600080fd5b5061007461012936600461053b565b6101ca565b61013661022a565b6101406000610270565b565b61014a61022a565b6040517f4f1ef2860000000000000000000000000000000000000000000000000000000081526001600160a01b03841690634f1ef286903490610193908690869060040161055c565b6000604051808303818588803b1580156101ac57600080fd5b505af11580156101c0573d6000803e3d6000fd5b5050505050505050565b6101d261022a565b6001600160a01b03811661021e5760006040517f1e4fbdf700000000000000000000000000000000000000000000000000000000815260040161021591906102fa565b60405180910390fd5b61022781610270565b50565b6000546001600160a01b0316331461014057336040517f118cdaa700000000000000000000000000000000000000000000000000000000815260040161021591906102fa565b600080546001600160a01b038381167fffffffffffffffffffffffff0000000000000000000000000000000000000000831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b60006001600160a01b0382165b92915050565b6102f4816102d8565b82525050565b602081016102e582846102eb565b60006102e5826102d8565b61031c81610308565b811461022757600080fd5b80356102e581610313565b61031c816102d8565b80356102e581610332565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b601f19601f830116810181811067ffffffffffffffff8211171561039b5761039b610346565b6040525050565b60006103ad60405190565b90506103b98282610375565b919050565b600067ffffffffffffffff8211156103d8576103d8610346565b601f19601f83011660200192915050565b82818337506000910152565b6000610408610403846103be565b6103a2565b90508281526020810184848401111561042357610423600080fd5b61042e8482856103e9565b509392505050565b600082601f83011261044a5761044a600080fd5b813561045a8482602086016103f5565b949350505050565b60008060006060848603121561047a5761047a600080fd5b60006104868686610327565b93505060206104978682870161033b565b925050604084013567ffffffffffffffff8111156104b7576104b7600080fd5b6104c386828701610436565b9150509250925092565b60005b838110156104e85781810151838201526020016104d0565b50506000910152565b60006104fb825190565b8084526020840193506105128185602086016104cd565b601f01601f19169290920192915050565b6020808252810161053481846104f1565b9392505050565b60006020828403121561055057610550600080fd5b600061045a848461033b565b6040810161056a82856102eb565b818103602083015261045a81846104f156fea2646970667358221220bc53b042dace43e275ea4e3c2111fb2632f7c79b2d985ac0664bd97ca15c79a164736f6c63430008150033b53127684a568b3173ae13b9f8a6016e243e63b6e8ee1178d6a717850b5d6103bd64e14789a915ea657e42f2dbf0b973227708fa64b58766287637985d1ade69", } // SystemDeployerABI is the input ABI used to generate the binding from. diff --git a/contracts/generated/TransactionPostProcessor/TransactionPostProcessor.go b/contracts/generated/TransactionPostProcessor/TransactionPostProcessor.go index e3e56d80d5..45868414a5 100644 --- a/contracts/generated/TransactionPostProcessor/TransactionPostProcessor.go +++ b/contracts/generated/TransactionPostProcessor/TransactionPostProcessor.go @@ -45,8 +45,8 @@ type StructsTransaction struct { // TransactionPostProcessorMetaData contains all meta data concerning the TransactionPostProcessor contract. var TransactionPostProcessorMetaData = &bind.MetaData{ - ABI: "[{\"inputs\":[],\"name\":\"AccessControlBadConfirmation\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"},{\"internalType\":\"bytes32\",\"name\":\"neededRole\",\"type\":\"bytes32\"}],\"name\":\"AccessControlUnauthorizedAccount\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"InvalidInitialization\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"NotInitializing\",\"type\":\"error\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"uint64\",\"name\":\"version\",\"type\":\"uint64\"}],\"name\":\"Initialized\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"bytes32\",\"name\":\"role\",\"type\":\"bytes32\"},{\"indexed\":true,\"internalType\":\"bytes32\",\"name\":\"previousAdminRole\",\"type\":\"bytes32\"},{\"indexed\":true,\"internalType\":\"bytes32\",\"name\":\"newAdminRole\",\"type\":\"bytes32\"}],\"name\":\"RoleAdminChanged\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"bytes32\",\"name\":\"role\",\"type\":\"bytes32\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"sender\",\"type\":\"address\"}],\"name\":\"RoleGranted\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"bytes32\",\"name\":\"role\",\"type\":\"bytes32\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"sender\",\"type\":\"address\"}],\"name\":\"RoleRevoked\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"transactionsLength\",\"type\":\"uint256\"}],\"name\":\"TransactionsConverted\",\"type\":\"event\"},{\"inputs\":[],\"name\":\"DEFAULT_ADMIN_ROLE\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"EOA_ADMIN_ROLE\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"HOOK_CALLER_ROLE\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"callbackAddress\",\"type\":\"address\"}],\"name\":\"addOnBlockEndCallback\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"role\",\"type\":\"bytes32\"}],\"name\":\"getRoleAdmin\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"role\",\"type\":\"bytes32\"},{\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"}],\"name\":\"grantRole\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"role\",\"type\":\"bytes32\"},{\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"}],\"name\":\"hasRole\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"eoaAdmin\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"authorizedCaller\",\"type\":\"address\"}],\"name\":\"initialize\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"components\":[{\"internalType\":\"uint8\",\"name\":\"txType\",\"type\":\"uint8\"},{\"internalType\":\"uint256\",\"name\":\"nonce\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"gasPrice\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"gasLimit\",\"type\":\"uint256\"},{\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"value\",\"type\":\"uint256\"},{\"internalType\":\"bytes\",\"name\":\"data\",\"type\":\"bytes\"},{\"internalType\":\"address\",\"name\":\"from\",\"type\":\"address\"},{\"internalType\":\"bool\",\"name\":\"successful\",\"type\":\"bool\"},{\"internalType\":\"uint64\",\"name\":\"gasUsed\",\"type\":\"uint64\"}],\"internalType\":\"structStructs.Transaction[]\",\"name\":\"transactions\",\"type\":\"tuple[]\"}],\"name\":\"onBlock\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"role\",\"type\":\"bytes32\"},{\"internalType\":\"address\",\"name\":\"callerConfirmation\",\"type\":\"address\"}],\"name\":\"renounceRole\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"role\",\"type\":\"bytes32\"},{\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"}],\"name\":\"revokeRole\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes4\",\"name\":\"interfaceId\",\"type\":\"bytes4\"}],\"name\":\"supportsInterface\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"}]", - Bin: "0x608060405234801561001057600080fd5b50610e60806100206000396000f3fe608060405234801561001057600080fd5b50600436106100d45760003560e01c80635f03a66111610081578063a217fddf1161005b578063a217fddf14610205578063d547741f1461020d578063ee546fd81461022057600080fd5b80635f03a6611461019457806364c55a9d146101bb57806391d14854146101ce57600080fd5b806336568abe116100b257806336568abe14610147578063485cc9551461015a578063508a50f41461016d57600080fd5b806301ffc9a7146100d9578063248a9ca3146101025780632f2ff15d14610132575b600080fd5b6100ec6100e73660046108a6565b610297565b6040516100f991906108d9565b60405180910390f35b6101256101103660046108f8565b60009081526020819052604090206001015490565b6040516100f9919061091f565b610145610140366004610952565b610330565b005b610145610155366004610952565b61035b565b61014561016836600461098f565b6103ac565b6101257ff16bb8781ef1311f8fe06747bcbe481e695502acdcb0cb8c03aa03899e39a59881565b6101257f33dd54660937884a707404066945db647918933f71cc471efc6d6d0c3665d8db81565b6101456101c9366004610a03565b610548565b6100ec6101dc366004610952565b6000918252602082815260408084206001600160a01b0393909316845291905290205460ff1690565b610125600081565b61014561021b366004610952565b6106ab565b61014561022e366004610a4b565b6001805480820182556000919091527fb10e2d527612073b26eecdfd717e6a320cf44b4afac2b0732d9fcbe2b7fa0cf60180547fffffffffffffffffffffffff0000000000000000000000000000000000000000166001600160a01b0392909216919091179055565b60007fffffffff0000000000000000000000000000000000000000000000000000000082167f7965db0b00000000000000000000000000000000000000000000000000000000148061032a57507f01ffc9a7000000000000000000000000000000000000000000000000000000007fffffffff000000000000000000000000000000000000000000000000000000008316145b92915050565b60008281526020819052604090206001015461034b816106d0565b61035583836106dd565b50505050565b6001600160a01b038116331461039d576040517f6697b23200000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6103a78282610787565b505050565b7ff0c57e16840df040f15088dc2f81fe391c3923bec73e23a9662efc9c229c6a00805468010000000000000000810460ff16159067ffffffffffffffff166000811580156103f75750825b905060008267ffffffffffffffff1660011480156104145750303b155b905081158015610422575080155b15610459576040517ff92ee8a900000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b845467ffffffffffffffff19166001178555831561048d57845468ff00000000000000001916680100000000000000001785555b6104986000886106dd565b506104c37ff16bb8781ef1311f8fe06747bcbe481e695502acdcb0cb8c03aa03899e39a598886106dd565b506104ee7f33dd54660937884a707404066945db647918933f71cc471efc6d6d0c3665d8db876106dd565b50831561053f57845468ff0000000000000000191685556040517fc7f505b2f371ae2175ee4913f4499e1f2633a7b5936321eed1cdaeb6115181d29061053690600190610a87565b60405180910390a15b50505050505050565b7f33dd54660937884a707404066945db647918933f71cc471efc6d6d0c3665d8db610572816106d0565b60008290036105b6576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016105ad90610a95565b60405180910390fd5b6040517f3357352afe45ddda257f56623a512152c527b6f11555ec2fb2fdbbe72ddece41906105e690849061091f565b60405180910390a160005b6001548110156103555760006001828154811061061057610610610ad0565b6000918252602090912001546040517f9f9976af0000000000000000000000000000000000000000000000000000000081526001600160a01b0390911691508190639f9976af906106679088908890600401610dce565b600060405180830381600087803b15801561068157600080fd5b505af1158015610695573d6000803e3d6000fd5b5050505050806106a490610df6565b90506105f1565b6000828152602081905260409020600101546106c6816106d0565b6103558383610787565b6106da813361080a565b50565b6000828152602081815260408083206001600160a01b038516845290915281205460ff1661077f576000838152602081815260408083206001600160a01b03861684529091529020805460ff191660011790556107373390565b6001600160a01b0316826001600160a01b0316847f2f8788117e7eff1d82e926ec794901d17c78024a50270940304540a733656f0d60405160405180910390a450600161032a565b50600061032a565b6000828152602081815260408083206001600160a01b038516845290915281205460ff161561077f576000838152602081815260408083206001600160a01b0386168085529252808320805460ff1916905551339286917ff6391f5c32d9c69d2a47ea670b442974b53935d1edc7fd64eb21e047a839171b9190a450600161032a565b6000828152602081815260408083206001600160a01b038516845290915290205460ff166108685780826040517fe2517d3f0000000000000000000000000000000000000000000000000000000081526004016105ad929190610e0f565b5050565b7fffffffff0000000000000000000000000000000000000000000000000000000081165b81146106da57600080fd5b803561032a8161086c565b6000602082840312156108bb576108bb600080fd5b60006108c7848461089b565b949350505050565b8015155b82525050565b6020810161032a82846108cf565b80610890565b803561032a816108e7565b60006020828403121561090d5761090d600080fd5b60006108c784846108ed565b806108d3565b6020810161032a8284610919565b60006001600160a01b03821661032a565b6108908161092d565b803561032a8161093e565b6000806040838503121561096857610968600080fd5b600061097485856108ed565b925050602061098585828601610947565b9150509250929050565b600080604083850312156109a5576109a5600080fd5b60006109748585610947565b60008083601f8401126109c6576109c6600080fd5b50813567ffffffffffffffff8111156109e1576109e1600080fd5b6020830191508360208202830111156109fc576109fc600080fd5b9250929050565b60008060208385031215610a1957610a19600080fd5b823567ffffffffffffffff811115610a3357610a33600080fd5b610a3f858286016109b1565b92509250509250929050565b600060208284031215610a6057610a60600080fd5b60006108c78484610947565b600067ffffffffffffffff821661032a565b6108d381610a6c565b6020810161032a8284610a7e565b6020808252810161032a81601a81527f4e6f207472616e73616374696f6e7320746f20636f6e76657274000000000000602082015260400190565b634e487b7160e01b600052603260045260246000fd5b60ff8116610890565b803561032a81610ae6565b50600061032a6020830183610aef565b60ff81166108d3565b50600061032a60208301836108ed565b50600061032a6020830183610947565b6108d38161092d565b6000808335601e1936859003018112610b5757610b57600080fd5b830160208101925035905067ffffffffffffffff811115610b7a57610b7a600080fd5b368190038213156109fc576109fc600080fd5b82818337506000910152565b818352602083019250610bad828483610b8d565b50601f01601f19160190565b801515610890565b803561032a81610bb9565b50600061032a6020830183610bc1565b67ffffffffffffffff8116610890565b803561032a81610bdc565b50600061032a6020830183610bec565b67ffffffffffffffff81166108d3565b60006101408301610c288380610afa565b610c328582610b0a565b50610c406020840184610b13565b610c4d6020860182610919565b50610c5b6040840184610b13565b610c686040860182610919565b50610c766060840184610b13565b610c836060860182610919565b50610c916080840184610b23565b610c9e6080860182610b33565b50610cac60a0840184610b13565b610cb960a0860182610919565b50610cc760c0840184610b3c565b85830360c0870152610cda838284610b99565b92505050610ceb60e0840184610b23565b610cf860e0860182610b33565b50610d07610100840184610bcc565b610d156101008601826108cf565b50610d24610120840184610bf7565b610d32610120860182610c07565b509392505050565b6000610d468383610c17565b9392505050565b6000823561013e1936849003018112610d6857610d68600080fd5b90910192915050565b818352602083019250600083602084028101838060005b87811015610dc1578484038952610d9f8284610d4d565b610da98582610d3a565b94505060208201602099909901989150600101610d88565b5091979650505050505050565b602080825281016108c7818486610d71565b634e487b7160e01b600052601160045260246000fd5b600060018201610e0857610e08610de0565b5060010190565b60408101610e1d8285610b33565b610d46602083018461091956fea26469706673582212200b0c2d8cf0499a5aeaa5aad09b481762d0bf45ab68c10f7ee4b33405bc19462d64736f6c63430008140033", + ABI: "[{\"inputs\":[],\"name\":\"AccessControlBadConfirmation\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"},{\"internalType\":\"bytes32\",\"name\":\"neededRole\",\"type\":\"bytes32\"}],\"name\":\"AccessControlUnauthorizedAccount\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"InvalidInitialization\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"NotInitializing\",\"type\":\"error\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"uint64\",\"name\":\"version\",\"type\":\"uint64\"}],\"name\":\"Initialized\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"bytes32\",\"name\":\"role\",\"type\":\"bytes32\"},{\"indexed\":true,\"internalType\":\"bytes32\",\"name\":\"previousAdminRole\",\"type\":\"bytes32\"},{\"indexed\":true,\"internalType\":\"bytes32\",\"name\":\"newAdminRole\",\"type\":\"bytes32\"}],\"name\":\"RoleAdminChanged\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"bytes32\",\"name\":\"role\",\"type\":\"bytes32\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"sender\",\"type\":\"address\"}],\"name\":\"RoleGranted\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"bytes32\",\"name\":\"role\",\"type\":\"bytes32\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"sender\",\"type\":\"address\"}],\"name\":\"RoleRevoked\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"transactionsLength\",\"type\":\"uint256\"}],\"name\":\"TransactionsConverted\",\"type\":\"event\"},{\"inputs\":[],\"name\":\"DEFAULT_ADMIN_ROLE\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"EOA_ADMIN_ROLE\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"callbackAddress\",\"type\":\"address\"}],\"name\":\"addOnBlockEndCallback\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"role\",\"type\":\"bytes32\"}],\"name\":\"getRoleAdmin\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"role\",\"type\":\"bytes32\"},{\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"}],\"name\":\"grantRole\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"role\",\"type\":\"bytes32\"},{\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"}],\"name\":\"hasRole\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"eoaAdmin\",\"type\":\"address\"}],\"name\":\"initialize\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"components\":[{\"internalType\":\"uint8\",\"name\":\"txType\",\"type\":\"uint8\"},{\"internalType\":\"uint256\",\"name\":\"nonce\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"gasPrice\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"gasLimit\",\"type\":\"uint256\"},{\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"value\",\"type\":\"uint256\"},{\"internalType\":\"bytes\",\"name\":\"data\",\"type\":\"bytes\"},{\"internalType\":\"address\",\"name\":\"from\",\"type\":\"address\"},{\"internalType\":\"bool\",\"name\":\"successful\",\"type\":\"bool\"},{\"internalType\":\"uint64\",\"name\":\"gasUsed\",\"type\":\"uint64\"}],\"internalType\":\"structStructs.Transaction[]\",\"name\":\"transactions\",\"type\":\"tuple[]\"}],\"name\":\"onBlock\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"role\",\"type\":\"bytes32\"},{\"internalType\":\"address\",\"name\":\"callerConfirmation\",\"type\":\"address\"}],\"name\":\"renounceRole\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"role\",\"type\":\"bytes32\"},{\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"}],\"name\":\"revokeRole\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes4\",\"name\":\"interfaceId\",\"type\":\"bytes4\"}],\"name\":\"supportsInterface\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"}]", + Bin: "0x608060405234801561001057600080fd5b50610e41806100206000396000f3fe608060405234801561001057600080fd5b50600436106100c95760003560e01c806364c55a9d11610081578063c4d66de81161005b578063c4d66de8146101c8578063d547741f146101db578063ee546fd8146101ee57600080fd5b806364c55a9d1461017657806391d1485414610189578063a217fddf146101c057600080fd5b80632f2ff15d116100b25780632f2ff15d1461012757806336568abe1461013c578063508a50f41461014f57600080fd5b806301ffc9a7146100ce578063248a9ca3146100f7575b600080fd5b6100e16100dc36600461083b565b610265565b6040516100ee919061086e565b60405180910390f35b61011a61010536600461088d565b60009081526020819052604090206001015490565b6040516100ee91906108b4565b61013a6101353660046108e7565b6102fe565b005b61013a61014a3660046108e7565b610329565b61011a7ff16bb8781ef1311f8fe06747bcbe481e695502acdcb0cb8c03aa03899e39a59881565b61013a610184366004610976565b61037a565b6100e16101973660046108e7565b6000918252602082815260408084206001600160a01b0393909316845291905290205460ff1690565b61011a600081565b61013a6101d63660046109be565b6104d0565b61013a6101e93660046108e7565b610640565b61013a6101fc3660046109be565b6001805480820182556000919091527fb10e2d527612073b26eecdfd717e6a320cf44b4afac2b0732d9fcbe2b7fa0cf60180547fffffffffffffffffffffffff0000000000000000000000000000000000000000166001600160a01b0392909216919091179055565b60007fffffffff0000000000000000000000000000000000000000000000000000000082167f7965db0b0000000000000000000000000000000000000000000000000000000014806102f857507f01ffc9a7000000000000000000000000000000000000000000000000000000007fffffffff000000000000000000000000000000000000000000000000000000008316145b92915050565b60008281526020819052604090206001015461031981610665565b6103238383610672565b50505050565b6001600160a01b038116331461036b576040517f6697b23200000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b610375828261071c565b505050565b60006103876001306109f5565b9050336001600160a01b038216146103ba5760405162461bcd60e51b81526004016103b190610a4c565b60405180910390fd5b60008290036103db5760405162461bcd60e51b81526004016103b190610a8e565b6040517f3357352afe45ddda257f56623a512152c527b6f11555ec2fb2fdbbe72ddece419061040b9084906108b4565b60405180910390a160005b6001548110156103235760006001828154811061043557610435610a9e565b6000918252602090912001546040517f9f9976af0000000000000000000000000000000000000000000000000000000081526001600160a01b0390911691508190639f9976af9061048c9088908890600401610d9c565b600060405180830381600087803b1580156104a657600080fd5b505af11580156104ba573d6000803e3d6000fd5b5050505050806104c990610dae565b9050610416565b7ff0c57e16840df040f15088dc2f81fe391c3923bec73e23a9662efc9c229c6a00805468010000000000000000810460ff16159067ffffffffffffffff1660008115801561051b5750825b905060008267ffffffffffffffff1660011480156105385750303b155b905081158015610546575080155b1561057d576040517ff92ee8a900000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b845467ffffffffffffffff1916600117855583156105b157845468ff00000000000000001916680100000000000000001785555b6105bc600087610672565b506105e77ff16bb8781ef1311f8fe06747bcbe481e695502acdcb0cb8c03aa03899e39a59887610672565b50831561063857845468ff0000000000000000191685556040517fc7f505b2f371ae2175ee4913f4499e1f2633a7b5936321eed1cdaeb6115181d29061062f90600190610de2565b60405180910390a15b505050505050565b60008281526020819052604090206001015461065b81610665565b610323838361071c565b61066f813361079f565b50565b6000828152602081815260408083206001600160a01b038516845290915281205460ff16610714576000838152602081815260408083206001600160a01b03861684529091529020805460ff191660011790556106cc3390565b6001600160a01b0316826001600160a01b0316847f2f8788117e7eff1d82e926ec794901d17c78024a50270940304540a733656f0d60405160405180910390a45060016102f8565b5060006102f8565b6000828152602081815260408083206001600160a01b038516845290915281205460ff1615610714576000838152602081815260408083206001600160a01b0386168085529252808320805460ff1916905551339286917ff6391f5c32d9c69d2a47ea670b442974b53935d1edc7fd64eb21e047a839171b9190a45060016102f8565b6000828152602081815260408083206001600160a01b038516845290915290205460ff166107fd5780826040517fe2517d3f0000000000000000000000000000000000000000000000000000000081526004016103b1929190610df0565b5050565b7fffffffff0000000000000000000000000000000000000000000000000000000081165b811461066f57600080fd5b80356102f881610801565b60006020828403121561085057610850600080fd5b600061085c8484610830565b949350505050565b8015155b82525050565b602081016102f88284610864565b80610825565b80356102f88161087c565b6000602082840312156108a2576108a2600080fd5b600061085c8484610882565b80610868565b602081016102f882846108ae565b60006001600160a01b0382166102f8565b610825816108c2565b80356102f8816108d3565b600080604083850312156108fd576108fd600080fd5b60006109098585610882565b925050602061091a858286016108dc565b9150509250929050565b60008083601f84011261093957610939600080fd5b50813567ffffffffffffffff81111561095457610954600080fd5b60208301915083602082028301111561096f5761096f600080fd5b9250929050565b6000806020838503121561098c5761098c600080fd5b823567ffffffffffffffff8111156109a6576109a6600080fd5b6109b285828601610924565b92509250509250929050565b6000602082840312156109d3576109d3600080fd5b600061085c84846108dc565b634e487b7160e01b600052601160045260246000fd5b6001600160a01b039182169190811690828203908111156102f8576102f86109df565b60088152602081017f4e6f742073656c66000000000000000000000000000000000000000000000000815290505b60200190565b602080825281016102f881610a18565b601a8152602081017f4e6f207472616e73616374696f6e7320746f20636f6e7665727400000000000081529050610a46565b602080825281016102f881610a5c565b634e487b7160e01b600052603260045260246000fd5b60ff8116610825565b80356102f881610ab4565b5060006102f86020830183610abd565b60ff8116610868565b5060006102f86020830183610882565b5060006102f860208301836108dc565b610868816108c2565b6000808335601e1936859003018112610b2557610b25600080fd5b830160208101925035905067ffffffffffffffff811115610b4857610b48600080fd5b3681900382131561096f5761096f600080fd5b82818337506000910152565b818352602083019250610b7b828483610b5b565b50601f01601f19160190565b801515610825565b80356102f881610b87565b5060006102f86020830183610b8f565b67ffffffffffffffff8116610825565b80356102f881610baa565b5060006102f86020830183610bba565b67ffffffffffffffff8116610868565b60006101408301610bf68380610ac8565b610c008582610ad8565b50610c0e6020840184610ae1565b610c1b60208601826108ae565b50610c296040840184610ae1565b610c3660408601826108ae565b50610c446060840184610ae1565b610c5160608601826108ae565b50610c5f6080840184610af1565b610c6c6080860182610b01565b50610c7a60a0840184610ae1565b610c8760a08601826108ae565b50610c9560c0840184610b0a565b85830360c0870152610ca8838284610b67565b92505050610cb960e0840184610af1565b610cc660e0860182610b01565b50610cd5610100840184610b9a565b610ce3610100860182610864565b50610cf2610120840184610bc5565b610d00610120860182610bd5565b509392505050565b6000610d148383610be5565b9392505050565b6000823561013e1936849003018112610d3657610d36600080fd5b90910192915050565b818352602083019250600083602084028101838060005b87811015610d8f578484038952610d6d8284610d1b565b610d778582610d08565b94505060208201602099909901989150600101610d56565b5091979650505050505050565b6020808252810161085c818486610d3f565b600060018201610dc057610dc06109df565b5060010190565b600067ffffffffffffffff82166102f8565b61086881610dc7565b602081016102f88284610dd9565b60408101610dfe8285610b01565b610d1460208301846108ae56fea2646970667358221220a2829afc1b81bbd1feb9c6e28aa15934fd8a00d5bce0d721a5aef549094dc19364736f6c63430008150033", } // TransactionPostProcessorABI is the input ABI used to generate the binding from. @@ -278,37 +278,6 @@ func (_TransactionPostProcessor *TransactionPostProcessorCallerSession) EOAADMIN return _TransactionPostProcessor.Contract.EOAADMINROLE(&_TransactionPostProcessor.CallOpts) } -// HOOKCALLERROLE is a free data retrieval call binding the contract method 0x5f03a661. -// -// Solidity: function HOOK_CALLER_ROLE() view returns(bytes32) -func (_TransactionPostProcessor *TransactionPostProcessorCaller) HOOKCALLERROLE(opts *bind.CallOpts) ([32]byte, error) { - var out []interface{} - err := _TransactionPostProcessor.contract.Call(opts, &out, "HOOK_CALLER_ROLE") - - if err != nil { - return *new([32]byte), err - } - - out0 := *abi.ConvertType(out[0], new([32]byte)).(*[32]byte) - - return out0, err - -} - -// HOOKCALLERROLE is a free data retrieval call binding the contract method 0x5f03a661. -// -// Solidity: function HOOK_CALLER_ROLE() view returns(bytes32) -func (_TransactionPostProcessor *TransactionPostProcessorSession) HOOKCALLERROLE() ([32]byte, error) { - return _TransactionPostProcessor.Contract.HOOKCALLERROLE(&_TransactionPostProcessor.CallOpts) -} - -// HOOKCALLERROLE is a free data retrieval call binding the contract method 0x5f03a661. -// -// Solidity: function HOOK_CALLER_ROLE() view returns(bytes32) -func (_TransactionPostProcessor *TransactionPostProcessorCallerSession) HOOKCALLERROLE() ([32]byte, error) { - return _TransactionPostProcessor.Contract.HOOKCALLERROLE(&_TransactionPostProcessor.CallOpts) -} - // GetRoleAdmin is a free data retrieval call binding the contract method 0x248a9ca3. // // Solidity: function getRoleAdmin(bytes32 role) view returns(bytes32) @@ -444,25 +413,25 @@ func (_TransactionPostProcessor *TransactionPostProcessorTransactorSession) Gran return _TransactionPostProcessor.Contract.GrantRole(&_TransactionPostProcessor.TransactOpts, role, account) } -// Initialize is a paid mutator transaction binding the contract method 0x485cc955. +// Initialize is a paid mutator transaction binding the contract method 0xc4d66de8. // -// Solidity: function initialize(address eoaAdmin, address authorizedCaller) returns() -func (_TransactionPostProcessor *TransactionPostProcessorTransactor) Initialize(opts *bind.TransactOpts, eoaAdmin common.Address, authorizedCaller common.Address) (*types.Transaction, error) { - return _TransactionPostProcessor.contract.Transact(opts, "initialize", eoaAdmin, authorizedCaller) +// Solidity: function initialize(address eoaAdmin) returns() +func (_TransactionPostProcessor *TransactionPostProcessorTransactor) Initialize(opts *bind.TransactOpts, eoaAdmin common.Address) (*types.Transaction, error) { + return _TransactionPostProcessor.contract.Transact(opts, "initialize", eoaAdmin) } -// Initialize is a paid mutator transaction binding the contract method 0x485cc955. +// Initialize is a paid mutator transaction binding the contract method 0xc4d66de8. // -// Solidity: function initialize(address eoaAdmin, address authorizedCaller) returns() -func (_TransactionPostProcessor *TransactionPostProcessorSession) Initialize(eoaAdmin common.Address, authorizedCaller common.Address) (*types.Transaction, error) { - return _TransactionPostProcessor.Contract.Initialize(&_TransactionPostProcessor.TransactOpts, eoaAdmin, authorizedCaller) +// Solidity: function initialize(address eoaAdmin) returns() +func (_TransactionPostProcessor *TransactionPostProcessorSession) Initialize(eoaAdmin common.Address) (*types.Transaction, error) { + return _TransactionPostProcessor.Contract.Initialize(&_TransactionPostProcessor.TransactOpts, eoaAdmin) } -// Initialize is a paid mutator transaction binding the contract method 0x485cc955. +// Initialize is a paid mutator transaction binding the contract method 0xc4d66de8. // -// Solidity: function initialize(address eoaAdmin, address authorizedCaller) returns() -func (_TransactionPostProcessor *TransactionPostProcessorTransactorSession) Initialize(eoaAdmin common.Address, authorizedCaller common.Address) (*types.Transaction, error) { - return _TransactionPostProcessor.Contract.Initialize(&_TransactionPostProcessor.TransactOpts, eoaAdmin, authorizedCaller) +// Solidity: function initialize(address eoaAdmin) returns() +func (_TransactionPostProcessor *TransactionPostProcessorTransactorSession) Initialize(eoaAdmin common.Address) (*types.Transaction, error) { + return _TransactionPostProcessor.Contract.Initialize(&_TransactionPostProcessor.TransactOpts, eoaAdmin) } // OnBlock is a paid mutator transaction binding the contract method 0x64c55a9d. diff --git a/contracts/generated/TransparentUpgradeableProxy/TransparentUpgradeableProxy.go b/contracts/generated/TransparentUpgradeableProxy/TransparentUpgradeableProxy.go index 99de0f496d..b1df7be69d 100644 --- a/contracts/generated/TransparentUpgradeableProxy/TransparentUpgradeableProxy.go +++ b/contracts/generated/TransparentUpgradeableProxy/TransparentUpgradeableProxy.go @@ -32,7 +32,7 @@ var ( // TransparentUpgradeableProxyMetaData contains all meta data concerning the TransparentUpgradeableProxy contract. var TransparentUpgradeableProxyMetaData = &bind.MetaData{ ABI: "[{\"inputs\":[{\"internalType\":\"address\",\"name\":\"_logic\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"initialOwner\",\"type\":\"address\"},{\"internalType\":\"bytes\",\"name\":\"_data\",\"type\":\"bytes\"}],\"stateMutability\":\"payable\",\"type\":\"constructor\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"target\",\"type\":\"address\"}],\"name\":\"AddressEmptyCode\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"admin\",\"type\":\"address\"}],\"name\":\"ERC1967InvalidAdmin\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"implementation\",\"type\":\"address\"}],\"name\":\"ERC1967InvalidImplementation\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"ERC1967NonPayable\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"FailedInnerCall\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"ProxyDeniedAdminAccess\",\"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\":\"implementation\",\"type\":\"address\"}],\"name\":\"Upgraded\",\"type\":\"event\"},{\"stateMutability\":\"payable\",\"type\":\"fallback\"}]", - Bin: "0x60a06040526040516200132c3803806200132c8339810160408190526200002691620004c5565b828162000034828262000098565b505081604051620000459062000351565b6200005191906200054c565b604051809103906000f0801580156200006e573d6000803e3d6000fd5b506001600160a01b03166080526200008f6200008960805190565b620000fe565b505050620005ac565b620000a38262000167565b6040516001600160a01b038316907fbc7cd75a20ee27fd9adebab32041f755214dbc6bffa90cc0225b39da2e5c2d3b90600090a2805115620000f057620000eb8282620001e4565b505050565b620000fa62000263565b5050565b7f7e644d79422f17c01e4894b5f4f588d331ebfa28653d42ae832dc59e38c9798f620001406000805160206200130c833981519152546001600160a01b031690565b82604051620001519291906200055c565b60405180910390a1620001648162000285565b50565b806001600160a01b03163b600003620001a05780604051634c9c8ce360e01b81526004016200019791906200054c565b60405180910390fd5b807f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc5b80546001600160a01b0319166001600160a01b039290921691909117905550565b6060600080846001600160a01b031684604051620002039190620005a0565b600060405180830381855af49150503d806000811462000240576040519150601f19603f3d011682016040523d82523d6000602084013e62000245565b606091505b50909250905062000258858383620002c9565b925050505b92915050565b3415620002835760405163b398979f60e01b815260040160405180910390fd5b565b6001600160a01b038116620002b2576000604051633173bdd160e11b81526004016200019791906200054c565b806000805160206200130c833981519152620001c3565b606082620002e257620002dc8262000327565b62000320565b8151158015620002fa57506001600160a01b0384163b155b156200031d5783604051639996b31560e01b81526004016200019791906200054c565b50805b9392505050565b805115620003385780518082602001fd5b604051630a12f52160e11b815260040160405180910390fd5b6106ff8062000c0d83390190565b60006001600160a01b0382166200025d565b6200037c816200035f565b81146200016457600080fd5b80516200025d8162000371565b634e487b7160e01b600052604160045260246000fd5b601f19601f83011681016001600160401b0381118282101715620003d357620003d362000395565b6040525050565b6000620003e660405190565b9050620003f48282620003ab565b919050565b60006001600160401b0382111562000415576200041562000395565b601f19601f83011660200192915050565b60005b838110156200044357818101518382015260200162000429565b50506000910152565b6000620004636200045d84620003f9565b620003da565b905082815260208101848484011115620004805762000480600080fd5b6200048d84828562000426565b509392505050565b600082601f830112620004ab57620004ab600080fd5b8151620004bd8482602086016200044c565b949350505050565b600080600060608486031215620004df57620004df600080fd5b6000620004ed868662000388565b9350506020620005008682870162000388565b604086015190935090506001600160401b03811115620005235762000523600080fd5b620005318682870162000495565b9150509250925092565b62000546816200035f565b82525050565b602081016200025d82846200053b565b604081016200056c82856200053b565b6200032060208301846200053b565b600062000586825190565b6200059681856020860162000426565b9290920192915050565b6200025d81836200057b565b608051610646620005c76000396000601001526106466000f3fe608060405261000c61000e565b005b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031633036100c5576000357fffffffff00000000000000000000000000000000000000000000000000000000167f4f1ef28600000000000000000000000000000000000000000000000000000000146100bb576040517fd2b576ec00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6100c36100cd565b565b6100c36100fc565b6000806100dd36600481846103cf565b8101906100ea919061054b565b915091506100f8828261010c565b5050565b6100c3610107610167565b61019f565b610115826101c3565b6040516001600160a01b038316907fbc7cd75a20ee27fd9adebab32041f755214dbc6bffa90cc0225b39da2e5c2d3b90600090a280511561015f5761015a828261026b565b505050565b6100f86102e3565b600061019a7f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc546001600160a01b031690565b905090565b3660008037600080366000845af43d6000803e8080156101be573d6000f35b3d6000fd5b806001600160a01b03163b60000361021257806040517f4c9c8ce300000000000000000000000000000000000000000000000000000000815260040161020991906105b2565b60405180910390fd5b7f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc80547fffffffffffffffffffffffff0000000000000000000000000000000000000000166001600160a01b0392909216919091179055565b6060600080846001600160a01b0316846040516102889190610606565b600060405180830381855af49150503d80600081146102c3576040519150601f19603f3d011682016040523d82523d6000602084013e6102c8565b606091505b50915091506102d885838361031b565b925050505b92915050565b34156100c3576040517fb398979f00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6060826103305761032b8261038a565b610383565b815115801561034757506001600160a01b0384163b155b1561038057836040517f9996b31500000000000000000000000000000000000000000000000000000000815260040161020991906105b2565b50805b9392505050565b80511561039a5780518082602001fd5b6040517f1425ea4200000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b50565b600080858511156103e2576103e2600080fd5b838611156103f2576103f2600080fd5b5050820193919092039150565b60006001600160a01b0382166102dd565b610419816103ff565b81146103cc57600080fd5b80356102dd81610410565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b601f19601f830116810181811067ffffffffffffffff821117156104845761048461042f565b6040525050565b600061049660405190565b90506104a2828261045e565b919050565b600067ffffffffffffffff8211156104c1576104c161042f565b601f19601f83011660200192915050565b82818337506000910152565b60006104f16104ec846104a7565b61048b565b90508281526020810184848401111561050c5761050c600080fd5b6105178482856104d2565b509392505050565b600082601f83011261053357610533600080fd5b81356105438482602086016104de565b949350505050565b6000806040838503121561056157610561600080fd5b600061056d8585610424565b925050602083013567ffffffffffffffff81111561058d5761058d600080fd5b6105998582860161051f565b9150509250929050565b6105ac816103ff565b82525050565b602081016102dd82846105a3565b60005b838110156105db5781810151838201526020016105c3565b50506000910152565b60006105ee825190565b6105fc8185602086016105c0565b9290920192915050565b6102dd81836105e456fea2646970667358221220eecd99cd63d826407d5639a8db1821a6b0aadb0feacc1d2f9d4541d896c80bd464736f6c63430008140033608060405234801561001057600080fd5b506040516106ff3803806106ff83398101604081905261002f916100f8565b806001600160a01b038116610063576000604051631e4fbdf760e01b815260040161005a9190610130565b60405180910390fd5b61006c81610073565b505061013e565b600080546001600160a01b038381166001600160a01b0319831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b60006001600160a01b0382165b92915050565b6100df816100c3565b81146100ea57600080fd5b50565b80516100d0816100d6565b60006020828403121561010d5761010d600080fd5b600061011984846100ed565b949350505050565b61012a816100c3565b82525050565b602081016100d08284610121565b6105b28061014d6000396000f3fe60806040526004361061005a5760003560e01c80639623609d116100435780639623609d146100a5578063ad3cb1cc146100b8578063f2fde38b1461010e57600080fd5b8063715018a61461005f5780638da5cb5b14610076575b600080fd5b34801561006b57600080fd5b5061007461012e565b005b34801561008257600080fd5b506000546001600160a01b031660405161009c91906102fa565b60405180910390f35b6100746100b3366004610462565b610142565b3480156100c457600080fd5b506101016040518060400160405280600581526020017f352e302e3000000000000000000000000000000000000000000000000000000081525081565b60405161009c9190610523565b34801561011a57600080fd5b5061007461012936600461053b565b6101ca565b61013661022a565b6101406000610270565b565b61014a61022a565b6040517f4f1ef2860000000000000000000000000000000000000000000000000000000081526001600160a01b03841690634f1ef286903490610193908690869060040161055c565b6000604051808303818588803b1580156101ac57600080fd5b505af11580156101c0573d6000803e3d6000fd5b5050505050505050565b6101d261022a565b6001600160a01b03811661021e5760006040517f1e4fbdf700000000000000000000000000000000000000000000000000000000815260040161021591906102fa565b60405180910390fd5b61022781610270565b50565b6000546001600160a01b0316331461014057336040517f118cdaa700000000000000000000000000000000000000000000000000000000815260040161021591906102fa565b600080546001600160a01b038381167fffffffffffffffffffffffff0000000000000000000000000000000000000000831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b60006001600160a01b0382165b92915050565b6102f4816102d8565b82525050565b602081016102e582846102eb565b60006102e5826102d8565b61031c81610308565b811461022757600080fd5b80356102e581610313565b61031c816102d8565b80356102e581610332565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b601f19601f830116810181811067ffffffffffffffff8211171561039b5761039b610346565b6040525050565b60006103ad60405190565b90506103b98282610375565b919050565b600067ffffffffffffffff8211156103d8576103d8610346565b601f19601f83011660200192915050565b82818337506000910152565b6000610408610403846103be565b6103a2565b90508281526020810184848401111561042357610423600080fd5b61042e8482856103e9565b509392505050565b600082601f83011261044a5761044a600080fd5b813561045a8482602086016103f5565b949350505050565b60008060006060848603121561047a5761047a600080fd5b60006104868686610327565b93505060206104978682870161033b565b925050604084013567ffffffffffffffff8111156104b7576104b7600080fd5b6104c386828701610436565b9150509250925092565b60005b838110156104e85781810151838201526020016104d0565b50506000910152565b60006104fb825190565b8084526020840193506105128185602086016104cd565b601f01601f19169290920192915050565b6020808252810161053481846104f1565b9392505050565b60006020828403121561055057610550600080fd5b600061045a848461033b565b6040810161056a82856102eb565b818103602083015261045a81846104f156fea2646970667358221220b0f8a95a6e2425eadd967ffc0cf44240f936f4de811b02bbb90ac6935cf0ce6a64736f6c63430008140033b53127684a568b3173ae13b9f8a6016e243e63b6e8ee1178d6a717850b5d6103", + Bin: "0x60a06040526040516200132c3803806200132c8339810160408190526200002691620004c5565b828162000034828262000098565b505081604051620000459062000351565b6200005191906200054c565b604051809103906000f0801580156200006e573d6000803e3d6000fd5b506001600160a01b03166080526200008f6200008960805190565b620000fe565b505050620005ac565b620000a38262000167565b6040516001600160a01b038316907fbc7cd75a20ee27fd9adebab32041f755214dbc6bffa90cc0225b39da2e5c2d3b90600090a2805115620000f057620000eb8282620001e4565b505050565b620000fa62000263565b5050565b7f7e644d79422f17c01e4894b5f4f588d331ebfa28653d42ae832dc59e38c9798f620001406000805160206200130c833981519152546001600160a01b031690565b82604051620001519291906200055c565b60405180910390a1620001648162000285565b50565b806001600160a01b03163b600003620001a05780604051634c9c8ce360e01b81526004016200019791906200054c565b60405180910390fd5b807f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc5b80546001600160a01b0319166001600160a01b039290921691909117905550565b6060600080846001600160a01b031684604051620002039190620005a0565b600060405180830381855af49150503d806000811462000240576040519150601f19603f3d011682016040523d82523d6000602084013e62000245565b606091505b50909250905062000258858383620002c9565b925050505b92915050565b3415620002835760405163b398979f60e01b815260040160405180910390fd5b565b6001600160a01b038116620002b2576000604051633173bdd160e11b81526004016200019791906200054c565b806000805160206200130c833981519152620001c3565b606082620002e257620002dc8262000327565b62000320565b8151158015620002fa57506001600160a01b0384163b155b156200031d5783604051639996b31560e01b81526004016200019791906200054c565b50805b9392505050565b805115620003385780518082602001fd5b604051630a12f52160e11b815260040160405180910390fd5b6106ff8062000c0d83390190565b60006001600160a01b0382166200025d565b6200037c816200035f565b81146200016457600080fd5b80516200025d8162000371565b634e487b7160e01b600052604160045260246000fd5b601f19601f83011681016001600160401b0381118282101715620003d357620003d362000395565b6040525050565b6000620003e660405190565b9050620003f48282620003ab565b919050565b60006001600160401b0382111562000415576200041562000395565b601f19601f83011660200192915050565b60005b838110156200044357818101518382015260200162000429565b50506000910152565b6000620004636200045d84620003f9565b620003da565b905082815260208101848484011115620004805762000480600080fd5b6200048d84828562000426565b509392505050565b600082601f830112620004ab57620004ab600080fd5b8151620004bd8482602086016200044c565b949350505050565b600080600060608486031215620004df57620004df600080fd5b6000620004ed868662000388565b9350506020620005008682870162000388565b604086015190935090506001600160401b03811115620005235762000523600080fd5b620005318682870162000495565b9150509250925092565b62000546816200035f565b82525050565b602081016200025d82846200053b565b604081016200056c82856200053b565b6200032060208301846200053b565b600062000586825190565b6200059681856020860162000426565b9290920192915050565b6200025d81836200057b565b608051610646620005c76000396000601001526106466000f3fe608060405261000c61000e565b005b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031633036100c5576000357fffffffff00000000000000000000000000000000000000000000000000000000167f4f1ef28600000000000000000000000000000000000000000000000000000000146100bb576040517fd2b576ec00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6100c36100cd565b565b6100c36100fc565b6000806100dd36600481846103cf565b8101906100ea919061054b565b915091506100f8828261010c565b5050565b6100c3610107610167565b61019f565b610115826101c3565b6040516001600160a01b038316907fbc7cd75a20ee27fd9adebab32041f755214dbc6bffa90cc0225b39da2e5c2d3b90600090a280511561015f5761015a828261026b565b505050565b6100f86102e3565b600061019a7f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc546001600160a01b031690565b905090565b3660008037600080366000845af43d6000803e8080156101be573d6000f35b3d6000fd5b806001600160a01b03163b60000361021257806040517f4c9c8ce300000000000000000000000000000000000000000000000000000000815260040161020991906105b2565b60405180910390fd5b7f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc80547fffffffffffffffffffffffff0000000000000000000000000000000000000000166001600160a01b0392909216919091179055565b6060600080846001600160a01b0316846040516102889190610606565b600060405180830381855af49150503d80600081146102c3576040519150601f19603f3d011682016040523d82523d6000602084013e6102c8565b606091505b50915091506102d885838361031b565b925050505b92915050565b34156100c3576040517fb398979f00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6060826103305761032b8261038a565b610383565b815115801561034757506001600160a01b0384163b155b1561038057836040517f9996b31500000000000000000000000000000000000000000000000000000000815260040161020991906105b2565b50805b9392505050565b80511561039a5780518082602001fd5b6040517f1425ea4200000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b50565b600080858511156103e2576103e2600080fd5b838611156103f2576103f2600080fd5b5050820193919092039150565b60006001600160a01b0382166102dd565b610419816103ff565b81146103cc57600080fd5b80356102dd81610410565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b601f19601f830116810181811067ffffffffffffffff821117156104845761048461042f565b6040525050565b600061049660405190565b90506104a2828261045e565b919050565b600067ffffffffffffffff8211156104c1576104c161042f565b601f19601f83011660200192915050565b82818337506000910152565b60006104f16104ec846104a7565b61048b565b90508281526020810184848401111561050c5761050c600080fd5b6105178482856104d2565b509392505050565b600082601f83011261053357610533600080fd5b81356105438482602086016104de565b949350505050565b6000806040838503121561056157610561600080fd5b600061056d8585610424565b925050602083013567ffffffffffffffff81111561058d5761058d600080fd5b6105998582860161051f565b9150509250929050565b6105ac816103ff565b82525050565b602081016102dd82846105a3565b60005b838110156105db5781810151838201526020016105c3565b50506000910152565b60006105ee825190565b6105fc8185602086016105c0565b9290920192915050565b6102dd81836105e456fea26469706673582212209a20b849817245e3cac5f59a8de1da61769680733e5cb208d7418240470f1f7364736f6c63430008150033608060405234801561001057600080fd5b506040516106ff3803806106ff83398101604081905261002f916100f8565b806001600160a01b038116610063576000604051631e4fbdf760e01b815260040161005a9190610130565b60405180910390fd5b61006c81610073565b505061013e565b600080546001600160a01b038381166001600160a01b0319831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b60006001600160a01b0382165b92915050565b6100df816100c3565b81146100ea57600080fd5b50565b80516100d0816100d6565b60006020828403121561010d5761010d600080fd5b600061011984846100ed565b949350505050565b61012a816100c3565b82525050565b602081016100d08284610121565b6105b28061014d6000396000f3fe60806040526004361061005a5760003560e01c80639623609d116100435780639623609d146100a5578063ad3cb1cc146100b8578063f2fde38b1461010e57600080fd5b8063715018a61461005f5780638da5cb5b14610076575b600080fd5b34801561006b57600080fd5b5061007461012e565b005b34801561008257600080fd5b506000546001600160a01b031660405161009c91906102fa565b60405180910390f35b6100746100b3366004610462565b610142565b3480156100c457600080fd5b506101016040518060400160405280600581526020017f352e302e3000000000000000000000000000000000000000000000000000000081525081565b60405161009c9190610523565b34801561011a57600080fd5b5061007461012936600461053b565b6101ca565b61013661022a565b6101406000610270565b565b61014a61022a565b6040517f4f1ef2860000000000000000000000000000000000000000000000000000000081526001600160a01b03841690634f1ef286903490610193908690869060040161055c565b6000604051808303818588803b1580156101ac57600080fd5b505af11580156101c0573d6000803e3d6000fd5b5050505050505050565b6101d261022a565b6001600160a01b03811661021e5760006040517f1e4fbdf700000000000000000000000000000000000000000000000000000000815260040161021591906102fa565b60405180910390fd5b61022781610270565b50565b6000546001600160a01b0316331461014057336040517f118cdaa700000000000000000000000000000000000000000000000000000000815260040161021591906102fa565b600080546001600160a01b038381167fffffffffffffffffffffffff0000000000000000000000000000000000000000831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b60006001600160a01b0382165b92915050565b6102f4816102d8565b82525050565b602081016102e582846102eb565b60006102e5826102d8565b61031c81610308565b811461022757600080fd5b80356102e581610313565b61031c816102d8565b80356102e581610332565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b601f19601f830116810181811067ffffffffffffffff8211171561039b5761039b610346565b6040525050565b60006103ad60405190565b90506103b98282610375565b919050565b600067ffffffffffffffff8211156103d8576103d8610346565b601f19601f83011660200192915050565b82818337506000910152565b6000610408610403846103be565b6103a2565b90508281526020810184848401111561042357610423600080fd5b61042e8482856103e9565b509392505050565b600082601f83011261044a5761044a600080fd5b813561045a8482602086016103f5565b949350505050565b60008060006060848603121561047a5761047a600080fd5b60006104868686610327565b93505060206104978682870161033b565b925050604084013567ffffffffffffffff8111156104b7576104b7600080fd5b6104c386828701610436565b9150509250925092565b60005b838110156104e85781810151838201526020016104d0565b50506000910152565b60006104fb825190565b8084526020840193506105128185602086016104cd565b601f01601f19169290920192915050565b6020808252810161053481846104f1565b9392505050565b60006020828403121561055057610550600080fd5b600061045a848461033b565b6040810161056a82856102eb565b818103602083015261045a81846104f156fea2646970667358221220bc53b042dace43e275ea4e3c2111fb2632f7c79b2d985ac0664bd97ca15c79a164736f6c63430008150033b53127684a568b3173ae13b9f8a6016e243e63b6e8ee1178d6a717850b5d6103", } // TransparentUpgradeableProxyABI is the input ABI used to generate the binding from. diff --git a/contracts/generated/WrappedERC20/WrappedERC20.go b/contracts/generated/WrappedERC20/WrappedERC20.go index 32cd0b3f47..2a1a3b37f8 100644 --- a/contracts/generated/WrappedERC20/WrappedERC20.go +++ b/contracts/generated/WrappedERC20/WrappedERC20.go @@ -32,7 +32,7 @@ var ( // WrappedERC20MetaData contains all meta data concerning the WrappedERC20 contract. var WrappedERC20MetaData = &bind.MetaData{ ABI: "[{\"inputs\":[{\"internalType\":\"string\",\"name\":\"name\",\"type\":\"string\"},{\"internalType\":\"string\",\"name\":\"symbol\",\"type\":\"string\"}],\"stateMutability\":\"nonpayable\",\"type\":\"constructor\"},{\"inputs\":[],\"name\":\"AccessControlBadConfirmation\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"},{\"internalType\":\"bytes32\",\"name\":\"neededRole\",\"type\":\"bytes32\"}],\"name\":\"AccessControlUnauthorizedAccount\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"spender\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"allowance\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"needed\",\"type\":\"uint256\"}],\"name\":\"ERC20InsufficientAllowance\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"sender\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"balance\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"needed\",\"type\":\"uint256\"}],\"name\":\"ERC20InsufficientBalance\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"approver\",\"type\":\"address\"}],\"name\":\"ERC20InvalidApprover\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"receiver\",\"type\":\"address\"}],\"name\":\"ERC20InvalidReceiver\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"sender\",\"type\":\"address\"}],\"name\":\"ERC20InvalidSender\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"spender\",\"type\":\"address\"}],\"name\":\"ERC20InvalidSpender\",\"type\":\"error\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"spender\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"value\",\"type\":\"uint256\"}],\"name\":\"Approval\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"bytes32\",\"name\":\"role\",\"type\":\"bytes32\"},{\"indexed\":true,\"internalType\":\"bytes32\",\"name\":\"previousAdminRole\",\"type\":\"bytes32\"},{\"indexed\":true,\"internalType\":\"bytes32\",\"name\":\"newAdminRole\",\"type\":\"bytes32\"}],\"name\":\"RoleAdminChanged\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"bytes32\",\"name\":\"role\",\"type\":\"bytes32\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"sender\",\"type\":\"address\"}],\"name\":\"RoleGranted\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"bytes32\",\"name\":\"role\",\"type\":\"bytes32\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"sender\",\"type\":\"address\"}],\"name\":\"RoleRevoked\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"from\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"value\",\"type\":\"uint256\"}],\"name\":\"Transfer\",\"type\":\"event\"},{\"inputs\":[],\"name\":\"ADMIN_ROLE\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"DEFAULT_ADMIN_ROLE\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"spender\",\"type\":\"address\"}],\"name\":\"allowance\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"spender\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"value\",\"type\":\"uint256\"}],\"name\":\"approve\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"}],\"name\":\"balanceOf\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"giver\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"}],\"name\":\"burnFor\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"decimals\",\"outputs\":[{\"internalType\":\"uint8\",\"name\":\"\",\"type\":\"uint8\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"role\",\"type\":\"bytes32\"}],\"name\":\"getRoleAdmin\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"role\",\"type\":\"bytes32\"},{\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"}],\"name\":\"grantRole\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"role\",\"type\":\"bytes32\"},{\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"}],\"name\":\"hasRole\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"receiver\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"}],\"name\":\"issueFor\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"name\",\"outputs\":[{\"internalType\":\"string\",\"name\":\"\",\"type\":\"string\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"role\",\"type\":\"bytes32\"},{\"internalType\":\"address\",\"name\":\"callerConfirmation\",\"type\":\"address\"}],\"name\":\"renounceRole\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"role\",\"type\":\"bytes32\"},{\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"}],\"name\":\"revokeRole\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes4\",\"name\":\"interfaceId\",\"type\":\"bytes4\"}],\"name\":\"supportsInterface\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"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\":\"to\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"value\",\"type\":\"uint256\"}],\"name\":\"transfer\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"from\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"value\",\"type\":\"uint256\"}],\"name\":\"transferFrom\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"}]", - Bin: "0x6080604052600580546001600160a01b03191673deb34a740eca1ec42c8b8204cbec0ba34fdd27f31790553480156200003757600080fd5b5060405162001546380380620015468339810160408190526200005a916200029e565b8181818160036200006c838262000412565b5060046200007b828262000412565b5050505050620000b27fa49807205ce4d355092ef5a8a18f56e8913cf4a201fbe287825b095693c2177533620000bb60201b60201c565b505050620004de565b60008281526007602090815260408083206001600160a01b038516845290915281205460ff16620001645760008381526007602090815260408083206001600160a01b03861684529091529020805460ff191660011790556200011b3390565b6001600160a01b0316826001600160a01b0316847f2f8788117e7eff1d82e926ec794901d17c78024a50270940304540a733656f0d60405160405180910390a450600162000168565b5060005b92915050565b634e487b7160e01b600052604160045260246000fd5b601f19601f83011681016001600160401b0381118282101715620001ac57620001ac6200016e565b6040525050565b6000620001bf60405190565b9050620001cd828262000184565b919050565b60006001600160401b03821115620001ee57620001ee6200016e565b601f19601f83011660200192915050565b60005b838110156200021c57818101518382015260200162000202565b50506000910152565b60006200023c6200023684620001d2565b620001b3565b905082815260208101848484011115620002595762000259600080fd5b62000266848285620001ff565b509392505050565b600082601f830112620002845762000284600080fd5b81516200029684826020860162000225565b949350505050565b60008060408385031215620002b657620002b6600080fd5b82516001600160401b03811115620002d157620002d1600080fd5b620002df858286016200026e565b602085015190935090506001600160401b03811115620003025762000302600080fd5b62000310858286016200026e565b9150509250929050565b634e487b7160e01b600052602260045260246000fd5b6002810460018216806200034557607f821691505b6020821081036200035a576200035a6200031a565b50919050565b6000620001686200036e8381565b90565b6200037c8362000360565b815460001960089490940293841b1916921b91909117905550565b6000620003a681848462000371565b505050565b81811015620003ca57620003c160008262000397565b600101620003ab565b5050565b601f821115620003a6576000818152602090206020601f85010481016020851015620003f75750805b6200040b6020601f860104830182620003ab565b5050505050565b81516001600160401b038111156200042e576200042e6200016e565b6200043a825462000330565b62000447828285620003ce565b506020601f8211600181146200047f5760008315620004665750848201515b600019600885021c19811660028502178555506200040b565b600084815260208120601f198516915b82811015620004b157878501518255602094850194600190920191016200048f565b5084821015620004cf5783870151600019601f87166008021c191681555b50505050600202600101905550565b61105880620004ee6000396000f3fe608060405234801561001057600080fd5b50600436106101515760003560e01c806336568abe116100cd578063979005ad11610081578063a9059cbb11610066578063a9059cbb146102ce578063d547741f146102e1578063dd62ed3e146102f457600080fd5b8063979005ad146102b3578063a217fddf146102c657600080fd5b806375b238fc116100b257806375b238fc1461024b57806391d148541461027257806395d89b41146102ab57600080fd5b806336568abe1461022557806370a082311461023857600080fd5b80631dd319cb11610124578063248a9ca311610109578063248a9ca3146101e05780632f2ff15d14610203578063313ce5671461021657600080fd5b80631dd319cb146101b857806323b872dd146101cd57600080fd5b806301ffc9a71461015657806306fdde031461017f578063095ea7b31461019457806318160ddd146101a7575b600080fd5b610169610164366004610c49565b610307565b6040516101769190610c7c565b60405180910390f35b6101876103a0565b6040516101769190610ce0565b6101696101a2366004610d27565b610432565b6002545b6040516101769190610d6a565b6101cb6101c6366004610d27565b61044a565b005b6101696101db366004610d78565b6104b4565b6101ab6101ee366004610dc8565b60009081526007602052604090206001015490565b6101cb610211366004610de9565b6104da565b60126040516101769190610e25565b6101cb610233366004610de9565b610505565b6101ab610246366004610e33565b610551565b6101ab7fa49807205ce4d355092ef5a8a18f56e8913cf4a201fbe287825b095693c2177581565b610169610280366004610de9565b60009182526007602090815260408084206001600160a01b0393909316845291905290205460ff1690565b6101876105c7565b6101cb6102c1366004610d27565b6105d6565b6101ab600081565b6101696102dc366004610d27565b61060a565b6101cb6102ef366004610de9565b610618565b6101ab610302366004610e54565b61063d565b60007fffffffff0000000000000000000000000000000000000000000000000000000082167f7965db0b00000000000000000000000000000000000000000000000000000000148061039a57507f01ffc9a7000000000000000000000000000000000000000000000000000000007fffffffff000000000000000000000000000000000000000000000000000000008316145b92915050565b6060600380546103af90610e8c565b80601f01602080910402602001604051908101604052809291908181526020018280546103db90610e8c565b80156104285780601f106103fd57610100808354040283529160200191610428565b820191906000526020600020905b81548152906001019060200180831161040b57829003601f168201915b5050505050905090565b6000336104408185856106f8565b5060019392505050565b7fa49807205ce4d355092ef5a8a18f56e8913cf4a201fbe287825b095693c2177561047481610705565b8161047e84610551565b10156104a55760405162461bcd60e51b815260040161049c90610eec565b60405180910390fd5b6104af8383610712565b505050565b6000336104c285828561074c565b6104cd8585856107b2565b60019150505b9392505050565b6000828152600760205260409020600101546104f581610705565b6104ff8383610811565b50505050565b6001600160a01b0381163314610547576040517f6697b23200000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6104af82826108bf565b60006001600160a01b0382163203610581576001600160a01b03821660009081526020819052604090205461039a565b6001600160a01b03821633036105af576001600160a01b03821660009081526020819052604090205461039a565b60405162461bcd60e51b815260040161049c90610f2e565b6060600480546103af90610e8c565b7fa49807205ce4d355092ef5a8a18f56e8913cf4a201fbe287825b095693c2177561060081610705565b6104af8383610946565b6000336104408185856107b2565b60008281526007602052604090206001015461063381610705565b6104ff83836108bf565b6000326001600160a01b038416148061065e5750326001600160a01b038316145b15610691576001600160a01b038084166000908152600160209081526040808320938616835292905220545b905061039a565b336001600160a01b03841614806106b05750336001600160a01b038316145b156106e0576001600160a01b0380841660009081526001602090815260408083209386168352929052205461068a565b60405162461bcd60e51b815260040161049c90610f3e565b6104af838383600161097c565b61070f8133610a81565b50565b6001600160a01b03821661073c576000604051634b637e8f60e11b815260040161049c9190610fa8565b61074882600083610ae1565b5050565b6000610758848461063d565b905060001981146104ff57818110156107a3578281836040517ffb8f41b200000000000000000000000000000000000000000000000000000000815260040161049c93929190610fb6565b6104ff8484848403600061097c565b6001600160a01b0383166107dc576000604051634b637e8f60e11b815260040161049c9190610fa8565b6001600160a01b03821661080657600060405163ec442f0560e01b815260040161049c9190610fa8565b6104af838383610ae1565b60008281526007602090815260408083206001600160a01b038516845290915281205460ff166108b75760008381526007602090815260408083206001600160a01b03861684529091529020805460ff1916600117905561086f3390565b6001600160a01b0316826001600160a01b0316847f2f8788117e7eff1d82e926ec794901d17c78024a50270940304540a733656f0d60405160405180910390a450600161039a565b50600061039a565b60008281526007602090815260408083206001600160a01b038516845290915281205460ff16156108b75760008381526007602090815260408083206001600160a01b0386168085529252808320805460ff1916905551339286917ff6391f5c32d9c69d2a47ea670b442974b53935d1edc7fd64eb21e047a839171b9190a450600161039a565b6001600160a01b03821661097057600060405163ec442f0560e01b815260040161049c9190610fa8565b61074860008383610ae1565b6001600160a01b0384166109bf5760006040517fe602df0500000000000000000000000000000000000000000000000000000000815260040161049c9190610fa8565b6001600160a01b038316610a025760006040517f94280d6200000000000000000000000000000000000000000000000000000000815260040161049c9190610fa8565b6001600160a01b03808516600090815260016020908152604080832093871683529290522082905580156104ff57826001600160a01b0316846001600160a01b03167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92584604051610a739190610d6a565b60405180910390a350505050565b60008281526007602090815260408083206001600160a01b038516845290915290205460ff166107485780826040517fe2517d3f00000000000000000000000000000000000000000000000000000000815260040161049c929190610fde565b6001600160a01b038316610b0c578060026000828254610b01919061100f565b90915550610b849050565b6001600160a01b03831660009081526020819052604090205481811015610b65578381836040517fe450d38c00000000000000000000000000000000000000000000000000000000815260040161049c93929190610fb6565b6001600160a01b03841660009081526020819052604090209082900390555b6001600160a01b038216610ba057600280548290039055610bbf565b6001600160a01b03821660009081526020819052604090208054820190555b816001600160a01b0316836001600160a01b03167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef83604051610c029190610d6a565b60405180910390a3505050565b7fffffffff0000000000000000000000000000000000000000000000000000000081165b811461070f57600080fd5b803561039a81610c0f565b600060208284031215610c5e57610c5e600080fd5b6000610c6a8484610c3e565b949350505050565b8015155b82525050565b6020810161039a8284610c72565b60005b83811015610ca5578181015183820152602001610c8d565b50506000910152565b6000610cb8825190565b808452602084019350610ccf818560208601610c8a565b601f01601f19169290920192915050565b602080825281016104d38184610cae565b60006001600160a01b03821661039a565b610c3381610cf1565b803561039a81610d02565b80610c33565b803561039a81610d16565b60008060408385031215610d3d57610d3d600080fd5b6000610d498585610d0b565b9250506020610d5a85828601610d1c565b9150509250929050565b80610c76565b6020810161039a8284610d64565b600080600060608486031215610d9057610d90600080fd5b6000610d9c8686610d0b565b9350506020610dad86828701610d0b565b9250506040610dbe86828701610d1c565b9150509250925092565b600060208284031215610ddd57610ddd600080fd5b6000610c6a8484610d1c565b60008060408385031215610dff57610dff600080fd5b6000610e0b8585610d1c565b9250506020610d5a85828601610d0b565b60ff8116610c76565b6020810161039a8284610e1c565b600060208284031215610e4857610e48600080fd5b6000610c6a8484610d0b565b60008060408385031215610e6a57610e6a600080fd5b6000610e0b8585610d0b565b634e487b7160e01b600052602260045260246000fd5b600281046001821680610ea057607f821691505b602082108103610eb257610eb2610e76565b50919050565b60158152602081017f496e73756666696369656e742062616c616e63652e0000000000000000000000815290505b60200190565b6020808252810161039a81610eb8565b601f8152602081017f4e6f7420616c6c6f77656420746f2072656164207468652062616c616e63650081529050610ee6565b6020808252810161039a81610efc565b6020808252810161039a81602181527f4e6f7420616c6c6f77656420746f20726561642074686520616c6c6f77616e6360208201527f6500000000000000000000000000000000000000000000000000000000000000604082015260600190565b610c7681610cf1565b6020810161039a8284610f9f565b60608101610fc48286610f9f565b610fd16020830185610d64565b610c6a6040830184610d64565b60408101610fec8285610f9f565b6104d36020830184610d64565b634e487b7160e01b600052601160045260246000fd5b8082018082111561039a5761039a610ff956fea26469706673582212200ccb938df157c83569bb97b7cac53f726956a8f0a388597c60ae24feb0f05f4964736f6c63430008140033", + Bin: "0x6080604052600580546001600160a01b03191673deb34a740eca1ec42c8b8204cbec0ba34fdd27f31790553480156200003757600080fd5b5060405162001546380380620015468339810160408190526200005a916200029e565b8181818160036200006c838262000412565b5060046200007b828262000412565b5050505050620000b27fa49807205ce4d355092ef5a8a18f56e8913cf4a201fbe287825b095693c2177533620000bb60201b60201c565b505050620004de565b60008281526007602090815260408083206001600160a01b038516845290915281205460ff16620001645760008381526007602090815260408083206001600160a01b03861684529091529020805460ff191660011790556200011b3390565b6001600160a01b0316826001600160a01b0316847f2f8788117e7eff1d82e926ec794901d17c78024a50270940304540a733656f0d60405160405180910390a450600162000168565b5060005b92915050565b634e487b7160e01b600052604160045260246000fd5b601f19601f83011681016001600160401b0381118282101715620001ac57620001ac6200016e565b6040525050565b6000620001bf60405190565b9050620001cd828262000184565b919050565b60006001600160401b03821115620001ee57620001ee6200016e565b601f19601f83011660200192915050565b60005b838110156200021c57818101518382015260200162000202565b50506000910152565b60006200023c6200023684620001d2565b620001b3565b905082815260208101848484011115620002595762000259600080fd5b62000266848285620001ff565b509392505050565b600082601f830112620002845762000284600080fd5b81516200029684826020860162000225565b949350505050565b60008060408385031215620002b657620002b6600080fd5b82516001600160401b03811115620002d157620002d1600080fd5b620002df858286016200026e565b602085015190935090506001600160401b03811115620003025762000302600080fd5b62000310858286016200026e565b9150509250929050565b634e487b7160e01b600052602260045260246000fd5b6002810460018216806200034557607f821691505b6020821081036200035a576200035a6200031a565b50919050565b6000620001686200036e8381565b90565b6200037c8362000360565b815460001960089490940293841b1916921b91909117905550565b6000620003a681848462000371565b505050565b81811015620003ca57620003c160008262000397565b600101620003ab565b5050565b601f821115620003a6576000818152602090206020601f85010481016020851015620003f75750805b6200040b6020601f860104830182620003ab565b5050505050565b81516001600160401b038111156200042e576200042e6200016e565b6200043a825462000330565b62000447828285620003ce565b506020601f8211600181146200047f5760008315620004665750848201515b600019600885021c19811660028502178555506200040b565b600084815260208120601f198516915b82811015620004b157878501518255602094850194600190920191016200048f565b5084821015620004cf5783870151600019601f87166008021c191681555b50505050600202600101905550565b61105880620004ee6000396000f3fe608060405234801561001057600080fd5b50600436106101515760003560e01c806336568abe116100cd578063979005ad11610081578063a9059cbb11610066578063a9059cbb146102ce578063d547741f146102e1578063dd62ed3e146102f457600080fd5b8063979005ad146102b3578063a217fddf146102c657600080fd5b806375b238fc116100b257806375b238fc1461024b57806391d148541461027257806395d89b41146102ab57600080fd5b806336568abe1461022557806370a082311461023857600080fd5b80631dd319cb11610124578063248a9ca311610109578063248a9ca3146101e05780632f2ff15d14610203578063313ce5671461021657600080fd5b80631dd319cb146101b857806323b872dd146101cd57600080fd5b806301ffc9a71461015657806306fdde031461017f578063095ea7b31461019457806318160ddd146101a7575b600080fd5b610169610164366004610c49565b610307565b6040516101769190610c7c565b60405180910390f35b6101876103a0565b6040516101769190610ce0565b6101696101a2366004610d27565b610432565b6002545b6040516101769190610d6a565b6101cb6101c6366004610d27565b61044a565b005b6101696101db366004610d78565b6104b4565b6101ab6101ee366004610dc8565b60009081526007602052604090206001015490565b6101cb610211366004610de9565b6104da565b60126040516101769190610e25565b6101cb610233366004610de9565b610505565b6101ab610246366004610e33565b610551565b6101ab7fa49807205ce4d355092ef5a8a18f56e8913cf4a201fbe287825b095693c2177581565b610169610280366004610de9565b60009182526007602090815260408084206001600160a01b0393909316845291905290205460ff1690565b6101876105c7565b6101cb6102c1366004610d27565b6105d6565b6101ab600081565b6101696102dc366004610d27565b61060a565b6101cb6102ef366004610de9565b610618565b6101ab610302366004610e54565b61063d565b60007fffffffff0000000000000000000000000000000000000000000000000000000082167f7965db0b00000000000000000000000000000000000000000000000000000000148061039a57507f01ffc9a7000000000000000000000000000000000000000000000000000000007fffffffff000000000000000000000000000000000000000000000000000000008316145b92915050565b6060600380546103af90610e8c565b80601f01602080910402602001604051908101604052809291908181526020018280546103db90610e8c565b80156104285780601f106103fd57610100808354040283529160200191610428565b820191906000526020600020905b81548152906001019060200180831161040b57829003601f168201915b5050505050905090565b6000336104408185856106f8565b5060019392505050565b7fa49807205ce4d355092ef5a8a18f56e8913cf4a201fbe287825b095693c2177561047481610705565b8161047e84610551565b10156104a55760405162461bcd60e51b815260040161049c90610eec565b60405180910390fd5b6104af8383610712565b505050565b6000336104c285828561074c565b6104cd8585856107b2565b60019150505b9392505050565b6000828152600760205260409020600101546104f581610705565b6104ff8383610811565b50505050565b6001600160a01b0381163314610547576040517f6697b23200000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6104af82826108bf565b60006001600160a01b0382163203610581576001600160a01b03821660009081526020819052604090205461039a565b6001600160a01b03821633036105af576001600160a01b03821660009081526020819052604090205461039a565b60405162461bcd60e51b815260040161049c90610f2e565b6060600480546103af90610e8c565b7fa49807205ce4d355092ef5a8a18f56e8913cf4a201fbe287825b095693c2177561060081610705565b6104af8383610946565b6000336104408185856107b2565b60008281526007602052604090206001015461063381610705565b6104ff83836108bf565b6000326001600160a01b038416148061065e5750326001600160a01b038316145b15610691576001600160a01b038084166000908152600160209081526040808320938616835292905220545b905061039a565b336001600160a01b03841614806106b05750336001600160a01b038316145b156106e0576001600160a01b0380841660009081526001602090815260408083209386168352929052205461068a565b60405162461bcd60e51b815260040161049c90610f3e565b6104af838383600161097c565b61070f8133610a81565b50565b6001600160a01b03821661073c576000604051634b637e8f60e11b815260040161049c9190610fa8565b61074882600083610ae1565b5050565b6000610758848461063d565b905060001981146104ff57818110156107a3578281836040517ffb8f41b200000000000000000000000000000000000000000000000000000000815260040161049c93929190610fb6565b6104ff8484848403600061097c565b6001600160a01b0383166107dc576000604051634b637e8f60e11b815260040161049c9190610fa8565b6001600160a01b03821661080657600060405163ec442f0560e01b815260040161049c9190610fa8565b6104af838383610ae1565b60008281526007602090815260408083206001600160a01b038516845290915281205460ff166108b75760008381526007602090815260408083206001600160a01b03861684529091529020805460ff1916600117905561086f3390565b6001600160a01b0316826001600160a01b0316847f2f8788117e7eff1d82e926ec794901d17c78024a50270940304540a733656f0d60405160405180910390a450600161039a565b50600061039a565b60008281526007602090815260408083206001600160a01b038516845290915281205460ff16156108b75760008381526007602090815260408083206001600160a01b0386168085529252808320805460ff1916905551339286917ff6391f5c32d9c69d2a47ea670b442974b53935d1edc7fd64eb21e047a839171b9190a450600161039a565b6001600160a01b03821661097057600060405163ec442f0560e01b815260040161049c9190610fa8565b61074860008383610ae1565b6001600160a01b0384166109bf5760006040517fe602df0500000000000000000000000000000000000000000000000000000000815260040161049c9190610fa8565b6001600160a01b038316610a025760006040517f94280d6200000000000000000000000000000000000000000000000000000000815260040161049c9190610fa8565b6001600160a01b03808516600090815260016020908152604080832093871683529290522082905580156104ff57826001600160a01b0316846001600160a01b03167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92584604051610a739190610d6a565b60405180910390a350505050565b60008281526007602090815260408083206001600160a01b038516845290915290205460ff166107485780826040517fe2517d3f00000000000000000000000000000000000000000000000000000000815260040161049c929190610fde565b6001600160a01b038316610b0c578060026000828254610b01919061100f565b90915550610b849050565b6001600160a01b03831660009081526020819052604090205481811015610b65578381836040517fe450d38c00000000000000000000000000000000000000000000000000000000815260040161049c93929190610fb6565b6001600160a01b03841660009081526020819052604090209082900390555b6001600160a01b038216610ba057600280548290039055610bbf565b6001600160a01b03821660009081526020819052604090208054820190555b816001600160a01b0316836001600160a01b03167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef83604051610c029190610d6a565b60405180910390a3505050565b7fffffffff0000000000000000000000000000000000000000000000000000000081165b811461070f57600080fd5b803561039a81610c0f565b600060208284031215610c5e57610c5e600080fd5b6000610c6a8484610c3e565b949350505050565b8015155b82525050565b6020810161039a8284610c72565b60005b83811015610ca5578181015183820152602001610c8d565b50506000910152565b6000610cb8825190565b808452602084019350610ccf818560208601610c8a565b601f01601f19169290920192915050565b602080825281016104d38184610cae565b60006001600160a01b03821661039a565b610c3381610cf1565b803561039a81610d02565b80610c33565b803561039a81610d16565b60008060408385031215610d3d57610d3d600080fd5b6000610d498585610d0b565b9250506020610d5a85828601610d1c565b9150509250929050565b80610c76565b6020810161039a8284610d64565b600080600060608486031215610d9057610d90600080fd5b6000610d9c8686610d0b565b9350506020610dad86828701610d0b565b9250506040610dbe86828701610d1c565b9150509250925092565b600060208284031215610ddd57610ddd600080fd5b6000610c6a8484610d1c565b60008060408385031215610dff57610dff600080fd5b6000610e0b8585610d1c565b9250506020610d5a85828601610d0b565b60ff8116610c76565b6020810161039a8284610e1c565b600060208284031215610e4857610e48600080fd5b6000610c6a8484610d0b565b60008060408385031215610e6a57610e6a600080fd5b6000610e0b8585610d0b565b634e487b7160e01b600052602260045260246000fd5b600281046001821680610ea057607f821691505b602082108103610eb257610eb2610e76565b50919050565b60158152602081017f496e73756666696369656e742062616c616e63652e0000000000000000000000815290505b60200190565b6020808252810161039a81610eb8565b601f8152602081017f4e6f7420616c6c6f77656420746f2072656164207468652062616c616e63650081529050610ee6565b6020808252810161039a81610efc565b6020808252810161039a81602181527f4e6f7420616c6c6f77656420746f20726561642074686520616c6c6f77616e6360208201527f6500000000000000000000000000000000000000000000000000000000000000604082015260600190565b610c7681610cf1565b6020810161039a8284610f9f565b60608101610fc48286610f9f565b610fd16020830185610d64565b610c6a6040830184610d64565b60408101610fec8285610f9f565b6104d36020830184610d64565b634e487b7160e01b600052601160045260246000fd5b8082018082111561039a5761039a610ff956fea264697066735822122015a37e58522ca26bdd51e6ea23c5953be6e295684d318926ea7d989d6576fe1c64736f6c63430008150033", } // WrappedERC20ABI is the input ABI used to generate the binding from. diff --git a/contracts/generated/ZenBase/ZenBase.go b/contracts/generated/ZenBase/ZenBase.go index 9716732fa9..7880260e51 100644 --- a/contracts/generated/ZenBase/ZenBase.go +++ b/contracts/generated/ZenBase/ZenBase.go @@ -46,7 +46,7 @@ type StructsTransaction struct { // ZenBaseMetaData contains all meta data concerning the ZenBase contract. var ZenBaseMetaData = &bind.MetaData{ ABI: "[{\"inputs\":[{\"internalType\":\"address\",\"name\":\"transactionPostProcessor\",\"type\":\"address\"}],\"stateMutability\":\"nonpayable\",\"type\":\"constructor\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"spender\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"allowance\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"needed\",\"type\":\"uint256\"}],\"name\":\"ERC20InsufficientAllowance\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"sender\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"balance\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"needed\",\"type\":\"uint256\"}],\"name\":\"ERC20InsufficientBalance\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"approver\",\"type\":\"address\"}],\"name\":\"ERC20InvalidApprover\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"receiver\",\"type\":\"address\"}],\"name\":\"ERC20InvalidReceiver\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"sender\",\"type\":\"address\"}],\"name\":\"ERC20InvalidSender\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"spender\",\"type\":\"address\"}],\"name\":\"ERC20InvalidSpender\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"}],\"name\":\"OwnableInvalidOwner\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"}],\"name\":\"OwnableUnauthorizedAccount\",\"type\":\"error\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"spender\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"value\",\"type\":\"uint256\"}],\"name\":\"Approval\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"previousOwner\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"newOwner\",\"type\":\"address\"}],\"name\":\"OwnershipTransferred\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"address\",\"name\":\"sender\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"}],\"name\":\"TransactionProcessed\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"from\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"value\",\"type\":\"uint256\"}],\"name\":\"Transfer\",\"type\":\"event\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"spender\",\"type\":\"address\"}],\"name\":\"allowance\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"spender\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"value\",\"type\":\"uint256\"}],\"name\":\"approve\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"}],\"name\":\"balanceOf\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"decimals\",\"outputs\":[{\"internalType\":\"uint8\",\"name\":\"\",\"type\":\"uint8\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"name\",\"outputs\":[{\"internalType\":\"string\",\"name\":\"\",\"type\":\"string\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"components\":[{\"internalType\":\"uint8\",\"name\":\"txType\",\"type\":\"uint8\"},{\"internalType\":\"uint256\",\"name\":\"nonce\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"gasPrice\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"gasLimit\",\"type\":\"uint256\"},{\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"value\",\"type\":\"uint256\"},{\"internalType\":\"bytes\",\"name\":\"data\",\"type\":\"bytes\"},{\"internalType\":\"address\",\"name\":\"from\",\"type\":\"address\"},{\"internalType\":\"bool\",\"name\":\"successful\",\"type\":\"bool\"},{\"internalType\":\"uint64\",\"name\":\"gasUsed\",\"type\":\"uint64\"}],\"internalType\":\"structStructs.Transaction[]\",\"name\":\"transactions\",\"type\":\"tuple[]\"}],\"name\":\"onBlockEnd\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"owner\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"renounceOwnership\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"symbol\",\"outputs\":[{\"internalType\":\"string\",\"name\":\"\",\"type\":\"string\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"totalSupply\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"value\",\"type\":\"uint256\"}],\"name\":\"transfer\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"from\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"value\",\"type\":\"uint256\"}],\"name\":\"transferFrom\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"newOwner\",\"type\":\"address\"}],\"name\":\"transferOwnership\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"}]", - Bin: "0x60806040523480156200001157600080fd5b506040516200115f3803806200115f8339810160408190526200003491620001ad565b33604051806040016040528060038152602001622d32b760e91b815250604051806040016040528060038152602001622d22a760e91b81525081600390816200007e9190620002e8565b5060046200008d8282620002e8565b5050506001600160a01b038116620000c6576000604051631e4fbdf760e01b8152600401620000bd9190620003c5565b60405180910390fd5b620000d18162000121565b506001600160a01b038116620000fb5760405162461bcd60e51b8152600401620000bd90620003d5565b600680546001600160a01b0319166001600160a01b03929092169190911790556200041e565b600580546001600160a01b038381166001600160a01b0319831681179093556040519116919082907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e090600090a35050565b60006001600160a01b0382165b92915050565b620001918162000173565b81146200019d57600080fd5b50565b8051620001808162000186565b600060208284031215620001c457620001c4600080fd5b6000620001d28484620001a0565b949350505050565b634e487b7160e01b600052604160045260246000fd5b634e487b7160e01b600052602260045260246000fd5b6002810460018216806200021b57607f821691505b602082108103620002305762000230620001f0565b50919050565b600062000180620002448381565b90565b620002528362000236565b815460001960089490940293841b1916921b91909117905550565b60006200027c81848462000247565b505050565b81811015620002a057620002976000826200026d565b60010162000281565b5050565b601f8211156200027c576000818152602090206020601f85010481016020851015620002cd5750805b620002e16020601f86010483018262000281565b5050505050565b81516001600160401b03811115620003045762000304620001da565b62000310825462000206565b6200031d828285620002a4565b506020601f8211600181146200035557600083156200033c5750848201515b600019600885021c1981166002850217855550620002e1565b600084815260208120601f198516915b8281101562000387578785015182556020948501946001909201910162000365565b5084821015620003a55783870151600019601f87166008021c191681555b50505050600202600101905550565b620003bf8162000173565b82525050565b60208101620001808284620003b4565b602080825281016200018081602481527f496e76616c6964207472616e73616374696f6e20616e616c797a6572206164646020820152637265737360e01b604082015260600190565b610d31806200042e6000396000f3fe608060405234801561001057600080fd5b50600436106100df5760003560e01c8063715018a61161008c5780639f9976af116100665780639f9976af146101a9578063a9059cbb146101bc578063dd62ed3e146101cf578063f2fde38b1461020857600080fd5b8063715018a61461017e5780638da5cb5b1461018857806395d89b41146101a157600080fd5b806323b872dd116100bd57806323b872dd14610133578063313ce5671461014657806370a082311461015557600080fd5b806306fdde03146100e4578063095ea7b31461010257806318160ddd14610122575b600080fd5b6100ec61021b565b6040516100f99190610916565b60405180910390f35b610115610110366004610968565b6102ad565b6040516100f991906109af565b6002545b6040516100f991906109c3565b6101156101413660046109d1565b6102c7565b60126040516100f99190610a2a565b610126610163366004610a38565b6001600160a01b031660009081526020819052604090205490565b6101866102ed565b005b6005546001600160a01b03166040516100f99190610a6a565b6100ec610301565b6101866101b7366004610aca565b610310565b6101156101ca366004610968565b610435565b6101266101dd366004610b12565b6001600160a01b03918216600090815260016020908152604080832093909416825291909152205490565b610186610216366004610a38565b610443565b60606003805461022a90610b5b565b80601f016020809104026020016040519081016040528092919081815260200182805461025690610b5b565b80156102a35780601f10610278576101008083540402835291602001916102a3565b820191906000526020600020905b81548152906001019060200180831161028657829003601f168201915b5050505050905090565b6000336102bb81858561049a565b60019150505b92915050565b6000336102d58582856104a7565b6102e085858561052b565b60019150505b9392505050565b6102f56105a3565b6102ff60006105e9565b565b60606004805461022a90610b5b565b6006546001600160a01b031633146103435760405162461bcd60e51b815260040161033a90610b87565b60405180910390fd5b60008190036103645760405162461bcd60e51b815260040161033a90610be8565b60005b81811015610430576103af83838381811061038457610384610c23565b90506020028101906103969190610c39565b6103a89061010081019060e001610a38565b6001610653565b7fe848a9a1096c6a1986f56a70fb7fb3250e28b1f56d41fa97ac643492c6c853d18383838181106103e2576103e2610c23565b90506020028101906103f49190610c39565b6104069061010081019060e001610a38565b6001604051610416929190610c76565b60405180910390a18061042881610ca7565b915050610367565b505050565b6000336102bb81858561052b565b61044b6105a3565b6001600160a01b03811661048e5760006040517f1e4fbdf700000000000000000000000000000000000000000000000000000000815260040161033a9190610a6a565b610497816105e9565b50565b610430838383600161068d565b6001600160a01b0383811660009081526001602090815260408083209386168352929052205460001981146105255781811015610516578281836040517ffb8f41b200000000000000000000000000000000000000000000000000000000815260040161033a93929190610cc0565b6105258484848403600061068d565b50505050565b6001600160a01b03831661056e5760006040517f96c6fd1e00000000000000000000000000000000000000000000000000000000815260040161033a9190610a6a565b6001600160a01b03821661059857600060405163ec442f0560e01b815260040161033a9190610a6a565b610430838383610792565b6005546001600160a01b031633146102ff57336040517f118cdaa700000000000000000000000000000000000000000000000000000000815260040161033a9190610a6a565b600580546001600160a01b038381167fffffffffffffffffffffffff0000000000000000000000000000000000000000831681179093556040519116919082907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e090600090a35050565b6001600160a01b03821661067d57600060405163ec442f0560e01b815260040161033a9190610a6a565b61068960008383610792565b5050565b6001600160a01b0384166106d05760006040517fe602df0500000000000000000000000000000000000000000000000000000000815260040161033a9190610a6a565b6001600160a01b0383166107135760006040517f94280d6200000000000000000000000000000000000000000000000000000000815260040161033a9190610a6a565b6001600160a01b038085166000908152600160209081526040808320938716835292905220829055801561052557826001600160a01b0316846001600160a01b03167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b9258460405161078491906109c3565b60405180910390a350505050565b6001600160a01b0383166107bd5780600260008282546107b29190610ce8565b909155506108359050565b6001600160a01b03831660009081526020819052604090205481811015610816578381836040517fe450d38c00000000000000000000000000000000000000000000000000000000815260040161033a93929190610cc0565b6001600160a01b03841660009081526020819052604090209082900390555b6001600160a01b03821661085157600280548290039055610870565b6001600160a01b03821660009081526020819052604090208054820190555b816001600160a01b0316836001600160a01b03167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef836040516108b391906109c3565b60405180910390a3505050565b60005b838110156108db5781810151838201526020016108c3565b50506000910152565b60006108ee825190565b8084526020840193506109058185602086016108c0565b601f01601f19169290920192915050565b602080825281016102e681846108e4565b60006001600160a01b0382166102c1565b61094181610927565b811461049757600080fd5b80356102c181610938565b80610941565b80356102c181610957565b6000806040838503121561097e5761097e600080fd5b600061098a858561094c565b925050602061099b8582860161095d565b9150509250929050565b8015155b82525050565b602081016102c182846109a5565b806109a9565b602081016102c182846109bd565b6000806000606084860312156109e9576109e9600080fd5b60006109f5868661094c565b9350506020610a068682870161094c565b9250506040610a178682870161095d565b9150509250925092565b60ff81166109a9565b602081016102c18284610a21565b600060208284031215610a4d57610a4d600080fd5b6000610a59848461094c565b949350505050565b6109a981610927565b602081016102c18284610a61565b60008083601f840112610a8d57610a8d600080fd5b50813567ffffffffffffffff811115610aa857610aa8600080fd5b602083019150836020820283011115610ac357610ac3600080fd5b9250929050565b60008060208385031215610ae057610ae0600080fd5b823567ffffffffffffffff811115610afa57610afa600080fd5b610b0685828601610a78565b92509250509250929050565b60008060408385031215610b2857610b28600080fd5b6000610b34858561094c565b925050602061099b8582860161094c565b634e487b7160e01b600052602260045260246000fd5b600281046001821680610b6f57607f821691505b602082108103610b8157610b81610b45565b50919050565b602080825281016102c181602c81527f43616c6c65723a2063616c6c6572206973206e6f74207468652064657369676e60208201527f6174656420616464726573730000000000000000000000000000000000000000604082015260600190565b602080825281016102c181601a81527f4e6f207472616e73616374696f6e7320746f20636f6e76657274000000000000602082015260400190565b634e487b7160e01b600052603260045260246000fd5b6000823561013e1936849003018112610c5457610c54600080fd5b9190910192915050565b60006102c1610c6a8381565b90565b6109a981610c5e565b60408101610c848285610a61565b6102e66020830184610c6d565b634e487b7160e01b600052601160045260246000fd5b600060018201610cb957610cb9610c91565b5060010190565b60608101610cce8286610a61565b610cdb60208301856109bd565b610a5960408301846109bd565b808201808211156102c1576102c1610c9156fea2646970667358221220e0821c2da2d89cd6268be84339e5df240d1410e215bce1cee061b134a30c086764736f6c63430008140033", + Bin: "0x60806040523480156200001157600080fd5b506040516200115f3803806200115f8339810160408190526200003491620001ad565b33604051806040016040528060038152602001622d32b760e91b815250604051806040016040528060038152602001622d22a760e91b81525081600390816200007e9190620002e8565b5060046200008d8282620002e8565b5050506001600160a01b038116620000c6576000604051631e4fbdf760e01b8152600401620000bd9190620003c5565b60405180910390fd5b620000d18162000121565b506001600160a01b038116620000fb5760405162461bcd60e51b8152600401620000bd90620003d5565b600680546001600160a01b0319166001600160a01b03929092169190911790556200041e565b600580546001600160a01b038381166001600160a01b0319831681179093556040519116919082907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e090600090a35050565b60006001600160a01b0382165b92915050565b620001918162000173565b81146200019d57600080fd5b50565b8051620001808162000186565b600060208284031215620001c457620001c4600080fd5b6000620001d28484620001a0565b949350505050565b634e487b7160e01b600052604160045260246000fd5b634e487b7160e01b600052602260045260246000fd5b6002810460018216806200021b57607f821691505b602082108103620002305762000230620001f0565b50919050565b600062000180620002448381565b90565b620002528362000236565b815460001960089490940293841b1916921b91909117905550565b60006200027c81848462000247565b505050565b81811015620002a057620002976000826200026d565b60010162000281565b5050565b601f8211156200027c576000818152602090206020601f85010481016020851015620002cd5750805b620002e16020601f86010483018262000281565b5050505050565b81516001600160401b03811115620003045762000304620001da565b62000310825462000206565b6200031d828285620002a4565b506020601f8211600181146200035557600083156200033c5750848201515b600019600885021c1981166002850217855550620002e1565b600084815260208120601f198516915b8281101562000387578785015182556020948501946001909201910162000365565b5084821015620003a55783870151600019601f87166008021c191681555b50505050600202600101905550565b620003bf8162000173565b82525050565b60208101620001808284620003b4565b602080825281016200018081602481527f496e76616c6964207472616e73616374696f6e20616e616c797a6572206164646020820152637265737360e01b604082015260600190565b610d31806200042e6000396000f3fe608060405234801561001057600080fd5b50600436106100df5760003560e01c8063715018a61161008c5780639f9976af116100665780639f9976af146101a9578063a9059cbb146101bc578063dd62ed3e146101cf578063f2fde38b1461020857600080fd5b8063715018a61461017e5780638da5cb5b1461018857806395d89b41146101a157600080fd5b806323b872dd116100bd57806323b872dd14610133578063313ce5671461014657806370a082311461015557600080fd5b806306fdde03146100e4578063095ea7b31461010257806318160ddd14610122575b600080fd5b6100ec61021b565b6040516100f99190610916565b60405180910390f35b610115610110366004610968565b6102ad565b6040516100f991906109af565b6002545b6040516100f991906109c3565b6101156101413660046109d1565b6102c7565b60126040516100f99190610a2a565b610126610163366004610a38565b6001600160a01b031660009081526020819052604090205490565b6101866102ed565b005b6005546001600160a01b03166040516100f99190610a6a565b6100ec610301565b6101866101b7366004610aca565b610310565b6101156101ca366004610968565b610435565b6101266101dd366004610b12565b6001600160a01b03918216600090815260016020908152604080832093909416825291909152205490565b610186610216366004610a38565b610443565b60606003805461022a90610b5b565b80601f016020809104026020016040519081016040528092919081815260200182805461025690610b5b565b80156102a35780601f10610278576101008083540402835291602001916102a3565b820191906000526020600020905b81548152906001019060200180831161028657829003601f168201915b5050505050905090565b6000336102bb81858561049a565b60019150505b92915050565b6000336102d58582856104a7565b6102e085858561052b565b60019150505b9392505050565b6102f56105a3565b6102ff60006105e9565b565b60606004805461022a90610b5b565b6006546001600160a01b031633146103435760405162461bcd60e51b815260040161033a90610b87565b60405180910390fd5b60008190036103645760405162461bcd60e51b815260040161033a90610be8565b60005b81811015610430576103af83838381811061038457610384610c23565b90506020028101906103969190610c39565b6103a89061010081019060e001610a38565b6001610653565b7fe848a9a1096c6a1986f56a70fb7fb3250e28b1f56d41fa97ac643492c6c853d18383838181106103e2576103e2610c23565b90506020028101906103f49190610c39565b6104069061010081019060e001610a38565b6001604051610416929190610c76565b60405180910390a18061042881610ca7565b915050610367565b505050565b6000336102bb81858561052b565b61044b6105a3565b6001600160a01b03811661048e5760006040517f1e4fbdf700000000000000000000000000000000000000000000000000000000815260040161033a9190610a6a565b610497816105e9565b50565b610430838383600161068d565b6001600160a01b0383811660009081526001602090815260408083209386168352929052205460001981146105255781811015610516578281836040517ffb8f41b200000000000000000000000000000000000000000000000000000000815260040161033a93929190610cc0565b6105258484848403600061068d565b50505050565b6001600160a01b03831661056e5760006040517f96c6fd1e00000000000000000000000000000000000000000000000000000000815260040161033a9190610a6a565b6001600160a01b03821661059857600060405163ec442f0560e01b815260040161033a9190610a6a565b610430838383610792565b6005546001600160a01b031633146102ff57336040517f118cdaa700000000000000000000000000000000000000000000000000000000815260040161033a9190610a6a565b600580546001600160a01b038381167fffffffffffffffffffffffff0000000000000000000000000000000000000000831681179093556040519116919082907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e090600090a35050565b6001600160a01b03821661067d57600060405163ec442f0560e01b815260040161033a9190610a6a565b61068960008383610792565b5050565b6001600160a01b0384166106d05760006040517fe602df0500000000000000000000000000000000000000000000000000000000815260040161033a9190610a6a565b6001600160a01b0383166107135760006040517f94280d6200000000000000000000000000000000000000000000000000000000815260040161033a9190610a6a565b6001600160a01b038085166000908152600160209081526040808320938716835292905220829055801561052557826001600160a01b0316846001600160a01b03167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b9258460405161078491906109c3565b60405180910390a350505050565b6001600160a01b0383166107bd5780600260008282546107b29190610ce8565b909155506108359050565b6001600160a01b03831660009081526020819052604090205481811015610816578381836040517fe450d38c00000000000000000000000000000000000000000000000000000000815260040161033a93929190610cc0565b6001600160a01b03841660009081526020819052604090209082900390555b6001600160a01b03821661085157600280548290039055610870565b6001600160a01b03821660009081526020819052604090208054820190555b816001600160a01b0316836001600160a01b03167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef836040516108b391906109c3565b60405180910390a3505050565b60005b838110156108db5781810151838201526020016108c3565b50506000910152565b60006108ee825190565b8084526020840193506109058185602086016108c0565b601f01601f19169290920192915050565b602080825281016102e681846108e4565b60006001600160a01b0382166102c1565b61094181610927565b811461049757600080fd5b80356102c181610938565b80610941565b80356102c181610957565b6000806040838503121561097e5761097e600080fd5b600061098a858561094c565b925050602061099b8582860161095d565b9150509250929050565b8015155b82525050565b602081016102c182846109a5565b806109a9565b602081016102c182846109bd565b6000806000606084860312156109e9576109e9600080fd5b60006109f5868661094c565b9350506020610a068682870161094c565b9250506040610a178682870161095d565b9150509250925092565b60ff81166109a9565b602081016102c18284610a21565b600060208284031215610a4d57610a4d600080fd5b6000610a59848461094c565b949350505050565b6109a981610927565b602081016102c18284610a61565b60008083601f840112610a8d57610a8d600080fd5b50813567ffffffffffffffff811115610aa857610aa8600080fd5b602083019150836020820283011115610ac357610ac3600080fd5b9250929050565b60008060208385031215610ae057610ae0600080fd5b823567ffffffffffffffff811115610afa57610afa600080fd5b610b0685828601610a78565b92509250509250929050565b60008060408385031215610b2857610b28600080fd5b6000610b34858561094c565b925050602061099b8582860161094c565b634e487b7160e01b600052602260045260246000fd5b600281046001821680610b6f57607f821691505b602082108103610b8157610b81610b45565b50919050565b602080825281016102c181602c81527f43616c6c65723a2063616c6c6572206973206e6f74207468652064657369676e60208201527f6174656420616464726573730000000000000000000000000000000000000000604082015260600190565b602080825281016102c181601a81527f4e6f207472616e73616374696f6e7320746f20636f6e76657274000000000000602082015260400190565b634e487b7160e01b600052603260045260246000fd5b6000823561013e1936849003018112610c5457610c54600080fd5b9190910192915050565b60006102c1610c6a8381565b90565b6109a981610c5e565b60408101610c848285610a61565b6102e66020830184610c6d565b634e487b7160e01b600052601160045260246000fd5b600060018201610cb957610cb9610c91565b5060010190565b60608101610cce8286610a61565b610cdb60208301856109bd565b610a5960408301846109bd565b808201808211156102c1576102c1610c9156fea264697066735822122036c31eb715ecd8e46b6b1572d2c583e9792e8561c8256d9322cb3a53e739149e64736f6c63430008150033", } // ZenBaseABI is the input ABI used to generate the binding from. diff --git a/contracts/generated/ZenTestnet/ZenTestnet.go b/contracts/generated/ZenTestnet/ZenTestnet.go index f3799db60e..591d96154a 100644 --- a/contracts/generated/ZenTestnet/ZenTestnet.go +++ b/contracts/generated/ZenTestnet/ZenTestnet.go @@ -46,7 +46,7 @@ type StructsTransaction struct { // ZenTestnetMetaData contains all meta data concerning the ZenTestnet contract. var ZenTestnetMetaData = &bind.MetaData{ ABI: "[{\"inputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"constructor\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"spender\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"allowance\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"needed\",\"type\":\"uint256\"}],\"name\":\"ERC20InsufficientAllowance\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"sender\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"balance\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"needed\",\"type\":\"uint256\"}],\"name\":\"ERC20InsufficientBalance\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"approver\",\"type\":\"address\"}],\"name\":\"ERC20InvalidApprover\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"receiver\",\"type\":\"address\"}],\"name\":\"ERC20InvalidReceiver\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"sender\",\"type\":\"address\"}],\"name\":\"ERC20InvalidSender\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"spender\",\"type\":\"address\"}],\"name\":\"ERC20InvalidSpender\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"InvalidInitialization\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"NotInitializing\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"}],\"name\":\"OwnableInvalidOwner\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"}],\"name\":\"OwnableUnauthorizedAccount\",\"type\":\"error\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"spender\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"value\",\"type\":\"uint256\"}],\"name\":\"Approval\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"uint64\",\"name\":\"version\",\"type\":\"uint64\"}],\"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\":false,\"internalType\":\"address\",\"name\":\"sender\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"}],\"name\":\"TransactionProcessed\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"from\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"value\",\"type\":\"uint256\"}],\"name\":\"Transfer\",\"type\":\"event\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"spender\",\"type\":\"address\"}],\"name\":\"allowance\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"spender\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"value\",\"type\":\"uint256\"}],\"name\":\"approve\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"}],\"name\":\"balanceOf\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"decimals\",\"outputs\":[{\"internalType\":\"uint8\",\"name\":\"\",\"type\":\"uint8\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"transactionPostProcessor\",\"type\":\"address\"}],\"name\":\"initialize\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"name\",\"outputs\":[{\"internalType\":\"string\",\"name\":\"\",\"type\":\"string\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"components\":[{\"internalType\":\"uint8\",\"name\":\"txType\",\"type\":\"uint8\"},{\"internalType\":\"uint256\",\"name\":\"nonce\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"gasPrice\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"gasLimit\",\"type\":\"uint256\"},{\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"value\",\"type\":\"uint256\"},{\"internalType\":\"bytes\",\"name\":\"data\",\"type\":\"bytes\"},{\"internalType\":\"address\",\"name\":\"from\",\"type\":\"address\"},{\"internalType\":\"bool\",\"name\":\"successful\",\"type\":\"bool\"},{\"internalType\":\"uint64\",\"name\":\"gasUsed\",\"type\":\"uint64\"}],\"internalType\":\"structStructs.Transaction[]\",\"name\":\"transactions\",\"type\":\"tuple[]\"}],\"name\":\"onBlockEnd\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"owner\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"renounceOwnership\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"symbol\",\"outputs\":[{\"internalType\":\"string\",\"name\":\"\",\"type\":\"string\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"totalSupply\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"value\",\"type\":\"uint256\"}],\"name\":\"transfer\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"from\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"value\",\"type\":\"uint256\"}],\"name\":\"transferFrom\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"newOwner\",\"type\":\"address\"}],\"name\":\"transferOwnership\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"}]", - Bin: "0x608060405234801561001057600080fd5b5061001961001e565b6100d0565b7ff0c57e16840df040f15088dc2f81fe391c3923bec73e23a9662efc9c229c6a00805468010000000000000000900460ff161561006e5760405163f92ee8a960e01b815260040160405180910390fd5b80546001600160401b03908116146100cd5780546001600160401b0319166001600160401b0390811782556040519081527fc7f505b2f371ae2175ee4913f4499e1f2633a7b5936321eed1cdaeb6115181d29060200160405180910390a15b50565b6113ea806100df6000396000f3fe608060405234801561001057600080fd5b50600436106100ea5760003560e01c80638da5cb5b1161008c578063a9059cbb11610066578063a9059cbb14610224578063c4d66de814610237578063dd62ed3e1461024a578063f2fde38b146102a257600080fd5b80638da5cb5b146101d157806395d89b41146102095780639f9976af1461021157600080fd5b806323b872dd116100c857806323b872dd1461015d578063313ce5671461017057806370a082311461017f578063715018a6146101c757600080fd5b806306fdde03146100ef578063095ea7b31461010d57806318160ddd1461012d575b600080fd5b6100f76102b5565b6040516101049190610dda565b60405180910390f35b61012061011b366004610e2c565b61038a565b6040516101049190610e73565b7f52c63247e1f47db19d5ce0460030c497f067ca4cebf71ba98eeadabe20bace02545b6040516101049190610e87565b61012061016b366004610e95565b6103a4565b60126040516101049190610eee565b61015061018d366004610efc565b6001600160a01b031660009081527f52c63247e1f47db19d5ce0460030c497f067ca4cebf71ba98eeadabe20bace00602052604090205490565b6101cf6103ca565b005b7f9016d09d72d40fdae2fd8ceac6b6234c7706214fd39c1cd1e609a0528c199300546001600160a01b03166040516101049190610f2e565b6100f76103de565b6101cf61021f366004610f8e565b61042f565b610120610232366004610e2c565b610554565b6101cf610245366004610efc565b610562565b610150610258366004610fd6565b6001600160a01b0391821660009081527f52c63247e1f47db19d5ce0460030c497f067ca4cebf71ba98eeadabe20bace016020908152604080832093909416825291909152205490565b6101cf6102b0366004610efc565b610766565b7f52c63247e1f47db19d5ce0460030c497f067ca4cebf71ba98eeadabe20bace0380546060917f52c63247e1f47db19d5ce0460030c497f067ca4cebf71ba98eeadabe20bace00916103069061101f565b80601f01602080910402602001604051908101604052809291908181526020018280546103329061101f565b801561037f5780601f106103545761010080835404028352916020019161037f565b820191906000526020600020905b81548152906001019060200180831161036257829003601f168201915b505050505091505090565b6000336103988185856107bd565b60019150505b92915050565b6000336103b28582856107ca565b6103bd85858561086d565b60019150505b9392505050565b6103d26108e5565b6103dc6000610959565b565b7f52c63247e1f47db19d5ce0460030c497f067ca4cebf71ba98eeadabe20bace0480546060917f52c63247e1f47db19d5ce0460030c497f067ca4cebf71ba98eeadabe20bace00916103069061101f565b6000546001600160a01b031633146104625760405162461bcd60e51b8152600401610459906110a5565b60405180910390fd5b60008190036104835760405162461bcd60e51b8152600401610459906110b5565b60005b8181101561054f576104ce8383838181106104a3576104a36110f0565b90506020028101906104b59190611106565b6104c79061010081019060e001610efc565b60016109d7565b7fe848a9a1096c6a1986f56a70fb7fb3250e28b1f56d41fa97ac643492c6c853d1838383818110610501576105016110f0565b90506020028101906105139190611106565b6105259061010081019060e001610efc565b6001604051610535929190611143565b60405180910390a18061054781611174565b915050610486565b505050565b60003361039881858561086d565b7ff0c57e16840df040f15088dc2f81fe391c3923bec73e23a9662efc9c229c6a00805468010000000000000000810460ff16159067ffffffffffffffff166000811580156105ad5750825b905060008267ffffffffffffffff1660011480156105ca5750303b155b9050811580156105d8575080155b1561060f576040517ff92ee8a900000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b845467ffffffffffffffff19166001178555831561064357845468ff00000000000000001916680100000000000000001785555b6001600160a01b0386166106695760405162461bcd60e51b8152600401610459906111e5565b6106dd6040518060400160405280600381526020017f5a656e00000000000000000000000000000000000000000000000000000000008152506040518060400160405280600381526020017f5a454e0000000000000000000000000000000000000000000000000000000000815250610a11565b6106e633610a23565b6000805473ffffffffffffffffffffffffffffffffffffffff19166001600160a01b038816179055831561075e57845468ff0000000000000000191685556040517fc7f505b2f371ae2175ee4913f4499e1f2633a7b5936321eed1cdaeb6115181d29061075590600190611210565b60405180910390a15b505050505050565b61076e6108e5565b6001600160a01b0381166107b15760006040517f1e4fbdf70000000000000000000000000000000000000000000000000000000081526004016104599190610f2e565b6107ba81610959565b50565b61054f8383836001610a34565b6001600160a01b0383811660009081527f52c63247e1f47db19d5ce0460030c497f067ca4cebf71ba98eeadabe20bace01602090815260408083209386168352929052205460001981146108675781811015610858578281836040517ffb8f41b20000000000000000000000000000000000000000000000000000000081526004016104599392919061121e565b61086784848484036000610a34565b50505050565b6001600160a01b0383166108b05760006040517f96c6fd1e0000000000000000000000000000000000000000000000000000000081526004016104599190610f2e565b6001600160a01b0382166108da57600060405163ec442f0560e01b81526004016104599190610f2e565b61054f838383610b5e565b336109177f9016d09d72d40fdae2fd8ceac6b6234c7706214fd39c1cd1e609a0528c199300546001600160a01b031690565b6001600160a01b0316146103dc57336040517f118cdaa70000000000000000000000000000000000000000000000000000000081526004016104599190610f2e565b7f9016d09d72d40fdae2fd8ceac6b6234c7706214fd39c1cd1e609a0528c199300805473ffffffffffffffffffffffffffffffffffffffff1981166001600160a01b03848116918217845560405192169182907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e090600090a3505050565b6001600160a01b038216610a0157600060405163ec442f0560e01b81526004016104599190610f2e565b610a0d60008383610b5e565b5050565b610a19610cb2565b610a0d8282610d19565b610a2b610cb2565b6107ba81610d7c565b7f52c63247e1f47db19d5ce0460030c497f067ca4cebf71ba98eeadabe20bace006001600160a01b038516610a985760006040517fe602df050000000000000000000000000000000000000000000000000000000081526004016104599190610f2e565b6001600160a01b038416610adb5760006040517f94280d620000000000000000000000000000000000000000000000000000000081526004016104599190610f2e565b6001600160a01b03808616600090815260018301602090815260408083209388168352929052208390558115610b5757836001600160a01b0316856001600160a01b03167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92585604051610b4e9190610e87565b60405180910390a35b5050505050565b7f52c63247e1f47db19d5ce0460030c497f067ca4cebf71ba98eeadabe20bace006001600160a01b038416610bac5781816002016000828254610ba19190611246565b90915550610c249050565b6001600160a01b03841660009081526020829052604090205482811015610c05578481846040517fe450d38c0000000000000000000000000000000000000000000000000000000081526004016104599392919061121e565b6001600160a01b03851660009081526020839052604090209083900390555b6001600160a01b038316610c42576002810180548390039055610c61565b6001600160a01b03831660009081526020829052604090208054830190555b826001600160a01b0316846001600160a01b03167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef84604051610ca49190610e87565b60405180910390a350505050565b7ff0c57e16840df040f15088dc2f81fe391c3923bec73e23a9662efc9c229c6a005468010000000000000000900460ff166103dc576040517fd7e6bcf800000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b610d21610cb2565b7f52c63247e1f47db19d5ce0460030c497f067ca4cebf71ba98eeadabe20bace007f52c63247e1f47db19d5ce0460030c497f067ca4cebf71ba98eeadabe20bace03610d6d84826112f4565b506004810161086783826112f4565b61076e610cb2565b60005b83811015610d9f578181015183820152602001610d87565b50506000910152565b6000610db2825190565b808452602084019350610dc9818560208601610d84565b601f01601f19169290920192915050565b602080825281016103c38184610da8565b60006001600160a01b03821661039e565b610e0581610deb565b81146107ba57600080fd5b803561039e81610dfc565b80610e05565b803561039e81610e1b565b60008060408385031215610e4257610e42600080fd5b6000610e4e8585610e10565b9250506020610e5f85828601610e21565b9150509250929050565b8015155b82525050565b6020810161039e8284610e69565b80610e6d565b6020810161039e8284610e81565b600080600060608486031215610ead57610ead600080fd5b6000610eb98686610e10565b9350506020610eca86828701610e10565b9250506040610edb86828701610e21565b9150509250925092565b60ff8116610e6d565b6020810161039e8284610ee5565b600060208284031215610f1157610f11600080fd5b6000610f1d8484610e10565b949350505050565b610e6d81610deb565b6020810161039e8284610f25565b60008083601f840112610f5157610f51600080fd5b50813567ffffffffffffffff811115610f6c57610f6c600080fd5b602083019150836020820283011115610f8757610f87600080fd5b9250929050565b60008060208385031215610fa457610fa4600080fd5b823567ffffffffffffffff811115610fbe57610fbe600080fd5b610fca85828601610f3c565b92509250509250929050565b60008060408385031215610fec57610fec600080fd5b6000610ff88585610e10565b9250506020610e5f85828601610e10565b634e487b7160e01b600052602260045260246000fd5b60028104600182168061103357607f821691505b60208210810361104557611045611009565b50919050565b602c8152602081017f43616c6c65723a2063616c6c6572206973206e6f74207468652064657369676e81527f6174656420616464726573730000000000000000000000000000000000000000602082015290505b60400190565b6020808252810161039e8161104b565b6020808252810161039e81601a81527f4e6f207472616e73616374696f6e7320746f20636f6e76657274000000000000602082015260400190565b634e487b7160e01b600052603260045260246000fd5b6000823561013e193684900301811261112157611121600080fd5b9190910192915050565b600061039e6111378381565b90565b610e6d8161112b565b604081016111518285610f25565b6103c3602083018461113a565b634e487b7160e01b600052601160045260246000fd5b6000600182016111865761118661115e565b5060010190565b60248152602081017f496e76616c6964207472616e73616374696f6e20616e616c797a65722061646481527f72657373000000000000000000000000000000000000000000000000000000006020820152905061109f565b6020808252810161039e8161118d565b600067ffffffffffffffff821661039e565b610e6d816111f5565b6020810161039e8284611207565b6060810161122c8286610f25565b6112396020830185610e81565b610f1d6040830184610e81565b8082018082111561039e5761039e61115e565b634e487b7160e01b600052604160045260246000fd5b6112788361112b565b815460001960089490940293841b1916921b91909117905550565b600061054f81848461126f565b81811015610a0d576112b3600082611293565b6001016112a0565b601f82111561054f576000818152602090206020601f850104810160208510156112e25750805b610b576020601f8601048301826112a0565b815167ffffffffffffffff81111561130e5761130e611259565b611318825461101f565b6113238282856112bb565b506020601f82116001811461135857600083156113405750848201515b600019600885021c1981166002850217855550610b57565b600084815260208120601f198516915b828110156113885787850151825560209485019460019092019101611368565b50848210156113a55783870151600019601f87166008021c191681555b5050505060020260010190555056fea2646970667358221220af83f7a345a0203ea0ecb6c433c7d1c60f7e5d631ffc58ce324e6d920720682864736f6c63430008140033", + Bin: "0x608060405234801561001057600080fd5b5061001961001e565b6100d0565b7ff0c57e16840df040f15088dc2f81fe391c3923bec73e23a9662efc9c229c6a00805468010000000000000000900460ff161561006e5760405163f92ee8a960e01b815260040160405180910390fd5b80546001600160401b03908116146100cd5780546001600160401b0319166001600160401b0390811782556040519081527fc7f505b2f371ae2175ee4913f4499e1f2633a7b5936321eed1cdaeb6115181d29060200160405180910390a15b50565b6113ea806100df6000396000f3fe608060405234801561001057600080fd5b50600436106100ea5760003560e01c80638da5cb5b1161008c578063a9059cbb11610066578063a9059cbb14610224578063c4d66de814610237578063dd62ed3e1461024a578063f2fde38b146102a257600080fd5b80638da5cb5b146101d157806395d89b41146102095780639f9976af1461021157600080fd5b806323b872dd116100c857806323b872dd1461015d578063313ce5671461017057806370a082311461017f578063715018a6146101c757600080fd5b806306fdde03146100ef578063095ea7b31461010d57806318160ddd1461012d575b600080fd5b6100f76102b5565b6040516101049190610dda565b60405180910390f35b61012061011b366004610e2c565b61038a565b6040516101049190610e73565b7f52c63247e1f47db19d5ce0460030c497f067ca4cebf71ba98eeadabe20bace02545b6040516101049190610e87565b61012061016b366004610e95565b6103a4565b60126040516101049190610eee565b61015061018d366004610efc565b6001600160a01b031660009081527f52c63247e1f47db19d5ce0460030c497f067ca4cebf71ba98eeadabe20bace00602052604090205490565b6101cf6103ca565b005b7f9016d09d72d40fdae2fd8ceac6b6234c7706214fd39c1cd1e609a0528c199300546001600160a01b03166040516101049190610f2e565b6100f76103de565b6101cf61021f366004610f8e565b61042f565b610120610232366004610e2c565b610554565b6101cf610245366004610efc565b610562565b610150610258366004610fd6565b6001600160a01b0391821660009081527f52c63247e1f47db19d5ce0460030c497f067ca4cebf71ba98eeadabe20bace016020908152604080832093909416825291909152205490565b6101cf6102b0366004610efc565b610766565b7f52c63247e1f47db19d5ce0460030c497f067ca4cebf71ba98eeadabe20bace0380546060917f52c63247e1f47db19d5ce0460030c497f067ca4cebf71ba98eeadabe20bace00916103069061101f565b80601f01602080910402602001604051908101604052809291908181526020018280546103329061101f565b801561037f5780601f106103545761010080835404028352916020019161037f565b820191906000526020600020905b81548152906001019060200180831161036257829003601f168201915b505050505091505090565b6000336103988185856107bd565b60019150505b92915050565b6000336103b28582856107ca565b6103bd85858561086d565b60019150505b9392505050565b6103d26108e5565b6103dc6000610959565b565b7f52c63247e1f47db19d5ce0460030c497f067ca4cebf71ba98eeadabe20bace0480546060917f52c63247e1f47db19d5ce0460030c497f067ca4cebf71ba98eeadabe20bace00916103069061101f565b6000546001600160a01b031633146104625760405162461bcd60e51b8152600401610459906110a5565b60405180910390fd5b60008190036104835760405162461bcd60e51b8152600401610459906110b5565b60005b8181101561054f576104ce8383838181106104a3576104a36110f0565b90506020028101906104b59190611106565b6104c79061010081019060e001610efc565b60016109d7565b7fe848a9a1096c6a1986f56a70fb7fb3250e28b1f56d41fa97ac643492c6c853d1838383818110610501576105016110f0565b90506020028101906105139190611106565b6105259061010081019060e001610efc565b6001604051610535929190611143565b60405180910390a18061054781611174565b915050610486565b505050565b60003361039881858561086d565b7ff0c57e16840df040f15088dc2f81fe391c3923bec73e23a9662efc9c229c6a00805468010000000000000000810460ff16159067ffffffffffffffff166000811580156105ad5750825b905060008267ffffffffffffffff1660011480156105ca5750303b155b9050811580156105d8575080155b1561060f576040517ff92ee8a900000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b845467ffffffffffffffff19166001178555831561064357845468ff00000000000000001916680100000000000000001785555b6001600160a01b0386166106695760405162461bcd60e51b8152600401610459906111e5565b6106dd6040518060400160405280600381526020017f5a656e00000000000000000000000000000000000000000000000000000000008152506040518060400160405280600381526020017f5a454e0000000000000000000000000000000000000000000000000000000000815250610a11565b6106e633610a23565b6000805473ffffffffffffffffffffffffffffffffffffffff19166001600160a01b038816179055831561075e57845468ff0000000000000000191685556040517fc7f505b2f371ae2175ee4913f4499e1f2633a7b5936321eed1cdaeb6115181d29061075590600190611210565b60405180910390a15b505050505050565b61076e6108e5565b6001600160a01b0381166107b15760006040517f1e4fbdf70000000000000000000000000000000000000000000000000000000081526004016104599190610f2e565b6107ba81610959565b50565b61054f8383836001610a34565b6001600160a01b0383811660009081527f52c63247e1f47db19d5ce0460030c497f067ca4cebf71ba98eeadabe20bace01602090815260408083209386168352929052205460001981146108675781811015610858578281836040517ffb8f41b20000000000000000000000000000000000000000000000000000000081526004016104599392919061121e565b61086784848484036000610a34565b50505050565b6001600160a01b0383166108b05760006040517f96c6fd1e0000000000000000000000000000000000000000000000000000000081526004016104599190610f2e565b6001600160a01b0382166108da57600060405163ec442f0560e01b81526004016104599190610f2e565b61054f838383610b5e565b336109177f9016d09d72d40fdae2fd8ceac6b6234c7706214fd39c1cd1e609a0528c199300546001600160a01b031690565b6001600160a01b0316146103dc57336040517f118cdaa70000000000000000000000000000000000000000000000000000000081526004016104599190610f2e565b7f9016d09d72d40fdae2fd8ceac6b6234c7706214fd39c1cd1e609a0528c199300805473ffffffffffffffffffffffffffffffffffffffff1981166001600160a01b03848116918217845560405192169182907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e090600090a3505050565b6001600160a01b038216610a0157600060405163ec442f0560e01b81526004016104599190610f2e565b610a0d60008383610b5e565b5050565b610a19610cb2565b610a0d8282610d19565b610a2b610cb2565b6107ba81610d7c565b7f52c63247e1f47db19d5ce0460030c497f067ca4cebf71ba98eeadabe20bace006001600160a01b038516610a985760006040517fe602df050000000000000000000000000000000000000000000000000000000081526004016104599190610f2e565b6001600160a01b038416610adb5760006040517f94280d620000000000000000000000000000000000000000000000000000000081526004016104599190610f2e565b6001600160a01b03808616600090815260018301602090815260408083209388168352929052208390558115610b5757836001600160a01b0316856001600160a01b03167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92585604051610b4e9190610e87565b60405180910390a35b5050505050565b7f52c63247e1f47db19d5ce0460030c497f067ca4cebf71ba98eeadabe20bace006001600160a01b038416610bac5781816002016000828254610ba19190611246565b90915550610c249050565b6001600160a01b03841660009081526020829052604090205482811015610c05578481846040517fe450d38c0000000000000000000000000000000000000000000000000000000081526004016104599392919061121e565b6001600160a01b03851660009081526020839052604090209083900390555b6001600160a01b038316610c42576002810180548390039055610c61565b6001600160a01b03831660009081526020829052604090208054830190555b826001600160a01b0316846001600160a01b03167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef84604051610ca49190610e87565b60405180910390a350505050565b7ff0c57e16840df040f15088dc2f81fe391c3923bec73e23a9662efc9c229c6a005468010000000000000000900460ff166103dc576040517fd7e6bcf800000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b610d21610cb2565b7f52c63247e1f47db19d5ce0460030c497f067ca4cebf71ba98eeadabe20bace007f52c63247e1f47db19d5ce0460030c497f067ca4cebf71ba98eeadabe20bace03610d6d84826112f4565b506004810161086783826112f4565b61076e610cb2565b60005b83811015610d9f578181015183820152602001610d87565b50506000910152565b6000610db2825190565b808452602084019350610dc9818560208601610d84565b601f01601f19169290920192915050565b602080825281016103c38184610da8565b60006001600160a01b03821661039e565b610e0581610deb565b81146107ba57600080fd5b803561039e81610dfc565b80610e05565b803561039e81610e1b565b60008060408385031215610e4257610e42600080fd5b6000610e4e8585610e10565b9250506020610e5f85828601610e21565b9150509250929050565b8015155b82525050565b6020810161039e8284610e69565b80610e6d565b6020810161039e8284610e81565b600080600060608486031215610ead57610ead600080fd5b6000610eb98686610e10565b9350506020610eca86828701610e10565b9250506040610edb86828701610e21565b9150509250925092565b60ff8116610e6d565b6020810161039e8284610ee5565b600060208284031215610f1157610f11600080fd5b6000610f1d8484610e10565b949350505050565b610e6d81610deb565b6020810161039e8284610f25565b60008083601f840112610f5157610f51600080fd5b50813567ffffffffffffffff811115610f6c57610f6c600080fd5b602083019150836020820283011115610f8757610f87600080fd5b9250929050565b60008060208385031215610fa457610fa4600080fd5b823567ffffffffffffffff811115610fbe57610fbe600080fd5b610fca85828601610f3c565b92509250509250929050565b60008060408385031215610fec57610fec600080fd5b6000610ff88585610e10565b9250506020610e5f85828601610e10565b634e487b7160e01b600052602260045260246000fd5b60028104600182168061103357607f821691505b60208210810361104557611045611009565b50919050565b602c8152602081017f43616c6c65723a2063616c6c6572206973206e6f74207468652064657369676e81527f6174656420616464726573730000000000000000000000000000000000000000602082015290505b60400190565b6020808252810161039e8161104b565b6020808252810161039e81601a81527f4e6f207472616e73616374696f6e7320746f20636f6e76657274000000000000602082015260400190565b634e487b7160e01b600052603260045260246000fd5b6000823561013e193684900301811261112157611121600080fd5b9190910192915050565b600061039e6111378381565b90565b610e6d8161112b565b604081016111518285610f25565b6103c3602083018461113a565b634e487b7160e01b600052601160045260246000fd5b6000600182016111865761118661115e565b5060010190565b60248152602081017f496e76616c6964207472616e73616374696f6e20616e616c797a65722061646481527f72657373000000000000000000000000000000000000000000000000000000006020820152905061109f565b6020808252810161039e8161118d565b600067ffffffffffffffff821661039e565b610e6d816111f5565b6020810161039e8284611207565b6060810161122c8286610f25565b6112396020830185610e81565b610f1d6040830184610e81565b8082018082111561039e5761039e61115e565b634e487b7160e01b600052604160045260246000fd5b6112788361112b565b815460001960089490940293841b1916921b91909117905550565b600061054f81848461126f565b81811015610a0d576112b3600082611293565b6001016112a0565b601f82111561054f576000818152602090206020601f850104810160208510156112e25750805b610b576020601f8601048301826112a0565b815167ffffffffffffffff81111561130e5761130e611259565b611318825461101f565b6113238282856112bb565b506020601f82116001811461135857600083156113405750848201515b600019600885021c1981166002850217855550610b57565b600084815260208120601f198516915b828110156113885787850151825560209485019460019092019101611368565b50848210156113a55783870151600019601f87166008021c191681555b5050505060020260010190555056fea2646970667358221220c92d36796669f09a165d85f5ad6ccaec7365a19d0cba54a86db26b29f35b60dd64736f6c63430008150033", } // ZenTestnetABI is the input ABI used to generate the binding from. diff --git a/contracts/hardhat.config.ts b/contracts/hardhat.config.ts index 88e5541882..915d1a2c50 100644 --- a/contracts/hardhat.config.ts +++ b/contracts/hardhat.config.ts @@ -20,7 +20,7 @@ const config: HardhatUserConfig = { sources: "src" }, solidity: { - version: "0.8.20", + version: "0.8.21", settings: { optimizer: { enabled: true, diff --git a/contracts/src/management/ManagementContract.sol b/contracts/src/management/ManagementContract.sol index 0981b85fe6..ddae144828 100644 --- a/contracts/src/management/ManagementContract.sol +++ b/contracts/src/management/ManagementContract.sol @@ -18,7 +18,6 @@ contract ManagementContract is Initializable, OwnableUpgradeable { using MessageHashUtils for bytes; constructor() { - // _disableInitializers(); _transferOwnership(msg.sender); } diff --git a/contracts/src/messaging/MerkleTreeMessageBus.sol b/contracts/src/messaging/MerkleTreeMessageBus.sol index 628400685e..6baa4e428a 100644 --- a/contracts/src/messaging/MerkleTreeMessageBus.sol +++ b/contracts/src/messaging/MerkleTreeMessageBus.sol @@ -9,6 +9,7 @@ import "./IMerkleTreeMessageBus.sol"; import "./MessageBus.sol"; contract MerkleTreeMessageBus is IMerkleTreeMessageBus, MessageBus { + constructor() MessageBus() {} mapping(bytes32 => uint256) rootValidAfter; //When a xchain messages root becomes valid represented as a timestamp in seconds to be compared against block timestamp diff --git a/contracts/src/messaging/MessageBus.sol b/contracts/src/messaging/MessageBus.sol index ba298095b9..3b454bc6e8 100644 --- a/contracts/src/messaging/MessageBus.sol +++ b/contracts/src/messaging/MessageBus.sol @@ -4,11 +4,27 @@ pragma solidity >=0.7.0 <0.9.0; import "./IMessageBus.sol"; import "./Structs.sol"; -import "@openzeppelin/contracts/access/Ownable.sol"; +import "@openzeppelin/contracts-upgradeable/access/OwnableUpgradeable.sol"; +import "@openzeppelin/contracts-upgradeable/proxy/utils/Initializable.sol"; -contract MessageBus is IMessageBus, Ownable { +contract MessageBus is IMessageBus, Initializable, OwnableUpgradeable { - constructor() Ownable(msg.sender) {} + constructor() { + _transferOwnership(msg.sender); + _disableInitializers(); + } + + function initialize(address caller) public initializer { + __Ownable_init(caller); + } + + // Since this contract exists on the L2, when messages are added from the L1, we can have the from address be the same as self. + // This ensures no EOA collision can ever occur and no key is needed to be stored on the L2 or shared with validators. + modifier ownerOrSelf() { + address maskedSelf = address(uint160(address(this)) - 1); + require(msg.sender == owner() || msg.sender == maskedSelf, "Not owner or self"); + _; + } function messageFee() internal virtual returns (uint256) { return 0; @@ -109,7 +125,7 @@ contract MessageBus is IMessageBus, Ownable { function storeCrossChainMessage( Structs.CrossChainMessage calldata crossChainMessage, uint256 finalAfterTimestamp - ) external override onlyOwner { + ) external override ownerOrSelf { //Consider the message as verified after this period. Useful for having a challenge period. uint256 finalAtTimestamp = block.timestamp + finalAfterTimestamp; bytes32 msgHash = keccak256(abi.encode(crossChainMessage)); diff --git a/contracts/src/system/SystemDeployer.sol b/contracts/src/system/SystemDeployer.sol index c7d16cb3a0..1a5e9ff769 100644 --- a/contracts/src/system/SystemDeployer.sol +++ b/contracts/src/system/SystemDeployer.sol @@ -2,6 +2,7 @@ pragma solidity ^0.8.0; import "@openzeppelin/contracts/proxy/transparent/TransparentUpgradeableProxy.sol"; +import {MessageBus} from "../messaging/MessageBus.sol"; import "./TransactionPostProcessor.sol"; contract SystemDeployer { @@ -9,16 +10,25 @@ contract SystemDeployer { constructor(address eoaAdmin) { deployAnalyzer(eoaAdmin); + deployMessageBus(eoaAdmin); } function deployAnalyzer(address eoaAdmin) internal { TransactionPostProcessor transactionsPostProcessor = new TransactionPostProcessor(); - bytes memory callData = abi.encodeWithSelector(transactionsPostProcessor.initialize.selector, eoaAdmin, msg.sender); + bytes memory callData = abi.encodeWithSelector(transactionsPostProcessor.initialize.selector, eoaAdmin); address transactionsPostProcessorProxy = deployProxy(address(transactionsPostProcessor), eoaAdmin, callData); emit SystemContractDeployed("TransactionsPostProcessor", transactionsPostProcessorProxy); } + function deployMessageBus(address eoaAdmin) internal { + MessageBus messageBus = new MessageBus(); + bytes memory callData = abi.encodeWithSelector(messageBus.initialize.selector, eoaAdmin); + address messageBusProxy = deployProxy(address(messageBus), eoaAdmin, callData); + + emit SystemContractDeployed("MessageBus", messageBusProxy); + } + function deployProxy(address _logic, address _admin, bytes memory _data) internal returns (address proxyAddress) { TransparentUpgradeableProxy proxy = new TransparentUpgradeableProxy( _logic, // Address of the logic contract diff --git a/contracts/src/system/TransactionPostProcessor.sol b/contracts/src/system/TransactionPostProcessor.sol index 89be576667..c271f68788 100644 --- a/contracts/src/system/TransactionPostProcessor.sol +++ b/contracts/src/system/TransactionPostProcessor.sol @@ -11,7 +11,6 @@ contract TransactionPostProcessor is Initializable, AccessControl{ using Structs for Structs.Transaction; bytes32 public constant EOA_ADMIN_ROLE = keccak256("EOA_ADMIN_ROLE"); - bytes32 public constant HOOK_CALLER_ROLE = keccak256("HOOK_CALLER_ROLE"); event TransactionsConverted(uint256 transactionsLength); @@ -21,19 +20,24 @@ contract TransactionPostProcessor is Initializable, AccessControl{ uint64 Status; } + modifier onlySelf() { + address maskedSelf = address(uint160(address(this)) - 1); + require(msg.sender == maskedSelf, "Not self"); + _; + } + OnBlockEndCallback[] onBlockEndListeners; - function initialize(address eoaAdmin, address authorizedCaller) public initializer { + function initialize(address eoaAdmin) public initializer { _grantRole(DEFAULT_ADMIN_ROLE, eoaAdmin); _grantRole(EOA_ADMIN_ROLE, eoaAdmin); - _grantRole(HOOK_CALLER_ROLE, authorizedCaller); } function addOnBlockEndCallback(address callbackAddress) public { onBlockEndListeners.push(OnBlockEndCallback(callbackAddress)); } - function onBlock(Structs.Transaction[] calldata transactions) public onlyRole(HOOK_CALLER_ROLE) { + function onBlock(Structs.Transaction[] calldata transactions) public onlySelf { if (transactions.length == 0) { revert("No transactions to convert"); } diff --git a/go/common/types.go b/go/common/types.go index c1cd025010..e714082a2e 100644 --- a/go/common/types.go +++ b/go/common/types.go @@ -48,6 +48,7 @@ type ( L2PricedTransaction struct { Tx *L2Tx PublishingCost *big.Int + FromSelf bool } L2PricedTransactions []L2PricedTransaction diff --git a/go/enclave/components/batch_executor.go b/go/enclave/components/batch_executor.go index 8c7155098f..bbaf24c922 100644 --- a/go/enclave/components/batch_executor.go +++ b/go/enclave/components/batch_executor.go @@ -194,6 +194,7 @@ func (executor *batchExecutor) ComputeBatch(ctx context.Context, context *BatchE xchainTxs = append(xchainTxs, common.L2PricedTransaction{ Tx: xTx, PublishingCost: big.NewInt(0), + FromSelf: true, }) } @@ -223,6 +224,7 @@ func (executor *batchExecutor) ComputeBatch(ctx context.Context, context *BatchE common.L2PricedTransaction{ Tx: onBlockTx, PublishingCost: big.NewInt(0), + FromSelf: true, }, } onBlockSuccessfulTx, _, onBlockTxResult, err := executor.processTransactions(ctx, batch, len(successfulTxs), onBlockPricedTxes, stateDB, context.ChainConfig, true) @@ -328,7 +330,7 @@ func (executor *batchExecutor) ComputeBatch(ctx context.Context, context *BatchE } func (executor *batchExecutor) initializeSystemContracts(_ context.Context, batch *core.Batch, receipts types.Receipts) error { - return executor.systemContracts.Initialize(batch, receipts) + return executor.systemContracts.Initialize(batch, receipts, executor.crossChainProcessors.Local) } func (executor *batchExecutor) ExecuteBatch(ctx context.Context, batch *core.Batch) ([]*core.TxExecResult, error) { @@ -396,18 +398,10 @@ func (executor *batchExecutor) CreateGenesisState( Transactions: []*common.L2Tx{}, } - // todo (#1577) - figure out a better way to bootstrap the system contracts - deployTx, err := executor.crossChainProcessors.Local.GenerateMessageBusDeployTx() - if err != nil { - executor.logger.Crit("Could not create message bus deployment transaction", "Error", err) - } - - executor.logger.Info("L2 Bus deploy", log.TxKey, deployTx.Hash()) - if err = executor.genesis.CommitGenesisState(executor.storage); err != nil { return nil, nil, fmt.Errorf("could not apply genesis preallocation. Cause: %w", err) } - return genesisBatch, deployTx, nil + return genesisBatch, nil, nil } func (executor *batchExecutor) populateOutboundCrossChainData(ctx context.Context, batch *core.Batch, block *types.Header, receipts types.Receipts) error { diff --git a/go/enclave/crosschain/interfaces.go b/go/enclave/crosschain/interfaces.go index 37607e1fe9..cf161ddee4 100644 --- a/go/enclave/crosschain/interfaces.go +++ b/go/enclave/crosschain/interfaces.go @@ -8,6 +8,7 @@ import ( "github.com/ethereum/go-ethereum/core" "github.com/ethereum/go-ethereum/core/state" "github.com/ten-protocol/go-ten/go/common" + "github.com/ten-protocol/go-ten/go/enclave/system" ) type ( @@ -39,9 +40,8 @@ type Manager interface { // GetBusAddress - Returns the L2 address of the message bus contract. GetBusAddress() *common.L2Address - // DeriveOwner - Generates the key pair that will be used to transact with the L2 message bus. - // todo (#1549) - implement with cryptography epic. - DeriveOwner(seed []byte) (*common.L2Address, error) + // Initialize - Derives the address of the message bus contract. + Initialize(systemAddresses system.SystemContractAddresses) error // GenerateMessageBusDeployTx - Returns a signed message bus deployment transaction. GenerateMessageBusDeployTx() (*common.L2Tx, error) @@ -56,4 +56,6 @@ type Manager interface { ExecuteValueTransfers(ctx context.Context, transfers common.ValueTransferEvents, rollupState *state.StateDB) RetrieveInboundMessages(ctx context.Context, fromBlock *types.Header, toBlock *types.Header, rollupState *state.StateDB) (common.CrossChainMessages, common.ValueTransferEvents) + + system.SystemContractsInitializable } diff --git a/go/enclave/crosschain/message_bus_manager.go b/go/enclave/crosschain/message_bus_manager.go index 01c05e8242..5dd1390219 100644 --- a/go/enclave/crosschain/message_bus_manager.go +++ b/go/enclave/crosschain/message_bus_manager.go @@ -10,6 +10,8 @@ import ( "github.com/holiman/uint256" "github.com/ten-protocol/go-ten/go/enclave/core" + "github.com/ten-protocol/go-ten/go/enclave/evm" + "github.com/ten-protocol/go-ten/go/enclave/system" "github.com/ten-protocol/go-ten/go/enclave/storage" @@ -48,11 +50,8 @@ func NewObscuroMessageBusManager( logger.Info(fmt.Sprintf("L2 Cross Chain Owner Address: %s", wallet.Address().Hex())) - // Key is derived, address is predictable, thus address of contract is predictable across all enclaves - l2MessageBus := crypto.CreateAddress(wallet.Address(), 0) - return &MessageBusManager{ - messageBusAddress: &l2MessageBus, + messageBusAddress: nil, storage: storage, logger: logger, wallet: wallet, @@ -80,10 +79,15 @@ func (m *MessageBusManager) GetBusAddress() *common.L2Address { return m.messageBusAddress } -// DeriveOwner - Generates the key pair that will be used to transact with the L2 message bus. -func (m *MessageBusManager) DeriveOwner(_ []byte) (*common.L2Address, error) { - // todo (#1549) - implement with cryptography epic - return m.messageBusAddress, nil +// DeriveMessageBusAddress - Derives the address of the message bus contract. +func (m *MessageBusManager) Initialize(systemAddresses system.SystemContractAddresses) error { + address, ok := systemAddresses["MessageBus"] + if !ok { + return fmt.Errorf("message bus contract not found in system addresses") + } + + m.messageBusAddress = address + return nil } // GenerateMessageBusDeployTx - Returns a signed message bus deployment transaction. @@ -208,9 +212,17 @@ func (m *MessageBusManager) ExecuteValueTransfers(ctx context.Context, transfers // CreateSyntheticTransactions - generates transactions that the enclave should execute internally for the messages. func (m *MessageBusManager) CreateSyntheticTransactions(ctx context.Context, messages common.CrossChainMessages, rollupState *state.StateDB) common.L2Transactions { + if len(messages) == 0 { + return make(common.L2Transactions, 0) + } + + if m.messageBusAddress == nil { + m.logger.Crit("Message bus address not set") + } + // Get current nonce for this stateDB. // There can be forks thus we cannot trust the wallet. - startingNonce := rollupState.GetNonce(m.GetOwner()) + startingNonce := rollupState.GetNonce(evm.MaskedSender(*m.messageBusAddress)) signedTransactions := make(types.Transactions, 0) for idx, message := range messages { diff --git a/go/enclave/evm/evm_facade.go b/go/enclave/evm/evm_facade.go index 0e7b9719c4..01cbb54251 100644 --- a/go/enclave/evm/evm_facade.go +++ b/go/enclave/evm/evm_facade.go @@ -171,7 +171,7 @@ func executeTransaction( usedGas *uint64, cfg vm.Config, ) (*types.Receipt, error) { - msg, err := gethcore.TransactionToMessage(tx.Tx, types.MakeSigner(config, header.Number, header.Time), header.BaseFee) + msg, err := TransactionToMessageWithOverrides(&tx, config, header) if err != nil { return nil, err } diff --git a/go/enclave/evm/transaction_overlay.go b/go/enclave/evm/transaction_overlay.go new file mode 100644 index 0000000000..bf4feee3c6 --- /dev/null +++ b/go/enclave/evm/transaction_overlay.go @@ -0,0 +1,56 @@ +package evm + +import ( + "math/big" + + gethcommon "github.com/ethereum/go-ethereum/common" + "github.com/ethereum/go-ethereum/common/math" + "github.com/ethereum/go-ethereum/core" + "github.com/ethereum/go-ethereum/core/types" + "github.com/ethereum/go-ethereum/params" + "github.com/ten-protocol/go-ten/go/common" +) + +func MaskedSender(address gethcommon.Address) gethcommon.Address { + return gethcommon.BigToAddress(big.NewInt(0).Sub(address.Big(), big.NewInt(1))) +} + +// TransactionToMessageWithOverrides is used to convert a transaction to a message to be applied to the evm. +// Overrides can change how stuff in the message is derived, e.g. the sender. This is useful for synthetic transactions, +// where we do not want to do signature validation or have a private key. +func TransactionToMessageWithOverrides( + tx *common.L2PricedTransaction, + config *params.ChainConfig, + header *types.Header, +) (*core.Message, error) { + // Override from can be used for calling system contracts from underivable addresses like all zeroes + if tx.FromSelf { + msg := TransactionToMessageNoSender(tx.Tx, header.BaseFee) + msg.From = MaskedSender(*msg.To) + return msg, nil + } + return core.TransactionToMessage(tx.Tx, types.MakeSigner(config, header.Number, header.Time), header.BaseFee) +} + +func TransactionToMessageNoSender(tx *types.Transaction, baseFee *big.Int) *core.Message { + msg := &core.Message{ + Nonce: tx.Nonce(), + GasLimit: tx.Gas(), + GasPrice: new(big.Int).Set(tx.GasPrice()), + GasFeeCap: new(big.Int).Set(tx.GasFeeCap()), + GasTipCap: new(big.Int).Set(tx.GasTipCap()), + To: tx.To(), + Value: tx.Value(), + Data: tx.Data(), + AccessList: tx.AccessList(), + SkipAccountChecks: false, + BlobHashes: tx.BlobHashes(), + BlobGasFeeCap: tx.BlobGasFeeCap(), + } + + if baseFee != nil { + msg.GasPrice = math.BigMin(msg.GasPrice.Add(msg.GasTipCap, baseFee), msg.GasFeeCap) + } + + return msg +} diff --git a/go/enclave/nodetype/sequencer.go b/go/enclave/nodetype/sequencer.go index a1d62a5a29..3bd45bdd0f 100644 --- a/go/enclave/nodetype/sequencer.go +++ b/go/enclave/nodetype/sequencer.go @@ -172,12 +172,6 @@ func (s *sequencer) createGenesisBatch(ctx context.Context, block *types.Header) time.Sleep(time.Second) wallet := system.GetPlaceholderWallet(s.chainConfig.ChainID, s.logger) - msgBusTx, err := system.MessageBusInitTransaction(wallet, s.logger) - if err != nil { - s.logger.Crit("[SystemContracts] Failed to create message bus contract", log.ErrKey, err) - return err - } - systemDeployerTx, err := system.SystemDeployerInitTransaction(wallet, s.logger, wallet.Address()) if err != nil { s.logger.Crit("[SystemContracts] Failed to create system deployer contract", log.ErrKey, err) @@ -191,7 +185,6 @@ func (s *sequencer) createGenesisBatch(ctx context.Context, block *types.Header) block.Hash(), batch.Hash(), common.L2Transactions{ - msgBusTx, systemDeployerTx, }, uint64(time.Now().Unix()), @@ -207,18 +200,18 @@ func (s *sequencer) createGenesisBatch(ctx context.Context, block *types.Header) return fmt.Errorf("[SystemContracts] failed producing batch. Cause: %w", err) } - if len(cb.TxExecResults) == 0 || cb.TxExecResults[0].Receipt.TxHash.Hex() != msgBusTx.Hash().Hex() { - err = fmt.Errorf("failed to mint Message Bus contract: expected receipt for transaction %s, but no receipts found in batch", msgBusTx.Hash().Hex()) + if len(cb.TxExecResults) == 0 || cb.TxExecResults[0].Receipt.TxHash.Hex() != systemDeployerTx.Hash().Hex() { + err = fmt.Errorf("failed to instantiate system contracts: expected receipt for transaction %s, but no receipts found in batch", systemDeployerTx.Hash().Hex()) s.logger.Crit(err.Error()) // Fatal error, the node cannot be started. } - systemAddresses, err := system.DeriveAddresses(cb.TxExecResults[1].Receipt) + systemAddresses, err := system.DeriveAddresses(cb.TxExecResults[0].Receipt) if err != nil { s.logger.Crit("Failed to derive system contract addresses", log.ErrKey, err) return err } - s.logger.Info("[SystemContracts] Deployer initialized", "transactionPostProcessor", systemAddresses.ToString()) - s.logger.Info("[SystemContracts] Message Bus Contract minted successfully", "address", cb.TxExecResults[0].Receipt.ContractAddress.Hex()) + s.logger.Info("[SystemContracts] Deployer initialized", "transactionPostProcessor", systemAddresses["TransactionPostProcessor"]) + s.logger.Info("[SystemContracts] Message Bus Contract minted successfully", "address", systemAddresses["MessageBus"]) return nil } diff --git a/go/enclave/system/hooks.go b/go/enclave/system/hooks.go index 9d11a370d0..c5c954f5c5 100644 --- a/go/enclave/system/hooks.go +++ b/go/enclave/system/hooks.go @@ -15,6 +15,7 @@ import ( "github.com/ten-protocol/go-ten/contracts/generated/ZenBase" "github.com/ten-protocol/go-ten/go/common" "github.com/ten-protocol/go-ten/go/enclave/core" + "github.com/ten-protocol/go-ten/go/enclave/evm" "github.com/ten-protocol/go-ten/go/enclave/storage" "github.com/ten-protocol/go-ten/go/wallet" ) @@ -26,13 +27,17 @@ var ( type SystemContractCallbacks interface { GetOwner() gethcommon.Address - Initialize(batch *core.Batch, receipts types.Receipts) error + Initialize(batch *core.Batch, receipts types.Receipts, msgBusManager SystemContractsInitializable) error Load() error CreateOnBatchEndTransaction(ctx context.Context, stateDB *state.StateDB, transactions common.L2Transactions, receipts types.Receipts) (*types.Transaction, error) TransactionPostProcessor() *gethcommon.Address VerifyOnBlockReceipt(transactions common.L2Transactions, receipt *types.Receipt) (bool, error) } +type SystemContractsInitializable interface { + Initialize(SystemContractAddresses) error +} + type systemContractCallbacks struct { transactionsPostProcessorAddress *gethcommon.Address ownerWallet wallet.Wallet @@ -104,15 +109,19 @@ func (s *systemContractCallbacks) initializeRequiredAddresses(addresses SystemCo return nil } -func (s *systemContractCallbacks) Initialize(batch *core.Batch, receipts types.Receipts) error { - s.logger.Info("Initialize: Starting initialization of system contracts", "batchSeqNo", batch.SeqNo) +func (s *systemContractCallbacks) Initialize(batch *core.Batch, receipts types.Receipts, msgBusManager SystemContractsInitializable) error { + s.logger.Info("Initialize: Starting initialization of system contracts", "batchSeqNo", batch.SeqNo()) + if batch.SeqNo().Uint64() != 2 { + s.logger.Error("Initialize: Batch is not genesis", "batchSeqNo", batch.SeqNo) + return fmt.Errorf("batch is not genesis") + } - if len(receipts) < 2 { - s.logger.Error("Initialize: Genesis batch does not have enough receipts", "expected", 2, "got", len(receipts)) + if len(receipts) < 1 { + s.logger.Error("Initialize: Genesis batch does not have enough receipts", "expected", 1, "got", len(receipts)) return fmt.Errorf("genesis batch does not have enough receipts") } - receiptIndex := 1 + receiptIndex := 0 s.logger.Debug("Initialize: Deriving addresses from receipt", "receiptIndex", receiptIndex, "transactionHash", receipts[receiptIndex].TxHash.Hex()) addresses, err := DeriveAddresses(receipts[receiptIndex]) if err != nil { @@ -120,6 +129,11 @@ func (s *systemContractCallbacks) Initialize(batch *core.Batch, receipts types.R return fmt.Errorf("failed deriving addresses %w", err) } + if err := msgBusManager.Initialize(addresses); err != nil { + s.logger.Error("Initialize: Failed deriving message bus address", "error", err) + return fmt.Errorf("failed deriving message bus address %w", err) + } + s.logger.Info("Initialize: Initializing required addresses", "addresses", addresses) return s.initializeRequiredAddresses(addresses) } @@ -135,7 +149,7 @@ func (s *systemContractCallbacks) CreateOnBatchEndTransaction(ctx context.Contex return nil, ErrNoTransactions } - nonceForSyntheticTx := l2State.GetNonce(s.GetOwner()) + nonceForSyntheticTx := l2State.GetNonce(evm.MaskedSender(*s.transactionsPostProcessorAddress)) s.logger.Debug("CreateOnBatchEndTransaction: Retrieved nonce for synthetic transaction", "nonce", nonceForSyntheticTx) solidityTransactions := make([]TransactionPostProcessor.StructsTransaction, 0) diff --git a/integration/simulation/simulation.go b/integration/simulation/simulation.go index 871ddf5e0e..d1dd200804 100644 --- a/integration/simulation/simulation.go +++ b/integration/simulation/simulation.go @@ -2,6 +2,7 @@ package simulation import ( "context" + "encoding/json" "errors" "fmt" "math/big" @@ -54,6 +55,7 @@ func (s *Simulation) Start() { testlog.Logger().Info(fmt.Sprintf("Genesis block: b_%d.", common.ShortHash(ethereummock.MockGenesisBlock.Hash()))) s.ctx = context.Background() // use injected context for graceful shutdowns + fmt.Printf("Waiting for TEN genesis on L1\n") s.waitForTenGenesisOnL1() // Arbitrary sleep to wait for RPC clients to get up and running @@ -61,13 +63,34 @@ func (s *Simulation) Start() { // todo - instead of sleeping, it would be better to poll time.Sleep(10 * time.Second) + cfg, err := s.RPCHandles.TenWalletRndClient(s.Params.Wallets.L2FaucetWallet).GetConfig() + if err != nil { + panic(err) + } + jsonCfg, err := json.Marshal(cfg) + if err == nil { + fmt.Printf("Config: %v\n", string(jsonCfg)) + } + + fmt.Printf("Funding the bridge to TEN\n") s.bridgeFundingToTen() - s.deployTenZen() // Deploy the ZenBase contract - s.trackLogs() // Create log subscriptions, to validate that they're working correctly later. + + fmt.Printf("Deploying ZenBase contract\n") + s.deployTenZen() // Deploy the ZenBase contract + + fmt.Printf("Creating log subscriptions\n") + s.trackLogs() // Create log subscriptions, to validate that they're working correctly later. + + fmt.Printf("Prefunding L2 wallets\n") s.prefundTenAccounts() // Prefund every L2 wallet - s.deployTenERC20s() // Deploy the TEN HOC and POC ERC20 contracts + fmt.Printf("Deploying TEN ERC20 contracts\n") + s.deployTenERC20s() // Deploy the TEN HOC and POC ERC20 contracts + + fmt.Printf("Prefunding L1 wallets\n") s.prefundL1Accounts() // Prefund every L1 wallet + + fmt.Printf("Checking health status\n") s.checkHealthStatus() // Checks the nodes health status timer := time.Now() @@ -306,8 +329,12 @@ func (s *Simulation) deployTenERC20s() { go func(token testcommon.ERC20) { defer wg.Done() owner := s.Params.Wallets.Tokens[token].L2Owner - // 0x526c84529b2b8c11f57d93d3f5537aca3aecef9b - this is the address of the L2 contract which is currently hardcoded. - contractBytes := erc20contract.L2BytecodeWithDefaultSupply(string(token), gethcommon.HexToAddress("0x526c84529b2b8c11f57d93d3f5537aca3aecef9b")) + + cfg, err := s.RPCHandles.TenWalletRndClient(owner).GetConfig() + if err != nil { + panic(err) + } + contractBytes := erc20contract.L2BytecodeWithDefaultSupply(string(token), cfg.L2MessageBusAddress) fmt.Printf("Deploy contract from: %s\n", owner.Address().Hex()) deployContractTxData := types.DynamicFeeTx{ diff --git a/integration/simulation/transaction_injector.go b/integration/simulation/transaction_injector.go index aedbbc27d7..e0729c1575 100644 --- a/integration/simulation/transaction_injector.go +++ b/integration/simulation/transaction_injector.go @@ -446,8 +446,11 @@ func (ti *TransactionInjector) awaitAndFinalizeWithdrawal(tx *types.Transaction, // issueRandomWithdrawals creates and issues a number of transactions proportional to the simulation time, such that they can be processed func (ti *TransactionInjector) issueRandomWithdrawals() { - // todo (@stefan) - rework this when old contract deployer is phased out? - msgBusAddr := gethcommon.HexToAddress("0x526c84529B2b8c11F57D93d3f5537aCA3AeCEf9B") + cfg, err := ti.rpcHandles.TenWalletRndClient(ti.wallets.L2FaucetWallet).GetConfig() + if err != nil { + panic(err) + } + msgBusAddr := cfg.L2MessageBusAddress for txCounter := 0; ti.shouldKeepIssuing(txCounter); txCounter++ { fromWallet := ti.rndObsWallet() diff --git a/integration/simulation/validate_chain.go b/integration/simulation/validate_chain.go index c94a8eb484..aa7932b73f 100644 --- a/integration/simulation/validate_chain.go +++ b/integration/simulation/validate_chain.go @@ -603,7 +603,13 @@ func checkTransactionReceipts(ctx context.Context, t *testing.T, nodeIdx int, rp t.Errorf("node %d: More than half the transactions failed. Successful number: %d", nodeIdx, nrSuccessful) } - msgBusAddr := gethcommon.HexToAddress("0x526c84529B2b8c11F57D93d3f5537aCA3AeCEf9B") + rpc := rpcHandles.TenWalletClient(txInjector.rndObsWallet().Address(), nodeIdx) + cfg, err := rpc.GetConfig() + if err != nil { + panic(err) + } + + msgBusAddr := cfg.L2MessageBusAddress for _, tx := range txInjector.TxTracker.WithdrawalL2Transactions { sender := getSender(tx) diff --git a/integration/tenscan/tenscan_test.go b/integration/tenscan/tenscan_test.go index c575fbe57c..b93e98470c 100644 --- a/integration/tenscan/tenscan_test.go +++ b/integration/tenscan/tenscan_test.go @@ -85,12 +85,12 @@ func TestTenscan(t *testing.T) { statusCode, body, err := fasthttp.Get(nil, fmt.Sprintf("%s/count/contracts/", serverAddress)) assert.NoError(t, err) assert.Equal(t, 200, statusCode) - assert.Equal(t, "{\"count\":5}", string(body)) + assert.Equal(t, "{\"count\":7}", string(body)) statusCode, body, err = fasthttp.Get(nil, fmt.Sprintf("%s/count/transactions/", serverAddress)) assert.NoError(t, err) assert.Equal(t, 200, statusCode) - assert.Equal(t, "{\"count\":7}", string(body)) + assert.Equal(t, "{\"count\":6}", string(body)) statusCode, body, err = fasthttp.Get(nil, fmt.Sprintf("%s/items/batch/latest/", serverAddress)) assert.NoError(t, err) @@ -124,8 +124,8 @@ func TestTenscan(t *testing.T) { publicTxsObj := publicTxsRes{} err = json.Unmarshal(body, &publicTxsObj) assert.NoError(t, err) - assert.Equal(t, 7, len(publicTxsObj.Result.TransactionsData)) - assert.Equal(t, uint64(7), publicTxsObj.Result.Total) + assert.Equal(t, 6, len(publicTxsObj.Result.TransactionsData)) + assert.Equal(t, uint64(6), publicTxsObj.Result.Total) statusCode, body, err = fasthttp.Get(nil, fmt.Sprintf("%s/items/batches/?offset=0&size=10", serverAddress)) assert.NoError(t, err)