fix(evm,rpc): coinbase should not be the current one in traceTransaction execution (#1392)

* add proposer address

* make proto-all

* update nix

* fix test

* keep default proposerAddress

* add change doc

* refine GetProposerAddress with test

* include ProposerAddress for trace api

* fix eth call req

* wrap proposerAddress for eth call

* allow proto translates to sdk.ConsAddress

* Update rpc/backend/call_tx.go

Co-authored-by: Freddy Caceres <facs95@gmail.com>
Co-authored-by: Federico Kunze Küllmer <31522760+fedekunze@users.noreply.github.com>
This commit is contained in:
mmsqe 2022-10-22 07:58:29 +08:00 committed by GitHub
parent f04b289e75
commit 295a8862db
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
11 changed files with 369 additions and 140 deletions

View File

@ -74,6 +74,7 @@ Ref: https://keepachangelog.com/en/1.0.0/
* (rpc) [#1354](https://github.com/evmos/ethermint/pull/1354) Fix grpc query failure(`BaseFee` and `EthCall`) on legacy block states. * (rpc) [#1354](https://github.com/evmos/ethermint/pull/1354) Fix grpc query failure(`BaseFee` and `EthCall`) on legacy block states.
* (cli) [#1362](https://github.com/evmos/ethermint/pull/1362) Fix `index-eth-tx` error when the indexer db is empty. * (cli) [#1362](https://github.com/evmos/ethermint/pull/1362) Fix `index-eth-tx` error when the indexer db is empty.
* (state) [#1320](https://github.com/evmos/ethermint/pull/1320) Fix codehash check mismatch when the code has been deleted in the evm state. * (state) [#1320](https://github.com/evmos/ethermint/pull/1320) Fix codehash check mismatch when the code has been deleted in the evm state.
* (rpc) [#1392](https://github.com/evmos/ethermint/pull/1392) Allow fill the proposer address in json-rpc through tendermint api, and pass explicitly to grpc query handler.
## [v0.19.2] - 2022-08-29 ## [v0.19.2] - 2022-08-29

View File

@ -562,6 +562,7 @@ EthCallRequest defines EthCall request
| ----- | ---- | ----- | ----------- | | ----- | ---- | ----- | ----------- |
| `args` | [bytes](#bytes) | | same json format as the json rpc api. | | `args` | [bytes](#bytes) | | same json format as the json rpc api. |
| `gas_cap` | [uint64](#uint64) | | the default gas cap to be used | | `gas_cap` | [uint64](#uint64) | | the default gas cap to be used |
| `proposer_address` | [bytes](#bytes) | | the proposer of the requested block |
@ -791,6 +792,7 @@ QueryTraceBlockRequest defines TraceTx request
| `block_number` | [int64](#int64) | | block number | | `block_number` | [int64](#int64) | | block number |
| `block_hash` | [string](#string) | | block hex hash | | `block_hash` | [string](#string) | | block hex hash |
| `block_time` | [google.protobuf.Timestamp](#google.protobuf.Timestamp) | | block time | | `block_time` | [google.protobuf.Timestamp](#google.protobuf.Timestamp) | | block time |
| `proposer_address` | [bytes](#bytes) | | the proposer of the requested block |
@ -826,6 +828,7 @@ QueryTraceTxRequest defines TraceTx request
| `block_number` | [int64](#int64) | | block number of requested transaction | | `block_number` | [int64](#int64) | | block number of requested transaction |
| `block_hash` | [string](#string) | | block hex hash of requested transaction | | `block_hash` | [string](#string) | | block hex hash of requested transaction |
| `block_time` | [google.protobuf.Timestamp](#google.protobuf.Timestamp) | | block time of requested transaction | | `block_time` | [google.protobuf.Timestamp](#google.protobuf.Timestamp) | | block time of requested transaction |
| `proposer_address` | [bytes](#bytes) | | the proposer of the requested block |

View File

@ -221,6 +221,8 @@ message EthCallRequest {
bytes args = 1; bytes args = 1;
// the default gas cap to be used // the default gas cap to be used
uint64 gas_cap = 2; uint64 gas_cap = 2;
// the proposer of the requested block
bytes proposer_address = 3 [(gogoproto.casttype) = "github.com/cosmos/cosmos-sdk/types.ConsAddress"];
} }
// EstimateGasResponse defines EstimateGas response // EstimateGasResponse defines EstimateGas response
@ -247,6 +249,8 @@ message QueryTraceTxRequest {
string block_hash = 6; string block_hash = 6;
// block time of requested transaction // block time of requested transaction
google.protobuf.Timestamp block_time = 7 [(gogoproto.nullable) = false, (gogoproto.stdtime) = true]; google.protobuf.Timestamp block_time = 7 [(gogoproto.nullable) = false, (gogoproto.stdtime) = true];
// the proposer of the requested block
bytes proposer_address = 8 [(gogoproto.casttype) = "github.com/cosmos/cosmos-sdk/types.ConsAddress"];
} }
// QueryTraceTxResponse defines TraceTx response // QueryTraceTxResponse defines TraceTx response
@ -267,6 +271,8 @@ message QueryTraceBlockRequest {
string block_hash = 6; string block_hash = 6;
// block time // block time
google.protobuf.Timestamp block_time = 7 [(gogoproto.nullable) = false, (gogoproto.stdtime) = true]; google.protobuf.Timestamp block_time = 7 [(gogoproto.nullable) = false, (gogoproto.stdtime) = true];
// the proposer of the requested block
bytes proposer_address = 8 [(gogoproto.casttype) = "github.com/cosmos/cosmos-sdk/types.ConsAddress"];
} }
// QueryTraceBlockResponse defines TraceBlock response // QueryTraceBlockResponse defines TraceBlock response

View File

@ -8,6 +8,7 @@ import (
"math/big" "math/big"
"github.com/cosmos/cosmos-sdk/client/flags" "github.com/cosmos/cosmos-sdk/client/flags"
sdk "github.com/cosmos/cosmos-sdk/types"
sdkerrors "github.com/cosmos/cosmos-sdk/types/errors" sdkerrors "github.com/cosmos/cosmos-sdk/types/errors"
"github.com/ethereum/go-ethereum/common" "github.com/ethereum/go-ethereum/common"
"github.com/ethereum/go-ethereum/common/hexutil" "github.com/ethereum/go-ethereum/common/hexutil"
@ -298,17 +299,18 @@ func (b *Backend) EstimateGas(args evmtypes.TransactionArgs, blockNrOptional *rp
return 0, err return 0, err
} }
req := evmtypes.EthCallRequest{ header, err := b.TendermintBlockByNumber(blockNr)
Args: bz,
GasCap: b.RPCGasCap(),
}
_, err = b.TendermintBlockByNumber(blockNr)
if err != nil { if err != nil {
// the error message imitates geth behavior // the error message imitates geth behavior
return 0, errors.New("header not found") return 0, errors.New("header not found")
} }
req := evmtypes.EthCallRequest{
Args: bz,
GasCap: b.RPCGasCap(),
ProposerAddress: sdk.ConsAddress(header.Block.ProposerAddress),
}
// From ContextWithHeight: if the provided height is 0, // From ContextWithHeight: if the provided height is 0,
// it will return an empty context and the gRPC query will use // it will return an empty context and the gRPC query will use
// the latest block height for querying. // the latest block height for querying.
@ -328,10 +330,15 @@ func (b *Backend) DoCall(
if err != nil { if err != nil {
return nil, err return nil, err
} }
header, err := b.TendermintBlockByNumber(blockNr)
if err != nil {
// the error message imitates geth behavior
return nil, errors.New("header not found")
}
req := evmtypes.EthCallRequest{ req := evmtypes.EthCallRequest{
Args: bz, Args: bz,
GasCap: b.RPCGasCap(), GasCap: b.RPCGasCap(),
ProposerAddress: sdk.ConsAddress(header.Block.ProposerAddress),
} }
// From ContextWithHeight: if the provided height is 0, // From ContextWithHeight: if the provided height is 0,

View File

@ -4,6 +4,7 @@ import (
"encoding/json" "encoding/json"
"fmt" "fmt"
sdk "github.com/cosmos/cosmos-sdk/types"
"github.com/ethereum/go-ethereum/common" "github.com/ethereum/go-ethereum/common"
rpctypes "github.com/evmos/ethermint/rpc/types" rpctypes "github.com/evmos/ethermint/rpc/types"
evmtypes "github.com/evmos/ethermint/x/evm/types" evmtypes "github.com/evmos/ethermint/x/evm/types"
@ -82,6 +83,7 @@ func (b *Backend) TraceTransaction(hash common.Hash, config *evmtypes.TraceConfi
BlockNumber: blk.Block.Height, BlockNumber: blk.Block.Height,
BlockTime: blk.Block.Time, BlockTime: blk.Block.Time,
BlockHash: common.Bytes2Hex(blk.BlockID.Hash), BlockHash: common.Bytes2Hex(blk.BlockID.Hash),
ProposerAddress: sdk.ConsAddress(blk.Block.ProposerAddress),
} }
if config != nil { if config != nil {
@ -159,6 +161,7 @@ func (b *Backend) TraceBlock(height rpctypes.BlockNumber,
BlockNumber: block.Block.Height, BlockNumber: block.Block.Height,
BlockTime: block.Block.Time, BlockTime: block.Block.Time,
BlockHash: common.Bytes2Hex(block.BlockID.Hash), BlockHash: common.Bytes2Hex(block.BlockID.Hash),
ProposerAddress: sdk.ConsAddress(block.Block.ProposerAddress),
} }
res, err := b.queryClient.TraceBlock(ctxWithHeight, traceBlockRequest) res, err := b.queryClient.TraceBlock(ctxWithHeight, traceBlockRequest)

View File

@ -224,7 +224,7 @@ func (k Keeper) EthCall(c context.Context, req *types.EthCallRequest) (*types.Ms
return nil, status.Error(codes.InvalidArgument, err.Error()) return nil, status.Error(codes.InvalidArgument, err.Error())
} }
cfg, err := k.EVMConfig(ctx) cfg, err := k.EVMConfig(ctx, GetProposerAddress(ctx, req.ProposerAddress))
if err != nil { if err != nil {
return nil, status.Error(codes.Internal, err.Error()) return nil, status.Error(codes.Internal, err.Error())
} }
@ -294,8 +294,7 @@ func (k Keeper) EstimateGas(c context.Context, req *types.EthCallRequest) (*type
hi = req.GasCap hi = req.GasCap
} }
cap = hi cap = hi
cfg, err := k.EVMConfig(ctx, GetProposerAddress(ctx, req.ProposerAddress))
cfg, err := k.EVMConfig(ctx)
if err != nil { if err != nil {
return nil, status.Error(codes.Internal, "failed to load evm config") return nil, status.Error(codes.Internal, "failed to load evm config")
} }
@ -375,8 +374,7 @@ func (k Keeper) TraceTx(c context.Context, req *types.QueryTraceTxRequest) (*typ
ctx = ctx.WithBlockHeight(contextHeight) ctx = ctx.WithBlockHeight(contextHeight)
ctx = ctx.WithBlockTime(req.BlockTime) ctx = ctx.WithBlockTime(req.BlockTime)
ctx = ctx.WithHeaderHash(common.Hex2Bytes(req.BlockHash)) ctx = ctx.WithHeaderHash(common.Hex2Bytes(req.BlockHash))
cfg, err := k.EVMConfig(ctx, GetProposerAddress(ctx, req.ProposerAddress))
cfg, err := k.EVMConfig(ctx)
if err != nil { if err != nil {
return nil, status.Errorf(codes.Internal, "failed to load evm config: %s", err.Error()) return nil, status.Errorf(codes.Internal, "failed to load evm config: %s", err.Error())
} }
@ -443,8 +441,7 @@ func (k Keeper) TraceBlock(c context.Context, req *types.QueryTraceBlockRequest)
ctx = ctx.WithBlockHeight(contextHeight) ctx = ctx.WithBlockHeight(contextHeight)
ctx = ctx.WithBlockTime(req.BlockTime) ctx = ctx.WithBlockTime(req.BlockTime)
ctx = ctx.WithHeaderHash(common.Hex2Bytes(req.BlockHash)) ctx = ctx.WithHeaderHash(common.Hex2Bytes(req.BlockHash))
cfg, err := k.EVMConfig(ctx, GetProposerAddress(ctx, req.ProposerAddress))
cfg, err := k.EVMConfig(ctx)
if err != nil { if err != nil {
return nil, status.Error(codes.Internal, "failed to load evm config") return nil, status.Error(codes.Internal, "failed to load evm config")
} }

View File

@ -737,6 +737,7 @@ func (suite *KeeperTestSuite) TestEstimateGas() {
req := types.EthCallRequest{ req := types.EthCallRequest{
Args: args, Args: args,
GasCap: gasCap, GasCap: gasCap,
ProposerAddress: suite.ctx.BlockHeader().ProposerAddress,
} }
rsp, err := suite.queryClient.EstimateGas(sdk.WrapSDKContext(suite.ctx), &req) rsp, err := suite.queryClient.EstimateGas(sdk.WrapSDKContext(suite.ctx), &req)
@ -1145,16 +1146,18 @@ func (suite *KeeperTestSuite) TestNonceInQuery() {
Data: (*hexutil.Bytes)(&data), Data: (*hexutil.Bytes)(&data),
}) })
suite.Require().NoError(err) suite.Require().NoError(err)
proposerAddress := suite.ctx.BlockHeader().ProposerAddress
_, err = suite.queryClient.EstimateGas(sdk.WrapSDKContext(suite.ctx), &types.EthCallRequest{ _, err = suite.queryClient.EstimateGas(sdk.WrapSDKContext(suite.ctx), &types.EthCallRequest{
Args: args, Args: args,
GasCap: uint64(config.DefaultGasCap), GasCap: uint64(config.DefaultGasCap),
ProposerAddress: proposerAddress,
}) })
suite.Require().NoError(err) suite.Require().NoError(err)
_, err = suite.queryClient.EthCall(sdk.WrapSDKContext(suite.ctx), &types.EthCallRequest{ _, err = suite.queryClient.EthCall(sdk.WrapSDKContext(suite.ctx), &types.EthCallRequest{
Args: args, Args: args,
GasCap: uint64(config.DefaultGasCap), GasCap: uint64(config.DefaultGasCap),
ProposerAddress: proposerAddress,
}) })
suite.Require().NoError(err) suite.Require().NoError(err)
} }

View File

@ -257,10 +257,10 @@ func (suite *KeeperTestSuite) DeployTestContract(t require.TestingT, owner commo
Data: (*hexutil.Bytes)(&data), Data: (*hexutil.Bytes)(&data),
}) })
require.NoError(t, err) require.NoError(t, err)
res, err := suite.queryClient.EstimateGas(ctx, &types.EthCallRequest{ res, err := suite.queryClient.EstimateGas(ctx, &types.EthCallRequest{
Args: args, Args: args,
GasCap: uint64(config.DefaultGasCap), GasCap: uint64(config.DefaultGasCap),
ProposerAddress: suite.ctx.BlockHeader().ProposerAddress,
}) })
require.NoError(t, err) require.NoError(t, err)
@ -310,6 +310,7 @@ func (suite *KeeperTestSuite) TransferERC20Token(t require.TestingT, contractAdd
res, err := suite.queryClient.EstimateGas(ctx, &types.EthCallRequest{ res, err := suite.queryClient.EstimateGas(ctx, &types.EthCallRequest{
Args: args, Args: args,
GasCap: 25_000_000, GasCap: 25_000_000,
ProposerAddress: suite.ctx.BlockHeader().ProposerAddress,
}) })
require.NoError(t, err) require.NoError(t, err)
@ -367,6 +368,7 @@ func (suite *KeeperTestSuite) DeployTestMessageCall(t require.TestingT) common.A
res, err := suite.queryClient.EstimateGas(ctx, &types.EthCallRequest{ res, err := suite.queryClient.EstimateGas(ctx, &types.EthCallRequest{
Args: args, Args: args,
GasCap: uint64(config.DefaultGasCap), GasCap: uint64(config.DefaultGasCap),
ProposerAddress: suite.ctx.BlockHeader().ProposerAddress,
}) })
require.NoError(t, err) require.NoError(t, err)

View File

@ -39,12 +39,12 @@ func GasToRefund(availableRefund, gasConsumed, refundQuotient uint64) uint64 {
} }
// EVMConfig creates the EVMConfig based on current state // EVMConfig creates the EVMConfig based on current state
func (k *Keeper) EVMConfig(ctx sdk.Context) (*types.EVMConfig, error) { func (k *Keeper) EVMConfig(ctx sdk.Context, proposerAddress sdk.ConsAddress) (*types.EVMConfig, error) {
params := k.GetParams(ctx) params := k.GetParams(ctx)
ethCfg := params.ChainConfig.EthereumConfig(k.eip155ChainID) ethCfg := params.ChainConfig.EthereumConfig(k.eip155ChainID)
// get the coinbase address from the block proposer // get the coinbase address from the block proposer
coinbase, err := k.GetCoinbaseAddress(ctx) coinbase, err := k.GetCoinbaseAddress(ctx, proposerAddress)
if err != nil { if err != nil {
return nil, sdkerrors.Wrap(err, "failed to obtain coinbase address") return nil, sdkerrors.Wrap(err, "failed to obtain coinbase address")
} }
@ -199,7 +199,7 @@ func (k *Keeper) ApplyTransaction(ctx sdk.Context, tx *ethtypes.Transaction) (*t
bloomReceipt ethtypes.Bloom bloomReceipt ethtypes.Bloom
) )
cfg, err := k.EVMConfig(ctx) cfg, err := k.EVMConfig(ctx, sdk.ConsAddress(ctx.BlockHeader().ProposerAddress))
if err != nil { if err != nil {
return nil, sdkerrors.Wrap(err, "failed to load evm config") return nil, sdkerrors.Wrap(err, "failed to load evm config")
} }
@ -464,7 +464,7 @@ func (k *Keeper) ApplyMessageWithConfig(ctx sdk.Context,
// ApplyMessage calls ApplyMessageWithConfig with default EVMConfig // ApplyMessage calls ApplyMessageWithConfig with default EVMConfig
func (k *Keeper) ApplyMessage(ctx sdk.Context, msg core.Message, tracer vm.EVMLogger, commit bool) (*types.MsgEthereumTxResponse, error) { func (k *Keeper) ApplyMessage(ctx sdk.Context, msg core.Message, tracer vm.EVMLogger, commit bool) (*types.MsgEthereumTxResponse, error) {
cfg, err := k.EVMConfig(ctx) cfg, err := k.EVMConfig(ctx, sdk.ConsAddress(ctx.BlockHeader().ProposerAddress))
if err != nil { if err != nil {
return nil, sdkerrors.Wrap(err, "failed to load evm config") return nil, sdkerrors.Wrap(err, "failed to load evm config")
} }
@ -519,15 +519,22 @@ func (k *Keeper) ResetGasMeterAndConsumeGas(ctx sdk.Context, gasUsed uint64) {
ctx.GasMeter().ConsumeGas(gasUsed, "apply evm transaction") ctx.GasMeter().ConsumeGas(gasUsed, "apply evm transaction")
} }
// GetProposerAddress returns current block proposer's address when provided proposer address is empty.
func GetProposerAddress(ctx sdk.Context, proposerAddress sdk.ConsAddress) sdk.ConsAddress {
if len(proposerAddress) == 0 {
proposerAddress = ctx.BlockHeader().ProposerAddress
}
return proposerAddress
}
// GetCoinbaseAddress returns the block proposer's validator operator address. // GetCoinbaseAddress returns the block proposer's validator operator address.
func (k Keeper) GetCoinbaseAddress(ctx sdk.Context) (common.Address, error) { func (k Keeper) GetCoinbaseAddress(ctx sdk.Context, proposerAddress sdk.ConsAddress) (common.Address, error) {
consAddr := sdk.ConsAddress(ctx.BlockHeader().ProposerAddress) validator, found := k.stakingKeeper.GetValidatorByConsAddr(ctx, GetProposerAddress(ctx, proposerAddress))
validator, found := k.stakingKeeper.GetValidatorByConsAddr(ctx, consAddr)
if !found { if !found {
return common.Address{}, sdkerrors.Wrapf( return common.Address{}, sdkerrors.Wrapf(
stakingtypes.ErrNoValidatorFound, stakingtypes.ErrNoValidatorFound,
"failed to retrieve validator from block proposer address %s", "failed to retrieve validator from block proposer address %s",
consAddr.String(), proposerAddress.String(),
) )
} }

View File

@ -159,8 +159,8 @@ func (suite *KeeperTestSuite) TestGetCoinbaseAddress() {
suite.SetupTest() // reset suite.SetupTest() // reset
tc.malleate() tc.malleate()
proposerAddress := suite.ctx.BlockHeader().ProposerAddress
coinbase, err := suite.app.EvmKeeper.GetCoinbaseAddress(suite.ctx) coinbase, err := suite.app.EvmKeeper.GetCoinbaseAddress(suite.ctx, sdk.ConsAddress(proposerAddress))
if tc.expPass { if tc.expPass {
suite.Require().NoError(err) suite.Require().NoError(err)
suite.Require().Equal(valOpAddr, coinbase) suite.Require().Equal(valOpAddr, coinbase)
@ -516,7 +516,8 @@ func (suite *KeeperTestSuite) TestResetGasMeterAndConsumeGas() {
} }
func (suite *KeeperTestSuite) TestEVMConfig() { func (suite *KeeperTestSuite) TestEVMConfig() {
cfg, err := suite.app.EvmKeeper.EVMConfig(suite.ctx) proposerAddress := suite.ctx.BlockHeader().ProposerAddress
cfg, err := suite.app.EvmKeeper.EVMConfig(suite.ctx, proposerAddress)
suite.Require().NoError(err) suite.Require().NoError(err)
suite.Require().Equal(types.DefaultParams(), cfg.Params) suite.Require().Equal(types.DefaultParams(), cfg.Params)
// london hardfork is enabled by default // london hardfork is enabled by default
@ -535,7 +536,8 @@ func (suite *KeeperTestSuite) TestApplyMessage() {
expectedGasUsed := params.TxGas expectedGasUsed := params.TxGas
var msg core.Message var msg core.Message
config, err := suite.app.EvmKeeper.EVMConfig(suite.ctx) proposerAddress := suite.ctx.BlockHeader().ProposerAddress
config, err := suite.app.EvmKeeper.EVMConfig(suite.ctx, proposerAddress)
suite.Require().NoError(err) suite.Require().NoError(err)
keeperParams := suite.app.EvmKeeper.GetParams(suite.ctx) keeperParams := suite.app.EvmKeeper.GetParams(suite.ctx)
@ -635,7 +637,8 @@ func (suite *KeeperTestSuite) TestApplyMessageWithConfig() {
suite.SetupTest() suite.SetupTest()
expectedGasUsed = params.TxGas expectedGasUsed = params.TxGas
config, err = suite.app.EvmKeeper.EVMConfig(suite.ctx) proposerAddress := suite.ctx.BlockHeader().ProposerAddress
config, err = suite.app.EvmKeeper.EVMConfig(suite.ctx, proposerAddress)
suite.Require().NoError(err) suite.Require().NoError(err)
keeperParams = suite.app.EvmKeeper.GetParams(suite.ctx) keeperParams = suite.app.EvmKeeper.GetParams(suite.ctx)
@ -688,3 +691,35 @@ func (suite *KeeperTestSuite) createContractMsgTx(nonce uint64, signer ethtypes.
return ethMsg, ethMsg.Sign(signer, suite.signer) return ethMsg, ethMsg.Sign(signer, suite.signer)
} }
func (suite *KeeperTestSuite) TestGetProposerAddress() {
var a sdk.ConsAddress
address := sdk.ConsAddress(suite.address.Bytes())
proposerAddress := sdk.ConsAddress(suite.ctx.BlockHeader().ProposerAddress)
testCases := []struct {
msg string
adr sdk.ConsAddress
expAdr sdk.ConsAddress
}{
{
"proposer address provided",
address,
address,
},
{
"nil proposer address provided",
nil,
proposerAddress,
},
{
"typed nil proposer address provided",
a,
proposerAddress,
},
}
for _, tc := range testCases {
suite.Run(fmt.Sprintf("Case %s", tc.msg), func() {
suite.Require().Equal(tc.expAdr, keeper.GetProposerAddress(suite.ctx, tc.adr))
})
}
}

339
x/evm/types/query.pb.go generated
View File

@ -792,6 +792,8 @@ type EthCallRequest struct {
Args []byte `protobuf:"bytes,1,opt,name=args,proto3" json:"args,omitempty"` Args []byte `protobuf:"bytes,1,opt,name=args,proto3" json:"args,omitempty"`
// the default gas cap to be used // the default gas cap to be used
GasCap uint64 `protobuf:"varint,2,opt,name=gas_cap,json=gasCap,proto3" json:"gas_cap,omitempty"` GasCap uint64 `protobuf:"varint,2,opt,name=gas_cap,json=gasCap,proto3" json:"gas_cap,omitempty"`
// the proposer of the requested block
ProposerAddress github_com_cosmos_cosmos_sdk_types.ConsAddress `protobuf:"bytes,3,opt,name=proposer_address,json=proposerAddress,proto3,casttype=github.com/cosmos/cosmos-sdk/types.ConsAddress" json:"proposer_address,omitempty"`
} }
func (m *EthCallRequest) Reset() { *m = EthCallRequest{} } func (m *EthCallRequest) Reset() { *m = EthCallRequest{} }
@ -841,6 +843,13 @@ func (m *EthCallRequest) GetGasCap() uint64 {
return 0 return 0
} }
func (m *EthCallRequest) GetProposerAddress() github_com_cosmos_cosmos_sdk_types.ConsAddress {
if m != nil {
return m.ProposerAddress
}
return nil
}
// EstimateGasResponse defines EstimateGas response // EstimateGasResponse defines EstimateGas response
type EstimateGasResponse struct { type EstimateGasResponse struct {
// the estimated gas // the estimated gas
@ -902,6 +911,8 @@ type QueryTraceTxRequest struct {
BlockHash string `protobuf:"bytes,6,opt,name=block_hash,json=blockHash,proto3" json:"block_hash,omitempty"` BlockHash string `protobuf:"bytes,6,opt,name=block_hash,json=blockHash,proto3" json:"block_hash,omitempty"`
// block time of requested transaction // block time of requested transaction
BlockTime time.Time `protobuf:"bytes,7,opt,name=block_time,json=blockTime,proto3,stdtime" json:"block_time"` BlockTime time.Time `protobuf:"bytes,7,opt,name=block_time,json=blockTime,proto3,stdtime" json:"block_time"`
// the proposer of the requested block
ProposerAddress github_com_cosmos_cosmos_sdk_types.ConsAddress `protobuf:"bytes,8,opt,name=proposer_address,json=proposerAddress,proto3,casttype=github.com/cosmos/cosmos-sdk/types.ConsAddress" json:"proposer_address,omitempty"`
} }
func (m *QueryTraceTxRequest) Reset() { *m = QueryTraceTxRequest{} } func (m *QueryTraceTxRequest) Reset() { *m = QueryTraceTxRequest{} }
@ -979,6 +990,13 @@ func (m *QueryTraceTxRequest) GetBlockTime() time.Time {
return time.Time{} return time.Time{}
} }
func (m *QueryTraceTxRequest) GetProposerAddress() github_com_cosmos_cosmos_sdk_types.ConsAddress {
if m != nil {
return m.ProposerAddress
}
return nil
}
// QueryTraceTxResponse defines TraceTx response // QueryTraceTxResponse defines TraceTx response
type QueryTraceTxResponse struct { type QueryTraceTxResponse struct {
// response serialized in bytes // response serialized in bytes
@ -1037,6 +1055,8 @@ type QueryTraceBlockRequest struct {
BlockHash string `protobuf:"bytes,6,opt,name=block_hash,json=blockHash,proto3" json:"block_hash,omitempty"` BlockHash string `protobuf:"bytes,6,opt,name=block_hash,json=blockHash,proto3" json:"block_hash,omitempty"`
// block time // block time
BlockTime time.Time `protobuf:"bytes,7,opt,name=block_time,json=blockTime,proto3,stdtime" json:"block_time"` BlockTime time.Time `protobuf:"bytes,7,opt,name=block_time,json=blockTime,proto3,stdtime" json:"block_time"`
// the proposer of the requested block
ProposerAddress github_com_cosmos_cosmos_sdk_types.ConsAddress `protobuf:"bytes,8,opt,name=proposer_address,json=proposerAddress,proto3,casttype=github.com/cosmos/cosmos-sdk/types.ConsAddress" json:"proposer_address,omitempty"`
} }
func (m *QueryTraceBlockRequest) Reset() { *m = QueryTraceBlockRequest{} } func (m *QueryTraceBlockRequest) Reset() { *m = QueryTraceBlockRequest{} }
@ -1107,6 +1127,13 @@ func (m *QueryTraceBlockRequest) GetBlockTime() time.Time {
return time.Time{} return time.Time{}
} }
func (m *QueryTraceBlockRequest) GetProposerAddress() github_com_cosmos_cosmos_sdk_types.ConsAddress {
if m != nil {
return m.ProposerAddress
}
return nil
}
// QueryTraceBlockResponse defines TraceBlock response // QueryTraceBlockResponse defines TraceBlock response
type QueryTraceBlockResponse struct { type QueryTraceBlockResponse struct {
Data []byte `protobuf:"bytes,1,opt,name=data,proto3" json:"data,omitempty"` Data []byte `protobuf:"bytes,1,opt,name=data,proto3" json:"data,omitempty"`
@ -1258,93 +1285,96 @@ func init() {
func init() { proto.RegisterFile("ethermint/evm/v1/query.proto", fileDescriptor_e15a877459347994) } func init() { proto.RegisterFile("ethermint/evm/v1/query.proto", fileDescriptor_e15a877459347994) }
var fileDescriptor_e15a877459347994 = []byte{ var fileDescriptor_e15a877459347994 = []byte{
// 1371 bytes of a gzipped FileDescriptorProto // 1415 bytes of a gzipped FileDescriptorProto
0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0xcc, 0x56, 0x4d, 0x6f, 0x1b, 0x55, 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0xe4, 0x56, 0xcd, 0x6f, 0x13, 0x47,
0x17, 0xce, 0xc4, 0x4e, 0xec, 0x1e, 0xa7, 0x7d, 0xf3, 0xde, 0xa6, 0xd4, 0x1d, 0x12, 0x3b, 0x9d, 0x1b, 0xcf, 0xc6, 0x4e, 0x6c, 0xc6, 0x01, 0xfc, 0x0e, 0xe1, 0xc5, 0xec, 0x9b, 0xd8, 0x61, 0x21,
0x36, 0x9f, 0x4d, 0x67, 0x88, 0x41, 0x95, 0xa8, 0x84, 0x68, 0x63, 0xa5, 0x05, 0xda, 0xa2, 0x62, 0x9f, 0x84, 0xdd, 0x37, 0x6e, 0x85, 0x54, 0x2e, 0x05, 0x5b, 0x81, 0xb6, 0x40, 0x45, 0xb7, 0x51,
0x22, 0x16, 0x48, 0xc8, 0xba, 0x1e, 0xdf, 0x8e, 0xad, 0xd8, 0x33, 0xae, 0xef, 0xb5, 0x71, 0x5a, 0x0f, 0x95, 0x90, 0x35, 0x5e, 0x0f, 0x6b, 0x2b, 0xf6, 0x8e, 0xd9, 0x19, 0xbb, 0x0e, 0x94, 0x1e,
0xca, 0x02, 0x89, 0xaa, 0xa8, 0x9b, 0x4a, 0xb0, 0x46, 0xfd, 0x07, 0xfc, 0x8d, 0x2e, 0x2b, 0xb1, 0x2a, 0x15, 0x51, 0x71, 0x41, 0xea, 0xb5, 0xaa, 0xf8, 0x0f, 0xfa, 0x57, 0x54, 0xe2, 0x88, 0xd4,
0x41, 0x2c, 0x0a, 0x6a, 0x10, 0x62, 0xc7, 0x5f, 0x40, 0xf7, 0x63, 0xec, 0x19, 0x8f, 0xc7, 0x4e, 0x4b, 0xd5, 0x03, 0xad, 0xa0, 0x87, 0xde, 0x7a, 0xe8, 0xad, 0xa7, 0x6a, 0x3e, 0xd6, 0x5e, 0x7b,
0x51, 0x17, 0xac, 0xe6, 0x7e, 0x9c, 0x7b, 0x9e, 0xe7, 0x9e, 0x7b, 0xe6, 0x3c, 0x07, 0x16, 0x09, 0xbd, 0x76, 0xa8, 0xb8, 0xf5, 0xb4, 0x3b, 0x33, 0xcf, 0x3c, 0xcf, 0xef, 0xf9, 0x98, 0xe7, 0xf9,
0xab, 0x91, 0x76, 0xb3, 0xee, 0x32, 0x8b, 0x74, 0x9b, 0x56, 0x77, 0xdb, 0xba, 0xdb, 0x21, 0xed, 0x81, 0x25, 0xcc, 0xea, 0xd8, 0x6f, 0x35, 0x3c, 0x66, 0xe1, 0x6e, 0xcb, 0xea, 0xee, 0x58, 0x77,
0x03, 0xb3, 0xd5, 0xf6, 0x98, 0x87, 0xe6, 0xfb, 0xbb, 0x26, 0xe9, 0x36, 0xcd, 0xee, 0xb6, 0xbe, 0x3b, 0xd8, 0x3f, 0x30, 0xdb, 0x3e, 0x61, 0x04, 0x66, 0xfb, 0xa7, 0x26, 0xee, 0xb6, 0xcc, 0xee,
0xe0, 0x78, 0x8e, 0x27, 0x36, 0x2d, 0x3e, 0x92, 0x76, 0xfa, 0xa6, 0xed, 0xd1, 0xa6, 0x47, 0xad, 0x8e, 0xbe, 0xe8, 0x12, 0x97, 0x88, 0x43, 0x8b, 0xff, 0x49, 0x39, 0x7d, 0xcb, 0x21, 0xb4, 0x45,
0x0a, 0xa6, 0x44, 0x3a, 0xb0, 0xba, 0xdb, 0x15, 0xc2, 0xf0, 0xb6, 0xd5, 0xc2, 0x4e, 0xdd, 0xc5, 0xa8, 0x55, 0x45, 0x14, 0x4b, 0x05, 0x56, 0x77, 0xa7, 0x8a, 0x19, 0xda, 0xb1, 0xda, 0xc8, 0x6d,
0xac, 0xee, 0xb9, 0xca, 0x76, 0xd1, 0xf1, 0x3c, 0xa7, 0x41, 0x2c, 0xdc, 0xaa, 0x5b, 0xd8, 0x75, 0x78, 0x88, 0x35, 0x88, 0xa7, 0x64, 0x97, 0x5c, 0x42, 0xdc, 0x26, 0xb6, 0x50, 0xbb, 0x61, 0x21,
0x3d, 0x26, 0x36, 0xa9, 0xda, 0xd5, 0x23, 0x7c, 0x38, 0xb0, 0xdc, 0x3b, 0x13, 0xd9, 0x63, 0x3d, 0xcf, 0x23, 0x4c, 0x1c, 0x52, 0x75, 0xaa, 0x47, 0xf0, 0x70, 0xc3, 0xf2, 0xec, 0x74, 0xe4, 0x8c,
0xb5, 0x95, 0x57, 0x4e, 0xc5, 0xac, 0xd2, 0xb9, 0x63, 0xb1, 0x7a, 0x93, 0x50, 0x86, 0x9b, 0x2d, 0xf5, 0xd4, 0x51, 0x41, 0x29, 0x15, 0xab, 0x6a, 0xe7, 0x8e, 0xc5, 0x1a, 0x2d, 0x4c, 0x19, 0x6a,
0x69, 0x60, 0xbc, 0x0b, 0x27, 0x3f, 0xe1, 0xbc, 0xae, 0xda, 0xb6, 0xd7, 0x71, 0x59, 0x89, 0xdc, 0xb5, 0xa5, 0x80, 0xf1, 0x0e, 0x38, 0xf1, 0x11, 0xc7, 0x75, 0xc5, 0x71, 0x48, 0xc7, 0x63, 0x36,
0xed, 0x10, 0xca, 0x50, 0x16, 0x52, 0xb8, 0x5a, 0x6d, 0x13, 0x4a, 0xb3, 0xda, 0xb2, 0xb6, 0x7e, 0xbe, 0xdb, 0xc1, 0x94, 0xc1, 0x1c, 0x48, 0xa1, 0x5a, 0xcd, 0xc7, 0x94, 0xe6, 0xb4, 0x15, 0x6d,
0xac, 0xe4, 0x4f, 0x2f, 0xa7, 0x1f, 0x3d, 0xcd, 0x4f, 0xfd, 0xf5, 0x34, 0x3f, 0x65, 0xd8, 0xb0, 0xe3, 0x88, 0x1d, 0x2c, 0x2f, 0xa5, 0x1f, 0x3d, 0x2d, 0xcc, 0xfc, 0xfe, 0xb4, 0x30, 0x63, 0x38,
0x10, 0x3e, 0x4a, 0x5b, 0x9e, 0x4b, 0x09, 0x3f, 0x5b, 0xc1, 0x0d, 0xec, 0xda, 0xc4, 0x3f, 0xab, 0x60, 0x71, 0xf8, 0x2a, 0x6d, 0x13, 0x8f, 0x62, 0x7e, 0xb7, 0x8a, 0x9a, 0xc8, 0x73, 0x70, 0x70,
0xa6, 0xe8, 0x4d, 0x38, 0x66, 0x7b, 0x55, 0x52, 0xae, 0x61, 0x5a, 0xcb, 0x4e, 0x8b, 0xbd, 0x34, 0x57, 0x2d, 0xe1, 0xff, 0xc0, 0x11, 0x87, 0xd4, 0x70, 0xa5, 0x8e, 0x68, 0x3d, 0x37, 0x2b, 0xce,
0x5f, 0xf8, 0x00, 0xd3, 0x1a, 0x5a, 0x80, 0x19, 0xd7, 0xe3, 0x87, 0x12, 0xcb, 0xda, 0x7a, 0xb2, 0xd2, 0x7c, 0xe3, 0x3d, 0x44, 0xeb, 0x70, 0x11, 0xcc, 0x79, 0x84, 0x5f, 0x4a, 0xac, 0x68, 0x1b,
0x24, 0x27, 0xc6, 0xfb, 0x70, 0x46, 0x80, 0x14, 0x45, 0x20, 0xff, 0x05, 0xcb, 0x87, 0x1a, 0xe8, 0x49, 0x5b, 0x2e, 0x8c, 0x77, 0xc1, 0x69, 0x61, 0xa4, 0x2c, 0x02, 0xf9, 0x0f, 0x50, 0x3e, 0xd4,
0xa3, 0x3c, 0x28, 0xb2, 0x2b, 0x70, 0x42, 0xbe, 0x51, 0x39, 0xec, 0xe9, 0xb8, 0x5c, 0xbd, 0x2a, 0x80, 0x3e, 0x4e, 0x83, 0x02, 0xbb, 0x0a, 0x8e, 0xc9, 0x1c, 0x55, 0x86, 0x35, 0x1d, 0x95, 0xbb,
0x17, 0x91, 0x0e, 0x69, 0xca, 0x41, 0x39, 0xbf, 0x69, 0xc1, 0xaf, 0x3f, 0xe7, 0x2e, 0xb0, 0xf4, 0x57, 0xe4, 0x26, 0xd4, 0x41, 0x9a, 0x72, 0xa3, 0x1c, 0xdf, 0xac, 0xc0, 0xd7, 0x5f, 0x73, 0x15,
0x5a, 0x76, 0x3b, 0xcd, 0x0a, 0x69, 0xab, 0x1b, 0x1c, 0x57, 0xab, 0x1f, 0x8b, 0x45, 0xe3, 0x06, 0x48, 0x6a, 0xad, 0x78, 0x9d, 0x56, 0x15, 0xfb, 0xca, 0x83, 0xa3, 0x6a, 0xf7, 0x43, 0xb1, 0x69,
0x2c, 0x0a, 0x1e, 0x9f, 0xe1, 0x46, 0xbd, 0x8a, 0x99, 0xd7, 0x1e, 0xba, 0xcc, 0x59, 0x98, 0xb3, 0x5c, 0x07, 0x4b, 0x02, 0xc7, 0x27, 0xa8, 0xd9, 0xa8, 0x21, 0x46, 0xfc, 0x11, 0x67, 0xce, 0x80,
0x3d, 0x77, 0x98, 0x47, 0x86, 0xaf, 0x5d, 0x8d, 0xdc, 0xea, 0xb1, 0x06, 0x4b, 0x31, 0xde, 0xd4, 0x05, 0x87, 0x78, 0xa3, 0x38, 0x32, 0x7c, 0xef, 0x4a, 0xc4, 0xab, 0xc7, 0x1a, 0x58, 0x8e, 0xd1,
0xc5, 0xd6, 0xe0, 0x7f, 0x3e, 0xab, 0xb0, 0x47, 0x9f, 0xec, 0x6b, 0xbc, 0x9a, 0x9f, 0x44, 0x3b, 0xa6, 0x1c, 0x5b, 0x07, 0xc7, 0x03, 0x54, 0xc3, 0x1a, 0x03, 0xb0, 0x6f, 0xd0, 0xb5, 0xa0, 0x88,
0xf2, 0x9d, 0x5f, 0xe5, 0x79, 0xde, 0x52, 0x49, 0xd4, 0x3f, 0x3a, 0x29, 0x89, 0x8c, 0x1b, 0x0a, 0x4a, 0x32, 0xcf, 0xaf, 0x93, 0x9e, 0xff, 0xab, 0x22, 0xea, 0x5f, 0x9d, 0x56, 0x44, 0xc6, 0x75,
0xec, 0x53, 0xe6, 0xb5, 0xb1, 0x33, 0x19, 0x0c, 0xcd, 0x43, 0x62, 0x9f, 0x1c, 0xa8, 0x7c, 0xe3, 0x65, 0xec, 0x63, 0x46, 0x7c, 0xe4, 0x4e, 0x37, 0x06, 0xb3, 0x20, 0xb1, 0x8f, 0x0f, 0x54, 0xbd,
0xc3, 0x00, 0xfc, 0x96, 0x82, 0xef, 0x3b, 0x53, 0xf0, 0x0b, 0x30, 0xd3, 0xc5, 0x8d, 0x8e, 0x0f, 0xf1, 0xdf, 0x90, 0xf9, 0x6d, 0x65, 0xbe, 0xaf, 0x4c, 0x99, 0x5f, 0x04, 0x73, 0x5d, 0xd4, 0xec,
0x2e, 0x27, 0xc6, 0x25, 0x98, 0x57, 0xa9, 0x54, 0x7d, 0xa5, 0x4b, 0xae, 0xc1, 0xff, 0x03, 0xe7, 0x04, 0xc6, 0xe5, 0xc2, 0xb8, 0x08, 0xb2, 0xaa, 0x94, 0x6a, 0xaf, 0xe5, 0xe4, 0x3a, 0xf8, 0x4f,
0x14, 0x04, 0x82, 0x24, 0xcf, 0x7d, 0x71, 0x6a, 0xae, 0x24, 0xc6, 0xc6, 0x3d, 0x40, 0xc2, 0x70, 0xe8, 0x9e, 0x32, 0x01, 0x41, 0x92, 0xd7, 0xbe, 0xb8, 0xb5, 0x60, 0x8b, 0x7f, 0xe3, 0x1e, 0x80,
0xaf, 0x77, 0xd3, 0x73, 0xa8, 0x0f, 0x81, 0x20, 0x29, 0xfe, 0x18, 0xe9, 0x5f, 0x8c, 0xd1, 0x35, 0x42, 0x70, 0xaf, 0x77, 0x83, 0xb8, 0x34, 0x30, 0x01, 0x41, 0x52, 0xbc, 0x18, 0xa9, 0x5f, 0xfc,
0x80, 0x41, 0x05, 0x11, 0x77, 0xcb, 0x14, 0x56, 0x4d, 0x99, 0xb4, 0x26, 0x2f, 0x37, 0xa6, 0xac, 0xc3, 0xab, 0x00, 0x0c, 0x3a, 0x88, 0xf0, 0x2d, 0x53, 0x5c, 0x33, 0x65, 0xd1, 0x9a, 0xbc, 0xdd,
0x57, 0xaa, 0xdc, 0x98, 0xb7, 0x07, 0xa1, 0x2a, 0x05, 0x4e, 0x06, 0x48, 0x7e, 0xa7, 0xa9, 0xc0, 0x98, 0xb2, 0x5f, 0xa9, 0x76, 0x63, 0xde, 0x1a, 0x84, 0xca, 0x0e, 0xdd, 0x0c, 0x81, 0xfc, 0x5a,
0xfa, 0xe0, 0x8a, 0xe7, 0x06, 0x24, 0x1b, 0x9e, 0xc3, 0x6f, 0x97, 0x58, 0xcf, 0x14, 0x4e, 0x99, 0x53, 0x81, 0x0d, 0x8c, 0x2b, 0x9c, 0x9b, 0x20, 0xd9, 0x24, 0x2e, 0xf7, 0x2e, 0xb1, 0x91, 0x29,
0xc3, 0xa5, 0xcf, 0xbc, 0xe9, 0x39, 0x25, 0x61, 0x82, 0xae, 0x8f, 0x20, 0xb5, 0x36, 0x91, 0x94, 0x9e, 0x34, 0x47, 0x5b, 0x9f, 0x79, 0x83, 0xb8, 0xb6, 0x10, 0x81, 0xd7, 0xc6, 0x80, 0x5a, 0x9f,
0xc4, 0x09, 0xb2, 0x32, 0x16, 0x54, 0x1c, 0x6e, 0xe3, 0x36, 0x6e, 0xfa, 0x71, 0x30, 0x6e, 0x29, 0x0a, 0x4a, 0xda, 0x09, 0xa3, 0x32, 0x16, 0x55, 0x1c, 0x6e, 0x21, 0x1f, 0xb5, 0x82, 0x38, 0x18,
0x82, 0xfe, 0xaa, 0x22, 0x78, 0x09, 0x66, 0x5b, 0x62, 0x45, 0x04, 0x28, 0x53, 0xc8, 0x46, 0x29, 0x37, 0x15, 0xc0, 0x60, 0x57, 0x01, 0xbc, 0x08, 0xe6, 0xdb, 0x62, 0x47, 0x04, 0x28, 0x53, 0xcc,
0xca, 0x13, 0x3b, 0xc9, 0x67, 0x2f, 0xf2, 0x53, 0x25, 0x65, 0x6d, 0xbc, 0x07, 0x27, 0x76, 0x59, 0x45, 0x21, 0xca, 0x1b, 0xa5, 0xe4, 0xb3, 0x17, 0x85, 0x19, 0x5b, 0x49, 0x1b, 0xdf, 0x6a, 0xe0,
0xad, 0x88, 0x1b, 0x8d, 0x40, 0xa0, 0x71, 0xdb, 0xa1, 0xfe, 0x93, 0xf0, 0x31, 0x3a, 0x0d, 0x29, 0xd8, 0x2e, 0xab, 0x97, 0x51, 0xb3, 0x19, 0x8a, 0x34, 0xf2, 0x5d, 0x1a, 0xe4, 0x84, 0xff, 0xc3,
0x07, 0xd3, 0xb2, 0x8d, 0x5b, 0xea, 0xef, 0x98, 0x75, 0x30, 0x2d, 0xe2, 0x96, 0xb1, 0x06, 0x27, 0x53, 0x20, 0xe5, 0x22, 0x5a, 0x71, 0x50, 0x5b, 0x3d, 0x8f, 0x79, 0x17, 0xd1, 0x32, 0x6a, 0xc3,
0x77, 0x29, 0xab, 0x37, 0x31, 0x23, 0xd7, 0xf1, 0x80, 0xcd, 0x3c, 0x24, 0x1c, 0x2c, 0x5d, 0x24, 0xdb, 0x20, 0xdb, 0xf6, 0x49, 0x9b, 0x50, 0xec, 0xf7, 0x9f, 0x18, 0x7f, 0x1e, 0x0b, 0xa5, 0xe2,
0x4b, 0x7c, 0x68, 0xfc, 0x39, 0xed, 0x07, 0xb6, 0x8d, 0x6d, 0xb2, 0xd7, 0xf3, 0xd1, 0xb6, 0x21, 0x5f, 0x2f, 0x0a, 0xa6, 0xdb, 0x60, 0xf5, 0x4e, 0xd5, 0x74, 0x48, 0xcb, 0x52, 0x53, 0x40, 0x7e,
0xd1, 0xa4, 0x8e, 0x22, 0x9d, 0x8f, 0x92, 0xbe, 0x45, 0x9d, 0x5d, 0xbe, 0x46, 0x3a, 0xcd, 0xbd, 0x2e, 0xd0, 0xda, 0xbe, 0xc5, 0x0e, 0xda, 0x98, 0x9a, 0xe5, 0xc1, 0xdb, 0xb6, 0x8f, 0x07, 0xba,
0x5e, 0x89, 0xdb, 0xa2, 0x2b, 0x30, 0xc7, 0xb8, 0x93, 0xb2, 0xed, 0xb9, 0x77, 0xea, 0x8e, 0xf8, 0xd4, 0x86, 0xb1, 0x0e, 0x4e, 0xec, 0x52, 0xd6, 0x68, 0x21, 0x86, 0xaf, 0xa1, 0x81, 0xb7, 0x59,
0x1b, 0x33, 0x85, 0xa5, 0xe8, 0x59, 0x01, 0x55, 0x14, 0x46, 0xa5, 0x0c, 0x1b, 0x4c, 0x50, 0x11, 0x90, 0x70, 0x91, 0x44, 0x98, 0xb4, 0xf9, 0xaf, 0xf1, 0x43, 0x22, 0x48, 0x9c, 0x8f, 0x1c, 0xbc,
0xe6, 0x5a, 0x6d, 0x52, 0x25, 0x36, 0xa1, 0xd4, 0x6b, 0xd3, 0x6c, 0x52, 0xbc, 0xea, 0x44, 0xf4, 0xd7, 0x0b, 0x9c, 0xd9, 0x01, 0x89, 0x16, 0x75, 0x55, 0x50, 0x0a, 0xd1, 0xa0, 0xdc, 0xa4, 0xee,
0xd0, 0x21, 0x5e, 0xaa, 0x2a, 0x0d, 0xcf, 0xde, 0xf7, 0x8b, 0xc2, 0xcc, 0xb2, 0xb6, 0x9e, 0x28, 0x2e, 0xdf, 0xc3, 0x9d, 0xd6, 0x5e, 0xcf, 0xe6, 0xb2, 0xf0, 0x32, 0x58, 0x60, 0x5c, 0x49, 0xc5,
0x65, 0xc4, 0x9a, 0x2c, 0x09, 0x68, 0x09, 0x40, 0x9a, 0x88, 0xcc, 0x9d, 0x15, 0x99, 0x7b, 0x4c, 0x21, 0xde, 0x9d, 0x86, 0x2b, 0xdc, 0xc9, 0x14, 0x97, 0xa3, 0x77, 0x85, 0xa9, 0xb2, 0x10, 0xb2,
0xac, 0x88, 0x62, 0x5f, 0xf4, 0xb7, 0xb9, 0x1e, 0x65, 0x53, 0xe2, 0x1a, 0xba, 0x29, 0xc5, 0xca, 0x33, 0x6c, 0xb0, 0x80, 0x65, 0xb0, 0xd0, 0xf6, 0x71, 0x0d, 0x3b, 0x98, 0x52, 0xe2, 0xd3, 0x5c,
0xf4, 0xc5, 0xca, 0xdc, 0xf3, 0xc5, 0x6a, 0x27, 0xcd, 0x5f, 0xee, 0xc9, 0x6f, 0x79, 0x4d, 0x39, 0x52, 0x54, 0xcd, 0x54, 0xeb, 0x43, 0x97, 0x78, 0x2b, 0xac, 0x36, 0x89, 0xb3, 0x1f, 0x34, 0x9d,
0xe1, 0x3b, 0x1f, 0x25, 0xd3, 0xd3, 0xf3, 0x89, 0x52, 0x9a, 0xf5, 0xca, 0x75, 0xb7, 0x4a, 0x7a, 0xb9, 0x15, 0x6d, 0x23, 0x61, 0x67, 0xc4, 0x9e, 0x6c, 0x39, 0x70, 0x19, 0x00, 0x29, 0x22, 0x5e,
0xc6, 0xa6, 0xfa, 0x99, 0xfb, 0x71, 0x1e, 0xfc, 0x69, 0x55, 0xcc, 0xb0, 0xff, 0xac, 0x7c, 0x6c, 0xc6, 0xbc, 0x78, 0x19, 0x47, 0xc4, 0x8e, 0x18, 0x26, 0xe5, 0xe0, 0x98, 0xcf, 0xbb, 0x5c, 0x4a,
0xfc, 0x30, 0x0d, 0x6f, 0x0c, 0x8c, 0x77, 0xb8, 0xcf, 0xc0, 0xbb, 0xb0, 0x9e, 0x9f, 0xef, 0x93, 0xb8, 0xa1, 0x9b, 0x72, 0x18, 0x9a, 0xc1, 0x30, 0x34, 0xf7, 0x82, 0x61, 0x58, 0x4a, 0xf3, 0xca,
0xdf, 0x85, 0xf5, 0xe8, 0x6b, 0x78, 0x97, 0xff, 0x46, 0x48, 0x8d, 0x8b, 0x70, 0x3a, 0x12, 0x95, 0x78, 0xf2, 0x4b, 0x41, 0x53, 0x4a, 0xf8, 0xc9, 0xd8, 0x04, 0xa7, 0xdf, 0x58, 0x82, 0x3f, 0x48,
0x31, 0x51, 0x3c, 0xd5, 0x2f, 0xfc, 0x94, 0x5c, 0x23, 0x7e, 0x81, 0x31, 0xbe, 0xe8, 0x17, 0x75, 0xa6, 0x67, 0xb3, 0x09, 0x3b, 0xcd, 0x7a, 0x95, 0x86, 0x57, 0xc3, 0x3d, 0x63, 0x4b, 0xf5, 0xa2,
0xb5, 0xac, 0x5c, 0xec, 0x42, 0x9a, 0x57, 0x81, 0xf2, 0x1d, 0xa2, 0x0a, 0xeb, 0xce, 0xe6, 0xaf, 0x7e, 0x1a, 0x07, 0x8d, 0xa2, 0x86, 0x18, 0x0a, 0x8a, 0x92, 0xff, 0x1b, 0x7f, 0xce, 0x82, 0xff,
0x2f, 0xf2, 0xab, 0x4e, 0x9d, 0xd5, 0x3a, 0x15, 0xd3, 0xf6, 0x9a, 0x96, 0xea, 0x97, 0xe4, 0xe7, 0x0e, 0x84, 0x4b, 0x1c, 0x72, 0x28, 0xed, 0xac, 0x17, 0x3c, 0xd7, 0xe9, 0x69, 0x67, 0x3d, 0xfa,
0x22, 0xad, 0xee, 0x5b, 0xec, 0xa0, 0x45, 0xa8, 0xf9, 0xa1, 0xcb, 0xb8, 0x02, 0x08, 0x77, 0x85, 0x06, 0xd2, 0xfe, 0xaf, 0xc8, 0x98, 0x71, 0x01, 0x9c, 0x8a, 0x04, 0x7d, 0x42, 0x92, 0x4e, 0xf6,
0xbf, 0xe7, 0x60, 0x46, 0xf8, 0x47, 0xdf, 0x6a, 0x90, 0x52, 0xc2, 0x87, 0x56, 0xa2, 0xd1, 0x1e, 0xc7, 0x22, 0xc5, 0x57, 0x71, 0xd0, 0x7e, 0x8d, 0xdb, 0xfd, 0x91, 0xa7, 0xb6, 0x95, 0x8a, 0x5d,
0xd1, 0xd9, 0xe8, 0xab, 0x93, 0xcc, 0x24, 0x57, 0xe3, 0xc2, 0x37, 0x3f, 0xff, 0xf1, 0xfd, 0xf4, 0x90, 0xe6, 0x3d, 0xb2, 0x72, 0x07, 0xab, 0xb1, 0x53, 0xda, 0xfa, 0xf9, 0x45, 0x61, 0xed, 0x10,
0x0a, 0x3a, 0x67, 0x45, 0xba, 0x2b, 0x25, 0x7e, 0xd6, 0x7d, 0x55, 0xe9, 0x1f, 0xa0, 0x1f, 0x35, 0xa0, 0xdf, 0xf7, 0x18, 0x9f, 0x8f, 0x42, 0x5d, 0xf1, 0x8f, 0x05, 0x30, 0x27, 0xf4, 0xc3, 0xaf,
0x38, 0x1e, 0xea, 0x2f, 0xd0, 0x85, 0x18, 0x98, 0x51, 0x7d, 0x8c, 0xbe, 0x75, 0x34, 0x63, 0xc5, 0x34, 0x90, 0x52, 0xb4, 0x00, 0xae, 0x46, 0x93, 0x39, 0x86, 0xf7, 0xe9, 0x6b, 0xd3, 0xc4, 0x24,
0xac, 0x20, 0x98, 0x6d, 0xa1, 0xcd, 0x28, 0x33, 0xbf, 0x95, 0x89, 0x10, 0xfc, 0x49, 0x83, 0xf9, 0x56, 0xe3, 0xfc, 0x97, 0x3f, 0xfe, 0xf6, 0xcd, 0xec, 0x2a, 0x3c, 0x6b, 0x45, 0xb8, 0xa7, 0xa2,
0xe1, 0x56, 0x01, 0x99, 0x31, 0xb0, 0x31, 0x1d, 0x8a, 0x6e, 0x1d, 0xd9, 0x5e, 0x31, 0xbd, 0x2c, 0x06, 0xd6, 0x7d, 0x95, 0x80, 0x07, 0xf0, 0x3b, 0x0d, 0x1c, 0x1d, 0x62, 0x5f, 0xf0, 0x7c, 0x8c,
0x98, 0xbe, 0x83, 0x0a, 0x51, 0xa6, 0x5d, 0xff, 0xcc, 0x80, 0x6c, 0xb0, 0xfb, 0x79, 0x80, 0x1e, 0x99, 0x71, 0x2c, 0x4f, 0xdf, 0x3e, 0x9c, 0xb0, 0x42, 0x56, 0x14, 0xc8, 0xb6, 0xe1, 0x56, 0x14,
0x6a, 0x90, 0x52, 0x4d, 0x41, 0xec, 0xd3, 0x86, 0xfb, 0x8d, 0xd8, 0xa7, 0x1d, 0xea, 0x2d, 0x8c, 0x59, 0x40, 0xf4, 0x22, 0x00, 0xbf, 0xd7, 0x40, 0x76, 0x94, 0x48, 0x41, 0x33, 0xc6, 0x6c, 0x0c,
0x2d, 0x41, 0x6b, 0x15, 0x9d, 0x8f, 0xd2, 0x52, 0x4d, 0x06, 0x0d, 0x84, 0xee, 0xb1, 0x06, 0x29, 0x7f, 0xd3, 0xad, 0x43, 0xcb, 0x2b, 0xa4, 0x97, 0x04, 0xd2, 0xb7, 0x61, 0x31, 0x8a, 0xb4, 0x1b,
0xd5, 0x1e, 0xc4, 0x12, 0x09, 0xf7, 0x22, 0xb1, 0x44, 0x86, 0xba, 0x0c, 0x63, 0x5b, 0x10, 0xb9, 0xdc, 0x19, 0x80, 0x0d, 0x73, 0xc3, 0x07, 0xf0, 0xa1, 0x06, 0x52, 0x8a, 0x32, 0xc5, 0xa6, 0x76,
0x80, 0x36, 0xa2, 0x44, 0xa8, 0x34, 0x1d, 0xf0, 0xb0, 0xee, 0xef, 0x93, 0x83, 0x07, 0xe8, 0x1e, 0x98, 0x8d, 0xc5, 0xa6, 0x76, 0x84, 0x79, 0x19, 0xdb, 0x02, 0xd6, 0x1a, 0x3c, 0x17, 0x85, 0xa5,
0x24, 0x79, 0x17, 0x81, 0x8c, 0xd8, 0x94, 0xe9, 0xb7, 0x26, 0xfa, 0xb9, 0xb1, 0x36, 0x8a, 0xc3, 0x28, 0x18, 0x0d, 0x85, 0xee, 0xb1, 0x06, 0x52, 0x8a, 0x3c, 0xc5, 0x02, 0x19, 0x66, 0x6a, 0xb1,
0x86, 0xe0, 0x70, 0x0e, 0x9d, 0x1d, 0x95, 0x4d, 0xd5, 0x50, 0x24, 0xbe, 0x84, 0x59, 0x29, 0xa4, 0x40, 0x46, 0x38, 0x98, 0xb1, 0x23, 0x80, 0x9c, 0x87, 0x9b, 0x51, 0x20, 0x54, 0x8a, 0x0e, 0x70,
0xe8, 0x7c, 0x8c, 0xe7, 0x90, 0x5e, 0xeb, 0x2b, 0x13, 0xac, 0x14, 0x83, 0x65, 0xc1, 0x40, 0x47, 0x58, 0xf7, 0xf7, 0xf1, 0xc1, 0x03, 0x78, 0x0f, 0x24, 0x39, 0xc7, 0x82, 0x46, 0x6c, 0xc9, 0xf4,
0xd9, 0x28, 0x03, 0xa9, 0xd4, 0xa8, 0x07, 0x29, 0xa5, 0xd4, 0x68, 0x39, 0xea, 0x33, 0x2c, 0xe2, 0x89, 0x9b, 0x7e, 0x76, 0xa2, 0x8c, 0xc2, 0xb0, 0x29, 0x30, 0x9c, 0x85, 0x67, 0xc6, 0x55, 0x53,
0xfa, 0xda, 0xa4, 0x8a, 0xed, 0xe3, 0x1a, 0x02, 0x77, 0x11, 0xe9, 0x51, 0x5c, 0xc2, 0x6a, 0x65, 0x6d, 0x28, 0x12, 0x9f, 0x81, 0x79, 0x49, 0x33, 0xe0, 0xb9, 0x18, 0xcd, 0x43, 0x6c, 0x46, 0x5f,
0x9b, 0xc3, 0x7d, 0x0d, 0x99, 0x80, 0xc8, 0x1f, 0x01, 0x7d, 0xc4, 0x9d, 0x47, 0x74, 0x09, 0xc6, 0x9d, 0x22, 0xa5, 0x10, 0xac, 0x08, 0x04, 0x3a, 0xcc, 0x45, 0x11, 0x48, 0x1e, 0x03, 0x7b, 0x20,
0xaa, 0xc0, 0x5e, 0x46, 0xb9, 0x11, 0xd8, 0xca, 0xbc, 0xec, 0x60, 0x8a, 0xbe, 0x82, 0x94, 0x52, 0xa5, 0x68, 0x0c, 0x5c, 0x89, 0xea, 0x1c, 0x66, 0x38, 0xfa, 0xfa, 0xb4, 0x81, 0x10, 0xd8, 0x35,
0xb3, 0xd8, 0xdc, 0x0b, 0x77, 0x15, 0xb1, 0xb9, 0x37, 0x24, 0x8a, 0xe3, 0x6e, 0x2f, 0xa5, 0x8c, 0x84, 0xdd, 0x25, 0xa8, 0x47, 0xed, 0x62, 0x56, 0xaf, 0x38, 0xdc, 0xdc, 0x17, 0x20, 0x13, 0xa2,
0xf5, 0xd0, 0x23, 0x0d, 0x60, 0xa0, 0x04, 0x68, 0x7d, 0x9c, 0xeb, 0xa0, 0x84, 0xea, 0x1b, 0x47, 0x28, 0x87, 0xb0, 0x3e, 0xc6, 0xe7, 0x31, 0x1c, 0xc7, 0x58, 0x13, 0xb6, 0x57, 0x60, 0x7e, 0x8c,
0xb0, 0x54, 0x3c, 0x56, 0x04, 0x8f, 0x3c, 0x5a, 0x8a, 0xe3, 0x21, 0xc4, 0x89, 0x07, 0x42, 0xa9, 0x6d, 0x25, 0x5e, 0x71, 0x11, 0x85, 0x9f, 0x83, 0x94, 0x1a, 0x96, 0xb1, 0xb5, 0x37, 0xcc, 0x89,
0xc9, 0x98, 0x6a, 0x10, 0x14, 0xa1, 0x31, 0xd5, 0x20, 0x24, 0x4a, 0xe3, 0x02, 0xe1, 0x8b, 0xd5, 0x62, 0x6b, 0x6f, 0x64, 0xe6, 0x4e, 0xf2, 0x5e, 0x4e, 0x4a, 0xd6, 0x83, 0x8f, 0x34, 0x00, 0x06,
0xce, 0x95, 0x67, 0x2f, 0x73, 0xda, 0xf3, 0x97, 0x39, 0xed, 0xf7, 0x97, 0x39, 0xed, 0xc9, 0x61, 0x93, 0x00, 0x6e, 0x4c, 0x52, 0x1d, 0x9e, 0xd0, 0xfa, 0xe6, 0x21, 0x24, 0x15, 0x8e, 0x55, 0x81,
0x6e, 0xea, 0xf9, 0x61, 0x6e, 0xea, 0x97, 0xc3, 0xdc, 0xd4, 0xe7, 0x41, 0xf1, 0x22, 0x5d, 0xae, 0xa3, 0x00, 0x97, 0xe3, 0x70, 0x88, 0xd9, 0xc7, 0x03, 0xa1, 0xa6, 0xc9, 0x84, 0x6e, 0x10, 0x1e,
0x5d, 0x03, 0x2f, 0x3d, 0xe1, 0x47, 0x08, 0x58, 0x65, 0x56, 0x28, 0xf0, 0xdb, 0xff, 0x04, 0x00, 0x42, 0x13, 0xba, 0xc1, 0xd0, 0x50, 0x9a, 0x14, 0x88, 0x60, 0x58, 0x95, 0x2e, 0x3f, 0x7b, 0x99,
0x00, 0xff, 0xff, 0x7d, 0x85, 0x8e, 0xb2, 0x58, 0x10, 0x00, 0x00, 0xd7, 0x9e, 0xbf, 0xcc, 0x6b, 0xbf, 0xbe, 0xcc, 0x6b, 0x4f, 0x5e, 0xe5, 0x67, 0x9e, 0xbf, 0xca,
0xcf, 0xfc, 0xf4, 0x2a, 0x3f, 0xf3, 0x69, 0x78, 0x78, 0xe1, 0x2e, 0x9f, 0x5d, 0x03, 0x2d, 0x3d,
0xa1, 0x47, 0x0c, 0xb0, 0xea, 0xbc, 0x18, 0xf0, 0x6f, 0xfd, 0x1d, 0x00, 0x00, 0xff, 0xff, 0xcd,
0x1e, 0xee, 0xb9, 0x76, 0x11, 0x00, 0x00,
} }
// Reference imports to suppress errors if they are not otherwise used. // Reference imports to suppress errors if they are not otherwise used.
@ -2419,6 +2449,13 @@ func (m *EthCallRequest) MarshalToSizedBuffer(dAtA []byte) (int, error) {
_ = i _ = i
var l int var l int
_ = l _ = l
if len(m.ProposerAddress) > 0 {
i -= len(m.ProposerAddress)
copy(dAtA[i:], m.ProposerAddress)
i = encodeVarintQuery(dAtA, i, uint64(len(m.ProposerAddress)))
i--
dAtA[i] = 0x1a
}
if m.GasCap != 0 { if m.GasCap != 0 {
i = encodeVarintQuery(dAtA, i, uint64(m.GasCap)) i = encodeVarintQuery(dAtA, i, uint64(m.GasCap))
i-- i--
@ -2482,6 +2519,13 @@ func (m *QueryTraceTxRequest) MarshalToSizedBuffer(dAtA []byte) (int, error) {
_ = i _ = i
var l int var l int
_ = l _ = l
if len(m.ProposerAddress) > 0 {
i -= len(m.ProposerAddress)
copy(dAtA[i:], m.ProposerAddress)
i = encodeVarintQuery(dAtA, i, uint64(len(m.ProposerAddress)))
i--
dAtA[i] = 0x42
}
n4, err4 := github_com_gogo_protobuf_types.StdTimeMarshalTo(m.BlockTime, dAtA[i-github_com_gogo_protobuf_types.SizeOfStdTime(m.BlockTime):]) n4, err4 := github_com_gogo_protobuf_types.StdTimeMarshalTo(m.BlockTime, dAtA[i-github_com_gogo_protobuf_types.SizeOfStdTime(m.BlockTime):])
if err4 != nil { if err4 != nil {
return 0, err4 return 0, err4
@ -2593,6 +2637,13 @@ func (m *QueryTraceBlockRequest) MarshalToSizedBuffer(dAtA []byte) (int, error)
_ = i _ = i
var l int var l int
_ = l _ = l
if len(m.ProposerAddress) > 0 {
i -= len(m.ProposerAddress)
copy(dAtA[i:], m.ProposerAddress)
i = encodeVarintQuery(dAtA, i, uint64(len(m.ProposerAddress)))
i--
dAtA[i] = 0x42
}
n7, err7 := github_com_gogo_protobuf_types.StdTimeMarshalTo(m.BlockTime, dAtA[i-github_com_gogo_protobuf_types.SizeOfStdTime(m.BlockTime):]) n7, err7 := github_com_gogo_protobuf_types.StdTimeMarshalTo(m.BlockTime, dAtA[i-github_com_gogo_protobuf_types.SizeOfStdTime(m.BlockTime):])
if err7 != nil { if err7 != nil {
return 0, err7 return 0, err7
@ -2989,6 +3040,10 @@ func (m *EthCallRequest) Size() (n int) {
if m.GasCap != 0 { if m.GasCap != 0 {
n += 1 + sovQuery(uint64(m.GasCap)) n += 1 + sovQuery(uint64(m.GasCap))
} }
l = len(m.ProposerAddress)
if l > 0 {
n += 1 + l + sovQuery(uint64(l))
}
return n return n
} }
@ -3033,6 +3088,10 @@ func (m *QueryTraceTxRequest) Size() (n int) {
} }
l = github_com_gogo_protobuf_types.SizeOfStdTime(m.BlockTime) l = github_com_gogo_protobuf_types.SizeOfStdTime(m.BlockTime)
n += 1 + l + sovQuery(uint64(l)) n += 1 + l + sovQuery(uint64(l))
l = len(m.ProposerAddress)
if l > 0 {
n += 1 + l + sovQuery(uint64(l))
}
return n return n
} }
@ -3074,6 +3133,10 @@ func (m *QueryTraceBlockRequest) Size() (n int) {
} }
l = github_com_gogo_protobuf_types.SizeOfStdTime(m.BlockTime) l = github_com_gogo_protobuf_types.SizeOfStdTime(m.BlockTime)
n += 1 + l + sovQuery(uint64(l)) n += 1 + l + sovQuery(uint64(l))
l = len(m.ProposerAddress)
if l > 0 {
n += 1 + l + sovQuery(uint64(l))
}
return n return n
} }
@ -4716,6 +4779,40 @@ func (m *EthCallRequest) Unmarshal(dAtA []byte) error {
break break
} }
} }
case 3:
if wireType != 2 {
return fmt.Errorf("proto: wrong wireType = %d for field ProposerAddress", wireType)
}
var byteLen int
for shift := uint(0); ; shift += 7 {
if shift >= 64 {
return ErrIntOverflowQuery
}
if iNdEx >= l {
return io.ErrUnexpectedEOF
}
b := dAtA[iNdEx]
iNdEx++
byteLen |= int(b&0x7F) << shift
if b < 0x80 {
break
}
}
if byteLen < 0 {
return ErrInvalidLengthQuery
}
postIndex := iNdEx + byteLen
if postIndex < 0 {
return ErrInvalidLengthQuery
}
if postIndex > l {
return io.ErrUnexpectedEOF
}
m.ProposerAddress = append(m.ProposerAddress[:0], dAtA[iNdEx:postIndex]...)
if m.ProposerAddress == nil {
m.ProposerAddress = []byte{}
}
iNdEx = postIndex
default: default:
iNdEx = preIndex iNdEx = preIndex
skippy, err := skipQuery(dAtA[iNdEx:]) skippy, err := skipQuery(dAtA[iNdEx:])
@ -5025,6 +5122,40 @@ func (m *QueryTraceTxRequest) Unmarshal(dAtA []byte) error {
return err return err
} }
iNdEx = postIndex iNdEx = postIndex
case 8:
if wireType != 2 {
return fmt.Errorf("proto: wrong wireType = %d for field ProposerAddress", wireType)
}
var byteLen int
for shift := uint(0); ; shift += 7 {
if shift >= 64 {
return ErrIntOverflowQuery
}
if iNdEx >= l {
return io.ErrUnexpectedEOF
}
b := dAtA[iNdEx]
iNdEx++
byteLen |= int(b&0x7F) << shift
if b < 0x80 {
break
}
}
if byteLen < 0 {
return ErrInvalidLengthQuery
}
postIndex := iNdEx + byteLen
if postIndex < 0 {
return ErrInvalidLengthQuery
}
if postIndex > l {
return io.ErrUnexpectedEOF
}
m.ProposerAddress = append(m.ProposerAddress[:0], dAtA[iNdEx:postIndex]...)
if m.ProposerAddress == nil {
m.ProposerAddress = []byte{}
}
iNdEx = postIndex
default: default:
iNdEx = preIndex iNdEx = preIndex
skippy, err := skipQuery(dAtA[iNdEx:]) skippy, err := skipQuery(dAtA[iNdEx:])
@ -5313,6 +5444,40 @@ func (m *QueryTraceBlockRequest) Unmarshal(dAtA []byte) error {
return err return err
} }
iNdEx = postIndex iNdEx = postIndex
case 8:
if wireType != 2 {
return fmt.Errorf("proto: wrong wireType = %d for field ProposerAddress", wireType)
}
var byteLen int
for shift := uint(0); ; shift += 7 {
if shift >= 64 {
return ErrIntOverflowQuery
}
if iNdEx >= l {
return io.ErrUnexpectedEOF
}
b := dAtA[iNdEx]
iNdEx++
byteLen |= int(b&0x7F) << shift
if b < 0x80 {
break
}
}
if byteLen < 0 {
return ErrInvalidLengthQuery
}
postIndex := iNdEx + byteLen
if postIndex < 0 {
return ErrInvalidLengthQuery
}
if postIndex > l {
return io.ErrUnexpectedEOF
}
m.ProposerAddress = append(m.ProposerAddress[:0], dAtA[iNdEx:postIndex]...)
if m.ProposerAddress == nil {
m.ProposerAddress = []byte{}
}
iNdEx = postIndex
default: default:
iNdEx = preIndex iNdEx = preIndex
skippy, err := skipQuery(dAtA[iNdEx:]) skippy, err := skipQuery(dAtA[iNdEx:])