evm: move ChainConfig to Params (#266)

* evm: move ChainConfig to Params

* fixes

* fix test
This commit is contained in:
Federico Kunze Küllmer 2021-07-14 05:13:55 -04:00 committed by GitHub
parent 74b7eaf431
commit e09bf23bd0
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
26 changed files with 1185 additions and 1884 deletions

View File

@ -24,10 +24,9 @@ type EVMKeeper interface {
ChainID() *big.Int ChainID() *big.Int
GetParams(ctx sdk.Context) evmtypes.Params GetParams(ctx sdk.Context) evmtypes.Params
GetChainConfig(ctx sdk.Context) (evmtypes.ChainConfig, bool)
WithContext(ctx sdk.Context) WithContext(ctx sdk.Context)
ResetRefundTransient(ctx sdk.Context) ResetRefundTransient(ctx sdk.Context)
NewEVM(msg core.Message, config *params.ChainConfig) *vm.EVM NewEVM(msg core.Message, config *params.ChainConfig, params evmtypes.Params) *vm.EVM
GetCodeHash(addr common.Address) common.Hash GetCodeHash(addr common.Address) common.Hash
} }
@ -58,12 +57,9 @@ func (esvd EthSigVerificationDecorator) AnteHandle(ctx sdk.Context, tx sdk.Tx, s
chainID := esvd.evmKeeper.ChainID() chainID := esvd.evmKeeper.ChainID()
config, found := esvd.evmKeeper.GetChainConfig(ctx) params := esvd.evmKeeper.GetParams(ctx)
if !found {
return ctx, evmtypes.ErrChainConfigNotFound
}
ethCfg := config.EthereumConfig(chainID) ethCfg := params.ChainConfig.EthereumConfig(chainID)
blockNum := big.NewInt(ctx.BlockHeight()) blockNum := big.NewInt(ctx.BlockHeight())
signer := ethtypes.MakeSigner(ethCfg, blockNum) signer := ethtypes.MakeSigner(ethCfg, blockNum)
@ -271,12 +267,9 @@ func (egcd EthGasConsumeDecorator) AnteHandle(ctx sdk.Context, tx sdk.Tx, simula
// reset the refund gas value in the keeper for the current transaction // reset the refund gas value in the keeper for the current transaction
egcd.evmKeeper.ResetRefundTransient(ctx) egcd.evmKeeper.ResetRefundTransient(ctx)
config, found := egcd.evmKeeper.GetChainConfig(ctx) params := egcd.evmKeeper.GetParams(ctx)
if !found {
return ctx, evmtypes.ErrChainConfigNotFound
}
ethCfg := config.EthereumConfig(egcd.evmKeeper.ChainID()) ethCfg := params.ChainConfig.EthereumConfig(egcd.evmKeeper.ChainID())
blockHeight := big.NewInt(ctx.BlockHeight()) blockHeight := big.NewInt(ctx.BlockHeight())
homestead := ethCfg.IsHomestead(blockHeight) homestead := ethCfg.IsHomestead(blockHeight)
@ -373,12 +366,9 @@ func NewCanTransferDecorator(evmKeeper EVMKeeper) CanTransferDecorator {
func (ctd CanTransferDecorator) AnteHandle(ctx sdk.Context, tx sdk.Tx, simulate bool, next sdk.AnteHandler) (sdk.Context, error) { func (ctd CanTransferDecorator) AnteHandle(ctx sdk.Context, tx sdk.Tx, simulate bool, next sdk.AnteHandler) (sdk.Context, error) {
ctd.evmKeeper.WithContext(ctx) ctd.evmKeeper.WithContext(ctx)
config, found := ctd.evmKeeper.GetChainConfig(ctx) params := ctd.evmKeeper.GetParams(ctx)
if !found {
return ctx, evmtypes.ErrChainConfigNotFound
}
ethCfg := config.EthereumConfig(ctd.evmKeeper.ChainID()) ethCfg := params.ChainConfig.EthereumConfig(ctd.evmKeeper.ChainID())
signer := ethtypes.MakeSigner(ethCfg, big.NewInt(ctx.BlockHeight())) signer := ethtypes.MakeSigner(ethCfg, big.NewInt(ctx.BlockHeight()))
for i, msg := range tx.GetMsgs() { for i, msg := range tx.GetMsgs() {
@ -398,7 +388,7 @@ func (ctd CanTransferDecorator) AnteHandle(ctx sdk.Context, tx sdk.Tx, simulate
) )
} }
evm := ctd.evmKeeper.NewEVM(coreMsg, ethCfg) evm := ctd.evmKeeper.NewEVM(coreMsg, ethCfg, params)
// check that caller has enough balance to cover asset transfer for **topmost** call // check that caller has enough balance to cover asset transfer for **topmost** call
// NOTE: here the gas consumed is from the context with the infinite gas meter // NOTE: here the gas consumed is from the context with the infinite gas meter
@ -440,12 +430,8 @@ func NewAccessListDecorator(evmKeeper EVMKeeper) AccessListDecorator {
// The AnteHandler will only prepare the access list if Yolov3/Berlin/EIPs 2929 and 2930 are applicable at the current number. // The AnteHandler will only prepare the access list if Yolov3/Berlin/EIPs 2929 and 2930 are applicable at the current number.
func (ald AccessListDecorator) AnteHandle(ctx sdk.Context, tx sdk.Tx, simulate bool, next sdk.AnteHandler) (sdk.Context, error) { func (ald AccessListDecorator) AnteHandle(ctx sdk.Context, tx sdk.Tx, simulate bool, next sdk.AnteHandler) (sdk.Context, error) {
config, found := ald.evmKeeper.GetChainConfig(ctx) params := ald.evmKeeper.GetParams(ctx)
if !found { ethCfg := params.ChainConfig.EthereumConfig(ald.evmKeeper.ChainID())
return ctx, evmtypes.ErrChainConfigNotFound
}
ethCfg := config.EthereumConfig(ald.evmKeeper.ChainID())
rules := ethCfg.Rules(big.NewInt(ctx.BlockHeight())) rules := ethCfg.Rules(big.NewInt(ctx.BlockHeight()))

File diff suppressed because one or more lines are too long

File diff suppressed because it is too large Load Diff

View File

@ -41,8 +41,6 @@
- [QueryBlockBloomResponse](#ethermint.evm.v1alpha1.QueryBlockBloomResponse) - [QueryBlockBloomResponse](#ethermint.evm.v1alpha1.QueryBlockBloomResponse)
- [QueryBlockLogsRequest](#ethermint.evm.v1alpha1.QueryBlockLogsRequest) - [QueryBlockLogsRequest](#ethermint.evm.v1alpha1.QueryBlockLogsRequest)
- [QueryBlockLogsResponse](#ethermint.evm.v1alpha1.QueryBlockLogsResponse) - [QueryBlockLogsResponse](#ethermint.evm.v1alpha1.QueryBlockLogsResponse)
- [QueryChainConfigRequest](#ethermint.evm.v1alpha1.QueryChainConfigRequest)
- [QueryChainConfigResponse](#ethermint.evm.v1alpha1.QueryChainConfigResponse)
- [QueryCodeRequest](#ethermint.evm.v1alpha1.QueryCodeRequest) - [QueryCodeRequest](#ethermint.evm.v1alpha1.QueryCodeRequest)
- [QueryCodeResponse](#ethermint.evm.v1alpha1.QueryCodeResponse) - [QueryCodeResponse](#ethermint.evm.v1alpha1.QueryCodeResponse)
- [QueryCosmosAccountRequest](#ethermint.evm.v1alpha1.QueryCosmosAccountRequest) - [QueryCosmosAccountRequest](#ethermint.evm.v1alpha1.QueryCosmosAccountRequest)
@ -142,37 +140,28 @@ AccessTuple is the element type of an access list.
<a name="ethermint.evm.v1alpha1.ChainConfig"></a> <a name="ethermint.evm.v1alpha1.ChainConfig"></a>
### ChainConfig ### ChainConfig
ChainConfig defines the Ethereum ChainConfig parameters using sdk.Int values ChainConfig defines the Ethereum ChainConfig parameters using *sdk.Int values
instead of big.Int. instead of *big.Int.
NOTE 1: Since empty/uninitialized Ints (i.e with a nil big.Int value) are
parsed to zero, we need to manually specify that negative Int values will be
considered as nil. See getBlockValue for reference.
NOTE 2: This type is not a configurable Param since the SDK does not allow
for validation against a previous stored parameter values or the current
block height (retrieved from context). If you want to update the config
values, use an software upgrade procedure.
| Field | Type | Label | Description | | Field | Type | Label | Description |
| ----- | ---- | ----- | ----------- | | ----- | ---- | ----- | ----------- |
| `homestead_block` | [string](#string) | | Homestead switch block (< 0 no fork, 0 = already homestead) | | `homestead_block` | [string](#string) | | Homestead switch block (nil no fork, 0 = already homestead) |
| `dao_fork_block` | [string](#string) | | TheDAO hard-fork switch block (< 0 no fork) | | `dao_fork_block` | [string](#string) | | TheDAO hard-fork switch block (nil no fork) |
| `dao_fork_support` | [bool](#bool) | | Whether the nodes supports or opposes the DAO hard-fork | | `dao_fork_support` | [bool](#bool) | | Whether the nodes supports or opposes the DAO hard-fork |
| `eip150_block` | [string](#string) | | EIP150 implements the Gas price changes (https://github.com/ethereum/EIPs/issues/150) EIP150 HF block (< 0 no fork) | | `eip150_block` | [string](#string) | | EIP150 implements the Gas price changes (https://github.com/ethereum/EIPs/issues/150) EIP150 HF block (nil no fork) |
| `eip150_hash` | [string](#string) | | EIP150 HF hash (needed for header only clients as only gas pricing changed) | | `eip150_hash` | [string](#string) | | EIP150 HF hash (needed for header only clients as only gas pricing changed) |
| `eip155_block` | [string](#string) | | EIP155Block HF block | | `eip155_block` | [string](#string) | | EIP155Block HF block |
| `eip158_block` | [string](#string) | | EIP158 HF block | | `eip158_block` | [string](#string) | | EIP158 HF block |
| `byzantium_block` | [string](#string) | | Byzantium switch block (< 0 no fork, 0 = already on byzantium) | | `byzantium_block` | [string](#string) | | Byzantium switch block (nil no fork, 0 = already on byzantium) |
| `constantinople_block` | [string](#string) | | Constantinople switch block (< 0 no fork, 0 = already activated) | | `constantinople_block` | [string](#string) | | Constantinople switch block (nil no fork, 0 = already activated) |
| `petersburg_block` | [string](#string) | | Petersburg switch block (< 0 same as Constantinople) | | `petersburg_block` | [string](#string) | | Petersburg switch block (nil same as Constantinople) |
| `istanbul_block` | [string](#string) | | Istanbul switch block (< 0 no fork, 0 = already on istanbul) | | `istanbul_block` | [string](#string) | | Istanbul switch block (nil no fork, 0 = already on istanbul) |
| `muir_glacier_block` | [string](#string) | | Eip-2384 (bomb delay) switch block (< 0 no fork, 0 = already activated) | | `muir_glacier_block` | [string](#string) | | Eip-2384 (bomb delay) switch block (nil no fork, 0 = already activated) |
| `berlin_block` | [string](#string) | | Berlin switch block (< 0 = no fork, 0 = already on berlin) | | `berlin_block` | [string](#string) | | Berlin switch block (nil = no fork, 0 = already on berlin) |
| `yolo_v3_block` | [string](#string) | | YOLO v3: Gas repricings | | `yolo_v3_block` | [string](#string) | | YOLO v3: Gas repricings |
| `ewasm_block` | [string](#string) | | EWASM switch block (< 0 no fork, 0 = already activated) | | `ewasm_block` | [string](#string) | | EWASM switch block (nil no fork, 0 = already activated) |
| `catalyst_block` | [string](#string) | | Catalyst switch block (< 0 = no fork, 0 = already on catalyst) | | `catalyst_block` | [string](#string) | | Catalyst switch block (nil = no fork, 0 = already on catalyst) |
@ -212,10 +201,11 @@ Params defines the EVM module parameters
| Field | Type | Label | Description | | Field | Type | Label | Description |
| ----- | ---- | ----- | ----------- | | ----- | ---- | ----- | ----------- |
| `evm_denom` | [string](#string) | | evm_denom represents the token denomination used to run the EVM state transitions. | | `evm_denom` | [string](#string) | | evm denom represents the token denomination used to run the EVM state transitions. |
| `enable_create` | [bool](#bool) | | enable_create toggles state transitions that use the vm.Create function | | `enable_create` | [bool](#bool) | | enable create toggles state transitions that use the vm.Create function |
| `enable_call` | [bool](#bool) | | enable_call toggles state transitions that use the vm.Call function | | `enable_call` | [bool](#bool) | | enable call toggles state transitions that use the vm.Call function |
| `extra_eips` | [int64](#int64) | repeated | extra_eips defines the additional EIPs for the vm.Config | | `extra_eips` | [int64](#int64) | repeated | extra eips defines the additional EIPs for the vm.Config |
| `chain_config` | [ChainConfig](#ethermint.evm.v1alpha1.ChainConfig) | | chain config defines the EVM chain configuration parameters |
@ -320,7 +310,6 @@ GenesisState defines the evm module's genesis state.
| Field | Type | Label | Description | | Field | Type | Label | Description |
| ----- | ---- | ----- | ----------- | | ----- | ---- | ----- | ----------- |
| `accounts` | [GenesisAccount](#ethermint.evm.v1alpha1.GenesisAccount) | repeated | accounts is an array containing the ethereum genesis accounts. | | `accounts` | [GenesisAccount](#ethermint.evm.v1alpha1.GenesisAccount) | repeated | accounts is an array containing the ethereum genesis accounts. |
| `chain_config` | [ChainConfig](#ethermint.evm.v1alpha1.ChainConfig) | | chain_config defines the Ethereum chain configuration. |
| `params` | [Params](#ethermint.evm.v1alpha1.Params) | | params defines all the paramaters of the module. | | `params` | [Params](#ethermint.evm.v1alpha1.Params) | | params defines all the paramaters of the module. |
| `txs_logs` | [TransactionLogs](#ethermint.evm.v1alpha1.TransactionLogs) | repeated | | | `txs_logs` | [TransactionLogs](#ethermint.evm.v1alpha1.TransactionLogs) | repeated | |
@ -614,31 +603,6 @@ QueryTxLogs is the response type for the Query/BlockLogs RPC method.
<a name="ethermint.evm.v1alpha1.QueryChainConfigRequest"></a>
### QueryChainConfigRequest
QueryChainConfigRequest defines the request type for querying x/evm chain configuration.
<a name="ethermint.evm.v1alpha1.QueryChainConfigResponse"></a>
### QueryChainConfigResponse
QueryChainConfigResponse defines the response type for querying x/evm chain configuration.
| Field | Type | Label | Description |
| ----- | ---- | ----- | ----------- |
| `config` | [ChainConfig](#ethermint.evm.v1alpha1.ChainConfig) | | ChainConfig define the evm chain configuration. |
<a name="ethermint.evm.v1alpha1.QueryCodeRequest"></a> <a name="ethermint.evm.v1alpha1.QueryCodeRequest"></a>
### QueryCodeRequest ### QueryCodeRequest
@ -875,7 +839,6 @@ Query defines the gRPC querier service.
| `BlockLogs` | [QueryBlockLogsRequest](#ethermint.evm.v1alpha1.QueryBlockLogsRequest) | [QueryBlockLogsResponse](#ethermint.evm.v1alpha1.QueryBlockLogsResponse) | BlockLogs queries all the ethereum logs for a given block hash. | GET|/ethermint/evm/v1alpha1/block_logs/{hash}| | `BlockLogs` | [QueryBlockLogsRequest](#ethermint.evm.v1alpha1.QueryBlockLogsRequest) | [QueryBlockLogsResponse](#ethermint.evm.v1alpha1.QueryBlockLogsResponse) | BlockLogs queries all the ethereum logs for a given block hash. | GET|/ethermint/evm/v1alpha1/block_logs/{hash}|
| `BlockBloom` | [QueryBlockBloomRequest](#ethermint.evm.v1alpha1.QueryBlockBloomRequest) | [QueryBlockBloomResponse](#ethermint.evm.v1alpha1.QueryBlockBloomResponse) | BlockBloom queries the block bloom filter bytes at a given height. | GET|/ethermint/evm/v1alpha1/block_bloom| | `BlockBloom` | [QueryBlockBloomRequest](#ethermint.evm.v1alpha1.QueryBlockBloomRequest) | [QueryBlockBloomResponse](#ethermint.evm.v1alpha1.QueryBlockBloomResponse) | BlockBloom queries the block bloom filter bytes at a given height. | GET|/ethermint/evm/v1alpha1/block_bloom|
| `Params` | [QueryParamsRequest](#ethermint.evm.v1alpha1.QueryParamsRequest) | [QueryParamsResponse](#ethermint.evm.v1alpha1.QueryParamsResponse) | Params queries the parameters of x/evm module. | GET|/ethermint/evm/v1alpha1/params| | `Params` | [QueryParamsRequest](#ethermint.evm.v1alpha1.QueryParamsRequest) | [QueryParamsResponse](#ethermint.evm.v1alpha1.QueryParamsResponse) | Params queries the parameters of x/evm module. | GET|/ethermint/evm/v1alpha1/params|
| `ChainConfig` | [QueryChainConfigRequest](#ethermint.evm.v1alpha1.QueryChainConfigRequest) | [QueryChainConfigResponse](#ethermint.evm.v1alpha1.QueryChainConfigResponse) | ChainConfig queries the chain configuration values of EVM. | GET|/ethermint/evm/v1alpha1/chain_config|
| `StaticCall` | [QueryStaticCallRequest](#ethermint.evm.v1alpha1.QueryStaticCallRequest) | [QueryStaticCallResponse](#ethermint.evm.v1alpha1.QueryStaticCallResponse) | StaticCall queries the static call value of x/evm module. | GET|/ethermint/evm/v1alpha1/static_call| | `StaticCall` | [QueryStaticCallRequest](#ethermint.evm.v1alpha1.QueryStaticCallRequest) | [QueryStaticCallResponse](#ethermint.evm.v1alpha1.QueryStaticCallResponse) | StaticCall queries the static call value of x/evm module. | GET|/ethermint/evm/v1alpha1/static_call|
| `EthCall` | [EthCallRequest](#ethermint.evm.v1alpha1.EthCallRequest) | [MsgEthereumTxResponse](#ethermint.evm.v1alpha1.MsgEthereumTxResponse) | EthCall implements the `eth_call` rpc api | GET|/ethermint/evm/v1alpha1/eth_call| | `EthCall` | [EthCallRequest](#ethermint.evm.v1alpha1.EthCallRequest) | [MsgEthereumTxResponse](#ethermint.evm.v1alpha1.MsgEthereumTxResponse) | EthCall implements the `eth_call` rpc api | GET|/ethermint/evm/v1alpha1/eth_call|

View File

@ -17,7 +17,6 @@ import (
"github.com/ethereum/go-ethereum/common" "github.com/ethereum/go-ethereum/common"
"github.com/ethereum/go-ethereum/common/hexutil" "github.com/ethereum/go-ethereum/common/hexutil"
ethtypes "github.com/ethereum/go-ethereum/core/types" ethtypes "github.com/ethereum/go-ethereum/core/types"
"github.com/ethereum/go-ethereum/params"
ethermint "github.com/tharsis/ethermint/types" ethermint "github.com/tharsis/ethermint/types"
evmtypes "github.com/tharsis/ethermint/x/evm/types" evmtypes "github.com/tharsis/ethermint/x/evm/types"
@ -42,8 +41,6 @@ type Backend interface {
// Used by log filter // Used by log filter
GetTransactionLogs(txHash common.Hash) ([]*ethtypes.Log, error) GetTransactionLogs(txHash common.Hash) ([]*ethtypes.Log, error)
BloomStatus() (uint64, uint64) BloomStatus() (uint64, uint64)
ChainConfig() *params.ChainConfig
} }
var _ Backend = (*EVMBackend)(nil) var _ Backend = (*EVMBackend)(nil)
@ -383,14 +380,3 @@ func (e *EVMBackend) GetLogsByNumber(blockNum types.BlockNumber) ([][]*ethtypes.
func (e *EVMBackend) BloomStatus() (uint64, uint64) { func (e *EVMBackend) BloomStatus() (uint64, uint64) {
return 4096, 0 return 4096, 0
} }
// ChainConfig returns the chain configuration for the chain. This method returns a nil pointer if
// the query fails.
func (e *EVMBackend) ChainConfig() *params.ChainConfig {
res, err := e.queryClient.QueryClient.ChainConfig(e.ctx, &evmtypes.QueryChainConfigRequest{})
if err != nil {
return nil
}
return res.Config.EthereumConfig(e.chainID)
}

14
go.mod
View File

@ -3,6 +3,10 @@ module github.com/tharsis/ethermint
go 1.15 go 1.15
require ( require (
github.com/Masterminds/goutils v1.1.1 // indirect
github.com/Masterminds/semver v1.5.0 // indirect
github.com/Masterminds/sprig v2.22.0+incompatible // indirect
github.com/aokoli/goutils v1.1.1 // indirect
github.com/armon/go-metrics v0.3.9 github.com/armon/go-metrics v0.3.9
github.com/aws/aws-sdk-go v1.38.21 // indirect github.com/aws/aws-sdk-go v1.38.21 // indirect
github.com/bitly/go-simplejson v0.5.0 // indirect github.com/bitly/go-simplejson v0.5.0 // indirect
@ -15,6 +19,7 @@ require (
github.com/cosmos/go-bip39 v1.0.0 github.com/cosmos/go-bip39 v1.0.0
github.com/cosmos/ibc-go v1.0.0-beta1 github.com/cosmos/ibc-go v1.0.0-beta1
github.com/deckarep/golang-set v1.7.1 // indirect github.com/deckarep/golang-set v1.7.1 // indirect
github.com/envoyproxy/protoc-gen-validate v0.6.1 // indirect
github.com/ethereum/go-ethereum v1.10.3 github.com/ethereum/go-ethereum v1.10.3
github.com/gofrs/uuid v4.0.0+incompatible // indirect github.com/gofrs/uuid v4.0.0+incompatible // indirect
github.com/gogo/protobuf v1.3.3 github.com/gogo/protobuf v1.3.3
@ -24,12 +29,17 @@ require (
github.com/gorilla/websocket v1.4.2 github.com/gorilla/websocket v1.4.2
github.com/grpc-ecosystem/grpc-gateway v1.16.0 github.com/grpc-ecosystem/grpc-gateway v1.16.0
github.com/hashicorp/go-immutable-radix v1.3.0 // indirect github.com/hashicorp/go-immutable-radix v1.3.0 // indirect
github.com/huandu/xstrings v1.3.2 // indirect
github.com/imdario/mergo v0.3.12 // indirect
github.com/improbable-eng/grpc-web v0.14.0 github.com/improbable-eng/grpc-web v0.14.0
github.com/kardianos/osext v0.0.0-20190222173326-2bc1f35cddc0 // indirect github.com/kardianos/osext v0.0.0-20190222173326-2bc1f35cddc0 // indirect
github.com/miguelmota/go-ethereum-hdwallet v0.0.1 github.com/miguelmota/go-ethereum-hdwallet v0.0.1
github.com/mitchellh/copystructure v1.2.0 // indirect
github.com/mwitkow/go-proto-validators v0.3.2 // indirect
github.com/palantir/stacktrace v0.0.0-20161112013806-78658fd2d177 github.com/palantir/stacktrace v0.0.0-20161112013806-78658fd2d177
github.com/pkg/errors v0.9.1 github.com/pkg/errors v0.9.1
github.com/prometheus/tsdb v0.10.0 // indirect github.com/prometheus/tsdb v0.10.0 // indirect
github.com/pseudomuto/protoc-gen-doc v1.4.1 // indirect
github.com/rakyll/statik v0.1.7 github.com/rakyll/statik v0.1.7
github.com/regen-network/cosmos-proto v0.3.1 github.com/regen-network/cosmos-proto v0.3.1
github.com/rjeczalik/notify v0.9.2 // indirect github.com/rjeczalik/notify v0.9.2 // indirect
@ -44,8 +54,8 @@ require (
github.com/tyler-smith/go-bip39 v1.1.0 github.com/tyler-smith/go-bip39 v1.1.0
github.com/xlab/closer v0.0.0-20190328110542-03326addb7c2 github.com/xlab/closer v0.0.0-20190328110542-03326addb7c2
github.com/xlab/suplog v1.3.0 github.com/xlab/suplog v1.3.0
golang.org/x/crypto v0.0.0-20210616213533-5ff15b29337e // indirect golang.org/x/crypto v0.0.0-20210711020723-a769d52b0f97 // indirect
google.golang.org/genproto v0.0.0-20210707164411-8c882eb9abba google.golang.org/genproto v0.0.0-20210712171009-5404628d0f46
google.golang.org/grpc v1.39.0 google.golang.org/grpc v1.39.0
gopkg.in/yaml.v2 v2.4.0 gopkg.in/yaml.v2 v2.4.0
nhooyr.io/websocket v1.8.7 // indirect nhooyr.io/websocket v1.8.7 // indirect

49
go.sum
View File

@ -68,6 +68,14 @@ github.com/DataDog/zstd v1.4.1/go.mod h1:1jcaCB/ufaK+sKp1NBhlGmpz41jOoPQ35bpF36t
github.com/DataDog/zstd v1.4.5 h1:EndNeuB0l9syBZhut0wns3gV1hL8zX8LIu6ZiVHWLIQ= github.com/DataDog/zstd v1.4.5 h1:EndNeuB0l9syBZhut0wns3gV1hL8zX8LIu6ZiVHWLIQ=
github.com/DataDog/zstd v1.4.5/go.mod h1:1jcaCB/ufaK+sKp1NBhlGmpz41jOoPQ35bpF36t7BBo= github.com/DataDog/zstd v1.4.5/go.mod h1:1jcaCB/ufaK+sKp1NBhlGmpz41jOoPQ35bpF36t7BBo=
github.com/Knetic/govaluate v3.0.1-0.20171022003610-9aa49832a739+incompatible/go.mod h1:r7JcOSlj0wfOMncg0iLm8Leh48TZaKVeNIfJntJ2wa0= github.com/Knetic/govaluate v3.0.1-0.20171022003610-9aa49832a739+incompatible/go.mod h1:r7JcOSlj0wfOMncg0iLm8Leh48TZaKVeNIfJntJ2wa0=
github.com/Masterminds/goutils v1.1.1 h1:5nUrii3FMTL5diU80unEVvNevw1nH4+ZV4DSLVJLSYI=
github.com/Masterminds/goutils v1.1.1/go.mod h1:8cTjp+g8YejhMuvIA5y2vz3BpJxksy863GQaJW2MFNU=
github.com/Masterminds/semver v1.4.2/go.mod h1:MB6lktGJrhw8PrUyiEoblNEGEQ+RzHPF078ddwwvV3Y=
github.com/Masterminds/semver v1.5.0 h1:H65muMkzWKEuNDnfl9d70GUjFniHKHRbFPGBuZ3QEww=
github.com/Masterminds/semver v1.5.0/go.mod h1:MB6lktGJrhw8PrUyiEoblNEGEQ+RzHPF078ddwwvV3Y=
github.com/Masterminds/sprig v2.15.0+incompatible/go.mod h1:y6hNFY5UBTIWBxnzTeuNhlNS5hqE0NB0E6fgfo2Br3o=
github.com/Masterminds/sprig v2.22.0+incompatible h1:z4yfnGrZ7netVz+0EDJ0Wi+5VZCSYp4Z0m2dk6cEM60=
github.com/Masterminds/sprig v2.22.0+incompatible/go.mod h1:y6hNFY5UBTIWBxnzTeuNhlNS5hqE0NB0E6fgfo2Br3o=
github.com/OneOfOne/xxhash v1.2.2 h1:KMrpdQIwFcEqXDklaen+P1axHaj9BSKzvpUUfnHldSE= github.com/OneOfOne/xxhash v1.2.2 h1:KMrpdQIwFcEqXDklaen+P1axHaj9BSKzvpUUfnHldSE=
github.com/OneOfOne/xxhash v1.2.2/go.mod h1:HSdplMjZKSmBqAxg5vPj2TmRDmfkzw+cTzAElWljhcU= github.com/OneOfOne/xxhash v1.2.2/go.mod h1:HSdplMjZKSmBqAxg5vPj2TmRDmfkzw+cTzAElWljhcU=
github.com/Shopify/sarama v1.19.0/go.mod h1:FVkBWblsNy7DGZRfXLU0O9RCGt5g3g3yEuWXgklEdEo= github.com/Shopify/sarama v1.19.0/go.mod h1:FVkBWblsNy7DGZRfXLU0O9RCGt5g3g3yEuWXgklEdEo=
@ -95,6 +103,9 @@ github.com/allegro/bigcache v1.2.1 h1:hg1sY1raCwic3Vnsvje6TT7/pnZba83LeFck5NrFKS
github.com/allegro/bigcache v1.2.1/go.mod h1:Cb/ax3seSYIx7SuZdm2G2xzfwmv3TPSk2ucNfQESPXM= github.com/allegro/bigcache v1.2.1/go.mod h1:Cb/ax3seSYIx7SuZdm2G2xzfwmv3TPSk2ucNfQESPXM=
github.com/andreyvit/diff v0.0.0-20170406064948-c7f18ee00883/go.mod h1:rCTlJbsFo29Kk6CurOXKm700vrz8f0KW0JNfpkRJY/8= github.com/andreyvit/diff v0.0.0-20170406064948-c7f18ee00883/go.mod h1:rCTlJbsFo29Kk6CurOXKm700vrz8f0KW0JNfpkRJY/8=
github.com/antihax/optional v1.0.0/go.mod h1:uupD/76wgC+ih3iEmQUL+0Ugr19nfwCT1kdvxnR2qWY= github.com/antihax/optional v1.0.0/go.mod h1:uupD/76wgC+ih3iEmQUL+0Ugr19nfwCT1kdvxnR2qWY=
github.com/aokoli/goutils v1.0.1/go.mod h1:SijmP0QR8LtwsmDs8Yii5Z/S4trXFGFC2oO5g9DP+DQ=
github.com/aokoli/goutils v1.1.1 h1:/hA+Ywo3AxoDZY5ZMnkiEkUvkK4BPp927ax110KCqqg=
github.com/aokoli/goutils v1.1.1/go.mod h1:SijmP0QR8LtwsmDs8Yii5Z/S4trXFGFC2oO5g9DP+DQ=
github.com/apache/arrow/go/arrow v0.0.0-20191024131854-af6fa24be0db/go.mod h1:VTxUBvSJ3s3eHAg65PNgrsn5BtqCRPdmyXh6rAfdxN0= github.com/apache/arrow/go/arrow v0.0.0-20191024131854-af6fa24be0db/go.mod h1:VTxUBvSJ3s3eHAg65PNgrsn5BtqCRPdmyXh6rAfdxN0=
github.com/apache/thrift v0.12.0/go.mod h1:cp2SuWMxlEZw2r+iP2GNCdIi4C1qmUzdZFSVb+bacwQ= 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= github.com/apache/thrift v0.13.0/go.mod h1:cp2SuWMxlEZw2r+iP2GNCdIi4C1qmUzdZFSVb+bacwQ=
@ -239,6 +250,7 @@ github.com/creack/pty v1.1.9/go.mod h1:oKZEueFk5CKHvIhNR5MUki03XCEU+Q6VDXinZuGJ3
github.com/danieljoos/wincred v1.0.2 h1:zf4bhty2iLuwgjgpraD2E9UbvO+fe54XXGJbOwe23fU= github.com/danieljoos/wincred v1.0.2 h1:zf4bhty2iLuwgjgpraD2E9UbvO+fe54XXGJbOwe23fU=
github.com/danieljoos/wincred v1.0.2/go.mod h1:SnuYRW9lp1oJrZX/dXJqr0cPK5gYXqx3EJbmjhLdK9U= github.com/danieljoos/wincred v1.0.2/go.mod h1:SnuYRW9lp1oJrZX/dXJqr0cPK5gYXqx3EJbmjhLdK9U=
github.com/dave/jennifer v1.2.0/go.mod h1:fIb+770HOpJ2fmN9EPPKOqm1vMGhB+TwXKMZhrIygKg= github.com/dave/jennifer v1.2.0/go.mod h1:fIb+770HOpJ2fmN9EPPKOqm1vMGhB+TwXKMZhrIygKg=
github.com/davecgh/go-spew v0.0.0-20161028175848-04cdfd42973b/go.mod h1:J7Y8YcW2NihsgmVo/mv3lAwl/skON4iLHjSsI+c5H38=
github.com/davecgh/go-spew v0.0.0-20171005155431-ecdeabc65495/go.mod h1:J7Y8YcW2NihsgmVo/mv3lAwl/skON4iLHjSsI+c5H38= github.com/davecgh/go-spew v0.0.0-20171005155431-ecdeabc65495/go.mod h1:J7Y8YcW2NihsgmVo/mv3lAwl/skON4iLHjSsI+c5H38=
github.com/davecgh/go-spew v1.1.0/go.mod h1:J7Y8YcW2NihsgmVo/mv3lAwl/skON4iLHjSsI+c5H38= 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 h1:vj9j/u1bqnvCEfJOwUhtlOARqs3+rkHYY13jYWTU97c=
@ -283,6 +295,9 @@ github.com/enigmampc/btcutil v1.0.3-0.20200723161021-e2fb6adb2a25 h1:2vLKys4RBU4
github.com/enigmampc/btcutil v1.0.3-0.20200723161021-e2fb6adb2a25/go.mod h1:hTr8+TLQmkUkgcuh3mcr5fjrT9c64ZzsBCdCEC6UppY= github.com/enigmampc/btcutil v1.0.3-0.20200723161021-e2fb6adb2a25/go.mod h1:hTr8+TLQmkUkgcuh3mcr5fjrT9c64ZzsBCdCEC6UppY=
github.com/envoyproxy/go-control-plane v0.9.4/go.mod h1:6rpuAdCZL397s3pYoYcLgu1mIlRU8Am5FuJP05cCM98= github.com/envoyproxy/go-control-plane v0.9.4/go.mod h1:6rpuAdCZL397s3pYoYcLgu1mIlRU8Am5FuJP05cCM98=
github.com/envoyproxy/protoc-gen-validate v0.1.0/go.mod h1:iSmxcyjqTsJpI2R4NaDN7+kN2VEUnK/pcBlmesArF7c= github.com/envoyproxy/protoc-gen-validate v0.1.0/go.mod h1:iSmxcyjqTsJpI2R4NaDN7+kN2VEUnK/pcBlmesArF7c=
github.com/envoyproxy/protoc-gen-validate v0.3.0-java/go.mod h1:iSmxcyjqTsJpI2R4NaDN7+kN2VEUnK/pcBlmesArF7c=
github.com/envoyproxy/protoc-gen-validate v0.6.1 h1:4CF52PCseTFt4bE+Yk3dIpdVi7XWuPVMhPtm4FaIJPM=
github.com/envoyproxy/protoc-gen-validate v0.6.1/go.mod h1:txg5va2Qkip90uYoSKH+nkAAmXrb2j3iq4FLwdrCbXQ=
github.com/ethereum/go-ethereum v1.9.23/go.mod h1:JIfVb6esrqALTExdz9hRYvrP0xBDf6wCncIu1hNwHpM= github.com/ethereum/go-ethereum v1.9.23/go.mod h1:JIfVb6esrqALTExdz9hRYvrP0xBDf6wCncIu1hNwHpM=
github.com/ethereum/go-ethereum v1.9.25/go.mod h1:vMkFiYLHI4tgPw4k2j4MHKoovchFE8plZ0M9VMk4/oM= github.com/ethereum/go-ethereum v1.9.25/go.mod h1:vMkFiYLHI4tgPw4k2j4MHKoovchFE8plZ0M9VMk4/oM=
github.com/ethereum/go-ethereum v1.10.1/go.mod h1:E5e/zvdfUVr91JZ0AwjyuJM3x+no51zZJRz61orLLSk= github.com/ethereum/go-ethereum v1.10.1/go.mod h1:E5e/zvdfUVr91JZ0AwjyuJM3x+no51zZJRz61orLLSk=
@ -444,6 +459,7 @@ github.com/google/pprof v0.0.0-20210122040257-d980be63207e/go.mod h1:kpwsk12EmLe
github.com/google/pprof v0.0.0-20210226084205-cbba55b83ad5/go.mod h1:kpwsk12EmLew5upagYY7GY0pfYCcupk39gWOCRROcvE= github.com/google/pprof v0.0.0-20210226084205-cbba55b83ad5/go.mod h1:kpwsk12EmLew5upagYY7GY0pfYCcupk39gWOCRROcvE=
github.com/google/protobuf v3.14.0+incompatible/go.mod h1:lUQ9D1ePzbH2PrIS7ob/bjm9HXyH5WHB0Akwh7URreM= github.com/google/protobuf v3.14.0+incompatible/go.mod h1:lUQ9D1ePzbH2PrIS7ob/bjm9HXyH5WHB0Akwh7URreM=
github.com/google/renameio v0.1.0/go.mod h1:KWCgfxg9yswjAJkECMjeO8J8rahYeXnNhOm40UhjYkI= github.com/google/renameio v0.1.0/go.mod h1:KWCgfxg9yswjAJkECMjeO8J8rahYeXnNhOm40UhjYkI=
github.com/google/uuid v0.0.0-20161128191214-064e2069ce9c/go.mod h1:TIyPZe4MgqvfeYDBFedMoGGpEw/LqOeaOT+nhxU+yHo=
github.com/google/uuid v1.0.0/go.mod h1:TIyPZe4MgqvfeYDBFedMoGGpEw/LqOeaOT+nhxU+yHo= github.com/google/uuid v1.0.0/go.mod h1:TIyPZe4MgqvfeYDBFedMoGGpEw/LqOeaOT+nhxU+yHo=
github.com/google/uuid v1.1.1/go.mod h1:TIyPZe4MgqvfeYDBFedMoGGpEw/LqOeaOT+nhxU+yHo= github.com/google/uuid v1.1.1/go.mod h1:TIyPZe4MgqvfeYDBFedMoGGpEw/LqOeaOT+nhxU+yHo=
github.com/google/uuid v1.1.2/go.mod h1:TIyPZe4MgqvfeYDBFedMoGGpEw/LqOeaOT+nhxU+yHo= github.com/google/uuid v1.1.2/go.mod h1:TIyPZe4MgqvfeYDBFedMoGGpEw/LqOeaOT+nhxU+yHo=
@ -532,14 +548,21 @@ github.com/holiman/bloomfilter/v2 v2.0.3/go.mod h1:zpoh+gs7qcpqrHr3dB55AMiJwo0iU
github.com/holiman/uint256 v1.1.1 h1:4JywC80b+/hSfljFlEBLHrrh+CIONLDz9NuFl0af4Mw= github.com/holiman/uint256 v1.1.1 h1:4JywC80b+/hSfljFlEBLHrrh+CIONLDz9NuFl0af4Mw=
github.com/holiman/uint256 v1.1.1/go.mod h1:y4ga/t+u+Xwd7CpDgZESaRcWy0I7XMlTMA25ApIH5Jw= github.com/holiman/uint256 v1.1.1/go.mod h1:y4ga/t+u+Xwd7CpDgZESaRcWy0I7XMlTMA25ApIH5Jw=
github.com/hpcloud/tail v1.0.0/go.mod h1:ab1qPbhIpdTxEkNHXyeSf5vhxWSCs/tWer42PpOxQnU= github.com/hpcloud/tail v1.0.0/go.mod h1:ab1qPbhIpdTxEkNHXyeSf5vhxWSCs/tWer42PpOxQnU=
github.com/huandu/xstrings v1.0.0/go.mod h1:4qWG/gcEcfX4z/mBDHJ++3ReCw9ibxbsNJbcucJdbSo=
github.com/huandu/xstrings v1.3.2 h1:L18LIDzqlW6xN2rEkpdV8+oL/IXWJ1APd+vsdYy4Wdw=
github.com/huandu/xstrings v1.3.2/go.mod h1:y5/lhBue+AyNmUVz9RLU9xbLR0o4KIIExikq4ovT0aE=
github.com/hudl/fargo v1.3.0/go.mod h1:y3CKSmjA+wD2gak7sUSXTAoopbhU08POFhmITJgmKTg= github.com/hudl/fargo v1.3.0/go.mod h1:y3CKSmjA+wD2gak7sUSXTAoopbhU08POFhmITJgmKTg=
github.com/huin/goupnp v1.0.0/go.mod h1:n9v9KO1tAxYH82qOn+UTIFQDmx5n1Zxd/ClZDMX7Bnc= github.com/huin/goupnp v1.0.0/go.mod h1:n9v9KO1tAxYH82qOn+UTIFQDmx5n1Zxd/ClZDMX7Bnc=
github.com/huin/goupnp v1.0.1-0.20200620063722-49508fba0031/go.mod h1:nNs7wvRfN1eKaMknBydLNQU6146XQim8t4h+q90biWo= github.com/huin/goupnp v1.0.1-0.20200620063722-49508fba0031/go.mod h1:nNs7wvRfN1eKaMknBydLNQU6146XQim8t4h+q90biWo=
github.com/huin/goupnp v1.0.1-0.20210310174557-0ca763054c88 h1:bcAj8KroPf552TScjFPIakjH2/tdIrIH8F+cc4v4SRo= github.com/huin/goupnp v1.0.1-0.20210310174557-0ca763054c88 h1:bcAj8KroPf552TScjFPIakjH2/tdIrIH8F+cc4v4SRo=
github.com/huin/goupnp v1.0.1-0.20210310174557-0ca763054c88/go.mod h1:nNs7wvRfN1eKaMknBydLNQU6146XQim8t4h+q90biWo= github.com/huin/goupnp v1.0.1-0.20210310174557-0ca763054c88/go.mod h1:nNs7wvRfN1eKaMknBydLNQU6146XQim8t4h+q90biWo=
github.com/huin/goutil v0.0.0-20170803182201-1ca381bf3150/go.mod h1:PpLOETDnJ0o3iZrZfqZzyLl6l7F3c6L1oWn7OICBi6o= github.com/huin/goutil v0.0.0-20170803182201-1ca381bf3150/go.mod h1:PpLOETDnJ0o3iZrZfqZzyLl6l7F3c6L1oWn7OICBi6o=
github.com/iancoleman/strcase v0.0.0-20180726023541-3605ed457bf7/go.mod h1:SK73tn/9oHe+/Y0h39VT4UCxmurVJkR5NA7kMEAOgSE=
github.com/ianlancetaylor/demangle v0.0.0-20181102032728-5e5cf60278f6/go.mod h1:aSSvb/t6k1mPoxDqO4vJh6VOCGPwU4O0C2/Eqndh1Sc= github.com/ianlancetaylor/demangle v0.0.0-20181102032728-5e5cf60278f6/go.mod h1:aSSvb/t6k1mPoxDqO4vJh6VOCGPwU4O0C2/Eqndh1Sc=
github.com/ianlancetaylor/demangle v0.0.0-20200824232613-28f6c0f3b639/go.mod h1:aSSvb/t6k1mPoxDqO4vJh6VOCGPwU4O0C2/Eqndh1Sc= github.com/ianlancetaylor/demangle v0.0.0-20200824232613-28f6c0f3b639/go.mod h1:aSSvb/t6k1mPoxDqO4vJh6VOCGPwU4O0C2/Eqndh1Sc=
github.com/imdario/mergo v0.3.4/go.mod h1:2EnlNZ0deacrJVfApfmtdGgDfMuh/nq6Ok1EcJh5FfA=
github.com/imdario/mergo v0.3.12 h1:b6R2BslTbIEToALKP7LxUvijTsNI9TAe80pLWN2g/HU=
github.com/imdario/mergo v0.3.12/go.mod h1:jmQim1M+e3UYxmgPu/WyfjB3N3VflVyUjjjwH0dnCYA=
github.com/improbable-eng/grpc-web v0.14.0 h1:GdoK+cXABdB+1keuqsV1drSFO2XLYIxqt/4Rj8SWGBk= github.com/improbable-eng/grpc-web v0.14.0 h1:GdoK+cXABdB+1keuqsV1drSFO2XLYIxqt/4Rj8SWGBk=
github.com/improbable-eng/grpc-web v0.14.0/go.mod h1:6hRR09jOEG81ADP5wCQju1z71g6OL4eEvELdran/3cs= github.com/improbable-eng/grpc-web v0.14.0/go.mod h1:6hRR09jOEG81ADP5wCQju1z71g6OL4eEvELdran/3cs=
github.com/inconshreveable/mousetrap v1.0.0 h1:Z8tu5sraLXCXIcARxBp/8cbvlwVa7Z1NHg9XEKhtSvM= github.com/inconshreveable/mousetrap v1.0.0 h1:Z8tu5sraLXCXIcARxBp/8cbvlwVa7Z1NHg9XEKhtSvM=
@ -641,6 +664,7 @@ github.com/libp2p/go-buffer-pool v0.0.2/go.mod h1:MvaB6xw5vOrDl8rYZGLFdKAuk/hRoR
github.com/lightstep/lightstep-tracer-common/golang/gogo v0.0.0-20190605223551-bc2310a04743/go.mod h1:qklhhLq1aX+mtWk9cPHPzaBjWImj5ULL6C7HFJtXQMM= github.com/lightstep/lightstep-tracer-common/golang/gogo v0.0.0-20190605223551-bc2310a04743/go.mod h1:qklhhLq1aX+mtWk9cPHPzaBjWImj5ULL6C7HFJtXQMM=
github.com/lightstep/lightstep-tracer-go v0.18.1/go.mod h1:jlF1pusYV4pidLvZ+XD0UBX0ZE6WURAspgAczcDHrL4= github.com/lightstep/lightstep-tracer-go v0.18.1/go.mod h1:jlF1pusYV4pidLvZ+XD0UBX0ZE6WURAspgAczcDHrL4=
github.com/lucasjones/reggen v0.0.0-20180717132126-cdb49ff09d77/go.mod h1:5ELEyG+X8f+meRWHuqUOewBOhvHkl7M76pdGEansxW4= github.com/lucasjones/reggen v0.0.0-20180717132126-cdb49ff09d77/go.mod h1:5ELEyG+X8f+meRWHuqUOewBOhvHkl7M76pdGEansxW4=
github.com/lyft/protoc-gen-star v0.5.1/go.mod h1:9toiA3cC7z5uVbODF7kEQ91Xn7XNFkVUl+SrEe+ZORU=
github.com/magiconair/properties v1.8.0/go.mod h1:PppfXfuXeibc/6YijjN8zIbojt8czPbwD3XqdrwzmxQ= github.com/magiconair/properties v1.8.0/go.mod h1:PppfXfuXeibc/6YijjN8zIbojt8czPbwD3XqdrwzmxQ=
github.com/magiconair/properties v1.8.1/go.mod h1:PppfXfuXeibc/6YijjN8zIbojt8czPbwD3XqdrwzmxQ= github.com/magiconair/properties v1.8.1/go.mod h1:PppfXfuXeibc/6YijjN8zIbojt8czPbwD3XqdrwzmxQ=
github.com/magiconair/properties v1.8.5 h1:b6kJs+EmPFMYGkow9GiUyCyOvIwYetYJ3fSaWak/Gls= github.com/magiconair/properties v1.8.5 h1:b6kJs+EmPFMYGkow9GiUyCyOvIwYetYJ3fSaWak/Gls=
@ -678,6 +702,8 @@ github.com/mimoo/StrobeGo v0.0.0-20181016162300-f8f6d4d2b643/go.mod h1:43+3pMjjK
github.com/minio/highwayhash v1.0.1 h1:dZ6IIu8Z14VlC0VpfKofAhCy74wu/Qb5gcn52yWoz/0= github.com/minio/highwayhash v1.0.1 h1:dZ6IIu8Z14VlC0VpfKofAhCy74wu/Qb5gcn52yWoz/0=
github.com/minio/highwayhash v1.0.1/go.mod h1:BQskDq+xkJ12lmlUUi7U0M5Swg3EWR+dLTk+kldvVxY= github.com/minio/highwayhash v1.0.1/go.mod h1:BQskDq+xkJ12lmlUUi7U0M5Swg3EWR+dLTk+kldvVxY=
github.com/mitchellh/cli v1.0.0/go.mod h1:hNIlj7HEI86fIcpObd7a0FcrxTWetlwJDGcceTlRvqc= github.com/mitchellh/cli v1.0.0/go.mod h1:hNIlj7HEI86fIcpObd7a0FcrxTWetlwJDGcceTlRvqc=
github.com/mitchellh/copystructure v1.2.0 h1:vpKXTN4ewci03Vljg/q9QvCGUDttBOGBIa15WveJJGw=
github.com/mitchellh/copystructure v1.2.0/go.mod h1:qLl+cE2AmVv+CoeAwDPye/v+N2HKCj9FbZEVFJRxO9s=
github.com/mitchellh/go-homedir v1.0.0/go.mod h1:SfyaCUpYCn1Vlf4IUYiD9fPX4A5wJrkLzIz1N1q0pr0= github.com/mitchellh/go-homedir v1.0.0/go.mod h1:SfyaCUpYCn1Vlf4IUYiD9fPX4A5wJrkLzIz1N1q0pr0=
github.com/mitchellh/go-homedir v1.1.0 h1:lukF9ziXFxDFPkA1vsr5zpc1XuPDn/wFntq5mG+4E0Y= github.com/mitchellh/go-homedir v1.1.0 h1:lukF9ziXFxDFPkA1vsr5zpc1XuPDn/wFntq5mG+4E0Y=
github.com/mitchellh/go-homedir v1.1.0/go.mod h1:SfyaCUpYCn1Vlf4IUYiD9fPX4A5wJrkLzIz1N1q0pr0= github.com/mitchellh/go-homedir v1.1.0/go.mod h1:SfyaCUpYCn1Vlf4IUYiD9fPX4A5wJrkLzIz1N1q0pr0=
@ -689,6 +715,8 @@ github.com/mitchellh/mapstructure v1.1.2/go.mod h1:FVVH3fgwuzCH5S8UJGiWEs2h04kUh
github.com/mitchellh/mapstructure v1.3.3/go.mod h1:bFUtVrKA4DC2yAKiSyO/QUcy7e+RRV2QTWOzhPopBRo= github.com/mitchellh/mapstructure v1.3.3/go.mod h1:bFUtVrKA4DC2yAKiSyO/QUcy7e+RRV2QTWOzhPopBRo=
github.com/mitchellh/mapstructure v1.4.1 h1:CpVNEelQCZBooIPDn+AR3NpivK/TIKU8bDxdASFVQag= github.com/mitchellh/mapstructure v1.4.1 h1:CpVNEelQCZBooIPDn+AR3NpivK/TIKU8bDxdASFVQag=
github.com/mitchellh/mapstructure v1.4.1/go.mod h1:bFUtVrKA4DC2yAKiSyO/QUcy7e+RRV2QTWOzhPopBRo= github.com/mitchellh/mapstructure v1.4.1/go.mod h1:bFUtVrKA4DC2yAKiSyO/QUcy7e+RRV2QTWOzhPopBRo=
github.com/mitchellh/reflectwalk v1.0.2 h1:G2LzWKi524PWgd3mLHV8Y5k7s6XUvT0Gef6zxSIeXaQ=
github.com/mitchellh/reflectwalk v1.0.2/go.mod h1:mSTlrgnPZtwu0c4WaC2kGObEpuNDbx0jmZXqmk4esnw=
github.com/modern-go/concurrent v0.0.0-20180228061459-e0a39a4cb421/go.mod h1:6dJC0mAP4ikYIbvyc7fijjWJddQyLn8Ig3JB5CqoB9Q= 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 h1:TRLaZ9cD/w8PVh93nsPXa1VrQ6jlwL5oN8l14QlcNfg=
github.com/modern-go/concurrent v0.0.0-20180306012644-bacd9c7ef1dd/go.mod h1:6dJC0mAP4ikYIbvyc7fijjWJddQyLn8Ig3JB5CqoB9Q= github.com/modern-go/concurrent v0.0.0-20180306012644-bacd9c7ef1dd/go.mod h1:6dJC0mAP4ikYIbvyc7fijjWJddQyLn8Ig3JB5CqoB9Q=
@ -701,6 +729,9 @@ github.com/mtibben/percent v0.2.1/go.mod h1:KG9uO+SZkUp+VkRHsCdYQV3XSZrrSpR3O9ib
github.com/mwitkow/go-conntrack v0.0.0-20161129095857-cc309e4a2223/go.mod h1:qRWi+5nqEBWmkhHvq77mSJWrCKwh8bxhgT7d/eI7P4U= 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 h1:KUppIJq7/+SVif2QVs3tOP0zanoHgBEVAwHxUSIzRqU= github.com/mwitkow/go-conntrack v0.0.0-20190716064945-2f068394615f h1:KUppIJq7/+SVif2QVs3tOP0zanoHgBEVAwHxUSIzRqU=
github.com/mwitkow/go-conntrack v0.0.0-20190716064945-2f068394615f/go.mod h1:qRWi+5nqEBWmkhHvq77mSJWrCKwh8bxhgT7d/eI7P4U= github.com/mwitkow/go-conntrack v0.0.0-20190716064945-2f068394615f/go.mod h1:qRWi+5nqEBWmkhHvq77mSJWrCKwh8bxhgT7d/eI7P4U=
github.com/mwitkow/go-proto-validators v0.0.0-20180403085117-0950a7990007/go.mod h1:m2XC9Qq0AlmmVksL6FktJCdTYyLk7V3fKyp0sl1yWQo=
github.com/mwitkow/go-proto-validators v0.3.2 h1:qRlmpTzm2pstMKKzTdvwPCF5QfBNURSlAgN/R+qbKos=
github.com/mwitkow/go-proto-validators v0.3.2/go.mod h1:ej0Qp0qMgHN/KtDyUt+Q1/tA7a5VarXUOUxD+oeD30w=
github.com/naoina/go-stringutil v0.1.0/go.mod h1:XJ2SJL9jCtBh+P9q5btrd/Ylo8XwT/h1USek5+NqSA0= github.com/naoina/go-stringutil v0.1.0/go.mod h1:XJ2SJL9jCtBh+P9q5btrd/Ylo8XwT/h1USek5+NqSA0=
github.com/naoina/toml v0.1.2-0.20170918210437-9fafd6967416/go.mod h1:NBIhNtsFMo3G2szEBne+bO4gS192HuIYRqfvOWb4i1E= github.com/naoina/toml v0.1.2-0.20170918210437-9fafd6967416/go.mod h1:NBIhNtsFMo3G2szEBne+bO4gS192HuIYRqfvOWb4i1E=
github.com/nats-io/jwt v0.3.0/go.mod h1:fRYCDE99xlTsqUzISS1Bi75UBJ6ljOJQOAAu5VglpSg= github.com/nats-io/jwt v0.3.0/go.mod h1:fRYCDE99xlTsqUzISS1Bi75UBJ6ljOJQOAAu5VglpSg=
@ -788,6 +819,7 @@ github.com/pkg/errors v0.9.1/go.mod h1:bwawxfHBFNV+L2hUp1rHADufV3IMtnDRdf1r5NINE
github.com/pkg/profile v1.2.1/go.mod h1:hJw3o1OdXxsrSjjVksARp5W95eeEaEfptyVZyv6JUPA= github.com/pkg/profile v1.2.1/go.mod h1:hJw3o1OdXxsrSjjVksARp5W95eeEaEfptyVZyv6JUPA=
github.com/pkg/sftp v1.10.1/go.mod h1:lYOWFsE0bwd1+KfKJaKeuokY15vzFx25BLbzYYoAxZI= github.com/pkg/sftp v1.10.1/go.mod h1:lYOWFsE0bwd1+KfKJaKeuokY15vzFx25BLbzYYoAxZI=
github.com/pkg/term v0.0.0-20180730021639-bffc007b7fd5/go.mod h1:eCbImbZ95eXtAUIbLAuAVnBnwf83mjf6QIVH8SHYwqQ= github.com/pkg/term v0.0.0-20180730021639-bffc007b7fd5/go.mod h1:eCbImbZ95eXtAUIbLAuAVnBnwf83mjf6QIVH8SHYwqQ=
github.com/pmezard/go-difflib v0.0.0-20151028094244-d8ed2627bdf0/go.mod h1:iKH77koFhYxTK1pcRnkKkqfTogsbg7gZNVY4sRDYZ/4=
github.com/pmezard/go-difflib v1.0.0 h1:4DBwDE0NGyQoBHbLQYPwSUPoCMWR5BEzIk/f1lZbAQM= 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/pmezard/go-difflib v1.0.0/go.mod h1:iKH77koFhYxTK1pcRnkKkqfTogsbg7gZNVY4sRDYZ/4=
github.com/posener/complete v1.1.1/go.mod h1:em0nMJCgc9GFtwrmVmEMR/ZL6WyhyjMBndrE9hABlRI= github.com/posener/complete v1.1.1/go.mod h1:em0nMJCgc9GFtwrmVmEMR/ZL6WyhyjMBndrE9hABlRI=
@ -838,6 +870,10 @@ github.com/prometheus/tsdb v0.6.2-0.20190402121629-4f204dcbc150/go.mod h1:qhTCs0
github.com/prometheus/tsdb v0.7.1/go.mod h1:qhTCs0VvXwvX/y3TZrWD7rabWM+ijKTux40TwIPHuXU= github.com/prometheus/tsdb v0.7.1/go.mod h1:qhTCs0VvXwvX/y3TZrWD7rabWM+ijKTux40TwIPHuXU=
github.com/prometheus/tsdb v0.10.0 h1:If5rVCMTp6W2SiRAQFlbpJNgVlgMEd+U2GZckwK38ic= github.com/prometheus/tsdb v0.10.0 h1:If5rVCMTp6W2SiRAQFlbpJNgVlgMEd+U2GZckwK38ic=
github.com/prometheus/tsdb v0.10.0/go.mod h1:oi49uRhEe9dPUTlS3JRZOwJuVi6tmh10QSgwXEyGCt4= github.com/prometheus/tsdb v0.10.0/go.mod h1:oi49uRhEe9dPUTlS3JRZOwJuVi6tmh10QSgwXEyGCt4=
github.com/pseudomuto/protoc-gen-doc v1.4.1 h1:aNTZq0dy0Pq2ag2v7bhNKFNgBBA8wMCoJSChhd7RciE=
github.com/pseudomuto/protoc-gen-doc v1.4.1/go.mod h1:exDTOVwqpp30eV/EDPFLZy3Pwr2sn6hBC1WIYH/UbIg=
github.com/pseudomuto/protokit v0.2.0 h1:hlnBDcy3YEDXH7kc9gV+NLaN0cDzhDvD1s7Y6FZ8RpM=
github.com/pseudomuto/protokit v0.2.0/go.mod h1:2PdH30hxVHsup8KpBTOXTBeMVhJZVio3Q8ViKSAXT0Q=
github.com/rakyll/statik v0.1.7 h1:OF3QCZUuyPxuGEP7B4ypUa7sB/iHtqOTDYZXGM8KOdQ= github.com/rakyll/statik v0.1.7 h1:OF3QCZUuyPxuGEP7B4ypUa7sB/iHtqOTDYZXGM8KOdQ=
github.com/rakyll/statik v0.1.7/go.mod h1:AlZONWzMtEnMs7W4e/1LURLiI49pIMmp6V9Unghqrcc= github.com/rakyll/statik v0.1.7/go.mod h1:AlZONWzMtEnMs7W4e/1LURLiI49pIMmp6V9Unghqrcc=
github.com/rcrowley/go-metrics v0.0.0-20181016184325-3113b8401b8a/go.mod h1:bCqnVzQkZxMG4s8nGwiZ5l3QUCyqpo9Y+/ZMZ9VjZe4= github.com/rcrowley/go-metrics v0.0.0-20181016184325-3113b8401b8a/go.mod h1:bCqnVzQkZxMG4s8nGwiZ5l3QUCyqpo9Y+/ZMZ9VjZe4=
@ -896,6 +932,7 @@ github.com/spaolacci/murmur3 v0.0.0-20180118202830-f09979ecbc72/go.mod h1:JwIasO
github.com/spaolacci/murmur3 v1.1.0 h1:7c1g84S4BPRrfL5Xrdp6fOJ206sU9y293DDHaoy0bLI= github.com/spaolacci/murmur3 v1.1.0 h1:7c1g84S4BPRrfL5Xrdp6fOJ206sU9y293DDHaoy0bLI=
github.com/spaolacci/murmur3 v1.1.0/go.mod h1:JwIasOWyU6f++ZhiEuf87xNszmSA2myDM2Kzu9HwQUA= github.com/spaolacci/murmur3 v1.1.0/go.mod h1:JwIasOWyU6f++ZhiEuf87xNszmSA2myDM2Kzu9HwQUA=
github.com/spf13/afero v1.1.2/go.mod h1:j4pytiNVoe2o6bmDsKpLACNPDBIoEAkihy7loJ1B0CQ= github.com/spf13/afero v1.1.2/go.mod h1:j4pytiNVoe2o6bmDsKpLACNPDBIoEAkihy7loJ1B0CQ=
github.com/spf13/afero v1.3.3/go.mod h1:5KUK8ByomD5Ti5Artl0RtHeI5pTF7MIDuXL3yY520V4=
github.com/spf13/afero v1.3.4/go.mod h1:Ai8FlHk4v/PARR026UzYexafAt9roJ7LcLMAmO6Z93I= github.com/spf13/afero v1.3.4/go.mod h1:Ai8FlHk4v/PARR026UzYexafAt9roJ7LcLMAmO6Z93I=
github.com/spf13/afero v1.6.0 h1:xoax2sJ2DT8S8xA2paPFjDCScCNeWsg75VG0DLRreiY= github.com/spf13/afero v1.6.0 h1:xoax2sJ2DT8S8xA2paPFjDCScCNeWsg75VG0DLRreiY=
github.com/spf13/afero v1.6.0/go.mod h1:Ai8FlHk4v/PARR026UzYexafAt9roJ7LcLMAmO6Z93I= github.com/spf13/afero v1.6.0/go.mod h1:Ai8FlHk4v/PARR026UzYexafAt9roJ7LcLMAmO6Z93I=
@ -934,6 +971,7 @@ github.com/stretchr/objx v0.1.0/go.mod h1:HFkY916IF+rwdDfMAkV7OtwuqBVzrE8GR6GFx+
github.com/stretchr/objx v0.1.1/go.mod h1:HFkY916IF+rwdDfMAkV7OtwuqBVzrE8GR6GFx+wExME= github.com/stretchr/objx v0.1.1/go.mod h1:HFkY916IF+rwdDfMAkV7OtwuqBVzrE8GR6GFx+wExME=
github.com/stretchr/objx v0.2.0 h1:Hbg2NidpLE8veEBkEZTL3CvlkUIVzuU9jDplZO54c48= github.com/stretchr/objx v0.2.0 h1:Hbg2NidpLE8veEBkEZTL3CvlkUIVzuU9jDplZO54c48=
github.com/stretchr/objx v0.2.0/go.mod h1:qt09Ya8vawLte6SNmTgCsAVtYtaKzEcn8ATUoHMkEqE= github.com/stretchr/objx v0.2.0/go.mod h1:qt09Ya8vawLte6SNmTgCsAVtYtaKzEcn8ATUoHMkEqE=
github.com/stretchr/testify v0.0.0-20170130113145-4d4bfba8f1d1/go.mod h1:a8OnRcib4nhh0OaRAV+Yts87kKdq0PP7pXfy6kDkUVs=
github.com/stretchr/testify v1.2.0/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.2.2/go.mod h1:a8OnRcib4nhh0OaRAV+Yts87kKdq0PP7pXfy6kDkUVs=
github.com/stretchr/testify v1.3.0/go.mod h1:M5WIy9Dh21IEIfnGCwXGc5bZfKNJtfHm1UVUgZn+9EI= github.com/stretchr/testify v1.3.0/go.mod h1:M5WIy9Dh21IEIfnGCwXGc5bZfKNJtfHm1UVUgZn+9EI=
@ -1051,6 +1089,7 @@ go.uber.org/zap v1.10.0/go.mod h1:vwi/ZaCAaUcBkycHslxD9B2zi4UTXhF60s6SWpuDF0Q=
go.uber.org/zap v1.13.0/go.mod h1:zwrFLgMcdUuIBviXEYEH1YKNaOBnKXsx2IPda5bBwHM= go.uber.org/zap v1.13.0/go.mod h1:zwrFLgMcdUuIBviXEYEH1YKNaOBnKXsx2IPda5bBwHM=
go.uber.org/zap v1.17.0/go.mod h1:MXVU+bhUf/A7Xi2HNOnopQOrmycQ5Ih87HtOu4q5SSo= go.uber.org/zap v1.17.0/go.mod h1:MXVU+bhUf/A7Xi2HNOnopQOrmycQ5Ih87HtOu4q5SSo=
golang.org/x/crypto v0.0.0-20170930174604-9419663f5a44/go.mod h1:6SG95UA2DQfeDnfUPMdvaQW0Q7yPrPDi9nlGo2tz2b4= golang.org/x/crypto v0.0.0-20170930174604-9419663f5a44/go.mod h1:6SG95UA2DQfeDnfUPMdvaQW0Q7yPrPDi9nlGo2tz2b4=
golang.org/x/crypto v0.0.0-20180501155221-613d6eafa307/go.mod h1:6SG95UA2DQfeDnfUPMdvaQW0Q7yPrPDi9nlGo2tz2b4=
golang.org/x/crypto v0.0.0-20180904163835-0709b304e793/go.mod h1:6SG95UA2DQfeDnfUPMdvaQW0Q7yPrPDi9nlGo2tz2b4= golang.org/x/crypto v0.0.0-20180904163835-0709b304e793/go.mod h1:6SG95UA2DQfeDnfUPMdvaQW0Q7yPrPDi9nlGo2tz2b4=
golang.org/x/crypto v0.0.0-20181029021203-45a5f77698d3/go.mod h1:6SG95UA2DQfeDnfUPMdvaQW0Q7yPrPDi9nlGo2tz2b4= golang.org/x/crypto v0.0.0-20181029021203-45a5f77698d3/go.mod h1:6SG95UA2DQfeDnfUPMdvaQW0Q7yPrPDi9nlGo2tz2b4=
golang.org/x/crypto v0.0.0-20181203042331-505ab145d0a9/go.mod h1:6SG95UA2DQfeDnfUPMdvaQW0Q7yPrPDi9nlGo2tz2b4= golang.org/x/crypto v0.0.0-20181203042331-505ab145d0a9/go.mod h1:6SG95UA2DQfeDnfUPMdvaQW0Q7yPrPDi9nlGo2tz2b4=
@ -1077,8 +1116,8 @@ golang.org/x/crypto v0.0.0-20201117144127-c1f2f97bffc9/go.mod h1:jdWPYTVW3xRLrWP
golang.org/x/crypto v0.0.0-20201221181555-eec23a3978ad/go.mod h1:jdWPYTVW3xRLrWPugEBEK3UY2ZEsg3UU495nc5E+M+I= golang.org/x/crypto v0.0.0-20201221181555-eec23a3978ad/go.mod h1:jdWPYTVW3xRLrWPugEBEK3UY2ZEsg3UU495nc5E+M+I=
golang.org/x/crypto v0.0.0-20210220033148-5ea612d1eb83/go.mod h1:jdWPYTVW3xRLrWPugEBEK3UY2ZEsg3UU495nc5E+M+I= golang.org/x/crypto v0.0.0-20210220033148-5ea612d1eb83/go.mod h1:jdWPYTVW3xRLrWPugEBEK3UY2ZEsg3UU495nc5E+M+I=
golang.org/x/crypto v0.0.0-20210322153248-0c34fe9e7dc2/go.mod h1:T9bdIzuCu7OtxOm1hfPfRQxPLYneinmdGuTeoZ9dtd4= golang.org/x/crypto v0.0.0-20210322153248-0c34fe9e7dc2/go.mod h1:T9bdIzuCu7OtxOm1hfPfRQxPLYneinmdGuTeoZ9dtd4=
golang.org/x/crypto v0.0.0-20210616213533-5ff15b29337e h1:gsTQYXdTw2Gq7RBsWvlQ91b+aEQ6bXFUngBGuR8sPpI= golang.org/x/crypto v0.0.0-20210711020723-a769d52b0f97 h1:/UOmuWzQfxxo9UtlXMwuQU8CMgg1eZXqTRwkSQJWKOI=
golang.org/x/crypto v0.0.0-20210616213533-5ff15b29337e/go.mod h1:GvvjBRRGRdwPK5ydBHafDWAxML/pGHZbMvKqRZ5+Abc= golang.org/x/crypto v0.0.0-20210711020723-a769d52b0f97/go.mod h1:GvvjBRRGRdwPK5ydBHafDWAxML/pGHZbMvKqRZ5+Abc=
golang.org/x/exp v0.0.0-20180321215751-8460e604b9de/go.mod h1:CJ0aWSM057203Lf6IL+f9T1iT9GByDxfZKAQTCR3kQA= 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-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-20190121172915-509febef88a4/go.mod h1:CJ0aWSM057203Lf6IL+f9T1iT9GByDxfZKAQTCR3kQA=
@ -1192,6 +1231,7 @@ golang.org/x/sync v0.0.0-20180314180146-1d60e4601c6f/go.mod h1:RxMgew5VJxzue5/jJ
golang.org/x/sync v0.0.0-20181108010431-42b317875d0f/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= golang.org/x/sync v0.0.0-20181108010431-42b317875d0f/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM=
golang.org/x/sync v0.0.0-20181221193216-37e7f081c4d4/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= golang.org/x/sync v0.0.0-20181221193216-37e7f081c4d4/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM=
golang.org/x/sync v0.0.0-20190227155943-e225da77a7e6/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= golang.org/x/sync v0.0.0-20190227155943-e225da77a7e6/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM=
golang.org/x/sync v0.0.0-20190412183630-56d357773e84/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-20190423024810-112230192c58/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM=
golang.org/x/sync v0.0.0-20190911185100-cd5d95a43a6e/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= golang.org/x/sync v0.0.0-20190911185100-cd5d95a43a6e/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM=
golang.org/x/sync v0.0.0-20200317015054-43a5402ce75a/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= golang.org/x/sync v0.0.0-20200317015054-43a5402ce75a/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM=
@ -1406,6 +1446,7 @@ google.golang.org/appengine v1.6.6/go.mod h1:8WjMMxjGQR8xUklV/ARdw2HLXBOI7O7uCID
google.golang.org/appengine v1.6.7/go.mod h1:8WjMMxjGQR8xUklV/ARdw2HLXBOI7O7uCIDZVag1xfc= google.golang.org/appengine v1.6.7/go.mod h1:8WjMMxjGQR8xUklV/ARdw2HLXBOI7O7uCIDZVag1xfc=
google.golang.org/genproto v0.0.0-20180817151627-c66870c02cf8/go.mod h1:JiN7NxoALGmiZfu7CAH4rXhgtRTLTxftemlI0sWmxmc= google.golang.org/genproto v0.0.0-20180817151627-c66870c02cf8/go.mod h1:JiN7NxoALGmiZfu7CAH4rXhgtRTLTxftemlI0sWmxmc=
google.golang.org/genproto v0.0.0-20180831171423-11092d34479b/go.mod h1:JiN7NxoALGmiZfu7CAH4rXhgtRTLTxftemlI0sWmxmc= google.golang.org/genproto v0.0.0-20180831171423-11092d34479b/go.mod h1:JiN7NxoALGmiZfu7CAH4rXhgtRTLTxftemlI0sWmxmc=
google.golang.org/genproto v0.0.0-20181107211654-5fc9ac540362/go.mod h1:JiN7NxoALGmiZfu7CAH4rXhgtRTLTxftemlI0sWmxmc=
google.golang.org/genproto v0.0.0-20190307195333-5fe7a883aa19/go.mod h1:VzzqZJRnGkLBvHegQrXjBqPurQTc5/KpmUdxsrq26oE= google.golang.org/genproto v0.0.0-20190307195333-5fe7a883aa19/go.mod h1:VzzqZJRnGkLBvHegQrXjBqPurQTc5/KpmUdxsrq26oE=
google.golang.org/genproto v0.0.0-20190418145605-e7d98fc518a7/go.mod h1:VzzqZJRnGkLBvHegQrXjBqPurQTc5/KpmUdxsrq26oE= 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-20190425155659-357c62f0e4bb/go.mod h1:VzzqZJRnGkLBvHegQrXjBqPurQTc5/KpmUdxsrq26oE=
@ -1454,8 +1495,8 @@ google.golang.org/genproto v0.0.0-20210310155132-4ce2db91004e/go.mod h1:FWY/as6D
google.golang.org/genproto v0.0.0-20210319143718-93e7006c17a6/go.mod h1:FWY/as6DDZQgahTzZj3fqbO1CbirC29ZNUFHwi0/+no= google.golang.org/genproto v0.0.0-20210319143718-93e7006c17a6/go.mod h1:FWY/as6DDZQgahTzZj3fqbO1CbirC29ZNUFHwi0/+no=
google.golang.org/genproto v0.0.0-20210402141018-6c239bbf2bb1/go.mod h1:9lPAdzaEmUacj36I+k7YKbEc5CXzPIeORRgDAUOu28A= google.golang.org/genproto v0.0.0-20210402141018-6c239bbf2bb1/go.mod h1:9lPAdzaEmUacj36I+k7YKbEc5CXzPIeORRgDAUOu28A=
google.golang.org/genproto v0.0.0-20210602131652-f16073e35f0c/go.mod h1:UODoCrxHCcBojKKwX1terBiRUaqAsFqJiF615XL43r0= google.golang.org/genproto v0.0.0-20210602131652-f16073e35f0c/go.mod h1:UODoCrxHCcBojKKwX1terBiRUaqAsFqJiF615XL43r0=
google.golang.org/genproto v0.0.0-20210707164411-8c882eb9abba h1:7ajVqfUjhvVuXCb+sdXdKsOD53caRpfMofvihWF1314= google.golang.org/genproto v0.0.0-20210712171009-5404628d0f46 h1:C+heNsV69Z0EjfRnhU7mg6EX5zz5l7x7hhTil+Ayj8g=
google.golang.org/genproto v0.0.0-20210707164411-8c882eb9abba/go.mod h1:AxrInvYm1dci+enl5hChSFPOmmUF1+uAa/UsgNRWd7k= google.golang.org/genproto v0.0.0-20210712171009-5404628d0f46/go.mod h1:AxrInvYm1dci+enl5hChSFPOmmUF1+uAa/UsgNRWd7k=
google.golang.org/grpc v1.33.2 h1:EQyQC3sa8M+p6Ulc8yy9SWSS2GVwyRc83gAbG8lrl4o= google.golang.org/grpc v1.33.2 h1:EQyQC3sa8M+p6Ulc8yy9SWSS2GVwyRc83gAbG8lrl4o=
google.golang.org/grpc v1.33.2/go.mod h1:JMHMWHQWaTccqQQlmk3MJZS+GWXOdAesneDmEnv2fbc= google.golang.org/grpc v1.33.2/go.mod h1:JMHMWHQWaTccqQQlmk3MJZS+GWXOdAesneDmEnv2fbc=
google.golang.org/grpc/cmd/protoc-gen-go-grpc v1.0.1/go.mod h1:6Kw0yEErY5E/yWrBtf03jp27GLLJujG4z/JK95pnjjw= google.golang.org/grpc/cmd/protoc-gen-go-grpc v1.0.1/go.mod h1:6Kw0yEErY5E/yWrBtf03jp27GLLJujG4z/JK95pnjjw=

View File

@ -9,52 +9,42 @@ option go_package = "github.com/tharsis/ethermint/x/evm/types";
message Params { message Params {
option (gogoproto.goproto_stringer) = false; option (gogoproto.goproto_stringer) = false;
// evm_denom represents the token denomination used to run the EVM state // evm denom represents the token denomination used to run the EVM state
// transitions. // transitions.
string evm_denom = 1 [(gogoproto.moretags) = "yaml:\"evm_denom\""]; string evm_denom = 1 [(gogoproto.moretags) = "yaml:\"evm_denom\""];
// enable_create toggles state transitions that use the vm.Create function // enable create toggles state transitions that use the vm.Create function
bool enable_create = 2 [(gogoproto.moretags) = "yaml:\"enable_create\""]; bool enable_create = 2 [(gogoproto.moretags) = "yaml:\"enable_create\""];
// enable_call toggles state transitions that use the vm.Call function // enable call toggles state transitions that use the vm.Call function
bool enable_call = 3 [(gogoproto.moretags) = "yaml:\"enable_call\""]; bool enable_call = 3 [(gogoproto.moretags) = "yaml:\"enable_call\""];
// extra_eips defines the additional EIPs for the vm.Config // extra eips defines the additional EIPs for the vm.Config
repeated int64 extra_eips = 4 [(gogoproto.customname) = "ExtraEIPs", (gogoproto.moretags) = "yaml:\"extra_eips\""]; repeated int64 extra_eips = 4 [(gogoproto.customname) = "ExtraEIPs", (gogoproto.moretags) = "yaml:\"extra_eips\""];
// chain config defines the EVM chain configuration parameters
ChainConfig chain_config = 5 [(gogoproto.moretags) = "yaml:\"chain_config\"", (gogoproto.nullable) = false];
} }
// ChainConfig defines the Ethereum ChainConfig parameters using sdk.Int values // ChainConfig defines the Ethereum ChainConfig parameters using *sdk.Int values
// instead of big.Int. // instead of *big.Int.
//
// NOTE 1: Since empty/uninitialized Ints (i.e with a nil big.Int value) are
// parsed to zero, we need to manually specify that negative Int values will be
// considered as nil. See getBlockValue for reference.
//
// NOTE 2: This type is not a configurable Param since the SDK does not allow
// for validation against a previous stored parameter values or the current
// block height (retrieved from context). If you want to update the config
// values, use an software upgrade procedure.
message ChainConfig { message ChainConfig {
// Homestead switch block (< 0 no fork, 0 = already homestead) // Homestead switch block (nil no fork, 0 = already homestead)
string homestead_block = 1 [ string homestead_block = 1 [
(gogoproto.customtype) = "github.com/cosmos/cosmos-sdk/types.Int", (gogoproto.customtype) = "github.com/cosmos/cosmos-sdk/types.Int",
(gogoproto.moretags) = "yaml:\"homestead_block\"", (gogoproto.moretags) = "yaml:\"homestead_block\""
(gogoproto.nullable) = false
]; ];
// TheDAO hard-fork switch block (< 0 no fork) // TheDAO hard-fork switch block (nil no fork)
string dao_fork_block = 2 [ string dao_fork_block = 2 [
(gogoproto.customname) = "DAOForkBlock", (gogoproto.customname) = "DAOForkBlock",
(gogoproto.customtype) = "github.com/cosmos/cosmos-sdk/types.Int", (gogoproto.customtype) = "github.com/cosmos/cosmos-sdk/types.Int",
(gogoproto.moretags) = "yaml:\"dao_fork_block\"", (gogoproto.moretags) = "yaml:\"dao_fork_block\""
(gogoproto.nullable) = false
]; ];
// Whether the nodes supports or opposes the DAO hard-fork // Whether the nodes supports or opposes the DAO hard-fork
bool dao_fork_support = 3 bool dao_fork_support = 3
[(gogoproto.customname) = "DAOForkSupport", (gogoproto.moretags) = "yaml:\"dao_fork_support\""]; [(gogoproto.customname) = "DAOForkSupport", (gogoproto.moretags) = "yaml:\"dao_fork_support\""];
// EIP150 implements the Gas price changes // EIP150 implements the Gas price changes
// (https://github.com/ethereum/EIPs/issues/150) EIP150 HF block (< 0 no fork) // (https://github.com/ethereum/EIPs/issues/150) EIP150 HF block (nil no fork)
string eip150_block = 4 [ string eip150_block = 4 [
(gogoproto.customname) = "EIP150Block", (gogoproto.customname) = "EIP150Block",
(gogoproto.customtype) = "github.com/cosmos/cosmos-sdk/types.Int", (gogoproto.customtype) = "github.com/cosmos/cosmos-sdk/types.Int",
(gogoproto.moretags) = "yaml:\"eip150_block\"", (gogoproto.moretags) = "yaml:\"eip150_block\""
(gogoproto.nullable) = false
]; ];
// EIP150 HF hash (needed for header only clients as only gas pricing changed) // EIP150 HF hash (needed for header only clients as only gas pricing changed)
string eip150_hash = 5 [(gogoproto.customname) = "EIP150Hash", (gogoproto.moretags) = "yaml:\"byzantium_block\""]; string eip150_hash = 5 [(gogoproto.customname) = "EIP150Hash", (gogoproto.moretags) = "yaml:\"byzantium_block\""];
@ -62,70 +52,59 @@ message ChainConfig {
string eip155_block = 6 [ string eip155_block = 6 [
(gogoproto.customname) = "EIP155Block", (gogoproto.customname) = "EIP155Block",
(gogoproto.customtype) = "github.com/cosmos/cosmos-sdk/types.Int", (gogoproto.customtype) = "github.com/cosmos/cosmos-sdk/types.Int",
(gogoproto.moretags) = "yaml:\"eip155_block\"", (gogoproto.moretags) = "yaml:\"eip155_block\""
(gogoproto.nullable) = false
]; ];
// EIP158 HF block // EIP158 HF block
string eip158_block = 7 [ string eip158_block = 7 [
(gogoproto.customname) = "EIP158Block", (gogoproto.customname) = "EIP158Block",
(gogoproto.customtype) = "github.com/cosmos/cosmos-sdk/types.Int", (gogoproto.customtype) = "github.com/cosmos/cosmos-sdk/types.Int",
(gogoproto.moretags) = "yaml:\"eip158_block\"", (gogoproto.moretags) = "yaml:\"eip158_block\""
(gogoproto.nullable) = false
]; ];
// Byzantium switch block (< 0 no fork, 0 = already on byzantium) // Byzantium switch block (nil no fork, 0 = already on byzantium)
string byzantium_block = 8 [ string byzantium_block = 8 [
(gogoproto.customtype) = "github.com/cosmos/cosmos-sdk/types.Int", (gogoproto.customtype) = "github.com/cosmos/cosmos-sdk/types.Int",
(gogoproto.moretags) = "yaml:\"byzantium_block\"", (gogoproto.moretags) = "yaml:\"byzantium_block\""
(gogoproto.nullable) = false
]; ];
// Constantinople switch block (< 0 no fork, 0 = already activated) // Constantinople switch block (nil no fork, 0 = already activated)
string constantinople_block = 9 [ string constantinople_block = 9 [
(gogoproto.customtype) = "github.com/cosmos/cosmos-sdk/types.Int", (gogoproto.customtype) = "github.com/cosmos/cosmos-sdk/types.Int",
(gogoproto.moretags) = "yaml:\"constantinople_block\"", (gogoproto.moretags) = "yaml:\"constantinople_block\""
(gogoproto.nullable) = false
]; ];
// Petersburg switch block (< 0 same as Constantinople) // Petersburg switch block (nil same as Constantinople)
string petersburg_block = 10 [ string petersburg_block = 10 [
(gogoproto.customtype) = "github.com/cosmos/cosmos-sdk/types.Int", (gogoproto.customtype) = "github.com/cosmos/cosmos-sdk/types.Int",
(gogoproto.moretags) = "yaml:\"petersburg_block\"", (gogoproto.moretags) = "yaml:\"petersburg_block\""
(gogoproto.nullable) = false
]; ];
// Istanbul switch block (< 0 no fork, 0 = already on istanbul) // Istanbul switch block (nil no fork, 0 = already on istanbul)
string istanbul_block = 11 [ string istanbul_block = 11 [
(gogoproto.customtype) = "github.com/cosmos/cosmos-sdk/types.Int", (gogoproto.customtype) = "github.com/cosmos/cosmos-sdk/types.Int",
(gogoproto.moretags) = "yaml:\"istanbul_block\"", (gogoproto.moretags) = "yaml:\"istanbul_block\""
(gogoproto.nullable) = false
]; ];
// Eip-2384 (bomb delay) switch block (< 0 no fork, 0 = already activated) // Eip-2384 (bomb delay) switch block (nil no fork, 0 = already activated)
string muir_glacier_block = 12 [ string muir_glacier_block = 12 [
(gogoproto.customtype) = "github.com/cosmos/cosmos-sdk/types.Int", (gogoproto.customtype) = "github.com/cosmos/cosmos-sdk/types.Int",
(gogoproto.moretags) = "yaml:\"muir_glacier_block\"", (gogoproto.moretags) = "yaml:\"muir_glacier_block\""
(gogoproto.nullable) = false
]; ];
// Berlin switch block (< 0 = no fork, 0 = already on berlin) // Berlin switch block (nil = no fork, 0 = already on berlin)
string berlin_block = 13 [ string berlin_block = 13 [
(gogoproto.customtype) = "github.com/cosmos/cosmos-sdk/types.Int", (gogoproto.customtype) = "github.com/cosmos/cosmos-sdk/types.Int",
(gogoproto.moretags) = "yaml:\"berlin_block\"", (gogoproto.moretags) = "yaml:\"berlin_block\""
(gogoproto.nullable) = false
]; ];
// YOLO v3: Gas repricings // YOLO v3: Gas repricings
string yolo_v3_block = 14 [ string yolo_v3_block = 14 [
(gogoproto.customtype) = "github.com/cosmos/cosmos-sdk/types.Int", (gogoproto.customtype) = "github.com/cosmos/cosmos-sdk/types.Int",
(gogoproto.moretags) = "yaml:\"yolo_v3_block\"", (gogoproto.moretags) = "yaml:\"yolo_v3_block\""
(gogoproto.nullable) = false
]; ];
// EWASM switch block (< 0 no fork, 0 = already activated) // EWASM switch block (nil no fork, 0 = already activated)
string ewasm_block = 15 [ string ewasm_block = 15 [
(gogoproto.customname) = "EWASMBlock", (gogoproto.customname) = "EWASMBlock",
(gogoproto.customtype) = "github.com/cosmos/cosmos-sdk/types.Int", (gogoproto.customtype) = "github.com/cosmos/cosmos-sdk/types.Int",
(gogoproto.moretags) = "yaml:\"ewasm_block\"", (gogoproto.moretags) = "yaml:\"ewasm_block\""
(gogoproto.nullable) = false
]; ];
// Catalyst switch block (< 0 = no fork, 0 = already on catalyst) // Catalyst switch block (nil = no fork, 0 = already on catalyst)
string catalyst_block = 16 [ string catalyst_block = 16 [
(gogoproto.customtype) = "github.com/cosmos/cosmos-sdk/types.Int", (gogoproto.customtype) = "github.com/cosmos/cosmos-sdk/types.Int",
(gogoproto.moretags) = "yaml:\"catalyst_block\"", (gogoproto.moretags) = "yaml:\"catalyst_block\""
(gogoproto.nullable) = false
]; ];
} }

View File

@ -10,8 +10,6 @@ option go_package = "github.com/tharsis/ethermint/x/evm/types";
message GenesisState { message GenesisState {
// accounts is an array containing the ethereum genesis accounts. // accounts is an array containing the ethereum genesis accounts.
repeated GenesisAccount accounts = 1 [(gogoproto.nullable) = false]; repeated GenesisAccount accounts = 1 [(gogoproto.nullable) = false];
// chain_config defines the Ethereum chain configuration.
ChainConfig chain_config = 2 [(gogoproto.moretags) = "yaml:\"chain_config\"", (gogoproto.nullable) = false];
// params defines all the paramaters of the module. // params defines all the paramaters of the module.
Params params = 3 [(gogoproto.nullable) = false]; Params params = 3 [(gogoproto.nullable) = false];

View File

@ -62,11 +62,6 @@ service Query {
option (google.api.http).get = "/ethermint/evm/v1alpha1/params"; option (google.api.http).get = "/ethermint/evm/v1alpha1/params";
} }
// ChainConfig queries the chain configuration values of EVM.
rpc ChainConfig(QueryChainConfigRequest) returns (QueryChainConfigResponse) {
option (google.api.http).get = "/ethermint/evm/v1alpha1/chain_config";
}
// StaticCall queries the static call value of x/evm module. // StaticCall queries the static call value of x/evm module.
rpc StaticCall(QueryStaticCallRequest) returns (QueryStaticCallResponse) { rpc StaticCall(QueryStaticCallRequest) returns (QueryStaticCallResponse) {
option (google.api.http).get = "/ethermint/evm/v1alpha1/static_call"; option (google.api.http).get = "/ethermint/evm/v1alpha1/static_call";
@ -239,15 +234,6 @@ message QueryParamsResponse {
Params params = 1 [(gogoproto.nullable) = false]; Params params = 1 [(gogoproto.nullable) = false];
} }
// QueryChainConfigRequest defines the request type for querying x/evm chain configuration.
message QueryChainConfigRequest {}
// QueryChainConfigResponse defines the response type for querying x/evm chain configuration.
message QueryChainConfigResponse {
// ChainConfig define the evm chain configuration.
ChainConfig config = 1 [(gogoproto.nullable) = false];
}
// QueryStaticCallRequest defines static call request // QueryStaticCallRequest defines static call request
message QueryStaticCallRequest { message QueryStaticCallRequest {
// address is the ethereum contract hex address to for static call. // address is the ethereum contract hex address to for static call.

View File

@ -59,8 +59,6 @@ func InitGenesis(
k.SetLogs(ethcmn.HexToHash(txLog.Hash), txLog.EthLogs()) k.SetLogs(ethcmn.HexToHash(txLog.Hash), txLog.EthLogs())
} }
k.SetChainConfig(ctx, data.ChainConfig)
return []abci.ValidatorUpdate{} return []abci.ValidatorUpdate{}
} }
@ -94,12 +92,9 @@ func ExportGenesis(ctx sdk.Context, k *keeper.Keeper, ak types.AccountKeeper) *t
return false return false
}) })
config, _ := k.GetChainConfig(ctx)
return &types.GenesisState{ return &types.GenesisState{
Accounts: ethGenAccounts, Accounts: ethGenAccounts,
TxsLogs: k.GetAllTxLogs(ctx), TxsLogs: k.GetAllTxLogs(ctx),
ChainConfig: config, Params: k.GetParams(ctx),
Params: k.GetParams(ctx),
} }
} }

View File

@ -298,19 +298,6 @@ func (k Keeper) Params(c context.Context, _ *types.QueryParamsRequest) (*types.Q
}, nil }, nil
} }
// ChainConfig implements the Query/ChainConfig gRPC method
func (k Keeper) ChainConfig(c context.Context, _ *types.QueryChainConfigRequest) (*types.QueryChainConfigResponse, error) {
ctx := sdk.UnwrapSDKContext(c)
cfg, found := k.GetChainConfig(ctx)
if !found {
return nil, status.Error(codes.NotFound, types.ErrChainConfigNotFound.Error())
}
return &types.QueryChainConfigResponse{
Config: cfg,
}, nil
}
// StaticCall implements Query/StaticCall gRPCP method // StaticCall implements Query/StaticCall gRPCP method
func (k Keeper) StaticCall(c context.Context, req *types.QueryStaticCallRequest) (*types.QueryStaticCallResponse, error) { func (k Keeper) StaticCall(c context.Context, req *types.QueryStaticCallRequest) (*types.QueryStaticCallResponse, error) {
if req == nil { if req == nil {
@ -389,12 +376,10 @@ func (k Keeper) EthCall(c context.Context, req *types.EthCallRequest) (*types.Ms
msg := args.ToMessage(uint64(ethermint.DefaultRPCGasLimit)) msg := args.ToMessage(uint64(ethermint.DefaultRPCGasLimit))
cfg, found := k.GetChainConfig(ctx) params := k.GetParams(ctx)
if !found { ethCfg := params.ChainConfig.EthereumConfig(k.eip155ChainID)
return nil, status.Error(codes.Internal, types.ErrChainConfigNotFound.Error())
} evm := k.NewEVM(msg, ethCfg, params)
ethCfg := cfg.EthereumConfig(k.eip155ChainID)
evm := k.NewEVM(msg, ethCfg)
res, err := k.ApplyMessage(evm, msg, ethCfg) res, err := k.ApplyMessage(evm, msg, ethCfg)
if err != nil { if err != nil {
return nil, status.Error(codes.Internal, err.Error()) return nil, status.Error(codes.Internal, err.Error())

View File

@ -608,15 +608,6 @@ func (suite *KeeperTestSuite) TestQueryParams() {
suite.Require().Equal(expParams, res.Params) suite.Require().Equal(expParams, res.Params)
} }
func (suite *KeeperTestSuite) TestQueryChainConfig() {
ctx := sdk.WrapSDKContext(suite.ctx)
expChainConfig := types.DefaultChainConfig()
res, err := suite.queryClient.ChainConfig(ctx, &types.QueryChainConfigRequest{})
suite.Require().NoError(err)
suite.Require().Equal(expChainConfig, res.Config)
}
func (suite *KeeperTestSuite) TestQueryValidatorAccount() { func (suite *KeeperTestSuite) TestQueryValidatorAccount() {
var ( var (
req *types.QueryValidatorAccountRequest req *types.QueryValidatorAccountRequest

View File

@ -83,15 +83,3 @@ func (suite *KeeperTestSuite) SetupTest() {
func TestKeeperTestSuite(t *testing.T) { func TestKeeperTestSuite(t *testing.T) {
suite.Run(t, new(KeeperTestSuite)) suite.Run(t, new(KeeperTestSuite))
} }
func (suite *KeeperTestSuite) TestChainConfig() {
config, found := suite.app.EvmKeeper.GetChainConfig(suite.ctx)
suite.Require().True(found)
suite.Require().Equal(types.DefaultChainConfig(), config)
config.EIP150Block = sdk.NewInt(100)
suite.app.EvmKeeper.SetChainConfig(suite.ctx, config)
newConfig, found := suite.app.EvmKeeper.GetChainConfig(suite.ctx)
suite.Require().True(found)
suite.Require().Equal(config, newConfig)
}

View File

@ -16,23 +16,3 @@ func (k Keeper) GetParams(ctx sdk.Context) (params types.Params) {
func (k Keeper) SetParams(ctx sdk.Context, params types.Params) { func (k Keeper) SetParams(ctx sdk.Context, params types.Params) {
k.paramSpace.SetParamSet(ctx, &params) k.paramSpace.SetParamSet(ctx, &params)
} }
// GetChainConfig gets block height from block consensus hash
func (k Keeper) GetChainConfig(ctx sdk.Context) (types.ChainConfig, bool) {
store := ctx.KVStore(k.storeKey)
bz := store.Get(types.KeyPrefixChainConfig)
if len(bz) == 0 {
return types.ChainConfig{}, false
}
var config types.ChainConfig
k.cdc.MustUnmarshal(bz, &config)
return config, true
}
// SetChainConfig sets the mapping from block consensus hash to block height
func (k Keeper) SetChainConfig(ctx sdk.Context, config types.ChainConfig) {
store := ctx.KVStore(k.storeKey)
bz := k.cdc.MustMarshal(&config)
store.Set(types.KeyPrefixChainConfig, bz)
}

View File

@ -25,7 +25,7 @@ import (
) )
// NewEVM generates an ethereum VM from the provided Message fields and the ChainConfig. // NewEVM generates an ethereum VM from the provided Message fields and the ChainConfig.
func (k *Keeper) NewEVM(msg core.Message, config *params.ChainConfig) *vm.EVM { func (k *Keeper) NewEVM(msg core.Message, config *params.ChainConfig, params types.Params) *vm.EVM {
blockCtx := vm.BlockContext{ blockCtx := vm.BlockContext{
CanTransfer: core.CanTransfer, CanTransfer: core.CanTransfer,
Transfer: core.Transfer, Transfer: core.Transfer,
@ -38,16 +38,14 @@ func (k *Keeper) NewEVM(msg core.Message, config *params.ChainConfig) *vm.EVM {
} }
txCtx := core.NewEVMTxContext(msg) txCtx := core.NewEVMTxContext(msg)
vmConfig := k.VMConfig() vmConfig := k.VMConfig(params)
return vm.NewEVM(blockCtx, txCtx, k, config, vmConfig) return vm.NewEVM(blockCtx, txCtx, k, config, vmConfig)
} }
// VMConfig creates an EVM configuration from the module parameters and the debug setting. // VMConfig creates an EVM configuration from the module parameters and the debug setting.
// The config generated uses the default JumpTable from the EVM. // The config generated uses the default JumpTable from the EVM.
func (k Keeper) VMConfig() vm.Config { func (k Keeper) VMConfig(params types.Params) vm.Config {
params := k.GetParams(k.ctx)
return vm.Config{ return vm.Config{
Debug: k.debug, Debug: k.debug,
Tracer: vm.NewJSONLogger(&vm.LogConfig{Debug: k.debug}, os.Stderr), // TODO: consider using the Struct Logger too Tracer: vm.NewJSONLogger(&vm.LogConfig{Debug: k.debug}, os.Stderr), // TODO: consider using the Struct Logger too
@ -112,11 +110,8 @@ func (k Keeper) GetHashFn() vm.GetHashFunc {
func (k *Keeper) ApplyTransaction(tx *ethtypes.Transaction) (*types.MsgEthereumTxResponse, error) { func (k *Keeper) ApplyTransaction(tx *ethtypes.Transaction) (*types.MsgEthereumTxResponse, error) {
defer telemetry.ModuleMeasureSince(types.ModuleName, time.Now(), types.MetricKeyTransitionDB) defer telemetry.ModuleMeasureSince(types.ModuleName, time.Now(), types.MetricKeyTransitionDB)
cfg, found := k.GetChainConfig(k.ctx) params := k.GetParams(k.ctx)
if !found { ethCfg := params.ChainConfig.EthereumConfig(k.eip155ChainID)
return nil, stacktrace.Propagate(types.ErrChainConfigNotFound, "configuration not found")
}
ethCfg := cfg.EthereumConfig(k.eip155ChainID)
// get the latest signer according to the chain rules from the config // get the latest signer according to the chain rules from the config
signer := ethtypes.MakeSigner(ethCfg, big.NewInt(k.ctx.BlockHeight())) signer := ethtypes.MakeSigner(ethCfg, big.NewInt(k.ctx.BlockHeight()))
@ -132,7 +127,7 @@ func (k *Keeper) ApplyTransaction(tx *ethtypes.Transaction) (*types.MsgEthereumT
cacheCtx, commit := k.ctx.CacheContext() cacheCtx, commit := k.ctx.CacheContext()
k.ctx = cacheCtx k.ctx = cacheCtx
evm := k.NewEVM(msg, ethCfg) evm := k.NewEVM(msg, ethCfg, params)
k.SetTxHashTransient(tx.Hash()) k.SetTxHashTransient(tx.Hash())
k.IncreaseTxIndexTransient() k.IncreaseTxIndexTransient()

View File

@ -29,37 +29,49 @@ func (cc ChainConfig) EthereumConfig(chainID *big.Int) *params.ChainConfig {
IstanbulBlock: getBlockValue(cc.IstanbulBlock), IstanbulBlock: getBlockValue(cc.IstanbulBlock),
MuirGlacierBlock: getBlockValue(cc.MuirGlacierBlock), MuirGlacierBlock: getBlockValue(cc.MuirGlacierBlock),
BerlinBlock: getBlockValue(cc.BerlinBlock), BerlinBlock: getBlockValue(cc.BerlinBlock),
// TODO(xlab): after upgrading ethereum to newer version, this should be set to YoloV2Block YoloV3Block: getBlockValue(cc.YoloV3Block),
YoloV3Block: getBlockValue(cc.YoloV3Block), EWASMBlock: getBlockValue(cc.EWASMBlock),
EWASMBlock: getBlockValue(cc.EWASMBlock), CatalystBlock: getBlockValue(cc.CatalystBlock),
CatalystBlock: getBlockValue(cc.CatalystBlock),
} }
} }
// DefaultChainConfig returns default evm parameters. // DefaultChainConfig returns default evm parameters.
func DefaultChainConfig() ChainConfig { func DefaultChainConfig() ChainConfig {
homesteadBlock := sdk.ZeroInt()
daoForkBlock := sdk.ZeroInt()
eip150Block := sdk.ZeroInt()
eip155Block := sdk.ZeroInt()
eip158Block := sdk.ZeroInt()
byzantiumBlock := sdk.ZeroInt()
constantinopleBlock := sdk.ZeroInt()
petersburgBlock := sdk.ZeroInt()
istanbulBlock := sdk.ZeroInt()
muirGlacierBlock := sdk.ZeroInt()
berlinBlock := sdk.ZeroInt()
yoloV3Block := sdk.ZeroInt()
return ChainConfig{ return ChainConfig{
HomesteadBlock: sdk.ZeroInt(), HomesteadBlock: &homesteadBlock,
DAOForkBlock: sdk.ZeroInt(), DAOForkBlock: &daoForkBlock,
DAOForkSupport: true, DAOForkSupport: true,
EIP150Block: sdk.ZeroInt(), EIP150Block: &eip150Block,
EIP150Hash: common.Hash{}.String(), EIP150Hash: common.Hash{}.String(),
EIP155Block: sdk.ZeroInt(), EIP155Block: &eip155Block,
EIP158Block: sdk.ZeroInt(), EIP158Block: &eip158Block,
ByzantiumBlock: sdk.ZeroInt(), ByzantiumBlock: &byzantiumBlock,
ConstantinopleBlock: sdk.ZeroInt(), ConstantinopleBlock: &constantinopleBlock,
PetersburgBlock: sdk.ZeroInt(), PetersburgBlock: &petersburgBlock,
IstanbulBlock: sdk.ZeroInt(), IstanbulBlock: &istanbulBlock,
MuirGlacierBlock: sdk.ZeroInt(), MuirGlacierBlock: &muirGlacierBlock,
BerlinBlock: sdk.ZeroInt(), BerlinBlock: &berlinBlock,
YoloV3Block: sdk.ZeroInt(), YoloV3Block: &yoloV3Block,
EWASMBlock: sdk.NewInt(-1), EWASMBlock: nil,
CatalystBlock: sdk.NewInt(-1), CatalystBlock: nil,
} }
} }
func getBlockValue(block sdk.Int) *big.Int { func getBlockValue(block *sdk.Int) *big.Int {
if block.IsNegative() { if block == nil || block.IsNegative() {
return nil return nil
} }
@ -102,6 +114,9 @@ func (cc ChainConfig) Validate() error {
if err := validateBlock(cc.MuirGlacierBlock); err != nil { if err := validateBlock(cc.MuirGlacierBlock); err != nil {
return sdkerrors.Wrap(err, "muirGlacierBlock") return sdkerrors.Wrap(err, "muirGlacierBlock")
} }
if err := validateBlock(cc.BerlinBlock); err != nil {
return sdkerrors.Wrap(err, "berlinBlock")
}
if err := validateBlock(cc.YoloV3Block); err != nil { if err := validateBlock(cc.YoloV3Block); err != nil {
return sdkerrors.Wrap(err, "yoloV3Block") return sdkerrors.Wrap(err, "yoloV3Block")
} }
@ -123,11 +138,15 @@ func validateHash(hex string) error {
return nil return nil
} }
func validateBlock(block sdk.Int) error { func validateBlock(block *sdk.Int) error {
if block == (sdk.Int{}) || block.BigInt() == nil { // nil value means that the fork has not yet been applied
if block == nil {
return nil
}
if block.IsNegative() {
return sdkerrors.Wrapf( return sdkerrors.Wrapf(
ErrInvalidChainConfig, ErrInvalidChainConfig, "block value cannot be negative: %s", block,
"cannot use uninitialized or nil values for Int, set a negative Int value if you want to define a nil Ethereum block",
) )
} }

View File

@ -12,6 +12,11 @@ import (
var defaultEIP150Hash = common.Hash{}.String() var defaultEIP150Hash = common.Hash{}.String()
func newIntPtr(i int64) *sdk.Int {
v := sdk.NewInt(i)
return &v
}
func TestChainConfigValidate(t *testing.T) { func TestChainConfigValidate(t *testing.T) {
testCases := []struct { testCases := []struct {
name string name string
@ -22,58 +27,80 @@ func TestChainConfigValidate(t *testing.T) {
{ {
"valid", "valid",
ChainConfig{ ChainConfig{
HomesteadBlock: sdk.OneInt(), HomesteadBlock: newIntPtr(0),
DAOForkBlock: sdk.OneInt(), DAOForkBlock: newIntPtr(0),
EIP150Block: sdk.OneInt(), EIP150Block: newIntPtr(0),
EIP150Hash: defaultEIP150Hash, EIP150Hash: defaultEIP150Hash,
EIP155Block: sdk.OneInt(), EIP155Block: newIntPtr(0),
EIP158Block: sdk.OneInt(), EIP158Block: newIntPtr(0),
ByzantiumBlock: sdk.OneInt(), ByzantiumBlock: newIntPtr(0),
ConstantinopleBlock: sdk.OneInt(), ConstantinopleBlock: newIntPtr(0),
PetersburgBlock: sdk.OneInt(), PetersburgBlock: newIntPtr(0),
IstanbulBlock: sdk.OneInt(), IstanbulBlock: newIntPtr(0),
MuirGlacierBlock: sdk.OneInt(), MuirGlacierBlock: newIntPtr(0),
YoloV3Block: sdk.OneInt(), BerlinBlock: newIntPtr(0),
EWASMBlock: sdk.OneInt(), YoloV3Block: newIntPtr(0),
CatalystBlock: sdk.OneInt(), EWASMBlock: newIntPtr(0),
CatalystBlock: newIntPtr(0),
},
false,
},
{
"valid with nil values",
ChainConfig{
HomesteadBlock: nil,
DAOForkBlock: nil,
EIP150Block: nil,
EIP150Hash: defaultEIP150Hash,
EIP155Block: nil,
EIP158Block: nil,
ByzantiumBlock: nil,
ConstantinopleBlock: nil,
PetersburgBlock: nil,
IstanbulBlock: nil,
MuirGlacierBlock: nil,
BerlinBlock: nil,
YoloV3Block: nil,
EWASMBlock: nil,
CatalystBlock: nil,
}, },
false, false,
}, },
{ {
"empty", "empty",
ChainConfig{}, ChainConfig{},
true, false,
}, },
{ {
"invalid HomesteadBlock", "invalid HomesteadBlock",
ChainConfig{ ChainConfig{
HomesteadBlock: sdk.Int{}, HomesteadBlock: newIntPtr(-1),
}, },
true, true,
}, },
{ {
"invalid DAOForkBlock", "invalid DAOForkBlock",
ChainConfig{ ChainConfig{
HomesteadBlock: sdk.OneInt(), HomesteadBlock: newIntPtr(0),
DAOForkBlock: sdk.Int{}, DAOForkBlock: newIntPtr(-1),
}, },
true, true,
}, },
{ {
"invalid EIP150Block", "invalid EIP150Block",
ChainConfig{ ChainConfig{
HomesteadBlock: sdk.OneInt(), HomesteadBlock: newIntPtr(0),
DAOForkBlock: sdk.OneInt(), DAOForkBlock: newIntPtr(0),
EIP150Block: sdk.Int{}, EIP150Block: newIntPtr(-1),
}, },
true, true,
}, },
{ {
"invalid EIP150Hash", "invalid EIP150Hash",
ChainConfig{ ChainConfig{
HomesteadBlock: sdk.OneInt(), HomesteadBlock: newIntPtr(0),
DAOForkBlock: sdk.OneInt(), DAOForkBlock: newIntPtr(0),
EIP150Block: sdk.OneInt(), EIP150Block: newIntPtr(0),
EIP150Hash: " ", EIP150Hash: " ",
}, },
true, true,
@ -81,155 +108,176 @@ func TestChainConfigValidate(t *testing.T) {
{ {
"invalid EIP155Block", "invalid EIP155Block",
ChainConfig{ ChainConfig{
HomesteadBlock: sdk.OneInt(), HomesteadBlock: newIntPtr(0),
DAOForkBlock: sdk.OneInt(), DAOForkBlock: newIntPtr(0),
EIP150Block: sdk.OneInt(), EIP150Block: newIntPtr(0),
EIP150Hash: defaultEIP150Hash, EIP150Hash: defaultEIP150Hash,
EIP155Block: sdk.Int{}, EIP155Block: newIntPtr(-1),
}, },
true, true,
}, },
{ {
"invalid EIP158Block", "invalid EIP158Block",
ChainConfig{ ChainConfig{
HomesteadBlock: sdk.OneInt(), HomesteadBlock: newIntPtr(0),
DAOForkBlock: sdk.OneInt(), DAOForkBlock: newIntPtr(0),
EIP150Block: sdk.OneInt(), EIP150Block: newIntPtr(0),
EIP150Hash: defaultEIP150Hash, EIP150Hash: defaultEIP150Hash,
EIP155Block: sdk.OneInt(), EIP155Block: newIntPtr(0),
EIP158Block: sdk.Int{}, EIP158Block: newIntPtr(-1),
}, },
true, true,
}, },
{ {
"invalid ByzantiumBlock", "invalid ByzantiumBlock",
ChainConfig{ ChainConfig{
HomesteadBlock: sdk.OneInt(), HomesteadBlock: newIntPtr(0),
DAOForkBlock: sdk.OneInt(), DAOForkBlock: newIntPtr(0),
EIP150Block: sdk.OneInt(), EIP150Block: newIntPtr(0),
EIP150Hash: defaultEIP150Hash, EIP150Hash: defaultEIP150Hash,
EIP155Block: sdk.OneInt(), EIP155Block: newIntPtr(0),
EIP158Block: sdk.OneInt(), EIP158Block: newIntPtr(0),
ByzantiumBlock: sdk.Int{}, ByzantiumBlock: newIntPtr(-1),
}, },
true, true,
}, },
{ {
"invalid ConstantinopleBlock", "invalid ConstantinopleBlock",
ChainConfig{ ChainConfig{
HomesteadBlock: sdk.OneInt(), HomesteadBlock: newIntPtr(0),
DAOForkBlock: sdk.OneInt(), DAOForkBlock: newIntPtr(0),
EIP150Block: sdk.OneInt(), EIP150Block: newIntPtr(0),
EIP150Hash: defaultEIP150Hash, EIP150Hash: defaultEIP150Hash,
EIP155Block: sdk.OneInt(), EIP155Block: newIntPtr(0),
EIP158Block: sdk.OneInt(), EIP158Block: newIntPtr(0),
ByzantiumBlock: sdk.OneInt(), ByzantiumBlock: newIntPtr(0),
ConstantinopleBlock: sdk.Int{}, ConstantinopleBlock: newIntPtr(-1),
}, },
true, true,
}, },
{ {
"invalid PetersburgBlock", "invalid PetersburgBlock",
ChainConfig{ ChainConfig{
HomesteadBlock: sdk.OneInt(), HomesteadBlock: newIntPtr(0),
DAOForkBlock: sdk.OneInt(), DAOForkBlock: newIntPtr(0),
EIP150Block: sdk.OneInt(), EIP150Block: newIntPtr(0),
EIP150Hash: defaultEIP150Hash, EIP150Hash: defaultEIP150Hash,
EIP155Block: sdk.OneInt(), EIP155Block: newIntPtr(0),
EIP158Block: sdk.OneInt(), EIP158Block: newIntPtr(0),
ByzantiumBlock: sdk.OneInt(), ByzantiumBlock: newIntPtr(0),
ConstantinopleBlock: sdk.OneInt(), ConstantinopleBlock: newIntPtr(0),
PetersburgBlock: sdk.Int{}, PetersburgBlock: newIntPtr(-1),
}, },
true, true,
}, },
{ {
"invalid IstanbulBlock", "invalid IstanbulBlock",
ChainConfig{ ChainConfig{
HomesteadBlock: sdk.OneInt(), HomesteadBlock: newIntPtr(0),
DAOForkBlock: sdk.OneInt(), DAOForkBlock: newIntPtr(0),
EIP150Block: sdk.OneInt(), EIP150Block: newIntPtr(0),
EIP150Hash: defaultEIP150Hash, EIP150Hash: defaultEIP150Hash,
EIP155Block: sdk.OneInt(), EIP155Block: newIntPtr(0),
EIP158Block: sdk.OneInt(), EIP158Block: newIntPtr(0),
ByzantiumBlock: sdk.OneInt(), ByzantiumBlock: newIntPtr(0),
ConstantinopleBlock: sdk.OneInt(), ConstantinopleBlock: newIntPtr(0),
PetersburgBlock: sdk.OneInt(), PetersburgBlock: newIntPtr(0),
IstanbulBlock: sdk.Int{}, IstanbulBlock: newIntPtr(-1),
}, },
true, true,
}, },
{ {
"invalid MuirGlacierBlock", "invalid MuirGlacierBlock",
ChainConfig{ ChainConfig{
HomesteadBlock: sdk.OneInt(), HomesteadBlock: newIntPtr(0),
DAOForkBlock: sdk.OneInt(), DAOForkBlock: newIntPtr(0),
EIP150Block: sdk.OneInt(), EIP150Block: newIntPtr(0),
EIP150Hash: defaultEIP150Hash, EIP150Hash: defaultEIP150Hash,
EIP155Block: sdk.OneInt(), EIP155Block: newIntPtr(0),
EIP158Block: sdk.OneInt(), EIP158Block: newIntPtr(0),
ByzantiumBlock: sdk.OneInt(), ByzantiumBlock: newIntPtr(0),
ConstantinopleBlock: sdk.OneInt(), ConstantinopleBlock: newIntPtr(0),
PetersburgBlock: sdk.OneInt(), PetersburgBlock: newIntPtr(0),
IstanbulBlock: sdk.OneInt(), IstanbulBlock: newIntPtr(0),
MuirGlacierBlock: sdk.Int{}, MuirGlacierBlock: newIntPtr(-1),
}, },
true, true,
}, },
{ {
"invalid YoloV2Block", "invalid BerlinBlock",
ChainConfig{ ChainConfig{
HomesteadBlock: sdk.OneInt(), HomesteadBlock: newIntPtr(0),
DAOForkBlock: sdk.OneInt(), DAOForkBlock: newIntPtr(0),
EIP150Block: sdk.OneInt(), EIP150Block: newIntPtr(0),
EIP150Hash: defaultEIP150Hash, EIP150Hash: defaultEIP150Hash,
EIP155Block: sdk.OneInt(), EIP155Block: newIntPtr(0),
EIP158Block: sdk.OneInt(), EIP158Block: newIntPtr(0),
ByzantiumBlock: sdk.OneInt(), ByzantiumBlock: newIntPtr(0),
ConstantinopleBlock: sdk.OneInt(), ConstantinopleBlock: newIntPtr(0),
PetersburgBlock: sdk.OneInt(), PetersburgBlock: newIntPtr(0),
IstanbulBlock: sdk.OneInt(), IstanbulBlock: newIntPtr(0),
MuirGlacierBlock: sdk.OneInt(), MuirGlacierBlock: newIntPtr(0),
YoloV3Block: sdk.Int{}, BerlinBlock: newIntPtr(-1),
},
true,
},
{
"invalid YoloV3Block",
ChainConfig{
HomesteadBlock: newIntPtr(0),
DAOForkBlock: newIntPtr(0),
EIP150Block: newIntPtr(0),
EIP150Hash: defaultEIP150Hash,
EIP155Block: newIntPtr(0),
EIP158Block: newIntPtr(0),
ByzantiumBlock: newIntPtr(0),
ConstantinopleBlock: newIntPtr(0),
PetersburgBlock: newIntPtr(0),
IstanbulBlock: newIntPtr(0),
MuirGlacierBlock: newIntPtr(0),
BerlinBlock: newIntPtr(0),
YoloV3Block: newIntPtr(-1),
}, },
true, true,
}, },
{ {
"invalid EWASMBlock", "invalid EWASMBlock",
ChainConfig{ ChainConfig{
HomesteadBlock: sdk.OneInt(), HomesteadBlock: newIntPtr(0),
DAOForkBlock: sdk.OneInt(), DAOForkBlock: newIntPtr(0),
EIP150Block: sdk.OneInt(), EIP150Block: newIntPtr(0),
EIP150Hash: defaultEIP150Hash, EIP150Hash: defaultEIP150Hash,
EIP155Block: sdk.OneInt(), EIP155Block: newIntPtr(0),
EIP158Block: sdk.OneInt(), EIP158Block: newIntPtr(0),
ByzantiumBlock: sdk.OneInt(), ByzantiumBlock: newIntPtr(0),
ConstantinopleBlock: sdk.OneInt(), ConstantinopleBlock: newIntPtr(0),
PetersburgBlock: sdk.OneInt(), PetersburgBlock: newIntPtr(0),
IstanbulBlock: sdk.OneInt(), IstanbulBlock: newIntPtr(0),
MuirGlacierBlock: sdk.OneInt(), MuirGlacierBlock: newIntPtr(0),
YoloV3Block: sdk.OneInt(), BerlinBlock: newIntPtr(0),
EWASMBlock: sdk.Int{}, YoloV3Block: newIntPtr(0),
EWASMBlock: newIntPtr(-1),
}, },
true, true,
}, },
{ {
"invalid CatalystBlock", "invalid CatalystBlock",
ChainConfig{ ChainConfig{
HomesteadBlock: sdk.OneInt(), HomesteadBlock: newIntPtr(0),
DAOForkBlock: sdk.OneInt(), DAOForkBlock: newIntPtr(0),
EIP150Block: sdk.OneInt(), EIP150Block: newIntPtr(0),
EIP150Hash: defaultEIP150Hash, EIP150Hash: defaultEIP150Hash,
EIP155Block: sdk.OneInt(), EIP155Block: newIntPtr(0),
EIP158Block: sdk.OneInt(), EIP158Block: newIntPtr(0),
ByzantiumBlock: sdk.OneInt(), ByzantiumBlock: newIntPtr(0),
ConstantinopleBlock: sdk.OneInt(), ConstantinopleBlock: newIntPtr(0),
PetersburgBlock: sdk.OneInt(), PetersburgBlock: newIntPtr(0),
IstanbulBlock: sdk.OneInt(), IstanbulBlock: newIntPtr(0),
MuirGlacierBlock: sdk.OneInt(), MuirGlacierBlock: newIntPtr(0),
YoloV3Block: sdk.OneInt(), YoloV3Block: newIntPtr(0),
EWASMBlock: sdk.OneInt(),
CatalystBlock: sdk.Int{}, EWASMBlock: newIntPtr(0),
CatalystBlock: newIntPtr(-1),
}, },
true, true,
}, },

View File

@ -26,15 +26,17 @@ const _ = proto.GoGoProtoPackageIsVersion3 // please upgrade the proto package
// Params defines the EVM module parameters // Params defines the EVM module parameters
type Params struct { type Params struct {
// evm_denom represents the token denomination used to run the EVM state // evm denom represents the token denomination used to run the EVM state
// transitions. // transitions.
EvmDenom string `protobuf:"bytes,1,opt,name=evm_denom,json=evmDenom,proto3" json:"evm_denom,omitempty" yaml:"evm_denom"` EvmDenom string `protobuf:"bytes,1,opt,name=evm_denom,json=evmDenom,proto3" json:"evm_denom,omitempty" yaml:"evm_denom"`
// enable_create toggles state transitions that use the vm.Create function // enable create toggles state transitions that use the vm.Create function
EnableCreate bool `protobuf:"varint,2,opt,name=enable_create,json=enableCreate,proto3" json:"enable_create,omitempty" yaml:"enable_create"` EnableCreate bool `protobuf:"varint,2,opt,name=enable_create,json=enableCreate,proto3" json:"enable_create,omitempty" yaml:"enable_create"`
// enable_call toggles state transitions that use the vm.Call function // enable call toggles state transitions that use the vm.Call function
EnableCall bool `protobuf:"varint,3,opt,name=enable_call,json=enableCall,proto3" json:"enable_call,omitempty" yaml:"enable_call"` EnableCall bool `protobuf:"varint,3,opt,name=enable_call,json=enableCall,proto3" json:"enable_call,omitempty" yaml:"enable_call"`
// extra_eips defines the additional EIPs for the vm.Config // extra eips defines the additional EIPs for the vm.Config
ExtraEIPs []int64 `protobuf:"varint,4,rep,packed,name=extra_eips,json=extraEips,proto3" json:"extra_eips,omitempty" yaml:"extra_eips"` ExtraEIPs []int64 `protobuf:"varint,4,rep,packed,name=extra_eips,json=extraEips,proto3" json:"extra_eips,omitempty" yaml:"extra_eips"`
// chain config defines the EVM chain configuration parameters
ChainConfig ChainConfig `protobuf:"bytes,5,opt,name=chain_config,json=chainConfig,proto3" json:"chain_config" yaml:"chain_config"`
} }
func (m *Params) Reset() { *m = Params{} } func (m *Params) Reset() { *m = Params{} }
@ -97,51 +99,49 @@ func (m *Params) GetExtraEIPs() []int64 {
return nil return nil
} }
// ChainConfig defines the Ethereum ChainConfig parameters using sdk.Int values func (m *Params) GetChainConfig() ChainConfig {
// instead of big.Int. if m != nil {
// return m.ChainConfig
// NOTE 1: Since empty/uninitialized Ints (i.e with a nil big.Int value) are }
// parsed to zero, we need to manually specify that negative Int values will be return ChainConfig{}
// considered as nil. See getBlockValue for reference. }
//
// NOTE 2: This type is not a configurable Param since the SDK does not allow // ChainConfig defines the Ethereum ChainConfig parameters using *sdk.Int values
// for validation against a previous stored parameter values or the current // instead of *big.Int.
// block height (retrieved from context). If you want to update the config
// values, use an software upgrade procedure.
type ChainConfig struct { type ChainConfig struct {
// Homestead switch block (< 0 no fork, 0 = already homestead) // Homestead switch block (nil no fork, 0 = already homestead)
HomesteadBlock github_com_cosmos_cosmos_sdk_types.Int `protobuf:"bytes,1,opt,name=homestead_block,json=homesteadBlock,proto3,customtype=github.com/cosmos/cosmos-sdk/types.Int" json:"homestead_block" yaml:"homestead_block"` HomesteadBlock *github_com_cosmos_cosmos_sdk_types.Int `protobuf:"bytes,1,opt,name=homestead_block,json=homesteadBlock,proto3,customtype=github.com/cosmos/cosmos-sdk/types.Int" json:"homestead_block,omitempty" yaml:"homestead_block"`
// TheDAO hard-fork switch block (< 0 no fork) // TheDAO hard-fork switch block (nil no fork)
DAOForkBlock github_com_cosmos_cosmos_sdk_types.Int `protobuf:"bytes,2,opt,name=dao_fork_block,json=daoForkBlock,proto3,customtype=github.com/cosmos/cosmos-sdk/types.Int" json:"dao_fork_block" yaml:"dao_fork_block"` DAOForkBlock *github_com_cosmos_cosmos_sdk_types.Int `protobuf:"bytes,2,opt,name=dao_fork_block,json=daoForkBlock,proto3,customtype=github.com/cosmos/cosmos-sdk/types.Int" json:"dao_fork_block,omitempty" yaml:"dao_fork_block"`
// Whether the nodes supports or opposes the DAO hard-fork // Whether the nodes supports or opposes the DAO hard-fork
DAOForkSupport bool `protobuf:"varint,3,opt,name=dao_fork_support,json=daoForkSupport,proto3" json:"dao_fork_support,omitempty" yaml:"dao_fork_support"` DAOForkSupport bool `protobuf:"varint,3,opt,name=dao_fork_support,json=daoForkSupport,proto3" json:"dao_fork_support,omitempty" yaml:"dao_fork_support"`
// EIP150 implements the Gas price changes // EIP150 implements the Gas price changes
// (https://github.com/ethereum/EIPs/issues/150) EIP150 HF block (< 0 no fork) // (https://github.com/ethereum/EIPs/issues/150) EIP150 HF block (nil no fork)
EIP150Block github_com_cosmos_cosmos_sdk_types.Int `protobuf:"bytes,4,opt,name=eip150_block,json=eip150Block,proto3,customtype=github.com/cosmos/cosmos-sdk/types.Int" json:"eip150_block" yaml:"eip150_block"` EIP150Block *github_com_cosmos_cosmos_sdk_types.Int `protobuf:"bytes,4,opt,name=eip150_block,json=eip150Block,proto3,customtype=github.com/cosmos/cosmos-sdk/types.Int" json:"eip150_block,omitempty" yaml:"eip150_block"`
// EIP150 HF hash (needed for header only clients as only gas pricing changed) // EIP150 HF hash (needed for header only clients as only gas pricing changed)
EIP150Hash string `protobuf:"bytes,5,opt,name=eip150_hash,json=eip150Hash,proto3" json:"eip150_hash,omitempty" yaml:"byzantium_block"` EIP150Hash string `protobuf:"bytes,5,opt,name=eip150_hash,json=eip150Hash,proto3" json:"eip150_hash,omitempty" yaml:"byzantium_block"`
// EIP155Block HF block // EIP155Block HF block
EIP155Block github_com_cosmos_cosmos_sdk_types.Int `protobuf:"bytes,6,opt,name=eip155_block,json=eip155Block,proto3,customtype=github.com/cosmos/cosmos-sdk/types.Int" json:"eip155_block" yaml:"eip155_block"` EIP155Block *github_com_cosmos_cosmos_sdk_types.Int `protobuf:"bytes,6,opt,name=eip155_block,json=eip155Block,proto3,customtype=github.com/cosmos/cosmos-sdk/types.Int" json:"eip155_block,omitempty" yaml:"eip155_block"`
// EIP158 HF block // EIP158 HF block
EIP158Block github_com_cosmos_cosmos_sdk_types.Int `protobuf:"bytes,7,opt,name=eip158_block,json=eip158Block,proto3,customtype=github.com/cosmos/cosmos-sdk/types.Int" json:"eip158_block" yaml:"eip158_block"` EIP158Block *github_com_cosmos_cosmos_sdk_types.Int `protobuf:"bytes,7,opt,name=eip158_block,json=eip158Block,proto3,customtype=github.com/cosmos/cosmos-sdk/types.Int" json:"eip158_block,omitempty" yaml:"eip158_block"`
// Byzantium switch block (< 0 no fork, 0 = already on byzantium) // Byzantium switch block (nil no fork, 0 = already on byzantium)
ByzantiumBlock github_com_cosmos_cosmos_sdk_types.Int `protobuf:"bytes,8,opt,name=byzantium_block,json=byzantiumBlock,proto3,customtype=github.com/cosmos/cosmos-sdk/types.Int" json:"byzantium_block" yaml:"byzantium_block"` ByzantiumBlock *github_com_cosmos_cosmos_sdk_types.Int `protobuf:"bytes,8,opt,name=byzantium_block,json=byzantiumBlock,proto3,customtype=github.com/cosmos/cosmos-sdk/types.Int" json:"byzantium_block,omitempty" yaml:"byzantium_block"`
// Constantinople switch block (< 0 no fork, 0 = already activated) // Constantinople switch block (nil no fork, 0 = already activated)
ConstantinopleBlock github_com_cosmos_cosmos_sdk_types.Int `protobuf:"bytes,9,opt,name=constantinople_block,json=constantinopleBlock,proto3,customtype=github.com/cosmos/cosmos-sdk/types.Int" json:"constantinople_block" yaml:"constantinople_block"` ConstantinopleBlock *github_com_cosmos_cosmos_sdk_types.Int `protobuf:"bytes,9,opt,name=constantinople_block,json=constantinopleBlock,proto3,customtype=github.com/cosmos/cosmos-sdk/types.Int" json:"constantinople_block,omitempty" yaml:"constantinople_block"`
// Petersburg switch block (< 0 same as Constantinople) // Petersburg switch block (nil same as Constantinople)
PetersburgBlock github_com_cosmos_cosmos_sdk_types.Int `protobuf:"bytes,10,opt,name=petersburg_block,json=petersburgBlock,proto3,customtype=github.com/cosmos/cosmos-sdk/types.Int" json:"petersburg_block" yaml:"petersburg_block"` PetersburgBlock *github_com_cosmos_cosmos_sdk_types.Int `protobuf:"bytes,10,opt,name=petersburg_block,json=petersburgBlock,proto3,customtype=github.com/cosmos/cosmos-sdk/types.Int" json:"petersburg_block,omitempty" yaml:"petersburg_block"`
// Istanbul switch block (< 0 no fork, 0 = already on istanbul) // Istanbul switch block (nil no fork, 0 = already on istanbul)
IstanbulBlock github_com_cosmos_cosmos_sdk_types.Int `protobuf:"bytes,11,opt,name=istanbul_block,json=istanbulBlock,proto3,customtype=github.com/cosmos/cosmos-sdk/types.Int" json:"istanbul_block" yaml:"istanbul_block"` IstanbulBlock *github_com_cosmos_cosmos_sdk_types.Int `protobuf:"bytes,11,opt,name=istanbul_block,json=istanbulBlock,proto3,customtype=github.com/cosmos/cosmos-sdk/types.Int" json:"istanbul_block,omitempty" yaml:"istanbul_block"`
// Eip-2384 (bomb delay) switch block (< 0 no fork, 0 = already activated) // Eip-2384 (bomb delay) switch block (nil no fork, 0 = already activated)
MuirGlacierBlock github_com_cosmos_cosmos_sdk_types.Int `protobuf:"bytes,12,opt,name=muir_glacier_block,json=muirGlacierBlock,proto3,customtype=github.com/cosmos/cosmos-sdk/types.Int" json:"muir_glacier_block" yaml:"muir_glacier_block"` MuirGlacierBlock *github_com_cosmos_cosmos_sdk_types.Int `protobuf:"bytes,12,opt,name=muir_glacier_block,json=muirGlacierBlock,proto3,customtype=github.com/cosmos/cosmos-sdk/types.Int" json:"muir_glacier_block,omitempty" yaml:"muir_glacier_block"`
// Berlin switch block (< 0 = no fork, 0 = already on berlin) // Berlin switch block (nil = no fork, 0 = already on berlin)
BerlinBlock github_com_cosmos_cosmos_sdk_types.Int `protobuf:"bytes,13,opt,name=berlin_block,json=berlinBlock,proto3,customtype=github.com/cosmos/cosmos-sdk/types.Int" json:"berlin_block" yaml:"berlin_block"` BerlinBlock *github_com_cosmos_cosmos_sdk_types.Int `protobuf:"bytes,13,opt,name=berlin_block,json=berlinBlock,proto3,customtype=github.com/cosmos/cosmos-sdk/types.Int" json:"berlin_block,omitempty" yaml:"berlin_block"`
// YOLO v3: Gas repricings // YOLO v3: Gas repricings
YoloV3Block github_com_cosmos_cosmos_sdk_types.Int `protobuf:"bytes,14,opt,name=yolo_v3_block,json=yoloV3Block,proto3,customtype=github.com/cosmos/cosmos-sdk/types.Int" json:"yolo_v3_block" yaml:"yolo_v3_block"` YoloV3Block *github_com_cosmos_cosmos_sdk_types.Int `protobuf:"bytes,14,opt,name=yolo_v3_block,json=yoloV3Block,proto3,customtype=github.com/cosmos/cosmos-sdk/types.Int" json:"yolo_v3_block,omitempty" yaml:"yolo_v3_block"`
// EWASM switch block (< 0 no fork, 0 = already activated) // EWASM switch block (nil no fork, 0 = already activated)
EWASMBlock github_com_cosmos_cosmos_sdk_types.Int `protobuf:"bytes,15,opt,name=ewasm_block,json=ewasmBlock,proto3,customtype=github.com/cosmos/cosmos-sdk/types.Int" json:"ewasm_block" yaml:"ewasm_block"` EWASMBlock *github_com_cosmos_cosmos_sdk_types.Int `protobuf:"bytes,15,opt,name=ewasm_block,json=ewasmBlock,proto3,customtype=github.com/cosmos/cosmos-sdk/types.Int" json:"ewasm_block,omitempty" yaml:"ewasm_block"`
// Catalyst switch block (< 0 = no fork, 0 = already on catalyst) // Catalyst switch block (nil = no fork, 0 = already on catalyst)
CatalystBlock github_com_cosmos_cosmos_sdk_types.Int `protobuf:"bytes,16,opt,name=catalyst_block,json=catalystBlock,proto3,customtype=github.com/cosmos/cosmos-sdk/types.Int" json:"catalyst_block" yaml:"catalyst_block"` CatalystBlock *github_com_cosmos_cosmos_sdk_types.Int `protobuf:"bytes,16,opt,name=catalyst_block,json=catalystBlock,proto3,customtype=github.com/cosmos/cosmos-sdk/types.Int" json:"catalyst_block,omitempty" yaml:"catalyst_block"`
} }
func (m *ChainConfig) Reset() { *m = ChainConfig{} } func (m *ChainConfig) Reset() { *m = ChainConfig{} }
@ -527,85 +527,87 @@ func init() {
func init() { proto.RegisterFile("ethermint/evm/v1alpha1/evm.proto", fileDescriptor_98f00fcca8b6b943) } func init() { proto.RegisterFile("ethermint/evm/v1alpha1/evm.proto", fileDescriptor_98f00fcca8b6b943) }
var fileDescriptor_98f00fcca8b6b943 = []byte{ var fileDescriptor_98f00fcca8b6b943 = []byte{
// 1239 bytes of a gzipped FileDescriptorProto // 1268 bytes of a gzipped FileDescriptorProto
0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0xa4, 0x96, 0xbd, 0x6f, 0xdb, 0xc6, 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0x9c, 0x97, 0x4d, 0x6f, 0xdb, 0x36,
0x1b, 0xc7, 0x2d, 0x4b, 0xb6, 0xa5, 0x93, 0x2c, 0xe9, 0x77, 0xd1, 0xcf, 0x55, 0x12, 0xc0, 0x34, 0x18, 0xc7, 0xe3, 0xd8, 0x49, 0x6c, 0x5a, 0x7e, 0x19, 0xeb, 0x65, 0x6e, 0x03, 0x44, 0x01, 0x07,
0x6e, 0x68, 0x3d, 0x24, 0x56, 0xec, 0xc0, 0x68, 0x10, 0xa0, 0x83, 0x95, 0x38, 0x89, 0x91, 0xa4, 0x6c, 0x3e, 0xb4, 0x71, 0x93, 0x22, 0x58, 0x51, 0x60, 0x87, 0x28, 0x4d, 0xdb, 0x60, 0x5d, 0x17,
0x0d, 0x2e, 0x6e, 0x52, 0x74, 0x21, 0x4e, 0xe4, 0x85, 0x62, 0x4d, 0xf2, 0x58, 0xde, 0x49, 0x91, 0x30, 0x5d, 0x3b, 0xec, 0x22, 0xd0, 0x12, 0x2b, 0x6b, 0x91, 0x44, 0x41, 0xa4, 0x3d, 0x7b, 0xd8,
0x0a, 0x14, 0xe8, 0xd8, 0xb1, 0xdd, 0x3a, 0xe6, 0xcf, 0x09, 0x3a, 0x65, 0x2c, 0x3a, 0x10, 0x85, 0x07, 0xd8, 0x71, 0xbb, 0xed, 0xb8, 0x8f, 0x53, 0xec, 0xd4, 0xe3, 0xb0, 0x83, 0xb0, 0xb9, 0x87,
0xbc, 0x79, 0xd4, 0xdc, 0xa1, 0xb8, 0x17, 0xea, 0x2d, 0x6e, 0x01, 0xc1, 0x13, 0xef, 0x79, 0xee, 0x01, 0x39, 0xfa, 0x13, 0x0c, 0x22, 0xe9, 0xb7, 0x34, 0x1d, 0xe6, 0x9c, 0xcc, 0xe7, 0xe1, 0xc3,
0xb9, 0xef, 0x87, 0xcf, 0xdd, 0x73, 0x7c, 0x08, 0x76, 0xa8, 0xe8, 0xd2, 0x24, 0xf4, 0x23, 0xd1, 0xff, 0x8f, 0x2f, 0x0f, 0xf5, 0xd0, 0x60, 0x87, 0x8a, 0x2e, 0x4d, 0x42, 0x3f, 0x12, 0x6d, 0xda,
0xa2, 0xfd, 0xb0, 0xd5, 0xdf, 0x27, 0x41, 0xdc, 0x25, 0xfb, 0xd2, 0xd8, 0x8b, 0x13, 0x26, 0x18, 0x0f, 0xdb, 0xfd, 0x3d, 0x12, 0xc4, 0x5d, 0xb2, 0x97, 0x19, 0xbb, 0x71, 0xc2, 0x04, 0x83, 0x9b,
0xdc, 0x9a, 0x44, 0xec, 0x49, 0x67, 0x16, 0x71, 0xa3, 0xe1, 0x31, 0x8f, 0xa9, 0x90, 0x96, 0x1c, 0xd3, 0x88, 0xdd, 0xcc, 0x39, 0x89, 0xb8, 0xd5, 0xf0, 0x98, 0xc7, 0x64, 0x48, 0x3b, 0x6b, 0xa9,
0xe9, 0x68, 0xf4, 0x77, 0x0e, 0xac, 0xbf, 0x20, 0x09, 0x09, 0x39, 0xdc, 0x07, 0x25, 0xda, 0x0f, 0x68, 0xf4, 0xf7, 0x2a, 0x58, 0x3f, 0x25, 0x09, 0x09, 0x39, 0xdc, 0x03, 0x25, 0xda, 0x0f, 0x6d,
0x6d, 0x97, 0x46, 0x2c, 0x6c, 0xe6, 0x76, 0x72, 0xbb, 0xa5, 0x76, 0x63, 0x9c, 0x5a, 0xf5, 0x21, 0x97, 0x46, 0x2c, 0x6c, 0xe6, 0x76, 0x72, 0xad, 0x92, 0xd5, 0x18, 0xa7, 0x66, 0x7d, 0x48, 0xc2,
0x09, 0x83, 0xfb, 0x68, 0x32, 0x85, 0x70, 0x91, 0xf6, 0xc3, 0x87, 0x72, 0x08, 0xbf, 0x00, 0x9b, 0xe0, 0x01, 0x9a, 0x76, 0x21, 0x5c, 0xa4, 0xfd, 0xf0, 0x61, 0xd6, 0x84, 0x9f, 0x83, 0x0a, 0x8d,
0x34, 0x22, 0x9d, 0x80, 0xda, 0x4e, 0x42, 0x89, 0xa0, 0xcd, 0xd5, 0x9d, 0xdc, 0x6e, 0xb1, 0xdd, 0x48, 0x27, 0xa0, 0xb6, 0x93, 0x50, 0x22, 0x68, 0x73, 0x75, 0x27, 0xd7, 0x2a, 0x5a, 0xcd, 0x71,
0x1c, 0xa7, 0x56, 0xc3, 0x2c, 0x9b, 0x9d, 0x46, 0xb8, 0xa2, 0xed, 0x07, 0xca, 0x84, 0x9f, 0x83, 0x6a, 0x36, 0xf4, 0xb0, 0xf9, 0x6e, 0x84, 0x0d, 0x65, 0x1f, 0x49, 0x13, 0x7e, 0x06, 0xca, 0x93,
0x72, 0x36, 0x4f, 0x82, 0xa0, 0x99, 0x57, 0x8b, 0xb7, 0xc6, 0xa9, 0x05, 0xe7, 0x17, 0x93, 0x20, 0x7e, 0x12, 0x04, 0xcd, 0xbc, 0x1c, 0xbc, 0x39, 0x4e, 0x4d, 0xb8, 0x38, 0x98, 0x04, 0x01, 0xc2,
0x40, 0x18, 0x98, 0xa5, 0x24, 0x08, 0xe0, 0x11, 0x00, 0x74, 0x20, 0x12, 0x62, 0x53, 0x3f, 0xe6, 0x40, 0x0f, 0x25, 0x41, 0x00, 0x0f, 0x01, 0xa0, 0x03, 0x91, 0x10, 0x9b, 0xfa, 0x31, 0x6f, 0x16,
0xcd, 0xc2, 0x4e, 0x7e, 0x37, 0xdf, 0x46, 0xa3, 0xd4, 0x2a, 0x1d, 0x4b, 0xef, 0xf1, 0xc9, 0x0b, 0x76, 0xf2, 0xad, 0xbc, 0x85, 0x46, 0xa9, 0x59, 0x3a, 0xce, 0xbc, 0xc7, 0x27, 0xa7, 0x7c, 0x9c,
0x3e, 0x4e, 0xad, 0xff, 0x19, 0x91, 0x49, 0x20, 0xc2, 0x25, 0x65, 0x1c, 0xfb, 0x31, 0xbf, 0x5f, 0x9a, 0x1f, 0x68, 0x91, 0x69, 0x20, 0xc2, 0x25, 0x69, 0x1c, 0xfb, 0x31, 0x87, 0x0e, 0x30, 0x9c,
0xf8, 0xed, 0x9d, 0xb5, 0x82, 0xde, 0x55, 0x41, 0xf9, 0x41, 0x97, 0xf8, 0xd1, 0x03, 0x16, 0xbd, 0x2e, 0xf1, 0x23, 0xdb, 0x61, 0xd1, 0x2b, 0xdf, 0x6b, 0xae, 0xed, 0xe4, 0x5a, 0xe5, 0xfd, 0x8f,
0xf1, 0x3d, 0xf8, 0x3d, 0xa8, 0x75, 0x59, 0x48, 0xb9, 0xa0, 0xc4, 0xb5, 0x3b, 0x01, 0x73, 0xce, 0x77, 0xaf, 0xde, 0xbd, 0xdd, 0xa3, 0x2c, 0xf6, 0x48, 0x86, 0x5a, 0x5b, 0xaf, 0x53, 0x73, 0x65,
0xcc, 0x4e, 0x3c, 0x79, 0x9f, 0x5a, 0x2b, 0x7f, 0xa6, 0xd6, 0xa7, 0x9e, 0x2f, 0xba, 0xbd, 0xce, 0x9c, 0x9a, 0x37, 0x14, 0x60, 0x5e, 0x06, 0xe1, 0xb2, 0x33, 0x8b, 0x7c, 0x50, 0xf8, 0xf5, 0x37,
0x9e, 0xc3, 0xc2, 0x96, 0xc3, 0x78, 0xc8, 0xb8, 0x79, 0xdc, 0xe6, 0xee, 0x59, 0x4b, 0x0c, 0x63, 0x73, 0x05, 0xfd, 0x53, 0x01, 0xe5, 0xb9, 0xf1, 0x30, 0x04, 0xb5, 0x2e, 0x0b, 0x29, 0x17, 0x94,
0xca, 0xf7, 0x4e, 0x22, 0x31, 0x4e, 0xad, 0x2d, 0x8d, 0x5f, 0x90, 0x43, 0xb8, 0x3a, 0xf1, 0xb4, 0xb8, 0x76, 0x27, 0x60, 0xce, 0xb9, 0xde, 0xee, 0x87, 0x7f, 0xa6, 0xe6, 0x27, 0x9e, 0x2f, 0xba,
0xa5, 0x03, 0xfe, 0x08, 0xaa, 0x2e, 0x61, 0xf6, 0x1b, 0x96, 0x9c, 0x19, 0xe2, 0xaa, 0x22, 0xbe, 0xbd, 0xce, 0xae, 0xc3, 0xc2, 0xb6, 0xc3, 0x78, 0xc8, 0xb8, 0xfe, 0xb9, 0xc3, 0xdd, 0xf3, 0xb6,
0x5e, 0x8e, 0x38, 0x4a, 0xad, 0xca, 0xc3, 0xa3, 0xaf, 0x1e, 0xb1, 0xe4, 0x4c, 0xe9, 0x8e, 0x53, 0x18, 0xc6, 0x94, 0xef, 0x9e, 0x44, 0x62, 0x9c, 0x9a, 0x9b, 0x0a, 0x7f, 0x49, 0x0a, 0xe1, 0xea,
0xeb, 0xff, 0xfa, 0x0d, 0xe6, 0xd5, 0x11, 0xae, 0xb8, 0x84, 0x4d, 0xc2, 0xe0, 0x6b, 0x50, 0x9f, 0xd4, 0x63, 0x65, 0x0e, 0x38, 0x04, 0x55, 0x97, 0x30, 0xfb, 0x15, 0x4b, 0xce, 0x35, 0x6d, 0x55,
0x04, 0xf0, 0x5e, 0x1c, 0xb3, 0x44, 0x98, 0x83, 0xb8, 0x3d, 0x4a, 0xad, 0xaa, 0x91, 0x7c, 0xa9, 0xd2, 0xce, 0xfe, 0x3f, 0x6d, 0x94, 0x9a, 0xc6, 0xc3, 0xc3, 0xaf, 0x1e, 0xb1, 0xe4, 0x5c, 0x6a,
0x67, 0xc6, 0xa9, 0xf5, 0xc9, 0x82, 0xa8, 0x59, 0x83, 0x70, 0xd5, 0xc8, 0x9a, 0x50, 0xf8, 0x16, 0x8e, 0x53, 0xf3, 0x43, 0x45, 0x5f, 0x54, 0x46, 0xd8, 0x70, 0x09, 0x9b, 0x86, 0xc1, 0x97, 0xa0,
0x54, 0xa8, 0x1f, 0xef, 0x1f, 0xde, 0x31, 0x59, 0x15, 0x54, 0x56, 0xa7, 0x4b, 0x67, 0x55, 0x3e, 0x3e, 0x0d, 0xe0, 0xbd, 0x38, 0x66, 0x89, 0xd0, 0xa7, 0x7c, 0x67, 0x94, 0x9a, 0x55, 0x2d, 0x79,
0x3e, 0x79, 0xb1, 0x7f, 0x78, 0x27, 0x4b, 0xea, 0x9a, 0x39, 0xd5, 0x19, 0x69, 0x84, 0xcb, 0xda, 0xa6, 0x7a, 0xc6, 0xa9, 0xf9, 0xd1, 0x25, 0x51, 0x3d, 0x06, 0xe1, 0xaa, 0x96, 0xd5, 0xa1, 0x90,
0xd4, 0x19, 0x9d, 0x00, 0x63, 0xda, 0x5d, 0xc2, 0xbb, 0xcd, 0x35, 0xc5, 0xdd, 0x1d, 0xa5, 0x16, 0x03, 0x83, 0xfa, 0xf1, 0xde, 0xc1, 0x5d, 0xbd, 0xa2, 0x82, 0x5c, 0xd1, 0xe9, 0x52, 0x2b, 0x2a,
0xd0, 0x4a, 0x4f, 0x08, 0xef, 0x4e, 0xcf, 0xa7, 0x33, 0xfc, 0x81, 0x44, 0xc2, 0xef, 0x85, 0x99, 0x1f, 0x9f, 0x9c, 0xee, 0x1d, 0xdc, 0x9d, 0x2c, 0x48, 0x9f, 0xe6, 0xbc, 0x2c, 0xc2, 0x65, 0x65,
0x16, 0xd0, 0x8b, 0x65, 0xd4, 0x24, 0x87, 0x43, 0x93, 0xc3, 0xfa, 0x95, 0x72, 0x38, 0xbc, 0x2c, 0xaa, 0xd5, 0x9c, 0x00, 0x6d, 0xda, 0x5d, 0xc2, 0xbb, 0x32, 0x63, 0x4a, 0x56, 0x6b, 0x94, 0x9a,
0x87, 0xc3, 0xf9, 0x1c, 0x74, 0xcc, 0x04, 0x7c, 0xcf, 0x80, 0x37, 0xae, 0x04, 0xbe, 0x77, 0x19, 0x40, 0x29, 0x3d, 0x21, 0xbc, 0x3b, 0x3b, 0x97, 0xce, 0xf0, 0x07, 0x12, 0x09, 0xbf, 0x17, 0x4e,
0xf8, 0xde, 0x3c, 0x58, 0xc7, 0xc8, 0x0b, 0xb0, 0xb0, 0x23, 0xcd, 0xe2, 0xd5, 0x2e, 0xc0, 0x47, 0xb4, 0x80, 0x1a, 0x9c, 0x45, 0x4d, 0xe7, 0x7f, 0xa0, 0xe7, 0xbf, 0x7e, 0xed, 0xf9, 0x1f, 0x5c,
0x1b, 0x5c, 0x9d, 0x78, 0x34, 0xf2, 0xa7, 0x1c, 0x68, 0x38, 0x2c, 0xe2, 0x42, 0x3a, 0x23, 0x16, 0x35, 0xff, 0x83, 0xc5, 0xf9, 0xab, 0x98, 0x29, 0xf4, 0xbe, 0x86, 0x6e, 0x5c, 0x1b, 0x7a, 0xff,
0x07, 0xd4, 0x80, 0x4b, 0x0a, 0xfc, 0x7c, 0x69, 0xf0, 0x4d, 0x0d, 0xbe, 0x4c, 0x13, 0xe1, 0x6b, 0x2a, 0xe8, 0xfd, 0x45, 0xa8, 0x8a, 0xc9, 0x92, 0xfd, 0xd2, 0x4e, 0x34, 0x8b, 0xd7, 0x4f, 0xf6,
0xf3, 0x6e, 0xfd, 0x0a, 0x02, 0xd4, 0x63, 0x2a, 0x68, 0xc2, 0x3b, 0xbd, 0xc4, 0x33, 0x74, 0xa0, 0x77, 0x36, 0xb5, 0x3a, 0xf5, 0x28, 0xdc, 0x8f, 0xa0, 0xe1, 0xb0, 0x88, 0x8b, 0xcc, 0x17, 0xb1,
0xe8, 0x27, 0x4b, 0xd3, 0xcd, 0x05, 0x59, 0xd4, 0x43, 0xb8, 0x36, 0x75, 0x69, 0x6a, 0x04, 0xaa, 0x38, 0xa0, 0x9a, 0x59, 0x92, 0xcc, 0x93, 0xa5, 0x98, 0x5b, 0xfa, 0x7e, 0x5f, 0xa1, 0x87, 0xf0,
0xbe, 0x7c, 0x95, 0x4e, 0x2f, 0x30, 0xcc, 0xb2, 0x62, 0x3e, 0x5e, 0x9a, 0x69, 0x6e, 0xfa, 0xbc, 0x8d, 0x45, 0xb7, 0xa2, 0xc7, 0xa0, 0x1e, 0x53, 0x41, 0x13, 0xde, 0xe9, 0x25, 0x9e, 0x26, 0x03,
0x1a, 0xc2, 0x9b, 0x99, 0x43, 0xf3, 0x86, 0x00, 0x86, 0x3d, 0x3f, 0xb1, 0xbd, 0x80, 0x38, 0x3e, 0x49, 0x3e, 0x5e, 0x8a, 0xac, 0xef, 0xc1, 0x65, 0x2d, 0x84, 0x6b, 0x33, 0x97, 0x22, 0x7e, 0x07,
0x4d, 0x0c, 0xb3, 0xa2, 0x98, 0x4f, 0x97, 0x66, 0x5e, 0xd7, 0xcc, 0x8f, 0x15, 0x11, 0xae, 0x4b, 0xaa, 0x7e, 0x36, 0x8d, 0x4e, 0x2f, 0xd0, 0xbc, 0xb2, 0xe4, 0x1d, 0x2d, 0xc5, 0xd3, 0x97, 0x79,
0xe7, 0x63, 0xed, 0xd3, 0xe8, 0x2e, 0xa8, 0x74, 0x68, 0x12, 0xf8, 0x91, 0x81, 0x6e, 0x2a, 0xe8, 0x51, 0x09, 0xe1, 0xca, 0xc4, 0xa1, 0x58, 0x3d, 0x00, 0xc3, 0x9e, 0x9f, 0xd8, 0x5e, 0x40, 0x1c,
0xf1, 0xd2, 0x50, 0x53, 0xc0, 0xb3, 0x5a, 0x08, 0x97, 0xb5, 0xa9, 0x49, 0xdf, 0x81, 0xcd, 0x21, 0x9f, 0x26, 0x9a, 0x67, 0x48, 0xde, 0xe3, 0xa5, 0x78, 0x37, 0x15, 0xef, 0x5d, 0x35, 0x84, 0xeb,
0x0b, 0x98, 0xdd, 0xbf, 0x6b, 0x50, 0x55, 0x85, 0x7a, 0xb4, 0x34, 0xca, 0x34, 0xb0, 0x39, 0x31, 0x99, 0xf3, 0xb1, 0xf2, 0x29, 0xac, 0x0b, 0x8c, 0x0e, 0x4d, 0x02, 0x3f, 0xd2, 0xc0, 0x8a, 0x04,
0x84, 0xcb, 0xd2, 0x7e, 0x75, 0x57, 0xb3, 0x38, 0x28, 0xd3, 0xb7, 0x84, 0x67, 0x17, 0xa5, 0xa6, 0x1e, 0x2e, 0x05, 0xd4, 0x79, 0x3a, 0xaf, 0x83, 0x70, 0x59, 0x99, 0x8a, 0xf2, 0x0a, 0x54, 0x86,
0x48, 0x78, 0xe9, 0x4b, 0x0a, 0x8e, 0x5f, 0x1f, 0xbd, 0x7c, 0x9e, 0xdd, 0xd1, 0xac, 0xf7, 0x4d, 0x2c, 0x60, 0x76, 0xff, 0x9e, 0xc6, 0x54, 0x25, 0xc6, 0x5a, 0x0a, 0xa3, 0x8b, 0xde, 0x82, 0x10,
0x85, 0xe5, 0x37, 0x49, 0x5a, 0x93, 0xaa, 0x71, 0x88, 0x20, 0xc1, 0x90, 0x0b, 0xc3, 0xad, 0x5f, 0xc2, 0xe5, 0xcc, 0x7e, 0x71, 0x4f, 0x71, 0x18, 0x28, 0xd3, 0xef, 0x09, 0x9f, 0xdc, 0x85, 0x9a,
0xad, 0x6a, 0xe6, 0xd5, 0x10, 0xde, 0xcc, 0x1c, 0x8a, 0x87, 0x5a, 0x60, 0xed, 0xa5, 0x90, 0xdd, 0xa4, 0x3c, 0x5b, 0xea, 0x0e, 0x82, 0xe3, 0x97, 0x87, 0x67, 0x5f, 0x4e, 0xae, 0xe0, 0xa4, 0x56,
0xba, 0x0e, 0xf2, 0x67, 0x74, 0xa8, 0xfb, 0x21, 0x96, 0x43, 0xd8, 0x00, 0x6b, 0x7d, 0x12, 0xf4, 0xce, 0x44, 0xb3, 0x4f, 0x4d, 0x66, 0x4d, 0x33, 0xc4, 0x21, 0x82, 0x04, 0x43, 0x2e, 0x34, 0xb3,
0x74, 0xdb, 0x2f, 0x61, 0x6d, 0xa0, 0x57, 0xa0, 0x76, 0x9a, 0x90, 0x88, 0x13, 0x47, 0xf8, 0x2c, 0x7e, 0xfd, 0x0c, 0x59, 0x54, 0x42, 0xb8, 0x32, 0x71, 0x48, 0x16, 0x6a, 0x83, 0xb5, 0x33, 0x91,
0x7a, 0xc6, 0x3c, 0x0e, 0x21, 0x28, 0xa8, 0x6f, 0xb1, 0x5e, 0xab, 0xc6, 0xb0, 0x05, 0x0a, 0x01, 0x55, 0xf6, 0x3a, 0xc8, 0x9f, 0xd3, 0xa1, 0x2a, 0x6b, 0x38, 0x6b, 0xc2, 0x06, 0x58, 0xeb, 0x93,
0xf3, 0x78, 0x73, 0x75, 0x27, 0xbf, 0x5b, 0x3e, 0xb8, 0xb9, 0x77, 0xf9, 0x6f, 0xcb, 0xde, 0x33, 0xa0, 0xa7, 0x9e, 0x08, 0x25, 0xac, 0x0c, 0xf4, 0x02, 0xd4, 0x9e, 0x27, 0x24, 0xe2, 0xc4, 0x11,
0xe6, 0x61, 0x15, 0x88, 0x7e, 0x5f, 0x05, 0xf9, 0x67, 0xcc, 0x83, 0x4d, 0xb0, 0x41, 0x5c, 0x37, 0x3e, 0x8b, 0x9e, 0x32, 0x8f, 0x43, 0x08, 0x0a, 0xf2, 0xf3, 0xaa, 0xc6, 0xca, 0x36, 0x6c, 0x83,
0xa1, 0x9c, 0x1b, 0xbd, 0xcc, 0x84, 0x5b, 0x60, 0x5d, 0xb0, 0xd8, 0x77, 0xb4, 0x68, 0x09, 0x1b, 0x42, 0xc0, 0x3c, 0xde, 0x5c, 0xdd, 0xc9, 0xb7, 0xca, 0xfb, 0x5b, 0xef, 0x2b, 0xd2, 0x4f, 0x99,
0x4b, 0xe2, 0x5d, 0x22, 0x88, 0xea, 0x6b, 0x15, 0xac, 0xc6, 0xf0, 0x00, 0x54, 0x54, 0xbe, 0x76, 0x87, 0x65, 0x20, 0xfa, 0x7d, 0x15, 0xe4, 0x9f, 0x32, 0x0f, 0x36, 0xc1, 0x06, 0x71, 0xdd, 0x84,
0xd4, 0x0b, 0x3b, 0x34, 0x51, 0xed, 0xa9, 0xd0, 0xae, 0x5d, 0xa4, 0x56, 0x59, 0xf9, 0xbf, 0x54, 0x72, 0xae, 0xf5, 0x26, 0x26, 0xdc, 0x04, 0xeb, 0x82, 0xc5, 0xbe, 0xa3, 0x44, 0x4b, 0x58, 0x5b,
0x6e, 0x3c, 0x6b, 0xc0, 0x5b, 0x60, 0x43, 0x0c, 0x66, 0xbb, 0xca, 0xb5, 0x8b, 0xd4, 0xaa, 0x89, 0x19, 0xde, 0x25, 0x82, 0xc8, 0x32, 0x65, 0x60, 0xd9, 0x86, 0xfb, 0xc0, 0x90, 0xeb, 0xb5, 0xa3,
0x69, 0xb2, 0xb2, 0x69, 0xe0, 0x75, 0x31, 0x78, 0xa2, 0x13, 0x2c, 0x8a, 0x81, 0xed, 0x47, 0x2e, 0x5e, 0xd8, 0xa1, 0x89, 0xac, 0x36, 0x05, 0xab, 0x76, 0x91, 0x9a, 0x65, 0xe9, 0x7f, 0x26, 0xdd,
0x1d, 0xa8, 0xc6, 0x51, 0x68, 0x37, 0x2e, 0x52, 0xab, 0x3e, 0x13, 0x7e, 0x22, 0xe7, 0xf0, 0x86, 0x78, 0xde, 0x80, 0xb7, 0xc1, 0x86, 0x18, 0xcc, 0x17, 0x8a, 0x1b, 0x17, 0xa9, 0x59, 0x13, 0xb3,
0x18, 0xa8, 0x01, 0xbc, 0x05, 0x80, 0x7e, 0x25, 0x45, 0xd0, 0x9f, 0xfc, 0xcd, 0x8b, 0xd4, 0x2a, 0xc5, 0x66, 0x75, 0x00, 0xaf, 0x8b, 0xc1, 0x13, 0xb5, 0xc0, 0xa2, 0x18, 0xd8, 0x7e, 0xe4, 0xd2,
0x29, 0xaf, 0xd2, 0x9e, 0x0e, 0x21, 0x02, 0x6b, 0x5a, 0xbb, 0xa8, 0xb4, 0x2b, 0x17, 0xa9, 0x55, 0x81, 0xac, 0x05, 0x05, 0xab, 0x71, 0x91, 0x9a, 0xf5, 0xb9, 0xf0, 0x93, 0xac, 0x0f, 0x6f, 0x88,
0x0c, 0x98, 0xa7, 0x35, 0xf5, 0x94, 0xdc, 0xaa, 0x84, 0x86, 0xac, 0x4f, 0x5d, 0xf5, 0x31, 0x2d, 0x81, 0x6c, 0xc0, 0xdb, 0x00, 0xa8, 0x29, 0x49, 0x82, 0xfa, 0x92, 0x57, 0x2e, 0x52, 0xb3, 0x24,
0xe2, 0xcc, 0x44, 0xbf, 0xae, 0x82, 0xe2, 0xe9, 0x00, 0x53, 0xde, 0x0b, 0x04, 0x7c, 0x04, 0xea, 0xbd, 0x52, 0x7b, 0xd6, 0x84, 0x08, 0xac, 0x29, 0xed, 0xa2, 0xd4, 0x36, 0x2e, 0x52, 0xb3, 0x18,
0x0e, 0x8b, 0x44, 0x42, 0x1c, 0x61, 0xcf, 0x6d, 0x6d, 0xfb, 0xe6, 0xf4, 0x83, 0xb6, 0x18, 0x81, 0x30, 0x4f, 0x69, 0xaa, 0xae, 0x6c, 0xab, 0x12, 0x1a, 0xb2, 0x3e, 0x75, 0xe5, 0xc7, 0xb2, 0x88,
0x70, 0x2d, 0x73, 0x1d, 0x99, 0xfd, 0x6f, 0x80, 0xb5, 0x4e, 0xc0, 0x58, 0xa8, 0xea, 0xa1, 0x82, 0x27, 0x26, 0xfa, 0x65, 0x15, 0x14, 0x9f, 0x0f, 0x30, 0xe5, 0xbd, 0x40, 0xc0, 0x47, 0xa0, 0xee,
0xb5, 0x01, 0xbf, 0x51, 0xbb, 0xa6, 0xce, 0x5a, 0x1e, 0x40, 0xf9, 0xe0, 0xb3, 0x7f, 0x3b, 0xeb, 0xb0, 0x48, 0x24, 0xc4, 0x11, 0xf6, 0xc2, 0xd6, 0x5a, 0x5b, 0xb3, 0x0f, 0xd7, 0xe5, 0x08, 0x84,
0x85, 0xb2, 0x69, 0x6f, 0xc9, 0x92, 0x1e, 0xa7, 0x56, 0x55, 0xbf, 0x81, 0x51, 0x41, 0x72, 0x87, 0x6b, 0x13, 0xd7, 0xa1, 0xde, 0xff, 0x06, 0x58, 0xeb, 0x04, 0x8c, 0x85, 0x32, 0x1f, 0x0c, 0xac,
0x55, 0x59, 0xd5, 0x41, 0x3e, 0xa1, 0x42, 0x1d, 0x5d, 0x05, 0xcb, 0x21, 0xbc, 0x01, 0x8a, 0x09, 0x0c, 0xf8, 0x8d, 0xdc, 0x35, 0x79, 0xd6, 0x79, 0xf9, 0x20, 0xfb, 0xf4, 0x7d, 0x67, 0x7d, 0x29,
0xed, 0xd3, 0x44, 0x50, 0x57, 0x1d, 0x51, 0x11, 0x4f, 0x6c, 0x78, 0x1d, 0x14, 0x3d, 0xc2, 0xed, 0x6d, 0xac, 0x4d, 0xfd, 0x28, 0xab, 0xaa, 0x19, 0x68, 0x15, 0x94, 0xed, 0xb0, 0x4c, 0xab, 0x3a,
0x1e, 0xa7, 0xae, 0x3e, 0x0f, 0xbc, 0xe1, 0x11, 0xfe, 0x35, 0xa7, 0xee, 0xfd, 0xc2, 0xcf, 0xf2, 0xc8, 0x27, 0x54, 0xc8, 0xa3, 0x33, 0x70, 0xd6, 0x84, 0xb7, 0x40, 0x31, 0xa1, 0x7d, 0x9a, 0x08,
0x67, 0x90, 0x80, 0xf2, 0x91, 0xe3, 0x50, 0xce, 0x4f, 0x7b, 0x71, 0x40, 0xff, 0xa3, 0xce, 0x0e, 0xea, 0xca, 0x23, 0x2a, 0xe2, 0xa9, 0x0d, 0x6f, 0x82, 0xa2, 0x47, 0xb8, 0xdd, 0xe3, 0xd4, 0x55,
0x40, 0x85, 0x0b, 0x96, 0x10, 0x8f, 0xda, 0x67, 0x74, 0x68, 0xaa, 0x4d, 0xd7, 0x8e, 0xf1, 0x3f, 0xe7, 0x81, 0x37, 0x3c, 0xc2, 0xbf, 0xe6, 0xd4, 0x7d, 0x50, 0xf8, 0x29, 0x7b, 0xd3, 0x11, 0x50,
0xa5, 0x43, 0x8e, 0x67, 0x0d, 0x8d, 0x68, 0xb7, 0xdf, 0x8f, 0xb6, 0x73, 0x1f, 0x46, 0xdb, 0xb9, 0x3e, 0x74, 0x1c, 0xca, 0xf9, 0xf3, 0x5e, 0x1c, 0xd0, 0xff, 0xc8, 0xb3, 0x7d, 0x60, 0x70, 0xc1,
0xbf, 0x46, 0xdb, 0xb9, 0x5f, 0xce, 0xb7, 0x57, 0x3e, 0x9c, 0x6f, 0xaf, 0xfc, 0x71, 0xbe, 0xbd, 0x12, 0xe2, 0x51, 0xfb, 0x9c, 0x0e, 0x75, 0xb6, 0xa9, 0xdc, 0xd1, 0xfe, 0x2f, 0xe8, 0x90, 0xe3,
0xf2, 0xed, 0xee, 0xcc, 0xb5, 0x15, 0x5d, 0x92, 0x70, 0x9f, 0xb7, 0xa6, 0xff, 0xfa, 0x03, 0xf5, 0x79, 0x43, 0x21, 0x2c, 0xeb, 0xf5, 0x68, 0x3b, 0xf7, 0x66, 0xb4, 0x9d, 0xfb, 0x6b, 0xb4, 0x9d,
0xb7, 0xaf, 0x2e, 0x6f, 0x67, 0x5d, 0xfd, 0xb9, 0xdf, 0xfd, 0x27, 0x00, 0x00, 0xff, 0xff, 0x17, 0xfb, 0xf9, 0xed, 0xf6, 0xca, 0x9b, 0xb7, 0xdb, 0x2b, 0x7f, 0xbc, 0xdd, 0x5e, 0xf9, 0xb6, 0x35,
0xd8, 0xae, 0xb6, 0x0b, 0x0c, 0x00, 0x00, 0x77, 0x6d, 0x45, 0x97, 0x24, 0xdc, 0xe7, 0xed, 0xd9, 0xff, 0x82, 0x81, 0xfc, 0x67, 0x20, 0x2f,
0x6f, 0x67, 0x5d, 0xbe, 0xf2, 0xef, 0xfd, 0x1b, 0x00, 0x00, 0xff, 0xff, 0x21, 0x0d, 0xbd, 0x5b,
0x37, 0x0c, 0x00, 0x00,
} }
func (m *Params) Marshal() (dAtA []byte, err error) { func (m *Params) Marshal() (dAtA []byte, err error) {
@ -628,22 +630,32 @@ func (m *Params) MarshalToSizedBuffer(dAtA []byte) (int, error) {
_ = i _ = i
var l int var l int
_ = l _ = l
{
size, err := m.ChainConfig.MarshalToSizedBuffer(dAtA[:i])
if err != nil {
return 0, err
}
i -= size
i = encodeVarintEvm(dAtA, i, uint64(size))
}
i--
dAtA[i] = 0x2a
if len(m.ExtraEIPs) > 0 { if len(m.ExtraEIPs) > 0 {
dAtA2 := make([]byte, len(m.ExtraEIPs)*10) dAtA3 := make([]byte, len(m.ExtraEIPs)*10)
var j1 int var j2 int
for _, num1 := range m.ExtraEIPs { for _, num1 := range m.ExtraEIPs {
num := uint64(num1) num := uint64(num1)
for num >= 1<<7 { for num >= 1<<7 {
dAtA2[j1] = uint8(uint64(num)&0x7f | 0x80) dAtA3[j2] = uint8(uint64(num)&0x7f | 0x80)
num >>= 7 num >>= 7
j1++ j2++
} }
dAtA2[j1] = uint8(num) dAtA3[j2] = uint8(num)
j1++ j2++
} }
i -= j1 i -= j2
copy(dAtA[i:], dAtA2[:j1]) copy(dAtA[i:], dAtA3[:j2])
i = encodeVarintEvm(dAtA, i, uint64(j1)) i = encodeVarintEvm(dAtA, i, uint64(j2))
i-- i--
dAtA[i] = 0x22 dAtA[i] = 0x22
} }
@ -697,118 +709,140 @@ func (m *ChainConfig) MarshalToSizedBuffer(dAtA []byte) (int, error) {
_ = i _ = i
var l int var l int
_ = l _ = l
{ if m.CatalystBlock != nil {
size := m.CatalystBlock.Size() {
i -= size size := m.CatalystBlock.Size()
if _, err := m.CatalystBlock.MarshalTo(dAtA[i:]); err != nil { i -= size
return 0, err if _, err := m.CatalystBlock.MarshalTo(dAtA[i:]); err != nil {
return 0, err
}
i = encodeVarintEvm(dAtA, i, uint64(size))
} }
i = encodeVarintEvm(dAtA, i, uint64(size)) i--
dAtA[i] = 0x1
i--
dAtA[i] = 0x82
} }
i-- if m.EWASMBlock != nil {
dAtA[i] = 0x1 {
i-- size := m.EWASMBlock.Size()
dAtA[i] = 0x82 i -= size
{ if _, err := m.EWASMBlock.MarshalTo(dAtA[i:]); err != nil {
size := m.EWASMBlock.Size() return 0, err
i -= size }
if _, err := m.EWASMBlock.MarshalTo(dAtA[i:]); err != nil { i = encodeVarintEvm(dAtA, i, uint64(size))
return 0, err
} }
i = encodeVarintEvm(dAtA, i, uint64(size)) i--
dAtA[i] = 0x7a
} }
i-- if m.YoloV3Block != nil {
dAtA[i] = 0x7a {
{ size := m.YoloV3Block.Size()
size := m.YoloV3Block.Size() i -= size
i -= size if _, err := m.YoloV3Block.MarshalTo(dAtA[i:]); err != nil {
if _, err := m.YoloV3Block.MarshalTo(dAtA[i:]); err != nil { return 0, err
return 0, err }
i = encodeVarintEvm(dAtA, i, uint64(size))
} }
i = encodeVarintEvm(dAtA, i, uint64(size)) i--
dAtA[i] = 0x72
} }
i-- if m.BerlinBlock != nil {
dAtA[i] = 0x72 {
{ size := m.BerlinBlock.Size()
size := m.BerlinBlock.Size() i -= size
i -= size if _, err := m.BerlinBlock.MarshalTo(dAtA[i:]); err != nil {
if _, err := m.BerlinBlock.MarshalTo(dAtA[i:]); err != nil { return 0, err
return 0, err }
i = encodeVarintEvm(dAtA, i, uint64(size))
} }
i = encodeVarintEvm(dAtA, i, uint64(size)) i--
dAtA[i] = 0x6a
} }
i-- if m.MuirGlacierBlock != nil {
dAtA[i] = 0x6a {
{ size := m.MuirGlacierBlock.Size()
size := m.MuirGlacierBlock.Size() i -= size
i -= size if _, err := m.MuirGlacierBlock.MarshalTo(dAtA[i:]); err != nil {
if _, err := m.MuirGlacierBlock.MarshalTo(dAtA[i:]); err != nil { return 0, err
return 0, err }
i = encodeVarintEvm(dAtA, i, uint64(size))
} }
i = encodeVarintEvm(dAtA, i, uint64(size)) i--
dAtA[i] = 0x62
} }
i-- if m.IstanbulBlock != nil {
dAtA[i] = 0x62 {
{ size := m.IstanbulBlock.Size()
size := m.IstanbulBlock.Size() i -= size
i -= size if _, err := m.IstanbulBlock.MarshalTo(dAtA[i:]); err != nil {
if _, err := m.IstanbulBlock.MarshalTo(dAtA[i:]); err != nil { return 0, err
return 0, err }
i = encodeVarintEvm(dAtA, i, uint64(size))
} }
i = encodeVarintEvm(dAtA, i, uint64(size)) i--
dAtA[i] = 0x5a
} }
i-- if m.PetersburgBlock != nil {
dAtA[i] = 0x5a {
{ size := m.PetersburgBlock.Size()
size := m.PetersburgBlock.Size() i -= size
i -= size if _, err := m.PetersburgBlock.MarshalTo(dAtA[i:]); err != nil {
if _, err := m.PetersburgBlock.MarshalTo(dAtA[i:]); err != nil { return 0, err
return 0, err }
i = encodeVarintEvm(dAtA, i, uint64(size))
} }
i = encodeVarintEvm(dAtA, i, uint64(size)) i--
dAtA[i] = 0x52
} }
i-- if m.ConstantinopleBlock != nil {
dAtA[i] = 0x52 {
{ size := m.ConstantinopleBlock.Size()
size := m.ConstantinopleBlock.Size() i -= size
i -= size if _, err := m.ConstantinopleBlock.MarshalTo(dAtA[i:]); err != nil {
if _, err := m.ConstantinopleBlock.MarshalTo(dAtA[i:]); err != nil { return 0, err
return 0, err }
i = encodeVarintEvm(dAtA, i, uint64(size))
} }
i = encodeVarintEvm(dAtA, i, uint64(size)) i--
dAtA[i] = 0x4a
} }
i-- if m.ByzantiumBlock != nil {
dAtA[i] = 0x4a {
{ size := m.ByzantiumBlock.Size()
size := m.ByzantiumBlock.Size() i -= size
i -= size if _, err := m.ByzantiumBlock.MarshalTo(dAtA[i:]); err != nil {
if _, err := m.ByzantiumBlock.MarshalTo(dAtA[i:]); err != nil { return 0, err
return 0, err }
i = encodeVarintEvm(dAtA, i, uint64(size))
} }
i = encodeVarintEvm(dAtA, i, uint64(size)) i--
dAtA[i] = 0x42
} }
i-- if m.EIP158Block != nil {
dAtA[i] = 0x42 {
{ size := m.EIP158Block.Size()
size := m.EIP158Block.Size() i -= size
i -= size if _, err := m.EIP158Block.MarshalTo(dAtA[i:]); err != nil {
if _, err := m.EIP158Block.MarshalTo(dAtA[i:]); err != nil { return 0, err
return 0, err }
i = encodeVarintEvm(dAtA, i, uint64(size))
} }
i = encodeVarintEvm(dAtA, i, uint64(size)) i--
dAtA[i] = 0x3a
} }
i-- if m.EIP155Block != nil {
dAtA[i] = 0x3a {
{ size := m.EIP155Block.Size()
size := m.EIP155Block.Size() i -= size
i -= size if _, err := m.EIP155Block.MarshalTo(dAtA[i:]); err != nil {
if _, err := m.EIP155Block.MarshalTo(dAtA[i:]); err != nil { return 0, err
return 0, err }
i = encodeVarintEvm(dAtA, i, uint64(size))
} }
i = encodeVarintEvm(dAtA, i, uint64(size)) i--
dAtA[i] = 0x32
} }
i--
dAtA[i] = 0x32
if len(m.EIP150Hash) > 0 { if len(m.EIP150Hash) > 0 {
i -= len(m.EIP150Hash) i -= len(m.EIP150Hash)
copy(dAtA[i:], m.EIP150Hash) copy(dAtA[i:], m.EIP150Hash)
@ -816,16 +850,18 @@ func (m *ChainConfig) MarshalToSizedBuffer(dAtA []byte) (int, error) {
i-- i--
dAtA[i] = 0x2a dAtA[i] = 0x2a
} }
{ if m.EIP150Block != nil {
size := m.EIP150Block.Size() {
i -= size size := m.EIP150Block.Size()
if _, err := m.EIP150Block.MarshalTo(dAtA[i:]); err != nil { i -= size
return 0, err if _, err := m.EIP150Block.MarshalTo(dAtA[i:]); err != nil {
return 0, err
}
i = encodeVarintEvm(dAtA, i, uint64(size))
} }
i = encodeVarintEvm(dAtA, i, uint64(size)) i--
dAtA[i] = 0x22
} }
i--
dAtA[i] = 0x22
if m.DAOForkSupport { if m.DAOForkSupport {
i-- i--
if m.DAOForkSupport { if m.DAOForkSupport {
@ -836,26 +872,30 @@ func (m *ChainConfig) MarshalToSizedBuffer(dAtA []byte) (int, error) {
i-- i--
dAtA[i] = 0x18 dAtA[i] = 0x18
} }
{ if m.DAOForkBlock != nil {
size := m.DAOForkBlock.Size() {
i -= size size := m.DAOForkBlock.Size()
if _, err := m.DAOForkBlock.MarshalTo(dAtA[i:]); err != nil { i -= size
return 0, err if _, err := m.DAOForkBlock.MarshalTo(dAtA[i:]); err != nil {
return 0, err
}
i = encodeVarintEvm(dAtA, i, uint64(size))
} }
i = encodeVarintEvm(dAtA, i, uint64(size)) i--
dAtA[i] = 0x12
} }
i-- if m.HomesteadBlock != nil {
dAtA[i] = 0x12 {
{ size := m.HomesteadBlock.Size()
size := m.HomesteadBlock.Size() i -= size
i -= size if _, err := m.HomesteadBlock.MarshalTo(dAtA[i:]); err != nil {
if _, err := m.HomesteadBlock.MarshalTo(dAtA[i:]); err != nil { return 0, err
return 0, err }
i = encodeVarintEvm(dAtA, i, uint64(size))
} }
i = encodeVarintEvm(dAtA, i, uint64(size)) i--
dAtA[i] = 0xa
} }
i--
dAtA[i] = 0xa
return len(dAtA) - i, nil return len(dAtA) - i, nil
} }
@ -1167,6 +1207,8 @@ func (m *Params) Size() (n int) {
} }
n += 1 + sovEvm(uint64(l)) + l n += 1 + sovEvm(uint64(l)) + l
} }
l = m.ChainConfig.Size()
n += 1 + l + sovEvm(uint64(l))
return n return n
} }
@ -1176,41 +1218,69 @@ func (m *ChainConfig) Size() (n int) {
} }
var l int var l int
_ = l _ = l
l = m.HomesteadBlock.Size() if m.HomesteadBlock != nil {
n += 1 + l + sovEvm(uint64(l)) l = m.HomesteadBlock.Size()
l = m.DAOForkBlock.Size() n += 1 + l + sovEvm(uint64(l))
n += 1 + l + sovEvm(uint64(l)) }
if m.DAOForkBlock != nil {
l = m.DAOForkBlock.Size()
n += 1 + l + sovEvm(uint64(l))
}
if m.DAOForkSupport { if m.DAOForkSupport {
n += 2 n += 2
} }
l = m.EIP150Block.Size() if m.EIP150Block != nil {
n += 1 + l + sovEvm(uint64(l)) l = m.EIP150Block.Size()
n += 1 + l + sovEvm(uint64(l))
}
l = len(m.EIP150Hash) l = len(m.EIP150Hash)
if l > 0 { if l > 0 {
n += 1 + l + sovEvm(uint64(l)) n += 1 + l + sovEvm(uint64(l))
} }
l = m.EIP155Block.Size() if m.EIP155Block != nil {
n += 1 + l + sovEvm(uint64(l)) l = m.EIP155Block.Size()
l = m.EIP158Block.Size() n += 1 + l + sovEvm(uint64(l))
n += 1 + l + sovEvm(uint64(l)) }
l = m.ByzantiumBlock.Size() if m.EIP158Block != nil {
n += 1 + l + sovEvm(uint64(l)) l = m.EIP158Block.Size()
l = m.ConstantinopleBlock.Size() n += 1 + l + sovEvm(uint64(l))
n += 1 + l + sovEvm(uint64(l)) }
l = m.PetersburgBlock.Size() if m.ByzantiumBlock != nil {
n += 1 + l + sovEvm(uint64(l)) l = m.ByzantiumBlock.Size()
l = m.IstanbulBlock.Size() n += 1 + l + sovEvm(uint64(l))
n += 1 + l + sovEvm(uint64(l)) }
l = m.MuirGlacierBlock.Size() if m.ConstantinopleBlock != nil {
n += 1 + l + sovEvm(uint64(l)) l = m.ConstantinopleBlock.Size()
l = m.BerlinBlock.Size() n += 1 + l + sovEvm(uint64(l))
n += 1 + l + sovEvm(uint64(l)) }
l = m.YoloV3Block.Size() if m.PetersburgBlock != nil {
n += 1 + l + sovEvm(uint64(l)) l = m.PetersburgBlock.Size()
l = m.EWASMBlock.Size() n += 1 + l + sovEvm(uint64(l))
n += 1 + l + sovEvm(uint64(l)) }
l = m.CatalystBlock.Size() if m.IstanbulBlock != nil {
n += 2 + l + sovEvm(uint64(l)) l = m.IstanbulBlock.Size()
n += 1 + l + sovEvm(uint64(l))
}
if m.MuirGlacierBlock != nil {
l = m.MuirGlacierBlock.Size()
n += 1 + l + sovEvm(uint64(l))
}
if m.BerlinBlock != nil {
l = m.BerlinBlock.Size()
n += 1 + l + sovEvm(uint64(l))
}
if m.YoloV3Block != nil {
l = m.YoloV3Block.Size()
n += 1 + l + sovEvm(uint64(l))
}
if m.EWASMBlock != nil {
l = m.EWASMBlock.Size()
n += 1 + l + sovEvm(uint64(l))
}
if m.CatalystBlock != nil {
l = m.CatalystBlock.Size()
n += 2 + l + sovEvm(uint64(l))
}
return n return n
} }
@ -1524,6 +1594,39 @@ func (m *Params) Unmarshal(dAtA []byte) error {
} else { } else {
return fmt.Errorf("proto: wrong wireType = %d for field ExtraEIPs", wireType) return fmt.Errorf("proto: wrong wireType = %d for field ExtraEIPs", wireType)
} }
case 5:
if wireType != 2 {
return fmt.Errorf("proto: wrong wireType = %d for field ChainConfig", wireType)
}
var msglen int
for shift := uint(0); ; shift += 7 {
if shift >= 64 {
return ErrIntOverflowEvm
}
if iNdEx >= l {
return io.ErrUnexpectedEOF
}
b := dAtA[iNdEx]
iNdEx++
msglen |= int(b&0x7F) << shift
if b < 0x80 {
break
}
}
if msglen < 0 {
return ErrInvalidLengthEvm
}
postIndex := iNdEx + msglen
if postIndex < 0 {
return ErrInvalidLengthEvm
}
if postIndex > l {
return io.ErrUnexpectedEOF
}
if err := m.ChainConfig.Unmarshal(dAtA[iNdEx:postIndex]); err != nil {
return err
}
iNdEx = postIndex
default: default:
iNdEx = preIndex iNdEx = preIndex
skippy, err := skipEvm(dAtA[iNdEx:]) skippy, err := skipEvm(dAtA[iNdEx:])
@ -1604,6 +1707,8 @@ func (m *ChainConfig) Unmarshal(dAtA []byte) error {
if postIndex > l { if postIndex > l {
return io.ErrUnexpectedEOF return io.ErrUnexpectedEOF
} }
var v github_com_cosmos_cosmos_sdk_types.Int
m.HomesteadBlock = &v
if err := m.HomesteadBlock.Unmarshal(dAtA[iNdEx:postIndex]); err != nil { if err := m.HomesteadBlock.Unmarshal(dAtA[iNdEx:postIndex]); err != nil {
return err return err
} }
@ -1638,6 +1743,8 @@ func (m *ChainConfig) Unmarshal(dAtA []byte) error {
if postIndex > l { if postIndex > l {
return io.ErrUnexpectedEOF return io.ErrUnexpectedEOF
} }
var v github_com_cosmos_cosmos_sdk_types.Int
m.DAOForkBlock = &v
if err := m.DAOForkBlock.Unmarshal(dAtA[iNdEx:postIndex]); err != nil { if err := m.DAOForkBlock.Unmarshal(dAtA[iNdEx:postIndex]); err != nil {
return err return err
} }
@ -1692,6 +1799,8 @@ func (m *ChainConfig) Unmarshal(dAtA []byte) error {
if postIndex > l { if postIndex > l {
return io.ErrUnexpectedEOF return io.ErrUnexpectedEOF
} }
var v github_com_cosmos_cosmos_sdk_types.Int
m.EIP150Block = &v
if err := m.EIP150Block.Unmarshal(dAtA[iNdEx:postIndex]); err != nil { if err := m.EIP150Block.Unmarshal(dAtA[iNdEx:postIndex]); err != nil {
return err return err
} }
@ -1758,6 +1867,8 @@ func (m *ChainConfig) Unmarshal(dAtA []byte) error {
if postIndex > l { if postIndex > l {
return io.ErrUnexpectedEOF return io.ErrUnexpectedEOF
} }
var v github_com_cosmos_cosmos_sdk_types.Int
m.EIP155Block = &v
if err := m.EIP155Block.Unmarshal(dAtA[iNdEx:postIndex]); err != nil { if err := m.EIP155Block.Unmarshal(dAtA[iNdEx:postIndex]); err != nil {
return err return err
} }
@ -1792,6 +1903,8 @@ func (m *ChainConfig) Unmarshal(dAtA []byte) error {
if postIndex > l { if postIndex > l {
return io.ErrUnexpectedEOF return io.ErrUnexpectedEOF
} }
var v github_com_cosmos_cosmos_sdk_types.Int
m.EIP158Block = &v
if err := m.EIP158Block.Unmarshal(dAtA[iNdEx:postIndex]); err != nil { if err := m.EIP158Block.Unmarshal(dAtA[iNdEx:postIndex]); err != nil {
return err return err
} }
@ -1826,6 +1939,8 @@ func (m *ChainConfig) Unmarshal(dAtA []byte) error {
if postIndex > l { if postIndex > l {
return io.ErrUnexpectedEOF return io.ErrUnexpectedEOF
} }
var v github_com_cosmos_cosmos_sdk_types.Int
m.ByzantiumBlock = &v
if err := m.ByzantiumBlock.Unmarshal(dAtA[iNdEx:postIndex]); err != nil { if err := m.ByzantiumBlock.Unmarshal(dAtA[iNdEx:postIndex]); err != nil {
return err return err
} }
@ -1860,6 +1975,8 @@ func (m *ChainConfig) Unmarshal(dAtA []byte) error {
if postIndex > l { if postIndex > l {
return io.ErrUnexpectedEOF return io.ErrUnexpectedEOF
} }
var v github_com_cosmos_cosmos_sdk_types.Int
m.ConstantinopleBlock = &v
if err := m.ConstantinopleBlock.Unmarshal(dAtA[iNdEx:postIndex]); err != nil { if err := m.ConstantinopleBlock.Unmarshal(dAtA[iNdEx:postIndex]); err != nil {
return err return err
} }
@ -1894,6 +2011,8 @@ func (m *ChainConfig) Unmarshal(dAtA []byte) error {
if postIndex > l { if postIndex > l {
return io.ErrUnexpectedEOF return io.ErrUnexpectedEOF
} }
var v github_com_cosmos_cosmos_sdk_types.Int
m.PetersburgBlock = &v
if err := m.PetersburgBlock.Unmarshal(dAtA[iNdEx:postIndex]); err != nil { if err := m.PetersburgBlock.Unmarshal(dAtA[iNdEx:postIndex]); err != nil {
return err return err
} }
@ -1928,6 +2047,8 @@ func (m *ChainConfig) Unmarshal(dAtA []byte) error {
if postIndex > l { if postIndex > l {
return io.ErrUnexpectedEOF return io.ErrUnexpectedEOF
} }
var v github_com_cosmos_cosmos_sdk_types.Int
m.IstanbulBlock = &v
if err := m.IstanbulBlock.Unmarshal(dAtA[iNdEx:postIndex]); err != nil { if err := m.IstanbulBlock.Unmarshal(dAtA[iNdEx:postIndex]); err != nil {
return err return err
} }
@ -1962,6 +2083,8 @@ func (m *ChainConfig) Unmarshal(dAtA []byte) error {
if postIndex > l { if postIndex > l {
return io.ErrUnexpectedEOF return io.ErrUnexpectedEOF
} }
var v github_com_cosmos_cosmos_sdk_types.Int
m.MuirGlacierBlock = &v
if err := m.MuirGlacierBlock.Unmarshal(dAtA[iNdEx:postIndex]); err != nil { if err := m.MuirGlacierBlock.Unmarshal(dAtA[iNdEx:postIndex]); err != nil {
return err return err
} }
@ -1996,6 +2119,8 @@ func (m *ChainConfig) Unmarshal(dAtA []byte) error {
if postIndex > l { if postIndex > l {
return io.ErrUnexpectedEOF return io.ErrUnexpectedEOF
} }
var v github_com_cosmos_cosmos_sdk_types.Int
m.BerlinBlock = &v
if err := m.BerlinBlock.Unmarshal(dAtA[iNdEx:postIndex]); err != nil { if err := m.BerlinBlock.Unmarshal(dAtA[iNdEx:postIndex]); err != nil {
return err return err
} }
@ -2030,6 +2155,8 @@ func (m *ChainConfig) Unmarshal(dAtA []byte) error {
if postIndex > l { if postIndex > l {
return io.ErrUnexpectedEOF return io.ErrUnexpectedEOF
} }
var v github_com_cosmos_cosmos_sdk_types.Int
m.YoloV3Block = &v
if err := m.YoloV3Block.Unmarshal(dAtA[iNdEx:postIndex]); err != nil { if err := m.YoloV3Block.Unmarshal(dAtA[iNdEx:postIndex]); err != nil {
return err return err
} }
@ -2064,6 +2191,8 @@ func (m *ChainConfig) Unmarshal(dAtA []byte) error {
if postIndex > l { if postIndex > l {
return io.ErrUnexpectedEOF return io.ErrUnexpectedEOF
} }
var v github_com_cosmos_cosmos_sdk_types.Int
m.EWASMBlock = &v
if err := m.EWASMBlock.Unmarshal(dAtA[iNdEx:postIndex]); err != nil { if err := m.EWASMBlock.Unmarshal(dAtA[iNdEx:postIndex]); err != nil {
return err return err
} }
@ -2098,6 +2227,8 @@ func (m *ChainConfig) Unmarshal(dAtA []byte) error {
if postIndex > l { if postIndex > l {
return io.ErrUnexpectedEOF return io.ErrUnexpectedEOF
} }
var v github_com_cosmos_cosmos_sdk_types.Int
m.CatalystBlock = &v
if err := m.CatalystBlock.Unmarshal(dAtA[iNdEx:postIndex]); err != nil { if err := m.CatalystBlock.Unmarshal(dAtA[iNdEx:postIndex]); err != nil {
return err return err
} }

View File

@ -24,10 +24,9 @@ func (ga GenesisAccount) Validate() error {
// chain config values. // chain config values.
func DefaultGenesisState() *GenesisState { func DefaultGenesisState() *GenesisState {
return &GenesisState{ return &GenesisState{
Accounts: []GenesisAccount{}, Accounts: []GenesisAccount{},
TxsLogs: []TransactionLogs{}, TxsLogs: []TransactionLogs{},
ChainConfig: DefaultChainConfig(), Params: DefaultParams(),
Params: DefaultParams(),
} }
} }
@ -58,9 +57,5 @@ func (gs GenesisState) Validate() error {
seenTxs[tx.Hash] = true seenTxs[tx.Hash] = true
} }
if err := gs.ChainConfig.Validate(); err != nil {
return err
}
return gs.Params.Validate() return gs.Params.Validate()
} }

View File

@ -27,8 +27,6 @@ const _ = proto.GoGoProtoPackageIsVersion3 // please upgrade the proto package
type GenesisState struct { type GenesisState struct {
// accounts is an array containing the ethereum genesis accounts. // accounts is an array containing the ethereum genesis accounts.
Accounts []GenesisAccount `protobuf:"bytes,1,rep,name=accounts,proto3" json:"accounts"` Accounts []GenesisAccount `protobuf:"bytes,1,rep,name=accounts,proto3" json:"accounts"`
// chain_config defines the Ethereum chain configuration.
ChainConfig ChainConfig `protobuf:"bytes,2,opt,name=chain_config,json=chainConfig,proto3" json:"chain_config" yaml:"chain_config"`
// params defines all the paramaters of the module. // params defines all the paramaters of the module.
Params Params `protobuf:"bytes,3,opt,name=params,proto3" json:"params"` Params Params `protobuf:"bytes,3,opt,name=params,proto3" json:"params"`
TxsLogs []TransactionLogs `protobuf:"bytes,4,rep,name=txs_logs,json=txsLogs,proto3" json:"txs_logs" yaml:"txs_logs"` TxsLogs []TransactionLogs `protobuf:"bytes,4,rep,name=txs_logs,json=txsLogs,proto3" json:"txs_logs" yaml:"txs_logs"`
@ -74,13 +72,6 @@ func (m *GenesisState) GetAccounts() []GenesisAccount {
return nil return nil
} }
func (m *GenesisState) GetChainConfig() ChainConfig {
if m != nil {
return m.ChainConfig
}
return ChainConfig{}
}
func (m *GenesisState) GetParams() Params { func (m *GenesisState) GetParams() Params {
if m != nil { if m != nil {
return m.Params return m.Params
@ -171,33 +162,30 @@ func init() {
} }
var fileDescriptor_8205a12b97b89a87 = []byte{ var fileDescriptor_8205a12b97b89a87 = []byte{
// 406 bytes of a gzipped FileDescriptorProto // 362 bytes of a gzipped FileDescriptorProto
0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0x74, 0x92, 0xb1, 0x8e, 0xda, 0x30, 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0x74, 0x91, 0xb1, 0x4e, 0xc2, 0x40,
0x18, 0xc7, 0x13, 0x40, 0x04, 0x0c, 0x2a, 0x92, 0x5b, 0xb5, 0x11, 0x55, 0x03, 0x4a, 0xab, 0x36, 0x18, 0xc7, 0x7b, 0x42, 0x28, 0x1e, 0x46, 0x92, 0x8b, 0xd1, 0x86, 0xc4, 0x42, 0x1a, 0xa3, 0x9d,
0x53, 0x22, 0xe8, 0x56, 0x75, 0x69, 0x18, 0xca, 0xd0, 0xa1, 0x0a, 0x9d, 0x7a, 0x03, 0x32, 0xc6, 0xda, 0x80, 0x9b, 0x71, 0xb1, 0x8b, 0x0c, 0x0e, 0xa6, 0x38, 0xe9, 0x60, 0x8e, 0x72, 0x69, 0x9b,
0xe7, 0x44, 0x22, 0x71, 0x14, 0x1b, 0x04, 0x6f, 0x70, 0xe3, 0x3d, 0xc7, 0x3d, 0x09, 0x23, 0x23, 0xd0, 0x5e, 0xd3, 0xef, 0x20, 0xf0, 0x06, 0x8e, 0x3e, 0x87, 0x4f, 0xc2, 0xc8, 0xe8, 0x84, 0x06,
0x13, 0x77, 0x82, 0x37, 0xb8, 0x27, 0x38, 0xc5, 0x49, 0xe0, 0x4e, 0xba, 0x6c, 0x8e, 0xf4, 0xfb, 0xde, 0x40, 0x5f, 0xc0, 0xf4, 0x4a, 0x31, 0x26, 0x76, 0xfb, 0xda, 0xfc, 0x7e, 0xff, 0xef, 0xdf,
0xff, 0xfc, 0xcf, 0xe7, 0x0f, 0x7c, 0x21, 0xc2, 0x27, 0x49, 0x18, 0x44, 0xc2, 0x21, 0xab, 0xd0, 0x7e, 0xf8, 0x8c, 0x89, 0x80, 0xa5, 0x51, 0x18, 0x0b, 0x9b, 0x4d, 0x23, 0x7b, 0xda, 0xa5, 0xe3,
0x59, 0x0d, 0xd0, 0x22, 0xf6, 0xd1, 0xc0, 0xa1, 0x24, 0x22, 0x3c, 0xe0, 0x76, 0x9c, 0x30, 0xc1, 0x24, 0xa0, 0x5d, 0xdb, 0x67, 0x31, 0x83, 0x10, 0xac, 0x24, 0xe5, 0x82, 0x93, 0xe3, 0x1d, 0x65,
0xe0, 0xfb, 0x33, 0x65, 0x93, 0x55, 0x68, 0x17, 0x54, 0xf7, 0x1d, 0x65, 0x94, 0x49, 0xc4, 0x49, 0xb1, 0x69, 0x64, 0x15, 0x54, 0xeb, 0xc8, 0xe7, 0x3e, 0x97, 0x88, 0x9d, 0x4d, 0x39, 0xdd, 0xea,
0x4f, 0x19, 0xdd, 0xed, 0x97, 0x38, 0xd3, 0xa8, 0x24, 0xcc, 0x7d, 0x05, 0xb4, 0x7f, 0x67, 0x37, 0x94, 0x64, 0x66, 0xaa, 0x24, 0x8c, 0x6f, 0x84, 0x0f, 0x6e, 0xf3, 0x0d, 0x03, 0x41, 0x05, 0x23,
0x4c, 0x04, 0x12, 0x04, 0x8e, 0x41, 0x03, 0x61, 0xcc, 0x96, 0x91, 0xe0, 0xba, 0xda, 0xaf, 0x5a, 0x7d, 0x5c, 0xa7, 0x9e, 0xc7, 0x27, 0xb1, 0x00, 0x0d, 0x75, 0x2a, 0x66, 0xa3, 0x77, 0x6e, 0xfd,
0xad, 0xe1, 0x57, 0xfb, 0xf5, 0x3b, 0xed, 0x3c, 0xf7, 0x2b, 0xc3, 0xdd, 0xda, 0xf6, 0xd0, 0x53, 0xbf, 0xd3, 0xda, 0x7a, 0x37, 0x39, 0xee, 0x54, 0x17, 0xab, 0xb6, 0xe2, 0xee, 0x6c, 0x72, 0x8d,
0xbc, 0x73, 0x1a, 0x62, 0xd0, 0xc6, 0x3e, 0x0a, 0xa2, 0x29, 0x66, 0xd1, 0x75, 0x40, 0xf5, 0x4a, 0x6b, 0x09, 0x4d, 0x69, 0x04, 0x5a, 0xa5, 0x83, 0xcc, 0x46, 0x4f, 0x2f, 0xcb, 0xb9, 0x97, 0xd4,
0x5f, 0xb5, 0x5a, 0xc3, 0xcf, 0x65, 0xb6, 0x51, 0xca, 0x8e, 0x24, 0xea, 0x7e, 0x4c, 0x55, 0x8f, 0xd6, 0xdf, 0x3a, 0xe4, 0x09, 0xd7, 0xc5, 0x0c, 0x9e, 0xc7, 0xdc, 0x07, 0xad, 0x2a, 0x7b, 0x5c,
0x87, 0xde, 0xdb, 0x0d, 0x0a, 0x17, 0x3f, 0xcc, 0xe7, 0x1a, 0xd3, 0x6b, 0xe1, 0x0b, 0x09, 0x7f, 0x94, 0xf9, 0x0f, 0x29, 0x8d, 0x81, 0x7a, 0x22, 0xe4, 0xf1, 0x1d, 0xf7, 0xc1, 0x39, 0xc9, 0x82,
0x82, 0x7a, 0x8c, 0x12, 0x14, 0x72, 0xbd, 0x2a, 0xf5, 0x46, 0x99, 0xfe, 0xaf, 0xa4, 0xf2, 0x92, 0xbe, 0x56, 0xed, 0xe6, 0x9c, 0x46, 0xe3, 0x2b, 0xa3, 0x88, 0x31, 0x5c, 0x55, 0xcc, 0x20, 0x23,
0x79, 0x06, 0x5e, 0x81, 0x86, 0x58, 0xf3, 0xe9, 0x82, 0x51, 0xae, 0xd7, 0xe4, 0xcf, 0x7e, 0x2b, 0x8c, 0x17, 0x84, 0x0f, 0xff, 0xb6, 0x27, 0x1a, 0x56, 0xe9, 0x68, 0x94, 0x32, 0xc8, 0x3e, 0x1b,
0xcb, 0xff, 0x4b, 0x50, 0xc4, 0x11, 0x16, 0x01, 0x8b, 0xfe, 0x30, 0xca, 0xdd, 0x0f, 0x79, 0xc5, 0x99, 0xfb, 0x6e, 0xf1, 0x48, 0x08, 0xae, 0x7a, 0x7c, 0xc4, 0xb4, 0x3d, 0xf9, 0x5a, 0xce, 0xa4,
0x4e, 0x56, 0xb1, 0xd0, 0x98, 0x9e, 0x26, 0xd6, 0x3c, 0x25, 0xcc, 0x1b, 0x15, 0xbc, 0x79, 0x39, 0x8f, 0x55, 0x10, 0x3c, 0xa5, 0x3e, 0xd3, 0x2a, 0xb2, 0xdc, 0x69, 0x59, 0x39, 0xf9, 0x57, 0x9d,
0x22, 0xa8, 0x03, 0x0d, 0xcd, 0xe7, 0x09, 0xe1, 0xe9, 0x6c, 0x55, 0xab, 0xe9, 0x15, 0x9f, 0x10, 0x66, 0x56, 0xe9, 0xed, 0xa3, 0xad, 0x0e, 0x72, 0xcb, 0x2d, 0x74, 0xc7, 0x59, 0xac, 0x75, 0xb4,
0x82, 0x1a, 0x66, 0x73, 0x22, 0x87, 0xd4, 0xf4, 0xe4, 0x19, 0x8e, 0x81, 0xc6, 0x05, 0x4b, 0x10, 0x5c, 0xeb, 0xe8, 0x73, 0xad, 0xa3, 0xd7, 0x8d, 0xae, 0x2c, 0x37, 0xba, 0xf2, 0xbe, 0xd1, 0x95,
0x25, 0x7a, 0x55, 0x96, 0xfb, 0x54, 0x56, 0x4e, 0x3e, 0x9d, 0xdb, 0x49, 0x2b, 0xdd, 0xdd, 0xf7, 0x47, 0xd3, 0x0f, 0x45, 0x30, 0x19, 0x5a, 0x1e, 0x8f, 0x6c, 0x11, 0xd0, 0x14, 0x42, 0xb0, 0x7f,
0xb4, 0x49, 0x96, 0xf2, 0x8a, 0xb8, 0xeb, 0x6e, 0x8f, 0x86, 0xba, 0x3b, 0x1a, 0xea, 0xc3, 0xd1, 0xef, 0x39, 0x93, 0x17, 0x15, 0xf3, 0x84, 0xc1, 0xb0, 0x26, 0x6f, 0x79, 0xf9, 0x13, 0x00, 0x00,
0x50, 0x6f, 0x4f, 0x86, 0xb2, 0x3b, 0x19, 0xca, 0xfe, 0x64, 0x28, 0xff, 0x2d, 0x1a, 0x08, 0x7f, 0xff, 0xff, 0x0d, 0x4a, 0x1d, 0x9e, 0x43, 0x02, 0x00, 0x00,
0x39, 0xb3, 0x31, 0x0b, 0x1d, 0xe1, 0xa3, 0x84, 0x07, 0xdc, 0xb9, 0x2c, 0xcd, 0x5a, 0xae, 0x8d,
0xd8, 0xc4, 0x84, 0xcf, 0xea, 0x72, 0x61, 0xbe, 0x3f, 0x05, 0x00, 0x00, 0xff, 0xff, 0x92, 0xea,
0xec, 0x05, 0xa8, 0x02, 0x00, 0x00,
} }
func (m *GenesisState) Marshal() (dAtA []byte, err error) { func (m *GenesisState) Marshal() (dAtA []byte, err error) {
@ -244,16 +232,6 @@ func (m *GenesisState) MarshalToSizedBuffer(dAtA []byte) (int, error) {
} }
i-- i--
dAtA[i] = 0x1a dAtA[i] = 0x1a
{
size, err := m.ChainConfig.MarshalToSizedBuffer(dAtA[:i])
if err != nil {
return 0, err
}
i -= size
i = encodeVarintGenesis(dAtA, i, uint64(size))
}
i--
dAtA[i] = 0x12
if len(m.Accounts) > 0 { if len(m.Accounts) > 0 {
for iNdEx := len(m.Accounts) - 1; iNdEx >= 0; iNdEx-- { for iNdEx := len(m.Accounts) - 1; iNdEx >= 0; iNdEx-- {
{ {
@ -345,8 +323,6 @@ func (m *GenesisState) Size() (n int) {
n += 1 + l + sovGenesis(uint64(l)) n += 1 + l + sovGenesis(uint64(l))
} }
} }
l = m.ChainConfig.Size()
n += 1 + l + sovGenesis(uint64(l))
l = m.Params.Size() l = m.Params.Size()
n += 1 + l + sovGenesis(uint64(l)) n += 1 + l + sovGenesis(uint64(l))
if len(m.TxsLogs) > 0 { if len(m.TxsLogs) > 0 {
@ -450,39 +426,6 @@ func (m *GenesisState) Unmarshal(dAtA []byte) error {
return err return err
} }
iNdEx = postIndex iNdEx = postIndex
case 2:
if wireType != 2 {
return fmt.Errorf("proto: wrong wireType = %d for field ChainConfig", wireType)
}
var msglen int
for shift := uint(0); ; shift += 7 {
if shift >= 64 {
return ErrIntOverflowGenesis
}
if iNdEx >= l {
return io.ErrUnexpectedEOF
}
b := dAtA[iNdEx]
iNdEx++
msglen |= int(b&0x7F) << shift
if b < 0x80 {
break
}
}
if msglen < 0 {
return ErrInvalidLengthGenesis
}
postIndex := iNdEx + msglen
if postIndex < 0 {
return ErrInvalidLengthGenesis
}
if postIndex > l {
return io.ErrUnexpectedEOF
}
if err := m.ChainConfig.Unmarshal(dAtA[iNdEx:postIndex]); err != nil {
return err
}
iNdEx = postIndex
case 3: case 3:
if wireType != 2 { if wireType != 2 {
return fmt.Errorf("proto: wrong wireType = %d for field Params", wireType) return fmt.Errorf("proto: wrong wireType = %d for field Params", wireType)

View File

@ -120,8 +120,7 @@ func (suite *GenesisTestSuite) TestValidateGenesis() {
}, },
}, },
}, },
ChainConfig: DefaultChainConfig(), Params: DefaultParams(),
Params: DefaultParams(),
}, },
expPass: true, expPass: true,
}, },
@ -235,16 +234,7 @@ func (suite *GenesisTestSuite) TestValidateGenesis() {
{ {
name: "invalid params", name: "invalid params",
genState: &GenesisState{ genState: &GenesisState{
ChainConfig: DefaultChainConfig(), Params: Params{},
Params: Params{},
},
expPass: false,
},
{
name: "invalid chain config",
genState: &GenesisState{
ChainConfig: ChainConfig{},
Params: DefaultParams(),
}, },
expPass: false, expPass: false,
}, },

View File

@ -23,6 +23,7 @@ var (
ParamStoreKeyEnableCreate = []byte("EnableCreate") ParamStoreKeyEnableCreate = []byte("EnableCreate")
ParamStoreKeyEnableCall = []byte("EnableCall") ParamStoreKeyEnableCall = []byte("EnableCall")
ParamStoreKeyExtraEIPs = []byte("EnableExtraEIPs") ParamStoreKeyExtraEIPs = []byte("EnableExtraEIPs")
ParamStoreKeyChainConfig = []byte("ChainConfig")
) )
// ParamKeyTable returns the parameter key table. // ParamKeyTable returns the parameter key table.
@ -31,12 +32,13 @@ func ParamKeyTable() paramtypes.KeyTable {
} }
// NewParams creates a new Params instance // NewParams creates a new Params instance
func NewParams(evmDenom string, enableCreate, enableCall bool, extraEIPs ...int64) Params { func NewParams(evmDenom string, enableCreate, enableCall bool, config ChainConfig, extraEIPs ...int64) Params {
return Params{ return Params{
EvmDenom: evmDenom, EvmDenom: evmDenom,
EnableCreate: enableCreate, EnableCreate: enableCreate,
EnableCall: enableCall, EnableCall: enableCall,
ExtraEIPs: extraEIPs, ExtraEIPs: extraEIPs,
ChainConfig: config,
} }
} }
@ -47,6 +49,7 @@ func DefaultParams() Params {
EnableCreate: true, EnableCreate: true,
EnableCall: true, EnableCall: true,
ExtraEIPs: []int64{2929, 2200, 1884, 1344}, ExtraEIPs: []int64{2929, 2200, 1884, 1344},
ChainConfig: DefaultChainConfig(),
} }
} }
@ -63,6 +66,7 @@ func (p *Params) ParamSetPairs() paramtypes.ParamSetPairs {
paramtypes.NewParamSetPair(ParamStoreKeyEnableCreate, &p.EnableCreate, validateBool), paramtypes.NewParamSetPair(ParamStoreKeyEnableCreate, &p.EnableCreate, validateBool),
paramtypes.NewParamSetPair(ParamStoreKeyEnableCall, &p.EnableCall, validateBool), paramtypes.NewParamSetPair(ParamStoreKeyEnableCall, &p.EnableCall, validateBool),
paramtypes.NewParamSetPair(ParamStoreKeyExtraEIPs, &p.ExtraEIPs, validateEIPs), paramtypes.NewParamSetPair(ParamStoreKeyExtraEIPs, &p.ExtraEIPs, validateEIPs),
paramtypes.NewParamSetPair(ParamStoreKeyChainConfig, &p.ChainConfig, validateChainConfig),
} }
} }
@ -72,7 +76,11 @@ func (p Params) Validate() error {
return err return err
} }
return validateEIPs(p.ExtraEIPs) if err := validateEIPs(p.ExtraEIPs); err != nil {
return err
}
return p.ChainConfig.Validate()
} }
// EIPs returns the ExtraEips as a int slice // EIPs returns the ExtraEips as a int slice
@ -115,3 +123,12 @@ func validateEIPs(i interface{}) error {
return nil return nil
} }
func validateChainConfig(i interface{}) error {
cfg, ok := i.(ChainConfig)
if !ok {
return fmt.Errorf("invalid chain config type: %T", i)
}
return cfg.Validate()
}

View File

@ -15,7 +15,7 @@ func TestParamsValidate(t *testing.T) {
{"default", DefaultParams(), false}, {"default", DefaultParams(), false},
{ {
"valid", "valid",
NewParams("ara", true, true, 2929, 1884, 1344), NewParams("ara", true, true, DefaultChainConfig(), 2929, 1884, 1344),
false, false,
}, },
{ {
@ -38,6 +38,11 @@ func TestParamsValidate(t *testing.T) {
}, },
true, true,
}, },
{
"invalid chain config",
NewParams("ara", true, true, ChainConfig{}, 2929, 1884, 1344),
false,
},
} }
for _, tc := range testCases { for _, tc := range testCases {

View File

@ -947,89 +947,6 @@ func (m *QueryParamsResponse) GetParams() Params {
return Params{} return Params{}
} }
// QueryChainConfigRequest defines the request type for querying x/evm chain configuration.
type QueryChainConfigRequest struct {
}
func (m *QueryChainConfigRequest) Reset() { *m = QueryChainConfigRequest{} }
func (m *QueryChainConfigRequest) String() string { return proto.CompactTextString(m) }
func (*QueryChainConfigRequest) ProtoMessage() {}
func (*QueryChainConfigRequest) Descriptor() ([]byte, []int) {
return fileDescriptor_8bbc79ec2b6c5cb2, []int{20}
}
func (m *QueryChainConfigRequest) XXX_Unmarshal(b []byte) error {
return m.Unmarshal(b)
}
func (m *QueryChainConfigRequest) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
if deterministic {
return xxx_messageInfo_QueryChainConfigRequest.Marshal(b, m, deterministic)
} else {
b = b[:cap(b)]
n, err := m.MarshalToSizedBuffer(b)
if err != nil {
return nil, err
}
return b[:n], nil
}
}
func (m *QueryChainConfigRequest) XXX_Merge(src proto.Message) {
xxx_messageInfo_QueryChainConfigRequest.Merge(m, src)
}
func (m *QueryChainConfigRequest) XXX_Size() int {
return m.Size()
}
func (m *QueryChainConfigRequest) XXX_DiscardUnknown() {
xxx_messageInfo_QueryChainConfigRequest.DiscardUnknown(m)
}
var xxx_messageInfo_QueryChainConfigRequest proto.InternalMessageInfo
// QueryChainConfigResponse defines the response type for querying x/evm chain configuration.
type QueryChainConfigResponse struct {
// ChainConfig define the evm chain configuration.
Config ChainConfig `protobuf:"bytes,1,opt,name=config,proto3" json:"config"`
}
func (m *QueryChainConfigResponse) Reset() { *m = QueryChainConfigResponse{} }
func (m *QueryChainConfigResponse) String() string { return proto.CompactTextString(m) }
func (*QueryChainConfigResponse) ProtoMessage() {}
func (*QueryChainConfigResponse) Descriptor() ([]byte, []int) {
return fileDescriptor_8bbc79ec2b6c5cb2, []int{21}
}
func (m *QueryChainConfigResponse) XXX_Unmarshal(b []byte) error {
return m.Unmarshal(b)
}
func (m *QueryChainConfigResponse) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
if deterministic {
return xxx_messageInfo_QueryChainConfigResponse.Marshal(b, m, deterministic)
} else {
b = b[:cap(b)]
n, err := m.MarshalToSizedBuffer(b)
if err != nil {
return nil, err
}
return b[:n], nil
}
}
func (m *QueryChainConfigResponse) XXX_Merge(src proto.Message) {
xxx_messageInfo_QueryChainConfigResponse.Merge(m, src)
}
func (m *QueryChainConfigResponse) XXX_Size() int {
return m.Size()
}
func (m *QueryChainConfigResponse) XXX_DiscardUnknown() {
xxx_messageInfo_QueryChainConfigResponse.DiscardUnknown(m)
}
var xxx_messageInfo_QueryChainConfigResponse proto.InternalMessageInfo
func (m *QueryChainConfigResponse) GetConfig() ChainConfig {
if m != nil {
return m.Config
}
return ChainConfig{}
}
// QueryStaticCallRequest defines static call request // QueryStaticCallRequest defines static call request
type QueryStaticCallRequest struct { type QueryStaticCallRequest struct {
// address is the ethereum contract hex address to for static call. // address is the ethereum contract hex address to for static call.
@ -1042,7 +959,7 @@ func (m *QueryStaticCallRequest) Reset() { *m = QueryStaticCallRequest{}
func (m *QueryStaticCallRequest) String() string { return proto.CompactTextString(m) } func (m *QueryStaticCallRequest) String() string { return proto.CompactTextString(m) }
func (*QueryStaticCallRequest) ProtoMessage() {} func (*QueryStaticCallRequest) ProtoMessage() {}
func (*QueryStaticCallRequest) Descriptor() ([]byte, []int) { func (*QueryStaticCallRequest) Descriptor() ([]byte, []int) {
return fileDescriptor_8bbc79ec2b6c5cb2, []int{22} return fileDescriptor_8bbc79ec2b6c5cb2, []int{20}
} }
func (m *QueryStaticCallRequest) XXX_Unmarshal(b []byte) error { func (m *QueryStaticCallRequest) XXX_Unmarshal(b []byte) error {
return m.Unmarshal(b) return m.Unmarshal(b)
@ -1094,7 +1011,7 @@ func (m *QueryStaticCallResponse) Reset() { *m = QueryStaticCallResponse
func (m *QueryStaticCallResponse) String() string { return proto.CompactTextString(m) } func (m *QueryStaticCallResponse) String() string { return proto.CompactTextString(m) }
func (*QueryStaticCallResponse) ProtoMessage() {} func (*QueryStaticCallResponse) ProtoMessage() {}
func (*QueryStaticCallResponse) Descriptor() ([]byte, []int) { func (*QueryStaticCallResponse) Descriptor() ([]byte, []int) {
return fileDescriptor_8bbc79ec2b6c5cb2, []int{23} return fileDescriptor_8bbc79ec2b6c5cb2, []int{21}
} }
func (m *QueryStaticCallResponse) XXX_Unmarshal(b []byte) error { func (m *QueryStaticCallResponse) XXX_Unmarshal(b []byte) error {
return m.Unmarshal(b) return m.Unmarshal(b)
@ -1140,7 +1057,7 @@ func (m *EthCallRequest) Reset() { *m = EthCallRequest{} }
func (m *EthCallRequest) String() string { return proto.CompactTextString(m) } func (m *EthCallRequest) String() string { return proto.CompactTextString(m) }
func (*EthCallRequest) ProtoMessage() {} func (*EthCallRequest) ProtoMessage() {}
func (*EthCallRequest) Descriptor() ([]byte, []int) { func (*EthCallRequest) Descriptor() ([]byte, []int) {
return fileDescriptor_8bbc79ec2b6c5cb2, []int{24} return fileDescriptor_8bbc79ec2b6c5cb2, []int{22}
} }
func (m *EthCallRequest) XXX_Unmarshal(b []byte) error { func (m *EthCallRequest) XXX_Unmarshal(b []byte) error {
return m.Unmarshal(b) return m.Unmarshal(b)
@ -1197,8 +1114,6 @@ func init() {
proto.RegisterType((*QueryBlockBloomResponse)(nil), "ethermint.evm.v1alpha1.QueryBlockBloomResponse") proto.RegisterType((*QueryBlockBloomResponse)(nil), "ethermint.evm.v1alpha1.QueryBlockBloomResponse")
proto.RegisterType((*QueryParamsRequest)(nil), "ethermint.evm.v1alpha1.QueryParamsRequest") proto.RegisterType((*QueryParamsRequest)(nil), "ethermint.evm.v1alpha1.QueryParamsRequest")
proto.RegisterType((*QueryParamsResponse)(nil), "ethermint.evm.v1alpha1.QueryParamsResponse") proto.RegisterType((*QueryParamsResponse)(nil), "ethermint.evm.v1alpha1.QueryParamsResponse")
proto.RegisterType((*QueryChainConfigRequest)(nil), "ethermint.evm.v1alpha1.QueryChainConfigRequest")
proto.RegisterType((*QueryChainConfigResponse)(nil), "ethermint.evm.v1alpha1.QueryChainConfigResponse")
proto.RegisterType((*QueryStaticCallRequest)(nil), "ethermint.evm.v1alpha1.QueryStaticCallRequest") proto.RegisterType((*QueryStaticCallRequest)(nil), "ethermint.evm.v1alpha1.QueryStaticCallRequest")
proto.RegisterType((*QueryStaticCallResponse)(nil), "ethermint.evm.v1alpha1.QueryStaticCallResponse") proto.RegisterType((*QueryStaticCallResponse)(nil), "ethermint.evm.v1alpha1.QueryStaticCallResponse")
proto.RegisterType((*EthCallRequest)(nil), "ethermint.evm.v1alpha1.EthCallRequest") proto.RegisterType((*EthCallRequest)(nil), "ethermint.evm.v1alpha1.EthCallRequest")
@ -1209,85 +1124,81 @@ func init() {
} }
var fileDescriptor_8bbc79ec2b6c5cb2 = []byte{ var fileDescriptor_8bbc79ec2b6c5cb2 = []byte{
// 1247 bytes of a gzipped FileDescriptorProto // 1179 bytes of a gzipped FileDescriptorProto
0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0xac, 0x97, 0x4d, 0x6f, 0x1b, 0x45, 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0xac, 0x97, 0x4d, 0x6f, 0x1b, 0x45,
0x18, 0xc7, 0xbd, 0xad, 0x63, 0x27, 0x4f, 0x92, 0x12, 0x06, 0x53, 0xd2, 0x6d, 0x71, 0xc2, 0xb4, 0x18, 0xc7, 0xbd, 0x89, 0x13, 0x27, 0x4f, 0x5e, 0x08, 0x83, 0x29, 0x61, 0x5b, 0x9c, 0x30, 0xd0,
0x4d, 0x9c, 0x97, 0xee, 0xc6, 0xe6, 0xad, 0x54, 0x48, 0x90, 0x44, 0x0d, 0x95, 0x5a, 0x50, 0x71, 0xc4, 0x79, 0xe9, 0x6e, 0x6d, 0xde, 0x4a, 0x85, 0x04, 0x49, 0xd5, 0x50, 0xa9, 0x05, 0x15, 0x27,
0x22, 0x0e, 0x48, 0xc8, 0x1a, 0xaf, 0x97, 0xb5, 0x15, 0x7b, 0xc7, 0xdd, 0x59, 0x5b, 0x89, 0xa2, 0xe2, 0xc0, 0x25, 0x1a, 0xaf, 0x57, 0x6b, 0x2b, 0xf6, 0x8e, 0xbb, 0x33, 0xb6, 0x12, 0x45, 0xb9,
0x5c, 0x38, 0x20, 0x28, 0x1c, 0x40, 0x1c, 0x40, 0x48, 0xa0, 0x5e, 0xb9, 0xf1, 0x15, 0xb8, 0xf5, 0x70, 0x40, 0xbc, 0x1d, 0x40, 0x1c, 0x40, 0x48, 0x48, 0xbd, 0x72, 0xe3, 0x2b, 0x70, 0xeb, 0xb1,
0x58, 0x89, 0x0b, 0x27, 0x84, 0x12, 0x0e, 0x7c, 0x0c, 0x34, 0x2f, 0x6b, 0xef, 0xda, 0x59, 0xaf, 0x12, 0x17, 0x4e, 0x08, 0x25, 0x1c, 0xe0, 0x5b, 0xa0, 0x79, 0x59, 0x7b, 0xd7, 0xc9, 0x7a, 0x1d,
0x83, 0xb8, 0xed, 0xcc, 0x3c, 0x2f, 0xbf, 0x67, 0x9e, 0x99, 0xf9, 0xdb, 0x80, 0x6d, 0xbf, 0x6e, 0xc4, 0x6d, 0x66, 0xf6, 0x79, 0xf9, 0x3d, 0xcf, 0x3c, 0x9e, 0x7f, 0x02, 0xd8, 0xe5, 0x75, 0x37,
0x7b, 0xad, 0x86, 0xeb, 0x9b, 0x76, 0xb7, 0x65, 0x76, 0x8b, 0xa4, 0xd9, 0xae, 0x93, 0xa2, 0xf9, 0x68, 0x35, 0x7c, 0x6e, 0xbb, 0xdd, 0x96, 0xdd, 0x2d, 0x91, 0x66, 0xbb, 0x4e, 0x4a, 0xf6, 0xa3,
0xa8, 0x63, 0x7b, 0x87, 0x46, 0xdb, 0xa3, 0x3e, 0x45, 0x97, 0x7b, 0x36, 0x86, 0xdd, 0x6d, 0x19, 0x8e, 0x1b, 0x1c, 0x59, 0xed, 0x80, 0x72, 0x8a, 0xae, 0xf4, 0x6c, 0x2c, 0xb7, 0xdb, 0xb2, 0x42,
0x81, 0x8d, 0x9e, 0x73, 0xa8, 0x43, 0x85, 0x89, 0xc9, 0xbf, 0xa4, 0xb5, 0xbe, 0x6a, 0x51, 0xd6, 0x1b, 0x33, 0xef, 0x51, 0x8f, 0x4a, 0x13, 0x5b, 0xac, 0x94, 0xb5, 0xb9, 0xee, 0x50, 0xd6, 0xa2,
0xa2, 0xcc, 0xac, 0x12, 0x66, 0xcb, 0x30, 0x66, 0xb7, 0x58, 0xb5, 0x7d, 0x52, 0x34, 0xdb, 0xc4, 0xcc, 0xae, 0x12, 0xe6, 0xaa, 0x30, 0x76, 0xb7, 0x54, 0x75, 0x39, 0x29, 0xd9, 0x6d, 0xe2, 0x35,
0x69, 0xb8, 0xc4, 0x6f, 0x50, 0x57, 0xd9, 0x5e, 0x73, 0x28, 0x75, 0x9a, 0xb6, 0x49, 0xda, 0x0d, 0x7c, 0xc2, 0x1b, 0xd4, 0xd7, 0xb6, 0xd7, 0x3c, 0x4a, 0xbd, 0xa6, 0x6b, 0x93, 0x76, 0xc3, 0x26,
0x93, 0xb8, 0x2e, 0xf5, 0xc5, 0x22, 0x53, 0xab, 0x8b, 0x31, 0x6c, 0x1c, 0x42, 0x5a, 0x2c, 0xc4, 0xbe, 0x4f, 0xb9, 0xfc, 0xc8, 0xf4, 0xd7, 0xe5, 0x04, 0x36, 0x01, 0xa1, 0x2c, 0x96, 0x12, 0x2c,
0x58, 0xf8, 0x07, 0xd2, 0x00, 0xbf, 0x05, 0x2f, 0x7c, 0xc8, 0x11, 0x36, 0x2d, 0x8b, 0x76, 0x5c, 0xf8, 0xa1, 0x32, 0xc0, 0x6f, 0xc3, 0x73, 0x1f, 0x09, 0x84, 0x2d, 0xc7, 0xa1, 0x1d, 0x9f, 0x57,
0xbf, 0x6c, 0x3f, 0xea, 0xd8, 0xcc, 0x47, 0xf3, 0x90, 0x25, 0xb5, 0x9a, 0x67, 0x33, 0x36, 0xaf, 0xdc, 0x47, 0x1d, 0x97, 0x71, 0xb4, 0x08, 0x39, 0x52, 0xab, 0x05, 0x2e, 0x63, 0x8b, 0xc6, 0xb2,
0x2d, 0x6a, 0x85, 0xa9, 0x72, 0x30, 0xbc, 0x33, 0xf9, 0xc5, 0x93, 0x85, 0xd4, 0x3f, 0x4f, 0x16, 0x51, 0x9c, 0xae, 0x84, 0xdb, 0xdb, 0x53, 0x9f, 0x3f, 0x5e, 0xca, 0xfc, 0xfd, 0x78, 0x29, 0x83,
0x52, 0xd8, 0x82, 0x5c, 0xd4, 0x95, 0xb5, 0xa9, 0xcb, 0x6c, 0xee, 0x5b, 0x25, 0x4d, 0xe2, 0x5a, 0x1d, 0xc8, 0xc7, 0x5d, 0x59, 0x9b, 0xfa, 0xcc, 0x15, 0xbe, 0x55, 0xd2, 0x24, 0xbe, 0xe3, 0x86,
0x76, 0xe0, 0xab, 0x86, 0xe8, 0x2a, 0x4c, 0x59, 0xb4, 0x66, 0x57, 0xea, 0x84, 0xd5, 0xe7, 0x2f, 0xbe, 0x7a, 0x8b, 0xae, 0xc2, 0xb4, 0x43, 0x6b, 0xee, 0x7e, 0x9d, 0xb0, 0xfa, 0xe2, 0x98, 0xfc,
0x88, 0xb5, 0x49, 0x3e, 0x71, 0x8f, 0xb0, 0x3a, 0xca, 0xc1, 0x84, 0x4b, 0xb9, 0xd3, 0xc5, 0x45, 0x36, 0x25, 0x0e, 0xee, 0x11, 0x56, 0x47, 0x79, 0x98, 0xf0, 0xa9, 0x70, 0x1a, 0x5f, 0x36, 0x8a,
0xad, 0x90, 0x2e, 0xcb, 0x01, 0x7e, 0x07, 0xae, 0x88, 0x24, 0xdb, 0x62, 0xcf, 0xfe, 0x03, 0xe5, 0xd9, 0x8a, 0xda, 0xe0, 0x77, 0xe1, 0x45, 0x99, 0xe4, 0x8e, 0xec, 0xd9, 0x7f, 0xa0, 0xfc, 0xcc,
0xe7, 0x1a, 0xe8, 0x67, 0x45, 0x50, 0xb0, 0x37, 0xe1, 0x92, 0x6c, 0x47, 0x25, 0x1a, 0x69, 0x56, 0x00, 0xf3, 0xa2, 0x08, 0x1a, 0xf6, 0x3a, 0xcc, 0xab, 0xeb, 0xd8, 0x8f, 0x47, 0x9a, 0x53, 0xa7,
0xce, 0x6e, 0xca, 0x49, 0xa4, 0xc3, 0x24, 0xe3, 0x49, 0x39, 0xdf, 0x05, 0xc1, 0xd7, 0x1b, 0xf3, 0x5b, 0xea, 0x10, 0x99, 0x30, 0xc5, 0x44, 0x52, 0xc1, 0x37, 0x26, 0xf9, 0x7a, 0x7b, 0x11, 0x82,
0x10, 0x44, 0x46, 0xad, 0xb8, 0x9d, 0x56, 0xd5, 0xf6, 0x54, 0x05, 0xb3, 0x6a, 0xf6, 0x03, 0x31, 0xa8, 0xa8, 0xfb, 0x7e, 0xa7, 0x55, 0x75, 0x03, 0x5d, 0xc1, 0x9c, 0x3e, 0xfd, 0x50, 0x1e, 0xe2,
0x89, 0xef, 0xc3, 0x35, 0xc1, 0xf1, 0x11, 0x69, 0x36, 0x6a, 0xc4, 0xa7, 0xde, 0x40, 0x31, 0xaf, 0xfb, 0x70, 0x4d, 0x72, 0x7c, 0x4c, 0x9a, 0x8d, 0x1a, 0xe1, 0x34, 0x18, 0x28, 0xe6, 0x65, 0x98,
0xc0, 0x8c, 0x45, 0xdd, 0x41, 0x8e, 0x69, 0x3e, 0xb7, 0x39, 0x54, 0xd5, 0x57, 0x1a, 0xbc, 0x1c, 0x75, 0xa8, 0x3f, 0xc8, 0x31, 0x23, 0xce, 0xb6, 0xce, 0x55, 0xf5, 0x95, 0x01, 0x2f, 0x25, 0x44,
0x13, 0x4d, 0x15, 0xb6, 0x0c, 0xcf, 0x05, 0x54, 0xd1, 0x88, 0x01, 0xec, 0xff, 0x58, 0x5a, 0x70, 0xd3, 0x85, 0xad, 0xc2, 0x33, 0x21, 0x55, 0x3c, 0x62, 0x08, 0xfb, 0x3f, 0x96, 0x16, 0x0e, 0xd1,
0x88, 0xb6, 0x64, 0x9f, 0xcf, 0xd3, 0x9e, 0x0d, 0x75, 0x88, 0x7a, 0xae, 0x49, 0x87, 0x08, 0xdf, 0xb6, 0xba, 0xe7, 0xcb, 0x5c, 0xcf, 0x4d, 0x3d, 0x44, 0x3d, 0xd7, 0xb4, 0x21, 0xc2, 0xf7, 0x75,
0x57, 0xc9, 0x76, 0x7d, 0xea, 0x11, 0x27, 0x39, 0x19, 0x9a, 0x83, 0x8b, 0xfb, 0xf6, 0xa1, 0x3a, 0xb2, 0x5d, 0x4e, 0x03, 0xe2, 0xa5, 0x27, 0x43, 0x0b, 0x30, 0x7e, 0xe0, 0x1e, 0xe9, 0x79, 0x13,
0x6f, 0xfc, 0x33, 0x94, 0x7e, 0x5d, 0xa5, 0xef, 0x05, 0x53, 0xe9, 0x73, 0x30, 0xd1, 0x25, 0xcd, 0xcb, 0x48, 0xfa, 0x4d, 0x9d, 0xbe, 0x17, 0x4c, 0xa7, 0xcf, 0xc3, 0x44, 0x97, 0x34, 0x3b, 0x61,
0x4e, 0x90, 0x5c, 0x0e, 0xf0, 0x1b, 0x30, 0xa7, 0x8e, 0x52, 0xed, 0x5c, 0x45, 0x2e, 0xc3, 0xf3, 0x72, 0xb5, 0xc1, 0x6f, 0xc2, 0x82, 0x1e, 0xa5, 0xda, 0xa5, 0x8a, 0x5c, 0x85, 0x67, 0x23, 0x7e,
0x21, 0x3f, 0x95, 0x02, 0x41, 0x9a, 0x9f, 0x7d, 0xe1, 0x35, 0x53, 0x16, 0xdf, 0xb8, 0x04, 0x48, 0x3a, 0x05, 0x82, 0xac, 0x98, 0x7d, 0xe9, 0x35, 0x5b, 0x91, 0x6b, 0x5c, 0x06, 0x24, 0x0d, 0xf7,
0x18, 0xee, 0x1d, 0x3c, 0xa0, 0x0e, 0x0b, 0x52, 0x20, 0x48, 0x8b, 0x1b, 0x23, 0xe3, 0x8b, 0xef, 0x0e, 0x1f, 0x50, 0x8f, 0x85, 0x29, 0x10, 0x64, 0xe5, 0x2f, 0x46, 0xc5, 0x97, 0xeb, 0x48, 0xf0,
0x50, 0xf0, 0x1d, 0xb5, 0x1f, 0x81, 0x8f, 0x0a, 0x6f, 0x42, 0xba, 0x49, 0x1d, 0x0e, 0x75, 0xb1, 0x1d, 0xdd, 0x8f, 0xd0, 0x47, 0x87, 0xb7, 0x21, 0xdb, 0xa4, 0x9e, 0x80, 0x1a, 0x2f, 0xce, 0x94,
0x30, 0x5d, 0xba, 0x6a, 0x9c, 0xfd, 0x44, 0x19, 0x0f, 0xa8, 0x53, 0x16, 0x86, 0xf8, 0x18, 0x5e, 0xaf, 0x5a, 0x17, 0x3f, 0x51, 0xd6, 0x03, 0xea, 0x55, 0xa4, 0x21, 0x3e, 0x81, 0xe7, 0xd5, 0x4d,
0x94, 0x9d, 0x68, 0x52, 0x6b, 0x3f, 0x21, 0x3d, 0xda, 0x01, 0xe8, 0xbf, 0x55, 0x62, 0x6b, 0xa7, 0x34, 0xa9, 0x73, 0x90, 0x92, 0x1e, 0xed, 0x00, 0xf4, 0xdf, 0x2a, 0xd9, 0xda, 0x99, 0xf2, 0x8a,
0x4b, 0x4b, 0x86, 0xbc, 0x33, 0x06, 0x7f, 0xd8, 0x0c, 0xf9, 0x3e, 0xaa, 0x87, 0xcd, 0x78, 0xd8, 0xa5, 0x7e, 0x33, 0x96, 0x78, 0xd8, 0x2c, 0xf5, 0x3e, 0xea, 0x87, 0xcd, 0x7a, 0xd8, 0xbf, 0xa9,
0xef, 0x54, 0x39, 0xe4, 0x19, 0x2a, 0xe3, 0x17, 0x0d, 0x2e, 0x0f, 0xe6, 0x57, 0xa5, 0xec, 0x40, 0x4a, 0xc4, 0x33, 0x52, 0xc6, 0xcf, 0x06, 0x5c, 0x19, 0xcc, 0xaf, 0x4b, 0xd9, 0x81, 0x1c, 0x3f,
0xd6, 0x3f, 0xa8, 0x84, 0xaa, 0x59, 0x8e, 0xab, 0x66, 0xcf, 0x23, 0x2e, 0x23, 0x16, 0x0f, 0xcd, 0xdc, 0x8f, 0x54, 0xb3, 0x9a, 0x54, 0xcd, 0x5e, 0x40, 0x7c, 0x46, 0x1c, 0x11, 0x5a, 0x44, 0xd8,
0x23, 0x6c, 0xa5, 0x9f, 0xfe, 0xb9, 0x90, 0x2a, 0x67, 0x7c, 0xb1, 0x35, 0xe8, 0xbd, 0x33, 0xa0, 0xce, 0x3e, 0xf9, 0x63, 0x29, 0x53, 0x99, 0xe4, 0xb2, 0x35, 0xe8, 0xfd, 0x0b, 0xa0, 0x57, 0x53,
0x97, 0x13, 0xa1, 0x25, 0x44, 0x98, 0x1a, 0xcf, 0x87, 0x51, 0xb7, 0x9a, 0x94, 0xb6, 0x54, 0x6d, 0xa1, 0x15, 0x44, 0x94, 0x1a, 0x2f, 0x46, 0x51, 0xb7, 0x9b, 0x94, 0xb6, 0x74, 0x6d, 0xd8, 0x86,
0xd8, 0x84, 0x97, 0x86, 0x56, 0xfa, 0x47, 0xaa, 0xca, 0x27, 0x54, 0xc3, 0xe5, 0x00, 0xe7, 0x54, 0x17, 0xce, 0x7d, 0xe9, 0x8f, 0x54, 0x55, 0x1c, 0xe8, 0x0b, 0x57, 0x1b, 0x9c, 0xd7, 0x37, 0xfe,
0xc7, 0x1f, 0x12, 0x8f, 0xb4, 0x82, 0x2d, 0xc7, 0xbb, 0xaa, 0xa7, 0xc1, 0xac, 0x0a, 0xf1, 0x36, 0x90, 0x04, 0xa4, 0x15, 0xb6, 0x1c, 0xef, 0xea, 0x3b, 0x0d, 0x4f, 0x75, 0x88, 0x77, 0x60, 0xb2,
0x64, 0xda, 0x62, 0x46, 0xc4, 0x98, 0x2e, 0xe5, 0xe3, 0xf6, 0x41, 0xfa, 0x05, 0xe5, 0x4b, 0x1f, 0x2d, 0x4f, 0x64, 0x8c, 0x99, 0x72, 0x21, 0xa9, 0x0f, 0xca, 0x2f, 0x2c, 0x5f, 0xf9, 0xe0, 0x7b,
0x7c, 0x45, 0xb1, 0x6d, 0xd7, 0x49, 0xc3, 0xdd, 0xa6, 0xee, 0xa7, 0x0d, 0x27, 0xc8, 0xf7, 0x09, 0x9a, 0x7a, 0x57, 0x88, 0x88, 0x73, 0x87, 0x34, 0x9b, 0xe9, 0xbf, 0x9d, 0x3c, 0x4c, 0x34, 0xfc,
0xcc, 0x0f, 0x2f, 0xa9, 0xa4, 0x9b, 0x90, 0xb1, 0xc4, 0x8c, 0x4a, 0x7a, 0x3d, 0x2e, 0x69, 0xc8, 0x76, 0x87, 0xcb, 0x6e, 0xcd, 0x56, 0xd4, 0x06, 0xdf, 0xd0, 0x55, 0x46, 0x23, 0xf5, 0xa7, 0xba,
0x39, 0xc8, 0x2c, 0x1d, 0xf1, 0x3d, 0xb5, 0x5f, 0xbb, 0x5c, 0xbe, 0xac, 0x6d, 0xd2, 0x6c, 0x26, 0x46, 0x38, 0x09, 0xa7, 0x5a, 0xac, 0xf1, 0xab, 0x30, 0x7f, 0x97, 0xd7, 0xa3, 0x09, 0x11, 0x64,
0xdf, 0xda, 0x1c, 0x4c, 0x34, 0xdc, 0x76, 0xc7, 0x17, 0x7d, 0x9a, 0x29, 0xcb, 0x01, 0xbe, 0xa5, 0x49, 0xe0, 0xb1, 0xd0, 0x4a, 0xac, 0xcb, 0xff, 0xcc, 0xc3, 0x84, 0x8c, 0x8a, 0xbe, 0x37, 0x20,
0x6a, 0x08, 0x47, 0xea, 0xdf, 0xa7, 0x1a, 0xf1, 0x49, 0x70, 0x9f, 0xf8, 0x37, 0xbe, 0x01, 0x97, 0xa7, 0x9f, 0x33, 0xb4, 0x91, 0x54, 0xe2, 0x05, 0xaa, 0x65, 0x6e, 0x8e, 0x66, 0xac, 0x50, 0x71,
0xee, 0xfa, 0xf5, 0x70, 0x42, 0x04, 0x69, 0xe2, 0x39, 0x2c, 0xb0, 0xe2, 0xdf, 0xa5, 0xc7, 0x73, 0xe9, 0xd3, 0xdf, 0xfe, 0xfa, 0x6e, 0x6c, 0x03, 0xad, 0xd9, 0x09, 0x22, 0xa9, 0x1f, 0x39, 0xfb,
0x30, 0x21, 0xa2, 0xa2, 0xef, 0x35, 0xc8, 0xaa, 0x87, 0x14, 0xad, 0xc5, 0xd5, 0x79, 0x86, 0x5e, 0x58, 0x77, 0xe3, 0x04, 0xfd, 0x62, 0xc0, 0x5c, 0x4c, 0x47, 0x50, 0x69, 0x68, 0xca, 0x8b, 0x54,
0xea, 0xeb, 0xe3, 0x19, 0x4b, 0x54, 0x5c, 0xfc, 0xec, 0xf7, 0xbf, 0xbf, 0xbb, 0xb0, 0x86, 0x56, 0xcb, 0x2c, 0x5f, 0xc6, 0x45, 0xb3, 0xde, 0x92, 0xac, 0x65, 0x74, 0x33, 0x89, 0x35, 0x14, 0xb1,
0xcc, 0x18, 0x79, 0x56, 0xcf, 0xab, 0x79, 0xa4, 0x76, 0xe3, 0x18, 0xfd, 0xaa, 0xc1, 0x6c, 0x44, 0x73, 0xc8, 0xbf, 0x1a, 0xb0, 0x30, 0x28, 0x12, 0xe8, 0xf5, 0xa1, 0x08, 0x09, 0x0a, 0x65, 0xbe,
0xc1, 0x50, 0x71, 0x64, 0xca, 0xb3, 0xf4, 0x52, 0x2f, 0x9d, 0xc7, 0x45, 0xb1, 0xde, 0x16, 0xac, 0x71, 0x49, 0x2f, 0xcd, 0xfe, 0x9e, 0x64, 0xbf, 0x8d, 0x6e, 0x25, 0xb1, 0x77, 0x43, 0xcf, 0x3e,
0x25, 0xb4, 0x11, 0xc7, 0x1a, 0xc8, 0xe7, 0x10, 0xf2, 0x6f, 0x1a, 0xcc, 0x0d, 0xca, 0x13, 0x7a, 0x7e, 0x54, 0x09, 0x4f, 0xd0, 0x0f, 0x06, 0xe4, 0xb4, 0x40, 0xa4, 0x0c, 0x44, 0x5c, 0x81, 0x52,
0x6d, 0x24, 0x42, 0x8c, 0x36, 0xea, 0xaf, 0x9f, 0xd3, 0x4b, 0xb1, 0xbf, 0x2b, 0xd8, 0xef, 0xa0, 0x06, 0x62, 0x40, 0x73, 0x70, 0x59, 0x82, 0x6e, 0xa2, 0xf5, 0x24, 0x50, 0x2d, 0x41, 0x2c, 0xd2,
0xdb, 0x71, 0xec, 0xdd, 0xc0, 0xb3, 0x8f, 0x1f, 0xd6, 0xe0, 0x63, 0xf4, 0x83, 0x06, 0x59, 0x25, 0xde, 0x9f, 0x0c, 0xc8, 0x69, 0xf1, 0x48, 0x41, 0x8b, 0xeb, 0x55, 0x0a, 0xda, 0x80, 0x1e, 0xe1,
0x4d, 0x09, 0x07, 0x22, 0xaa, 0x7d, 0x09, 0x07, 0x62, 0x40, 0xed, 0x70, 0x49, 0x80, 0xae, 0xa3, 0xb7, 0x24, 0x5a, 0x09, 0xd9, 0x49, 0x68, 0x4c, 0x39, 0xf4, 0xc9, 0xec, 0xe3, 0x03, 0xf7, 0xe8,
0xd5, 0x38, 0x50, 0x25, 0x7e, 0x2c, 0xb4, 0xbd, 0x3f, 0x69, 0x90, 0x55, 0xb2, 0x95, 0x80, 0x16, 0x04, 0x7d, 0x6d, 0x40, 0x56, 0xc8, 0x0e, 0x2a, 0xa6, 0x4c, 0x5d, 0x4f, 0xd1, 0xcc, 0xb5, 0x11,
0x55, 0xca, 0x04, 0xb4, 0x01, 0x25, 0xc4, 0x6f, 0x0a, 0xb4, 0x22, 0x32, 0xe3, 0xd0, 0x98, 0x74, 0x2c, 0x35, 0x96, 0x2d, 0xb1, 0xd6, 0xd0, 0x6a, 0xf2, 0x58, 0xd6, 0x62, 0xed, 0xfa, 0xd6, 0x80,
0xe8, 0x93, 0x99, 0x47, 0xfb, 0xf6, 0xe1, 0x31, 0xfa, 0x5a, 0x83, 0x34, 0x17, 0x3c, 0x54, 0x48, 0x49, 0x25, 0x54, 0x68, 0x7d, 0x68, 0x9a, 0x98, 0x02, 0x9a, 0x1b, 0x23, 0xd9, 0x6a, 0x28, 0x4b,
0x38, 0x75, 0x3d, 0x2d, 0xd5, 0x57, 0xc6, 0xb0, 0x54, 0x58, 0xa6, 0xc0, 0x5a, 0x41, 0xcb, 0xf1, 0x42, 0x15, 0xd1, 0x8a, 0x9d, 0xf8, 0xc7, 0xaf, 0x14, 0x13, 0xfb, 0x58, 0x48, 0x99, 0xbc, 0xc2,
0xc7, 0xb2, 0x16, 0xd9, 0xae, 0x6f, 0x35, 0xc8, 0x48, 0x89, 0x44, 0xab, 0x23, 0xd3, 0x44, 0xb4, 0xe9, 0x9e, 0xe8, 0xa0, 0x1b, 0xc3, 0x47, 0x66, 0x40, 0x1c, 0x4d, 0x6b, 0x54, 0xf3, 0x51, 0x1f,
0x57, 0x5f, 0x1b, 0xcb, 0x56, 0x41, 0x19, 0x02, 0xaa, 0x80, 0x96, 0xcc, 0xd8, 0x9f, 0xdd, 0x42, 0x9d, 0xaa, 0x70, 0x89, 0xf1, 0xfd, 0x68, 0x00, 0xf4, 0xf5, 0x04, 0x8d, 0x90, 0x31, 0x2a, 0x49,
0xc6, 0xcc, 0x23, 0x2e, 0xa2, 0xa2, 0x85, 0x53, 0x3d, 0xb9, 0x43, 0xb7, 0x46, 0x1f, 0x99, 0x01, 0xa6, 0x3d, 0xb2, 0xbd, 0x46, 0xdc, 0x90, 0x88, 0xd7, 0xd1, 0x2b, 0xc3, 0x11, 0xa5, 0x7e, 0xa1,
0x59, 0xd6, 0x8d, 0x71, 0xcd, 0xc7, 0x7d, 0x74, 0xaa, 0xdc, 0x25, 0xc2, 0xf7, 0xa3, 0x06, 0xd0, 0x2f, 0x0c, 0x98, 0x54, 0x6a, 0x93, 0x72, 0xa1, 0x31, 0x81, 0x4b, 0xb9, 0xd0, 0xb8, 0xec, 0xe1,
0x57, 0x32, 0x34, 0x46, 0xc6, 0xb0, 0x18, 0xea, 0xe6, 0xd8, 0xf6, 0x0a, 0x71, 0x4d, 0x20, 0xde, 0x15, 0x09, 0xb4, 0x8c, 0x0a, 0x49, 0x40, 0x4a, 0xe0, 0x64, 0xa3, 0xfa, 0x92, 0x94, 0xd2, 0xa8,
0x44, 0xd7, 0x47, 0x23, 0x0a, 0xe5, 0x44, 0x5f, 0x6a, 0x90, 0x91, 0x3a, 0x97, 0xd0, 0xd0, 0x88, 0x73, 0x2a, 0x98, 0xd2, 0xa8, 0xf3, 0x5a, 0x97, 0xde, 0x28, 0x26, 0x7d, 0xf6, 0x1d, 0x41, 0xf3,
0xb4, 0x26, 0x34, 0x34, 0x2a, 0xb8, 0x78, 0x49, 0x00, 0x2d, 0xa2, 0x7c, 0x1c, 0x90, 0x94, 0x56, 0xa5, 0x01, 0x39, 0xad, 0x82, 0x68, 0x25, 0x29, 0x53, 0x5c, 0x26, 0xcd, 0xc4, 0x59, 0xfc, 0x80,
0xf4, 0xb3, 0x06, 0xd3, 0x21, 0xf9, 0x43, 0xa3, 0x2b, 0x1f, 0x16, 0x60, 0x7d, 0x63, 0x7c, 0x07, 0x79, 0x77, 0xc5, 0x17, 0xb7, 0xd3, 0xda, 0x3b, 0xec, 0xf1, 0x14, 0x25, 0x0f, 0x46, 0xcb, 0x49,
0x85, 0xb6, 0x2e, 0xd0, 0x96, 0xd0, 0x8d, 0xd8, 0x0b, 0xc0, 0x9d, 0x2a, 0x52, 0x81, 0x45, 0x27, 0x3c, 0x2e, 0xaf, 0x4b, 0x98, 0xed, 0xed, 0x27, 0xa7, 0x05, 0xe3, 0xe9, 0x69, 0xc1, 0xf8, 0xf3,
0xfb, 0x9a, 0x99, 0xd0, 0xc9, 0x21, 0x99, 0x4e, 0xe8, 0xe4, 0xb0, 0x18, 0x27, 0x77, 0x92, 0x09, 0xb4, 0x60, 0x7c, 0x73, 0x56, 0xc8, 0x3c, 0x3d, 0x2b, 0x64, 0x7e, 0x3f, 0x2b, 0x64, 0x3e, 0x29,
0x9f, 0x8a, 0xc5, 0x69, 0x1e, 0x6b, 0x90, 0x55, 0x32, 0x8d, 0x96, 0xe2, 0x32, 0x45, 0x75, 0x5c, 0x7a, 0x0d, 0x5e, 0xef, 0x54, 0x2d, 0x87, 0xb6, 0x6c, 0x5e, 0x27, 0x01, 0x6b, 0xb0, 0x48, 0xb4,
0x8f, 0xbd, 0x2c, 0xef, 0x33, 0xe7, 0x2e, 0x5f, 0xb1, 0x3b, 0xad, 0xbd, 0x83, 0x1e, 0x4f, 0x41, 0x43, 0x19, 0x8f, 0x1f, 0xb5, 0x5d, 0x56, 0x9d, 0x94, 0xff, 0x40, 0xbe, 0xf6, 0x6f, 0x00, 0x00,
0xf0, 0x60, 0xb4, 0x18, 0xc7, 0x63, 0xfb, 0x75, 0x01, 0xb3, 0xb5, 0xf5, 0xf4, 0x24, 0xaf, 0x3d, 0x00, 0xff, 0xff, 0xb7, 0x54, 0x23, 0x90, 0x21, 0x0f, 0x00, 0x00,
0x3b, 0xc9, 0x6b, 0x7f, 0x9d, 0xe4, 0xb5, 0x6f, 0x4e, 0xf3, 0xa9, 0x67, 0xa7, 0xf9, 0xd4, 0x1f,
0xa7, 0xf9, 0xd4, 0xc7, 0x05, 0xa7, 0xe1, 0xd7, 0x3b, 0x55, 0xc3, 0xa2, 0x2d, 0xd3, 0xaf, 0x13,
0x8f, 0x35, 0x58, 0x28, 0xda, 0x81, 0x88, 0xe7, 0x1f, 0xb6, 0x6d, 0x56, 0xcd, 0x88, 0xff, 0xd6,
0xaf, 0xfe, 0x1b, 0x00, 0x00, 0xff, 0xff, 0x31, 0x90, 0x2b, 0x28, 0x3c, 0x10, 0x00, 0x00,
} }
// Reference imports to suppress errors if they are not otherwise used. // Reference imports to suppress errors if they are not otherwise used.
@ -1323,8 +1234,6 @@ type QueryClient interface {
BlockBloom(ctx context.Context, in *QueryBlockBloomRequest, opts ...grpc.CallOption) (*QueryBlockBloomResponse, error) BlockBloom(ctx context.Context, in *QueryBlockBloomRequest, opts ...grpc.CallOption) (*QueryBlockBloomResponse, error)
// Params queries the parameters of x/evm module. // Params queries the parameters of x/evm module.
Params(ctx context.Context, in *QueryParamsRequest, opts ...grpc.CallOption) (*QueryParamsResponse, error) Params(ctx context.Context, in *QueryParamsRequest, opts ...grpc.CallOption) (*QueryParamsResponse, error)
// ChainConfig queries the chain configuration values of EVM.
ChainConfig(ctx context.Context, in *QueryChainConfigRequest, opts ...grpc.CallOption) (*QueryChainConfigResponse, error)
// StaticCall queries the static call value of x/evm module. // StaticCall queries the static call value of x/evm module.
StaticCall(ctx context.Context, in *QueryStaticCallRequest, opts ...grpc.CallOption) (*QueryStaticCallResponse, error) StaticCall(ctx context.Context, in *QueryStaticCallRequest, opts ...grpc.CallOption) (*QueryStaticCallResponse, error)
// EthCall implements the `eth_call` rpc api // EthCall implements the `eth_call` rpc api
@ -1429,15 +1338,6 @@ func (c *queryClient) Params(ctx context.Context, in *QueryParamsRequest, opts .
return out, nil return out, nil
} }
func (c *queryClient) ChainConfig(ctx context.Context, in *QueryChainConfigRequest, opts ...grpc.CallOption) (*QueryChainConfigResponse, error) {
out := new(QueryChainConfigResponse)
err := c.cc.Invoke(ctx, "/ethermint.evm.v1alpha1.Query/ChainConfig", in, out, opts...)
if err != nil {
return nil, err
}
return out, nil
}
func (c *queryClient) StaticCall(ctx context.Context, in *QueryStaticCallRequest, opts ...grpc.CallOption) (*QueryStaticCallResponse, error) { func (c *queryClient) StaticCall(ctx context.Context, in *QueryStaticCallRequest, opts ...grpc.CallOption) (*QueryStaticCallResponse, error) {
out := new(QueryStaticCallResponse) out := new(QueryStaticCallResponse)
err := c.cc.Invoke(ctx, "/ethermint.evm.v1alpha1.Query/StaticCall", in, out, opts...) err := c.cc.Invoke(ctx, "/ethermint.evm.v1alpha1.Query/StaticCall", in, out, opts...)
@ -1479,8 +1379,6 @@ type QueryServer interface {
BlockBloom(context.Context, *QueryBlockBloomRequest) (*QueryBlockBloomResponse, error) BlockBloom(context.Context, *QueryBlockBloomRequest) (*QueryBlockBloomResponse, error)
// Params queries the parameters of x/evm module. // Params queries the parameters of x/evm module.
Params(context.Context, *QueryParamsRequest) (*QueryParamsResponse, error) Params(context.Context, *QueryParamsRequest) (*QueryParamsResponse, error)
// ChainConfig queries the chain configuration values of EVM.
ChainConfig(context.Context, *QueryChainConfigRequest) (*QueryChainConfigResponse, error)
// StaticCall queries the static call value of x/evm module. // StaticCall queries the static call value of x/evm module.
StaticCall(context.Context, *QueryStaticCallRequest) (*QueryStaticCallResponse, error) StaticCall(context.Context, *QueryStaticCallRequest) (*QueryStaticCallResponse, error)
// EthCall implements the `eth_call` rpc api // EthCall implements the `eth_call` rpc api
@ -1521,9 +1419,6 @@ func (*UnimplementedQueryServer) BlockBloom(ctx context.Context, req *QueryBlock
func (*UnimplementedQueryServer) Params(ctx context.Context, req *QueryParamsRequest) (*QueryParamsResponse, error) { func (*UnimplementedQueryServer) Params(ctx context.Context, req *QueryParamsRequest) (*QueryParamsResponse, error) {
return nil, status.Errorf(codes.Unimplemented, "method Params not implemented") return nil, status.Errorf(codes.Unimplemented, "method Params not implemented")
} }
func (*UnimplementedQueryServer) ChainConfig(ctx context.Context, req *QueryChainConfigRequest) (*QueryChainConfigResponse, error) {
return nil, status.Errorf(codes.Unimplemented, "method ChainConfig not implemented")
}
func (*UnimplementedQueryServer) StaticCall(ctx context.Context, req *QueryStaticCallRequest) (*QueryStaticCallResponse, error) { func (*UnimplementedQueryServer) StaticCall(ctx context.Context, req *QueryStaticCallRequest) (*QueryStaticCallResponse, error) {
return nil, status.Errorf(codes.Unimplemented, "method StaticCall not implemented") return nil, status.Errorf(codes.Unimplemented, "method StaticCall not implemented")
} }
@ -1715,24 +1610,6 @@ func _Query_Params_Handler(srv interface{}, ctx context.Context, dec func(interf
return interceptor(ctx, in, info, handler) return interceptor(ctx, in, info, handler)
} }
func _Query_ChainConfig_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) {
in := new(QueryChainConfigRequest)
if err := dec(in); err != nil {
return nil, err
}
if interceptor == nil {
return srv.(QueryServer).ChainConfig(ctx, in)
}
info := &grpc.UnaryServerInfo{
Server: srv,
FullMethod: "/ethermint.evm.v1alpha1.Query/ChainConfig",
}
handler := func(ctx context.Context, req interface{}) (interface{}, error) {
return srv.(QueryServer).ChainConfig(ctx, req.(*QueryChainConfigRequest))
}
return interceptor(ctx, in, info, handler)
}
func _Query_StaticCall_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { func _Query_StaticCall_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) {
in := new(QueryStaticCallRequest) in := new(QueryStaticCallRequest)
if err := dec(in); err != nil { if err := dec(in); err != nil {
@ -1813,10 +1690,6 @@ var _Query_serviceDesc = grpc.ServiceDesc{
MethodName: "Params", MethodName: "Params",
Handler: _Query_Params_Handler, Handler: _Query_Params_Handler,
}, },
{
MethodName: "ChainConfig",
Handler: _Query_ChainConfig_Handler,
},
{ {
MethodName: "StaticCall", MethodName: "StaticCall",
Handler: _Query_StaticCall_Handler, Handler: _Query_StaticCall_Handler,
@ -2496,62 +2369,6 @@ func (m *QueryParamsResponse) MarshalToSizedBuffer(dAtA []byte) (int, error) {
return len(dAtA) - i, nil return len(dAtA) - i, nil
} }
func (m *QueryChainConfigRequest) Marshal() (dAtA []byte, err error) {
size := m.Size()
dAtA = make([]byte, size)
n, err := m.MarshalToSizedBuffer(dAtA[:size])
if err != nil {
return nil, err
}
return dAtA[:n], nil
}
func (m *QueryChainConfigRequest) MarshalTo(dAtA []byte) (int, error) {
size := m.Size()
return m.MarshalToSizedBuffer(dAtA[:size])
}
func (m *QueryChainConfigRequest) MarshalToSizedBuffer(dAtA []byte) (int, error) {
i := len(dAtA)
_ = i
var l int
_ = l
return len(dAtA) - i, nil
}
func (m *QueryChainConfigResponse) Marshal() (dAtA []byte, err error) {
size := m.Size()
dAtA = make([]byte, size)
n, err := m.MarshalToSizedBuffer(dAtA[:size])
if err != nil {
return nil, err
}
return dAtA[:n], nil
}
func (m *QueryChainConfigResponse) MarshalTo(dAtA []byte) (int, error) {
size := m.Size()
return m.MarshalToSizedBuffer(dAtA[:size])
}
func (m *QueryChainConfigResponse) MarshalToSizedBuffer(dAtA []byte) (int, error) {
i := len(dAtA)
_ = i
var l int
_ = l
{
size, err := m.Config.MarshalToSizedBuffer(dAtA[:i])
if err != nil {
return 0, err
}
i -= size
i = encodeVarintQuery(dAtA, i, uint64(size))
}
i--
dAtA[i] = 0xa
return len(dAtA) - i, nil
}
func (m *QueryStaticCallRequest) Marshal() (dAtA []byte, err error) { func (m *QueryStaticCallRequest) Marshal() (dAtA []byte, err error) {
size := m.Size() size := m.Size()
dAtA = make([]byte, size) dAtA = make([]byte, size)
@ -2945,26 +2762,6 @@ func (m *QueryParamsResponse) Size() (n int) {
return n return n
} }
func (m *QueryChainConfigRequest) Size() (n int) {
if m == nil {
return 0
}
var l int
_ = l
return n
}
func (m *QueryChainConfigResponse) Size() (n int) {
if m == nil {
return 0
}
var l int
_ = l
l = m.Config.Size()
n += 1 + l + sovQuery(uint64(l))
return n
}
func (m *QueryStaticCallRequest) Size() (n int) { func (m *QueryStaticCallRequest) Size() (n int) {
if m == nil { if m == nil {
return 0 return 0
@ -4830,139 +4627,6 @@ func (m *QueryParamsResponse) Unmarshal(dAtA []byte) error {
} }
return nil return nil
} }
func (m *QueryChainConfigRequest) Unmarshal(dAtA []byte) error {
l := len(dAtA)
iNdEx := 0
for iNdEx < l {
preIndex := iNdEx
var wire uint64
for shift := uint(0); ; shift += 7 {
if shift >= 64 {
return ErrIntOverflowQuery
}
if iNdEx >= l {
return io.ErrUnexpectedEOF
}
b := dAtA[iNdEx]
iNdEx++
wire |= uint64(b&0x7F) << shift
if b < 0x80 {
break
}
}
fieldNum := int32(wire >> 3)
wireType := int(wire & 0x7)
if wireType == 4 {
return fmt.Errorf("proto: QueryChainConfigRequest: wiretype end group for non-group")
}
if fieldNum <= 0 {
return fmt.Errorf("proto: QueryChainConfigRequest: illegal tag %d (wire type %d)", fieldNum, wire)
}
switch fieldNum {
default:
iNdEx = preIndex
skippy, err := skipQuery(dAtA[iNdEx:])
if err != nil {
return err
}
if (skippy < 0) || (iNdEx+skippy) < 0 {
return ErrInvalidLengthQuery
}
if (iNdEx + skippy) > l {
return io.ErrUnexpectedEOF
}
iNdEx += skippy
}
}
if iNdEx > l {
return io.ErrUnexpectedEOF
}
return nil
}
func (m *QueryChainConfigResponse) Unmarshal(dAtA []byte) error {
l := len(dAtA)
iNdEx := 0
for iNdEx < l {
preIndex := iNdEx
var wire uint64
for shift := uint(0); ; shift += 7 {
if shift >= 64 {
return ErrIntOverflowQuery
}
if iNdEx >= l {
return io.ErrUnexpectedEOF
}
b := dAtA[iNdEx]
iNdEx++
wire |= uint64(b&0x7F) << shift
if b < 0x80 {
break
}
}
fieldNum := int32(wire >> 3)
wireType := int(wire & 0x7)
if wireType == 4 {
return fmt.Errorf("proto: QueryChainConfigResponse: wiretype end group for non-group")
}
if fieldNum <= 0 {
return fmt.Errorf("proto: QueryChainConfigResponse: illegal tag %d (wire type %d)", fieldNum, wire)
}
switch fieldNum {
case 1:
if wireType != 2 {
return fmt.Errorf("proto: wrong wireType = %d for field Config", wireType)
}
var msglen int
for shift := uint(0); ; shift += 7 {
if shift >= 64 {
return ErrIntOverflowQuery
}
if iNdEx >= l {
return io.ErrUnexpectedEOF
}
b := dAtA[iNdEx]
iNdEx++
msglen |= int(b&0x7F) << shift
if b < 0x80 {
break
}
}
if msglen < 0 {
return ErrInvalidLengthQuery
}
postIndex := iNdEx + msglen
if postIndex < 0 {
return ErrInvalidLengthQuery
}
if postIndex > l {
return io.ErrUnexpectedEOF
}
if err := m.Config.Unmarshal(dAtA[iNdEx:postIndex]); err != nil {
return err
}
iNdEx = postIndex
default:
iNdEx = preIndex
skippy, err := skipQuery(dAtA[iNdEx:])
if err != nil {
return err
}
if (skippy < 0) || (iNdEx+skippy) < 0 {
return ErrInvalidLengthQuery
}
if (iNdEx + skippy) > l {
return io.ErrUnexpectedEOF
}
iNdEx += skippy
}
}
if iNdEx > l {
return io.ErrUnexpectedEOF
}
return nil
}
func (m *QueryStaticCallRequest) Unmarshal(dAtA []byte) error { func (m *QueryStaticCallRequest) Unmarshal(dAtA []byte) error {
l := len(dAtA) l := len(dAtA)
iNdEx := 0 iNdEx := 0

View File

@ -539,24 +539,6 @@ func local_request_Query_Params_0(ctx context.Context, marshaler runtime.Marshal
} }
func request_Query_ChainConfig_0(ctx context.Context, marshaler runtime.Marshaler, client QueryClient, req *http.Request, pathParams map[string]string) (proto.Message, runtime.ServerMetadata, error) {
var protoReq QueryChainConfigRequest
var metadata runtime.ServerMetadata
msg, err := client.ChainConfig(ctx, &protoReq, grpc.Header(&metadata.HeaderMD), grpc.Trailer(&metadata.TrailerMD))
return msg, metadata, err
}
func local_request_Query_ChainConfig_0(ctx context.Context, marshaler runtime.Marshaler, server QueryServer, req *http.Request, pathParams map[string]string) (proto.Message, runtime.ServerMetadata, error) {
var protoReq QueryChainConfigRequest
var metadata runtime.ServerMetadata
msg, err := server.ChainConfig(ctx, &protoReq)
return msg, metadata, err
}
var ( var (
filter_Query_StaticCall_0 = &utilities.DoubleArray{Encoding: map[string]int{}, Base: []int(nil), Check: []int(nil)} filter_Query_StaticCall_0 = &utilities.DoubleArray{Encoding: map[string]int{}, Base: []int(nil), Check: []int(nil)}
) )
@ -835,26 +817,6 @@ func RegisterQueryHandlerServer(ctx context.Context, mux *runtime.ServeMux, serv
}) })
mux.Handle("GET", pattern_Query_ChainConfig_0, func(w http.ResponseWriter, req *http.Request, pathParams map[string]string) {
ctx, cancel := context.WithCancel(req.Context())
defer cancel()
inboundMarshaler, outboundMarshaler := runtime.MarshalerForRequest(mux, req)
rctx, err := runtime.AnnotateIncomingContext(ctx, mux, req)
if err != nil {
runtime.HTTPError(ctx, mux, outboundMarshaler, w, req, err)
return
}
resp, md, err := local_request_Query_ChainConfig_0(rctx, inboundMarshaler, server, req, pathParams)
ctx = runtime.NewServerMetadataContext(ctx, md)
if err != nil {
runtime.HTTPError(ctx, mux, outboundMarshaler, w, req, err)
return
}
forward_Query_ChainConfig_0(ctx, mux, outboundMarshaler, w, req, resp, mux.GetForwardResponseOptions()...)
})
mux.Handle("GET", pattern_Query_StaticCall_0, func(w http.ResponseWriter, req *http.Request, pathParams map[string]string) { mux.Handle("GET", pattern_Query_StaticCall_0, func(w http.ResponseWriter, req *http.Request, pathParams map[string]string) {
ctx, cancel := context.WithCancel(req.Context()) ctx, cancel := context.WithCancel(req.Context())
defer cancel() defer cancel()
@ -1136,26 +1098,6 @@ func RegisterQueryHandlerClient(ctx context.Context, mux *runtime.ServeMux, clie
}) })
mux.Handle("GET", pattern_Query_ChainConfig_0, func(w http.ResponseWriter, req *http.Request, pathParams map[string]string) {
ctx, cancel := context.WithCancel(req.Context())
defer cancel()
inboundMarshaler, outboundMarshaler := runtime.MarshalerForRequest(mux, req)
rctx, err := runtime.AnnotateContext(ctx, mux, req)
if err != nil {
runtime.HTTPError(ctx, mux, outboundMarshaler, w, req, err)
return
}
resp, md, err := request_Query_ChainConfig_0(rctx, inboundMarshaler, client, req, pathParams)
ctx = runtime.NewServerMetadataContext(ctx, md)
if err != nil {
runtime.HTTPError(ctx, mux, outboundMarshaler, w, req, err)
return
}
forward_Query_ChainConfig_0(ctx, mux, outboundMarshaler, w, req, resp, mux.GetForwardResponseOptions()...)
})
mux.Handle("GET", pattern_Query_StaticCall_0, func(w http.ResponseWriter, req *http.Request, pathParams map[string]string) { mux.Handle("GET", pattern_Query_StaticCall_0, func(w http.ResponseWriter, req *http.Request, pathParams map[string]string) {
ctx, cancel := context.WithCancel(req.Context()) ctx, cancel := context.WithCancel(req.Context())
defer cancel() defer cancel()
@ -1220,8 +1162,6 @@ var (
pattern_Query_Params_0 = runtime.MustPattern(runtime.NewPattern(1, []int{2, 0, 2, 1, 2, 2, 2, 3}, []string{"ethermint", "evm", "v1alpha1", "params"}, "", runtime.AssumeColonVerbOpt(true))) pattern_Query_Params_0 = runtime.MustPattern(runtime.NewPattern(1, []int{2, 0, 2, 1, 2, 2, 2, 3}, []string{"ethermint", "evm", "v1alpha1", "params"}, "", runtime.AssumeColonVerbOpt(true)))
pattern_Query_ChainConfig_0 = runtime.MustPattern(runtime.NewPattern(1, []int{2, 0, 2, 1, 2, 2, 2, 3}, []string{"ethermint", "evm", "v1alpha1", "chain_config"}, "", runtime.AssumeColonVerbOpt(true)))
pattern_Query_StaticCall_0 = runtime.MustPattern(runtime.NewPattern(1, []int{2, 0, 2, 1, 2, 2, 2, 3}, []string{"ethermint", "evm", "v1alpha1", "static_call"}, "", runtime.AssumeColonVerbOpt(true))) pattern_Query_StaticCall_0 = runtime.MustPattern(runtime.NewPattern(1, []int{2, 0, 2, 1, 2, 2, 2, 3}, []string{"ethermint", "evm", "v1alpha1", "static_call"}, "", runtime.AssumeColonVerbOpt(true)))
pattern_Query_EthCall_0 = runtime.MustPattern(runtime.NewPattern(1, []int{2, 0, 2, 1, 2, 2, 2, 3}, []string{"ethermint", "evm", "v1alpha1", "eth_call"}, "", runtime.AssumeColonVerbOpt(true))) pattern_Query_EthCall_0 = runtime.MustPattern(runtime.NewPattern(1, []int{2, 0, 2, 1, 2, 2, 2, 3}, []string{"ethermint", "evm", "v1alpha1", "eth_call"}, "", runtime.AssumeColonVerbOpt(true)))
@ -1248,8 +1188,6 @@ var (
forward_Query_Params_0 = runtime.ForwardResponseMessage forward_Query_Params_0 = runtime.ForwardResponseMessage
forward_Query_ChainConfig_0 = runtime.ForwardResponseMessage
forward_Query_StaticCall_0 = runtime.ForwardResponseMessage forward_Query_StaticCall_0 = runtime.ForwardResponseMessage
forward_Query_EthCall_0 = runtime.ForwardResponseMessage forward_Query_EthCall_0 = runtime.ForwardResponseMessage