From ba6121f7d099dc2d002f0c83aced0d407e362ffd Mon Sep 17 00:00:00 2001 From: Cal Bera Date: Fri, 30 Jun 2023 14:18:21 -0400 Subject: [PATCH] fix(staking): Return the empty value instead of error when not found (#868) --- .../cosmos/lib/cosmos_types.abigen.go | 2 +- .../bindings/cosmos/polaris_erc20.abigen.go | 2 +- .../bindings/testing/consume_gas.abigen.go | 2 +- .../distribution_testing_helper.abigen.go | 2 +- .../testing/fundraiser/fundraiser.abigen.go | 2 +- .../governance/governance_wrapper.abigen.go | 2 +- .../bindings/testing/liquid_staking.abigen.go | 2 +- .../testing/precompile_constructor.abigen.go | 2 +- .../bindings/testing/solmate_erc20.abigen.go | 2 +- contracts/bindings/testing/swapper.abigen.go | 2 +- cosmos/precompile/staking/helpers.go | 21 +++++++++++++++---- 11 files changed, 27 insertions(+), 14 deletions(-) diff --git a/contracts/bindings/cosmos/lib/cosmos_types.abigen.go b/contracts/bindings/cosmos/lib/cosmos_types.abigen.go index b7ebf3fe7..e274e07f2 100644 --- a/contracts/bindings/cosmos/lib/cosmos_types.abigen.go +++ b/contracts/bindings/cosmos/lib/cosmos_types.abigen.go @@ -38,7 +38,7 @@ type CosmosCoin struct { // CosmosTypesMetaData contains all meta data concerning the CosmosTypes contract. var CosmosTypesMetaData = &bind.MetaData{ ABI: "[{\"inputs\":[{\"components\":[{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"},{\"internalType\":\"string\",\"name\":\"denom\",\"type\":\"string\"}],\"internalType\":\"structCosmos.Coin\",\"name\":\"\",\"type\":\"tuple\"}],\"name\":\"coin\",\"outputs\":[],\"stateMutability\":\"pure\",\"type\":\"function\"}]", - Bin: "0x608060405234801561000f575f80fd5b5060e18061001c5f395ff3fe6080604052348015600e575f80fd5b50600436106026575f3560e01c80632ff6e5df14602a575b5f80fd5b60406004803603810190603c9190606c565b6042565b005b50565b5f80fd5b5f80fd5b5f80fd5b5f604082840312156063576062604d565b5b81905092915050565b5f60208284031215607e57607d6045565b5b5f82013567ffffffffffffffff81111560985760976049565b5b60a2848285016051565b9150509291505056fea2646970667358221220b9c03f8abee64d7ef385f44ea72abb346e3dd9e15ec4b857fe4a912525b8f2db64736f6c63430008140033", + Bin: "0x608060405234801561000f575f80fd5b5060e18061001c5f395ff3fe6080604052348015600e575f80fd5b50600436106026575f3560e01c80632ff6e5df14602a575b5f80fd5b60406004803603810190603c9190606c565b6042565b005b50565b5f80fd5b5f80fd5b5f80fd5b5f604082840312156063576062604d565b5b81905092915050565b5f60208284031215607e57607d6045565b5b5f82013567ffffffffffffffff81111560985760976049565b5b60a2848285016051565b9150509291505056fea264697066735822122002e729f4ad12c830b361e2be989371504068e496dc5b6f36b2b28ca392fcffaf64736f6c63430008140033", } // CosmosTypesABI is the input ABI used to generate the binding from. diff --git a/contracts/bindings/cosmos/polaris_erc20.abigen.go b/contracts/bindings/cosmos/polaris_erc20.abigen.go index 677ee55cb..b352836b4 100644 --- a/contracts/bindings/cosmos/polaris_erc20.abigen.go +++ b/contracts/bindings/cosmos/polaris_erc20.abigen.go @@ -32,7 +32,7 @@ var ( // PolarisERC20MetaData contains all meta data concerning the PolarisERC20 contract. var PolarisERC20MetaData = &bind.MetaData{ ABI: "[{\"inputs\":[{\"internalType\":\"string\",\"name\":\"_denom\",\"type\":\"string\"}],\"stateMutability\":\"nonpayable\",\"type\":\"constructor\"},{\"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\":[],\"name\":\"DOMAIN_SEPARATOR\",\"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\":\"amount\",\"type\":\"uint256\"}],\"name\":\"approve\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"user\",\"type\":\"address\"}],\"name\":\"balanceOf\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"decimals\",\"outputs\":[{\"internalType\":\"uint8\",\"name\":\"\",\"type\":\"uint8\"}],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"denom\",\"outputs\":[{\"internalType\":\"string\",\"name\":\"\",\"type\":\"string\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"name\",\"outputs\":[{\"internalType\":\"string\",\"name\":\"\",\"type\":\"string\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"name\":\"nonces\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"spender\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"value\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"deadline\",\"type\":\"uint256\"},{\"internalType\":\"uint8\",\"name\":\"v\",\"type\":\"uint8\"},{\"internalType\":\"bytes32\",\"name\":\"r\",\"type\":\"bytes32\"},{\"internalType\":\"bytes32\",\"name\":\"s\",\"type\":\"bytes32\"}],\"name\":\"permit\",\"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\":\"amount\",\"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\":\"amount\",\"type\":\"uint256\"}],\"name\":\"transferFrom\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"}]", - Bin: "0x60c060405234801562000010575f80fd5b50604051620025df380380620025df833981810160405281019062000036919062000280565b805f908162000046919062000506565b5046608081815250506200005f6200006d60201b60201c565b60a081815250505062000773565b5f7f8b73c3c69bb8fe3d512ecc4cf759cc79239f7b179b0ffacaa9a75d522b39400f5f6040516200009f919062000692565b60405180910390207fc89efdaa54c0f20c7adf612882df0950f5a951637e0307cdcb4c672f298b8bc64630604051602001620000e095949392919062000718565b60405160208183030381529060405280519060200120905090565b5f604051905090565b5f80fd5b5f80fd5b5f80fd5b5f80fd5b5f601f19601f8301169050919050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52604160045260245ffd5b6200015c8262000114565b810181811067ffffffffffffffff821117156200017e576200017d62000124565b5b80604052505050565b5f62000192620000fb565b9050620001a0828262000151565b919050565b5f67ffffffffffffffff821115620001c257620001c162000124565b5b620001cd8262000114565b9050602081019050919050565b5f5b83811015620001f9578082015181840152602081019050620001dc565b5f8484015250505050565b5f6200021a6200021484620001a5565b62000187565b90508281526020810184848401111562000239576200023862000110565b5b62000246848285620001da565b509392505050565b5f82601f8301126200026557620002646200010c565b5b81516200027784826020860162000204565b91505092915050565b5f6020828403121562000298576200029762000104565b5b5f82015167ffffffffffffffff811115620002b857620002b762000108565b5b620002c6848285016200024e565b91505092915050565b5f81519050919050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52602260045260245ffd5b5f60028204905060018216806200031e57607f821691505b602082108103620003345762000333620002d9565b5b50919050565b5f819050815f5260205f209050919050565b5f6020601f8301049050919050565b5f82821b905092915050565b5f60088302620003987fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff826200035b565b620003a486836200035b565b95508019841693508086168417925050509392505050565b5f819050919050565b5f819050919050565b5f620003ee620003e8620003e284620003bc565b620003c5565b620003bc565b9050919050565b5f819050919050565b6200040983620003ce565b620004216200041882620003f5565b84845462000367565b825550505050565b5f90565b6200043762000429565b62000444818484620003fe565b505050565b5b818110156200046b576200045f5f826200042d565b6001810190506200044a565b5050565b601f821115620004ba5762000484816200033a565b6200048f846200034c565b810160208510156200049f578190505b620004b7620004ae856200034c565b83018262000449565b50505b505050565b5f82821c905092915050565b5f620004dc5f1984600802620004bf565b1980831691505092915050565b5f620004f68383620004cb565b9150826002028217905092915050565b6200051182620002cf565b67ffffffffffffffff8111156200052d576200052c62000124565b5b62000539825462000306565b620005468282856200046f565b5f60209050601f8311600181146200057c575f841562000567578287015190505b620005738582620004e9565b865550620005e2565b601f1984166200058c866200033a565b5f5b82811015620005b5578489015182556001820191506020850194506020810190506200058e565b86831015620005d55784890151620005d1601f891682620004cb565b8355505b6001600288020188555050505b505050505050565b5f81905092915050565b5f819050815f5260205f209050919050565b5f8154620006148162000306565b620006208186620005ea565b9450600182165f81146200063d5760018114620006535762000689565b60ff198316865281151582028601935062000689565b6200065e85620005f4565b5f5b83811015620006815781548189015260018201915060208101905062000660565b838801955050505b50505092915050565b5f6200069f828462000606565b915081905092915050565b5f819050919050565b620006be81620006aa565b82525050565b620006cf81620003bc565b82525050565b5f73ffffffffffffffffffffffffffffffffffffffff82169050919050565b5f6200070082620006d5565b9050919050565b6200071281620006f4565b82525050565b5f60a0820190506200072d5f830188620006b3565b6200073c6020830187620006b3565b6200074b6040830186620006b3565b6200075a6060830185620006c4565b62000769608083018462000707565b9695505050505050565b60805160a051611e4a620007955f395f61075201525f61071e0152611e4a5ff3fe608060405234801561000f575f80fd5b50600436106100cd575f3560e01c806370a082311161008a578063a9059cbb11610064578063a9059cbb14610227578063c370b04214610257578063d505accf14610275578063dd62ed3e14610291576100cd565b806370a08231146101a95780637ecebe00146101d957806395d89b4114610209576100cd565b806306fdde03146100d1578063095ea7b3146100ef57806318160ddd1461011f57806323b872dd1461013d578063313ce5671461016d5780633644e5151461018b575b5f80fd5b6100d96102c1565b6040516100e691906110b3565b60405180910390f35b61010960048036038101906101049190611164565b610350565b60405161011691906111bc565b60405180910390f35b61012761048d565b60405161013491906111e4565b60405180910390f35b610157600480360381019061015291906111fd565b610512565b60405161016491906111bc565b60405180910390f35b610175610713565b6040516101829190611268565b60405180910390f35b61019361071b565b6040516101a09190611299565b60405180910390f35b6101c360048036038101906101be91906112b2565b610777565b6040516101d091906111e4565b60405180910390f35b6101f360048036038101906101ee91906112b2565b610800565b60405161020091906111e4565b60405180910390f35b610211610815565b60405161021e91906110b3565b60405180910390f35b610241600480360381019061023c9190611164565b6108a4565b60405161024e91906111bc565b60405180910390f35b61025f6109df565b60405161026c91906110b3565b60405180910390f35b61028f600480360381019061028a9190611331565b610a6a565b005b6102ab60048036038101906102a691906113ce565b610da7565b6040516102b891906111e4565b60405180910390f35b60605f80546102cf90611439565b80601f01602080910402602001604051908101604052809291908181526020018280546102fb90611439565b80156103465780601f1061031d57610100808354040283529160200191610346565b820191905f5260205f20905b81548152906001019060200180831161032957829003601f168201915b5050505050905090565b5f610359610e33565b73ffffffffffffffffffffffffffffffffffffffff16632b6b7ab5338561037f86610e4e565b5f6040518563ffffffff1660e01b815260040161039f9493929190611606565b6020604051808303815f875af11580156103bb573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906103df919061167a565b61041e576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161041590611715565b60405180910390fd5b8273ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b9258460405161047b91906111e4565b60405180910390a36001905092915050565b5f610496610f6b565b73ffffffffffffffffffffffffffffffffffffffff1663fe3b2b885f6040518263ffffffff1660e01b81526004016104ce91906117c6565b602060405180830381865afa1580156104e9573d5f803e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061050d91906117fa565b905090565b5f61051b610e33565b73ffffffffffffffffffffffffffffffffffffffff1663fbdb0e8785335f6040518463ffffffff1660e01b815260040161055793929190611825565b602060405180830381865afa158015610572573d5f803e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061059691906117fa565b8211156105d8576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016105cf906118d1565b60405180910390fd5b6105e0610f6b565b73ffffffffffffffffffffffffffffffffffffffff166384404811858561060686610e4e565b6040518463ffffffff1660e01b8152600401610624939291906118ef565b6020604051808303815f875af1158015610640573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610664919061167a565b6106a3576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161069a9061199b565b60405180910390fd5b8273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef8460405161070091906111e4565b60405180910390a3600190509392505050565b5f6012905090565b5f7f000000000000000000000000000000000000000000000000000000000000000046146107505761074b610f86565b610772565b7f00000000000000000000000000000000000000000000000000000000000000005b905090565b5f610780610f6b565b73ffffffffffffffffffffffffffffffffffffffff166334d1fdaf835f6040518363ffffffff1660e01b81526004016107ba9291906119b9565b602060405180830381865afa1580156107d5573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906107f991906117fa565b9050919050565b6001602052805f5260405f205f915090505481565b60605f805461082390611439565b80601f016020809104026020016040519081016040528092919081815260200182805461084f90611439565b801561089a5780601f106108715761010080835404028352916020019161089a565b820191905f5260205f20905b81548152906001019060200180831161087d57829003601f168201915b5050505050905090565b5f6108ad610f6b565b73ffffffffffffffffffffffffffffffffffffffff16638440481133856108d386610e4e565b6040518463ffffffff1660e01b81526004016108f1939291906118ef565b6020604051808303815f875af115801561090d573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610931919061167a565b610970576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161096790611a57565b60405180910390fd5b8273ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef846040516109cd91906111e4565b60405180910390a36001905092915050565b5f80546109eb90611439565b80601f0160208091040260200160405190810160405280929190818152602001828054610a1790611439565b8015610a625780601f10610a3957610100808354040283529160200191610a62565b820191905f5260205f20905b815481529060010190602001808311610a4557829003601f168201915b505050505081565b42841015610aad576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610aa490611ae5565b60405180910390fd5b5f6001610ab861071b565b7f6e71edae12b1b97f4d1f60370fef10105fa2faae0126114a169c64845d6126c98a8a8a60015f8f73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f815480929190600101919050558b604051602001610b3d96959493929190611b03565b60405160208183030381529060405280519060200120604051602001610b64929190611bd6565b604051602081830303815290604052805190602001208585856040515f8152602001604052604051610b999493929190611c0c565b6020604051602081039080840390855afa158015610bb9573d5f803e3d5ffd5b5050506020604051035190505f73ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1614158015610c2c57508773ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff16145b610c6b576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610c6290611c99565b60405180910390fd5b610c73610e33565b73ffffffffffffffffffffffffffffffffffffffff16632b6b7ab58289610c998a610e4e565b5f6040518563ffffffff1660e01b8152600401610cb99493929190611606565b6020604051808303815f875af1158015610cd5573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610cf9919061167a565b610d38576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610d2f90611715565b60405180910390fd5b508573ffffffffffffffffffffffffffffffffffffffff168773ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92587604051610d9691906111e4565b60405180910390a350505050505050565b5f610db0610e33565b73ffffffffffffffffffffffffffffffffffffffff1663fbdb0e8784845f6040518463ffffffff1660e01b8152600401610dec93929190611825565b602060405180830381865afa158015610e07573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610e2b91906117fa565b905092915050565b5f73bdf49c3c3882102fc017ffb661108c63a836d065905090565b60605f600167ffffffffffffffff811115610e6c57610e6b611cb7565b5b604051908082528060200260200182016040528015610ea557816020015b610e92611010565b815260200190600190039081610e8a5790505b50905060405180604001604052808481526020015f8054610ec590611439565b80601f0160208091040260200160405190810160405280929190818152602001828054610ef190611439565b8015610f3c5780601f10610f1357610100808354040283529160200191610f3c565b820191905f5260205f20905b815481529060010190602001808311610f1f57829003601f168201915b5050505050815250815f81518110610f5757610f56611ce4565b5b602002602001018190525080915050919050565b5f734381dc2ab14285160c808659aee005d51255add7905090565b5f7f8b73c3c69bb8fe3d512ecc4cf759cc79239f7b179b0ffacaa9a75d522b39400f5f604051610fb69190611dad565b60405180910390207fc89efdaa54c0f20c7adf612882df0950f5a951637e0307cdcb4c672f298b8bc64630604051602001610ff5959493929190611dc3565b60405160208183030381529060405280519060200120905090565b60405180604001604052805f8152602001606081525090565b5f81519050919050565b5f82825260208201905092915050565b5f5b83811015611060578082015181840152602081019050611045565b5f8484015250505050565b5f601f19601f8301169050919050565b5f61108582611029565b61108f8185611033565b935061109f818560208601611043565b6110a88161106b565b840191505092915050565b5f6020820190508181035f8301526110cb818461107b565b905092915050565b5f80fd5b5f73ffffffffffffffffffffffffffffffffffffffff82169050919050565b5f611100826110d7565b9050919050565b611110816110f6565b811461111a575f80fd5b50565b5f8135905061112b81611107565b92915050565b5f819050919050565b61114381611131565b811461114d575f80fd5b50565b5f8135905061115e8161113a565b92915050565b5f806040838503121561117a576111796110d3565b5b5f6111878582860161111d565b925050602061119885828601611150565b9150509250929050565b5f8115159050919050565b6111b6816111a2565b82525050565b5f6020820190506111cf5f8301846111ad565b92915050565b6111de81611131565b82525050565b5f6020820190506111f75f8301846111d5565b92915050565b5f805f60608486031215611214576112136110d3565b5b5f6112218682870161111d565b93505060206112328682870161111d565b925050604061124386828701611150565b9150509250925092565b5f60ff82169050919050565b6112628161124d565b82525050565b5f60208201905061127b5f830184611259565b92915050565b5f819050919050565b61129381611281565b82525050565b5f6020820190506112ac5f83018461128a565b92915050565b5f602082840312156112c7576112c66110d3565b5b5f6112d48482850161111d565b91505092915050565b6112e68161124d565b81146112f0575f80fd5b50565b5f81359050611301816112dd565b92915050565b61131081611281565b811461131a575f80fd5b50565b5f8135905061132b81611307565b92915050565b5f805f805f805f60e0888a03121561134c5761134b6110d3565b5b5f6113598a828b0161111d565b975050602061136a8a828b0161111d565b965050604061137b8a828b01611150565b955050606061138c8a828b01611150565b945050608061139d8a828b016112f3565b93505060a06113ae8a828b0161131d565b92505060c06113bf8a828b0161131d565b91505092959891949750929550565b5f80604083850312156113e4576113e36110d3565b5b5f6113f18582860161111d565b92505060206114028582860161111d565b9150509250929050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52602260045260245ffd5b5f600282049050600182168061145057607f821691505b6020821081036114635761146261140c565b5b50919050565b611472816110f6565b82525050565b5f81519050919050565b5f82825260208201905092915050565b5f819050602082019050919050565b6114aa81611131565b82525050565b5f82825260208201905092915050565b5f6114ca82611029565b6114d481856114b0565b93506114e4818560208601611043565b6114ed8161106b565b840191505092915050565b5f604083015f83015161150d5f8601826114a1565b506020830151848203602086015261152582826114c0565b9150508091505092915050565b5f61153d83836114f8565b905092915050565b5f602082019050919050565b5f61155b82611478565b6115658185611482565b93508360208202850161157785611492565b805f5b858110156115b257848403895281516115938582611532565b945061159e83611545565b925060208a0199505060018101905061157a565b50829750879550505050505092915050565b5f819050919050565b5f819050919050565b5f6115f06115eb6115e6846115c4565b6115cd565b611131565b9050919050565b611600816115d6565b82525050565b5f6080820190506116195f830187611469565b6116266020830186611469565b81810360408301526116388185611551565b905061164760608301846115f7565b95945050505050565b611659816111a2565b8114611663575f80fd5b50565b5f8151905061167481611650565b92915050565b5f6020828403121561168f5761168e6110d3565b5b5f61169c84828501611666565b91505092915050565b7f506f6c6172697345524332303a206661696c656420746f20617070726f7665205f8201527f7370656e64000000000000000000000000000000000000000000000000000000602082015250565b5f6116ff602583611033565b915061170a826116a5565b604082019050919050565b5f6020820190508181035f83015261172c816116f3565b9050919050565b5f819050815f5260205f209050919050565b5f815461175181611439565b61175b8186611033565b9450600182165f8114611775576001811461178b576117bd565b60ff1983168652811515602002860193506117bd565b61179485611733565b5f5b838110156117b557815481890152600182019150602081019050611796565b808801955050505b50505092915050565b5f6020820190508181035f8301526117de8184611745565b905092915050565b5f815190506117f48161113a565b92915050565b5f6020828403121561180f5761180e6110d3565b5b5f61181c848285016117e6565b91505092915050565b5f6060820190506118385f830186611469565b6118456020830185611469565b81810360408301526118578184611745565b9050949350505050565b7f506f6c6172697345524332303a20696e73756666696369656e7420617070726f5f8201527f76616c0000000000000000000000000000000000000000000000000000000000602082015250565b5f6118bb602383611033565b91506118c682611861565b604082019050919050565b5f6020820190508181035f8301526118e8816118af565b9050919050565b5f6060820190506119025f830186611469565b61190f6020830185611469565b81810360408301526119218184611551565b9050949350505050565b7f506f6c6172697345524332303a206661696c656420746f2073656e642062616e5f8201527f6b20746f6b656e73000000000000000000000000000000000000000000000000602082015250565b5f611985602883611033565b91506119908261192b565b604082019050919050565b5f6020820190508181035f8301526119b281611979565b9050919050565b5f6040820190506119cc5f830185611469565b81810360208301526119de8184611745565b90509392505050565b7f506f6c6172697345524332303a206661696c656420746f2073656e6420746f6b5f8201527f656e730000000000000000000000000000000000000000000000000000000000602082015250565b5f611a41602383611033565b9150611a4c826119e7565b604082019050919050565b5f6020820190508181035f830152611a6e81611a35565b9050919050565b7f506f6c6172697345524332303a205045524d49545f444541444c494e455f45585f8201527f5049524544000000000000000000000000000000000000000000000000000000602082015250565b5f611acf602583611033565b9150611ada82611a75565b604082019050919050565b5f6020820190508181035f830152611afc81611ac3565b9050919050565b5f60c082019050611b165f83018961128a565b611b236020830188611469565b611b306040830187611469565b611b3d60608301866111d5565b611b4a60808301856111d5565b611b5760a08301846111d5565b979650505050505050565b5f81905092915050565b7f19010000000000000000000000000000000000000000000000000000000000005f82015250565b5f611ba0600283611b62565b9150611bab82611b6c565b600282019050919050565b5f819050919050565b611bd0611bcb82611281565b611bb6565b82525050565b5f611be082611b94565b9150611bec8285611bbf565b602082019150611bfc8284611bbf565b6020820191508190509392505050565b5f608082019050611c1f5f83018761128a565b611c2c6020830186611259565b611c39604083018561128a565b611c46606083018461128a565b95945050505050565b7f506f6c6172697345524332303a20494e56414c49445f5349474e4552000000005f82015250565b5f611c83601c83611033565b9150611c8e82611c4f565b602082019050919050565b5f6020820190508181035f830152611cb081611c77565b9050919050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52604160045260245ffd5b7f4e487b71000000000000000000000000000000000000000000000000000000005f52603260045260245ffd5b5f81905092915050565b5f819050815f5260205f209050919050565b5f8154611d3981611439565b611d438186611d11565b9450600182165f8114611d5d5760018114611d7257611da4565b60ff1983168652811515820286019350611da4565b611d7b85611d1b565b5f5b83811015611d9c57815481890152600182019150602081019050611d7d565b838801955050505b50505092915050565b5f611db88284611d2d565b915081905092915050565b5f60a082019050611dd65f83018861128a565b611de3602083018761128a565b611df0604083018661128a565b611dfd60608301856111d5565b611e0a6080830184611469565b969550505050505056fea26469706673582212204be62979dcb83d456e9a1887329546158091c30ff2e71fad6b309f0ced07e9e364736f6c63430008140033", + Bin: "0x60c060405234801562000010575f80fd5b50604051620025df380380620025df833981810160405281019062000036919062000280565b805f908162000046919062000506565b5046608081815250506200005f6200006d60201b60201c565b60a081815250505062000773565b5f7f8b73c3c69bb8fe3d512ecc4cf759cc79239f7b179b0ffacaa9a75d522b39400f5f6040516200009f919062000692565b60405180910390207fc89efdaa54c0f20c7adf612882df0950f5a951637e0307cdcb4c672f298b8bc64630604051602001620000e095949392919062000718565b60405160208183030381529060405280519060200120905090565b5f604051905090565b5f80fd5b5f80fd5b5f80fd5b5f80fd5b5f601f19601f8301169050919050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52604160045260245ffd5b6200015c8262000114565b810181811067ffffffffffffffff821117156200017e576200017d62000124565b5b80604052505050565b5f62000192620000fb565b9050620001a0828262000151565b919050565b5f67ffffffffffffffff821115620001c257620001c162000124565b5b620001cd8262000114565b9050602081019050919050565b5f5b83811015620001f9578082015181840152602081019050620001dc565b5f8484015250505050565b5f6200021a6200021484620001a5565b62000187565b90508281526020810184848401111562000239576200023862000110565b5b62000246848285620001da565b509392505050565b5f82601f8301126200026557620002646200010c565b5b81516200027784826020860162000204565b91505092915050565b5f6020828403121562000298576200029762000104565b5b5f82015167ffffffffffffffff811115620002b857620002b762000108565b5b620002c6848285016200024e565b91505092915050565b5f81519050919050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52602260045260245ffd5b5f60028204905060018216806200031e57607f821691505b602082108103620003345762000333620002d9565b5b50919050565b5f819050815f5260205f209050919050565b5f6020601f8301049050919050565b5f82821b905092915050565b5f60088302620003987fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff826200035b565b620003a486836200035b565b95508019841693508086168417925050509392505050565b5f819050919050565b5f819050919050565b5f620003ee620003e8620003e284620003bc565b620003c5565b620003bc565b9050919050565b5f819050919050565b6200040983620003ce565b620004216200041882620003f5565b84845462000367565b825550505050565b5f90565b6200043762000429565b62000444818484620003fe565b505050565b5b818110156200046b576200045f5f826200042d565b6001810190506200044a565b5050565b601f821115620004ba5762000484816200033a565b6200048f846200034c565b810160208510156200049f578190505b620004b7620004ae856200034c565b83018262000449565b50505b505050565b5f82821c905092915050565b5f620004dc5f1984600802620004bf565b1980831691505092915050565b5f620004f68383620004cb565b9150826002028217905092915050565b6200051182620002cf565b67ffffffffffffffff8111156200052d576200052c62000124565b5b62000539825462000306565b620005468282856200046f565b5f60209050601f8311600181146200057c575f841562000567578287015190505b620005738582620004e9565b865550620005e2565b601f1984166200058c866200033a565b5f5b82811015620005b5578489015182556001820191506020850194506020810190506200058e565b86831015620005d55784890151620005d1601f891682620004cb565b8355505b6001600288020188555050505b505050505050565b5f81905092915050565b5f819050815f5260205f209050919050565b5f8154620006148162000306565b620006208186620005ea565b9450600182165f81146200063d5760018114620006535762000689565b60ff198316865281151582028601935062000689565b6200065e85620005f4565b5f5b83811015620006815781548189015260018201915060208101905062000660565b838801955050505b50505092915050565b5f6200069f828462000606565b915081905092915050565b5f819050919050565b620006be81620006aa565b82525050565b620006cf81620003bc565b82525050565b5f73ffffffffffffffffffffffffffffffffffffffff82169050919050565b5f6200070082620006d5565b9050919050565b6200071281620006f4565b82525050565b5f60a0820190506200072d5f830188620006b3565b6200073c6020830187620006b3565b6200074b6040830186620006b3565b6200075a6060830185620006c4565b62000769608083018462000707565b9695505050505050565b60805160a051611e4a620007955f395f61075201525f61071e0152611e4a5ff3fe608060405234801561000f575f80fd5b50600436106100cd575f3560e01c806370a082311161008a578063a9059cbb11610064578063a9059cbb14610227578063c370b04214610257578063d505accf14610275578063dd62ed3e14610291576100cd565b806370a08231146101a95780637ecebe00146101d957806395d89b4114610209576100cd565b806306fdde03146100d1578063095ea7b3146100ef57806318160ddd1461011f57806323b872dd1461013d578063313ce5671461016d5780633644e5151461018b575b5f80fd5b6100d96102c1565b6040516100e691906110b3565b60405180910390f35b61010960048036038101906101049190611164565b610350565b60405161011691906111bc565b60405180910390f35b61012761048d565b60405161013491906111e4565b60405180910390f35b610157600480360381019061015291906111fd565b610512565b60405161016491906111bc565b60405180910390f35b610175610713565b6040516101829190611268565b60405180910390f35b61019361071b565b6040516101a09190611299565b60405180910390f35b6101c360048036038101906101be91906112b2565b610777565b6040516101d091906111e4565b60405180910390f35b6101f360048036038101906101ee91906112b2565b610800565b60405161020091906111e4565b60405180910390f35b610211610815565b60405161021e91906110b3565b60405180910390f35b610241600480360381019061023c9190611164565b6108a4565b60405161024e91906111bc565b60405180910390f35b61025f6109df565b60405161026c91906110b3565b60405180910390f35b61028f600480360381019061028a9190611331565b610a6a565b005b6102ab60048036038101906102a691906113ce565b610da7565b6040516102b891906111e4565b60405180910390f35b60605f80546102cf90611439565b80601f01602080910402602001604051908101604052809291908181526020018280546102fb90611439565b80156103465780601f1061031d57610100808354040283529160200191610346565b820191905f5260205f20905b81548152906001019060200180831161032957829003601f168201915b5050505050905090565b5f610359610e33565b73ffffffffffffffffffffffffffffffffffffffff16632b6b7ab5338561037f86610e4e565b5f6040518563ffffffff1660e01b815260040161039f9493929190611606565b6020604051808303815f875af11580156103bb573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906103df919061167a565b61041e576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161041590611715565b60405180910390fd5b8273ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b9258460405161047b91906111e4565b60405180910390a36001905092915050565b5f610496610f6b565b73ffffffffffffffffffffffffffffffffffffffff1663fe3b2b885f6040518263ffffffff1660e01b81526004016104ce91906117c6565b602060405180830381865afa1580156104e9573d5f803e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061050d91906117fa565b905090565b5f61051b610e33565b73ffffffffffffffffffffffffffffffffffffffff1663fbdb0e8785335f6040518463ffffffff1660e01b815260040161055793929190611825565b602060405180830381865afa158015610572573d5f803e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061059691906117fa565b8211156105d8576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016105cf906118d1565b60405180910390fd5b6105e0610f6b565b73ffffffffffffffffffffffffffffffffffffffff166384404811858561060686610e4e565b6040518463ffffffff1660e01b8152600401610624939291906118ef565b6020604051808303815f875af1158015610640573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610664919061167a565b6106a3576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161069a9061199b565b60405180910390fd5b8273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef8460405161070091906111e4565b60405180910390a3600190509392505050565b5f6012905090565b5f7f000000000000000000000000000000000000000000000000000000000000000046146107505761074b610f86565b610772565b7f00000000000000000000000000000000000000000000000000000000000000005b905090565b5f610780610f6b565b73ffffffffffffffffffffffffffffffffffffffff166334d1fdaf835f6040518363ffffffff1660e01b81526004016107ba9291906119b9565b602060405180830381865afa1580156107d5573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906107f991906117fa565b9050919050565b6001602052805f5260405f205f915090505481565b60605f805461082390611439565b80601f016020809104026020016040519081016040528092919081815260200182805461084f90611439565b801561089a5780601f106108715761010080835404028352916020019161089a565b820191905f5260205f20905b81548152906001019060200180831161087d57829003601f168201915b5050505050905090565b5f6108ad610f6b565b73ffffffffffffffffffffffffffffffffffffffff16638440481133856108d386610e4e565b6040518463ffffffff1660e01b81526004016108f1939291906118ef565b6020604051808303815f875af115801561090d573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610931919061167a565b610970576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161096790611a57565b60405180910390fd5b8273ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef846040516109cd91906111e4565b60405180910390a36001905092915050565b5f80546109eb90611439565b80601f0160208091040260200160405190810160405280929190818152602001828054610a1790611439565b8015610a625780601f10610a3957610100808354040283529160200191610a62565b820191905f5260205f20905b815481529060010190602001808311610a4557829003601f168201915b505050505081565b42841015610aad576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610aa490611ae5565b60405180910390fd5b5f6001610ab861071b565b7f6e71edae12b1b97f4d1f60370fef10105fa2faae0126114a169c64845d6126c98a8a8a60015f8f73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f815480929190600101919050558b604051602001610b3d96959493929190611b03565b60405160208183030381529060405280519060200120604051602001610b64929190611bd6565b604051602081830303815290604052805190602001208585856040515f8152602001604052604051610b999493929190611c0c565b6020604051602081039080840390855afa158015610bb9573d5f803e3d5ffd5b5050506020604051035190505f73ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1614158015610c2c57508773ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff16145b610c6b576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610c6290611c99565b60405180910390fd5b610c73610e33565b73ffffffffffffffffffffffffffffffffffffffff16632b6b7ab58289610c998a610e4e565b5f6040518563ffffffff1660e01b8152600401610cb99493929190611606565b6020604051808303815f875af1158015610cd5573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610cf9919061167a565b610d38576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610d2f90611715565b60405180910390fd5b508573ffffffffffffffffffffffffffffffffffffffff168773ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92587604051610d9691906111e4565b60405180910390a350505050505050565b5f610db0610e33565b73ffffffffffffffffffffffffffffffffffffffff1663fbdb0e8784845f6040518463ffffffff1660e01b8152600401610dec93929190611825565b602060405180830381865afa158015610e07573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610e2b91906117fa565b905092915050565b5f73bdf49c3c3882102fc017ffb661108c63a836d065905090565b60605f600167ffffffffffffffff811115610e6c57610e6b611cb7565b5b604051908082528060200260200182016040528015610ea557816020015b610e92611010565b815260200190600190039081610e8a5790505b50905060405180604001604052808481526020015f8054610ec590611439565b80601f0160208091040260200160405190810160405280929190818152602001828054610ef190611439565b8015610f3c5780601f10610f1357610100808354040283529160200191610f3c565b820191905f5260205f20905b815481529060010190602001808311610f1f57829003601f168201915b5050505050815250815f81518110610f5757610f56611ce4565b5b602002602001018190525080915050919050565b5f734381dc2ab14285160c808659aee005d51255add7905090565b5f7f8b73c3c69bb8fe3d512ecc4cf759cc79239f7b179b0ffacaa9a75d522b39400f5f604051610fb69190611dad565b60405180910390207fc89efdaa54c0f20c7adf612882df0950f5a951637e0307cdcb4c672f298b8bc64630604051602001610ff5959493929190611dc3565b60405160208183030381529060405280519060200120905090565b60405180604001604052805f8152602001606081525090565b5f81519050919050565b5f82825260208201905092915050565b5f5b83811015611060578082015181840152602081019050611045565b5f8484015250505050565b5f601f19601f8301169050919050565b5f61108582611029565b61108f8185611033565b935061109f818560208601611043565b6110a88161106b565b840191505092915050565b5f6020820190508181035f8301526110cb818461107b565b905092915050565b5f80fd5b5f73ffffffffffffffffffffffffffffffffffffffff82169050919050565b5f611100826110d7565b9050919050565b611110816110f6565b811461111a575f80fd5b50565b5f8135905061112b81611107565b92915050565b5f819050919050565b61114381611131565b811461114d575f80fd5b50565b5f8135905061115e8161113a565b92915050565b5f806040838503121561117a576111796110d3565b5b5f6111878582860161111d565b925050602061119885828601611150565b9150509250929050565b5f8115159050919050565b6111b6816111a2565b82525050565b5f6020820190506111cf5f8301846111ad565b92915050565b6111de81611131565b82525050565b5f6020820190506111f75f8301846111d5565b92915050565b5f805f60608486031215611214576112136110d3565b5b5f6112218682870161111d565b93505060206112328682870161111d565b925050604061124386828701611150565b9150509250925092565b5f60ff82169050919050565b6112628161124d565b82525050565b5f60208201905061127b5f830184611259565b92915050565b5f819050919050565b61129381611281565b82525050565b5f6020820190506112ac5f83018461128a565b92915050565b5f602082840312156112c7576112c66110d3565b5b5f6112d48482850161111d565b91505092915050565b6112e68161124d565b81146112f0575f80fd5b50565b5f81359050611301816112dd565b92915050565b61131081611281565b811461131a575f80fd5b50565b5f8135905061132b81611307565b92915050565b5f805f805f805f60e0888a03121561134c5761134b6110d3565b5b5f6113598a828b0161111d565b975050602061136a8a828b0161111d565b965050604061137b8a828b01611150565b955050606061138c8a828b01611150565b945050608061139d8a828b016112f3565b93505060a06113ae8a828b0161131d565b92505060c06113bf8a828b0161131d565b91505092959891949750929550565b5f80604083850312156113e4576113e36110d3565b5b5f6113f18582860161111d565b92505060206114028582860161111d565b9150509250929050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52602260045260245ffd5b5f600282049050600182168061145057607f821691505b6020821081036114635761146261140c565b5b50919050565b611472816110f6565b82525050565b5f81519050919050565b5f82825260208201905092915050565b5f819050602082019050919050565b6114aa81611131565b82525050565b5f82825260208201905092915050565b5f6114ca82611029565b6114d481856114b0565b93506114e4818560208601611043565b6114ed8161106b565b840191505092915050565b5f604083015f83015161150d5f8601826114a1565b506020830151848203602086015261152582826114c0565b9150508091505092915050565b5f61153d83836114f8565b905092915050565b5f602082019050919050565b5f61155b82611478565b6115658185611482565b93508360208202850161157785611492565b805f5b858110156115b257848403895281516115938582611532565b945061159e83611545565b925060208a0199505060018101905061157a565b50829750879550505050505092915050565b5f819050919050565b5f819050919050565b5f6115f06115eb6115e6846115c4565b6115cd565b611131565b9050919050565b611600816115d6565b82525050565b5f6080820190506116195f830187611469565b6116266020830186611469565b81810360408301526116388185611551565b905061164760608301846115f7565b95945050505050565b611659816111a2565b8114611663575f80fd5b50565b5f8151905061167481611650565b92915050565b5f6020828403121561168f5761168e6110d3565b5b5f61169c84828501611666565b91505092915050565b7f506f6c6172697345524332303a206661696c656420746f20617070726f7665205f8201527f7370656e64000000000000000000000000000000000000000000000000000000602082015250565b5f6116ff602583611033565b915061170a826116a5565b604082019050919050565b5f6020820190508181035f83015261172c816116f3565b9050919050565b5f819050815f5260205f209050919050565b5f815461175181611439565b61175b8186611033565b9450600182165f8114611775576001811461178b576117bd565b60ff1983168652811515602002860193506117bd565b61179485611733565b5f5b838110156117b557815481890152600182019150602081019050611796565b808801955050505b50505092915050565b5f6020820190508181035f8301526117de8184611745565b905092915050565b5f815190506117f48161113a565b92915050565b5f6020828403121561180f5761180e6110d3565b5b5f61181c848285016117e6565b91505092915050565b5f6060820190506118385f830186611469565b6118456020830185611469565b81810360408301526118578184611745565b9050949350505050565b7f506f6c6172697345524332303a20696e73756666696369656e7420617070726f5f8201527f76616c0000000000000000000000000000000000000000000000000000000000602082015250565b5f6118bb602383611033565b91506118c682611861565b604082019050919050565b5f6020820190508181035f8301526118e8816118af565b9050919050565b5f6060820190506119025f830186611469565b61190f6020830185611469565b81810360408301526119218184611551565b9050949350505050565b7f506f6c6172697345524332303a206661696c656420746f2073656e642062616e5f8201527f6b20746f6b656e73000000000000000000000000000000000000000000000000602082015250565b5f611985602883611033565b91506119908261192b565b604082019050919050565b5f6020820190508181035f8301526119b281611979565b9050919050565b5f6040820190506119cc5f830185611469565b81810360208301526119de8184611745565b90509392505050565b7f506f6c6172697345524332303a206661696c656420746f2073656e6420746f6b5f8201527f656e730000000000000000000000000000000000000000000000000000000000602082015250565b5f611a41602383611033565b9150611a4c826119e7565b604082019050919050565b5f6020820190508181035f830152611a6e81611a35565b9050919050565b7f506f6c6172697345524332303a205045524d49545f444541444c494e455f45585f8201527f5049524544000000000000000000000000000000000000000000000000000000602082015250565b5f611acf602583611033565b9150611ada82611a75565b604082019050919050565b5f6020820190508181035f830152611afc81611ac3565b9050919050565b5f60c082019050611b165f83018961128a565b611b236020830188611469565b611b306040830187611469565b611b3d60608301866111d5565b611b4a60808301856111d5565b611b5760a08301846111d5565b979650505050505050565b5f81905092915050565b7f19010000000000000000000000000000000000000000000000000000000000005f82015250565b5f611ba0600283611b62565b9150611bab82611b6c565b600282019050919050565b5f819050919050565b611bd0611bcb82611281565b611bb6565b82525050565b5f611be082611b94565b9150611bec8285611bbf565b602082019150611bfc8284611bbf565b6020820191508190509392505050565b5f608082019050611c1f5f83018761128a565b611c2c6020830186611259565b611c39604083018561128a565b611c46606083018461128a565b95945050505050565b7f506f6c6172697345524332303a20494e56414c49445f5349474e4552000000005f82015250565b5f611c83601c83611033565b9150611c8e82611c4f565b602082019050919050565b5f6020820190508181035f830152611cb081611c77565b9050919050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52604160045260245ffd5b7f4e487b71000000000000000000000000000000000000000000000000000000005f52603260045260245ffd5b5f81905092915050565b5f819050815f5260205f209050919050565b5f8154611d3981611439565b611d438186611d11565b9450600182165f8114611d5d5760018114611d7257611da4565b60ff1983168652811515820286019350611da4565b611d7b85611d1b565b5f5b83811015611d9c57815481890152600182019150602081019050611d7d565b838801955050505b50505092915050565b5f611db88284611d2d565b915081905092915050565b5f60a082019050611dd65f83018861128a565b611de3602083018761128a565b611df0604083018661128a565b611dfd60608301856111d5565b611e0a6080830184611469565b969550505050505056fea264697066735822122082f1adbf38232dbaaf1b0fb5034b1d2832bfa232a5194348c2788cfa7c2d68a964736f6c63430008140033", } // PolarisERC20ABI is the input ABI used to generate the binding from. diff --git a/contracts/bindings/testing/consume_gas.abigen.go b/contracts/bindings/testing/consume_gas.abigen.go index e6a63d51a..a9094d2e4 100644 --- a/contracts/bindings/testing/consume_gas.abigen.go +++ b/contracts/bindings/testing/consume_gas.abigen.go @@ -32,7 +32,7 @@ var ( // ConsumeGasMetaData contains all meta data concerning the ConsumeGas contract. var ConsumeGasMetaData = &bind.MetaData{ ABI: "[{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"gasUsed\",\"type\":\"uint256\"}],\"name\":\"GasConsumed\",\"type\":\"event\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"targetGas\",\"type\":\"uint256\"}],\"name\":\"consumeGas\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"}]", - Bin: "0x608060405234801561000f575f80fd5b506101cb8061001d5f395ff3fe608060405234801561000f575f80fd5b5060043610610029575f3560e01c8063a329e8de1461002d575b5f80fd5b610047600480360381019061004291906100e2565b610049565b005b5f5a90505b818161005a919061013a565b5a1161004e575f5a8261006d919061013a565b90507f1a2dc18f5a2dabdf3809a83ec652290b81d97d915bf5561908090bad91deffc48160405161009e919061017c565b60405180910390a1505050565b5f80fd5b5f819050919050565b6100c1816100af565b81146100cb575f80fd5b50565b5f813590506100dc816100b8565b92915050565b5f602082840312156100f7576100f66100ab565b5b5f610104848285016100ce565b91505092915050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601160045260245ffd5b5f610144826100af565b915061014f836100af565b92508282039050818111156101675761016661010d565b5b92915050565b610176816100af565b82525050565b5f60208201905061018f5f83018461016d565b9291505056fea2646970667358221220cf53a89b858bcd89a9f376c9fc26e35242e2b2c6d3caa86630baa63414ba767d64736f6c63430008140033", + Bin: "0x608060405234801561000f575f80fd5b506101cb8061001d5f395ff3fe608060405234801561000f575f80fd5b5060043610610029575f3560e01c8063a329e8de1461002d575b5f80fd5b610047600480360381019061004291906100e2565b610049565b005b5f5a90505b818161005a919061013a565b5a1161004e575f5a8261006d919061013a565b90507f1a2dc18f5a2dabdf3809a83ec652290b81d97d915bf5561908090bad91deffc48160405161009e919061017c565b60405180910390a1505050565b5f80fd5b5f819050919050565b6100c1816100af565b81146100cb575f80fd5b50565b5f813590506100dc816100b8565b92915050565b5f602082840312156100f7576100f66100ab565b5b5f610104848285016100ce565b91505092915050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601160045260245ffd5b5f610144826100af565b915061014f836100af565b92508282039050818111156101675761016661010d565b5b92915050565b610176816100af565b82525050565b5f60208201905061018f5f83018461016d565b9291505056fea2646970667358221220e4c37c223937988a35267edfbba61b52336e1dcb9878edd519edc3eb1881ec2a64736f6c63430008140033", } // ConsumeGasABI is the input ABI used to generate the binding from. diff --git a/contracts/bindings/testing/distribution_testing_helper.abigen.go b/contracts/bindings/testing/distribution_testing_helper.abigen.go index a23ba8a1e..b936323ed 100644 --- a/contracts/bindings/testing/distribution_testing_helper.abigen.go +++ b/contracts/bindings/testing/distribution_testing_helper.abigen.go @@ -32,7 +32,7 @@ var ( // DistributionWrapperMetaData contains all meta data concerning the DistributionWrapper contract. var DistributionWrapperMetaData = &bind.MetaData{ ABI: "[{\"inputs\":[{\"internalType\":\"address\",\"name\":\"_distributionprecompile\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"_stakingprecompile\",\"type\":\"address\"}],\"stateMutability\":\"nonpayable\",\"type\":\"constructor\"},{\"inputs\":[],\"name\":\"ZeroAddress\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"_validator\",\"type\":\"address\"}],\"name\":\"delegate\",\"outputs\":[],\"stateMutability\":\"payable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"distribution\",\"outputs\":[{\"internalType\":\"contractIDistributionModule\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"getWithdrawEnabled\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"_withdrawAddress\",\"type\":\"address\"}],\"name\":\"setWithdrawAddress\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"staking\",\"outputs\":[{\"internalType\":\"contractIStakingModule\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"_delegatorAddress\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"_validatorAddress\",\"type\":\"address\"}],\"name\":\"withdrawRewards\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"}]", - Bin: "0x608060405234801561000f575f80fd5b50604051610bf8380380610bf8833981810160405281019061003191906101b2565b5f73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614801561009757505f73ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff16145b156100ce576040517fd92e233d00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b815f806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508060015f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050506101f0565b5f80fd5b5f73ffffffffffffffffffffffffffffffffffffffff82169050919050565b5f61018182610158565b9050919050565b61019181610177565b811461019b575f80fd5b50565b5f815190506101ac81610188565b92915050565b5f80604083850312156101c8576101c7610154565b5b5f6101d58582860161019e565b92505060206101e68582860161019e565b9150509250929050565b6109fb806101fd5f395ff3fe608060405260043610610054575f3560e01c806339cc4c86146100585780633ab1a494146100825780634cf088d9146100be5780635c19a95c146100e85780635ee58efc14610104578063e20981ca1461012e575b5f80fd5b348015610063575f80fd5b5061006c610156565b604051610079919061042e565b60405180910390f35b34801561008d575f80fd5b506100a860048036038101906100a391906104b2565b6101e9565b6040516100b5919061042e565b60405180910390f35b3480156100c9575f80fd5b506100d261028a565b6040516100df9190610538565b60405180910390f35b61010260048036038101906100fd91906104b2565b6102af565b005b34801561010f575f80fd5b5061011861034f565b6040516101259190610571565b60405180910390f35b348015610139575f80fd5b50610154600480360381019061014f919061058a565b610372565b005b5f805f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166339cc4c866040518163ffffffff1660e01b8152600401602060405180830381865afa1580156101c0573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906101e491906105f2565b905090565b5f805f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16633ab1a494836040518263ffffffff1660e01b8152600401610243919061062c565b6020604051808303815f875af115801561025f573d5f803e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061028391906105f2565b9050919050565b60015f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b60015f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663026e402b82346040518363ffffffff1660e01b815260040161030b92919061065d565b6020604051808303815f875af1158015610327573d5f803e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061034b91906105f2565b5050565b5f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b5f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663562c67a483836040518363ffffffff1660e01b81526004016103cc929190610684565b5f604051808303815f875af11580156103e7573d5f803e3d5ffd5b505050506040513d5f823e3d601f19601f8201168201806040525081019061040f919061097e565b505050565b5f8115159050919050565b61042881610414565b82525050565b5f6020820190506104415f83018461041f565b92915050565b5f604051905090565b5f80fd5b5f80fd5b5f73ffffffffffffffffffffffffffffffffffffffff82169050919050565b5f61048182610458565b9050919050565b61049181610477565b811461049b575f80fd5b50565b5f813590506104ac81610488565b92915050565b5f602082840312156104c7576104c6610450565b5b5f6104d48482850161049e565b91505092915050565b5f819050919050565b5f6105006104fb6104f684610458565b6104dd565b610458565b9050919050565b5f610511826104e6565b9050919050565b5f61052282610507565b9050919050565b61053281610518565b82525050565b5f60208201905061054b5f830184610529565b92915050565b5f61055b82610507565b9050919050565b61056b81610551565b82525050565b5f6020820190506105845f830184610562565b92915050565b5f80604083850312156105a05761059f610450565b5b5f6105ad8582860161049e565b92505060206105be8582860161049e565b9150509250929050565b6105d181610414565b81146105db575f80fd5b50565b5f815190506105ec816105c8565b92915050565b5f6020828403121561060757610606610450565b5b5f610614848285016105de565b91505092915050565b61062681610477565b82525050565b5f60208201905061063f5f83018461061d565b92915050565b5f819050919050565b61065781610645565b82525050565b5f6040820190506106705f83018561061d565b61067d602083018461064e565b9392505050565b5f6040820190506106975f83018561061d565b6106a4602083018461061d565b9392505050565b5f80fd5b5f601f19601f8301169050919050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52604160045260245ffd5b6106f5826106af565b810181811067ffffffffffffffff82111715610714576107136106bf565b5b80604052505050565b5f610726610447565b905061073282826106ec565b919050565b5f67ffffffffffffffff821115610751576107506106bf565b5b602082029050602081019050919050565b5f80fd5b5f80fd5b5f80fd5b61077781610645565b8114610781575f80fd5b50565b5f815190506107928161076e565b92915050565b5f80fd5b5f67ffffffffffffffff8211156107b6576107b56106bf565b5b6107bf826106af565b9050602081019050919050565b5f5b838110156107e95780820151818401526020810190506107ce565b5f8484015250505050565b5f6108066108018461079c565b61071d565b90508281526020810184848401111561082257610821610798565b5b61082d8482856107cc565b509392505050565b5f82601f830112610849576108486106ab565b5b81516108598482602086016107f4565b91505092915050565b5f6040828403121561087757610876610766565b5b610881604061071d565b90505f61089084828501610784565b5f83015250602082015167ffffffffffffffff8111156108b3576108b261076a565b5b6108bf84828501610835565b60208301525092915050565b5f6108dd6108d884610737565b61071d565b90508083825260208201905060208402830185811115610900576108ff610762565b5b835b8181101561094757805167ffffffffffffffff811115610925576109246106ab565b5b8086016109328982610862565b85526020850194505050602081019050610902565b5050509392505050565b5f82601f830112610965576109646106ab565b5b81516109758482602086016108cb565b91505092915050565b5f6020828403121561099357610992610450565b5b5f82015167ffffffffffffffff8111156109b0576109af610454565b5b6109bc84828501610951565b9150509291505056fea2646970667358221220babbaa278c897c15d9b262df111faa4753404978aa28bafd078f149291ebf0e664736f6c63430008140033", + Bin: "0x608060405234801561000f575f80fd5b50604051610bf8380380610bf8833981810160405281019061003191906101b2565b5f73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614801561009757505f73ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff16145b156100ce576040517fd92e233d00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b815f806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508060015f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050506101f0565b5f80fd5b5f73ffffffffffffffffffffffffffffffffffffffff82169050919050565b5f61018182610158565b9050919050565b61019181610177565b811461019b575f80fd5b50565b5f815190506101ac81610188565b92915050565b5f80604083850312156101c8576101c7610154565b5b5f6101d58582860161019e565b92505060206101e68582860161019e565b9150509250929050565b6109fb806101fd5f395ff3fe608060405260043610610054575f3560e01c806339cc4c86146100585780633ab1a494146100825780634cf088d9146100be5780635c19a95c146100e85780635ee58efc14610104578063e20981ca1461012e575b5f80fd5b348015610063575f80fd5b5061006c610156565b604051610079919061042e565b60405180910390f35b34801561008d575f80fd5b506100a860048036038101906100a391906104b2565b6101e9565b6040516100b5919061042e565b60405180910390f35b3480156100c9575f80fd5b506100d261028a565b6040516100df9190610538565b60405180910390f35b61010260048036038101906100fd91906104b2565b6102af565b005b34801561010f575f80fd5b5061011861034f565b6040516101259190610571565b60405180910390f35b348015610139575f80fd5b50610154600480360381019061014f919061058a565b610372565b005b5f805f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166339cc4c866040518163ffffffff1660e01b8152600401602060405180830381865afa1580156101c0573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906101e491906105f2565b905090565b5f805f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16633ab1a494836040518263ffffffff1660e01b8152600401610243919061062c565b6020604051808303815f875af115801561025f573d5f803e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061028391906105f2565b9050919050565b60015f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b60015f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663026e402b82346040518363ffffffff1660e01b815260040161030b92919061065d565b6020604051808303815f875af1158015610327573d5f803e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061034b91906105f2565b5050565b5f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b5f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663562c67a483836040518363ffffffff1660e01b81526004016103cc929190610684565b5f604051808303815f875af11580156103e7573d5f803e3d5ffd5b505050506040513d5f823e3d601f19601f8201168201806040525081019061040f919061097e565b505050565b5f8115159050919050565b61042881610414565b82525050565b5f6020820190506104415f83018461041f565b92915050565b5f604051905090565b5f80fd5b5f80fd5b5f73ffffffffffffffffffffffffffffffffffffffff82169050919050565b5f61048182610458565b9050919050565b61049181610477565b811461049b575f80fd5b50565b5f813590506104ac81610488565b92915050565b5f602082840312156104c7576104c6610450565b5b5f6104d48482850161049e565b91505092915050565b5f819050919050565b5f6105006104fb6104f684610458565b6104dd565b610458565b9050919050565b5f610511826104e6565b9050919050565b5f61052282610507565b9050919050565b61053281610518565b82525050565b5f60208201905061054b5f830184610529565b92915050565b5f61055b82610507565b9050919050565b61056b81610551565b82525050565b5f6020820190506105845f830184610562565b92915050565b5f80604083850312156105a05761059f610450565b5b5f6105ad8582860161049e565b92505060206105be8582860161049e565b9150509250929050565b6105d181610414565b81146105db575f80fd5b50565b5f815190506105ec816105c8565b92915050565b5f6020828403121561060757610606610450565b5b5f610614848285016105de565b91505092915050565b61062681610477565b82525050565b5f60208201905061063f5f83018461061d565b92915050565b5f819050919050565b61065781610645565b82525050565b5f6040820190506106705f83018561061d565b61067d602083018461064e565b9392505050565b5f6040820190506106975f83018561061d565b6106a4602083018461061d565b9392505050565b5f80fd5b5f601f19601f8301169050919050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52604160045260245ffd5b6106f5826106af565b810181811067ffffffffffffffff82111715610714576107136106bf565b5b80604052505050565b5f610726610447565b905061073282826106ec565b919050565b5f67ffffffffffffffff821115610751576107506106bf565b5b602082029050602081019050919050565b5f80fd5b5f80fd5b5f80fd5b61077781610645565b8114610781575f80fd5b50565b5f815190506107928161076e565b92915050565b5f80fd5b5f67ffffffffffffffff8211156107b6576107b56106bf565b5b6107bf826106af565b9050602081019050919050565b5f5b838110156107e95780820151818401526020810190506107ce565b5f8484015250505050565b5f6108066108018461079c565b61071d565b90508281526020810184848401111561082257610821610798565b5b61082d8482856107cc565b509392505050565b5f82601f830112610849576108486106ab565b5b81516108598482602086016107f4565b91505092915050565b5f6040828403121561087757610876610766565b5b610881604061071d565b90505f61089084828501610784565b5f83015250602082015167ffffffffffffffff8111156108b3576108b261076a565b5b6108bf84828501610835565b60208301525092915050565b5f6108dd6108d884610737565b61071d565b90508083825260208201905060208402830185811115610900576108ff610762565b5b835b8181101561094757805167ffffffffffffffff811115610925576109246106ab565b5b8086016109328982610862565b85526020850194505050602081019050610902565b5050509392505050565b5f82601f830112610965576109646106ab565b5b81516109758482602086016108cb565b91505092915050565b5f6020828403121561099357610992610450565b5b5f82015167ffffffffffffffff8111156109b0576109af610454565b5b6109bc84828501610951565b9150509291505056fea2646970667358221220e4ef49606e3dd1bbec6c1931eeb0b21f8ed13aad4887584135e2f932475e619f64736f6c63430008140033", } // DistributionWrapperABI is the input ABI used to generate the binding from. diff --git a/contracts/bindings/testing/fundraiser/fundraiser.abigen.go b/contracts/bindings/testing/fundraiser/fundraiser.abigen.go index 469327c85..75705cba3 100644 --- a/contracts/bindings/testing/fundraiser/fundraiser.abigen.go +++ b/contracts/bindings/testing/fundraiser/fundraiser.abigen.go @@ -38,7 +38,7 @@ type CosmosCoin struct { // FundraiserMetaData contains all meta data concerning the Fundraiser contract. var FundraiserMetaData = &bind.MetaData{ ABI: "[{\"inputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"constructor\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"user\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"newOwner\",\"type\":\"address\"}],\"name\":\"OwnershipTransferred\",\"type\":\"event\"},{\"inputs\":[{\"components\":[{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"},{\"internalType\":\"string\",\"name\":\"denom\",\"type\":\"string\"}],\"internalType\":\"structCosmos.Coin[]\",\"name\":\"coins\",\"type\":\"tuple[]\"}],\"name\":\"Donate\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"GetRaisedAmounts\",\"outputs\":[{\"components\":[{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"},{\"internalType\":\"string\",\"name\":\"denom\",\"type\":\"string\"}],\"internalType\":\"structCosmos.Coin[]\",\"name\":\"\",\"type\":\"tuple[]\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"bank\",\"outputs\":[{\"internalType\":\"contractIBankModule\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"owner\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"newOwner\",\"type\":\"address\"}],\"name\":\"transferOwnership\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"withdrawDonations\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"}]", - Bin: "0x60a0604052734381dc2ab14285160c808659aee005d51255add773ffffffffffffffffffffffffffffffffffffffff1660809073ffffffffffffffffffffffffffffffffffffffff16815250348015610056575f80fd5b5033805f806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508073ffffffffffffffffffffffffffffffffffffffff165f73ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a350608051610ffa61011f5f395f8181610102015281816101a6015281816101ef01526103a90152610ffa5ff3fe608060405234801561000f575f80fd5b5060043610610060575f3560e01c80631ecc96521461006457806376cdb03b146100805780638da5cb5b1461009e578063af1d3f52146100bc578063ce1b088a146100da578063f2fde38b146100e4575b5f80fd5b61007e60048036038101906100799190610608565b610100565b005b6100886101a4565b60405161009591906106cd565b60405180910390f35b6100a66101c8565b6040516100b39190610706565b60405180910390f35b6100c46101eb565b6040516100d191906108b6565b60405180910390f35b6100e261028d565b005b6100fe60048036038101906100f99190610900565b61046d565b005b7f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff166384404811333085856040518563ffffffff1660e01b815260040161015f9493929190610b20565b6020604051808303815f875af115801561017b573d5f803e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061019f9190610b93565b505050565b7f000000000000000000000000000000000000000000000000000000000000000081565b5f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b60607f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff1663c53d6ce1306040518263ffffffff1660e01b81526004016102469190610706565b5f60405180830381865afa158015610260573d5f803e3d5ffd5b505050506040513d5f823e3d601f19601f820116820180604052508101906102889190610e3b565b905090565b5f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff161461031a576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161031190610edc565b60405180910390fd5b5f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16146103a7576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161039e90610f6a565b60405180910390fd5b7f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff166384404811305f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1661040c6101eb565b6040518463ffffffff1660e01b815260040161042a93929190610f88565b6020604051808303815f875af1158015610446573d5f803e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061046a9190610b93565b50565b5f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16146104fa576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016104f190610edc565b60405180910390fd5b805f806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508073ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a350565b5f604051905090565b5f80fd5b5f80fd5b5f80fd5b5f80fd5b5f80fd5b5f8083601f8401126105c8576105c76105a7565b5b8235905067ffffffffffffffff8111156105e5576105e46105ab565b5b602083019150836020820283011115610601576106006105af565b5b9250929050565b5f806020838503121561061e5761061d61059f565b5b5f83013567ffffffffffffffff81111561063b5761063a6105a3565b5b610647858286016105b3565b92509250509250929050565b5f73ffffffffffffffffffffffffffffffffffffffff82169050919050565b5f819050919050565b5f61069561069061068b84610653565b610672565b610653565b9050919050565b5f6106a68261067b565b9050919050565b5f6106b78261069c565b9050919050565b6106c7816106ad565b82525050565b5f6020820190506106e05f8301846106be565b92915050565b5f6106f082610653565b9050919050565b610700816106e6565b82525050565b5f6020820190506107195f8301846106f7565b92915050565b5f81519050919050565b5f82825260208201905092915050565b5f819050602082019050919050565b5f819050919050565b61075a81610748565b82525050565b5f81519050919050565b5f82825260208201905092915050565b5f5b8381101561079757808201518184015260208101905061077c565b5f8484015250505050565b5f601f19601f8301169050919050565b5f6107bc82610760565b6107c6818561076a565b93506107d681856020860161077a565b6107df816107a2565b840191505092915050565b5f604083015f8301516107ff5f860182610751565b506020830151848203602086015261081782826107b2565b9150508091505092915050565b5f61082f83836107ea565b905092915050565b5f602082019050919050565b5f61084d8261071f565b6108578185610729565b93508360208202850161086985610739565b805f5b858110156108a457848403895281516108858582610824565b945061089083610837565b925060208a0199505060018101905061086c565b50829750879550505050505092915050565b5f6020820190508181035f8301526108ce8184610843565b905092915050565b6108df816106e6565b81146108e9575f80fd5b50565b5f813590506108fa816108d6565b92915050565b5f602082840312156109155761091461059f565b5b5f610922848285016108ec565b91505092915050565b5f819050919050565b61093d81610748565b8114610947575f80fd5b50565b5f8135905061095881610934565b92915050565b5f61096c602084018461094a565b905092915050565b5f80fd5b5f80fd5b5f80fd5b5f808335600160200384360303811261099c5761099b61097c565b5b83810192508235915060208301925067ffffffffffffffff8211156109c4576109c3610974565b5b6001820236038313156109da576109d9610978565b5b509250929050565b828183375f83830152505050565b5f6109fb838561076a565b9350610a088385846109e2565b610a11836107a2565b840190509392505050565b5f60408301610a2d5f84018461095e565b610a395f860182610751565b50610a476020840184610980565b8583036020870152610a5a8382846109f0565b925050508091505092915050565b5f610a738383610a1c565b905092915050565b5f82356001604003833603038112610a9657610a9561097c565b5b82810191505092915050565b5f602082019050919050565b5f610ab98385610729565b935083602084028501610acb8461092b565b805f5b87811015610b0e578484038952610ae58284610a7b565b610aef8582610a68565b9450610afa83610aa2565b925060208a01995050600181019050610ace565b50829750879450505050509392505050565b5f606082019050610b335f8301876106f7565b610b4060208301866106f7565b8181036040830152610b53818486610aae565b905095945050505050565b5f8115159050919050565b610b7281610b5e565b8114610b7c575f80fd5b50565b5f81519050610b8d81610b69565b92915050565b5f60208284031215610ba857610ba761059f565b5b5f610bb584828501610b7f565b91505092915050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52604160045260245ffd5b610bf4826107a2565b810181811067ffffffffffffffff82111715610c1357610c12610bbe565b5b80604052505050565b5f610c25610596565b9050610c318282610beb565b919050565b5f67ffffffffffffffff821115610c5057610c4f610bbe565b5b602082029050602081019050919050565b5f80fd5b5f80fd5b5f81519050610c7781610934565b92915050565b5f80fd5b5f67ffffffffffffffff821115610c9b57610c9a610bbe565b5b610ca4826107a2565b9050602081019050919050565b5f610cc3610cbe84610c81565b610c1c565b905082815260208101848484011115610cdf57610cde610c7d565b5b610cea84828561077a565b509392505050565b5f82601f830112610d0657610d056105a7565b5b8151610d16848260208601610cb1565b91505092915050565b5f60408284031215610d3457610d33610c61565b5b610d3e6040610c1c565b90505f610d4d84828501610c69565b5f83015250602082015167ffffffffffffffff811115610d7057610d6f610c65565b5b610d7c84828501610cf2565b60208301525092915050565b5f610d9a610d9584610c36565b610c1c565b90508083825260208201905060208402830185811115610dbd57610dbc6105af565b5b835b81811015610e0457805167ffffffffffffffff811115610de257610de16105a7565b5b808601610def8982610d1f565b85526020850194505050602081019050610dbf565b5050509392505050565b5f82601f830112610e2257610e216105a7565b5b8151610e32848260208601610d88565b91505092915050565b5f60208284031215610e5057610e4f61059f565b5b5f82015167ffffffffffffffff811115610e6d57610e6c6105a3565b5b610e7984828501610e0e565b91505092915050565b5f82825260208201905092915050565b7f554e415554484f52495a454400000000000000000000000000000000000000005f82015250565b5f610ec6600c83610e82565b9150610ed182610e92565b602082019050919050565b5f6020820190508181035f830152610ef381610eba565b9050919050565b7f46756e64732077696c6c206f6e6c792062652072656c656173656420746f20745f8201527f6865206f776e6572000000000000000000000000000000000000000000000000602082015250565b5f610f54602883610e82565b9150610f5f82610efa565b604082019050919050565b5f6020820190508181035f830152610f8181610f48565b9050919050565b5f606082019050610f9b5f8301866106f7565b610fa860208301856106f7565b8181036040830152610fba8184610843565b905094935050505056fea2646970667358221220947f5a106837206aa09fd1fc2499397792acf24d839aabb8afe91f87a5260f6364736f6c63430008140033", + Bin: "0x60a0604052734381dc2ab14285160c808659aee005d51255add773ffffffffffffffffffffffffffffffffffffffff1660809073ffffffffffffffffffffffffffffffffffffffff16815250348015610056575f80fd5b5033805f806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508073ffffffffffffffffffffffffffffffffffffffff165f73ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a350608051610ffa61011f5f395f8181610102015281816101a6015281816101ef01526103a90152610ffa5ff3fe608060405234801561000f575f80fd5b5060043610610060575f3560e01c80631ecc96521461006457806376cdb03b146100805780638da5cb5b1461009e578063af1d3f52146100bc578063ce1b088a146100da578063f2fde38b146100e4575b5f80fd5b61007e60048036038101906100799190610608565b610100565b005b6100886101a4565b60405161009591906106cd565b60405180910390f35b6100a66101c8565b6040516100b39190610706565b60405180910390f35b6100c46101eb565b6040516100d191906108b6565b60405180910390f35b6100e261028d565b005b6100fe60048036038101906100f99190610900565b61046d565b005b7f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff166384404811333085856040518563ffffffff1660e01b815260040161015f9493929190610b20565b6020604051808303815f875af115801561017b573d5f803e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061019f9190610b93565b505050565b7f000000000000000000000000000000000000000000000000000000000000000081565b5f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b60607f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff1663c53d6ce1306040518263ffffffff1660e01b81526004016102469190610706565b5f60405180830381865afa158015610260573d5f803e3d5ffd5b505050506040513d5f823e3d601f19601f820116820180604052508101906102889190610e3b565b905090565b5f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff161461031a576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161031190610edc565b60405180910390fd5b5f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16146103a7576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161039e90610f6a565b60405180910390fd5b7f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff166384404811305f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1661040c6101eb565b6040518463ffffffff1660e01b815260040161042a93929190610f88565b6020604051808303815f875af1158015610446573d5f803e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061046a9190610b93565b50565b5f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16146104fa576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016104f190610edc565b60405180910390fd5b805f806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508073ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a350565b5f604051905090565b5f80fd5b5f80fd5b5f80fd5b5f80fd5b5f80fd5b5f8083601f8401126105c8576105c76105a7565b5b8235905067ffffffffffffffff8111156105e5576105e46105ab565b5b602083019150836020820283011115610601576106006105af565b5b9250929050565b5f806020838503121561061e5761061d61059f565b5b5f83013567ffffffffffffffff81111561063b5761063a6105a3565b5b610647858286016105b3565b92509250509250929050565b5f73ffffffffffffffffffffffffffffffffffffffff82169050919050565b5f819050919050565b5f61069561069061068b84610653565b610672565b610653565b9050919050565b5f6106a68261067b565b9050919050565b5f6106b78261069c565b9050919050565b6106c7816106ad565b82525050565b5f6020820190506106e05f8301846106be565b92915050565b5f6106f082610653565b9050919050565b610700816106e6565b82525050565b5f6020820190506107195f8301846106f7565b92915050565b5f81519050919050565b5f82825260208201905092915050565b5f819050602082019050919050565b5f819050919050565b61075a81610748565b82525050565b5f81519050919050565b5f82825260208201905092915050565b5f5b8381101561079757808201518184015260208101905061077c565b5f8484015250505050565b5f601f19601f8301169050919050565b5f6107bc82610760565b6107c6818561076a565b93506107d681856020860161077a565b6107df816107a2565b840191505092915050565b5f604083015f8301516107ff5f860182610751565b506020830151848203602086015261081782826107b2565b9150508091505092915050565b5f61082f83836107ea565b905092915050565b5f602082019050919050565b5f61084d8261071f565b6108578185610729565b93508360208202850161086985610739565b805f5b858110156108a457848403895281516108858582610824565b945061089083610837565b925060208a0199505060018101905061086c565b50829750879550505050505092915050565b5f6020820190508181035f8301526108ce8184610843565b905092915050565b6108df816106e6565b81146108e9575f80fd5b50565b5f813590506108fa816108d6565b92915050565b5f602082840312156109155761091461059f565b5b5f610922848285016108ec565b91505092915050565b5f819050919050565b61093d81610748565b8114610947575f80fd5b50565b5f8135905061095881610934565b92915050565b5f61096c602084018461094a565b905092915050565b5f80fd5b5f80fd5b5f80fd5b5f808335600160200384360303811261099c5761099b61097c565b5b83810192508235915060208301925067ffffffffffffffff8211156109c4576109c3610974565b5b6001820236038313156109da576109d9610978565b5b509250929050565b828183375f83830152505050565b5f6109fb838561076a565b9350610a088385846109e2565b610a11836107a2565b840190509392505050565b5f60408301610a2d5f84018461095e565b610a395f860182610751565b50610a476020840184610980565b8583036020870152610a5a8382846109f0565b925050508091505092915050565b5f610a738383610a1c565b905092915050565b5f82356001604003833603038112610a9657610a9561097c565b5b82810191505092915050565b5f602082019050919050565b5f610ab98385610729565b935083602084028501610acb8461092b565b805f5b87811015610b0e578484038952610ae58284610a7b565b610aef8582610a68565b9450610afa83610aa2565b925060208a01995050600181019050610ace565b50829750879450505050509392505050565b5f606082019050610b335f8301876106f7565b610b4060208301866106f7565b8181036040830152610b53818486610aae565b905095945050505050565b5f8115159050919050565b610b7281610b5e565b8114610b7c575f80fd5b50565b5f81519050610b8d81610b69565b92915050565b5f60208284031215610ba857610ba761059f565b5b5f610bb584828501610b7f565b91505092915050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52604160045260245ffd5b610bf4826107a2565b810181811067ffffffffffffffff82111715610c1357610c12610bbe565b5b80604052505050565b5f610c25610596565b9050610c318282610beb565b919050565b5f67ffffffffffffffff821115610c5057610c4f610bbe565b5b602082029050602081019050919050565b5f80fd5b5f80fd5b5f81519050610c7781610934565b92915050565b5f80fd5b5f67ffffffffffffffff821115610c9b57610c9a610bbe565b5b610ca4826107a2565b9050602081019050919050565b5f610cc3610cbe84610c81565b610c1c565b905082815260208101848484011115610cdf57610cde610c7d565b5b610cea84828561077a565b509392505050565b5f82601f830112610d0657610d056105a7565b5b8151610d16848260208601610cb1565b91505092915050565b5f60408284031215610d3457610d33610c61565b5b610d3e6040610c1c565b90505f610d4d84828501610c69565b5f83015250602082015167ffffffffffffffff811115610d7057610d6f610c65565b5b610d7c84828501610cf2565b60208301525092915050565b5f610d9a610d9584610c36565b610c1c565b90508083825260208201905060208402830185811115610dbd57610dbc6105af565b5b835b81811015610e0457805167ffffffffffffffff811115610de257610de16105a7565b5b808601610def8982610d1f565b85526020850194505050602081019050610dbf565b5050509392505050565b5f82601f830112610e2257610e216105a7565b5b8151610e32848260208601610d88565b91505092915050565b5f60208284031215610e5057610e4f61059f565b5b5f82015167ffffffffffffffff811115610e6d57610e6c6105a3565b5b610e7984828501610e0e565b91505092915050565b5f82825260208201905092915050565b7f554e415554484f52495a454400000000000000000000000000000000000000005f82015250565b5f610ec6600c83610e82565b9150610ed182610e92565b602082019050919050565b5f6020820190508181035f830152610ef381610eba565b9050919050565b7f46756e64732077696c6c206f6e6c792062652072656c656173656420746f20745f8201527f6865206f776e6572000000000000000000000000000000000000000000000000602082015250565b5f610f54602883610e82565b9150610f5f82610efa565b604082019050919050565b5f6020820190508181035f830152610f8181610f48565b9050919050565b5f606082019050610f9b5f8301866106f7565b610fa860208301856106f7565b8181036040830152610fba8184610843565b905094935050505056fea26469706673582212201259ee58cbde08948d435fbbe8e134019ee83a57d4f5db66cfe843d826ba168a64736f6c63430008140033", } // FundraiserABI is the input ABI used to generate the binding from. diff --git a/contracts/bindings/testing/governance/governance_wrapper.abigen.go b/contracts/bindings/testing/governance/governance_wrapper.abigen.go index 572b8ebee..2e1cb0e25 100644 --- a/contracts/bindings/testing/governance/governance_wrapper.abigen.go +++ b/contracts/bindings/testing/governance/governance_wrapper.abigen.go @@ -63,7 +63,7 @@ type IGovernanceModuleTallyResult struct { // GovernanceWrapperMetaData contains all meta data concerning the GovernanceWrapper contract. var GovernanceWrapperMetaData = &bind.MetaData{ ABI: "[{\"inputs\":[{\"internalType\":\"address\",\"name\":\"_governanceModule\",\"type\":\"address\"}],\"stateMutability\":\"nonpayable\",\"type\":\"constructor\"},{\"inputs\":[],\"name\":\"ZeroAddress\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"bank\",\"outputs\":[{\"internalType\":\"contractIBankModule\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint64\",\"name\":\"proposalId\",\"type\":\"uint64\"}],\"name\":\"cancelProposal\",\"outputs\":[{\"internalType\":\"uint64\",\"name\":\"\",\"type\":\"uint64\"},{\"internalType\":\"uint64\",\"name\":\"\",\"type\":\"uint64\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint64\",\"name\":\"proposalId\",\"type\":\"uint64\"}],\"name\":\"getProposal\",\"outputs\":[{\"components\":[{\"internalType\":\"uint64\",\"name\":\"id\",\"type\":\"uint64\"},{\"internalType\":\"bytes\",\"name\":\"message\",\"type\":\"bytes\"},{\"internalType\":\"int32\",\"name\":\"status\",\"type\":\"int32\"},{\"components\":[{\"internalType\":\"string\",\"name\":\"yesCount\",\"type\":\"string\"},{\"internalType\":\"string\",\"name\":\"abstainCount\",\"type\":\"string\"},{\"internalType\":\"string\",\"name\":\"noCount\",\"type\":\"string\"},{\"internalType\":\"string\",\"name\":\"noWithVetoCount\",\"type\":\"string\"}],\"internalType\":\"structIGovernanceModule.TallyResult\",\"name\":\"finalTallyResult\",\"type\":\"tuple\"},{\"internalType\":\"uint64\",\"name\":\"submitTime\",\"type\":\"uint64\"},{\"internalType\":\"uint64\",\"name\":\"depositEndTime\",\"type\":\"uint64\"},{\"components\":[{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"},{\"internalType\":\"string\",\"name\":\"denom\",\"type\":\"string\"}],\"internalType\":\"structCosmos.Coin[]\",\"name\":\"totalDeposit\",\"type\":\"tuple[]\"},{\"internalType\":\"uint64\",\"name\":\"votingStartTime\",\"type\":\"uint64\"},{\"internalType\":\"uint64\",\"name\":\"votingEndTime\",\"type\":\"uint64\"},{\"internalType\":\"string\",\"name\":\"metadata\",\"type\":\"string\"},{\"internalType\":\"string\",\"name\":\"title\",\"type\":\"string\"},{\"internalType\":\"string\",\"name\":\"summary\",\"type\":\"string\"},{\"internalType\":\"string\",\"name\":\"proposer\",\"type\":\"string\"}],\"internalType\":\"structIGovernanceModule.Proposal\",\"name\":\"\",\"type\":\"tuple\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"int32\",\"name\":\"proposalStatus\",\"type\":\"int32\"}],\"name\":\"getProposals\",\"outputs\":[{\"components\":[{\"internalType\":\"uint64\",\"name\":\"id\",\"type\":\"uint64\"},{\"internalType\":\"bytes\",\"name\":\"message\",\"type\":\"bytes\"},{\"internalType\":\"int32\",\"name\":\"status\",\"type\":\"int32\"},{\"components\":[{\"internalType\":\"string\",\"name\":\"yesCount\",\"type\":\"string\"},{\"internalType\":\"string\",\"name\":\"abstainCount\",\"type\":\"string\"},{\"internalType\":\"string\",\"name\":\"noCount\",\"type\":\"string\"},{\"internalType\":\"string\",\"name\":\"noWithVetoCount\",\"type\":\"string\"}],\"internalType\":\"structIGovernanceModule.TallyResult\",\"name\":\"finalTallyResult\",\"type\":\"tuple\"},{\"internalType\":\"uint64\",\"name\":\"submitTime\",\"type\":\"uint64\"},{\"internalType\":\"uint64\",\"name\":\"depositEndTime\",\"type\":\"uint64\"},{\"components\":[{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"},{\"internalType\":\"string\",\"name\":\"denom\",\"type\":\"string\"}],\"internalType\":\"structCosmos.Coin[]\",\"name\":\"totalDeposit\",\"type\":\"tuple[]\"},{\"internalType\":\"uint64\",\"name\":\"votingStartTime\",\"type\":\"uint64\"},{\"internalType\":\"uint64\",\"name\":\"votingEndTime\",\"type\":\"uint64\"},{\"internalType\":\"string\",\"name\":\"metadata\",\"type\":\"string\"},{\"internalType\":\"string\",\"name\":\"title\",\"type\":\"string\"},{\"internalType\":\"string\",\"name\":\"summary\",\"type\":\"string\"},{\"internalType\":\"string\",\"name\":\"proposer\",\"type\":\"string\"}],\"internalType\":\"structIGovernanceModule.Proposal[]\",\"name\":\"\",\"type\":\"tuple[]\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"governanceModule\",\"outputs\":[{\"internalType\":\"contractIGovernanceModule\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes\",\"name\":\"proposal\",\"type\":\"bytes\"},{\"internalType\":\"bytes\",\"name\":\"message\",\"type\":\"bytes\"},{\"internalType\":\"string\",\"name\":\"denom\",\"type\":\"string\"},{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"}],\"name\":\"submit\",\"outputs\":[{\"internalType\":\"uint64\",\"name\":\"\",\"type\":\"uint64\"}],\"stateMutability\":\"payable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint64\",\"name\":\"proposalId\",\"type\":\"uint64\"},{\"internalType\":\"int32\",\"name\":\"option\",\"type\":\"int32\"},{\"internalType\":\"string\",\"name\":\"metadata\",\"type\":\"string\"}],\"name\":\"vote\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"stateMutability\":\"payable\",\"type\":\"receive\"}]", - Bin: "0x60a0604052734381dc2ab14285160c808659aee005d51255add773ffffffffffffffffffffffffffffffffffffffff1660809073ffffffffffffffffffffffffffffffffffffffff1681525034801562000057575f80fd5b5060405162001f1038038062001f1083398181016040528101906200007d91906200018e565b5f73ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1603620000e3576040517fd92e233d00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b805f806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050620001be565b5f80fd5b5f73ffffffffffffffffffffffffffffffffffffffff82169050919050565b5f62000158826200012d565b9050919050565b6200016a816200014c565b811462000175575f80fd5b50565b5f8151905062000188816200015f565b92915050565b5f60208284031215620001a657620001a562000129565b5b5f620001b58482850162000178565b91505092915050565b608051611d32620001de5f395f818161036101526105b30152611d325ff3fe608060405260043610610073575f3560e01c806376cdb03b1161004d57806376cdb03b14610121578063b5828df21461014b578063f1610a2814610187578063fbab7815146101c35761007a565b806319f7a0fb1461007e5780632b0a7032146100ba57806337a9a59e146100e45761007a565b3661007a57005b5f80fd5b348015610089575f80fd5b506100a4600480360381019061009f9190610999565b6101f3565b6040516100b19190610a1f565b60405180910390f35b3480156100c5575f80fd5b506100ce61029a565b6040516100db9190610ab2565b60405180910390f35b3480156100ef575f80fd5b5061010a60048036038101906101059190610acb565b6102bd565b604051610118929190610b05565b60405180910390f35b34801561012c575f80fd5b5061013561035f565b6040516101429190610b4c565b60405180910390f35b348015610156575f80fd5b50610171600480360381019061016c9190610b65565b610383565b60405161017e9190610ff7565b60405180910390f35b348015610192575f80fd5b506101ad60048036038101906101a89190610acb565b610426565b6040516101ba9190611157565b60405180910390f35b6101dd60048036038101906101d89190611253565b6104cf565b6040516101ea9190611317565b60405180910390f35b5f805f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166319f7a0fb8585856040518463ffffffff1660e01b815260040161025193929190611387565b6020604051808303815f875af115801561026d573d5f803e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061029191906113ed565b90509392505050565b5f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b5f805f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166337a9a59e846040518263ffffffff1660e01b81526004016103179190611317565b60408051808303815f875af1158015610332573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610356919061142c565b91509150915091565b7f000000000000000000000000000000000000000000000000000000000000000081565b60605f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663b5828df2836040518263ffffffff1660e01b81526004016103dd919061146a565b5f60405180830381865afa1580156103f7573d5f803e3d5ffd5b505050506040513d5f823e3d601f19601f8201168201806040525081019061041f9190611ac2565b9050919050565b61042e6106fb565b5f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663f1610a28836040518263ffffffff1660e01b81526004016104869190611317565b5f60405180830381865afa1580156104a0573d5f803e3d5ffd5b505050506040513d5f823e3d601f19601f820116820180604052508101906104c89190611b09565b9050919050565b5f80600167ffffffffffffffff8111156104ec576104eb610875565b5b60405190808252806020026020018201604052801561052557816020015b610512610798565b81526020019060019003908161050a5790505b50905084848080601f0160208091040260200160405190810160405280939291908181526020018383808284375f81840152601f19601f82011690508083019250505050505050815f8151811061057f5761057e611b50565b5b60200260200101516020018190525082815f815181106105a2576105a1611b50565b5b60200260200101515f0181815250507f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff1663844048113330846040518463ffffffff1660e01b815260040161060e93929190611c20565b6020604051808303815f875af115801561062a573d5f803e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061064e91906113ed565b505f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663474d7f358a8a8a8a6040518563ffffffff1660e01b81526004016106ad9493929190611c98565b6020604051808303815f875af11580156106c9573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906106ed9190611cd1565b915050979650505050505050565b604051806101a001604052805f67ffffffffffffffff168152602001606081526020015f60030b815260200161072f6107b1565b81526020015f67ffffffffffffffff1681526020015f67ffffffffffffffff168152602001606081526020015f67ffffffffffffffff1681526020015f67ffffffffffffffff168152602001606081526020016060815260200160608152602001606081525090565b60405180604001604052805f8152602001606081525090565b6040518060800160405280606081526020016060815260200160608152602001606081525090565b5f604051905090565b5f80fd5b5f80fd5b5f67ffffffffffffffff82169050919050565b610806816107ea565b8114610810575f80fd5b50565b5f81359050610821816107fd565b92915050565b5f8160030b9050919050565b61083c81610827565b8114610846575f80fd5b50565b5f8135905061085781610833565b92915050565b5f80fd5b5f80fd5b5f601f19601f8301169050919050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52604160045260245ffd5b6108ab82610865565b810181811067ffffffffffffffff821117156108ca576108c9610875565b5b80604052505050565b5f6108dc6107d9565b90506108e882826108a2565b919050565b5f67ffffffffffffffff82111561090757610906610875565b5b61091082610865565b9050602081019050919050565b828183375f83830152505050565b5f61093d610938846108ed565b6108d3565b90508281526020810184848401111561095957610958610861565b5b61096484828561091d565b509392505050565b5f82601f8301126109805761097f61085d565b5b813561099084826020860161092b565b91505092915050565b5f805f606084860312156109b0576109af6107e2565b5b5f6109bd86828701610813565b93505060206109ce86828701610849565b925050604084013567ffffffffffffffff8111156109ef576109ee6107e6565b5b6109fb8682870161096c565b9150509250925092565b5f8115159050919050565b610a1981610a05565b82525050565b5f602082019050610a325f830184610a10565b92915050565b5f73ffffffffffffffffffffffffffffffffffffffff82169050919050565b5f819050919050565b5f610a7a610a75610a7084610a38565b610a57565b610a38565b9050919050565b5f610a8b82610a60565b9050919050565b5f610a9c82610a81565b9050919050565b610aac81610a92565b82525050565b5f602082019050610ac55f830184610aa3565b92915050565b5f60208284031215610ae057610adf6107e2565b5b5f610aed84828501610813565b91505092915050565b610aff816107ea565b82525050565b5f604082019050610b185f830185610af6565b610b256020830184610af6565b9392505050565b5f610b3682610a81565b9050919050565b610b4681610b2c565b82525050565b5f602082019050610b5f5f830184610b3d565b92915050565b5f60208284031215610b7a57610b796107e2565b5b5f610b8784828501610849565b91505092915050565b5f81519050919050565b5f82825260208201905092915050565b5f819050602082019050919050565b610bc2816107ea565b82525050565b5f81519050919050565b5f82825260208201905092915050565b5f5b83811015610bff578082015181840152602081019050610be4565b5f8484015250505050565b5f610c1482610bc8565b610c1e8185610bd2565b9350610c2e818560208601610be2565b610c3781610865565b840191505092915050565b610c4b81610827565b82525050565b5f81519050919050565b5f82825260208201905092915050565b5f610c7582610c51565b610c7f8185610c5b565b9350610c8f818560208601610be2565b610c9881610865565b840191505092915050565b5f608083015f8301518482035f860152610cbd8282610c6b565b91505060208301518482036020860152610cd78282610c6b565b91505060408301518482036040860152610cf18282610c6b565b91505060608301518482036060860152610d0b8282610c6b565b9150508091505092915050565b5f81519050919050565b5f82825260208201905092915050565b5f819050602082019050919050565b5f819050919050565b610d5381610d41565b82525050565b5f604083015f830151610d6e5f860182610d4a565b5060208301518482036020860152610d868282610c6b565b9150508091505092915050565b5f610d9e8383610d59565b905092915050565b5f602082019050919050565b5f610dbc82610d18565b610dc68185610d22565b935083602082028501610dd885610d32565b805f5b85811015610e135784840389528151610df48582610d93565b9450610dff83610da6565b925060208a01995050600181019050610ddb565b50829750879550505050505092915050565b5f6101a083015f830151610e3b5f860182610bb9565b5060208301518482036020860152610e538282610c0a565b9150506040830151610e686040860182610c42565b5060608301518482036060860152610e808282610ca3565b9150506080830151610e956080860182610bb9565b5060a0830151610ea860a0860182610bb9565b5060c083015184820360c0860152610ec08282610db2565b91505060e0830151610ed560e0860182610bb9565b50610100830151610eea610100860182610bb9565b50610120830151848203610120860152610f048282610c6b565b915050610140830151848203610140860152610f208282610c6b565b915050610160830151848203610160860152610f3c8282610c6b565b915050610180830151848203610180860152610f588282610c6b565b9150508091505092915050565b5f610f708383610e25565b905092915050565b5f602082019050919050565b5f610f8e82610b90565b610f988185610b9a565b935083602082028501610faa85610baa565b805f5b85811015610fe55784840389528151610fc68582610f65565b9450610fd183610f78565b925060208a01995050600181019050610fad565b50829750879550505050505092915050565b5f6020820190508181035f83015261100f8184610f84565b905092915050565b5f6101a083015f83015161102d5f860182610bb9565b50602083015184820360208601526110458282610c0a565b915050604083015161105a6040860182610c42565b50606083015184820360608601526110728282610ca3565b91505060808301516110876080860182610bb9565b5060a083015161109a60a0860182610bb9565b5060c083015184820360c08601526110b28282610db2565b91505060e08301516110c760e0860182610bb9565b506101008301516110dc610100860182610bb9565b506101208301518482036101208601526110f68282610c6b565b9150506101408301518482036101408601526111128282610c6b565b91505061016083015184820361016086015261112e8282610c6b565b91505061018083015184820361018086015261114a8282610c6b565b9150508091505092915050565b5f6020820190508181035f83015261116f8184611017565b905092915050565b5f80fd5b5f80fd5b5f8083601f8401126111945761119361085d565b5b8235905067ffffffffffffffff8111156111b1576111b0611177565b5b6020830191508360018202830111156111cd576111cc61117b565b5b9250929050565b5f8083601f8401126111e9576111e861085d565b5b8235905067ffffffffffffffff81111561120657611205611177565b5b6020830191508360018202830111156112225761122161117b565b5b9250929050565b61123281610d41565b811461123c575f80fd5b50565b5f8135905061124d81611229565b92915050565b5f805f805f805f6080888a03121561126e5761126d6107e2565b5b5f88013567ffffffffffffffff81111561128b5761128a6107e6565b5b6112978a828b0161117f565b9750975050602088013567ffffffffffffffff8111156112ba576112b96107e6565b5b6112c68a828b0161117f565b9550955050604088013567ffffffffffffffff8111156112e9576112e86107e6565b5b6112f58a828b016111d4565b935093505060606113088a828b0161123f565b91505092959891949750929550565b5f60208201905061132a5f830184610af6565b92915050565b61133981610827565b82525050565b5f82825260208201905092915050565b5f61135982610c51565b611363818561133f565b9350611373818560208601610be2565b61137c81610865565b840191505092915050565b5f60608201905061139a5f830186610af6565b6113a76020830185611330565b81810360408301526113b9818461134f565b9050949350505050565b6113cc81610a05565b81146113d6575f80fd5b50565b5f815190506113e7816113c3565b92915050565b5f60208284031215611402576114016107e2565b5b5f61140f848285016113d9565b91505092915050565b5f81519050611426816107fd565b92915050565b5f8060408385031215611442576114416107e2565b5b5f61144f85828601611418565b925050602061146085828601611418565b9150509250929050565b5f60208201905061147d5f830184611330565b92915050565b5f67ffffffffffffffff82111561149d5761149c610875565b5b602082029050602081019050919050565b5f80fd5b5f80fd5b5f67ffffffffffffffff8211156114d0576114cf610875565b5b6114d982610865565b9050602081019050919050565b5f6114f86114f3846114b6565b6108d3565b90508281526020810184848401111561151457611513610861565b5b61151f848285610be2565b509392505050565b5f82601f83011261153b5761153a61085d565b5b815161154b8482602086016114e6565b91505092915050565b5f8151905061156281610833565b92915050565b5f61157a611575846108ed565b6108d3565b90508281526020810184848401111561159657611595610861565b5b6115a1848285610be2565b509392505050565b5f82601f8301126115bd576115bc61085d565b5b81516115cd848260208601611568565b91505092915050565b5f608082840312156115eb576115ea6114ae565b5b6115f560806108d3565b90505f82015167ffffffffffffffff811115611614576116136114b2565b5b611620848285016115a9565b5f83015250602082015167ffffffffffffffff811115611643576116426114b2565b5b61164f848285016115a9565b602083015250604082015167ffffffffffffffff811115611673576116726114b2565b5b61167f848285016115a9565b604083015250606082015167ffffffffffffffff8111156116a3576116a26114b2565b5b6116af848285016115a9565b60608301525092915050565b5f67ffffffffffffffff8211156116d5576116d4610875565b5b602082029050602081019050919050565b5f815190506116f481611229565b92915050565b5f6040828403121561170f5761170e6114ae565b5b61171960406108d3565b90505f611728848285016116e6565b5f83015250602082015167ffffffffffffffff81111561174b5761174a6114b2565b5b611757848285016115a9565b60208301525092915050565b5f611775611770846116bb565b6108d3565b905080838252602082019050602084028301858111156117985761179761117b565b5b835b818110156117df57805167ffffffffffffffff8111156117bd576117bc61085d565b5b8086016117ca89826116fa565b8552602085019450505060208101905061179a565b5050509392505050565b5f82601f8301126117fd576117fc61085d565b5b815161180d848260208601611763565b91505092915050565b5f6101a0828403121561182c5761182b6114ae565b5b6118376101a06108d3565b90505f61184684828501611418565b5f83015250602082015167ffffffffffffffff811115611869576118686114b2565b5b61187584828501611527565b602083015250604061188984828501611554565b604083015250606082015167ffffffffffffffff8111156118ad576118ac6114b2565b5b6118b9848285016115d6565b60608301525060806118cd84828501611418565b60808301525060a06118e184828501611418565b60a08301525060c082015167ffffffffffffffff811115611905576119046114b2565b5b611911848285016117e9565b60c08301525060e061192584828501611418565b60e08301525061010061193a84828501611418565b6101008301525061012082015167ffffffffffffffff8111156119605761195f6114b2565b5b61196c848285016115a9565b6101208301525061014082015167ffffffffffffffff811115611992576119916114b2565b5b61199e848285016115a9565b6101408301525061016082015167ffffffffffffffff8111156119c4576119c36114b2565b5b6119d0848285016115a9565b6101608301525061018082015167ffffffffffffffff8111156119f6576119f56114b2565b5b611a02848285016115a9565b6101808301525092915050565b5f611a21611a1c84611483565b6108d3565b90508083825260208201905060208402830185811115611a4457611a4361117b565b5b835b81811015611a8b57805167ffffffffffffffff811115611a6957611a6861085d565b5b808601611a768982611816565b85526020850194505050602081019050611a46565b5050509392505050565b5f82601f830112611aa957611aa861085d565b5b8151611ab9848260208601611a0f565b91505092915050565b5f60208284031215611ad757611ad66107e2565b5b5f82015167ffffffffffffffff811115611af457611af36107e6565b5b611b0084828501611a95565b91505092915050565b5f60208284031215611b1e57611b1d6107e2565b5b5f82015167ffffffffffffffff811115611b3b57611b3a6107e6565b5b611b4784828501611816565b91505092915050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52603260045260245ffd5b5f611b8782610a38565b9050919050565b611b9781611b7d565b82525050565b5f82825260208201905092915050565b5f611bb782610d18565b611bc18185611b9d565b935083602082028501611bd385610d32565b805f5b85811015611c0e5784840389528151611bef8582610d93565b9450611bfa83610da6565b925060208a01995050600181019050611bd6565b50829750879550505050505092915050565b5f606082019050611c335f830186611b8e565b611c406020830185611b8e565b8181036040830152611c528184611bad565b9050949350505050565b5f82825260208201905092915050565b5f611c778385611c5c565b9350611c8483858461091d565b611c8d83610865565b840190509392505050565b5f6040820190508181035f830152611cb1818688611c6c565b90508181036020830152611cc6818486611c6c565b905095945050505050565b5f60208284031215611ce657611ce56107e2565b5b5f611cf384828501611418565b9150509291505056fea26469706673582212202976813d6c239b807a69fd0930b36e6fa71a7e8de353cda79fbb644a301769b664736f6c63430008140033", + Bin: "0x60a0604052734381dc2ab14285160c808659aee005d51255add773ffffffffffffffffffffffffffffffffffffffff1660809073ffffffffffffffffffffffffffffffffffffffff1681525034801562000057575f80fd5b5060405162001f1038038062001f1083398181016040528101906200007d91906200018e565b5f73ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1603620000e3576040517fd92e233d00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b805f806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050620001be565b5f80fd5b5f73ffffffffffffffffffffffffffffffffffffffff82169050919050565b5f62000158826200012d565b9050919050565b6200016a816200014c565b811462000175575f80fd5b50565b5f8151905062000188816200015f565b92915050565b5f60208284031215620001a657620001a562000129565b5b5f620001b58482850162000178565b91505092915050565b608051611d32620001de5f395f818161036101526105b30152611d325ff3fe608060405260043610610073575f3560e01c806376cdb03b1161004d57806376cdb03b14610121578063b5828df21461014b578063f1610a2814610187578063fbab7815146101c35761007a565b806319f7a0fb1461007e5780632b0a7032146100ba57806337a9a59e146100e45761007a565b3661007a57005b5f80fd5b348015610089575f80fd5b506100a4600480360381019061009f9190610999565b6101f3565b6040516100b19190610a1f565b60405180910390f35b3480156100c5575f80fd5b506100ce61029a565b6040516100db9190610ab2565b60405180910390f35b3480156100ef575f80fd5b5061010a60048036038101906101059190610acb565b6102bd565b604051610118929190610b05565b60405180910390f35b34801561012c575f80fd5b5061013561035f565b6040516101429190610b4c565b60405180910390f35b348015610156575f80fd5b50610171600480360381019061016c9190610b65565b610383565b60405161017e9190610ff7565b60405180910390f35b348015610192575f80fd5b506101ad60048036038101906101a89190610acb565b610426565b6040516101ba9190611157565b60405180910390f35b6101dd60048036038101906101d89190611253565b6104cf565b6040516101ea9190611317565b60405180910390f35b5f805f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166319f7a0fb8585856040518463ffffffff1660e01b815260040161025193929190611387565b6020604051808303815f875af115801561026d573d5f803e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061029191906113ed565b90509392505050565b5f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b5f805f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166337a9a59e846040518263ffffffff1660e01b81526004016103179190611317565b60408051808303815f875af1158015610332573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610356919061142c565b91509150915091565b7f000000000000000000000000000000000000000000000000000000000000000081565b60605f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663b5828df2836040518263ffffffff1660e01b81526004016103dd919061146a565b5f60405180830381865afa1580156103f7573d5f803e3d5ffd5b505050506040513d5f823e3d601f19601f8201168201806040525081019061041f9190611ac2565b9050919050565b61042e6106fb565b5f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663f1610a28836040518263ffffffff1660e01b81526004016104869190611317565b5f60405180830381865afa1580156104a0573d5f803e3d5ffd5b505050506040513d5f823e3d601f19601f820116820180604052508101906104c89190611b09565b9050919050565b5f80600167ffffffffffffffff8111156104ec576104eb610875565b5b60405190808252806020026020018201604052801561052557816020015b610512610798565b81526020019060019003908161050a5790505b50905084848080601f0160208091040260200160405190810160405280939291908181526020018383808284375f81840152601f19601f82011690508083019250505050505050815f8151811061057f5761057e611b50565b5b60200260200101516020018190525082815f815181106105a2576105a1611b50565b5b60200260200101515f0181815250507f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff1663844048113330846040518463ffffffff1660e01b815260040161060e93929190611c20565b6020604051808303815f875af115801561062a573d5f803e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061064e91906113ed565b505f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663474d7f358a8a8a8a6040518563ffffffff1660e01b81526004016106ad9493929190611c98565b6020604051808303815f875af11580156106c9573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906106ed9190611cd1565b915050979650505050505050565b604051806101a001604052805f67ffffffffffffffff168152602001606081526020015f60030b815260200161072f6107b1565b81526020015f67ffffffffffffffff1681526020015f67ffffffffffffffff168152602001606081526020015f67ffffffffffffffff1681526020015f67ffffffffffffffff168152602001606081526020016060815260200160608152602001606081525090565b60405180604001604052805f8152602001606081525090565b6040518060800160405280606081526020016060815260200160608152602001606081525090565b5f604051905090565b5f80fd5b5f80fd5b5f67ffffffffffffffff82169050919050565b610806816107ea565b8114610810575f80fd5b50565b5f81359050610821816107fd565b92915050565b5f8160030b9050919050565b61083c81610827565b8114610846575f80fd5b50565b5f8135905061085781610833565b92915050565b5f80fd5b5f80fd5b5f601f19601f8301169050919050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52604160045260245ffd5b6108ab82610865565b810181811067ffffffffffffffff821117156108ca576108c9610875565b5b80604052505050565b5f6108dc6107d9565b90506108e882826108a2565b919050565b5f67ffffffffffffffff82111561090757610906610875565b5b61091082610865565b9050602081019050919050565b828183375f83830152505050565b5f61093d610938846108ed565b6108d3565b90508281526020810184848401111561095957610958610861565b5b61096484828561091d565b509392505050565b5f82601f8301126109805761097f61085d565b5b813561099084826020860161092b565b91505092915050565b5f805f606084860312156109b0576109af6107e2565b5b5f6109bd86828701610813565b93505060206109ce86828701610849565b925050604084013567ffffffffffffffff8111156109ef576109ee6107e6565b5b6109fb8682870161096c565b9150509250925092565b5f8115159050919050565b610a1981610a05565b82525050565b5f602082019050610a325f830184610a10565b92915050565b5f73ffffffffffffffffffffffffffffffffffffffff82169050919050565b5f819050919050565b5f610a7a610a75610a7084610a38565b610a57565b610a38565b9050919050565b5f610a8b82610a60565b9050919050565b5f610a9c82610a81565b9050919050565b610aac81610a92565b82525050565b5f602082019050610ac55f830184610aa3565b92915050565b5f60208284031215610ae057610adf6107e2565b5b5f610aed84828501610813565b91505092915050565b610aff816107ea565b82525050565b5f604082019050610b185f830185610af6565b610b256020830184610af6565b9392505050565b5f610b3682610a81565b9050919050565b610b4681610b2c565b82525050565b5f602082019050610b5f5f830184610b3d565b92915050565b5f60208284031215610b7a57610b796107e2565b5b5f610b8784828501610849565b91505092915050565b5f81519050919050565b5f82825260208201905092915050565b5f819050602082019050919050565b610bc2816107ea565b82525050565b5f81519050919050565b5f82825260208201905092915050565b5f5b83811015610bff578082015181840152602081019050610be4565b5f8484015250505050565b5f610c1482610bc8565b610c1e8185610bd2565b9350610c2e818560208601610be2565b610c3781610865565b840191505092915050565b610c4b81610827565b82525050565b5f81519050919050565b5f82825260208201905092915050565b5f610c7582610c51565b610c7f8185610c5b565b9350610c8f818560208601610be2565b610c9881610865565b840191505092915050565b5f608083015f8301518482035f860152610cbd8282610c6b565b91505060208301518482036020860152610cd78282610c6b565b91505060408301518482036040860152610cf18282610c6b565b91505060608301518482036060860152610d0b8282610c6b565b9150508091505092915050565b5f81519050919050565b5f82825260208201905092915050565b5f819050602082019050919050565b5f819050919050565b610d5381610d41565b82525050565b5f604083015f830151610d6e5f860182610d4a565b5060208301518482036020860152610d868282610c6b565b9150508091505092915050565b5f610d9e8383610d59565b905092915050565b5f602082019050919050565b5f610dbc82610d18565b610dc68185610d22565b935083602082028501610dd885610d32565b805f5b85811015610e135784840389528151610df48582610d93565b9450610dff83610da6565b925060208a01995050600181019050610ddb565b50829750879550505050505092915050565b5f6101a083015f830151610e3b5f860182610bb9565b5060208301518482036020860152610e538282610c0a565b9150506040830151610e686040860182610c42565b5060608301518482036060860152610e808282610ca3565b9150506080830151610e956080860182610bb9565b5060a0830151610ea860a0860182610bb9565b5060c083015184820360c0860152610ec08282610db2565b91505060e0830151610ed560e0860182610bb9565b50610100830151610eea610100860182610bb9565b50610120830151848203610120860152610f048282610c6b565b915050610140830151848203610140860152610f208282610c6b565b915050610160830151848203610160860152610f3c8282610c6b565b915050610180830151848203610180860152610f588282610c6b565b9150508091505092915050565b5f610f708383610e25565b905092915050565b5f602082019050919050565b5f610f8e82610b90565b610f988185610b9a565b935083602082028501610faa85610baa565b805f5b85811015610fe55784840389528151610fc68582610f65565b9450610fd183610f78565b925060208a01995050600181019050610fad565b50829750879550505050505092915050565b5f6020820190508181035f83015261100f8184610f84565b905092915050565b5f6101a083015f83015161102d5f860182610bb9565b50602083015184820360208601526110458282610c0a565b915050604083015161105a6040860182610c42565b50606083015184820360608601526110728282610ca3565b91505060808301516110876080860182610bb9565b5060a083015161109a60a0860182610bb9565b5060c083015184820360c08601526110b28282610db2565b91505060e08301516110c760e0860182610bb9565b506101008301516110dc610100860182610bb9565b506101208301518482036101208601526110f68282610c6b565b9150506101408301518482036101408601526111128282610c6b565b91505061016083015184820361016086015261112e8282610c6b565b91505061018083015184820361018086015261114a8282610c6b565b9150508091505092915050565b5f6020820190508181035f83015261116f8184611017565b905092915050565b5f80fd5b5f80fd5b5f8083601f8401126111945761119361085d565b5b8235905067ffffffffffffffff8111156111b1576111b0611177565b5b6020830191508360018202830111156111cd576111cc61117b565b5b9250929050565b5f8083601f8401126111e9576111e861085d565b5b8235905067ffffffffffffffff81111561120657611205611177565b5b6020830191508360018202830111156112225761122161117b565b5b9250929050565b61123281610d41565b811461123c575f80fd5b50565b5f8135905061124d81611229565b92915050565b5f805f805f805f6080888a03121561126e5761126d6107e2565b5b5f88013567ffffffffffffffff81111561128b5761128a6107e6565b5b6112978a828b0161117f565b9750975050602088013567ffffffffffffffff8111156112ba576112b96107e6565b5b6112c68a828b0161117f565b9550955050604088013567ffffffffffffffff8111156112e9576112e86107e6565b5b6112f58a828b016111d4565b935093505060606113088a828b0161123f565b91505092959891949750929550565b5f60208201905061132a5f830184610af6565b92915050565b61133981610827565b82525050565b5f82825260208201905092915050565b5f61135982610c51565b611363818561133f565b9350611373818560208601610be2565b61137c81610865565b840191505092915050565b5f60608201905061139a5f830186610af6565b6113a76020830185611330565b81810360408301526113b9818461134f565b9050949350505050565b6113cc81610a05565b81146113d6575f80fd5b50565b5f815190506113e7816113c3565b92915050565b5f60208284031215611402576114016107e2565b5b5f61140f848285016113d9565b91505092915050565b5f81519050611426816107fd565b92915050565b5f8060408385031215611442576114416107e2565b5b5f61144f85828601611418565b925050602061146085828601611418565b9150509250929050565b5f60208201905061147d5f830184611330565b92915050565b5f67ffffffffffffffff82111561149d5761149c610875565b5b602082029050602081019050919050565b5f80fd5b5f80fd5b5f67ffffffffffffffff8211156114d0576114cf610875565b5b6114d982610865565b9050602081019050919050565b5f6114f86114f3846114b6565b6108d3565b90508281526020810184848401111561151457611513610861565b5b61151f848285610be2565b509392505050565b5f82601f83011261153b5761153a61085d565b5b815161154b8482602086016114e6565b91505092915050565b5f8151905061156281610833565b92915050565b5f61157a611575846108ed565b6108d3565b90508281526020810184848401111561159657611595610861565b5b6115a1848285610be2565b509392505050565b5f82601f8301126115bd576115bc61085d565b5b81516115cd848260208601611568565b91505092915050565b5f608082840312156115eb576115ea6114ae565b5b6115f560806108d3565b90505f82015167ffffffffffffffff811115611614576116136114b2565b5b611620848285016115a9565b5f83015250602082015167ffffffffffffffff811115611643576116426114b2565b5b61164f848285016115a9565b602083015250604082015167ffffffffffffffff811115611673576116726114b2565b5b61167f848285016115a9565b604083015250606082015167ffffffffffffffff8111156116a3576116a26114b2565b5b6116af848285016115a9565b60608301525092915050565b5f67ffffffffffffffff8211156116d5576116d4610875565b5b602082029050602081019050919050565b5f815190506116f481611229565b92915050565b5f6040828403121561170f5761170e6114ae565b5b61171960406108d3565b90505f611728848285016116e6565b5f83015250602082015167ffffffffffffffff81111561174b5761174a6114b2565b5b611757848285016115a9565b60208301525092915050565b5f611775611770846116bb565b6108d3565b905080838252602082019050602084028301858111156117985761179761117b565b5b835b818110156117df57805167ffffffffffffffff8111156117bd576117bc61085d565b5b8086016117ca89826116fa565b8552602085019450505060208101905061179a565b5050509392505050565b5f82601f8301126117fd576117fc61085d565b5b815161180d848260208601611763565b91505092915050565b5f6101a0828403121561182c5761182b6114ae565b5b6118376101a06108d3565b90505f61184684828501611418565b5f83015250602082015167ffffffffffffffff811115611869576118686114b2565b5b61187584828501611527565b602083015250604061188984828501611554565b604083015250606082015167ffffffffffffffff8111156118ad576118ac6114b2565b5b6118b9848285016115d6565b60608301525060806118cd84828501611418565b60808301525060a06118e184828501611418565b60a08301525060c082015167ffffffffffffffff811115611905576119046114b2565b5b611911848285016117e9565b60c08301525060e061192584828501611418565b60e08301525061010061193a84828501611418565b6101008301525061012082015167ffffffffffffffff8111156119605761195f6114b2565b5b61196c848285016115a9565b6101208301525061014082015167ffffffffffffffff811115611992576119916114b2565b5b61199e848285016115a9565b6101408301525061016082015167ffffffffffffffff8111156119c4576119c36114b2565b5b6119d0848285016115a9565b6101608301525061018082015167ffffffffffffffff8111156119f6576119f56114b2565b5b611a02848285016115a9565b6101808301525092915050565b5f611a21611a1c84611483565b6108d3565b90508083825260208201905060208402830185811115611a4457611a4361117b565b5b835b81811015611a8b57805167ffffffffffffffff811115611a6957611a6861085d565b5b808601611a768982611816565b85526020850194505050602081019050611a46565b5050509392505050565b5f82601f830112611aa957611aa861085d565b5b8151611ab9848260208601611a0f565b91505092915050565b5f60208284031215611ad757611ad66107e2565b5b5f82015167ffffffffffffffff811115611af457611af36107e6565b5b611b0084828501611a95565b91505092915050565b5f60208284031215611b1e57611b1d6107e2565b5b5f82015167ffffffffffffffff811115611b3b57611b3a6107e6565b5b611b4784828501611816565b91505092915050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52603260045260245ffd5b5f611b8782610a38565b9050919050565b611b9781611b7d565b82525050565b5f82825260208201905092915050565b5f611bb782610d18565b611bc18185611b9d565b935083602082028501611bd385610d32565b805f5b85811015611c0e5784840389528151611bef8582610d93565b9450611bfa83610da6565b925060208a01995050600181019050611bd6565b50829750879550505050505092915050565b5f606082019050611c335f830186611b8e565b611c406020830185611b8e565b8181036040830152611c528184611bad565b9050949350505050565b5f82825260208201905092915050565b5f611c778385611c5c565b9350611c8483858461091d565b611c8d83610865565b840190509392505050565b5f6040820190508181035f830152611cb1818688611c6c565b90508181036020830152611cc6818486611c6c565b905095945050505050565b5f60208284031215611ce657611ce56107e2565b5b5f611cf384828501611418565b9150509291505056fea2646970667358221220e6655022bf8940351a045610492096eed0036cc80c82459828d8485b39dd947d64736f6c63430008140033", } // GovernanceWrapperABI is the input ABI used to generate the binding from. diff --git a/contracts/bindings/testing/liquid_staking.abigen.go b/contracts/bindings/testing/liquid_staking.abigen.go index 1d31c66c1..fae71003e 100644 --- a/contracts/bindings/testing/liquid_staking.abigen.go +++ b/contracts/bindings/testing/liquid_staking.abigen.go @@ -32,7 +32,7 @@ var ( // LiquidStakingMetaData contains all meta data concerning the LiquidStaking contract. var LiquidStakingMetaData = &bind.MetaData{ ABI: "[{\"inputs\":[{\"internalType\":\"string\",\"name\":\"_name\",\"type\":\"string\"},{\"internalType\":\"string\",\"name\":\"_symbol\",\"type\":\"string\"}],\"stateMutability\":\"nonpayable\",\"type\":\"constructor\"},{\"inputs\":[],\"name\":\"InvalidValue\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"ZeroAddress\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"ZeroAmount\",\"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\":\"bytes\",\"name\":\"data\",\"type\":\"bytes\"}],\"name\":\"Data\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"bool\",\"name\":\"success\",\"type\":\"bool\"}],\"name\":\"Success\",\"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\":\"DOMAIN_SEPARATOR\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"name\":\"allowance\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"spender\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"}],\"name\":\"approve\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"name\":\"balanceOf\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"decimals\",\"outputs\":[{\"internalType\":\"uint8\",\"name\":\"\",\"type\":\"uint8\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"}],\"name\":\"delegate\",\"outputs\":[],\"stateMutability\":\"payable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"getActiveValidators\",\"outputs\":[{\"internalType\":\"address[]\",\"name\":\"\",\"type\":\"address[]\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"name\",\"outputs\":[{\"internalType\":\"string\",\"name\":\"\",\"type\":\"string\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"name\":\"nonces\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"spender\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"value\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"deadline\",\"type\":\"uint256\"},{\"internalType\":\"uint8\",\"name\":\"v\",\"type\":\"uint8\"},{\"internalType\":\"bytes32\",\"name\":\"r\",\"type\":\"bytes32\"},{\"internalType\":\"bytes32\",\"name\":\"s\",\"type\":\"bytes32\"}],\"name\":\"permit\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"staking\",\"outputs\":[{\"internalType\":\"contractIStakingModule\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"symbol\",\"outputs\":[{\"internalType\":\"string\",\"name\":\"\",\"type\":\"string\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"validatorAddress\",\"type\":\"address\"}],\"name\":\"totalDelegated\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"}],\"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\":\"amount\",\"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\":\"amount\",\"type\":\"uint256\"}],\"name\":\"transferFrom\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"}],\"name\":\"withdraw\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"stateMutability\":\"payable\",\"type\":\"receive\"}]", - Bin: "0x61010060405273d9a998cac66092748ffec7cfbd155aae1737c2ff73ffffffffffffffffffffffffffffffffffffffff1660e09073ffffffffffffffffffffffffffffffffffffffff1681525034801562000058575f80fd5b50604051620028583803806200285883398181016040528101906200007e9190620002f0565b81816012825f9081620000929190620005aa565b508160019081620000a49190620005aa565b508060ff1660808160ff16815250504660a08181525050620000cb620000dd60201b60201c565b60c08181525050505050505062000817565b5f7f8b73c3c69bb8fe3d512ecc4cf759cc79239f7b179b0ffacaa9a75d522b39400f5f6040516200010f919062000736565b60405180910390207fc89efdaa54c0f20c7adf612882df0950f5a951637e0307cdcb4c672f298b8bc6463060405160200162000150959493929190620007bc565b60405160208183030381529060405280519060200120905090565b5f604051905090565b5f80fd5b5f80fd5b5f80fd5b5f80fd5b5f601f19601f8301169050919050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52604160045260245ffd5b620001cc8262000184565b810181811067ffffffffffffffff82111715620001ee57620001ed62000194565b5b80604052505050565b5f620002026200016b565b9050620002108282620001c1565b919050565b5f67ffffffffffffffff82111562000232576200023162000194565b5b6200023d8262000184565b9050602081019050919050565b5f5b83811015620002695780820151818401526020810190506200024c565b5f8484015250505050565b5f6200028a620002848462000215565b620001f7565b905082815260208101848484011115620002a957620002a862000180565b5b620002b68482856200024a565b509392505050565b5f82601f830112620002d557620002d46200017c565b5b8151620002e784826020860162000274565b91505092915050565b5f806040838503121562000309576200030862000174565b5b5f83015167ffffffffffffffff81111562000329576200032862000178565b5b6200033785828601620002be565b925050602083015167ffffffffffffffff8111156200035b576200035a62000178565b5b6200036985828601620002be565b9150509250929050565b5f81519050919050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52602260045260245ffd5b5f6002820490506001821680620003c257607f821691505b602082108103620003d857620003d76200037d565b5b50919050565b5f819050815f5260205f209050919050565b5f6020601f8301049050919050565b5f82821b905092915050565b5f600883026200043c7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff82620003ff565b620004488683620003ff565b95508019841693508086168417925050509392505050565b5f819050919050565b5f819050919050565b5f620004926200048c620004868462000460565b62000469565b62000460565b9050919050565b5f819050919050565b620004ad8362000472565b620004c5620004bc8262000499565b8484546200040b565b825550505050565b5f90565b620004db620004cd565b620004e8818484620004a2565b505050565b5b818110156200050f57620005035f82620004d1565b600181019050620004ee565b5050565b601f8211156200055e576200052881620003de565b6200053384620003f0565b8101602085101562000543578190505b6200055b6200055285620003f0565b830182620004ed565b50505b505050565b5f82821c905092915050565b5f620005805f198460080262000563565b1980831691505092915050565b5f6200059a83836200056f565b9150826002028217905092915050565b620005b58262000373565b67ffffffffffffffff811115620005d157620005d062000194565b5b620005dd8254620003aa565b620005ea82828562000513565b5f60209050601f83116001811462000620575f84156200060b578287015190505b6200061785826200058d565b86555062000686565b601f1984166200063086620003de565b5f5b82811015620006595784890151825560018201915060208501945060208101905062000632565b8683101562000679578489015162000675601f8916826200056f565b8355505b6001600288020188555050505b505050505050565b5f81905092915050565b5f819050815f5260205f209050919050565b5f8154620006b881620003aa565b620006c481866200068e565b9450600182165f8114620006e15760018114620006f7576200072d565b60ff19831686528115158202860193506200072d565b620007028562000698565b5f5b83811015620007255781548189015260018201915060208101905062000704565b838801955050505b50505092915050565b5f620007438284620006aa565b915081905092915050565b5f819050919050565b62000762816200074e565b82525050565b620007738162000460565b82525050565b5f73ffffffffffffffffffffffffffffffffffffffff82169050919050565b5f620007a48262000779565b9050919050565b620007b68162000798565b82525050565b5f60a082019050620007d15f83018862000757565b620007e0602083018762000757565b620007ef604083018662000757565b620007fe606083018562000768565b6200080d6080830184620007ab565b9695505050505050565b60805160a05160c05160e051611ff1620008675f395f8181610907015281816109e301528181610ab201528181610b5f015261106601525f6108e001525f6108ac01525f6108870152611ff15ff3fe608060405260043610610101575f3560e01c806370a08231116100945780639fa6dd35116100635780639fa6dd351461034a578063a9059cbb14610366578063d505accf146103a2578063dd62ed3e146103ca578063f639187e1461040657610108565b806370a082311461027e5780637ecebe00146102ba57806395d89b41146102f65780639de702581461032057610108565b80632e1a7d4d116100d05780632e1a7d4d146101d8578063313ce567146102005780633644e5151461022a5780634cf088d91461025457610108565b806306fdde031461010c578063095ea7b31461013657806318160ddd1461017257806323b872dd1461019c57610108565b3661010857005b5f80fd5b348015610117575f80fd5b50610120610442565b60405161012d91906113af565b60405180910390f35b348015610141575f80fd5b5061015c6004803603810190610157919061146d565b6104cd565b60405161016991906114c5565b60405180910390f35b34801561017d575f80fd5b506101866105ba565b60405161019391906114ed565b60405180910390f35b3480156101a7575f80fd5b506101c260048036038101906101bd9190611506565b6105c0565b6040516101cf91906114c5565b60405180910390f35b3480156101e3575f80fd5b506101fe60048036038101906101f99190611556565b6107fb565b005b34801561020b575f80fd5b50610214610885565b604051610221919061159c565b60405180910390f35b348015610235575f80fd5b5061023e6108a9565b60405161024b91906115cd565b60405180910390f35b34801561025f575f80fd5b50610268610905565b6040516102759190611641565b60405180910390f35b348015610289575f80fd5b506102a4600480360381019061029f919061165a565b610929565b6040516102b191906114ed565b60405180910390f35b3480156102c5575f80fd5b506102e060048036038101906102db919061165a565b61093e565b6040516102ed91906114ed565b60405180910390f35b348015610301575f80fd5b5061030a610953565b60405161031791906113af565b60405180910390f35b34801561032b575f80fd5b506103346109df565b604051610341919061173c565b60405180910390f35b610364600480360381019061035f9190611556565b610a76565b005b348015610371575f80fd5b5061038c6004803603810190610387919061146d565b610c49565b60405161039991906114c5565b60405180910390f35b3480156103ad575f80fd5b506103c860048036038101906103c391906117b0565b610d56565b005b3480156103d5575f80fd5b506103f060048036038101906103eb919061184d565b611043565b6040516103fd91906114ed565b60405180910390f35b348015610411575f80fd5b5061042c6004803603810190610427919061165a565b611063565b60405161043991906114ed565b60405180910390f35b5f805461044e906118b8565b80601f016020809104026020016040519081016040528092919081815260200182805461047a906118b8565b80156104c55780601f1061049c576101008083540402835291602001916104c5565b820191905f5260205f20905b8154815290600101906020018083116104a857829003601f168201915b505050505081565b5f8160045f3373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20819055508273ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925846040516105a891906114ed565b60405180910390a36001905092915050565b60025481565b5f8060045f8673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f3373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205490507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff81146106ed5782816106709190611915565b60045f8773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f3373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20819055505b8260035f8773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8282546107399190611915565b925050819055508260035f8673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f82825401925050819055508373ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef856040516107e791906114ed565b60405180910390a360019150509392505050565b5f8103610834576040517f1f2a200500000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b61083e3382611105565b3373ffffffffffffffffffffffffffffffffffffffff166108fc8290811502906040515f60405180830381858888f19350505050158015610881573d5f803e3d5ffd5b5050565b7f000000000000000000000000000000000000000000000000000000000000000081565b5f7f000000000000000000000000000000000000000000000000000000000000000046146108de576108d96111d0565b610900565b7f00000000000000000000000000000000000000000000000000000000000000005b905090565b7f000000000000000000000000000000000000000000000000000000000000000081565b6003602052805f5260405f205f915090505481565b6005602052805f5260405f205f915090505481565b60018054610960906118b8565b80601f016020809104026020016040519081016040528092919081815260200182805461098c906118b8565b80156109d75780601f106109ae576101008083540402835291602001916109d7565b820191905f5260205f20905b8154815290600101906020018083116109ba57829003601f168201915b505050505081565b60607f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff16639de702586040518163ffffffff1660e01b81526004015f60405180830381865afa158015610a49573d5f803e3d5ffd5b505050506040513d5f823e3d601f19601f82011682018060405250810190610a719190611a9c565b905090565b5f8103610aaf576040517f1f2a200500000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b5f7f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff16639de702586040518163ffffffff1660e01b81526004015f60405180830381865afa158015610b18573d5f803e3d5ffd5b505050506040513d5f823e3d601f19601f82011682018060405250810190610b409190611a9c565b5f81518110610b5257610b51611ae3565b5b602002602001015190505f7f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff1663026e402b83856040518363ffffffff1660e01b8152600401610bb8929190611b1f565b6020604051808303815f875af1158015610bd4573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610bf89190611b70565b905080610c3a576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610c3190611be5565b60405180910390fd5b610c44338461125a565b505050565b5f8160035f3373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f828254610c969190611915565b925050819055508160035f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f82825401925050819055508273ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef84604051610d4491906114ed565b60405180910390a36001905092915050565b42841015610d99576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610d9090611c4d565b60405180910390fd5b5f6001610da46108a9565b7f6e71edae12b1b97f4d1f60370fef10105fa2faae0126114a169c64845d6126c98a8a8a60055f8f73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f815480929190600101919050558b604051602001610e2996959493929190611c6b565b60405160208183030381529060405280519060200120604051602001610e50929190611d3e565b604051602081830303815290604052805190602001208585856040515f8152602001604052604051610e859493929190611d74565b6020604051602081039080840390855afa158015610ea5573d5f803e3d5ffd5b5050506020604051035190505f73ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1614158015610f1857508773ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff16145b610f57576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610f4e90611e01565b60405180910390fd5b8560045f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8973ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2081905550508573ffffffffffffffffffffffffffffffffffffffff168773ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b9258760405161103291906114ed565b60405180910390a350505050505050565b6004602052815f5260405f20602052805f5260405f205f91509150505481565b5f7f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff166315049a5a30846040518363ffffffff1660e01b81526004016110bf929190611e1f565b602060405180830381865afa1580156110da573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906110fe9190611e5a565b9050919050565b8060035f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8282546111519190611915565b925050819055508060025f82825403925050819055505f73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef836040516111c491906114ed565b60405180910390a35050565b5f7f8b73c3c69bb8fe3d512ecc4cf759cc79239f7b179b0ffacaa9a75d522b39400f5f6040516112009190611f21565b60405180910390207fc89efdaa54c0f20c7adf612882df0950f5a951637e0307cdcb4c672f298b8bc6463060405160200161123f959493929190611f37565b60405160208183030381529060405280519060200120905090565b8060025f82825461126b9190611f88565b925050819055508060035f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f82825401925050819055508173ffffffffffffffffffffffffffffffffffffffff165f73ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef8360405161131991906114ed565b60405180910390a35050565b5f81519050919050565b5f82825260208201905092915050565b5f5b8381101561135c578082015181840152602081019050611341565b5f8484015250505050565b5f601f19601f8301169050919050565b5f61138182611325565b61138b818561132f565b935061139b81856020860161133f565b6113a481611367565b840191505092915050565b5f6020820190508181035f8301526113c78184611377565b905092915050565b5f604051905090565b5f80fd5b5f80fd5b5f73ffffffffffffffffffffffffffffffffffffffff82169050919050565b5f611409826113e0565b9050919050565b611419816113ff565b8114611423575f80fd5b50565b5f8135905061143481611410565b92915050565b5f819050919050565b61144c8161143a565b8114611456575f80fd5b50565b5f8135905061146781611443565b92915050565b5f8060408385031215611483576114826113d8565b5b5f61149085828601611426565b92505060206114a185828601611459565b9150509250929050565b5f8115159050919050565b6114bf816114ab565b82525050565b5f6020820190506114d85f8301846114b6565b92915050565b6114e78161143a565b82525050565b5f6020820190506115005f8301846114de565b92915050565b5f805f6060848603121561151d5761151c6113d8565b5b5f61152a86828701611426565b935050602061153b86828701611426565b925050604061154c86828701611459565b9150509250925092565b5f6020828403121561156b5761156a6113d8565b5b5f61157884828501611459565b91505092915050565b5f60ff82169050919050565b61159681611581565b82525050565b5f6020820190506115af5f83018461158d565b92915050565b5f819050919050565b6115c7816115b5565b82525050565b5f6020820190506115e05f8301846115be565b92915050565b5f819050919050565b5f6116096116046115ff846113e0565b6115e6565b6113e0565b9050919050565b5f61161a826115ef565b9050919050565b5f61162b82611610565b9050919050565b61163b81611621565b82525050565b5f6020820190506116545f830184611632565b92915050565b5f6020828403121561166f5761166e6113d8565b5b5f61167c84828501611426565b91505092915050565b5f81519050919050565b5f82825260208201905092915050565b5f819050602082019050919050565b6116b7816113ff565b82525050565b5f6116c883836116ae565b60208301905092915050565b5f602082019050919050565b5f6116ea82611685565b6116f4818561168f565b93506116ff8361169f565b805f5b8381101561172f57815161171688826116bd565b9750611721836116d4565b925050600181019050611702565b5085935050505092915050565b5f6020820190508181035f83015261175481846116e0565b905092915050565b61176581611581565b811461176f575f80fd5b50565b5f813590506117808161175c565b92915050565b61178f816115b5565b8114611799575f80fd5b50565b5f813590506117aa81611786565b92915050565b5f805f805f805f60e0888a0312156117cb576117ca6113d8565b5b5f6117d88a828b01611426565b97505060206117e98a828b01611426565b96505060406117fa8a828b01611459565b955050606061180b8a828b01611459565b945050608061181c8a828b01611772565b93505060a061182d8a828b0161179c565b92505060c061183e8a828b0161179c565b91505092959891949750929550565b5f8060408385031215611863576118626113d8565b5b5f61187085828601611426565b925050602061188185828601611426565b9150509250929050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52602260045260245ffd5b5f60028204905060018216806118cf57607f821691505b6020821081036118e2576118e161188b565b5b50919050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601160045260245ffd5b5f61191f8261143a565b915061192a8361143a565b9250828203905081811115611942576119416118e8565b5b92915050565b5f80fd5b7f4e487b71000000000000000000000000000000000000000000000000000000005f52604160045260245ffd5b61198282611367565b810181811067ffffffffffffffff821117156119a1576119a061194c565b5b80604052505050565b5f6119b36113cf565b90506119bf8282611979565b919050565b5f67ffffffffffffffff8211156119de576119dd61194c565b5b602082029050602081019050919050565b5f80fd5b5f81519050611a0181611410565b92915050565b5f611a19611a14846119c4565b6119aa565b90508083825260208201905060208402830185811115611a3c57611a3b6119ef565b5b835b81811015611a655780611a5188826119f3565b845260208401935050602081019050611a3e565b5050509392505050565b5f82601f830112611a8357611a82611948565b5b8151611a93848260208601611a07565b91505092915050565b5f60208284031215611ab157611ab06113d8565b5b5f82015167ffffffffffffffff811115611ace57611acd6113dc565b5b611ada84828501611a6f565b91505092915050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52603260045260245ffd5b611b19816113ff565b82525050565b5f604082019050611b325f830185611b10565b611b3f60208301846114de565b9392505050565b611b4f816114ab565b8114611b59575f80fd5b50565b5f81519050611b6a81611b46565b92915050565b5f60208284031215611b8557611b846113d8565b5b5f611b9284828501611b5c565b91505092915050565b7f4661696c656420746f2064656c656761746500000000000000000000000000005f82015250565b5f611bcf60128361132f565b9150611bda82611b9b565b602082019050919050565b5f6020820190508181035f830152611bfc81611bc3565b9050919050565b7f5045524d49545f444541444c494e455f455850495245440000000000000000005f82015250565b5f611c3760178361132f565b9150611c4282611c03565b602082019050919050565b5f6020820190508181035f830152611c6481611c2b565b9050919050565b5f60c082019050611c7e5f8301896115be565b611c8b6020830188611b10565b611c986040830187611b10565b611ca560608301866114de565b611cb260808301856114de565b611cbf60a08301846114de565b979650505050505050565b5f81905092915050565b7f19010000000000000000000000000000000000000000000000000000000000005f82015250565b5f611d08600283611cca565b9150611d1382611cd4565b600282019050919050565b5f819050919050565b611d38611d33826115b5565b611d1e565b82525050565b5f611d4882611cfc565b9150611d548285611d27565b602082019150611d648284611d27565b6020820191508190509392505050565b5f608082019050611d875f8301876115be565b611d94602083018661158d565b611da160408301856115be565b611dae60608301846115be565b95945050505050565b7f494e56414c49445f5349474e45520000000000000000000000000000000000005f82015250565b5f611deb600e8361132f565b9150611df682611db7565b602082019050919050565b5f6020820190508181035f830152611e1881611ddf565b9050919050565b5f604082019050611e325f830185611b10565b611e3f6020830184611b10565b9392505050565b5f81519050611e5481611443565b92915050565b5f60208284031215611e6f57611e6e6113d8565b5b5f611e7c84828501611e46565b91505092915050565b5f81905092915050565b5f819050815f5260205f209050919050565b5f8154611ead816118b8565b611eb78186611e85565b9450600182165f8114611ed15760018114611ee657611f18565b60ff1983168652811515820286019350611f18565b611eef85611e8f565b5f5b83811015611f1057815481890152600182019150602081019050611ef1565b838801955050505b50505092915050565b5f611f2c8284611ea1565b915081905092915050565b5f60a082019050611f4a5f8301886115be565b611f5760208301876115be565b611f6460408301866115be565b611f7160608301856114de565b611f7e6080830184611b10565b9695505050505050565b5f611f928261143a565b9150611f9d8361143a565b9250828201905080821115611fb557611fb46118e8565b5b9291505056fea26469706673582212200c69887876c1813308e0f77639c4071ba31b0e71da2e1b18f799606ec53df6a764736f6c63430008140033", + Bin: "0x61010060405273d9a998cac66092748ffec7cfbd155aae1737c2ff73ffffffffffffffffffffffffffffffffffffffff1660e09073ffffffffffffffffffffffffffffffffffffffff1681525034801562000058575f80fd5b50604051620028583803806200285883398181016040528101906200007e9190620002f0565b81816012825f9081620000929190620005aa565b508160019081620000a49190620005aa565b508060ff1660808160ff16815250504660a08181525050620000cb620000dd60201b60201c565b60c08181525050505050505062000817565b5f7f8b73c3c69bb8fe3d512ecc4cf759cc79239f7b179b0ffacaa9a75d522b39400f5f6040516200010f919062000736565b60405180910390207fc89efdaa54c0f20c7adf612882df0950f5a951637e0307cdcb4c672f298b8bc6463060405160200162000150959493929190620007bc565b60405160208183030381529060405280519060200120905090565b5f604051905090565b5f80fd5b5f80fd5b5f80fd5b5f80fd5b5f601f19601f8301169050919050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52604160045260245ffd5b620001cc8262000184565b810181811067ffffffffffffffff82111715620001ee57620001ed62000194565b5b80604052505050565b5f620002026200016b565b9050620002108282620001c1565b919050565b5f67ffffffffffffffff82111562000232576200023162000194565b5b6200023d8262000184565b9050602081019050919050565b5f5b83811015620002695780820151818401526020810190506200024c565b5f8484015250505050565b5f6200028a620002848462000215565b620001f7565b905082815260208101848484011115620002a957620002a862000180565b5b620002b68482856200024a565b509392505050565b5f82601f830112620002d557620002d46200017c565b5b8151620002e784826020860162000274565b91505092915050565b5f806040838503121562000309576200030862000174565b5b5f83015167ffffffffffffffff81111562000329576200032862000178565b5b6200033785828601620002be565b925050602083015167ffffffffffffffff8111156200035b576200035a62000178565b5b6200036985828601620002be565b9150509250929050565b5f81519050919050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52602260045260245ffd5b5f6002820490506001821680620003c257607f821691505b602082108103620003d857620003d76200037d565b5b50919050565b5f819050815f5260205f209050919050565b5f6020601f8301049050919050565b5f82821b905092915050565b5f600883026200043c7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff82620003ff565b620004488683620003ff565b95508019841693508086168417925050509392505050565b5f819050919050565b5f819050919050565b5f620004926200048c620004868462000460565b62000469565b62000460565b9050919050565b5f819050919050565b620004ad8362000472565b620004c5620004bc8262000499565b8484546200040b565b825550505050565b5f90565b620004db620004cd565b620004e8818484620004a2565b505050565b5b818110156200050f57620005035f82620004d1565b600181019050620004ee565b5050565b601f8211156200055e576200052881620003de565b6200053384620003f0565b8101602085101562000543578190505b6200055b6200055285620003f0565b830182620004ed565b50505b505050565b5f82821c905092915050565b5f620005805f198460080262000563565b1980831691505092915050565b5f6200059a83836200056f565b9150826002028217905092915050565b620005b58262000373565b67ffffffffffffffff811115620005d157620005d062000194565b5b620005dd8254620003aa565b620005ea82828562000513565b5f60209050601f83116001811462000620575f84156200060b578287015190505b6200061785826200058d565b86555062000686565b601f1984166200063086620003de565b5f5b82811015620006595784890151825560018201915060208501945060208101905062000632565b8683101562000679578489015162000675601f8916826200056f565b8355505b6001600288020188555050505b505050505050565b5f81905092915050565b5f819050815f5260205f209050919050565b5f8154620006b881620003aa565b620006c481866200068e565b9450600182165f8114620006e15760018114620006f7576200072d565b60ff19831686528115158202860193506200072d565b620007028562000698565b5f5b83811015620007255781548189015260018201915060208101905062000704565b838801955050505b50505092915050565b5f620007438284620006aa565b915081905092915050565b5f819050919050565b62000762816200074e565b82525050565b620007738162000460565b82525050565b5f73ffffffffffffffffffffffffffffffffffffffff82169050919050565b5f620007a48262000779565b9050919050565b620007b68162000798565b82525050565b5f60a082019050620007d15f83018862000757565b620007e0602083018762000757565b620007ef604083018662000757565b620007fe606083018562000768565b6200080d6080830184620007ab565b9695505050505050565b60805160a05160c05160e051611ff1620008675f395f8181610907015281816109e301528181610ab201528181610b5f015261106601525f6108e001525f6108ac01525f6108870152611ff15ff3fe608060405260043610610101575f3560e01c806370a08231116100945780639fa6dd35116100635780639fa6dd351461034a578063a9059cbb14610366578063d505accf146103a2578063dd62ed3e146103ca578063f639187e1461040657610108565b806370a082311461027e5780637ecebe00146102ba57806395d89b41146102f65780639de702581461032057610108565b80632e1a7d4d116100d05780632e1a7d4d146101d8578063313ce567146102005780633644e5151461022a5780634cf088d91461025457610108565b806306fdde031461010c578063095ea7b31461013657806318160ddd1461017257806323b872dd1461019c57610108565b3661010857005b5f80fd5b348015610117575f80fd5b50610120610442565b60405161012d91906113af565b60405180910390f35b348015610141575f80fd5b5061015c6004803603810190610157919061146d565b6104cd565b60405161016991906114c5565b60405180910390f35b34801561017d575f80fd5b506101866105ba565b60405161019391906114ed565b60405180910390f35b3480156101a7575f80fd5b506101c260048036038101906101bd9190611506565b6105c0565b6040516101cf91906114c5565b60405180910390f35b3480156101e3575f80fd5b506101fe60048036038101906101f99190611556565b6107fb565b005b34801561020b575f80fd5b50610214610885565b604051610221919061159c565b60405180910390f35b348015610235575f80fd5b5061023e6108a9565b60405161024b91906115cd565b60405180910390f35b34801561025f575f80fd5b50610268610905565b6040516102759190611641565b60405180910390f35b348015610289575f80fd5b506102a4600480360381019061029f919061165a565b610929565b6040516102b191906114ed565b60405180910390f35b3480156102c5575f80fd5b506102e060048036038101906102db919061165a565b61093e565b6040516102ed91906114ed565b60405180910390f35b348015610301575f80fd5b5061030a610953565b60405161031791906113af565b60405180910390f35b34801561032b575f80fd5b506103346109df565b604051610341919061173c565b60405180910390f35b610364600480360381019061035f9190611556565b610a76565b005b348015610371575f80fd5b5061038c6004803603810190610387919061146d565b610c49565b60405161039991906114c5565b60405180910390f35b3480156103ad575f80fd5b506103c860048036038101906103c391906117b0565b610d56565b005b3480156103d5575f80fd5b506103f060048036038101906103eb919061184d565b611043565b6040516103fd91906114ed565b60405180910390f35b348015610411575f80fd5b5061042c6004803603810190610427919061165a565b611063565b60405161043991906114ed565b60405180910390f35b5f805461044e906118b8565b80601f016020809104026020016040519081016040528092919081815260200182805461047a906118b8565b80156104c55780601f1061049c576101008083540402835291602001916104c5565b820191905f5260205f20905b8154815290600101906020018083116104a857829003601f168201915b505050505081565b5f8160045f3373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20819055508273ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925846040516105a891906114ed565b60405180910390a36001905092915050565b60025481565b5f8060045f8673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f3373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205490507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff81146106ed5782816106709190611915565b60045f8773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f3373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20819055505b8260035f8773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8282546107399190611915565b925050819055508260035f8673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f82825401925050819055508373ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef856040516107e791906114ed565b60405180910390a360019150509392505050565b5f8103610834576040517f1f2a200500000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b61083e3382611105565b3373ffffffffffffffffffffffffffffffffffffffff166108fc8290811502906040515f60405180830381858888f19350505050158015610881573d5f803e3d5ffd5b5050565b7f000000000000000000000000000000000000000000000000000000000000000081565b5f7f000000000000000000000000000000000000000000000000000000000000000046146108de576108d96111d0565b610900565b7f00000000000000000000000000000000000000000000000000000000000000005b905090565b7f000000000000000000000000000000000000000000000000000000000000000081565b6003602052805f5260405f205f915090505481565b6005602052805f5260405f205f915090505481565b60018054610960906118b8565b80601f016020809104026020016040519081016040528092919081815260200182805461098c906118b8565b80156109d75780601f106109ae576101008083540402835291602001916109d7565b820191905f5260205f20905b8154815290600101906020018083116109ba57829003601f168201915b505050505081565b60607f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff16639de702586040518163ffffffff1660e01b81526004015f60405180830381865afa158015610a49573d5f803e3d5ffd5b505050506040513d5f823e3d601f19601f82011682018060405250810190610a719190611a9c565b905090565b5f8103610aaf576040517f1f2a200500000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b5f7f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff16639de702586040518163ffffffff1660e01b81526004015f60405180830381865afa158015610b18573d5f803e3d5ffd5b505050506040513d5f823e3d601f19601f82011682018060405250810190610b409190611a9c565b5f81518110610b5257610b51611ae3565b5b602002602001015190505f7f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff1663026e402b83856040518363ffffffff1660e01b8152600401610bb8929190611b1f565b6020604051808303815f875af1158015610bd4573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610bf89190611b70565b905080610c3a576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610c3190611be5565b60405180910390fd5b610c44338461125a565b505050565b5f8160035f3373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f828254610c969190611915565b925050819055508160035f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f82825401925050819055508273ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef84604051610d4491906114ed565b60405180910390a36001905092915050565b42841015610d99576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610d9090611c4d565b60405180910390fd5b5f6001610da46108a9565b7f6e71edae12b1b97f4d1f60370fef10105fa2faae0126114a169c64845d6126c98a8a8a60055f8f73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f815480929190600101919050558b604051602001610e2996959493929190611c6b565b60405160208183030381529060405280519060200120604051602001610e50929190611d3e565b604051602081830303815290604052805190602001208585856040515f8152602001604052604051610e859493929190611d74565b6020604051602081039080840390855afa158015610ea5573d5f803e3d5ffd5b5050506020604051035190505f73ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1614158015610f1857508773ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff16145b610f57576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610f4e90611e01565b60405180910390fd5b8560045f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8973ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2081905550508573ffffffffffffffffffffffffffffffffffffffff168773ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b9258760405161103291906114ed565b60405180910390a350505050505050565b6004602052815f5260405f20602052805f5260405f205f91509150505481565b5f7f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff166315049a5a30846040518363ffffffff1660e01b81526004016110bf929190611e1f565b602060405180830381865afa1580156110da573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906110fe9190611e5a565b9050919050565b8060035f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8282546111519190611915565b925050819055508060025f82825403925050819055505f73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef836040516111c491906114ed565b60405180910390a35050565b5f7f8b73c3c69bb8fe3d512ecc4cf759cc79239f7b179b0ffacaa9a75d522b39400f5f6040516112009190611f21565b60405180910390207fc89efdaa54c0f20c7adf612882df0950f5a951637e0307cdcb4c672f298b8bc6463060405160200161123f959493929190611f37565b60405160208183030381529060405280519060200120905090565b8060025f82825461126b9190611f88565b925050819055508060035f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f82825401925050819055508173ffffffffffffffffffffffffffffffffffffffff165f73ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef8360405161131991906114ed565b60405180910390a35050565b5f81519050919050565b5f82825260208201905092915050565b5f5b8381101561135c578082015181840152602081019050611341565b5f8484015250505050565b5f601f19601f8301169050919050565b5f61138182611325565b61138b818561132f565b935061139b81856020860161133f565b6113a481611367565b840191505092915050565b5f6020820190508181035f8301526113c78184611377565b905092915050565b5f604051905090565b5f80fd5b5f80fd5b5f73ffffffffffffffffffffffffffffffffffffffff82169050919050565b5f611409826113e0565b9050919050565b611419816113ff565b8114611423575f80fd5b50565b5f8135905061143481611410565b92915050565b5f819050919050565b61144c8161143a565b8114611456575f80fd5b50565b5f8135905061146781611443565b92915050565b5f8060408385031215611483576114826113d8565b5b5f61149085828601611426565b92505060206114a185828601611459565b9150509250929050565b5f8115159050919050565b6114bf816114ab565b82525050565b5f6020820190506114d85f8301846114b6565b92915050565b6114e78161143a565b82525050565b5f6020820190506115005f8301846114de565b92915050565b5f805f6060848603121561151d5761151c6113d8565b5b5f61152a86828701611426565b935050602061153b86828701611426565b925050604061154c86828701611459565b9150509250925092565b5f6020828403121561156b5761156a6113d8565b5b5f61157884828501611459565b91505092915050565b5f60ff82169050919050565b61159681611581565b82525050565b5f6020820190506115af5f83018461158d565b92915050565b5f819050919050565b6115c7816115b5565b82525050565b5f6020820190506115e05f8301846115be565b92915050565b5f819050919050565b5f6116096116046115ff846113e0565b6115e6565b6113e0565b9050919050565b5f61161a826115ef565b9050919050565b5f61162b82611610565b9050919050565b61163b81611621565b82525050565b5f6020820190506116545f830184611632565b92915050565b5f6020828403121561166f5761166e6113d8565b5b5f61167c84828501611426565b91505092915050565b5f81519050919050565b5f82825260208201905092915050565b5f819050602082019050919050565b6116b7816113ff565b82525050565b5f6116c883836116ae565b60208301905092915050565b5f602082019050919050565b5f6116ea82611685565b6116f4818561168f565b93506116ff8361169f565b805f5b8381101561172f57815161171688826116bd565b9750611721836116d4565b925050600181019050611702565b5085935050505092915050565b5f6020820190508181035f83015261175481846116e0565b905092915050565b61176581611581565b811461176f575f80fd5b50565b5f813590506117808161175c565b92915050565b61178f816115b5565b8114611799575f80fd5b50565b5f813590506117aa81611786565b92915050565b5f805f805f805f60e0888a0312156117cb576117ca6113d8565b5b5f6117d88a828b01611426565b97505060206117e98a828b01611426565b96505060406117fa8a828b01611459565b955050606061180b8a828b01611459565b945050608061181c8a828b01611772565b93505060a061182d8a828b0161179c565b92505060c061183e8a828b0161179c565b91505092959891949750929550565b5f8060408385031215611863576118626113d8565b5b5f61187085828601611426565b925050602061188185828601611426565b9150509250929050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52602260045260245ffd5b5f60028204905060018216806118cf57607f821691505b6020821081036118e2576118e161188b565b5b50919050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601160045260245ffd5b5f61191f8261143a565b915061192a8361143a565b9250828203905081811115611942576119416118e8565b5b92915050565b5f80fd5b7f4e487b71000000000000000000000000000000000000000000000000000000005f52604160045260245ffd5b61198282611367565b810181811067ffffffffffffffff821117156119a1576119a061194c565b5b80604052505050565b5f6119b36113cf565b90506119bf8282611979565b919050565b5f67ffffffffffffffff8211156119de576119dd61194c565b5b602082029050602081019050919050565b5f80fd5b5f81519050611a0181611410565b92915050565b5f611a19611a14846119c4565b6119aa565b90508083825260208201905060208402830185811115611a3c57611a3b6119ef565b5b835b81811015611a655780611a5188826119f3565b845260208401935050602081019050611a3e565b5050509392505050565b5f82601f830112611a8357611a82611948565b5b8151611a93848260208601611a07565b91505092915050565b5f60208284031215611ab157611ab06113d8565b5b5f82015167ffffffffffffffff811115611ace57611acd6113dc565b5b611ada84828501611a6f565b91505092915050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52603260045260245ffd5b611b19816113ff565b82525050565b5f604082019050611b325f830185611b10565b611b3f60208301846114de565b9392505050565b611b4f816114ab565b8114611b59575f80fd5b50565b5f81519050611b6a81611b46565b92915050565b5f60208284031215611b8557611b846113d8565b5b5f611b9284828501611b5c565b91505092915050565b7f4661696c656420746f2064656c656761746500000000000000000000000000005f82015250565b5f611bcf60128361132f565b9150611bda82611b9b565b602082019050919050565b5f6020820190508181035f830152611bfc81611bc3565b9050919050565b7f5045524d49545f444541444c494e455f455850495245440000000000000000005f82015250565b5f611c3760178361132f565b9150611c4282611c03565b602082019050919050565b5f6020820190508181035f830152611c6481611c2b565b9050919050565b5f60c082019050611c7e5f8301896115be565b611c8b6020830188611b10565b611c986040830187611b10565b611ca560608301866114de565b611cb260808301856114de565b611cbf60a08301846114de565b979650505050505050565b5f81905092915050565b7f19010000000000000000000000000000000000000000000000000000000000005f82015250565b5f611d08600283611cca565b9150611d1382611cd4565b600282019050919050565b5f819050919050565b611d38611d33826115b5565b611d1e565b82525050565b5f611d4882611cfc565b9150611d548285611d27565b602082019150611d648284611d27565b6020820191508190509392505050565b5f608082019050611d875f8301876115be565b611d94602083018661158d565b611da160408301856115be565b611dae60608301846115be565b95945050505050565b7f494e56414c49445f5349474e45520000000000000000000000000000000000005f82015250565b5f611deb600e8361132f565b9150611df682611db7565b602082019050919050565b5f6020820190508181035f830152611e1881611ddf565b9050919050565b5f604082019050611e325f830185611b10565b611e3f6020830184611b10565b9392505050565b5f81519050611e5481611443565b92915050565b5f60208284031215611e6f57611e6e6113d8565b5b5f611e7c84828501611e46565b91505092915050565b5f81905092915050565b5f819050815f5260205f209050919050565b5f8154611ead816118b8565b611eb78186611e85565b9450600182165f8114611ed15760018114611ee657611f18565b60ff1983168652811515820286019350611f18565b611eef85611e8f565b5f5b83811015611f1057815481890152600182019150602081019050611ef1565b838801955050505b50505092915050565b5f611f2c8284611ea1565b915081905092915050565b5f60a082019050611f4a5f8301886115be565b611f5760208301876115be565b611f6460408301866115be565b611f7160608301856114de565b611f7e6080830184611b10565b9695505050505050565b5f611f928261143a565b9150611f9d8361143a565b9250828201905080821115611fb557611fb46118e8565b5b9291505056fea2646970667358221220e0e716b99b64bff7afa3f301049910536491995aeee943d2b723f818a7ce1b3864736f6c63430008140033", } // LiquidStakingABI is the input ABI used to generate the binding from. diff --git a/contracts/bindings/testing/precompile_constructor.abigen.go b/contracts/bindings/testing/precompile_constructor.abigen.go index 3abf43142..07d2ec421 100644 --- a/contracts/bindings/testing/precompile_constructor.abigen.go +++ b/contracts/bindings/testing/precompile_constructor.abigen.go @@ -32,7 +32,7 @@ var ( // PrecompileConstructorMetaData contains all meta data concerning the PrecompileConstructor contract. var PrecompileConstructorMetaData = &bind.MetaData{ ABI: "[{\"inputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"constructor\"},{\"inputs\":[],\"name\":\"abera\",\"outputs\":[{\"internalType\":\"contractIERC20\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"denom\",\"outputs\":[{\"internalType\":\"string\",\"name\":\"\",\"type\":\"string\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"erc20Module\",\"outputs\":[{\"internalType\":\"contractIERC20Module\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"}]", - Bin: "0x60a06040526269696973ffffffffffffffffffffffffffffffffffffffff1660809073ffffffffffffffffffffffffffffffffffffffff1681525034801562000046575f80fd5b505f60805173ffffffffffffffffffffffffffffffffffffffff1663096b4069333363075bcd156040518463ffffffff1660e01b81526004016200008d9392919062000411565b6020604051808303815f875af1158015620000aa573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190620000d09190620004ac565b90508062000115576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016200010c906200052a565b60405180910390fd5b60805173ffffffffffffffffffffffffffffffffffffffff1663a333e57c6040518163ffffffff1660e01b815260040162000150906200054a565b602060405180830381865afa1580156200016c573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190620001929190620005ac565b5f806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555060805173ffffffffffffffffffffffffffffffffffffffff1663cd22a0185f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff166040518263ffffffff1660e01b81526004016200022c91906200063a565b5f60405180830381865afa15801562000247573d5f803e3d5ffd5b505050506040513d5f823e3d601f19601f82011682018060405250810190620002719190620007c9565b6001908162000281919062000a3d565b50604051602001620002939062000b51565b604051602081830303815290604052805190602001206001604051602001620002bd919062000bf3565b604051602081830303815290604052805190602001201462000316576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016200030d9062000c59565b60405180910390fd5b5062000c79565b5f82825260208201905092915050565b7f61626572610000000000000000000000000000000000000000000000000000005f82015250565b5f620003636005836200031d565b915062000370826200032d565b602082019050919050565b5f73ffffffffffffffffffffffffffffffffffffffff82169050919050565b5f620003a6826200037b565b9050919050565b620003b8816200039a565b82525050565b5f819050919050565b5f819050919050565b5f819050919050565b5f620003f9620003f3620003ed84620003be565b620003d0565b620003c7565b9050919050565b6200040b81620003d9565b82525050565b5f6080820190508181035f8301526200042a8162000355565b90506200043b6020830186620003ad565b6200044a6040830185620003ad565b62000459606083018462000400565b949350505050565b5f604051905090565b5f80fd5b5f80fd5b5f8115159050919050565b620004888162000472565b811462000493575f80fd5b50565b5f81519050620004a6816200047d565b92915050565b5f60208284031215620004c457620004c36200046a565b5b5f620004d38482850162000496565b91505092915050565b7f6661696c656420746f207472616e7366657220616265726100000000000000005f82015250565b5f620005126018836200031d565b91506200051f82620004dc565b602082019050919050565b5f6020820190508181035f830152620005438162000504565b9050919050565b5f6020820190508181035f830152620005638162000355565b9050919050565b5f62000576826200039a565b9050919050565b62000588816200056a565b811462000593575f80fd5b50565b5f81519050620005a6816200057d565b92915050565b5f60208284031215620005c457620005c36200046a565b5b5f620005d38482850162000596565b91505092915050565b5f620005fc620005f6620005f0846200037b565b620003d0565b6200037b565b9050919050565b5f6200060f82620005dc565b9050919050565b5f620006228262000603565b9050919050565b620006348162000616565b82525050565b5f6020820190506200064f5f83018462000629565b92915050565b5f80fd5b5f80fd5b5f601f19601f8301169050919050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52604160045260245ffd5b620006a5826200065d565b810181811067ffffffffffffffff82111715620006c757620006c66200066d565b5b80604052505050565b5f620006db62000461565b9050620006e982826200069a565b919050565b5f67ffffffffffffffff8211156200070b576200070a6200066d565b5b62000716826200065d565b9050602081019050919050565b5f5b838110156200074257808201518184015260208101905062000725565b5f8484015250505050565b5f620007636200075d84620006ee565b620006d0565b90508281526020810184848401111562000782576200078162000659565b5b6200078f84828562000723565b509392505050565b5f82601f830112620007ae57620007ad62000655565b5b8151620007c08482602086016200074d565b91505092915050565b5f60208284031215620007e157620007e06200046a565b5b5f82015167ffffffffffffffff8111156200080157620008006200046e565b5b6200080f8482850162000797565b91505092915050565b5f81519050919050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52602260045260245ffd5b5f60028204905060018216806200086757607f821691505b6020821081036200087d576200087c62000822565b5b50919050565b5f819050815f5260205f209050919050565b5f6020601f8301049050919050565b5f82821b905092915050565b5f60088302620008e17fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff82620008a4565b620008ed8683620008a4565b95508019841693508086168417925050509392505050565b5f620009256200091f6200091984620003c7565b620003d0565b620003c7565b9050919050565b5f819050919050565b620009408362000905565b620009586200094f826200092c565b848454620008b0565b825550505050565b5f90565b6200096e62000960565b6200097b81848462000935565b505050565b5b81811015620009a257620009965f8262000964565b60018101905062000981565b5050565b601f821115620009f157620009bb8162000883565b620009c68462000895565b81016020851015620009d6578190505b620009ee620009e58562000895565b83018262000980565b50505b505050565b5f82821c905092915050565b5f62000a135f1984600802620009f6565b1980831691505092915050565b5f62000a2d838362000a02565b9150826002028217905092915050565b62000a488262000818565b67ffffffffffffffff81111562000a645762000a636200066d565b5b62000a7082546200084f565b62000a7d828285620009a6565b5f60209050601f83116001811462000ab3575f841562000a9e578287015190505b62000aaa858262000a20565b86555062000b19565b601f19841662000ac38662000883565b5f5b8281101562000aec5784890151825560018201915060208501945060208101905062000ac5565b8683101562000b0c578489015162000b08601f89168262000a02565b8355505b6001600288020188555050505b505050505050565b5f81905092915050565b5f62000b3960058362000b21565b915062000b46826200032d565b600582019050919050565b5f62000b5d8262000b2b565b9150819050919050565b5f815462000b75816200084f565b62000b81818662000b21565b9450600182165f811462000b9e576001811462000bb45762000bea565b60ff198316865281151582028601935062000bea565b62000bbf8562000883565b5f5b8381101562000be25781548189015260018201915060208101905062000bc1565b838801955050505b50505092915050565b5f62000c00828462000b67565b915081905092915050565b7f72657475726e6564207468652077726f6e672064656e6f6d00000000000000005f82015250565b5f62000c416018836200031d565b915062000c4e8262000c0b565b602082019050919050565b5f6020820190508181035f83015262000c728162000c33565b9050919050565b60805161037962000c915f395f60c201526103795ff3fe608060405234801561000f575f80fd5b506004361061003f575f3560e01c8063558f208414610043578063714ba40c14610061578063c370b0421461007f575b5f80fd5b61004b61009d565b60405161005891906101ea565b60405180910390f35b6100696100c0565b6040516100769190610223565b60405180910390f35b6100876100e4565b60405161009491906102c6565b60405180910390f35b5f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b7f000000000000000000000000000000000000000000000000000000000000000081565b600180546100f190610313565b80601f016020809104026020016040519081016040528092919081815260200182805461011d90610313565b80156101685780601f1061013f57610100808354040283529160200191610168565b820191905f5260205f20905b81548152906001019060200180831161014b57829003601f168201915b505050505081565b5f73ffffffffffffffffffffffffffffffffffffffff82169050919050565b5f819050919050565b5f6101b26101ad6101a884610170565b61018f565b610170565b9050919050565b5f6101c382610198565b9050919050565b5f6101d4826101b9565b9050919050565b6101e4816101ca565b82525050565b5f6020820190506101fd5f8301846101db565b92915050565b5f61020d826101b9565b9050919050565b61021d81610203565b82525050565b5f6020820190506102365f830184610214565b92915050565b5f81519050919050565b5f82825260208201905092915050565b5f5b83811015610273578082015181840152602081019050610258565b5f8484015250505050565b5f601f19601f8301169050919050565b5f6102988261023c565b6102a28185610246565b93506102b2818560208601610256565b6102bb8161027e565b840191505092915050565b5f6020820190508181035f8301526102de818461028e565b905092915050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52602260045260245ffd5b5f600282049050600182168061032a57607f821691505b60208210810361033d5761033c6102e6565b5b5091905056fea26469706673582212207dbf2a7c1f08a0a4245d00373ebf36757eb6f1ee927daa802ba8d4630483d10164736f6c63430008140033", + Bin: "0x60a06040526269696973ffffffffffffffffffffffffffffffffffffffff1660809073ffffffffffffffffffffffffffffffffffffffff1681525034801562000046575f80fd5b505f60805173ffffffffffffffffffffffffffffffffffffffff1663096b4069333363075bcd156040518463ffffffff1660e01b81526004016200008d9392919062000411565b6020604051808303815f875af1158015620000aa573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190620000d09190620004ac565b90508062000115576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016200010c906200052a565b60405180910390fd5b60805173ffffffffffffffffffffffffffffffffffffffff1663a333e57c6040518163ffffffff1660e01b815260040162000150906200054a565b602060405180830381865afa1580156200016c573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190620001929190620005ac565b5f806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555060805173ffffffffffffffffffffffffffffffffffffffff1663cd22a0185f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff166040518263ffffffff1660e01b81526004016200022c91906200063a565b5f60405180830381865afa15801562000247573d5f803e3d5ffd5b505050506040513d5f823e3d601f19601f82011682018060405250810190620002719190620007c9565b6001908162000281919062000a3d565b50604051602001620002939062000b51565b604051602081830303815290604052805190602001206001604051602001620002bd919062000bf3565b604051602081830303815290604052805190602001201462000316576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016200030d9062000c59565b60405180910390fd5b5062000c79565b5f82825260208201905092915050565b7f61626572610000000000000000000000000000000000000000000000000000005f82015250565b5f620003636005836200031d565b915062000370826200032d565b602082019050919050565b5f73ffffffffffffffffffffffffffffffffffffffff82169050919050565b5f620003a6826200037b565b9050919050565b620003b8816200039a565b82525050565b5f819050919050565b5f819050919050565b5f819050919050565b5f620003f9620003f3620003ed84620003be565b620003d0565b620003c7565b9050919050565b6200040b81620003d9565b82525050565b5f6080820190508181035f8301526200042a8162000355565b90506200043b6020830186620003ad565b6200044a6040830185620003ad565b62000459606083018462000400565b949350505050565b5f604051905090565b5f80fd5b5f80fd5b5f8115159050919050565b620004888162000472565b811462000493575f80fd5b50565b5f81519050620004a6816200047d565b92915050565b5f60208284031215620004c457620004c36200046a565b5b5f620004d38482850162000496565b91505092915050565b7f6661696c656420746f207472616e7366657220616265726100000000000000005f82015250565b5f620005126018836200031d565b91506200051f82620004dc565b602082019050919050565b5f6020820190508181035f830152620005438162000504565b9050919050565b5f6020820190508181035f830152620005638162000355565b9050919050565b5f62000576826200039a565b9050919050565b62000588816200056a565b811462000593575f80fd5b50565b5f81519050620005a6816200057d565b92915050565b5f60208284031215620005c457620005c36200046a565b5b5f620005d38482850162000596565b91505092915050565b5f620005fc620005f6620005f0846200037b565b620003d0565b6200037b565b9050919050565b5f6200060f82620005dc565b9050919050565b5f620006228262000603565b9050919050565b620006348162000616565b82525050565b5f6020820190506200064f5f83018462000629565b92915050565b5f80fd5b5f80fd5b5f601f19601f8301169050919050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52604160045260245ffd5b620006a5826200065d565b810181811067ffffffffffffffff82111715620006c757620006c66200066d565b5b80604052505050565b5f620006db62000461565b9050620006e982826200069a565b919050565b5f67ffffffffffffffff8211156200070b576200070a6200066d565b5b62000716826200065d565b9050602081019050919050565b5f5b838110156200074257808201518184015260208101905062000725565b5f8484015250505050565b5f620007636200075d84620006ee565b620006d0565b90508281526020810184848401111562000782576200078162000659565b5b6200078f84828562000723565b509392505050565b5f82601f830112620007ae57620007ad62000655565b5b8151620007c08482602086016200074d565b91505092915050565b5f60208284031215620007e157620007e06200046a565b5b5f82015167ffffffffffffffff8111156200080157620008006200046e565b5b6200080f8482850162000797565b91505092915050565b5f81519050919050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52602260045260245ffd5b5f60028204905060018216806200086757607f821691505b6020821081036200087d576200087c62000822565b5b50919050565b5f819050815f5260205f209050919050565b5f6020601f8301049050919050565b5f82821b905092915050565b5f60088302620008e17fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff82620008a4565b620008ed8683620008a4565b95508019841693508086168417925050509392505050565b5f620009256200091f6200091984620003c7565b620003d0565b620003c7565b9050919050565b5f819050919050565b620009408362000905565b620009586200094f826200092c565b848454620008b0565b825550505050565b5f90565b6200096e62000960565b6200097b81848462000935565b505050565b5b81811015620009a257620009965f8262000964565b60018101905062000981565b5050565b601f821115620009f157620009bb8162000883565b620009c68462000895565b81016020851015620009d6578190505b620009ee620009e58562000895565b83018262000980565b50505b505050565b5f82821c905092915050565b5f62000a135f1984600802620009f6565b1980831691505092915050565b5f62000a2d838362000a02565b9150826002028217905092915050565b62000a488262000818565b67ffffffffffffffff81111562000a645762000a636200066d565b5b62000a7082546200084f565b62000a7d828285620009a6565b5f60209050601f83116001811462000ab3575f841562000a9e578287015190505b62000aaa858262000a20565b86555062000b19565b601f19841662000ac38662000883565b5f5b8281101562000aec5784890151825560018201915060208501945060208101905062000ac5565b8683101562000b0c578489015162000b08601f89168262000a02565b8355505b6001600288020188555050505b505050505050565b5f81905092915050565b5f62000b3960058362000b21565b915062000b46826200032d565b600582019050919050565b5f62000b5d8262000b2b565b9150819050919050565b5f815462000b75816200084f565b62000b81818662000b21565b9450600182165f811462000b9e576001811462000bb45762000bea565b60ff198316865281151582028601935062000bea565b62000bbf8562000883565b5f5b8381101562000be25781548189015260018201915060208101905062000bc1565b838801955050505b50505092915050565b5f62000c00828462000b67565b915081905092915050565b7f72657475726e6564207468652077726f6e672064656e6f6d00000000000000005f82015250565b5f62000c416018836200031d565b915062000c4e8262000c0b565b602082019050919050565b5f6020820190508181035f83015262000c728162000c33565b9050919050565b60805161037962000c915f395f60c201526103795ff3fe608060405234801561000f575f80fd5b506004361061003f575f3560e01c8063558f208414610043578063714ba40c14610061578063c370b0421461007f575b5f80fd5b61004b61009d565b60405161005891906101ea565b60405180910390f35b6100696100c0565b6040516100769190610223565b60405180910390f35b6100876100e4565b60405161009491906102c6565b60405180910390f35b5f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b7f000000000000000000000000000000000000000000000000000000000000000081565b600180546100f190610313565b80601f016020809104026020016040519081016040528092919081815260200182805461011d90610313565b80156101685780601f1061013f57610100808354040283529160200191610168565b820191905f5260205f20905b81548152906001019060200180831161014b57829003601f168201915b505050505081565b5f73ffffffffffffffffffffffffffffffffffffffff82169050919050565b5f819050919050565b5f6101b26101ad6101a884610170565b61018f565b610170565b9050919050565b5f6101c382610198565b9050919050565b5f6101d4826101b9565b9050919050565b6101e4816101ca565b82525050565b5f6020820190506101fd5f8301846101db565b92915050565b5f61020d826101b9565b9050919050565b61021d81610203565b82525050565b5f6020820190506102365f830184610214565b92915050565b5f81519050919050565b5f82825260208201905092915050565b5f5b83811015610273578082015181840152602081019050610258565b5f8484015250505050565b5f601f19601f8301169050919050565b5f6102988261023c565b6102a28185610246565b93506102b2818560208601610256565b6102bb8161027e565b840191505092915050565b5f6020820190508181035f8301526102de818461028e565b905092915050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52602260045260245ffd5b5f600282049050600182168061032a57607f821691505b60208210810361033d5761033c6102e6565b5b5091905056fea2646970667358221220ba59e5c05af74d8a1b3960e5397d27298f19634714c3d9c036f0ff45d030440364736f6c63430008140033", } // PrecompileConstructorABI is the input ABI used to generate the binding from. diff --git a/contracts/bindings/testing/solmate_erc20.abigen.go b/contracts/bindings/testing/solmate_erc20.abigen.go index 044cae7c7..b05c3b6da 100644 --- a/contracts/bindings/testing/solmate_erc20.abigen.go +++ b/contracts/bindings/testing/solmate_erc20.abigen.go @@ -32,7 +32,7 @@ var ( // SolmateERC20MetaData contains all meta data concerning the SolmateERC20 contract. var SolmateERC20MetaData = &bind.MetaData{ ABI: "[{\"inputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"constructor\"},{\"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\":\"to\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"}],\"name\":\"Mint\",\"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\":\"DOMAIN_SEPARATOR\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"name\":\"allowance\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"spender\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"}],\"name\":\"approve\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"name\":\"balanceOf\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"decimals\",\"outputs\":[{\"internalType\":\"uint8\",\"name\":\"\",\"type\":\"uint8\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"}],\"name\":\"mint\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"name\",\"outputs\":[{\"internalType\":\"string\",\"name\":\"\",\"type\":\"string\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"name\":\"nonces\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"spender\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"value\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"deadline\",\"type\":\"uint256\"},{\"internalType\":\"uint8\",\"name\":\"v\",\"type\":\"uint8\"},{\"internalType\":\"bytes32\",\"name\":\"r\",\"type\":\"bytes32\"},{\"internalType\":\"bytes32\",\"name\":\"s\",\"type\":\"bytes32\"}],\"name\":\"permit\",\"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\":\"amount\",\"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\":\"amount\",\"type\":\"uint256\"}],\"name\":\"transferFrom\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"}]", - Bin: "0x60e060405234801562000010575f80fd5b506040518060400160405280600581526020017f546f6b656e0000000000000000000000000000000000000000000000000000008152506040518060400160405280600281526020017f544b0000000000000000000000000000000000000000000000000000000000008152506012825f90816200008f9190620003ca565b508160019081620000a19190620003ca565b508060ff1660808160ff16815250504660a08181525050620000c8620000d860201b60201c565b60c0818152505050505062000637565b5f7f8b73c3c69bb8fe3d512ecc4cf759cc79239f7b179b0ffacaa9a75d522b39400f5f6040516200010a919062000556565b60405180910390207fc89efdaa54c0f20c7adf612882df0950f5a951637e0307cdcb4c672f298b8bc646306040516020016200014b959493929190620005dc565b60405160208183030381529060405280519060200120905090565b5f81519050919050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52604160045260245ffd5b7f4e487b71000000000000000000000000000000000000000000000000000000005f52602260045260245ffd5b5f6002820490506001821680620001e257607f821691505b602082108103620001f857620001f76200019d565b5b50919050565b5f819050815f5260205f209050919050565b5f6020601f8301049050919050565b5f82821b905092915050565b5f600883026200025c7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff826200021f565b6200026886836200021f565b95508019841693508086168417925050509392505050565b5f819050919050565b5f819050919050565b5f620002b2620002ac620002a68462000280565b62000289565b62000280565b9050919050565b5f819050919050565b620002cd8362000292565b620002e5620002dc82620002b9565b8484546200022b565b825550505050565b5f90565b620002fb620002ed565b62000308818484620002c2565b505050565b5b818110156200032f57620003235f82620002f1565b6001810190506200030e565b5050565b601f8211156200037e576200034881620001fe565b620003538462000210565b8101602085101562000363578190505b6200037b620003728562000210565b8301826200030d565b50505b505050565b5f82821c905092915050565b5f620003a05f198460080262000383565b1980831691505092915050565b5f620003ba83836200038f565b9150826002028217905092915050565b620003d58262000166565b67ffffffffffffffff811115620003f157620003f062000170565b5b620003fd8254620001ca565b6200040a82828562000333565b5f60209050601f83116001811462000440575f84156200042b578287015190505b620004378582620003ad565b865550620004a6565b601f1984166200045086620001fe565b5f5b82811015620004795784890151825560018201915060208501945060208101905062000452565b8683101562000499578489015162000495601f8916826200038f565b8355505b6001600288020188555050505b505050505050565b5f81905092915050565b5f819050815f5260205f209050919050565b5f8154620004d881620001ca565b620004e48186620004ae565b9450600182165f811462000501576001811462000517576200054d565b60ff19831686528115158202860193506200054d565b6200052285620004b8565b5f5b83811015620005455781548189015260018201915060208101905062000524565b838801955050505b50505092915050565b5f620005638284620004ca565b915081905092915050565b5f819050919050565b62000582816200056e565b82525050565b620005938162000280565b82525050565b5f73ffffffffffffffffffffffffffffffffffffffff82169050919050565b5f620005c48262000599565b9050919050565b620005d681620005b8565b82525050565b5f60a082019050620005f15f83018862000577565b62000600602083018762000577565b6200060f604083018662000577565b6200061e606083018562000588565b6200062d6080830184620005cb565b9695505050505050565b60805160a05160c0516115b0620006625f395f6106d301525f61069f01525f61067a01526115b05ff3fe608060405234801561000f575f80fd5b50600436106100cd575f3560e01c806340c10f191161008a57806395d89b411161006457806395d89b4114610225578063a9059cbb14610243578063d505accf14610273578063dd62ed3e1461028f576100cd565b806340c10f19146101a957806370a08231146101c55780637ecebe00146101f5576100cd565b806306fdde03146100d1578063095ea7b3146100ef57806318160ddd1461011f57806323b872dd1461013d578063313ce5671461016d5780633644e5151461018b575b5f80fd5b6100d96102bf565b6040516100e69190610e03565b60405180910390f35b61010960048036038101906101049190610eb4565b61034a565b6040516101169190610f0c565b60405180910390f35b610127610437565b6040516101349190610f34565b60405180910390f35b61015760048036038101906101529190610f4d565b61043d565b6040516101649190610f0c565b60405180910390f35b610175610678565b6040516101829190610fb8565b60405180910390f35b61019361069c565b6040516101a09190610fe9565b60405180910390f35b6101c360048036038101906101be9190610eb4565b6106f8565b005b6101df60048036038101906101da9190611002565b610754565b6040516101ec9190610f34565b60405180910390f35b61020f600480360381019061020a9190611002565b610769565b60405161021c9190610f34565b60405180910390f35b61022d61077e565b60405161023a9190610e03565b60405180910390f35b61025d60048036038101906102589190610eb4565b61080a565b60405161026a9190610f0c565b60405180910390f35b61028d60048036038101906102889190611081565b610917565b005b6102a960048036038101906102a4919061111e565b610c04565b6040516102b69190610f34565b60405180910390f35b5f80546102cb90611189565b80601f01602080910402602001604051908101604052809291908181526020018280546102f790611189565b80156103425780601f1061031957610100808354040283529160200191610342565b820191905f5260205f20905b81548152906001019060200180831161032557829003601f168201915b505050505081565b5f8160045f3373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20819055508273ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925846040516104259190610f34565b60405180910390a36001905092915050565b60025481565b5f8060045f8673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f3373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205490507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff811461056a5782816104ed91906111e6565b60045f8773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f3373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20819055505b8260035f8773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8282546105b691906111e6565b925050819055508260035f8673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f82825401925050819055508373ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef856040516106649190610f34565b60405180910390a360019150509392505050565b7f000000000000000000000000000000000000000000000000000000000000000081565b5f7f000000000000000000000000000000000000000000000000000000000000000046146106d1576106cc610c24565b6106f3565b7f00000000000000000000000000000000000000000000000000000000000000005b905090565b6107028282610cae565b8173ffffffffffffffffffffffffffffffffffffffff167f0f6798a560793a54c3bcfe86a93cde1e73087d944c0ea20544137d4121396885826040516107489190610f34565b60405180910390a25050565b6003602052805f5260405f205f915090505481565b6005602052805f5260405f205f915090505481565b6001805461078b90611189565b80601f01602080910402602001604051908101604052809291908181526020018280546107b790611189565b80156108025780601f106107d957610100808354040283529160200191610802565b820191905f5260205f20905b8154815290600101906020018083116107e557829003601f168201915b505050505081565b5f8160035f3373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f82825461085791906111e6565b925050819055508160035f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f82825401925050819055508273ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef846040516109059190610f34565b60405180910390a36001905092915050565b4284101561095a576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161095190611263565b60405180910390fd5b5f600161096561069c565b7f6e71edae12b1b97f4d1f60370fef10105fa2faae0126114a169c64845d6126c98a8a8a60055f8f73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f815480929190600101919050558b6040516020016109ea96959493929190611290565b60405160208183030381529060405280519060200120604051602001610a11929190611363565b604051602081830303815290604052805190602001208585856040515f8152602001604052604051610a469493929190611399565b6020604051602081039080840390855afa158015610a66573d5f803e3d5ffd5b5050506020604051035190505f73ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1614158015610ad957508773ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff16145b610b18576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610b0f90611426565b60405180910390fd5b8560045f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8973ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2081905550508573ffffffffffffffffffffffffffffffffffffffff168773ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92587604051610bf39190610f34565b60405180910390a350505050505050565b6004602052815f5260405f20602052805f5260405f205f91509150505481565b5f7f8b73c3c69bb8fe3d512ecc4cf759cc79239f7b179b0ffacaa9a75d522b39400f5f604051610c5491906114e0565b60405180910390207fc89efdaa54c0f20c7adf612882df0950f5a951637e0307cdcb4c672f298b8bc64630604051602001610c939594939291906114f6565b60405160208183030381529060405280519060200120905090565b8060025f828254610cbf9190611547565b925050819055508060035f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f82825401925050819055508173ffffffffffffffffffffffffffffffffffffffff165f73ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef83604051610d6d9190610f34565b60405180910390a35050565b5f81519050919050565b5f82825260208201905092915050565b5f5b83811015610db0578082015181840152602081019050610d95565b5f8484015250505050565b5f601f19601f8301169050919050565b5f610dd582610d79565b610ddf8185610d83565b9350610def818560208601610d93565b610df881610dbb565b840191505092915050565b5f6020820190508181035f830152610e1b8184610dcb565b905092915050565b5f80fd5b5f73ffffffffffffffffffffffffffffffffffffffff82169050919050565b5f610e5082610e27565b9050919050565b610e6081610e46565b8114610e6a575f80fd5b50565b5f81359050610e7b81610e57565b92915050565b5f819050919050565b610e9381610e81565b8114610e9d575f80fd5b50565b5f81359050610eae81610e8a565b92915050565b5f8060408385031215610eca57610ec9610e23565b5b5f610ed785828601610e6d565b9250506020610ee885828601610ea0565b9150509250929050565b5f8115159050919050565b610f0681610ef2565b82525050565b5f602082019050610f1f5f830184610efd565b92915050565b610f2e81610e81565b82525050565b5f602082019050610f475f830184610f25565b92915050565b5f805f60608486031215610f6457610f63610e23565b5b5f610f7186828701610e6d565b9350506020610f8286828701610e6d565b9250506040610f9386828701610ea0565b9150509250925092565b5f60ff82169050919050565b610fb281610f9d565b82525050565b5f602082019050610fcb5f830184610fa9565b92915050565b5f819050919050565b610fe381610fd1565b82525050565b5f602082019050610ffc5f830184610fda565b92915050565b5f6020828403121561101757611016610e23565b5b5f61102484828501610e6d565b91505092915050565b61103681610f9d565b8114611040575f80fd5b50565b5f813590506110518161102d565b92915050565b61106081610fd1565b811461106a575f80fd5b50565b5f8135905061107b81611057565b92915050565b5f805f805f805f60e0888a03121561109c5761109b610e23565b5b5f6110a98a828b01610e6d565b97505060206110ba8a828b01610e6d565b96505060406110cb8a828b01610ea0565b95505060606110dc8a828b01610ea0565b94505060806110ed8a828b01611043565b93505060a06110fe8a828b0161106d565b92505060c061110f8a828b0161106d565b91505092959891949750929550565b5f806040838503121561113457611133610e23565b5b5f61114185828601610e6d565b925050602061115285828601610e6d565b9150509250929050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52602260045260245ffd5b5f60028204905060018216806111a057607f821691505b6020821081036111b3576111b261115c565b5b50919050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601160045260245ffd5b5f6111f082610e81565b91506111fb83610e81565b9250828203905081811115611213576112126111b9565b5b92915050565b7f5045524d49545f444541444c494e455f455850495245440000000000000000005f82015250565b5f61124d601783610d83565b915061125882611219565b602082019050919050565b5f6020820190508181035f83015261127a81611241565b9050919050565b61128a81610e46565b82525050565b5f60c0820190506112a35f830189610fda565b6112b06020830188611281565b6112bd6040830187611281565b6112ca6060830186610f25565b6112d76080830185610f25565b6112e460a0830184610f25565b979650505050505050565b5f81905092915050565b7f19010000000000000000000000000000000000000000000000000000000000005f82015250565b5f61132d6002836112ef565b9150611338826112f9565b600282019050919050565b5f819050919050565b61135d61135882610fd1565b611343565b82525050565b5f61136d82611321565b9150611379828561134c565b602082019150611389828461134c565b6020820191508190509392505050565b5f6080820190506113ac5f830187610fda565b6113b96020830186610fa9565b6113c66040830185610fda565b6113d36060830184610fda565b95945050505050565b7f494e56414c49445f5349474e45520000000000000000000000000000000000005f82015250565b5f611410600e83610d83565b915061141b826113dc565b602082019050919050565b5f6020820190508181035f83015261143d81611404565b9050919050565b5f81905092915050565b5f819050815f5260205f209050919050565b5f815461146c81611189565b6114768186611444565b9450600182165f811461149057600181146114a5576114d7565b60ff19831686528115158202860193506114d7565b6114ae8561144e565b5f5b838110156114cf578154818901526001820191506020810190506114b0565b838801955050505b50505092915050565b5f6114eb8284611460565b915081905092915050565b5f60a0820190506115095f830188610fda565b6115166020830187610fda565b6115236040830186610fda565b6115306060830185610f25565b61153d6080830184611281565b9695505050505050565b5f61155182610e81565b915061155c83610e81565b9250828201905080821115611574576115736111b9565b5b9291505056fea26469706673582212205e042b28d312604c9eb9f461fa6a115a942807f99d76a60aa48515134e1ded3e64736f6c63430008140033", + Bin: "0x60e060405234801562000010575f80fd5b506040518060400160405280600581526020017f546f6b656e0000000000000000000000000000000000000000000000000000008152506040518060400160405280600281526020017f544b0000000000000000000000000000000000000000000000000000000000008152506012825f90816200008f9190620003ca565b508160019081620000a19190620003ca565b508060ff1660808160ff16815250504660a08181525050620000c8620000d860201b60201c565b60c0818152505050505062000637565b5f7f8b73c3c69bb8fe3d512ecc4cf759cc79239f7b179b0ffacaa9a75d522b39400f5f6040516200010a919062000556565b60405180910390207fc89efdaa54c0f20c7adf612882df0950f5a951637e0307cdcb4c672f298b8bc646306040516020016200014b959493929190620005dc565b60405160208183030381529060405280519060200120905090565b5f81519050919050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52604160045260245ffd5b7f4e487b71000000000000000000000000000000000000000000000000000000005f52602260045260245ffd5b5f6002820490506001821680620001e257607f821691505b602082108103620001f857620001f76200019d565b5b50919050565b5f819050815f5260205f209050919050565b5f6020601f8301049050919050565b5f82821b905092915050565b5f600883026200025c7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff826200021f565b6200026886836200021f565b95508019841693508086168417925050509392505050565b5f819050919050565b5f819050919050565b5f620002b2620002ac620002a68462000280565b62000289565b62000280565b9050919050565b5f819050919050565b620002cd8362000292565b620002e5620002dc82620002b9565b8484546200022b565b825550505050565b5f90565b620002fb620002ed565b62000308818484620002c2565b505050565b5b818110156200032f57620003235f82620002f1565b6001810190506200030e565b5050565b601f8211156200037e576200034881620001fe565b620003538462000210565b8101602085101562000363578190505b6200037b620003728562000210565b8301826200030d565b50505b505050565b5f82821c905092915050565b5f620003a05f198460080262000383565b1980831691505092915050565b5f620003ba83836200038f565b9150826002028217905092915050565b620003d58262000166565b67ffffffffffffffff811115620003f157620003f062000170565b5b620003fd8254620001ca565b6200040a82828562000333565b5f60209050601f83116001811462000440575f84156200042b578287015190505b620004378582620003ad565b865550620004a6565b601f1984166200045086620001fe565b5f5b82811015620004795784890151825560018201915060208501945060208101905062000452565b8683101562000499578489015162000495601f8916826200038f565b8355505b6001600288020188555050505b505050505050565b5f81905092915050565b5f819050815f5260205f209050919050565b5f8154620004d881620001ca565b620004e48186620004ae565b9450600182165f811462000501576001811462000517576200054d565b60ff19831686528115158202860193506200054d565b6200052285620004b8565b5f5b83811015620005455781548189015260018201915060208101905062000524565b838801955050505b50505092915050565b5f620005638284620004ca565b915081905092915050565b5f819050919050565b62000582816200056e565b82525050565b620005938162000280565b82525050565b5f73ffffffffffffffffffffffffffffffffffffffff82169050919050565b5f620005c48262000599565b9050919050565b620005d681620005b8565b82525050565b5f60a082019050620005f15f83018862000577565b62000600602083018762000577565b6200060f604083018662000577565b6200061e606083018562000588565b6200062d6080830184620005cb565b9695505050505050565b60805160a05160c0516115b0620006625f395f6106d301525f61069f01525f61067a01526115b05ff3fe608060405234801561000f575f80fd5b50600436106100cd575f3560e01c806340c10f191161008a57806395d89b411161006457806395d89b4114610225578063a9059cbb14610243578063d505accf14610273578063dd62ed3e1461028f576100cd565b806340c10f19146101a957806370a08231146101c55780637ecebe00146101f5576100cd565b806306fdde03146100d1578063095ea7b3146100ef57806318160ddd1461011f57806323b872dd1461013d578063313ce5671461016d5780633644e5151461018b575b5f80fd5b6100d96102bf565b6040516100e69190610e03565b60405180910390f35b61010960048036038101906101049190610eb4565b61034a565b6040516101169190610f0c565b60405180910390f35b610127610437565b6040516101349190610f34565b60405180910390f35b61015760048036038101906101529190610f4d565b61043d565b6040516101649190610f0c565b60405180910390f35b610175610678565b6040516101829190610fb8565b60405180910390f35b61019361069c565b6040516101a09190610fe9565b60405180910390f35b6101c360048036038101906101be9190610eb4565b6106f8565b005b6101df60048036038101906101da9190611002565b610754565b6040516101ec9190610f34565b60405180910390f35b61020f600480360381019061020a9190611002565b610769565b60405161021c9190610f34565b60405180910390f35b61022d61077e565b60405161023a9190610e03565b60405180910390f35b61025d60048036038101906102589190610eb4565b61080a565b60405161026a9190610f0c565b60405180910390f35b61028d60048036038101906102889190611081565b610917565b005b6102a960048036038101906102a4919061111e565b610c04565b6040516102b69190610f34565b60405180910390f35b5f80546102cb90611189565b80601f01602080910402602001604051908101604052809291908181526020018280546102f790611189565b80156103425780601f1061031957610100808354040283529160200191610342565b820191905f5260205f20905b81548152906001019060200180831161032557829003601f168201915b505050505081565b5f8160045f3373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20819055508273ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925846040516104259190610f34565b60405180910390a36001905092915050565b60025481565b5f8060045f8673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f3373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205490507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff811461056a5782816104ed91906111e6565b60045f8773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f3373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20819055505b8260035f8773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8282546105b691906111e6565b925050819055508260035f8673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f82825401925050819055508373ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef856040516106649190610f34565b60405180910390a360019150509392505050565b7f000000000000000000000000000000000000000000000000000000000000000081565b5f7f000000000000000000000000000000000000000000000000000000000000000046146106d1576106cc610c24565b6106f3565b7f00000000000000000000000000000000000000000000000000000000000000005b905090565b6107028282610cae565b8173ffffffffffffffffffffffffffffffffffffffff167f0f6798a560793a54c3bcfe86a93cde1e73087d944c0ea20544137d4121396885826040516107489190610f34565b60405180910390a25050565b6003602052805f5260405f205f915090505481565b6005602052805f5260405f205f915090505481565b6001805461078b90611189565b80601f01602080910402602001604051908101604052809291908181526020018280546107b790611189565b80156108025780601f106107d957610100808354040283529160200191610802565b820191905f5260205f20905b8154815290600101906020018083116107e557829003601f168201915b505050505081565b5f8160035f3373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f82825461085791906111e6565b925050819055508160035f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f82825401925050819055508273ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef846040516109059190610f34565b60405180910390a36001905092915050565b4284101561095a576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161095190611263565b60405180910390fd5b5f600161096561069c565b7f6e71edae12b1b97f4d1f60370fef10105fa2faae0126114a169c64845d6126c98a8a8a60055f8f73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f815480929190600101919050558b6040516020016109ea96959493929190611290565b60405160208183030381529060405280519060200120604051602001610a11929190611363565b604051602081830303815290604052805190602001208585856040515f8152602001604052604051610a469493929190611399565b6020604051602081039080840390855afa158015610a66573d5f803e3d5ffd5b5050506020604051035190505f73ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1614158015610ad957508773ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff16145b610b18576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610b0f90611426565b60405180910390fd5b8560045f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8973ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2081905550508573ffffffffffffffffffffffffffffffffffffffff168773ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92587604051610bf39190610f34565b60405180910390a350505050505050565b6004602052815f5260405f20602052805f5260405f205f91509150505481565b5f7f8b73c3c69bb8fe3d512ecc4cf759cc79239f7b179b0ffacaa9a75d522b39400f5f604051610c5491906114e0565b60405180910390207fc89efdaa54c0f20c7adf612882df0950f5a951637e0307cdcb4c672f298b8bc64630604051602001610c939594939291906114f6565b60405160208183030381529060405280519060200120905090565b8060025f828254610cbf9190611547565b925050819055508060035f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f82825401925050819055508173ffffffffffffffffffffffffffffffffffffffff165f73ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef83604051610d6d9190610f34565b60405180910390a35050565b5f81519050919050565b5f82825260208201905092915050565b5f5b83811015610db0578082015181840152602081019050610d95565b5f8484015250505050565b5f601f19601f8301169050919050565b5f610dd582610d79565b610ddf8185610d83565b9350610def818560208601610d93565b610df881610dbb565b840191505092915050565b5f6020820190508181035f830152610e1b8184610dcb565b905092915050565b5f80fd5b5f73ffffffffffffffffffffffffffffffffffffffff82169050919050565b5f610e5082610e27565b9050919050565b610e6081610e46565b8114610e6a575f80fd5b50565b5f81359050610e7b81610e57565b92915050565b5f819050919050565b610e9381610e81565b8114610e9d575f80fd5b50565b5f81359050610eae81610e8a565b92915050565b5f8060408385031215610eca57610ec9610e23565b5b5f610ed785828601610e6d565b9250506020610ee885828601610ea0565b9150509250929050565b5f8115159050919050565b610f0681610ef2565b82525050565b5f602082019050610f1f5f830184610efd565b92915050565b610f2e81610e81565b82525050565b5f602082019050610f475f830184610f25565b92915050565b5f805f60608486031215610f6457610f63610e23565b5b5f610f7186828701610e6d565b9350506020610f8286828701610e6d565b9250506040610f9386828701610ea0565b9150509250925092565b5f60ff82169050919050565b610fb281610f9d565b82525050565b5f602082019050610fcb5f830184610fa9565b92915050565b5f819050919050565b610fe381610fd1565b82525050565b5f602082019050610ffc5f830184610fda565b92915050565b5f6020828403121561101757611016610e23565b5b5f61102484828501610e6d565b91505092915050565b61103681610f9d565b8114611040575f80fd5b50565b5f813590506110518161102d565b92915050565b61106081610fd1565b811461106a575f80fd5b50565b5f8135905061107b81611057565b92915050565b5f805f805f805f60e0888a03121561109c5761109b610e23565b5b5f6110a98a828b01610e6d565b97505060206110ba8a828b01610e6d565b96505060406110cb8a828b01610ea0565b95505060606110dc8a828b01610ea0565b94505060806110ed8a828b01611043565b93505060a06110fe8a828b0161106d565b92505060c061110f8a828b0161106d565b91505092959891949750929550565b5f806040838503121561113457611133610e23565b5b5f61114185828601610e6d565b925050602061115285828601610e6d565b9150509250929050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52602260045260245ffd5b5f60028204905060018216806111a057607f821691505b6020821081036111b3576111b261115c565b5b50919050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601160045260245ffd5b5f6111f082610e81565b91506111fb83610e81565b9250828203905081811115611213576112126111b9565b5b92915050565b7f5045524d49545f444541444c494e455f455850495245440000000000000000005f82015250565b5f61124d601783610d83565b915061125882611219565b602082019050919050565b5f6020820190508181035f83015261127a81611241565b9050919050565b61128a81610e46565b82525050565b5f60c0820190506112a35f830189610fda565b6112b06020830188611281565b6112bd6040830187611281565b6112ca6060830186610f25565b6112d76080830185610f25565b6112e460a0830184610f25565b979650505050505050565b5f81905092915050565b7f19010000000000000000000000000000000000000000000000000000000000005f82015250565b5f61132d6002836112ef565b9150611338826112f9565b600282019050919050565b5f819050919050565b61135d61135882610fd1565b611343565b82525050565b5f61136d82611321565b9150611379828561134c565b602082019150611389828461134c565b6020820191508190509392505050565b5f6080820190506113ac5f830187610fda565b6113b96020830186610fa9565b6113c66040830185610fda565b6113d36060830184610fda565b95945050505050565b7f494e56414c49445f5349474e45520000000000000000000000000000000000005f82015250565b5f611410600e83610d83565b915061141b826113dc565b602082019050919050565b5f6020820190508181035f83015261143d81611404565b9050919050565b5f81905092915050565b5f819050815f5260205f209050919050565b5f815461146c81611189565b6114768186611444565b9450600182165f811461149057600181146114a5576114d7565b60ff19831686528115158202860193506114d7565b6114ae8561144e565b5f5b838110156114cf578154818901526001820191506020810190506114b0565b838801955050505b50505092915050565b5f6114eb8284611460565b915081905092915050565b5f60a0820190506115095f830188610fda565b6115166020830187610fda565b6115236040830186610fda565b6115306060830185610f25565b61153d6080830184611281565b9695505050505050565b5f61155182610e81565b915061155c83610e81565b9250828201905080821115611574576115736111b9565b5b9291505056fea2646970667358221220383dcd14dbb4c0b9470e469c942780d9bdeb224d65a2dfb2a8153bcffc7cd73064736f6c63430008140033", } // SolmateERC20ABI is the input ABI used to generate the binding from. diff --git a/contracts/bindings/testing/swapper.abigen.go b/contracts/bindings/testing/swapper.abigen.go index 93ae83b58..e8851e82b 100644 --- a/contracts/bindings/testing/swapper.abigen.go +++ b/contracts/bindings/testing/swapper.abigen.go @@ -32,7 +32,7 @@ var ( // SwapperMetaData contains all meta data concerning the Swapper contract. var SwapperMetaData = &bind.MetaData{ ABI: "[{\"inputs\":[{\"internalType\":\"address\",\"name\":\"token\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"}],\"name\":\"deposit\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"erc20Module\",\"outputs\":[{\"internalType\":\"contractIERC20Module\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"string\",\"name\":\"denom\",\"type\":\"string\"}],\"name\":\"getPolarisERC20\",\"outputs\":[{\"internalType\":\"contractIERC20\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"string\",\"name\":\"denom\",\"type\":\"string\"},{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"}],\"name\":\"swap\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"contractIERC20\",\"name\":\"token\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"}],\"name\":\"swap\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"}]", - Bin: "0x60a06040526269696973ffffffffffffffffffffffffffffffffffffffff1660809073ffffffffffffffffffffffffffffffffffffffff16815250348015610045575f80fd5b50608051610b116100735f395f81816101c2015281816101e7015281816102d101526103b80152610b115ff3fe608060405234801561000f575f80fd5b5060043610610055575f3560e01c806347e7ef2414610059578063714ba40c146100755780639d456b6214610093578063d004f0f7146100af578063d6ece467146100cb575b5f80fd5b610073600480360381019061006e91906104ed565b6100fb565b005b61007d6101c0565b60405161008a9190610586565b60405180910390f35b6100ad60048036038101906100a89190610600565b6101e4565b005b6100c960048036038101906100c49190610698565b6102ce565b005b6100e560048036038101906100e091906106d6565b6103b5565b6040516100f29190610741565b60405180910390f35b5f8273ffffffffffffffffffffffffffffffffffffffff166323b872dd3330856040518463ffffffff1660e01b815260040161013993929190610778565b6020604051808303815f875af1158015610155573d5f803e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061017991906107e2565b9050806101bb576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016101b290610867565b60405180910390fd5b505050565b7f000000000000000000000000000000000000000000000000000000000000000081565b5f7f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff1663096b406985853333876040518663ffffffff1660e01b81526004016102469594939291906108cf565b6020604051808303815f875af1158015610262573d5f803e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061028691906107e2565b9050806102c8576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016102bf9061098b565b60405180910390fd5b50505050565b5f7f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff1663b96d8bec843333866040518563ffffffff1660e01b815260040161032e94939291906109a9565b6020604051808303815f875af115801561034a573d5f803e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061036e91906107e2565b9050806103b0576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016103a790610a5c565b60405180910390fd5b505050565b5f7f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff1663a333e57c84846040518363ffffffff1660e01b8152600401610411929190610a7a565b602060405180830381865afa15801561042c573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906104509190610ab0565b905092915050565b5f80fd5b5f80fd5b5f73ffffffffffffffffffffffffffffffffffffffff82169050919050565b5f61048982610460565b9050919050565b6104998161047f565b81146104a3575f80fd5b50565b5f813590506104b481610490565b92915050565b5f819050919050565b6104cc816104ba565b81146104d6575f80fd5b50565b5f813590506104e7816104c3565b92915050565b5f806040838503121561050357610502610458565b5b5f610510858286016104a6565b9250506020610521858286016104d9565b9150509250929050565b5f819050919050565b5f61054e61054961054484610460565b61052b565b610460565b9050919050565b5f61055f82610534565b9050919050565b5f61057082610555565b9050919050565b61058081610566565b82525050565b5f6020820190506105995f830184610577565b92915050565b5f80fd5b5f80fd5b5f80fd5b5f8083601f8401126105c0576105bf61059f565b5b8235905067ffffffffffffffff8111156105dd576105dc6105a3565b5b6020830191508360018202830111156105f9576105f86105a7565b5b9250929050565b5f805f6040848603121561061757610616610458565b5b5f84013567ffffffffffffffff8111156106345761063361045c565b5b610640868287016105ab565b93509350506020610653868287016104d9565b9150509250925092565b5f6106678261047f565b9050919050565b6106778161065d565b8114610681575f80fd5b50565b5f813590506106928161066e565b92915050565b5f80604083850312156106ae576106ad610458565b5b5f6106bb85828601610684565b92505060206106cc858286016104d9565b9150509250929050565b5f80602083850312156106ec576106eb610458565b5b5f83013567ffffffffffffffff8111156107095761070861045c565b5b610715858286016105ab565b92509250509250929050565b5f61072b82610555565b9050919050565b61073b81610721565b82525050565b5f6020820190506107545f830184610732565b92915050565b6107638161047f565b82525050565b610772816104ba565b82525050565b5f60608201905061078b5f83018661075a565b610798602083018561075a565b6107a56040830184610769565b949350505050565b5f8115159050919050565b6107c1816107ad565b81146107cb575f80fd5b50565b5f815190506107dc816107b8565b92915050565b5f602082840312156107f7576107f6610458565b5b5f610804848285016107ce565b91505092915050565b5f82825260208201905092915050565b7f537761707065723a207472616e7366657246726f6d206661696c6564000000005f82015250565b5f610851601c8361080d565b915061085c8261081d565b602082019050919050565b5f6020820190508181035f83015261087e81610845565b9050919050565b828183375f83830152505050565b5f601f19601f8301169050919050565b5f6108ae838561080d565b93506108bb838584610885565b6108c483610893565b840190509392505050565b5f6080820190508181035f8301526108e88187896108a3565b90506108f7602083018661075a565b610904604083018561075a565b6109116060830184610769565b9695505050505050565b7f537761707065723a207472616e73666572436f696e546f4552433230206661695f8201527f6c65640000000000000000000000000000000000000000000000000000000000602082015250565b5f61097560238361080d565b91506109808261091b565b604082019050919050565b5f6020820190508181035f8301526109a281610969565b9050919050565b5f6080820190506109bc5f830187610732565b6109c9602083018661075a565b6109d6604083018561075a565b6109e36060830184610769565b95945050505050565b7f537761707065723a207472616e736665724552433230546f436f696e206661695f8201527f6c65640000000000000000000000000000000000000000000000000000000000602082015250565b5f610a4660238361080d565b9150610a51826109ec565b604082019050919050565b5f6020820190508181035f830152610a7381610a3a565b9050919050565b5f6020820190508181035f830152610a938184866108a3565b90509392505050565b5f81519050610aaa8161066e565b92915050565b5f60208284031215610ac557610ac4610458565b5b5f610ad284828501610a9c565b9150509291505056fea2646970667358221220c9a8d8e575a2f0105d843f3afdac2822fae24239f6599c6f2297575f783c22cf64736f6c63430008140033", + Bin: "0x60a06040526269696973ffffffffffffffffffffffffffffffffffffffff1660809073ffffffffffffffffffffffffffffffffffffffff16815250348015610045575f80fd5b50608051610b116100735f395f81816101c2015281816101e7015281816102d101526103b80152610b115ff3fe608060405234801561000f575f80fd5b5060043610610055575f3560e01c806347e7ef2414610059578063714ba40c146100755780639d456b6214610093578063d004f0f7146100af578063d6ece467146100cb575b5f80fd5b610073600480360381019061006e91906104ed565b6100fb565b005b61007d6101c0565b60405161008a9190610586565b60405180910390f35b6100ad60048036038101906100a89190610600565b6101e4565b005b6100c960048036038101906100c49190610698565b6102ce565b005b6100e560048036038101906100e091906106d6565b6103b5565b6040516100f29190610741565b60405180910390f35b5f8273ffffffffffffffffffffffffffffffffffffffff166323b872dd3330856040518463ffffffff1660e01b815260040161013993929190610778565b6020604051808303815f875af1158015610155573d5f803e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061017991906107e2565b9050806101bb576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016101b290610867565b60405180910390fd5b505050565b7f000000000000000000000000000000000000000000000000000000000000000081565b5f7f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff1663096b406985853333876040518663ffffffff1660e01b81526004016102469594939291906108cf565b6020604051808303815f875af1158015610262573d5f803e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061028691906107e2565b9050806102c8576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016102bf9061098b565b60405180910390fd5b50505050565b5f7f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff1663b96d8bec843333866040518563ffffffff1660e01b815260040161032e94939291906109a9565b6020604051808303815f875af115801561034a573d5f803e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061036e91906107e2565b9050806103b0576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016103a790610a5c565b60405180910390fd5b505050565b5f7f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff1663a333e57c84846040518363ffffffff1660e01b8152600401610411929190610a7a565b602060405180830381865afa15801561042c573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906104509190610ab0565b905092915050565b5f80fd5b5f80fd5b5f73ffffffffffffffffffffffffffffffffffffffff82169050919050565b5f61048982610460565b9050919050565b6104998161047f565b81146104a3575f80fd5b50565b5f813590506104b481610490565b92915050565b5f819050919050565b6104cc816104ba565b81146104d6575f80fd5b50565b5f813590506104e7816104c3565b92915050565b5f806040838503121561050357610502610458565b5b5f610510858286016104a6565b9250506020610521858286016104d9565b9150509250929050565b5f819050919050565b5f61054e61054961054484610460565b61052b565b610460565b9050919050565b5f61055f82610534565b9050919050565b5f61057082610555565b9050919050565b61058081610566565b82525050565b5f6020820190506105995f830184610577565b92915050565b5f80fd5b5f80fd5b5f80fd5b5f8083601f8401126105c0576105bf61059f565b5b8235905067ffffffffffffffff8111156105dd576105dc6105a3565b5b6020830191508360018202830111156105f9576105f86105a7565b5b9250929050565b5f805f6040848603121561061757610616610458565b5b5f84013567ffffffffffffffff8111156106345761063361045c565b5b610640868287016105ab565b93509350506020610653868287016104d9565b9150509250925092565b5f6106678261047f565b9050919050565b6106778161065d565b8114610681575f80fd5b50565b5f813590506106928161066e565b92915050565b5f80604083850312156106ae576106ad610458565b5b5f6106bb85828601610684565b92505060206106cc858286016104d9565b9150509250929050565b5f80602083850312156106ec576106eb610458565b5b5f83013567ffffffffffffffff8111156107095761070861045c565b5b610715858286016105ab565b92509250509250929050565b5f61072b82610555565b9050919050565b61073b81610721565b82525050565b5f6020820190506107545f830184610732565b92915050565b6107638161047f565b82525050565b610772816104ba565b82525050565b5f60608201905061078b5f83018661075a565b610798602083018561075a565b6107a56040830184610769565b949350505050565b5f8115159050919050565b6107c1816107ad565b81146107cb575f80fd5b50565b5f815190506107dc816107b8565b92915050565b5f602082840312156107f7576107f6610458565b5b5f610804848285016107ce565b91505092915050565b5f82825260208201905092915050565b7f537761707065723a207472616e7366657246726f6d206661696c6564000000005f82015250565b5f610851601c8361080d565b915061085c8261081d565b602082019050919050565b5f6020820190508181035f83015261087e81610845565b9050919050565b828183375f83830152505050565b5f601f19601f8301169050919050565b5f6108ae838561080d565b93506108bb838584610885565b6108c483610893565b840190509392505050565b5f6080820190508181035f8301526108e88187896108a3565b90506108f7602083018661075a565b610904604083018561075a565b6109116060830184610769565b9695505050505050565b7f537761707065723a207472616e73666572436f696e546f4552433230206661695f8201527f6c65640000000000000000000000000000000000000000000000000000000000602082015250565b5f61097560238361080d565b91506109808261091b565b604082019050919050565b5f6020820190508181035f8301526109a281610969565b9050919050565b5f6080820190506109bc5f830187610732565b6109c9602083018661075a565b6109d6604083018561075a565b6109e36060830184610769565b95945050505050565b7f537761707065723a207472616e736665724552433230546f436f696e206661695f8201527f6c65640000000000000000000000000000000000000000000000000000000000602082015250565b5f610a4660238361080d565b9150610a51826109ec565b604082019050919050565b5f6020820190508181035f830152610a7381610a3a565b9050919050565b5f6020820190508181035f830152610a938184866108a3565b90509392505050565b5f81519050610aaa8161066e565b92915050565b5f60208284031215610ac557610ac4610458565b5b5f610ad284828501610a9c565b9150509291505056fea2646970667358221220ef264331908766eeb97141ee99b861bdeac1ce873513a2eb57849a7600f9410964736f6c63430008140033", } // SwapperABI is the input ABI used to generate the binding from. diff --git a/cosmos/precompile/staking/helpers.go b/cosmos/precompile/staking/helpers.go index a45401909..d29009580 100644 --- a/cosmos/precompile/staking/helpers.go +++ b/cosmos/precompile/staking/helpers.go @@ -32,6 +32,7 @@ import ( sdk "github.com/cosmos/cosmos-sdk/types" stakingtypes "github.com/cosmos/cosmos-sdk/x/staking/types" + generated "pkg.berachain.dev/polaris/contracts/bindings/cosmos/precompile/staking" cosmlib "pkg.berachain.dev/polaris/cosmos/lib" "pkg.berachain.dev/polaris/eth/common" ) @@ -214,7 +215,10 @@ func (c *Contract) activeValidatorsHelper(ctx context.Context) ([]any, error) { res, err := c.querier.Validators(ctx, &stakingtypes.QueryValidatorsRequest{ Status: stakingtypes.BondStatusBonded, }) - if err != nil { + if status.Code(err) == codes.NotFound { + // handle the case where the active validators do not exist + return []any{common.Address{}}, nil + } else if err != nil { return nil, err } @@ -235,7 +239,10 @@ func (c *Contract) validatorsHelper(ctx context.Context) ([]any, error) { res, err := c.querier.Validators(ctx, &stakingtypes.QueryValidatorsRequest{ Status: stakingtypes.BondStatusBonded, }) - if err != nil { + if status.Code(err) == codes.NotFound { + // handle the case where the validators do not exist + return []any{[]generated.IStakingModuleValidator{}}, nil + } else if err != nil { return nil, err } @@ -252,7 +259,10 @@ func (c *Contract) validatorHelper(ctx context.Context, valAddr string) ([]any, res, err := c.querier.Validator(ctx, &stakingtypes.QueryValidatorRequest{ ValidatorAddr: valAddr, }) - if err != nil { + if status.Code(err) == codes.NotFound { + // handle the case where the validator does not exist + return []any{generated.IStakingModuleValidator{}}, nil + } else if err != nil { return nil, err } @@ -270,7 +280,10 @@ func (c *Contract) delegatorValidatorsHelper(ctx context.Context, accAddr string res, err := c.querier.DelegatorValidators(ctx, &stakingtypes.QueryDelegatorValidatorsRequest{ DelegatorAddr: accAddr, }) - if err != nil { + if status.Code(err) == codes.NotFound { + // handle the case where the delegator validators do not exist + return []any{[]generated.IStakingModuleValidator{}}, nil + } else if err != nil { return nil, err }