diff --git a/.github/workflows/hive.yml b/.github/workflows/hive.yml new file mode 100644 index 000000000..981058917 --- /dev/null +++ b/.github/workflows/hive.yml @@ -0,0 +1,61 @@ +# SPDX-License-Identifier: BUSL-1.1 +# +# Copyright (C) 2023, Berachain Foundation. All rights reserved. +# Use of this software is govered by the Business Source License included +# in the LICENSE file of this repository and at www.mariadb.com/bsl11. +# +# ANY USE OF THE LICENSED WORK IN VIOLATION OF THIS LICENSE WILL AUTOMATICALLY +# TERMINATE YOUR RIGHTS UNDER THIS LICENSE FOR THE CURRENT AND ALL OTHER +# VERSIONS OF THE LICENSED WORK. +# +# THIS LICENSE DOES NOT GRANT YOU ANY RIGHT IN ANY TRADEMARK OR LOGO OF +# LICENSOR OR ITS AFFILIATES (PROVIDED THAT YOU MAY USE A TRADEMARK OR LOGO OF +# LICENSOR AS EXPRESSLY REQUIRED BY THIS LICENSE). +# +# TO THE EXTENT PERMITTED BY APPLICABLE LAW, THE LICENSED WORK IS PROVIDED ON +# AN “AS IS” BASIS. LICENSOR HEREBY DISCLAIMS ALL WARRANTIES AND CONDITIONS, +# EXPRESS OR IMPLIED, INCLUDING (WITHOUT LIMITATION) WARRANTIES OF +# MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE, NON-INFRINGEMENT, AND +# TITLE. + +name: ethereum + +on: + pull_request: + +jobs: + hive: + strategy: + matrix: + simulator: [polaris/rpc] + namespace: [cosmos] + os: [ubuntu-latest] + go-version: [1.20.4] + runs-on: ${{ matrix.os }} + steps: + - name: Checkout + uses: actions/checkout@v3 + - name: Install Foundry + uses: foundry-rs/foundry-toolchain@v1 + - name: Setup Golang + uses: actions/setup-go@v3 + with: + go-version: ${{ matrix.go-version }} + - name: Set up Docker Buildx + uses: docker/setup-buildx-action@v2 + - name: Cache Golang Deps + uses: actions/cache@v3 + with: + path: | + ~/.cache/go-build + ~/go + key: ${{ runner.os }}-golang-${{ hashFiles('**/go.sum') }} + restore-keys: | + ${{ runner.os }}-golang- + - name: Run ${{ matrix.namespace }}:testhive ${{ matrix.simulator }} + uses: magefile/mage-action@v2 + with: + version: latest + args: hive:setup ${{ matrix.namespace }}:testhive ${{ matrix.simulator }} + env: + GOPATH: /home/runner/go diff --git a/.github/workflows/pipeline.yml b/.github/workflows/pipeline.yml index 8219d7689..f145c5470 100644 --- a/.github/workflows/pipeline.yml +++ b/.github/workflows/pipeline.yml @@ -60,6 +60,8 @@ jobs: with: version: latest args: ${{ matrix.args }} + env: + GOPATH: /home/runner/go - name: Archive code coverage results uses: actions/upload-artifact@v3 with: diff --git a/.gitignore b/.gitignore index 9bf5de6ab..267a9f8cb 100644 --- a/.gitignore +++ b/.gitignore @@ -181,7 +181,6 @@ release/ data/ .DS_Store *.pyc -*.txt .vscode/*.log # upgrades @@ -200,6 +199,9 @@ contracts/out/ */**/*.bin */**/*.json +# hive +!e2e/hive/**/genesis.json + # geth *.rlp diff --git a/.gitmodules b/.gitmodules index c65a59659..29187eb2f 100644 --- a/.gitmodules +++ b/.gitmodules @@ -1,3 +1,6 @@ [submodule "contracts/lib/forge-std"] path = contracts/lib/forge-std url = https://github.com/foundry-rs/forge-std +[submodule "contracts/lib/solmate"] + path = contracts/lib/solmate + url = https://github.com/transmissions11/solmate diff --git a/contracts/bindings/cosmos/lib/cosmos_types.abigen.go b/contracts/bindings/cosmos/lib/cosmos_types.abigen.go index d9599e87f..b7ebf3fe7 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: "0x608060405234801561000f575f80fd5b5060e18061001c5f395ff3fe6080604052348015600e575f80fd5b50600436106026575f3560e01c80632ff6e5df14602a575b5f80fd5b60406004803603810190603c9190606c565b6042565b005b50565b5f80fd5b5f80fd5b5f80fd5b5f604082840312156063576062604d565b5b81905092915050565b5f60208284031215607e57607d6045565b5b5f82013567ffffffffffffffff81111560985760976049565b5b60a2848285016051565b9150509291505056fea264697066735822122016086c17ea4a6ed2853df3f3a8dbb0e537974f64920b6dd12e79c8e69da4427e64736f6c63430008140033", + Bin: "0x608060405234801561000f575f80fd5b5060e18061001c5f395ff3fe6080604052348015600e575f80fd5b50600436106026575f3560e01c80632ff6e5df14602a575b5f80fd5b60406004803603810190603c9190606c565b6042565b005b50565b5f80fd5b5f80fd5b5f80fd5b5f604082840312156063576062604d565b5b81905092915050565b5f60208284031215607e57607d6045565b5b5f82013567ffffffffffffffff81111560985760976049565b5b60a2848285016051565b9150509291505056fea2646970667358221220b9c03f8abee64d7ef385f44ea72abb346e3dd9e15ec4b857fe4a912525b8f2db64736f6c63430008140033", } // 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 04e82d0f1..0826ddf6e 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: "0x60c060405234801562000010575f80fd5b50604051620025df380380620025df833981810160405281019062000036919062000280565b805f908162000046919062000506565b5046608081815250506200005f6200006d60201b60201c565b60a081815250505062000773565b5f7f8b73c3c69bb8fe3d512ecc4cf759cc79239f7b179b0ffacaa9a75d522b39400f5f6040516200009f919062000692565b60405180910390207fc89efdaa54c0f20c7adf612882df0950f5a951637e0307cdcb4c672f298b8bc64630604051602001620000e095949392919062000718565b60405160208183030381529060405280519060200120905090565b5f604051905090565b5f80fd5b5f80fd5b5f80fd5b5f80fd5b5f601f19601f8301169050919050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52604160045260245ffd5b6200015c8262000114565b810181811067ffffffffffffffff821117156200017e576200017d62000124565b5b80604052505050565b5f62000192620000fb565b9050620001a0828262000151565b919050565b5f67ffffffffffffffff821115620001c257620001c162000124565b5b620001cd8262000114565b9050602081019050919050565b5f5b83811015620001f9578082015181840152602081019050620001dc565b5f8484015250505050565b5f6200021a6200021484620001a5565b62000187565b90508281526020810184848401111562000239576200023862000110565b5b62000246848285620001da565b509392505050565b5f82601f8301126200026557620002646200010c565b5b81516200027784826020860162000204565b91505092915050565b5f6020828403121562000298576200029762000104565b5b5f82015167ffffffffffffffff811115620002b857620002b762000108565b5b620002c6848285016200024e565b91505092915050565b5f81519050919050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52602260045260245ffd5b5f60028204905060018216806200031e57607f821691505b602082108103620003345762000333620002d9565b5b50919050565b5f819050815f5260205f209050919050565b5f6020601f8301049050919050565b5f82821b905092915050565b5f60088302620003987fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff826200035b565b620003a486836200035b565b95508019841693508086168417925050509392505050565b5f819050919050565b5f819050919050565b5f620003ee620003e8620003e284620003bc565b620003c5565b620003bc565b9050919050565b5f819050919050565b6200040983620003ce565b620004216200041882620003f5565b84845462000367565b825550505050565b5f90565b6200043762000429565b62000444818484620003fe565b505050565b5b818110156200046b576200045f5f826200042d565b6001810190506200044a565b5050565b601f821115620004ba5762000484816200033a565b6200048f846200034c565b810160208510156200049f578190505b620004b7620004ae856200034c565b83018262000449565b50505b505050565b5f82821c905092915050565b5f620004dc5f1984600802620004bf565b1980831691505092915050565b5f620004f68383620004cb565b9150826002028217905092915050565b6200051182620002cf565b67ffffffffffffffff8111156200052d576200052c62000124565b5b62000539825462000306565b620005468282856200046f565b5f60209050601f8311600181146200057c575f841562000567578287015190505b620005738582620004e9565b865550620005e2565b601f1984166200058c866200033a565b5f5b82811015620005b5578489015182556001820191506020850194506020810190506200058e565b86831015620005d55784890151620005d1601f891682620004cb565b8355505b6001600288020188555050505b505050505050565b5f81905092915050565b5f819050815f5260205f209050919050565b5f8154620006148162000306565b620006208186620005ea565b9450600182165f81146200063d5760018114620006535762000689565b60ff198316865281151582028601935062000689565b6200065e85620005f4565b5f5b83811015620006815781548189015260018201915060208101905062000660565b838801955050505b50505092915050565b5f6200069f828462000606565b915081905092915050565b5f819050919050565b620006be81620006aa565b82525050565b620006cf81620003bc565b82525050565b5f73ffffffffffffffffffffffffffffffffffffffff82169050919050565b5f6200070082620006d5565b9050919050565b6200071281620006f4565b82525050565b5f60a0820190506200072d5f830188620006b3565b6200073c6020830187620006b3565b6200074b6040830186620006b3565b6200075a6060830185620006c4565b62000769608083018462000707565b9695505050505050565b60805160a051611e4a620007955f395f61075201525f61071e0152611e4a5ff3fe608060405234801561000f575f80fd5b50600436106100cd575f3560e01c806370a082311161008a578063a9059cbb11610064578063a9059cbb14610227578063c370b04214610257578063d505accf14610275578063dd62ed3e14610291576100cd565b806370a08231146101a95780637ecebe00146101d957806395d89b4114610209576100cd565b806306fdde03146100d1578063095ea7b3146100ef57806318160ddd1461011f57806323b872dd1461013d578063313ce5671461016d5780633644e5151461018b575b5f80fd5b6100d96102c1565b6040516100e691906110b3565b60405180910390f35b61010960048036038101906101049190611164565b610350565b60405161011691906111bc565b60405180910390f35b61012761048d565b60405161013491906111e4565b60405180910390f35b610157600480360381019061015291906111fd565b610512565b60405161016491906111bc565b60405180910390f35b610175610713565b6040516101829190611268565b60405180910390f35b61019361071b565b6040516101a09190611299565b60405180910390f35b6101c360048036038101906101be91906112b2565b610777565b6040516101d091906111e4565b60405180910390f35b6101f360048036038101906101ee91906112b2565b610800565b60405161020091906111e4565b60405180910390f35b610211610815565b60405161021e91906110b3565b60405180910390f35b610241600480360381019061023c9190611164565b6108a4565b60405161024e91906111bc565b60405180910390f35b61025f6109df565b60405161026c91906110b3565b60405180910390f35b61028f600480360381019061028a9190611331565b610a6a565b005b6102ab60048036038101906102a691906113ce565b610da7565b6040516102b891906111e4565b60405180910390f35b60605f80546102cf90611439565b80601f01602080910402602001604051908101604052809291908181526020018280546102fb90611439565b80156103465780601f1061031d57610100808354040283529160200191610346565b820191905f5260205f20905b81548152906001019060200180831161032957829003601f168201915b5050505050905090565b5f610359610e33565b73ffffffffffffffffffffffffffffffffffffffff16632b6b7ab5338561037f86610e4e565b5f6040518563ffffffff1660e01b815260040161039f9493929190611606565b6020604051808303815f875af11580156103bb573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906103df919061167a565b61041e576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161041590611715565b60405180910390fd5b8273ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b9258460405161047b91906111e4565b60405180910390a36001905092915050565b5f610496610f6b565b73ffffffffffffffffffffffffffffffffffffffff1663fe3b2b885f6040518263ffffffff1660e01b81526004016104ce91906117c6565b602060405180830381865afa1580156104e9573d5f803e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061050d91906117fa565b905090565b5f61051b610e33565b73ffffffffffffffffffffffffffffffffffffffff1663fbdb0e8785335f6040518463ffffffff1660e01b815260040161055793929190611825565b602060405180830381865afa158015610572573d5f803e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061059691906117fa565b8211156105d8576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016105cf906118d1565b60405180910390fd5b6105e0610f6b565b73ffffffffffffffffffffffffffffffffffffffff166384404811858561060686610e4e565b6040518463ffffffff1660e01b8152600401610624939291906118ef565b6020604051808303815f875af1158015610640573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610664919061167a565b6106a3576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161069a9061199b565b60405180910390fd5b8273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef8460405161070091906111e4565b60405180910390a3600190509392505050565b5f6012905090565b5f7f000000000000000000000000000000000000000000000000000000000000000046146107505761074b610f86565b610772565b7f00000000000000000000000000000000000000000000000000000000000000005b905090565b5f610780610f6b565b73ffffffffffffffffffffffffffffffffffffffff166334d1fdaf835f6040518363ffffffff1660e01b81526004016107ba9291906119b9565b602060405180830381865afa1580156107d5573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906107f991906117fa565b9050919050565b6001602052805f5260405f205f915090505481565b60605f805461082390611439565b80601f016020809104026020016040519081016040528092919081815260200182805461084f90611439565b801561089a5780601f106108715761010080835404028352916020019161089a565b820191905f5260205f20905b81548152906001019060200180831161087d57829003601f168201915b5050505050905090565b5f6108ad610f6b565b73ffffffffffffffffffffffffffffffffffffffff16638440481133856108d386610e4e565b6040518463ffffffff1660e01b81526004016108f1939291906118ef565b6020604051808303815f875af115801561090d573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610931919061167a565b610970576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161096790611a57565b60405180910390fd5b8273ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef846040516109cd91906111e4565b60405180910390a36001905092915050565b5f80546109eb90611439565b80601f0160208091040260200160405190810160405280929190818152602001828054610a1790611439565b8015610a625780601f10610a3957610100808354040283529160200191610a62565b820191905f5260205f20905b815481529060010190602001808311610a4557829003601f168201915b505050505081565b42841015610aad576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610aa490611ae5565b60405180910390fd5b5f6001610ab861071b565b7f6e71edae12b1b97f4d1f60370fef10105fa2faae0126114a169c64845d6126c98a8a8a60015f8f73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f815480929190600101919050558b604051602001610b3d96959493929190611b03565b60405160208183030381529060405280519060200120604051602001610b64929190611bd6565b604051602081830303815290604052805190602001208585856040515f8152602001604052604051610b999493929190611c0c565b6020604051602081039080840390855afa158015610bb9573d5f803e3d5ffd5b5050506020604051035190505f73ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1614158015610c2c57508773ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff16145b610c6b576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610c6290611c99565b60405180910390fd5b610c73610e33565b73ffffffffffffffffffffffffffffffffffffffff16632b6b7ab58289610c998a610e4e565b5f6040518563ffffffff1660e01b8152600401610cb99493929190611606565b6020604051808303815f875af1158015610cd5573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610cf9919061167a565b610d38576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610d2f90611715565b60405180910390fd5b508573ffffffffffffffffffffffffffffffffffffffff168773ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92587604051610d9691906111e4565b60405180910390a350505050505050565b5f610db0610e33565b73ffffffffffffffffffffffffffffffffffffffff1663fbdb0e8784845f6040518463ffffffff1660e01b8152600401610dec93929190611825565b602060405180830381865afa158015610e07573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610e2b91906117fa565b905092915050565b5f73bdf49c3c3882102fc017ffb661108c63a836d065905090565b60605f600167ffffffffffffffff811115610e6c57610e6b611cb7565b5b604051908082528060200260200182016040528015610ea557816020015b610e92611010565b815260200190600190039081610e8a5790505b50905060405180604001604052808481526020015f8054610ec590611439565b80601f0160208091040260200160405190810160405280929190818152602001828054610ef190611439565b8015610f3c5780601f10610f1357610100808354040283529160200191610f3c565b820191905f5260205f20905b815481529060010190602001808311610f1f57829003601f168201915b5050505050815250815f81518110610f5757610f56611ce4565b5b602002602001018190525080915050919050565b5f734381dc2ab14285160c808659aee005d51255add7905090565b5f7f8b73c3c69bb8fe3d512ecc4cf759cc79239f7b179b0ffacaa9a75d522b39400f5f604051610fb69190611dad565b60405180910390207fc89efdaa54c0f20c7adf612882df0950f5a951637e0307cdcb4c672f298b8bc64630604051602001610ff5959493929190611dc3565b60405160208183030381529060405280519060200120905090565b60405180604001604052805f8152602001606081525090565b5f81519050919050565b5f82825260208201905092915050565b5f5b83811015611060578082015181840152602081019050611045565b5f8484015250505050565b5f601f19601f8301169050919050565b5f61108582611029565b61108f8185611033565b935061109f818560208601611043565b6110a88161106b565b840191505092915050565b5f6020820190508181035f8301526110cb818461107b565b905092915050565b5f80fd5b5f73ffffffffffffffffffffffffffffffffffffffff82169050919050565b5f611100826110d7565b9050919050565b611110816110f6565b811461111a575f80fd5b50565b5f8135905061112b81611107565b92915050565b5f819050919050565b61114381611131565b811461114d575f80fd5b50565b5f8135905061115e8161113a565b92915050565b5f806040838503121561117a576111796110d3565b5b5f6111878582860161111d565b925050602061119885828601611150565b9150509250929050565b5f8115159050919050565b6111b6816111a2565b82525050565b5f6020820190506111cf5f8301846111ad565b92915050565b6111de81611131565b82525050565b5f6020820190506111f75f8301846111d5565b92915050565b5f805f60608486031215611214576112136110d3565b5b5f6112218682870161111d565b93505060206112328682870161111d565b925050604061124386828701611150565b9150509250925092565b5f60ff82169050919050565b6112628161124d565b82525050565b5f60208201905061127b5f830184611259565b92915050565b5f819050919050565b61129381611281565b82525050565b5f6020820190506112ac5f83018461128a565b92915050565b5f602082840312156112c7576112c66110d3565b5b5f6112d48482850161111d565b91505092915050565b6112e68161124d565b81146112f0575f80fd5b50565b5f81359050611301816112dd565b92915050565b61131081611281565b811461131a575f80fd5b50565b5f8135905061132b81611307565b92915050565b5f805f805f805f60e0888a03121561134c5761134b6110d3565b5b5f6113598a828b0161111d565b975050602061136a8a828b0161111d565b965050604061137b8a828b01611150565b955050606061138c8a828b01611150565b945050608061139d8a828b016112f3565b93505060a06113ae8a828b0161131d565b92505060c06113bf8a828b0161131d565b91505092959891949750929550565b5f80604083850312156113e4576113e36110d3565b5b5f6113f18582860161111d565b92505060206114028582860161111d565b9150509250929050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52602260045260245ffd5b5f600282049050600182168061145057607f821691505b6020821081036114635761146261140c565b5b50919050565b611472816110f6565b82525050565b5f81519050919050565b5f82825260208201905092915050565b5f819050602082019050919050565b6114aa81611131565b82525050565b5f82825260208201905092915050565b5f6114ca82611029565b6114d481856114b0565b93506114e4818560208601611043565b6114ed8161106b565b840191505092915050565b5f604083015f83015161150d5f8601826114a1565b506020830151848203602086015261152582826114c0565b9150508091505092915050565b5f61153d83836114f8565b905092915050565b5f602082019050919050565b5f61155b82611478565b6115658185611482565b93508360208202850161157785611492565b805f5b858110156115b257848403895281516115938582611532565b945061159e83611545565b925060208a0199505060018101905061157a565b50829750879550505050505092915050565b5f819050919050565b5f819050919050565b5f6115f06115eb6115e6846115c4565b6115cd565b611131565b9050919050565b611600816115d6565b82525050565b5f6080820190506116195f830187611469565b6116266020830186611469565b81810360408301526116388185611551565b905061164760608301846115f7565b95945050505050565b611659816111a2565b8114611663575f80fd5b50565b5f8151905061167481611650565b92915050565b5f6020828403121561168f5761168e6110d3565b5b5f61169c84828501611666565b91505092915050565b7f506f6c6172697345524332303a206661696c656420746f20617070726f7665205f8201527f7370656e64000000000000000000000000000000000000000000000000000000602082015250565b5f6116ff602583611033565b915061170a826116a5565b604082019050919050565b5f6020820190508181035f83015261172c816116f3565b9050919050565b5f819050815f5260205f209050919050565b5f815461175181611439565b61175b8186611033565b9450600182165f8114611775576001811461178b576117bd565b60ff1983168652811515602002860193506117bd565b61179485611733565b5f5b838110156117b557815481890152600182019150602081019050611796565b808801955050505b50505092915050565b5f6020820190508181035f8301526117de8184611745565b905092915050565b5f815190506117f48161113a565b92915050565b5f6020828403121561180f5761180e6110d3565b5b5f61181c848285016117e6565b91505092915050565b5f6060820190506118385f830186611469565b6118456020830185611469565b81810360408301526118578184611745565b9050949350505050565b7f506f6c6172697345524332303a20696e73756666696369656e7420617070726f5f8201527f76616c0000000000000000000000000000000000000000000000000000000000602082015250565b5f6118bb602383611033565b91506118c682611861565b604082019050919050565b5f6020820190508181035f8301526118e8816118af565b9050919050565b5f6060820190506119025f830186611469565b61190f6020830185611469565b81810360408301526119218184611551565b9050949350505050565b7f506f6c6172697345524332303a206661696c656420746f2073656e642062616e5f8201527f6b20746f6b656e73000000000000000000000000000000000000000000000000602082015250565b5f611985602883611033565b91506119908261192b565b604082019050919050565b5f6020820190508181035f8301526119b281611979565b9050919050565b5f6040820190506119cc5f830185611469565b81810360208301526119de8184611745565b90509392505050565b7f506f6c6172697345524332303a206661696c656420746f2073656e6420746f6b5f8201527f656e730000000000000000000000000000000000000000000000000000000000602082015250565b5f611a41602383611033565b9150611a4c826119e7565b604082019050919050565b5f6020820190508181035f830152611a6e81611a35565b9050919050565b7f506f6c6172697345524332303a205045524d49545f444541444c494e455f45585f8201527f5049524544000000000000000000000000000000000000000000000000000000602082015250565b5f611acf602583611033565b9150611ada82611a75565b604082019050919050565b5f6020820190508181035f830152611afc81611ac3565b9050919050565b5f60c082019050611b165f83018961128a565b611b236020830188611469565b611b306040830187611469565b611b3d60608301866111d5565b611b4a60808301856111d5565b611b5760a08301846111d5565b979650505050505050565b5f81905092915050565b7f19010000000000000000000000000000000000000000000000000000000000005f82015250565b5f611ba0600283611b62565b9150611bab82611b6c565b600282019050919050565b5f819050919050565b611bd0611bcb82611281565b611bb6565b82525050565b5f611be082611b94565b9150611bec8285611bbf565b602082019150611bfc8284611bbf565b6020820191508190509392505050565b5f608082019050611c1f5f83018761128a565b611c2c6020830186611259565b611c39604083018561128a565b611c46606083018461128a565b95945050505050565b7f506f6c6172697345524332303a20494e56414c49445f5349474e4552000000005f82015250565b5f611c83601c83611033565b9150611c8e82611c4f565b602082019050919050565b5f6020820190508181035f830152611cb081611c77565b9050919050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52604160045260245ffd5b7f4e487b71000000000000000000000000000000000000000000000000000000005f52603260045260245ffd5b5f81905092915050565b5f819050815f5260205f209050919050565b5f8154611d3981611439565b611d438186611d11565b9450600182165f8114611d5d5760018114611d7257611da4565b60ff1983168652811515820286019350611da4565b611d7b85611d1b565b5f5b83811015611d9c57815481890152600182019150602081019050611d7d565b838801955050505b50505092915050565b5f611db88284611d2d565b915081905092915050565b5f60a082019050611dd65f83018861128a565b611de3602083018761128a565b611df0604083018661128a565b611dfd60608301856111d5565b611e0a6080830184611469565b969550505050505056fea2646970667358221220d9ce40924794c9875a20fbeda50ec2d1240c45adc3eba7df08bc0c5caf070e4a64736f6c63430008140033", + Bin: "0x60c060405234801562000010575f80fd5b50604051620025df380380620025df833981810160405281019062000036919062000280565b805f908162000046919062000506565b5046608081815250506200005f6200006d60201b60201c565b60a081815250505062000773565b5f7f8b73c3c69bb8fe3d512ecc4cf759cc79239f7b179b0ffacaa9a75d522b39400f5f6040516200009f919062000692565b60405180910390207fc89efdaa54c0f20c7adf612882df0950f5a951637e0307cdcb4c672f298b8bc64630604051602001620000e095949392919062000718565b60405160208183030381529060405280519060200120905090565b5f604051905090565b5f80fd5b5f80fd5b5f80fd5b5f80fd5b5f601f19601f8301169050919050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52604160045260245ffd5b6200015c8262000114565b810181811067ffffffffffffffff821117156200017e576200017d62000124565b5b80604052505050565b5f62000192620000fb565b9050620001a0828262000151565b919050565b5f67ffffffffffffffff821115620001c257620001c162000124565b5b620001cd8262000114565b9050602081019050919050565b5f5b83811015620001f9578082015181840152602081019050620001dc565b5f8484015250505050565b5f6200021a6200021484620001a5565b62000187565b90508281526020810184848401111562000239576200023862000110565b5b62000246848285620001da565b509392505050565b5f82601f8301126200026557620002646200010c565b5b81516200027784826020860162000204565b91505092915050565b5f6020828403121562000298576200029762000104565b5b5f82015167ffffffffffffffff811115620002b857620002b762000108565b5b620002c6848285016200024e565b91505092915050565b5f81519050919050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52602260045260245ffd5b5f60028204905060018216806200031e57607f821691505b602082108103620003345762000333620002d9565b5b50919050565b5f819050815f5260205f209050919050565b5f6020601f8301049050919050565b5f82821b905092915050565b5f60088302620003987fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff826200035b565b620003a486836200035b565b95508019841693508086168417925050509392505050565b5f819050919050565b5f819050919050565b5f620003ee620003e8620003e284620003bc565b620003c5565b620003bc565b9050919050565b5f819050919050565b6200040983620003ce565b620004216200041882620003f5565b84845462000367565b825550505050565b5f90565b6200043762000429565b62000444818484620003fe565b505050565b5b818110156200046b576200045f5f826200042d565b6001810190506200044a565b5050565b601f821115620004ba5762000484816200033a565b6200048f846200034c565b810160208510156200049f578190505b620004b7620004ae856200034c565b83018262000449565b50505b505050565b5f82821c905092915050565b5f620004dc5f1984600802620004bf565b1980831691505092915050565b5f620004f68383620004cb565b9150826002028217905092915050565b6200051182620002cf565b67ffffffffffffffff8111156200052d576200052c62000124565b5b62000539825462000306565b620005468282856200046f565b5f60209050601f8311600181146200057c575f841562000567578287015190505b620005738582620004e9565b865550620005e2565b601f1984166200058c866200033a565b5f5b82811015620005b5578489015182556001820191506020850194506020810190506200058e565b86831015620005d55784890151620005d1601f891682620004cb565b8355505b6001600288020188555050505b505050505050565b5f81905092915050565b5f819050815f5260205f209050919050565b5f8154620006148162000306565b620006208186620005ea565b9450600182165f81146200063d5760018114620006535762000689565b60ff198316865281151582028601935062000689565b6200065e85620005f4565b5f5b83811015620006815781548189015260018201915060208101905062000660565b838801955050505b50505092915050565b5f6200069f828462000606565b915081905092915050565b5f819050919050565b620006be81620006aa565b82525050565b620006cf81620003bc565b82525050565b5f73ffffffffffffffffffffffffffffffffffffffff82169050919050565b5f6200070082620006d5565b9050919050565b6200071281620006f4565b82525050565b5f60a0820190506200072d5f830188620006b3565b6200073c6020830187620006b3565b6200074b6040830186620006b3565b6200075a6060830185620006c4565b62000769608083018462000707565b9695505050505050565b60805160a051611e4a620007955f395f61075201525f61071e0152611e4a5ff3fe608060405234801561000f575f80fd5b50600436106100cd575f3560e01c806370a082311161008a578063a9059cbb11610064578063a9059cbb14610227578063c370b04214610257578063d505accf14610275578063dd62ed3e14610291576100cd565b806370a08231146101a95780637ecebe00146101d957806395d89b4114610209576100cd565b806306fdde03146100d1578063095ea7b3146100ef57806318160ddd1461011f57806323b872dd1461013d578063313ce5671461016d5780633644e5151461018b575b5f80fd5b6100d96102c1565b6040516100e691906110b3565b60405180910390f35b61010960048036038101906101049190611164565b610350565b60405161011691906111bc565b60405180910390f35b61012761048d565b60405161013491906111e4565b60405180910390f35b610157600480360381019061015291906111fd565b610512565b60405161016491906111bc565b60405180910390f35b610175610713565b6040516101829190611268565b60405180910390f35b61019361071b565b6040516101a09190611299565b60405180910390f35b6101c360048036038101906101be91906112b2565b610777565b6040516101d091906111e4565b60405180910390f35b6101f360048036038101906101ee91906112b2565b610800565b60405161020091906111e4565b60405180910390f35b610211610815565b60405161021e91906110b3565b60405180910390f35b610241600480360381019061023c9190611164565b6108a4565b60405161024e91906111bc565b60405180910390f35b61025f6109df565b60405161026c91906110b3565b60405180910390f35b61028f600480360381019061028a9190611331565b610a6a565b005b6102ab60048036038101906102a691906113ce565b610da7565b6040516102b891906111e4565b60405180910390f35b60605f80546102cf90611439565b80601f01602080910402602001604051908101604052809291908181526020018280546102fb90611439565b80156103465780601f1061031d57610100808354040283529160200191610346565b820191905f5260205f20905b81548152906001019060200180831161032957829003601f168201915b5050505050905090565b5f610359610e33565b73ffffffffffffffffffffffffffffffffffffffff16632b6b7ab5338561037f86610e4e565b5f6040518563ffffffff1660e01b815260040161039f9493929190611606565b6020604051808303815f875af11580156103bb573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906103df919061167a565b61041e576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161041590611715565b60405180910390fd5b8273ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b9258460405161047b91906111e4565b60405180910390a36001905092915050565b5f610496610f6b565b73ffffffffffffffffffffffffffffffffffffffff1663fe3b2b885f6040518263ffffffff1660e01b81526004016104ce91906117c6565b602060405180830381865afa1580156104e9573d5f803e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061050d91906117fa565b905090565b5f61051b610e33565b73ffffffffffffffffffffffffffffffffffffffff1663fbdb0e8785335f6040518463ffffffff1660e01b815260040161055793929190611825565b602060405180830381865afa158015610572573d5f803e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061059691906117fa565b8211156105d8576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016105cf906118d1565b60405180910390fd5b6105e0610f6b565b73ffffffffffffffffffffffffffffffffffffffff166384404811858561060686610e4e565b6040518463ffffffff1660e01b8152600401610624939291906118ef565b6020604051808303815f875af1158015610640573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610664919061167a565b6106a3576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161069a9061199b565b60405180910390fd5b8273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef8460405161070091906111e4565b60405180910390a3600190509392505050565b5f6012905090565b5f7f000000000000000000000000000000000000000000000000000000000000000046146107505761074b610f86565b610772565b7f00000000000000000000000000000000000000000000000000000000000000005b905090565b5f610780610f6b565b73ffffffffffffffffffffffffffffffffffffffff166334d1fdaf835f6040518363ffffffff1660e01b81526004016107ba9291906119b9565b602060405180830381865afa1580156107d5573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906107f991906117fa565b9050919050565b6001602052805f5260405f205f915090505481565b60605f805461082390611439565b80601f016020809104026020016040519081016040528092919081815260200182805461084f90611439565b801561089a5780601f106108715761010080835404028352916020019161089a565b820191905f5260205f20905b81548152906001019060200180831161087d57829003601f168201915b5050505050905090565b5f6108ad610f6b565b73ffffffffffffffffffffffffffffffffffffffff16638440481133856108d386610e4e565b6040518463ffffffff1660e01b81526004016108f1939291906118ef565b6020604051808303815f875af115801561090d573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610931919061167a565b610970576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161096790611a57565b60405180910390fd5b8273ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef846040516109cd91906111e4565b60405180910390a36001905092915050565b5f80546109eb90611439565b80601f0160208091040260200160405190810160405280929190818152602001828054610a1790611439565b8015610a625780601f10610a3957610100808354040283529160200191610a62565b820191905f5260205f20905b815481529060010190602001808311610a4557829003601f168201915b505050505081565b42841015610aad576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610aa490611ae5565b60405180910390fd5b5f6001610ab861071b565b7f6e71edae12b1b97f4d1f60370fef10105fa2faae0126114a169c64845d6126c98a8a8a60015f8f73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f815480929190600101919050558b604051602001610b3d96959493929190611b03565b60405160208183030381529060405280519060200120604051602001610b64929190611bd6565b604051602081830303815290604052805190602001208585856040515f8152602001604052604051610b999493929190611c0c565b6020604051602081039080840390855afa158015610bb9573d5f803e3d5ffd5b5050506020604051035190505f73ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1614158015610c2c57508773ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff16145b610c6b576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610c6290611c99565b60405180910390fd5b610c73610e33565b73ffffffffffffffffffffffffffffffffffffffff16632b6b7ab58289610c998a610e4e565b5f6040518563ffffffff1660e01b8152600401610cb99493929190611606565b6020604051808303815f875af1158015610cd5573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610cf9919061167a565b610d38576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610d2f90611715565b60405180910390fd5b508573ffffffffffffffffffffffffffffffffffffffff168773ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92587604051610d9691906111e4565b60405180910390a350505050505050565b5f610db0610e33565b73ffffffffffffffffffffffffffffffffffffffff1663fbdb0e8784845f6040518463ffffffff1660e01b8152600401610dec93929190611825565b602060405180830381865afa158015610e07573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610e2b91906117fa565b905092915050565b5f73bdf49c3c3882102fc017ffb661108c63a836d065905090565b60605f600167ffffffffffffffff811115610e6c57610e6b611cb7565b5b604051908082528060200260200182016040528015610ea557816020015b610e92611010565b815260200190600190039081610e8a5790505b50905060405180604001604052808481526020015f8054610ec590611439565b80601f0160208091040260200160405190810160405280929190818152602001828054610ef190611439565b8015610f3c5780601f10610f1357610100808354040283529160200191610f3c565b820191905f5260205f20905b815481529060010190602001808311610f1f57829003601f168201915b5050505050815250815f81518110610f5757610f56611ce4565b5b602002602001018190525080915050919050565b5f734381dc2ab14285160c808659aee005d51255add7905090565b5f7f8b73c3c69bb8fe3d512ecc4cf759cc79239f7b179b0ffacaa9a75d522b39400f5f604051610fb69190611dad565b60405180910390207fc89efdaa54c0f20c7adf612882df0950f5a951637e0307cdcb4c672f298b8bc64630604051602001610ff5959493929190611dc3565b60405160208183030381529060405280519060200120905090565b60405180604001604052805f8152602001606081525090565b5f81519050919050565b5f82825260208201905092915050565b5f5b83811015611060578082015181840152602081019050611045565b5f8484015250505050565b5f601f19601f8301169050919050565b5f61108582611029565b61108f8185611033565b935061109f818560208601611043565b6110a88161106b565b840191505092915050565b5f6020820190508181035f8301526110cb818461107b565b905092915050565b5f80fd5b5f73ffffffffffffffffffffffffffffffffffffffff82169050919050565b5f611100826110d7565b9050919050565b611110816110f6565b811461111a575f80fd5b50565b5f8135905061112b81611107565b92915050565b5f819050919050565b61114381611131565b811461114d575f80fd5b50565b5f8135905061115e8161113a565b92915050565b5f806040838503121561117a576111796110d3565b5b5f6111878582860161111d565b925050602061119885828601611150565b9150509250929050565b5f8115159050919050565b6111b6816111a2565b82525050565b5f6020820190506111cf5f8301846111ad565b92915050565b6111de81611131565b82525050565b5f6020820190506111f75f8301846111d5565b92915050565b5f805f60608486031215611214576112136110d3565b5b5f6112218682870161111d565b93505060206112328682870161111d565b925050604061124386828701611150565b9150509250925092565b5f60ff82169050919050565b6112628161124d565b82525050565b5f60208201905061127b5f830184611259565b92915050565b5f819050919050565b61129381611281565b82525050565b5f6020820190506112ac5f83018461128a565b92915050565b5f602082840312156112c7576112c66110d3565b5b5f6112d48482850161111d565b91505092915050565b6112e68161124d565b81146112f0575f80fd5b50565b5f81359050611301816112dd565b92915050565b61131081611281565b811461131a575f80fd5b50565b5f8135905061132b81611307565b92915050565b5f805f805f805f60e0888a03121561134c5761134b6110d3565b5b5f6113598a828b0161111d565b975050602061136a8a828b0161111d565b965050604061137b8a828b01611150565b955050606061138c8a828b01611150565b945050608061139d8a828b016112f3565b93505060a06113ae8a828b0161131d565b92505060c06113bf8a828b0161131d565b91505092959891949750929550565b5f80604083850312156113e4576113e36110d3565b5b5f6113f18582860161111d565b92505060206114028582860161111d565b9150509250929050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52602260045260245ffd5b5f600282049050600182168061145057607f821691505b6020821081036114635761146261140c565b5b50919050565b611472816110f6565b82525050565b5f81519050919050565b5f82825260208201905092915050565b5f819050602082019050919050565b6114aa81611131565b82525050565b5f82825260208201905092915050565b5f6114ca82611029565b6114d481856114b0565b93506114e4818560208601611043565b6114ed8161106b565b840191505092915050565b5f604083015f83015161150d5f8601826114a1565b506020830151848203602086015261152582826114c0565b9150508091505092915050565b5f61153d83836114f8565b905092915050565b5f602082019050919050565b5f61155b82611478565b6115658185611482565b93508360208202850161157785611492565b805f5b858110156115b257848403895281516115938582611532565b945061159e83611545565b925060208a0199505060018101905061157a565b50829750879550505050505092915050565b5f819050919050565b5f819050919050565b5f6115f06115eb6115e6846115c4565b6115cd565b611131565b9050919050565b611600816115d6565b82525050565b5f6080820190506116195f830187611469565b6116266020830186611469565b81810360408301526116388185611551565b905061164760608301846115f7565b95945050505050565b611659816111a2565b8114611663575f80fd5b50565b5f8151905061167481611650565b92915050565b5f6020828403121561168f5761168e6110d3565b5b5f61169c84828501611666565b91505092915050565b7f506f6c6172697345524332303a206661696c656420746f20617070726f7665205f8201527f7370656e64000000000000000000000000000000000000000000000000000000602082015250565b5f6116ff602583611033565b915061170a826116a5565b604082019050919050565b5f6020820190508181035f83015261172c816116f3565b9050919050565b5f819050815f5260205f209050919050565b5f815461175181611439565b61175b8186611033565b9450600182165f8114611775576001811461178b576117bd565b60ff1983168652811515602002860193506117bd565b61179485611733565b5f5b838110156117b557815481890152600182019150602081019050611796565b808801955050505b50505092915050565b5f6020820190508181035f8301526117de8184611745565b905092915050565b5f815190506117f48161113a565b92915050565b5f6020828403121561180f5761180e6110d3565b5b5f61181c848285016117e6565b91505092915050565b5f6060820190506118385f830186611469565b6118456020830185611469565b81810360408301526118578184611745565b9050949350505050565b7f506f6c6172697345524332303a20696e73756666696369656e7420617070726f5f8201527f76616c0000000000000000000000000000000000000000000000000000000000602082015250565b5f6118bb602383611033565b91506118c682611861565b604082019050919050565b5f6020820190508181035f8301526118e8816118af565b9050919050565b5f6060820190506119025f830186611469565b61190f6020830185611469565b81810360408301526119218184611551565b9050949350505050565b7f506f6c6172697345524332303a206661696c656420746f2073656e642062616e5f8201527f6b20746f6b656e73000000000000000000000000000000000000000000000000602082015250565b5f611985602883611033565b91506119908261192b565b604082019050919050565b5f6020820190508181035f8301526119b281611979565b9050919050565b5f6040820190506119cc5f830185611469565b81810360208301526119de8184611745565b90509392505050565b7f506f6c6172697345524332303a206661696c656420746f2073656e6420746f6b5f8201527f656e730000000000000000000000000000000000000000000000000000000000602082015250565b5f611a41602383611033565b9150611a4c826119e7565b604082019050919050565b5f6020820190508181035f830152611a6e81611a35565b9050919050565b7f506f6c6172697345524332303a205045524d49545f444541444c494e455f45585f8201527f5049524544000000000000000000000000000000000000000000000000000000602082015250565b5f611acf602583611033565b9150611ada82611a75565b604082019050919050565b5f6020820190508181035f830152611afc81611ac3565b9050919050565b5f60c082019050611b165f83018961128a565b611b236020830188611469565b611b306040830187611469565b611b3d60608301866111d5565b611b4a60808301856111d5565b611b5760a08301846111d5565b979650505050505050565b5f81905092915050565b7f19010000000000000000000000000000000000000000000000000000000000005f82015250565b5f611ba0600283611b62565b9150611bab82611b6c565b600282019050919050565b5f819050919050565b611bd0611bcb82611281565b611bb6565b82525050565b5f611be082611b94565b9150611bec8285611bbf565b602082019150611bfc8284611bbf565b6020820191508190509392505050565b5f608082019050611c1f5f83018761128a565b611c2c6020830186611259565b611c39604083018561128a565b611c46606083018461128a565b95945050505050565b7f506f6c6172697345524332303a20494e56414c49445f5349474e4552000000005f82015250565b5f611c83601c83611033565b9150611c8e82611c4f565b602082019050919050565b5f6020820190508181035f830152611cb081611c77565b9050919050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52604160045260245ffd5b7f4e487b71000000000000000000000000000000000000000000000000000000005f52603260045260245ffd5b5f81905092915050565b5f819050815f5260205f209050919050565b5f8154611d3981611439565b611d438186611d11565b9450600182165f8114611d5d5760018114611d7257611da4565b60ff1983168652811515820286019350611da4565b611d7b85611d1b565b5f5b83811015611d9c57815481890152600182019150602081019050611d7d565b838801955050505b50505092915050565b5f611db88284611d2d565b915081905092915050565b5f60a082019050611dd65f83018861128a565b611de3602083018761128a565b611df0604083018661128a565b611dfd60608301856111d5565b611e0a6080830184611469565b969550505050505056fea264697066735822122037231a043efcc3dbb89c027fb0996735d22aee50c5d8ee4bc35b3cd5d7c5cdba64736f6c63430008140033", } // 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 b79e70d28..e6a63d51a 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: "0x608060405234801561000f575f80fd5b506101cb8061001d5f395ff3fe608060405234801561000f575f80fd5b5060043610610029575f3560e01c8063a329e8de1461002d575b5f80fd5b610047600480360381019061004291906100e2565b610049565b005b5f5a90505b818161005a919061013a565b5a1161004e575f5a8261006d919061013a565b90507f1a2dc18f5a2dabdf3809a83ec652290b81d97d915bf5561908090bad91deffc48160405161009e919061017c565b60405180910390a1505050565b5f80fd5b5f819050919050565b6100c1816100af565b81146100cb575f80fd5b50565b5f813590506100dc816100b8565b92915050565b5f602082840312156100f7576100f66100ab565b5b5f610104848285016100ce565b91505092915050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601160045260245ffd5b5f610144826100af565b915061014f836100af565b92508282039050818111156101675761016661010d565b5b92915050565b610176816100af565b82525050565b5f60208201905061018f5f83018461016d565b9291505056fea2646970667358221220c9bfa9846b4de0f7177848d906b515b2e2e1665ba98ad9d5ed5c7444ec861cbf64736f6c63430008140033", + Bin: "0x608060405234801561000f575f80fd5b506101cb8061001d5f395ff3fe608060405234801561000f575f80fd5b5060043610610029575f3560e01c8063a329e8de1461002d575b5f80fd5b610047600480360381019061004291906100e2565b610049565b005b5f5a90505b818161005a919061013a565b5a1161004e575f5a8261006d919061013a565b90507f1a2dc18f5a2dabdf3809a83ec652290b81d97d915bf5561908090bad91deffc48160405161009e919061017c565b60405180910390a1505050565b5f80fd5b5f819050919050565b6100c1816100af565b81146100cb575f80fd5b50565b5f813590506100dc816100b8565b92915050565b5f602082840312156100f7576100f66100ab565b5b5f610104848285016100ce565b91505092915050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601160045260245ffd5b5f610144826100af565b915061014f836100af565b92508282039050818111156101675761016661010d565b5b92915050565b610176816100af565b82525050565b5f60208201905061018f5f83018461016d565b9291505056fea2646970667358221220cf53a89b858bcd89a9f376c9fc26e35242e2b2c6d3caa86630baa63414ba767d64736f6c63430008140033", } // 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 e584329cf..e719ceb98 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: "0x608060405234801561000f575f80fd5b50604051610bf7380380610bf7833981810160405281019061003191906101b2565b5f73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614801561009757505f73ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff16145b156100ce576040517fd92e233d00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b815f806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508060015f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050506101f0565b5f80fd5b5f73ffffffffffffffffffffffffffffffffffffffff82169050919050565b5f61018182610158565b9050919050565b61019181610177565b811461019b575f80fd5b50565b5f815190506101ac81610188565b92915050565b5f80604083850312156101c8576101c7610154565b5b5f6101d58582860161019e565b92505060206101e68582860161019e565b9150509250929050565b6109fa806101fd5f395ff3fe608060405260043610610054575f3560e01c806339cc4c86146100585780633ab1a494146100825780634cf088d9146100be5780635c19a95c146100e85780635ee58efc14610104578063e20981ca1461012e575b5f80fd5b348015610063575f80fd5b5061006c610156565b604051610079919061042d565b60405180910390f35b34801561008d575f80fd5b506100a860048036038101906100a391906104b1565b6101e9565b6040516100b5919061042d565b60405180910390f35b3480156100c9575f80fd5b506100d2610289565b6040516100df9190610537565b60405180910390f35b61010260048036038101906100fd91906104b1565b6102ae565b005b34801561010f575f80fd5b5061011861034e565b6040516101259190610570565b60405180910390f35b348015610139575f80fd5b50610154600480360381019061014f9190610589565b610371565b005b5f805f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166339cc4c866040518163ffffffff1660e01b8152600401602060405180830381865afa1580156101c0573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906101e491906105f1565b905090565b5f805f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16633ab1a494836040518263ffffffff1660e01b8152600401610243919061062b565b6020604051808303815f875af115801561025f573d5f803e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061028391906105f1565b50919050565b60015f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b60015f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663026e402b82346040518363ffffffff1660e01b815260040161030a92919061065c565b6020604051808303815f875af1158015610326573d5f803e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061034a91906105f1565b5050565b5f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b5f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663562c67a483836040518363ffffffff1660e01b81526004016103cb929190610683565b5f604051808303815f875af11580156103e6573d5f803e3d5ffd5b505050506040513d5f823e3d601f19601f8201168201806040525081019061040e919061097d565b505050565b5f8115159050919050565b61042781610413565b82525050565b5f6020820190506104405f83018461041e565b92915050565b5f604051905090565b5f80fd5b5f80fd5b5f73ffffffffffffffffffffffffffffffffffffffff82169050919050565b5f61048082610457565b9050919050565b61049081610476565b811461049a575f80fd5b50565b5f813590506104ab81610487565b92915050565b5f602082840312156104c6576104c561044f565b5b5f6104d38482850161049d565b91505092915050565b5f819050919050565b5f6104ff6104fa6104f584610457565b6104dc565b610457565b9050919050565b5f610510826104e5565b9050919050565b5f61052182610506565b9050919050565b61053181610517565b82525050565b5f60208201905061054a5f830184610528565b92915050565b5f61055a82610506565b9050919050565b61056a81610550565b82525050565b5f6020820190506105835f830184610561565b92915050565b5f806040838503121561059f5761059e61044f565b5b5f6105ac8582860161049d565b92505060206105bd8582860161049d565b9150509250929050565b6105d081610413565b81146105da575f80fd5b50565b5f815190506105eb816105c7565b92915050565b5f602082840312156106065761060561044f565b5b5f610613848285016105dd565b91505092915050565b61062581610476565b82525050565b5f60208201905061063e5f83018461061c565b92915050565b5f819050919050565b61065681610644565b82525050565b5f60408201905061066f5f83018561061c565b61067c602083018461064d565b9392505050565b5f6040820190506106965f83018561061c565b6106a3602083018461061c565b9392505050565b5f80fd5b5f601f19601f8301169050919050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52604160045260245ffd5b6106f4826106ae565b810181811067ffffffffffffffff82111715610713576107126106be565b5b80604052505050565b5f610725610446565b905061073182826106eb565b919050565b5f67ffffffffffffffff8211156107505761074f6106be565b5b602082029050602081019050919050565b5f80fd5b5f80fd5b5f80fd5b61077681610644565b8114610780575f80fd5b50565b5f815190506107918161076d565b92915050565b5f80fd5b5f67ffffffffffffffff8211156107b5576107b46106be565b5b6107be826106ae565b9050602081019050919050565b5f5b838110156107e85780820151818401526020810190506107cd565b5f8484015250505050565b5f6108056108008461079b565b61071c565b90508281526020810184848401111561082157610820610797565b5b61082c8482856107cb565b509392505050565b5f82601f830112610848576108476106aa565b5b81516108588482602086016107f3565b91505092915050565b5f6040828403121561087657610875610765565b5b610880604061071c565b90505f61088f84828501610783565b5f83015250602082015167ffffffffffffffff8111156108b2576108b1610769565b5b6108be84828501610834565b60208301525092915050565b5f6108dc6108d784610736565b61071c565b905080838252602082019050602084028301858111156108ff576108fe610761565b5b835b8181101561094657805167ffffffffffffffff811115610924576109236106aa565b5b8086016109318982610861565b85526020850194505050602081019050610901565b5050509392505050565b5f82601f830112610964576109636106aa565b5b81516109748482602086016108ca565b91505092915050565b5f602082840312156109925761099161044f565b5b5f82015167ffffffffffffffff8111156109af576109ae610453565b5b6109bb84828501610950565b9150509291505056fea2646970667358221220c549335c2aef93ae2f225c272220c8fc53de203579bad9bf7128d89a8280abe664736f6c63430008140033", + Bin: "0x608060405234801561000f575f80fd5b50604051610bf8380380610bf8833981810160405281019061003191906101b2565b5f73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614801561009757505f73ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff16145b156100ce576040517fd92e233d00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b815f806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508060015f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050506101f0565b5f80fd5b5f73ffffffffffffffffffffffffffffffffffffffff82169050919050565b5f61018182610158565b9050919050565b61019181610177565b811461019b575f80fd5b50565b5f815190506101ac81610188565b92915050565b5f80604083850312156101c8576101c7610154565b5b5f6101d58582860161019e565b92505060206101e68582860161019e565b9150509250929050565b6109fb806101fd5f395ff3fe608060405260043610610054575f3560e01c806339cc4c86146100585780633ab1a494146100825780634cf088d9146100be5780635c19a95c146100e85780635ee58efc14610104578063e20981ca1461012e575b5f80fd5b348015610063575f80fd5b5061006c610156565b604051610079919061042e565b60405180910390f35b34801561008d575f80fd5b506100a860048036038101906100a391906104b2565b6101e9565b6040516100b5919061042e565b60405180910390f35b3480156100c9575f80fd5b506100d261028a565b6040516100df9190610538565b60405180910390f35b61010260048036038101906100fd91906104b2565b6102af565b005b34801561010f575f80fd5b5061011861034f565b6040516101259190610571565b60405180910390f35b348015610139575f80fd5b50610154600480360381019061014f919061058a565b610372565b005b5f805f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166339cc4c866040518163ffffffff1660e01b8152600401602060405180830381865afa1580156101c0573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906101e491906105f2565b905090565b5f805f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16633ab1a494836040518263ffffffff1660e01b8152600401610243919061062c565b6020604051808303815f875af115801561025f573d5f803e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061028391906105f2565b9050919050565b60015f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b60015f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663026e402b82346040518363ffffffff1660e01b815260040161030b92919061065d565b6020604051808303815f875af1158015610327573d5f803e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061034b91906105f2565b5050565b5f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b5f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663562c67a483836040518363ffffffff1660e01b81526004016103cc929190610684565b5f604051808303815f875af11580156103e7573d5f803e3d5ffd5b505050506040513d5f823e3d601f19601f8201168201806040525081019061040f919061097e565b505050565b5f8115159050919050565b61042881610414565b82525050565b5f6020820190506104415f83018461041f565b92915050565b5f604051905090565b5f80fd5b5f80fd5b5f73ffffffffffffffffffffffffffffffffffffffff82169050919050565b5f61048182610458565b9050919050565b61049181610477565b811461049b575f80fd5b50565b5f813590506104ac81610488565b92915050565b5f602082840312156104c7576104c6610450565b5b5f6104d48482850161049e565b91505092915050565b5f819050919050565b5f6105006104fb6104f684610458565b6104dd565b610458565b9050919050565b5f610511826104e6565b9050919050565b5f61052282610507565b9050919050565b61053281610518565b82525050565b5f60208201905061054b5f830184610529565b92915050565b5f61055b82610507565b9050919050565b61056b81610551565b82525050565b5f6020820190506105845f830184610562565b92915050565b5f80604083850312156105a05761059f610450565b5b5f6105ad8582860161049e565b92505060206105be8582860161049e565b9150509250929050565b6105d181610414565b81146105db575f80fd5b50565b5f815190506105ec816105c8565b92915050565b5f6020828403121561060757610606610450565b5b5f610614848285016105de565b91505092915050565b61062681610477565b82525050565b5f60208201905061063f5f83018461061d565b92915050565b5f819050919050565b61065781610645565b82525050565b5f6040820190506106705f83018561061d565b61067d602083018461064e565b9392505050565b5f6040820190506106975f83018561061d565b6106a4602083018461061d565b9392505050565b5f80fd5b5f601f19601f8301169050919050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52604160045260245ffd5b6106f5826106af565b810181811067ffffffffffffffff82111715610714576107136106bf565b5b80604052505050565b5f610726610447565b905061073282826106ec565b919050565b5f67ffffffffffffffff821115610751576107506106bf565b5b602082029050602081019050919050565b5f80fd5b5f80fd5b5f80fd5b61077781610645565b8114610781575f80fd5b50565b5f815190506107928161076e565b92915050565b5f80fd5b5f67ffffffffffffffff8211156107b6576107b56106bf565b5b6107bf826106af565b9050602081019050919050565b5f5b838110156107e95780820151818401526020810190506107ce565b5f8484015250505050565b5f6108066108018461079c565b61071d565b90508281526020810184848401111561082257610821610798565b5b61082d8482856107cc565b509392505050565b5f82601f830112610849576108486106ab565b5b81516108598482602086016107f4565b91505092915050565b5f6040828403121561087757610876610766565b5b610881604061071d565b90505f61089084828501610784565b5f83015250602082015167ffffffffffffffff8111156108b3576108b261076a565b5b6108bf84828501610835565b60208301525092915050565b5f6108dd6108d884610737565b61071d565b90508083825260208201905060208402830185811115610900576108ff610762565b5b835b8181101561094757805167ffffffffffffffff811115610925576109246106ab565b5b8086016109328982610862565b85526020850194505050602081019050610902565b5050509392505050565b5f82601f830112610965576109646106ab565b5b81516109758482602086016108cb565b91505092915050565b5f6020828403121561099357610992610450565b5b5f82015167ffffffffffffffff8111156109b0576109af610454565b5b6109bc84828501610951565b9150509291505056fea264697066735822122002418705802e03b874f5830db69d6323ae4e27eddcd7afda638587279ed9b37564736f6c63430008140033", } // 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 474846a54..469327c85 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: "0x60a0604052734381dc2ab14285160c808659aee005d51255add773ffffffffffffffffffffffffffffffffffffffff1660809073ffffffffffffffffffffffffffffffffffffffff16815250348015610056575f80fd5b5033805f806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508073ffffffffffffffffffffffffffffffffffffffff165f73ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a350608051610ffa61011f5f395f8181610102015281816101a6015281816101ef01526103a90152610ffa5ff3fe608060405234801561000f575f80fd5b5060043610610060575f3560e01c80631ecc96521461006457806376cdb03b146100805780638da5cb5b1461009e578063af1d3f52146100bc578063ce1b088a146100da578063f2fde38b146100e4575b5f80fd5b61007e60048036038101906100799190610608565b610100565b005b6100886101a4565b60405161009591906106cd565b60405180910390f35b6100a66101c8565b6040516100b39190610706565b60405180910390f35b6100c46101eb565b6040516100d191906108b6565b60405180910390f35b6100e261028d565b005b6100fe60048036038101906100f99190610900565b61046d565b005b7f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff166384404811333085856040518563ffffffff1660e01b815260040161015f9493929190610b20565b6020604051808303815f875af115801561017b573d5f803e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061019f9190610b93565b505050565b7f000000000000000000000000000000000000000000000000000000000000000081565b5f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b60607f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff1663c53d6ce1306040518263ffffffff1660e01b81526004016102469190610706565b5f60405180830381865afa158015610260573d5f803e3d5ffd5b505050506040513d5f823e3d601f19601f820116820180604052508101906102889190610e3b565b905090565b5f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff161461031a576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161031190610edc565b60405180910390fd5b5f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16146103a7576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161039e90610f6a565b60405180910390fd5b7f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff166384404811305f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1661040c6101eb565b6040518463ffffffff1660e01b815260040161042a93929190610f88565b6020604051808303815f875af1158015610446573d5f803e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061046a9190610b93565b50565b5f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16146104fa576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016104f190610edc565b60405180910390fd5b805f806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508073ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a350565b5f604051905090565b5f80fd5b5f80fd5b5f80fd5b5f80fd5b5f80fd5b5f8083601f8401126105c8576105c76105a7565b5b8235905067ffffffffffffffff8111156105e5576105e46105ab565b5b602083019150836020820283011115610601576106006105af565b5b9250929050565b5f806020838503121561061e5761061d61059f565b5b5f83013567ffffffffffffffff81111561063b5761063a6105a3565b5b610647858286016105b3565b92509250509250929050565b5f73ffffffffffffffffffffffffffffffffffffffff82169050919050565b5f819050919050565b5f61069561069061068b84610653565b610672565b610653565b9050919050565b5f6106a68261067b565b9050919050565b5f6106b78261069c565b9050919050565b6106c7816106ad565b82525050565b5f6020820190506106e05f8301846106be565b92915050565b5f6106f082610653565b9050919050565b610700816106e6565b82525050565b5f6020820190506107195f8301846106f7565b92915050565b5f81519050919050565b5f82825260208201905092915050565b5f819050602082019050919050565b5f819050919050565b61075a81610748565b82525050565b5f81519050919050565b5f82825260208201905092915050565b5f5b8381101561079757808201518184015260208101905061077c565b5f8484015250505050565b5f601f19601f8301169050919050565b5f6107bc82610760565b6107c6818561076a565b93506107d681856020860161077a565b6107df816107a2565b840191505092915050565b5f604083015f8301516107ff5f860182610751565b506020830151848203602086015261081782826107b2565b9150508091505092915050565b5f61082f83836107ea565b905092915050565b5f602082019050919050565b5f61084d8261071f565b6108578185610729565b93508360208202850161086985610739565b805f5b858110156108a457848403895281516108858582610824565b945061089083610837565b925060208a0199505060018101905061086c565b50829750879550505050505092915050565b5f6020820190508181035f8301526108ce8184610843565b905092915050565b6108df816106e6565b81146108e9575f80fd5b50565b5f813590506108fa816108d6565b92915050565b5f602082840312156109155761091461059f565b5b5f610922848285016108ec565b91505092915050565b5f819050919050565b61093d81610748565b8114610947575f80fd5b50565b5f8135905061095881610934565b92915050565b5f61096c602084018461094a565b905092915050565b5f80fd5b5f80fd5b5f80fd5b5f808335600160200384360303811261099c5761099b61097c565b5b83810192508235915060208301925067ffffffffffffffff8211156109c4576109c3610974565b5b6001820236038313156109da576109d9610978565b5b509250929050565b828183375f83830152505050565b5f6109fb838561076a565b9350610a088385846109e2565b610a11836107a2565b840190509392505050565b5f60408301610a2d5f84018461095e565b610a395f860182610751565b50610a476020840184610980565b8583036020870152610a5a8382846109f0565b925050508091505092915050565b5f610a738383610a1c565b905092915050565b5f82356001604003833603038112610a9657610a9561097c565b5b82810191505092915050565b5f602082019050919050565b5f610ab98385610729565b935083602084028501610acb8461092b565b805f5b87811015610b0e578484038952610ae58284610a7b565b610aef8582610a68565b9450610afa83610aa2565b925060208a01995050600181019050610ace565b50829750879450505050509392505050565b5f606082019050610b335f8301876106f7565b610b4060208301866106f7565b8181036040830152610b53818486610aae565b905095945050505050565b5f8115159050919050565b610b7281610b5e565b8114610b7c575f80fd5b50565b5f81519050610b8d81610b69565b92915050565b5f60208284031215610ba857610ba761059f565b5b5f610bb584828501610b7f565b91505092915050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52604160045260245ffd5b610bf4826107a2565b810181811067ffffffffffffffff82111715610c1357610c12610bbe565b5b80604052505050565b5f610c25610596565b9050610c318282610beb565b919050565b5f67ffffffffffffffff821115610c5057610c4f610bbe565b5b602082029050602081019050919050565b5f80fd5b5f80fd5b5f81519050610c7781610934565b92915050565b5f80fd5b5f67ffffffffffffffff821115610c9b57610c9a610bbe565b5b610ca4826107a2565b9050602081019050919050565b5f610cc3610cbe84610c81565b610c1c565b905082815260208101848484011115610cdf57610cde610c7d565b5b610cea84828561077a565b509392505050565b5f82601f830112610d0657610d056105a7565b5b8151610d16848260208601610cb1565b91505092915050565b5f60408284031215610d3457610d33610c61565b5b610d3e6040610c1c565b90505f610d4d84828501610c69565b5f83015250602082015167ffffffffffffffff811115610d7057610d6f610c65565b5b610d7c84828501610cf2565b60208301525092915050565b5f610d9a610d9584610c36565b610c1c565b90508083825260208201905060208402830185811115610dbd57610dbc6105af565b5b835b81811015610e0457805167ffffffffffffffff811115610de257610de16105a7565b5b808601610def8982610d1f565b85526020850194505050602081019050610dbf565b5050509392505050565b5f82601f830112610e2257610e216105a7565b5b8151610e32848260208601610d88565b91505092915050565b5f60208284031215610e5057610e4f61059f565b5b5f82015167ffffffffffffffff811115610e6d57610e6c6105a3565b5b610e7984828501610e0e565b91505092915050565b5f82825260208201905092915050565b7f554e415554484f52495a454400000000000000000000000000000000000000005f82015250565b5f610ec6600c83610e82565b9150610ed182610e92565b602082019050919050565b5f6020820190508181035f830152610ef381610eba565b9050919050565b7f46756e64732077696c6c206f6e6c792062652072656c656173656420746f20745f8201527f6865206f776e6572000000000000000000000000000000000000000000000000602082015250565b5f610f54602883610e82565b9150610f5f82610efa565b604082019050919050565b5f6020820190508181035f830152610f8181610f48565b9050919050565b5f606082019050610f9b5f8301866106f7565b610fa860208301856106f7565b8181036040830152610fba8184610843565b905094935050505056fea264697066735822122023bb70ee6ebd6718b03cc0434bedffa31223b9d02e86dded3c76eb24e45ff5fc64736f6c63430008140033", + Bin: "0x60a0604052734381dc2ab14285160c808659aee005d51255add773ffffffffffffffffffffffffffffffffffffffff1660809073ffffffffffffffffffffffffffffffffffffffff16815250348015610056575f80fd5b5033805f806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508073ffffffffffffffffffffffffffffffffffffffff165f73ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a350608051610ffa61011f5f395f8181610102015281816101a6015281816101ef01526103a90152610ffa5ff3fe608060405234801561000f575f80fd5b5060043610610060575f3560e01c80631ecc96521461006457806376cdb03b146100805780638da5cb5b1461009e578063af1d3f52146100bc578063ce1b088a146100da578063f2fde38b146100e4575b5f80fd5b61007e60048036038101906100799190610608565b610100565b005b6100886101a4565b60405161009591906106cd565b60405180910390f35b6100a66101c8565b6040516100b39190610706565b60405180910390f35b6100c46101eb565b6040516100d191906108b6565b60405180910390f35b6100e261028d565b005b6100fe60048036038101906100f99190610900565b61046d565b005b7f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff166384404811333085856040518563ffffffff1660e01b815260040161015f9493929190610b20565b6020604051808303815f875af115801561017b573d5f803e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061019f9190610b93565b505050565b7f000000000000000000000000000000000000000000000000000000000000000081565b5f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b60607f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff1663c53d6ce1306040518263ffffffff1660e01b81526004016102469190610706565b5f60405180830381865afa158015610260573d5f803e3d5ffd5b505050506040513d5f823e3d601f19601f820116820180604052508101906102889190610e3b565b905090565b5f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff161461031a576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161031190610edc565b60405180910390fd5b5f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16146103a7576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161039e90610f6a565b60405180910390fd5b7f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff166384404811305f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1661040c6101eb565b6040518463ffffffff1660e01b815260040161042a93929190610f88565b6020604051808303815f875af1158015610446573d5f803e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061046a9190610b93565b50565b5f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16146104fa576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016104f190610edc565b60405180910390fd5b805f806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508073ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a350565b5f604051905090565b5f80fd5b5f80fd5b5f80fd5b5f80fd5b5f80fd5b5f8083601f8401126105c8576105c76105a7565b5b8235905067ffffffffffffffff8111156105e5576105e46105ab565b5b602083019150836020820283011115610601576106006105af565b5b9250929050565b5f806020838503121561061e5761061d61059f565b5b5f83013567ffffffffffffffff81111561063b5761063a6105a3565b5b610647858286016105b3565b92509250509250929050565b5f73ffffffffffffffffffffffffffffffffffffffff82169050919050565b5f819050919050565b5f61069561069061068b84610653565b610672565b610653565b9050919050565b5f6106a68261067b565b9050919050565b5f6106b78261069c565b9050919050565b6106c7816106ad565b82525050565b5f6020820190506106e05f8301846106be565b92915050565b5f6106f082610653565b9050919050565b610700816106e6565b82525050565b5f6020820190506107195f8301846106f7565b92915050565b5f81519050919050565b5f82825260208201905092915050565b5f819050602082019050919050565b5f819050919050565b61075a81610748565b82525050565b5f81519050919050565b5f82825260208201905092915050565b5f5b8381101561079757808201518184015260208101905061077c565b5f8484015250505050565b5f601f19601f8301169050919050565b5f6107bc82610760565b6107c6818561076a565b93506107d681856020860161077a565b6107df816107a2565b840191505092915050565b5f604083015f8301516107ff5f860182610751565b506020830151848203602086015261081782826107b2565b9150508091505092915050565b5f61082f83836107ea565b905092915050565b5f602082019050919050565b5f61084d8261071f565b6108578185610729565b93508360208202850161086985610739565b805f5b858110156108a457848403895281516108858582610824565b945061089083610837565b925060208a0199505060018101905061086c565b50829750879550505050505092915050565b5f6020820190508181035f8301526108ce8184610843565b905092915050565b6108df816106e6565b81146108e9575f80fd5b50565b5f813590506108fa816108d6565b92915050565b5f602082840312156109155761091461059f565b5b5f610922848285016108ec565b91505092915050565b5f819050919050565b61093d81610748565b8114610947575f80fd5b50565b5f8135905061095881610934565b92915050565b5f61096c602084018461094a565b905092915050565b5f80fd5b5f80fd5b5f80fd5b5f808335600160200384360303811261099c5761099b61097c565b5b83810192508235915060208301925067ffffffffffffffff8211156109c4576109c3610974565b5b6001820236038313156109da576109d9610978565b5b509250929050565b828183375f83830152505050565b5f6109fb838561076a565b9350610a088385846109e2565b610a11836107a2565b840190509392505050565b5f60408301610a2d5f84018461095e565b610a395f860182610751565b50610a476020840184610980565b8583036020870152610a5a8382846109f0565b925050508091505092915050565b5f610a738383610a1c565b905092915050565b5f82356001604003833603038112610a9657610a9561097c565b5b82810191505092915050565b5f602082019050919050565b5f610ab98385610729565b935083602084028501610acb8461092b565b805f5b87811015610b0e578484038952610ae58284610a7b565b610aef8582610a68565b9450610afa83610aa2565b925060208a01995050600181019050610ace565b50829750879450505050509392505050565b5f606082019050610b335f8301876106f7565b610b4060208301866106f7565b8181036040830152610b53818486610aae565b905095945050505050565b5f8115159050919050565b610b7281610b5e565b8114610b7c575f80fd5b50565b5f81519050610b8d81610b69565b92915050565b5f60208284031215610ba857610ba761059f565b5b5f610bb584828501610b7f565b91505092915050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52604160045260245ffd5b610bf4826107a2565b810181811067ffffffffffffffff82111715610c1357610c12610bbe565b5b80604052505050565b5f610c25610596565b9050610c318282610beb565b919050565b5f67ffffffffffffffff821115610c5057610c4f610bbe565b5b602082029050602081019050919050565b5f80fd5b5f80fd5b5f81519050610c7781610934565b92915050565b5f80fd5b5f67ffffffffffffffff821115610c9b57610c9a610bbe565b5b610ca4826107a2565b9050602081019050919050565b5f610cc3610cbe84610c81565b610c1c565b905082815260208101848484011115610cdf57610cde610c7d565b5b610cea84828561077a565b509392505050565b5f82601f830112610d0657610d056105a7565b5b8151610d16848260208601610cb1565b91505092915050565b5f60408284031215610d3457610d33610c61565b5b610d3e6040610c1c565b90505f610d4d84828501610c69565b5f83015250602082015167ffffffffffffffff811115610d7057610d6f610c65565b5b610d7c84828501610cf2565b60208301525092915050565b5f610d9a610d9584610c36565b610c1c565b90508083825260208201905060208402830185811115610dbd57610dbc6105af565b5b835b81811015610e0457805167ffffffffffffffff811115610de257610de16105a7565b5b808601610def8982610d1f565b85526020850194505050602081019050610dbf565b5050509392505050565b5f82601f830112610e2257610e216105a7565b5b8151610e32848260208601610d88565b91505092915050565b5f60208284031215610e5057610e4f61059f565b5b5f82015167ffffffffffffffff811115610e6d57610e6c6105a3565b5b610e7984828501610e0e565b91505092915050565b5f82825260208201905092915050565b7f554e415554484f52495a454400000000000000000000000000000000000000005f82015250565b5f610ec6600c83610e82565b9150610ed182610e92565b602082019050919050565b5f6020820190508181035f830152610ef381610eba565b9050919050565b7f46756e64732077696c6c206f6e6c792062652072656c656173656420746f20745f8201527f6865206f776e6572000000000000000000000000000000000000000000000000602082015250565b5f610f54602883610e82565b9150610f5f82610efa565b604082019050919050565b5f6020820190508181035f830152610f8181610f48565b9050919050565b5f606082019050610f9b5f8301866106f7565b610fa860208301856106f7565b8181036040830152610fba8184610843565b905094935050505056fea2646970667358221220947f5a106837206aa09fd1fc2499397792acf24d839aabb8afe91f87a5260f6364736f6c63430008140033", } // 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 c09dcbd9f..572b8ebee 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: "0x60a0604052734381dc2ab14285160c808659aee005d51255add773ffffffffffffffffffffffffffffffffffffffff1660809073ffffffffffffffffffffffffffffffffffffffff1681525034801562000057575f80fd5b5060405162001f1038038062001f1083398181016040528101906200007d91906200018e565b5f73ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1603620000e3576040517fd92e233d00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b805f806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050620001be565b5f80fd5b5f73ffffffffffffffffffffffffffffffffffffffff82169050919050565b5f62000158826200012d565b9050919050565b6200016a816200014c565b811462000175575f80fd5b50565b5f8151905062000188816200015f565b92915050565b5f60208284031215620001a657620001a562000129565b5b5f620001b58482850162000178565b91505092915050565b608051611d32620001de5f395f818161036101526105b30152611d325ff3fe608060405260043610610073575f3560e01c806376cdb03b1161004d57806376cdb03b14610121578063b5828df21461014b578063f1610a2814610187578063fbab7815146101c35761007a565b806319f7a0fb1461007e5780632b0a7032146100ba57806337a9a59e146100e45761007a565b3661007a57005b5f80fd5b348015610089575f80fd5b506100a4600480360381019061009f9190610999565b6101f3565b6040516100b19190610a1f565b60405180910390f35b3480156100c5575f80fd5b506100ce61029a565b6040516100db9190610ab2565b60405180910390f35b3480156100ef575f80fd5b5061010a60048036038101906101059190610acb565b6102bd565b604051610118929190610b05565b60405180910390f35b34801561012c575f80fd5b5061013561035f565b6040516101429190610b4c565b60405180910390f35b348015610156575f80fd5b50610171600480360381019061016c9190610b65565b610383565b60405161017e9190610ff7565b60405180910390f35b348015610192575f80fd5b506101ad60048036038101906101a89190610acb565b610426565b6040516101ba9190611157565b60405180910390f35b6101dd60048036038101906101d89190611253565b6104cf565b6040516101ea9190611317565b60405180910390f35b5f805f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166319f7a0fb8585856040518463ffffffff1660e01b815260040161025193929190611387565b6020604051808303815f875af115801561026d573d5f803e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061029191906113ed565b90509392505050565b5f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b5f805f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166337a9a59e846040518263ffffffff1660e01b81526004016103179190611317565b60408051808303815f875af1158015610332573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610356919061142c565b91509150915091565b7f000000000000000000000000000000000000000000000000000000000000000081565b60605f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663b5828df2836040518263ffffffff1660e01b81526004016103dd919061146a565b5f60405180830381865afa1580156103f7573d5f803e3d5ffd5b505050506040513d5f823e3d601f19601f8201168201806040525081019061041f9190611ac2565b9050919050565b61042e6106fb565b5f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663f1610a28836040518263ffffffff1660e01b81526004016104869190611317565b5f60405180830381865afa1580156104a0573d5f803e3d5ffd5b505050506040513d5f823e3d601f19601f820116820180604052508101906104c89190611b09565b9050919050565b5f80600167ffffffffffffffff8111156104ec576104eb610875565b5b60405190808252806020026020018201604052801561052557816020015b610512610798565b81526020019060019003908161050a5790505b50905084848080601f0160208091040260200160405190810160405280939291908181526020018383808284375f81840152601f19601f82011690508083019250505050505050815f8151811061057f5761057e611b50565b5b60200260200101516020018190525082815f815181106105a2576105a1611b50565b5b60200260200101515f0181815250507f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff1663844048113330846040518463ffffffff1660e01b815260040161060e93929190611c20565b6020604051808303815f875af115801561062a573d5f803e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061064e91906113ed565b505f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663474d7f358a8a8a8a6040518563ffffffff1660e01b81526004016106ad9493929190611c98565b6020604051808303815f875af11580156106c9573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906106ed9190611cd1565b915050979650505050505050565b604051806101a001604052805f67ffffffffffffffff168152602001606081526020015f60030b815260200161072f6107b1565b81526020015f67ffffffffffffffff1681526020015f67ffffffffffffffff168152602001606081526020015f67ffffffffffffffff1681526020015f67ffffffffffffffff168152602001606081526020016060815260200160608152602001606081525090565b60405180604001604052805f8152602001606081525090565b6040518060800160405280606081526020016060815260200160608152602001606081525090565b5f604051905090565b5f80fd5b5f80fd5b5f67ffffffffffffffff82169050919050565b610806816107ea565b8114610810575f80fd5b50565b5f81359050610821816107fd565b92915050565b5f8160030b9050919050565b61083c81610827565b8114610846575f80fd5b50565b5f8135905061085781610833565b92915050565b5f80fd5b5f80fd5b5f601f19601f8301169050919050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52604160045260245ffd5b6108ab82610865565b810181811067ffffffffffffffff821117156108ca576108c9610875565b5b80604052505050565b5f6108dc6107d9565b90506108e882826108a2565b919050565b5f67ffffffffffffffff82111561090757610906610875565b5b61091082610865565b9050602081019050919050565b828183375f83830152505050565b5f61093d610938846108ed565b6108d3565b90508281526020810184848401111561095957610958610861565b5b61096484828561091d565b509392505050565b5f82601f8301126109805761097f61085d565b5b813561099084826020860161092b565b91505092915050565b5f805f606084860312156109b0576109af6107e2565b5b5f6109bd86828701610813565b93505060206109ce86828701610849565b925050604084013567ffffffffffffffff8111156109ef576109ee6107e6565b5b6109fb8682870161096c565b9150509250925092565b5f8115159050919050565b610a1981610a05565b82525050565b5f602082019050610a325f830184610a10565b92915050565b5f73ffffffffffffffffffffffffffffffffffffffff82169050919050565b5f819050919050565b5f610a7a610a75610a7084610a38565b610a57565b610a38565b9050919050565b5f610a8b82610a60565b9050919050565b5f610a9c82610a81565b9050919050565b610aac81610a92565b82525050565b5f602082019050610ac55f830184610aa3565b92915050565b5f60208284031215610ae057610adf6107e2565b5b5f610aed84828501610813565b91505092915050565b610aff816107ea565b82525050565b5f604082019050610b185f830185610af6565b610b256020830184610af6565b9392505050565b5f610b3682610a81565b9050919050565b610b4681610b2c565b82525050565b5f602082019050610b5f5f830184610b3d565b92915050565b5f60208284031215610b7a57610b796107e2565b5b5f610b8784828501610849565b91505092915050565b5f81519050919050565b5f82825260208201905092915050565b5f819050602082019050919050565b610bc2816107ea565b82525050565b5f81519050919050565b5f82825260208201905092915050565b5f5b83811015610bff578082015181840152602081019050610be4565b5f8484015250505050565b5f610c1482610bc8565b610c1e8185610bd2565b9350610c2e818560208601610be2565b610c3781610865565b840191505092915050565b610c4b81610827565b82525050565b5f81519050919050565b5f82825260208201905092915050565b5f610c7582610c51565b610c7f8185610c5b565b9350610c8f818560208601610be2565b610c9881610865565b840191505092915050565b5f608083015f8301518482035f860152610cbd8282610c6b565b91505060208301518482036020860152610cd78282610c6b565b91505060408301518482036040860152610cf18282610c6b565b91505060608301518482036060860152610d0b8282610c6b565b9150508091505092915050565b5f81519050919050565b5f82825260208201905092915050565b5f819050602082019050919050565b5f819050919050565b610d5381610d41565b82525050565b5f604083015f830151610d6e5f860182610d4a565b5060208301518482036020860152610d868282610c6b565b9150508091505092915050565b5f610d9e8383610d59565b905092915050565b5f602082019050919050565b5f610dbc82610d18565b610dc68185610d22565b935083602082028501610dd885610d32565b805f5b85811015610e135784840389528151610df48582610d93565b9450610dff83610da6565b925060208a01995050600181019050610ddb565b50829750879550505050505092915050565b5f6101a083015f830151610e3b5f860182610bb9565b5060208301518482036020860152610e538282610c0a565b9150506040830151610e686040860182610c42565b5060608301518482036060860152610e808282610ca3565b9150506080830151610e956080860182610bb9565b5060a0830151610ea860a0860182610bb9565b5060c083015184820360c0860152610ec08282610db2565b91505060e0830151610ed560e0860182610bb9565b50610100830151610eea610100860182610bb9565b50610120830151848203610120860152610f048282610c6b565b915050610140830151848203610140860152610f208282610c6b565b915050610160830151848203610160860152610f3c8282610c6b565b915050610180830151848203610180860152610f588282610c6b565b9150508091505092915050565b5f610f708383610e25565b905092915050565b5f602082019050919050565b5f610f8e82610b90565b610f988185610b9a565b935083602082028501610faa85610baa565b805f5b85811015610fe55784840389528151610fc68582610f65565b9450610fd183610f78565b925060208a01995050600181019050610fad565b50829750879550505050505092915050565b5f6020820190508181035f83015261100f8184610f84565b905092915050565b5f6101a083015f83015161102d5f860182610bb9565b50602083015184820360208601526110458282610c0a565b915050604083015161105a6040860182610c42565b50606083015184820360608601526110728282610ca3565b91505060808301516110876080860182610bb9565b5060a083015161109a60a0860182610bb9565b5060c083015184820360c08601526110b28282610db2565b91505060e08301516110c760e0860182610bb9565b506101008301516110dc610100860182610bb9565b506101208301518482036101208601526110f68282610c6b565b9150506101408301518482036101408601526111128282610c6b565b91505061016083015184820361016086015261112e8282610c6b565b91505061018083015184820361018086015261114a8282610c6b565b9150508091505092915050565b5f6020820190508181035f83015261116f8184611017565b905092915050565b5f80fd5b5f80fd5b5f8083601f8401126111945761119361085d565b5b8235905067ffffffffffffffff8111156111b1576111b0611177565b5b6020830191508360018202830111156111cd576111cc61117b565b5b9250929050565b5f8083601f8401126111e9576111e861085d565b5b8235905067ffffffffffffffff81111561120657611205611177565b5b6020830191508360018202830111156112225761122161117b565b5b9250929050565b61123281610d41565b811461123c575f80fd5b50565b5f8135905061124d81611229565b92915050565b5f805f805f805f6080888a03121561126e5761126d6107e2565b5b5f88013567ffffffffffffffff81111561128b5761128a6107e6565b5b6112978a828b0161117f565b9750975050602088013567ffffffffffffffff8111156112ba576112b96107e6565b5b6112c68a828b0161117f565b9550955050604088013567ffffffffffffffff8111156112e9576112e86107e6565b5b6112f58a828b016111d4565b935093505060606113088a828b0161123f565b91505092959891949750929550565b5f60208201905061132a5f830184610af6565b92915050565b61133981610827565b82525050565b5f82825260208201905092915050565b5f61135982610c51565b611363818561133f565b9350611373818560208601610be2565b61137c81610865565b840191505092915050565b5f60608201905061139a5f830186610af6565b6113a76020830185611330565b81810360408301526113b9818461134f565b9050949350505050565b6113cc81610a05565b81146113d6575f80fd5b50565b5f815190506113e7816113c3565b92915050565b5f60208284031215611402576114016107e2565b5b5f61140f848285016113d9565b91505092915050565b5f81519050611426816107fd565b92915050565b5f8060408385031215611442576114416107e2565b5b5f61144f85828601611418565b925050602061146085828601611418565b9150509250929050565b5f60208201905061147d5f830184611330565b92915050565b5f67ffffffffffffffff82111561149d5761149c610875565b5b602082029050602081019050919050565b5f80fd5b5f80fd5b5f67ffffffffffffffff8211156114d0576114cf610875565b5b6114d982610865565b9050602081019050919050565b5f6114f86114f3846114b6565b6108d3565b90508281526020810184848401111561151457611513610861565b5b61151f848285610be2565b509392505050565b5f82601f83011261153b5761153a61085d565b5b815161154b8482602086016114e6565b91505092915050565b5f8151905061156281610833565b92915050565b5f61157a611575846108ed565b6108d3565b90508281526020810184848401111561159657611595610861565b5b6115a1848285610be2565b509392505050565b5f82601f8301126115bd576115bc61085d565b5b81516115cd848260208601611568565b91505092915050565b5f608082840312156115eb576115ea6114ae565b5b6115f560806108d3565b90505f82015167ffffffffffffffff811115611614576116136114b2565b5b611620848285016115a9565b5f83015250602082015167ffffffffffffffff811115611643576116426114b2565b5b61164f848285016115a9565b602083015250604082015167ffffffffffffffff811115611673576116726114b2565b5b61167f848285016115a9565b604083015250606082015167ffffffffffffffff8111156116a3576116a26114b2565b5b6116af848285016115a9565b60608301525092915050565b5f67ffffffffffffffff8211156116d5576116d4610875565b5b602082029050602081019050919050565b5f815190506116f481611229565b92915050565b5f6040828403121561170f5761170e6114ae565b5b61171960406108d3565b90505f611728848285016116e6565b5f83015250602082015167ffffffffffffffff81111561174b5761174a6114b2565b5b611757848285016115a9565b60208301525092915050565b5f611775611770846116bb565b6108d3565b905080838252602082019050602084028301858111156117985761179761117b565b5b835b818110156117df57805167ffffffffffffffff8111156117bd576117bc61085d565b5b8086016117ca89826116fa565b8552602085019450505060208101905061179a565b5050509392505050565b5f82601f8301126117fd576117fc61085d565b5b815161180d848260208601611763565b91505092915050565b5f6101a0828403121561182c5761182b6114ae565b5b6118376101a06108d3565b90505f61184684828501611418565b5f83015250602082015167ffffffffffffffff811115611869576118686114b2565b5b61187584828501611527565b602083015250604061188984828501611554565b604083015250606082015167ffffffffffffffff8111156118ad576118ac6114b2565b5b6118b9848285016115d6565b60608301525060806118cd84828501611418565b60808301525060a06118e184828501611418565b60a08301525060c082015167ffffffffffffffff811115611905576119046114b2565b5b611911848285016117e9565b60c08301525060e061192584828501611418565b60e08301525061010061193a84828501611418565b6101008301525061012082015167ffffffffffffffff8111156119605761195f6114b2565b5b61196c848285016115a9565b6101208301525061014082015167ffffffffffffffff811115611992576119916114b2565b5b61199e848285016115a9565b6101408301525061016082015167ffffffffffffffff8111156119c4576119c36114b2565b5b6119d0848285016115a9565b6101608301525061018082015167ffffffffffffffff8111156119f6576119f56114b2565b5b611a02848285016115a9565b6101808301525092915050565b5f611a21611a1c84611483565b6108d3565b90508083825260208201905060208402830185811115611a4457611a4361117b565b5b835b81811015611a8b57805167ffffffffffffffff811115611a6957611a6861085d565b5b808601611a768982611816565b85526020850194505050602081019050611a46565b5050509392505050565b5f82601f830112611aa957611aa861085d565b5b8151611ab9848260208601611a0f565b91505092915050565b5f60208284031215611ad757611ad66107e2565b5b5f82015167ffffffffffffffff811115611af457611af36107e6565b5b611b0084828501611a95565b91505092915050565b5f60208284031215611b1e57611b1d6107e2565b5b5f82015167ffffffffffffffff811115611b3b57611b3a6107e6565b5b611b4784828501611816565b91505092915050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52603260045260245ffd5b5f611b8782610a38565b9050919050565b611b9781611b7d565b82525050565b5f82825260208201905092915050565b5f611bb782610d18565b611bc18185611b9d565b935083602082028501611bd385610d32565b805f5b85811015611c0e5784840389528151611bef8582610d93565b9450611bfa83610da6565b925060208a01995050600181019050611bd6565b50829750879550505050505092915050565b5f606082019050611c335f830186611b8e565b611c406020830185611b8e565b8181036040830152611c528184611bad565b9050949350505050565b5f82825260208201905092915050565b5f611c778385611c5c565b9350611c8483858461091d565b611c8d83610865565b840190509392505050565b5f6040820190508181035f830152611cb1818688611c6c565b90508181036020830152611cc6818486611c6c565b905095945050505050565b5f60208284031215611ce657611ce56107e2565b5b5f611cf384828501611418565b9150509291505056fea2646970667358221220edf29f0cd7e5959303b1f68c6f94e27d443b0b3e45b01246f2d9a5a24b861de464736f6c63430008140033", + Bin: "0x60a0604052734381dc2ab14285160c808659aee005d51255add773ffffffffffffffffffffffffffffffffffffffff1660809073ffffffffffffffffffffffffffffffffffffffff1681525034801562000057575f80fd5b5060405162001f1038038062001f1083398181016040528101906200007d91906200018e565b5f73ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1603620000e3576040517fd92e233d00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b805f806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050620001be565b5f80fd5b5f73ffffffffffffffffffffffffffffffffffffffff82169050919050565b5f62000158826200012d565b9050919050565b6200016a816200014c565b811462000175575f80fd5b50565b5f8151905062000188816200015f565b92915050565b5f60208284031215620001a657620001a562000129565b5b5f620001b58482850162000178565b91505092915050565b608051611d32620001de5f395f818161036101526105b30152611d325ff3fe608060405260043610610073575f3560e01c806376cdb03b1161004d57806376cdb03b14610121578063b5828df21461014b578063f1610a2814610187578063fbab7815146101c35761007a565b806319f7a0fb1461007e5780632b0a7032146100ba57806337a9a59e146100e45761007a565b3661007a57005b5f80fd5b348015610089575f80fd5b506100a4600480360381019061009f9190610999565b6101f3565b6040516100b19190610a1f565b60405180910390f35b3480156100c5575f80fd5b506100ce61029a565b6040516100db9190610ab2565b60405180910390f35b3480156100ef575f80fd5b5061010a60048036038101906101059190610acb565b6102bd565b604051610118929190610b05565b60405180910390f35b34801561012c575f80fd5b5061013561035f565b6040516101429190610b4c565b60405180910390f35b348015610156575f80fd5b50610171600480360381019061016c9190610b65565b610383565b60405161017e9190610ff7565b60405180910390f35b348015610192575f80fd5b506101ad60048036038101906101a89190610acb565b610426565b6040516101ba9190611157565b60405180910390f35b6101dd60048036038101906101d89190611253565b6104cf565b6040516101ea9190611317565b60405180910390f35b5f805f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166319f7a0fb8585856040518463ffffffff1660e01b815260040161025193929190611387565b6020604051808303815f875af115801561026d573d5f803e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061029191906113ed565b90509392505050565b5f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b5f805f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166337a9a59e846040518263ffffffff1660e01b81526004016103179190611317565b60408051808303815f875af1158015610332573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610356919061142c565b91509150915091565b7f000000000000000000000000000000000000000000000000000000000000000081565b60605f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663b5828df2836040518263ffffffff1660e01b81526004016103dd919061146a565b5f60405180830381865afa1580156103f7573d5f803e3d5ffd5b505050506040513d5f823e3d601f19601f8201168201806040525081019061041f9190611ac2565b9050919050565b61042e6106fb565b5f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663f1610a28836040518263ffffffff1660e01b81526004016104869190611317565b5f60405180830381865afa1580156104a0573d5f803e3d5ffd5b505050506040513d5f823e3d601f19601f820116820180604052508101906104c89190611b09565b9050919050565b5f80600167ffffffffffffffff8111156104ec576104eb610875565b5b60405190808252806020026020018201604052801561052557816020015b610512610798565b81526020019060019003908161050a5790505b50905084848080601f0160208091040260200160405190810160405280939291908181526020018383808284375f81840152601f19601f82011690508083019250505050505050815f8151811061057f5761057e611b50565b5b60200260200101516020018190525082815f815181106105a2576105a1611b50565b5b60200260200101515f0181815250507f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff1663844048113330846040518463ffffffff1660e01b815260040161060e93929190611c20565b6020604051808303815f875af115801561062a573d5f803e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061064e91906113ed565b505f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663474d7f358a8a8a8a6040518563ffffffff1660e01b81526004016106ad9493929190611c98565b6020604051808303815f875af11580156106c9573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906106ed9190611cd1565b915050979650505050505050565b604051806101a001604052805f67ffffffffffffffff168152602001606081526020015f60030b815260200161072f6107b1565b81526020015f67ffffffffffffffff1681526020015f67ffffffffffffffff168152602001606081526020015f67ffffffffffffffff1681526020015f67ffffffffffffffff168152602001606081526020016060815260200160608152602001606081525090565b60405180604001604052805f8152602001606081525090565b6040518060800160405280606081526020016060815260200160608152602001606081525090565b5f604051905090565b5f80fd5b5f80fd5b5f67ffffffffffffffff82169050919050565b610806816107ea565b8114610810575f80fd5b50565b5f81359050610821816107fd565b92915050565b5f8160030b9050919050565b61083c81610827565b8114610846575f80fd5b50565b5f8135905061085781610833565b92915050565b5f80fd5b5f80fd5b5f601f19601f8301169050919050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52604160045260245ffd5b6108ab82610865565b810181811067ffffffffffffffff821117156108ca576108c9610875565b5b80604052505050565b5f6108dc6107d9565b90506108e882826108a2565b919050565b5f67ffffffffffffffff82111561090757610906610875565b5b61091082610865565b9050602081019050919050565b828183375f83830152505050565b5f61093d610938846108ed565b6108d3565b90508281526020810184848401111561095957610958610861565b5b61096484828561091d565b509392505050565b5f82601f8301126109805761097f61085d565b5b813561099084826020860161092b565b91505092915050565b5f805f606084860312156109b0576109af6107e2565b5b5f6109bd86828701610813565b93505060206109ce86828701610849565b925050604084013567ffffffffffffffff8111156109ef576109ee6107e6565b5b6109fb8682870161096c565b9150509250925092565b5f8115159050919050565b610a1981610a05565b82525050565b5f602082019050610a325f830184610a10565b92915050565b5f73ffffffffffffffffffffffffffffffffffffffff82169050919050565b5f819050919050565b5f610a7a610a75610a7084610a38565b610a57565b610a38565b9050919050565b5f610a8b82610a60565b9050919050565b5f610a9c82610a81565b9050919050565b610aac81610a92565b82525050565b5f602082019050610ac55f830184610aa3565b92915050565b5f60208284031215610ae057610adf6107e2565b5b5f610aed84828501610813565b91505092915050565b610aff816107ea565b82525050565b5f604082019050610b185f830185610af6565b610b256020830184610af6565b9392505050565b5f610b3682610a81565b9050919050565b610b4681610b2c565b82525050565b5f602082019050610b5f5f830184610b3d565b92915050565b5f60208284031215610b7a57610b796107e2565b5b5f610b8784828501610849565b91505092915050565b5f81519050919050565b5f82825260208201905092915050565b5f819050602082019050919050565b610bc2816107ea565b82525050565b5f81519050919050565b5f82825260208201905092915050565b5f5b83811015610bff578082015181840152602081019050610be4565b5f8484015250505050565b5f610c1482610bc8565b610c1e8185610bd2565b9350610c2e818560208601610be2565b610c3781610865565b840191505092915050565b610c4b81610827565b82525050565b5f81519050919050565b5f82825260208201905092915050565b5f610c7582610c51565b610c7f8185610c5b565b9350610c8f818560208601610be2565b610c9881610865565b840191505092915050565b5f608083015f8301518482035f860152610cbd8282610c6b565b91505060208301518482036020860152610cd78282610c6b565b91505060408301518482036040860152610cf18282610c6b565b91505060608301518482036060860152610d0b8282610c6b565b9150508091505092915050565b5f81519050919050565b5f82825260208201905092915050565b5f819050602082019050919050565b5f819050919050565b610d5381610d41565b82525050565b5f604083015f830151610d6e5f860182610d4a565b5060208301518482036020860152610d868282610c6b565b9150508091505092915050565b5f610d9e8383610d59565b905092915050565b5f602082019050919050565b5f610dbc82610d18565b610dc68185610d22565b935083602082028501610dd885610d32565b805f5b85811015610e135784840389528151610df48582610d93565b9450610dff83610da6565b925060208a01995050600181019050610ddb565b50829750879550505050505092915050565b5f6101a083015f830151610e3b5f860182610bb9565b5060208301518482036020860152610e538282610c0a565b9150506040830151610e686040860182610c42565b5060608301518482036060860152610e808282610ca3565b9150506080830151610e956080860182610bb9565b5060a0830151610ea860a0860182610bb9565b5060c083015184820360c0860152610ec08282610db2565b91505060e0830151610ed560e0860182610bb9565b50610100830151610eea610100860182610bb9565b50610120830151848203610120860152610f048282610c6b565b915050610140830151848203610140860152610f208282610c6b565b915050610160830151848203610160860152610f3c8282610c6b565b915050610180830151848203610180860152610f588282610c6b565b9150508091505092915050565b5f610f708383610e25565b905092915050565b5f602082019050919050565b5f610f8e82610b90565b610f988185610b9a565b935083602082028501610faa85610baa565b805f5b85811015610fe55784840389528151610fc68582610f65565b9450610fd183610f78565b925060208a01995050600181019050610fad565b50829750879550505050505092915050565b5f6020820190508181035f83015261100f8184610f84565b905092915050565b5f6101a083015f83015161102d5f860182610bb9565b50602083015184820360208601526110458282610c0a565b915050604083015161105a6040860182610c42565b50606083015184820360608601526110728282610ca3565b91505060808301516110876080860182610bb9565b5060a083015161109a60a0860182610bb9565b5060c083015184820360c08601526110b28282610db2565b91505060e08301516110c760e0860182610bb9565b506101008301516110dc610100860182610bb9565b506101208301518482036101208601526110f68282610c6b565b9150506101408301518482036101408601526111128282610c6b565b91505061016083015184820361016086015261112e8282610c6b565b91505061018083015184820361018086015261114a8282610c6b565b9150508091505092915050565b5f6020820190508181035f83015261116f8184611017565b905092915050565b5f80fd5b5f80fd5b5f8083601f8401126111945761119361085d565b5b8235905067ffffffffffffffff8111156111b1576111b0611177565b5b6020830191508360018202830111156111cd576111cc61117b565b5b9250929050565b5f8083601f8401126111e9576111e861085d565b5b8235905067ffffffffffffffff81111561120657611205611177565b5b6020830191508360018202830111156112225761122161117b565b5b9250929050565b61123281610d41565b811461123c575f80fd5b50565b5f8135905061124d81611229565b92915050565b5f805f805f805f6080888a03121561126e5761126d6107e2565b5b5f88013567ffffffffffffffff81111561128b5761128a6107e6565b5b6112978a828b0161117f565b9750975050602088013567ffffffffffffffff8111156112ba576112b96107e6565b5b6112c68a828b0161117f565b9550955050604088013567ffffffffffffffff8111156112e9576112e86107e6565b5b6112f58a828b016111d4565b935093505060606113088a828b0161123f565b91505092959891949750929550565b5f60208201905061132a5f830184610af6565b92915050565b61133981610827565b82525050565b5f82825260208201905092915050565b5f61135982610c51565b611363818561133f565b9350611373818560208601610be2565b61137c81610865565b840191505092915050565b5f60608201905061139a5f830186610af6565b6113a76020830185611330565b81810360408301526113b9818461134f565b9050949350505050565b6113cc81610a05565b81146113d6575f80fd5b50565b5f815190506113e7816113c3565b92915050565b5f60208284031215611402576114016107e2565b5b5f61140f848285016113d9565b91505092915050565b5f81519050611426816107fd565b92915050565b5f8060408385031215611442576114416107e2565b5b5f61144f85828601611418565b925050602061146085828601611418565b9150509250929050565b5f60208201905061147d5f830184611330565b92915050565b5f67ffffffffffffffff82111561149d5761149c610875565b5b602082029050602081019050919050565b5f80fd5b5f80fd5b5f67ffffffffffffffff8211156114d0576114cf610875565b5b6114d982610865565b9050602081019050919050565b5f6114f86114f3846114b6565b6108d3565b90508281526020810184848401111561151457611513610861565b5b61151f848285610be2565b509392505050565b5f82601f83011261153b5761153a61085d565b5b815161154b8482602086016114e6565b91505092915050565b5f8151905061156281610833565b92915050565b5f61157a611575846108ed565b6108d3565b90508281526020810184848401111561159657611595610861565b5b6115a1848285610be2565b509392505050565b5f82601f8301126115bd576115bc61085d565b5b81516115cd848260208601611568565b91505092915050565b5f608082840312156115eb576115ea6114ae565b5b6115f560806108d3565b90505f82015167ffffffffffffffff811115611614576116136114b2565b5b611620848285016115a9565b5f83015250602082015167ffffffffffffffff811115611643576116426114b2565b5b61164f848285016115a9565b602083015250604082015167ffffffffffffffff811115611673576116726114b2565b5b61167f848285016115a9565b604083015250606082015167ffffffffffffffff8111156116a3576116a26114b2565b5b6116af848285016115a9565b60608301525092915050565b5f67ffffffffffffffff8211156116d5576116d4610875565b5b602082029050602081019050919050565b5f815190506116f481611229565b92915050565b5f6040828403121561170f5761170e6114ae565b5b61171960406108d3565b90505f611728848285016116e6565b5f83015250602082015167ffffffffffffffff81111561174b5761174a6114b2565b5b611757848285016115a9565b60208301525092915050565b5f611775611770846116bb565b6108d3565b905080838252602082019050602084028301858111156117985761179761117b565b5b835b818110156117df57805167ffffffffffffffff8111156117bd576117bc61085d565b5b8086016117ca89826116fa565b8552602085019450505060208101905061179a565b5050509392505050565b5f82601f8301126117fd576117fc61085d565b5b815161180d848260208601611763565b91505092915050565b5f6101a0828403121561182c5761182b6114ae565b5b6118376101a06108d3565b90505f61184684828501611418565b5f83015250602082015167ffffffffffffffff811115611869576118686114b2565b5b61187584828501611527565b602083015250604061188984828501611554565b604083015250606082015167ffffffffffffffff8111156118ad576118ac6114b2565b5b6118b9848285016115d6565b60608301525060806118cd84828501611418565b60808301525060a06118e184828501611418565b60a08301525060c082015167ffffffffffffffff811115611905576119046114b2565b5b611911848285016117e9565b60c08301525060e061192584828501611418565b60e08301525061010061193a84828501611418565b6101008301525061012082015167ffffffffffffffff8111156119605761195f6114b2565b5b61196c848285016115a9565b6101208301525061014082015167ffffffffffffffff811115611992576119916114b2565b5b61199e848285016115a9565b6101408301525061016082015167ffffffffffffffff8111156119c4576119c36114b2565b5b6119d0848285016115a9565b6101608301525061018082015167ffffffffffffffff8111156119f6576119f56114b2565b5b611a02848285016115a9565b6101808301525092915050565b5f611a21611a1c84611483565b6108d3565b90508083825260208201905060208402830185811115611a4457611a4361117b565b5b835b81811015611a8b57805167ffffffffffffffff811115611a6957611a6861085d565b5b808601611a768982611816565b85526020850194505050602081019050611a46565b5050509392505050565b5f82601f830112611aa957611aa861085d565b5b8151611ab9848260208601611a0f565b91505092915050565b5f60208284031215611ad757611ad66107e2565b5b5f82015167ffffffffffffffff811115611af457611af36107e6565b5b611b0084828501611a95565b91505092915050565b5f60208284031215611b1e57611b1d6107e2565b5b5f82015167ffffffffffffffff811115611b3b57611b3a6107e6565b5b611b4784828501611816565b91505092915050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52603260045260245ffd5b5f611b8782610a38565b9050919050565b611b9781611b7d565b82525050565b5f82825260208201905092915050565b5f611bb782610d18565b611bc18185611b9d565b935083602082028501611bd385610d32565b805f5b85811015611c0e5784840389528151611bef8582610d93565b9450611bfa83610da6565b925060208a01995050600181019050611bd6565b50829750879550505050505092915050565b5f606082019050611c335f830186611b8e565b611c406020830185611b8e565b8181036040830152611c528184611bad565b9050949350505050565b5f82825260208201905092915050565b5f611c778385611c5c565b9350611c8483858461091d565b611c8d83610865565b840190509392505050565b5f6040820190508181035f830152611cb1818688611c6c565b90508181036020830152611cc6818486611c6c565b905095945050505050565b5f60208284031215611ce657611ce56107e2565b5b5f611cf384828501611418565b9150509291505056fea26469706673582212202976813d6c239b807a69fd0930b36e6fa71a7e8de353cda79fbb644a301769b664736f6c63430008140033", } // 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 a7c88a0d9..a93bfce83 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: "0x61010060405273d9a998cac66092748ffec7cfbd155aae1737c2ff73ffffffffffffffffffffffffffffffffffffffff1660e09073ffffffffffffffffffffffffffffffffffffffff1681525034801562000058575f80fd5b50604051620028583803806200285883398181016040528101906200007e9190620002f0565b81816012825f9081620000929190620005aa565b508160019081620000a49190620005aa565b508060ff1660808160ff16815250504660a08181525050620000cb620000dd60201b60201c565b60c08181525050505050505062000817565b5f7f8b73c3c69bb8fe3d512ecc4cf759cc79239f7b179b0ffacaa9a75d522b39400f5f6040516200010f919062000736565b60405180910390207fc89efdaa54c0f20c7adf612882df0950f5a951637e0307cdcb4c672f298b8bc6463060405160200162000150959493929190620007bc565b60405160208183030381529060405280519060200120905090565b5f604051905090565b5f80fd5b5f80fd5b5f80fd5b5f80fd5b5f601f19601f8301169050919050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52604160045260245ffd5b620001cc8262000184565b810181811067ffffffffffffffff82111715620001ee57620001ed62000194565b5b80604052505050565b5f620002026200016b565b9050620002108282620001c1565b919050565b5f67ffffffffffffffff82111562000232576200023162000194565b5b6200023d8262000184565b9050602081019050919050565b5f5b83811015620002695780820151818401526020810190506200024c565b5f8484015250505050565b5f6200028a620002848462000215565b620001f7565b905082815260208101848484011115620002a957620002a862000180565b5b620002b68482856200024a565b509392505050565b5f82601f830112620002d557620002d46200017c565b5b8151620002e784826020860162000274565b91505092915050565b5f806040838503121562000309576200030862000174565b5b5f83015167ffffffffffffffff81111562000329576200032862000178565b5b6200033785828601620002be565b925050602083015167ffffffffffffffff8111156200035b576200035a62000178565b5b6200036985828601620002be565b9150509250929050565b5f81519050919050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52602260045260245ffd5b5f6002820490506001821680620003c257607f821691505b602082108103620003d857620003d76200037d565b5b50919050565b5f819050815f5260205f209050919050565b5f6020601f8301049050919050565b5f82821b905092915050565b5f600883026200043c7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff82620003ff565b620004488683620003ff565b95508019841693508086168417925050509392505050565b5f819050919050565b5f819050919050565b5f620004926200048c620004868462000460565b62000469565b62000460565b9050919050565b5f819050919050565b620004ad8362000472565b620004c5620004bc8262000499565b8484546200040b565b825550505050565b5f90565b620004db620004cd565b620004e8818484620004a2565b505050565b5b818110156200050f57620005035f82620004d1565b600181019050620004ee565b5050565b601f8211156200055e576200052881620003de565b6200053384620003f0565b8101602085101562000543578190505b6200055b6200055285620003f0565b830182620004ed565b50505b505050565b5f82821c905092915050565b5f620005805f198460080262000563565b1980831691505092915050565b5f6200059a83836200056f565b9150826002028217905092915050565b620005b58262000373565b67ffffffffffffffff811115620005d157620005d062000194565b5b620005dd8254620003aa565b620005ea82828562000513565b5f60209050601f83116001811462000620575f84156200060b578287015190505b6200061785826200058d565b86555062000686565b601f1984166200063086620003de565b5f5b82811015620006595784890151825560018201915060208501945060208101905062000632565b8683101562000679578489015162000675601f8916826200056f565b8355505b6001600288020188555050505b505050505050565b5f81905092915050565b5f819050815f5260205f209050919050565b5f8154620006b881620003aa565b620006c481866200068e565b9450600182165f8114620006e15760018114620006f7576200072d565b60ff19831686528115158202860193506200072d565b620007028562000698565b5f5b83811015620007255781548189015260018201915060208101905062000704565b838801955050505b50505092915050565b5f620007438284620006aa565b915081905092915050565b5f819050919050565b62000762816200074e565b82525050565b620007738162000460565b82525050565b5f73ffffffffffffffffffffffffffffffffffffffff82169050919050565b5f620007a48262000779565b9050919050565b620007b68162000798565b82525050565b5f60a082019050620007d15f83018862000757565b620007e0602083018762000757565b620007ef604083018662000757565b620007fe606083018562000768565b6200080d6080830184620007ab565b9695505050505050565b60805160a05160c05160e051611ff1620008675f395f8181610907015281816109e301528181610ab201528181610b5f015261106601525f6108e001525f6108ac01525f6108870152611ff15ff3fe608060405260043610610101575f3560e01c806370a08231116100945780639fa6dd35116100635780639fa6dd351461034a578063a9059cbb14610366578063d505accf146103a2578063dd62ed3e146103ca578063f639187e1461040657610108565b806370a082311461027e5780637ecebe00146102ba57806395d89b41146102f65780639de702581461032057610108565b80632e1a7d4d116100d05780632e1a7d4d146101d8578063313ce567146102005780633644e5151461022a5780634cf088d91461025457610108565b806306fdde031461010c578063095ea7b31461013657806318160ddd1461017257806323b872dd1461019c57610108565b3661010857005b5f80fd5b348015610117575f80fd5b50610120610442565b60405161012d91906113af565b60405180910390f35b348015610141575f80fd5b5061015c6004803603810190610157919061146d565b6104cd565b60405161016991906114c5565b60405180910390f35b34801561017d575f80fd5b506101866105ba565b60405161019391906114ed565b60405180910390f35b3480156101a7575f80fd5b506101c260048036038101906101bd9190611506565b6105c0565b6040516101cf91906114c5565b60405180910390f35b3480156101e3575f80fd5b506101fe60048036038101906101f99190611556565b6107fb565b005b34801561020b575f80fd5b50610214610885565b604051610221919061159c565b60405180910390f35b348015610235575f80fd5b5061023e6108a9565b60405161024b91906115cd565b60405180910390f35b34801561025f575f80fd5b50610268610905565b6040516102759190611641565b60405180910390f35b348015610289575f80fd5b506102a4600480360381019061029f919061165a565b610929565b6040516102b191906114ed565b60405180910390f35b3480156102c5575f80fd5b506102e060048036038101906102db919061165a565b61093e565b6040516102ed91906114ed565b60405180910390f35b348015610301575f80fd5b5061030a610953565b60405161031791906113af565b60405180910390f35b34801561032b575f80fd5b506103346109df565b604051610341919061173c565b60405180910390f35b610364600480360381019061035f9190611556565b610a76565b005b348015610371575f80fd5b5061038c6004803603810190610387919061146d565b610c49565b60405161039991906114c5565b60405180910390f35b3480156103ad575f80fd5b506103c860048036038101906103c391906117b0565b610d56565b005b3480156103d5575f80fd5b506103f060048036038101906103eb919061184d565b611043565b6040516103fd91906114ed565b60405180910390f35b348015610411575f80fd5b5061042c6004803603810190610427919061165a565b611063565b60405161043991906114ed565b60405180910390f35b5f805461044e906118b8565b80601f016020809104026020016040519081016040528092919081815260200182805461047a906118b8565b80156104c55780601f1061049c576101008083540402835291602001916104c5565b820191905f5260205f20905b8154815290600101906020018083116104a857829003601f168201915b505050505081565b5f8160045f3373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20819055508273ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925846040516105a891906114ed565b60405180910390a36001905092915050565b60025481565b5f8060045f8673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f3373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205490507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff81146106ed5782816106709190611915565b60045f8773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f3373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20819055505b8260035f8773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8282546107399190611915565b925050819055508260035f8673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f82825401925050819055508373ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef856040516107e791906114ed565b60405180910390a360019150509392505050565b5f8103610834576040517f1f2a200500000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b61083e3382611105565b3373ffffffffffffffffffffffffffffffffffffffff166108fc8290811502906040515f60405180830381858888f19350505050158015610881573d5f803e3d5ffd5b5050565b7f000000000000000000000000000000000000000000000000000000000000000081565b5f7f000000000000000000000000000000000000000000000000000000000000000046146108de576108d96111d0565b610900565b7f00000000000000000000000000000000000000000000000000000000000000005b905090565b7f000000000000000000000000000000000000000000000000000000000000000081565b6003602052805f5260405f205f915090505481565b6005602052805f5260405f205f915090505481565b60018054610960906118b8565b80601f016020809104026020016040519081016040528092919081815260200182805461098c906118b8565b80156109d75780601f106109ae576101008083540402835291602001916109d7565b820191905f5260205f20905b8154815290600101906020018083116109ba57829003601f168201915b505050505081565b60607f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff16639de702586040518163ffffffff1660e01b81526004015f60405180830381865afa158015610a49573d5f803e3d5ffd5b505050506040513d5f823e3d601f19601f82011682018060405250810190610a719190611a9c565b905090565b5f8103610aaf576040517f1f2a200500000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b5f7f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff16639de702586040518163ffffffff1660e01b81526004015f60405180830381865afa158015610b18573d5f803e3d5ffd5b505050506040513d5f823e3d601f19601f82011682018060405250810190610b409190611a9c565b5f81518110610b5257610b51611ae3565b5b602002602001015190505f7f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff1663026e402b83856040518363ffffffff1660e01b8152600401610bb8929190611b1f565b6020604051808303815f875af1158015610bd4573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610bf89190611b70565b905080610c3a576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610c3190611be5565b60405180910390fd5b610c44338461125a565b505050565b5f8160035f3373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f828254610c969190611915565b925050819055508160035f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f82825401925050819055508273ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef84604051610d4491906114ed565b60405180910390a36001905092915050565b42841015610d99576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610d9090611c4d565b60405180910390fd5b5f6001610da46108a9565b7f6e71edae12b1b97f4d1f60370fef10105fa2faae0126114a169c64845d6126c98a8a8a60055f8f73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f815480929190600101919050558b604051602001610e2996959493929190611c6b565b60405160208183030381529060405280519060200120604051602001610e50929190611d3e565b604051602081830303815290604052805190602001208585856040515f8152602001604052604051610e859493929190611d74565b6020604051602081039080840390855afa158015610ea5573d5f803e3d5ffd5b5050506020604051035190505f73ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1614158015610f1857508773ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff16145b610f57576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610f4e90611e01565b60405180910390fd5b8560045f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8973ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2081905550508573ffffffffffffffffffffffffffffffffffffffff168773ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b9258760405161103291906114ed565b60405180910390a350505050505050565b6004602052815f5260405f20602052805f5260405f205f91509150505481565b5f7f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff166315049a5a30846040518363ffffffff1660e01b81526004016110bf929190611e1f565b602060405180830381865afa1580156110da573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906110fe9190611e5a565b9050919050565b8060035f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8282546111519190611915565b925050819055508060025f82825403925050819055505f73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef836040516111c491906114ed565b60405180910390a35050565b5f7f8b73c3c69bb8fe3d512ecc4cf759cc79239f7b179b0ffacaa9a75d522b39400f5f6040516112009190611f21565b60405180910390207fc89efdaa54c0f20c7adf612882df0950f5a951637e0307cdcb4c672f298b8bc6463060405160200161123f959493929190611f37565b60405160208183030381529060405280519060200120905090565b8060025f82825461126b9190611f88565b925050819055508060035f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f82825401925050819055508173ffffffffffffffffffffffffffffffffffffffff165f73ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef8360405161131991906114ed565b60405180910390a35050565b5f81519050919050565b5f82825260208201905092915050565b5f5b8381101561135c578082015181840152602081019050611341565b5f8484015250505050565b5f601f19601f8301169050919050565b5f61138182611325565b61138b818561132f565b935061139b81856020860161133f565b6113a481611367565b840191505092915050565b5f6020820190508181035f8301526113c78184611377565b905092915050565b5f604051905090565b5f80fd5b5f80fd5b5f73ffffffffffffffffffffffffffffffffffffffff82169050919050565b5f611409826113e0565b9050919050565b611419816113ff565b8114611423575f80fd5b50565b5f8135905061143481611410565b92915050565b5f819050919050565b61144c8161143a565b8114611456575f80fd5b50565b5f8135905061146781611443565b92915050565b5f8060408385031215611483576114826113d8565b5b5f61149085828601611426565b92505060206114a185828601611459565b9150509250929050565b5f8115159050919050565b6114bf816114ab565b82525050565b5f6020820190506114d85f8301846114b6565b92915050565b6114e78161143a565b82525050565b5f6020820190506115005f8301846114de565b92915050565b5f805f6060848603121561151d5761151c6113d8565b5b5f61152a86828701611426565b935050602061153b86828701611426565b925050604061154c86828701611459565b9150509250925092565b5f6020828403121561156b5761156a6113d8565b5b5f61157884828501611459565b91505092915050565b5f60ff82169050919050565b61159681611581565b82525050565b5f6020820190506115af5f83018461158d565b92915050565b5f819050919050565b6115c7816115b5565b82525050565b5f6020820190506115e05f8301846115be565b92915050565b5f819050919050565b5f6116096116046115ff846113e0565b6115e6565b6113e0565b9050919050565b5f61161a826115ef565b9050919050565b5f61162b82611610565b9050919050565b61163b81611621565b82525050565b5f6020820190506116545f830184611632565b92915050565b5f6020828403121561166f5761166e6113d8565b5b5f61167c84828501611426565b91505092915050565b5f81519050919050565b5f82825260208201905092915050565b5f819050602082019050919050565b6116b7816113ff565b82525050565b5f6116c883836116ae565b60208301905092915050565b5f602082019050919050565b5f6116ea82611685565b6116f4818561168f565b93506116ff8361169f565b805f5b8381101561172f57815161171688826116bd565b9750611721836116d4565b925050600181019050611702565b5085935050505092915050565b5f6020820190508181035f83015261175481846116e0565b905092915050565b61176581611581565b811461176f575f80fd5b50565b5f813590506117808161175c565b92915050565b61178f816115b5565b8114611799575f80fd5b50565b5f813590506117aa81611786565b92915050565b5f805f805f805f60e0888a0312156117cb576117ca6113d8565b5b5f6117d88a828b01611426565b97505060206117e98a828b01611426565b96505060406117fa8a828b01611459565b955050606061180b8a828b01611459565b945050608061181c8a828b01611772565b93505060a061182d8a828b0161179c565b92505060c061183e8a828b0161179c565b91505092959891949750929550565b5f8060408385031215611863576118626113d8565b5b5f61187085828601611426565b925050602061188185828601611426565b9150509250929050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52602260045260245ffd5b5f60028204905060018216806118cf57607f821691505b6020821081036118e2576118e161188b565b5b50919050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601160045260245ffd5b5f61191f8261143a565b915061192a8361143a565b9250828203905081811115611942576119416118e8565b5b92915050565b5f80fd5b7f4e487b71000000000000000000000000000000000000000000000000000000005f52604160045260245ffd5b61198282611367565b810181811067ffffffffffffffff821117156119a1576119a061194c565b5b80604052505050565b5f6119b36113cf565b90506119bf8282611979565b919050565b5f67ffffffffffffffff8211156119de576119dd61194c565b5b602082029050602081019050919050565b5f80fd5b5f81519050611a0181611410565b92915050565b5f611a19611a14846119c4565b6119aa565b90508083825260208201905060208402830185811115611a3c57611a3b6119ef565b5b835b81811015611a655780611a5188826119f3565b845260208401935050602081019050611a3e565b5050509392505050565b5f82601f830112611a8357611a82611948565b5b8151611a93848260208601611a07565b91505092915050565b5f60208284031215611ab157611ab06113d8565b5b5f82015167ffffffffffffffff811115611ace57611acd6113dc565b5b611ada84828501611a6f565b91505092915050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52603260045260245ffd5b611b19816113ff565b82525050565b5f604082019050611b325f830185611b10565b611b3f60208301846114de565b9392505050565b611b4f816114ab565b8114611b59575f80fd5b50565b5f81519050611b6a81611b46565b92915050565b5f60208284031215611b8557611b846113d8565b5b5f611b9284828501611b5c565b91505092915050565b7f4661696c656420746f2064656c656761746500000000000000000000000000005f82015250565b5f611bcf60128361132f565b9150611bda82611b9b565b602082019050919050565b5f6020820190508181035f830152611bfc81611bc3565b9050919050565b7f5045524d49545f444541444c494e455f455850495245440000000000000000005f82015250565b5f611c3760178361132f565b9150611c4282611c03565b602082019050919050565b5f6020820190508181035f830152611c6481611c2b565b9050919050565b5f60c082019050611c7e5f8301896115be565b611c8b6020830188611b10565b611c986040830187611b10565b611ca560608301866114de565b611cb260808301856114de565b611cbf60a08301846114de565b979650505050505050565b5f81905092915050565b7f19010000000000000000000000000000000000000000000000000000000000005f82015250565b5f611d08600283611cca565b9150611d1382611cd4565b600282019050919050565b5f819050919050565b611d38611d33826115b5565b611d1e565b82525050565b5f611d4882611cfc565b9150611d548285611d27565b602082019150611d648284611d27565b6020820191508190509392505050565b5f608082019050611d875f8301876115be565b611d94602083018661158d565b611da160408301856115be565b611dae60608301846115be565b95945050505050565b7f494e56414c49445f5349474e45520000000000000000000000000000000000005f82015250565b5f611deb600e8361132f565b9150611df682611db7565b602082019050919050565b5f6020820190508181035f830152611e1881611ddf565b9050919050565b5f604082019050611e325f830185611b10565b611e3f6020830184611b10565b9392505050565b5f81519050611e5481611443565b92915050565b5f60208284031215611e6f57611e6e6113d8565b5b5f611e7c84828501611e46565b91505092915050565b5f81905092915050565b5f819050815f5260205f209050919050565b5f8154611ead816118b8565b611eb78186611e85565b9450600182165f8114611ed15760018114611ee657611f18565b60ff1983168652811515820286019350611f18565b611eef85611e8f565b5f5b83811015611f1057815481890152600182019150602081019050611ef1565b838801955050505b50505092915050565b5f611f2c8284611ea1565b915081905092915050565b5f60a082019050611f4a5f8301886115be565b611f5760208301876115be565b611f6460408301866115be565b611f7160608301856114de565b611f7e6080830184611b10565b9695505050505050565b5f611f928261143a565b9150611f9d8361143a565b9250828201905080821115611fb557611fb46118e8565b5b9291505056fea2646970667358221220f812cf9d517f9827d9dc0327cfe9d901d39910872c35df63d6c038d7c26d4b6f64736f6c63430008140033", + Bin: "0x61010060405273d9a998cac66092748ffec7cfbd155aae1737c2ff73ffffffffffffffffffffffffffffffffffffffff1660e09073ffffffffffffffffffffffffffffffffffffffff1681525034801562000058575f80fd5b50604051620028583803806200285883398181016040528101906200007e9190620002f0565b81816012825f9081620000929190620005aa565b508160019081620000a49190620005aa565b508060ff1660808160ff16815250504660a08181525050620000cb620000dd60201b60201c565b60c08181525050505050505062000817565b5f7f8b73c3c69bb8fe3d512ecc4cf759cc79239f7b179b0ffacaa9a75d522b39400f5f6040516200010f919062000736565b60405180910390207fc89efdaa54c0f20c7adf612882df0950f5a951637e0307cdcb4c672f298b8bc6463060405160200162000150959493929190620007bc565b60405160208183030381529060405280519060200120905090565b5f604051905090565b5f80fd5b5f80fd5b5f80fd5b5f80fd5b5f601f19601f8301169050919050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52604160045260245ffd5b620001cc8262000184565b810181811067ffffffffffffffff82111715620001ee57620001ed62000194565b5b80604052505050565b5f620002026200016b565b9050620002108282620001c1565b919050565b5f67ffffffffffffffff82111562000232576200023162000194565b5b6200023d8262000184565b9050602081019050919050565b5f5b83811015620002695780820151818401526020810190506200024c565b5f8484015250505050565b5f6200028a620002848462000215565b620001f7565b905082815260208101848484011115620002a957620002a862000180565b5b620002b68482856200024a565b509392505050565b5f82601f830112620002d557620002d46200017c565b5b8151620002e784826020860162000274565b91505092915050565b5f806040838503121562000309576200030862000174565b5b5f83015167ffffffffffffffff81111562000329576200032862000178565b5b6200033785828601620002be565b925050602083015167ffffffffffffffff8111156200035b576200035a62000178565b5b6200036985828601620002be565b9150509250929050565b5f81519050919050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52602260045260245ffd5b5f6002820490506001821680620003c257607f821691505b602082108103620003d857620003d76200037d565b5b50919050565b5f819050815f5260205f209050919050565b5f6020601f8301049050919050565b5f82821b905092915050565b5f600883026200043c7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff82620003ff565b620004488683620003ff565b95508019841693508086168417925050509392505050565b5f819050919050565b5f819050919050565b5f620004926200048c620004868462000460565b62000469565b62000460565b9050919050565b5f819050919050565b620004ad8362000472565b620004c5620004bc8262000499565b8484546200040b565b825550505050565b5f90565b620004db620004cd565b620004e8818484620004a2565b505050565b5b818110156200050f57620005035f82620004d1565b600181019050620004ee565b5050565b601f8211156200055e576200052881620003de565b6200053384620003f0565b8101602085101562000543578190505b6200055b6200055285620003f0565b830182620004ed565b50505b505050565b5f82821c905092915050565b5f620005805f198460080262000563565b1980831691505092915050565b5f6200059a83836200056f565b9150826002028217905092915050565b620005b58262000373565b67ffffffffffffffff811115620005d157620005d062000194565b5b620005dd8254620003aa565b620005ea82828562000513565b5f60209050601f83116001811462000620575f84156200060b578287015190505b6200061785826200058d565b86555062000686565b601f1984166200063086620003de565b5f5b82811015620006595784890151825560018201915060208501945060208101905062000632565b8683101562000679578489015162000675601f8916826200056f565b8355505b6001600288020188555050505b505050505050565b5f81905092915050565b5f819050815f5260205f209050919050565b5f8154620006b881620003aa565b620006c481866200068e565b9450600182165f8114620006e15760018114620006f7576200072d565b60ff19831686528115158202860193506200072d565b620007028562000698565b5f5b83811015620007255781548189015260018201915060208101905062000704565b838801955050505b50505092915050565b5f620007438284620006aa565b915081905092915050565b5f819050919050565b62000762816200074e565b82525050565b620007738162000460565b82525050565b5f73ffffffffffffffffffffffffffffffffffffffff82169050919050565b5f620007a48262000779565b9050919050565b620007b68162000798565b82525050565b5f60a082019050620007d15f83018862000757565b620007e0602083018762000757565b620007ef604083018662000757565b620007fe606083018562000768565b6200080d6080830184620007ab565b9695505050505050565b60805160a05160c05160e051611ff1620008675f395f8181610907015281816109e301528181610ab201528181610b5f015261106601525f6108e001525f6108ac01525f6108870152611ff15ff3fe608060405260043610610101575f3560e01c806370a08231116100945780639fa6dd35116100635780639fa6dd351461034a578063a9059cbb14610366578063d505accf146103a2578063dd62ed3e146103ca578063f639187e1461040657610108565b806370a082311461027e5780637ecebe00146102ba57806395d89b41146102f65780639de702581461032057610108565b80632e1a7d4d116100d05780632e1a7d4d146101d8578063313ce567146102005780633644e5151461022a5780634cf088d91461025457610108565b806306fdde031461010c578063095ea7b31461013657806318160ddd1461017257806323b872dd1461019c57610108565b3661010857005b5f80fd5b348015610117575f80fd5b50610120610442565b60405161012d91906113af565b60405180910390f35b348015610141575f80fd5b5061015c6004803603810190610157919061146d565b6104cd565b60405161016991906114c5565b60405180910390f35b34801561017d575f80fd5b506101866105ba565b60405161019391906114ed565b60405180910390f35b3480156101a7575f80fd5b506101c260048036038101906101bd9190611506565b6105c0565b6040516101cf91906114c5565b60405180910390f35b3480156101e3575f80fd5b506101fe60048036038101906101f99190611556565b6107fb565b005b34801561020b575f80fd5b50610214610885565b604051610221919061159c565b60405180910390f35b348015610235575f80fd5b5061023e6108a9565b60405161024b91906115cd565b60405180910390f35b34801561025f575f80fd5b50610268610905565b6040516102759190611641565b60405180910390f35b348015610289575f80fd5b506102a4600480360381019061029f919061165a565b610929565b6040516102b191906114ed565b60405180910390f35b3480156102c5575f80fd5b506102e060048036038101906102db919061165a565b61093e565b6040516102ed91906114ed565b60405180910390f35b348015610301575f80fd5b5061030a610953565b60405161031791906113af565b60405180910390f35b34801561032b575f80fd5b506103346109df565b604051610341919061173c565b60405180910390f35b610364600480360381019061035f9190611556565b610a76565b005b348015610371575f80fd5b5061038c6004803603810190610387919061146d565b610c49565b60405161039991906114c5565b60405180910390f35b3480156103ad575f80fd5b506103c860048036038101906103c391906117b0565b610d56565b005b3480156103d5575f80fd5b506103f060048036038101906103eb919061184d565b611043565b6040516103fd91906114ed565b60405180910390f35b348015610411575f80fd5b5061042c6004803603810190610427919061165a565b611063565b60405161043991906114ed565b60405180910390f35b5f805461044e906118b8565b80601f016020809104026020016040519081016040528092919081815260200182805461047a906118b8565b80156104c55780601f1061049c576101008083540402835291602001916104c5565b820191905f5260205f20905b8154815290600101906020018083116104a857829003601f168201915b505050505081565b5f8160045f3373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20819055508273ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925846040516105a891906114ed565b60405180910390a36001905092915050565b60025481565b5f8060045f8673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f3373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205490507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff81146106ed5782816106709190611915565b60045f8773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f3373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20819055505b8260035f8773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8282546107399190611915565b925050819055508260035f8673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f82825401925050819055508373ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef856040516107e791906114ed565b60405180910390a360019150509392505050565b5f8103610834576040517f1f2a200500000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b61083e3382611105565b3373ffffffffffffffffffffffffffffffffffffffff166108fc8290811502906040515f60405180830381858888f19350505050158015610881573d5f803e3d5ffd5b5050565b7f000000000000000000000000000000000000000000000000000000000000000081565b5f7f000000000000000000000000000000000000000000000000000000000000000046146108de576108d96111d0565b610900565b7f00000000000000000000000000000000000000000000000000000000000000005b905090565b7f000000000000000000000000000000000000000000000000000000000000000081565b6003602052805f5260405f205f915090505481565b6005602052805f5260405f205f915090505481565b60018054610960906118b8565b80601f016020809104026020016040519081016040528092919081815260200182805461098c906118b8565b80156109d75780601f106109ae576101008083540402835291602001916109d7565b820191905f5260205f20905b8154815290600101906020018083116109ba57829003601f168201915b505050505081565b60607f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff16639de702586040518163ffffffff1660e01b81526004015f60405180830381865afa158015610a49573d5f803e3d5ffd5b505050506040513d5f823e3d601f19601f82011682018060405250810190610a719190611a9c565b905090565b5f8103610aaf576040517f1f2a200500000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b5f7f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff16639de702586040518163ffffffff1660e01b81526004015f60405180830381865afa158015610b18573d5f803e3d5ffd5b505050506040513d5f823e3d601f19601f82011682018060405250810190610b409190611a9c565b5f81518110610b5257610b51611ae3565b5b602002602001015190505f7f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff1663026e402b83856040518363ffffffff1660e01b8152600401610bb8929190611b1f565b6020604051808303815f875af1158015610bd4573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610bf89190611b70565b905080610c3a576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610c3190611be5565b60405180910390fd5b610c44338461125a565b505050565b5f8160035f3373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f828254610c969190611915565b925050819055508160035f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f82825401925050819055508273ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef84604051610d4491906114ed565b60405180910390a36001905092915050565b42841015610d99576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610d9090611c4d565b60405180910390fd5b5f6001610da46108a9565b7f6e71edae12b1b97f4d1f60370fef10105fa2faae0126114a169c64845d6126c98a8a8a60055f8f73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f815480929190600101919050558b604051602001610e2996959493929190611c6b565b60405160208183030381529060405280519060200120604051602001610e50929190611d3e565b604051602081830303815290604052805190602001208585856040515f8152602001604052604051610e859493929190611d74565b6020604051602081039080840390855afa158015610ea5573d5f803e3d5ffd5b5050506020604051035190505f73ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1614158015610f1857508773ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff16145b610f57576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610f4e90611e01565b60405180910390fd5b8560045f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8973ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2081905550508573ffffffffffffffffffffffffffffffffffffffff168773ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b9258760405161103291906114ed565b60405180910390a350505050505050565b6004602052815f5260405f20602052805f5260405f205f91509150505481565b5f7f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff166315049a5a30846040518363ffffffff1660e01b81526004016110bf929190611e1f565b602060405180830381865afa1580156110da573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906110fe9190611e5a565b9050919050565b8060035f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8282546111519190611915565b925050819055508060025f82825403925050819055505f73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef836040516111c491906114ed565b60405180910390a35050565b5f7f8b73c3c69bb8fe3d512ecc4cf759cc79239f7b179b0ffacaa9a75d522b39400f5f6040516112009190611f21565b60405180910390207fc89efdaa54c0f20c7adf612882df0950f5a951637e0307cdcb4c672f298b8bc6463060405160200161123f959493929190611f37565b60405160208183030381529060405280519060200120905090565b8060025f82825461126b9190611f88565b925050819055508060035f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f82825401925050819055508173ffffffffffffffffffffffffffffffffffffffff165f73ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef8360405161131991906114ed565b60405180910390a35050565b5f81519050919050565b5f82825260208201905092915050565b5f5b8381101561135c578082015181840152602081019050611341565b5f8484015250505050565b5f601f19601f8301169050919050565b5f61138182611325565b61138b818561132f565b935061139b81856020860161133f565b6113a481611367565b840191505092915050565b5f6020820190508181035f8301526113c78184611377565b905092915050565b5f604051905090565b5f80fd5b5f80fd5b5f73ffffffffffffffffffffffffffffffffffffffff82169050919050565b5f611409826113e0565b9050919050565b611419816113ff565b8114611423575f80fd5b50565b5f8135905061143481611410565b92915050565b5f819050919050565b61144c8161143a565b8114611456575f80fd5b50565b5f8135905061146781611443565b92915050565b5f8060408385031215611483576114826113d8565b5b5f61149085828601611426565b92505060206114a185828601611459565b9150509250929050565b5f8115159050919050565b6114bf816114ab565b82525050565b5f6020820190506114d85f8301846114b6565b92915050565b6114e78161143a565b82525050565b5f6020820190506115005f8301846114de565b92915050565b5f805f6060848603121561151d5761151c6113d8565b5b5f61152a86828701611426565b935050602061153b86828701611426565b925050604061154c86828701611459565b9150509250925092565b5f6020828403121561156b5761156a6113d8565b5b5f61157884828501611459565b91505092915050565b5f60ff82169050919050565b61159681611581565b82525050565b5f6020820190506115af5f83018461158d565b92915050565b5f819050919050565b6115c7816115b5565b82525050565b5f6020820190506115e05f8301846115be565b92915050565b5f819050919050565b5f6116096116046115ff846113e0565b6115e6565b6113e0565b9050919050565b5f61161a826115ef565b9050919050565b5f61162b82611610565b9050919050565b61163b81611621565b82525050565b5f6020820190506116545f830184611632565b92915050565b5f6020828403121561166f5761166e6113d8565b5b5f61167c84828501611426565b91505092915050565b5f81519050919050565b5f82825260208201905092915050565b5f819050602082019050919050565b6116b7816113ff565b82525050565b5f6116c883836116ae565b60208301905092915050565b5f602082019050919050565b5f6116ea82611685565b6116f4818561168f565b93506116ff8361169f565b805f5b8381101561172f57815161171688826116bd565b9750611721836116d4565b925050600181019050611702565b5085935050505092915050565b5f6020820190508181035f83015261175481846116e0565b905092915050565b61176581611581565b811461176f575f80fd5b50565b5f813590506117808161175c565b92915050565b61178f816115b5565b8114611799575f80fd5b50565b5f813590506117aa81611786565b92915050565b5f805f805f805f60e0888a0312156117cb576117ca6113d8565b5b5f6117d88a828b01611426565b97505060206117e98a828b01611426565b96505060406117fa8a828b01611459565b955050606061180b8a828b01611459565b945050608061181c8a828b01611772565b93505060a061182d8a828b0161179c565b92505060c061183e8a828b0161179c565b91505092959891949750929550565b5f8060408385031215611863576118626113d8565b5b5f61187085828601611426565b925050602061188185828601611426565b9150509250929050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52602260045260245ffd5b5f60028204905060018216806118cf57607f821691505b6020821081036118e2576118e161188b565b5b50919050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601160045260245ffd5b5f61191f8261143a565b915061192a8361143a565b9250828203905081811115611942576119416118e8565b5b92915050565b5f80fd5b7f4e487b71000000000000000000000000000000000000000000000000000000005f52604160045260245ffd5b61198282611367565b810181811067ffffffffffffffff821117156119a1576119a061194c565b5b80604052505050565b5f6119b36113cf565b90506119bf8282611979565b919050565b5f67ffffffffffffffff8211156119de576119dd61194c565b5b602082029050602081019050919050565b5f80fd5b5f81519050611a0181611410565b92915050565b5f611a19611a14846119c4565b6119aa565b90508083825260208201905060208402830185811115611a3c57611a3b6119ef565b5b835b81811015611a655780611a5188826119f3565b845260208401935050602081019050611a3e565b5050509392505050565b5f82601f830112611a8357611a82611948565b5b8151611a93848260208601611a07565b91505092915050565b5f60208284031215611ab157611ab06113d8565b5b5f82015167ffffffffffffffff811115611ace57611acd6113dc565b5b611ada84828501611a6f565b91505092915050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52603260045260245ffd5b611b19816113ff565b82525050565b5f604082019050611b325f830185611b10565b611b3f60208301846114de565b9392505050565b611b4f816114ab565b8114611b59575f80fd5b50565b5f81519050611b6a81611b46565b92915050565b5f60208284031215611b8557611b846113d8565b5b5f611b9284828501611b5c565b91505092915050565b7f4661696c656420746f2064656c656761746500000000000000000000000000005f82015250565b5f611bcf60128361132f565b9150611bda82611b9b565b602082019050919050565b5f6020820190508181035f830152611bfc81611bc3565b9050919050565b7f5045524d49545f444541444c494e455f455850495245440000000000000000005f82015250565b5f611c3760178361132f565b9150611c4282611c03565b602082019050919050565b5f6020820190508181035f830152611c6481611c2b565b9050919050565b5f60c082019050611c7e5f8301896115be565b611c8b6020830188611b10565b611c986040830187611b10565b611ca560608301866114de565b611cb260808301856114de565b611cbf60a08301846114de565b979650505050505050565b5f81905092915050565b7f19010000000000000000000000000000000000000000000000000000000000005f82015250565b5f611d08600283611cca565b9150611d1382611cd4565b600282019050919050565b5f819050919050565b611d38611d33826115b5565b611d1e565b82525050565b5f611d4882611cfc565b9150611d548285611d27565b602082019150611d648284611d27565b6020820191508190509392505050565b5f608082019050611d875f8301876115be565b611d94602083018661158d565b611da160408301856115be565b611dae60608301846115be565b95945050505050565b7f494e56414c49445f5349474e45520000000000000000000000000000000000005f82015250565b5f611deb600e8361132f565b9150611df682611db7565b602082019050919050565b5f6020820190508181035f830152611e1881611ddf565b9050919050565b5f604082019050611e325f830185611b10565b611e3f6020830184611b10565b9392505050565b5f81519050611e5481611443565b92915050565b5f60208284031215611e6f57611e6e6113d8565b5b5f611e7c84828501611e46565b91505092915050565b5f81905092915050565b5f819050815f5260205f209050919050565b5f8154611ead816118b8565b611eb78186611e85565b9450600182165f8114611ed15760018114611ee657611f18565b60ff1983168652811515820286019350611f18565b611eef85611e8f565b5f5b83811015611f1057815481890152600182019150602081019050611ef1565b838801955050505b50505092915050565b5f611f2c8284611ea1565b915081905092915050565b5f60a082019050611f4a5f8301886115be565b611f5760208301876115be565b611f6460408301866115be565b611f7160608301856114de565b611f7e6080830184611b10565b9695505050505050565b5f611f928261143a565b9150611f9d8361143a565b9250828201905080821115611fb557611fb46118e8565b5b9291505056fea26469706673582212206e94756ac8b0d0c1f5a56ac96027208d9c5092f65e2a677ab5fd0095aee5d1b364736f6c63430008140033", } // 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 368a0914e..3abf43142 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: "0x60a06040526269696973ffffffffffffffffffffffffffffffffffffffff1660809073ffffffffffffffffffffffffffffffffffffffff1681525034801562000046575f80fd5b505f60805173ffffffffffffffffffffffffffffffffffffffff1663096b4069333363075bcd156040518463ffffffff1660e01b81526004016200008d9392919062000411565b6020604051808303815f875af1158015620000aa573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190620000d09190620004ac565b90508062000115576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016200010c906200052a565b60405180910390fd5b60805173ffffffffffffffffffffffffffffffffffffffff1663a333e57c6040518163ffffffff1660e01b815260040162000150906200054a565b602060405180830381865afa1580156200016c573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190620001929190620005ac565b5f806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555060805173ffffffffffffffffffffffffffffffffffffffff1663cd22a0185f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff166040518263ffffffff1660e01b81526004016200022c91906200063a565b5f60405180830381865afa15801562000247573d5f803e3d5ffd5b505050506040513d5f823e3d601f19601f82011682018060405250810190620002719190620007c9565b6001908162000281919062000a3d565b50604051602001620002939062000b51565b604051602081830303815290604052805190602001206001604051602001620002bd919062000bf3565b604051602081830303815290604052805190602001201462000316576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016200030d9062000c59565b60405180910390fd5b5062000c79565b5f82825260208201905092915050565b7f61626572610000000000000000000000000000000000000000000000000000005f82015250565b5f620003636005836200031d565b915062000370826200032d565b602082019050919050565b5f73ffffffffffffffffffffffffffffffffffffffff82169050919050565b5f620003a6826200037b565b9050919050565b620003b8816200039a565b82525050565b5f819050919050565b5f819050919050565b5f819050919050565b5f620003f9620003f3620003ed84620003be565b620003d0565b620003c7565b9050919050565b6200040b81620003d9565b82525050565b5f6080820190508181035f8301526200042a8162000355565b90506200043b6020830186620003ad565b6200044a6040830185620003ad565b62000459606083018462000400565b949350505050565b5f604051905090565b5f80fd5b5f80fd5b5f8115159050919050565b620004888162000472565b811462000493575f80fd5b50565b5f81519050620004a6816200047d565b92915050565b5f60208284031215620004c457620004c36200046a565b5b5f620004d38482850162000496565b91505092915050565b7f6661696c656420746f207472616e7366657220616265726100000000000000005f82015250565b5f620005126018836200031d565b91506200051f82620004dc565b602082019050919050565b5f6020820190508181035f830152620005438162000504565b9050919050565b5f6020820190508181035f830152620005638162000355565b9050919050565b5f62000576826200039a565b9050919050565b62000588816200056a565b811462000593575f80fd5b50565b5f81519050620005a6816200057d565b92915050565b5f60208284031215620005c457620005c36200046a565b5b5f620005d38482850162000596565b91505092915050565b5f620005fc620005f6620005f0846200037b565b620003d0565b6200037b565b9050919050565b5f6200060f82620005dc565b9050919050565b5f620006228262000603565b9050919050565b620006348162000616565b82525050565b5f6020820190506200064f5f83018462000629565b92915050565b5f80fd5b5f80fd5b5f601f19601f8301169050919050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52604160045260245ffd5b620006a5826200065d565b810181811067ffffffffffffffff82111715620006c757620006c66200066d565b5b80604052505050565b5f620006db62000461565b9050620006e982826200069a565b919050565b5f67ffffffffffffffff8211156200070b576200070a6200066d565b5b62000716826200065d565b9050602081019050919050565b5f5b838110156200074257808201518184015260208101905062000725565b5f8484015250505050565b5f620007636200075d84620006ee565b620006d0565b90508281526020810184848401111562000782576200078162000659565b5b6200078f84828562000723565b509392505050565b5f82601f830112620007ae57620007ad62000655565b5b8151620007c08482602086016200074d565b91505092915050565b5f60208284031215620007e157620007e06200046a565b5b5f82015167ffffffffffffffff8111156200080157620008006200046e565b5b6200080f8482850162000797565b91505092915050565b5f81519050919050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52602260045260245ffd5b5f60028204905060018216806200086757607f821691505b6020821081036200087d576200087c62000822565b5b50919050565b5f819050815f5260205f209050919050565b5f6020601f8301049050919050565b5f82821b905092915050565b5f60088302620008e17fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff82620008a4565b620008ed8683620008a4565b95508019841693508086168417925050509392505050565b5f620009256200091f6200091984620003c7565b620003d0565b620003c7565b9050919050565b5f819050919050565b620009408362000905565b620009586200094f826200092c565b848454620008b0565b825550505050565b5f90565b6200096e62000960565b6200097b81848462000935565b505050565b5b81811015620009a257620009965f8262000964565b60018101905062000981565b5050565b601f821115620009f157620009bb8162000883565b620009c68462000895565b81016020851015620009d6578190505b620009ee620009e58562000895565b83018262000980565b50505b505050565b5f82821c905092915050565b5f62000a135f1984600802620009f6565b1980831691505092915050565b5f62000a2d838362000a02565b9150826002028217905092915050565b62000a488262000818565b67ffffffffffffffff81111562000a645762000a636200066d565b5b62000a7082546200084f565b62000a7d828285620009a6565b5f60209050601f83116001811462000ab3575f841562000a9e578287015190505b62000aaa858262000a20565b86555062000b19565b601f19841662000ac38662000883565b5f5b8281101562000aec5784890151825560018201915060208501945060208101905062000ac5565b8683101562000b0c578489015162000b08601f89168262000a02565b8355505b6001600288020188555050505b505050505050565b5f81905092915050565b5f62000b3960058362000b21565b915062000b46826200032d565b600582019050919050565b5f62000b5d8262000b2b565b9150819050919050565b5f815462000b75816200084f565b62000b81818662000b21565b9450600182165f811462000b9e576001811462000bb45762000bea565b60ff198316865281151582028601935062000bea565b62000bbf8562000883565b5f5b8381101562000be25781548189015260018201915060208101905062000bc1565b838801955050505b50505092915050565b5f62000c00828462000b67565b915081905092915050565b7f72657475726e6564207468652077726f6e672064656e6f6d00000000000000005f82015250565b5f62000c416018836200031d565b915062000c4e8262000c0b565b602082019050919050565b5f6020820190508181035f83015262000c728162000c33565b9050919050565b60805161037962000c915f395f60c201526103795ff3fe608060405234801561000f575f80fd5b506004361061003f575f3560e01c8063558f208414610043578063714ba40c14610061578063c370b0421461007f575b5f80fd5b61004b61009d565b60405161005891906101ea565b60405180910390f35b6100696100c0565b6040516100769190610223565b60405180910390f35b6100876100e4565b60405161009491906102c6565b60405180910390f35b5f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b7f000000000000000000000000000000000000000000000000000000000000000081565b600180546100f190610313565b80601f016020809104026020016040519081016040528092919081815260200182805461011d90610313565b80156101685780601f1061013f57610100808354040283529160200191610168565b820191905f5260205f20905b81548152906001019060200180831161014b57829003601f168201915b505050505081565b5f73ffffffffffffffffffffffffffffffffffffffff82169050919050565b5f819050919050565b5f6101b26101ad6101a884610170565b61018f565b610170565b9050919050565b5f6101c382610198565b9050919050565b5f6101d4826101b9565b9050919050565b6101e4816101ca565b82525050565b5f6020820190506101fd5f8301846101db565b92915050565b5f61020d826101b9565b9050919050565b61021d81610203565b82525050565b5f6020820190506102365f830184610214565b92915050565b5f81519050919050565b5f82825260208201905092915050565b5f5b83811015610273578082015181840152602081019050610258565b5f8484015250505050565b5f601f19601f8301169050919050565b5f6102988261023c565b6102a28185610246565b93506102b2818560208601610256565b6102bb8161027e565b840191505092915050565b5f6020820190508181035f8301526102de818461028e565b905092915050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52602260045260245ffd5b5f600282049050600182168061032a57607f821691505b60208210810361033d5761033c6102e6565b5b5091905056fea2646970667358221220ba9ac22e1dad7b48aa1f4e2e1fe997dc6579145b0d6db8262e295c4f4b30ae8e64736f6c63430008140033", + Bin: "0x60a06040526269696973ffffffffffffffffffffffffffffffffffffffff1660809073ffffffffffffffffffffffffffffffffffffffff1681525034801562000046575f80fd5b505f60805173ffffffffffffffffffffffffffffffffffffffff1663096b4069333363075bcd156040518463ffffffff1660e01b81526004016200008d9392919062000411565b6020604051808303815f875af1158015620000aa573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190620000d09190620004ac565b90508062000115576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016200010c906200052a565b60405180910390fd5b60805173ffffffffffffffffffffffffffffffffffffffff1663a333e57c6040518163ffffffff1660e01b815260040162000150906200054a565b602060405180830381865afa1580156200016c573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190620001929190620005ac565b5f806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555060805173ffffffffffffffffffffffffffffffffffffffff1663cd22a0185f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff166040518263ffffffff1660e01b81526004016200022c91906200063a565b5f60405180830381865afa15801562000247573d5f803e3d5ffd5b505050506040513d5f823e3d601f19601f82011682018060405250810190620002719190620007c9565b6001908162000281919062000a3d565b50604051602001620002939062000b51565b604051602081830303815290604052805190602001206001604051602001620002bd919062000bf3565b604051602081830303815290604052805190602001201462000316576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016200030d9062000c59565b60405180910390fd5b5062000c79565b5f82825260208201905092915050565b7f61626572610000000000000000000000000000000000000000000000000000005f82015250565b5f620003636005836200031d565b915062000370826200032d565b602082019050919050565b5f73ffffffffffffffffffffffffffffffffffffffff82169050919050565b5f620003a6826200037b565b9050919050565b620003b8816200039a565b82525050565b5f819050919050565b5f819050919050565b5f819050919050565b5f620003f9620003f3620003ed84620003be565b620003d0565b620003c7565b9050919050565b6200040b81620003d9565b82525050565b5f6080820190508181035f8301526200042a8162000355565b90506200043b6020830186620003ad565b6200044a6040830185620003ad565b62000459606083018462000400565b949350505050565b5f604051905090565b5f80fd5b5f80fd5b5f8115159050919050565b620004888162000472565b811462000493575f80fd5b50565b5f81519050620004a6816200047d565b92915050565b5f60208284031215620004c457620004c36200046a565b5b5f620004d38482850162000496565b91505092915050565b7f6661696c656420746f207472616e7366657220616265726100000000000000005f82015250565b5f620005126018836200031d565b91506200051f82620004dc565b602082019050919050565b5f6020820190508181035f830152620005438162000504565b9050919050565b5f6020820190508181035f830152620005638162000355565b9050919050565b5f62000576826200039a565b9050919050565b62000588816200056a565b811462000593575f80fd5b50565b5f81519050620005a6816200057d565b92915050565b5f60208284031215620005c457620005c36200046a565b5b5f620005d38482850162000596565b91505092915050565b5f620005fc620005f6620005f0846200037b565b620003d0565b6200037b565b9050919050565b5f6200060f82620005dc565b9050919050565b5f620006228262000603565b9050919050565b620006348162000616565b82525050565b5f6020820190506200064f5f83018462000629565b92915050565b5f80fd5b5f80fd5b5f601f19601f8301169050919050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52604160045260245ffd5b620006a5826200065d565b810181811067ffffffffffffffff82111715620006c757620006c66200066d565b5b80604052505050565b5f620006db62000461565b9050620006e982826200069a565b919050565b5f67ffffffffffffffff8211156200070b576200070a6200066d565b5b62000716826200065d565b9050602081019050919050565b5f5b838110156200074257808201518184015260208101905062000725565b5f8484015250505050565b5f620007636200075d84620006ee565b620006d0565b90508281526020810184848401111562000782576200078162000659565b5b6200078f84828562000723565b509392505050565b5f82601f830112620007ae57620007ad62000655565b5b8151620007c08482602086016200074d565b91505092915050565b5f60208284031215620007e157620007e06200046a565b5b5f82015167ffffffffffffffff8111156200080157620008006200046e565b5b6200080f8482850162000797565b91505092915050565b5f81519050919050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52602260045260245ffd5b5f60028204905060018216806200086757607f821691505b6020821081036200087d576200087c62000822565b5b50919050565b5f819050815f5260205f209050919050565b5f6020601f8301049050919050565b5f82821b905092915050565b5f60088302620008e17fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff82620008a4565b620008ed8683620008a4565b95508019841693508086168417925050509392505050565b5f620009256200091f6200091984620003c7565b620003d0565b620003c7565b9050919050565b5f819050919050565b620009408362000905565b620009586200094f826200092c565b848454620008b0565b825550505050565b5f90565b6200096e62000960565b6200097b81848462000935565b505050565b5b81811015620009a257620009965f8262000964565b60018101905062000981565b5050565b601f821115620009f157620009bb8162000883565b620009c68462000895565b81016020851015620009d6578190505b620009ee620009e58562000895565b83018262000980565b50505b505050565b5f82821c905092915050565b5f62000a135f1984600802620009f6565b1980831691505092915050565b5f62000a2d838362000a02565b9150826002028217905092915050565b62000a488262000818565b67ffffffffffffffff81111562000a645762000a636200066d565b5b62000a7082546200084f565b62000a7d828285620009a6565b5f60209050601f83116001811462000ab3575f841562000a9e578287015190505b62000aaa858262000a20565b86555062000b19565b601f19841662000ac38662000883565b5f5b8281101562000aec5784890151825560018201915060208501945060208101905062000ac5565b8683101562000b0c578489015162000b08601f89168262000a02565b8355505b6001600288020188555050505b505050505050565b5f81905092915050565b5f62000b3960058362000b21565b915062000b46826200032d565b600582019050919050565b5f62000b5d8262000b2b565b9150819050919050565b5f815462000b75816200084f565b62000b81818662000b21565b9450600182165f811462000b9e576001811462000bb45762000bea565b60ff198316865281151582028601935062000bea565b62000bbf8562000883565b5f5b8381101562000be25781548189015260018201915060208101905062000bc1565b838801955050505b50505092915050565b5f62000c00828462000b67565b915081905092915050565b7f72657475726e6564207468652077726f6e672064656e6f6d00000000000000005f82015250565b5f62000c416018836200031d565b915062000c4e8262000c0b565b602082019050919050565b5f6020820190508181035f83015262000c728162000c33565b9050919050565b60805161037962000c915f395f60c201526103795ff3fe608060405234801561000f575f80fd5b506004361061003f575f3560e01c8063558f208414610043578063714ba40c14610061578063c370b0421461007f575b5f80fd5b61004b61009d565b60405161005891906101ea565b60405180910390f35b6100696100c0565b6040516100769190610223565b60405180910390f35b6100876100e4565b60405161009491906102c6565b60405180910390f35b5f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b7f000000000000000000000000000000000000000000000000000000000000000081565b600180546100f190610313565b80601f016020809104026020016040519081016040528092919081815260200182805461011d90610313565b80156101685780601f1061013f57610100808354040283529160200191610168565b820191905f5260205f20905b81548152906001019060200180831161014b57829003601f168201915b505050505081565b5f73ffffffffffffffffffffffffffffffffffffffff82169050919050565b5f819050919050565b5f6101b26101ad6101a884610170565b61018f565b610170565b9050919050565b5f6101c382610198565b9050919050565b5f6101d4826101b9565b9050919050565b6101e4816101ca565b82525050565b5f6020820190506101fd5f8301846101db565b92915050565b5f61020d826101b9565b9050919050565b61021d81610203565b82525050565b5f6020820190506102365f830184610214565b92915050565b5f81519050919050565b5f82825260208201905092915050565b5f5b83811015610273578082015181840152602081019050610258565b5f8484015250505050565b5f601f19601f8301169050919050565b5f6102988261023c565b6102a28185610246565b93506102b2818560208601610256565b6102bb8161027e565b840191505092915050565b5f6020820190508181035f8301526102de818461028e565b905092915050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52602260045260245ffd5b5f600282049050600182168061032a57607f821691505b60208210810361033d5761033c6102e6565b5b5091905056fea26469706673582212207dbf2a7c1f08a0a4245d00373ebf36757eb6f1ee927daa802ba8d4630483d10164736f6c63430008140033", } // 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 28851c2a4..044cae7c7 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: "0x60e060405234801562000010575f80fd5b506040518060400160405280600581526020017f546f6b656e0000000000000000000000000000000000000000000000000000008152506040518060400160405280600281526020017f544b0000000000000000000000000000000000000000000000000000000000008152506012825f90816200008f9190620003ca565b508160019081620000a19190620003ca565b508060ff1660808160ff16815250504660a08181525050620000c8620000d860201b60201c565b60c0818152505050505062000637565b5f7f8b73c3c69bb8fe3d512ecc4cf759cc79239f7b179b0ffacaa9a75d522b39400f5f6040516200010a919062000556565b60405180910390207fc89efdaa54c0f20c7adf612882df0950f5a951637e0307cdcb4c672f298b8bc646306040516020016200014b959493929190620005dc565b60405160208183030381529060405280519060200120905090565b5f81519050919050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52604160045260245ffd5b7f4e487b71000000000000000000000000000000000000000000000000000000005f52602260045260245ffd5b5f6002820490506001821680620001e257607f821691505b602082108103620001f857620001f76200019d565b5b50919050565b5f819050815f5260205f209050919050565b5f6020601f8301049050919050565b5f82821b905092915050565b5f600883026200025c7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff826200021f565b6200026886836200021f565b95508019841693508086168417925050509392505050565b5f819050919050565b5f819050919050565b5f620002b2620002ac620002a68462000280565b62000289565b62000280565b9050919050565b5f819050919050565b620002cd8362000292565b620002e5620002dc82620002b9565b8484546200022b565b825550505050565b5f90565b620002fb620002ed565b62000308818484620002c2565b505050565b5b818110156200032f57620003235f82620002f1565b6001810190506200030e565b5050565b601f8211156200037e576200034881620001fe565b620003538462000210565b8101602085101562000363578190505b6200037b620003728562000210565b8301826200030d565b50505b505050565b5f82821c905092915050565b5f620003a05f198460080262000383565b1980831691505092915050565b5f620003ba83836200038f565b9150826002028217905092915050565b620003d58262000166565b67ffffffffffffffff811115620003f157620003f062000170565b5b620003fd8254620001ca565b6200040a82828562000333565b5f60209050601f83116001811462000440575f84156200042b578287015190505b620004378582620003ad565b865550620004a6565b601f1984166200045086620001fe565b5f5b82811015620004795784890151825560018201915060208501945060208101905062000452565b8683101562000499578489015162000495601f8916826200038f565b8355505b6001600288020188555050505b505050505050565b5f81905092915050565b5f819050815f5260205f209050919050565b5f8154620004d881620001ca565b620004e48186620004ae565b9450600182165f811462000501576001811462000517576200054d565b60ff19831686528115158202860193506200054d565b6200052285620004b8565b5f5b83811015620005455781548189015260018201915060208101905062000524565b838801955050505b50505092915050565b5f620005638284620004ca565b915081905092915050565b5f819050919050565b62000582816200056e565b82525050565b620005938162000280565b82525050565b5f73ffffffffffffffffffffffffffffffffffffffff82169050919050565b5f620005c48262000599565b9050919050565b620005d681620005b8565b82525050565b5f60a082019050620005f15f83018862000577565b62000600602083018762000577565b6200060f604083018662000577565b6200061e606083018562000588565b6200062d6080830184620005cb565b9695505050505050565b60805160a05160c0516115b0620006625f395f6106d301525f61069f01525f61067a01526115b05ff3fe608060405234801561000f575f80fd5b50600436106100cd575f3560e01c806340c10f191161008a57806395d89b411161006457806395d89b4114610225578063a9059cbb14610243578063d505accf14610273578063dd62ed3e1461028f576100cd565b806340c10f19146101a957806370a08231146101c55780637ecebe00146101f5576100cd565b806306fdde03146100d1578063095ea7b3146100ef57806318160ddd1461011f57806323b872dd1461013d578063313ce5671461016d5780633644e5151461018b575b5f80fd5b6100d96102bf565b6040516100e69190610e03565b60405180910390f35b61010960048036038101906101049190610eb4565b61034a565b6040516101169190610f0c565b60405180910390f35b610127610437565b6040516101349190610f34565b60405180910390f35b61015760048036038101906101529190610f4d565b61043d565b6040516101649190610f0c565b60405180910390f35b610175610678565b6040516101829190610fb8565b60405180910390f35b61019361069c565b6040516101a09190610fe9565b60405180910390f35b6101c360048036038101906101be9190610eb4565b6106f8565b005b6101df60048036038101906101da9190611002565b610754565b6040516101ec9190610f34565b60405180910390f35b61020f600480360381019061020a9190611002565b610769565b60405161021c9190610f34565b60405180910390f35b61022d61077e565b60405161023a9190610e03565b60405180910390f35b61025d60048036038101906102589190610eb4565b61080a565b60405161026a9190610f0c565b60405180910390f35b61028d60048036038101906102889190611081565b610917565b005b6102a960048036038101906102a4919061111e565b610c04565b6040516102b69190610f34565b60405180910390f35b5f80546102cb90611189565b80601f01602080910402602001604051908101604052809291908181526020018280546102f790611189565b80156103425780601f1061031957610100808354040283529160200191610342565b820191905f5260205f20905b81548152906001019060200180831161032557829003601f168201915b505050505081565b5f8160045f3373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20819055508273ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925846040516104259190610f34565b60405180910390a36001905092915050565b60025481565b5f8060045f8673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f3373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205490507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff811461056a5782816104ed91906111e6565b60045f8773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f3373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20819055505b8260035f8773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8282546105b691906111e6565b925050819055508260035f8673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f82825401925050819055508373ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef856040516106649190610f34565b60405180910390a360019150509392505050565b7f000000000000000000000000000000000000000000000000000000000000000081565b5f7f000000000000000000000000000000000000000000000000000000000000000046146106d1576106cc610c24565b6106f3565b7f00000000000000000000000000000000000000000000000000000000000000005b905090565b6107028282610cae565b8173ffffffffffffffffffffffffffffffffffffffff167f0f6798a560793a54c3bcfe86a93cde1e73087d944c0ea20544137d4121396885826040516107489190610f34565b60405180910390a25050565b6003602052805f5260405f205f915090505481565b6005602052805f5260405f205f915090505481565b6001805461078b90611189565b80601f01602080910402602001604051908101604052809291908181526020018280546107b790611189565b80156108025780601f106107d957610100808354040283529160200191610802565b820191905f5260205f20905b8154815290600101906020018083116107e557829003601f168201915b505050505081565b5f8160035f3373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f82825461085791906111e6565b925050819055508160035f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f82825401925050819055508273ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef846040516109059190610f34565b60405180910390a36001905092915050565b4284101561095a576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161095190611263565b60405180910390fd5b5f600161096561069c565b7f6e71edae12b1b97f4d1f60370fef10105fa2faae0126114a169c64845d6126c98a8a8a60055f8f73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f815480929190600101919050558b6040516020016109ea96959493929190611290565b60405160208183030381529060405280519060200120604051602001610a11929190611363565b604051602081830303815290604052805190602001208585856040515f8152602001604052604051610a469493929190611399565b6020604051602081039080840390855afa158015610a66573d5f803e3d5ffd5b5050506020604051035190505f73ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1614158015610ad957508773ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff16145b610b18576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610b0f90611426565b60405180910390fd5b8560045f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8973ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2081905550508573ffffffffffffffffffffffffffffffffffffffff168773ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92587604051610bf39190610f34565b60405180910390a350505050505050565b6004602052815f5260405f20602052805f5260405f205f91509150505481565b5f7f8b73c3c69bb8fe3d512ecc4cf759cc79239f7b179b0ffacaa9a75d522b39400f5f604051610c5491906114e0565b60405180910390207fc89efdaa54c0f20c7adf612882df0950f5a951637e0307cdcb4c672f298b8bc64630604051602001610c939594939291906114f6565b60405160208183030381529060405280519060200120905090565b8060025f828254610cbf9190611547565b925050819055508060035f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f82825401925050819055508173ffffffffffffffffffffffffffffffffffffffff165f73ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef83604051610d6d9190610f34565b60405180910390a35050565b5f81519050919050565b5f82825260208201905092915050565b5f5b83811015610db0578082015181840152602081019050610d95565b5f8484015250505050565b5f601f19601f8301169050919050565b5f610dd582610d79565b610ddf8185610d83565b9350610def818560208601610d93565b610df881610dbb565b840191505092915050565b5f6020820190508181035f830152610e1b8184610dcb565b905092915050565b5f80fd5b5f73ffffffffffffffffffffffffffffffffffffffff82169050919050565b5f610e5082610e27565b9050919050565b610e6081610e46565b8114610e6a575f80fd5b50565b5f81359050610e7b81610e57565b92915050565b5f819050919050565b610e9381610e81565b8114610e9d575f80fd5b50565b5f81359050610eae81610e8a565b92915050565b5f8060408385031215610eca57610ec9610e23565b5b5f610ed785828601610e6d565b9250506020610ee885828601610ea0565b9150509250929050565b5f8115159050919050565b610f0681610ef2565b82525050565b5f602082019050610f1f5f830184610efd565b92915050565b610f2e81610e81565b82525050565b5f602082019050610f475f830184610f25565b92915050565b5f805f60608486031215610f6457610f63610e23565b5b5f610f7186828701610e6d565b9350506020610f8286828701610e6d565b9250506040610f9386828701610ea0565b9150509250925092565b5f60ff82169050919050565b610fb281610f9d565b82525050565b5f602082019050610fcb5f830184610fa9565b92915050565b5f819050919050565b610fe381610fd1565b82525050565b5f602082019050610ffc5f830184610fda565b92915050565b5f6020828403121561101757611016610e23565b5b5f61102484828501610e6d565b91505092915050565b61103681610f9d565b8114611040575f80fd5b50565b5f813590506110518161102d565b92915050565b61106081610fd1565b811461106a575f80fd5b50565b5f8135905061107b81611057565b92915050565b5f805f805f805f60e0888a03121561109c5761109b610e23565b5b5f6110a98a828b01610e6d565b97505060206110ba8a828b01610e6d565b96505060406110cb8a828b01610ea0565b95505060606110dc8a828b01610ea0565b94505060806110ed8a828b01611043565b93505060a06110fe8a828b0161106d565b92505060c061110f8a828b0161106d565b91505092959891949750929550565b5f806040838503121561113457611133610e23565b5b5f61114185828601610e6d565b925050602061115285828601610e6d565b9150509250929050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52602260045260245ffd5b5f60028204905060018216806111a057607f821691505b6020821081036111b3576111b261115c565b5b50919050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601160045260245ffd5b5f6111f082610e81565b91506111fb83610e81565b9250828203905081811115611213576112126111b9565b5b92915050565b7f5045524d49545f444541444c494e455f455850495245440000000000000000005f82015250565b5f61124d601783610d83565b915061125882611219565b602082019050919050565b5f6020820190508181035f83015261127a81611241565b9050919050565b61128a81610e46565b82525050565b5f60c0820190506112a35f830189610fda565b6112b06020830188611281565b6112bd6040830187611281565b6112ca6060830186610f25565b6112d76080830185610f25565b6112e460a0830184610f25565b979650505050505050565b5f81905092915050565b7f19010000000000000000000000000000000000000000000000000000000000005f82015250565b5f61132d6002836112ef565b9150611338826112f9565b600282019050919050565b5f819050919050565b61135d61135882610fd1565b611343565b82525050565b5f61136d82611321565b9150611379828561134c565b602082019150611389828461134c565b6020820191508190509392505050565b5f6080820190506113ac5f830187610fda565b6113b96020830186610fa9565b6113c66040830185610fda565b6113d36060830184610fda565b95945050505050565b7f494e56414c49445f5349474e45520000000000000000000000000000000000005f82015250565b5f611410600e83610d83565b915061141b826113dc565b602082019050919050565b5f6020820190508181035f83015261143d81611404565b9050919050565b5f81905092915050565b5f819050815f5260205f209050919050565b5f815461146c81611189565b6114768186611444565b9450600182165f811461149057600181146114a5576114d7565b60ff19831686528115158202860193506114d7565b6114ae8561144e565b5f5b838110156114cf578154818901526001820191506020810190506114b0565b838801955050505b50505092915050565b5f6114eb8284611460565b915081905092915050565b5f60a0820190506115095f830188610fda565b6115166020830187610fda565b6115236040830186610fda565b6115306060830185610f25565b61153d6080830184611281565b9695505050505050565b5f61155182610e81565b915061155c83610e81565b9250828201905080821115611574576115736111b9565b5b9291505056fea2646970667358221220bfe07846efdb73f27721797783c8e2bf1e6644b8cead2c4cb5b8b62a3b77ab9e64736f6c63430008140033", + Bin: "0x60e060405234801562000010575f80fd5b506040518060400160405280600581526020017f546f6b656e0000000000000000000000000000000000000000000000000000008152506040518060400160405280600281526020017f544b0000000000000000000000000000000000000000000000000000000000008152506012825f90816200008f9190620003ca565b508160019081620000a19190620003ca565b508060ff1660808160ff16815250504660a08181525050620000c8620000d860201b60201c565b60c0818152505050505062000637565b5f7f8b73c3c69bb8fe3d512ecc4cf759cc79239f7b179b0ffacaa9a75d522b39400f5f6040516200010a919062000556565b60405180910390207fc89efdaa54c0f20c7adf612882df0950f5a951637e0307cdcb4c672f298b8bc646306040516020016200014b959493929190620005dc565b60405160208183030381529060405280519060200120905090565b5f81519050919050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52604160045260245ffd5b7f4e487b71000000000000000000000000000000000000000000000000000000005f52602260045260245ffd5b5f6002820490506001821680620001e257607f821691505b602082108103620001f857620001f76200019d565b5b50919050565b5f819050815f5260205f209050919050565b5f6020601f8301049050919050565b5f82821b905092915050565b5f600883026200025c7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff826200021f565b6200026886836200021f565b95508019841693508086168417925050509392505050565b5f819050919050565b5f819050919050565b5f620002b2620002ac620002a68462000280565b62000289565b62000280565b9050919050565b5f819050919050565b620002cd8362000292565b620002e5620002dc82620002b9565b8484546200022b565b825550505050565b5f90565b620002fb620002ed565b62000308818484620002c2565b505050565b5b818110156200032f57620003235f82620002f1565b6001810190506200030e565b5050565b601f8211156200037e576200034881620001fe565b620003538462000210565b8101602085101562000363578190505b6200037b620003728562000210565b8301826200030d565b50505b505050565b5f82821c905092915050565b5f620003a05f198460080262000383565b1980831691505092915050565b5f620003ba83836200038f565b9150826002028217905092915050565b620003d58262000166565b67ffffffffffffffff811115620003f157620003f062000170565b5b620003fd8254620001ca565b6200040a82828562000333565b5f60209050601f83116001811462000440575f84156200042b578287015190505b620004378582620003ad565b865550620004a6565b601f1984166200045086620001fe565b5f5b82811015620004795784890151825560018201915060208501945060208101905062000452565b8683101562000499578489015162000495601f8916826200038f565b8355505b6001600288020188555050505b505050505050565b5f81905092915050565b5f819050815f5260205f209050919050565b5f8154620004d881620001ca565b620004e48186620004ae565b9450600182165f811462000501576001811462000517576200054d565b60ff19831686528115158202860193506200054d565b6200052285620004b8565b5f5b83811015620005455781548189015260018201915060208101905062000524565b838801955050505b50505092915050565b5f620005638284620004ca565b915081905092915050565b5f819050919050565b62000582816200056e565b82525050565b620005938162000280565b82525050565b5f73ffffffffffffffffffffffffffffffffffffffff82169050919050565b5f620005c48262000599565b9050919050565b620005d681620005b8565b82525050565b5f60a082019050620005f15f83018862000577565b62000600602083018762000577565b6200060f604083018662000577565b6200061e606083018562000588565b6200062d6080830184620005cb565b9695505050505050565b60805160a05160c0516115b0620006625f395f6106d301525f61069f01525f61067a01526115b05ff3fe608060405234801561000f575f80fd5b50600436106100cd575f3560e01c806340c10f191161008a57806395d89b411161006457806395d89b4114610225578063a9059cbb14610243578063d505accf14610273578063dd62ed3e1461028f576100cd565b806340c10f19146101a957806370a08231146101c55780637ecebe00146101f5576100cd565b806306fdde03146100d1578063095ea7b3146100ef57806318160ddd1461011f57806323b872dd1461013d578063313ce5671461016d5780633644e5151461018b575b5f80fd5b6100d96102bf565b6040516100e69190610e03565b60405180910390f35b61010960048036038101906101049190610eb4565b61034a565b6040516101169190610f0c565b60405180910390f35b610127610437565b6040516101349190610f34565b60405180910390f35b61015760048036038101906101529190610f4d565b61043d565b6040516101649190610f0c565b60405180910390f35b610175610678565b6040516101829190610fb8565b60405180910390f35b61019361069c565b6040516101a09190610fe9565b60405180910390f35b6101c360048036038101906101be9190610eb4565b6106f8565b005b6101df60048036038101906101da9190611002565b610754565b6040516101ec9190610f34565b60405180910390f35b61020f600480360381019061020a9190611002565b610769565b60405161021c9190610f34565b60405180910390f35b61022d61077e565b60405161023a9190610e03565b60405180910390f35b61025d60048036038101906102589190610eb4565b61080a565b60405161026a9190610f0c565b60405180910390f35b61028d60048036038101906102889190611081565b610917565b005b6102a960048036038101906102a4919061111e565b610c04565b6040516102b69190610f34565b60405180910390f35b5f80546102cb90611189565b80601f01602080910402602001604051908101604052809291908181526020018280546102f790611189565b80156103425780601f1061031957610100808354040283529160200191610342565b820191905f5260205f20905b81548152906001019060200180831161032557829003601f168201915b505050505081565b5f8160045f3373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20819055508273ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925846040516104259190610f34565b60405180910390a36001905092915050565b60025481565b5f8060045f8673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f3373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205490507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff811461056a5782816104ed91906111e6565b60045f8773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f3373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20819055505b8260035f8773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8282546105b691906111e6565b925050819055508260035f8673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f82825401925050819055508373ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef856040516106649190610f34565b60405180910390a360019150509392505050565b7f000000000000000000000000000000000000000000000000000000000000000081565b5f7f000000000000000000000000000000000000000000000000000000000000000046146106d1576106cc610c24565b6106f3565b7f00000000000000000000000000000000000000000000000000000000000000005b905090565b6107028282610cae565b8173ffffffffffffffffffffffffffffffffffffffff167f0f6798a560793a54c3bcfe86a93cde1e73087d944c0ea20544137d4121396885826040516107489190610f34565b60405180910390a25050565b6003602052805f5260405f205f915090505481565b6005602052805f5260405f205f915090505481565b6001805461078b90611189565b80601f01602080910402602001604051908101604052809291908181526020018280546107b790611189565b80156108025780601f106107d957610100808354040283529160200191610802565b820191905f5260205f20905b8154815290600101906020018083116107e557829003601f168201915b505050505081565b5f8160035f3373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f82825461085791906111e6565b925050819055508160035f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f82825401925050819055508273ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef846040516109059190610f34565b60405180910390a36001905092915050565b4284101561095a576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161095190611263565b60405180910390fd5b5f600161096561069c565b7f6e71edae12b1b97f4d1f60370fef10105fa2faae0126114a169c64845d6126c98a8a8a60055f8f73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f815480929190600101919050558b6040516020016109ea96959493929190611290565b60405160208183030381529060405280519060200120604051602001610a11929190611363565b604051602081830303815290604052805190602001208585856040515f8152602001604052604051610a469493929190611399565b6020604051602081039080840390855afa158015610a66573d5f803e3d5ffd5b5050506020604051035190505f73ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1614158015610ad957508773ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff16145b610b18576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610b0f90611426565b60405180910390fd5b8560045f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8973ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2081905550508573ffffffffffffffffffffffffffffffffffffffff168773ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92587604051610bf39190610f34565b60405180910390a350505050505050565b6004602052815f5260405f20602052805f5260405f205f91509150505481565b5f7f8b73c3c69bb8fe3d512ecc4cf759cc79239f7b179b0ffacaa9a75d522b39400f5f604051610c5491906114e0565b60405180910390207fc89efdaa54c0f20c7adf612882df0950f5a951637e0307cdcb4c672f298b8bc64630604051602001610c939594939291906114f6565b60405160208183030381529060405280519060200120905090565b8060025f828254610cbf9190611547565b925050819055508060035f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f82825401925050819055508173ffffffffffffffffffffffffffffffffffffffff165f73ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef83604051610d6d9190610f34565b60405180910390a35050565b5f81519050919050565b5f82825260208201905092915050565b5f5b83811015610db0578082015181840152602081019050610d95565b5f8484015250505050565b5f601f19601f8301169050919050565b5f610dd582610d79565b610ddf8185610d83565b9350610def818560208601610d93565b610df881610dbb565b840191505092915050565b5f6020820190508181035f830152610e1b8184610dcb565b905092915050565b5f80fd5b5f73ffffffffffffffffffffffffffffffffffffffff82169050919050565b5f610e5082610e27565b9050919050565b610e6081610e46565b8114610e6a575f80fd5b50565b5f81359050610e7b81610e57565b92915050565b5f819050919050565b610e9381610e81565b8114610e9d575f80fd5b50565b5f81359050610eae81610e8a565b92915050565b5f8060408385031215610eca57610ec9610e23565b5b5f610ed785828601610e6d565b9250506020610ee885828601610ea0565b9150509250929050565b5f8115159050919050565b610f0681610ef2565b82525050565b5f602082019050610f1f5f830184610efd565b92915050565b610f2e81610e81565b82525050565b5f602082019050610f475f830184610f25565b92915050565b5f805f60608486031215610f6457610f63610e23565b5b5f610f7186828701610e6d565b9350506020610f8286828701610e6d565b9250506040610f9386828701610ea0565b9150509250925092565b5f60ff82169050919050565b610fb281610f9d565b82525050565b5f602082019050610fcb5f830184610fa9565b92915050565b5f819050919050565b610fe381610fd1565b82525050565b5f602082019050610ffc5f830184610fda565b92915050565b5f6020828403121561101757611016610e23565b5b5f61102484828501610e6d565b91505092915050565b61103681610f9d565b8114611040575f80fd5b50565b5f813590506110518161102d565b92915050565b61106081610fd1565b811461106a575f80fd5b50565b5f8135905061107b81611057565b92915050565b5f805f805f805f60e0888a03121561109c5761109b610e23565b5b5f6110a98a828b01610e6d565b97505060206110ba8a828b01610e6d565b96505060406110cb8a828b01610ea0565b95505060606110dc8a828b01610ea0565b94505060806110ed8a828b01611043565b93505060a06110fe8a828b0161106d565b92505060c061110f8a828b0161106d565b91505092959891949750929550565b5f806040838503121561113457611133610e23565b5b5f61114185828601610e6d565b925050602061115285828601610e6d565b9150509250929050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52602260045260245ffd5b5f60028204905060018216806111a057607f821691505b6020821081036111b3576111b261115c565b5b50919050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601160045260245ffd5b5f6111f082610e81565b91506111fb83610e81565b9250828203905081811115611213576112126111b9565b5b92915050565b7f5045524d49545f444541444c494e455f455850495245440000000000000000005f82015250565b5f61124d601783610d83565b915061125882611219565b602082019050919050565b5f6020820190508181035f83015261127a81611241565b9050919050565b61128a81610e46565b82525050565b5f60c0820190506112a35f830189610fda565b6112b06020830188611281565b6112bd6040830187611281565b6112ca6060830186610f25565b6112d76080830185610f25565b6112e460a0830184610f25565b979650505050505050565b5f81905092915050565b7f19010000000000000000000000000000000000000000000000000000000000005f82015250565b5f61132d6002836112ef565b9150611338826112f9565b600282019050919050565b5f819050919050565b61135d61135882610fd1565b611343565b82525050565b5f61136d82611321565b9150611379828561134c565b602082019150611389828461134c565b6020820191508190509392505050565b5f6080820190506113ac5f830187610fda565b6113b96020830186610fa9565b6113c66040830185610fda565b6113d36060830184610fda565b95945050505050565b7f494e56414c49445f5349474e45520000000000000000000000000000000000005f82015250565b5f611410600e83610d83565b915061141b826113dc565b602082019050919050565b5f6020820190508181035f83015261143d81611404565b9050919050565b5f81905092915050565b5f819050815f5260205f209050919050565b5f815461146c81611189565b6114768186611444565b9450600182165f811461149057600181146114a5576114d7565b60ff19831686528115158202860193506114d7565b6114ae8561144e565b5f5b838110156114cf578154818901526001820191506020810190506114b0565b838801955050505b50505092915050565b5f6114eb8284611460565b915081905092915050565b5f60a0820190506115095f830188610fda565b6115166020830187610fda565b6115236040830186610fda565b6115306060830185610f25565b61153d6080830184611281565b9695505050505050565b5f61155182610e81565b915061155c83610e81565b9250828201905080821115611574576115736111b9565b5b9291505056fea26469706673582212205e042b28d312604c9eb9f461fa6a115a942807f99d76a60aa48515134e1ded3e64736f6c63430008140033", } // 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 9cf0e666e..93ae83b58 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: "0x60a06040526269696973ffffffffffffffffffffffffffffffffffffffff1660809073ffffffffffffffffffffffffffffffffffffffff16815250348015610045575f80fd5b50608051610b116100735f395f81816101c2015281816101e7015281816102d101526103b80152610b115ff3fe608060405234801561000f575f80fd5b5060043610610055575f3560e01c806347e7ef2414610059578063714ba40c146100755780639d456b6214610093578063d004f0f7146100af578063d6ece467146100cb575b5f80fd5b610073600480360381019061006e91906104ed565b6100fb565b005b61007d6101c0565b60405161008a9190610586565b60405180910390f35b6100ad60048036038101906100a89190610600565b6101e4565b005b6100c960048036038101906100c49190610698565b6102ce565b005b6100e560048036038101906100e091906106d6565b6103b5565b6040516100f29190610741565b60405180910390f35b5f8273ffffffffffffffffffffffffffffffffffffffff166323b872dd3330856040518463ffffffff1660e01b815260040161013993929190610778565b6020604051808303815f875af1158015610155573d5f803e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061017991906107e2565b9050806101bb576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016101b290610867565b60405180910390fd5b505050565b7f000000000000000000000000000000000000000000000000000000000000000081565b5f7f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff1663096b406985853333876040518663ffffffff1660e01b81526004016102469594939291906108cf565b6020604051808303815f875af1158015610262573d5f803e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061028691906107e2565b9050806102c8576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016102bf9061098b565b60405180910390fd5b50505050565b5f7f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff1663b96d8bec843333866040518563ffffffff1660e01b815260040161032e94939291906109a9565b6020604051808303815f875af115801561034a573d5f803e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061036e91906107e2565b9050806103b0576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016103a790610a5c565b60405180910390fd5b505050565b5f7f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff1663a333e57c84846040518363ffffffff1660e01b8152600401610411929190610a7a565b602060405180830381865afa15801561042c573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906104509190610ab0565b905092915050565b5f80fd5b5f80fd5b5f73ffffffffffffffffffffffffffffffffffffffff82169050919050565b5f61048982610460565b9050919050565b6104998161047f565b81146104a3575f80fd5b50565b5f813590506104b481610490565b92915050565b5f819050919050565b6104cc816104ba565b81146104d6575f80fd5b50565b5f813590506104e7816104c3565b92915050565b5f806040838503121561050357610502610458565b5b5f610510858286016104a6565b9250506020610521858286016104d9565b9150509250929050565b5f819050919050565b5f61054e61054961054484610460565b61052b565b610460565b9050919050565b5f61055f82610534565b9050919050565b5f61057082610555565b9050919050565b61058081610566565b82525050565b5f6020820190506105995f830184610577565b92915050565b5f80fd5b5f80fd5b5f80fd5b5f8083601f8401126105c0576105bf61059f565b5b8235905067ffffffffffffffff8111156105dd576105dc6105a3565b5b6020830191508360018202830111156105f9576105f86105a7565b5b9250929050565b5f805f6040848603121561061757610616610458565b5b5f84013567ffffffffffffffff8111156106345761063361045c565b5b610640868287016105ab565b93509350506020610653868287016104d9565b9150509250925092565b5f6106678261047f565b9050919050565b6106778161065d565b8114610681575f80fd5b50565b5f813590506106928161066e565b92915050565b5f80604083850312156106ae576106ad610458565b5b5f6106bb85828601610684565b92505060206106cc858286016104d9565b9150509250929050565b5f80602083850312156106ec576106eb610458565b5b5f83013567ffffffffffffffff8111156107095761070861045c565b5b610715858286016105ab565b92509250509250929050565b5f61072b82610555565b9050919050565b61073b81610721565b82525050565b5f6020820190506107545f830184610732565b92915050565b6107638161047f565b82525050565b610772816104ba565b82525050565b5f60608201905061078b5f83018661075a565b610798602083018561075a565b6107a56040830184610769565b949350505050565b5f8115159050919050565b6107c1816107ad565b81146107cb575f80fd5b50565b5f815190506107dc816107b8565b92915050565b5f602082840312156107f7576107f6610458565b5b5f610804848285016107ce565b91505092915050565b5f82825260208201905092915050565b7f537761707065723a207472616e7366657246726f6d206661696c6564000000005f82015250565b5f610851601c8361080d565b915061085c8261081d565b602082019050919050565b5f6020820190508181035f83015261087e81610845565b9050919050565b828183375f83830152505050565b5f601f19601f8301169050919050565b5f6108ae838561080d565b93506108bb838584610885565b6108c483610893565b840190509392505050565b5f6080820190508181035f8301526108e88187896108a3565b90506108f7602083018661075a565b610904604083018561075a565b6109116060830184610769565b9695505050505050565b7f537761707065723a207472616e73666572436f696e546f4552433230206661695f8201527f6c65640000000000000000000000000000000000000000000000000000000000602082015250565b5f61097560238361080d565b91506109808261091b565b604082019050919050565b5f6020820190508181035f8301526109a281610969565b9050919050565b5f6080820190506109bc5f830187610732565b6109c9602083018661075a565b6109d6604083018561075a565b6109e36060830184610769565b95945050505050565b7f537761707065723a207472616e736665724552433230546f436f696e206661695f8201527f6c65640000000000000000000000000000000000000000000000000000000000602082015250565b5f610a4660238361080d565b9150610a51826109ec565b604082019050919050565b5f6020820190508181035f830152610a7381610a3a565b9050919050565b5f6020820190508181035f830152610a938184866108a3565b90509392505050565b5f81519050610aaa8161066e565b92915050565b5f60208284031215610ac557610ac4610458565b5b5f610ad284828501610a9c565b9150509291505056fea2646970667358221220e28d42f7d2e14b404d499d9921d7f34c390625b0c5b6c0a895b2f0e5e917276864736f6c63430008140033", + Bin: "0x60a06040526269696973ffffffffffffffffffffffffffffffffffffffff1660809073ffffffffffffffffffffffffffffffffffffffff16815250348015610045575f80fd5b50608051610b116100735f395f81816101c2015281816101e7015281816102d101526103b80152610b115ff3fe608060405234801561000f575f80fd5b5060043610610055575f3560e01c806347e7ef2414610059578063714ba40c146100755780639d456b6214610093578063d004f0f7146100af578063d6ece467146100cb575b5f80fd5b610073600480360381019061006e91906104ed565b6100fb565b005b61007d6101c0565b60405161008a9190610586565b60405180910390f35b6100ad60048036038101906100a89190610600565b6101e4565b005b6100c960048036038101906100c49190610698565b6102ce565b005b6100e560048036038101906100e091906106d6565b6103b5565b6040516100f29190610741565b60405180910390f35b5f8273ffffffffffffffffffffffffffffffffffffffff166323b872dd3330856040518463ffffffff1660e01b815260040161013993929190610778565b6020604051808303815f875af1158015610155573d5f803e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061017991906107e2565b9050806101bb576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016101b290610867565b60405180910390fd5b505050565b7f000000000000000000000000000000000000000000000000000000000000000081565b5f7f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff1663096b406985853333876040518663ffffffff1660e01b81526004016102469594939291906108cf565b6020604051808303815f875af1158015610262573d5f803e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061028691906107e2565b9050806102c8576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016102bf9061098b565b60405180910390fd5b50505050565b5f7f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff1663b96d8bec843333866040518563ffffffff1660e01b815260040161032e94939291906109a9565b6020604051808303815f875af115801561034a573d5f803e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061036e91906107e2565b9050806103b0576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016103a790610a5c565b60405180910390fd5b505050565b5f7f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff1663a333e57c84846040518363ffffffff1660e01b8152600401610411929190610a7a565b602060405180830381865afa15801561042c573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906104509190610ab0565b905092915050565b5f80fd5b5f80fd5b5f73ffffffffffffffffffffffffffffffffffffffff82169050919050565b5f61048982610460565b9050919050565b6104998161047f565b81146104a3575f80fd5b50565b5f813590506104b481610490565b92915050565b5f819050919050565b6104cc816104ba565b81146104d6575f80fd5b50565b5f813590506104e7816104c3565b92915050565b5f806040838503121561050357610502610458565b5b5f610510858286016104a6565b9250506020610521858286016104d9565b9150509250929050565b5f819050919050565b5f61054e61054961054484610460565b61052b565b610460565b9050919050565b5f61055f82610534565b9050919050565b5f61057082610555565b9050919050565b61058081610566565b82525050565b5f6020820190506105995f830184610577565b92915050565b5f80fd5b5f80fd5b5f80fd5b5f8083601f8401126105c0576105bf61059f565b5b8235905067ffffffffffffffff8111156105dd576105dc6105a3565b5b6020830191508360018202830111156105f9576105f86105a7565b5b9250929050565b5f805f6040848603121561061757610616610458565b5b5f84013567ffffffffffffffff8111156106345761063361045c565b5b610640868287016105ab565b93509350506020610653868287016104d9565b9150509250925092565b5f6106678261047f565b9050919050565b6106778161065d565b8114610681575f80fd5b50565b5f813590506106928161066e565b92915050565b5f80604083850312156106ae576106ad610458565b5b5f6106bb85828601610684565b92505060206106cc858286016104d9565b9150509250929050565b5f80602083850312156106ec576106eb610458565b5b5f83013567ffffffffffffffff8111156107095761070861045c565b5b610715858286016105ab565b92509250509250929050565b5f61072b82610555565b9050919050565b61073b81610721565b82525050565b5f6020820190506107545f830184610732565b92915050565b6107638161047f565b82525050565b610772816104ba565b82525050565b5f60608201905061078b5f83018661075a565b610798602083018561075a565b6107a56040830184610769565b949350505050565b5f8115159050919050565b6107c1816107ad565b81146107cb575f80fd5b50565b5f815190506107dc816107b8565b92915050565b5f602082840312156107f7576107f6610458565b5b5f610804848285016107ce565b91505092915050565b5f82825260208201905092915050565b7f537761707065723a207472616e7366657246726f6d206661696c6564000000005f82015250565b5f610851601c8361080d565b915061085c8261081d565b602082019050919050565b5f6020820190508181035f83015261087e81610845565b9050919050565b828183375f83830152505050565b5f601f19601f8301169050919050565b5f6108ae838561080d565b93506108bb838584610885565b6108c483610893565b840190509392505050565b5f6080820190508181035f8301526108e88187896108a3565b90506108f7602083018661075a565b610904604083018561075a565b6109116060830184610769565b9695505050505050565b7f537761707065723a207472616e73666572436f696e546f4552433230206661695f8201527f6c65640000000000000000000000000000000000000000000000000000000000602082015250565b5f61097560238361080d565b91506109808261091b565b604082019050919050565b5f6020820190508181035f8301526109a281610969565b9050919050565b5f6080820190506109bc5f830187610732565b6109c9602083018661075a565b6109d6604083018561075a565b6109e36060830184610769565b95945050505050565b7f537761707065723a207472616e736665724552433230546f436f696e206661695f8201527f6c65640000000000000000000000000000000000000000000000000000000000602082015250565b5f610a4660238361080d565b9150610a51826109ec565b604082019050919050565b5f6020820190508181035f830152610a7381610a3a565b9050919050565b5f6020820190508181035f830152610a938184866108a3565b90509392505050565b5f81519050610aaa8161066e565b92915050565b5f60208284031215610ac557610ac4610458565b5b5f610ad284828501610a9c565b9150509291505056fea2646970667358221220c9a8d8e575a2f0105d843f3afdac2822fae24239f6599c6f2297575f783c22cf64736f6c63430008140033", } // SwapperABI is the input ABI used to generate the binding from. diff --git a/contracts/go.mod b/contracts/go.mod index 92af06b40..08402a659 100644 --- a/contracts/go.mod +++ b/contracts/go.mod @@ -2,7 +2,7 @@ module pkg.berachain.dev/polaris/contracts go 1.20 -require github.com/ethereum/go-ethereum v1.11.4 +require github.com/ethereum/go-ethereum v1.12.0 require ( github.com/DataDog/zstd v1.5.5 // indirect @@ -12,13 +12,11 @@ require ( github.com/cockroachdb/redact v1.1.4 // indirect github.com/deckarep/golang-set/v2 v2.2.0 // indirect github.com/decred/dcrd/dcrec/secp256k1/v4 v4.2.0 // indirect - github.com/edsrzf/mmap-go v1.1.0 // indirect github.com/fsnotify/fsnotify v1.6.0 // indirect github.com/gballet/go-libpcsclite v0.0.0-20191108122812-4678299bea08 // indirect github.com/getsentry/sentry-go v0.21.0 // indirect github.com/go-ole/go-ole v1.2.6 // indirect github.com/go-stack/stack v1.8.1 // indirect - github.com/golang/snappy v0.0.5-0.20220116011046-fa5810519dcb // indirect github.com/google/uuid v1.3.0 // indirect github.com/gorilla/websocket v1.5.0 // indirect github.com/holiman/uint256 v1.2.2 // indirect @@ -29,6 +27,7 @@ require ( github.com/prometheus/client_model v0.4.0 // indirect github.com/prometheus/common v0.44.0 // indirect github.com/prometheus/procfs v0.10.0 // indirect + github.com/rivo/uniseg v0.4.3 // indirect github.com/shirou/gopsutil v3.21.11+incompatible // indirect github.com/stretchr/testify v1.8.3 // indirect github.com/syndtr/goleveldb v1.0.1-0.20220721030215-126854af5e6d // indirect diff --git a/contracts/go.sum b/contracts/go.sum index 13c3f9f24..7ea9bc2f5 100644 --- a/contracts/go.sum +++ b/contracts/go.sum @@ -27,10 +27,8 @@ github.com/deckarep/golang-set/v2 v2.2.0/go.mod h1:VAky9rY/yGXJOLEDv3OMci+7wtDpO github.com/decred/dcrd/crypto/blake256 v1.0.1 h1:7PltbUIQB7u/FfZ39+DGa/ShuMyJ5ilcvdfma9wOH6Y= github.com/decred/dcrd/dcrec/secp256k1/v4 v4.2.0 h1:8UrgZ3GkP4i/CLijOJx79Yu+etlyjdBU4sfcs2WYQMs= github.com/decred/dcrd/dcrec/secp256k1/v4 v4.2.0/go.mod h1:v57UDF4pDQJcEfFUCRop3lJL149eHGSe9Jvczhzjo/0= -github.com/edsrzf/mmap-go v1.1.0 h1:6EUwBLQ/Mcr1EYLE4Tn1VdW1A4ckqCQWZBw8Hr0kjpQ= -github.com/edsrzf/mmap-go v1.1.0/go.mod h1:19H/e8pUPLicwkyNgOykDXkJ9F0MHE+Z52B8EIth78Q= -github.com/ethereum/go-ethereum v1.11.4 h1:KG81SnUHXWk8LJB3mBcHg/E2yLvXoiPmRMCIRxgx3cE= -github.com/ethereum/go-ethereum v1.11.4/go.mod h1:it7x0DWnTDMfVFdXcU6Ti4KEFQynLHVRarcSlPr0HBo= +github.com/ethereum/go-ethereum v1.12.0 h1:bdnhLPtqETd4m3mS8BGMNvBTf36bO5bx/hxE2zljOa0= +github.com/ethereum/go-ethereum v1.12.0/go.mod h1:/oo2X/dZLJjf2mJ6YT9wcWxa4nNJDBKDBU6sFIpx1Gs= github.com/fsnotify/fsnotify v1.4.7/go.mod h1:jwhsz4b93w/PPRr/qN1Yymfu8t87LnFCMoQvtojpjFo= github.com/fsnotify/fsnotify v1.4.9/go.mod h1:znqG4EE+3YCdAaPaxE2ZRY/06pZUdp0tY4IgpuI1SZQ= github.com/fsnotify/fsnotify v1.5.4/go.mod h1:OVB6XrOHzAwXMpEM7uPOzcehqUV2UqJxmVXmkdnm1bU= @@ -59,7 +57,6 @@ github.com/golang/protobuf v1.5.2/go.mod h1:XVQd3VNwM+JqD3oG2Ue2ip4fOMUkwXdXDdiu github.com/golang/protobuf v1.5.3 h1:KhyjKVUg7Usr/dYsdSqoFveMYd5ko72D+zANwlG1mmg= github.com/golang/snappy v0.0.4/go.mod h1:/XxbfmMg8lxefKM7IXC3fBNl/7bRcc72aCRzEWrmP2Q= github.com/golang/snappy v0.0.5-0.20220116011046-fa5810519dcb h1:PBC98N2aIaM3XXiurYmW7fx4GZkL8feAMVq7nEjURHk= -github.com/golang/snappy v0.0.5-0.20220116011046-fa5810519dcb/go.mod h1:/XxbfmMg8lxefKM7IXC3fBNl/7bRcc72aCRzEWrmP2Q= github.com/google/go-cmp v0.3.0/go.mod h1:8QqcDgzrUqlUb/G2PQTWiueGozuR1884gddMywk6iLU= github.com/google/go-cmp v0.3.1/go.mod h1:8QqcDgzrUqlUb/G2PQTWiueGozuR1884gddMywk6iLU= github.com/google/go-cmp v0.4.0/go.mod h1:v8dTdLbMG2kIc/vJvl+f65V22dbkXbowE6jgT/gNBxE= @@ -108,8 +105,9 @@ github.com/prometheus/common v0.44.0 h1:+5BrQJwiBB9xsMygAB3TNvpQKOwlkc25LbISbrdO github.com/prometheus/common v0.44.0/go.mod h1:ofAIvZbQ1e/nugmZGz4/qCb9Ap1VoSTIO7x0VV9VvuY= github.com/prometheus/procfs v0.10.0 h1:UkG7GPYkO4UZyLnyXjaWYcgOSONqwdBqFUT95ugmt6I= github.com/prometheus/procfs v0.10.0/go.mod h1:nwNm2aOCAYw8uTR/9bWRREkZFxAUcWzPHWJq+XBB/FM= -github.com/rivo/uniseg v0.2.0 h1:S1pD9weZBuJdFmowNwbpi7BJ8TNftyUImj/0WQi72jY= github.com/rivo/uniseg v0.2.0/go.mod h1:J6wj4VEh+S6ZtnVlnTBMWIodfgj8LQOQFoIToxlJtxc= +github.com/rivo/uniseg v0.4.3 h1:utMvzDsuh3suAEnhH0RdHmoPbU648o6CvXxTx4SBMOw= +github.com/rivo/uniseg v0.4.3/go.mod h1:FN3SvrM+Zdj16jyLfmOkMNblXMcoc8DfTHruCPUcx88= github.com/rogpeppe/go-internal v1.10.0 h1:TMyTOH3F/DB16zRVcYyreMH6GnZZrwQVAoYjRBZyWFQ= github.com/shirou/gopsutil v3.21.11+incompatible h1:+1+c1VGhc88SSonWP6foOcLhvnKlUeu/erjjvaPEYiI= github.com/shirou/gopsutil v3.21.11+incompatible/go.mod h1:5b4v6he4MtMOwMlS0TUMTu2PcXUg8+E1lC7eC3UO/RA= diff --git a/contracts/lib/solmate b/contracts/lib/solmate new file mode 160000 index 000000000..2001af43a --- /dev/null +++ b/contracts/lib/solmate @@ -0,0 +1 @@ +Subproject commit 2001af43aedb46fdc2335d2a7714fb2dae7cfcd1 diff --git a/contracts/src/testing/DistributionWrapper.sol b/contracts/src/testing/DistributionWrapper.sol index c13d79ef5..20a3c44a5 100644 --- a/contracts/src/testing/DistributionWrapper.sol +++ b/contracts/src/testing/DistributionWrapper.sol @@ -64,7 +64,7 @@ contract DistributionWrapper { * @param _withdrawAddress The address of the delegator. */ function setWithdrawAddress(address _withdrawAddress) external returns (bool) { - distribution.setWithdrawAddress(_withdrawAddress); + return distribution.setWithdrawAddress(_withdrawAddress); } /** diff --git a/cosmos/docker/base.Dockerfile b/cosmos/docker/base.Dockerfile index 9fbb4bbaa..add1f66d6 100644 --- a/cosmos/docker/base.Dockerfile +++ b/cosmos/docker/base.Dockerfile @@ -64,8 +64,16 @@ FROM golang:${GO_VERSION}-alpine as builder RUN set -eux; \ apk add git linux-headers ca-certificates build-base -# Copy our source code into the container +# Set the working directory WORKDIR /workdir + +# Copy go.mod and go.sum files recursively (🔥 upgrade) +COPY **/go.mod **/go.sum **/go.work ./ + +# Download the go module dependencies +RUN go mod download + +# Copy the rest of the source code COPY . . # Copy the forge output @@ -81,9 +89,7 @@ ARG DB_BACKEND ARG CMD_PATH # Build Executable -RUN --mount=type=cache,target=/root/.cache/go-build \ - --mount=type=cache,target=/root/go/pkg/mod \ - VERSION=$(echo $(git describe --tags) | sed 's/^v//') && \ +RUN VERSION=$(echo $(git describe --tags) | sed 's/^v//') && \ COMMIT=$(git log -1 --format='%H') && \ env GOOS=${GOOS} GOARCH=${GOARCH} && \ env NAME=${NAME} DB_BACKEND=${DB_BACKEND} && \ diff --git a/cosmos/go.mod b/cosmos/go.mod index c91941b5a..eed738cab 100644 --- a/cosmos/go.mod +++ b/cosmos/go.mod @@ -35,7 +35,7 @@ require ( github.com/cosmos/cosmos-sdk v0.50.0 github.com/cosmos/go-bip39 v1.0.0 github.com/cosmos/gogoproto v1.4.10 - github.com/ethereum/go-ethereum v1.11.4 + github.com/ethereum/go-ethereum v1.12.0 github.com/golang/mock v1.6.0 github.com/golang/protobuf v1.5.3 github.com/grpc-ecosystem/grpc-gateway v1.16.0 @@ -73,6 +73,7 @@ require ( github.com/BurntSushi/toml v1.2.1 // indirect github.com/DataDog/zstd v1.5.5 // indirect github.com/VictoriaMetrics/fastcache v1.12.1 // indirect + github.com/allegro/bigcache v1.2.1 // indirect github.com/armon/go-metrics v0.4.1 // indirect github.com/aws/aws-sdk-go v1.44.224 // indirect github.com/beorn7/perks v1.0.1 // indirect @@ -197,6 +198,7 @@ require ( github.com/oklog/run v1.1.0 // indirect github.com/olekukonko/tablewriter v0.0.5 // indirect github.com/onsi/ginkgo v1.16.5 // indirect + github.com/opencontainers/runc v1.1.5 // indirect github.com/opentracing/opentracing-go v1.2.0 // indirect github.com/pelletier/go-toml/v2 v2.0.8 // indirect github.com/peterh/liner v1.1.1-0.20190123174540-a2c9a5303de7 // indirect @@ -208,7 +210,7 @@ require ( github.com/prometheus/common v0.44.0 // indirect github.com/prometheus/procfs v0.10.0 // indirect github.com/rcrowley/go-metrics v0.0.0-20201227073835-cf1acfcdf475 // indirect - github.com/rivo/uniseg v0.2.0 // indirect + github.com/rivo/uniseg v0.4.3 // indirect github.com/rogpeppe/go-internal v1.10.0 // indirect github.com/rs/cors v1.8.3 // indirect github.com/rs/zerolog v1.29.1 // indirect diff --git a/cosmos/go.sum b/cosmos/go.sum index a733621ba..c16063433 100644 --- a/cosmos/go.sum +++ b/cosmos/go.sum @@ -255,8 +255,9 @@ github.com/alecthomas/template v0.0.0-20190718012654-fb15b899a751/go.mod h1:LOuy github.com/alecthomas/units v0.0.0-20151022065526-2efee857e7cf/go.mod h1:ybxpYRFXyAe+OPACYpWeL0wqObRcbAqCMya13uyzqw0= github.com/alecthomas/units v0.0.0-20190717042225-c3de453c63f4/go.mod h1:ybxpYRFXyAe+OPACYpWeL0wqObRcbAqCMya13uyzqw0= github.com/alecthomas/units v0.0.0-20190924025748-f65c72e2690d/go.mod h1:rBZYJk541a8SKzHPHnH3zbiI+7dagKZ0cgpgrD7Fyho= -github.com/allegro/bigcache v1.2.1-0.20190218064605-e24eb225f156 h1:eMwmnE/GDgah4HI848JfFxHt+iPb26b4zyfspmqY0/8= github.com/allegro/bigcache v1.2.1-0.20190218064605-e24eb225f156/go.mod h1:Cb/ax3seSYIx7SuZdm2G2xzfwmv3TPSk2ucNfQESPXM= +github.com/allegro/bigcache v1.2.1 h1:hg1sY1raCwic3Vnsvje6TT7/pnZba83LeFck5NrFKSc= +github.com/allegro/bigcache v1.2.1/go.mod h1:Cb/ax3seSYIx7SuZdm2G2xzfwmv3TPSk2ucNfQESPXM= github.com/antihax/optional v1.0.0/go.mod h1:uupD/76wgC+ih3iEmQUL+0Ugr19nfwCT1kdvxnR2qWY= github.com/apache/thrift v0.12.0/go.mod h1:cp2SuWMxlEZw2r+iP2GNCdIi4C1qmUzdZFSVb+bacwQ= github.com/apache/thrift v0.13.0/go.mod h1:cp2SuWMxlEZw2r+iP2GNCdIi4C1qmUzdZFSVb+bacwQ= @@ -328,6 +329,7 @@ github.com/cespare/xxhash v1.1.0/go.mod h1:XrSqR1VqqWfGrhpAt58auRo0WTKS1nRRg3ghf github.com/cespare/xxhash/v2 v2.1.1/go.mod h1:VGX0DQ3Q6kWi7AoAeZDth3/j3BFtOZR5XLFGgcrjCOs= github.com/cespare/xxhash/v2 v2.2.0 h1:DC2CZ1Ep5Y4k3ZQ899DldepgrayRUGE6BBZ/cd9Cj44= github.com/cespare/xxhash/v2 v2.2.0/go.mod h1:VGX0DQ3Q6kWi7AoAeZDth3/j3BFtOZR5XLFGgcrjCOs= +github.com/checkpoint-restore/go-criu/v5 v5.3.0/go.mod h1:E/eQpaFtUKGOOSEBZgmKAcn+zUUwWxqcaKZlF54wK8E= github.com/cheggaaa/pb v1.0.27/go.mod h1:pQciLPpbU0oxA0h+VJYYLxO+XeDQb5pZijXscXHm81s= github.com/chenzhuoyu/base64x v0.0.0-20221115062448-fe3a3abad311 h1:qSGYFH7+jGhDF8vLC+iwCD4WpbV1EBDSzWkJODFLams= github.com/chzyer/logex v1.1.10/go.mod h1:+Ywpsq7O8HXn0nuIou7OrIPyXbp3wmkHB+jjWRnGsAI= @@ -339,6 +341,7 @@ github.com/chzyer/readline v1.5.1/go.mod h1:Eh+b79XXUwfKfcPLepksvw2tcLE/Ct21YObk github.com/chzyer/test v0.0.0-20180213035817-a1ea475d72b1/go.mod h1:Q3SI9o4m/ZMnBNeIyt5eFwwo7qiLfzFZmjNmxjkiQlU= github.com/chzyer/test v1.0.0 h1:p3BQDXSxOhOG0P9z6/hGnII4LGiEPOYBhs8asl/fC04= github.com/chzyer/test v1.0.0/go.mod h1:2JlltgoNkt4TW/z9V/IzDdFaMTM2JPIi26O1pF38GC8= +github.com/cilium/ebpf v0.7.0/go.mod h1:/oI2+1shJiTGAMgl6/RgJr36Eo1jzrRcAWbcXO2usCA= github.com/circonus-labs/circonus-gometrics v2.3.1+incompatible/go.mod h1:nmEj6Dob7S7YxXgwXpfOuvO54S+tGdZdw9fuRZt25Ag= github.com/circonus-labs/circonusllhist v0.1.3/go.mod h1:kMXHVDlOchFAehlya5ePtbp5jckzBHf4XRpQvBOLI+I= github.com/clbanning/x2j v0.0.0-20191024224557-825249438eec/go.mod h1:jMjuTZXRI4dUb/I5gc9Hdhagfvm9+RyrPryS/auMzxE= @@ -378,11 +381,13 @@ github.com/consensys/bavard v0.1.13 h1:oLhMLOFGTLdlda/kma4VOJazblc7IM5y5QPd2A/Yj github.com/consensys/bavard v0.1.13/go.mod h1:9ItSMtA/dXMAiL7BG6bqW2m3NdSEObYWoH223nGHukI= github.com/consensys/gnark-crypto v0.10.0 h1:zRh22SR7o4K35SoNqouS9J/TKHTyU2QWaj5ldehyXtA= github.com/consensys/gnark-crypto v0.10.0/go.mod h1:Iq/P3HHl0ElSjsg2E1gsMwhAyxnxoKK5nVyZKd+/KhU= +github.com/containerd/console v1.0.3/go.mod h1:7LqA/THxQ86k76b8c/EMSiaJ3h1eZkMkXar0TQ1gf3U= github.com/containerd/continuity v0.3.0 h1:nisirsYROK15TAMVukJOUyGJjz4BNQJBVsNvAXZJ/eg= github.com/coreos/etcd v3.3.10+incompatible/go.mod h1:uF7uidLiAD3TWHmW31ZFd/JWoc32PjwdhPthX9715RE= github.com/coreos/go-etcd v2.0.0+incompatible/go.mod h1:Jez6KQU2B/sWsbdaef3ED8NzMklzPG4d5KIOhIy30Tk= github.com/coreos/go-semver v0.2.0/go.mod h1:nnelYz7RCh+5ahJtPPxZlU+153eP4D4r3EedlOD2RNk= github.com/coreos/go-systemd v0.0.0-20180511133405-39ca1b05acc7/go.mod h1:F5haX7vjVVG0kc13fIWeqUViNPyEJxv/OmvnBo0Yme4= +github.com/coreos/go-systemd/v22 v22.3.2/go.mod h1:Y58oyj3AT4RCenI/lSvhwexgC+NSVTIJ3seZv2GcEnc= github.com/coreos/go-systemd/v22 v22.5.0/go.mod h1:Y58oyj3AT4RCenI/lSvhwexgC+NSVTIJ3seZv2GcEnc= github.com/coreos/pkg v0.0.0-20160727233714-3ac0863d7acf/go.mod h1:E3G3o1h8I7cfcXa63jLwjI0eiQQMgzzUDFVpN/nH/eA= github.com/cosmos/btcutil v1.0.5 h1:t+ZFcX77LpKtDBhjucvnOH8C2l2ioGsBNEQ3jef8xFk= @@ -423,6 +428,7 @@ github.com/creack/pty v1.1.9/go.mod h1:oKZEueFk5CKHvIhNR5MUki03XCEU+Q6VDXinZuGJ3 github.com/cucumber/common/gherkin/go/v22 v22.0.0 h1:4K8NqptbvdOrjL9DEea6HFjSpbdT9+Q5kgLpmmsHYl0= github.com/cucumber/common/messages/go/v17 v17.1.1 h1:RNqopvIFyLWnKv0LfATh34SWBhXeoFTJnSrgm9cT/Ts= github.com/cyberdelia/templates v0.0.0-20141128023046-ca7fffd4298c/go.mod h1:GyV+0YP4qX0UQ7r2MoYZ+AvYDp12OF5yg4q8rGnyNh4= +github.com/cyphar/filepath-securejoin v0.2.3/go.mod h1:aPGpWjXOXUn2NCNjFvBE6aRxGGx79pTxQpKOJNYHHl4= github.com/danieljoos/wincred v1.1.2 h1:QLdCxFs1/Yl4zduvBdcHB8goaYk9RARS2SgLLRuAyr0= github.com/danieljoos/wincred v1.1.2/go.mod h1:GijpziifJoIBfYh+S7BbkdUTU4LfM+QnGqR5Vl2tAx0= github.com/davecgh/go-spew v0.0.0-20171005155431-ecdeabc65495/go.mod h1:J7Y8YcW2NihsgmVo/mv3lAwl/skON4iLHjSsI+c5H38= @@ -454,6 +460,7 @@ github.com/dgryski/go-farm v0.0.0-20200201041132-a6ae2369ad13 h1:fAjc9m62+UWV/WA github.com/dgryski/go-farm v0.0.0-20200201041132-a6ae2369ad13/go.mod h1:SqUrOPUnsFjfmXRMNPybcSiG0BgUW2AuFH8PAnS2iTw= github.com/docker/docker v23.0.3+incompatible h1:9GhVsShNWz1hO//9BNg/dpMnZW25KydO4wtVxWAIbho= github.com/docker/go-connections v0.4.0 h1:El9xVISelRB7BuFusrZozjnkIM5YnzCViNKohAFqRJQ= +github.com/docker/go-units v0.4.0/go.mod h1:fgPhTUdO+D/Jk86RDLlptpiXQzgHJF7gydDDbaIK4Dk= github.com/docker/go-units v0.5.0 h1:69rxXcBk27SvSaaxTtLh/8llcHD8vYHT7WSdRZ/jvr4= github.com/dustin/go-humanize v0.0.0-20171111073723-bb3d318650d4/go.mod h1:HtrtbFcZ19U5GC7JDqmcUSB87Iq5E25KnS6fMYU6eOk= github.com/dustin/go-humanize v1.0.0/go.mod h1:HtrtbFcZ19U5GC7JDqmcUSB87Iq5E25KnS6fMYU6eOk= @@ -497,6 +504,7 @@ github.com/fjl/memsize v0.0.1/go.mod h1:VvhXpOYNQvB+uIk2RvXzuaQtkQJzzIx6lSBe1xv7 github.com/fortytw2/leaktest v1.3.0 h1:u8491cBMTQ8ft8aeV+adlcytMZylmA5nnwwkRZjI8vw= github.com/franela/goblin v0.0.0-20200105215937-c9ffbefa60db/go.mod h1:7dvUGVsVBjqR7JHJk0brhHOZYGmfBYOrK0ZhYMEtBr4= github.com/franela/goreq v0.0.0-20171204163338-bcd34c9993f8/go.mod h1:ZhphrRTfi2rbfLwlschooIH4+wKKDR4Pdxhh+TRoA20= +github.com/frankban/quicktest v1.11.3/go.mod h1:wRf/ReqHper53s+kmmSZizM8NamnL3IM0I9ntUbOk+k= github.com/frankban/quicktest v1.14.4 h1:g2rn0vABPOOXmZUj+vbmUp0lPoXEMuhTpIluN0XL9UY= github.com/fsnotify/fsnotify v1.4.7/go.mod h1:jwhsz4b93w/PPRr/qN1Yymfu8t87LnFCMoQvtojpjFo= github.com/fsnotify/fsnotify v1.4.9/go.mod h1:znqG4EE+3YCdAaPaxE2ZRY/06pZUdp0tY4IgpuI1SZQ= @@ -572,6 +580,7 @@ github.com/goccy/go-json v0.10.0 h1:mXKd9Qw4NuzShiRlOXKews24ufknHO7gx30lsDyokKA= github.com/godbus/dbus v0.0.0-20190726142602-4481cbc300e2 h1:ZpnhV/YsD2/4cESfV5+Hoeu/iUR3ruzNvZ+yQfO03a0= github.com/godbus/dbus v0.0.0-20190726142602-4481cbc300e2/go.mod h1:bBOAhwG1umN6/6ZUMtDFBMQR8jRg9O75tm9K00oMsK4= github.com/godbus/dbus/v5 v5.0.4/go.mod h1:xhWf0FNVPg57R7Z0UbKHbJfkEywrmjJnf7w5xrFpKfA= +github.com/godbus/dbus/v5 v5.0.6/go.mod h1:xhWf0FNVPg57R7Z0UbKHbJfkEywrmjJnf7w5xrFpKfA= github.com/gofrs/flock v0.8.1 h1:+gYjHKf32LDeiEEFhQaotPbLuUXjY5ZqxKgXy7n59aw= github.com/gofrs/flock v0.8.1/go.mod h1:F1TvTiK9OcQqauNUHlbJvyl9Qa1QvF/gOUDKA14jxHU= github.com/gofrs/uuid v4.4.0+incompatible h1:3qXRTX8/NbyulANqlc0lchS1gqAVxRgsuW1YrTJupqA= @@ -871,6 +880,7 @@ github.com/konsorten/go-windows-terminal-sequences v1.0.3/go.mod h1:T0+1ngSBFLxv github.com/kr/fs v0.1.0/go.mod h1:FFnZGqtBN9Gxj7eW1uZ42v5BccTP0vu6NEaFoC2HwRg= github.com/kr/logfmt v0.0.0-20140226030751-b84e30acd515/go.mod h1:+0opPa2QZZtGFBFZlji/RkVcI2GknAs/DXo4wKdlNEc= github.com/kr/pretty v0.1.0/go.mod h1:dAy3ld7l9f0ibDNOQOHHMYYIIbhfbHSm3C4ZsoJORNo= +github.com/kr/pretty v0.2.1/go.mod h1:ipq/a2n7PKx3OHsz4KJII5eveXtPO4qwEXGdVfWzfnI= github.com/kr/pretty v0.3.0/go.mod h1:640gp4NfQd8pI5XOwp5fnNeVWj67G7CFk/SaSQn7NBk= github.com/kr/pretty v0.3.1 h1:flRD4NNwYAUpkphVc1HcthR4KEIFJ65n8Mw5qdRn3LE= github.com/kr/pretty v0.3.1/go.mod h1:hoEshYVHaxMs3cyo3Yncou5ZscifuDolrwPKZanG3xk= @@ -955,6 +965,7 @@ github.com/mitchellh/pointerstructure v1.2.1/go.mod h1:BRAsLI5zgXmw97Lf6s25bs8oh github.com/mmcloughlin/addchain v0.4.0 h1:SobOdjm2xLj1KkXN5/n0xTIWyZA2+s99UCY1iPfkHRY= github.com/mmcloughlin/addchain v0.4.0/go.mod h1:A86O+tHqZLMNO4w6ZZ4FlVQEadcoqkyU72HC5wJ4RlU= github.com/mmcloughlin/profile v0.1.1/go.mod h1:IhHD7q1ooxgwTgjxQYkACGA77oFTDdFVejUS1/tS/qU= +github.com/moby/sys/mountinfo v0.5.0/go.mod h1:3bMD3Rg+zkqx8MRYPi7Pyb0Ie97QEBmdxbhnCLlSvSU= github.com/modern-go/concurrent v0.0.0-20180228061459-e0a39a4cb421/go.mod h1:6dJC0mAP4ikYIbvyc7fijjWJddQyLn8Ig3JB5CqoB9Q= github.com/modern-go/concurrent v0.0.0-20180306012644-bacd9c7ef1dd h1:TRLaZ9cD/w8PVh93nsPXa1VrQ6jlwL5oN8l14QlcNfg= github.com/modern-go/concurrent v0.0.0-20180306012644-bacd9c7ef1dd/go.mod h1:6dJC0mAP4ikYIbvyc7fijjWJddQyLn8Ig3JB5CqoB9Q= @@ -962,6 +973,7 @@ github.com/modern-go/reflect2 v0.0.0-20180701023420-4b7aa43c6742/go.mod h1:bx2lN github.com/modern-go/reflect2 v1.0.1/go.mod h1:bx2lNnkwVCuqBIxFjflWJWanXIb3RllmbCylyMrvgv0= github.com/modern-go/reflect2 v1.0.2 h1:xBagoLtFs94CBntxluKeaWgTMpvLxC4ur3nMaC9Gz0M= github.com/moul/http2curl v1.0.0/go.mod h1:8UbvGypXm98wA/IqH45anm5Y2Z6ep6O31QGOAZ3H0fQ= +github.com/mrunalp/fileutils v0.5.0/go.mod h1:M1WthSahJixYnrXQl/DFQuteStB1weuxD2QJNHXfbSQ= github.com/mtibben/percent v0.2.1 h1:5gssi8Nqo8QU/r2pynCm+hBQHpkB/uNK7BJCFogWdzs= github.com/mtibben/percent v0.2.1/go.mod h1:KG9uO+SZkUp+VkRHsCdYQV3XSZrrSpR3O9ibNBTZrns= github.com/mwitkow/go-conntrack v0.0.0-20161129095857-cc309e4a2223/go.mod h1:qRWi+5nqEBWmkhHvq77mSJWrCKwh8bxhgT7d/eI7P4U= @@ -1006,7 +1018,10 @@ github.com/onsi/gomega v1.27.6/go.mod h1:PIQNjfQwkP3aQAH7lf7j87O/5FiNr+ZR8+ipb+q github.com/op/go-logging v0.0.0-20160315200505-970db520ece7/go.mod h1:HzydrMdWErDVzsI23lYNej1Htcns9BCg93Dk0bBINWk= github.com/opencontainers/go-digest v1.0.0 h1:apOUWs51W5PlhuyGyz9FCeeBIOUDA/6nW8Oi/yOhh5U= github.com/opencontainers/image-spec v1.1.0-rc2 h1:2zx/Stx4Wc5pIPDvIxHXvXtQFW/7XWJGmnM7r3wg034= -github.com/opencontainers/runc v1.1.3 h1:vIXrkId+0/J2Ymu2m7VjGvbSlAId9XNRPhn2p4b+d8w= +github.com/opencontainers/runc v1.1.5 h1:L44KXEpKmfWDcS02aeGm8QNTFXTo2D+8MYGDIJ/GDEs= +github.com/opencontainers/runc v1.1.5/go.mod h1:1J5XiS+vdZ3wCyZybsuxXZWGrgSr8fFJHLXuG2PsnNg= +github.com/opencontainers/runtime-spec v1.0.3-0.20210326190908-1c3f411f0417/go.mod h1:jwyrGlmzljRJv/Fgzds9SsS/C5hL+LL3ko9hs6T5lQ0= +github.com/opencontainers/selinux v1.10.0/go.mod h1:2i0OySw99QjzBBQByd1Gr9gSjvuho1lHsJxIJ3gGbJI= github.com/opentracing-contrib/go-observer v0.0.0-20170622124052-a52f23424492/go.mod h1:Ngi6UdF0k5OKD5t5wlmGhe/EDKPoUM3BXZSSfIuJbis= github.com/opentracing/basictracer-go v1.0.0/go.mod h1:QfBfYuafItcjQuMwinw9GhYKwFXS9KnPs5lxoYwgW74= github.com/opentracing/opentracing-go v1.0.2/go.mod h1:UkNAQd3GIcIGf0SeVgPpRdFStlNbqXla1AfSYxPUl2o= @@ -1082,8 +1097,9 @@ github.com/rcrowley/go-metrics v0.0.0-20181016184325-3113b8401b8a/go.mod h1:bCqn github.com/rcrowley/go-metrics v0.0.0-20201227073835-cf1acfcdf475 h1:N/ElC8H3+5XpJzTSTfLsJV/mx9Q9g7kxmchpfZyxgzM= github.com/rcrowley/go-metrics v0.0.0-20201227073835-cf1acfcdf475/go.mod h1:bCqnVzQkZxMG4s8nGwiZ5l3QUCyqpo9Y+/ZMZ9VjZe4= github.com/regen-network/gocuke v0.6.2 h1:pHviZ0kKAq2U2hN2q3smKNxct6hS0mGByFMHGnWA97M= -github.com/rivo/uniseg v0.2.0 h1:S1pD9weZBuJdFmowNwbpi7BJ8TNftyUImj/0WQi72jY= github.com/rivo/uniseg v0.2.0/go.mod h1:J6wj4VEh+S6ZtnVlnTBMWIodfgj8LQOQFoIToxlJtxc= +github.com/rivo/uniseg v0.4.3 h1:utMvzDsuh3suAEnhH0RdHmoPbU648o6CvXxTx4SBMOw= +github.com/rivo/uniseg v0.4.3/go.mod h1:FN3SvrM+Zdj16jyLfmOkMNblXMcoc8DfTHruCPUcx88= github.com/rogpeppe/fastuuid v0.0.0-20150106093220-6724a57986af/go.mod h1:XWv6SoW27p1b0cqNHllgS5HIMJraePCO15w5zCzIWYg= github.com/rogpeppe/fastuuid v1.2.0/go.mod h1:jVj6XXZzXRy/MSR5jhDC/2q6DgLz+nrA6LYCDYWNEvQ= github.com/rogpeppe/go-internal v1.3.0/go.mod h1:M8bDsm7K2OlrFYOpmOWEs/qY81heoFRclV5y23lUDJ4= @@ -1109,6 +1125,7 @@ github.com/sasha-s/go-deadlock v0.3.1 h1:sqv7fDNShgjcaxkO0JNcOAlr8B9+cV5Ey/OB71e github.com/sasha-s/go-deadlock v0.3.1/go.mod h1:F73l+cr82YSh10GxyRI6qZiCgK64VaZjwesgfQ1/iLM= github.com/schollz/closestmatch v2.1.0+incompatible/go.mod h1:RtP1ddjLong6gTkbtmuhtR2uUrrJOpYzYRvbcPAid+g= github.com/sean-/seed v0.0.0-20170313163322-e2103e2c3529/go.mod h1:DxrIzT+xaE7yg65j358z/aeFdxmN0P9QXhEzd20vsDc= +github.com/seccomp/libseccomp-golang v0.9.2-0.20220502022130-f33da4d89646/go.mod h1:JA8cRccbGaA1s33RQf7Y1+q9gHmZX1yB/z9WDN1C6fg= github.com/sergi/go-diff v1.0.0/go.mod h1:0CfEIISq7TuYL3j771MWULgwwjU+GofnZX9QAmXWZgo= github.com/shirou/gopsutil v3.21.11+incompatible h1:+1+c1VGhc88SSonWP6foOcLhvnKlUeu/erjjvaPEYiI= github.com/shirou/gopsutil v3.21.11+incompatible/go.mod h1:5b4v6he4MtMOwMlS0TUMTu2PcXUg8+E1lC7eC3UO/RA= @@ -1117,6 +1134,7 @@ github.com/sirupsen/logrus v1.2.0/go.mod h1:LxeOpSwHxABJmUn/MG1IvRgCAasNZTLOkJPx github.com/sirupsen/logrus v1.4.2/go.mod h1:tLMulIdttU9McNUspp0xgXVQah82FyeX6MwdIuYE2rE= github.com/sirupsen/logrus v1.6.0/go.mod h1:7uNnSEd1DgxDLC74fIahvMZmmYsHGZGEOFrfsX/uA88= github.com/sirupsen/logrus v1.7.0/go.mod h1:yWOB1SBYBC5VeMP7gHvWumXLIWorT60ONWic61uBYv0= +github.com/sirupsen/logrus v1.8.1/go.mod h1:yWOB1SBYBC5VeMP7gHvWumXLIWorT60ONWic61uBYv0= github.com/sirupsen/logrus v1.9.0 h1:trlNQbNUG3OdDrDil03MCb1H2o9nJ1x4/5LYw7byDE0= github.com/smartystreets/assertions v0.0.0-20180927180507-b2de0cb4f26d/go.mod h1:OnSkiWE9lh6wB0YB77sQom3nweQdgAjqCqsofrRNTgc= github.com/smartystreets/goconvey v1.6.4/go.mod h1:syvi0/a8iFYH4r/RixwvyeAJjdLS9QV7WQ/tjFTllLA= @@ -1171,6 +1189,7 @@ github.com/subosito/gotenv v1.4.2 h1:X1TuBLAMDFbaTAChgCBLu3DU3UPyELpnF2jjJ2cz/S8 github.com/subosito/gotenv v1.4.2/go.mod h1:ayKnFf/c6rvx/2iiLrJUk1e6plDbT3edrFNGqEflhK0= github.com/supranational/blst v0.3.11-0.20230406105308-e9dfc5ee724b h1:u49mjRnygnB34h8OKbnNJFVUtWSKIKb1KukdV8bILUM= github.com/supranational/blst v0.3.11-0.20230406105308-e9dfc5ee724b/go.mod h1:jZJtfjgudtNl4en1tzwPIV3KjUnQUvG3/j+w+fVonLw= +github.com/syndtr/gocapability v0.0.0-20200815063812-42c35b437635/go.mod h1:hkRG7XYTFWNJGYcbNJQlaLq0fg1yr4J4t/NcTQtrfww= github.com/syndtr/goleveldb v1.0.1-0.20210819022825-2ae1ddf74ef7 h1:epCh84lMvA70Z7CTTCmYQn2CKbY8j86K7/FAIr141uY= github.com/syndtr/goleveldb v1.0.1-0.20210819022825-2ae1ddf74ef7/go.mod h1:q4W45IWZaF22tdD+VEXcAWRA037jwmWEB5VWYORlTpc= github.com/tecbot/gorocksdb v0.0.0-20191217155057-f0fad39f321c h1:g+WoO5jjkqGAzHWCjJB1zZfXPIAaDpzXIEJ0eS6B5Ok= @@ -1213,6 +1232,8 @@ github.com/valyala/fasthttp v1.6.0/go.mod h1:FstJa9V+Pj9vQ7OJie2qMHdwemEDaDiSdBn github.com/valyala/fasttemplate v1.0.1/go.mod h1:UQGH1tvbgY+Nz5t2n7tXsz52dQxojPUpymEIMZ47gx8= github.com/valyala/fasttemplate v1.2.1/go.mod h1:KHLXt3tVN2HBp8eijSv/kGJopbvo7S+qRAEEKiv+SiQ= github.com/valyala/tcplisten v0.0.0-20161114210144-ceec8f93295a/go.mod h1:v3UYOV9WzVtRmSR+PDvWpU/qWl4Wa5LApYYX4ZtKbio= +github.com/vishvananda/netlink v1.1.0/go.mod h1:cTgwzPIzzgDAYoQrMm0EdrjRUBkTqKYppBueQtXaqoE= +github.com/vishvananda/netns v0.0.0-20191106174202-0a2b9b5464df/go.mod h1:JP3t17pCcGlemwknint6hfoeCVQrEMVwxRLRjXpq+BU= github.com/xeipuuv/gojsonpointer v0.0.0-20180127040702-4e3ac2762d5f/go.mod h1:N2zxlSyiKSe5eX1tZViRH5QA0qijqEDrYZiPEAiq3wU= github.com/xeipuuv/gojsonreference v0.0.0-20180127040603-bd5ef7bd5415/go.mod h1:GwrjFmJcFw6At/Gs6z4yjiIwzuJ1/+UwLxMQDVQXShQ= github.com/xeipuuv/gojsonschema v1.2.0/go.mod h1:anYRn/JVcOK2ZgGU+IjEV4nwlhoK5sQluxsYJ78Id3Y= @@ -1452,6 +1473,7 @@ golang.org/x/sys v0.0.0-20190422165155-953cdadca894/go.mod h1:h1NjWce9XRLGQEsW7w golang.org/x/sys v0.0.0-20190502145724-3ef323f4f1fd/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= golang.org/x/sys v0.0.0-20190507160741-ecd444e8653b/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= golang.org/x/sys v0.0.0-20190606165138-5da285871e9c/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= +golang.org/x/sys v0.0.0-20190606203320-7fc4e5ec1444/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= golang.org/x/sys v0.0.0-20190624142023-c5567b49c5d0/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= golang.org/x/sys v0.0.0-20190626221950-04f50cda93cb/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= golang.org/x/sys v0.0.0-20190726091711-fc99dfbffb4e/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= @@ -1462,6 +1484,7 @@ golang.org/x/sys v0.0.0-20190916202348-b4ddaad3f8a3/go.mod h1:h1NjWce9XRLGQEsW7w golang.org/x/sys v0.0.0-20191001151750-bb3f8db39f24/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= golang.org/x/sys v0.0.0-20191005200804-aed5e4c7ecf9/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= golang.org/x/sys v0.0.0-20191026070338-33540a1f6037/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= +golang.org/x/sys v0.0.0-20191115151921-52ab43148777/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= golang.org/x/sys v0.0.0-20191120155948-bd437916bb0e/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= golang.org/x/sys v0.0.0-20191204072324-ce4227a45e2e/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= golang.org/x/sys v0.0.0-20191220142924-d4481acd189f/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= @@ -1515,10 +1538,12 @@ golang.org/x/sys v0.0.0-20210806184541-e5e7981a1069/go.mod h1:oPkhp1MJrh7nUepCBc golang.org/x/sys v0.0.0-20210809222454-d867a43fc93e/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= golang.org/x/sys v0.0.0-20210819135213-f52c844e1c1c/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= golang.org/x/sys v0.0.0-20210823070655-63515b42dcdf/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= +golang.org/x/sys v0.0.0-20210906170528-6f6e22806c34/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= golang.org/x/sys v0.0.0-20210908233432-aa78b53d3365/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= golang.org/x/sys v0.0.0-20210927094055-39ccf1dd6fa6/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= golang.org/x/sys v0.0.0-20211007075335-d3039528d8ac/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= golang.org/x/sys v0.0.0-20211025201205-69cdffdb9359/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= +golang.org/x/sys v0.0.0-20211116061358-0a5406a5449c/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= golang.org/x/sys v0.0.0-20211124211545-fe61309f8881/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= golang.org/x/sys v0.0.0-20211210111614-af8b64212486/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= golang.org/x/sys v0.0.0-20211216021012-1d35b9e2eb4e/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= diff --git a/cosmos/x/evm/keeper/genesis.go b/cosmos/x/evm/keeper/genesis.go index dcbd32686..f03fd4dff 100644 --- a/cosmos/x/evm/keeper/genesis.go +++ b/cosmos/x/evm/keeper/genesis.go @@ -38,7 +38,6 @@ func (k *Keeper) InitGenesis(ctx sdk.Context, genState *core.Genesis) error { } } - // Start the polaris "Node" in order to spin up things like the JSON-RPC server. return k.polaris.StartServices() } diff --git a/cosmos/x/evm/plugins/block/genesis.go b/cosmos/x/evm/plugins/block/genesis.go new file mode 100644 index 000000000..d2d61e740 --- /dev/null +++ b/cosmos/x/evm/plugins/block/genesis.go @@ -0,0 +1,46 @@ +// SPDX-License-Identifier: BUSL-1.1 +// +// Copyright (C) 2023, Berachain Foundation. All rights reserved. +// Use of this software is govered by the Business Source License included +// in the LICENSE file of this repository and at www.mariadb.com/bsl11. +// +// ANY USE OF THE LICENSED WORK IN VIOLATION OF THIS LICENSE WILL AUTOMATICALLY +// TERMINATE YOUR RIGHTS UNDER THIS LICENSE FOR THE CURRENT AND ALL OTHER +// VERSIONS OF THE LICENSED WORK. +// +// THIS LICENSE DOES NOT GRANT YOU ANY RIGHT IN ANY TRADEMARK OR LOGO OF +// LICENSOR OR ITS AFFILIATES (PROVIDED THAT YOU MAY USE A TRADEMARK OR LOGO OF +// LICENSOR AS EXPRESSLY REQUIRED BY THIS LICENSE). +// +// TO THE EXTENT PERMITTED BY APPLICABLE LAW, THE LICENSED WORK IS PROVIDED ON +// AN “AS IS” BASIS. LICENSOR HEREBY DISCLAIMS ALL WARRANTIES AND CONDITIONS, +// EXPRESS OR IMPLIED, INCLUDING (WITHOUT LIMITATION) WARRANTIES OF +// MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE, NON-INFRINGEMENT, AND +// TITLE. + +package block + +import ( + sdk "github.com/cosmos/cosmos-sdk/types" + + "pkg.berachain.dev/polaris/eth/core" +) + +// InitGenesis performs genesis initialization for the evm module. It returns +// no validator updates. +func (p *plugin) InitGenesis(ctx sdk.Context, _ *core.Genesis) { + // TODO: IMPLEMENT + p.Prepare(ctx) + // p.StoreHeader(ethGen.ToBlock().Header()) +} + +// ExportGenesis returns the exported genesis state as raw bytes for the evm +// module. +func (p *plugin) ExportGenesis(ctx sdk.Context, _ *core.Genesis) { + // TODO: IMPLEMENT + p.Prepare(ctx) + // head, err := p.GetHeaderByNumber(0) + // if err != nil { + // panic(err) + // } +} diff --git a/cosmos/x/evm/plugins/block/plugin.go b/cosmos/x/evm/plugins/block/plugin.go index b837348f7..168bae94c 100644 --- a/cosmos/x/evm/plugins/block/plugin.go +++ b/cosmos/x/evm/plugins/block/plugin.go @@ -36,6 +36,7 @@ import ( type Plugin interface { plugins.Base + // plugins.HasGenesis // TODO BRING BACK core.BlockPlugin // SetQueryContextFn sets the function used for querying historical block headers. diff --git a/e2e/hive/clients/polard/Dockerfile b/e2e/hive/clients/polard/Dockerfile new file mode 100644 index 000000000..37dacc50c --- /dev/null +++ b/e2e/hive/clients/polard/Dockerfile @@ -0,0 +1,38 @@ +# syntax=docker/dockerfile:1 +# Copyright (C) 2022, Berachain Foundation. All rights reserved. +# See the file LICENSE for licensing terms. +# +# THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" +# AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE +# IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE +# DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE +# FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL +# DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR +# SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER +# CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, +# OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE +# OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + +# Use the latest foundry image +FROM polard-base:test-hive as polaris-hive + +RUN apk add --no-cache bash jq + +WORKDIR / + +# Add a default genesis file + Inject the startup script +ADD build_eth_genesis.sh /build_eth_genesis.sh +ADD version.txt /version.txt +ADD hive-init.sh /hive-init.sh +ADD config /config + +# Build the ethereum style genesis from the cosmos genesis. +RUN ./build_eth_genesis.sh + +RUN export HIVE_CHAIN_ID=2061 +RUN export HIVE_NETWORK_ID=2061 + +# Export the usual networking ports to allow outside access to the node +EXPOSE 8545 8546 8547 8551 30303 30303/udp + +CMD ["bash", "hive-init.sh"] diff --git a/e2e/hive/clients/polard/build_eth_genesis.sh b/e2e/hive/clients/polard/build_eth_genesis.sh new file mode 100755 index 000000000..4fb9619a3 --- /dev/null +++ b/e2e/hive/clients/polard/build_eth_genesis.sh @@ -0,0 +1,12 @@ +#!/bin/bash + +# Extract eth_genesis from config/genesis.json +eth_genesis=$(cat config/genesis.json | jq -r '.app_state.evm.params.eth_genesis') + +# Remove escape characters and format the JSON +formatted_eth_genesis=$(echo -n "$eth_genesis" | sed 's/\\//g' | jq '.') + +# Create a new file called genesis.json with formatted_eth_genesis +echo "$formatted_eth_genesis" > genesis.json + +echo "Successfully created ethereum genesis.json" diff --git a/e2e/hive/clients/polard/config/app.toml b/e2e/hive/clients/polard/config/app.toml new file mode 100644 index 000000000..0bb60bcaf --- /dev/null +++ b/e2e/hive/clients/polard/config/app.toml @@ -0,0 +1,226 @@ +# This is a TOML config file. +# For more information, see https://github.com/toml-lang/toml + +############################################################################### +### Base Configuration ### +############################################################################### + +# The minimum gas prices a validator is willing to accept for processing a +# transaction. A transaction's fees must meet the minimum of any denomination +# specified in this config (e.g. 0.25token1;0.0001token2). +minimum-gas-prices = "0abera" + +# default: the last 362880 states are kept, pruning at 10 block intervals +# nothing: all historic states will be saved, nothing will be deleted (i.e. archiving node) +# everything: 2 latest states will be kept; pruning at 10 block intervals. +# custom: allow pruning options to be manually specified through 'pruning-keep-recent', and 'pruning-interval' +pruning = "default" + +# These are applied if and only if the pruning strategy is custom. +pruning-keep-recent = "0" +pruning-interval = "0" + +# HaltHeight contains a non-zero block height at which a node will gracefully +# halt and shutdown that can be used to assist upgrades and testing. +# +# Note: Commitment of state will be attempted on the corresponding block. +halt-height = 0 + +# HaltTime contains a non-zero minimum block time (in Unix seconds) at which +# a node will gracefully halt and shutdown that can be used to assist upgrades +# and testing. +# +# Note: Commitment of state will be attempted on the corresponding block. +halt-time = 0 + +# MinRetainBlocks defines the minimum block height offset from the current +# block being committed, such that all blocks past this offset are pruned +# from CometBFT. It is used as part of the process of determining the +# ResponseCommit.RetainHeight value during ABCI Commit. A value of 0 indicates +# that no blocks should be pruned. +# +# This configuration value is only responsible for pruning CometBFT blocks. +# It has no bearing on application state pruning which is determined by the +# "pruning-*" configurations. +# +# Note: CometBFT block pruning is dependant on this parameter in conjunction +# with the unbonding (safety threshold) period, state pruning and state sync +# snapshot parameters to determine the correct minimum value of +# ResponseCommit.RetainHeight. +min-retain-blocks = 0 + +# InterBlockCache enables inter-block caching. +inter-block-cache = true + +# IndexEvents defines the set of events in the form {eventType}.{attributeKey}, +# which informs CometBFT what to index. If empty, all events will be indexed. +# +# Example: +# ["message.sender", "message.recipient"] +index-events = [] + +# IavlCacheSize set the size of the iavl tree cache (in number of nodes). +iavl-cache-size = 781250 + +# IAVLDisableFastNode enables or disables the fast node feature of IAVL. +# Default is false. +iavl-disable-fastnode = false + +# IAVLLazyLoading enable/disable the lazy loading of iavl store. +# Default is false. +iavl-lazy-loading = false + +# AppDBBackend defines the database backend type to use for the application and snapshots DBs. +# An empty string indicates that a fallback will be used. +# First fallback is the deprecated compile-time types.DBBackend value. +# Second fallback (if the types.DBBackend also isn't set), is the db-backend value set in CometBFT's config.toml. +app-db-backend = "" + +############################################################################### +### Telemetry Configuration ### +############################################################################### + +[telemetry] + +# Prefixed with keys to separate services. +service-name = "" + +# Enabled enables the application telemetry functionality. When enabled, +# an in-memory sink is also enabled by default. Operators may also enabled +# other sinks such as Prometheus. +enabled = false + +# Enable prefixing gauge values with hostname. +enable-hostname = false + +# Enable adding hostname to labels. +enable-hostname-label = false + +# Enable adding service to labels. +enable-service-label = false + +# PrometheusRetentionTime, when positive, enables a Prometheus metrics sink. +prometheus-retention-time = 0 + +# GlobalLabels defines a global set of name/value label tuples applied to all +# metrics emitted using the wrapper functions defined in telemetry package. +# +# Example: +# [["chain_id", "cosmoshub-1"]] +global-labels = [ +] + +############################################################################### +### API Configuration ### +############################################################################### + +[api] + +# Enable defines if the API server should be enabled. +enable = false + +# Swagger defines if swagger documentation should automatically be registered. +swagger = false + +# Address defines the API server to listen on. +address = "tcp://0.0.0.0:1317" + +# MaxOpenConnections defines the number of maximum open connections. +max-open-connections = 1000 + +# RPCReadTimeout defines the CometBFT RPC read timeout (in seconds). +rpc-read-timeout = 10 + +# RPCWriteTimeout defines the CometBFT RPC write timeout (in seconds). +rpc-write-timeout = 0 + +# RPCMaxBodyBytes defines the CometBFT maximum request body (in bytes). +rpc-max-body-bytes = 1000000 + +# EnableUnsafeCORS defines if CORS should be enabled (unsafe - use it at your own risk). +enabled-unsafe-cors = false + +############################################################################### +### gRPC Configuration ### +############################################################################### + +[grpc] + +# Enable defines if the gRPC server should be enabled. +enable = true + +# Address defines the gRPC server address to bind to. +address = "0.0.0.0:9090" + +# MaxRecvMsgSize defines the max message size in bytes the server can receive. +# The default value is 10MB. +max-recv-msg-size = "10485760" + +# MaxSendMsgSize defines the max message size in bytes the server can send. +# The default value is math.MaxInt32. +max-send-msg-size = "2147483647" + +############################################################################### +### gRPC Web Configuration ### +############################################################################### + +[grpc-web] + +# GRPCWebEnable defines if the gRPC-web should be enabled. +# NOTE: gRPC must also be enabled, otherwise, this configuration is a no-op. +# NOTE: gRPC-Web uses the same address as the API server. +enable = true + +############################################################################### +### State Sync Configuration ### +############################################################################### + +# State sync snapshots allow other nodes to rapidly join the network without replaying historical +# blocks, instead downloading and applying a snapshot of the application state at a given height. +[state-sync] + +# snapshot-interval specifies the block interval at which local state sync snapshots are +# taken (0 to disable). +snapshot-interval = 0 + +# snapshot-keep-recent specifies the number of recent snapshots to keep and serve (0 to keep all). +snapshot-keep-recent = 2 + +############################################################################### +### State Streaming ### +############################################################################### + +# Streaming allows nodes to stream state to external systems. +[streaming] + +# streaming.abci specifies the configuration for the ABCI Listener streaming service. +[streaming.abci] + +# List of kv store keys to stream out via gRPC. +# The store key names MUST match the module's StoreKey name. +# +# Example: +# ["acc", "bank", "gov", "staking", "mint"[,...]] +# ["*"] to expose all keys. +keys = [] + +# The plugin name used for streaming via gRPC. +# Streaming is only enabled if this is set. +# Supported plugins: abci +plugin = "" + +# stop-node-on-err specifies whether to stop the node on message delivery error. +stop-node-on-err = true + +############################################################################### +### Mempool ### +############################################################################### + +[mempool] +# Setting max-txs to 0 will allow for a unbounded amount of transactions in the mempool. +# Setting max_txs to negative 1 (-1) will disable transactions from being inserted into the mempool. +# Setting max_txs to a positive number (> 0) will limit the number of transactions in the mempool, by the specified amount. +# +# Note, this configuration only applies to SDK built-in app-side mempool +# implementations. +max-txs = "5000" diff --git a/e2e/hive/clients/polard/config/config.toml b/e2e/hive/clients/polard/config/config.toml new file mode 100644 index 000000000..9cf131454 --- /dev/null +++ b/e2e/hive/clients/polard/config/config.toml @@ -0,0 +1,471 @@ +# This is a TOML config file. +# For more information, see https://github.com/toml-lang/toml + +# NOTE: Any path below can be absolute (e.g. "/var/myawesomeapp/data") or +# relative to the home directory (e.g. "data"). The home directory is +# "$HOME/.cometbft" by default, but could be changed via $CMTHOME env variable +# or --home cmd flag. + +####################################################################### +### Main Base Config Options ### +####################################################################### + +# TCP or UNIX socket address of the ABCI application, +# or the name of an ABCI application compiled in with the CometBFT binary +proxy_app = "tcp://0.0.0.0:26658" + +# A custom human readable name for this node +moniker = "localtestnet" + +# If this node is many blocks behind the tip of the chain, BlockSync +# allows them to catchup quickly by downloading blocks in parallel +# and verifying their commits +# +# Deprecated: this key will be removed and BlockSync will be enabled +# unconditionally in the next major release. +block_sync = true + +# Database backend: goleveldb | cleveldb | boltdb | rocksdb | badgerdb +# * goleveldb (github.com/syndtr/goleveldb - most popular implementation) +# - pure go +# - stable +# * cleveldb (uses levigo wrapper) +# - fast +# - requires gcc +# - use cleveldb build tag (go build -tags cleveldb) +# * boltdb (uses etcd's fork of bolt - github.com/etcd-io/bbolt) +# - EXPERIMENTAL +# - may be faster is some use-cases (random reads - indexer) +# - use boltdb build tag (go build -tags boltdb) +# * rocksdb (uses github.com/tecbot/gorocksdb) +# - EXPERIMENTAL +# - requires gcc +# - use rocksdb build tag (go build -tags rocksdb) +# * badgerdb (uses github.com/dgraph-io/badger) +# - EXPERIMENTAL +# - use badgerdb build tag (go build -tags badgerdb) +db_backend = "goleveldb" + +# Database directory +db_dir = "data" + +# Output level for logging, including package level options +log_level = "info" + +# Output format: 'plain' (colored text) or 'json' +log_format = "plain" + +##### additional base config options ##### + +# Path to the JSON file containing the initial validator set and other meta data +genesis_file = "config/genesis.json" + +# Path to the JSON file containing the private key to use as a validator in the consensus protocol +priv_validator_key_file = "config/priv_validator_key.json" + +# Path to the JSON file containing the last sign state of a validator +priv_validator_state_file = "data/priv_validator_state.json" + +# TCP or UNIX socket address for CometBFT to listen on for +# connections from an external PrivValidator process +priv_validator_laddr = "" + +# Path to the JSON file containing the private key to use for node authentication in the p2p protocol +node_key_file = "config/node_key.json" + +# Mechanism to connect to the ABCI application: socket | grpc +abci = "socket" + +# If true, query the ABCI app on connecting to a new peer +# so the app can decide if we should keep the connection or not +filter_peers = false + + +####################################################################### +### Advanced Configuration Options ### +####################################################################### + +####################################################### +### RPC Server Configuration Options ### +####################################################### +[rpc] + +# TCP or UNIX socket address for the RPC server to listen on +laddr = "tcp://0.0.0.0:26657" + +# A list of origins a cross-domain request can be executed from +# Default value '[]' disables cors support +# Use '["*"]' to allow any origin +cors_allowed_origins = [] + +# A list of methods the client is allowed to use with cross-domain requests +cors_allowed_methods = ["HEAD", "GET", "POST", ] + +# A list of non simple headers the client is allowed to use with cross-domain requests +cors_allowed_headers = ["Origin", "Accept", "Content-Type", "X-Requested-With", "X-Server-Time", ] + +# TCP or UNIX socket address for the gRPC server to listen on +# NOTE: This server only supports /broadcast_tx_commit +grpc_laddr = "" + +# Maximum number of simultaneous connections. +# Does not include RPC (HTTP&WebSocket) connections. See max_open_connections +# If you want to accept a larger number than the default, make sure +# you increase your OS limits. +# 0 - unlimited. +# Should be < {ulimit -Sn} - {MaxNumInboundPeers} - {MaxNumOutboundPeers} - {N of wal, db and other open files} +# 1024 - 40 - 10 - 50 = 924 = ~900 +grpc_max_open_connections = 900 + +# Activate unsafe RPC commands like /dial_seeds and /unsafe_flush_mempool +unsafe = false + +# Maximum number of simultaneous connections (including WebSocket). +# Does not include gRPC connections. See grpc_max_open_connections +# If you want to accept a larger number than the default, make sure +# you increase your OS limits. +# 0 - unlimited. +# Should be < {ulimit -Sn} - {MaxNumInboundPeers} - {MaxNumOutboundPeers} - {N of wal, db and other open files} +# 1024 - 40 - 10 - 50 = 924 = ~900 +max_open_connections = 900 + +# Maximum number of unique clientIDs that can /subscribe +# If you're using /broadcast_tx_commit, set to the estimated maximum number +# of broadcast_tx_commit calls per block. +max_subscription_clients = 100 + +# Maximum number of unique queries a given client can /subscribe to +# If you're using GRPC (or Local RPC client) and /broadcast_tx_commit, set to +# the estimated # maximum number of broadcast_tx_commit calls per block. +max_subscriptions_per_client = 5 + +# Experimental parameter to specify the maximum number of events a node will +# buffer, per subscription, before returning an error and closing the +# subscription. Must be set to at least 100, but higher values will accommodate +# higher event throughput rates (and will use more memory). +experimental_subscription_buffer_size = 200 + +# Experimental parameter to specify the maximum number of RPC responses that +# can be buffered per WebSocket client. If clients cannot read from the +# WebSocket endpoint fast enough, they will be disconnected, so increasing this +# parameter may reduce the chances of them being disconnected (but will cause +# the node to use more memory). +# +# Must be at least the same as "experimental_subscription_buffer_size", +# otherwise connections could be dropped unnecessarily. This value should +# ideally be somewhat higher than "experimental_subscription_buffer_size" to +# accommodate non-subscription-related RPC responses. +experimental_websocket_write_buffer_size = 200 + +# If a WebSocket client cannot read fast enough, at present we may +# silently drop events instead of generating an error or disconnecting the +# client. +# +# Enabling this experimental parameter will cause the WebSocket connection to +# be closed instead if it cannot read fast enough, allowing for greater +# predictability in subscription behavior. +experimental_close_on_slow_client = false + +# How long to wait for a tx to be committed during /broadcast_tx_commit. +# WARNING: Using a value larger than 10s will result in increasing the +# global HTTP write timeout, which applies to all connections and endpoints. +# See https://github.com/tendermint/tendermint/issues/3435 +timeout_broadcast_tx_commit = "15s" + +# Maximum size of request body, in bytes +max_body_bytes = 1000000 + +# Maximum size of request header, in bytes +max_header_bytes = 1048576 + +# The path to a file containing certificate that is used to create the HTTPS server. +# Might be either absolute path or path related to CometBFT's config directory. +# If the certificate is signed by a certificate authority, +# the certFile should be the concatenation of the server's certificate, any intermediates, +# and the CA's certificate. +# NOTE: both tls_cert_file and tls_key_file must be present for CometBFT to create HTTPS server. +# Otherwise, HTTP server is run. +tls_cert_file = "" + +# The path to a file containing matching private key that is used to create the HTTPS server. +# Might be either absolute path or path related to CometBFT's config directory. +# NOTE: both tls-cert-file and tls-key-file must be present for CometBFT to create HTTPS server. +# Otherwise, HTTP server is run. +tls_key_file = "" + +# pprof listen address (https://golang.org/pkg/net/http/pprof) +pprof_laddr = "0.0.0.0:6060" + +####################################################### +### P2P Configuration Options ### +####################################################### +[p2p] + +# Address to listen for incoming connections +laddr = "tcp://0.0.0.0:26656" + +# Address to advertise to peers for them to dial +# If empty, will use the same port as the laddr, +# and will introspect on the listener or use UPnP +# to figure out the address. ip and port are required +# example: 159.89.10.97:26656 +external_address = "" + +# Comma separated list of seed nodes to connect to +seeds = "" + +# Comma separated list of nodes to keep persistent connections to +persistent_peers = "" + +# UPNP port forwarding +upnp = false + +# Path to address book +addr_book_file = "config/addrbook.json" + +# Set true for strict address routability rules +# Set false for private or local networks +addr_book_strict = true + +# Maximum number of inbound peers +max_num_inbound_peers = 40 + +# Maximum number of outbound peers to connect to, excluding persistent peers +max_num_outbound_peers = 10 + +# List of node IDs, to which a connection will be (re)established ignoring any existing limits +unconditional_peer_ids = "" + +# Maximum pause when redialing a persistent peer (if zero, exponential backoff is used) +persistent_peers_max_dial_period = "0s" + +# Time to wait before flushing messages out on the connection +flush_throttle_timeout = "100ms" + +# Maximum size of a message packet payload, in bytes +max_packet_msg_payload_size = 1024 + +# Rate at which packets can be sent, in bytes/second +send_rate = 5120000 + +# Rate at which packets can be received, in bytes/second +recv_rate = 5120000 + +# Set true to enable the peer-exchange reactor +pex = true + +# Seed mode, in which node constantly crawls the network and looks for +# peers. If another node asks it for addresses, it responds and disconnects. +# +# Does not work if the peer-exchange reactor is disabled. +seed_mode = false + +# Comma separated list of peer IDs to keep private (will not be gossiped to other peers) +private_peer_ids = "" + +# Toggle to disable guard against peers connecting from the same ip. +allow_duplicate_ip = false + +# Peer connection configuration. +handshake_timeout = "20s" +dial_timeout = "3s" + +####################################################### +### Mempool Configuration Option ### +####################################################### +[mempool] + +# Mempool version to use: +# 1) "v0" - (default) FIFO mempool. +# 2) "v1" - prioritized mempool (deprecated; will be removed in the next release). +version = "v0" + +recheck = true +broadcast = true +wal_dir = "" + +# Maximum number of transactions in the mempool +size = 5000 + +# Limit the total size of all txs in the mempool. +# This only accounts for raw transactions (e.g. given 1MB transactions and +# max_txs_bytes=5MB, mempool will only accept 5 transactions). +max_txs_bytes = 1073741824 + +# Size of the cache (used to filter transactions we saw earlier) in transactions +cache_size = 10000 + +# Do not remove invalid transactions from the cache (default: false) +# Set to true if it's not possible for any invalid transaction to become valid +# again in the future. +keep-invalid-txs-in-cache = false + +# Maximum size of a single transaction. +# NOTE: the max size of a tx transmitted over the network is {max_tx_bytes}. +max_tx_bytes = 1048576 + +# Maximum size of a batch of transactions to send to a peer +# Including space needed by encoding (one varint per transaction). +# XXX: Unused due to https://github.com/tendermint/tendermint/issues/5796 +max_batch_bytes = 0 + +# ttl-duration, if non-zero, defines the maximum amount of time a transaction +# can exist for in the mempool. +# +# Note, if ttl-num-blocks is also defined, a transaction will be removed if it +# has existed in the mempool at least ttl-num-blocks number of blocks or if it's +# insertion time into the mempool is beyond ttl-duration. +ttl-duration = "0s" + +# ttl-num-blocks, if non-zero, defines the maximum number of blocks a transaction +# can exist for in the mempool. +# +# Note, if ttl-duration is also defined, a transaction will be removed if it +# has existed in the mempool at least ttl-num-blocks number of blocks or if +# it's insertion time into the mempool is beyond ttl-duration. +ttl-num-blocks = 0 + +####################################################### +### State Sync Configuration Options ### +####################################################### +[statesync] +# State sync rapidly bootstraps a new node by discovering, fetching, and restoring a state machine +# snapshot from peers instead of fetching and replaying historical blocks. Requires some peers in +# the network to take and serve state machine snapshots. State sync is not attempted if the node +# has any local state (LastBlockHeight > 0). The node will have a truncated block history, +# starting from the height of the snapshot. +enable = false + +# RPC servers (comma-separated) for light client verification of the synced state machine and +# retrieval of state data for node bootstrapping. Also needs a trusted height and corresponding +# header hash obtained from a trusted source, and a period during which validators can be trusted. +# +# For Cosmos SDK-based chains, trust_period should usually be about 2/3 of the unbonding time (~2 +# weeks) during which they can be financially punished (slashed) for misbehavior. +rpc_servers = "" +trust_height = 0 +trust_hash = "" +trust_period = "168h0m0s" + +# Time to spend discovering snapshots before initiating a restore. +discovery_time = "15s" + +# Temporary directory for state sync snapshot chunks, defaults to the OS tempdir (typically /tmp). +# Will create a new, randomly named directory within, and remove it when done. +temp_dir = "" + +# The timeout duration before re-requesting a chunk, possibly from a different +# peer (default: 1 minute). +chunk_request_timeout = "10s" + +# The number of concurrent chunk fetchers to run (default: 1). +chunk_fetchers = "4" + +####################################################### +### Block Sync Configuration Options ### +####################################################### +[blocksync] + +# Block Sync version to use: +# +# In v0.37, v1 and v2 of the block sync protocols were deprecated. +# Please use v0 instead. +# +# 1) "v0" - the default block sync implementation +version = "v0" + +####################################################### +### Consensus Configuration Options ### +####################################################### +[consensus] + +wal_file = "data/cs.wal/wal" + +# How long we wait for a proposal block before prevoting nil +timeout_propose = "1s" +# How much timeout_propose increases with each round +timeout_propose_delta = "1s" +# How long we wait after receiving +2/3 prevotes for “anything” (ie. not a single block or nil) +timeout_prevote = "1s" +# How much the timeout_prevote increases with each round +timeout_prevote_delta = "1s" +# How long we wait after receiving +2/3 precommits for “anything” (ie. not a single block or nil) +timeout_precommit = "1s" +# How much the timeout_precommit increases with each round +timeout_precommit_delta = "1s" +# How long we wait after committing a block, before starting on the new +# height (this gives us a chance to receive some more precommits, even +# though we already have +2/3). +timeout_commit = "1s" + +# How many blocks to look back to check existence of the node's consensus votes before joining consensus +# When non-zero, the node will panic upon restart +# if the same consensus key was used to sign {double_sign_check_height} last blocks. +# So, validators should stop the state machine, wait for some blocks, and then restart the state machine to avoid panic. +double_sign_check_height = 0 + +# Make progress as soon as we have all the precommits (as if TimeoutCommit = 0) +skip_timeout_commit = false + +# EmptyBlocks mode and possible interval between empty blocks +create_empty_blocks = true +create_empty_blocks_interval = "0s" + +# Reactor sleep duration parameters +peer_gossip_sleep_duration = "100ms" +peer_query_maj23_sleep_duration = "2s" + +####################################################### +### Storage Configuration Options ### +####################################################### +[storage] + +# Set to true to discard ABCI responses from the state store, which can save a +# considerable amount of disk space. Set to false to ensure ABCI responses are +# persisted. ABCI responses are required for /block_results RPC queries, and to +# reindex events in the command-line tool. +discard_abci_responses = false + +####################################################### +### Transaction Indexer Configuration Options ### +####################################################### +[tx_index] + +# What indexer to use for transactions +# +# The application will set which txs to index. In some cases a node operator will be able +# to decide which txs to index based on configuration set in the application. +# +# Options: +# 1) "null" +# 2) "kv" (default) - the simplest possible indexer, backed by key-value storage (defaults to levelDB; see DBBackend). +# - When "kv" is chosen "tx.height" and "tx.hash" will always be indexed. +# 3) "psql" - the indexer services backed by PostgreSQL. +# When "kv" or "psql" is chosen "tx.height" and "tx.hash" will always be indexed. +indexer = "kv" + +# The PostgreSQL connection configuration, the connection format: +# postgresql://:@:/? +psql-conn = "" + +####################################################### +### Instrumentation Configuration Options ### +####################################################### +[instrumentation] + +# When true, Prometheus metrics are served under /metrics on +# PrometheusListenAddr. +# Check out the documentation for the list of available metrics. +prometheus = false + +# Address to listen for Prometheus collector(s) connections +prometheus_listen_addr = ":26660" + +# Maximum number of simultaneous connections. +# If you want to accept a larger number than the default, make sure +# you increase your OS limits. +# 0 - unlimited. +max_open_connections = 3 + +# Instrumentation namespace +namespace = "cometbft" diff --git a/e2e/hive/clients/polard/config/genesis.json b/e2e/hive/clients/polard/config/genesis.json new file mode 100644 index 000000000..0d5176147 --- /dev/null +++ b/e2e/hive/clients/polard/config/genesis.json @@ -0,0 +1,347 @@ +{ + "app_name": "polaris-cosmos", + "app_version": "v0.0.0", + "genesis_time": "2023-05-30T23:14:44.991554Z", + "chain_id": "polaris-2061", + "initial_height": 1, + "app_hash": null, + "app_state": { + "auth": { + "params": { + "max_memo_characters": "256", + "tx_sig_limit": "7", + "tx_size_cost_per_byte": "10", + "sig_verify_cost_ed25519": "590", + "sig_verify_cost_secp256k1": "1000" + }, + "accounts": [ + { + "@type": "/cosmos.auth.v1beta1.BaseAccount", + "address": "polar1qk36tw89pgf5f8jhxf4hcug3q20u35x2p4jmm5", + "pub_key": null, + "account_number": "0", + "sequence": "0" + }, + { + "@type": "/cosmos.auth.v1beta1.BaseAccount", + "address": "polar1l4qr3q3535su2ggy7kh2j04a35wd8vyshtuafh", + "pub_key": null, + "account_number": "1", + "sequence": "0" + }, + { + "@type": "/cosmos.auth.v1beta1.BaseAccount", + "address": "polar16z3wul8jkjksw60kr2gumsv7hk9l5ck5597nwa", + "pub_key": null, + "account_number": "2", + "sequence": "0" + } + ] + }, + "authz": { + "authorization": [] + }, + "bank": { + "params": { + "send_enabled": [], + "default_send_enabled": true + }, + "balances": [ + { + "address": "polar1qk36tw89pgf5f8jhxf4hcug3q20u35x2p4jmm5", + "coins": [ + { + "denom": "abera", + "amount": "100000000000000000000000000" + } + ] + }, + { + "address": "polar16z3wul8jkjksw60kr2gumsv7hk9l5ck5597nwa", + "coins": [ + { + "denom": "abera", + "amount": "100000000000000000000000000" + } + ] + }, + { + "address": "polar1l4qr3q3535su2ggy7kh2j04a35wd8vyshtuafh", + "coins": [ + { + "denom": "abera", + "amount": "100000000000000000000000000" + } + ] + } + ], + "supply": [ + { + "denom": "abera", + "amount": "300000000000000000000000000" + } + ], + "denom_metadata": [], + "send_enabled": [] + }, + "consensus": null, + "crisis": { + "constant_fee": { + "denom": "abera", + "amount": "1000" + } + }, + "distribution": { + "params": { + "community_tax": "0.020000000000000000", + "base_proposer_reward": "0.000000000000000000", + "bonus_proposer_reward": "0.000000000000000000", + "withdraw_addr_enabled": true + }, + "fee_pool": { + "community_pool": [] + }, + "delegator_withdraw_infos": [], + "previous_proposer": "", + "outstanding_rewards": [], + "validator_accumulated_commissions": [], + "validator_historical_rewards": [], + "validator_current_rewards": [], + "delegator_starting_infos": [], + "validator_slash_events": [] + }, + "erc20": { + "params": {} + }, + "evidence": { + "evidence": [] + }, + "evm": { + "config": { + "chainId": 2061, + "homesteadBlock": 0, + "daoForkBlock": 0, + "daoForkSupport": true, + "eip150Block": 0, + "eip150Hash": "0x0000000000000000000000000000000000000000000000000000000000000000", + "eip155Block": 0, + "eip158Block": 0, + "byzantiumBlock": 0, + "constantinopleBlock": 0, + "petersburgBlock": 0, + "istanbulBlock": 0, + "berlinBlock": 0, + "londonBlock": 0, + "arrowGlacierBlock": 0, + "grayGlacierBlock": 0, + "mergeNetsplitBlock": 0, + "shanghaiTime": 0, + "terminalTotalDifficulty": 0, + "terminalTotalDifficultyPassed": true + }, + "nonce": "0x0", + "timestamp": "0x0", + "extraData": "0x11bbe8db4e347b4e8c937c1c8370e4b5ed33adb3db69cbdb7a38e1e50b1b82fa", + "gasLimit": "0x1c9c380", + "difficulty": "0x0", + "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000", + "coinbase": "0x0000000000000000000000000000000000000000", + "alloc": { + "20f33ce90a13a4b5e7697e3544c3083b8f8a51d4": { + "balance": "0x4563918244f40000" + } + }, + "number": "0x0", + "gasUsed": "0x0", + "parentHash": "0x0000000000000000000000000000000000000000000000000000000000000000", + "baseFeePerGas": null + }, + "genutil": { + "gen_txs": [ + { + "body": { + "messages": [ + { + "@type": "/cosmos.staking.v1beta1.MsgCreateValidator", + "description": { + "moniker": "localtestnet", + "identity": "", + "website": "", + "security_contact": "", + "details": "" + }, + "commission": { + "rate": "0.100000000000000000", + "max_rate": "0.200000000000000000", + "max_change_rate": "0.010000000000000000" + }, + "min_self_delegation": "1", + "delegator_address": "", + "validator_address": "polarvaloper1qk36tw89pgf5f8jhxf4hcug3q20u35x2a8zasm", + "pubkey": { + "@type": "/cosmos.crypto.ed25519.PubKey", + "key": "/GmlSP30BD2b713XWL2l3O3hMlDKH1FxmBlIP6Ox47E=" + }, + "value": { + "denom": "abera", + "amount": "1000000000000000000000" + } + } + ], + "memo": "5361432688d620acfdc2d425c1430f0c01048b7c@192.168.0.220:26656", + "timeout_height": "0", + "extension_options": [], + "non_critical_extension_options": [] + }, + "auth_info": { + "signer_infos": [ + { + "public_key": { + "@type": "/polaris.crypto.ethsecp256k1.v1.PubKey", + "key": "AwjItkzy4rgPzJypyOxK2YmjNhQJtLfAKQhRgBccZGDW" + }, + "mode_info": { + "single": { + "mode": "SIGN_MODE_DIRECT" + } + }, + "sequence": "0" + } + ], + "fee": { + "amount": [], + "gas_limit": "200000", + "payer": "", + "granter": "" + }, + "tip": null + }, + "signatures": [ + "btJah6+IcP/MrNqy+bjxVNsa28cFTZAXI2ON/c6O13NvF762yw9rzBzhWjLbjW5cWll4rR1IbvSWtElLG/733gA=" + ] + } + ] + }, + "gov": { + "starting_proposal_id": "1", + "deposits": [], + "votes": [], + "proposals": [], + "deposit_params": { + "min_deposit": [ + { + "denom": "abera" + } + ] + }, + "voting_params": null, + "tally_params": null, + "params": { + "min_deposit": [ + { + "denom": "stake", + "amount": "10000000" + } + ], + "max_deposit_period": "172800s", + "voting_period": "172800s", + "quorum": "0.334000000000000000", + "threshold": "0.500000000000000000", + "veto_threshold": "0.334000000000000000", + "min_initial_deposit_ratio": "0.000000000000000000", + "proposal_cancel_ratio": "0.500000000000000000", + "proposal_cancel_dest": "", + "expedited_voting_period": "86400s", + "expedited_threshold": "0.667000000000000000", + "expedited_min_deposit": [ + { + "denom": "stake", + "amount": "50000000" + } + ], + "burn_vote_quorum": false, + "burn_proposal_deposit_prevote": false, + "burn_vote_veto": true + }, + "constitution": "" + }, + "group": { + "group_seq": "0", + "groups": [], + "group_members": [], + "group_policy_seq": "0", + "group_policies": [], + "proposal_seq": "0", + "proposals": [], + "votes": [] + }, + "mint": { + "minter": { + "inflation": "0.130000000000000000", + "annual_provisions": "0.000000000000000000" + }, + "params": { + "mint_denom": "abera", + "inflation_rate_change": "0.130000000000000000", + "inflation_max": "0.200000000000000000", + "inflation_min": "0.070000000000000000", + "goal_bonded": "0.670000000000000000", + "blocks_per_year": "6311520" + } + }, + "slashing": { + "params": { + "signed_blocks_window": "100", + "min_signed_per_window": "0.500000000000000000", + "downtime_jail_duration": "600s", + "slash_fraction_double_sign": "0.050000000000000000", + "slash_fraction_downtime": "0.010000000000000000" + }, + "signing_infos": [], + "missed_blocks": [] + }, + "staking": { + "params": { + "unbonding_time": "1814400s", + "max_validators": 100, + "max_entries": 7, + "historical_entries": 10000, + "bond_denom": "abera", + "min_commission_rate": "0.000000000000000000" + }, + "last_total_power": "0", + "last_validator_powers": [], + "validators": [], + "delegations": [], + "unbonding_delegations": [], + "redelegations": [], + "exported": false + }, + "upgrade": {}, + "vesting": {} + }, + "consensus": { + "params": { + "block": { + "max_bytes": "22020096", + "max_gas": "30000000" + }, + "evidence": { + "max_age_num_blocks": "100000", + "max_age_duration": "172800000000000", + "max_bytes": "1048576" + }, + "validator": { + "pub_key_types": [ + "ed25519" + ] + }, + "version": { + "app": "0" + }, + "abci": { + "vote_extensions_enable_height": "0" + } + } + } +} \ No newline at end of file diff --git a/e2e/hive/clients/polard/config/polaris.toml b/e2e/hive/clients/polard/config/polaris.toml new file mode 100644 index 000000000..645573bd6 --- /dev/null +++ b/e2e/hive/clients/polard/config/polaris.toml @@ -0,0 +1,35 @@ +[NodeConfig] +HTTPHost = "0.0.0.0" +HTTPPort = 8545 +HTTPCors = ["*"] +HTTPVirtualHosts = ["*"] +HTTPModules = ["eth", "net", "web3"] +AuthAddr = "0.0.0.0" +AuthPort = 8546 +AuthVirtualHosts = ["0.0.0.0"] +WSHost = "0.0.0.0" +WSPort = 8546 +WSOrigins = ["*"] +WSModules = ["eth", "net", "web3"] +GraphQLCors = ["*"] +GraphQLVirtualHosts = ["*"] + +[NodeConfig.HTTPTimeouts] +ReadTimeout = "30s" +ReadHeaderTimeout = "30s" +WriteTimeout = "30s" +IdleTimeout = "1m" + +[RPCConfig] +RPCGasCap = 10000000 +RPCEVMTimeout = "10s" +RPCTxFeeCap = 1 + +[RPCConfig.GPO] +Blocks = 10 +Percentile = 50 +MaxHeaderHistory = 192 +MaxBlockHistory = 5000 +Default = 1000000000 +MaxPrice = 100000000000 +IgnorePrice = 0 diff --git a/e2e/hive/clients/polard/enode.sh b/e2e/hive/clients/polard/enode.sh new file mode 100644 index 000000000..7856acaac --- /dev/null +++ b/e2e/hive/clients/polard/enode.sh @@ -0,0 +1 @@ +# apparently this file is required by eth1 client diff --git a/e2e/hive/clients/polard/hive-init.sh b/e2e/hive/clients/polard/hive-init.sh new file mode 100644 index 000000000..b79817f68 --- /dev/null +++ b/e2e/hive/clients/polard/hive-init.sh @@ -0,0 +1,110 @@ +#!/bin/bash +# SPDX-License-Identifier: BUSL-1.1 +# +# Copyright (C) 2023, Berachain Foundation. All rights reserved. +# Use of this software is govered by the Business Source License included +# in the LICENSE file of this repository and at www.mariadb.com/bsl11. +# +# ANY USE OF THE LICENSED WORK IN VIOLATION OF THIS LICENSE WILL AUTOMATICALLY +# TERMINATE YOUR RIGHTS UNDER THIS LICENSE FOR THE CURRENT AND ALL OTHER +# VERSIONS OF THE LICENSED WORK. +# +# THIS LICENSE DOES NOT GRANT YOU ANY RIGHT IN ANY TRADEMARK OR LOGO OF +# LICENSOR OR ITS AFFILIATES (PROVIDED THAT YOU MAY USE A TRADEMARK OR LOGO OF +# LICENSOR AS EXPRESSLY REQUIRED BY THIS LICENSE). +# +# TO THE EXTENT PERMITTED BY APPLICABLE LAW, THE LICENSED WORK IS PROVIDED ON +# AN “AS IS” BASIS. LICENSOR HEREBY DISCLAIMS ALL WARRANTIES AND CONDITIONS, +# EXPRESS OR IMPLIED, INCLUDING (WITHOUT LIMITATION) WARRANTIES OF +# MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE, NON-INFRINGEMENT, AND +# TITLE. + +KEYS[0]="dev0" +KEYS[1]="dev1" +KEYS[2]="dev2" +CHAINID="polaris-2061" +MONIKER="localtestnet" +# Remember to change to other types of keyring like 'file' in-case exposing to outside world, +# otherwise your balance will be wiped quickly +# The keyring test does not require private key to steal tokens from you +KEYRING="test" +KEYALGO="eth_secp256k1" +LOGLEVEL="info" +# Set dedicated home directory for the ./bin/polard instance +HOMEDIR="/" +# to trace evm +#TRACE="--trace" +TRACE="" + +# Path variables +CONFIG_TOML=$HOMEDIR/config/config.toml +APP_TOML=$HOMEDIR/config/app.toml +POLARIS_TOML=$HOMEDIR/config/polaris.toml +GENESIS=$HOMEDIR/config/genesis.json +TMP_GENESIS=$HOMEDIR/config/tmp_genesis.json + +# used to exit on first error (any non-zero exit code) +set -e + +# Reinstall daemon +# mage build + +# Remove the previous folder + + # Set moniker and chain-id (Moniker can be anything, chain-id must be an integer) +polard init $MONIKER -o --chain-id $CHAINID --home "$HOMEDIR" +# Set client config +polard config set client keyring-backend $KEYRING --home "$HOMEDIR" +polard config set client chain-id "$CHAINID" --home "$HOMEDIR" + +# If keys exist they should be deleted +for KEY in "${KEYS[@]}"; do + polard keys add $KEY --keyring-backend $KEYRING --algo $KEYALGO --home "$HOMEDIR" +done + +ETH_GENESIS_SOURCE=$(cat genesis.json) +temp_genesis=$(cat $GENESIS) +echo "eth_gen dump: " +echo $ETH_GENESIS_SOURCE + +# Change eth_genesis in config/genesis.json +updated_genesis=$(echo "$temp_genesis" | jq --argjson eth_gen "$ETH_GENESIS_SOURCE" '.app_state["evm"] = $eth_gen') +echo "$updated_genesis" > "$GENESIS" + +# Change parameter token denominations to abera +jq '.app_state["staking"]["params"]["bond_denom"]="abera"' "$GENESIS" >"$TMP_GENESIS" && mv "$TMP_GENESIS" "$GENESIS" +jq '.app_state["crisis"]["constant_fee"]["denom"]="abera"' "$GENESIS" >"$TMP_GENESIS" && mv "$TMP_GENESIS" "$GENESIS" +jq '.app_state["gov"]["deposit_params"]["min_deposit"][0]["denom"]="abera"' "$GENESIS" >"$TMP_GENESIS" && mv "$TMP_GENESIS" "$GENESIS" +jq '.app_state["mint"]["params"]["mint_denom"]="abera"' "$GENESIS" >"$TMP_GENESIS" && mv "$TMP_GENESIS" "$GENESIS" +jq '.consensus["params"]["block"]["max_gas"]="30000000"' "$GENESIS" >"$TMP_GENESIS" && mv "$TMP_GENESIS" "$GENESIS" + +# Dump genesis +echo "genesis state:" +cat $GENESIS + +# Allocate genesis accounts (cosmos formatted addresses) +for KEY in "${KEYS[@]}"; do + polard genesis add-genesis-account $KEY 100000000000000000000000000abera --keyring-backend $KEYRING --home "$HOMEDIR" +done + +# Sign genesis transaction +polard genesis gentx ${KEYS[0]} 1000000000000000000000abera --keyring-backend $KEYRING --chain-id $CHAINID --home "$HOMEDIR" +## In case you want to create multiple validators at genesis +## 1. Back to `./bin/polard keys add` step, init more keys +## 2. Back to `./bin/polard add-genesis-account` step, add balance for those +## 3. Clone this ~/../bin/polard home directory into some others, let's say `~/.cloned./bin/polard` +## 4. Run `gentx` in each of those folders +## 5. Copy the `gentx-*` folders under `~/.cloned./bin/polard/config/gentx/` folders into the original `~/../bin/polard/config/gentx` + +# Collect genesis tx +polard genesis collect-gentxs --home "$HOMEDIR" + +# Run this to ensure everything worked and that the genesis file is setup correctly +polard genesis validate-genesis --home "$HOMEDIR" + +if [[ $1 == "pending" ]]; then + echo "pending mode is on, please wait for the first block committed." +fi + +# Start the node (remove the --pruning=nothing flag if historical queries are not needed)m +polard start --pruning=nothing "$TRACE" --log_level $LOGLEVEL --api.enabled-unsafe-cors --api.enable --api.swagger --minimum-gas-prices=0.0001abera --home "$HOMEDIR" diff --git a/e2e/hive/clients/polard/version.txt b/e2e/hive/clients/polard/version.txt new file mode 100644 index 000000000..b9bc2fdcb --- /dev/null +++ b/e2e/hive/clients/polard/version.txt @@ -0,0 +1 @@ +latest \ No newline at end of file diff --git a/e2e/hive/simulators/rpc/Dockerfile b/e2e/hive/simulators/rpc/Dockerfile new file mode 100644 index 000000000..d41bdf74e --- /dev/null +++ b/e2e/hive/simulators/rpc/Dockerfile @@ -0,0 +1,44 @@ +# SPDX-License-Identifier: MIT +# +# Copyright (c) 2023 Berachain Foundation +# +# Permission is hereby granted, free of charge, to any person +# obtaining a copy of this software and associated documentation +# files (the "Software"), to deal in the Software without +# restriction, including without limitation the rights to use, +# copy, modify, merge, publish, distribute, sublicense, and/or sell +# copies of the Software, and to permit persons to whom the +# Software is furnished to do so, subject to the following +# conditions: +# +# The above copyright notice and this permission notice shall be +# included in all copies or substantial portions of the Software. +# +# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, +# EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES +# OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND +# NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT +# HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, +# WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING +# FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR +# OTHER DEALINGS IN THE SOFTWARE. + +# This simulation runs JSON-RPC API tests. + +ARG GO_VERSION=1.20.4 + +FROM golang:${GO_VERSION}-alpine as builder +RUN apk add --update gcc musl-dev linux-headers + +# Build the simulator executable. +ADD . /source +WORKDIR /source +RUN go mod tidy +RUN go build . + +# Build the simulator run container. +FROM alpine:latest +ADD . /source +WORKDIR /source +COPY --from=builder /source/rpc . +ENTRYPOINT ["./rpc"] diff --git a/e2e/hive/simulators/rpc/LICENSE b/e2e/hive/simulators/rpc/LICENSE new file mode 100644 index 000000000..e9f8eb4dd --- /dev/null +++ b/e2e/hive/simulators/rpc/LICENSE @@ -0,0 +1,24 @@ +SPDX-License-Identifier: MIT + +Copyright (c) 2023 Berachain Foundation + +Permission is hereby granted, free of charge, to any person +obtaining a copy of this software and associated documentation +files (the "Software"), to deal in the Software without +restriction, including without limitation the rights to use, +copy, modify, merge, publish, distribute, sublicense, and/or sell +copies of the Software, and to permit persons to whom the +Software is furnished to do so, subject to the following +conditions: + +The above copyright notice and this permission notice shall be +included in all copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, +EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES +OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND +NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT +HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, +WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING +FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR +OTHER DEALINGS IN THE SOFTWARE. \ No newline at end of file diff --git a/e2e/hive/simulators/rpc/LICENSE.header b/e2e/hive/simulators/rpc/LICENSE.header new file mode 100644 index 000000000..e9f8eb4dd --- /dev/null +++ b/e2e/hive/simulators/rpc/LICENSE.header @@ -0,0 +1,24 @@ +SPDX-License-Identifier: MIT + +Copyright (c) 2023 Berachain Foundation + +Permission is hereby granted, free of charge, to any person +obtaining a copy of this software and associated documentation +files (the "Software"), to deal in the Software without +restriction, including without limitation the rights to use, +copy, modify, merge, publish, distribute, sublicense, and/or sell +copies of the Software, and to permit persons to whom the +Software is furnished to do so, subject to the following +conditions: + +The above copyright notice and this permission notice shall be +included in all copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, +EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES +OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND +NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT +HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, +WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING +FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR +OTHER DEALINGS IN THE SOFTWARE. \ No newline at end of file diff --git a/e2e/hive/simulators/rpc/go.mod b/e2e/hive/simulators/rpc/go.mod new file mode 100644 index 000000000..3484efb9d --- /dev/null +++ b/e2e/hive/simulators/rpc/go.mod @@ -0,0 +1,51 @@ +module pkg.berachain.dev/polaris/e2e/hive/simulators/rpc + +go 1.20 + +require ( + github.com/ethereum/go-ethereum v1.12.0 + github.com/ethereum/hive v0.0.0-20230526161643-a5c0542ee4ac +) + +require ( + github.com/DataDog/zstd v1.5.5 // indirect + github.com/VictoriaMetrics/fastcache v1.12.1 // indirect + github.com/btcsuite/btcd/btcec/v2 v2.3.2 // indirect + github.com/cockroachdb/pebble v0.0.0-20230524183623-5a0074608315 // indirect + github.com/cockroachdb/redact v1.1.4 // indirect + github.com/deckarep/golang-set/v2 v2.2.0 // indirect + github.com/decred/dcrd/dcrec/secp256k1/v4 v4.2.0 // indirect + github.com/fjl/memsize v0.0.1 // indirect + github.com/gballet/go-libpcsclite v0.0.0-20191108122812-4678299bea08 // indirect + github.com/getsentry/sentry-go v0.21.0 // indirect + github.com/go-ole/go-ole v1.2.6 // indirect + github.com/go-stack/stack v1.8.1 // indirect + github.com/golang-jwt/jwt/v4 v4.5.0 // indirect + github.com/golang/snappy v0.0.5-0.20220116011046-fa5810519dcb // indirect + github.com/gorilla/websocket v1.5.0 // indirect + github.com/hashicorp/go-bexpr v0.1.11 // indirect + github.com/holiman/uint256 v1.2.2 // indirect + github.com/huin/goupnp v1.1.0 // indirect + github.com/klauspost/compress v1.16.5 // indirect + github.com/mattn/go-isatty v0.0.19 // indirect + github.com/mitchellh/mapstructure v1.5.0 // indirect + github.com/onsi/gomega v1.27.6 // indirect + github.com/prometheus/client_golang v1.15.1 // indirect + github.com/prometheus/client_model v0.4.0 // indirect + github.com/prometheus/common v0.44.0 // indirect + github.com/prometheus/procfs v0.10.0 // indirect + github.com/rs/cors v1.8.3 // indirect + github.com/shirou/gopsutil v3.21.11+incompatible // indirect + github.com/stretchr/testify v1.8.3 // indirect + github.com/syndtr/goleveldb v1.0.1-0.20220721030215-126854af5e6d // indirect + github.com/tklauser/go-sysconf v0.3.11 // indirect + github.com/tklauser/numcpus v0.6.0 // indirect + github.com/urfave/cli/v2 v2.25.0 // indirect + github.com/yusufpapurcu/wmi v1.2.2 // indirect + golang.org/x/crypto v0.9.0 // indirect + golang.org/x/exp v0.0.0-20230522175609-2e198f4a06a1 // indirect + golang.org/x/sync v0.2.0 // indirect + golang.org/x/sys v0.8.0 // indirect + golang.org/x/time v0.3.0 // indirect + gopkg.in/natefinch/npipe.v2 v2.0.0-20160621034901-c1b8fa8bdcce // indirect +) diff --git a/e2e/hive/simulators/rpc/go.sum b/e2e/hive/simulators/rpc/go.sum new file mode 100644 index 000000000..52d31941e --- /dev/null +++ b/e2e/hive/simulators/rpc/go.sum @@ -0,0 +1,241 @@ +github.com/DataDog/zstd v1.5.5 h1:oWf5W7GtOLgp6bciQYDmhHHjdhYkALu6S/5Ni9ZgSvQ= +github.com/DataDog/zstd v1.5.5/go.mod h1:g4AWEaM3yOg3HYfnJ3YIawPnVdXJh9QME85blwSAmyw= +github.com/VictoriaMetrics/fastcache v1.12.1 h1:i0mICQuojGDL3KblA7wUNlY5lOK6a4bwt3uRKnkZU40= +github.com/VictoriaMetrics/fastcache v1.12.1/go.mod h1:tX04vaqcNoQeGLD+ra5pU5sWkuxnzWhEzLwhP9w653o= +github.com/allegro/bigcache v1.2.1-0.20190218064605-e24eb225f156/go.mod h1:Cb/ax3seSYIx7SuZdm2G2xzfwmv3TPSk2ucNfQESPXM= +github.com/beorn7/perks v1.0.1 h1:VlbKKnNfV8bJzeqoa4cOKqO6bYr3WgKZxO8Z16+hsOM= +github.com/btcsuite/btcd/btcec/v2 v2.3.2 h1:5n0X6hX0Zk+6omWcihdYvdAlGf2DfasC0GMf7DClJ3U= +github.com/btcsuite/btcd/btcec/v2 v2.3.2/go.mod h1:zYzJ8etWJQIv1Ogk7OzpWjowwOdXY1W/17j2MW85J04= +github.com/btcsuite/btcd/chaincfg/chainhash v1.0.1 h1:q0rUy8C/TYNBQS1+CGKw68tLOFYSNEs0TFnxxnS9+4U= +github.com/cespare/xxhash/v2 v2.2.0 h1:DC2CZ1Ep5Y4k3ZQ899DldepgrayRUGE6BBZ/cd9Cj44= +github.com/cespare/xxhash/v2 v2.2.0/go.mod h1:VGX0DQ3Q6kWi7AoAeZDth3/j3BFtOZR5XLFGgcrjCOs= +github.com/chzyer/logex v1.1.10/go.mod h1:+Ywpsq7O8HXn0nuIou7OrIPyXbp3wmkHB+jjWRnGsAI= +github.com/chzyer/readline v0.0.0-20180603132655-2972be24d48e/go.mod h1:nSuG5e5PlCu98SY8svDHJxuZscDgtXS6KTTbou5AhLI= +github.com/chzyer/test v0.0.0-20180213035817-a1ea475d72b1/go.mod h1:Q3SI9o4m/ZMnBNeIyt5eFwwo7qiLfzFZmjNmxjkiQlU= +github.com/cockroachdb/errors v1.9.1 h1:yFVvsI0VxmRShfawbt/laCIDy/mtTqqnvoNgiy5bEV8= +github.com/cockroachdb/logtags v0.0.0-20230118201751-21c54148d20b h1:r6VH0faHjZeQy818SGhaone5OnYfxFR/+AzdY3sf5aE= +github.com/cockroachdb/pebble v0.0.0-20230524183623-5a0074608315 h1:a4Z0QlUCDyFY09HBd2VtojSPz3f0MUwiwKtpjGOZf/A= +github.com/cockroachdb/pebble v0.0.0-20230524183623-5a0074608315/go.mod h1:TkdVsGYRqtULUppt2RbC+YaKtTHnHoWa2apfFrSKABw= +github.com/cockroachdb/redact v1.1.4 h1:Y0XrVI2FAyofNyGveodTN//qdpPtFKcKTeCBsK3AHAQ= +github.com/cockroachdb/redact v1.1.4/go.mod h1:BVNblN9mBWFyMyqK1k3AAiSxhvhfK2oOZZ2lK+dpvRg= +github.com/cpuguy83/go-md2man/v2 v2.0.2 h1:p1EgwI/C7NhT0JmVkwCD2ZBK8j4aeHQX2pMHHBfMQ6w= +github.com/davecgh/go-spew v1.1.0/go.mod h1:J7Y8YcW2NihsgmVo/mv3lAwl/skON4iLHjSsI+c5H38= +github.com/davecgh/go-spew v1.1.1 h1:vj9j/u1bqnvCEfJOwUhtlOARqs3+rkHYY13jYWTU97c= +github.com/davecgh/go-spew v1.1.1/go.mod h1:J7Y8YcW2NihsgmVo/mv3lAwl/skON4iLHjSsI+c5H38= +github.com/deckarep/golang-set/v2 v2.2.0 h1:2pMQd3Soi6qfw7E5MMKaEh5W5ES18bW3AbFFnGl6LgQ= +github.com/deckarep/golang-set/v2 v2.2.0/go.mod h1:VAky9rY/yGXJOLEDv3OMci+7wtDpOF4IN+y82NBOac4= +github.com/decred/dcrd/crypto/blake256 v1.0.1 h1:7PltbUIQB7u/FfZ39+DGa/ShuMyJ5ilcvdfma9wOH6Y= +github.com/decred/dcrd/dcrec/secp256k1/v4 v4.2.0 h1:8UrgZ3GkP4i/CLijOJx79Yu+etlyjdBU4sfcs2WYQMs= +github.com/decred/dcrd/dcrec/secp256k1/v4 v4.2.0/go.mod h1:v57UDF4pDQJcEfFUCRop3lJL149eHGSe9Jvczhzjo/0= +github.com/ethereum/go-ethereum v1.12.0 h1:bdnhLPtqETd4m3mS8BGMNvBTf36bO5bx/hxE2zljOa0= +github.com/ethereum/go-ethereum v1.12.0/go.mod h1:/oo2X/dZLJjf2mJ6YT9wcWxa4nNJDBKDBU6sFIpx1Gs= +github.com/ethereum/hive v0.0.0-20230526161643-a5c0542ee4ac h1:1vUqSdmdLUIji28ijStaDVmZL0LwKzp/KMbZu2erJ/Y= +github.com/ethereum/hive v0.0.0-20230526161643-a5c0542ee4ac/go.mod h1:zKL2DscVzRusnGVpseAvLrXGJ3qrGHuSfOIrv4JfnRk= +github.com/fjl/memsize v0.0.1 h1:+zhkb+dhUgx0/e+M8sF0QqiouvMQUiKR+QYvdxIOKcQ= +github.com/fjl/memsize v0.0.1/go.mod h1:VvhXpOYNQvB+uIk2RvXzuaQtkQJzzIx6lSBe1xv7hi0= +github.com/fsnotify/fsnotify v1.4.7/go.mod h1:jwhsz4b93w/PPRr/qN1Yymfu8t87LnFCMoQvtojpjFo= +github.com/fsnotify/fsnotify v1.4.9/go.mod h1:znqG4EE+3YCdAaPaxE2ZRY/06pZUdp0tY4IgpuI1SZQ= +github.com/fsnotify/fsnotify v1.5.4/go.mod h1:OVB6XrOHzAwXMpEM7uPOzcehqUV2UqJxmVXmkdnm1bU= +github.com/fsnotify/fsnotify v1.6.0 h1:n+5WquG0fcWoWp6xPWfHdbskMCQaFnG6PfBrh1Ky4HY= +github.com/gballet/go-libpcsclite v0.0.0-20191108122812-4678299bea08 h1:f6D9Hr8xV8uYKlyuj8XIruxlh9WjVjdh1gIicAS7ays= +github.com/gballet/go-libpcsclite v0.0.0-20191108122812-4678299bea08/go.mod h1:x7DCsMOv1taUwEWCzT4cmDeAkigA5/QCwUodaVOe8Ww= +github.com/getsentry/sentry-go v0.21.0 h1:c9l5F1nPF30JIppulk4veau90PK6Smu3abgVtVQWon4= +github.com/getsentry/sentry-go v0.21.0/go.mod h1:lc76E2QywIyW8WuBnwl8Lc4bkmQH4+w1gwTf25trprY= +github.com/go-ole/go-ole v1.2.6 h1:/Fpf6oFPoeFik9ty7siob0G6Ke8QvQEuVcuChpwXzpY= +github.com/go-ole/go-ole v1.2.6/go.mod h1:pprOEPIfldk/42T2oK7lQ4v4JSDwmV0As9GaiUsvbm0= +github.com/go-stack/stack v1.8.1 h1:ntEHSVwIt7PNXNpgPmVfMrNhLtgjlmnZha2kOpuRiDw= +github.com/go-stack/stack v1.8.1/go.mod h1:dcoOX6HbPZSZptuspn9bctJ+N/CnF5gGygcUP3XYfe4= +github.com/go-task/slim-sprig v0.0.0-20210107165309-348f09dbbbc0/go.mod h1:fyg7847qk6SyHyPtNmDHnmrv/HOrqktSC+C9fM+CJOE= +github.com/gofrs/flock v0.8.1 h1:+gYjHKf32LDeiEEFhQaotPbLuUXjY5ZqxKgXy7n59aw= +github.com/gogo/protobuf v1.3.2 h1:Ov1cvc58UF3b5XjBnZv7+opcTcQFZebYjWzi34vdm4Q= +github.com/golang-jwt/jwt/v4 v4.5.0 h1:7cYmW1XlMY7h7ii7UhUyChSgS5wUJEnm9uZVTGqOWzg= +github.com/golang-jwt/jwt/v4 v4.5.0/go.mod h1:m21LjoU+eqJr34lmDMbreY2eSTRJ1cv77w39/MY0Ch0= +github.com/golang/protobuf v1.2.0/go.mod h1:6lQm79b+lXiMfvg/cZm0SGofjICqVBUtrP5yJMmIC1U= +github.com/golang/protobuf v1.4.0-rc.1/go.mod h1:ceaxUfeHdC40wWswd/P6IGgMaK3YpKi5j83Wpe3EHw8= +github.com/golang/protobuf v1.4.0-rc.1.0.20200221234624-67d41d38c208/go.mod h1:xKAWHe0F5eneWXFV3EuXVDTCmh+JuBKY0li0aMyXATA= +github.com/golang/protobuf v1.4.0-rc.2/go.mod h1:LlEzMj4AhA7rCAGe4KMBDvJI+AwstrUpVNzEA03Pprs= +github.com/golang/protobuf v1.4.0-rc.4.0.20200313231945-b860323f09d0/go.mod h1:WU3c8KckQ9AFe+yFwt9sWVRKCVIyN9cPHBJSNnbL67w= +github.com/golang/protobuf v1.4.0/go.mod h1:jodUvKwWbYaEsadDk5Fwe5c77LiNKVO9IDvqG2KuDX0= +github.com/golang/protobuf v1.4.2/go.mod h1:oDoupMAO8OvCJWAcko0GGGIgR6R6ocIYbsSw735rRwI= +github.com/golang/protobuf v1.5.0/go.mod h1:FsONVRAS9T7sI+LIUmWTfcYkHO4aIWwzhcaSAoJOfIk= +github.com/golang/protobuf v1.5.2/go.mod h1:XVQd3VNwM+JqD3oG2Ue2ip4fOMUkwXdXDdiuN0vRsmY= +github.com/golang/protobuf v1.5.3 h1:KhyjKVUg7Usr/dYsdSqoFveMYd5ko72D+zANwlG1mmg= +github.com/golang/snappy v0.0.4/go.mod h1:/XxbfmMg8lxefKM7IXC3fBNl/7bRcc72aCRzEWrmP2Q= +github.com/golang/snappy v0.0.5-0.20220116011046-fa5810519dcb h1:PBC98N2aIaM3XXiurYmW7fx4GZkL8feAMVq7nEjURHk= +github.com/golang/snappy v0.0.5-0.20220116011046-fa5810519dcb/go.mod h1:/XxbfmMg8lxefKM7IXC3fBNl/7bRcc72aCRzEWrmP2Q= +github.com/google/go-cmp v0.3.0/go.mod h1:8QqcDgzrUqlUb/G2PQTWiueGozuR1884gddMywk6iLU= +github.com/google/go-cmp v0.3.1/go.mod h1:8QqcDgzrUqlUb/G2PQTWiueGozuR1884gddMywk6iLU= +github.com/google/go-cmp v0.4.0/go.mod h1:v8dTdLbMG2kIc/vJvl+f65V22dbkXbowE6jgT/gNBxE= +github.com/google/go-cmp v0.5.5/go.mod h1:v8dTdLbMG2kIc/vJvl+f65V22dbkXbowE6jgT/gNBxE= +github.com/google/go-cmp v0.5.9 h1:O2Tfq5qg4qc4AmwVlvv0oLiVAGB7enBSJ2x2DqQFi38= +github.com/google/pprof v0.0.0-20210407192527-94a9f03dee38/go.mod h1:kpwsk12EmLew5upagYY7GY0pfYCcupk39gWOCRROcvE= +github.com/google/uuid v1.3.0 h1:t6JiXgmwXMjEs8VusXIJk2BXHsn+wx8BZdTaoZ5fu7I= +github.com/gorilla/mux v1.8.0 h1:i40aqfkR1h2SlN9hojwV5ZA91wcXFOvkdNIeFDP5koI= +github.com/gorilla/websocket v1.5.0 h1:PPwGk2jz7EePpoHN/+ClbZu8SPxiqlu12wZP/3sWmnc= +github.com/gorilla/websocket v1.5.0/go.mod h1:YR8l580nyteQvAITg2hZ9XVh4b55+EU/adAjf1fMHhE= +github.com/hashicorp/go-bexpr v0.1.11 h1:6DqdA/KBjurGby9yTY0bmkathya0lfwF2SeuubCI7dY= +github.com/hashicorp/go-bexpr v0.1.11/go.mod h1:f03lAo0duBlDIUMGCuad8oLcgejw4m7U+N8T+6Kz1AE= +github.com/holiman/bloomfilter/v2 v2.0.3 h1:73e0e/V0tCydx14a0SCYS/EWCxgwLZ18CZcZKVu0fao= +github.com/holiman/uint256 v1.2.2 h1:TXKcSGc2WaxPD2+bmzAsVthL4+pEN0YwXcL5qED83vk= +github.com/holiman/uint256 v1.2.2/go.mod h1:SC8Ryt4n+UBbPbIBKaG9zbbDlp4jOru9xFZmPzLUTxw= +github.com/hpcloud/tail v1.0.0/go.mod h1:ab1qPbhIpdTxEkNHXyeSf5vhxWSCs/tWer42PpOxQnU= +github.com/huin/goupnp v1.1.0 h1:gEe0Dp/lZmPZiDFzJJaOfUpOvv2MKUkoBX8lDrn9vKU= +github.com/huin/goupnp v1.1.0/go.mod h1:gnGPsThkYa7bFi/KWmEysQRf48l2dvR5bxr2OFckNX8= +github.com/ianlancetaylor/demangle v0.0.0-20200824232613-28f6c0f3b639/go.mod h1:aSSvb/t6k1mPoxDqO4vJh6VOCGPwU4O0C2/Eqndh1Sc= +github.com/jackpal/go-nat-pmp v1.0.2 h1:KzKSgb7qkJvOUTqYl9/Hg/me3pWgBmERKrTGD7BdWus= +github.com/klauspost/compress v1.16.5 h1:IFV2oUNUzZaz+XyusxpLzpzS8Pt5rh0Z16For/djlyI= +github.com/klauspost/compress v1.16.5/go.mod h1:ntbaceVETuRiXiv4DpjP66DpAtAGkEQskQzEyD//IeE= +github.com/kr/pretty v0.3.1 h1:flRD4NNwYAUpkphVc1HcthR4KEIFJ65n8Mw5qdRn3LE= +github.com/kr/text v0.2.0 h1:5Nx0Ya0ZqY2ygV366QzturHI13Jq95ApcVaJBhpS+AY= +github.com/kylelemons/godebug v1.1.0 h1:RPNrshWIDI6G2gRW9EHilWtl7Z6Sb1BR0xunSBf0SNc= +github.com/mattn/go-colorable v0.1.13 h1:fFA4WZxdEF4tXPZVKMLwD8oUnCTTo08duU7wxecdEvA= +github.com/mattn/go-isatty v0.0.19 h1:JITubQf0MOLdlGRuRq+jtsDlekdYPia9ZFsB8h/APPA= +github.com/mattn/go-isatty v0.0.19/go.mod h1:W+V8PltTTMOvKvAeJH7IuucS94S2C6jfK/D7dTCTo3Y= +github.com/mattn/go-runewidth v0.0.14 h1:+xnbZSEeDbOIg5/mE6JF0w6n9duR1l3/WmbinWVwUuU= +github.com/matttproud/golang_protobuf_extensions v1.0.4 h1:mmDVorXM7PCGKw94cs5zkfA9PSy5pEvNWRP0ET0TIVo= +github.com/mitchellh/mapstructure v1.4.1/go.mod h1:bFUtVrKA4DC2yAKiSyO/QUcy7e+RRV2QTWOzhPopBRo= +github.com/mitchellh/mapstructure v1.5.0 h1:jeMsZIYE/09sWLaz43PL7Gy6RuMjD2eJVyuac5Z2hdY= +github.com/mitchellh/mapstructure v1.5.0/go.mod h1:bFUtVrKA4DC2yAKiSyO/QUcy7e+RRV2QTWOzhPopBRo= +github.com/mitchellh/pointerstructure v1.2.1 h1:ZhBBeX8tSlRpu/FFhXH4RC4OJzFlqsQhoHZAz4x7TIw= +github.com/mitchellh/pointerstructure v1.2.1/go.mod h1:BRAsLI5zgXmw97Lf6s25bs8ohIXc3tViBH44KcwB2g4= +github.com/nxadm/tail v1.4.4/go.mod h1:kenIhsEOeOJmVchQTgglprH7qJGnHDVpk1VPCcaMI8A= +github.com/nxadm/tail v1.4.8 h1:nPr65rt6Y5JFSKQO7qToXr7pePgD6Gwiw05lkbyAQTE= +github.com/nxadm/tail v1.4.8/go.mod h1:+ncqLTQzXmGhMZNUePPaPqPvBxHAIsmXswZKocGu+AU= +github.com/olekukonko/tablewriter v0.0.5 h1:P2Ga83D34wi1o9J6Wh1mRuqd4mF/x/lgBS7N7AbDhec= +github.com/onsi/ginkgo v1.6.0/go.mod h1:lLunBs/Ym6LB5Z9jYTR76FiuTmxDTDusOGeTQH+WWjE= +github.com/onsi/ginkgo v1.12.1/go.mod h1:zj2OWP4+oCPe1qIXoGWkgMRwljMUYCdkwsT2108oapk= +github.com/onsi/ginkgo v1.16.4/go.mod h1:dX+/inL/fNMqNlz0e9LfyB9TswhZpCVdJM/Z6Vvnwo0= +github.com/onsi/ginkgo v1.16.5 h1:8xi0RTUf59SOSfEtZMvwTvXYMzG4gV23XVHOZiXNtnE= +github.com/onsi/ginkgo v1.16.5/go.mod h1:+E8gABHa3K6zRBolWtd+ROzc/U5bkGt0FwiG042wbpU= +github.com/onsi/ginkgo/v2 v2.1.3/go.mod h1:vw5CSIxN1JObi/U8gcbwft7ZxR2dgaR70JSE3/PpL4c= +github.com/onsi/gomega v1.7.1/go.mod h1:XdKZgCCFLUoM/7CFJVPcG8C1xQ1AJ0vpAezJrB7JYyY= +github.com/onsi/gomega v1.10.1/go.mod h1:iN09h71vgCQne3DLsj+A5owkum+a2tYe+TOCB1ybHNo= +github.com/onsi/gomega v1.17.0/go.mod h1:HnhC7FXeEQY45zxNK3PPoIUhzk/80Xly9PcubAlGdZY= +github.com/onsi/gomega v1.19.0/go.mod h1:LY+I3pBVzYsTBU1AnDwOSxaYi9WoWiqgwooUqq9yPro= +github.com/onsi/gomega v1.27.6 h1:ENqfyGeS5AX/rlXDd/ETokDz93u0YufY1Pgxuy/PvWE= +github.com/onsi/gomega v1.27.6/go.mod h1:PIQNjfQwkP3aQAH7lf7j87O/5FiNr+ZR8+ipb+qQlhg= +github.com/pkg/errors v0.9.1 h1:FEBLx1zS214owpjy7qsBeixbURkuhQAwrK5UwLGTwt4= +github.com/pmezard/go-difflib v1.0.0 h1:4DBwDE0NGyQoBHbLQYPwSUPoCMWR5BEzIk/f1lZbAQM= +github.com/pmezard/go-difflib v1.0.0/go.mod h1:iKH77koFhYxTK1pcRnkKkqfTogsbg7gZNVY4sRDYZ/4= +github.com/prometheus/client_golang v1.15.1 h1:8tXpTmJbyH5lydzFPoxSIJ0J46jdh3tylbvM1xCv0LI= +github.com/prometheus/client_golang v1.15.1/go.mod h1:e9yaBhRPU2pPNsZwE+JdQl0KEt1N9XgF6zxWmaC0xOk= +github.com/prometheus/client_model v0.4.0 h1:5lQXD3cAg1OXBf4Wq03gTrXHeaV0TQvGfUooCfx1yqY= +github.com/prometheus/client_model v0.4.0/go.mod h1:oMQmHW1/JoDwqLtg57MGgP/Fb1CJEYF2imWWhWtMkYU= +github.com/prometheus/common v0.44.0 h1:+5BrQJwiBB9xsMygAB3TNvpQKOwlkc25LbISbrdOOfY= +github.com/prometheus/common v0.44.0/go.mod h1:ofAIvZbQ1e/nugmZGz4/qCb9Ap1VoSTIO7x0VV9VvuY= +github.com/prometheus/procfs v0.10.0 h1:UkG7GPYkO4UZyLnyXjaWYcgOSONqwdBqFUT95ugmt6I= +github.com/prometheus/procfs v0.10.0/go.mod h1:nwNm2aOCAYw8uTR/9bWRREkZFxAUcWzPHWJq+XBB/FM= +github.com/rivo/uniseg v0.4.3 h1:utMvzDsuh3suAEnhH0RdHmoPbU648o6CvXxTx4SBMOw= +github.com/rogpeppe/go-internal v1.10.0 h1:TMyTOH3F/DB16zRVcYyreMH6GnZZrwQVAoYjRBZyWFQ= +github.com/rs/cors v1.8.3 h1:O+qNyWn7Z+F9M0ILBHgMVPuB1xTOucVd5gtaYyXBpRo= +github.com/rs/cors v1.8.3/go.mod h1:XyqrcTp5zjWr1wsJ8PIRZssZ8b/WMcMf71DJnit4EMU= +github.com/russross/blackfriday/v2 v2.1.0 h1:JIOH55/0cWyOuilr9/qlrm0BSXldqnqwMsf35Ld67mk= +github.com/shirou/gopsutil v3.21.11+incompatible h1:+1+c1VGhc88SSonWP6foOcLhvnKlUeu/erjjvaPEYiI= +github.com/shirou/gopsutil v3.21.11+incompatible/go.mod h1:5b4v6he4MtMOwMlS0TUMTu2PcXUg8+E1lC7eC3UO/RA= +github.com/status-im/keycard-go v0.2.0 h1:QDLFswOQu1r5jsycloeQh3bVU8n/NatHHaZobtDnDzA= +github.com/stretchr/objx v0.1.0/go.mod h1:HFkY916IF+rwdDfMAkV7OtwuqBVzrE8GR6GFx+wExME= +github.com/stretchr/testify v1.3.0/go.mod h1:M5WIy9Dh21IEIfnGCwXGc5bZfKNJtfHm1UVUgZn+9EI= +github.com/stretchr/testify v1.5.1/go.mod h1:5W2xD1RspED5o8YsWQXVCued0rvSQ+mT+I5cxcmMvtA= +github.com/stretchr/testify v1.7.0/go.mod h1:6Fq8oRcR53rry900zMqJjRRixrwX3KX962/h/Wwjteg= +github.com/stretchr/testify v1.7.2/go.mod h1:R6va5+xMeoiuVRoj+gSkQ7d3FALtqAAGI1FQKckRals= +github.com/stretchr/testify v1.8.3 h1:RP3t2pwF7cMEbC1dqtB6poj3niw/9gnV4Cjg5oW5gtY= +github.com/stretchr/testify v1.8.3/go.mod h1:sz/lmYIOXD/1dqDmKjjqLyZ2RngseejIcXlSw2iwfAo= +github.com/syndtr/goleveldb v1.0.1-0.20220721030215-126854af5e6d h1:vfofYNRScrDdvS342BElfbETmL1Aiz3i2t0zfRj16Hs= +github.com/syndtr/goleveldb v1.0.1-0.20220721030215-126854af5e6d/go.mod h1:RRCYJbIwD5jmqPI9XoAFR0OcDxqUctll6zUj/+B4S48= +github.com/tklauser/go-sysconf v0.3.11 h1:89WgdJhk5SNwJfu+GKyYveZ4IaJ7xAkecBo+KdJV0CM= +github.com/tklauser/go-sysconf v0.3.11/go.mod h1:GqXfhXY3kiPa0nAXPDIQIWzJbMCB7AmcWpGR8lSZfqI= +github.com/tklauser/numcpus v0.6.0 h1:kebhY2Qt+3U6RNK7UqpYNA+tJ23IBEGKkB7JQBfDYms= +github.com/tklauser/numcpus v0.6.0/go.mod h1:FEZLMke0lhOUG6w2JadTzp0a+Nl8PF/GFkQ5UVIcaL4= +github.com/tyler-smith/go-bip39 v1.1.0 h1:5eUemwrMargf3BSLRRCalXT93Ns6pQJIjYQN2nyfOP8= +github.com/urfave/cli/v2 v2.25.0 h1:ykdZKuQey2zq0yin/l7JOm9Mh+pg72ngYMeB0ABn6q8= +github.com/urfave/cli/v2 v2.25.0/go.mod h1:GHupkWPMM0M/sj1a2b4wUrWBPzazNrIjouW6fmdJLxc= +github.com/xrash/smetrics v0.0.0-20201216005158-039620a65673 h1:bAn7/zixMGCfxrRTfdpNzjtPYqr8smhKouy9mxVdGPU= +github.com/yuin/goldmark v1.2.1/go.mod h1:3hX8gzYuyVAZsxl0MRgGTJEmQBFcNTphYh9decYSb74= +github.com/yusufpapurcu/wmi v1.2.2 h1:KBNDSne4vP5mbSWnJbO+51IMOXJB67QiYCSBrubbPRg= +github.com/yusufpapurcu/wmi v1.2.2/go.mod h1:SBZ9tNy3G9/m5Oi98Zks0QjeHVDvuK0qfxQmPyzfmi0= +golang.org/x/crypto v0.0.0-20190308221718-c2843e01d9a2/go.mod h1:djNgcEr1/C05ACkg1iLfiJU5Ep61QUkGW8qpdssI0+w= +golang.org/x/crypto v0.0.0-20191011191535-87dc89f01550/go.mod h1:yigFU9vqHzYiE8UmvKecakEJjdnWj3jj499lnFckfCI= +golang.org/x/crypto v0.0.0-20200622213623-75b288015ac9/go.mod h1:LzIPMQfyMNhhGPhUkYOs5KpL4U8rLKemX1yGLhDgUto= +golang.org/x/crypto v0.9.0 h1:LF6fAI+IutBocDJ2OT0Q1g8plpYljMZ4+lty+dsqw3g= +golang.org/x/crypto v0.9.0/go.mod h1:yrmDGqONDYtNj3tH8X9dzUun2m2lzPa9ngI6/RUPGR0= +golang.org/x/exp v0.0.0-20230522175609-2e198f4a06a1 h1:k/i9J1pBpvlfR+9QsetwPyERsqu1GIbi967PQMq3Ivc= +golang.org/x/exp v0.0.0-20230522175609-2e198f4a06a1/go.mod h1:V1LtkGg67GoY2N1AnLN78QLrzxkLyJw7RJb1gzOOz9w= +golang.org/x/mod v0.3.0/go.mod h1:s0Qsj1ACt9ePp/hMypM3fl4fZqREWJwdYDEqhRiZZUA= +golang.org/x/net v0.0.0-20180906233101-161cd47e91fd/go.mod h1:mL1N/T3taQHkDXs73rZJwtUhF3w3ftmwwsq0BUmARs4= +golang.org/x/net v0.0.0-20190404232315-eb5bcb51f2a3/go.mod h1:t9HGtf8HONx5eT2rtn7q6eTqICYqUVnKs3thJo3Qplg= +golang.org/x/net v0.0.0-20190620200207-3b0461eec859/go.mod h1:z5CRVTTTmAJ677TzLLGU+0bjPO0LkuOLi4/5GtJWs/s= +golang.org/x/net v0.0.0-20200520004742-59133d7f0dd7/go.mod h1:qpuaurCH72eLCgpAm/N6yyVIVM9cpaDIP3A8BGJEC5A= +golang.org/x/net v0.0.0-20201021035429-f5854403a974/go.mod h1:sp8m0HH+o8qH0wwXwYZr8TS3Oi6o0r6Gce1SSxlDquU= +golang.org/x/net v0.0.0-20210428140749-89ef3d95e781/go.mod h1:OJAsFXCWl8Ukc7SiCT/9KSuxbyM7479/AVlXFRxuMCk= +golang.org/x/net v0.0.0-20220225172249-27dd8689420f/go.mod h1:CfG3xpIq0wQ8r1q4Su4UZFWDARRcnwPjda9FqA0JpMk= +golang.org/x/net v0.0.0-20220607020251-c690dde0001d/go.mod h1:XRhObCWvk6IyKnWLug+ECip1KBveYUHfp+8e9klMJ9c= +golang.org/x/net v0.10.0 h1:X2//UzNDwYmtCLn7To6G58Wr6f5ahEAQgKNzv9Y951M= +golang.org/x/sync v0.0.0-20180314180146-1d60e4601c6f/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= +golang.org/x/sync v0.0.0-20190423024810-112230192c58/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= +golang.org/x/sync v0.0.0-20201020160332-67f06af15bc9/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= +golang.org/x/sync v0.0.0-20210220032951-036812b2e83c/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= +golang.org/x/sync v0.2.0 h1:PUR+T4wwASmuSTYdKjYHI5TD22Wy5ogLU5qZCOLxBrI= +golang.org/x/sync v0.2.0/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= +golang.org/x/sys v0.0.0-20180909124046-d0be0721c37e/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY= +golang.org/x/sys v0.0.0-20190215142949-d0b11bdaac8a/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY= +golang.org/x/sys v0.0.0-20190412213103-97732733099d/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= +golang.org/x/sys v0.0.0-20190904154756-749cb33beabd/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= +golang.org/x/sys v0.0.0-20190916202348-b4ddaad3f8a3/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= +golang.org/x/sys v0.0.0-20191005200804-aed5e4c7ecf9/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= +golang.org/x/sys v0.0.0-20191120155948-bd437916bb0e/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= +golang.org/x/sys v0.0.0-20191204072324-ce4227a45e2e/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= +golang.org/x/sys v0.0.0-20200323222414-85ca7c5b95cd/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= +golang.org/x/sys v0.0.0-20200930185726-fdedc70b468f/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= +golang.org/x/sys v0.0.0-20201119102817-f84b799fce68/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= +golang.org/x/sys v0.0.0-20210112080510-489259a85091/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= +golang.org/x/sys v0.0.0-20210423082822-04245dca01da/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= +golang.org/x/sys v0.0.0-20210615035016-665e8c7367d1/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= +golang.org/x/sys v0.0.0-20211216021012-1d35b9e2eb4e/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= +golang.org/x/sys v0.0.0-20220412211240-33da011f77ad/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= +golang.org/x/sys v0.0.0-20220520151302-bc2c85ada10a/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= +golang.org/x/sys v0.2.0/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= +golang.org/x/sys v0.5.0/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= +golang.org/x/sys v0.6.0/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= +golang.org/x/sys v0.8.0 h1:EBmGv8NaZBZTWvrbjNoL6HVt+IVy3QDQpJs7VRIw3tU= +golang.org/x/sys v0.8.0/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= +golang.org/x/term v0.0.0-20201126162022-7de9c90e9dd1/go.mod h1:bj7SfCRtBDWHUb9snDiAeCFNEtKQo2Wmx5Cou7ajbmo= +golang.org/x/term v0.0.0-20210927222741-03fcf44c2211/go.mod h1:jbD1KX2456YbFQfuXm/mYQcufACuNUgVhRMnK/tPxf8= +golang.org/x/text v0.3.0/go.mod h1:NqM8EUOU14njkJ3fqMW+pc6Ldnwhi/IjpwHt7yyuwOQ= +golang.org/x/text v0.3.3/go.mod h1:5Zoc/QRtKVWzQhOtBMvqHzDpF6irO9z98xDceosuGiQ= +golang.org/x/text v0.3.6/go.mod h1:5Zoc/QRtKVWzQhOtBMvqHzDpF6irO9z98xDceosuGiQ= +golang.org/x/text v0.3.7/go.mod h1:u+2+/6zg+i71rQMx5EYifcz6MCKuco9NR6JIITiCfzQ= +golang.org/x/text v0.9.0 h1:2sjJmO8cDvYveuX97RDLsxlyUxLl+GHoLxBiRdHllBE= +golang.org/x/time v0.3.0 h1:rg5rLMjNzMS1RkNLzCG38eapWhnYLFYXDXj2gOlr8j4= +golang.org/x/time v0.3.0/go.mod h1:tRJNPiyCQ0inRvYxbN9jk5I+vvW/OXSQhTDSoE431IQ= +golang.org/x/tools v0.0.0-20180917221912-90fa682c2a6e/go.mod h1:n7NCudcB/nEzxVGmLbDWY5pfWTLqBcC2KZ6jyYvM4mQ= +golang.org/x/tools v0.0.0-20191119224855-298f0cb1881e/go.mod h1:b+2E5dAYhXwXZwtnZ6UAqBI28+e2cm9otk0dWdXHAEo= +golang.org/x/tools v0.0.0-20201224043029-2b0845dc783e/go.mod h1:emZCQorbCU4vsT4fOWvOPXz4eW1wZW4PmDk9uLelYpA= +golang.org/x/xerrors v0.0.0-20190717185122-a985d3407aa7/go.mod h1:I/5z698sn9Ka8TeJc9MKroUUfqBBauWjQqLJ2OPfmY0= +golang.org/x/xerrors v0.0.0-20191011141410-1b5146add898/go.mod h1:I/5z698sn9Ka8TeJc9MKroUUfqBBauWjQqLJ2OPfmY0= +golang.org/x/xerrors v0.0.0-20191204190536-9bdfabe68543/go.mod h1:I/5z698sn9Ka8TeJc9MKroUUfqBBauWjQqLJ2OPfmY0= +golang.org/x/xerrors v0.0.0-20200804184101-5ec99f83aff1/go.mod h1:I/5z698sn9Ka8TeJc9MKroUUfqBBauWjQqLJ2OPfmY0= +golang.org/x/xerrors v0.0.0-20220517211312-f3a8303e98df/go.mod h1:K8+ghG5WaK9qNqU5K3HdILfMLy1f3aNYFI/wnl100a8= +google.golang.org/protobuf v0.0.0-20200109180630-ec00e32a8dfd/go.mod h1:DFci5gLYBciE7Vtevhsrf46CRTquxDuWsQurQQe4oz8= +google.golang.org/protobuf v0.0.0-20200221191635-4d8936d0db64/go.mod h1:kwYJMbMJ01Woi6D6+Kah6886xMZcty6N08ah7+eCXa0= +google.golang.org/protobuf v0.0.0-20200228230310-ab0ca4ff8a60/go.mod h1:cfTl7dwQJ+fmap5saPgwCLgHXTUD7jkjRqWcaiX5VyM= +google.golang.org/protobuf v1.20.1-0.20200309200217-e05f789c0967/go.mod h1:A+miEFZTKqfCUM6K7xSMQL9OKL/b6hQv+e19PK+JZNE= +google.golang.org/protobuf v1.21.0/go.mod h1:47Nbq4nVaFHyn7ilMalzfO3qCViNmqZ2kzikPIcrTAo= +google.golang.org/protobuf v1.23.0/go.mod h1:EGpADcykh3NcUnDUJcl1+ZksZNG86OlYog2l/sGQquU= +google.golang.org/protobuf v1.26.0-rc.1/go.mod h1:jlhhOSvTdKEhbULTjvd4ARK9grFBp09yW+WbY/TyQbw= +google.golang.org/protobuf v1.26.0/go.mod h1:9q0QmTI4eRPtz6boOQmLYwt+qCgq0jsYwAQnmE0givc= +google.golang.org/protobuf v1.30.0 h1:kPPoIgf3TsEvrm0PFe15JQ+570QVxYzEvvHqChK+cng= +gopkg.in/check.v1 v0.0.0-20161208181325-20d25e280405/go.mod h1:Co6ibVJAznAaIkqp8huTwlJQCZ016jof/cbN4VW5Yz0= +gopkg.in/fsnotify.v1 v1.4.7/go.mod h1:Tz8NjZHkW78fSQdbUxIjBTcgA1z1m8ZHf0WmKUhAMys= +gopkg.in/inconshreveable/log15.v2 v2.0.0-20200109203555-b30bc20e4fd1 h1:iiHuQZCNgYPmFQxd3BBN/Nc5+dAwzZuq5y40s20oQw0= +gopkg.in/natefinch/lumberjack.v2 v2.0.0 h1:1Lc07Kr7qY4U2YPouBjpCLxpiyxIVoxqXgkXLknAOE8= +gopkg.in/natefinch/npipe.v2 v2.0.0-20160621034901-c1b8fa8bdcce h1:+JknDZhAj8YMt7GC73Ei8pv4MzjDUNPHgQWJdtMAaDU= +gopkg.in/natefinch/npipe.v2 v2.0.0-20160621034901-c1b8fa8bdcce/go.mod h1:5AcXVHNjg+BDxry382+8OKon8SEWiKktQR07RKPsv1c= +gopkg.in/tomb.v1 v1.0.0-20141024135613-dd632973f1e7 h1:uRGJdciOHaEIrze2W8Q3AKkepLTh2hOroT7a+7czfdQ= +gopkg.in/tomb.v1 v1.0.0-20141024135613-dd632973f1e7/go.mod h1:dt/ZhP58zS4L8KSrWDmTeBkI65Dw0HsyUHuEVlX15mw= +gopkg.in/yaml.v2 v2.2.2/go.mod h1:hI93XBmqTisBFMUTm0b8Fm+jr3Dg1NNxqwp+5A1VGuI= +gopkg.in/yaml.v2 v2.2.4/go.mod h1:hI93XBmqTisBFMUTm0b8Fm+jr3Dg1NNxqwp+5A1VGuI= +gopkg.in/yaml.v2 v2.3.0/go.mod h1:hI93XBmqTisBFMUTm0b8Fm+jr3Dg1NNxqwp+5A1VGuI= +gopkg.in/yaml.v2 v2.4.0/go.mod h1:RDklbk79AGWmwhnvt/jBztapEOGDOx6ZbXqjP6csGnQ= +gopkg.in/yaml.v3 v3.0.0-20200313102051-9f266ea9e77c/go.mod h1:K4uyk7z7BCEPqu6E+C64Yfv1cQ7kz7rIZviUmN+EgEM= +gopkg.in/yaml.v3 v3.0.1 h1:fxVm/GzAzEWqLHuvctI91KS9hhNmmWOoWu0XTYJS7CA= +gopkg.in/yaml.v3 v3.0.1/go.mod h1:K4uyk7z7BCEPqu6E+C64Yfv1cQ7kz7rIZviUmN+EgEM= diff --git a/e2e/hive/simulators/rpc/helper.go b/e2e/hive/simulators/rpc/helper.go new file mode 100644 index 000000000..80991525d --- /dev/null +++ b/e2e/hive/simulators/rpc/helper.go @@ -0,0 +1,277 @@ +// SPDX-License-Identifier: MIT +// +// # Copyright (c) 2023 Berachain Foundation +// +// Permission is hereby granted, free of charge, to any person +// obtaining a copy of this software and associated documentation +// files (the "Software"), to deal in the Software without +// restriction, including without limitation the rights to use, +// copy, modify, merge, publish, distribute, sublicense, and/or sell +// copies of the Software, and to permit persons to whom the +// Software is furnished to do so, subject to the following +// conditions: +// +// The above copyright notice and this permission notice shall be +// included in all copies or substantial portions of the Software. +// +// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, +// EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES +// OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND +// NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT +// HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, +// WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING +// FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR +// OTHER DEALINGS IN THE SOFTWARE. + +package main + +import ( + "bytes" + "context" + "fmt" + "io" + "net/http" + "time" + + "github.com/ethereum/hive/hivesim" + + "github.com/ethereum/go-ethereum/ethclient" + "github.com/ethereum/go-ethereum/rpc" +) + +// default timeout for RPC calls. +var rpcTimeout = 10 * time.Second + +// TestClient is the environment of a single test. +type TestEnv struct { + *hivesim.T + RPC *rpc.Client + Eth *ethclient.Client + Vault *vault + + // This holds most recent context created by the Ctx method. + // Every time Ctx is called, it creates a new context with the default + // timeout and cancels the previous one. + lastCtx context.Context + lastCancel context.CancelFunc +} + +const ( + timeout = 5 + delay = 100 +) + +// runHTTP runs the given test function using the HTTP RPC client. +func runHTTP(t *hivesim.T, c *hivesim.Client, v *vault, fn func(*TestEnv)) { + // This sets up debug logging of the requests and responses. + client := &http.Client{ + Transport: &loggingRoundTrip{ + t: t, + inner: http.DefaultTransport, + }, + } + + //nolint: staticcheck // rpc.DialOptions requires ctx + rpcClient, _ := rpc.DialHTTPWithClient(fmt.Sprintf("http://%v:8545/", c.IP), client) + defer rpcClient.Close() + env := &TestEnv{ + T: t, + RPC: rpcClient, + Eth: ethclient.NewClient(rpcClient), + Vault: v, + } + fn(env) + if env.lastCtx != nil { + env.lastCancel() + } +} + +// runWS runs the given test function using the WebSocket RPC client. +func runWS(t *hivesim.T, c *hivesim.Client, v *vault, fn func(*TestEnv)) { + ctx, done := context.WithTimeout(context.Background(), timeout*time.Second) + rpcClient, err := rpc.DialWebsocket(ctx, fmt.Sprintf("ws://%v:8546/", c.IP), "") + done() + if err != nil { + t.Fatal("WebSocket connection failed:", err) + } + defer rpcClient.Close() + + env := &TestEnv{ + T: t, + RPC: rpcClient, + Eth: ethclient.NewClient(rpcClient), + Vault: v, + } + fn(env) + if env.lastCtx != nil { + env.lastCancel() + } +} + +// CallContext is a helper method that forwards a raw RPC request to +// the underlying RPC client. This can be used to call RPC methods +// that are not supported by the ethclient.Client. +func (t *TestEnv) CallContext(ctx context.Context, result interface{}, method string, args ...interface{}) error { + return t.RPC.CallContext(ctx, result, method, args...) +} + +// Ctx returns a context with the default timeout. +// For subsequent calls to Ctx, it also cancels the previous context. +func (t *TestEnv) Ctx() context.Context { + if t.lastCtx != nil { + t.lastCancel() + } + t.lastCtx, t.lastCancel = context.WithTimeout(context.Background(), rpcTimeout) + return t.lastCtx +} + +// func waitSynced(c *rpc.Client) error { +// var ( +// err error +// timeout = 20 * time.Second +// end = time.Now().Add(timeout) +// ctx, cancel = context.WithDeadline(context.Background(), end) +// ) +// defer func() { +// cancel() +// if errors.Is(err, context.DeadlineExceeded) { +// err = fmt.Errorf("didn't sync within timeout of %v", timeout) +// } +// }() + +// ec := ethclient.NewClient(c) +// for { +// var progress *ethereum.SyncProgress +// progress, err = ec.SyncProgress(ctx) +// if err != nil { +// return err +// } +// var head uint64 +// head, err = ec.BlockNumber(ctx) +// if err != nil { +// return err +// } +// if progress == nil && head > 0 { +// return nil // success! +// } +// time.Sleep(delay * time.Millisecond) +// } +// } + +// // Naive generic function that works in all situations. +// // A better solution is to use logs to wait for confirmations. +// //nolint: gocognit // function is long since it has a lot of checks +// func waitForTxConfirmations(t *TestEnv, txHash common.Hash, n uint64) (*types.Receipt, error) { +// var ( +// receipt *types.Receipt +// startBlock *types.Block +// err error +// ) + +// for i := 0; i < 90; i++ { +// receipt, err = t.Eth.TransactionReceipt(t.Ctx(), txHash) +// if err != nil && !errors.Is(err, ethereum.NotFound) { +// return nil, err +// } +// if receipt != nil { +// break +// } +// time.Sleep(time.Second) +// } +// if receipt == nil { +// return nil, ethereum.NotFound +// } + +// if startBlock, err = t.Eth.BlockByNumber(t.Ctx(), nil); err != nil { +// return nil, err +// } + +// for i := 0; i < 90; i++ { +// var currentBlock *types.Block +// currentBlock, err = t.Eth.BlockByNumber(t.Ctx(), nil) +// if err != nil { +// return nil, err +// } + +// //nolint: nestif // will fix this soon +// if startBlock.NumberU64()+n >= currentBlock.NumberU64() { +// var checkReceipt *types.Receipt +// checkReceipt, err = t.Eth.TransactionReceipt(t.Ctx(), txHash) +// if checkReceipt != nil { +// if bytes.Equal(receipt.PostState, checkReceipt.PostState) { +// return receipt, nil +// } +// // chain reorg +// if _, err = waitForTxConfirmations(t, txHash, n); err != nil { +// t.Fatal(err) +// } +// } else { +// return nil, err +// } +// } + +// time.Sleep(time.Second) +// } + +// return nil, ethereum.NotFound +// } + +// loggingRoundTrip writes requests and responses to the test log. +type loggingRoundTrip struct { + t *hivesim.T + inner http.RoundTripper +} + +func (rt *loggingRoundTrip) RoundTrip(req *http.Request) (*http.Response, error) { + // Read and log the request body. + reqBytes, err := io.ReadAll(req.Body) + if err != nil { + return nil, err + } + err = req.Body.Close() + if err != nil { + return nil, err + } + rt.t.Logf(">> %s", bytes.TrimSpace(reqBytes)) + reqCopy := *req + reqCopy.Body = io.NopCloser(bytes.NewReader(reqBytes)) + + // Do the round trip. + resp, err := rt.inner.RoundTrip(&reqCopy) + if err != nil { + return nil, err + } + defer resp.Body.Close() //#nosec:G307 // this is a test. + + // Read and log the response bytes. + respBytes, err := io.ReadAll(resp.Body) + if err != nil { + return nil, err + } + respCopy := *resp + respCopy.Body = io.NopCloser(bytes.NewReader(respBytes)) + rt.t.Logf("<< %s", bytes.TrimSpace(respBytes)) + return &respCopy, nil +} + +// func loadGenesis() *types.Block { +// contents, err := os.ReadFile("init/genesis.json") +// if err != nil { +// panic(fmt.Errorf("can't to read genesis file: %w", err)) +// } +// var genesis core.Genesis +// if err = json.Unmarshal(contents, &genesis); err != nil { +// panic(fmt.Errorf("can't parse genesis JSON: %w", err)) +// } +// return genesis.ToBlock() +// } + +// // diff checks whether x and y are deeply equal, returning a description +// // of their differences if they are not equal. +// func diff(x, y interface{}) string { +// var d string +// for _, l := range pretty.Diff(x, y) { +// d += l + "\n" +// } +// return d +// } diff --git a/e2e/hive/simulators/rpc/init/genesis.json b/e2e/hive/simulators/rpc/init/genesis.json new file mode 100644 index 000000000..f18cc2394 --- /dev/null +++ b/e2e/hive/simulators/rpc/init/genesis.json @@ -0,0 +1,46 @@ +{ + "config": { + "chainId": 7, + "homesteadBlock": 0, + "eip150Block": 0, + "eip150Hash": "0x5de1ee4135274003348e80b788e5afa4b18b18d320a5622218d5c493fedf5689", + "eip155Block": 0, + "eip158Block": 0 + }, + "coinbase": "0x0000000000000000000000000000000000000000", + "difficulty": "0x20000", + "extraData": "0x0000000000000000000000000000000000000000000000000000000000000000658bdf435d810c91414ec09147daa6db624063790000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "gasLimit": "0x2fefd8", + "nonce": "0x0000000000000000", + "timestamp": "0x1234", + "alloc": { + "cf49fda3be353c69b41ed96333cd24302da4556f": { + "balance": "0x123450000000000000000" + }, + "0161e041aad467a890839d5b08b138c1e6373072": { + "balance": "0x123450000000000000000" + }, + "87da6a8c6e9eff15d703fc2773e32f6af8dbe301": { + "balance": "0x123450000000000000000" + }, + "b97de4b8c857e4f6bc354f226dc3249aaee49209": { + "balance": "0x123450000000000000000" + }, + "c5065c9eeebe6df2c2284d046bfc906501846c51": { + "balance": "0x123450000000000000000" + }, + "0000000000000000000000000000000000000314": { + "balance": "0x0", + "code": "0x60606040526000357c0100000000000000000000000000000000000000000000000000000000900463ffffffff168063a223e05d1461006a578063abd1a0cf1461008d578063abfced1d146100d4578063e05c914a14610110578063e6768b451461014c575b610000565b346100005761007761019d565b6040518082815260200191505060405180910390f35b34610000576100be600480803573ffffffffffffffffffffffffffffffffffffffff169060200190919050506101a3565b6040518082815260200191505060405180910390f35b346100005761010e600480803573ffffffffffffffffffffffffffffffffffffffff169060200190919080359060200190919050506101ed565b005b346100005761014a600480803590602001909190803573ffffffffffffffffffffffffffffffffffffffff16906020019091905050610236565b005b346100005761017960048080359060200190919080359060200190919080359060200190919050506103c4565b60405180848152602001838152602001828152602001935050505060405180910390f35b60005481565b6000600160008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205490505b919050565b80600160008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055505b5050565b7f6031a8d62d7c95988fa262657cd92107d90ed96e08d8f867d32f26edfe85502260405180905060405180910390a17f47e2689743f14e97f7dcfa5eec10ba1dff02f83b3d1d4b9c07b206cbbda66450826040518082815260200191505060405180910390a1817fa48a6b249a5084126c3da369fbc9b16827ead8cb5cdc094b717d3f1dcd995e2960405180905060405180910390a27f7890603b316f3509577afd111710f9ebeefa15e12f72347d9dffd0d65ae3bade81604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390a18073ffffffffffffffffffffffffffffffffffffffff167f7efef9ea3f60ddc038e50cccec621f86a0195894dc0520482abf8b5c6b659e4160405180905060405180910390a28181604051808381526020018273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019250505060405180910390a05b5050565b6000600060008585859250925092505b935093509390505600a165627a7a72305820aaf842d0d0c35c45622c5263cbb54813d2974d3999c8c38551d7c613ea2bc1170029", + "storage": { + "0x0000000000000000000000000000000000000000000000000000000000000000": "0x1234", + "0x6661e9d6d8b923d5bbaab1b96e1dd51ff6ea2a93520fdc9eb75d059238b8c5e9": "0x01" + } + }, + "0000000000000000000000000000000000000315": { + "balance": "0x9999999999999999999999999999999", + "code": "0x60606040526000357c0100000000000000000000000000000000000000000000000000000000900463ffffffff168063ef2769ca1461003e575b610000565b3461000057610078600480803573ffffffffffffffffffffffffffffffffffffffff1690602001909190803590602001909190505061007a565b005b8173ffffffffffffffffffffffffffffffffffffffff166108fc829081150290604051809050600060405180830381858888f1935050505015610106578173ffffffffffffffffffffffffffffffffffffffff167f30a3c50752f2552dcc2b93f5b96866280816a986c0c0408cb6778b9fa198288f826040518082815260200191505060405180910390a25b5b50505600a165627a7a72305820637991fabcc8abad4294bf2bb615db78fbec4edff1635a2647d3894e2daf6a610029" + } + } + } + \ No newline at end of file diff --git a/e2e/hive/simulators/rpc/main.go b/e2e/hive/simulators/rpc/main.go new file mode 100644 index 000000000..2cef080bc --- /dev/null +++ b/e2e/hive/simulators/rpc/main.go @@ -0,0 +1,132 @@ +// SPDX-License-Identifier: MIT +// +// # Copyright (c) 2023 Berachain Foundation +// +// Permission is hereby granted, free of charge, to any person +// obtaining a copy of this software and associated documentation +// files (the "Software"), to deal in the Software without +// restriction, including without limitation the rights to use, +// copy, modify, merge, publish, distribute, sublicense, and/or sell +// copies of the Software, and to permit persons to whom the +// Software is furnished to do so, subject to the following +// conditions: +// +// The above copyright notice and this permission notice shall be +// included in all copies or substantial portions of the Software. +// +// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, +// EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES +// OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND +// NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT +// HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, +// WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING +// FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR +// OTHER DEALINGS IN THE SOFTWARE. + +package main + +import ( + "fmt" + "math/big" + "strings" + + "github.com/ethereum/hive/hivesim" +) + +type testSpec struct { + Name string + About string + Run func(*TestEnv) +} + +var ( + // parameters used for signing transactions. + chainID = big.NewInt(7) //nolint: gomnd // it's okay. + // gasPrice = big.NewInt(30 * params.GWei) //nolint: gomnd // it's okay. + networkID = big.NewInt(7) //nolint: gomnd // it's okay. + + files = map[string]string{ + "/genesis.json": "./init/genesis.json", + } + + clientEnv = hivesim.Params{ + "HIVE_NETWORK_ID": networkID.String(), + "HIVE_CHAIN_ID": chainID.String(), + } +) + +var tests = []testSpec{ + {Name: "http/ConsistentChainIDTest", Run: consistentChainIDTest}, +} + +func main() { + suite := hivesim.Suite{ + Name: "rpc", + Description: `The RPC test suite runs a set of RPC related tests against a running node. It tests +several real-world scenarios such as sending value transactions, deploying a contract or +interacting with one.`[1:], + } + + suite.Add(&hivesim.ClientTestSpec{ + Role: "eth1", + Name: "client launch", + Description: `This test launches the client and collects its logs.`, + Parameters: clientEnv, + Files: files, + Run: func(t *hivesim.T, c *hivesim.Client) { runAllTests(t, c, c.Type) }, + AlwaysRun: true, + }) + + sim := hivesim.New() + hivesim.MustRunSuite(sim, suite) +} + +// runAllTests runs the tests against a client instance. +// Most tests simply wait for tx inclusion in a block so we can run many tests concurrently. +func runAllTests(t *hivesim.T, c *hivesim.Client, clientName string) { + const semaphoreThreads = 16 + vault := newVault() + + s := newSemaphore(semaphoreThreads) + for _, test := range tests { + test := test + s.get() + go func() { + defer s.put() + t.Run(hivesim.TestSpec{ + Name: fmt.Sprintf("%s (%s)", test.Name, clientName), + Description: test.About, + Run: func(t *hivesim.T) { + switch test.Name[:strings.IndexByte(test.Name, '/')] { + case "http": + runHTTP(t, c, vault, test.Run) + case "ws": + runWS(t, c, vault, test.Run) + default: + panic("bad test prefix in name " + test.Name) + } + }, + }) + }() + } + s.drain() +} + +type semaphore chan struct{} + +func newSemaphore(n int) semaphore { + s := make(semaphore, n) + for i := 0; i < n; i++ { + s <- struct{}{} + } + return s +} + +func (s semaphore) get() { <-s } +func (s semaphore) put() { s <- struct{}{} } + +func (s semaphore) drain() { + for i := 0; i < cap(s); i++ { + <-s + } +} diff --git a/e2e/hive/simulators/rpc/tests.go b/e2e/hive/simulators/rpc/tests.go new file mode 100644 index 000000000..40ee20a99 --- /dev/null +++ b/e2e/hive/simulators/rpc/tests.go @@ -0,0 +1,43 @@ +// SPDX-License-Identifier: MIT +// +// Copyright (c) 2023 Berachain Foundation +// +// Permission is hereby granted, free of charge, to any person +// obtaining a copy of this software and associated documentation +// files (the "Software"), to deal in the Software without +// restriction, including without limitation the rights to use, +// copy, modify, merge, publish, distribute, sublicense, and/or sell +// copies of the Software, and to permit persons to whom the +// Software is furnished to do so, subject to the following +// conditions: +// +// The above copyright notice and this permission notice shall be +// included in all copies or substantial portions of the Software. +// +// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, +// EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES +// OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND +// NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT +// HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, +// WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING +// FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR +// OTHER DEALINGS IN THE SOFTWARE. + +package main + +import "math/big" + +func consistentChainIDTest(t *TestEnv) { + var ( + expectedChainID = big.NewInt(7) //nolint:gomnd // TODO: REFACTOR. + ) + + cID, err := t.Eth.ChainID(t.Ctx()) + if err != nil { + t.Fatalf("could not get chain ID: %v", err) + } + + if expectedChainID.Cmp(cID) != 0 { + t.Fatalf("expected chain ID %d, got %d", expectedChainID, cID) + } +} diff --git a/e2e/hive/simulators/rpc/vault.go b/e2e/hive/simulators/rpc/vault.go new file mode 100644 index 000000000..8d60f795b --- /dev/null +++ b/e2e/hive/simulators/rpc/vault.go @@ -0,0 +1,288 @@ +// SPDX-License-Identifier: MIT +// +// # Copyright (c) 2023 Berachain Foundation +// +// Permission is hereby granted, free of charge, to any person +// obtaining a copy of this software and associated documentation +// files (the "Software"), to deal in the Software without +// restriction, including without limitation the rights to use, +// copy, modify, merge, publish, distribute, sublicense, and/or sell +// copies of the Software, and to permit persons to whom the +// Software is furnished to do so, subject to the following +// conditions: +// +// The above copyright notice and this permission notice shall be +// included in all copies or substantial portions of the Software. +// +// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, +// EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES +// OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND +// NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT +// HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, +// WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING +// FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR +// OTHER DEALINGS IN THE SOFTWARE. + +package main + +import ( + "crypto/ecdsa" + "sync" + + "github.com/ethereum/go-ethereum/common" +) + +var ( +// This is the account that sends vault funding transactions. +// vaultAccountAddr = common.HexToAddress("0xcf49fda3be353c69b41ed96333cd24302da4556f"). +// vaultKey, _ = crypto.HexToECDSA("63b508a03c3b5937ceb903af8b1b0c191012ef6eb7e9c3fb7afa94e5d214d376") +// Address of the vault in genesis. +// predeployedVaultAddr = common.HexToAddress("0000000000000000000000000000000000000315") +// Number of blocks to wait before funding tx is considered valid. +// vaultTxConfirmationCount = uint64(5) //nolint: gomnd // it's okay. +) + +const ( +// numBytes = 32 +) + +// vault creates accounts for testing and funds them. An instance of the vault contract is +// deployed in the genesis block. When creating a new account using createAccount, the +// account is funded by sending a transaction to this contract. +// +// The purpose of the vault is allowing tests to run concurrently without worrying about +// nonce assignment and unexpected balance changes. + +type vault struct { + mu sync.Mutex //nolint: unused // for now + // This tracks the account nonce of the vault account. + nonce uint64 //nolint: unused // for now + // Created accounts are tracked in this map. + accounts map[common.Address]*ecdsa.PrivateKey +} + +func newVault() *vault { + return &vault{ + accounts: make(map[common.Address]*ecdsa.PrivateKey), + } +} + +// // generateKey creates a new account key and stores it. +// func (v *vault) generateKey() common.Address { +// key, err := crypto.GenerateKey() +// if err != nil { +// panic(fmt.Errorf("can't generate account key: %w", err)) +// } +// addr := crypto.PubkeyToAddress(key.PublicKey) + +// v.mu.Lock() +// defer v.mu.Unlock() +// v.accounts[addr] = key +// return addr +// } + +// // findKey returns the private key for an address. +// func (v *vault) findKey(addr common.Address) *ecdsa.PrivateKey { +// v.mu.Lock() +// defer v.mu.Unlock() +// return v.accounts[addr] +// } + +// // signTransaction signs the given transaction with the test account and returns it. +// // It uses the EIP155 signing rules. +// func (v *vault) signTransaction(sender common.Address, tx *types.Transaction) (*types.Transaction, error) { +// key := v.findKey(sender) +// if key == nil { +// return nil, fmt.Errorf("sender account %v not in vault", sender) +// } +// signer := types.NewEIP155Signer(chainID) +// return types.SignTx(tx, signer, key) +// } + +// // createAndFundAccount creates a new account that is funded from the vault contract. +// // It will panic when the account could not be created and funded. + +// // TODO: refactor + +// func (v *vault) createAccountWithSubscription(t *TestEnv, amount *big.Int) common.Address { +// if amount == nil { +// amount = new(big.Int) +// } +// address := v.generateKey() + +// // setup subscriptions +// var ( +// headsSub ethereum.Subscription +// heads = make(chan *types.Header) +// logsSub ethereum.Subscription +// logs = make(chan types.Log) +// vault, _ = abi.JSON(strings.NewReader(predeployedVaultABI)) +// ) + +// ctx, cancel := context.WithTimeout(context.Background(), timeout*time.Second) +// defer cancel() + +// // listen for new heads +// headsSub, err := t.Eth.SubscribeNewHead(ctx, heads) +// if err != nil { +// t.Fatal("could not create new head subscription:", err) +// } +// defer headsSub.Unsubscribe() + +// // set up the log event subscription +// eventTopic := vault.Events["Send"].ID +// addressTopic := common.BytesToHash(common.LeftPadBytes(address[:], numBytes)) +// q := ethereum.FilterQuery{ +// Addresses: []common.Address{predeployedVaultAddr}, +// Topics: [][]common.Hash{{eventTopic}, {addressTopic}}, +// } +// logsSub, err = t.Eth.SubscribeFilterLogs(ctx, q, logs) +// if err != nil { +// t.Fatal("could not create log filter subscription:", err) +// } +// defer logsSub.Unsubscribe() + +// // order the vault to send some ether +// tx := v.makeFundingTx(t, address, amount) +// if err = t.Eth.SendTransaction(ctx, tx); err != nil { +// t.Fatalf("unable to send funding transaction: %v", err) +// } + +// // wait for confirmed log +// var ( +// latestHeader *types.Header +// receivedLog *types.Log +// timeout = time.NewTimer(120 * time.Second) //nolint:gomnd // it's okay. +// ) +// for { +// select { +// case head := <-heads: +// latestHeader = head +// case log := <-logs: +// if !log.Removed { +// receivedLog = &log +// } else if log.Removed && receivedLog != nil && receivedLog.BlockHash == log.BlockHash { +// // chain reorg! +// receivedLog = nil +// } +// case err = <-headsSub.Err(): +// t.Fatalf("could not fund new account: %v", err) +// case err = <-logsSub.Err(): +// t.Fatalf("could not fund new account: %v", err) +// case <-timeout.C: +// t.Fatal("could not fund new account: timeout") +// } + +// if latestHeader != nil && receivedLog != nil { +// if receivedLog.BlockNumber+vaultTxConfirmationCount <= latestHeader.Number.Uint64() { +// return address +// } +// } +// } +// } + +// // createAccount creates a new account that is funded from the vault contract. +// // It will panic when the account could not be created and funded. +// func (v *vault) createAccount(t *TestEnv, amount *big.Int) common.Address { +// if amount == nil { +// amount = new(big.Int) +// } +// address := v.generateKey() + +// // order the vault to send some ether +// tx := v.makeFundingTx(t, address, amount) +// if err := t.Eth.SendTransaction(t.Ctx(), tx); err != nil { +// t.Fatalf("unable to send funding transaction: %v", err) +// } + +// txBlock, err := t.Eth.BlockNumber(t.Ctx()) +// if err != nil { +// t.Fatalf("can't get block number:", err) +// } + +// // wait for vaultTxConfirmationCount confirmation by checking the balance vaultTxConfirmationCount blocks back. +// // createAndFundAccountWithSubscription for a better solution using logs +// for i := uint64(0); i < vaultTxConfirmationCount*12; i++ { +// var number uint64 +// number, err = t.Eth.BlockNumber(t.Ctx()) +// if err != nil { +// t.Fatalf("can't get block number:", err) +// } +// if number > txBlock+vaultTxConfirmationCount { +// checkBlock := number - vaultTxConfirmationCount +// var balance *big.Int +// balance, err = t.Eth.BalanceAt(t.Ctx(), address, new(big.Int).SetUint64(checkBlock)) +// if err != nil { +// panic(err) +// } +// if balance.Cmp(amount) >= 0 { +// return address +// } +// } +// time.Sleep(time.Second) +// } +// panic(fmt.Sprintf("could not fund account %v in transaction %v", address, tx.Hash())) +// } + +// func (v *vault) makeFundingTx(t *TestEnv, recipient common.Address, amount *big.Int) *types.Transaction { +// vault, _ := abi.JSON(strings.NewReader(predeployedVaultABI)) +// payload, err := vault.Pack("sendSome", recipient, amount) +// if err != nil { +// t.Fatalf("can't pack pack vault tx input: %v", err) +// } +// var ( +// nonce = v.nextNonce() +// gasLimit = uint64(75000) //nolint: gomnd // it's okay. +// txAmount = new(big.Int) +// ) +// tx := types.NewTransaction(nonce, predeployedVaultAddr, txAmount, gasLimit, gasPrice, payload) +// signer := types.NewEIP155Signer(chainID) +// signedTx, err := types.SignTx(tx, signer, vaultKey) +// if err != nil { +// t.Fatal("can't sign vault funding tx:", err) +// } +// return signedTx +// } + +// // nextNonce generates the nonce of a funding transaction. +// func (v *vault) nextNonce() uint64 { +// v.mu.Lock() +// defer v.mu.Unlock() + +// nonce := v.nonce +// v.nonce++ +// return nonce +// } + +var ( +// predeployedVaultContractSrc = ` +// pragma solidity ^0.4.6;. + +// // The vault contract is used in the hive rpc-tests suite. +// // From this preallocated contract accounts that are created +// // during the tests are funded. +// contract Vault { +// event Send(address indexed, uint); + +// // sendSome send 'amount' wei 'to' +// function sendSome(address to, uint amount) { +// if (to.send(amount)) { +// Send(to, amount); +// } +// } +// }` +// +// vault ABI. +// predeployedVaultABI = `[{"constant":false, +// "inputs":[{"name":"to","type":"address"}, +// {"name":"amount","type":"uint256"}], +// "name":"sendSome", +// "outputs":[], +// "payable":false, +// "type":"function"}, +// {"anonymous":false, +// "inputs":[{"indexed":true,"name":"", +// "type":"address"}, +// {"indexed":false,"name":"","type":"uint256"}], +// "name":"Send","type":"event"}]` //nolint:lll // its okay +) diff --git a/eth/go.mod b/eth/go.mod index ba8307556..5667bf326 100644 --- a/eth/go.mod +++ b/eth/go.mod @@ -7,7 +7,7 @@ replace github.com/ethereum/go-ethereum => github.com/berachain/polaris-geth v0. require ( github.com/BurntSushi/toml v1.2.1 - github.com/ethereum/go-ethereum v1.11.4 + github.com/ethereum/go-ethereum v1.12.0 github.com/onsi/ginkgo/v2 v2.9.5 github.com/onsi/gomega v1.27.6 golang.org/x/text v0.9.0 @@ -18,6 +18,7 @@ require ( require ( github.com/DataDog/zstd v1.5.5 // indirect github.com/VictoriaMetrics/fastcache v1.12.1 // indirect + github.com/allegro/bigcache v1.2.1 // indirect github.com/beorn7/perks v1.0.1 // indirect github.com/bits-and-blooms/bitset v1.7.0 // indirect github.com/btcsuite/btcd/btcec/v2 v2.3.2 // indirect @@ -80,7 +81,7 @@ require ( github.com/prometheus/client_model v0.4.0 // indirect github.com/prometheus/common v0.44.0 // indirect github.com/prometheus/procfs v0.10.0 // indirect - github.com/rivo/uniseg v0.2.0 // indirect + github.com/rivo/uniseg v0.4.3 // indirect github.com/rogpeppe/go-internal v1.10.0 // indirect github.com/rs/cors v1.8.3 // indirect github.com/russross/blackfriday/v2 v2.1.0 // indirect diff --git a/eth/go.sum b/eth/go.sum index 93c38dac7..80a23373d 100644 --- a/eth/go.sum +++ b/eth/go.sum @@ -12,8 +12,9 @@ github.com/Shopify/goreferrer v0.0.0-20181106222321-ec9c9a553398/go.mod h1:a1uqR github.com/VictoriaMetrics/fastcache v1.12.1 h1:i0mICQuojGDL3KblA7wUNlY5lOK6a4bwt3uRKnkZU40= github.com/VictoriaMetrics/fastcache v1.12.1/go.mod h1:tX04vaqcNoQeGLD+ra5pU5sWkuxnzWhEzLwhP9w653o= github.com/ajg/form v1.5.1/go.mod h1:uL1WgH+h2mgNtvBq0339dVnzXdBETtL2LeUXaIv25UY= -github.com/allegro/bigcache v1.2.1-0.20190218064605-e24eb225f156 h1:eMwmnE/GDgah4HI848JfFxHt+iPb26b4zyfspmqY0/8= github.com/allegro/bigcache v1.2.1-0.20190218064605-e24eb225f156/go.mod h1:Cb/ax3seSYIx7SuZdm2G2xzfwmv3TPSk2ucNfQESPXM= +github.com/allegro/bigcache v1.2.1 h1:hg1sY1raCwic3Vnsvje6TT7/pnZba83LeFck5NrFKSc= +github.com/allegro/bigcache v1.2.1/go.mod h1:Cb/ax3seSYIx7SuZdm2G2xzfwmv3TPSk2ucNfQESPXM= github.com/armon/consul-api v0.0.0-20180202201655-eb2c6b5be1b6/go.mod h1:grANhF5doyWs3UAsr3K4I6qtAmlQcZDesFNEHPZAzj8= github.com/aymerick/raymond v2.0.3-0.20180322193309-b565731e1464+incompatible/go.mod h1:osfaiScAUVup+UC9Nfq76eWqDhXlp+4UYaA8uhTBO6g= github.com/beorn7/perks v1.0.1 h1:VlbKKnNfV8bJzeqoa4cOKqO6bYr3WgKZxO8Z16+hsOM= @@ -329,8 +330,9 @@ github.com/prometheus/common v0.44.0 h1:+5BrQJwiBB9xsMygAB3TNvpQKOwlkc25LbISbrdO github.com/prometheus/common v0.44.0/go.mod h1:ofAIvZbQ1e/nugmZGz4/qCb9Ap1VoSTIO7x0VV9VvuY= github.com/prometheus/procfs v0.10.0 h1:UkG7GPYkO4UZyLnyXjaWYcgOSONqwdBqFUT95ugmt6I= github.com/prometheus/procfs v0.10.0/go.mod h1:nwNm2aOCAYw8uTR/9bWRREkZFxAUcWzPHWJq+XBB/FM= -github.com/rivo/uniseg v0.2.0 h1:S1pD9weZBuJdFmowNwbpi7BJ8TNftyUImj/0WQi72jY= github.com/rivo/uniseg v0.2.0/go.mod h1:J6wj4VEh+S6ZtnVlnTBMWIodfgj8LQOQFoIToxlJtxc= +github.com/rivo/uniseg v0.4.3 h1:utMvzDsuh3suAEnhH0RdHmoPbU648o6CvXxTx4SBMOw= +github.com/rivo/uniseg v0.4.3/go.mod h1:FN3SvrM+Zdj16jyLfmOkMNblXMcoc8DfTHruCPUcx88= github.com/rogpeppe/go-internal v1.6.1/go.mod h1:xXDCJY+GAPziupqXw64V24skbSoqbTEfhy4qGm1nDQc= github.com/rogpeppe/go-internal v1.8.1/go.mod h1:JeRgkft04UBgHMgCIwADu4Pn6Mtm5d4nPKWu0nJ5d+o= github.com/rogpeppe/go-internal v1.9.0/go.mod h1:WtVeX8xhTBvf0smdhujwtBcq4Qrzq/fJaraNFVN+nFs= diff --git a/eth/polar/polaris.go b/eth/polar/polaris.go index 06a475b27..72cb689da 100644 --- a/eth/polar/polaris.go +++ b/eth/polar/polaris.go @@ -22,6 +22,8 @@ package polar import ( "net/http" + "os" + "time" "github.com/ethereum/go-ethereum/cmd/utils" "github.com/ethereum/go-ethereum/eth/ethconfig" @@ -137,6 +139,12 @@ func (pl *Polaris) StartServices() error { return err } - // Start the services (json-rpc, graphql, etc) - return pl.stack.Start() + go func() { + // TODO: unhack this. + time.Sleep(2 * time.Second) //nolint:gomnd // we will fix this eventually. + if pl.stack.Start() != nil { + os.Exit(1) + } + }() + return nil } diff --git a/go.work b/go.work index 4e25612d1..5f888f228 100644 --- a/go.work +++ b/go.work @@ -3,6 +3,7 @@ go 1.20 use ( ./contracts ./cosmos + ./e2e/hive/simulators/rpc ./eth ./lib ./magefiles diff --git a/go.work.sum b/go.work.sum index ff8d78f1b..ce85ee3e5 100644 --- a/go.work.sum +++ b/go.work.sum @@ -1,297 +1,6 @@ -4d63.com/gochecknoglobals v0.1.0/go.mod h1:wfdC5ZjKSPr7CybKEcgJhUOgeAQW1+7WcyK8OvUilfo= -bitbucket.org/creachadair/shell v0.0.6/go.mod h1:8Qqi/cYk7vPnsOePHroKXDJYmb5x7ENhtiFtfZq8K+M= -cloud.google.com/go v0.0.0-20170206221025-ce650573d812/go.mod h1:aQUYkXzVsufM+DwF1aE+0xfcU+56JwCaLick0ClmMTw= -cloud.google.com/go v0.60.0/go.mod h1:yw2G51M9IfRboUH61Us8GqCeF1PzPblB823Mn2q2eAU= -cloud.google.com/go v0.98.0/go.mod h1:ua6Ush4NALrHk5QXDWnjvZHN93OuF0HfuEPq9I1X0cM= -cloud.google.com/go v0.105.0/go.mod h1:PrLgOJNe5nfE9UMxKxgXj4mD3voiP+YQ6gdt6KMFOKM= -cloud.google.com/go v0.107.0/go.mod h1:wpc2eNrD7hXUTy8EKS10jkxpZBjASrORK7goS+3YX2I= -cloud.google.com/go/accessapproval v1.6.0 h1:x0cEHro/JFPd7eS4BlEWNTMecIj2HdXjOVB5BtvwER0= -cloud.google.com/go/accessapproval v1.6.0/go.mod h1:R0EiYnwV5fsRFiKZkPHr6mwyk2wxUJ30nL4j2pcFY2E= -cloud.google.com/go/accesscontextmanager v1.7.0 h1:MG60JgnEoawHJrbWw0jGdv6HLNSf6gQvYRiXpuzqgEA= -cloud.google.com/go/accesscontextmanager v1.7.0/go.mod h1:CEGLewx8dwa33aDAZQujl7Dx+uYhS0eay198wB/VumQ= -cloud.google.com/go/aiplatform v1.37.0 h1:zTw+suCVchgZyO+k847wjzdVjWmrAuehxdvcZvJwfGg= -cloud.google.com/go/aiplatform v1.37.0/go.mod h1:IU2Cv29Lv9oCn/9LkFiiuKfwrRTq+QQMbW+hPCxJGZw= -cloud.google.com/go/analytics v0.19.0 h1:LqAo3tAh2FU9+w/r7vc3hBjU23Kv7GhO/PDIW7kIYgM= -cloud.google.com/go/analytics v0.19.0/go.mod h1:k8liqf5/HCnOUkbawNtrWWc+UAzyDlW89doe8TtoDsE= -cloud.google.com/go/apigateway v1.5.0 h1:ZI9mVO7x3E9RK/BURm2p1aw9YTBSCQe3klmyP1WxWEg= -cloud.google.com/go/apigateway v1.5.0/go.mod h1:GpnZR3Q4rR7LVu5951qfXPJCHquZt02jf7xQx7kpqN8= -cloud.google.com/go/apigeeconnect v1.5.0 h1:sWOmgDyAsi1AZ48XRHcATC0tsi9SkPT7DA/+VCfkaeA= -cloud.google.com/go/apigeeconnect v1.5.0/go.mod h1:KFaCqvBRU6idyhSNyn3vlHXc8VMDJdRmwDF6JyFRqZ8= -cloud.google.com/go/apigeeregistry v0.6.0 h1:E43RdhhCxdlV+I161gUY2rI4eOaMzHTA5kNkvRsFXvc= -cloud.google.com/go/apigeeregistry v0.6.0/go.mod h1:BFNzW7yQVLZ3yj0TKcwzb8n25CFBri51GVGOEUcgQsc= -cloud.google.com/go/apikeys v0.6.0 h1:B9CdHFZTFjVti89tmyXXrO+7vSNo2jvZuHG8zD5trdQ= -cloud.google.com/go/apikeys v0.6.0/go.mod h1:kbpXu5upyiAlGkKrJgQl8A0rKNNJ7dQ377pdroRSSi8= -cloud.google.com/go/appengine v1.7.1 h1:aBGDKmRIaRRoWJ2tAoN0oVSHoWLhtO9aj/NvUyP4aYs= -cloud.google.com/go/appengine v1.7.1/go.mod h1:IHLToyb/3fKutRysUlFO0BPt5j7RiQ45nrzEJmKTo6E= -cloud.google.com/go/area120 v0.7.1 h1:ugckkFh4XkHJMPhTIx0CyvdoBxmOpMe8rNs4Ok8GAag= -cloud.google.com/go/area120 v0.7.1/go.mod h1:j84i4E1RboTWjKtZVWXPqvK5VHQFJRF2c1Nm69pWm9k= -cloud.google.com/go/artifactregistry v1.13.0 h1:o1Q80vqEB6Qp8WLEH3b8FBLNUCrGQ4k5RFj0sn/sgO8= -cloud.google.com/go/artifactregistry v1.13.0/go.mod h1:uy/LNfoOIivepGhooAUpL1i30Hgee3Cu0l4VTWHUC08= -cloud.google.com/go/asset v1.13.0 h1:YAsssO08BqZ6mncbb6FPlj9h6ACS7bJQUOlzciSfbNk= -cloud.google.com/go/asset v1.13.0/go.mod h1:WQAMyYek/b7NBpYq/K4KJWcRqzoalEsxz/t/dTk4THw= -cloud.google.com/go/assuredworkloads v1.10.0 h1:VLGnVFta+N4WM+ASHbhc14ZOItOabDLH1MSoDv+Xuag= -cloud.google.com/go/assuredworkloads v1.10.0/go.mod h1:kwdUQuXcedVdsIaKgKTp9t0UJkE5+PAVNhdQm4ZVq2E= -cloud.google.com/go/automl v1.12.0 h1:50VugllC+U4IGl3tDNcZaWvApHBTrn/TvyHDJ0wM+Uw= -cloud.google.com/go/automl v1.12.0/go.mod h1:tWDcHDp86aMIuHmyvjuKeeHEGq76lD7ZqfGLN6B0NuU= -cloud.google.com/go/baremetalsolution v0.5.0 h1:2AipdYXL0VxMboelTTw8c1UJ7gYu35LZYUbuRv9Q28s= -cloud.google.com/go/baremetalsolution v0.5.0/go.mod h1:dXGxEkmR9BMwxhzBhV0AioD0ULBmuLZI8CdwalUxuss= -cloud.google.com/go/batch v0.7.0 h1:YbMt0E6BtqeD5FvSv1d56jbVsWEzlGm55lYte+M6Mzs= -cloud.google.com/go/batch v0.7.0/go.mod h1:vLZN95s6teRUqRQ4s3RLDsH8PvboqBK+rn1oevL159g= -cloud.google.com/go/beyondcorp v0.5.0 h1:UkY2BTZkEUAVrgqnSdOJ4p3y9ZRBPEe1LkjgC8Bj/Pc= -cloud.google.com/go/beyondcorp v0.5.0/go.mod h1:uFqj9X+dSfrheVp7ssLTaRHd2EHqSL4QZmH4e8WXGGU= -cloud.google.com/go/bigquery v1.50.0 h1:RscMV6LbnAmhAzD893Lv9nXXy2WCaJmbxYPWDLbGqNQ= -cloud.google.com/go/bigquery v1.50.0/go.mod h1:YrleYEh2pSEbgTBZYMJ5SuSr0ML3ypjRB1zgf7pvQLU= -cloud.google.com/go/bigtable v1.2.0 h1:F4cCmA4nuV84V5zYQ3MKY+M1Cw1avHDuf3S/LcZPA9c= -cloud.google.com/go/billing v1.13.0 h1:JYj28UYF5w6VBAh0gQYlgHJ/OD1oA+JgW29YZQU+UHM= -cloud.google.com/go/billing v1.13.0/go.mod h1:7kB2W9Xf98hP9Sr12KfECgfGclsH3CQR0R08tnRlRbc= -cloud.google.com/go/binaryauthorization v1.5.0 h1:d3pMDBCCNivxt5a4eaV7FwL7cSH0H7RrEnFrTb1QKWs= -cloud.google.com/go/binaryauthorization v1.5.0/go.mod h1:OSe4OU1nN/VswXKRBmciKpo9LulY41gch5c68htf3/Q= -cloud.google.com/go/certificatemanager v1.6.0 h1:5C5UWeSt8Jkgp7OWn2rCkLmYurar/vIWIoSQ2+LaTOc= -cloud.google.com/go/certificatemanager v1.6.0/go.mod h1:3Hh64rCKjRAX8dXgRAyOcY5vQ/fE1sh8o+Mdd6KPgY8= -cloud.google.com/go/channel v1.12.0 h1:GpcQY5UJKeOekYgsX3QXbzzAc/kRGtBq43fTmyKe6Uw= -cloud.google.com/go/channel v1.12.0/go.mod h1:VkxCGKASi4Cq7TbXxlaBezonAYpp1GCnKMY6tnMQnLU= -cloud.google.com/go/cloudbuild v1.9.0 h1:GHQCjV4WlPPVU/j3Rlpc8vNIDwThhd1U9qSY/NPZdko= -cloud.google.com/go/cloudbuild v1.9.0/go.mod h1:qK1d7s4QlO0VwfYn5YuClDGg2hfmLZEb4wQGAbIgL1s= -cloud.google.com/go/clouddms v1.5.0 h1:E7v4TpDGUyEm1C/4KIrpVSOCTm0P6vWdHT0I4mostRA= -cloud.google.com/go/clouddms v1.5.0/go.mod h1:QSxQnhikCLUw13iAbffF2CZxAER3xDGNHjsTAkQJcQA= -cloud.google.com/go/cloudtasks v1.10.0 h1:uK5k6abf4yligFgYFnG0ni8msai/dSv6mDmiBulU0hU= -cloud.google.com/go/cloudtasks v1.10.0/go.mod h1:NDSoTLkZ3+vExFEWu2UJV1arUyzVDAiZtdWcsUyNwBs= -cloud.google.com/go/compute v1.12.1/go.mod h1:e8yNOBcBONZU1vJKCvCoDw/4JQsA0dpM4x/6PIIOocU= -cloud.google.com/go/compute v1.14.0/go.mod h1:YfLtxrj9sU4Yxv+sXzZkyPjEyPBZfXHUvjxega5vAdo= -cloud.google.com/go/compute v1.15.1/go.mod h1:bjjoF/NtFUrkD/urWfdHaKuOPDR5nWIs63rR+SXhcpA= -cloud.google.com/go/compute v1.18.0/go.mod h1:1X7yHxec2Ga+Ss6jPyjxRxpu2uu7PLgsOVXvgU0yacs= -cloud.google.com/go/compute/metadata v0.2.0/go.mod h1:zFmK7XCadkQkj6TtorcaGlCW1hT1fIilQDwofLpJ20k= -cloud.google.com/go/compute/metadata v0.2.1/go.mod h1:jgHgmJd2RKBGzXqF5LR2EZMGxBkeanZ9wwa75XHJgOM= -cloud.google.com/go/contactcenterinsights v1.6.0 h1:jXIpfcH/VYSE1SYcPzO0n1VVb+sAamiLOgCw45JbOQk= -cloud.google.com/go/contactcenterinsights v1.6.0/go.mod h1:IIDlT6CLcDoyv79kDv8iWxMSTZhLxSCofVV5W6YFM/w= -cloud.google.com/go/container v1.15.0 h1:NKlY/wCDapfVZlbVVaeuu2UZZED5Dy1z4Zx1KhEzm8c= -cloud.google.com/go/container v1.15.0/go.mod h1:ft+9S0WGjAyjDggg5S06DXj+fHJICWg8L7isCQe9pQA= -cloud.google.com/go/containeranalysis v0.9.0 h1:EQ4FFxNaEAg8PqQCO7bVQfWz9NVwZCUKaM1b3ycfx3U= -cloud.google.com/go/containeranalysis v0.9.0/go.mod h1:orbOANbwk5Ejoom+s+DUCTTJ7IBdBQJDcSylAx/on9s= -cloud.google.com/go/datacatalog v1.13.0 h1:4H5IJiyUE0X6ShQBqgFFZvGGcrwGVndTwUSLP4c52gw= -cloud.google.com/go/datacatalog v1.13.0/go.mod h1:E4Rj9a5ZtAxcQJlEBTLgMTphfP11/lNaAshpoBgemX8= -cloud.google.com/go/dataflow v0.8.0 h1:eYyD9o/8Nm6EttsKZaEGD84xC17bNgSKCu0ZxwqUbpg= -cloud.google.com/go/dataflow v0.8.0/go.mod h1:Rcf5YgTKPtQyYz8bLYhFoIV/vP39eL7fWNcSOyFfLJE= -cloud.google.com/go/dataform v0.7.0 h1:Dyk+fufup1FR6cbHjFpMuP4SfPiF3LI3JtoIIALoq48= -cloud.google.com/go/dataform v0.7.0/go.mod h1:7NulqnVozfHvWUBpMDfKMUESr+85aJsC/2O0o3jWPDE= -cloud.google.com/go/datafusion v1.6.0 h1:sZjRnS3TWkGsu1LjYPFD/fHeMLZNXDK6PDHi2s2s/bk= -cloud.google.com/go/datafusion v1.6.0/go.mod h1:WBsMF8F1RhSXvVM8rCV3AeyWVxcC2xY6vith3iw3S+8= -cloud.google.com/go/datalabeling v0.7.0 h1:ch4qA2yvddGRUrlfwrNJCr79qLqhS9QBwofPHfFlDIk= -cloud.google.com/go/datalabeling v0.7.0/go.mod h1:WPQb1y08RJbmpM3ww0CSUAGweL0SxByuW2E+FU+wXcM= -cloud.google.com/go/dataplex v1.6.0 h1:RvoZ5T7gySwm1CHzAw7yY1QwwqaGswunmqEssPxU/AM= -cloud.google.com/go/dataplex v1.6.0/go.mod h1:bMsomC/aEJOSpHXdFKFGQ1b0TDPIeL28nJObeO1ppRs= -cloud.google.com/go/dataproc v1.12.0 h1:W47qHL3W4BPkAIbk4SWmIERwsWBaNnWm0P2sdx3YgGU= -cloud.google.com/go/dataproc v1.12.0/go.mod h1:zrF3aX0uV3ikkMz6z4uBbIKyhRITnxvr4i3IjKsKrw4= -cloud.google.com/go/dataqna v0.7.0 h1:yFzi/YU4YAdjyo7pXkBE2FeHbgz5OQQBVDdbErEHmVQ= -cloud.google.com/go/dataqna v0.7.0/go.mod h1:Lx9OcIIeqCrw1a6KdO3/5KMP1wAmTc0slZWwP12Qq3c= -cloud.google.com/go/datastore v1.11.0 h1:iF6I/HaLs3Ado8uRKMvZRvF/ZLkWaWE9i8AiHzbC774= -cloud.google.com/go/datastore v1.11.0/go.mod h1:TvGxBIHCS50u8jzG+AW/ppf87v1of8nwzFNgEZU1D3c= -cloud.google.com/go/datastream v1.7.0 h1:BBCBTnWMDwwEzQQmipUXxATa7Cm7CA/gKjKcR2w35T0= -cloud.google.com/go/datastream v1.7.0/go.mod h1:uxVRMm2elUSPuh65IbZpzJNMbuzkcvu5CjMqVIUHrww= -cloud.google.com/go/deploy v1.8.0 h1:otshdKEbmsi1ELYeCKNYppwV0UH5xD05drSdBm7ouTk= -cloud.google.com/go/deploy v1.8.0/go.mod h1:z3myEJnA/2wnB4sgjqdMfgxCA0EqC3RBTNcVPs93mtQ= -cloud.google.com/go/dialogflow v1.32.0 h1:uVlKKzp6G/VtSW0E7IH1Y5o0H48/UOCmqksG2riYCwQ= -cloud.google.com/go/dialogflow v1.32.0/go.mod h1:jG9TRJl8CKrDhMEcvfcfFkkpp8ZhgPz3sBGmAUYJ2qE= -cloud.google.com/go/dlp v1.9.0 h1:1JoJqezlgu6NWCroBxr4rOZnwNFILXr4cB9dMaSKO4A= -cloud.google.com/go/dlp v1.9.0/go.mod h1:qdgmqgTyReTz5/YNSSuueR8pl7hO0o9bQ39ZhtgkWp4= -cloud.google.com/go/documentai v1.18.0 h1:KM3Xh0QQyyEdC8Gs2vhZfU+rt6OCPF0dwVwxKgLmWfI= -cloud.google.com/go/documentai v1.18.0/go.mod h1:F6CK6iUH8J81FehpskRmhLq/3VlwQvb7TvwOceQ2tbs= -cloud.google.com/go/domains v0.8.0 h1:2ti/o9tlWL4N+wIuWUNH+LbfgpwxPr8J1sv9RHA4bYQ= -cloud.google.com/go/domains v0.8.0/go.mod h1:M9i3MMDzGFXsydri9/vW+EWz9sWb4I6WyHqdlAk0idE= -cloud.google.com/go/edgecontainer v1.0.0 h1:O0YVE5v+O0Q/ODXYsQHmHb+sYM8KNjGZw2pjX2Ws41c= -cloud.google.com/go/edgecontainer v1.0.0/go.mod h1:cttArqZpBB2q58W/upSG++ooo6EsblxDIolxa3jSjbY= -cloud.google.com/go/errorreporting v0.3.0 h1:kj1XEWMu8P0qlLhm3FwcaFsUvXChV/OraZwA70trRR0= -cloud.google.com/go/errorreporting v0.3.0/go.mod h1:xsP2yaAp+OAW4OIm60An2bbLpqIhKXdWR/tawvl7QzU= -cloud.google.com/go/essentialcontacts v1.5.0 h1:gIzEhCoOT7bi+6QZqZIzX1Erj4SswMPIteNvYVlu+pM= -cloud.google.com/go/essentialcontacts v1.5.0/go.mod h1:ay29Z4zODTuwliK7SnX8E86aUF2CTzdNtvv42niCX0M= -cloud.google.com/go/eventarc v1.11.0 h1:fsJmNeqvqtk74FsaVDU6cH79lyZNCYP8Rrv7EhaB/PU= -cloud.google.com/go/eventarc v1.11.0/go.mod h1:PyUjsUKPWoRBCHeOxZd/lbOOjahV41icXyUY5kSTvVY= -cloud.google.com/go/filestore v1.6.0 h1:ckTEXN5towyTMu4q0uQ1Mde/JwTHur0gXs8oaIZnKfw= -cloud.google.com/go/filestore v1.6.0/go.mod h1:di5unNuss/qfZTw2U9nhFqo8/ZDSc466dre85Kydllg= -cloud.google.com/go/firestore v1.6.1/go.mod h1:asNXNOzBdyVQmEU+ggO8UPodTkEVFW5Qx+rwHnAz+EY= -cloud.google.com/go/firestore v1.9.0 h1:IBlRyxgGySXu5VuW0RgGFlTtLukSnNkpDiEOMkQkmpA= -cloud.google.com/go/firestore v1.9.0/go.mod h1:HMkjKHNTtRyZNiMzu7YAsLr9K3X2udY2AMwDaMEQiiE= -cloud.google.com/go/functions v1.13.0 h1:pPDqtsXG2g9HeOQLoquLbmvmb82Y4Ezdo1GXuotFoWg= -cloud.google.com/go/functions v1.13.0/go.mod h1:EU4O007sQm6Ef/PwRsI8N2umygGqPBS/IZQKBQBcJ3c= -cloud.google.com/go/gaming v1.9.0 h1:7vEhFnZmd931Mo7sZ6pJy7uQPDxF7m7v8xtBheG08tc= -cloud.google.com/go/gaming v1.9.0/go.mod h1:Fc7kEmCObylSWLO334NcO+O9QMDyz+TKC4v1D7X+Bc0= -cloud.google.com/go/gkebackup v0.4.0 h1:za3QZvw6ujR0uyqkhomKKKNoXDyqYGPJies3voUK8DA= -cloud.google.com/go/gkebackup v0.4.0/go.mod h1:byAyBGUwYGEEww7xsbnUTBHIYcOPy/PgUWUtOeRm9Vg= -cloud.google.com/go/gkeconnect v0.7.0 h1:gXYKciHS/Lgq0GJ5Kc9SzPA35NGc3yqu6SkjonpEr2Q= -cloud.google.com/go/gkeconnect v0.7.0/go.mod h1:SNfmVqPkaEi3bF/B3CNZOAYPYdg7sU+obZ+QTky2Myw= -cloud.google.com/go/gkehub v0.12.0 h1:TqCSPsEBQ6oZSJgEYZ3XT8x2gUadbvfwI32YB0kuHCs= -cloud.google.com/go/gkehub v0.12.0/go.mod h1:djiIwwzTTBrF5NaXCGv3mf7klpEMcST17VBTVVDcuaw= -cloud.google.com/go/gkemulticloud v0.5.0 h1:8I84Q4vl02rJRsFiinBxl7WCozfdLlUVBQuSrqr9Wtk= -cloud.google.com/go/gkemulticloud v0.5.0/go.mod h1:W0JDkiyi3Tqh0TJr//y19wyb1yf8llHVto2Htf2Ja3Y= -cloud.google.com/go/grafeas v0.2.0 h1:CYjC+xzdPvbV65gi6Dr4YowKcmLo045pm18L0DhdELM= -cloud.google.com/go/gsuiteaddons v1.5.0 h1:1mvhXqJzV0Vg5Fa95QwckljODJJfDFXV4pn+iL50zzA= -cloud.google.com/go/gsuiteaddons v1.5.0/go.mod h1:TFCClYLd64Eaa12sFVmUyG62tk4mdIsI7pAnSXRkcFo= -cloud.google.com/go/iam v0.7.0/go.mod h1:H5Br8wRaDGNc8XP3keLc4unfUUZeyH3Sfl9XpQEYOeg= -cloud.google.com/go/iam v0.8.0/go.mod h1:lga0/y3iH6CX7sYqypWJ33hf7kkfXJag67naqGESjkE= -cloud.google.com/go/iam v0.12.0/go.mod h1:knyHGviacl11zrtZUoDuYpDgLjvr28sLQaG0YB2GYAY= -cloud.google.com/go/iap v1.7.1 h1:PxVHFuMxmSZyfntKXHXhd8bo82WJ+LcATenq7HLdVnU= -cloud.google.com/go/iap v1.7.1/go.mod h1:WapEwPc7ZxGt2jFGB/C/bm+hP0Y6NXzOYGjpPnmMS74= -cloud.google.com/go/ids v1.3.0 h1:fodnCDtOXuMmS8LTC2y3h8t24U8F3eKWfhi+3LY6Qf0= -cloud.google.com/go/ids v1.3.0/go.mod h1:JBdTYwANikFKaDP6LtW5JAi4gubs57SVNQjemdt6xV4= -cloud.google.com/go/iot v1.6.0 h1:39W5BFSarRNZfVG0eXI5LYux+OVQT8GkgpHCnrZL2vM= -cloud.google.com/go/iot v1.6.0/go.mod h1:IqdAsmE2cTYYNO1Fvjfzo9po179rAtJeVGUvkLN3rLE= -cloud.google.com/go/kms v1.10.1 h1:7hm1bRqGCA1GBRQUrp831TwJ9TWhP+tvLuP497CQS2g= -cloud.google.com/go/kms v1.10.1/go.mod h1:rIWk/TryCkR59GMC3YtHtXeLzd634lBbKenvyySAyYI= -cloud.google.com/go/language v1.9.0 h1:7Ulo2mDk9huBoBi8zCE3ONOoBrL6UXfAI71CLQ9GEIM= -cloud.google.com/go/language v1.9.0/go.mod h1:Ns15WooPM5Ad/5no/0n81yUetis74g3zrbeJBE+ptUY= -cloud.google.com/go/lifesciences v0.8.0 h1:uWrMjWTsGjLZpCTWEAzYvyXj+7fhiZST45u9AgasasI= -cloud.google.com/go/lifesciences v0.8.0/go.mod h1:lFxiEOMqII6XggGbOnKiyZ7IBwoIqA84ClvoezaA/bo= -cloud.google.com/go/logging v1.7.0 h1:CJYxlNNNNAMkHp9em/YEXcfJg+rPDg7YfwoRpMU+t5I= -cloud.google.com/go/logging v1.7.0/go.mod h1:3xjP2CjkM3ZkO73aj4ASA5wRPGGCRrPIAeNqVNkzY8M= -cloud.google.com/go/longrunning v0.3.0/go.mod h1:qth9Y41RRSUE69rDcOn6DdK3HfQfsUI0YSmW3iIlLJc= -cloud.google.com/go/longrunning v0.4.1/go.mod h1:4iWDqhBZ70CvZ6BfETbvam3T8FMvLK+eFj0E6AaRQTo= -cloud.google.com/go/managedidentities v1.5.0 h1:ZRQ4k21/jAhrHBVKl/AY7SjgzeJwG1iZa+mJ82P+VNg= -cloud.google.com/go/managedidentities v1.5.0/go.mod h1:+dWcZ0JlUmpuxpIDfyP5pP5y0bLdRwOS4Lp7gMni/LA= -cloud.google.com/go/maps v0.7.0 h1:mv9YaczD4oZBZkM5XJl6fXQ984IkJNHPwkc8MUsdkBo= -cloud.google.com/go/maps v0.7.0/go.mod h1:3GnvVl3cqeSvgMcpRlQidXsPYuDGQ8naBis7MVzpXsY= -cloud.google.com/go/mediatranslation v0.7.0 h1:anPxH+/WWt8Yc3EdoEJhPMBRF7EhIdz426A+tuoA0OU= -cloud.google.com/go/mediatranslation v0.7.0/go.mod h1:LCnB/gZr90ONOIQLgSXagp8XUW1ODs2UmUMvcgMfI2I= -cloud.google.com/go/memcache v1.9.0 h1:8/VEmWCpnETCrBwS3z4MhT+tIdKgR1Z4Tr2tvYH32rg= -cloud.google.com/go/memcache v1.9.0/go.mod h1:8oEyzXCu+zo9RzlEaEjHl4KkgjlNDaXbCQeQWlzNFJM= -cloud.google.com/go/metastore v1.10.0 h1:QCFhZVe2289KDBQ7WxaHV2rAmPrmRAdLC6gbjUd3HPo= -cloud.google.com/go/metastore v1.10.0/go.mod h1:fPEnH3g4JJAk+gMRnrAnoqyv2lpUCqJPWOodSaf45Eo= -cloud.google.com/go/monitoring v1.13.0 h1:2qsrgXGVoRXpP7otZ14eE1I568zAa92sJSDPyOJvwjM= -cloud.google.com/go/monitoring v1.13.0/go.mod h1:k2yMBAB1H9JT/QETjNkgdCGD9bPF712XiLTVr+cBrpw= -cloud.google.com/go/networkconnectivity v1.11.0 h1:ZD6b4Pk1jEtp/cx9nx0ZYcL3BKqDa+KixNDZ6Bjs1B8= -cloud.google.com/go/networkconnectivity v1.11.0/go.mod h1:iWmDD4QF16VCDLXUqvyspJjIEtBR/4zq5hwnY2X3scM= -cloud.google.com/go/networkmanagement v1.6.0 h1:8KWEUNGcpSX9WwZXq7FtciuNGPdPdPN/ruDm769yAEM= -cloud.google.com/go/networkmanagement v1.6.0/go.mod h1:5pKPqyXjB/sgtvB5xqOemumoQNB7y95Q7S+4rjSOPYY= -cloud.google.com/go/networksecurity v0.8.0 h1:sOc42Ig1K2LiKlzG71GUVloeSJ0J3mffEBYmvu+P0eo= -cloud.google.com/go/networksecurity v0.8.0/go.mod h1:B78DkqsxFG5zRSVuwYFRZ9Xz8IcQ5iECsNrPn74hKHU= -cloud.google.com/go/notebooks v1.8.0 h1:Kg2K3K7CbSXYJHZ1aGQpf1xi5x2GUvQWf2sFVuiZh8M= -cloud.google.com/go/notebooks v1.8.0/go.mod h1:Lq6dYKOYOWUCTvw5t2q1gp1lAp0zxAxRycayS0iJcqQ= -cloud.google.com/go/optimization v1.3.1 h1:dj8O4VOJRB4CUwZXdmwNViH1OtI0WtWL867/lnYH248= -cloud.google.com/go/optimization v1.3.1/go.mod h1:IvUSefKiwd1a5p0RgHDbWCIbDFgKuEdB+fPPuP0IDLI= -cloud.google.com/go/orchestration v1.6.0 h1:Vw+CEXo8M/FZ1rb4EjcLv0gJqqw89b7+g+C/EmniTb8= -cloud.google.com/go/orchestration v1.6.0/go.mod h1:M62Bevp7pkxStDfFfTuCOaXgaaqRAga1yKyoMtEoWPQ= -cloud.google.com/go/orgpolicy v1.10.0 h1:XDriMWug7sd0kYT1QKofRpRHzjad0bK8Q8uA9q+XrU4= -cloud.google.com/go/orgpolicy v1.10.0/go.mod h1:w1fo8b7rRqlXlIJbVhOMPrwVljyuW5mqssvBtU18ONc= -cloud.google.com/go/osconfig v1.11.0 h1:PkSQx4OHit5xz2bNyr11KGcaFccL5oqglFPdTboyqwQ= -cloud.google.com/go/osconfig v1.11.0/go.mod h1:aDICxrur2ogRd9zY5ytBLV89KEgT2MKB2L/n6x1ooPw= -cloud.google.com/go/oslogin v1.9.0 h1:whP7vhpmc+ufZa90eVpkfbgzJRK/Xomjz+XCD4aGwWw= -cloud.google.com/go/oslogin v1.9.0/go.mod h1:HNavntnH8nzrn8JCTT5fj18FuJLFJc4NaZJtBnQtKFs= -cloud.google.com/go/phishingprotection v0.7.0 h1:l6tDkT7qAEV49MNEJkEJTB6vOO/onbSOcNtAT09HPuA= -cloud.google.com/go/phishingprotection v0.7.0/go.mod h1:8qJI4QKHoda/sb/7/YmMQ2omRLSLYSu9bU0EKCNI+Lk= -cloud.google.com/go/policytroubleshooter v1.6.0 h1:yKAGC4p9O61ttZUswaq9GAn1SZnEzTd0vUYXD7ZBT7Y= -cloud.google.com/go/policytroubleshooter v1.6.0/go.mod h1:zYqaPTsmfvpjm5ULxAyD/lINQxJ0DDsnWOP/GZ7xzBc= -cloud.google.com/go/privatecatalog v0.8.0 h1:EPEJ1DpEGXLDnmc7mnCAqFmkwUJbIsaLAiLHVOkkwtc= -cloud.google.com/go/privatecatalog v0.8.0/go.mod h1:nQ6pfaegeDAq/Q5lrfCQzQLhubPiZhSaNhIgfJlnIXs= -cloud.google.com/go/pubsub v1.5.0/go.mod h1:ZEwJccE3z93Z2HWvstpri00jOg7oO4UZDtKhwDwqF0w= -cloud.google.com/go/pubsub v1.30.0 h1:vCge8m7aUKBJYOgrZp7EsNDf6QMd2CAlXZqWTn3yq6s= -cloud.google.com/go/pubsub v1.30.0/go.mod h1:qWi1OPS0B+b5L+Sg6Gmc9zD1Y+HaM0MdUr7LsupY1P4= -cloud.google.com/go/pubsublite v1.7.0 h1:cb9fsrtpINtETHiJ3ECeaVzrfIVhcGjhhJEjybHXHao= -cloud.google.com/go/pubsublite v1.7.0/go.mod h1:8hVMwRXfDfvGm3fahVbtDbiLePT3gpoiJYJY+vxWxVM= -cloud.google.com/go/recaptchaenterprise v1.3.1 h1:u6EznTGzIdsyOsvm+Xkw0aSuKFXQlyjGE9a4exk6iNQ= -cloud.google.com/go/recaptchaenterprise/v2 v2.7.0 h1:6iOCujSNJ0YS7oNymI64hXsjGq60T4FK1zdLugxbzvU= -cloud.google.com/go/recaptchaenterprise/v2 v2.7.0/go.mod h1:19wVj/fs5RtYtynAPJdDTb69oW0vNHYDBTbB4NvMD9c= -cloud.google.com/go/recommendationengine v0.7.0 h1:VibRFCwWXrFebEWKHfZAt2kta6pS7Tlimsnms0fjv7k= -cloud.google.com/go/recommendationengine v0.7.0/go.mod h1:1reUcE3GIu6MeBz/h5xZJqNLuuVjNg1lmWMPyjatzac= -cloud.google.com/go/recommender v1.9.0 h1:ZnFRY5R6zOVk2IDS1Jbv5Bw+DExCI5rFumsTnMXiu/A= -cloud.google.com/go/recommender v1.9.0/go.mod h1:PnSsnZY7q+VL1uax2JWkt/UegHssxjUVVCrX52CuEmQ= -cloud.google.com/go/redis v1.11.0 h1:JoAd3SkeDt3rLFAAxEvw6wV4t+8y4ZzfZcZmddqphQ8= -cloud.google.com/go/redis v1.11.0/go.mod h1:/X6eicana+BWcUda5PpwZC48o37SiFVTFSs0fWAJ7uQ= -cloud.google.com/go/resourcemanager v1.7.0 h1:NRM0p+RJkaQF9Ee9JMnUV9BQ2QBIOq/v8M+Pbv/wmCs= -cloud.google.com/go/resourcemanager v1.7.0/go.mod h1:HlD3m6+bwhzj9XCouqmeiGuni95NTrExfhoSrkC/3EI= -cloud.google.com/go/resourcesettings v1.5.0 h1:8Dua37kQt27CCWHm4h/Q1XqCF6ByD7Ouu49xg95qJzI= -cloud.google.com/go/resourcesettings v1.5.0/go.mod h1:+xJF7QSG6undsQDfsCJyqWXyBwUoJLhetkRMDRnIoXA= -cloud.google.com/go/retail v1.12.0 h1:1Dda2OpFNzIb4qWgFZjYlpP7sxX3aLeypKG6A3H4Yys= -cloud.google.com/go/retail v1.12.0/go.mod h1:UMkelN/0Z8XvKymXFbD4EhFJlYKRx1FGhQkVPU5kF14= -cloud.google.com/go/run v0.9.0 h1:ydJQo+k+MShYnBfhaRHSZYeD/SQKZzZLAROyfpeD9zw= -cloud.google.com/go/run v0.9.0/go.mod h1:Wwu+/vvg8Y+JUApMwEDfVfhetv30hCG4ZwDR/IXl2Qg= -cloud.google.com/go/scheduler v1.9.0 h1:NpQAHtx3sulByTLe2dMwWmah8PWgeoieFPpJpArwFV0= -cloud.google.com/go/scheduler v1.9.0/go.mod h1:yexg5t+KSmqu+njTIh3b7oYPheFtBWGcbVUYF1GGMIc= -cloud.google.com/go/secretmanager v1.10.0 h1:pu03bha7ukxF8otyPKTFdDz+rr9sE3YauS5PliDXK60= -cloud.google.com/go/secretmanager v1.10.0/go.mod h1:MfnrdvKMPNra9aZtQFvBcvRU54hbPD8/HayQdlUgJpU= -cloud.google.com/go/security v1.13.0 h1:PYvDxopRQBfYAXKAuDpFCKBvDOWPWzp9k/H5nB3ud3o= -cloud.google.com/go/security v1.13.0/go.mod h1:Q1Nvxl1PAgmeW0y3HTt54JYIvUdtcpYKVfIB8AOMZ+0= -cloud.google.com/go/securitycenter v1.19.0 h1:AF3c2s3awNTMoBtMX3oCUoOMmGlYxGOeuXSYHNBkf14= -cloud.google.com/go/securitycenter v1.19.0/go.mod h1:LVLmSg8ZkkyaNy4u7HCIshAngSQ8EcIRREP3xBnyfag= -cloud.google.com/go/servicecontrol v1.11.1 h1:d0uV7Qegtfaa7Z2ClDzr9HJmnbJW7jn0WhZ7wOX6hLE= -cloud.google.com/go/servicecontrol v1.11.1/go.mod h1:aSnNNlwEFBY+PWGQ2DoM0JJ/QUXqV5/ZD9DOLB7SnUk= -cloud.google.com/go/servicedirectory v1.9.0 h1:SJwk0XX2e26o25ObYUORXx6torSFiYgsGkWSkZgkoSU= -cloud.google.com/go/servicedirectory v1.9.0/go.mod h1:29je5JjiygNYlmsGz8k6o+OZ8vd4f//bQLtvzkPPT/s= -cloud.google.com/go/servicemanagement v1.8.0 h1:fopAQI/IAzlxnVeiKn/8WiV6zKndjFkvi+gzu+NjywY= -cloud.google.com/go/servicemanagement v1.8.0/go.mod h1:MSS2TDlIEQD/fzsSGfCdJItQveu9NXnUniTrq/L8LK4= -cloud.google.com/go/serviceusage v1.6.0 h1:rXyq+0+RSIm3HFypctp7WoXxIA563rn206CfMWdqXX4= -cloud.google.com/go/serviceusage v1.6.0/go.mod h1:R5wwQcbOWsyuOfbP9tGdAnCAc6B9DRwPG1xtWMDeuPA= -cloud.google.com/go/shell v1.6.0 h1:wT0Uw7ib7+AgZST9eCDygwTJn4+bHMDtZo5fh7kGWDU= -cloud.google.com/go/shell v1.6.0/go.mod h1:oHO8QACS90luWgxP3N9iZVuEiSF84zNyLytb+qE2f9A= -cloud.google.com/go/spanner v1.7.0/go.mod h1:sd3K2gZ9Fd0vMPLXzeCrF6fq4i63Q7aTLW/lBIfBkIk= -cloud.google.com/go/spanner v1.45.0 h1:7VdjZ8zj4sHbDw55atp5dfY6kn1j9sam9DRNpPQhqR4= -cloud.google.com/go/spanner v1.45.0/go.mod h1:FIws5LowYz8YAE1J8fOS7DJup8ff7xJeetWEo5REA2M= -cloud.google.com/go/speech v1.15.0 h1:JEVoWGNnTF128kNty7T4aG4eqv2z86yiMJPT9Zjp+iw= -cloud.google.com/go/speech v1.15.0/go.mod h1:y6oH7GhqCaZANH7+Oe0BhgIogsNInLlz542tg3VqeYI= -cloud.google.com/go/storage v1.28.1/go.mod h1:Qnisd4CqDdo6BGs2AD5LLnEsmSQ80wQ5ogcBBKhU86Y= -cloud.google.com/go/storagetransfer v1.8.0 h1:5T+PM+3ECU3EY2y9Brv0Sf3oka8pKmsCfpQ07+91G9o= -cloud.google.com/go/storagetransfer v1.8.0/go.mod h1:JpegsHHU1eXg7lMHkvf+KE5XDJ7EQu0GwNJbbVGanEw= -cloud.google.com/go/talent v1.5.0 h1:nI9sVZPjMKiO2q3Uu0KhTDVov3Xrlpt63fghP9XjyEM= -cloud.google.com/go/talent v1.5.0/go.mod h1:G+ODMj9bsasAEJkQSzO2uHQWXHHXUomArjWQQYkqK6c= -cloud.google.com/go/texttospeech v1.6.0 h1:H4g1ULStsbVtalbZGktyzXzw6jP26RjVGYx9RaYjBzc= -cloud.google.com/go/texttospeech v1.6.0/go.mod h1:YmwmFT8pj1aBblQOI3TfKmwibnsfvhIBzPXcW4EBovc= -cloud.google.com/go/tpu v1.5.0 h1:/34T6CbSi+kTv5E19Q9zbU/ix8IviInZpzwz3rsFE+A= -cloud.google.com/go/tpu v1.5.0/go.mod h1:8zVo1rYDFuW2l4yZVY0R0fb/v44xLh3llq7RuV61fPM= -cloud.google.com/go/trace v1.9.0 h1:olxC0QHC59zgJVALtgqfD9tGk0lfeCP5/AGXL3Px/no= -cloud.google.com/go/trace v1.9.0/go.mod h1:lOQqpE5IaWY0Ixg7/r2SjixMuc6lfTFeO4QGM4dQWOk= -cloud.google.com/go/translate v1.7.0 h1:GvLP4oQ4uPdChBmBaUSa/SaZxCdyWELtlAaKzpHsXdA= -cloud.google.com/go/translate v1.7.0/go.mod h1:lMGRudH1pu7I3n3PETiOB2507gf3HnfLV8qlkHZEyos= -cloud.google.com/go/video v1.15.0 h1:upIbnGI0ZgACm58HPjAeBMleW3sl5cT84AbYQ8PWOgM= -cloud.google.com/go/video v1.15.0/go.mod h1:SkgaXwT+lIIAKqWAJfktHT/RbgjSuY6DobxEp0C5yTQ= -cloud.google.com/go/videointelligence v1.10.0 h1:Uh5BdoET8XXqXX2uXIahGb+wTKbLkGH7s4GXR58RrG8= -cloud.google.com/go/videointelligence v1.10.0/go.mod h1:LHZngX1liVtUhZvi2uNS0VQuOzNi2TkY1OakiuoUOjU= -cloud.google.com/go/vision v1.2.0 h1:/CsSTkbmO9HC8iQpxbK8ATms3OQaX3YQUeTMGCxlaK4= -cloud.google.com/go/vision/v2 v2.7.0 h1:8C8RXUJoflCI4yVdqhTy9tRyygSHmp60aP363z23HKg= -cloud.google.com/go/vision/v2 v2.7.0/go.mod h1:H89VysHy21avemp6xcf9b9JvZHVehWbET0uT/bcuY/0= -cloud.google.com/go/vmmigration v1.6.0 h1:Azs5WKtfOC8pxvkyrDvt7J0/4DYBch0cVbuFfCCFt5k= -cloud.google.com/go/vmmigration v1.6.0/go.mod h1:bopQ/g4z+8qXzichC7GW1w2MjbErL54rk3/C843CjfY= -cloud.google.com/go/vmwareengine v0.3.0 h1:b0NBu7S294l0gmtrT0nOJneMYgZapr5x9tVWvgDoVEM= -cloud.google.com/go/vmwareengine v0.3.0/go.mod h1:wvoyMvNWdIzxMYSpH/R7y2h5h3WFkx6d+1TIsP39WGY= -cloud.google.com/go/vpcaccess v1.6.0 h1:FOe6CuiQD3BhHJWt7E8QlbBcaIzVRddupwJlp7eqmn4= -cloud.google.com/go/vpcaccess v1.6.0/go.mod h1:wX2ILaNhe7TlVa4vC5xce1bCnqE3AeH27RV31lnmZes= -cloud.google.com/go/webrisk v1.8.0 h1:IY+L2+UwxcVm2zayMAtBhZleecdIFLiC+QJMzgb0kT0= -cloud.google.com/go/webrisk v1.8.0/go.mod h1:oJPDuamzHXgUc+b8SiHRcVInZQuybnvEW72PqTc7sSg= -cloud.google.com/go/websecurityscanner v1.5.0 h1:AHC1xmaNMOZtNqxI9Rmm87IJEyPaRkOxeI0gpAacXGk= -cloud.google.com/go/websecurityscanner v1.5.0/go.mod h1:Y6xdCPy81yi0SQnDY1xdNTNpfY1oAgXUlcfN3B3eSng= -cloud.google.com/go/workflows v1.10.0 h1:FfGp9w0cYnaKZJhUOMqCOJCYT/WlvYBfTQhFWV3sRKI= -cloud.google.com/go/workflows v1.10.0/go.mod h1:fZ8LmRmZQWacon9UCX1r/g/DfAXx5VcPALq2CxzdePw= -collectd.org v0.3.0 h1:iNBHGw1VvPJxH2B6RiFWFZ+vsjo1lCdRszBeOuwGi00= -contrib.go.opencensus.io/exporter/stackdriver v0.13.4/go.mod h1:aXENhDJ1Y4lIg4EUaVTwzvYETVNZk10Pu26tevFKLUc= -cosmossdk.io/api v0.2.6/go.mod h1:u/d+GAxil0nWpl1XnQL8nkziQDIWuBDhv8VnDm/s6dI= -cosmossdk.io/api v0.4.1-0.20230423204932-f0018246f107/go.mod h1:jR7k5ok90LxW2lFUXvd8Vpo/dr4PpiyVegxdm7b1ZdE= -cosmossdk.io/api v0.4.2-0.20230524233625-533ee7a552f7 h1:GsMlWP1/j4yfw1uE+u4Sy+ERlW+0LcHJ3Ax4svu+Mwo= -cosmossdk.io/api v0.4.2-0.20230524233625-533ee7a552f7/go.mod h1:qrVgOp7DIeAXa+Tt5dDjOC47bZCDrwx8ZHxrmy7STNE= -cosmossdk.io/client/v2 v2.0.0-20230524233625-533ee7a552f7 h1:97+t4vU7fH/ypwx/PSlWTpXpASw15x/jG3SwaRii7xc= -cosmossdk.io/client/v2 v2.0.0-20230524233625-533ee7a552f7/go.mod h1:kDkHvpnQ+5BZqR2vVOIbWql3bjpkExnDUuMClNjqM+k= -cosmossdk.io/collections v0.0.0-20230524233625-533ee7a552f7 h1:6avE5TAFdOR/aznKalPexkG6qWyuNy2jdmKTkMAewqY= -cosmossdk.io/collections v0.0.0-20230524233625-533ee7a552f7/go.mod h1:Q8TWfObCFd8yXBmE+fslKiEw99pBFEfon9PY+U9+rjc= -cosmossdk.io/core v0.3.2/go.mod h1:CO7vbe+evrBvHc0setFHL/u7nlY7HJGzdRSBkT/sirc= -cosmossdk.io/core v0.6.1/go.mod h1:g3MMBCBXtxbDWBURDVnJE7XML4BG5qENhs0gzkcpuFA= -cosmossdk.io/core v0.7.1-0.20230524233625-533ee7a552f7 h1:Qt8IPXaNwws+nCw0FIlKooNgzeP/NmFrPHCp61E1nTE= -cosmossdk.io/core v0.7.1-0.20230524233625-533ee7a552f7/go.mod h1:JKONBEQQvYVXW5VR7Cx0DOuF7FPiPD8sgU3TfeB5zDw= -cosmossdk.io/errors v1.0.0-beta.7/go.mod h1:mz6FQMJRku4bY7aqS/Gwfcmr/ue91roMEKAmDUDpBfE= -cosmossdk.io/errors v1.0.0-beta.7.0.20230524233625-533ee7a552f7 h1:HU72+RSFXurNjN/EsNtiTKS4i3ZoFke2+ewPzpzwHpE= -cosmossdk.io/errors v1.0.0-beta.7.0.20230524233625-533ee7a552f7/go.mod h1:TB05o6YXkZkzsc+6bZFAV5kZRBtoCU9tUkbeMIqEg0w= -cosmossdk.io/x/feegrant v0.0.0-20230117113717-50e7c4a4ceff h1:ASeogeTLcf487ykEMTN2z1p/vykpo2HdPkKC7JpE8pE= -github.com/ChainSafe/go-schnorrkel v0.0.0-20200405005733-88cbf1b4c40d h1:nalkkPQcITbvhmL4+C4cKA87NW0tfm3Kl9VXRoPywFg= -github.com/DATA-DOG/go-sqlmock v1.3.3 h1:CWUqKXe0s8A2z6qCgkP4Kru7wC11YoAnoupUKFDnH08= -github.com/confio/ics23/go v0.9.0 h1:cWs+wdbS2KRPZezoaaj+qBleXgUk5WOQFMP3CQFGTr4= github.com/cpuguy83/go-md2man v1.0.10 h1:BSKMNlYxDvnunlTymqtgONjNnaRV1sTpcovwwjF22jk= -github.com/creachadair/taskgroup v0.3.2 h1:zlfutDS+5XG40AOxcHDSThxKzns8Tnr9jnr6VqkYlkM= -github.com/go-playground/assert/v2 v2.0.1 h1:MsBgLAaY856+nPRTKrp3/OZK38U/wa0CcBYNjji3q3A= -github.com/go-sql-driver/mysql v1.7.0 h1:ueSltNNllEqE3qcWBTD0iQd3IpL/6U+mJxLkazJ7YPc= github.com/golang-jwt/jwt v3.2.2+incompatible h1:IfV12K8xAKAnZqdXVzCZ+TOjboZ2keLg81eXfW3O+oY= -github.com/gotestyourself/gotestyourself v2.2.0+incompatible h1:AQwinXlbQR2HvPjQZOmDhRqsv5mZf+Jb1RnSLxcqZcI= -github.com/gtank/merlin v0.1.1 h1:eQ90iG7K9pOhtereWsmyRJ6RAwcP4tHTDBHXNg+u5is= -github.com/gtank/ristretto255 v0.1.2 h1:JEqUCPA1NvLq5DwYtuzigd7ss8fwbYay9fi4/5uMzcc= -github.com/mattn/go-sqlite3 v1.11.0 h1:LDdKkqtYlom37fkvqs8rMPFKAMe8+SgjbwZ6ex1/A/Q= -github.com/mimoo/StrobeGo v0.0.0-20210601165009-122bf33a46e0 h1:QRUSJEgZn2Snx0EmT/QLXibWjSUDjKWvXIT19NBVp94= github.com/pelletier/go-toml v1.9.5 h1:4yBQzkHv+7BHq2PQUZF3Mx0IYxG7LsP222s7Agd3ve8= github.com/russross/blackfriday v1.6.0 h1:KqfZb0pUVN2lYqZUYRddxF4OR8ZMURnJIG5Y3VRLtww= -github.com/tendermint/tendermint v0.37.0-rc2 h1:2n1em+jfbhSv6QnBj8F6KHCpbIzZCB8KgcjidJUQNlY= -github.com/tendermint/tm-db v0.6.7 h1:fE00Cbl0jayAoqlExN6oyQJ7fR/ZtoVOmvPJ//+shu8= github.com/urfave/cli v1.22.1 h1:+mkCCcOFKPnCmVYVcURKps1Xe+3zP90gSYGNfRkjoIY= gotest.tools v2.2.0+incompatible h1:VsBPFP1AI068pPrMxtb/S8Zkgf9xEmTLJjfM+P5UIEo= diff --git a/magefiles/cosmos.go b/magefiles/cosmos.go index e051be29b..75e42db75 100644 --- a/magefiles/cosmos.go +++ b/magefiles/cosmos.go @@ -27,6 +27,7 @@ package main import ( "fmt" + "runtime" "strings" "github.com/magefile/mage/mg" @@ -98,15 +99,18 @@ func (c Cosmos) BuildRelease() error { // =========================================================================== // Builds a release version of the Cosmos SDK chain. -func (c Cosmos) Docker(node string) error { +func (c Cosmos) Docker(node, arch, versionFlag string) error { LogGreen("Build a release docker image for the Cosmos SDK chain...") + if versionFlag != "" { + version = versionFlag + } var path string if node == "base" { path = execDockerPath } else { path = baseDockerPath + node + "/Dockerfile" } - return c.dockerBuildNode("polard-"+node, path, goVersion, version) + return c.dockerBuildNode("polard-"+node, path, goVersion, version, arch, true) } func (c Cosmos) RunDockerLocal() error { @@ -134,14 +138,15 @@ func (c Cosmos) dockerBuildBeradWithX(goVersion string) error { // Builds a release version of the Cosmos SDK chain. func (c Cosmos) DockerDebug() error { LogGreen("Build a debug docker image for the Cosmos SDK chain...") - return c.dockerBuildNode("debug", execDockerPath, goVersion, version) + return c.dockerBuildNode("debug", execDockerPath, goVersion, version, runtime.GOARCH, false) } // Build a docker image for berad with the supplied arguments. -func (c Cosmos) dockerBuildNode(name, dockerFilePath, goVersion, imageVersion string) error { - return dockerBuildFn(false)( +func (c Cosmos) dockerBuildNode(name, dockerFilePath, goVersion, imageVersion, arch string, withX bool) error { + return dockerBuildFn(withX)( "--build-arg", "GO_VERSION="+goVersion, "--build-arg", "FOUNDRY_DIR="+precompileContractsDir, + "--build-arg", "GOARCH="+arch, "-f", dockerFilePath, "-t", name+":"+imageVersion, //TODO: do not hardcode, have ability to pass as arg ".", @@ -192,6 +197,18 @@ func (c Cosmos) TestIntegration() error { return testIntegration(c.directory() + "/testing/integration") } +func (c Cosmos) DockerBuildHive() error { + LogGreen("Building hive docker image for the Cosmos SDK chain...") + return c.dockerBuildNode("polard-base", execDockerPath, goVersion, "test-hive", runtime.GOARCH, false) +} + +func (c Cosmos) TestHive(sim string) error { + if err := c.DockerBuildHive(); err != nil { + return err + } + return Hive{}.Test(sim, "polard") +} + func dockerBuildFn(useX bool) func(args ...string) error { if useX { return dockerBuildX diff --git a/magefiles/go.mod b/magefiles/go.mod index b5785a602..057c38e3f 100644 --- a/magefiles/go.mod +++ b/magefiles/go.mod @@ -6,7 +6,7 @@ require ( github.com/bufbuild/buf v1.15.1 github.com/carolynvs/magex v0.9.0 github.com/cosmos/gosec/v2 v2.0.0-20230124142343-bf28a33fadf2 - github.com/ethereum/go-ethereum v1.11.4 + github.com/ethereum/go-ethereum v1.12.0 github.com/golangci/golangci-lint v1.52.0 github.com/google/addlicense v1.1.1 github.com/magefile/mage v1.14.0 @@ -36,9 +36,11 @@ require ( github.com/alecthomas/units v0.0.0-20211218093645-b94a6e3cc137 // indirect github.com/alexkohler/prealloc v1.0.0 // indirect github.com/alingse/asasalint v0.0.11 // indirect + github.com/allegro/bigcache v1.2.1 // indirect github.com/ashanbrown/forbidigo v1.5.1 // indirect github.com/ashanbrown/makezero v1.1.1 // indirect github.com/beorn7/perks v1.0.1 // indirect + github.com/bits-and-blooms/bitset v1.7.0 // indirect github.com/bkielbasa/cyclop v1.2.0 // indirect github.com/blizzy78/varnamelen v0.8.0 // indirect github.com/bmatcuk/doublestar/v4 v4.0.2 // indirect @@ -56,7 +58,10 @@ require ( github.com/cockroachdb/logtags v0.0.0-20230118201751-21c54148d20b // indirect github.com/cockroachdb/pebble v0.0.0-20230524183623-5a0074608315 // indirect github.com/cockroachdb/redact v1.1.4 // indirect + github.com/consensys/bavard v0.1.13 // indirect + github.com/consensys/gnark-crypto v0.10.0 // indirect github.com/cpuguy83/go-md2man/v2 v2.0.2 // indirect + github.com/crate-crypto/go-kzg-4844 v0.2.0 // indirect github.com/curioswitch/go-reassign v0.2.0 // indirect github.com/daixiang0/gci v0.10.1 // indirect github.com/dave/dst v0.27.0 // indirect @@ -71,8 +76,8 @@ require ( github.com/docker/docker-credential-helpers v0.7.0 // indirect github.com/docker/go-connections v0.4.0 // indirect github.com/docker/go-units v0.5.0 // indirect - github.com/edsrzf/mmap-go v1.1.0 // indirect github.com/esimonov/ifshort v1.0.4 // indirect + github.com/ethereum/c-kzg-4844 v0.2.0 // indirect github.com/ettle/strcase v0.1.1 // indirect github.com/fatih/color v1.15.0 // indirect github.com/fatih/structtag v1.2.0 // indirect @@ -136,8 +141,8 @@ require ( github.com/holiman/uint256 v1.2.2 // indirect github.com/huin/goupnp v1.1.0 // indirect github.com/inconshreveable/mousetrap v1.1.0 // indirect - github.com/influxdata/influxdb v1.8.3 // indirect github.com/influxdata/influxdb-client-go/v2 v2.4.0 // indirect + github.com/influxdata/influxdb1-client v0.0.0-20220302092344-a9ab5670611c // indirect github.com/influxdata/line-protocol v0.0.0-20210311194329-9aa0e372d097 // indirect github.com/jackpal/go-nat-pmp v1.0.2 // indirect github.com/jdxcode/netrc v0.0.0-20221124155335-4616370d1a84 // indirect @@ -174,6 +179,7 @@ require ( github.com/mitchellh/go-homedir v1.1.0 // indirect github.com/mitchellh/mapstructure v1.5.0 // indirect github.com/mitchellh/pointerstructure v1.2.1 // indirect + github.com/mmcloughlin/addchain v0.4.0 // indirect github.com/moby/term v0.0.0-20221205130635-1aeaba878587 // indirect github.com/moricho/tparallel v0.3.0 // indirect github.com/morikuni/aec v1.0.0 // indirect @@ -201,7 +207,7 @@ require ( github.com/quasilyte/gogrep v0.5.0 // indirect github.com/quasilyte/regex/syntax v0.0.0-20210819130434-b3f0c404a727 // indirect github.com/quasilyte/stdinfo v0.0.0-20220114132959-f7386bf02567 // indirect - github.com/rivo/uniseg v0.2.0 // indirect + github.com/rivo/uniseg v0.4.3 // indirect github.com/rogpeppe/go-internal v1.10.0 // indirect github.com/rs/cors v1.8.3 // indirect github.com/russross/blackfriday/v2 v2.1.0 // indirect @@ -230,6 +236,7 @@ require ( github.com/stretchr/objx v0.5.0 // indirect github.com/stretchr/testify v1.8.3 // indirect github.com/subosito/gotenv v1.4.2 // indirect + github.com/supranational/blst v0.3.11-0.20230406105308-e9dfc5ee724b // indirect github.com/syndtr/goleveldb v1.0.1-0.20220721030215-126854af5e6d // indirect github.com/t-yuki/gocover-cobertura v0.0.0-20180217150009-aaee18c8195c // indirect github.com/tdakkota/asciicheck v0.2.0 // indirect @@ -272,6 +279,7 @@ require ( google.golang.org/protobuf v1.30.0 // indirect gopkg.in/alecthomas/kingpin.v2 v2.2.6 // indirect gopkg.in/ini.v1 v1.67.0 // indirect + gopkg.in/natefinch/lumberjack.v2 v2.0.0 // indirect gopkg.in/natefinch/npipe.v2 v2.0.0-20160621034901-c1b8fa8bdcce // indirect gopkg.in/yaml.v2 v2.4.0 // indirect gopkg.in/yaml.v3 v3.0.1 // indirect @@ -281,4 +289,5 @@ require ( mvdan.cc/interfacer v0.0.0-20180901003855-c20040233aed // indirect mvdan.cc/lint v0.0.0-20170908181259-adc824a0674b // indirect mvdan.cc/unparam v0.0.0-20221223090309-7455f1af531d // indirect + rsc.io/tmplfunc v0.0.3 // indirect ) diff --git a/magefiles/go.sum b/magefiles/go.sum index 6efa4c9fd..9445caef1 100644 --- a/magefiles/go.sum +++ b/magefiles/go.sum @@ -5,14 +5,12 @@ cloud.google.com/go v0.26.0/go.mod h1:aQUYkXzVsufM+DwF1aE+0xfcU+56JwCaLick0ClmMTw= cloud.google.com/go v0.34.0/go.mod h1:aQUYkXzVsufM+DwF1aE+0xfcU+56JwCaLick0ClmMTw= cloud.google.com/go v0.38.0/go.mod h1:990N+gfupTy94rShfmMCWGDn0LpTmnzTp2qbd1dvSRU= -cloud.google.com/go v0.43.0/go.mod h1:BOSR3VbTLkk6FDC/TcffxP4NF/FFBGA5ku+jvKOP7pg= cloud.google.com/go v0.44.1/go.mod h1:iSa0KzasP4Uvy3f1mN/7PiObzGgflwredwwASm/v6AU= cloud.google.com/go v0.44.2/go.mod h1:60680Gw3Yr4ikxnPRS/oxxkBccT6SA1yMk63TGekxKY= cloud.google.com/go v0.44.3/go.mod h1:60680Gw3Yr4ikxnPRS/oxxkBccT6SA1yMk63TGekxKY= cloud.google.com/go v0.45.1/go.mod h1:RpBamKRgapWJb87xiFSdk4g1CME7QZg3uwTez+TSTjc= cloud.google.com/go v0.46.3/go.mod h1:a6bKKbmY7er1mI7TEI4lsAkts/mkhTSZK8w33B4RAg0= cloud.google.com/go v0.50.0/go.mod h1:r9sluTvynVuxRIOHXQEHMFffphuXHOMZMycpNR5e6To= -cloud.google.com/go v0.51.0/go.mod h1:hWtGJ6gnXH+KgDv+V0zFGDvpi07n3z8ZNj3T1RW0Gcw= cloud.google.com/go v0.52.0/go.mod h1:pXajvRH/6o3+F9jDHZWQ5PbGhn+o8w9qiu/CffaVdO4= cloud.google.com/go v0.53.0/go.mod h1:fp/UouUEsRkN6ryDKNW/Upv/JBKnv6WDthjR6+vze6M= cloud.google.com/go v0.54.0/go.mod h1:1rq2OEkV3YMf6n/9ZvGWI3GWw0VoqH/1x2nd8Is/bPc= @@ -29,7 +27,6 @@ cloud.google.com/go/bigquery v1.4.0/go.mod h1:S8dzgnTigyfTmLBfrtrhyYhwRxG72rYxvf cloud.google.com/go/bigquery v1.5.0/go.mod h1:snEHRnqQbz117VIFhE8bmtwIDY80NLUZUMb4Nv6dBIg= cloud.google.com/go/bigquery v1.7.0/go.mod h1://okPTzCYNXSlb24MZs83e2Do+h+VXtc4gLoIoXIAPc= cloud.google.com/go/bigquery v1.8.0/go.mod h1:J5hqkt3O0uAFnINi6JXValWIb1v0goeZM77hZzJN/fQ= -cloud.google.com/go/bigtable v1.2.0/go.mod h1:JcVAOl45lrTmQfLj7T6TxyMzIN/3FGGcFm+2xVAli2o= cloud.google.com/go/datastore v1.0.0/go.mod h1:LXYbyblFSglQ5pkeyhO+Qmw7ukd3C+pD7TKLgZqpHYE= cloud.google.com/go/datastore v1.1.0/go.mod h1:umbIZjpQpHh4hmRpGhH4tLFup+FVzqBi1b3c64qFpCk= cloud.google.com/go/pubsub v1.0.1/go.mod h1:R0Gpsv3s54REJCy4fxDixWD93lHJMoZTyQ2kNxGRt3I= @@ -42,7 +39,6 @@ cloud.google.com/go/storage v1.6.0/go.mod h1:N7U0C8pVQ/+NIKOBQyamJIeKQKkZ+mxpohl cloud.google.com/go/storage v1.8.0/go.mod h1:Wv1Oy7z6Yz3DshWRJFhqM/UCfaWIRTdp0RXyy7KQOVs= cloud.google.com/go/storage v1.10.0/go.mod h1:FLPqc6j+Ki4BU591ie1oL6qBQGu2Bl/tZ9ullr3+Kg0= cloud.google.com/go/storage v1.14.0/go.mod h1:GrKmX003DSIwi9o29oFT7YDnHYwZoctc3fOKtUw0Xmo= -collectd.org v0.3.0/go.mod h1:A/8DzQBkF6abtvrT2j/AU/4tiBgJWYyh0y/oB/4MlWE= dmitri.shuralyov.com/gpu/mtl v0.0.0-20190408044501-666a987793e9/go.mod h1:H6x//7gZCb22OMCxBHrMx7a5I7Hp++hsVxbQ4BYO7hU= github.com/Abirdcfly/dupword v0.0.11 h1:z6v8rMETchZXUIuHxYNmlUAuKuB21PeaSymTed16wgU= github.com/Abirdcfly/dupword v0.0.11/go.mod h1:wH8mVGuf3CP5fsBTkfWwwwKTjDnVVCxtU8d8rgeVYXA= @@ -59,7 +55,6 @@ github.com/BurntSushi/toml v1.2.1/go.mod h1:CxXYINrC8qIiEnFrOxCa7Jy5BFHlXnUU2pbi github.com/BurntSushi/xgb v0.0.0-20160522181843-27f122750802/go.mod h1:IVnqGOEym/WlBOVXweHU+Q+/VP0lqqI8lqeDx9IjBqo= github.com/CloudyKit/fastprinter v0.0.0-20200109182630-33d98a066a53/go.mod h1:+3IMCy2vIlbG1XG/0ggNQv0SvxCAIpPM5b1nCz56Xno= github.com/CloudyKit/jet/v3 v3.0.0/go.mod h1:HKQPgSJmdK8hdoAbKUUWajkHyHo4RaU5rMdUywE7VMo= -github.com/DATA-DOG/go-sqlmock v1.3.3/go.mod h1:f/Ixk793poVmq4qj/V1dPUg2JEAKC73Q5eFN3EC/SaM= github.com/DataDog/zstd v1.5.5 h1:oWf5W7GtOLgp6bciQYDmhHHjdhYkALu6S/5Ni9ZgSvQ= github.com/DataDog/zstd v1.5.5/go.mod h1:g4AWEaM3yOg3HYfnJ3YIawPnVdXJh9QME85blwSAmyw= github.com/Djarvur/go-err113 v0.0.0-20210108212216-aea10b59be24 h1:sHglBQTwgx+rWPdisA5ynNEsoARbiCBOyGcJM4/OzsM= @@ -74,14 +69,12 @@ github.com/Masterminds/semver/v3 v3.2.0 h1:3MEsd0SM6jqZojhjLWWeBY+Kcjy9i6MQAeY7Y github.com/Masterminds/semver/v3 v3.2.0/go.mod h1:qvl/7zhW3nngYb5+80sSMF+FG2BjYrf8m9wsX0PNOMQ= github.com/Microsoft/go-winio v0.6.0 h1:slsWYD/zyx7lCXoZVlvQrj0hPTM1HI4+v1sIda2yDvg= github.com/Microsoft/go-winio v0.6.0/go.mod h1:cTAf44im0RAYeL23bpB+fzCyDH2MJiz2BO69KH/soAE= -github.com/OneOfOne/xxhash v1.2.2/go.mod h1:HSdplMjZKSmBqAxg5vPj2TmRDmfkzw+cTzAElWljhcU= github.com/OpenPeeDeeP/depguard v1.1.1 h1:TSUznLjvp/4IUP+OQ0t/4jF4QUyxIcVX8YnghZdunyA= github.com/OpenPeeDeeP/depguard v1.1.1/go.mod h1:JtAMzWkmFEzDPyAd+W0NHl1lvpQKTvT9jnRVsohBKpc= github.com/Shopify/goreferrer v0.0.0-20181106222321-ec9c9a553398/go.mod h1:a1uqRtAwp2Xwc6WNPJEufxJ7fx3npB4UV/JOLmbu5I0= github.com/VictoriaMetrics/fastcache v1.12.1 h1:i0mICQuojGDL3KblA7wUNlY5lOK6a4bwt3uRKnkZU40= github.com/VictoriaMetrics/fastcache v1.12.1/go.mod h1:tX04vaqcNoQeGLD+ra5pU5sWkuxnzWhEzLwhP9w653o= github.com/ajg/form v1.5.1/go.mod h1:uL1WgH+h2mgNtvBq0339dVnzXdBETtL2LeUXaIv25UY= -github.com/ajstarks/svgo v0.0.0-20180226025133-644b8db467af/go.mod h1:K08gAheRH3/J6wwsYMMT4xOr94bZjxIelGM0+d/wbFw= github.com/alecthomas/template v0.0.0-20160405071501-a0175ee3bccc/go.mod h1:LOuyumcjzFXgccqObfd/Ljyb9UuFJ6TxHnclSeseNhc= github.com/alecthomas/template v0.0.0-20190718012654-fb15b899a751 h1:JYp7IbQjafoB+tBA3gMyHYHrpOtNuDiK/uB5uXxq5wM= github.com/alecthomas/template v0.0.0-20190718012654-fb15b899a751/go.mod h1:LOuyumcjzFXgccqObfd/Ljyb9UuFJ6TxHnclSeseNhc= @@ -94,11 +87,10 @@ github.com/alexkohler/prealloc v1.0.0 h1:Hbq0/3fJPQhNkN0dR95AVrr6R7tou91y0uHG5pO github.com/alexkohler/prealloc v1.0.0/go.mod h1:VetnK3dIgFBBKmg0YnD9F9x6Icjd+9cvfHR56wJVlKE= github.com/alingse/asasalint v0.0.11 h1:SFwnQXJ49Kx/1GghOFz1XGqHYKp21Kq1nHad/0WQRnw= github.com/alingse/asasalint v0.0.11/go.mod h1:nCaoMhw7a9kSJObvQyVzNTPBDbNpdocqrSP7t/cW5+I= -github.com/allegro/bigcache v1.2.1-0.20190218064605-e24eb225f156 h1:eMwmnE/GDgah4HI848JfFxHt+iPb26b4zyfspmqY0/8= github.com/allegro/bigcache v1.2.1-0.20190218064605-e24eb225f156/go.mod h1:Cb/ax3seSYIx7SuZdm2G2xzfwmv3TPSk2ucNfQESPXM= -github.com/andreyvit/diff v0.0.0-20170406064948-c7f18ee00883/go.mod h1:rCTlJbsFo29Kk6CurOXKm700vrz8f0KW0JNfpkRJY/8= +github.com/allegro/bigcache v1.2.1 h1:hg1sY1raCwic3Vnsvje6TT7/pnZba83LeFck5NrFKSc= +github.com/allegro/bigcache v1.2.1/go.mod h1:Cb/ax3seSYIx7SuZdm2G2xzfwmv3TPSk2ucNfQESPXM= github.com/andybalholm/brotli v1.0.1/go.mod h1:loMXtMfwqflxFJPmdbJO0a3KNoPuLBgiu3qAvBg8x/Y= -github.com/apache/arrow/go/arrow v0.0.0-20191024131854-af6fa24be0db/go.mod h1:VTxUBvSJ3s3eHAg65PNgrsn5BtqCRPdmyXh6rAfdxN0= github.com/armon/consul-api v0.0.0-20180202201655-eb2c6b5be1b6/go.mod h1:grANhF5doyWs3UAsr3K4I6qtAmlQcZDesFNEHPZAzj8= github.com/ashanbrown/forbidigo v1.5.1 h1:WXhzLjOlnuDYPYQo/eFlcFMi8X/kLfvWLYu6CSoebis= github.com/ashanbrown/forbidigo v1.5.1/go.mod h1:Y8j9jy9ZYAEHXdu723cUlraTqbzjKF1MUyfOKL+AjcU= @@ -110,14 +102,14 @@ github.com/beorn7/perks v0.0.0-20180321164747-3a771d992973/go.mod h1:Dwedo/Wpr24 github.com/beorn7/perks v1.0.0/go.mod h1:KWe93zE9D1o94FZ5RNwFwVgaQK1VOXiVxmqh+CedLV8= github.com/beorn7/perks v1.0.1 h1:VlbKKnNfV8bJzeqoa4cOKqO6bYr3WgKZxO8Z16+hsOM= github.com/beorn7/perks v1.0.1/go.mod h1:G2ZrVWU2WbWT9wwq4/hrbKbnv/1ERSJQ0ibhJ6rlkpw= +github.com/bits-and-blooms/bitset v1.7.0 h1:YjAGVd3XmtK9ktAbX8Zg2g2PwLIMjGREZJHlV4j7NEo= +github.com/bits-and-blooms/bitset v1.7.0/go.mod h1:gIdJ4wp64HaoK2YrL1Q5/N7Y16edYb8uY+O0FJTyyDA= github.com/bkielbasa/cyclop v1.2.0 h1:7Jmnh0yL2DjKfw28p86YTd/B4lRGcNuu12sKE35sM7A= github.com/bkielbasa/cyclop v1.2.0/go.mod h1:qOI0yy6A7dYC4Zgsa72Ppm9kONl0RoIlPbzot9mhmeI= github.com/blizzy78/varnamelen v0.8.0 h1:oqSblyuQvFsW1hbBHh1zfwrKe3kcSj0rnXkKzsQ089M= github.com/blizzy78/varnamelen v0.8.0/go.mod h1:V9TzQZ4fLJ1DSrjVDfl89H7aMnTvKkApdHeyESmyR7k= github.com/bmatcuk/doublestar/v4 v4.0.2 h1:X0krlUVAVmtr2cRoTqR8aDMrDqnB36ht8wpWTiQ3jsA= github.com/bmatcuk/doublestar/v4 v4.0.2/go.mod h1:xBQ8jztBU6kakFMg+8WGxn0c6z1fTSPVIjEY1Wr7jzc= -github.com/bmizerany/pat v0.0.0-20170815010413-6226ea591a40/go.mod h1:8rLXio+WjiTceGBHIoTvn60HIbs7Hm7bcHjyrSqYB9c= -github.com/boltdb/bolt v1.3.1/go.mod h1:clJnj/oiGkjum5o1McbSZDSLxVThjynRyGBgiAx27Ps= github.com/bombsimon/wsl/v3 v3.4.0 h1:RkSxjT3tmlptwfgEgTgU+KYKLI35p/tviNXNXiL2aNU= github.com/bombsimon/wsl/v3 v3.4.0/go.mod h1:KkIB+TXkqy6MvK9BDZVbZxKNYsE1/oLRJbIFtf14qqo= github.com/breml/bidichk v0.2.4 h1:i3yedFWWQ7YzjdZJHnPo9d/xURinSq3OM+gyM43K4/8= @@ -135,12 +127,10 @@ github.com/bufbuild/protocompile v0.5.1 h1:mixz5lJX4Hiz4FpqFREJHIXLfaLBntfaJv1h+ github.com/bufbuild/protocompile v0.5.1/go.mod h1:G5iLmavmF4NsYtpZFvE3B/zFch2GIY8+wjsYLR/lc40= github.com/butuzov/ireturn v0.1.1 h1:QvrO2QF2+/Cx1WA/vETCIYBKtRjc30vesdoPUNo1EbY= github.com/butuzov/ireturn v0.1.1/go.mod h1:Wh6Zl3IMtTpaIKbmwzqi6olnM9ptYQxxVacMsOEFPoc= -github.com/c-bata/go-prompt v0.2.2/go.mod h1:VzqtzE2ksDBcdln8G7mk2RX9QyGjH+OVqOCSiVIqS34= github.com/carolynvs/magex v0.9.0 h1:fWe7oshGv6zuei5Z6EI95RSlOKjIifBZ26myB9G+m/I= github.com/carolynvs/magex v0.9.0/go.mod h1:H1LW6RYJ/sNbisMmPe9E73aJZa8geKLKK9mBWLWz3ek= github.com/census-instrumentation/opencensus-proto v0.2.1/go.mod h1:f6KPmirojxKA12rnyqOA5BBL4O983OfeGPqjHWSTneU= github.com/cespare/cp v0.1.0 h1:SE+dxFebS7Iik5LK0tsi1k9ZCxEaFX4AjQmoyA+1dJk= -github.com/cespare/xxhash v1.1.0/go.mod h1:XrSqR1VqqWfGrhpAt58auRo0WTKS1nRRg3ghfAqPWnc= github.com/cespare/xxhash/v2 v2.1.1/go.mod h1:VGX0DQ3Q6kWi7AoAeZDth3/j3BFtOZR5XLFGgcrjCOs= github.com/cespare/xxhash/v2 v2.1.2/go.mod h1:VGX0DQ3Q6kWi7AoAeZDth3/j3BFtOZR5XLFGgcrjCOs= github.com/cespare/xxhash/v2 v2.2.0 h1:DC2CZ1Ep5Y4k3ZQ899DldepgrayRUGE6BBZ/cd9Cj44= @@ -169,6 +159,10 @@ github.com/cockroachdb/redact v1.1.3/go.mod h1:BVNblN9mBWFyMyqK1k3AAiSxhvhfK2oOZ github.com/cockroachdb/redact v1.1.4 h1:Y0XrVI2FAyofNyGveodTN//qdpPtFKcKTeCBsK3AHAQ= github.com/cockroachdb/redact v1.1.4/go.mod h1:BVNblN9mBWFyMyqK1k3AAiSxhvhfK2oOZZ2lK+dpvRg= github.com/codegangsta/inject v0.0.0-20150114235600-33e0aa1cb7c0/go.mod h1:4Zcjuz89kmFXt9morQgcfYZAYZ5n8WHjt81YYWIwtTM= +github.com/consensys/bavard v0.1.13 h1:oLhMLOFGTLdlda/kma4VOJazblc7IM5y5QPd2A/YjhQ= +github.com/consensys/bavard v0.1.13/go.mod h1:9ItSMtA/dXMAiL7BG6bqW2m3NdSEObYWoH223nGHukI= +github.com/consensys/gnark-crypto v0.10.0 h1:zRh22SR7o4K35SoNqouS9J/TKHTyU2QWaj5ldehyXtA= +github.com/consensys/gnark-crypto v0.10.0/go.mod h1:Iq/P3HHl0ElSjsg2E1gsMwhAyxnxoKK5nVyZKd+/KhU= github.com/containerd/stargz-snapshotter/estargz v0.12.1 h1:+7nYmHJb0tEkcRaAW+MHqoKaJYZmkikupxCqVtmPuY0= github.com/coreos/etcd v3.3.10+incompatible/go.mod h1:uF7uidLiAD3TWHmW31ZFd/JWoc32PjwdhPthX9715RE= github.com/coreos/go-etcd v2.0.0+incompatible/go.mod h1:Jez6KQU2B/sWsbdaef3ED8NzMklzPG4d5KIOhIy30Tk= @@ -178,6 +172,8 @@ github.com/cosmos/gosec/v2 v2.0.0-20230124142343-bf28a33fadf2/go.mod h1:NV9RgyPG github.com/cpuguy83/go-md2man v1.0.10/go.mod h1:SmD6nW6nTyfqj6ABTjUi3V3JVMnlJmwcJI5acqYI6dE= github.com/cpuguy83/go-md2man/v2 v2.0.2 h1:p1EgwI/C7NhT0JmVkwCD2ZBK8j4aeHQX2pMHHBfMQ6w= github.com/cpuguy83/go-md2man/v2 v2.0.2/go.mod h1:tgQtvFlXSQOSOSIRvRPT7W67SCa46tRHOmNcaadrF8o= +github.com/crate-crypto/go-kzg-4844 v0.2.0 h1:UVuHOE+5tIWrim4zf/Xaa43+MIsDCPyW76QhUpiMGj4= +github.com/crate-crypto/go-kzg-4844 v0.2.0/go.mod h1:SBP7ikXEgDnUPONgm33HtuDZEDtWa3L4QtN1ocJSEQ4= github.com/creack/pty v1.1.9/go.mod h1:oKZEueFk5CKHvIhNR5MUki03XCEU+Q6VDXinZuGJ33E= github.com/creack/pty v1.1.18 h1:n56/Zwd5o6whRC5PMGretI4IdRLlmBXYNjScPaBgsbY= github.com/curioswitch/go-reassign v0.2.0 h1:G9UZyOcpk/d7Gd6mqYgd8XYWFMw/znxwGDUstnC9DIo= @@ -187,7 +183,6 @@ github.com/daixiang0/gci v0.10.1 h1:eheNA3ljF6SxnPD/vE4lCBusVHmV3Rs3dkKvFrJ7MR0= github.com/daixiang0/gci v0.10.1/go.mod h1:xtHP9N7AHdNvtRNfcx9gwTDfw7FRJx4bZUsiEfiNNAI= github.com/dave/dst v0.27.0 h1:vh51Zc/7bH5YfbspFsEizLuQ1xm6zDQWMJiIlZhiNQ4= github.com/dave/dst v0.27.0/go.mod h1:eF/UOVnw9Ech3NkZFCdtujtISJFRYf11+I93p+RI5S4= -github.com/dave/jennifer v1.2.0/go.mod h1:fIb+770HOpJ2fmN9EPPKOqm1vMGhB+TwXKMZhrIygKg= github.com/dave/jennifer v1.5.0 h1:HmgPN93bVDpkQyYbqhCHj5QlgvUkvEOzMyEvKLgCRrg= github.com/davecgh/go-spew v1.1.0/go.mod h1:J7Y8YcW2NihsgmVo/mv3lAwl/skON4iLHjSsI+c5H38= github.com/davecgh/go-spew v1.1.1 h1:vj9j/u1bqnvCEfJOwUhtlOARqs3+rkHYY13jYWTU97c= @@ -204,7 +199,6 @@ github.com/denis-tingaikin/go-header v0.4.3 h1:tEaZKAlqql6SKCY++utLmkPLd6K8IBM20 github.com/denis-tingaikin/go-header v0.4.3/go.mod h1:0wOCWuN71D5qIgE2nz9KrKmuYBAC2Mra5RassOIQ2/c= github.com/dgraph-io/badger v1.6.0/go.mod h1:zwt7syl517jmP8s94KqSxTlM6IMsdhYy6psNgSztDR4= github.com/dgrijalva/jwt-go v3.2.0+incompatible/go.mod h1:E3ru+11k8xSBh+hMPgOLZmtrrCbhqsmaPHjLKYnJCaQ= -github.com/dgryski/go-bitstream v0.0.0-20180413035011-3522498ce2c8/go.mod h1:VMaSuZ+SZcx/wljOQKvp5srsbCiKDEb6K2wC4+PiBmQ= github.com/dgryski/go-farm v0.0.0-20190423205320-6a90982ecee2/go.mod h1:SqUrOPUnsFjfmXRMNPybcSiG0BgUW2AuFH8PAnS2iTw= github.com/docker/cli v23.0.1+incompatible h1:LRyWITpGzl2C9e9uGxzisptnxAn1zfZKXy13Ul2Q5oM= github.com/docker/cli v23.0.1+incompatible/go.mod h1:JLrzqnKDaYBop7H2jaqPtU4hHvMKP+vjCwu2uszcLI8= @@ -221,9 +215,6 @@ github.com/docker/go-units v0.5.0/go.mod h1:fgPhTUdO+D/Jk86RDLlptpiXQzgHJF7gydDD github.com/dsnet/compress v0.0.2-0.20210315054119-f66993602bf5/go.mod h1:qssHWj60/X5sZFNxpG4HBPDHVqxNm4DfnCKgrbZOT+s= github.com/dsnet/golib v0.0.0-20171103203638-1ea166775780/go.mod h1:Lj+Z9rebOhdfkVLjJ8T6VcRQv3SXugXy999NBtR9aFY= github.com/dustin/go-humanize v1.0.0/go.mod h1:HtrtbFcZ19U5GC7JDqmcUSB87Iq5E25KnS6fMYU6eOk= -github.com/eclipse/paho.mqtt.golang v1.2.0/go.mod h1:H9keYFcgq3Qr5OUJm/JZI/i6U7joQ8SYLhZwfeOo6Ts= -github.com/edsrzf/mmap-go v1.1.0 h1:6EUwBLQ/Mcr1EYLE4Tn1VdW1A4ckqCQWZBw8Hr0kjpQ= -github.com/edsrzf/mmap-go v1.1.0/go.mod h1:19H/e8pUPLicwkyNgOykDXkJ9F0MHE+Z52B8EIth78Q= github.com/eknkc/amber v0.0.0-20171010120322-cdade1c07385/go.mod h1:0vRUJqYpeSZifjYj7uP3BG/gKcuzL9xWVV/Y+cK33KM= github.com/envoyproxy/go-control-plane v0.9.0/go.mod h1:YTl/9mNaCwkRvm6d1a2C3ymFceY/DCBVvsKhRF0iEA4= github.com/envoyproxy/go-control-plane v0.9.1-0.20191026205805-5f8ba28d4473/go.mod h1:YTl/9mNaCwkRvm6d1a2C3ymFceY/DCBVvsKhRF0iEA4= @@ -235,8 +226,10 @@ github.com/envoyproxy/protoc-gen-validate v0.1.0/go.mod h1:iSmxcyjqTsJpI2R4NaDN7 github.com/esimonov/ifshort v1.0.4 h1:6SID4yGWfRae/M7hkVDVVyppy8q/v9OuxNdmjLQStBA= github.com/esimonov/ifshort v1.0.4/go.mod h1:Pe8zjlRrJ80+q2CxHLfEOfTwxCZ4O+MuhcHcfgNWTk0= github.com/etcd-io/bbolt v1.3.3/go.mod h1:ZF2nL25h33cCyBtcyWeZ2/I3HQOfTP+0PIEvHjkjCrw= -github.com/ethereum/go-ethereum v1.11.4 h1:KG81SnUHXWk8LJB3mBcHg/E2yLvXoiPmRMCIRxgx3cE= -github.com/ethereum/go-ethereum v1.11.4/go.mod h1:it7x0DWnTDMfVFdXcU6Ti4KEFQynLHVRarcSlPr0HBo= +github.com/ethereum/c-kzg-4844 v0.2.0 h1:+cUvymlnoDDQgMInp25Bo3OmLajmmY8mLJ/tLjqd77Q= +github.com/ethereum/c-kzg-4844 v0.2.0/go.mod h1:WI2Nd82DMZAAZI1wV2neKGost9EKjvbpQR9OqE5Qqa8= +github.com/ethereum/go-ethereum v1.12.0 h1:bdnhLPtqETd4m3mS8BGMNvBTf36bO5bx/hxE2zljOa0= +github.com/ethereum/go-ethereum v1.12.0/go.mod h1:/oo2X/dZLJjf2mJ6YT9wcWxa4nNJDBKDBU6sFIpx1Gs= github.com/ettle/strcase v0.1.1 h1:htFueZyVeE1XNnMEfbqp5r67qAN/4r6ya1ysq8Q+Zcw= github.com/ettle/strcase v0.1.1/go.mod h1:hzDLsPC7/lwKyBOywSHEP89nt2pDgdy+No1NBA9o9VY= github.com/fasthttp-contrib/websocket v0.0.0-20160511215533-1f3b11f56072/go.mod h1:duJ4Jxv5lDcvg4QuQr0oowTf7dz4/CR8NtyCooz9HL8= @@ -251,7 +244,6 @@ github.com/firefart/nonamedreturns v1.0.4 h1:abzI1p7mAEPYuR4A+VLKn4eNDOycjYo2phm github.com/firefart/nonamedreturns v1.0.4/go.mod h1:TDhe/tjI1BXo48CmYbUduTV7BdIga8MAO/xbKdcVsGI= github.com/fjl/memsize v0.0.1 h1:+zhkb+dhUgx0/e+M8sF0QqiouvMQUiKR+QYvdxIOKcQ= github.com/fjl/memsize v0.0.1/go.mod h1:VvhXpOYNQvB+uIk2RvXzuaQtkQJzzIx6lSBe1xv7hi0= -github.com/fogleman/gg v1.2.1-0.20190220221249-0403632d5b90/go.mod h1:R/bRT+9gY/C5z7JzPU0zXsXHKM4/ayA+zqcVNZzPa1k= github.com/frankban/quicktest v1.14.4 h1:g2rn0vABPOOXmZUj+vbmUp0lPoXEMuhTpIluN0XL9UY= github.com/fsnotify/fsnotify v1.4.7/go.mod h1:jwhsz4b93w/PPRr/qN1Yymfu8t87LnFCMoQvtojpjFo= github.com/fsnotify/fsnotify v1.4.9/go.mod h1:znqG4EE+3YCdAaPaxE2ZRY/06pZUdp0tY4IgpuI1SZQ= @@ -271,8 +263,6 @@ github.com/getsentry/sentry-go v0.21.0/go.mod h1:lc76E2QywIyW8WuBnwl8Lc4bkmQH4+w github.com/ghodss/yaml v1.0.0/go.mod h1:4dBDuWmgqj2HViK6kFavaiC9ZROes6MMH2rRYeMEF04= github.com/gin-contrib/sse v0.0.0-20190301062529-5545eab6dad3/go.mod h1:VJ0WA2NBN22VlZ2dKZQPAPnyWw5XTlK1KymzLKsr59s= github.com/gin-gonic/gin v1.4.0/go.mod h1:OW2EZn3DO8Ln9oIKOvM++LBO+5UPHJJDH72/q/3rZdM= -github.com/glycerine/go-unsnap-stream v0.0.0-20180323001048-9f0cb55181dd/go.mod h1:/20jfyN9Y5QPEAprSgKAUr+glWDY39ZiUEAYOEv5dsE= -github.com/glycerine/goconvey v0.0.0-20190410193231-58a59202ab31/go.mod h1:Ogl1Tioa0aV7gstGFO7KhffUsb9M4ydbEbbxpcEDc24= github.com/go-check/check v0.0.0-20180628173108-788fd7840127/go.mod h1:9ES+weclKsC9YodN5RgxqK/VD9HM9JsCSh7rNhMZE98= github.com/go-chi/chi/v5 v5.0.0/go.mod h1:BBug9lr0cqtdAhsu6R4AAdvufI0/XBzAQSsUqJpoZOs= github.com/go-chi/chi/v5 v5.0.8 h1:lD+NLqFcAi1ovnVZpsnObHGW4xb4J8lNmoYVfECH1Y0= @@ -300,7 +290,6 @@ github.com/go-ole/go-ole v1.2.6 h1:/Fpf6oFPoeFik9ty7siob0G6Ke8QvQEuVcuChpwXzpY= github.com/go-ole/go-ole v1.2.6/go.mod h1:pprOEPIfldk/42T2oK7lQ4v4JSDwmV0As9GaiUsvbm0= github.com/go-openapi/jsonpointer v0.19.5/go.mod h1:Pl9vOtqEWErmShwVjC8pYs9cog34VGT37dQOVbmoatg= github.com/go-openapi/swag v0.19.5/go.mod h1:POnQmlKehdgb5mhVOsnJFsivZCEZ/vjK9gh66Z9tfKk= -github.com/go-sql-driver/mysql v1.4.1/go.mod h1:zAC/RDZ24gD3HViQzih4MyKcchzm+sOG5ZlKdlhCg5w= github.com/go-stack/stack v1.8.0/go.mod h1:v0f6uXyyMGvRgIKkXu+yp6POWl0qKG85gN/melR3HDY= github.com/go-stack/stack v1.8.1 h1:ntEHSVwIt7PNXNpgPmVfMrNhLtgjlmnZha2kOpuRiDw= github.com/go-stack/stack v1.8.1/go.mod h1:dcoOX6HbPZSZptuspn9bctJ+N/CnF5gGygcUP3XYfe4= @@ -333,22 +322,18 @@ github.com/gobwas/pool v0.2.0/go.mod h1:q8bcK0KcYlCgd9e7WYLm9LpyS+YeLd8JVDW6Wezm github.com/gobwas/ws v1.0.2/go.mod h1:szmBTxLgaFppYjEmNtny/v3w89xOydFnnZMcgRRu/EM= github.com/gofrs/flock v0.8.1 h1:+gYjHKf32LDeiEEFhQaotPbLuUXjY5ZqxKgXy7n59aw= github.com/gofrs/flock v0.8.1/go.mod h1:F1TvTiK9OcQqauNUHlbJvyl9Qa1QvF/gOUDKA14jxHU= -github.com/gofrs/uuid v3.3.0+incompatible/go.mod h1:b2aQJv3Z4Fp6yNu3cdSllBxTCLRxnplIgP/c0N/04lM= github.com/gofrs/uuid/v5 v5.0.0 h1:p544++a97kEL+svbcFbCQVM9KFu0Yo25UoISXGNNH9M= github.com/gofrs/uuid/v5 v5.0.0/go.mod h1:CDOjlDMVAtN56jqyRUZh58JT31Tiw7/oQyEXZV+9bD8= github.com/gogo/googleapis v0.0.0-20180223154316-0cd9801be74a/go.mod h1:gf4bu3Q80BeJ6H1S1vYPm8/ELATdvryBaNFGgqEef3s= github.com/gogo/googleapis v1.4.1/go.mod h1:2lpHqI5OcWCtVElxXnPt+s8oJvMpySlOyM6xDCrzib4= github.com/gogo/protobuf v1.1.1/go.mod h1:r8qH/GZQm5c6nD/R0oafs1akxWv10x8SbQlK7atdtwQ= github.com/gogo/protobuf v1.2.0/go.mod h1:r8qH/GZQm5c6nD/R0oafs1akxWv10x8SbQlK7atdtwQ= -github.com/gogo/protobuf v1.3.1/go.mod h1:SlYgWuQ5SjCEi6WLHjHCa1yvBfUnHcTbrrZtXPKa29o= github.com/gogo/protobuf v1.3.2 h1:Ov1cvc58UF3b5XjBnZv7+opcTcQFZebYjWzi34vdm4Q= github.com/gogo/protobuf v1.3.2/go.mod h1:P1XiOD3dCwIKUDQYPy72D8LYyHL2YPYrpS2s69NZV8Q= github.com/gogo/status v1.1.0/go.mod h1:BFv9nrluPLmrS0EmGVvLaPNmRosr9KapBYd5/hpY1WM= github.com/golang-jwt/jwt v3.2.2+incompatible/go.mod h1:8pz2t5EyA70fFQQSrl6XZXzqecmYZeUEB8OUGHkxJ+I= github.com/golang-jwt/jwt/v4 v4.5.0 h1:7cYmW1XlMY7h7ii7UhUyChSgS5wUJEnm9uZVTGqOWzg= github.com/golang-jwt/jwt/v4 v4.5.0/go.mod h1:m21LjoU+eqJr34lmDMbreY2eSTRJ1cv77w39/MY0Ch0= -github.com/golang/freetype v0.0.0-20170609003504-e2365dfdc4a0/go.mod h1:E/TSTwGwJL78qG/PmXZO1EjYhfJinVAhrmmHX6Z8B9k= -github.com/golang/geo v0.0.0-20190916061304-5b978397cfec/go.mod h1:QZ0nwyI2jOfgRAoBvP+ab5aRr7c9x7lhGEJrKvBwjWI= github.com/golang/glog v0.0.0-20160126235308-23def4e6c14b/go.mod h1:SBH7ygxi8pfUlaOkMMuAQtPIUF8ecWP5IEl/CR7VP2Q= github.com/golang/groupcache v0.0.0-20190702054246-869f871628b6/go.mod h1:cIg4eruTrX1D+g88fzRXU5OdNfaM+9IcxsU14FzY7Hc= github.com/golang/groupcache v0.0.0-20191227052852-215e87163ea7/go.mod h1:cIg4eruTrX1D+g88fzRXU5OdNfaM+9IcxsU14FzY7Hc= @@ -378,7 +363,6 @@ github.com/golang/protobuf v1.5.0/go.mod h1:FsONVRAS9T7sI+LIUmWTfcYkHO4aIWwzhcaS github.com/golang/protobuf v1.5.2/go.mod h1:XVQd3VNwM+JqD3oG2Ue2ip4fOMUkwXdXDdiuN0vRsmY= github.com/golang/protobuf v1.5.3 h1:KhyjKVUg7Usr/dYsdSqoFveMYd5ko72D+zANwlG1mmg= github.com/golang/protobuf v1.5.3/go.mod h1:XVQd3VNwM+JqD3oG2Ue2ip4fOMUkwXdXDdiuN0vRsmY= -github.com/golang/snappy v0.0.0-20180518054509-2e65f85255db/go.mod h1:/XxbfmMg8lxefKM7IXC3fBNl/7bRcc72aCRzEWrmP2Q= github.com/golang/snappy v0.0.2/go.mod h1:/XxbfmMg8lxefKM7IXC3fBNl/7bRcc72aCRzEWrmP2Q= github.com/golang/snappy v0.0.4/go.mod h1:/XxbfmMg8lxefKM7IXC3fBNl/7bRcc72aCRzEWrmP2Q= github.com/golang/snappy v0.0.5-0.20220116011046-fa5810519dcb h1:PBC98N2aIaM3XXiurYmW7fx4GZkL8feAMVq7nEjURHk= @@ -409,7 +393,6 @@ github.com/google/addlicense v1.1.1 h1:jpVf9qPbU8rz5MxKo7d+RMcNHkqxi4YJi/laauX4a github.com/google/addlicense v1.1.1/go.mod h1:Sm/DHu7Jk+T5miFHHehdIjbi4M5+dJDRS3Cq0rncIxA= github.com/google/btree v0.0.0-20180813153112-4030bb1f1f0c/go.mod h1:lNA+9X1NB3Zf8V7Ke586lFgjr2dZNuvo3lPJSGZ5JPQ= github.com/google/btree v1.0.0/go.mod h1:lNA+9X1NB3Zf8V7Ke586lFgjr2dZNuvo3lPJSGZ5JPQ= -github.com/google/flatbuffers v1.11.0/go.mod h1:1AeVuKshWv4vARoZatz6mlQ0JxURH0Kv5+zNeJKJCa8= github.com/google/go-cmp v0.2.0/go.mod h1:oXzfMopK8JAjlY9xF4vHSVASa0yLyX7SntLO5aqRK0M= github.com/google/go-cmp v0.3.0/go.mod h1:8QqcDgzrUqlUb/G2PQTWiueGozuR1884gddMywk6iLU= github.com/google/go-cmp v0.3.1/go.mod h1:8QqcDgzrUqlUb/G2PQTWiueGozuR1884gddMywk6iLU= @@ -446,6 +429,7 @@ github.com/google/pprof v0.0.0-20211214055906-6f57359322fd/go.mod h1:KgnwoLYCZ8I github.com/google/pprof v0.0.0-20230309165930-d61513b1440d h1:um9/pc7tKMINFfP1eE7Wv6PRGXlcCSJkVajF7KJw3uQ= github.com/google/pprof v0.0.0-20230309165930-d61513b1440d/go.mod h1:79YE0hCXdHag9sBkw2o+N/YnZtTkXi0UT9Nnixa5eYk= github.com/google/renameio v0.1.0/go.mod h1:KWCgfxg9yswjAJkECMjeO8J8rahYeXnNhOm40UhjYkI= +github.com/google/subcommands v1.2.0/go.mod h1:ZjhPrFU+Olkh9WazFPsl27BQ4UPiG37m3yTrtFlrHVk= github.com/google/uuid v1.1.2/go.mod h1:TIyPZe4MgqvfeYDBFedMoGGpEw/LqOeaOT+nhxU+yHo= github.com/google/uuid v1.3.0 h1:t6JiXgmwXMjEs8VusXIJk2BXHsn+wx8BZdTaoZ5fu7I= github.com/google/uuid v1.3.0/go.mod h1:TIyPZe4MgqvfeYDBFedMoGGpEw/LqOeaOT+nhxU+yHo= @@ -506,20 +490,13 @@ github.com/imkira/go-interpol v1.1.0/go.mod h1:z0h2/2T3XF8kyEPpRgJ3kmNv+C43p+I/C github.com/inconshreveable/mousetrap v1.0.0/go.mod h1:PxqpIevigyE2G7u3NXJIT2ANytuPF1OarO4DADm73n8= github.com/inconshreveable/mousetrap v1.1.0 h1:wN+x4NVGpMsO7ErUn/mUI3vEoE6Jt13X2s0bqwp9tc8= github.com/inconshreveable/mousetrap v1.1.0/go.mod h1:vpF70FUmC8bwa3OWnCshd2FqLfsEA9PFc4w1p2J65bw= -github.com/influxdata/flux v0.65.1/go.mod h1:J754/zds0vvpfwuq7Gc2wRdVwEodfpCFM7mYlOw2LqY= -github.com/influxdata/influxdb v1.8.3 h1:WEypI1BQFTT4teLM+1qkEcvUi0dAvopAI/ir0vAiBg8= -github.com/influxdata/influxdb v1.8.3/go.mod h1:JugdFhsvvI8gadxOI6noqNeeBHvWNTbfYGtiAn+2jhI= github.com/influxdata/influxdb-client-go/v2 v2.4.0 h1:HGBfZYStlx3Kqvsv1h2pJixbCl/jhnFtxpKFAv9Tu5k= github.com/influxdata/influxdb-client-go/v2 v2.4.0/go.mod h1:vLNHdxTJkIf2mSLvGrpj8TCcISApPoXkaxP8g9uRlW8= -github.com/influxdata/influxql v1.1.1-0.20200828144457-65d3ef77d385/go.mod h1:gHp9y86a/pxhjJ+zMjNXiQAA197Xk9wLxaz+fGG+kWk= -github.com/influxdata/line-protocol v0.0.0-20180522152040-32c6aa80de5e/go.mod h1:4kt73NQhadE3daL3WhR5EJ/J2ocX0PZzwxQ0gXJ7oFE= +github.com/influxdata/influxdb1-client v0.0.0-20220302092344-a9ab5670611c h1:qSHzRbhzK8RdXOsAdfDgO49TtqC1oZ+acxPrkfTxcCs= +github.com/influxdata/influxdb1-client v0.0.0-20220302092344-a9ab5670611c/go.mod h1:qj24IKcXYK6Iy9ceXlo3Tc+vtHo9lIhSX5JddghvEPo= github.com/influxdata/line-protocol v0.0.0-20200327222509-2487e7298839/go.mod h1:xaLFMmpvUxqXtVkUJfg9QmT88cDaCJ3ZKgdZ78oO8Qo= github.com/influxdata/line-protocol v0.0.0-20210311194329-9aa0e372d097 h1:vilfsDSy7TDxedi9gyBkMvAirat/oRcL0lFdJBf6tdM= github.com/influxdata/line-protocol v0.0.0-20210311194329-9aa0e372d097/go.mod h1:xaLFMmpvUxqXtVkUJfg9QmT88cDaCJ3ZKgdZ78oO8Qo= -github.com/influxdata/promql/v2 v2.12.0/go.mod h1:fxOPu+DY0bqCTCECchSRtWfc+0X19ybifQhZoQNF5D8= -github.com/influxdata/roaring v0.4.13-0.20180809181101-fc520f41fab6/go.mod h1:bSgUQ7q5ZLSO+bKBGqJiCBGAl+9DxyW63zLTujjUlOE= -github.com/influxdata/tdigest v0.0.0-20181121200506-bf2b5ad3c0a9/go.mod h1:Js0mqiSBE6Ffsg94weZZ2c+v/ciT8QRHFOap7EKDrR0= -github.com/influxdata/usage-client v0.0.0-20160829180054-6d3895376368/go.mod h1:Wbbw6tYNvwa5dlB6304Sd+82Z3f7PmVZHVKU637d4po= github.com/iris-contrib/blackfriday v2.0.0+incompatible/go.mod h1:UzZ2bDEoaSGPbkg6SAB4att1aAwTmVIx/5gCVqeyUdI= github.com/iris-contrib/go.uuid v2.0.0+incompatible/go.mod h1:iz2lgM/1UnEf1kP0L/+fafWORmlnuysV2EMP8MW+qe0= github.com/iris-contrib/jade v1.1.3/go.mod h1:H/geBymxJhShH5kecoiOCSssPX7QWYH7UaeZTSWddIk= @@ -544,24 +521,20 @@ github.com/json-iterator/go v1.1.11/go.mod h1:KdQUCv79m/52Kvf8AW2vK1V8akMuk1QjK/ github.com/json-iterator/go v1.1.12/go.mod h1:e30LSqwooZae/UwlEbR2852Gd8hjQvJoHmT4TnhNGBo= github.com/jstemmer/go-junit-report v0.0.0-20190106144839-af01ea7f8024/go.mod h1:6v2b51hI/fHJwM22ozAgKL4VKDeJcHhJFhtBdhmNjmU= github.com/jstemmer/go-junit-report v0.9.1/go.mod h1:Brl9GWCQeLvo8nXZwPNNblvFj/XSXhF0NWZEnDohbsk= -github.com/jsternberg/zap-logfmt v1.0.0/go.mod h1:uvPs/4X51zdkcm5jXl5SYoN+4RK21K8mysFmDaM/h+o= github.com/jtolds/gls v4.20.0+incompatible/go.mod h1:QJZ7F/aHp+rZTRtaJ1ow/lLfFfVYBRgL+9YlvaHOwJU= github.com/julienschmidt/httprouter v1.2.0/go.mod h1:SYymIcj16QtmaHHD7aYtjjsJG7VTCxuUUipMqKk8s4w= github.com/julienschmidt/httprouter v1.3.0 h1:U0609e9tgbseu3rBINet9P48AI/D3oJs4dN7jwJOQ1U= github.com/julienschmidt/httprouter v1.3.0/go.mod h1:JR6WtHb+2LUe8TCKY3cZOxFyyO8IZAc4RVcycCCAKdM= github.com/julz/importas v0.1.0 h1:F78HnrsjY3cR7j0etXy5+TU1Zuy7Xt08X/1aJnH5xXY= github.com/julz/importas v0.1.0/go.mod h1:oSFU2R4XK/P7kNBrnL/FEQlDGN1/6WoxXEjSSXO0DV0= -github.com/jung-kurt/gofpdf v1.0.3-0.20190309125859-24315acbbda5/go.mod h1:7Id9E/uU8ce6rXgefFLlgrJj/GYY22cpxn+r32jIOes= github.com/junk1tm/musttag v0.5.0 h1:bV1DTdi38Hi4pG4OVWa7Kap0hi0o7EczuK6wQt9zPOM= github.com/junk1tm/musttag v0.5.0/go.mod h1:PcR7BA+oREQYvHwgjIDmw3exJeds5JzRcvEJTfjrA0M= -github.com/jwilder/encoding v0.0.0-20170811194829-b4e1701a28ef/go.mod h1:Ct9fl0F6iIOGgxJ5npU/IUOhOhqlVrGjyIZc8/MagT0= github.com/k0kubun/colorstring v0.0.0-20150214042306-9440f1994b88/go.mod h1:3w7q1U84EfirKl04SVQ/s7nPm1ZPhiXd34z40TNz36k= github.com/kataras/golog v0.0.10/go.mod h1:yJ8YKCmyL+nWjERB90Qwn+bdyBZsaQwU3bTVFgkFIp8= github.com/kataras/iris/v12 v12.1.8/go.mod h1:LMYy4VlP67TQ3Zgriz8RE2h2kMZV2SgMYbq3UhfoFmE= github.com/kataras/neffos v0.0.14/go.mod h1:8lqADm8PnbeFfL7CLXh1WHw53dG27MC3pgi2R1rmoTE= github.com/kataras/pio v0.0.2/go.mod h1:hAoW0t9UmXi4R5Oyq5Z4irTbaTsOemSrDGUtaTl7Dro= github.com/kataras/sitemap v0.0.5/go.mod h1:KY2eugMKiPwsJgx7+U103YZehfvNGOXURubcGyk0Bz8= -github.com/kisielk/errcheck v1.2.0/go.mod h1:/BMXB+zMLi60iA8Vv6Ksmxu/1UDYcXs4uQLJ+jE2L00= github.com/kisielk/errcheck v1.5.0/go.mod h1:pFxgyoBC7bSaBwPgfKdkLd5X25qrDl4LWUI2bnpBCr8= github.com/kisielk/errcheck v1.6.3 h1:dEKh+GLHcWm2oN34nMvDzn1sqI0i0WxPvrgiJA5JuM8= github.com/kisielk/errcheck v1.6.3/go.mod h1:nXw/i/MfnvRHqXa7XXmQMUB0oNFGuBrNI8d8NLy0LPw= @@ -569,18 +542,14 @@ github.com/kisielk/gotool v1.0.0 h1:AV2c/EiW3KqPNT9ZKl07ehoAGi4C5/01Cfbblndcapg= github.com/kisielk/gotool v1.0.0/go.mod h1:XhKaO+MFFWcvkIS/tQcRk01m1F5IRFswLeQ+oQHNcck= github.com/kkHAIKE/contextcheck v1.1.4 h1:B6zAaLhOEEcjvUgIYEqystmnFk1Oemn8bvJhbt0GMb8= github.com/kkHAIKE/contextcheck v1.1.4/go.mod h1:1+i/gWqokIa+dm31mqGLZhZJ7Uh44DJGZVmr6QRBNJg= -github.com/klauspost/compress v1.4.0/go.mod h1:RyIbtBH6LamlWaDj8nUwkbUhJ87Yi3uG0guNDohfE1A= github.com/klauspost/compress v1.4.1/go.mod h1:RyIbtBH6LamlWaDj8nUwkbUhJ87Yi3uG0guNDohfE1A= github.com/klauspost/compress v1.8.2/go.mod h1:RyIbtBH6LamlWaDj8nUwkbUhJ87Yi3uG0guNDohfE1A= github.com/klauspost/compress v1.9.7/go.mod h1:RyIbtBH6LamlWaDj8nUwkbUhJ87Yi3uG0guNDohfE1A= github.com/klauspost/compress v1.11.4/go.mod h1:aoV0uJVorq1K+umq18yTdKaF57EivdYsUV+/s2qKfXs= github.com/klauspost/compress v1.16.5 h1:IFV2oUNUzZaz+XyusxpLzpzS8Pt5rh0Z16For/djlyI= github.com/klauspost/compress v1.16.5/go.mod h1:ntbaceVETuRiXiv4DpjP66DpAtAGkEQskQzEyD//IeE= -github.com/klauspost/cpuid v0.0.0-20170728055534-ae7887de9fa5/go.mod h1:Pj4uuM528wm8OyEC2QMXAi2YiTZ96dNQPGgoMS4s3ek= github.com/klauspost/cpuid v1.2.0/go.mod h1:Pj4uuM528wm8OyEC2QMXAi2YiTZ96dNQPGgoMS4s3ek= github.com/klauspost/cpuid v1.2.1/go.mod h1:Pj4uuM528wm8OyEC2QMXAi2YiTZ96dNQPGgoMS4s3ek= -github.com/klauspost/crc32 v0.0.0-20161016154125-cb6bfca970f6/go.mod h1:+ZoRqAPRLkC4NPOvfYeR5KNOrY6TD+/sAC3HXPZgDYg= -github.com/klauspost/pgzip v1.0.2-0.20170402124221-0bf5dcad4ada/go.mod h1:Ch1tH69qFZu15pkjo5kYi6mth2Zzwzt50oCQKQE9RUs= github.com/klauspost/pgzip v1.2.5 h1:qnWYvvKqedOF2ulHpMG72XQol4ILEJ8k2wwRl/Km8oE= github.com/klauspost/pgzip v1.2.5/go.mod h1:Ch1tH69qFZu15pkjo5kYi6mth2Zzwzt50oCQKQE9RUs= github.com/konsorten/go-windows-terminal-sequences v1.0.1/go.mod h1:T0+1ngSBFLxvqU3pZ+m/2kptfBszLMUkC4ZK/EgS/cQ= @@ -609,9 +578,9 @@ github.com/ldez/gomoddirectives v0.2.3 h1:y7MBaisZVDYmKvt9/l1mjNCiSA1BVn34U0ObUc github.com/ldez/gomoddirectives v0.2.3/go.mod h1:cpgBogWITnCfRq2qGoDkKMEVSaarhdBr6g8G04uz6d0= github.com/ldez/tagliatelle v0.4.0 h1:sylp7d9kh6AdXN2DpVGHBRb5guTVAgOxqNGhbqc4b1c= github.com/ldez/tagliatelle v0.4.0/go.mod h1:mNtTfrHy2haaBAw+VT7IBV6VXBThS7TCreYWbBcJ87I= +github.com/leanovate/gopter v0.2.9 h1:fQjYxZaynp97ozCzfOyOuAGOU4aU/z37zf/tOujFk7c= github.com/leonklingele/grouper v1.1.1 h1:suWXRU57D4/Enn6pXR0QVqqWWrnJ9Osrz+5rjt8ivzU= github.com/leonklingele/grouper v1.1.1/go.mod h1:uk3I3uDfi9B6PeUjsCKi6ndcf63Uy7snXgR4yDYQVDY= -github.com/lib/pq v1.0.0/go.mod h1:5WUZQaWbwv1U+lTReE5YruASi9Al49XbQIvNi/34Woo= github.com/lufeee/execinquery v1.2.1 h1:hf0Ems4SHcUGBxpGN7Jz78z1ppVkP/837ZlETPCEtOM= github.com/lufeee/execinquery v1.2.1/go.mod h1:EC7DrEKView09ocscGHC+apXMIaorh4xqSxS/dy8SbM= github.com/magefile/mage v1.13.0/go.mod h1:z5UZb/iS3GoOSn0JgWuiw7dxlurVYTu+/jHXqQg881A= @@ -633,14 +602,12 @@ github.com/matryer/is v1.4.0/go.mod h1:8I/i5uYgLzgsgEloJE1U6xx5HkBQpAZvepWuujKwM github.com/matryer/moq v0.0.0-20190312154309-6cfb0558e1bd/go.mod h1:9ELz6aaclSIGnZBoaSLZ3NAl1VTufbOrXBPvtcy6WiQ= github.com/matryer/moq v0.3.1 h1:kLDiBJoGcusWS2BixGyTkF224aSCD8nLY24tj/NcTCs= github.com/matryer/moq v0.3.1/go.mod h1:RJ75ZZZD71hejp39j4crZLsEDszGk6iH4v4YsWFKH4s= -github.com/mattn/go-colorable v0.0.9/go.mod h1:9vuHe8Xs5qXnSaW/c/ABM9alt+Vo+STaOChaDxuIBZU= github.com/mattn/go-colorable v0.1.2/go.mod h1:U0ppj6V5qS13XJ6of8GYAs25YV2eR4EVcfRqFIhoBtE= github.com/mattn/go-colorable v0.1.7/go.mod h1:u6P/XSegPjTcexA+o6vUJrdnUu04hMope9wVRipJSqc= github.com/mattn/go-colorable v0.1.8/go.mod h1:u6P/XSegPjTcexA+o6vUJrdnUu04hMope9wVRipJSqc= github.com/mattn/go-colorable v0.1.11/go.mod h1:u5H1YNBxpqRaxsYJYSkiCWKzEfiAb1Gb520KVy5xxl4= github.com/mattn/go-colorable v0.1.13 h1:fFA4WZxdEF4tXPZVKMLwD8oUnCTTo08duU7wxecdEvA= github.com/mattn/go-colorable v0.1.13/go.mod h1:7S9/ev0klgBDR4GtXTXX8a3vIGJpMovkB8vQcUbaXHg= -github.com/mattn/go-isatty v0.0.4/go.mod h1:M+lRXTBqGeGNdLjl/ufCoiOlB5xdOkqRJdNxMWT7Zi4= github.com/mattn/go-isatty v0.0.7/go.mod h1:Iq45c/XA43vh69/j3iqttzPXn0bhXyGjM0Hdxcsrc5s= github.com/mattn/go-isatty v0.0.8/go.mod h1:Iq45c/XA43vh69/j3iqttzPXn0bhXyGjM0Hdxcsrc5s= github.com/mattn/go-isatty v0.0.9/go.mod h1:YNRxwqDuOph6SZLI9vUUz6OYw3QyUt7WiY2yME+cCiQ= @@ -653,8 +620,6 @@ github.com/mattn/go-runewidth v0.0.3/go.mod h1:LwmH8dsx7+W8Uxz3IHJYH5QSwggIsqBzp github.com/mattn/go-runewidth v0.0.9/go.mod h1:H031xJmbD/WCDINGzjvQ9THkh0rPKHF+m2gUSrubnMI= github.com/mattn/go-runewidth v0.0.14 h1:+xnbZSEeDbOIg5/mE6JF0w6n9duR1l3/WmbinWVwUuU= github.com/mattn/go-runewidth v0.0.14/go.mod h1:Jdepj2loyihRzMpdS35Xk/zdY8IAYHsh153qUoGf23w= -github.com/mattn/go-sqlite3 v1.11.0/go.mod h1:FPy6KqzDD04eiIsT53CuJW3U88zkxoIYsOqkbpncsNc= -github.com/mattn/go-tty v0.0.0-20180907095812-13ff1204f104/go.mod h1:XPvLUNfbS4fJH25nqRHfWLMa1ONC8Amw+mIA639KxkE= github.com/mattn/goveralls v0.0.2/go.mod h1:8d1ZMHsd7fW6IRPKQh46F2WRpyib5/X4FOpevwGNQEw= github.com/matttproud/golang_protobuf_extensions v1.0.1/go.mod h1:D8He9yQNgCq6Z5Ld7szi9bcBfOoFv/3dc6xSMkL2PC0= github.com/matttproud/golang_protobuf_extensions v1.0.4 h1:mmDVorXM7PCGKw94cs5zkfA9PSy5pEvNWRP0ET0TIVo= @@ -676,6 +641,9 @@ github.com/mitchellh/mapstructure v1.5.0 h1:jeMsZIYE/09sWLaz43PL7Gy6RuMjD2eJVyua github.com/mitchellh/mapstructure v1.5.0/go.mod h1:bFUtVrKA4DC2yAKiSyO/QUcy7e+RRV2QTWOzhPopBRo= github.com/mitchellh/pointerstructure v1.2.1 h1:ZhBBeX8tSlRpu/FFhXH4RC4OJzFlqsQhoHZAz4x7TIw= github.com/mitchellh/pointerstructure v1.2.1/go.mod h1:BRAsLI5zgXmw97Lf6s25bs8ohIXc3tViBH44KcwB2g4= +github.com/mmcloughlin/addchain v0.4.0 h1:SobOdjm2xLj1KkXN5/n0xTIWyZA2+s99UCY1iPfkHRY= +github.com/mmcloughlin/addchain v0.4.0/go.mod h1:A86O+tHqZLMNO4w6ZZ4FlVQEadcoqkyU72HC5wJ4RlU= +github.com/mmcloughlin/profile v0.1.1/go.mod h1:IhHD7q1ooxgwTgjxQYkACGA77oFTDdFVejUS1/tS/qU= github.com/moby/term v0.0.0-20221205130635-1aeaba878587 h1:HfkjXDfhgVaN5rmueG8cL8KKeFNecRCXFhaJ2qZ5SKA= github.com/moby/term v0.0.0-20221205130635-1aeaba878587/go.mod h1:8FzsFHVUBGZdbDsJw/ot+X+d5HLUbvklYLJ9uGfcI3Y= github.com/modern-go/concurrent v0.0.0-20180228061459-e0a39a4cb421/go.mod h1:6dJC0mAP4ikYIbvyc7fijjWJddQyLn8Ig3JB5CqoB9Q= @@ -688,7 +656,6 @@ github.com/moricho/tparallel v0.3.0/go.mod h1:leENX2cUv7Sv2qDgdi0D0fCftN8fRC67Bc github.com/morikuni/aec v1.0.0 h1:nP9CBfwrvYnBRgY6qfDQkygYDmYwOilePFkwzv4dU8A= github.com/morikuni/aec v1.0.0/go.mod h1:BbKIizmSmc5MMPqRYbxO4ZU0S0+P200+tUnFx7PXmsc= github.com/moul/http2curl v1.0.0/go.mod h1:8UbvGypXm98wA/IqH45anm5Y2Z6ep6O31QGOAZ3H0fQ= -github.com/mschoch/smat v0.0.0-20160514031455-90eadee771ae/go.mod h1:qAyveg+e4CE+eKJXWVjKXM4ck2QobLqTDytGJbLLhJg= github.com/mwitkow/go-conntrack v0.0.0-20161129095857-cc309e4a2223/go.mod h1:qRWi+5nqEBWmkhHvq77mSJWrCKwh8bxhgT7d/eI7P4U= github.com/mwitkow/go-conntrack v0.0.0-20190716064945-2f068394615f/go.mod h1:qRWi+5nqEBWmkhHvq77mSJWrCKwh8bxhgT7d/eI7P4U= github.com/nakabonne/nestif v0.3.1 h1:wm28nZjhQY5HyYPx+weN3Q65k6ilSBxDb8v5S81B81U= @@ -730,8 +697,6 @@ github.com/opencontainers/go-digest v1.0.0 h1:apOUWs51W5PlhuyGyz9FCeeBIOUDA/6nW8 github.com/opencontainers/go-digest v1.0.0/go.mod h1:0JzlMkj0TRzQZfJkVvzbP0HBR3IKzErnv2BNG4W4MAM= github.com/opencontainers/image-spec v1.1.0-rc2 h1:2zx/Stx4Wc5pIPDvIxHXvXtQFW/7XWJGmnM7r3wg034= github.com/opencontainers/image-spec v1.1.0-rc2/go.mod h1:3OVijpioIKYWTqjiG0zfF6wvoJ4fAXGbjdZuI2NgsRQ= -github.com/opentracing/opentracing-go v1.0.2/go.mod h1:UkNAQd3GIcIGf0SeVgPpRdFStlNbqXla1AfSYxPUl2o= -github.com/opentracing/opentracing-go v1.0.3-0.20180606204148-bd9c31933947/go.mod h1:UkNAQd3GIcIGf0SeVgPpRdFStlNbqXla1AfSYxPUl2o= github.com/opentracing/opentracing-go v1.1.0/go.mod h1:UkNAQd3GIcIGf0SeVgPpRdFStlNbqXla1AfSYxPUl2o= github.com/opentracing/opentracing-go v1.2.0 h1:uEJPy/1a5RIPAJ0Ov+OIO8OxWu77jEv+1B0VhjKrZUs= github.com/opentracing/opentracing-go v1.2.0/go.mod h1:GxEUsuufX4nBwe+T+Wl9TAgYrxe9dPLANfrWvHYVTgc= @@ -741,15 +706,11 @@ github.com/otiai10/curr v0.0.0-20150429015615-9b4961190c95/go.mod h1:9qAhocn7zKJ github.com/otiai10/curr v1.0.0/go.mod h1:LskTG5wDwr8Rs+nNQ+1LlxRjAtTZZjtJW4rMXl6j4vs= github.com/otiai10/mint v1.3.0/go.mod h1:F5AjcsTsWUqX+Na9fpHb52P8pcRX2CI6A3ctIT91xUo= github.com/otiai10/mint v1.3.1/go.mod h1:/yxELlJQ0ufhjUwhshSj+wFjZ78CnZ48/1wtmBH1OTc= -github.com/paulbellamy/ratecounter v0.2.0/go.mod h1:Hfx1hDpSGoqxkVVpBi/IlYD7kChlfo5C6hzIHwPqfFE= github.com/pelletier/go-toml v1.2.0/go.mod h1:5z9KED0ma1S8pY6P1sdut58dfprrGBbd/94hg7ilaic= github.com/pelletier/go-toml/v2 v2.0.8 h1:0ctb6s9mE31h0/lhu+J6OPmVeDxJn+kYnJc2jZR9tGQ= github.com/pelletier/go-toml/v2 v2.0.8/go.mod h1:vuYfssBdrU2XDZ9bYydBu6t+6a6PYNcZljzZR9VXg+4= -github.com/peterh/liner v1.0.1-0.20180619022028-8c1271fcf47f/go.mod h1:xIteQHvHuaLYG9IFj6mSxM0fCKrs34IrEQUhOYuGPHc= github.com/peterh/liner v1.1.1-0.20190123174540-a2c9a5303de7 h1:oYW+YCJ1pachXTQmzR3rNLYGGz4g/UgFcjb28p/viDM= github.com/peterh/liner v1.1.1-0.20190123174540-a2c9a5303de7/go.mod h1:CRroGNssyjTd/qIG2FyxByd2S8JEAZXBl4qUrZf8GS0= -github.com/philhofer/fwd v1.0.0/go.mod h1:gk3iGcWd9+svBvR0sR+KPcfE+RNWozjowpeBVG3ZVNU= -github.com/pierrec/lz4 v2.0.5+incompatible/go.mod h1:pdkljMzZIN41W+lC3N2tnIh5sFi+IEE17M5jbnwPHcY= github.com/pierrec/lz4/v4 v4.1.2/go.mod h1:gZWDp/Ze/IJXGXf23ltt2EXimqmTUXEy0GFuRQyBid4= github.com/pingcap/errors v0.11.4 h1:lFuQV/oaUMGcD2tqt+01ROSmJs75VG1ToEOkZIZ4nE4= github.com/pingcap/errors v0.11.4/go.mod h1:Oi8TUi2kEtXXLMJk9l1cGmz20kV3TaQ0usTwv5KuLY8= @@ -763,7 +724,6 @@ github.com/pkg/errors v0.9.1/go.mod h1:bwawxfHBFNV+L2hUp1rHADufV3IMtnDRdf1r5NINE github.com/pkg/profile v1.7.0 h1:hnbDkaNWPCLMO9wGLdBFTIZvzDrDfBM2072E1S9gJkA= github.com/pkg/profile v1.7.0/go.mod h1:8Uer0jas47ZQMJ7VD+OHknK4YDY07LPUC6dEvqDjvNo= github.com/pkg/sftp v1.13.1/go.mod h1:3HaPG6Dq1ILlpPZRO0HVMrsydcdLt6HRDccSgb87qRg= -github.com/pkg/term v0.0.0-20180730021639-bffc007b7fd5/go.mod h1:eCbImbZ95eXtAUIbLAuAVnBnwf83mjf6QIVH8SHYwqQ= github.com/pmezard/go-difflib v1.0.0 h1:4DBwDE0NGyQoBHbLQYPwSUPoCMWR5BEzIk/f1lZbAQM= github.com/pmezard/go-difflib v1.0.0/go.mod h1:iKH77koFhYxTK1pcRnkKkqfTogsbg7gZNVY4sRDYZ/4= github.com/polyfloyd/go-errorlint v1.4.0 h1:b+sQ5HibPIAjEZwtuwU8Wz/u0dMZ7YL+bk+9yWyHVJk= @@ -782,7 +742,6 @@ github.com/prometheus/client_model v0.2.0/go.mod h1:xMI15A0UPsDsEKsMN9yxemIoYk6T github.com/prometheus/client_model v0.4.0 h1:5lQXD3cAg1OXBf4Wq03gTrXHeaV0TQvGfUooCfx1yqY= github.com/prometheus/client_model v0.4.0/go.mod h1:oMQmHW1/JoDwqLtg57MGgP/Fb1CJEYF2imWWhWtMkYU= github.com/prometheus/common v0.4.1/go.mod h1:TNfzLD0ON7rHzMJeJkieUDPYmFC7Snx/y86RQel1bk4= -github.com/prometheus/common v0.6.0/go.mod h1:eBmuwkDJBwy6iBfxCBob6t6dR6ENT/y+J+Zk0j9GMYc= github.com/prometheus/common v0.10.0/go.mod h1:Tlit/dnDKsSWFlCLTWaA1cyBgKHSMdTB80sz/V91rCo= github.com/prometheus/common v0.26.0/go.mod h1:M7rCNAaPfAosfx8veZJCuw84e35h3Cfd9VFqTh1DIvc= github.com/prometheus/common v0.32.1/go.mod h1:vu+V0TpY+O6vW9J44gczi3Ap/oXXR10b+M/gUGO4Hls= @@ -803,9 +762,9 @@ github.com/quasilyte/regex/syntax v0.0.0-20210819130434-b3f0c404a727 h1:TCg2WBOl github.com/quasilyte/regex/syntax v0.0.0-20210819130434-b3f0c404a727/go.mod h1:rlzQ04UMyJXu/aOvhd8qT+hvDrFpiwqp8MRXDY9szc0= github.com/quasilyte/stdinfo v0.0.0-20220114132959-f7386bf02567 h1:M8mH9eK4OUR4lu7Gd+PU1fV2/qnDNfzT635KRSObncs= github.com/quasilyte/stdinfo v0.0.0-20220114132959-f7386bf02567/go.mod h1:DWNGW8A4Y+GyBgPuaQJuWiy0XYftx4Xm/y5Jqk9I6VQ= -github.com/retailnext/hllpp v1.0.1-0.20180308014038-101a6d2f8b52/go.mod h1:RDpi1RftBQPUCDRw6SmxeaREsAaRKnOclghuzp/WRzc= -github.com/rivo/uniseg v0.2.0 h1:S1pD9weZBuJdFmowNwbpi7BJ8TNftyUImj/0WQi72jY= github.com/rivo/uniseg v0.2.0/go.mod h1:J6wj4VEh+S6ZtnVlnTBMWIodfgj8LQOQFoIToxlJtxc= +github.com/rivo/uniseg v0.4.3 h1:utMvzDsuh3suAEnhH0RdHmoPbU648o6CvXxTx4SBMOw= +github.com/rivo/uniseg v0.4.3/go.mod h1:FN3SvrM+Zdj16jyLfmOkMNblXMcoc8DfTHruCPUcx88= github.com/rogpeppe/go-internal v1.3.0/go.mod h1:M8bDsm7K2OlrFYOpmOWEs/qY81heoFRclV5y23lUDJ4= github.com/rogpeppe/go-internal v1.6.1/go.mod h1:xXDCJY+GAPziupqXw64V24skbSoqbTEfhy4qGm1nDQc= github.com/rogpeppe/go-internal v1.8.1/go.mod h1:JeRgkft04UBgHMgCIwADu4Pn6Mtm5d4nPKWu0nJ5d+o= @@ -833,8 +792,6 @@ github.com/securego/gosec/v2 v2.15.0 h1:v4Ym7FF58/jlykYmmhZ7mTm7FQvN/setNm++0fgI github.com/securego/gosec/v2 v2.15.0/go.mod h1:VOjTrZOkUtSDt2QLSJmQBMWnvwiQPEjg0l+5juIqGk8= github.com/segmentio/golines v0.11.0 h1:5NVrYkCBoe9wLerhTi+WFOlqx9g3PtP5Tm27uartkL0= github.com/segmentio/golines v0.11.0/go.mod h1:BRnGHV3is9Qs/58zOqy3CFwH1B2jdVsViGY3G+qctSs= -github.com/segmentio/kafka-go v0.1.0/go.mod h1:X6itGqS9L4jDletMsxZ7Dz+JFWxM6JHfPOCvTvk+EJo= -github.com/segmentio/kafka-go v0.2.0/go.mod h1:X6itGqS9L4jDletMsxZ7Dz+JFWxM6JHfPOCvTvk+EJo= github.com/sergi/go-diff v1.0.0/go.mod h1:0CfEIISq7TuYL3j771MWULgwwjU+GofnZX9QAmXWZgo= github.com/sergi/go-diff v1.2.0 h1:XU+rvMAioB0UC3q1MFrIQy4Vo5/4VsRDQQXHsEya6xQ= github.com/shazow/go-diff v0.0.0-20160112020656-b6b7b6733b8c h1:W65qqJCIOVP4jpqPQ0YvHYKwcMEMVWIzWC5iNQQfBTU= @@ -861,14 +818,12 @@ github.com/sonatard/noctx v0.0.2 h1:L7Dz4De2zDQhW8S0t+KUjY0MAQJd6SgVwhzNIc4ok00= github.com/sonatard/noctx v0.0.2/go.mod h1:kzFz+CzWSjQ2OzIm46uJZoXuBpa2+0y3T36U18dWqIo= github.com/sourcegraph/go-diff v0.7.0 h1:9uLlrd5T46OXs5qpp8L/MTltk0zikUGi0sNNyCpA8G0= github.com/sourcegraph/go-diff v0.7.0/go.mod h1:iBszgVvyxdc8SFZ7gm69go2KDdt3ag071iBaWPF6cjs= -github.com/spaolacci/murmur3 v0.0.0-20180118202830-f09979ecbc72/go.mod h1:JwIasOWyU6f++ZhiEuf87xNszmSA2myDM2Kzu9HwQUA= github.com/spf13/afero v1.1.2/go.mod h1:j4pytiNVoe2o6bmDsKpLACNPDBIoEAkihy7loJ1B0CQ= github.com/spf13/afero v1.9.3 h1:41FoI0fD7OR7mGcKE/aOiLkGreyf8ifIOQmJANWogMk= github.com/spf13/afero v1.9.3/go.mod h1:iUV7ddyEEZPO5gA3zD4fJt6iStLlL+Lg4m2cihcDf8Y= github.com/spf13/cast v1.3.0/go.mod h1:Qx5cxh0v+4UWYiBimWS+eyWzqEqokIECu5etghLkUJE= github.com/spf13/cast v1.5.1 h1:R+kOtfhWQE6TVQzY+4D7wJLBgkdVasCEFxSUBYBYIlA= github.com/spf13/cast v1.5.1/go.mod h1:b9PdjNptOpzXr7Rq1q9gJML/2cdGQAo69NKzQ10KN48= -github.com/spf13/cobra v0.0.3/go.mod h1:1l0Ry5zgKvJasoi3XT1TypsSe7PqH0Sj9dhYf7v3XqQ= github.com/spf13/cobra v0.0.5/go.mod h1:3K3wKZymM7VvHMDS9+Akkh4K60UwM26emMESw8tLCHU= github.com/spf13/cobra v1.7.0 h1:hyqWnYt1ZQShIddO5kBpj3vu05/++x6tJ6dg8EC572I= github.com/spf13/cobra v1.7.0/go.mod h1:uLxZILRyS/50WlhOIKD7W6V5bgeIt+4sICxh6uRMrb0= @@ -893,7 +848,6 @@ github.com/stretchr/objx v0.4.0/go.mod h1:YvHI0jy2hoMjB+UWwv71VJQ9isScKT/TqJzVSS github.com/stretchr/objx v0.5.0 h1:1zr/of2m5FGMsad5YfcqgdqdWrIhu+EBEJRhR1U7z/c= github.com/stretchr/objx v0.5.0/go.mod h1:Yh+to48EsGEfYuaHDzXPcE3xhTkx73EhmCGUpEOglKo= github.com/stretchr/testify v1.1.4/go.mod h1:a8OnRcib4nhh0OaRAV+Yts87kKdq0PP7pXfy6kDkUVs= -github.com/stretchr/testify v1.2.0/go.mod h1:a8OnRcib4nhh0OaRAV+Yts87kKdq0PP7pXfy6kDkUVs= github.com/stretchr/testify v1.2.2/go.mod h1:a8OnRcib4nhh0OaRAV+Yts87kKdq0PP7pXfy6kDkUVs= github.com/stretchr/testify v1.3.0/go.mod h1:M5WIy9Dh21IEIfnGCwXGc5bZfKNJtfHm1UVUgZn+9EI= github.com/stretchr/testify v1.4.0/go.mod h1:j7eGeouHqKxXV5pUuKE4zz7dFj8WfuZ+81PSLYec5m4= @@ -908,6 +862,8 @@ github.com/stretchr/testify v1.8.3 h1:RP3t2pwF7cMEbC1dqtB6poj3niw/9gnV4Cjg5oW5gt github.com/stretchr/testify v1.8.3/go.mod h1:sz/lmYIOXD/1dqDmKjjqLyZ2RngseejIcXlSw2iwfAo= github.com/subosito/gotenv v1.4.2 h1:X1TuBLAMDFbaTAChgCBLu3DU3UPyELpnF2jjJ2cz/S8= github.com/subosito/gotenv v1.4.2/go.mod h1:ayKnFf/c6rvx/2iiLrJUk1e6plDbT3edrFNGqEflhK0= +github.com/supranational/blst v0.3.11-0.20230406105308-e9dfc5ee724b h1:u49mjRnygnB34h8OKbnNJFVUtWSKIKb1KukdV8bILUM= +github.com/supranational/blst v0.3.11-0.20230406105308-e9dfc5ee724b/go.mod h1:jZJtfjgudtNl4en1tzwPIV3KjUnQUvG3/j+w+fVonLw= github.com/syndtr/goleveldb v1.0.1-0.20220721030215-126854af5e6d h1:vfofYNRScrDdvS342BElfbETmL1Aiz3i2t0zfRj16Hs= github.com/syndtr/goleveldb v1.0.1-0.20220721030215-126854af5e6d/go.mod h1:RRCYJbIwD5jmqPI9XoAFR0OcDxqUctll6zUj/+B4S48= github.com/t-yuki/gocover-cobertura v0.0.0-20180217150009-aaee18c8195c h1:+aPplBwWcHBo6q9xrfWdMrT9o4kltkmmvpemgIjep/8= @@ -924,7 +880,6 @@ github.com/timakin/bodyclose v0.0.0-20221125081123-e39cf3fc478e h1:MV6KaVu/hzByH github.com/timakin/bodyclose v0.0.0-20221125081123-e39cf3fc478e/go.mod h1:27bSVNWSBOHm+qRp1T9qzaIpsWEP6TbUnei/43HK+PQ= github.com/timonwong/loggercheck v0.9.4 h1:HKKhqrjcVj8sxL7K77beXh0adEm6DLjV/QOGeMXEVi4= github.com/timonwong/loggercheck v0.9.4/go.mod h1:caz4zlPcgvpEkXgVnAJGowHAMW2NwHaNlpS8xDbVhTg= -github.com/tinylib/msgp v1.0.2/go.mod h1:+d+yLhGm8mzTaHzB+wgMYrodPfmZrzkirds8fDWklFE= github.com/tklauser/go-sysconf v0.3.11 h1:89WgdJhk5SNwJfu+GKyYveZ4IaJ7xAkecBo+KdJV0CM= github.com/tklauser/go-sysconf v0.3.11/go.mod h1:GqXfhXY3kiPa0nAXPDIQIWzJbMCB7AmcWpGR8lSZfqI= github.com/tklauser/numcpus v0.6.0 h1:kebhY2Qt+3U6RNK7UqpYNA+tJ23IBEGKkB7JQBfDYms= @@ -956,14 +911,12 @@ github.com/valyala/fasttemplate v1.0.1/go.mod h1:UQGH1tvbgY+Nz5t2n7tXsz52dQxojPU github.com/valyala/fasttemplate v1.2.1/go.mod h1:KHLXt3tVN2HBp8eijSv/kGJopbvo7S+qRAEEKiv+SiQ= github.com/valyala/tcplisten v0.0.0-20161114210144-ceec8f93295a/go.mod h1:v3UYOV9WzVtRmSR+PDvWpU/qWl4Wa5LApYYX4ZtKbio= github.com/vbatts/tar-split v0.11.2 h1:Via6XqJr0hceW4wff3QRzD5gAk/tatMw/4ZA7cTlIME= -github.com/willf/bitset v1.1.3/go.mod h1:RjeCKbqT1RxIR/KWY6phxZiaY1IyutSBfGjNPySAYV4= github.com/x-cray/logrus-prefixed-formatter v0.5.2 h1:00txxvfBM9muc0jiLIEAkAcIMJzfthRT6usrui8uGmg= github.com/x-cray/logrus-prefixed-formatter v0.5.2/go.mod h1:2duySbKsL6M18s5GU7VPsoEPHyzalCE06qoARUCeBBE= github.com/xeipuuv/gojsonpointer v0.0.0-20180127040702-4e3ac2762d5f/go.mod h1:N2zxlSyiKSe5eX1tZViRH5QA0qijqEDrYZiPEAiq3wU= github.com/xeipuuv/gojsonreference v0.0.0-20180127040603-bd5ef7bd5415/go.mod h1:GwrjFmJcFw6At/Gs6z4yjiIwzuJ1/+UwLxMQDVQXShQ= github.com/xeipuuv/gojsonschema v1.2.0/go.mod h1:anYRn/JVcOK2ZgGU+IjEV4nwlhoK5sQluxsYJ78Id3Y= github.com/xi2/xz v0.0.0-20171230120015-48954b6210f8/go.mod h1:HUYIGzjTL3rfEspMxjDjgmT5uz5wzYJKVo23qUhYTos= -github.com/xlab/treeprint v0.0.0-20180616005107-d6fb6747feb6/go.mod h1:ce1O1j6UtZfjr22oyGxGLbauSBp2YVXpARAosm7dHBg= github.com/xo/terminfo v0.0.0-20210125001918-ca9a967f8778 h1:QldyIu/L63oPpyvQmHgvgickp1Yw510KJOqX7H24mg8= github.com/xo/terminfo v0.0.0-20210125001918-ca9a967f8778/go.mod h1:2MuV+tbUrU1zIOPMxZ5EncGwgmMJsa+9ucAQZXxsObs= github.com/xordataexchange/crypt v0.0.3-0.20170626215501-b2862e3d0a77/go.mod h1:aYKd//L2LvnjZzWKhF00oedf4jCCReLcmhLdhm1A27Q= @@ -1000,14 +953,11 @@ go.opentelemetry.io/otel/sdk v1.14.0 h1:PDCppFRDq8A1jL9v6KMI6dYesaq+DFcDZvjsoGvx go.opentelemetry.io/otel/sdk v1.14.0/go.mod h1:bwIC5TjrNG6QDCHNWvW4HLHtUQ4I+VQDsnjhvyZCALM= go.opentelemetry.io/otel/trace v1.14.0 h1:wp2Mmvj41tDsyAJXiWDWpfNsOiIyd38fy85pyKcFq/M= go.opentelemetry.io/otel/trace v1.14.0/go.mod h1:8avnQLK+CG77yNLUae4ea2JDQ6iT+gozhnZjy/rw9G8= -go.uber.org/atomic v1.3.2/go.mod h1:gD2HeocX3+yG+ygLZcrzQJaqmWj9AIm7n08wl/qW/PE= go.uber.org/atomic v1.10.0 h1:9qC72Qh0+3MqyJbAn8YU5xVq1frD8bn3JtD2oXtafVQ= go.uber.org/atomic v1.10.0/go.mod h1:LUxbIzbOniOlMKjJjyPfpl4v+PKK2cNJn91OQbhoJI0= go.uber.org/goleak v1.1.11 h1:wy28qYRKZgnJTxGxvye5/wgWr1EKjmUDGYox5mGlRlI= -go.uber.org/multierr v1.1.0/go.mod h1:wR5kodmAFQ0UK8QlbwjlSNy0Z68gJhDJUG5sjR94q/0= go.uber.org/multierr v1.10.0 h1:S0h4aNzvfcFsC3dRF1jLoaov7oRaKqRGC/pUEJ2yvPQ= go.uber.org/multierr v1.10.0/go.mod h1:20+QtiLqy0Nd6FdQB9TLXag12DsQkrbs3htMFfDN80Y= -go.uber.org/zap v1.9.1/go.mod h1:vwi/ZaCAaUcBkycHslxD9B2zi4UTXhF60s6SWpuDF0Q= go.uber.org/zap v1.24.0 h1:FiJd5l1UOLj0wCgbSE0rwwXHzEdAZS6hiiSnxJN/D60= go.uber.org/zap v1.24.0/go.mod h1:2kMP+WWQ8aoFoedH3T2sq6iJ2yDWpHbP0f6MQbS9Gkg= golang.org/x/crypto v0.0.0-20180904163835-0709b304e793/go.mod h1:6SG95UA2DQfeDnfUPMdvaQW0Q7yPrPDi9nlGo2tz2b4= @@ -1028,10 +978,7 @@ golang.org/x/crypto v0.0.0-20211108221036-ceb1ce70b4fa/go.mod h1:GvvjBRRGRdwPK5y golang.org/x/crypto v0.1.0/go.mod h1:RecgLatLF4+eUMCP1PoPZQb+cVrJcOPbHkTkbkB9sbw= golang.org/x/crypto v0.9.0 h1:LF6fAI+IutBocDJ2OT0Q1g8plpYljMZ4+lty+dsqw3g= golang.org/x/crypto v0.9.0/go.mod h1:yrmDGqONDYtNj3tH8X9dzUun2m2lzPa9ngI6/RUPGR0= -golang.org/x/exp v0.0.0-20180321215751-8460e604b9de/go.mod h1:CJ0aWSM057203Lf6IL+f9T1iT9GByDxfZKAQTCR3kQA= -golang.org/x/exp v0.0.0-20180807140117-3d87b88a115f/go.mod h1:CJ0aWSM057203Lf6IL+f9T1iT9GByDxfZKAQTCR3kQA= golang.org/x/exp v0.0.0-20190121172915-509febef88a4/go.mod h1:CJ0aWSM057203Lf6IL+f9T1iT9GByDxfZKAQTCR3kQA= -golang.org/x/exp v0.0.0-20190125153040-c74c464bbbf2/go.mod h1:CJ0aWSM057203Lf6IL+f9T1iT9GByDxfZKAQTCR3kQA= golang.org/x/exp v0.0.0-20190306152737-a1d7652674e8/go.mod h1:CJ0aWSM057203Lf6IL+f9T1iT9GByDxfZKAQTCR3kQA= golang.org/x/exp v0.0.0-20190510132918-efd6b22b2522/go.mod h1:ZjyILWgesfNpC6sMxTJOJm9Kp84zZh5NQWvqDGG3Qr8= golang.org/x/exp v0.0.0-20190829153037-c13cbed26979/go.mod h1:86+5VVa7VpoJ4kLfm080zCjGlMRFzhUhsZKEZO7MGek= @@ -1047,7 +994,6 @@ golang.org/x/exp/typeparams v0.0.0-20220428152302-39d4317da171/go.mod h1:AbB0pIl golang.org/x/exp/typeparams v0.0.0-20230203172020-98cc5a0785f9/go.mod h1:AbB0pIl9nAr9wVwH+Z2ZpaocVmF5I4GyWCDIsVjR0bk= golang.org/x/exp/typeparams v0.0.0-20230224173230-c95f2b4c22f2 h1:J74nGeMgeFnYQJN59eFwh06jX/V8g0lB7LWpjSLxtgU= golang.org/x/exp/typeparams v0.0.0-20230224173230-c95f2b4c22f2/go.mod h1:AbB0pIl9nAr9wVwH+Z2ZpaocVmF5I4GyWCDIsVjR0bk= -golang.org/x/image v0.0.0-20180708004352-c73c2afc3b81/go.mod h1:ux5Hcp/YLpHSI86hEcLt0YII63i6oz57MZXIpbrjZUs= golang.org/x/image v0.0.0-20190227222117-0694c2d4d067/go.mod h1:kZ7UVZpmo3dzQBMxlp+ypCbDeSB+sBbTgSJuh5dn5js= golang.org/x/image v0.0.0-20190802002840-cff245a6509b/go.mod h1:FeLwcggjj3mMvU+oOTbSwawSJRM1uh48EjtB4UJZlP0= golang.org/x/lint v0.0.0-20181026193005-c67002cb31c3/go.mod h1:UVdnD1Gm6xHRNCYTkRU2/jEulfH38KcIWyp/GAMgvoE= @@ -1186,7 +1132,6 @@ golang.org/x/sys v0.0.0-20191120155948-bd437916bb0e/go.mod h1:h1NjWce9XRLGQEsW7w golang.org/x/sys v0.0.0-20191204072324-ce4227a45e2e/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= golang.org/x/sys v0.0.0-20191228213918-04cbcbbfeed8/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= golang.org/x/sys v0.0.0-20200106162015-b016eb3dc98e/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= -golang.org/x/sys v0.0.0-20200107162124-548cf772de50/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= golang.org/x/sys v0.0.0-20200113162924-86b910548bc1/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= golang.org/x/sys v0.0.0-20200116001909-b77594299b42/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= golang.org/x/sys v0.0.0-20200122134326-e047566fdf82/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= @@ -1279,10 +1224,8 @@ golang.org/x/time v0.3.0 h1:rg5rLMjNzMS1RkNLzCG38eapWhnYLFYXDXj2gOlr8j4= golang.org/x/time v0.3.0/go.mod h1:tRJNPiyCQ0inRvYxbN9jk5I+vvW/OXSQhTDSoE431IQ= golang.org/x/tools v0.0.0-20180525024113-a5b4c53f6e8b/go.mod h1:n7NCudcB/nEzxVGmLbDWY5pfWTLqBcC2KZ6jyYvM4mQ= golang.org/x/tools v0.0.0-20180917221912-90fa682c2a6e/go.mod h1:n7NCudcB/nEzxVGmLbDWY5pfWTLqBcC2KZ6jyYvM4mQ= -golang.org/x/tools v0.0.0-20181030221726-6c7e314b6563/go.mod h1:n7NCudcB/nEzxVGmLbDWY5pfWTLqBcC2KZ6jyYvM4mQ= golang.org/x/tools v0.0.0-20181221001348-537d06c36207/go.mod h1:n7NCudcB/nEzxVGmLbDWY5pfWTLqBcC2KZ6jyYvM4mQ= golang.org/x/tools v0.0.0-20190114222345-bf090417da8b/go.mod h1:n7NCudcB/nEzxVGmLbDWY5pfWTLqBcC2KZ6jyYvM4mQ= -golang.org/x/tools v0.0.0-20190206041539-40960b6deb8e/go.mod h1:n7NCudcB/nEzxVGmLbDWY5pfWTLqBcC2KZ6jyYvM4mQ= golang.org/x/tools v0.0.0-20190226205152-f727befe758c/go.mod h1:9Yl7xja0Znq3iFh3HoIrodX9oNMXvdceNzlUR8zjMvY= golang.org/x/tools v0.0.0-20190311212946-11955173bddd/go.mod h1:LCzVGOaR6xXOjkQ3onu1FJEFr0SW1gC7cKk1uF8kGRs= golang.org/x/tools v0.0.0-20190312151545-0bb0c0a6e846/go.mod h1:LCzVGOaR6xXOjkQ3onu1FJEFr0SW1gC7cKk1uF8kGRs= @@ -1308,7 +1251,6 @@ golang.org/x/tools v0.0.0-20191125144606-a911d9008d1f/go.mod h1:b+2E5dAYhXwXZwtn golang.org/x/tools v0.0.0-20191130070609-6e064ea0cf2d/go.mod h1:b+2E5dAYhXwXZwtnZ6UAqBI28+e2cm9otk0dWdXHAEo= golang.org/x/tools v0.0.0-20191216173652-a0e659d51361/go.mod h1:TB2adYChydJhpapKDTa4BR/hXlZSLoq2Wpct/0txZ28= golang.org/x/tools v0.0.0-20191227053925-7b8e75db28f4/go.mod h1:TB2adYChydJhpapKDTa4BR/hXlZSLoq2Wpct/0txZ28= -golang.org/x/tools v0.0.0-20200108203644-89082a384178/go.mod h1:TB2adYChydJhpapKDTa4BR/hXlZSLoq2Wpct/0txZ28= golang.org/x/tools v0.0.0-20200117161641-43d50277825c/go.mod h1:TB2adYChydJhpapKDTa4BR/hXlZSLoq2Wpct/0txZ28= golang.org/x/tools v0.0.0-20200122220014-bf1340f18c4a/go.mod h1:TB2adYChydJhpapKDTa4BR/hXlZSLoq2Wpct/0txZ28= golang.org/x/tools v0.0.0-20200130002326-2f3ba24bd6e7/go.mod h1:TB2adYChydJhpapKDTa4BR/hXlZSLoq2Wpct/0txZ28= @@ -1364,12 +1306,6 @@ golang.org/x/xerrors v0.0.0-20191011141410-1b5146add898/go.mod h1:I/5z698sn9Ka8T golang.org/x/xerrors v0.0.0-20191204190536-9bdfabe68543/go.mod h1:I/5z698sn9Ka8TeJc9MKroUUfqBBauWjQqLJ2OPfmY0= golang.org/x/xerrors v0.0.0-20200804184101-5ec99f83aff1/go.mod h1:I/5z698sn9Ka8TeJc9MKroUUfqBBauWjQqLJ2OPfmY0= golang.org/x/xerrors v0.0.0-20220517211312-f3a8303e98df/go.mod h1:K8+ghG5WaK9qNqU5K3HdILfMLy1f3aNYFI/wnl100a8= -gonum.org/v1/gonum v0.0.0-20180816165407-929014505bf4/go.mod h1:Y+Yx5eoAFn32cQvJDxZx5Dpnq+c3wtXuadVZAcxbbBo= -gonum.org/v1/gonum v0.0.0-20181121035319-3f7ecaa7e8ca/go.mod h1:Y+Yx5eoAFn32cQvJDxZx5Dpnq+c3wtXuadVZAcxbbBo= -gonum.org/v1/gonum v0.6.0/go.mod h1:9mxDZsDKxgMAuccQkewq682L+0eCu4dCN2yonUJTCLU= -gonum.org/v1/netlib v0.0.0-20181029234149-ec6d1f5cefe6/go.mod h1:wa6Ws7BG/ESfp6dHfk7C6KdzKA7wR7u/rKwOGE66zvw= -gonum.org/v1/netlib v0.0.0-20190313105609-8cb42192e0e0/go.mod h1:wa6Ws7BG/ESfp6dHfk7C6KdzKA7wR7u/rKwOGE66zvw= -gonum.org/v1/plot v0.0.0-20190515093506-e2840ee46a6b/go.mod h1:Wt8AAjI+ypCyYX3nZBvf6cAIx93T+c/OS2HFAYskSZc= google.golang.org/api v0.4.0/go.mod h1:8k5glujaEP+g9n7WNsDg8QP6cUVNI86fCNMcbazEtwE= google.golang.org/api v0.7.0/go.mod h1:WtwebWUNSVBH/HAw79HIFXZNqEvBhG+Ra+ax0hx3E3M= google.golang.org/api v0.8.0/go.mod h1:o4eAsZoiT+ibD93RtjEohWalFOjRDx6CVaqeizhEnKg= @@ -1402,7 +1338,6 @@ google.golang.org/genproto v0.0.0-20190307195333-5fe7a883aa19/go.mod h1:VzzqZJRn google.golang.org/genproto v0.0.0-20190418145605-e7d98fc518a7/go.mod h1:VzzqZJRnGkLBvHegQrXjBqPurQTc5/KpmUdxsrq26oE= google.golang.org/genproto v0.0.0-20190425155659-357c62f0e4bb/go.mod h1:VzzqZJRnGkLBvHegQrXjBqPurQTc5/KpmUdxsrq26oE= google.golang.org/genproto v0.0.0-20190502173448-54afdca5d873/go.mod h1:VzzqZJRnGkLBvHegQrXjBqPurQTc5/KpmUdxsrq26oE= -google.golang.org/genproto v0.0.0-20190716160619-c506a9f90610/go.mod h1:DMBHOl98Agz4BDEuKkezgsaosCRResVns1a3J2ZsMNc= google.golang.org/genproto v0.0.0-20190801165951-fa694d86fc64/go.mod h1:DMBHOl98Agz4BDEuKkezgsaosCRResVns1a3J2ZsMNc= google.golang.org/genproto v0.0.0-20190819201941-24fa4b261c55/go.mod h1:DMBHOl98Agz4BDEuKkezgsaosCRResVns1a3J2ZsMNc= google.golang.org/genproto v0.0.0-20190911173649-1774047e7e51/go.mod h1:IbNlFCBrqXvoKpeg0TB2l7cyZUmoaFKYIwrEpbDKLA8= @@ -1410,7 +1345,6 @@ google.golang.org/genproto v0.0.0-20191108220845-16a3f7862a1a/go.mod h1:n3cpQtvx google.golang.org/genproto v0.0.0-20191115194625-c23dd37a84c9/go.mod h1:n3cpQtvxv34hfy77yVDNjmbRyujviMdxYliBSkLhpCc= google.golang.org/genproto v0.0.0-20191216164720-4f79533eabd1/go.mod h1:n3cpQtvxv34hfy77yVDNjmbRyujviMdxYliBSkLhpCc= google.golang.org/genproto v0.0.0-20191230161307-f3c370f40bfb/go.mod h1:n3cpQtvxv34hfy77yVDNjmbRyujviMdxYliBSkLhpCc= -google.golang.org/genproto v0.0.0-20200108215221-bd8f9a0ef82f/go.mod h1:n3cpQtvxv34hfy77yVDNjmbRyujviMdxYliBSkLhpCc= google.golang.org/genproto v0.0.0-20200115191322-ca5a22157cba/go.mod h1:n3cpQtvxv34hfy77yVDNjmbRyujviMdxYliBSkLhpCc= google.golang.org/genproto v0.0.0-20200122232147-0452cf42e150/go.mod h1:n3cpQtvxv34hfy77yVDNjmbRyujviMdxYliBSkLhpCc= google.golang.org/genproto v0.0.0-20200204135345-fa8e72b47b90/go.mod h1:GmwEX6Z4W5gMy59cAlVYjN9JhxgbQH6Gn+gFDQe2lzA= @@ -1483,6 +1417,8 @@ gopkg.in/ini.v1 v1.51.1/go.mod h1:pNLf8WUiyNEtQjuu5G5vTm06TEv9tsIgeAvK8hOrP4k= gopkg.in/ini.v1 v1.67.0 h1:Dgnx+6+nfE+IfzjUEISNeydPJh9AXNNsWbGP9KzCsOA= gopkg.in/ini.v1 v1.67.0/go.mod h1:pNLf8WUiyNEtQjuu5G5vTm06TEv9tsIgeAvK8hOrP4k= gopkg.in/mgo.v2 v2.0.0-20180705113604-9856a29383ce/go.mod h1:yeKp02qBN3iKW1OzL3MGk2IdtZzaj7SFntXj72NppTA= +gopkg.in/natefinch/lumberjack.v2 v2.0.0 h1:1Lc07Kr7qY4U2YPouBjpCLxpiyxIVoxqXgkXLknAOE8= +gopkg.in/natefinch/lumberjack.v2 v2.0.0/go.mod h1:l0ndWWf7gzL7RNwBG7wST/UCcT4T24xpD6X8LsfU/+k= gopkg.in/natefinch/npipe.v2 v2.0.0-20160621034901-c1b8fa8bdcce h1:+JknDZhAj8YMt7GC73Ei8pv4MzjDUNPHgQWJdtMAaDU= gopkg.in/natefinch/npipe.v2 v2.0.0-20160621034901-c1b8fa8bdcce/go.mod h1:5AcXVHNjg+BDxry382+8OKon8SEWiKktQR07RKPsv1c= gopkg.in/tomb.v1 v1.0.0-20141024135613-dd632973f1e7 h1:uRGJdciOHaEIrze2W8Q3AKkepLTh2hOroT7a+7czfdQ= @@ -1519,6 +1455,7 @@ mvdan.cc/lint v0.0.0-20170908181259-adc824a0674b/go.mod h1:2odslEg/xrtNQqCYg2/jC mvdan.cc/unparam v0.0.0-20221223090309-7455f1af531d h1:3rvTIIM22r9pvXk+q3swxUQAQOxksVMGK7sml4nG57w= mvdan.cc/unparam v0.0.0-20221223090309-7455f1af531d/go.mod h1:IeHQjmn6TOD+e4Z3RFiZMMsLVL+A96Nvptar8Fj71is= rsc.io/binaryregexp v0.2.0/go.mod h1:qTv7/COck+e2FymRvadv62gMdZztPaShugOCi3I+8D8= -rsc.io/pdf v0.1.1/go.mod h1:n8OzWcQ6Sp37PL01nO98y4iUCRdTGarVfzxY20ICaU4= rsc.io/quote/v3 v3.1.0/go.mod h1:yEA65RcK8LyAZtP9Kv3t0HmxON59tX3rD+tICJqUlj0= rsc.io/sampler v1.3.0/go.mod h1:T1hPZKmBbMNahiBKFy5HrXp6adAjACjK9JXDnKaTXpA= +rsc.io/tmplfunc v0.0.3 h1:53XFQh69AfOa8Tw0Jm7t+GV7KZhOi6jzsCzTtKbMvzU= +rsc.io/tmplfunc v0.0.3/go.mod h1:AG3sTPzElb1Io3Yg4voV9AGZJuleGAwaVRxL9M49PhA= diff --git a/magefiles/hive.go b/magefiles/hive.go new file mode 100644 index 000000000..73d90ad2a --- /dev/null +++ b/magefiles/hive.go @@ -0,0 +1,85 @@ +// SPDX-License-Identifier: MIT +// +// Copyright (c) 2023 Berachain Foundation +// +// Permission is hereby granted, free of charge, to any person +// obtaining a copy of this software and associated documentation +// files (the "Software"), to deal in the Software without +// restriction, including without limitation the rights to use, +// copy, modify, merge, publish, distribute, sublicense, and/or sell +// copies of the Software, and to permit persons to whom the +// Software is furnished to do so, subject to the following +// conditions: +// +// The above copyright notice and this permission notice shall be +// included in all copies or substantial portions of the Software. +// +// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, +// EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES +// OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND +// NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT +// HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, +// WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING +// FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR +// OTHER DEALINGS IN THE SOFTWARE. + +package main + +import ( + "os" + + "github.com/magefile/mage/mg" + "github.com/magefile/mage/sh" +) + +var ( + // Variables. + baseHiveDockerPath = "./e2e/hive/" + hiveClone = os.Getenv("GOPATH") + "/src/" + clonePath = hiveClone + ".hive-e2e" + simulatorsPath = clonePath + "/simulators/polaris" + clientsPath = clonePath + "/clients/polard" +) + +type Hive mg.Namespace + +func (h Hive) Setup() error { + LogGreen("Executing Hive tests on polard client...") + + if _, err := os.Stat(hiveClone); os.IsNotExist(err) { + LogGreen(hiveClone + " does not exist, creating....") + err = os.Mkdir(hiveClone, 0755) //#nosec + if err != nil { + return err + } + } + + if _, err := os.Stat(clonePath); os.IsNotExist(err) { + LogGreen("Cloning ethereum/hive into " + clonePath + "...") + err = ExecuteInDirectory(hiveClone, func(...string) error { + return sh.RunV("git", "clone", "https://github.com/ethereum/hive", ".hive-e2e", "--depth=1") + }, false) + if err != nil { + return err + } + } + + LogGreen("Copying Polaris Hive setup files...") + if err := sh.RunV("cp", "-rf", baseHiveDockerPath+"clients/polard", clientsPath); err != nil { + return err + } + if err := sh.RunV("cp", "-rf", "./e2e/hive/simulators", simulatorsPath); err != nil { + return err + } + + return ExecuteInDirectory(clonePath, func(...string) error { + LogGreen("Building Hive...") + return goBuild(".") + }, false) +} + +func (h Hive) Test(sim, client string) error { + return ExecuteInDirectory(clonePath, func(...string) error { + return sh.RunV("./hive", "--sim", sim, "--client", client) + }, false) +} diff --git a/magefiles/tools.go b/magefiles/tools.go index 63a9e16c2..0c124055c 100644 --- a/magefiles/tools.go +++ b/magefiles/tools.go @@ -50,7 +50,7 @@ var ( // Dependencies. moq = "github.com/matryer/moq" - moduleDirs = []string{"contracts", "eth", "cosmos", "magefiles", "lib"} + moduleDirs = []string{"contracts", "e2e/hive/simulators/rpc", "eth", "cosmos", "magefiles", "lib"} ) // =========================================================================== diff --git a/magefiles/tools/tools.go b/magefiles/tools/tools.go index abf66d84e..43ce69a77 100644 --- a/magefiles/tools/tools.go +++ b/magefiles/tools/tools.go @@ -32,7 +32,7 @@ package tools -// nolint +//nolint import ( _ "github.com/bufbuild/buf/cmd/buf"