forked from cerc-io/laconicd-deprecated
evm: move ChainConfig
to Params
(#266)
* evm: move ChainConfig to Params * fixes * fix test
This commit is contained in:
parent
74b7eaf431
commit
e09bf23bd0
@ -24,10 +24,9 @@ type EVMKeeper interface {
|
||||
|
||||
ChainID() *big.Int
|
||||
GetParams(ctx sdk.Context) evmtypes.Params
|
||||
GetChainConfig(ctx sdk.Context) (evmtypes.ChainConfig, bool)
|
||||
WithContext(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
|
||||
}
|
||||
|
||||
@ -58,12 +57,9 @@ func (esvd EthSigVerificationDecorator) AnteHandle(ctx sdk.Context, tx sdk.Tx, s
|
||||
|
||||
chainID := esvd.evmKeeper.ChainID()
|
||||
|
||||
config, found := esvd.evmKeeper.GetChainConfig(ctx)
|
||||
if !found {
|
||||
return ctx, evmtypes.ErrChainConfigNotFound
|
||||
}
|
||||
params := esvd.evmKeeper.GetParams(ctx)
|
||||
|
||||
ethCfg := config.EthereumConfig(chainID)
|
||||
ethCfg := params.ChainConfig.EthereumConfig(chainID)
|
||||
blockNum := big.NewInt(ctx.BlockHeight())
|
||||
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
|
||||
egcd.evmKeeper.ResetRefundTransient(ctx)
|
||||
|
||||
config, found := egcd.evmKeeper.GetChainConfig(ctx)
|
||||
if !found {
|
||||
return ctx, evmtypes.ErrChainConfigNotFound
|
||||
}
|
||||
params := egcd.evmKeeper.GetParams(ctx)
|
||||
|
||||
ethCfg := config.EthereumConfig(egcd.evmKeeper.ChainID())
|
||||
ethCfg := params.ChainConfig.EthereumConfig(egcd.evmKeeper.ChainID())
|
||||
|
||||
blockHeight := big.NewInt(ctx.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) {
|
||||
ctd.evmKeeper.WithContext(ctx)
|
||||
|
||||
config, found := ctd.evmKeeper.GetChainConfig(ctx)
|
||||
if !found {
|
||||
return ctx, evmtypes.ErrChainConfigNotFound
|
||||
}
|
||||
params := ctd.evmKeeper.GetParams(ctx)
|
||||
|
||||
ethCfg := config.EthereumConfig(ctd.evmKeeper.ChainID())
|
||||
ethCfg := params.ChainConfig.EthereumConfig(ctd.evmKeeper.ChainID())
|
||||
signer := ethtypes.MakeSigner(ethCfg, big.NewInt(ctx.BlockHeight()))
|
||||
|
||||
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
|
||||
// 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.
|
||||
func (ald AccessListDecorator) AnteHandle(ctx sdk.Context, tx sdk.Tx, simulate bool, next sdk.AnteHandler) (sdk.Context, error) {
|
||||
|
||||
config, found := ald.evmKeeper.GetChainConfig(ctx)
|
||||
if !found {
|
||||
return ctx, evmtypes.ErrChainConfigNotFound
|
||||
}
|
||||
|
||||
ethCfg := config.EthereumConfig(ald.evmKeeper.ChainID())
|
||||
params := ald.evmKeeper.GetParams(ctx)
|
||||
ethCfg := params.ChainConfig.EthereumConfig(ald.evmKeeper.ChainID())
|
||||
|
||||
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
@ -41,8 +41,6 @@
|
||||
- [QueryBlockBloomResponse](#ethermint.evm.v1alpha1.QueryBlockBloomResponse)
|
||||
- [QueryBlockLogsRequest](#ethermint.evm.v1alpha1.QueryBlockLogsRequest)
|
||||
- [QueryBlockLogsResponse](#ethermint.evm.v1alpha1.QueryBlockLogsResponse)
|
||||
- [QueryChainConfigRequest](#ethermint.evm.v1alpha1.QueryChainConfigRequest)
|
||||
- [QueryChainConfigResponse](#ethermint.evm.v1alpha1.QueryChainConfigResponse)
|
||||
- [QueryCodeRequest](#ethermint.evm.v1alpha1.QueryCodeRequest)
|
||||
- [QueryCodeResponse](#ethermint.evm.v1alpha1.QueryCodeResponse)
|
||||
- [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>
|
||||
|
||||
### ChainConfig
|
||||
ChainConfig defines the Ethereum ChainConfig parameters using sdk.Int values
|
||||
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.
|
||||
ChainConfig defines the Ethereum ChainConfig parameters using *sdk.Int values
|
||||
instead of *big.Int.
|
||||
|
||||
|
||||
| Field | Type | Label | Description |
|
||||
| ----- | ---- | ----- | ----------- |
|
||||
| `homestead_block` | [string](#string) | | Homestead switch block (< 0 no fork, 0 = already homestead) |
|
||||
| `dao_fork_block` | [string](#string) | | TheDAO hard-fork switch block (< 0 no fork) |
|
||||
| `homestead_block` | [string](#string) | | Homestead switch block (nil no fork, 0 = already homestead) |
|
||||
| `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 |
|
||||
| `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) |
|
||||
| `eip155_block` | [string](#string) | | EIP155Block HF block |
|
||||
| `eip158_block` | [string](#string) | | EIP158 HF block |
|
||||
| `byzantium_block` | [string](#string) | | Byzantium switch block (< 0 no fork, 0 = already on byzantium) |
|
||||
| `constantinople_block` | [string](#string) | | Constantinople switch block (< 0 no fork, 0 = already activated) |
|
||||
| `petersburg_block` | [string](#string) | | Petersburg switch block (< 0 same as Constantinople) |
|
||||
| `istanbul_block` | [string](#string) | | Istanbul switch block (< 0 no fork, 0 = already on istanbul) |
|
||||
| `muir_glacier_block` | [string](#string) | | Eip-2384 (bomb delay) switch block (< 0 no fork, 0 = already activated) |
|
||||
| `berlin_block` | [string](#string) | | Berlin switch block (< 0 = no fork, 0 = already on berlin) |
|
||||
| `byzantium_block` | [string](#string) | | Byzantium switch block (nil no fork, 0 = already on byzantium) |
|
||||
| `constantinople_block` | [string](#string) | | Constantinople switch block (nil no fork, 0 = already activated) |
|
||||
| `petersburg_block` | [string](#string) | | Petersburg switch block (nil same as Constantinople) |
|
||||
| `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 (nil no fork, 0 = already activated) |
|
||||
| `berlin_block` | [string](#string) | | Berlin switch block (nil = no fork, 0 = already on berlin) |
|
||||
| `yolo_v3_block` | [string](#string) | | YOLO v3: Gas repricings |
|
||||
| `ewasm_block` | [string](#string) | | EWASM switch block (< 0 no fork, 0 = already activated) |
|
||||
| `catalyst_block` | [string](#string) | | Catalyst switch block (< 0 = no fork, 0 = already on catalyst) |
|
||||
| `ewasm_block` | [string](#string) | | EWASM switch block (nil no fork, 0 = already activated) |
|
||||
| `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 |
|
||||
| ----- | ---- | ----- | ----------- |
|
||||
| `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_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 |
|
||||
| `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_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 |
|
||||
| `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 |
|
||||
| ----- | ---- | ----- | ----------- |
|
||||
| `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. |
|
||||
| `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>
|
||||
|
||||
### 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}|
|
||||
| `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|
|
||||
| `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|
|
||||
| `EthCall` | [EthCallRequest](#ethermint.evm.v1alpha1.EthCallRequest) | [MsgEthereumTxResponse](#ethermint.evm.v1alpha1.MsgEthereumTxResponse) | EthCall implements the `eth_call` rpc api | GET|/ethermint/evm/v1alpha1/eth_call|
|
||||
|
||||
|
@ -17,7 +17,6 @@ import (
|
||||
"github.com/ethereum/go-ethereum/common"
|
||||
"github.com/ethereum/go-ethereum/common/hexutil"
|
||||
ethtypes "github.com/ethereum/go-ethereum/core/types"
|
||||
"github.com/ethereum/go-ethereum/params"
|
||||
|
||||
ethermint "github.com/tharsis/ethermint/types"
|
||||
evmtypes "github.com/tharsis/ethermint/x/evm/types"
|
||||
@ -42,8 +41,6 @@ type Backend interface {
|
||||
// Used by log filter
|
||||
GetTransactionLogs(txHash common.Hash) ([]*ethtypes.Log, error)
|
||||
BloomStatus() (uint64, uint64)
|
||||
|
||||
ChainConfig() *params.ChainConfig
|
||||
}
|
||||
|
||||
var _ Backend = (*EVMBackend)(nil)
|
||||
@ -383,14 +380,3 @@ func (e *EVMBackend) GetLogsByNumber(blockNum types.BlockNumber) ([][]*ethtypes.
|
||||
func (e *EVMBackend) BloomStatus() (uint64, uint64) {
|
||||
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
14
go.mod
@ -3,6 +3,10 @@ module github.com/tharsis/ethermint
|
||||
go 1.15
|
||||
|
||||
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/aws/aws-sdk-go v1.38.21 // 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/ibc-go v1.0.0-beta1
|
||||
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/gofrs/uuid v4.0.0+incompatible // indirect
|
||||
github.com/gogo/protobuf v1.3.3
|
||||
@ -24,12 +29,17 @@ require (
|
||||
github.com/gorilla/websocket v1.4.2
|
||||
github.com/grpc-ecosystem/grpc-gateway v1.16.0
|
||||
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/kardianos/osext v0.0.0-20190222173326-2bc1f35cddc0 // indirect
|
||||
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/pkg/errors v0.9.1
|
||||
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/regen-network/cosmos-proto v0.3.1
|
||||
github.com/rjeczalik/notify v0.9.2 // indirect
|
||||
@ -44,8 +54,8 @@ require (
|
||||
github.com/tyler-smith/go-bip39 v1.1.0
|
||||
github.com/xlab/closer v0.0.0-20190328110542-03326addb7c2
|
||||
github.com/xlab/suplog v1.3.0
|
||||
golang.org/x/crypto v0.0.0-20210616213533-5ff15b29337e // indirect
|
||||
google.golang.org/genproto v0.0.0-20210707164411-8c882eb9abba
|
||||
golang.org/x/crypto v0.0.0-20210711020723-a769d52b0f97 // indirect
|
||||
google.golang.org/genproto v0.0.0-20210712171009-5404628d0f46
|
||||
google.golang.org/grpc v1.39.0
|
||||
gopkg.in/yaml.v2 v2.4.0
|
||||
nhooyr.io/websocket v1.8.7 // indirect
|
||||
|
49
go.sum
49
go.sum
@ -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/go.mod h1:1jcaCB/ufaK+sKp1NBhlGmpz41jOoPQ35bpF36t7BBo=
|
||||
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/go.mod h1:HSdplMjZKSmBqAxg5vPj2TmRDmfkzw+cTzAElWljhcU=
|
||||
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/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/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/thrift v0.12.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/go.mod h1:SnuYRW9lp1oJrZX/dXJqr0cPK5gYXqx3EJbmjhLdK9U=
|
||||
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 v1.1.0/go.mod h1:J7Y8YcW2NihsgmVo/mv3lAwl/skON4iLHjSsI+c5H38=
|
||||
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/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.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.25/go.mod h1:vMkFiYLHI4tgPw4k2j4MHKoovchFE8plZ0M9VMk4/oM=
|
||||
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/protobuf v3.14.0+incompatible/go.mod h1:lUQ9D1ePzbH2PrIS7ob/bjm9HXyH5WHB0Akwh7URreM=
|
||||
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.1.1/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/go.mod h1:y4ga/t+u+Xwd7CpDgZESaRcWy0I7XMlTMA25ApIH5Jw=
|
||||
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/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.20210310174557-0ca763054c88 h1:bcAj8KroPf552TScjFPIakjH2/tdIrIH8F+cc4v4SRo=
|
||||
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/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-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/go.mod h1:6hRR09jOEG81ADP5wCQju1z71g6OL4eEvELdran/3cs=
|
||||
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-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/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.1/go.mod h1:PppfXfuXeibc/6YijjN8zIbojt8czPbwD3XqdrwzmxQ=
|
||||
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/go.mod h1:BQskDq+xkJ12lmlUUi7U0M5Swg3EWR+dLTk+kldvVxY=
|
||||
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.1.0 h1:lukF9ziXFxDFPkA1vsr5zpc1XuPDn/wFntq5mG+4E0Y=
|
||||
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.4.1 h1:CpVNEelQCZBooIPDn+AR3NpivK/TIKU8bDxdASFVQag=
|
||||
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-20180306012644-bacd9c7ef1dd h1:TRLaZ9cD/w8PVh93nsPXa1VrQ6jlwL5oN8l14QlcNfg=
|
||||
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-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-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/toml v0.1.2-0.20170918210437-9fafd6967416/go.mod h1:NBIhNtsFMo3G2szEBne+bO4gS192HuIYRqfvOWb4i1E=
|
||||
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/sftp v1.10.1/go.mod h1:lYOWFsE0bwd1+KfKJaKeuokY15vzFx25BLbzYYoAxZI=
|
||||
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/go.mod h1:iKH77koFhYxTK1pcRnkKkqfTogsbg7gZNVY4sRDYZ/4=
|
||||
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.10.0 h1:If5rVCMTp6W2SiRAQFlbpJNgVlgMEd+U2GZckwK38ic=
|
||||
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/go.mod h1:AlZONWzMtEnMs7W4e/1LURLiI49pIMmp6V9Unghqrcc=
|
||||
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/go.mod h1:JwIasOWyU6f++ZhiEuf87xNszmSA2myDM2Kzu9HwQUA=
|
||||
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.6.0 h1:xoax2sJ2DT8S8xA2paPFjDCScCNeWsg75VG0DLRreiY=
|
||||
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.2.0 h1:Hbg2NidpLE8veEBkEZTL3CvlkUIVzuU9jDplZO54c48=
|
||||
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.2/go.mod h1:a8OnRcib4nhh0OaRAV+Yts87kKdq0PP7pXfy6kDkUVs=
|
||||
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.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-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-20181029021203-45a5f77698d3/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-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-20210616213533-5ff15b29337e h1:gsTQYXdTw2Gq7RBsWvlQ91b+aEQ6bXFUngBGuR8sPpI=
|
||||
golang.org/x/crypto v0.0.0-20210616213533-5ff15b29337e/go.mod h1:GvvjBRRGRdwPK5ydBHafDWAxML/pGHZbMvKqRZ5+Abc=
|
||||
golang.org/x/crypto v0.0.0-20210711020723-a769d52b0f97 h1:/UOmuWzQfxxo9UtlXMwuQU8CMgg1eZXqTRwkSQJWKOI=
|
||||
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-20180807140117-3d87b88a115f/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-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-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-20190911185100-cd5d95a43a6e/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/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-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-20190418145605-e7d98fc518a7/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-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-20210707164411-8c882eb9abba h1:7ajVqfUjhvVuXCb+sdXdKsOD53caRpfMofvihWF1314=
|
||||
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 h1:C+heNsV69Z0EjfRnhU7mg6EX5zz5l7x7hhTil+Ayj8g=
|
||||
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/go.mod h1:JMHMWHQWaTccqQQlmk3MJZS+GWXOdAesneDmEnv2fbc=
|
||||
google.golang.org/grpc/cmd/protoc-gen-go-grpc v1.0.1/go.mod h1:6Kw0yEErY5E/yWrBtf03jp27GLLJujG4z/JK95pnjjw=
|
||||
|
@ -9,52 +9,42 @@ option go_package = "github.com/tharsis/ethermint/x/evm/types";
|
||||
message Params {
|
||||
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.
|
||||
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\""];
|
||||
// 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\""];
|
||||
// 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\""];
|
||||
// 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
|
||||
// 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.
|
||||
// ChainConfig defines the Ethereum ChainConfig parameters using *sdk.Int values
|
||||
// instead of *big.Int.
|
||||
message ChainConfig {
|
||||
// Homestead switch block (< 0 no fork, 0 = already homestead)
|
||||
// Homestead switch block (nil no fork, 0 = already homestead)
|
||||
string homestead_block = 1 [
|
||||
(gogoproto.customtype) = "github.com/cosmos/cosmos-sdk/types.Int",
|
||||
(gogoproto.moretags) = "yaml:\"homestead_block\"",
|
||||
(gogoproto.nullable) = false
|
||||
(gogoproto.moretags) = "yaml:\"homestead_block\""
|
||||
];
|
||||
// TheDAO hard-fork switch block (< 0 no fork)
|
||||
// TheDAO hard-fork switch block (nil no fork)
|
||||
string dao_fork_block = 2 [
|
||||
(gogoproto.customname) = "DAOForkBlock",
|
||||
(gogoproto.customtype) = "github.com/cosmos/cosmos-sdk/types.Int",
|
||||
(gogoproto.moretags) = "yaml:\"dao_fork_block\"",
|
||||
(gogoproto.nullable) = false
|
||||
(gogoproto.moretags) = "yaml:\"dao_fork_block\""
|
||||
];
|
||||
// Whether the nodes supports or opposes the DAO hard-fork
|
||||
bool dao_fork_support = 3
|
||||
[(gogoproto.customname) = "DAOForkSupport", (gogoproto.moretags) = "yaml:\"dao_fork_support\""];
|
||||
// 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 [
|
||||
(gogoproto.customname) = "EIP150Block",
|
||||
(gogoproto.customtype) = "github.com/cosmos/cosmos-sdk/types.Int",
|
||||
(gogoproto.moretags) = "yaml:\"eip150_block\"",
|
||||
(gogoproto.nullable) = false
|
||||
(gogoproto.moretags) = "yaml:\"eip150_block\""
|
||||
];
|
||||
// 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\""];
|
||||
@ -62,70 +52,59 @@ message ChainConfig {
|
||||
string eip155_block = 6 [
|
||||
(gogoproto.customname) = "EIP155Block",
|
||||
(gogoproto.customtype) = "github.com/cosmos/cosmos-sdk/types.Int",
|
||||
(gogoproto.moretags) = "yaml:\"eip155_block\"",
|
||||
(gogoproto.nullable) = false
|
||||
(gogoproto.moretags) = "yaml:\"eip155_block\""
|
||||
];
|
||||
// EIP158 HF block
|
||||
string eip158_block = 7 [
|
||||
(gogoproto.customname) = "EIP158Block",
|
||||
(gogoproto.customtype) = "github.com/cosmos/cosmos-sdk/types.Int",
|
||||
(gogoproto.moretags) = "yaml:\"eip158_block\"",
|
||||
(gogoproto.nullable) = false
|
||||
(gogoproto.moretags) = "yaml:\"eip158_block\""
|
||||
];
|
||||
// Byzantium switch block (< 0 no fork, 0 = already on byzantium)
|
||||
// Byzantium switch block (nil no fork, 0 = already on byzantium)
|
||||
string byzantium_block = 8 [
|
||||
(gogoproto.customtype) = "github.com/cosmos/cosmos-sdk/types.Int",
|
||||
(gogoproto.moretags) = "yaml:\"byzantium_block\"",
|
||||
(gogoproto.nullable) = false
|
||||
(gogoproto.moretags) = "yaml:\"byzantium_block\""
|
||||
];
|
||||
// Constantinople switch block (< 0 no fork, 0 = already activated)
|
||||
// Constantinople switch block (nil no fork, 0 = already activated)
|
||||
string constantinople_block = 9 [
|
||||
(gogoproto.customtype) = "github.com/cosmos/cosmos-sdk/types.Int",
|
||||
(gogoproto.moretags) = "yaml:\"constantinople_block\"",
|
||||
(gogoproto.nullable) = false
|
||||
(gogoproto.moretags) = "yaml:\"constantinople_block\""
|
||||
];
|
||||
// Petersburg switch block (< 0 same as Constantinople)
|
||||
// Petersburg switch block (nil same as Constantinople)
|
||||
string petersburg_block = 10 [
|
||||
(gogoproto.customtype) = "github.com/cosmos/cosmos-sdk/types.Int",
|
||||
(gogoproto.moretags) = "yaml:\"petersburg_block\"",
|
||||
(gogoproto.nullable) = false
|
||||
(gogoproto.moretags) = "yaml:\"petersburg_block\""
|
||||
];
|
||||
// Istanbul switch block (< 0 no fork, 0 = already on istanbul)
|
||||
// Istanbul switch block (nil no fork, 0 = already on istanbul)
|
||||
string istanbul_block = 11 [
|
||||
(gogoproto.customtype) = "github.com/cosmos/cosmos-sdk/types.Int",
|
||||
(gogoproto.moretags) = "yaml:\"istanbul_block\"",
|
||||
(gogoproto.nullable) = false
|
||||
(gogoproto.moretags) = "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)
|
||||
string muir_glacier_block = 12 [
|
||||
(gogoproto.customtype) = "github.com/cosmos/cosmos-sdk/types.Int",
|
||||
(gogoproto.moretags) = "yaml:\"muir_glacier_block\"",
|
||||
(gogoproto.nullable) = false
|
||||
(gogoproto.moretags) = "yaml:\"muir_glacier_block\""
|
||||
];
|
||||
// Berlin switch block (< 0 = no fork, 0 = already on berlin)
|
||||
// Berlin switch block (nil = no fork, 0 = already on berlin)
|
||||
string berlin_block = 13 [
|
||||
(gogoproto.customtype) = "github.com/cosmos/cosmos-sdk/types.Int",
|
||||
(gogoproto.moretags) = "yaml:\"berlin_block\"",
|
||||
(gogoproto.nullable) = false
|
||||
(gogoproto.moretags) = "yaml:\"berlin_block\""
|
||||
];
|
||||
// YOLO v3: Gas repricings
|
||||
string yolo_v3_block = 14 [
|
||||
(gogoproto.customtype) = "github.com/cosmos/cosmos-sdk/types.Int",
|
||||
(gogoproto.moretags) = "yaml:\"yolo_v3_block\"",
|
||||
(gogoproto.nullable) = false
|
||||
(gogoproto.moretags) = "yaml:\"yolo_v3_block\""
|
||||
];
|
||||
// EWASM switch block (< 0 no fork, 0 = already activated)
|
||||
// EWASM switch block (nil no fork, 0 = already activated)
|
||||
string ewasm_block = 15 [
|
||||
(gogoproto.customname) = "EWASMBlock",
|
||||
(gogoproto.customtype) = "github.com/cosmos/cosmos-sdk/types.Int",
|
||||
(gogoproto.moretags) = "yaml:\"ewasm_block\"",
|
||||
(gogoproto.nullable) = false
|
||||
(gogoproto.moretags) = "yaml:\"ewasm_block\""
|
||||
];
|
||||
// Catalyst switch block (< 0 = no fork, 0 = already on catalyst)
|
||||
// Catalyst switch block (nil = no fork, 0 = already on catalyst)
|
||||
string catalyst_block = 16 [
|
||||
(gogoproto.customtype) = "github.com/cosmos/cosmos-sdk/types.Int",
|
||||
(gogoproto.moretags) = "yaml:\"catalyst_block\"",
|
||||
(gogoproto.nullable) = false
|
||||
(gogoproto.moretags) = "yaml:\"catalyst_block\""
|
||||
];
|
||||
}
|
||||
|
||||
|
@ -10,8 +10,6 @@ option go_package = "github.com/tharsis/ethermint/x/evm/types";
|
||||
message GenesisState {
|
||||
// accounts is an array containing the ethereum genesis accounts.
|
||||
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 params = 3 [(gogoproto.nullable) = false];
|
||||
|
||||
|
@ -62,11 +62,6 @@ service Query {
|
||||
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.
|
||||
rpc StaticCall(QueryStaticCallRequest) returns (QueryStaticCallResponse) {
|
||||
option (google.api.http).get = "/ethermint/evm/v1alpha1/static_call";
|
||||
@ -239,15 +234,6 @@ message QueryParamsResponse {
|
||||
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
|
||||
message QueryStaticCallRequest {
|
||||
// address is the ethereum contract hex address to for static call.
|
||||
|
@ -59,8 +59,6 @@ func InitGenesis(
|
||||
k.SetLogs(ethcmn.HexToHash(txLog.Hash), txLog.EthLogs())
|
||||
}
|
||||
|
||||
k.SetChainConfig(ctx, data.ChainConfig)
|
||||
|
||||
return []abci.ValidatorUpdate{}
|
||||
}
|
||||
|
||||
@ -94,12 +92,9 @@ func ExportGenesis(ctx sdk.Context, k *keeper.Keeper, ak types.AccountKeeper) *t
|
||||
return false
|
||||
})
|
||||
|
||||
config, _ := k.GetChainConfig(ctx)
|
||||
|
||||
return &types.GenesisState{
|
||||
Accounts: ethGenAccounts,
|
||||
TxsLogs: k.GetAllTxLogs(ctx),
|
||||
ChainConfig: config,
|
||||
Params: k.GetParams(ctx),
|
||||
Accounts: ethGenAccounts,
|
||||
TxsLogs: k.GetAllTxLogs(ctx),
|
||||
Params: k.GetParams(ctx),
|
||||
}
|
||||
}
|
||||
|
@ -298,19 +298,6 @@ func (k Keeper) Params(c context.Context, _ *types.QueryParamsRequest) (*types.Q
|
||||
}, 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
|
||||
func (k Keeper) StaticCall(c context.Context, req *types.QueryStaticCallRequest) (*types.QueryStaticCallResponse, error) {
|
||||
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))
|
||||
|
||||
cfg, found := k.GetChainConfig(ctx)
|
||||
if !found {
|
||||
return nil, status.Error(codes.Internal, types.ErrChainConfigNotFound.Error())
|
||||
}
|
||||
ethCfg := cfg.EthereumConfig(k.eip155ChainID)
|
||||
evm := k.NewEVM(msg, ethCfg)
|
||||
params := k.GetParams(ctx)
|
||||
ethCfg := params.ChainConfig.EthereumConfig(k.eip155ChainID)
|
||||
|
||||
evm := k.NewEVM(msg, ethCfg, params)
|
||||
res, err := k.ApplyMessage(evm, msg, ethCfg)
|
||||
if err != nil {
|
||||
return nil, status.Error(codes.Internal, err.Error())
|
||||
|
@ -608,15 +608,6 @@ func (suite *KeeperTestSuite) TestQueryParams() {
|
||||
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() {
|
||||
var (
|
||||
req *types.QueryValidatorAccountRequest
|
||||
|
@ -83,15 +83,3 @@ func (suite *KeeperTestSuite) SetupTest() {
|
||||
func TestKeeperTestSuite(t *testing.T) {
|
||||
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)
|
||||
}
|
||||
|
@ -16,23 +16,3 @@ func (k Keeper) GetParams(ctx sdk.Context) (params types.Params) {
|
||||
func (k Keeper) SetParams(ctx sdk.Context, params types.Params) {
|
||||
k.paramSpace.SetParamSet(ctx, ¶ms)
|
||||
}
|
||||
|
||||
// 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)
|
||||
}
|
||||
|
@ -25,7 +25,7 @@ import (
|
||||
)
|
||||
|
||||
// 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{
|
||||
CanTransfer: core.CanTransfer,
|
||||
Transfer: core.Transfer,
|
||||
@ -38,16 +38,14 @@ func (k *Keeper) NewEVM(msg core.Message, config *params.ChainConfig) *vm.EVM {
|
||||
}
|
||||
|
||||
txCtx := core.NewEVMTxContext(msg)
|
||||
vmConfig := k.VMConfig()
|
||||
vmConfig := k.VMConfig(params)
|
||||
|
||||
return vm.NewEVM(blockCtx, txCtx, k, config, vmConfig)
|
||||
}
|
||||
|
||||
// VMConfig creates an EVM configuration from the module parameters and the debug setting.
|
||||
// The config generated uses the default JumpTable from the EVM.
|
||||
func (k Keeper) VMConfig() vm.Config {
|
||||
params := k.GetParams(k.ctx)
|
||||
|
||||
func (k Keeper) VMConfig(params types.Params) vm.Config {
|
||||
return vm.Config{
|
||||
Debug: k.debug,
|
||||
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) {
|
||||
defer telemetry.ModuleMeasureSince(types.ModuleName, time.Now(), types.MetricKeyTransitionDB)
|
||||
|
||||
cfg, found := k.GetChainConfig(k.ctx)
|
||||
if !found {
|
||||
return nil, stacktrace.Propagate(types.ErrChainConfigNotFound, "configuration not found")
|
||||
}
|
||||
ethCfg := cfg.EthereumConfig(k.eip155ChainID)
|
||||
params := k.GetParams(k.ctx)
|
||||
ethCfg := params.ChainConfig.EthereumConfig(k.eip155ChainID)
|
||||
|
||||
// get the latest signer according to the chain rules from the config
|
||||
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()
|
||||
k.ctx = cacheCtx
|
||||
|
||||
evm := k.NewEVM(msg, ethCfg)
|
||||
evm := k.NewEVM(msg, ethCfg, params)
|
||||
|
||||
k.SetTxHashTransient(tx.Hash())
|
||||
k.IncreaseTxIndexTransient()
|
||||
|
@ -29,37 +29,49 @@ func (cc ChainConfig) EthereumConfig(chainID *big.Int) *params.ChainConfig {
|
||||
IstanbulBlock: getBlockValue(cc.IstanbulBlock),
|
||||
MuirGlacierBlock: getBlockValue(cc.MuirGlacierBlock),
|
||||
BerlinBlock: getBlockValue(cc.BerlinBlock),
|
||||
// TODO(xlab): after upgrading ethereum to newer version, this should be set to YoloV2Block
|
||||
YoloV3Block: getBlockValue(cc.YoloV3Block),
|
||||
EWASMBlock: getBlockValue(cc.EWASMBlock),
|
||||
CatalystBlock: getBlockValue(cc.CatalystBlock),
|
||||
YoloV3Block: getBlockValue(cc.YoloV3Block),
|
||||
EWASMBlock: getBlockValue(cc.EWASMBlock),
|
||||
CatalystBlock: getBlockValue(cc.CatalystBlock),
|
||||
}
|
||||
}
|
||||
|
||||
// DefaultChainConfig returns default evm parameters.
|
||||
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{
|
||||
HomesteadBlock: sdk.ZeroInt(),
|
||||
DAOForkBlock: sdk.ZeroInt(),
|
||||
HomesteadBlock: &homesteadBlock,
|
||||
DAOForkBlock: &daoForkBlock,
|
||||
DAOForkSupport: true,
|
||||
EIP150Block: sdk.ZeroInt(),
|
||||
EIP150Block: &eip150Block,
|
||||
EIP150Hash: common.Hash{}.String(),
|
||||
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(),
|
||||
EWASMBlock: sdk.NewInt(-1),
|
||||
CatalystBlock: sdk.NewInt(-1),
|
||||
EIP155Block: &eip155Block,
|
||||
EIP158Block: &eip158Block,
|
||||
ByzantiumBlock: &byzantiumBlock,
|
||||
ConstantinopleBlock: &constantinopleBlock,
|
||||
PetersburgBlock: &petersburgBlock,
|
||||
IstanbulBlock: &istanbulBlock,
|
||||
MuirGlacierBlock: &muirGlacierBlock,
|
||||
BerlinBlock: &berlinBlock,
|
||||
YoloV3Block: &yoloV3Block,
|
||||
EWASMBlock: nil,
|
||||
CatalystBlock: nil,
|
||||
}
|
||||
}
|
||||
|
||||
func getBlockValue(block sdk.Int) *big.Int {
|
||||
if block.IsNegative() {
|
||||
func getBlockValue(block *sdk.Int) *big.Int {
|
||||
if block == nil || block.IsNegative() {
|
||||
return nil
|
||||
}
|
||||
|
||||
@ -102,6 +114,9 @@ func (cc ChainConfig) Validate() error {
|
||||
if err := validateBlock(cc.MuirGlacierBlock); err != nil {
|
||||
return sdkerrors.Wrap(err, "muirGlacierBlock")
|
||||
}
|
||||
if err := validateBlock(cc.BerlinBlock); err != nil {
|
||||
return sdkerrors.Wrap(err, "berlinBlock")
|
||||
}
|
||||
if err := validateBlock(cc.YoloV3Block); err != nil {
|
||||
return sdkerrors.Wrap(err, "yoloV3Block")
|
||||
}
|
||||
@ -123,11 +138,15 @@ func validateHash(hex string) error {
|
||||
return nil
|
||||
}
|
||||
|
||||
func validateBlock(block sdk.Int) error {
|
||||
if block == (sdk.Int{}) || block.BigInt() == nil {
|
||||
func validateBlock(block *sdk.Int) error {
|
||||
// nil value means that the fork has not yet been applied
|
||||
if block == nil {
|
||||
return nil
|
||||
}
|
||||
|
||||
if block.IsNegative() {
|
||||
return sdkerrors.Wrapf(
|
||||
ErrInvalidChainConfig,
|
||||
"cannot use uninitialized or nil values for Int, set a negative Int value if you want to define a nil Ethereum block",
|
||||
ErrInvalidChainConfig, "block value cannot be negative: %s", block,
|
||||
)
|
||||
}
|
||||
|
||||
|
@ -12,6 +12,11 @@ import (
|
||||
|
||||
var defaultEIP150Hash = common.Hash{}.String()
|
||||
|
||||
func newIntPtr(i int64) *sdk.Int {
|
||||
v := sdk.NewInt(i)
|
||||
return &v
|
||||
}
|
||||
|
||||
func TestChainConfigValidate(t *testing.T) {
|
||||
testCases := []struct {
|
||||
name string
|
||||
@ -22,58 +27,80 @@ func TestChainConfigValidate(t *testing.T) {
|
||||
{
|
||||
"valid",
|
||||
ChainConfig{
|
||||
HomesteadBlock: sdk.OneInt(),
|
||||
DAOForkBlock: sdk.OneInt(),
|
||||
EIP150Block: sdk.OneInt(),
|
||||
HomesteadBlock: newIntPtr(0),
|
||||
DAOForkBlock: newIntPtr(0),
|
||||
EIP150Block: newIntPtr(0),
|
||||
EIP150Hash: defaultEIP150Hash,
|
||||
EIP155Block: sdk.OneInt(),
|
||||
EIP158Block: sdk.OneInt(),
|
||||
ByzantiumBlock: sdk.OneInt(),
|
||||
ConstantinopleBlock: sdk.OneInt(),
|
||||
PetersburgBlock: sdk.OneInt(),
|
||||
IstanbulBlock: sdk.OneInt(),
|
||||
MuirGlacierBlock: sdk.OneInt(),
|
||||
YoloV3Block: sdk.OneInt(),
|
||||
EWASMBlock: sdk.OneInt(),
|
||||
CatalystBlock: sdk.OneInt(),
|
||||
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(0),
|
||||
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,
|
||||
},
|
||||
{
|
||||
"empty",
|
||||
ChainConfig{},
|
||||
true,
|
||||
false,
|
||||
},
|
||||
{
|
||||
"invalid HomesteadBlock",
|
||||
ChainConfig{
|
||||
HomesteadBlock: sdk.Int{},
|
||||
HomesteadBlock: newIntPtr(-1),
|
||||
},
|
||||
true,
|
||||
},
|
||||
{
|
||||
"invalid DAOForkBlock",
|
||||
ChainConfig{
|
||||
HomesteadBlock: sdk.OneInt(),
|
||||
DAOForkBlock: sdk.Int{},
|
||||
HomesteadBlock: newIntPtr(0),
|
||||
DAOForkBlock: newIntPtr(-1),
|
||||
},
|
||||
true,
|
||||
},
|
||||
{
|
||||
"invalid EIP150Block",
|
||||
ChainConfig{
|
||||
HomesteadBlock: sdk.OneInt(),
|
||||
DAOForkBlock: sdk.OneInt(),
|
||||
EIP150Block: sdk.Int{},
|
||||
HomesteadBlock: newIntPtr(0),
|
||||
DAOForkBlock: newIntPtr(0),
|
||||
EIP150Block: newIntPtr(-1),
|
||||
},
|
||||
true,
|
||||
},
|
||||
{
|
||||
"invalid EIP150Hash",
|
||||
ChainConfig{
|
||||
HomesteadBlock: sdk.OneInt(),
|
||||
DAOForkBlock: sdk.OneInt(),
|
||||
EIP150Block: sdk.OneInt(),
|
||||
HomesteadBlock: newIntPtr(0),
|
||||
DAOForkBlock: newIntPtr(0),
|
||||
EIP150Block: newIntPtr(0),
|
||||
EIP150Hash: " ",
|
||||
},
|
||||
true,
|
||||
@ -81,155 +108,176 @@ func TestChainConfigValidate(t *testing.T) {
|
||||
{
|
||||
"invalid EIP155Block",
|
||||
ChainConfig{
|
||||
HomesteadBlock: sdk.OneInt(),
|
||||
DAOForkBlock: sdk.OneInt(),
|
||||
EIP150Block: sdk.OneInt(),
|
||||
HomesteadBlock: newIntPtr(0),
|
||||
DAOForkBlock: newIntPtr(0),
|
||||
EIP150Block: newIntPtr(0),
|
||||
EIP150Hash: defaultEIP150Hash,
|
||||
EIP155Block: sdk.Int{},
|
||||
EIP155Block: newIntPtr(-1),
|
||||
},
|
||||
true,
|
||||
},
|
||||
{
|
||||
"invalid EIP158Block",
|
||||
ChainConfig{
|
||||
HomesteadBlock: sdk.OneInt(),
|
||||
DAOForkBlock: sdk.OneInt(),
|
||||
EIP150Block: sdk.OneInt(),
|
||||
HomesteadBlock: newIntPtr(0),
|
||||
DAOForkBlock: newIntPtr(0),
|
||||
EIP150Block: newIntPtr(0),
|
||||
EIP150Hash: defaultEIP150Hash,
|
||||
EIP155Block: sdk.OneInt(),
|
||||
EIP158Block: sdk.Int{},
|
||||
EIP155Block: newIntPtr(0),
|
||||
EIP158Block: newIntPtr(-1),
|
||||
},
|
||||
true,
|
||||
},
|
||||
{
|
||||
"invalid ByzantiumBlock",
|
||||
ChainConfig{
|
||||
HomesteadBlock: sdk.OneInt(),
|
||||
DAOForkBlock: sdk.OneInt(),
|
||||
EIP150Block: sdk.OneInt(),
|
||||
HomesteadBlock: newIntPtr(0),
|
||||
DAOForkBlock: newIntPtr(0),
|
||||
EIP150Block: newIntPtr(0),
|
||||
EIP150Hash: defaultEIP150Hash,
|
||||
EIP155Block: sdk.OneInt(),
|
||||
EIP158Block: sdk.OneInt(),
|
||||
ByzantiumBlock: sdk.Int{},
|
||||
EIP155Block: newIntPtr(0),
|
||||
EIP158Block: newIntPtr(0),
|
||||
ByzantiumBlock: newIntPtr(-1),
|
||||
},
|
||||
true,
|
||||
},
|
||||
{
|
||||
"invalid ConstantinopleBlock",
|
||||
ChainConfig{
|
||||
HomesteadBlock: sdk.OneInt(),
|
||||
DAOForkBlock: sdk.OneInt(),
|
||||
EIP150Block: sdk.OneInt(),
|
||||
HomesteadBlock: newIntPtr(0),
|
||||
DAOForkBlock: newIntPtr(0),
|
||||
EIP150Block: newIntPtr(0),
|
||||
EIP150Hash: defaultEIP150Hash,
|
||||
EIP155Block: sdk.OneInt(),
|
||||
EIP158Block: sdk.OneInt(),
|
||||
ByzantiumBlock: sdk.OneInt(),
|
||||
ConstantinopleBlock: sdk.Int{},
|
||||
EIP155Block: newIntPtr(0),
|
||||
EIP158Block: newIntPtr(0),
|
||||
ByzantiumBlock: newIntPtr(0),
|
||||
ConstantinopleBlock: newIntPtr(-1),
|
||||
},
|
||||
true,
|
||||
},
|
||||
{
|
||||
"invalid PetersburgBlock",
|
||||
ChainConfig{
|
||||
HomesteadBlock: sdk.OneInt(),
|
||||
DAOForkBlock: sdk.OneInt(),
|
||||
EIP150Block: sdk.OneInt(),
|
||||
HomesteadBlock: newIntPtr(0),
|
||||
DAOForkBlock: newIntPtr(0),
|
||||
EIP150Block: newIntPtr(0),
|
||||
EIP150Hash: defaultEIP150Hash,
|
||||
EIP155Block: sdk.OneInt(),
|
||||
EIP158Block: sdk.OneInt(),
|
||||
ByzantiumBlock: sdk.OneInt(),
|
||||
ConstantinopleBlock: sdk.OneInt(),
|
||||
PetersburgBlock: sdk.Int{},
|
||||
EIP155Block: newIntPtr(0),
|
||||
EIP158Block: newIntPtr(0),
|
||||
ByzantiumBlock: newIntPtr(0),
|
||||
ConstantinopleBlock: newIntPtr(0),
|
||||
PetersburgBlock: newIntPtr(-1),
|
||||
},
|
||||
true,
|
||||
},
|
||||
{
|
||||
"invalid IstanbulBlock",
|
||||
ChainConfig{
|
||||
HomesteadBlock: sdk.OneInt(),
|
||||
DAOForkBlock: sdk.OneInt(),
|
||||
EIP150Block: sdk.OneInt(),
|
||||
HomesteadBlock: newIntPtr(0),
|
||||
DAOForkBlock: newIntPtr(0),
|
||||
EIP150Block: newIntPtr(0),
|
||||
EIP150Hash: defaultEIP150Hash,
|
||||
EIP155Block: sdk.OneInt(),
|
||||
EIP158Block: sdk.OneInt(),
|
||||
ByzantiumBlock: sdk.OneInt(),
|
||||
ConstantinopleBlock: sdk.OneInt(),
|
||||
PetersburgBlock: sdk.OneInt(),
|
||||
IstanbulBlock: sdk.Int{},
|
||||
EIP155Block: newIntPtr(0),
|
||||
EIP158Block: newIntPtr(0),
|
||||
ByzantiumBlock: newIntPtr(0),
|
||||
ConstantinopleBlock: newIntPtr(0),
|
||||
PetersburgBlock: newIntPtr(0),
|
||||
IstanbulBlock: newIntPtr(-1),
|
||||
},
|
||||
true,
|
||||
},
|
||||
{
|
||||
"invalid MuirGlacierBlock",
|
||||
ChainConfig{
|
||||
HomesteadBlock: sdk.OneInt(),
|
||||
DAOForkBlock: sdk.OneInt(),
|
||||
EIP150Block: sdk.OneInt(),
|
||||
HomesteadBlock: newIntPtr(0),
|
||||
DAOForkBlock: newIntPtr(0),
|
||||
EIP150Block: newIntPtr(0),
|
||||
EIP150Hash: defaultEIP150Hash,
|
||||
EIP155Block: sdk.OneInt(),
|
||||
EIP158Block: sdk.OneInt(),
|
||||
ByzantiumBlock: sdk.OneInt(),
|
||||
ConstantinopleBlock: sdk.OneInt(),
|
||||
PetersburgBlock: sdk.OneInt(),
|
||||
IstanbulBlock: sdk.OneInt(),
|
||||
MuirGlacierBlock: sdk.Int{},
|
||||
EIP155Block: newIntPtr(0),
|
||||
EIP158Block: newIntPtr(0),
|
||||
ByzantiumBlock: newIntPtr(0),
|
||||
ConstantinopleBlock: newIntPtr(0),
|
||||
PetersburgBlock: newIntPtr(0),
|
||||
IstanbulBlock: newIntPtr(0),
|
||||
MuirGlacierBlock: newIntPtr(-1),
|
||||
},
|
||||
true,
|
||||
},
|
||||
{
|
||||
"invalid YoloV2Block",
|
||||
"invalid BerlinBlock",
|
||||
ChainConfig{
|
||||
HomesteadBlock: sdk.OneInt(),
|
||||
DAOForkBlock: sdk.OneInt(),
|
||||
EIP150Block: sdk.OneInt(),
|
||||
HomesteadBlock: newIntPtr(0),
|
||||
DAOForkBlock: newIntPtr(0),
|
||||
EIP150Block: newIntPtr(0),
|
||||
EIP150Hash: defaultEIP150Hash,
|
||||
EIP155Block: sdk.OneInt(),
|
||||
EIP158Block: sdk.OneInt(),
|
||||
ByzantiumBlock: sdk.OneInt(),
|
||||
ConstantinopleBlock: sdk.OneInt(),
|
||||
PetersburgBlock: sdk.OneInt(),
|
||||
IstanbulBlock: sdk.OneInt(),
|
||||
MuirGlacierBlock: sdk.OneInt(),
|
||||
YoloV3Block: sdk.Int{},
|
||||
EIP155Block: newIntPtr(0),
|
||||
EIP158Block: newIntPtr(0),
|
||||
ByzantiumBlock: newIntPtr(0),
|
||||
ConstantinopleBlock: newIntPtr(0),
|
||||
PetersburgBlock: newIntPtr(0),
|
||||
IstanbulBlock: newIntPtr(0),
|
||||
MuirGlacierBlock: newIntPtr(0),
|
||||
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,
|
||||
},
|
||||
{
|
||||
"invalid EWASMBlock",
|
||||
ChainConfig{
|
||||
HomesteadBlock: sdk.OneInt(),
|
||||
DAOForkBlock: sdk.OneInt(),
|
||||
EIP150Block: sdk.OneInt(),
|
||||
HomesteadBlock: newIntPtr(0),
|
||||
DAOForkBlock: newIntPtr(0),
|
||||
EIP150Block: newIntPtr(0),
|
||||
EIP150Hash: defaultEIP150Hash,
|
||||
EIP155Block: sdk.OneInt(),
|
||||
EIP158Block: sdk.OneInt(),
|
||||
ByzantiumBlock: sdk.OneInt(),
|
||||
ConstantinopleBlock: sdk.OneInt(),
|
||||
PetersburgBlock: sdk.OneInt(),
|
||||
IstanbulBlock: sdk.OneInt(),
|
||||
MuirGlacierBlock: sdk.OneInt(),
|
||||
YoloV3Block: sdk.OneInt(),
|
||||
EWASMBlock: sdk.Int{},
|
||||
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(0),
|
||||
EWASMBlock: newIntPtr(-1),
|
||||
},
|
||||
true,
|
||||
},
|
||||
{
|
||||
"invalid CatalystBlock",
|
||||
ChainConfig{
|
||||
HomesteadBlock: sdk.OneInt(),
|
||||
DAOForkBlock: sdk.OneInt(),
|
||||
EIP150Block: sdk.OneInt(),
|
||||
HomesteadBlock: newIntPtr(0),
|
||||
DAOForkBlock: newIntPtr(0),
|
||||
EIP150Block: newIntPtr(0),
|
||||
EIP150Hash: defaultEIP150Hash,
|
||||
EIP155Block: sdk.OneInt(),
|
||||
EIP158Block: sdk.OneInt(),
|
||||
ByzantiumBlock: sdk.OneInt(),
|
||||
ConstantinopleBlock: sdk.OneInt(),
|
||||
PetersburgBlock: sdk.OneInt(),
|
||||
IstanbulBlock: sdk.OneInt(),
|
||||
MuirGlacierBlock: sdk.OneInt(),
|
||||
YoloV3Block: sdk.OneInt(),
|
||||
EWASMBlock: sdk.OneInt(),
|
||||
CatalystBlock: sdk.Int{},
|
||||
EIP155Block: newIntPtr(0),
|
||||
EIP158Block: newIntPtr(0),
|
||||
ByzantiumBlock: newIntPtr(0),
|
||||
ConstantinopleBlock: newIntPtr(0),
|
||||
PetersburgBlock: newIntPtr(0),
|
||||
IstanbulBlock: newIntPtr(0),
|
||||
MuirGlacierBlock: newIntPtr(0),
|
||||
YoloV3Block: newIntPtr(0),
|
||||
|
||||
EWASMBlock: newIntPtr(0),
|
||||
CatalystBlock: newIntPtr(-1),
|
||||
},
|
||||
true,
|
||||
},
|
||||
|
@ -26,15 +26,17 @@ const _ = proto.GoGoProtoPackageIsVersion3 // please upgrade the proto package
|
||||
|
||||
// Params defines the EVM module parameters
|
||||
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.
|
||||
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"`
|
||||
// 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"`
|
||||
// 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"`
|
||||
// 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{} }
|
||||
@ -97,51 +99,49 @@ func (m *Params) GetExtraEIPs() []int64 {
|
||||
return nil
|
||||
}
|
||||
|
||||
// ChainConfig defines the Ethereum ChainConfig parameters using sdk.Int values
|
||||
// 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.
|
||||
func (m *Params) GetChainConfig() ChainConfig {
|
||||
if m != nil {
|
||||
return m.ChainConfig
|
||||
}
|
||||
return ChainConfig{}
|
||||
}
|
||||
|
||||
// ChainConfig defines the Ethereum ChainConfig parameters using *sdk.Int values
|
||||
// instead of *big.Int.
|
||||
type ChainConfig struct {
|
||||
// Homestead switch block (< 0 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"`
|
||||
// TheDAO hard-fork switch block (< 0 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"`
|
||||
// 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,omitempty" yaml:"homestead_block"`
|
||||
// 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,omitempty" yaml:"dao_fork_block"`
|
||||
// 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"`
|
||||
// EIP150 implements the Gas price changes
|
||||
// (https://github.com/ethereum/EIPs/issues/150) EIP150 HF block (< 0 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"`
|
||||
// (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,omitempty" yaml:"eip150_block"`
|
||||
// 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"`
|
||||
// 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
|
||||
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"`
|
||||
// Byzantium switch block (< 0 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"`
|
||||
// Constantinople switch block (< 0 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"`
|
||||
// Petersburg switch block (< 0 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"`
|
||||
// Istanbul switch block (< 0 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"`
|
||||
// Eip-2384 (bomb delay) switch block (< 0 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"`
|
||||
// Berlin switch block (< 0 = 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"`
|
||||
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 (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,omitempty" yaml:"byzantium_block"`
|
||||
// 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,omitempty" yaml:"constantinople_block"`
|
||||
// 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,omitempty" yaml:"petersburg_block"`
|
||||
// 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,omitempty" yaml:"istanbul_block"`
|
||||
// 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,omitempty" yaml:"muir_glacier_block"`
|
||||
// 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,omitempty" yaml:"berlin_block"`
|
||||
// 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"`
|
||||
// EWASM switch block (< 0 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"`
|
||||
// Catalyst switch block (< 0 = 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"`
|
||||
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 (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,omitempty" yaml:"ewasm_block"`
|
||||
// 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,omitempty" yaml:"catalyst_block"`
|
||||
}
|
||||
|
||||
func (m *ChainConfig) Reset() { *m = ChainConfig{} }
|
||||
@ -527,85 +527,87 @@ func init() {
|
||||
func init() { proto.RegisterFile("ethermint/evm/v1alpha1/evm.proto", fileDescriptor_98f00fcca8b6b943) }
|
||||
|
||||
var fileDescriptor_98f00fcca8b6b943 = []byte{
|
||||
// 1239 bytes of a gzipped FileDescriptorProto
|
||||
0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0xa4, 0x96, 0xbd, 0x6f, 0xdb, 0xc6,
|
||||
0x1b, 0xc7, 0x2d, 0x4b, 0xb6, 0xa5, 0x93, 0x2c, 0xe9, 0x77, 0xd1, 0xcf, 0x55, 0x12, 0xc0, 0x34,
|
||||
0x6e, 0x68, 0x3d, 0x24, 0x56, 0xec, 0xc0, 0x68, 0x10, 0xa0, 0x83, 0x95, 0x38, 0x89, 0x91, 0xa4,
|
||||
0x0d, 0x2e, 0x6e, 0x52, 0x74, 0x21, 0x4e, 0xe4, 0x85, 0x62, 0x4d, 0xf2, 0x58, 0xde, 0x49, 0x91,
|
||||
0x0a, 0x14, 0xe8, 0xd8, 0xb1, 0xdd, 0x3a, 0xe6, 0xcf, 0x09, 0x3a, 0x65, 0x2c, 0x3a, 0x10, 0x85,
|
||||
0xbc, 0x79, 0xd4, 0xdc, 0xa1, 0xb8, 0x17, 0xea, 0x2d, 0x6e, 0x01, 0xc1, 0x13, 0xef, 0x79, 0xee,
|
||||
0xb9, 0xef, 0x87, 0xcf, 0xdd, 0x73, 0x7c, 0x08, 0x76, 0xa8, 0xe8, 0xd2, 0x24, 0xf4, 0x23, 0xd1,
|
||||
0xa2, 0xfd, 0xb0, 0xd5, 0xdf, 0x27, 0x41, 0xdc, 0x25, 0xfb, 0xd2, 0xd8, 0x8b, 0x13, 0x26, 0x18,
|
||||
0xdc, 0x9a, 0x44, 0xec, 0x49, 0x67, 0x16, 0x71, 0xa3, 0xe1, 0x31, 0x8f, 0xa9, 0x90, 0x96, 0x1c,
|
||||
0xe9, 0x68, 0xf4, 0x77, 0x0e, 0xac, 0xbf, 0x20, 0x09, 0x09, 0x39, 0xdc, 0x07, 0x25, 0xda, 0x0f,
|
||||
0x6d, 0x97, 0x46, 0x2c, 0x6c, 0xe6, 0x76, 0x72, 0xbb, 0xa5, 0x76, 0x63, 0x9c, 0x5a, 0xf5, 0x21,
|
||||
0x09, 0x83, 0xfb, 0x68, 0x32, 0x85, 0x70, 0x91, 0xf6, 0xc3, 0x87, 0x72, 0x08, 0xbf, 0x00, 0x9b,
|
||||
0x34, 0x22, 0x9d, 0x80, 0xda, 0x4e, 0x42, 0x89, 0xa0, 0xcd, 0xd5, 0x9d, 0xdc, 0x6e, 0xb1, 0xdd,
|
||||
0x1c, 0xa7, 0x56, 0xc3, 0x2c, 0x9b, 0x9d, 0x46, 0xb8, 0xa2, 0xed, 0x07, 0xca, 0x84, 0x9f, 0x83,
|
||||
0x72, 0x36, 0x4f, 0x82, 0xa0, 0x99, 0x57, 0x8b, 0xb7, 0xc6, 0xa9, 0x05, 0xe7, 0x17, 0x93, 0x20,
|
||||
0x40, 0x18, 0x98, 0xa5, 0x24, 0x08, 0xe0, 0x11, 0x00, 0x74, 0x20, 0x12, 0x62, 0x53, 0x3f, 0xe6,
|
||||
0xcd, 0xc2, 0x4e, 0x7e, 0x37, 0xdf, 0x46, 0xa3, 0xd4, 0x2a, 0x1d, 0x4b, 0xef, 0xf1, 0xc9, 0x0b,
|
||||
0x3e, 0x4e, 0xad, 0xff, 0x19, 0x91, 0x49, 0x20, 0xc2, 0x25, 0x65, 0x1c, 0xfb, 0x31, 0xbf, 0x5f,
|
||||
0xf8, 0xed, 0x9d, 0xb5, 0x82, 0xde, 0x55, 0x41, 0xf9, 0x41, 0x97, 0xf8, 0xd1, 0x03, 0x16, 0xbd,
|
||||
0xf1, 0x3d, 0xf8, 0x3d, 0xa8, 0x75, 0x59, 0x48, 0xb9, 0xa0, 0xc4, 0xb5, 0x3b, 0x01, 0x73, 0xce,
|
||||
0xcc, 0x4e, 0x3c, 0x79, 0x9f, 0x5a, 0x2b, 0x7f, 0xa6, 0xd6, 0xa7, 0x9e, 0x2f, 0xba, 0xbd, 0xce,
|
||||
0x9e, 0xc3, 0xc2, 0x96, 0xc3, 0x78, 0xc8, 0xb8, 0x79, 0xdc, 0xe6, 0xee, 0x59, 0x4b, 0x0c, 0x63,
|
||||
0xca, 0xf7, 0x4e, 0x22, 0x31, 0x4e, 0xad, 0x2d, 0x8d, 0x5f, 0x90, 0x43, 0xb8, 0x3a, 0xf1, 0xb4,
|
||||
0xa5, 0x03, 0xfe, 0x08, 0xaa, 0x2e, 0x61, 0xf6, 0x1b, 0x96, 0x9c, 0x19, 0xe2, 0xaa, 0x22, 0xbe,
|
||||
0x5e, 0x8e, 0x38, 0x4a, 0xad, 0xca, 0xc3, 0xa3, 0xaf, 0x1e, 0xb1, 0xe4, 0x4c, 0xe9, 0x8e, 0x53,
|
||||
0xeb, 0xff, 0xfa, 0x0d, 0xe6, 0xd5, 0x11, 0xae, 0xb8, 0x84, 0x4d, 0xc2, 0xe0, 0x6b, 0x50, 0x9f,
|
||||
0x04, 0xf0, 0x5e, 0x1c, 0xb3, 0x44, 0x98, 0x83, 0xb8, 0x3d, 0x4a, 0xad, 0xaa, 0x91, 0x7c, 0xa9,
|
||||
0x67, 0xc6, 0xa9, 0xf5, 0xc9, 0x82, 0xa8, 0x59, 0x83, 0x70, 0xd5, 0xc8, 0x9a, 0x50, 0xf8, 0x16,
|
||||
0x54, 0xa8, 0x1f, 0xef, 0x1f, 0xde, 0x31, 0x59, 0x15, 0x54, 0x56, 0xa7, 0x4b, 0x67, 0x55, 0x3e,
|
||||
0x3e, 0x79, 0xb1, 0x7f, 0x78, 0x27, 0x4b, 0xea, 0x9a, 0x39, 0xd5, 0x19, 0x69, 0x84, 0xcb, 0xda,
|
||||
0xd4, 0x19, 0x9d, 0x00, 0x63, 0xda, 0x5d, 0xc2, 0xbb, 0xcd, 0x35, 0xc5, 0xdd, 0x1d, 0xa5, 0x16,
|
||||
0xd0, 0x4a, 0x4f, 0x08, 0xef, 0x4e, 0xcf, 0xa7, 0x33, 0xfc, 0x81, 0x44, 0xc2, 0xef, 0x85, 0x99,
|
||||
0x16, 0xd0, 0x8b, 0x65, 0xd4, 0x24, 0x87, 0x43, 0x93, 0xc3, 0xfa, 0x95, 0x72, 0x38, 0xbc, 0x2c,
|
||||
0x87, 0xc3, 0xf9, 0x1c, 0x74, 0xcc, 0x04, 0x7c, 0xcf, 0x80, 0x37, 0xae, 0x04, 0xbe, 0x77, 0x19,
|
||||
0xf8, 0xde, 0x3c, 0x58, 0xc7, 0xc8, 0x0b, 0xb0, 0xb0, 0x23, 0xcd, 0xe2, 0xd5, 0x2e, 0xc0, 0x47,
|
||||
0x1b, 0x5c, 0x9d, 0x78, 0x34, 0xf2, 0xa7, 0x1c, 0x68, 0x38, 0x2c, 0xe2, 0x42, 0x3a, 0x23, 0x16,
|
||||
0x07, 0xd4, 0x80, 0x4b, 0x0a, 0xfc, 0x7c, 0x69, 0xf0, 0x4d, 0x0d, 0xbe, 0x4c, 0x13, 0xe1, 0x6b,
|
||||
0xf3, 0x6e, 0xfd, 0x0a, 0x02, 0xd4, 0x63, 0x2a, 0x68, 0xc2, 0x3b, 0xbd, 0xc4, 0x33, 0x74, 0xa0,
|
||||
0xe8, 0x27, 0x4b, 0xd3, 0xcd, 0x05, 0x59, 0xd4, 0x43, 0xb8, 0x36, 0x75, 0x69, 0x6a, 0x04, 0xaa,
|
||||
0xbe, 0x7c, 0x95, 0x4e, 0x2f, 0x30, 0xcc, 0xb2, 0x62, 0x3e, 0x5e, 0x9a, 0x69, 0x6e, 0xfa, 0xbc,
|
||||
0x1a, 0xc2, 0x9b, 0x99, 0x43, 0xf3, 0x86, 0x00, 0x86, 0x3d, 0x3f, 0xb1, 0xbd, 0x80, 0x38, 0x3e,
|
||||
0x4d, 0x0c, 0xb3, 0xa2, 0x98, 0x4f, 0x97, 0x66, 0x5e, 0xd7, 0xcc, 0x8f, 0x15, 0x11, 0xae, 0x4b,
|
||||
0xe7, 0x63, 0xed, 0xd3, 0xe8, 0x2e, 0xa8, 0x74, 0x68, 0x12, 0xf8, 0x91, 0x81, 0x6e, 0x2a, 0xe8,
|
||||
0xf1, 0xd2, 0x50, 0x53, 0xc0, 0xb3, 0x5a, 0x08, 0x97, 0xb5, 0xa9, 0x49, 0xdf, 0x81, 0xcd, 0x21,
|
||||
0x0b, 0x98, 0xdd, 0xbf, 0x6b, 0x50, 0x55, 0x85, 0x7a, 0xb4, 0x34, 0xca, 0x34, 0xb0, 0x39, 0x31,
|
||||
0x84, 0xcb, 0xd2, 0x7e, 0x75, 0x57, 0xb3, 0x38, 0x28, 0xd3, 0xb7, 0x84, 0x67, 0x17, 0xa5, 0xa6,
|
||||
0x48, 0x78, 0xe9, 0x4b, 0x0a, 0x8e, 0x5f, 0x1f, 0xbd, 0x7c, 0x9e, 0xdd, 0xd1, 0xac, 0xf7, 0x4d,
|
||||
0x85, 0xe5, 0x37, 0x49, 0x5a, 0x93, 0xaa, 0x71, 0x88, 0x20, 0xc1, 0x90, 0x0b, 0xc3, 0xad, 0x5f,
|
||||
0xad, 0x6a, 0xe6, 0xd5, 0x10, 0xde, 0xcc, 0x1c, 0x8a, 0x87, 0x5a, 0x60, 0xed, 0xa5, 0x90, 0xdd,
|
||||
0xba, 0x0e, 0xf2, 0x67, 0x74, 0xa8, 0xfb, 0x21, 0x96, 0x43, 0xd8, 0x00, 0x6b, 0x7d, 0x12, 0xf4,
|
||||
0x74, 0xdb, 0x2f, 0x61, 0x6d, 0xa0, 0x57, 0xa0, 0x76, 0x9a, 0x90, 0x88, 0x13, 0x47, 0xf8, 0x2c,
|
||||
0x7a, 0xc6, 0x3c, 0x0e, 0x21, 0x28, 0xa8, 0x6f, 0xb1, 0x5e, 0xab, 0xc6, 0xb0, 0x05, 0x0a, 0x01,
|
||||
0xf3, 0x78, 0x73, 0x75, 0x27, 0xbf, 0x5b, 0x3e, 0xb8, 0xb9, 0x77, 0xf9, 0x6f, 0xcb, 0xde, 0x33,
|
||||
0xe6, 0x61, 0x15, 0x88, 0x7e, 0x5f, 0x05, 0xf9, 0x67, 0xcc, 0x83, 0x4d, 0xb0, 0x41, 0x5c, 0x37,
|
||||
0xa1, 0x9c, 0x1b, 0xbd, 0xcc, 0x84, 0x5b, 0x60, 0x5d, 0xb0, 0xd8, 0x77, 0xb4, 0x68, 0x09, 0x1b,
|
||||
0x4b, 0xe2, 0x5d, 0x22, 0x88, 0xea, 0x6b, 0x15, 0xac, 0xc6, 0xf0, 0x00, 0x54, 0x54, 0xbe, 0x76,
|
||||
0xd4, 0x0b, 0x3b, 0x34, 0x51, 0xed, 0xa9, 0xd0, 0xae, 0x5d, 0xa4, 0x56, 0x59, 0xf9, 0xbf, 0x54,
|
||||
0x6e, 0x3c, 0x6b, 0xc0, 0x5b, 0x60, 0x43, 0x0c, 0x66, 0xbb, 0xca, 0xb5, 0x8b, 0xd4, 0xaa, 0x89,
|
||||
0x69, 0xb2, 0xb2, 0x69, 0xe0, 0x75, 0x31, 0x78, 0xa2, 0x13, 0x2c, 0x8a, 0x81, 0xed, 0x47, 0x2e,
|
||||
0x1d, 0xa8, 0xc6, 0x51, 0x68, 0x37, 0x2e, 0x52, 0xab, 0x3e, 0x13, 0x7e, 0x22, 0xe7, 0xf0, 0x86,
|
||||
0x18, 0xa8, 0x01, 0xbc, 0x05, 0x80, 0x7e, 0x25, 0x45, 0xd0, 0x9f, 0xfc, 0xcd, 0x8b, 0xd4, 0x2a,
|
||||
0x29, 0xaf, 0xd2, 0x9e, 0x0e, 0x21, 0x02, 0x6b, 0x5a, 0xbb, 0xa8, 0xb4, 0x2b, 0x17, 0xa9, 0x55,
|
||||
0x0c, 0x98, 0xa7, 0x35, 0xf5, 0x94, 0xdc, 0xaa, 0x84, 0x86, 0xac, 0x4f, 0x5d, 0xf5, 0x31, 0x2d,
|
||||
0xe2, 0xcc, 0x44, 0xbf, 0xae, 0x82, 0xe2, 0xe9, 0x00, 0x53, 0xde, 0x0b, 0x04, 0x7c, 0x04, 0xea,
|
||||
0x0e, 0x8b, 0x44, 0x42, 0x1c, 0x61, 0xcf, 0x6d, 0x6d, 0xfb, 0xe6, 0xf4, 0x83, 0xb6, 0x18, 0x81,
|
||||
0x70, 0x2d, 0x73, 0x1d, 0x99, 0xfd, 0x6f, 0x80, 0xb5, 0x4e, 0xc0, 0x58, 0xa8, 0xea, 0xa1, 0x82,
|
||||
0xb5, 0x01, 0xbf, 0x51, 0xbb, 0xa6, 0xce, 0x5a, 0x1e, 0x40, 0xf9, 0xe0, 0xb3, 0x7f, 0x3b, 0xeb,
|
||||
0x85, 0xb2, 0x69, 0x6f, 0xc9, 0x92, 0x1e, 0xa7, 0x56, 0x55, 0xbf, 0x81, 0x51, 0x41, 0x72, 0x87,
|
||||
0x55, 0x59, 0xd5, 0x41, 0x3e, 0xa1, 0x42, 0x1d, 0x5d, 0x05, 0xcb, 0x21, 0xbc, 0x01, 0x8a, 0x09,
|
||||
0xed, 0xd3, 0x44, 0x50, 0x57, 0x1d, 0x51, 0x11, 0x4f, 0x6c, 0x78, 0x1d, 0x14, 0x3d, 0xc2, 0xed,
|
||||
0x1e, 0xa7, 0xae, 0x3e, 0x0f, 0xbc, 0xe1, 0x11, 0xfe, 0x35, 0xa7, 0xee, 0xfd, 0xc2, 0xcf, 0xf2,
|
||||
0x67, 0x90, 0x80, 0xf2, 0x91, 0xe3, 0x50, 0xce, 0x4f, 0x7b, 0x71, 0x40, 0xff, 0xa3, 0xce, 0x0e,
|
||||
0x40, 0x85, 0x0b, 0x96, 0x10, 0x8f, 0xda, 0x67, 0x74, 0x68, 0xaa, 0x4d, 0xd7, 0x8e, 0xf1, 0x3f,
|
||||
0xa5, 0x43, 0x8e, 0x67, 0x0d, 0x8d, 0x68, 0xb7, 0xdf, 0x8f, 0xb6, 0x73, 0x1f, 0x46, 0xdb, 0xb9,
|
||||
0xbf, 0x46, 0xdb, 0xb9, 0x5f, 0xce, 0xb7, 0x57, 0x3e, 0x9c, 0x6f, 0xaf, 0xfc, 0x71, 0xbe, 0xbd,
|
||||
0xf2, 0xed, 0xee, 0xcc, 0xb5, 0x15, 0x5d, 0x92, 0x70, 0x9f, 0xb7, 0xa6, 0xff, 0xfa, 0x03, 0xf5,
|
||||
0xb7, 0xaf, 0x2e, 0x6f, 0x67, 0x5d, 0xfd, 0xb9, 0xdf, 0xfd, 0x27, 0x00, 0x00, 0xff, 0xff, 0x17,
|
||||
0xd8, 0xae, 0xb6, 0x0b, 0x0c, 0x00, 0x00,
|
||||
// 1268 bytes of a gzipped FileDescriptorProto
|
||||
0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0x9c, 0x97, 0x4d, 0x6f, 0xdb, 0x36,
|
||||
0x18, 0xc7, 0xe3, 0xd8, 0x49, 0x6c, 0x5a, 0x7e, 0x19, 0xeb, 0x65, 0x6e, 0x03, 0x44, 0x01, 0x07,
|
||||
0x6c, 0x3e, 0xb4, 0x71, 0x93, 0x22, 0x58, 0x51, 0x60, 0x87, 0x28, 0x4d, 0xdb, 0x60, 0x5d, 0x17,
|
||||
0x30, 0x5d, 0x3b, 0xec, 0x22, 0xd0, 0x12, 0x2b, 0x6b, 0x91, 0x44, 0x41, 0xa4, 0x3d, 0x7b, 0xd8,
|
||||
0x07, 0xd8, 0x71, 0xbb, 0xed, 0xb8, 0x8f, 0x53, 0xec, 0xd4, 0xe3, 0xb0, 0x83, 0xb0, 0xb9, 0x87,
|
||||
0x01, 0x39, 0xfa, 0x13, 0x0c, 0x22, 0xe9, 0xb7, 0x34, 0x1d, 0xe6, 0x9c, 0xcc, 0xe7, 0xe1, 0xc3,
|
||||
0xff, 0x8f, 0x2f, 0x0f, 0xf5, 0xd0, 0x60, 0x87, 0x8a, 0x2e, 0x4d, 0x42, 0x3f, 0x12, 0x6d, 0xda,
|
||||
0x0f, 0xdb, 0xfd, 0x3d, 0x12, 0xc4, 0x5d, 0xb2, 0x97, 0x19, 0xbb, 0x71, 0xc2, 0x04, 0x83, 0x9b,
|
||||
0xd3, 0x88, 0xdd, 0xcc, 0x39, 0x89, 0xb8, 0xd5, 0xf0, 0x98, 0xc7, 0x64, 0x48, 0x3b, 0x6b, 0xa9,
|
||||
0x68, 0xf4, 0xf7, 0x2a, 0x58, 0x3f, 0x25, 0x09, 0x09, 0x39, 0xdc, 0x03, 0x25, 0xda, 0x0f, 0x6d,
|
||||
0x97, 0x46, 0x2c, 0x6c, 0xe6, 0x76, 0x72, 0xad, 0x92, 0xd5, 0x18, 0xa7, 0x66, 0x7d, 0x48, 0xc2,
|
||||
0xe0, 0x01, 0x9a, 0x76, 0x21, 0x5c, 0xa4, 0xfd, 0xf0, 0x61, 0xd6, 0x84, 0x9f, 0x83, 0x0a, 0x8d,
|
||||
0x48, 0x27, 0xa0, 0xb6, 0x93, 0x50, 0x22, 0x68, 0x73, 0x75, 0x27, 0xd7, 0x2a, 0x5a, 0xcd, 0x71,
|
||||
0x6a, 0x36, 0xf4, 0xb0, 0xf9, 0x6e, 0x84, 0x0d, 0x65, 0x1f, 0x49, 0x13, 0x7e, 0x06, 0xca, 0x93,
|
||||
0x7e, 0x12, 0x04, 0xcd, 0xbc, 0x1c, 0xbc, 0x39, 0x4e, 0x4d, 0xb8, 0x38, 0x98, 0x04, 0x01, 0xc2,
|
||||
0x40, 0x0f, 0x25, 0x41, 0x00, 0x0f, 0x01, 0xa0, 0x03, 0x91, 0x10, 0x9b, 0xfa, 0x31, 0x6f, 0x16,
|
||||
0x76, 0xf2, 0xad, 0xbc, 0x85, 0x46, 0xa9, 0x59, 0x3a, 0xce, 0xbc, 0xc7, 0x27, 0xa7, 0x7c, 0x9c,
|
||||
0x9a, 0x1f, 0x68, 0x91, 0x69, 0x20, 0xc2, 0x25, 0x69, 0x1c, 0xfb, 0x31, 0x87, 0x0e, 0x30, 0x9c,
|
||||
0x2e, 0xf1, 0x23, 0xdb, 0x61, 0xd1, 0x2b, 0xdf, 0x6b, 0xae, 0xed, 0xe4, 0x5a, 0xe5, 0xfd, 0x8f,
|
||||
0x77, 0xaf, 0xde, 0xbd, 0xdd, 0xa3, 0x2c, 0xf6, 0x48, 0x86, 0x5a, 0x5b, 0xaf, 0x53, 0x73, 0x65,
|
||||
0x9c, 0x9a, 0x37, 0x14, 0x60, 0x5e, 0x06, 0xe1, 0xb2, 0x33, 0x8b, 0x7c, 0x50, 0xf8, 0xf5, 0x37,
|
||||
0x73, 0x05, 0xfd, 0x53, 0x01, 0xe5, 0xb9, 0xf1, 0x30, 0x04, 0xb5, 0x2e, 0x0b, 0x29, 0x17, 0x94,
|
||||
0xb8, 0x76, 0x27, 0x60, 0xce, 0xb9, 0xde, 0xee, 0x87, 0x7f, 0xa6, 0xe6, 0x27, 0x9e, 0x2f, 0xba,
|
||||
0xbd, 0xce, 0xae, 0xc3, 0xc2, 0xb6, 0xc3, 0x78, 0xc8, 0xb8, 0xfe, 0xb9, 0xc3, 0xdd, 0xf3, 0xb6,
|
||||
0x18, 0xc6, 0x94, 0xef, 0x9e, 0x44, 0x62, 0x9c, 0x9a, 0x9b, 0x0a, 0x7f, 0x49, 0x0a, 0xe1, 0xea,
|
||||
0xd4, 0x63, 0x65, 0x0e, 0x38, 0x04, 0x55, 0x97, 0x30, 0xfb, 0x15, 0x4b, 0xce, 0x35, 0x6d, 0x55,
|
||||
0xd2, 0xce, 0xfe, 0x3f, 0x6d, 0x94, 0x9a, 0xc6, 0xc3, 0xc3, 0xaf, 0x1e, 0xb1, 0xe4, 0x5c, 0x6a,
|
||||
0x8e, 0x53, 0xf3, 0x43, 0x45, 0x5f, 0x54, 0x46, 0xd8, 0x70, 0x09, 0x9b, 0x86, 0xc1, 0x97, 0xa0,
|
||||
0x3e, 0x0d, 0xe0, 0xbd, 0x38, 0x66, 0x89, 0xd0, 0xa7, 0x7c, 0x67, 0x94, 0x9a, 0x55, 0x2d, 0x79,
|
||||
0xa6, 0x7a, 0xc6, 0xa9, 0xf9, 0xd1, 0x25, 0x51, 0x3d, 0x06, 0xe1, 0xaa, 0x96, 0xd5, 0xa1, 0x90,
|
||||
0x03, 0x83, 0xfa, 0xf1, 0xde, 0xc1, 0x5d, 0xbd, 0xa2, 0x82, 0x5c, 0xd1, 0xe9, 0x52, 0x2b, 0x2a,
|
||||
0x1f, 0x9f, 0x9c, 0xee, 0x1d, 0xdc, 0x9d, 0x2c, 0x48, 0x9f, 0xe6, 0xbc, 0x2c, 0xc2, 0x65, 0x65,
|
||||
0xaa, 0xd5, 0x9c, 0x00, 0x6d, 0xda, 0x5d, 0xc2, 0xbb, 0x32, 0x63, 0x4a, 0x56, 0x6b, 0x94, 0x9a,
|
||||
0x40, 0x29, 0x3d, 0x21, 0xbc, 0x3b, 0x3b, 0x97, 0xce, 0xf0, 0x07, 0x12, 0x09, 0xbf, 0x17, 0x4e,
|
||||
0xb4, 0x80, 0x1a, 0x9c, 0x45, 0x4d, 0xe7, 0x7f, 0xa0, 0xe7, 0xbf, 0x7e, 0xed, 0xf9, 0x1f, 0x5c,
|
||||
0x35, 0xff, 0x83, 0xc5, 0xf9, 0xab, 0x98, 0x29, 0xf4, 0xbe, 0x86, 0x6e, 0x5c, 0x1b, 0x7a, 0xff,
|
||||
0x2a, 0xe8, 0xfd, 0x45, 0xa8, 0x8a, 0xc9, 0x92, 0xfd, 0xd2, 0x4e, 0x34, 0x8b, 0xd7, 0x4f, 0xf6,
|
||||
0x77, 0x36, 0xb5, 0x3a, 0xf5, 0x28, 0xdc, 0x8f, 0xa0, 0xe1, 0xb0, 0x88, 0x8b, 0xcc, 0x17, 0xb1,
|
||||
0x38, 0xa0, 0x9a, 0x59, 0x92, 0xcc, 0x93, 0xa5, 0x98, 0x5b, 0xfa, 0x7e, 0x5f, 0xa1, 0x87, 0xf0,
|
||||
0x8d, 0x45, 0xb7, 0xa2, 0xc7, 0xa0, 0x1e, 0x53, 0x41, 0x13, 0xde, 0xe9, 0x25, 0x9e, 0x26, 0x03,
|
||||
0x49, 0x3e, 0x5e, 0x8a, 0xac, 0xef, 0xc1, 0x65, 0x2d, 0x84, 0x6b, 0x33, 0x97, 0x22, 0x7e, 0x07,
|
||||
0xaa, 0x7e, 0x36, 0x8d, 0x4e, 0x2f, 0xd0, 0xbc, 0xb2, 0xe4, 0x1d, 0x2d, 0xc5, 0xd3, 0x97, 0x79,
|
||||
0x51, 0x09, 0xe1, 0xca, 0xc4, 0xa1, 0x58, 0x3d, 0x00, 0xc3, 0x9e, 0x9f, 0xd8, 0x5e, 0x40, 0x1c,
|
||||
0x9f, 0x26, 0x9a, 0x67, 0x48, 0xde, 0xe3, 0xa5, 0x78, 0x37, 0x15, 0xef, 0x5d, 0x35, 0x84, 0xeb,
|
||||
0x99, 0xf3, 0xb1, 0xf2, 0x29, 0xac, 0x0b, 0x8c, 0x0e, 0x4d, 0x02, 0x3f, 0xd2, 0xc0, 0x8a, 0x04,
|
||||
0x1e, 0x2e, 0x05, 0xd4, 0x79, 0x3a, 0xaf, 0x83, 0x70, 0x59, 0x99, 0x8a, 0xf2, 0x0a, 0x54, 0x86,
|
||||
0x2c, 0x60, 0x76, 0xff, 0x9e, 0xc6, 0x54, 0x25, 0xc6, 0x5a, 0x0a, 0xa3, 0x8b, 0xde, 0x82, 0x10,
|
||||
0xc2, 0xe5, 0xcc, 0x7e, 0x71, 0x4f, 0x71, 0x18, 0x28, 0xd3, 0xef, 0x09, 0x9f, 0xdc, 0x85, 0x9a,
|
||||
0xa4, 0x3c, 0x5b, 0xea, 0x0e, 0x82, 0xe3, 0x97, 0x87, 0x67, 0x5f, 0x4e, 0xae, 0xe0, 0xa4, 0x56,
|
||||
0xce, 0x44, 0xb3, 0x4f, 0x4d, 0x66, 0x4d, 0x33, 0xc4, 0x21, 0x82, 0x04, 0x43, 0x2e, 0x34, 0xb3,
|
||||
0x7e, 0xfd, 0x0c, 0x59, 0x54, 0x42, 0xb8, 0x32, 0x71, 0x48, 0x16, 0x6a, 0x83, 0xb5, 0x33, 0x91,
|
||||
0x55, 0xf6, 0x3a, 0xc8, 0x9f, 0xd3, 0xa1, 0x2a, 0x6b, 0x38, 0x6b, 0xc2, 0x06, 0x58, 0xeb, 0x93,
|
||||
0xa0, 0xa7, 0x9e, 0x08, 0x25, 0xac, 0x0c, 0xf4, 0x02, 0xd4, 0x9e, 0x27, 0x24, 0xe2, 0xc4, 0x11,
|
||||
0x3e, 0x8b, 0x9e, 0x32, 0x8f, 0x43, 0x08, 0x0a, 0xf2, 0xf3, 0xaa, 0xc6, 0xca, 0x36, 0x6c, 0x83,
|
||||
0x42, 0xc0, 0x3c, 0xde, 0x5c, 0xdd, 0xc9, 0xb7, 0xca, 0xfb, 0x5b, 0xef, 0x2b, 0xd2, 0x4f, 0x99,
|
||||
0x87, 0x65, 0x20, 0xfa, 0x7d, 0x15, 0xe4, 0x9f, 0x32, 0x0f, 0x36, 0xc1, 0x06, 0x71, 0xdd, 0x84,
|
||||
0x72, 0xae, 0xf5, 0x26, 0x26, 0xdc, 0x04, 0xeb, 0x82, 0xc5, 0xbe, 0xa3, 0x44, 0x4b, 0x58, 0x5b,
|
||||
0x19, 0xde, 0x25, 0x82, 0xc8, 0x32, 0x65, 0x60, 0xd9, 0x86, 0xfb, 0xc0, 0x90, 0xeb, 0xb5, 0xa3,
|
||||
0x5e, 0xd8, 0xa1, 0x89, 0xac, 0x36, 0x05, 0xab, 0x76, 0x91, 0x9a, 0x65, 0xe9, 0x7f, 0x26, 0xdd,
|
||||
0x78, 0xde, 0x80, 0xb7, 0xc1, 0x86, 0x18, 0xcc, 0x17, 0x8a, 0x1b, 0x17, 0xa9, 0x59, 0x13, 0xb3,
|
||||
0xc5, 0x66, 0x75, 0x00, 0xaf, 0x8b, 0xc1, 0x13, 0xb5, 0xc0, 0xa2, 0x18, 0xd8, 0x7e, 0xe4, 0xd2,
|
||||
0x81, 0xac, 0x05, 0x05, 0xab, 0x71, 0x91, 0x9a, 0xf5, 0xb9, 0xf0, 0x93, 0xac, 0x0f, 0x6f, 0x88,
|
||||
0x81, 0x6c, 0xc0, 0xdb, 0x00, 0xa8, 0x29, 0x49, 0x82, 0xfa, 0x92, 0x57, 0x2e, 0x52, 0xb3, 0x24,
|
||||
0xbd, 0x52, 0x7b, 0xd6, 0x84, 0x08, 0xac, 0x29, 0xed, 0xa2, 0xd4, 0x36, 0x2e, 0x52, 0xb3, 0x18,
|
||||
0x30, 0x4f, 0x69, 0xaa, 0xae, 0x6c, 0xab, 0x12, 0x1a, 0xb2, 0x3e, 0x75, 0xe5, 0xc7, 0xb2, 0x88,
|
||||
0x27, 0x26, 0xfa, 0x65, 0x15, 0x14, 0x9f, 0x0f, 0x30, 0xe5, 0xbd, 0x40, 0xc0, 0x47, 0xa0, 0xee,
|
||||
0xb0, 0x48, 0x24, 0xc4, 0x11, 0xf6, 0xc2, 0xd6, 0x5a, 0x5b, 0xb3, 0x0f, 0xd7, 0xe5, 0x08, 0x84,
|
||||
0x6b, 0x13, 0xd7, 0xa1, 0xde, 0xff, 0x06, 0x58, 0xeb, 0x04, 0x8c, 0x85, 0x32, 0x1f, 0x0c, 0xac,
|
||||
0x0c, 0xf8, 0x8d, 0xdc, 0x35, 0x79, 0xd6, 0x79, 0xf9, 0x20, 0xfb, 0xf4, 0x7d, 0x67, 0x7d, 0x29,
|
||||
0x6d, 0xac, 0x4d, 0xfd, 0x28, 0xab, 0xaa, 0x19, 0x68, 0x15, 0x94, 0xed, 0xb0, 0x4c, 0xab, 0x3a,
|
||||
0xc8, 0x27, 0x54, 0xc8, 0xa3, 0x33, 0x70, 0xd6, 0x84, 0xb7, 0x40, 0x31, 0xa1, 0x7d, 0x9a, 0x08,
|
||||
0xea, 0xca, 0x23, 0x2a, 0xe2, 0xa9, 0x0d, 0x6f, 0x82, 0xa2, 0x47, 0xb8, 0xdd, 0xe3, 0xd4, 0x55,
|
||||
0xe7, 0x81, 0x37, 0x3c, 0xc2, 0xbf, 0xe6, 0xd4, 0x7d, 0x50, 0xf8, 0x29, 0x7b, 0xd3, 0x11, 0x50,
|
||||
0x3e, 0x74, 0x1c, 0xca, 0xf9, 0xf3, 0x5e, 0x1c, 0xd0, 0xff, 0xc8, 0xb3, 0x7d, 0x60, 0x70, 0xc1,
|
||||
0x12, 0xe2, 0x51, 0xfb, 0x9c, 0x0e, 0x75, 0xb6, 0xa9, 0xdc, 0xd1, 0xfe, 0x2f, 0xe8, 0x90, 0xe3,
|
||||
0x79, 0x43, 0x21, 0x2c, 0xeb, 0xf5, 0x68, 0x3b, 0xf7, 0x66, 0xb4, 0x9d, 0xfb, 0x6b, 0xb4, 0x9d,
|
||||
0xfb, 0xf9, 0xed, 0xf6, 0xca, 0x9b, 0xb7, 0xdb, 0x2b, 0x7f, 0xbc, 0xdd, 0x5e, 0xf9, 0xb6, 0x35,
|
||||
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) {
|
||||
@ -628,22 +630,32 @@ func (m *Params) MarshalToSizedBuffer(dAtA []byte) (int, error) {
|
||||
_ = i
|
||||
var l int
|
||||
_ = 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 {
|
||||
dAtA2 := make([]byte, len(m.ExtraEIPs)*10)
|
||||
var j1 int
|
||||
dAtA3 := make([]byte, len(m.ExtraEIPs)*10)
|
||||
var j2 int
|
||||
for _, num1 := range m.ExtraEIPs {
|
||||
num := uint64(num1)
|
||||
for num >= 1<<7 {
|
||||
dAtA2[j1] = uint8(uint64(num)&0x7f | 0x80)
|
||||
dAtA3[j2] = uint8(uint64(num)&0x7f | 0x80)
|
||||
num >>= 7
|
||||
j1++
|
||||
j2++
|
||||
}
|
||||
dAtA2[j1] = uint8(num)
|
||||
j1++
|
||||
dAtA3[j2] = uint8(num)
|
||||
j2++
|
||||
}
|
||||
i -= j1
|
||||
copy(dAtA[i:], dAtA2[:j1])
|
||||
i = encodeVarintEvm(dAtA, i, uint64(j1))
|
||||
i -= j2
|
||||
copy(dAtA[i:], dAtA3[:j2])
|
||||
i = encodeVarintEvm(dAtA, i, uint64(j2))
|
||||
i--
|
||||
dAtA[i] = 0x22
|
||||
}
|
||||
@ -697,118 +709,140 @@ func (m *ChainConfig) MarshalToSizedBuffer(dAtA []byte) (int, error) {
|
||||
_ = i
|
||||
var l int
|
||||
_ = l
|
||||
{
|
||||
size := m.CatalystBlock.Size()
|
||||
i -= size
|
||||
if _, err := m.CatalystBlock.MarshalTo(dAtA[i:]); err != nil {
|
||||
return 0, err
|
||||
if m.CatalystBlock != nil {
|
||||
{
|
||||
size := m.CatalystBlock.Size()
|
||||
i -= size
|
||||
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--
|
||||
dAtA[i] = 0x1
|
||||
i--
|
||||
dAtA[i] = 0x82
|
||||
{
|
||||
size := m.EWASMBlock.Size()
|
||||
i -= size
|
||||
if _, err := m.EWASMBlock.MarshalTo(dAtA[i:]); err != nil {
|
||||
return 0, err
|
||||
if m.EWASMBlock != nil {
|
||||
{
|
||||
size := m.EWASMBlock.Size()
|
||||
i -= size
|
||||
if _, err := m.EWASMBlock.MarshalTo(dAtA[i:]); err != nil {
|
||||
return 0, err
|
||||
}
|
||||
i = encodeVarintEvm(dAtA, i, uint64(size))
|
||||
}
|
||||
i = encodeVarintEvm(dAtA, i, uint64(size))
|
||||
i--
|
||||
dAtA[i] = 0x7a
|
||||
}
|
||||
i--
|
||||
dAtA[i] = 0x7a
|
||||
{
|
||||
size := m.YoloV3Block.Size()
|
||||
i -= size
|
||||
if _, err := m.YoloV3Block.MarshalTo(dAtA[i:]); err != nil {
|
||||
return 0, err
|
||||
if m.YoloV3Block != nil {
|
||||
{
|
||||
size := m.YoloV3Block.Size()
|
||||
i -= size
|
||||
if _, err := m.YoloV3Block.MarshalTo(dAtA[i:]); err != nil {
|
||||
return 0, err
|
||||
}
|
||||
i = encodeVarintEvm(dAtA, i, uint64(size))
|
||||
}
|
||||
i = encodeVarintEvm(dAtA, i, uint64(size))
|
||||
i--
|
||||
dAtA[i] = 0x72
|
||||
}
|
||||
i--
|
||||
dAtA[i] = 0x72
|
||||
{
|
||||
size := m.BerlinBlock.Size()
|
||||
i -= size
|
||||
if _, err := m.BerlinBlock.MarshalTo(dAtA[i:]); err != nil {
|
||||
return 0, err
|
||||
if m.BerlinBlock != nil {
|
||||
{
|
||||
size := m.BerlinBlock.Size()
|
||||
i -= size
|
||||
if _, err := m.BerlinBlock.MarshalTo(dAtA[i:]); err != nil {
|
||||
return 0, err
|
||||
}
|
||||
i = encodeVarintEvm(dAtA, i, uint64(size))
|
||||
}
|
||||
i = encodeVarintEvm(dAtA, i, uint64(size))
|
||||
i--
|
||||
dAtA[i] = 0x6a
|
||||
}
|
||||
i--
|
||||
dAtA[i] = 0x6a
|
||||
{
|
||||
size := m.MuirGlacierBlock.Size()
|
||||
i -= size
|
||||
if _, err := m.MuirGlacierBlock.MarshalTo(dAtA[i:]); err != nil {
|
||||
return 0, err
|
||||
if m.MuirGlacierBlock != nil {
|
||||
{
|
||||
size := m.MuirGlacierBlock.Size()
|
||||
i -= size
|
||||
if _, err := m.MuirGlacierBlock.MarshalTo(dAtA[i:]); err != nil {
|
||||
return 0, err
|
||||
}
|
||||
i = encodeVarintEvm(dAtA, i, uint64(size))
|
||||
}
|
||||
i = encodeVarintEvm(dAtA, i, uint64(size))
|
||||
i--
|
||||
dAtA[i] = 0x62
|
||||
}
|
||||
i--
|
||||
dAtA[i] = 0x62
|
||||
{
|
||||
size := m.IstanbulBlock.Size()
|
||||
i -= size
|
||||
if _, err := m.IstanbulBlock.MarshalTo(dAtA[i:]); err != nil {
|
||||
return 0, err
|
||||
if m.IstanbulBlock != nil {
|
||||
{
|
||||
size := m.IstanbulBlock.Size()
|
||||
i -= size
|
||||
if _, err := m.IstanbulBlock.MarshalTo(dAtA[i:]); err != nil {
|
||||
return 0, err
|
||||
}
|
||||
i = encodeVarintEvm(dAtA, i, uint64(size))
|
||||
}
|
||||
i = encodeVarintEvm(dAtA, i, uint64(size))
|
||||
i--
|
||||
dAtA[i] = 0x5a
|
||||
}
|
||||
i--
|
||||
dAtA[i] = 0x5a
|
||||
{
|
||||
size := m.PetersburgBlock.Size()
|
||||
i -= size
|
||||
if _, err := m.PetersburgBlock.MarshalTo(dAtA[i:]); err != nil {
|
||||
return 0, err
|
||||
if m.PetersburgBlock != nil {
|
||||
{
|
||||
size := m.PetersburgBlock.Size()
|
||||
i -= size
|
||||
if _, err := m.PetersburgBlock.MarshalTo(dAtA[i:]); err != nil {
|
||||
return 0, err
|
||||
}
|
||||
i = encodeVarintEvm(dAtA, i, uint64(size))
|
||||
}
|
||||
i = encodeVarintEvm(dAtA, i, uint64(size))
|
||||
i--
|
||||
dAtA[i] = 0x52
|
||||
}
|
||||
i--
|
||||
dAtA[i] = 0x52
|
||||
{
|
||||
size := m.ConstantinopleBlock.Size()
|
||||
i -= size
|
||||
if _, err := m.ConstantinopleBlock.MarshalTo(dAtA[i:]); err != nil {
|
||||
return 0, err
|
||||
if m.ConstantinopleBlock != nil {
|
||||
{
|
||||
size := m.ConstantinopleBlock.Size()
|
||||
i -= size
|
||||
if _, err := m.ConstantinopleBlock.MarshalTo(dAtA[i:]); err != nil {
|
||||
return 0, err
|
||||
}
|
||||
i = encodeVarintEvm(dAtA, i, uint64(size))
|
||||
}
|
||||
i = encodeVarintEvm(dAtA, i, uint64(size))
|
||||
i--
|
||||
dAtA[i] = 0x4a
|
||||
}
|
||||
i--
|
||||
dAtA[i] = 0x4a
|
||||
{
|
||||
size := m.ByzantiumBlock.Size()
|
||||
i -= size
|
||||
if _, err := m.ByzantiumBlock.MarshalTo(dAtA[i:]); err != nil {
|
||||
return 0, err
|
||||
if m.ByzantiumBlock != nil {
|
||||
{
|
||||
size := m.ByzantiumBlock.Size()
|
||||
i -= size
|
||||
if _, err := m.ByzantiumBlock.MarshalTo(dAtA[i:]); err != nil {
|
||||
return 0, err
|
||||
}
|
||||
i = encodeVarintEvm(dAtA, i, uint64(size))
|
||||
}
|
||||
i = encodeVarintEvm(dAtA, i, uint64(size))
|
||||
i--
|
||||
dAtA[i] = 0x42
|
||||
}
|
||||
i--
|
||||
dAtA[i] = 0x42
|
||||
{
|
||||
size := m.EIP158Block.Size()
|
||||
i -= size
|
||||
if _, err := m.EIP158Block.MarshalTo(dAtA[i:]); err != nil {
|
||||
return 0, err
|
||||
if m.EIP158Block != nil {
|
||||
{
|
||||
size := m.EIP158Block.Size()
|
||||
i -= size
|
||||
if _, err := m.EIP158Block.MarshalTo(dAtA[i:]); err != nil {
|
||||
return 0, err
|
||||
}
|
||||
i = encodeVarintEvm(dAtA, i, uint64(size))
|
||||
}
|
||||
i = encodeVarintEvm(dAtA, i, uint64(size))
|
||||
i--
|
||||
dAtA[i] = 0x3a
|
||||
}
|
||||
i--
|
||||
dAtA[i] = 0x3a
|
||||
{
|
||||
size := m.EIP155Block.Size()
|
||||
i -= size
|
||||
if _, err := m.EIP155Block.MarshalTo(dAtA[i:]); err != nil {
|
||||
return 0, err
|
||||
if m.EIP155Block != nil {
|
||||
{
|
||||
size := m.EIP155Block.Size()
|
||||
i -= size
|
||||
if _, err := m.EIP155Block.MarshalTo(dAtA[i:]); err != nil {
|
||||
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 {
|
||||
i -= len(m.EIP150Hash)
|
||||
copy(dAtA[i:], m.EIP150Hash)
|
||||
@ -816,16 +850,18 @@ func (m *ChainConfig) MarshalToSizedBuffer(dAtA []byte) (int, error) {
|
||||
i--
|
||||
dAtA[i] = 0x2a
|
||||
}
|
||||
{
|
||||
size := m.EIP150Block.Size()
|
||||
i -= size
|
||||
if _, err := m.EIP150Block.MarshalTo(dAtA[i:]); err != nil {
|
||||
return 0, err
|
||||
if m.EIP150Block != nil {
|
||||
{
|
||||
size := m.EIP150Block.Size()
|
||||
i -= size
|
||||
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 {
|
||||
i--
|
||||
if m.DAOForkSupport {
|
||||
@ -836,26 +872,30 @@ func (m *ChainConfig) MarshalToSizedBuffer(dAtA []byte) (int, error) {
|
||||
i--
|
||||
dAtA[i] = 0x18
|
||||
}
|
||||
{
|
||||
size := m.DAOForkBlock.Size()
|
||||
i -= size
|
||||
if _, err := m.DAOForkBlock.MarshalTo(dAtA[i:]); err != nil {
|
||||
return 0, err
|
||||
if m.DAOForkBlock != nil {
|
||||
{
|
||||
size := m.DAOForkBlock.Size()
|
||||
i -= size
|
||||
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--
|
||||
dAtA[i] = 0x12
|
||||
{
|
||||
size := m.HomesteadBlock.Size()
|
||||
i -= size
|
||||
if _, err := m.HomesteadBlock.MarshalTo(dAtA[i:]); err != nil {
|
||||
return 0, err
|
||||
if m.HomesteadBlock != nil {
|
||||
{
|
||||
size := m.HomesteadBlock.Size()
|
||||
i -= size
|
||||
if _, err := m.HomesteadBlock.MarshalTo(dAtA[i:]); err != nil {
|
||||
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
|
||||
}
|
||||
|
||||
@ -1167,6 +1207,8 @@ func (m *Params) Size() (n int) {
|
||||
}
|
||||
n += 1 + sovEvm(uint64(l)) + l
|
||||
}
|
||||
l = m.ChainConfig.Size()
|
||||
n += 1 + l + sovEvm(uint64(l))
|
||||
return n
|
||||
}
|
||||
|
||||
@ -1176,41 +1218,69 @@ func (m *ChainConfig) Size() (n int) {
|
||||
}
|
||||
var l int
|
||||
_ = l
|
||||
l = m.HomesteadBlock.Size()
|
||||
n += 1 + l + sovEvm(uint64(l))
|
||||
l = m.DAOForkBlock.Size()
|
||||
n += 1 + l + sovEvm(uint64(l))
|
||||
if m.HomesteadBlock != nil {
|
||||
l = m.HomesteadBlock.Size()
|
||||
n += 1 + l + sovEvm(uint64(l))
|
||||
}
|
||||
if m.DAOForkBlock != nil {
|
||||
l = m.DAOForkBlock.Size()
|
||||
n += 1 + l + sovEvm(uint64(l))
|
||||
}
|
||||
if m.DAOForkSupport {
|
||||
n += 2
|
||||
}
|
||||
l = m.EIP150Block.Size()
|
||||
n += 1 + l + sovEvm(uint64(l))
|
||||
if m.EIP150Block != nil {
|
||||
l = m.EIP150Block.Size()
|
||||
n += 1 + l + sovEvm(uint64(l))
|
||||
}
|
||||
l = len(m.EIP150Hash)
|
||||
if l > 0 {
|
||||
n += 1 + l + sovEvm(uint64(l))
|
||||
}
|
||||
l = m.EIP155Block.Size()
|
||||
n += 1 + l + sovEvm(uint64(l))
|
||||
l = m.EIP158Block.Size()
|
||||
n += 1 + l + sovEvm(uint64(l))
|
||||
l = m.ByzantiumBlock.Size()
|
||||
n += 1 + l + sovEvm(uint64(l))
|
||||
l = m.ConstantinopleBlock.Size()
|
||||
n += 1 + l + sovEvm(uint64(l))
|
||||
l = m.PetersburgBlock.Size()
|
||||
n += 1 + l + sovEvm(uint64(l))
|
||||
l = m.IstanbulBlock.Size()
|
||||
n += 1 + l + sovEvm(uint64(l))
|
||||
l = m.MuirGlacierBlock.Size()
|
||||
n += 1 + l + sovEvm(uint64(l))
|
||||
l = m.BerlinBlock.Size()
|
||||
n += 1 + l + sovEvm(uint64(l))
|
||||
l = m.YoloV3Block.Size()
|
||||
n += 1 + l + sovEvm(uint64(l))
|
||||
l = m.EWASMBlock.Size()
|
||||
n += 1 + l + sovEvm(uint64(l))
|
||||
l = m.CatalystBlock.Size()
|
||||
n += 2 + l + sovEvm(uint64(l))
|
||||
if m.EIP155Block != nil {
|
||||
l = m.EIP155Block.Size()
|
||||
n += 1 + l + sovEvm(uint64(l))
|
||||
}
|
||||
if m.EIP158Block != nil {
|
||||
l = m.EIP158Block.Size()
|
||||
n += 1 + l + sovEvm(uint64(l))
|
||||
}
|
||||
if m.ByzantiumBlock != nil {
|
||||
l = m.ByzantiumBlock.Size()
|
||||
n += 1 + l + sovEvm(uint64(l))
|
||||
}
|
||||
if m.ConstantinopleBlock != nil {
|
||||
l = m.ConstantinopleBlock.Size()
|
||||
n += 1 + l + sovEvm(uint64(l))
|
||||
}
|
||||
if m.PetersburgBlock != nil {
|
||||
l = m.PetersburgBlock.Size()
|
||||
n += 1 + l + sovEvm(uint64(l))
|
||||
}
|
||||
if m.IstanbulBlock != nil {
|
||||
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
|
||||
}
|
||||
|
||||
@ -1524,6 +1594,39 @@ func (m *Params) Unmarshal(dAtA []byte) error {
|
||||
} else {
|
||||
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:
|
||||
iNdEx = preIndex
|
||||
skippy, err := skipEvm(dAtA[iNdEx:])
|
||||
@ -1604,6 +1707,8 @@ func (m *ChainConfig) Unmarshal(dAtA []byte) error {
|
||||
if postIndex > l {
|
||||
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 {
|
||||
return err
|
||||
}
|
||||
@ -1638,6 +1743,8 @@ func (m *ChainConfig) Unmarshal(dAtA []byte) error {
|
||||
if postIndex > l {
|
||||
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 {
|
||||
return err
|
||||
}
|
||||
@ -1692,6 +1799,8 @@ func (m *ChainConfig) Unmarshal(dAtA []byte) error {
|
||||
if postIndex > l {
|
||||
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 {
|
||||
return err
|
||||
}
|
||||
@ -1758,6 +1867,8 @@ func (m *ChainConfig) Unmarshal(dAtA []byte) error {
|
||||
if postIndex > l {
|
||||
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 {
|
||||
return err
|
||||
}
|
||||
@ -1792,6 +1903,8 @@ func (m *ChainConfig) Unmarshal(dAtA []byte) error {
|
||||
if postIndex > l {
|
||||
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 {
|
||||
return err
|
||||
}
|
||||
@ -1826,6 +1939,8 @@ func (m *ChainConfig) Unmarshal(dAtA []byte) error {
|
||||
if postIndex > l {
|
||||
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 {
|
||||
return err
|
||||
}
|
||||
@ -1860,6 +1975,8 @@ func (m *ChainConfig) Unmarshal(dAtA []byte) error {
|
||||
if postIndex > l {
|
||||
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 {
|
||||
return err
|
||||
}
|
||||
@ -1894,6 +2011,8 @@ func (m *ChainConfig) Unmarshal(dAtA []byte) error {
|
||||
if postIndex > l {
|
||||
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 {
|
||||
return err
|
||||
}
|
||||
@ -1928,6 +2047,8 @@ func (m *ChainConfig) Unmarshal(dAtA []byte) error {
|
||||
if postIndex > l {
|
||||
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 {
|
||||
return err
|
||||
}
|
||||
@ -1962,6 +2083,8 @@ func (m *ChainConfig) Unmarshal(dAtA []byte) error {
|
||||
if postIndex > l {
|
||||
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 {
|
||||
return err
|
||||
}
|
||||
@ -1996,6 +2119,8 @@ func (m *ChainConfig) Unmarshal(dAtA []byte) error {
|
||||
if postIndex > l {
|
||||
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 {
|
||||
return err
|
||||
}
|
||||
@ -2030,6 +2155,8 @@ func (m *ChainConfig) Unmarshal(dAtA []byte) error {
|
||||
if postIndex > l {
|
||||
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 {
|
||||
return err
|
||||
}
|
||||
@ -2064,6 +2191,8 @@ func (m *ChainConfig) Unmarshal(dAtA []byte) error {
|
||||
if postIndex > l {
|
||||
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 {
|
||||
return err
|
||||
}
|
||||
@ -2098,6 +2227,8 @@ func (m *ChainConfig) Unmarshal(dAtA []byte) error {
|
||||
if postIndex > l {
|
||||
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 {
|
||||
return err
|
||||
}
|
||||
|
@ -24,10 +24,9 @@ func (ga GenesisAccount) Validate() error {
|
||||
// chain config values.
|
||||
func DefaultGenesisState() *GenesisState {
|
||||
return &GenesisState{
|
||||
Accounts: []GenesisAccount{},
|
||||
TxsLogs: []TransactionLogs{},
|
||||
ChainConfig: DefaultChainConfig(),
|
||||
Params: DefaultParams(),
|
||||
Accounts: []GenesisAccount{},
|
||||
TxsLogs: []TransactionLogs{},
|
||||
Params: DefaultParams(),
|
||||
}
|
||||
}
|
||||
|
||||
@ -58,9 +57,5 @@ func (gs GenesisState) Validate() error {
|
||||
seenTxs[tx.Hash] = true
|
||||
}
|
||||
|
||||
if err := gs.ChainConfig.Validate(); err != nil {
|
||||
return err
|
||||
}
|
||||
|
||||
return gs.Params.Validate()
|
||||
}
|
||||
|
@ -27,8 +27,6 @@ const _ = proto.GoGoProtoPackageIsVersion3 // please upgrade the proto package
|
||||
type GenesisState struct {
|
||||
// accounts is an array containing the ethereum genesis 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 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"`
|
||||
@ -74,13 +72,6 @@ func (m *GenesisState) GetAccounts() []GenesisAccount {
|
||||
return nil
|
||||
}
|
||||
|
||||
func (m *GenesisState) GetChainConfig() ChainConfig {
|
||||
if m != nil {
|
||||
return m.ChainConfig
|
||||
}
|
||||
return ChainConfig{}
|
||||
}
|
||||
|
||||
func (m *GenesisState) GetParams() Params {
|
||||
if m != nil {
|
||||
return m.Params
|
||||
@ -171,33 +162,30 @@ func init() {
|
||||
}
|
||||
|
||||
var fileDescriptor_8205a12b97b89a87 = []byte{
|
||||
// 406 bytes of a gzipped FileDescriptorProto
|
||||
0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0x74, 0x92, 0xb1, 0x8e, 0xda, 0x30,
|
||||
0x18, 0xc7, 0x13, 0x40, 0x04, 0x0c, 0x2a, 0x92, 0x5b, 0xb5, 0x11, 0x55, 0x03, 0x4a, 0xab, 0x36,
|
||||
0x53, 0x22, 0xe8, 0x56, 0x75, 0x69, 0x18, 0xca, 0xd0, 0xa1, 0x0a, 0x9d, 0x7a, 0x03, 0x32, 0xc6,
|
||||
0xe7, 0x44, 0x22, 0x71, 0x14, 0x1b, 0x04, 0x6f, 0x70, 0xe3, 0x3d, 0xc7, 0x3d, 0x09, 0x23, 0x23,
|
||||
0x13, 0x77, 0x82, 0x37, 0xb8, 0x27, 0x38, 0xc5, 0x49, 0xe0, 0x4e, 0xba, 0x6c, 0x8e, 0xf4, 0xfb,
|
||||
0xff, 0xfc, 0xcf, 0xe7, 0x0f, 0x7c, 0x21, 0xc2, 0x27, 0x49, 0x18, 0x44, 0xc2, 0x21, 0xab, 0xd0,
|
||||
0x59, 0x0d, 0xd0, 0x22, 0xf6, 0xd1, 0xc0, 0xa1, 0x24, 0x22, 0x3c, 0xe0, 0x76, 0x9c, 0x30, 0xc1,
|
||||
0xe0, 0xfb, 0x33, 0x65, 0x93, 0x55, 0x68, 0x17, 0x54, 0xf7, 0x1d, 0x65, 0x94, 0x49, 0xc4, 0x49,
|
||||
0x4f, 0x19, 0xdd, 0xed, 0x97, 0x38, 0xd3, 0xa8, 0x24, 0xcc, 0x7d, 0x05, 0xb4, 0x7f, 0x67, 0x37,
|
||||
0x4c, 0x04, 0x12, 0x04, 0x8e, 0x41, 0x03, 0x61, 0xcc, 0x96, 0x91, 0xe0, 0xba, 0xda, 0xaf, 0x5a,
|
||||
0xad, 0xe1, 0x57, 0xfb, 0xf5, 0x3b, 0xed, 0x3c, 0xf7, 0x2b, 0xc3, 0xdd, 0xda, 0xf6, 0xd0, 0x53,
|
||||
0xbc, 0x73, 0x1a, 0x62, 0xd0, 0xc6, 0x3e, 0x0a, 0xa2, 0x29, 0x66, 0xd1, 0x75, 0x40, 0xf5, 0x4a,
|
||||
0x5f, 0xb5, 0x5a, 0xc3, 0xcf, 0x65, 0xb6, 0x51, 0xca, 0x8e, 0x24, 0xea, 0x7e, 0x4c, 0x55, 0x8f,
|
||||
0x87, 0xde, 0xdb, 0x0d, 0x0a, 0x17, 0x3f, 0xcc, 0xe7, 0x1a, 0xd3, 0x6b, 0xe1, 0x0b, 0x09, 0x7f,
|
||||
0x82, 0x7a, 0x8c, 0x12, 0x14, 0x72, 0xbd, 0x2a, 0xf5, 0x46, 0x99, 0xfe, 0xaf, 0xa4, 0xf2, 0x92,
|
||||
0x79, 0x06, 0x5e, 0x81, 0x86, 0x58, 0xf3, 0xe9, 0x82, 0x51, 0xae, 0xd7, 0xe4, 0xcf, 0x7e, 0x2b,
|
||||
0xcb, 0xff, 0x4b, 0x50, 0xc4, 0x11, 0x16, 0x01, 0x8b, 0xfe, 0x30, 0xca, 0xdd, 0x0f, 0x79, 0xc5,
|
||||
0x4e, 0x56, 0xb1, 0xd0, 0x98, 0x9e, 0x26, 0xd6, 0x3c, 0x25, 0xcc, 0x1b, 0x15, 0xbc, 0x79, 0x39,
|
||||
0x22, 0xa8, 0x03, 0x0d, 0xcd, 0xe7, 0x09, 0xe1, 0xe9, 0x6c, 0x55, 0xab, 0xe9, 0x15, 0x9f, 0x10,
|
||||
0x82, 0x1a, 0x66, 0x73, 0x22, 0x87, 0xd4, 0xf4, 0xe4, 0x19, 0x8e, 0x81, 0xc6, 0x05, 0x4b, 0x10,
|
||||
0x25, 0x7a, 0x55, 0x96, 0xfb, 0x54, 0x56, 0x4e, 0x3e, 0x9d, 0xdb, 0x49, 0x2b, 0xdd, 0xdd, 0xf7,
|
||||
0xb4, 0x49, 0x96, 0xf2, 0x8a, 0xb8, 0xeb, 0x6e, 0x8f, 0x86, 0xba, 0x3b, 0x1a, 0xea, 0xc3, 0xd1,
|
||||
0x50, 0x6f, 0x4f, 0x86, 0xb2, 0x3b, 0x19, 0xca, 0xfe, 0x64, 0x28, 0xff, 0x2d, 0x1a, 0x08, 0x7f,
|
||||
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,
|
||||
// 362 bytes of a gzipped FileDescriptorProto
|
||||
0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0x74, 0x91, 0xb1, 0x4e, 0xc2, 0x40,
|
||||
0x18, 0xc7, 0x7b, 0x42, 0x28, 0x1e, 0x46, 0x92, 0x8b, 0xd1, 0x86, 0xc4, 0x42, 0x1a, 0xa3, 0x9d,
|
||||
0xda, 0x80, 0x9b, 0x71, 0xb1, 0x8b, 0x0c, 0x0e, 0xa6, 0x38, 0xe9, 0x60, 0x8e, 0x72, 0x69, 0x9b,
|
||||
0xd0, 0x5e, 0xd3, 0xef, 0x20, 0xf0, 0x06, 0x8e, 0x3e, 0x87, 0x4f, 0xc2, 0xc8, 0xe8, 0x84, 0x06,
|
||||
0xde, 0x40, 0x5f, 0xc0, 0xf4, 0x4a, 0x31, 0x26, 0x76, 0xfb, 0xda, 0xfc, 0x7e, 0xff, 0xef, 0xdf,
|
||||
0x7e, 0xf8, 0x8c, 0x89, 0x80, 0xa5, 0x51, 0x18, 0x0b, 0x9b, 0x4d, 0x23, 0x7b, 0xda, 0xa5, 0xe3,
|
||||
0x24, 0xa0, 0x5d, 0xdb, 0x67, 0x31, 0x83, 0x10, 0xac, 0x24, 0xe5, 0x82, 0x93, 0xe3, 0x1d, 0x65,
|
||||
0xb1, 0x69, 0x64, 0x15, 0x54, 0xeb, 0xc8, 0xe7, 0x3e, 0x97, 0x88, 0x9d, 0x4d, 0x39, 0xdd, 0xea,
|
||||
0x94, 0x64, 0x66, 0xaa, 0x24, 0x8c, 0x6f, 0x84, 0x0f, 0x6e, 0xf3, 0x0d, 0x03, 0x41, 0x05, 0x23,
|
||||
0x7d, 0x5c, 0xa7, 0x9e, 0xc7, 0x27, 0xb1, 0x00, 0x0d, 0x75, 0x2a, 0x66, 0xa3, 0x77, 0x6e, 0xfd,
|
||||
0xbf, 0xd3, 0xda, 0x7a, 0x37, 0x39, 0xee, 0x54, 0x17, 0xab, 0xb6, 0xe2, 0xee, 0x6c, 0x72, 0x8d,
|
||||
0x6b, 0x09, 0x4d, 0x69, 0x04, 0x5a, 0xa5, 0x83, 0xcc, 0x46, 0x4f, 0x2f, 0xcb, 0xb9, 0x97, 0xd4,
|
||||
0xd6, 0xdf, 0x3a, 0xe4, 0x09, 0xd7, 0xc5, 0x0c, 0x9e, 0xc7, 0xdc, 0x07, 0xad, 0x2a, 0x7b, 0x5c,
|
||||
0x94, 0xf9, 0x0f, 0x29, 0x8d, 0x81, 0x7a, 0x22, 0xe4, 0xf1, 0x1d, 0xf7, 0xc1, 0x39, 0xc9, 0x82,
|
||||
0xbe, 0x56, 0xed, 0xe6, 0x9c, 0x46, 0xe3, 0x2b, 0xa3, 0x88, 0x31, 0x5c, 0x55, 0xcc, 0x20, 0x23,
|
||||
0x8c, 0x17, 0x84, 0x0f, 0xff, 0xb6, 0x27, 0x1a, 0x56, 0xe9, 0x68, 0x94, 0x32, 0xc8, 0x3e, 0x1b,
|
||||
0x99, 0xfb, 0x6e, 0xf1, 0x48, 0x08, 0xae, 0x7a, 0x7c, 0xc4, 0xb4, 0x3d, 0xf9, 0x5a, 0xce, 0xa4,
|
||||
0x8f, 0x55, 0x10, 0x3c, 0xa5, 0x3e, 0xd3, 0x2a, 0xb2, 0xdc, 0x69, 0x59, 0x39, 0xf9, 0x57, 0x9d,
|
||||
0x66, 0x56, 0xe9, 0xed, 0xa3, 0xad, 0x0e, 0x72, 0xcb, 0x2d, 0x74, 0xc7, 0x59, 0xac, 0x75, 0xb4,
|
||||
0x5c, 0xeb, 0xe8, 0x73, 0xad, 0xa3, 0xd7, 0x8d, 0xae, 0x2c, 0x37, 0xba, 0xf2, 0xbe, 0xd1, 0x95,
|
||||
0x47, 0xd3, 0x0f, 0x45, 0x30, 0x19, 0x5a, 0x1e, 0x8f, 0x6c, 0x11, 0xd0, 0x14, 0x42, 0xb0, 0x7f,
|
||||
0xef, 0x39, 0x93, 0x17, 0x15, 0xf3, 0x84, 0xc1, 0xb0, 0x26, 0x6f, 0x79, 0xf9, 0x13, 0x00, 0x00,
|
||||
0xff, 0xff, 0x0d, 0x4a, 0x1d, 0x9e, 0x43, 0x02, 0x00, 0x00,
|
||||
}
|
||||
|
||||
func (m *GenesisState) Marshal() (dAtA []byte, err error) {
|
||||
@ -244,16 +232,6 @@ func (m *GenesisState) MarshalToSizedBuffer(dAtA []byte) (int, error) {
|
||||
}
|
||||
i--
|
||||
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 {
|
||||
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))
|
||||
}
|
||||
}
|
||||
l = m.ChainConfig.Size()
|
||||
n += 1 + l + sovGenesis(uint64(l))
|
||||
l = m.Params.Size()
|
||||
n += 1 + l + sovGenesis(uint64(l))
|
||||
if len(m.TxsLogs) > 0 {
|
||||
@ -450,39 +426,6 @@ func (m *GenesisState) Unmarshal(dAtA []byte) error {
|
||||
return err
|
||||
}
|
||||
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:
|
||||
if wireType != 2 {
|
||||
return fmt.Errorf("proto: wrong wireType = %d for field Params", wireType)
|
||||
|
@ -120,8 +120,7 @@ func (suite *GenesisTestSuite) TestValidateGenesis() {
|
||||
},
|
||||
},
|
||||
},
|
||||
ChainConfig: DefaultChainConfig(),
|
||||
Params: DefaultParams(),
|
||||
Params: DefaultParams(),
|
||||
},
|
||||
expPass: true,
|
||||
},
|
||||
@ -235,16 +234,7 @@ func (suite *GenesisTestSuite) TestValidateGenesis() {
|
||||
{
|
||||
name: "invalid params",
|
||||
genState: &GenesisState{
|
||||
ChainConfig: DefaultChainConfig(),
|
||||
Params: Params{},
|
||||
},
|
||||
expPass: false,
|
||||
},
|
||||
{
|
||||
name: "invalid chain config",
|
||||
genState: &GenesisState{
|
||||
ChainConfig: ChainConfig{},
|
||||
Params: DefaultParams(),
|
||||
Params: Params{},
|
||||
},
|
||||
expPass: false,
|
||||
},
|
||||
|
@ -23,6 +23,7 @@ var (
|
||||
ParamStoreKeyEnableCreate = []byte("EnableCreate")
|
||||
ParamStoreKeyEnableCall = []byte("EnableCall")
|
||||
ParamStoreKeyExtraEIPs = []byte("EnableExtraEIPs")
|
||||
ParamStoreKeyChainConfig = []byte("ChainConfig")
|
||||
)
|
||||
|
||||
// ParamKeyTable returns the parameter key table.
|
||||
@ -31,12 +32,13 @@ func ParamKeyTable() paramtypes.KeyTable {
|
||||
}
|
||||
|
||||
// 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{
|
||||
EvmDenom: evmDenom,
|
||||
EnableCreate: enableCreate,
|
||||
EnableCall: enableCall,
|
||||
ExtraEIPs: extraEIPs,
|
||||
ChainConfig: config,
|
||||
}
|
||||
}
|
||||
|
||||
@ -47,6 +49,7 @@ func DefaultParams() Params {
|
||||
EnableCreate: true,
|
||||
EnableCall: true,
|
||||
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(ParamStoreKeyEnableCall, &p.EnableCall, validateBool),
|
||||
paramtypes.NewParamSetPair(ParamStoreKeyExtraEIPs, &p.ExtraEIPs, validateEIPs),
|
||||
paramtypes.NewParamSetPair(ParamStoreKeyChainConfig, &p.ChainConfig, validateChainConfig),
|
||||
}
|
||||
}
|
||||
|
||||
@ -72,7 +76,11 @@ func (p Params) Validate() error {
|
||||
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
|
||||
@ -115,3 +123,12 @@ func validateEIPs(i interface{}) error {
|
||||
|
||||
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()
|
||||
}
|
||||
|
@ -15,7 +15,7 @@ func TestParamsValidate(t *testing.T) {
|
||||
{"default", DefaultParams(), false},
|
||||
{
|
||||
"valid",
|
||||
NewParams("ara", true, true, 2929, 1884, 1344),
|
||||
NewParams("ara", true, true, DefaultChainConfig(), 2929, 1884, 1344),
|
||||
false,
|
||||
},
|
||||
{
|
||||
@ -38,6 +38,11 @@ func TestParamsValidate(t *testing.T) {
|
||||
},
|
||||
true,
|
||||
},
|
||||
{
|
||||
"invalid chain config",
|
||||
NewParams("ara", true, true, ChainConfig{}, 2929, 1884, 1344),
|
||||
false,
|
||||
},
|
||||
}
|
||||
|
||||
for _, tc := range testCases {
|
||||
|
@ -947,89 +947,6 @@ func (m *QueryParamsResponse) GetParams() 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
|
||||
type QueryStaticCallRequest struct {
|
||||
// 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 (*QueryStaticCallRequest) ProtoMessage() {}
|
||||
func (*QueryStaticCallRequest) Descriptor() ([]byte, []int) {
|
||||
return fileDescriptor_8bbc79ec2b6c5cb2, []int{22}
|
||||
return fileDescriptor_8bbc79ec2b6c5cb2, []int{20}
|
||||
}
|
||||
func (m *QueryStaticCallRequest) XXX_Unmarshal(b []byte) error {
|
||||
return m.Unmarshal(b)
|
||||
@ -1094,7 +1011,7 @@ func (m *QueryStaticCallResponse) Reset() { *m = QueryStaticCallResponse
|
||||
func (m *QueryStaticCallResponse) String() string { return proto.CompactTextString(m) }
|
||||
func (*QueryStaticCallResponse) ProtoMessage() {}
|
||||
func (*QueryStaticCallResponse) Descriptor() ([]byte, []int) {
|
||||
return fileDescriptor_8bbc79ec2b6c5cb2, []int{23}
|
||||
return fileDescriptor_8bbc79ec2b6c5cb2, []int{21}
|
||||
}
|
||||
func (m *QueryStaticCallResponse) XXX_Unmarshal(b []byte) error {
|
||||
return m.Unmarshal(b)
|
||||
@ -1140,7 +1057,7 @@ func (m *EthCallRequest) Reset() { *m = EthCallRequest{} }
|
||||
func (m *EthCallRequest) String() string { return proto.CompactTextString(m) }
|
||||
func (*EthCallRequest) ProtoMessage() {}
|
||||
func (*EthCallRequest) Descriptor() ([]byte, []int) {
|
||||
return fileDescriptor_8bbc79ec2b6c5cb2, []int{24}
|
||||
return fileDescriptor_8bbc79ec2b6c5cb2, []int{22}
|
||||
}
|
||||
func (m *EthCallRequest) XXX_Unmarshal(b []byte) error {
|
||||
return m.Unmarshal(b)
|
||||
@ -1197,8 +1114,6 @@ func init() {
|
||||
proto.RegisterType((*QueryBlockBloomResponse)(nil), "ethermint.evm.v1alpha1.QueryBlockBloomResponse")
|
||||
proto.RegisterType((*QueryParamsRequest)(nil), "ethermint.evm.v1alpha1.QueryParamsRequest")
|
||||
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((*QueryStaticCallResponse)(nil), "ethermint.evm.v1alpha1.QueryStaticCallResponse")
|
||||
proto.RegisterType((*EthCallRequest)(nil), "ethermint.evm.v1alpha1.EthCallRequest")
|
||||
@ -1209,85 +1124,81 @@ func init() {
|
||||
}
|
||||
|
||||
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,
|
||||
0x18, 0xc7, 0xbd, 0xad, 0x63, 0x27, 0x4f, 0x92, 0x12, 0x06, 0x53, 0xd2, 0x6d, 0x71, 0xc2, 0xb4,
|
||||
0x4d, 0x9c, 0x97, 0xee, 0xc6, 0xe6, 0xad, 0x54, 0x48, 0x90, 0x44, 0x0d, 0x95, 0x5a, 0x50, 0x71,
|
||||
0x22, 0x0e, 0x48, 0xc8, 0x1a, 0xaf, 0x97, 0xb5, 0x15, 0x7b, 0xc7, 0xdd, 0x59, 0x5b, 0x89, 0xa2,
|
||||
0x5c, 0x38, 0x20, 0x28, 0x1c, 0x40, 0x1c, 0x40, 0x48, 0xa0, 0x5e, 0xb9, 0xf1, 0x15, 0xb8, 0xf5,
|
||||
0x58, 0x89, 0x0b, 0x27, 0x84, 0x12, 0x0e, 0x7c, 0x0c, 0x34, 0x2f, 0x6b, 0xef, 0xda, 0x59, 0xaf,
|
||||
0x83, 0xb8, 0xed, 0xcc, 0x3c, 0x2f, 0xbf, 0x67, 0x9e, 0x99, 0xf9, 0xdb, 0x80, 0x6d, 0xbf, 0x6e,
|
||||
0x7b, 0xad, 0x86, 0xeb, 0x9b, 0x76, 0xb7, 0x65, 0x76, 0x8b, 0xa4, 0xd9, 0xae, 0x93, 0xa2, 0xf9,
|
||||
0xa8, 0x63, 0x7b, 0x87, 0x46, 0xdb, 0xa3, 0x3e, 0x45, 0x97, 0x7b, 0x36, 0x86, 0xdd, 0x6d, 0x19,
|
||||
0x81, 0x8d, 0x9e, 0x73, 0xa8, 0x43, 0x85, 0x89, 0xc9, 0xbf, 0xa4, 0xb5, 0xbe, 0x6a, 0x51, 0xd6,
|
||||
0xa2, 0xcc, 0xac, 0x12, 0x66, 0xcb, 0x30, 0x66, 0xb7, 0x58, 0xb5, 0x7d, 0x52, 0x34, 0xdb, 0xc4,
|
||||
0x69, 0xb8, 0xc4, 0x6f, 0x50, 0x57, 0xd9, 0x5e, 0x73, 0x28, 0x75, 0x9a, 0xb6, 0x49, 0xda, 0x0d,
|
||||
0x93, 0xb8, 0x2e, 0xf5, 0xc5, 0x22, 0x53, 0xab, 0x8b, 0x31, 0x6c, 0x1c, 0x42, 0x5a, 0x2c, 0xc4,
|
||||
0x58, 0xf8, 0x07, 0xd2, 0x00, 0xbf, 0x05, 0x2f, 0x7c, 0xc8, 0x11, 0x36, 0x2d, 0x8b, 0x76, 0x5c,
|
||||
0xbf, 0x6c, 0x3f, 0xea, 0xd8, 0xcc, 0x47, 0xf3, 0x90, 0x25, 0xb5, 0x9a, 0x67, 0x33, 0x36, 0xaf,
|
||||
0x2d, 0x6a, 0x85, 0xa9, 0x72, 0x30, 0xbc, 0x33, 0xf9, 0xc5, 0x93, 0x85, 0xd4, 0x3f, 0x4f, 0x16,
|
||||
0x52, 0xd8, 0x82, 0x5c, 0xd4, 0x95, 0xb5, 0xa9, 0xcb, 0x6c, 0xee, 0x5b, 0x25, 0x4d, 0xe2, 0x5a,
|
||||
0x76, 0xe0, 0xab, 0x86, 0xe8, 0x2a, 0x4c, 0x59, 0xb4, 0x66, 0x57, 0xea, 0x84, 0xd5, 0xe7, 0x2f,
|
||||
0x88, 0xb5, 0x49, 0x3e, 0x71, 0x8f, 0xb0, 0x3a, 0xca, 0xc1, 0x84, 0x4b, 0xb9, 0xd3, 0xc5, 0x45,
|
||||
0xad, 0x90, 0x2e, 0xcb, 0x01, 0x7e, 0x07, 0xae, 0x88, 0x24, 0xdb, 0x62, 0xcf, 0xfe, 0x03, 0xe5,
|
||||
0xe7, 0x1a, 0xe8, 0x67, 0x45, 0x50, 0xb0, 0x37, 0xe1, 0x92, 0x6c, 0x47, 0x25, 0x1a, 0x69, 0x56,
|
||||
0xce, 0x6e, 0xca, 0x49, 0xa4, 0xc3, 0x24, 0xe3, 0x49, 0x39, 0xdf, 0x05, 0xc1, 0xd7, 0x1b, 0xf3,
|
||||
0x10, 0x44, 0x46, 0xad, 0xb8, 0x9d, 0x56, 0xd5, 0xf6, 0x54, 0x05, 0xb3, 0x6a, 0xf6, 0x03, 0x31,
|
||||
0x89, 0xef, 0xc3, 0x35, 0xc1, 0xf1, 0x11, 0x69, 0x36, 0x6a, 0xc4, 0xa7, 0xde, 0x40, 0x31, 0xaf,
|
||||
0xc0, 0x8c, 0x45, 0xdd, 0x41, 0x8e, 0x69, 0x3e, 0xb7, 0x39, 0x54, 0xd5, 0x57, 0x1a, 0xbc, 0x1c,
|
||||
0x13, 0x4d, 0x15, 0xb6, 0x0c, 0xcf, 0x05, 0x54, 0xd1, 0x88, 0x01, 0xec, 0xff, 0x58, 0x5a, 0x70,
|
||||
0x88, 0xb6, 0x64, 0x9f, 0xcf, 0xd3, 0x9e, 0x0d, 0x75, 0x88, 0x7a, 0xae, 0x49, 0x87, 0x08, 0xdf,
|
||||
0x57, 0xc9, 0x76, 0x7d, 0xea, 0x11, 0x27, 0x39, 0x19, 0x9a, 0x83, 0x8b, 0xfb, 0xf6, 0xa1, 0x3a,
|
||||
0x6f, 0xfc, 0x33, 0x94, 0x7e, 0x5d, 0xa5, 0xef, 0x05, 0x53, 0xe9, 0x73, 0x30, 0xd1, 0x25, 0xcd,
|
||||
0x4e, 0x90, 0x5c, 0x0e, 0xf0, 0x1b, 0x30, 0xa7, 0x8e, 0x52, 0xed, 0x5c, 0x45, 0x2e, 0xc3, 0xf3,
|
||||
0x21, 0x3f, 0x95, 0x02, 0x41, 0x9a, 0x9f, 0x7d, 0xe1, 0x35, 0x53, 0x16, 0xdf, 0xb8, 0x04, 0x48,
|
||||
0x18, 0xee, 0x1d, 0x3c, 0xa0, 0x0e, 0x0b, 0x52, 0x20, 0x48, 0x8b, 0x1b, 0x23, 0xe3, 0x8b, 0xef,
|
||||
0x50, 0xf0, 0x1d, 0xb5, 0x1f, 0x81, 0x8f, 0x0a, 0x6f, 0x42, 0xba, 0x49, 0x1d, 0x0e, 0x75, 0xb1,
|
||||
0x30, 0x5d, 0xba, 0x6a, 0x9c, 0xfd, 0x44, 0x19, 0x0f, 0xa8, 0x53, 0x16, 0x86, 0xf8, 0x18, 0x5e,
|
||||
0x94, 0x9d, 0x68, 0x52, 0x6b, 0x3f, 0x21, 0x3d, 0xda, 0x01, 0xe8, 0xbf, 0x55, 0x62, 0x6b, 0xa7,
|
||||
0x4b, 0x4b, 0x86, 0xbc, 0x33, 0x06, 0x7f, 0xd8, 0x0c, 0xf9, 0x3e, 0xaa, 0x87, 0xcd, 0x78, 0xd8,
|
||||
0xef, 0x54, 0x39, 0xe4, 0x19, 0x2a, 0xe3, 0x17, 0x0d, 0x2e, 0x0f, 0xe6, 0x57, 0xa5, 0xec, 0x40,
|
||||
0xd6, 0x3f, 0xa8, 0x84, 0xaa, 0x59, 0x8e, 0xab, 0x66, 0xcf, 0x23, 0x2e, 0x23, 0x16, 0x0f, 0xcd,
|
||||
0x23, 0x6c, 0xa5, 0x9f, 0xfe, 0xb9, 0x90, 0x2a, 0x67, 0x7c, 0xb1, 0x35, 0xe8, 0xbd, 0x33, 0xa0,
|
||||
0x97, 0x13, 0xa1, 0x25, 0x44, 0x98, 0x1a, 0xcf, 0x87, 0x51, 0xb7, 0x9a, 0x94, 0xb6, 0x54, 0x6d,
|
||||
0xd8, 0x84, 0x97, 0x86, 0x56, 0xfa, 0x47, 0xaa, 0xca, 0x27, 0x54, 0xc3, 0xe5, 0x00, 0xe7, 0x54,
|
||||
0xc7, 0x1f, 0x12, 0x8f, 0xb4, 0x82, 0x2d, 0xc7, 0xbb, 0xaa, 0xa7, 0xc1, 0xac, 0x0a, 0xf1, 0x36,
|
||||
0x64, 0xda, 0x62, 0x46, 0xc4, 0x98, 0x2e, 0xe5, 0xe3, 0xf6, 0x41, 0xfa, 0x05, 0xe5, 0x4b, 0x1f,
|
||||
0x7c, 0x45, 0xb1, 0x6d, 0xd7, 0x49, 0xc3, 0xdd, 0xa6, 0xee, 0xa7, 0x0d, 0x27, 0xc8, 0xf7, 0x09,
|
||||
0xcc, 0x0f, 0x2f, 0xa9, 0xa4, 0x9b, 0x90, 0xb1, 0xc4, 0x8c, 0x4a, 0x7a, 0x3d, 0x2e, 0x69, 0xc8,
|
||||
0x39, 0xc8, 0x2c, 0x1d, 0xf1, 0x3d, 0xb5, 0x5f, 0xbb, 0x5c, 0xbe, 0xac, 0x6d, 0xd2, 0x6c, 0x26,
|
||||
0xdf, 0xda, 0x1c, 0x4c, 0x34, 0xdc, 0x76, 0xc7, 0x17, 0x7d, 0x9a, 0x29, 0xcb, 0x01, 0xbe, 0xa5,
|
||||
0x6a, 0x08, 0x47, 0xea, 0xdf, 0xa7, 0x1a, 0xf1, 0x49, 0x70, 0x9f, 0xf8, 0x37, 0xbe, 0x01, 0x97,
|
||||
0xee, 0xfa, 0xf5, 0x70, 0x42, 0x04, 0x69, 0xe2, 0x39, 0x2c, 0xb0, 0xe2, 0xdf, 0xa5, 0xc7, 0x73,
|
||||
0x30, 0x21, 0xa2, 0xa2, 0xef, 0x35, 0xc8, 0xaa, 0x87, 0x14, 0xad, 0xc5, 0xd5, 0x79, 0x86, 0x5e,
|
||||
0xea, 0xeb, 0xe3, 0x19, 0x4b, 0x54, 0x5c, 0xfc, 0xec, 0xf7, 0xbf, 0xbf, 0xbb, 0xb0, 0x86, 0x56,
|
||||
0xcc, 0x18, 0x79, 0x56, 0xcf, 0xab, 0x79, 0xa4, 0x76, 0xe3, 0x18, 0xfd, 0xaa, 0xc1, 0x6c, 0x44,
|
||||
0xc1, 0x50, 0x71, 0x64, 0xca, 0xb3, 0xf4, 0x52, 0x2f, 0x9d, 0xc7, 0x45, 0xb1, 0xde, 0x16, 0xac,
|
||||
0x25, 0xb4, 0x11, 0xc7, 0x1a, 0xc8, 0xe7, 0x10, 0xf2, 0x6f, 0x1a, 0xcc, 0x0d, 0xca, 0x13, 0x7a,
|
||||
0x6d, 0x24, 0x42, 0x8c, 0x36, 0xea, 0xaf, 0x9f, 0xd3, 0x4b, 0xb1, 0xbf, 0x2b, 0xd8, 0xef, 0xa0,
|
||||
0xdb, 0x71, 0xec, 0xdd, 0xc0, 0xb3, 0x8f, 0x1f, 0xd6, 0xe0, 0x63, 0xf4, 0x83, 0x06, 0x59, 0x25,
|
||||
0x4d, 0x09, 0x07, 0x22, 0xaa, 0x7d, 0x09, 0x07, 0x62, 0x40, 0xed, 0x70, 0x49, 0x80, 0xae, 0xa3,
|
||||
0xd5, 0x38, 0x50, 0x25, 0x7e, 0x2c, 0xb4, 0xbd, 0x3f, 0x69, 0x90, 0x55, 0xb2, 0x95, 0x80, 0x16,
|
||||
0x55, 0xca, 0x04, 0xb4, 0x01, 0x25, 0xc4, 0x6f, 0x0a, 0xb4, 0x22, 0x32, 0xe3, 0xd0, 0x98, 0x74,
|
||||
0xe8, 0x93, 0x99, 0x47, 0xfb, 0xf6, 0xe1, 0x31, 0xfa, 0x5a, 0x83, 0x34, 0x17, 0x3c, 0x54, 0x48,
|
||||
0x38, 0x75, 0x3d, 0x2d, 0xd5, 0x57, 0xc6, 0xb0, 0x54, 0x58, 0xa6, 0xc0, 0x5a, 0x41, 0xcb, 0xf1,
|
||||
0xc7, 0xb2, 0x16, 0xd9, 0xae, 0x6f, 0x35, 0xc8, 0x48, 0x89, 0x44, 0xab, 0x23, 0xd3, 0x44, 0xb4,
|
||||
0x57, 0x5f, 0x1b, 0xcb, 0x56, 0x41, 0x19, 0x02, 0xaa, 0x80, 0x96, 0xcc, 0xd8, 0x9f, 0xdd, 0x42,
|
||||
0xc6, 0xcc, 0x23, 0x2e, 0xa2, 0xa2, 0x85, 0x53, 0x3d, 0xb9, 0x43, 0xb7, 0x46, 0x1f, 0x99, 0x01,
|
||||
0x59, 0xd6, 0x8d, 0x71, 0xcd, 0xc7, 0x7d, 0x74, 0xaa, 0xdc, 0x25, 0xc2, 0xf7, 0xa3, 0x06, 0xd0,
|
||||
0x57, 0x32, 0x34, 0x46, 0xc6, 0xb0, 0x18, 0xea, 0xe6, 0xd8, 0xf6, 0x0a, 0x71, 0x4d, 0x20, 0xde,
|
||||
0x44, 0xd7, 0x47, 0x23, 0x0a, 0xe5, 0x44, 0x5f, 0x6a, 0x90, 0x91, 0x3a, 0x97, 0xd0, 0xd0, 0x88,
|
||||
0xb4, 0x26, 0x34, 0x34, 0x2a, 0xb8, 0x78, 0x49, 0x00, 0x2d, 0xa2, 0x7c, 0x1c, 0x90, 0x94, 0x56,
|
||||
0xf4, 0xb3, 0x06, 0xd3, 0x21, 0xf9, 0x43, 0xa3, 0x2b, 0x1f, 0x16, 0x60, 0x7d, 0x63, 0x7c, 0x07,
|
||||
0x85, 0xb6, 0x2e, 0xd0, 0x96, 0xd0, 0x8d, 0xd8, 0x0b, 0xc0, 0x9d, 0x2a, 0x52, 0x81, 0x45, 0x27,
|
||||
0xfb, 0x9a, 0x99, 0xd0, 0xc9, 0x21, 0x99, 0x4e, 0xe8, 0xe4, 0xb0, 0x18, 0x27, 0x77, 0x92, 0x09,
|
||||
0x9f, 0x8a, 0xc5, 0x69, 0x1e, 0x6b, 0x90, 0x55, 0x32, 0x8d, 0x96, 0xe2, 0x32, 0x45, 0x75, 0x5c,
|
||||
0x8f, 0xbd, 0x2c, 0xef, 0x33, 0xe7, 0x2e, 0x5f, 0xb1, 0x3b, 0xad, 0xbd, 0x83, 0x1e, 0x4f, 0x41,
|
||||
0xf0, 0x60, 0xb4, 0x18, 0xc7, 0x63, 0xfb, 0x75, 0x01, 0xb3, 0xb5, 0xf5, 0xf4, 0x24, 0xaf, 0x3d,
|
||||
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,
|
||||
0x18, 0xc7, 0xbd, 0x89, 0x13, 0x27, 0x4f, 0x5e, 0x08, 0x83, 0x29, 0x61, 0x5b, 0x9c, 0x30, 0xd0,
|
||||
0xc4, 0x79, 0xe9, 0x6e, 0x6d, 0xde, 0x4a, 0x85, 0x04, 0x49, 0xd5, 0x50, 0xa9, 0x05, 0x15, 0x27,
|
||||
0xe2, 0xc0, 0x25, 0x1a, 0xaf, 0x57, 0x6b, 0x2b, 0xf6, 0x8e, 0xbb, 0x33, 0xb6, 0x12, 0x45, 0xb9,
|
||||
0x70, 0x40, 0xbc, 0x1d, 0x40, 0x1c, 0x40, 0x48, 0x48, 0xbd, 0x72, 0xe3, 0x2b, 0x70, 0xeb, 0xb1,
|
||||
0x12, 0x17, 0x4e, 0x08, 0x25, 0x1c, 0xe0, 0x5b, 0xa0, 0x79, 0x59, 0x7b, 0xd7, 0xc9, 0x7a, 0x1d,
|
||||
0xc4, 0x6d, 0x66, 0xf6, 0x79, 0xf9, 0x3d, 0xcf, 0x3c, 0x9e, 0x7f, 0x02, 0xd8, 0xe5, 0x75, 0x37,
|
||||
0x68, 0x35, 0x7c, 0x6e, 0xbb, 0xdd, 0x96, 0xdd, 0x2d, 0x91, 0x66, 0xbb, 0x4e, 0x4a, 0xf6, 0xa3,
|
||||
0x8e, 0x1b, 0x1c, 0x59, 0xed, 0x80, 0x72, 0x8a, 0xae, 0xf4, 0x6c, 0x2c, 0xb7, 0xdb, 0xb2, 0x42,
|
||||
0x1b, 0x33, 0xef, 0x51, 0x8f, 0x4a, 0x13, 0x5b, 0xac, 0x94, 0xb5, 0xb9, 0xee, 0x50, 0xd6, 0xa2,
|
||||
0xcc, 0xae, 0x12, 0xe6, 0xaa, 0x30, 0x76, 0xb7, 0x54, 0x75, 0x39, 0x29, 0xd9, 0x6d, 0xe2, 0x35,
|
||||
0x7c, 0xc2, 0x1b, 0xd4, 0xd7, 0xb6, 0xd7, 0x3c, 0x4a, 0xbd, 0xa6, 0x6b, 0x93, 0x76, 0xc3, 0x26,
|
||||
0xbe, 0x4f, 0xb9, 0xfc, 0xc8, 0xf4, 0xd7, 0xe5, 0x04, 0x36, 0x01, 0xa1, 0x2c, 0x96, 0x12, 0x2c,
|
||||
0xf8, 0xa1, 0x32, 0xc0, 0x6f, 0xc3, 0x73, 0x1f, 0x09, 0x84, 0x2d, 0xc7, 0xa1, 0x1d, 0x9f, 0x57,
|
||||
0xdc, 0x47, 0x1d, 0x97, 0x71, 0xb4, 0x08, 0x39, 0x52, 0xab, 0x05, 0x2e, 0x63, 0x8b, 0xc6, 0xb2,
|
||||
0x51, 0x9c, 0xae, 0x84, 0xdb, 0xdb, 0x53, 0x9f, 0x3f, 0x5e, 0xca, 0xfc, 0xfd, 0x78, 0x29, 0x83,
|
||||
0x1d, 0xc8, 0xc7, 0x5d, 0x59, 0x9b, 0xfa, 0xcc, 0x15, 0xbe, 0x55, 0xd2, 0x24, 0xbe, 0xe3, 0x86,
|
||||
0xbe, 0x7a, 0x8b, 0xae, 0xc2, 0xb4, 0x43, 0x6b, 0xee, 0x7e, 0x9d, 0xb0, 0xfa, 0xe2, 0x98, 0xfc,
|
||||
0x36, 0x25, 0x0e, 0xee, 0x11, 0x56, 0x47, 0x79, 0x98, 0xf0, 0xa9, 0x70, 0x1a, 0x5f, 0x36, 0x8a,
|
||||
0xd9, 0x8a, 0xda, 0xe0, 0x77, 0xe1, 0x45, 0x99, 0xe4, 0x8e, 0xec, 0xd9, 0x7f, 0xa0, 0xfc, 0xcc,
|
||||
0x00, 0xf3, 0xa2, 0x08, 0x1a, 0xf6, 0x3a, 0xcc, 0xab, 0xeb, 0xd8, 0x8f, 0x47, 0x9a, 0x53, 0xa7,
|
||||
0x5b, 0xea, 0x10, 0x99, 0x30, 0xc5, 0x44, 0x52, 0xc1, 0x37, 0x26, 0xf9, 0x7a, 0x7b, 0x11, 0x82,
|
||||
0xa8, 0xa8, 0xfb, 0x7e, 0xa7, 0x55, 0x75, 0x03, 0x5d, 0xc1, 0x9c, 0x3e, 0xfd, 0x50, 0x1e, 0xe2,
|
||||
0xfb, 0x70, 0x4d, 0x72, 0x7c, 0x4c, 0x9a, 0x8d, 0x1a, 0xe1, 0x34, 0x18, 0x28, 0xe6, 0x65, 0x98,
|
||||
0x75, 0xa8, 0x3f, 0xc8, 0x31, 0x23, 0xce, 0xb6, 0xce, 0x55, 0xf5, 0x95, 0x01, 0x2f, 0x25, 0x44,
|
||||
0xd3, 0x85, 0xad, 0xc2, 0x33, 0x21, 0x55, 0x3c, 0x62, 0x08, 0xfb, 0x3f, 0x96, 0x16, 0x0e, 0xd1,
|
||||
0xb6, 0xba, 0xe7, 0xcb, 0x5c, 0xcf, 0x4d, 0x3d, 0x44, 0x3d, 0xd7, 0xb4, 0x21, 0xc2, 0xf7, 0x75,
|
||||
0xb2, 0x5d, 0x4e, 0x03, 0xe2, 0xa5, 0x27, 0x43, 0x0b, 0x30, 0x7e, 0xe0, 0x1e, 0xe9, 0x79, 0x13,
|
||||
0xcb, 0x48, 0xfa, 0x4d, 0x9d, 0xbe, 0x17, 0x4c, 0xa7, 0xcf, 0xc3, 0x44, 0x97, 0x34, 0x3b, 0x61,
|
||||
0x72, 0xb5, 0xc1, 0x6f, 0xc2, 0x82, 0x1e, 0xa5, 0xda, 0xa5, 0x8a, 0x5c, 0x85, 0x67, 0x23, 0x7e,
|
||||
0x3a, 0x05, 0x82, 0xac, 0x98, 0x7d, 0xe9, 0x35, 0x5b, 0x91, 0x6b, 0x5c, 0x06, 0x24, 0x0d, 0xf7,
|
||||
0x0e, 0x1f, 0x50, 0x8f, 0x85, 0x29, 0x10, 0x64, 0xe5, 0x2f, 0x46, 0xc5, 0x97, 0xeb, 0x48, 0xf0,
|
||||
0x1d, 0xdd, 0x8f, 0xd0, 0x47, 0x87, 0xb7, 0x21, 0xdb, 0xa4, 0x9e, 0x80, 0x1a, 0x2f, 0xce, 0x94,
|
||||
0xaf, 0x5a, 0x17, 0x3f, 0x51, 0xd6, 0x03, 0xea, 0x55, 0xa4, 0x21, 0x3e, 0x81, 0xe7, 0xd5, 0x4d,
|
||||
0x34, 0xa9, 0x73, 0x90, 0x92, 0x1e, 0xed, 0x00, 0xf4, 0xdf, 0x2a, 0xd9, 0xda, 0x99, 0xf2, 0x8a,
|
||||
0xa5, 0x7e, 0x33, 0x96, 0x78, 0xd8, 0x2c, 0xf5, 0x3e, 0xea, 0x87, 0xcd, 0x7a, 0xd8, 0xbf, 0xa9,
|
||||
0x4a, 0xc4, 0x33, 0x52, 0xc6, 0xcf, 0x06, 0x5c, 0x19, 0xcc, 0xaf, 0x4b, 0xd9, 0x81, 0x1c, 0x3f,
|
||||
0xdc, 0x8f, 0x54, 0xb3, 0x9a, 0x54, 0xcd, 0x5e, 0x40, 0x7c, 0x46, 0x1c, 0x11, 0x5a, 0x44, 0xd8,
|
||||
0xce, 0x3e, 0xf9, 0x63, 0x29, 0x53, 0x99, 0xe4, 0xb2, 0x35, 0xe8, 0xfd, 0x0b, 0xa0, 0x57, 0x53,
|
||||
0xa1, 0x15, 0x44, 0x94, 0x1a, 0x2f, 0x46, 0x51, 0xb7, 0x9b, 0x94, 0xb6, 0x74, 0x6d, 0xd8, 0x86,
|
||||
0x17, 0xce, 0x7d, 0xe9, 0x8f, 0x54, 0x55, 0x1c, 0xe8, 0x0b, 0x57, 0x1b, 0x9c, 0xd7, 0x37, 0xfe,
|
||||
0x90, 0x04, 0xa4, 0x15, 0xb6, 0x1c, 0xef, 0xea, 0x3b, 0x0d, 0x4f, 0x75, 0x88, 0x77, 0x60, 0xb2,
|
||||
0x2d, 0x4f, 0x64, 0x8c, 0x99, 0x72, 0x21, 0xa9, 0x0f, 0xca, 0x2f, 0x2c, 0x5f, 0xf9, 0xe0, 0x7b,
|
||||
0x9a, 0x7a, 0x57, 0x88, 0x88, 0x73, 0x87, 0x34, 0x9b, 0xe9, 0xbf, 0x9d, 0x3c, 0x4c, 0x34, 0xfc,
|
||||
0x76, 0x87, 0xcb, 0x6e, 0xcd, 0x56, 0xd4, 0x06, 0xdf, 0xd0, 0x55, 0x46, 0x23, 0xf5, 0xa7, 0xba,
|
||||
0x46, 0x38, 0x09, 0xa7, 0x5a, 0xac, 0xf1, 0xab, 0x30, 0x7f, 0x97, 0xd7, 0xa3, 0x09, 0x11, 0x64,
|
||||
0x49, 0xe0, 0xb1, 0xd0, 0x4a, 0xac, 0xcb, 0xff, 0xcc, 0xc3, 0x84, 0x8c, 0x8a, 0xbe, 0x37, 0x20,
|
||||
0xa7, 0x9f, 0x33, 0xb4, 0x91, 0x54, 0xe2, 0x05, 0xaa, 0x65, 0x6e, 0x8e, 0x66, 0xac, 0x50, 0x71,
|
||||
0xe9, 0xd3, 0xdf, 0xfe, 0xfa, 0x6e, 0x6c, 0x03, 0xad, 0xd9, 0x09, 0x22, 0xa9, 0x1f, 0x39, 0xfb,
|
||||
0x58, 0x77, 0xe3, 0x04, 0xfd, 0x62, 0xc0, 0x5c, 0x4c, 0x47, 0x50, 0x69, 0x68, 0xca, 0x8b, 0x54,
|
||||
0xcb, 0x2c, 0x5f, 0xc6, 0x45, 0xb3, 0xde, 0x92, 0xac, 0x65, 0x74, 0x33, 0x89, 0x35, 0x14, 0xb1,
|
||||
0x73, 0xc8, 0xbf, 0x1a, 0xb0, 0x30, 0x28, 0x12, 0xe8, 0xf5, 0xa1, 0x08, 0x09, 0x0a, 0x65, 0xbe,
|
||||
0x71, 0x49, 0x2f, 0xcd, 0xfe, 0x9e, 0x64, 0xbf, 0x8d, 0x6e, 0x25, 0xb1, 0x77, 0x43, 0xcf, 0x3e,
|
||||
0x7e, 0x54, 0x09, 0x4f, 0xd0, 0x0f, 0x06, 0xe4, 0xb4, 0x40, 0xa4, 0x0c, 0x44, 0x5c, 0x81, 0x52,
|
||||
0x06, 0x62, 0x40, 0x73, 0x70, 0x59, 0x82, 0x6e, 0xa2, 0xf5, 0x24, 0x50, 0x2d, 0x41, 0x2c, 0xd2,
|
||||
0xde, 0x9f, 0x0c, 0xc8, 0x69, 0xf1, 0x48, 0x41, 0x8b, 0xeb, 0x55, 0x0a, 0xda, 0x80, 0x1e, 0xe1,
|
||||
0xb7, 0x24, 0x5a, 0x09, 0xd9, 0x49, 0x68, 0x4c, 0x39, 0xf4, 0xc9, 0xec, 0xe3, 0x03, 0xf7, 0xe8,
|
||||
0x04, 0x7d, 0x6d, 0x40, 0x56, 0xc8, 0x0e, 0x2a, 0xa6, 0x4c, 0x5d, 0x4f, 0xd1, 0xcc, 0xb5, 0x11,
|
||||
0x2c, 0x35, 0x96, 0x2d, 0xb1, 0xd6, 0xd0, 0x6a, 0xf2, 0x58, 0xd6, 0x62, 0xed, 0xfa, 0xd6, 0x80,
|
||||
0x49, 0x25, 0x54, 0x68, 0x7d, 0x68, 0x9a, 0x98, 0x02, 0x9a, 0x1b, 0x23, 0xd9, 0x6a, 0x28, 0x4b,
|
||||
0x42, 0x15, 0xd1, 0x8a, 0x9d, 0xf8, 0xc7, 0xaf, 0x14, 0x13, 0xfb, 0x58, 0x48, 0x99, 0xbc, 0xc2,
|
||||
0xe9, 0x9e, 0xe8, 0xa0, 0x1b, 0xc3, 0x47, 0x66, 0x40, 0x1c, 0x4d, 0x6b, 0x54, 0xf3, 0x51, 0x1f,
|
||||
0x9d, 0xaa, 0x70, 0x89, 0xf1, 0xfd, 0x68, 0x00, 0xf4, 0xf5, 0x04, 0x8d, 0x90, 0x31, 0x2a, 0x49,
|
||||
0xa6, 0x3d, 0xb2, 0xbd, 0x46, 0xdc, 0x90, 0x88, 0xd7, 0xd1, 0x2b, 0xc3, 0x11, 0xa5, 0x7e, 0xa1,
|
||||
0x2f, 0x0c, 0x98, 0x54, 0x6a, 0x93, 0x72, 0xa1, 0x31, 0x81, 0x4b, 0xb9, 0xd0, 0xb8, 0xec, 0xe1,
|
||||
0x15, 0x09, 0xb4, 0x8c, 0x0a, 0x49, 0x40, 0x4a, 0xe0, 0x64, 0xa3, 0xfa, 0x92, 0x94, 0xd2, 0xa8,
|
||||
0x73, 0x2a, 0x98, 0xd2, 0xa8, 0xf3, 0x5a, 0x97, 0xde, 0x28, 0x26, 0x7d, 0xf6, 0x1d, 0x41, 0xf3,
|
||||
0xa5, 0x01, 0x39, 0xad, 0x82, 0x68, 0x25, 0x29, 0x53, 0x5c, 0x26, 0xcd, 0xc4, 0x59, 0xfc, 0x80,
|
||||
0x79, 0x77, 0xc5, 0x17, 0xb7, 0xd3, 0xda, 0x3b, 0xec, 0xf1, 0x14, 0x25, 0x0f, 0x46, 0xcb, 0x49,
|
||||
0x3c, 0x2e, 0xaf, 0x4b, 0x98, 0xed, 0xed, 0x27, 0xa7, 0x05, 0xe3, 0xe9, 0x69, 0xc1, 0xf8, 0xf3,
|
||||
0xb4, 0x60, 0x7c, 0x73, 0x56, 0xc8, 0x3c, 0x3d, 0x2b, 0x64, 0x7e, 0x3f, 0x2b, 0x64, 0x3e, 0x29,
|
||||
0x7a, 0x0d, 0x5e, 0xef, 0x54, 0x2d, 0x87, 0xb6, 0x6c, 0x5e, 0x27, 0x01, 0x6b, 0xb0, 0x48, 0xb4,
|
||||
0x43, 0x19, 0x8f, 0x1f, 0xb5, 0x5d, 0x56, 0x9d, 0x94, 0xff, 0x40, 0xbe, 0xf6, 0x6f, 0x00, 0x00,
|
||||
0x00, 0xff, 0xff, 0xb7, 0x54, 0x23, 0x90, 0x21, 0x0f, 0x00, 0x00,
|
||||
}
|
||||
|
||||
// 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)
|
||||
// Params queries the parameters of x/evm module.
|
||||
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(ctx context.Context, in *QueryStaticCallRequest, opts ...grpc.CallOption) (*QueryStaticCallResponse, error)
|
||||
// EthCall implements the `eth_call` rpc api
|
||||
@ -1429,15 +1338,6 @@ func (c *queryClient) Params(ctx context.Context, in *QueryParamsRequest, opts .
|
||||
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) {
|
||||
out := new(QueryStaticCallResponse)
|
||||
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)
|
||||
// Params queries the parameters of x/evm module.
|
||||
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(context.Context, *QueryStaticCallRequest) (*QueryStaticCallResponse, error)
|
||||
// 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) {
|
||||
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) {
|
||||
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)
|
||||
}
|
||||
|
||||
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) {
|
||||
in := new(QueryStaticCallRequest)
|
||||
if err := dec(in); err != nil {
|
||||
@ -1813,10 +1690,6 @@ var _Query_serviceDesc = grpc.ServiceDesc{
|
||||
MethodName: "Params",
|
||||
Handler: _Query_Params_Handler,
|
||||
},
|
||||
{
|
||||
MethodName: "ChainConfig",
|
||||
Handler: _Query_ChainConfig_Handler,
|
||||
},
|
||||
{
|
||||
MethodName: "StaticCall",
|
||||
Handler: _Query_StaticCall_Handler,
|
||||
@ -2496,62 +2369,6 @@ func (m *QueryParamsResponse) MarshalToSizedBuffer(dAtA []byte) (int, error) {
|
||||
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) {
|
||||
size := m.Size()
|
||||
dAtA = make([]byte, size)
|
||||
@ -2945,26 +2762,6 @@ func (m *QueryParamsResponse) Size() (n int) {
|
||||
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) {
|
||||
if m == nil {
|
||||
return 0
|
||||
@ -4830,139 +4627,6 @@ func (m *QueryParamsResponse) Unmarshal(dAtA []byte) error {
|
||||
}
|
||||
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 {
|
||||
l := len(dAtA)
|
||||
iNdEx := 0
|
||||
|
@ -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 (
|
||||
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) {
|
||||
ctx, cancel := context.WithCancel(req.Context())
|
||||
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) {
|
||||
ctx, cancel := context.WithCancel(req.Context())
|
||||
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_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_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_ChainConfig_0 = runtime.ForwardResponseMessage
|
||||
|
||||
forward_Query_StaticCall_0 = runtime.ForwardResponseMessage
|
||||
|
||||
forward_Query_EthCall_0 = runtime.ForwardResponseMessage
|
||||
|
Loading…
Reference in New Issue
Block a user