evm: EIP1559 & go-ethereum related updates (#469)

* updates

* more changes

* proto updates

* tidy

* v1beta1

* update buf

* lint

* comments

* typo
This commit is contained in:
Federico Kunze Küllmer
2021-08-25 14:45:51 +00:00
committed by GitHub
parent f732774992
commit 1ad9b4c1a5
31 changed files with 1115 additions and 926 deletions
+18 -1
View File
@@ -1,6 +1,7 @@
package keeper
import (
"fmt"
"time"
abci "github.com/tendermint/tendermint/abci/types"
@@ -29,7 +30,23 @@ func (k *Keeper) EndBlock(ctx sdk.Context, req abci.RequestEndBlock) []abci.Vali
infCtx := ctx.WithGasMeter(sdk.NewInfiniteGasMeter())
k.WithContext(infCtx)
k.SetBlockBloom(infCtx, req.Height, ethtypes.BytesToBloom(k.GetBlockBloomTransient().Bytes()))
baseFee := k.CalculateBaseFee(ctx)
// only set base fee if the NoBaseFee param is false
if baseFee != nil {
k.SetBaseFee(ctx, baseFee)
k.SetBlockGasUsed(ctx)
k.Ctx().EventManager().EmitEvent(sdk.NewEvent(
"block_gas",
sdk.NewAttribute("height", fmt.Sprintf("%d", ctx.BlockHeight())),
sdk.NewAttribute("amount", fmt.Sprintf("%d", ctx.BlockGasMeter().GasConsumedToLimit())),
))
}
bloom := ethtypes.BytesToBloom(k.GetBlockBloomTransient().Bytes())
k.SetBlockBloom(infCtx, req.Height, bloom)
k.WithContext(ctx)
return []abci.ValidatorUpdate{}
+89
View File
@@ -0,0 +1,89 @@
package keeper
import (
"math/big"
sdk "github.com/cosmos/cosmos-sdk/types"
"github.com/ethereum/go-ethereum/common"
"github.com/ethereum/go-ethereum/common/math"
// "github.com/ethereum/go-ethereum/params"
"github.com/tharsis/ethermint/x/evm/types"
)
// CalculateBaseFee calculates the base fee for the current block. This is only calculated once per
// block during EndBlock. If the NoBaseFee parameter is enabled, this function returns nil.
// NOTE: This code is inspired from the go-ethereum EIP1559 implementation and adapted to Cosmos SDK-based
// chains. For the canonical code refer to: https://github.com/ethereum/go-ethereum/blob/master/consensus/misc/eip1559.go
func (k Keeper) CalculateBaseFee(ctx sdk.Context) *big.Int {
consParams := ctx.ConsensusParams()
params := k.GetParams(ctx)
if params.NoBaseFee {
return nil
}
chainConfig := params.ChainConfig
cfg := chainConfig.EthereumConfig(k.eip155ChainID)
// If the current block is the first EIP-1559 block, return the InitialBaseFee.
// if !chainConfig.EthereumConfig(k.eip155ChainID).IsLondon(big.NewInt(ctx.BlockHeight())) {
// return new(big.Int).SetUint64(types.InitialBaseFee)
// }
// FIXME: remove and uncomment line above
height := big.NewInt(ctx.BlockHeight())
rules := cfg.Rules(height)
if rules.IsBerlin || cfg.IsMuirGlacier(height) || rules.IsIstanbul || rules.IsByzantium || rules.IsConstantinople {
return new(big.Int).SetUint64(types.InitialBaseFee)
}
// get the block gas used and the base fee values for the parent block.
parentBaseFee := k.GetBaseFee(ctx)
parentGasUsed := k.GetBlockGasUsed(ctx)
gasLimit := new(big.Int).SetUint64(math.MaxUint64)
if consParams != nil && consParams.Block.MaxGas > -1 {
gasLimit = big.NewInt(consParams.Block.MaxGas)
}
parentGasTargetBig := new(big.Int).Div(gasLimit, big.NewInt(types.ElasticityMultiplier)) // TODO: update to geth
if !parentGasTargetBig.IsUint64() {
return new(big.Int).SetUint64(types.InitialBaseFee) // TODO: update to geth
}
parentGasTarget := parentGasTargetBig.Uint64()
baseFeeChangeDenominator := new(big.Int).SetUint64(types.BaseFeeChangeDenominator) // TODO: update to geth
// If the parent gasUsed is the same as the target, the baseFee remains unchanged.
if parentGasUsed == parentGasTarget {
return new(big.Int).Set(parentBaseFee)
}
if parentGasUsed > parentGasTarget {
// If the parent block used more gas than its target, the baseFee should increase.
gasUsedDelta := new(big.Int).SetUint64(parentGasUsed - parentGasTarget)
x := new(big.Int).Mul(parentBaseFee, gasUsedDelta)
y := x.Div(x, parentGasTargetBig)
baseFeeDelta := math.BigMax(
x.Div(y, baseFeeChangeDenominator),
common.Big1,
)
return x.Add(parentBaseFee, baseFeeDelta)
}
// Otherwise if the parent block used less gas than its target, the baseFee should decrease.
gasUsedDelta := new(big.Int).SetUint64(parentGasTarget - parentGasUsed)
x := new(big.Int).Mul(parentBaseFee, gasUsedDelta)
y := x.Div(x, parentGasTargetBig)
baseFeeDelta := x.Div(y, baseFeeChangeDenominator)
return math.BigMax(
x.Sub(parentBaseFee, baseFeeDelta),
common.Big0,
)
}
+6 -62
View File
@@ -292,69 +292,13 @@ func (k Keeper) Params(c context.Context, _ *types.QueryParamsRequest) (*types.Q
}, nil
}
// StaticCall implements Query/StaticCall gRPCP method
func (k Keeper) StaticCall(c context.Context, req *types.QueryStaticCallRequest) (*types.QueryStaticCallResponse, error) {
if req == nil {
return nil, status.Error(codes.InvalidArgument, "empty request")
}
// BaseFee implements the Query/BaseFee gRPC method
func (k Keeper) BaseFee(c context.Context, _ *types.QueryBaseFeeRequest) (*types.QueryBaseFeeResponse, error) {
_ = sdk.UnwrapSDKContext(c)
// ctx := sdk.UnwrapSDKContext(c)
// k.WithContext(ctx)
// // parse the chainID from a string to a base-10 integer
// chainIDEpoch, err := ethermint.ParseChainID(ctx.ChainID())
// if err != nil {
// return nil, status.Error(codes.Internal, err.Error())
// }
// txHash := tmtypes.Tx(ctx.TxBytes()).Hash()
// ethHash := ethcmn.BytesToHash(txHash)
// var recipient *ethcmn.Address
// if len(req.Address) > 0 {
// addr := ethcmn.HexToAddress(req.Address)
// recipient = &addr
// }
// so := k.GetOrNewStateObject(*recipient)
// sender := ethcmn.HexToAddress("0xaDd00275E3d9d213654Ce5223f0FADE8b106b707")
// msg := types.NewTx(
// chainIDEpoch, so.Nonce(), recipient, big.NewInt(0), 100000000, big.NewInt(0), req.Input, nil,
// )
// msg.From = sender.Hex()
// if err := msg.ValidateBasic(); err != nil {
// return nil, status.Error(codes.Internal, err.Error())
// }
// ethMsg, err := msg.AsMessage()
// if err != nil {
// return nil, status.Error(codes.Internal, err.Error())
// }
// st := &types.StateTransition{
// Message: ethMsg,
// Csdb: k.WithContext(ctx),
// ChainID: chainIDEpoch,
// TxHash: &ethHash,
// Simulate: ctx.IsCheckTx(),
// Debug: false,
// }
// config, found := k.GetChainConfig(ctx)
// if !found {
// return nil, status.Error(codes.Internal, types.ErrChainConfigNotFound.Error())
// }
// ret, err := st.StaticCall(ctx, config)
// if err != nil {
// return nil, status.Error(codes.Internal, err.Error())
// }
// return &types.QueryStaticCallResponse{Data: ret}, nil
return nil, nil
return &types.QueryBaseFeeResponse{
BaseFee: sdk.OneInt(), // TODO: update
}, nil
}
// EthCall implements eth_call rpc api.
+52
View File
@@ -132,6 +132,58 @@ func (k Keeper) ChainID() *big.Int {
return k.eip155ChainID
}
// ----------------------------------------------------------------------------
// Parent Block Gas Used
// Required by EIP1559 base fee calculation.
// ----------------------------------------------------------------------------
// GetBlockGasUsed returns the last block gas used value from the store.
func (k Keeper) GetBlockGasUsed(ctx sdk.Context) uint64 {
store := ctx.KVStore(k.storeKey)
bz := store.Get(types.KeyPrefixBlockGasUsed)
if len(bz) == 0 {
return 0
}
return sdk.BigEndianToUint64(bz)
}
// SetBlockGasUsed gets the current block gas consumed to the store.
// CONTRACT: this should be only called during EndBlock.
func (k Keeper) SetBlockGasUsed(ctx sdk.Context) {
if ctx.BlockGasMeter() == nil {
k.Logger(ctx).Error("block gas meter is nil when setting block gas used")
return
}
store := ctx.KVStore(k.storeKey)
gasBz := sdk.Uint64ToBigEndian(ctx.BlockGasMeter().GasConsumedToLimit())
store.Set(types.KeyPrefixBlockGasUsed, gasBz)
}
// ----------------------------------------------------------------------------
// Parent Base Fee
// Required by EIP1559 base fee calculation.
// ----------------------------------------------------------------------------
// GetBlockGasUsed returns the last block gas used value from the store.
func (k Keeper) GetBaseFee(ctx sdk.Context) *big.Int {
store := ctx.KVStore(k.storeKey)
bz := store.Get(types.KeyPrefixBaseFee)
if len(bz) == 0 {
return new(big.Int).SetUint64(types.InitialBaseFee) // TODO: use geth params
}
return new(big.Int).SetBytes(bz)
}
// SetBlockGasUsed gets the current block gas consumed to the store.
// CONTRACT: this should be only called during EndBlock.
func (k Keeper) SetBaseFee(ctx sdk.Context, baseFee *big.Int) {
store := ctx.KVStore(k.storeKey)
store.Set(types.KeyPrefixBaseFee, baseFee.Bytes())
}
// ----------------------------------------------------------------------------
// Block Bloom
// Required by Web3 API.
+11 -8
View File
@@ -260,14 +260,17 @@ func (k *Keeper) ApplyMessage(evm *vm.EVM, msg core.Message, cfg *params.ChainCo
ret, leftoverGas, vmErr = evm.Call(sender, *msg.To(), msg.Data(), leftoverGas, msg.Value())
}
refundQuotient := uint64(2)
if query {
// gRPC query handlers don't go through the AnteHandler to deduct the gas fee from the sender or have access historical state.
// We don't refund gas to the sender.
// For more info, see: https://github.com/tharsis/ethermint/issues/229 and https://github.com/cosmos/cosmos-sdk/issues/9636
leftoverGas += k.GasToRefund(msg.Gas() - leftoverGas)
gasConsumed := msg.Gas() - leftoverGas
leftoverGas += k.GasToRefund(gasConsumed, refundQuotient)
} else {
// refund gas prior to handling the vm error in order to match the Ethereum gas consumption instead of the default SDK one.
leftoverGas, err = k.RefundGas(msg, leftoverGas)
leftoverGas, err = k.RefundGas(msg, leftoverGas, refundQuotient)
if err != nil {
return nil, stacktrace.Propagate(err, "failed to refund gas leftover gas to sender %s", msg.From())
}
@@ -297,10 +300,10 @@ func (k *Keeper) GetEthIntrinsicGas(msg core.Message, cfg *params.ChainConfig, i
}
// GasToRefund calculates the amount of gas the state machine should refund to the sender. It is
// capped by half of the gas consumed.
func (k *Keeper) GasToRefund(gasConsumed uint64) uint64 {
// Apply refund counter, capped to half of the used gas.
refund := gasConsumed / 2
// capped by the refund quotient value.
func (k *Keeper) GasToRefund(gasConsumed, refundQuotient uint64) uint64 {
// Apply refund counter
refund := gasConsumed / refundQuotient
availableRefund := k.GetRefund()
if refund > availableRefund {
return availableRefund
@@ -312,7 +315,7 @@ func (k *Keeper) GasToRefund(gasConsumed uint64) uint64 {
// consumed in the transaction. Additionally, the function sets the total gas consumed to the value
// returned by the EVM execution, thus ignoring the previous intrinsic gas consumed during in the
// AnteHandler.
func (k *Keeper) RefundGas(msg core.Message, leftoverGas uint64) (uint64, error) {
func (k *Keeper) RefundGas(msg core.Message, leftoverGas, refundQuotient uint64) (uint64, error) {
// safety check: leftover gas after execution should never exceed the gas limit defined on the message
if leftoverGas > msg.Gas() {
return leftoverGas, stacktrace.Propagate(
@@ -324,7 +327,7 @@ func (k *Keeper) RefundGas(msg core.Message, leftoverGas uint64) (uint64, error)
gasConsumed := msg.Gas() - leftoverGas
// calculate available gas to refund and add it to the leftover gas amount
refund := k.GasToRefund(gasConsumed)
refund := k.GasToRefund(gasConsumed, refundQuotient)
leftoverGas += refund
// safety check: leftover gas after refund should never exceed the gas limit defined on the message
+11 -22
View File
@@ -29,9 +29,8 @@ func (cc ChainConfig) EthereumConfig(chainID *big.Int) *params.ChainConfig {
IstanbulBlock: getBlockValue(cc.IstanbulBlock),
MuirGlacierBlock: getBlockValue(cc.MuirGlacierBlock),
BerlinBlock: getBlockValue(cc.BerlinBlock),
YoloV3Block: getBlockValue(cc.YoloV3Block),
EWASMBlock: getBlockValue(cc.EWASMBlock),
CatalystBlock: getBlockValue(cc.CatalystBlock),
// LondonBlock: getBlockValue(cc.LondonBlock), // TODO: uncomment
CatalystBlock: getBlockValue(cc.CatalystBlock),
}
}
@@ -48,7 +47,7 @@ func DefaultChainConfig() ChainConfig {
istanbulBlock := sdk.ZeroInt()
muirGlacierBlock := sdk.ZeroInt()
berlinBlock := sdk.ZeroInt()
yoloV3Block := sdk.ZeroInt()
londonBlock := sdk.ZeroInt()
return ChainConfig{
HomesteadBlock: &homesteadBlock,
@@ -64,8 +63,7 @@ func DefaultChainConfig() ChainConfig {
IstanbulBlock: &istanbulBlock,
MuirGlacierBlock: &muirGlacierBlock,
BerlinBlock: &berlinBlock,
YoloV3Block: &yoloV3Block,
EWASMBlock: nil,
LondonBlock: &londonBlock,
CatalystBlock: nil,
}
}
@@ -117,16 +115,17 @@ func (cc ChainConfig) Validate() error {
if err := validateBlock(cc.BerlinBlock); err != nil {
return sdkerrors.Wrap(err, "berlinBlock")
}
if err := validateBlock(cc.YoloV3Block); err != nil {
return sdkerrors.Wrap(err, "yoloV3Block")
}
if err := validateBlock(cc.EWASMBlock); err != nil {
return sdkerrors.Wrap(err, "eWASMBlock")
if err := validateBlock(cc.LondonBlock); err != nil {
return sdkerrors.Wrap(err, "londonBlock")
}
if err := validateBlock(cc.CatalystBlock); err != nil {
return sdkerrors.Wrap(err, "calalystBlock")
return sdkerrors.Wrap(err, "catalystBlock")
}
// NOTE: chain ID is not needed to check config order
if err := cc.EthereumConfig(nil).CheckConfigForkOrder(); err != nil {
return sdkerrors.Wrap(err, "invalid config fork order")
}
return nil
}
@@ -152,13 +151,3 @@ func validateBlock(block *sdk.Int) error {
return nil
}
// IsIstanbul returns whether the Istanbul version is enabled.
func (cc ChainConfig) IsIstanbul() bool {
return getBlockValue(cc.IstanbulBlock) != nil
}
// IsHomestead returns whether the Homestead version is enabled.
func (cc ChainConfig) IsHomestead() bool {
return getBlockValue(cc.HomesteadBlock) != nil
}
+7 -30
View File
@@ -39,8 +39,7 @@ func TestChainConfigValidate(t *testing.T) {
IstanbulBlock: newIntPtr(0),
MuirGlacierBlock: newIntPtr(0),
BerlinBlock: newIntPtr(0),
YoloV3Block: newIntPtr(0),
EWASMBlock: newIntPtr(0),
LondonBlock: newIntPtr(0),
CatalystBlock: newIntPtr(0),
},
false,
@@ -60,8 +59,7 @@ func TestChainConfigValidate(t *testing.T) {
IstanbulBlock: nil,
MuirGlacierBlock: nil,
BerlinBlock: nil,
YoloV3Block: nil,
EWASMBlock: nil,
LondonBlock: nil,
CatalystBlock: nil,
},
false,
@@ -222,7 +220,7 @@ func TestChainConfigValidate(t *testing.T) {
true,
},
{
"invalid YoloV3Block",
"invalid LondonBlock",
ChainConfig{
HomesteadBlock: newIntPtr(0),
DAOForkBlock: newIntPtr(0),
@@ -236,30 +234,11 @@ func TestChainConfigValidate(t *testing.T) {
IstanbulBlock: newIntPtr(0),
MuirGlacierBlock: newIntPtr(0),
BerlinBlock: newIntPtr(0),
YoloV3Block: newIntPtr(-1),
},
true,
},
{
"invalid EWASMBlock",
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(0),
EWASMBlock: newIntPtr(-1),
LondonBlock: newIntPtr(-1),
},
true,
},
{
"invalid CatalystBlock",
ChainConfig{
@@ -274,10 +253,8 @@ func TestChainConfigValidate(t *testing.T) {
PetersburgBlock: newIntPtr(0),
IstanbulBlock: newIntPtr(0),
MuirGlacierBlock: newIntPtr(0),
YoloV3Block: newIntPtr(0),
EWASMBlock: newIntPtr(0),
CatalystBlock: newIntPtr(-1),
LondonBlock: newIntPtr(0),
CatalystBlock: newIntPtr(-1),
},
true,
},
+7
View File
@@ -10,6 +10,13 @@ import (
"github.com/tharsis/ethermint/types"
)
// TODO: remove once migrated to latest go-ethereum
const (
BaseFeeChangeDenominator = 8 // Bounds the amount the base fee can change between blocks.
ElasticityMultiplier = 2 // Bounds the maximum gas limit an EIP-1559 block may have.
InitialBaseFee = 1000000000 // Initial base fee for EIP-1559 blocks.
)
// nolint: deadcode, unused
func newDynamicFeeTx(tx *ethtypes.Transaction) *DynamicFeeTx {
txData := &DynamicFeeTx{
+179 -188
View File
@@ -37,6 +37,8 @@ type Params struct {
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"`
// no base fee forces the EIP-1559 base fee to 0 (needed for 0 price calls)
NoBaseFee bool `protobuf:"varint,6,opt,name=no_base_fee,json=noBaseFee,proto3" json:"no_base_fee,omitempty" yaml:"no_base_fee"`
}
func (m *Params) Reset() { *m = Params{} }
@@ -106,6 +108,13 @@ func (m *Params) GetChainConfig() ChainConfig {
return ChainConfig{}
}
func (m *Params) GetNoBaseFee() bool {
if m != nil {
return m.NoBaseFee
}
return false
}
// ChainConfig defines the Ethereum ChainConfig parameters using *sdk.Int values
// instead of *big.Int.
type ChainConfig struct {
@@ -136,12 +145,10 @@ type ChainConfig struct {
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,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"`
// London switch block (nil = no fork, 0 = already on london)
LondonBlock *github_com_cosmos_cosmos_sdk_types.Int `protobuf:"bytes,17,opt,name=london_block,json=londonBlock,proto3,customtype=github.com/cosmos/cosmos-sdk/types.Int" json:"london_block,omitempty" yaml:"london_block"`
}
func (m *ChainConfig) Reset() { *m = ChainConfig{} }
@@ -527,86 +534,87 @@ func init() {
func init() { proto.RegisterFile("ethermint/evm/v1/evm.proto", fileDescriptor_d21ecc92c8c8583e) }
var fileDescriptor_d21ecc92c8c8583e = []byte{
// 1264 bytes of a gzipped FileDescriptorProto
0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0x9c, 0x96, 0x4d, 0x6f, 0xdb, 0x36,
0x18, 0xc7, 0xe3, 0xd8, 0x49, 0x6c, 0x4a, 0x7e, 0x19, 0xeb, 0x66, 0x6e, 0x8b, 0x45, 0x19, 0x0f,
0x83, 0x07, 0xb4, 0x71, 0x93, 0x22, 0x58, 0x51, 0x60, 0x87, 0x28, 0x4d, 0xbb, 0x60, 0x5d, 0x17,
0x30, 0xdd, 0x0a, 0x0c, 0x18, 0x04, 0x5a, 0x62, 0x65, 0x2d, 0x92, 0x68, 0x88, 0xb4, 0x67, 0x0f,
0xfb, 0x00, 0x03, 0x76, 0xd9, 0x71, 0xc7, 0x7d, 0x9c, 0x62, 0xa7, 0x1e, 0x87, 0x0d, 0x10, 0x06,
0xf7, 0x30, 0x20, 0x47, 0x7f, 0x82, 0x41, 0x24, 0xfd, 0x9a, 0x62, 0x98, 0x73, 0x12, 0x9f, 0x87,
0x0f, 0xff, 0x3f, 0xbe, 0x3c, 0xd4, 0x43, 0x70, 0x9b, 0x8a, 0x0e, 0x4d, 0xa2, 0x20, 0x16, 0x2d,
0xda, 0x8f, 0x5a, 0xfd, 0xfd, 0xec, 0xb3, 0xd7, 0x4d, 0x98, 0x60, 0xb0, 0x36, 0xed, 0xdb, 0xcb,
0x9c, 0xfd, 0xfd, 0xdb, 0x75, 0x9f, 0xf9, 0x4c, 0x76, 0xb6, 0xb2, 0x96, 0x8a, 0x43, 0x7f, 0xad,
0x83, 0xcd, 0x33, 0x92, 0x90, 0x88, 0xc3, 0x7d, 0x50, 0xa2, 0xfd, 0xc8, 0xf1, 0x68, 0xcc, 0xa2,
0x46, 0x6e, 0x37, 0xd7, 0x2c, 0xd9, 0xf5, 0x71, 0x6a, 0xd5, 0x86, 0x24, 0x0a, 0x1f, 0xa1, 0x69,
0x17, 0xc2, 0x45, 0xda, 0x8f, 0x1e, 0x67, 0x4d, 0xf8, 0x29, 0x28, 0xd3, 0x98, 0xb4, 0x43, 0xea,
0xb8, 0x09, 0x25, 0x82, 0x36, 0xd6, 0x77, 0x73, 0xcd, 0xa2, 0xdd, 0x18, 0xa7, 0x56, 0x5d, 0x0f,
0x9b, 0xef, 0x46, 0xd8, 0x54, 0xf6, 0xb1, 0x34, 0xe1, 0x27, 0xc0, 0x98, 0xf4, 0x93, 0x30, 0x6c,
0xe4, 0xe5, 0xe0, 0xed, 0x71, 0x6a, 0xc1, 0xc5, 0xc1, 0x24, 0x0c, 0x11, 0x06, 0x7a, 0x28, 0x09,
0x43, 0x78, 0x04, 0x00, 0x1d, 0x88, 0x84, 0x38, 0x34, 0xe8, 0xf2, 0x46, 0x61, 0x37, 0xdf, 0xcc,
0xdb, 0x68, 0x94, 0x5a, 0xa5, 0x93, 0xcc, 0x7b, 0x72, 0x7a, 0xc6, 0xc7, 0xa9, 0xf5, 0x9e, 0x16,
0x99, 0x06, 0x22, 0x5c, 0x92, 0xc6, 0x49, 0xd0, 0xe5, 0xf0, 0x5b, 0x60, 0xba, 0x1d, 0x12, 0xc4,
0x8e, 0xcb, 0xe2, 0x57, 0x81, 0xdf, 0xd8, 0xd8, 0xcd, 0x35, 0x8d, 0x83, 0x0f, 0xf6, 0x96, 0xf7,
0x6d, 0xef, 0x38, 0x8b, 0x3a, 0x96, 0x41, 0xf6, 0x9d, 0xd7, 0xa9, 0xb5, 0x36, 0x4e, 0xad, 0x1b,
0x4a, 0x7a, 0x5e, 0x00, 0x61, 0xc3, 0x9d, 0x45, 0x3e, 0x2a, 0xfc, 0xfa, 0x9b, 0xb5, 0x86, 0xfe,
0x29, 0x03, 0x63, 0x6e, 0x3c, 0x8c, 0x40, 0xb5, 0xc3, 0x22, 0xca, 0x05, 0x25, 0x9e, 0xd3, 0x0e,
0x99, 0x7b, 0xa1, 0x37, 0xfa, 0xf1, 0x9f, 0xa9, 0xf5, 0x91, 0x1f, 0x88, 0x4e, 0xaf, 0xbd, 0xe7,
0xb2, 0xa8, 0xe5, 0x32, 0x1e, 0x31, 0xae, 0x3f, 0xf7, 0xb8, 0x77, 0xd1, 0x12, 0xc3, 0x2e, 0xe5,
0x7b, 0xa7, 0xb1, 0x18, 0xa7, 0xd6, 0xb6, 0xc2, 0x2f, 0x49, 0x21, 0x5c, 0x99, 0x7a, 0xec, 0xcc,
0x01, 0x87, 0xa0, 0xe2, 0x11, 0xe6, 0xbc, 0x62, 0xc9, 0x85, 0xa6, 0xad, 0x4b, 0xda, 0xf9, 0xff,
0xa7, 0x8d, 0x52, 0xcb, 0x7c, 0x7c, 0xf4, 0xe5, 0x13, 0x96, 0x5c, 0x48, 0xcd, 0x71, 0x6a, 0xdd,
0x54, 0xf4, 0x45, 0x65, 0x84, 0x4d, 0x8f, 0xb0, 0x69, 0x18, 0x7c, 0x09, 0x6a, 0xd3, 0x00, 0xde,
0xeb, 0x76, 0x59, 0x22, 0xf4, 0xf9, 0xde, 0x1b, 0xa5, 0x56, 0x45, 0x4b, 0x9e, 0xab, 0x9e, 0x71,
0x6a, 0xbd, 0xbf, 0x24, 0xaa, 0xc7, 0x20, 0x5c, 0xd1, 0xb2, 0x3a, 0x14, 0x72, 0x60, 0xd2, 0xa0,
0xbb, 0x7f, 0x78, 0x5f, 0xaf, 0xa8, 0x20, 0x57, 0x74, 0xb6, 0xd2, 0x8a, 0x8c, 0x93, 0xd3, 0xb3,
0xfd, 0xc3, 0xfb, 0x93, 0x05, 0xe9, 0xd3, 0x9c, 0x97, 0x45, 0xd8, 0x50, 0xa6, 0x5a, 0xcd, 0x29,
0xd0, 0xa6, 0xd3, 0x21, 0xbc, 0x23, 0x73, 0xa5, 0x64, 0x37, 0x47, 0xa9, 0x05, 0x94, 0xd2, 0x67,
0x84, 0x77, 0x66, 0xe7, 0xd2, 0x1e, 0xfe, 0x40, 0x62, 0x11, 0xf4, 0xa2, 0x89, 0x16, 0x50, 0x83,
0xb3, 0xa8, 0xe9, 0xfc, 0x0f, 0xf5, 0xfc, 0x37, 0xaf, 0x3d, 0xff, 0xc3, 0x77, 0xcd, 0xff, 0x70,
0x71, 0xfe, 0x2a, 0x66, 0x0a, 0x7d, 0xa8, 0xa1, 0x5b, 0xd7, 0x86, 0x3e, 0x7c, 0x17, 0xf4, 0xe1,
0x22, 0x54, 0xc5, 0x64, 0xc9, 0xbe, 0xb4, 0x13, 0x8d, 0xe2, 0xf5, 0x93, 0xfd, 0xca, 0xa6, 0x56,
0xa6, 0x1e, 0x85, 0xfb, 0x11, 0xd4, 0x5d, 0x16, 0x73, 0x91, 0xf9, 0x62, 0xd6, 0x0d, 0xa9, 0x66,
0x96, 0x24, 0xf3, 0x74, 0x25, 0xe6, 0x1d, 0x7d, 0xbf, 0xdf, 0xa1, 0x87, 0xf0, 0x8d, 0x45, 0xb7,
0xa2, 0x77, 0x41, 0xad, 0x4b, 0x05, 0x4d, 0x78, 0xbb, 0x97, 0xf8, 0x9a, 0x0c, 0x24, 0xf9, 0x64,
0x25, 0xb2, 0xbe, 0x07, 0xcb, 0x5a, 0x08, 0x57, 0x67, 0x2e, 0x45, 0xfc, 0x0e, 0x54, 0x82, 0x6c,
0x1a, 0xed, 0x5e, 0xa8, 0x79, 0x86, 0xe4, 0x1d, 0xaf, 0xc4, 0xd3, 0x97, 0x79, 0x51, 0x09, 0xe1,
0xf2, 0xc4, 0xa1, 0x58, 0x3d, 0x00, 0xa3, 0x5e, 0x90, 0x38, 0x7e, 0x48, 0xdc, 0x80, 0x26, 0x9a,
0x67, 0x4a, 0xde, 0xd3, 0x95, 0x78, 0xb7, 0x14, 0xef, 0xaa, 0x1a, 0xc2, 0xb5, 0xcc, 0xf9, 0x54,
0xf9, 0x14, 0xd6, 0x03, 0x66, 0x9b, 0x26, 0x61, 0x10, 0x6b, 0x60, 0x59, 0x02, 0x8f, 0x56, 0x02,
0xea, 0x3c, 0x9d, 0xd7, 0x41, 0xd8, 0x50, 0xa6, 0xa2, 0xbc, 0x02, 0xe5, 0x21, 0x0b, 0x99, 0xd3,
0x7f, 0xa0, 0x31, 0x15, 0x89, 0xb1, 0x57, 0xc2, 0xe8, 0x72, 0xb7, 0x20, 0x84, 0xb0, 0x91, 0xd9,
0x5f, 0x3f, 0x50, 0x1c, 0x06, 0x0c, 0xfa, 0x3d, 0xe1, 0x93, 0xbb, 0x50, 0x95, 0x94, 0xe7, 0x2b,
0xdd, 0x41, 0x70, 0xf2, 0xf2, 0xe8, 0xfc, 0x8b, 0xc9, 0x15, 0x9c, 0x54, 0xc9, 0x99, 0x68, 0xf6,
0xab, 0xc9, 0xac, 0x69, 0x86, 0xb8, 0x44, 0x90, 0x70, 0xc8, 0x85, 0x66, 0xd6, 0xae, 0x9f, 0x21,
0x8b, 0x4a, 0x08, 0x97, 0x27, 0x0e, 0xc9, 0x42, 0x2d, 0xb0, 0x71, 0x2e, 0xb2, 0x9a, 0x5e, 0x03,
0xf9, 0x0b, 0x3a, 0x54, 0x65, 0x0d, 0x67, 0x4d, 0x58, 0x07, 0x1b, 0x7d, 0x12, 0xf6, 0xd4, 0xe3,
0xa0, 0x84, 0x95, 0x81, 0xce, 0x40, 0xf5, 0x45, 0x42, 0x62, 0x4e, 0x5c, 0x11, 0xb0, 0xf8, 0x19,
0xf3, 0x39, 0x84, 0xa0, 0x20, 0x7f, 0xaf, 0x6a, 0xac, 0x6c, 0xc3, 0x8f, 0x41, 0x21, 0x64, 0x3e,
0x6f, 0xac, 0xef, 0xe6, 0x9b, 0xc6, 0xc1, 0xcd, 0xab, 0xe5, 0xf9, 0x19, 0xf3, 0xb1, 0x0c, 0x41,
0xbf, 0xaf, 0x83, 0xfc, 0x33, 0xe6, 0xc3, 0x06, 0xd8, 0x22, 0x9e, 0x97, 0x50, 0xce, 0xb5, 0xd2,
0xc4, 0x84, 0xdb, 0x60, 0x53, 0xb0, 0x6e, 0xe0, 0x2a, 0xb9, 0x12, 0xd6, 0x56, 0x06, 0xf6, 0x88,
0x20, 0xb2, 0x40, 0x99, 0x58, 0xb6, 0xe1, 0x01, 0x30, 0xe5, 0x4a, 0x9d, 0xb8, 0x17, 0xb5, 0x69,
0x22, 0xeb, 0x4c, 0xc1, 0xae, 0x5e, 0xa6, 0x96, 0x21, 0xfd, 0xcf, 0xa5, 0x1b, 0xcf, 0x1b, 0xf0,
0x2e, 0xd8, 0x12, 0x83, 0xf9, 0x12, 0x71, 0xe3, 0x32, 0xb5, 0xaa, 0x62, 0xb6, 0xcc, 0xac, 0x02,
0xe0, 0x4d, 0x31, 0x90, 0x95, 0xa0, 0x05, 0x8a, 0x62, 0xe0, 0x04, 0xb1, 0x47, 0x07, 0xb2, 0x0a,
0x14, 0xec, 0xfa, 0x65, 0x6a, 0xd5, 0xe6, 0xc2, 0x4f, 0xb3, 0x3e, 0xbc, 0x25, 0x06, 0xb2, 0x01,
0xef, 0x02, 0xa0, 0xa6, 0x24, 0x09, 0xea, 0x1f, 0x5e, 0xbe, 0x4c, 0xad, 0x92, 0xf4, 0x4a, 0xed,
0x59, 0x13, 0x22, 0xb0, 0xa1, 0xb4, 0x8b, 0x52, 0xdb, 0xbc, 0x4c, 0xad, 0x62, 0xc8, 0x7c, 0xa5,
0xa9, 0xba, 0xb2, 0xad, 0x4a, 0x68, 0xc4, 0xfa, 0xd4, 0x93, 0xbf, 0xc9, 0x22, 0x9e, 0x98, 0xe8,
0xe7, 0x75, 0x50, 0x7c, 0x31, 0xc0, 0x94, 0xf7, 0x42, 0x01, 0x9f, 0x80, 0x9a, 0xcb, 0x62, 0x91,
0x10, 0x57, 0x38, 0x0b, 0x5b, 0x6b, 0xdf, 0x99, 0xfd, 0xb2, 0x96, 0x23, 0x10, 0xae, 0x4e, 0x5c,
0x47, 0x7a, 0xff, 0xeb, 0x60, 0xa3, 0x1d, 0x32, 0x16, 0xc9, 0x4c, 0x30, 0xb1, 0x32, 0x20, 0x96,
0xbb, 0x26, 0x4f, 0x39, 0x2f, 0x1f, 0x61, 0x1f, 0x5e, 0x3d, 0xe5, 0xa5, 0x54, 0xb1, 0xb7, 0xf5,
0x43, 0xac, 0xa2, 0xd8, 0x7a, 0x3c, 0xca, 0xf6, 0x56, 0xa6, 0x52, 0x0d, 0xe4, 0x13, 0x2a, 0xe4,
0xa1, 0x99, 0x38, 0x6b, 0xc2, 0xdb, 0xa0, 0x98, 0xd0, 0x3e, 0x4d, 0x04, 0xf5, 0xe4, 0xe1, 0x14,
0xf1, 0xd4, 0x86, 0xb7, 0x40, 0xd1, 0x27, 0xdc, 0xe9, 0x71, 0xea, 0xa9, 0x93, 0xc0, 0x5b, 0x3e,
0xe1, 0x5f, 0x71, 0xea, 0x3d, 0x2a, 0xfc, 0x94, 0xbd, 0xe3, 0x08, 0x30, 0x8e, 0x5c, 0x97, 0x72,
0xfe, 0xa2, 0xd7, 0x0d, 0xe9, 0x7f, 0x64, 0xd8, 0x01, 0x30, 0xb9, 0x60, 0x09, 0xf1, 0xa9, 0x73,
0x41, 0x87, 0x3a, 0xcf, 0x54, 0xd6, 0x68, 0xff, 0xe7, 0x74, 0xc8, 0xf1, 0xbc, 0xa1, 0x10, 0xb6,
0xfd, 0x7a, 0xb4, 0x93, 0x7b, 0x33, 0xda, 0xc9, 0xfd, 0x3d, 0xda, 0xc9, 0xfd, 0xf2, 0x76, 0x67,
0xed, 0xcd, 0xdb, 0x9d, 0xb5, 0x3f, 0xde, 0xee, 0xac, 0x7d, 0xd3, 0x9c, 0xbb, 0xaa, 0xa2, 0x43,
0x12, 0x1e, 0xf0, 0xd6, 0xec, 0xe5, 0x3f, 0x90, 0x6f, 0x7f, 0x79, 0x61, 0xdb, 0x9b, 0xf2, 0x4d,
0xff, 0xe0, 0xdf, 0x00, 0x00, 0x00, 0xff, 0xff, 0x47, 0x4f, 0x91, 0x4d, 0x19, 0x0c, 0x00, 0x00,
// 1277 bytes of a gzipped FileDescriptorProto
0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0x9c, 0x96, 0xcf, 0x6f, 0xdb, 0x36,
0x1b, 0xc7, 0xe3, 0xd8, 0x49, 0x6c, 0x4a, 0xb6, 0x55, 0xd6, 0xcd, 0xeb, 0xb6, 0x78, 0xa3, 0xbc,
0x3c, 0xbc, 0xf0, 0x80, 0x36, 0x6e, 0x52, 0x64, 0x2b, 0x0a, 0xec, 0x10, 0xa5, 0x69, 0x97, 0xae,
0xd8, 0x02, 0xb6, 0xc3, 0x80, 0x01, 0x83, 0x40, 0x4b, 0xac, 0xac, 0x45, 0x12, 0x0d, 0x91, 0xf6,
0xec, 0x61, 0x7f, 0xc0, 0x80, 0x5d, 0x06, 0xec, 0xb2, 0xc3, 0x0e, 0xfb, 0x73, 0x8a, 0x9d, 0x7a,
0x1c, 0x76, 0x10, 0x06, 0xf7, 0x96, 0xa3, 0xff, 0x82, 0x41, 0x24, 0xfd, 0x33, 0xc5, 0xb0, 0xe4,
0x24, 0x3e, 0x0f, 0x1f, 0x7e, 0x3f, 0x7c, 0xc8, 0x47, 0x24, 0xc1, 0x1d, 0x2a, 0xba, 0x34, 0x8d,
0xc3, 0x44, 0xb4, 0xe9, 0x20, 0x6e, 0x0f, 0xf6, 0xf3, 0xcf, 0x5e, 0x2f, 0x65, 0x82, 0x41, 0x6b,
0xd6, 0xb7, 0x97, 0x3b, 0x07, 0xfb, 0x77, 0x1a, 0x01, 0x0b, 0x98, 0xec, 0x6c, 0xe7, 0x2d, 0x15,
0x87, 0x7e, 0x2e, 0x82, 0xcd, 0x33, 0x92, 0x92, 0x98, 0xc3, 0x7d, 0x50, 0xa1, 0x83, 0xd8, 0xf5,
0x69, 0xc2, 0xe2, 0x66, 0x61, 0xb7, 0xd0, 0xaa, 0x38, 0x8d, 0x49, 0x66, 0x5b, 0x23, 0x12, 0x47,
0x8f, 0xd1, 0xac, 0x0b, 0xe1, 0x32, 0x1d, 0xc4, 0x4f, 0xf2, 0x26, 0xfc, 0x18, 0x54, 0x69, 0x42,
0x3a, 0x11, 0x75, 0xbd, 0x94, 0x12, 0x41, 0x9b, 0xeb, 0xbb, 0x85, 0x56, 0xd9, 0x69, 0x4e, 0x32,
0xbb, 0xa1, 0x87, 0x2d, 0x76, 0x23, 0x6c, 0x2a, 0xfb, 0x58, 0x9a, 0xf0, 0x23, 0x60, 0x4c, 0xfb,
0x49, 0x14, 0x35, 0x8b, 0x72, 0xf0, 0xf6, 0x24, 0xb3, 0xe1, 0xf2, 0x60, 0x12, 0x45, 0x08, 0x03,
0x3d, 0x94, 0x44, 0x11, 0x3c, 0x02, 0x80, 0x0e, 0x45, 0x4a, 0x5c, 0x1a, 0xf6, 0x78, 0xb3, 0xb4,
0x5b, 0x6c, 0x15, 0x1d, 0x34, 0xce, 0xec, 0xca, 0x49, 0xee, 0x3d, 0x39, 0x3d, 0xe3, 0x93, 0xcc,
0xbe, 0xa1, 0x45, 0x66, 0x81, 0x08, 0x57, 0xa4, 0x71, 0x12, 0xf6, 0x38, 0xfc, 0x1a, 0x98, 0x5e,
0x97, 0x84, 0x89, 0xeb, 0xb1, 0xe4, 0x75, 0x18, 0x34, 0x37, 0x76, 0x0b, 0x2d, 0xe3, 0xe0, 0xbf,
0x7b, 0xab, 0xeb, 0xb6, 0x77, 0x9c, 0x47, 0x1d, 0xcb, 0x20, 0xe7, 0xee, 0x9b, 0xcc, 0x5e, 0x9b,
0x64, 0xf6, 0x4d, 0x25, 0xbd, 0x28, 0x80, 0xb0, 0xe1, 0xcd, 0x23, 0xe1, 0x87, 0xc0, 0x48, 0x98,
0xdb, 0x21, 0x9c, 0xba, 0xaf, 0x29, 0x6d, 0x6e, 0xae, 0xa6, 0xb6, 0xd0, 0x89, 0x70, 0x25, 0x61,
0x0e, 0xe1, 0xf4, 0x29, 0xa5, 0x8f, 0x4b, 0xbf, 0xfc, 0x66, 0xaf, 0xa1, 0x5f, 0xab, 0xc0, 0x58,
0xe0, 0xc2, 0x18, 0xd4, 0xbb, 0x2c, 0xa6, 0x5c, 0x50, 0xe2, 0xbb, 0x9d, 0x88, 0x79, 0xe7, 0x7a,
0x83, 0x9e, 0xfc, 0x99, 0xd9, 0xff, 0x0f, 0x42, 0xd1, 0xed, 0x77, 0xf6, 0x3c, 0x16, 0xb7, 0x3d,
0xc6, 0x63, 0xc6, 0xf5, 0xe7, 0x3e, 0xf7, 0xcf, 0xdb, 0x62, 0xd4, 0xa3, 0x7c, 0xef, 0x34, 0x11,
0x93, 0xcc, 0xde, 0x56, 0xec, 0x15, 0x29, 0x84, 0x6b, 0x33, 0x8f, 0x93, 0x3b, 0xe0, 0x08, 0xd4,
0x7c, 0xc2, 0xdc, 0xd7, 0x2c, 0x3d, 0xd7, 0xb4, 0x75, 0x49, 0x7b, 0xf9, 0xef, 0x69, 0xe3, 0xcc,
0x36, 0x9f, 0x1c, 0x7d, 0xfe, 0x94, 0xa5, 0xe7, 0x52, 0x73, 0x92, 0xd9, 0xb7, 0x14, 0x7d, 0x59,
0x19, 0x61, 0xd3, 0x27, 0x6c, 0x16, 0x06, 0xbf, 0x04, 0xd6, 0x2c, 0x80, 0xf7, 0x7b, 0x3d, 0x96,
0x0a, 0x5d, 0x17, 0xf7, 0xc7, 0x99, 0x5d, 0xd3, 0x92, 0x2f, 0x55, 0xcf, 0x24, 0xb3, 0xff, 0xb3,
0x22, 0xaa, 0xc7, 0x20, 0x5c, 0xd3, 0xb2, 0x3a, 0x14, 0x72, 0x60, 0xd2, 0xb0, 0xb7, 0x7f, 0xf8,
0x40, 0x67, 0x54, 0x92, 0x19, 0x9d, 0x5d, 0x29, 0x23, 0xe3, 0xe4, 0xf4, 0x6c, 0xff, 0xf0, 0xc1,
0x34, 0x21, 0x5d, 0x05, 0x8b, 0xb2, 0x08, 0x1b, 0xca, 0x54, 0xd9, 0x9c, 0x02, 0x6d, 0xba, 0x5d,
0xc2, 0xbb, 0xb2, 0xc6, 0x2a, 0x4e, 0x6b, 0x9c, 0xd9, 0x40, 0x29, 0x7d, 0x42, 0x78, 0x77, 0xbe,
0x2f, 0x9d, 0xd1, 0x77, 0x24, 0x11, 0x61, 0x3f, 0x9e, 0x6a, 0x01, 0x35, 0x38, 0x8f, 0x9a, 0xcd,
0xff, 0x50, 0xcf, 0x7f, 0xf3, 0xda, 0xf3, 0x3f, 0x7c, 0xdf, 0xfc, 0x0f, 0x97, 0xe7, 0xaf, 0x62,
0x66, 0xd0, 0x47, 0x1a, 0xba, 0x75, 0x6d, 0xe8, 0xa3, 0xf7, 0x41, 0x1f, 0x2d, 0x43, 0x55, 0x4c,
0x5e, 0xec, 0x2b, 0x2b, 0xd1, 0x2c, 0x5f, 0xbf, 0xd8, 0x2f, 0x2d, 0x6a, 0x6d, 0xe6, 0x51, 0xb8,
0xef, 0x41, 0xc3, 0x63, 0x09, 0x17, 0xb9, 0x2f, 0x61, 0xbd, 0x88, 0x6a, 0x66, 0x45, 0x32, 0x4f,
0xaf, 0xc4, 0xbc, 0xab, 0xcf, 0x85, 0xf7, 0xe8, 0x21, 0x7c, 0x73, 0xd9, 0xad, 0xe8, 0x3d, 0x60,
0xf5, 0xa8, 0xa0, 0x29, 0xef, 0xf4, 0xd3, 0x40, 0x93, 0x81, 0x24, 0x9f, 0x5c, 0x89, 0xac, 0xff,
0x83, 0x55, 0x2d, 0x84, 0xeb, 0x73, 0x97, 0x22, 0x7e, 0x03, 0x6a, 0x61, 0x3e, 0x8d, 0x4e, 0x3f,
0xd2, 0x3c, 0x43, 0xf2, 0x8e, 0xaf, 0xc4, 0xd3, 0x3f, 0xf3, 0xb2, 0x12, 0xc2, 0xd5, 0xa9, 0x43,
0xb1, 0xfa, 0x00, 0xc6, 0xfd, 0x30, 0x75, 0x83, 0x88, 0x78, 0x21, 0x4d, 0x35, 0xcf, 0x94, 0xbc,
0x67, 0x57, 0xe2, 0xdd, 0x56, 0xbc, 0xcb, 0x6a, 0x08, 0x5b, 0xb9, 0xf3, 0x99, 0xf2, 0x29, 0xac,
0x0f, 0xcc, 0x0e, 0x4d, 0xa3, 0x30, 0xd1, 0xc0, 0xaa, 0x04, 0x1e, 0x5d, 0x09, 0xa8, 0xeb, 0x74,
0x51, 0x07, 0x61, 0x43, 0x99, 0xb3, 0x85, 0xf4, 0x88, 0x20, 0xd1, 0x88, 0x0b, 0xcd, 0xb1, 0xae,
0xbf, 0x90, 0xcb, 0x4a, 0x08, 0x57, 0xa7, 0x8e, 0x59, 0x46, 0x11, 0x4b, 0x7c, 0x36, 0xcd, 0xe8,
0xc6, 0xf5, 0x33, 0x5a, 0xd4, 0x41, 0xd8, 0x50, 0xa6, 0xa4, 0x3c, 0x2f, 0x95, 0x6b, 0x56, 0xfd,
0x79, 0xa9, 0x5c, 0xb7, 0x2c, 0x5c, 0x1d, 0xb1, 0x88, 0xb9, 0x83, 0x87, 0x2a, 0x10, 0x1b, 0xf4,
0x5b, 0xc2, 0xa7, 0xff, 0x50, 0x1b, 0x6c, 0xbc, 0x14, 0xf9, 0x05, 0x6e, 0x81, 0xe2, 0x39, 0x1d,
0xa9, 0xbb, 0x08, 0xe7, 0x4d, 0xd8, 0x00, 0x1b, 0x03, 0x12, 0xf5, 0xd5, 0x4b, 0xa0, 0x82, 0x95,
0x81, 0xce, 0x40, 0xfd, 0x55, 0x4a, 0x12, 0x4e, 0x3c, 0x11, 0xb2, 0xe4, 0x05, 0x0b, 0x38, 0x84,
0xa0, 0x24, 0xcf, 0x44, 0x35, 0x56, 0xb6, 0xe1, 0x07, 0xa0, 0x14, 0xb1, 0x80, 0x37, 0xd7, 0x77,
0x8b, 0x2d, 0xe3, 0xe0, 0xd6, 0xe5, 0xbb, 0xf8, 0x05, 0x0b, 0xb0, 0x0c, 0x41, 0xbf, 0xaf, 0x83,
0xe2, 0x0b, 0x16, 0xc0, 0x26, 0xd8, 0x22, 0xbe, 0x9f, 0x52, 0xce, 0xb5, 0xd2, 0xd4, 0x84, 0xdb,
0x60, 0x53, 0xb0, 0x5e, 0xe8, 0x29, 0xb9, 0x0a, 0xd6, 0x56, 0x0e, 0xf6, 0x89, 0x20, 0xf2, 0x56,
0x31, 0xb1, 0x6c, 0xc3, 0x03, 0x60, 0xca, 0xcc, 0xdc, 0xa4, 0x1f, 0x77, 0x68, 0x2a, 0x2f, 0x87,
0x92, 0x53, 0xbf, 0xc8, 0x6c, 0x43, 0xfa, 0x3f, 0x93, 0x6e, 0xbc, 0x68, 0xc0, 0x7b, 0x60, 0x4b,
0x0c, 0x17, 0xcf, 0xf5, 0x9b, 0x17, 0x99, 0x5d, 0x17, 0xf3, 0x34, 0xf3, 0x63, 0x1b, 0x6f, 0x8a,
0xa1, 0x3c, 0xbe, 0xdb, 0xa0, 0x2c, 0x86, 0x6e, 0x98, 0xf8, 0x74, 0x28, 0x8f, 0xee, 0x92, 0xd3,
0xb8, 0xc8, 0x6c, 0x6b, 0x21, 0xfc, 0x34, 0xef, 0xc3, 0x5b, 0x62, 0x28, 0x1b, 0xf0, 0x1e, 0x00,
0x6a, 0x4a, 0x92, 0xa0, 0x0e, 0xde, 0xea, 0x45, 0x66, 0x57, 0xa4, 0x57, 0x6a, 0xcf, 0x9b, 0x10,
0x81, 0x0d, 0xa5, 0x5d, 0x96, 0xda, 0xe6, 0x45, 0x66, 0x97, 0x23, 0x16, 0x28, 0x4d, 0xd5, 0x95,
0x2f, 0x55, 0x4a, 0x63, 0x36, 0xa0, 0xbe, 0x3c, 0xdb, 0xca, 0x78, 0x6a, 0xa2, 0x1f, 0xd7, 0x41,
0xf9, 0xd5, 0x10, 0x53, 0xde, 0x8f, 0x04, 0x7c, 0x0a, 0x2c, 0x8f, 0x25, 0x22, 0x25, 0x9e, 0x70,
0x97, 0x96, 0xd6, 0xb9, 0x3b, 0x3f, 0x67, 0x56, 0x23, 0x10, 0xae, 0x4f, 0x5d, 0x47, 0x7a, 0xfd,
0x1b, 0x60, 0xa3, 0x13, 0x31, 0x16, 0xcb, 0x4a, 0x30, 0xb1, 0x32, 0x20, 0x96, 0xab, 0x26, 0x77,
0xb9, 0x28, 0x5f, 0x5c, 0xff, 0xbb, 0xbc, 0xcb, 0x2b, 0xa5, 0xe2, 0x6c, 0xeb, 0x57, 0x57, 0x4d,
0xb1, 0xf5, 0x78, 0x94, 0xaf, 0xad, 0x2c, 0x25, 0x0b, 0x14, 0x53, 0x2a, 0xe4, 0xa6, 0x99, 0x38,
0x6f, 0xc2, 0x3b, 0xa0, 0x9c, 0xd2, 0x01, 0x4d, 0x05, 0xf5, 0xe5, 0xe6, 0x94, 0xf1, 0xcc, 0x86,
0xb7, 0x41, 0x39, 0x20, 0xdc, 0xed, 0x73, 0xea, 0xab, 0x9d, 0xc0, 0x5b, 0x01, 0xe1, 0x5f, 0x70,
0xea, 0x3f, 0x2e, 0xfd, 0x90, 0x3f, 0xbe, 0x08, 0x30, 0x8e, 0x3c, 0x8f, 0x72, 0xfe, 0xaa, 0xdf,
0x8b, 0xe8, 0x3f, 0x54, 0xd8, 0x01, 0x30, 0xb9, 0x60, 0x29, 0x09, 0xa8, 0x7b, 0x4e, 0x47, 0xba,
0xce, 0x54, 0xd5, 0x68, 0xff, 0xa7, 0x74, 0xc4, 0xf1, 0xa2, 0xa1, 0x10, 0x8e, 0xf3, 0x66, 0xbc,
0x53, 0x78, 0x3b, 0xde, 0x29, 0xfc, 0x35, 0xde, 0x29, 0xfc, 0xf4, 0x6e, 0x67, 0xed, 0xed, 0xbb,
0x9d, 0xb5, 0x3f, 0xde, 0xed, 0xac, 0x7d, 0xd5, 0x5a, 0xf8, 0x9d, 0x45, 0x97, 0xa4, 0x3c, 0xe4,
0xed, 0xf9, 0x33, 0x7f, 0x28, 0x1f, 0xfa, 0xf2, 0xa7, 0xee, 0x6c, 0xca, 0x07, 0xfc, 0xc3, 0xbf,
0x03, 0x00, 0x00, 0xff, 0xff, 0xcd, 0xab, 0x31, 0x31, 0x06, 0x0c, 0x00, 0x00,
}
func (m *Params) Marshal() (dAtA []byte, err error) {
@@ -629,6 +637,16 @@ func (m *Params) MarshalToSizedBuffer(dAtA []byte) (int, error) {
_ = i
var l int
_ = l
if m.NoBaseFee {
i--
if m.NoBaseFee {
dAtA[i] = 1
} else {
dAtA[i] = 0
}
i--
dAtA[i] = 0x30
}
{
size, err := m.ChainConfig.MarshalToSizedBuffer(dAtA[:i])
if err != nil {
@@ -708,6 +726,20 @@ func (m *ChainConfig) MarshalToSizedBuffer(dAtA []byte) (int, error) {
_ = i
var l int
_ = l
if m.LondonBlock != nil {
{
size := m.LondonBlock.Size()
i -= size
if _, err := m.LondonBlock.MarshalTo(dAtA[i:]); err != nil {
return 0, err
}
i = encodeVarintEvm(dAtA, i, uint64(size))
}
i--
dAtA[i] = 0x1
i--
dAtA[i] = 0x8a
}
if m.CatalystBlock != nil {
{
size := m.CatalystBlock.Size()
@@ -722,30 +754,6 @@ func (m *ChainConfig) MarshalToSizedBuffer(dAtA []byte) (int, error) {
i--
dAtA[i] = 0x82
}
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--
dAtA[i] = 0x7a
}
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--
dAtA[i] = 0x72
}
if m.BerlinBlock != nil {
{
size := m.BerlinBlock.Size()
@@ -1208,6 +1216,9 @@ func (m *Params) Size() (n int) {
}
l = m.ChainConfig.Size()
n += 1 + l + sovEvm(uint64(l))
if m.NoBaseFee {
n += 2
}
return n
}
@@ -1268,18 +1279,14 @@ func (m *ChainConfig) Size() (n int) {
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))
}
if m.LondonBlock != nil {
l = m.LondonBlock.Size()
n += 2 + l + sovEvm(uint64(l))
}
return n
}
@@ -1626,6 +1633,26 @@ func (m *Params) Unmarshal(dAtA []byte) error {
return err
}
iNdEx = postIndex
case 6:
if wireType != 0 {
return fmt.Errorf("proto: wrong wireType = %d for field NoBaseFee", wireType)
}
var v int
for shift := uint(0); ; shift += 7 {
if shift >= 64 {
return ErrIntOverflowEvm
}
if iNdEx >= l {
return io.ErrUnexpectedEOF
}
b := dAtA[iNdEx]
iNdEx++
v |= int(b&0x7F) << shift
if b < 0x80 {
break
}
}
m.NoBaseFee = bool(v != 0)
default:
iNdEx = preIndex
skippy, err := skipEvm(dAtA[iNdEx:])
@@ -2124,78 +2151,6 @@ func (m *ChainConfig) Unmarshal(dAtA []byte) error {
return err
}
iNdEx = postIndex
case 14:
if wireType != 2 {
return fmt.Errorf("proto: wrong wireType = %d for field YoloV3Block", wireType)
}
var stringLen uint64
for shift := uint(0); ; shift += 7 {
if shift >= 64 {
return ErrIntOverflowEvm
}
if iNdEx >= l {
return io.ErrUnexpectedEOF
}
b := dAtA[iNdEx]
iNdEx++
stringLen |= uint64(b&0x7F) << shift
if b < 0x80 {
break
}
}
intStringLen := int(stringLen)
if intStringLen < 0 {
return ErrInvalidLengthEvm
}
postIndex := iNdEx + intStringLen
if postIndex < 0 {
return ErrInvalidLengthEvm
}
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
}
iNdEx = postIndex
case 15:
if wireType != 2 {
return fmt.Errorf("proto: wrong wireType = %d for field EWASMBlock", wireType)
}
var stringLen uint64
for shift := uint(0); ; shift += 7 {
if shift >= 64 {
return ErrIntOverflowEvm
}
if iNdEx >= l {
return io.ErrUnexpectedEOF
}
b := dAtA[iNdEx]
iNdEx++
stringLen |= uint64(b&0x7F) << shift
if b < 0x80 {
break
}
}
intStringLen := int(stringLen)
if intStringLen < 0 {
return ErrInvalidLengthEvm
}
postIndex := iNdEx + intStringLen
if postIndex < 0 {
return ErrInvalidLengthEvm
}
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
}
iNdEx = postIndex
case 16:
if wireType != 2 {
return fmt.Errorf("proto: wrong wireType = %d for field CatalystBlock", wireType)
@@ -2232,6 +2187,42 @@ func (m *ChainConfig) Unmarshal(dAtA []byte) error {
return err
}
iNdEx = postIndex
case 17:
if wireType != 2 {
return fmt.Errorf("proto: wrong wireType = %d for field LondonBlock", wireType)
}
var stringLen uint64
for shift := uint(0); ; shift += 7 {
if shift >= 64 {
return ErrIntOverflowEvm
}
if iNdEx >= l {
return io.ErrUnexpectedEOF
}
b := dAtA[iNdEx]
iNdEx++
stringLen |= uint64(b&0x7F) << shift
if b < 0x80 {
break
}
}
intStringLen := int(stringLen)
if intStringLen < 0 {
return ErrInvalidLengthEvm
}
postIndex := iNdEx + intStringLen
if postIndex < 0 {
return ErrInvalidLengthEvm
}
if postIndex > l {
return io.ErrUnexpectedEOF
}
var v github_com_cosmos_cosmos_sdk_types.Int
m.LondonBlock = &v
if err := m.LondonBlock.Unmarshal(dAtA[iNdEx:postIndex]); err != nil {
return err
}
iNdEx = postIndex
default:
iNdEx = preIndex
skippy, err := skipEvm(dAtA[iNdEx:])
+7
View File
@@ -24,14 +24,18 @@ const (
RouterKey = ModuleName
)
// prefix bytes for the EVM persistent store
const (
prefixHeightToHeaderHash = iota + 1
prefixBloom
prefixLogs
prefixCode
prefixStorage
prefixBlockGasUsed
prefixBaseFee
)
// prefix bytes for the EVM transient store
const (
prefixTransientSuicided = iota + 1
prefixTransientBloom
@@ -50,8 +54,11 @@ var (
KeyPrefixLogs = []byte{prefixLogs}
KeyPrefixCode = []byte{prefixCode}
KeyPrefixStorage = []byte{prefixStorage}
KeyPrefixBlockGasUsed = []byte{prefixBlockGasUsed}
KeyPrefixBaseFee = []byte{prefixBaseFee}
)
// Transient Store key prefixes
var (
KeyPrefixTransientSuicided = []byte{prefixTransientSuicided}
KeyPrefixTransientBloom = []byte{prefixTransientBloom}
+5 -1
View File
@@ -24,6 +24,7 @@ var (
ParamStoreKeyEnableCall = []byte("EnableCall")
ParamStoreKeyExtraEIPs = []byte("EnableExtraEIPs")
ParamStoreKeyChainConfig = []byte("ChainConfig")
ParamStoreKeyNoBaseFee = []byte("NoBaseFee")
// AvailableExtraEIPs define the list of all EIPs that can be enabled by the EVM interpreter. These EIPs are applied in
// order and can override the instruction sets from the latest hard fork enabled by the ChainConfig. For more info
@@ -37,13 +38,14 @@ func ParamKeyTable() paramtypes.KeyTable {
}
// NewParams creates a new Params instance
func NewParams(evmDenom string, enableCreate, enableCall bool, config ChainConfig, extraEIPs ...int64) Params {
func NewParams(evmDenom string, enableCreate, enableCall bool, config ChainConfig, noBaseFee bool, extraEIPs ...int64) Params {
return Params{
EvmDenom: evmDenom,
EnableCreate: enableCreate,
EnableCall: enableCall,
ExtraEIPs: extraEIPs,
ChainConfig: config,
NoBaseFee: noBaseFee,
}
}
@@ -56,6 +58,7 @@ func DefaultParams() Params {
EnableCall: true,
ChainConfig: DefaultChainConfig(),
ExtraEIPs: nil,
NoBaseFee: true,
}
}
@@ -73,6 +76,7 @@ func (p *Params) ParamSetPairs() paramtypes.ParamSetPairs {
paramtypes.NewParamSetPair(ParamStoreKeyEnableCall, &p.EnableCall, validateBool),
paramtypes.NewParamSetPair(ParamStoreKeyExtraEIPs, &p.ExtraEIPs, validateEIPs),
paramtypes.NewParamSetPair(ParamStoreKeyChainConfig, &p.ChainConfig, validateChainConfig),
paramtypes.NewParamSetPair(ParamStoreKeyNoBaseFee, &p.NoBaseFee, validateBool),
}
}
+2 -2
View File
@@ -15,7 +15,7 @@ func TestParamsValidate(t *testing.T) {
{"default", DefaultParams(), false},
{
"valid",
NewParams("ara", true, true, DefaultChainConfig(), 2929, 1884, 1344),
NewParams("ara", true, true, DefaultChainConfig(), true, 2929, 1884, 1344),
false,
},
{
@@ -40,7 +40,7 @@ func TestParamsValidate(t *testing.T) {
},
{
"invalid chain config",
NewParams("ara", true, true, ChainConfig{}, 2929, 1884, 1344),
NewParams("ara", true, true, ChainConfig{}, true, 2929, 1884, 1344),
false,
},
}
+254 -189
View File
@@ -6,6 +6,7 @@ package types
import (
context "context"
fmt "fmt"
github_com_cosmos_cosmos_sdk_types "github.com/cosmos/cosmos-sdk/types"
query "github.com/cosmos/cosmos-sdk/types/query"
_ "github.com/gogo/protobuf/gogoproto"
grpc1 "github.com/gogo/protobuf/grpc"
@@ -963,26 +964,23 @@ func (m *QueryParamsResponse) GetParams() Params {
return Params{}
}
// QueryStaticCallRequest defines static call request
type QueryStaticCallRequest struct {
// address is the ethereum contract hex address to for static call.
Address string `protobuf:"bytes,1,opt,name=address,proto3" json:"address,omitempty"`
// static call input generated from abi
Input []byte `protobuf:"bytes,2,opt,name=input,proto3" json:"input,omitempty"`
// QueryBaseFeeRequest defines the request type for querying the EIP1559 base
// fee.
type QueryBaseFeeRequest struct {
}
func (m *QueryStaticCallRequest) Reset() { *m = QueryStaticCallRequest{} }
func (m *QueryStaticCallRequest) String() string { return proto.CompactTextString(m) }
func (*QueryStaticCallRequest) ProtoMessage() {}
func (*QueryStaticCallRequest) Descriptor() ([]byte, []int) {
func (m *QueryBaseFeeRequest) Reset() { *m = QueryBaseFeeRequest{} }
func (m *QueryBaseFeeRequest) String() string { return proto.CompactTextString(m) }
func (*QueryBaseFeeRequest) ProtoMessage() {}
func (*QueryBaseFeeRequest) Descriptor() ([]byte, []int) {
return fileDescriptor_e15a877459347994, []int{20}
}
func (m *QueryStaticCallRequest) XXX_Unmarshal(b []byte) error {
func (m *QueryBaseFeeRequest) XXX_Unmarshal(b []byte) error {
return m.Unmarshal(b)
}
func (m *QueryStaticCallRequest) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
func (m *QueryBaseFeeRequest) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
if deterministic {
return xxx_messageInfo_QueryStaticCallRequest.Marshal(b, m, deterministic)
return xxx_messageInfo_QueryBaseFeeRequest.Marshal(b, m, deterministic)
} else {
b = b[:cap(b)]
n, err := m.MarshalToSizedBuffer(b)
@@ -992,31 +990,55 @@ func (m *QueryStaticCallRequest) XXX_Marshal(b []byte, deterministic bool) ([]by
return b[:n], nil
}
}
func (m *QueryStaticCallRequest) XXX_Merge(src proto.Message) {
xxx_messageInfo_QueryStaticCallRequest.Merge(m, src)
func (m *QueryBaseFeeRequest) XXX_Merge(src proto.Message) {
xxx_messageInfo_QueryBaseFeeRequest.Merge(m, src)
}
func (m *QueryStaticCallRequest) XXX_Size() int {
func (m *QueryBaseFeeRequest) XXX_Size() int {
return m.Size()
}
func (m *QueryStaticCallRequest) XXX_DiscardUnknown() {
xxx_messageInfo_QueryStaticCallRequest.DiscardUnknown(m)
func (m *QueryBaseFeeRequest) XXX_DiscardUnknown() {
xxx_messageInfo_QueryBaseFeeRequest.DiscardUnknown(m)
}
var xxx_messageInfo_QueryStaticCallRequest proto.InternalMessageInfo
var xxx_messageInfo_QueryBaseFeeRequest proto.InternalMessageInfo
func (m *QueryStaticCallRequest) GetAddress() string {
if m != nil {
return m.Address
// BaseFeeResponse returns the EIP1559 base fee.
type QueryBaseFeeResponse struct {
BaseFee github_com_cosmos_cosmos_sdk_types.Int `protobuf:"bytes,1,opt,name=base_fee,json=baseFee,proto3,customtype=github.com/cosmos/cosmos-sdk/types.Int" json:"base_fee"`
}
func (m *QueryBaseFeeResponse) Reset() { *m = QueryBaseFeeResponse{} }
func (m *QueryBaseFeeResponse) String() string { return proto.CompactTextString(m) }
func (*QueryBaseFeeResponse) ProtoMessage() {}
func (*QueryBaseFeeResponse) Descriptor() ([]byte, []int) {
return fileDescriptor_e15a877459347994, []int{21}
}
func (m *QueryBaseFeeResponse) XXX_Unmarshal(b []byte) error {
return m.Unmarshal(b)
}
func (m *QueryBaseFeeResponse) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
if deterministic {
return xxx_messageInfo_QueryBaseFeeResponse.Marshal(b, m, deterministic)
} else {
b = b[:cap(b)]
n, err := m.MarshalToSizedBuffer(b)
if err != nil {
return nil, err
}
return b[:n], nil
}
return ""
}
func (m *QueryBaseFeeResponse) XXX_Merge(src proto.Message) {
xxx_messageInfo_QueryBaseFeeResponse.Merge(m, src)
}
func (m *QueryBaseFeeResponse) XXX_Size() int {
return m.Size()
}
func (m *QueryBaseFeeResponse) XXX_DiscardUnknown() {
xxx_messageInfo_QueryBaseFeeResponse.DiscardUnknown(m)
}
func (m *QueryStaticCallRequest) GetInput() []byte {
if m != nil {
return m.Input
}
return nil
}
var xxx_messageInfo_QueryBaseFeeResponse proto.InternalMessageInfo
// QueryStaticCallRequest defines static call response
type QueryStaticCallResponse struct {
@@ -1027,7 +1049,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_e15a877459347994, []int{21}
return fileDescriptor_e15a877459347994, []int{22}
}
func (m *QueryStaticCallResponse) XXX_Unmarshal(b []byte) error {
return m.Unmarshal(b)
@@ -1075,7 +1097,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_e15a877459347994, []int{22}
return fileDescriptor_e15a877459347994, []int{23}
}
func (m *EthCallRequest) XXX_Unmarshal(b []byte) error {
return m.Unmarshal(b)
@@ -1128,7 +1150,7 @@ func (m *EstimateGasResponse) Reset() { *m = EstimateGasResponse{} }
func (m *EstimateGasResponse) String() string { return proto.CompactTextString(m) }
func (*EstimateGasResponse) ProtoMessage() {}
func (*EstimateGasResponse) Descriptor() ([]byte, []int) {
return fileDescriptor_e15a877459347994, []int{23}
return fileDescriptor_e15a877459347994, []int{24}
}
func (m *EstimateGasResponse) XXX_Unmarshal(b []byte) error {
return m.Unmarshal(b)
@@ -1185,7 +1207,8 @@ func init() {
proto.RegisterType((*QueryBlockBloomResponse)(nil), "ethermint.evm.v1.QueryBlockBloomResponse")
proto.RegisterType((*QueryParamsRequest)(nil), "ethermint.evm.v1.QueryParamsRequest")
proto.RegisterType((*QueryParamsResponse)(nil), "ethermint.evm.v1.QueryParamsResponse")
proto.RegisterType((*QueryStaticCallRequest)(nil), "ethermint.evm.v1.QueryStaticCallRequest")
proto.RegisterType((*QueryBaseFeeRequest)(nil), "ethermint.evm.v1.QueryBaseFeeRequest")
proto.RegisterType((*QueryBaseFeeResponse)(nil), "ethermint.evm.v1.QueryBaseFeeResponse")
proto.RegisterType((*QueryStaticCallResponse)(nil), "ethermint.evm.v1.QueryStaticCallResponse")
proto.RegisterType((*EthCallRequest)(nil), "ethermint.evm.v1.EthCallRequest")
proto.RegisterType((*EstimateGasResponse)(nil), "ethermint.evm.v1.EstimateGasResponse")
@@ -1194,85 +1217,87 @@ func init() {
func init() { proto.RegisterFile("ethermint/evm/v1/query.proto", fileDescriptor_e15a877459347994) }
var fileDescriptor_e15a877459347994 = []byte{
// 1243 bytes of a gzipped FileDescriptorProto
0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0xac, 0x57, 0x5d, 0x6b, 0x1b, 0x47,
0x17, 0xd6, 0xc6, 0xb2, 0x14, 0x1f, 0x7f, 0xbc, 0x7e, 0x27, 0x4a, 0xe2, 0x6c, 0x1d, 0x59, 0x1e,
0xc7, 0xb6, 0x1c, 0xbb, 0xda, 0x58, 0x2d, 0x81, 0x06, 0x4a, 0x63, 0x1b, 0x37, 0x81, 0x24, 0x25,
0x55, 0x4c, 0x2f, 0x7a, 0x23, 0x46, 0xab, 0x65, 0x25, 0x2c, 0xed, 0x28, 0x9a, 0x91, 0x2a, 0xd7,
0xb8, 0x85, 0x42, 0x43, 0x20, 0x14, 0x0a, 0xbd, 0x2f, 0x81, 0xfe, 0x80, 0xfe, 0x8d, 0x5c, 0x06,
0x7a, 0xd3, 0xab, 0x52, 0xec, 0x5e, 0xf4, 0x67, 0x94, 0xf9, 0x58, 0x69, 0x57, 0xab, 0xb5, 0x9c,
0xd2, 0xbb, 0xf9, 0x38, 0xe7, 0x3c, 0xcf, 0xf9, 0xd8, 0x79, 0x24, 0x58, 0x74, 0x78, 0xcd, 0x69,
0x37, 0xeb, 0x1e, 0xb7, 0x9c, 0x6e, 0xd3, 0xea, 0x6e, 0x5b, 0xcf, 0x3b, 0x4e, 0xfb, 0xa8, 0xd0,
0x6a, 0x53, 0x4e, 0xd1, 0x7c, 0xff, 0xb6, 0xe0, 0x74, 0x9b, 0x85, 0xee, 0xb6, 0x99, 0x71, 0xa9,
0x4b, 0xe5, 0xa5, 0x25, 0x56, 0xca, 0xce, 0xbc, 0x6d, 0x53, 0xd6, 0xa4, 0xcc, 0xaa, 0x10, 0xe6,
0xa8, 0x00, 0x56, 0x77, 0xbb, 0xe2, 0x70, 0xb2, 0x6d, 0xb5, 0x88, 0x5b, 0xf7, 0x08, 0xaf, 0x53,
0x4f, 0xdb, 0x2e, 0xba, 0x94, 0xba, 0x0d, 0xc7, 0x22, 0xad, 0xba, 0x45, 0x3c, 0x8f, 0x72, 0x79,
0xc9, 0xf4, 0xad, 0x19, 0xe1, 0x23, 0x80, 0xd5, 0xdd, 0x8d, 0xc8, 0x1d, 0xef, 0xa9, 0x2b, 0xfc,
0x11, 0x5c, 0xf9, 0x5c, 0xc0, 0xee, 0xd8, 0x36, 0xed, 0x78, 0xbc, 0xe4, 0x3c, 0xef, 0x38, 0x8c,
0xa3, 0x05, 0x48, 0x93, 0x6a, 0xb5, 0xed, 0x30, 0xb6, 0x60, 0xe4, 0x8c, 0xfc, 0x54, 0xc9, 0xdf,
0xde, 0xbb, 0xfc, 0xf2, 0xf5, 0x52, 0xe2, 0xef, 0xd7, 0x4b, 0x09, 0x6c, 0x43, 0x26, 0xec, 0xca,
0x5a, 0xd4, 0x63, 0x8e, 0xf0, 0xad, 0x90, 0x06, 0xf1, 0x6c, 0xc7, 0xf7, 0xd5, 0x5b, 0xf4, 0x1e,
0x4c, 0xd9, 0xb4, 0xea, 0x94, 0x6b, 0x84, 0xd5, 0x16, 0x2e, 0xc9, 0xbb, 0xcb, 0xe2, 0xe0, 0x21,
0x61, 0x35, 0x94, 0x81, 0x49, 0x8f, 0x0a, 0xa7, 0x89, 0x9c, 0x91, 0x4f, 0x96, 0xd4, 0x06, 0x7f,
0x02, 0x37, 0x24, 0xc8, 0x9e, 0xac, 0xd3, 0xbf, 0x60, 0xf9, 0xc2, 0x00, 0x73, 0x54, 0x04, 0x4d,
0x76, 0x15, 0xe6, 0x54, 0x0b, 0xca, 0xe1, 0x48, 0xb3, 0xea, 0x74, 0x47, 0x1d, 0x22, 0x13, 0x2e,
0x33, 0x01, 0x2a, 0xf8, 0x5d, 0x92, 0xfc, 0xfa, 0x7b, 0x11, 0x82, 0xa8, 0xa8, 0x65, 0xaf, 0xd3,
0xac, 0x38, 0x6d, 0x9d, 0xc1, 0xac, 0x3e, 0xfd, 0x4c, 0x1e, 0xe2, 0x47, 0xb0, 0x28, 0x79, 0x7c,
0x41, 0x1a, 0xf5, 0x2a, 0xe1, 0xb4, 0x3d, 0x94, 0xcc, 0x32, 0xcc, 0xd8, 0xd4, 0x1b, 0xe6, 0x31,
0x2d, 0xce, 0x76, 0x22, 0x59, 0xbd, 0x32, 0xe0, 0x66, 0x4c, 0x34, 0x9d, 0xd8, 0x3a, 0xfc, 0xcf,
0x67, 0x15, 0x8e, 0xe8, 0x93, 0xfd, 0x0f, 0x53, 0xf3, 0x87, 0x68, 0x57, 0xf5, 0xf9, 0x5d, 0xda,
0x73, 0x47, 0x0f, 0x51, 0xdf, 0x75, 0xdc, 0x10, 0xe1, 0x47, 0x1a, 0xec, 0x19, 0xa7, 0x6d, 0xe2,
0x8e, 0x07, 0x43, 0xf3, 0x30, 0x71, 0xe8, 0x1c, 0xe9, 0x79, 0x13, 0xcb, 0x00, 0xfc, 0x96, 0x86,
0xef, 0x07, 0xd3, 0xf0, 0x19, 0x98, 0xec, 0x92, 0x46, 0xc7, 0x07, 0x57, 0x1b, 0x7c, 0x17, 0xe6,
0xf5, 0x28, 0x55, 0xdf, 0x29, 0xc9, 0x75, 0xf8, 0x7f, 0xc0, 0x4f, 0x43, 0x20, 0x48, 0x8a, 0xd9,
0x97, 0x5e, 0x33, 0x25, 0xb9, 0xc6, 0x45, 0x40, 0xd2, 0xf0, 0xa0, 0xf7, 0x98, 0xba, 0xcc, 0x87,
0x40, 0x90, 0x94, 0x5f, 0x8c, 0x8a, 0x2f, 0xd7, 0x81, 0xe0, 0xf7, 0x75, 0x3d, 0x7c, 0x1f, 0x1d,
0x7e, 0x03, 0x92, 0x0d, 0xea, 0x0a, 0x52, 0x13, 0xf9, 0xe9, 0xe2, 0xd5, 0xc2, 0xf0, 0x83, 0x54,
0x78, 0x4c, 0xdd, 0x92, 0x34, 0xc1, 0x27, 0x70, 0x55, 0xf5, 0xa0, 0x41, 0xed, 0xc3, 0x31, 0xc0,
0xe8, 0x53, 0x80, 0xc1, 0xcb, 0x24, 0x8b, 0x3a, 0x5d, 0x5c, 0x2b, 0xa8, 0xaf, 0xa5, 0x20, 0x9e,
0xb1, 0x82, 0x7a, 0x07, 0xf5, 0x33, 0x56, 0x78, 0x3a, 0xe8, 0x51, 0x29, 0xe0, 0x19, 0x48, 0xe0,
0x17, 0x03, 0xae, 0x0d, 0xe3, 0xeb, 0x24, 0xee, 0x43, 0x9a, 0xf7, 0xca, 0x81, 0x3c, 0x96, 0xa3,
0x79, 0x1c, 0xb4, 0x89, 0xc7, 0x88, 0x2d, 0x82, 0x0a, 0xdf, 0xdd, 0xe4, 0x9b, 0x3f, 0x96, 0x12,
0xa5, 0x14, 0x97, 0xe5, 0x40, 0x0f, 0x46, 0xd0, 0x5d, 0x1f, 0x4b, 0x57, 0xc1, 0x07, 0xf9, 0xe2,
0x3b, 0x41, 0x92, 0xbb, 0x0d, 0x4a, 0x9b, 0x7e, 0x95, 0xae, 0x41, 0xaa, 0xe6, 0xd4, 0xdd, 0x1a,
0x97, 0x75, 0x9a, 0x28, 0xe9, 0x1d, 0xb6, 0xe0, 0x7a, 0xc4, 0x63, 0x30, 0x5e, 0x15, 0x71, 0xa0,
0x9b, 0xaf, 0x36, 0x38, 0xa3, 0xbb, 0xff, 0x94, 0xb4, 0x49, 0xd3, 0x6f, 0x02, 0x7e, 0xa2, 0xfb,
0xeb, 0x9f, 0xea, 0x10, 0x77, 0x21, 0xd5, 0x92, 0x27, 0x32, 0xc6, 0x74, 0x71, 0x21, 0x5a, 0x19,
0xe5, 0xe1, 0x17, 0x44, 0x59, 0xe3, 0x87, 0x3a, 0x8f, 0x67, 0x42, 0x3e, 0xec, 0x3d, 0xd2, 0x68,
0x8c, 0xff, 0x82, 0x32, 0x30, 0x59, 0xf7, 0x5a, 0x1d, 0x2e, 0xeb, 0x37, 0x53, 0x52, 0x1b, 0xfc,
0xbe, 0xce, 0x2f, 0x18, 0x69, 0x30, 0xdb, 0x55, 0xc2, 0x89, 0x3f, 0xdb, 0x62, 0x8d, 0x3f, 0x86,
0xb9, 0x7d, 0x5e, 0x0b, 0x02, 0x22, 0x48, 0x92, 0xb6, 0xcb, 0x7c, 0x2b, 0xb1, 0x46, 0xd7, 0x21,
0xed, 0x12, 0x56, 0xb6, 0x49, 0x4b, 0x3f, 0x46, 0x29, 0x97, 0xb0, 0x3d, 0xd2, 0xc2, 0xeb, 0x70,
0x65, 0x9f, 0xf1, 0x7a, 0x93, 0x70, 0xe7, 0x01, 0x19, 0x94, 0x61, 0x1e, 0x26, 0x5c, 0xa2, 0x42,
0x24, 0x4b, 0x62, 0x59, 0xfc, 0x61, 0x0e, 0x26, 0x25, 0x2f, 0xf4, 0xbd, 0x01, 0x69, 0xfd, 0x2c,
0xa2, 0xd5, 0x68, 0x79, 0x46, 0xe8, 0x9e, 0xb9, 0x36, 0xce, 0x4c, 0xc1, 0xe2, 0xcd, 0xef, 0x7e,
0xfb, 0xeb, 0xa7, 0x4b, 0xab, 0x68, 0xc5, 0x8a, 0x48, 0xab, 0x7e, 0x1a, 0xad, 0x63, 0x5d, 0xbd,
0x13, 0xf4, 0xb3, 0x01, 0xb3, 0x21, 0xf5, 0x41, 0x9b, 0x31, 0x30, 0xa3, 0x54, 0xce, 0xdc, 0xba,
0x98, 0xb1, 0x66, 0x56, 0x94, 0xcc, 0xb6, 0xd0, 0xed, 0x28, 0x33, 0x5f, 0xe8, 0x22, 0x04, 0x7f,
0x35, 0x60, 0x7e, 0x58, 0x48, 0x50, 0x21, 0x06, 0x36, 0x46, 0xbf, 0x4c, 0xeb, 0xc2, 0xf6, 0x9a,
0xe9, 0x3d, 0xc9, 0xf4, 0x43, 0x54, 0x8c, 0x32, 0xed, 0xfa, 0x3e, 0x03, 0xb2, 0x41, 0x6d, 0x3c,
0x41, 0x2f, 0x0c, 0x48, 0x6b, 0xc9, 0x88, 0x6d, 0x6d, 0x58, 0x8d, 0x62, 0x5b, 0x3b, 0xa4, 0x3c,
0x78, 0x4b, 0xd2, 0x5a, 0x43, 0xb7, 0xa2, 0xb4, 0xb4, 0x04, 0xb1, 0x40, 0xe9, 0x5e, 0x19, 0x90,
0xd6, 0xe2, 0x11, 0x4b, 0x24, 0xac, 0x54, 0xb1, 0x44, 0x86, 0x34, 0x08, 0x6f, 0x4b, 0x22, 0x9b,
0x68, 0x23, 0x4a, 0x84, 0x29, 0xd3, 0x01, 0x0f, 0xeb, 0xf8, 0xd0, 0x39, 0x3a, 0x41, 0x5f, 0x43,
0x52, 0x68, 0x0c, 0xc2, 0xb1, 0x23, 0xd3, 0x17, 0x2e, 0x73, 0xe5, 0x5c, 0x1b, 0xcd, 0x61, 0x43,
0x72, 0x58, 0x41, 0xcb, 0xa3, 0xa6, 0xa9, 0x1a, 0xaa, 0xc4, 0xb7, 0x90, 0x52, 0x12, 0x84, 0x6e,
0xc5, 0x44, 0x0e, 0xa9, 0x9a, 0xb9, 0x3a, 0xc6, 0x4a, 0x33, 0xc8, 0x4b, 0x06, 0x18, 0xe5, 0xac,
0x11, 0x3f, 0x62, 0xa5, 0x34, 0x58, 0xc7, 0x42, 0x98, 0x64, 0x2b, 0xa6, 0xfa, 0x12, 0x82, 0xd6,
0xe3, 0xda, 0x3d, 0x24, 0x72, 0x66, 0x7e, 0xbc, 0xe1, 0xf8, 0x8f, 0xbe, 0x22, 0x8c, 0x43, 0x6c,
0x5e, 0x1a, 0x00, 0x83, 0x97, 0x1f, 0x9d, 0x8b, 0x12, 0x94, 0x13, 0x73, 0xe3, 0x02, 0x96, 0x9a,
0xd0, 0xaa, 0x24, 0xb4, 0x84, 0x6e, 0xc6, 0x11, 0x92, 0xba, 0x82, 0xbe, 0x82, 0x94, 0x92, 0x82,
0xd8, 0xce, 0x84, 0x14, 0x27, 0xb6, 0x33, 0x61, 0x05, 0xc2, 0x39, 0x89, 0x6e, 0xa2, 0x85, 0x28,
0xba, 0xd2, 0x1a, 0x59, 0x83, 0x81, 0x3a, 0xc4, 0xd6, 0x20, 0x22, 0x45, 0xb1, 0x35, 0x88, 0x4a,
0xcd, 0x79, 0x35, 0x60, 0xd2, 0xba, 0x6c, 0x0b, 0xec, 0x1e, 0xa4, 0xb5, 0xfa, 0xa0, 0x5c, 0x34,
0x78, 0x58, 0x98, 0xcc, 0x11, 0xb3, 0xf3, 0x84, 0xb9, 0xfb, 0xe2, 0xcc, 0xe9, 0x34, 0x0f, 0x7a,
0x7d, 0x70, 0x2c, 0xc1, 0x17, 0x91, 0x19, 0x05, 0x77, 0x78, 0x4d, 0x21, 0x7f, 0x03, 0xd3, 0x01,
0xe1, 0xba, 0x00, 0xfa, 0x88, 0xf2, 0x8f, 0x50, 0x3e, 0xbc, 0x26, 0xb1, 0x73, 0x28, 0x3b, 0x02,
0x5b, 0x9b, 0x97, 0x5d, 0xc2, 0x76, 0x77, 0xdf, 0x9c, 0x66, 0x8d, 0xb7, 0xa7, 0x59, 0xe3, 0xcf,
0xd3, 0xac, 0xf1, 0xe3, 0x59, 0x36, 0xf1, 0xf6, 0x2c, 0x9b, 0xf8, 0xfd, 0x2c, 0x9b, 0xf8, 0x32,
0xef, 0xd6, 0x79, 0xad, 0x53, 0x29, 0xd8, 0xb4, 0x69, 0xf1, 0x1a, 0x69, 0xb3, 0x3a, 0x0b, 0xc4,
0xea, 0xc9, 0x68, 0xfc, 0xa8, 0xe5, 0xb0, 0x4a, 0x4a, 0xfe, 0x59, 0xfc, 0xe0, 0x9f, 0x00, 0x00,
0x00, 0xff, 0xff, 0x58, 0x45, 0xa9, 0x54, 0xf5, 0x0e, 0x00, 0x00,
// 1279 bytes of a gzipped FileDescriptorProto
0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0xac, 0x57, 0x4f, 0x6f, 0x13, 0x47,
0x14, 0xf7, 0x12, 0x63, 0x87, 0x17, 0xa0, 0xe9, 0x10, 0x20, 0x6c, 0x83, 0x63, 0x06, 0x92, 0x38,
0x10, 0x76, 0x89, 0x5b, 0x21, 0x15, 0xa9, 0x2a, 0x38, 0x0a, 0x14, 0x01, 0x15, 0x35, 0x51, 0x0f,
0xbd, 0x58, 0xe3, 0xf5, 0x74, 0x6d, 0xc5, 0xde, 0x31, 0x9e, 0xb5, 0xeb, 0x34, 0x4d, 0x5b, 0x55,
0x2a, 0x42, 0xe2, 0x52, 0xa9, 0xf7, 0x0a, 0xa9, 0x1f, 0xa0, 0x5f, 0x83, 0x23, 0x52, 0x2f, 0x55,
0x0f, 0xa8, 0x4a, 0x7a, 0xe8, 0xc7, 0xa8, 0xe6, 0xcf, 0xda, 0xbb, 0x5e, 0x6f, 0x1c, 0xaa, 0x9e,
0xb2, 0x33, 0xf3, 0xde, 0xfb, 0xfd, 0xe6, 0xfd, 0x99, 0x5f, 0x0c, 0x0b, 0xd4, 0xaf, 0xd3, 0x4e,
0xab, 0xe1, 0xf9, 0x36, 0xed, 0xb5, 0xec, 0xde, 0xba, 0xfd, 0xb4, 0x4b, 0x3b, 0x3b, 0x56, 0xbb,
0xc3, 0x7c, 0x86, 0x66, 0x07, 0xa7, 0x16, 0xed, 0xb5, 0xac, 0xde, 0xba, 0x39, 0xe7, 0x32, 0x97,
0xc9, 0x43, 0x5b, 0x7c, 0x29, 0x3b, 0xf3, 0xaa, 0xc3, 0x78, 0x8b, 0x71, 0xbb, 0x4a, 0x38, 0x55,
0x01, 0xec, 0xde, 0x7a, 0x95, 0xfa, 0x64, 0xdd, 0x6e, 0x13, 0xb7, 0xe1, 0x11, 0xbf, 0xc1, 0x3c,
0x6d, 0xbb, 0xe0, 0x32, 0xe6, 0x36, 0xa9, 0x4d, 0xda, 0x0d, 0x9b, 0x78, 0x1e, 0xf3, 0xe5, 0x21,
0xd7, 0xa7, 0x66, 0x8c, 0x8f, 0x00, 0x56, 0x67, 0x17, 0x62, 0x67, 0x7e, 0x5f, 0x1d, 0xe1, 0x0f,
0xe1, 0xcc, 0x67, 0x02, 0xf6, 0x8e, 0xe3, 0xb0, 0xae, 0xe7, 0x97, 0xe9, 0xd3, 0x2e, 0xe5, 0x3e,
0x9a, 0x87, 0x2c, 0xa9, 0xd5, 0x3a, 0x94, 0xf3, 0x79, 0x23, 0x6f, 0x14, 0x4e, 0x94, 0x83, 0xe5,
0xad, 0xe9, 0xe7, 0x2f, 0x17, 0x53, 0xff, 0xbc, 0x5c, 0x4c, 0x61, 0x07, 0xe6, 0xa2, 0xae, 0xbc,
0xcd, 0x3c, 0x4e, 0x85, 0x6f, 0x95, 0x34, 0x89, 0xe7, 0xd0, 0xc0, 0x57, 0x2f, 0xd1, 0x7b, 0x70,
0xc2, 0x61, 0x35, 0x5a, 0xa9, 0x13, 0x5e, 0x9f, 0x3f, 0x26, 0xcf, 0xa6, 0xc5, 0xc6, 0x27, 0x84,
0xd7, 0xd1, 0x1c, 0x1c, 0xf7, 0x98, 0x70, 0x9a, 0xca, 0x1b, 0x85, 0x74, 0x59, 0x2d, 0xf0, 0xc7,
0x70, 0x41, 0x82, 0x6c, 0xc8, 0x3c, 0xfd, 0x07, 0x96, 0xcf, 0x0c, 0x30, 0xc7, 0x45, 0xd0, 0x64,
0x97, 0xe0, 0xb4, 0x2a, 0x41, 0x25, 0x1a, 0xe9, 0x94, 0xda, 0xbd, 0xa3, 0x36, 0x91, 0x09, 0xd3,
0x5c, 0x80, 0x0a, 0x7e, 0xc7, 0x24, 0xbf, 0xc1, 0x5a, 0x84, 0x20, 0x2a, 0x6a, 0xc5, 0xeb, 0xb6,
0xaa, 0xb4, 0xa3, 0x6f, 0x70, 0x4a, 0xef, 0x7e, 0x2a, 0x37, 0xf1, 0x03, 0x58, 0x90, 0x3c, 0x3e,
0x27, 0xcd, 0x46, 0x8d, 0xf8, 0xac, 0x33, 0x72, 0x99, 0x4b, 0x70, 0xd2, 0x61, 0xde, 0x28, 0x8f,
0x19, 0xb1, 0x77, 0x27, 0x76, 0xab, 0x17, 0x06, 0x5c, 0x4c, 0x88, 0xa6, 0x2f, 0xb6, 0x02, 0xef,
0x04, 0xac, 0xa2, 0x11, 0x03, 0xb2, 0xff, 0xe3, 0xd5, 0x82, 0x26, 0x2a, 0xa9, 0x3a, 0xbf, 0x4d,
0x79, 0x6e, 0xe8, 0x26, 0x1a, 0xb8, 0x4e, 0x6a, 0x22, 0xfc, 0x40, 0x83, 0x3d, 0xf1, 0x59, 0x87,
0xb8, 0x93, 0xc1, 0xd0, 0x2c, 0x4c, 0x6d, 0xd3, 0x1d, 0xdd, 0x6f, 0xe2, 0x33, 0x04, 0xbf, 0xa6,
0xe1, 0x07, 0xc1, 0x34, 0xfc, 0x1c, 0x1c, 0xef, 0x91, 0x66, 0x37, 0x00, 0x57, 0x0b, 0x7c, 0x13,
0x66, 0x75, 0x2b, 0xd5, 0xde, 0xea, 0x92, 0x2b, 0xf0, 0x6e, 0xc8, 0x4f, 0x43, 0x20, 0x48, 0x8b,
0xde, 0x97, 0x5e, 0x27, 0xcb, 0xf2, 0x1b, 0x17, 0x01, 0x49, 0xc3, 0xad, 0xfe, 0x43, 0xe6, 0xf2,
0x00, 0x02, 0x41, 0x5a, 0x4e, 0x8c, 0x8a, 0x2f, 0xbf, 0x43, 0xc1, 0x6f, 0xeb, 0x7c, 0x04, 0x3e,
0x3a, 0xfc, 0x2a, 0xa4, 0x9b, 0xcc, 0x15, 0xa4, 0xa6, 0x0a, 0x33, 0xc5, 0xb3, 0xd6, 0xe8, 0x83,
0x64, 0x3d, 0x64, 0x6e, 0x59, 0x9a, 0xe0, 0x3d, 0x38, 0xab, 0x6a, 0xd0, 0x64, 0xce, 0xf6, 0x04,
0x60, 0x74, 0x17, 0x60, 0xf8, 0x32, 0xc9, 0xa4, 0xce, 0x14, 0x97, 0x2d, 0x35, 0x2d, 0x96, 0x78,
0xc6, 0x2c, 0xf5, 0x0e, 0xea, 0x67, 0xcc, 0x7a, 0x3c, 0xac, 0x51, 0x39, 0xe4, 0x19, 0xba, 0xc0,
0xaf, 0x06, 0x9c, 0x1b, 0xc5, 0xd7, 0x97, 0xb8, 0x0d, 0x59, 0xbf, 0x5f, 0x09, 0xdd, 0xe3, 0x52,
0xfc, 0x1e, 0x5b, 0x1d, 0xe2, 0x71, 0xe2, 0x88, 0xa0, 0xc2, 0xb7, 0x94, 0x7e, 0xf5, 0x66, 0x31,
0x55, 0xce, 0xf8, 0x32, 0x1d, 0xe8, 0xde, 0x18, 0xba, 0x2b, 0x13, 0xe9, 0x2a, 0xf8, 0x30, 0x5f,
0x7c, 0x23, 0x4c, 0xb2, 0xd4, 0x64, 0xac, 0x15, 0x64, 0xe9, 0x1c, 0x64, 0xea, 0xb4, 0xe1, 0xd6,
0x7d, 0x99, 0xa7, 0xa9, 0xb2, 0x5e, 0x61, 0x1b, 0xce, 0xc7, 0x3c, 0x86, 0xed, 0x55, 0x15, 0x1b,
0xba, 0xf8, 0x6a, 0x81, 0xe7, 0x74, 0xf5, 0x1f, 0x93, 0x0e, 0x69, 0x05, 0x45, 0xc0, 0x8f, 0x74,
0x7d, 0x83, 0x5d, 0x1d, 0xe2, 0x26, 0x64, 0xda, 0x72, 0x47, 0xc6, 0x98, 0x29, 0xce, 0xc7, 0x33,
0xa3, 0x3c, 0x82, 0x84, 0x28, 0x6b, 0x7c, 0x76, 0x30, 0xab, 0x9c, 0xde, 0xa5, 0x41, 0x69, 0x30,
0x19, 0xcc, 0xa1, 0xde, 0xd6, 0x30, 0xf7, 0x61, 0x5a, 0x64, 0xa9, 0xf2, 0x25, 0xd5, 0xb3, 0x50,
0xb2, 0x44, 0xb8, 0x3f, 0xdf, 0x2c, 0x2e, 0xbb, 0x0d, 0xbf, 0xde, 0xad, 0x5a, 0x0e, 0x6b, 0xd9,
0x5a, 0xc5, 0xd4, 0x9f, 0xeb, 0xbc, 0xb6, 0x6d, 0xfb, 0x3b, 0x6d, 0xca, 0xad, 0xfb, 0x9e, 0x2f,
0x06, 0x57, 0x86, 0xc4, 0xd7, 0x75, 0x3e, 0x9e, 0x08, 0xe1, 0x72, 0x36, 0x48, 0xb3, 0x19, 0x9e,
0x85, 0x1a, 0xf1, 0x49, 0x30, 0x0b, 0xe2, 0x1b, 0x7f, 0x04, 0xa7, 0x37, 0xfd, 0xba, 0x32, 0x1b,
0xb4, 0x23, 0xe9, 0xb8, 0x3c, 0xb0, 0x12, 0xdf, 0xe8, 0x3c, 0x64, 0x5d, 0xc2, 0x2b, 0x0e, 0x69,
0xeb, 0xc7, 0x2b, 0xe3, 0x12, 0xbe, 0x41, 0xda, 0x78, 0x05, 0xce, 0x6c, 0x72, 0xbf, 0xd1, 0x22,
0x3e, 0xbd, 0x47, 0x86, 0x69, 0x9b, 0x85, 0x29, 0x97, 0xa8, 0x10, 0xe9, 0xb2, 0xf8, 0x2c, 0x7e,
0x7f, 0x1a, 0x8e, 0x4b, 0x5e, 0xe8, 0x47, 0x03, 0xb2, 0xfa, 0x19, 0x45, 0x4b, 0xf1, 0x74, 0x8e,
0xd1, 0x49, 0x73, 0x79, 0x92, 0x99, 0x82, 0xc5, 0xd7, 0x7e, 0xf8, 0xfd, 0xef, 0x9f, 0x8f, 0x2d,
0xa1, 0xcb, 0x76, 0x4c, 0x8a, 0xf5, 0x53, 0x6a, 0xef, 0xea, 0x77, 0x63, 0x0f, 0xfd, 0x62, 0xc0,
0xa9, 0x88, 0x5a, 0xa1, 0x6b, 0x09, 0x30, 0xe3, 0x54, 0xd1, 0x5c, 0x3b, 0x9a, 0xb1, 0x66, 0x56,
0x94, 0xcc, 0xd6, 0xd0, 0xd5, 0x38, 0xb3, 0x40, 0x18, 0x63, 0x04, 0x7f, 0x33, 0x60, 0x76, 0x54,
0x78, 0x90, 0x95, 0x00, 0x9b, 0xa0, 0x77, 0xa6, 0x7d, 0x64, 0x7b, 0xcd, 0xf4, 0x96, 0x64, 0xfa,
0x01, 0x2a, 0xc6, 0x99, 0xf6, 0x02, 0x9f, 0x21, 0xd9, 0xb0, 0x96, 0xee, 0xa1, 0x67, 0x06, 0x64,
0xb5, 0xc4, 0x24, 0x96, 0x36, 0xaa, 0x5e, 0x89, 0xa5, 0x1d, 0x51, 0x2a, 0xbc, 0x26, 0x69, 0x2d,
0xa3, 0x2b, 0x71, 0x5a, 0x5a, 0xb2, 0x78, 0x28, 0x75, 0x2f, 0x0c, 0xc8, 0x6a, 0xb1, 0x49, 0x24,
0x12, 0x55, 0xb6, 0x44, 0x22, 0x23, 0x9a, 0x85, 0xd7, 0x25, 0x91, 0x6b, 0x68, 0x35, 0x4e, 0x84,
0x2b, 0xd3, 0x21, 0x0f, 0x7b, 0x77, 0x9b, 0xee, 0xec, 0xa1, 0xaf, 0x21, 0x2d, 0x34, 0x09, 0xe1,
0xc4, 0x96, 0x19, 0x08, 0x9d, 0x79, 0xf9, 0x50, 0x1b, 0xcd, 0x61, 0x55, 0x72, 0xb8, 0x8c, 0x2e,
0x8d, 0xeb, 0xa6, 0x5a, 0x24, 0x13, 0xdf, 0x41, 0x46, 0x49, 0x16, 0xba, 0x92, 0x10, 0x39, 0xa2,
0x82, 0xe6, 0xd2, 0x04, 0x2b, 0xcd, 0xa0, 0x20, 0x19, 0x60, 0x94, 0xb7, 0xc7, 0xfc, 0xd3, 0x2b,
0xa5, 0xc4, 0xde, 0x15, 0x42, 0x26, 0x4b, 0x71, 0x62, 0x20, 0x39, 0x68, 0x25, 0xa9, 0xdc, 0x23,
0xa2, 0x68, 0x16, 0x26, 0x1b, 0x4e, 0x1e, 0xfa, 0xaa, 0x30, 0x8e, 0xb0, 0x79, 0x6e, 0x00, 0x0c,
0x95, 0x02, 0x1d, 0x8a, 0x12, 0x96, 0x1f, 0x73, 0xf5, 0x08, 0x96, 0x9a, 0xd0, 0x92, 0x24, 0xb4,
0x88, 0x2e, 0x26, 0x11, 0x92, 0x3a, 0x84, 0xbe, 0x82, 0x8c, 0x92, 0x8e, 0xc4, 0xca, 0x44, 0x14,
0x2a, 0xb1, 0x32, 0x51, 0xc5, 0xc2, 0x79, 0x89, 0x6e, 0xa2, 0xf9, 0x38, 0xba, 0xd2, 0x26, 0xf4,
0x8d, 0x18, 0x52, 0x29, 0x16, 0x87, 0x0c, 0x69, 0x58, 0xb6, 0x0e, 0x19, 0xd2, 0x88, 0x8c, 0x61,
0x2c, 0xb1, 0x17, 0x90, 0x39, 0x6e, 0x48, 0x95, 0xbc, 0xa1, 0x3e, 0x64, 0xb5, 0xe0, 0xa0, 0x7c,
0x3c, 0x6c, 0x54, 0x8b, 0xcc, 0x31, 0xed, 0xf2, 0x88, 0xbb, 0x9b, 0x62, 0x8f, 0x76, 0x5b, 0x5b,
0xfd, 0xa3, 0x20, 0x53, 0xbf, 0x5e, 0x71, 0x04, 0xdc, 0xb7, 0x30, 0x13, 0xd2, 0xaa, 0x23, 0xa0,
0x8f, 0xc9, 0xce, 0x18, 0xb1, 0xc3, 0xcb, 0x12, 0x3b, 0x8f, 0x72, 0x63, 0xb0, 0xb5, 0x79, 0xc5,
0x25, 0xbc, 0x54, 0x7a, 0xb5, 0x9f, 0x33, 0x5e, 0xef, 0xe7, 0x8c, 0xbf, 0xf6, 0x73, 0xc6, 0x4f,
0x07, 0xb9, 0xd4, 0xeb, 0x83, 0x5c, 0xea, 0x8f, 0x83, 0x5c, 0xea, 0x8b, 0x42, 0x48, 0xe4, 0xfd,
0x3a, 0xe9, 0xf0, 0x06, 0x0f, 0xc5, 0xea, 0xcb, 0x68, 0x52, 0xea, 0xab, 0x19, 0xf9, 0x7b, 0xf2,
0xfd, 0x7f, 0x03, 0x00, 0x00, 0xff, 0xff, 0x8b, 0x1a, 0xe1, 0x0e, 0x18, 0x0f, 0x00, 0x00,
}
// Reference imports to suppress errors if they are not otherwise used.
@@ -1309,8 +1334,8 @@ 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)
// StaticCall queries the static call value of x/evm module.
StaticCall(ctx context.Context, in *QueryStaticCallRequest, opts ...grpc.CallOption) (*QueryStaticCallResponse, error)
// BaseFee queries the base fee of the parent block of the current block.
BaseFee(ctx context.Context, in *QueryBaseFeeRequest, opts ...grpc.CallOption) (*QueryBaseFeeResponse, error)
// EthCall implements the `eth_call` rpc api
EthCall(ctx context.Context, in *EthCallRequest, opts ...grpc.CallOption) (*MsgEthereumTxResponse, error)
// EstimateGas implements the `eth_estimateGas` rpc api
@@ -1415,9 +1440,9 @@ func (c *queryClient) Params(ctx context.Context, in *QueryParamsRequest, opts .
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.v1.Query/StaticCall", in, out, opts...)
func (c *queryClient) BaseFee(ctx context.Context, in *QueryBaseFeeRequest, opts ...grpc.CallOption) (*QueryBaseFeeResponse, error) {
out := new(QueryBaseFeeResponse)
err := c.cc.Invoke(ctx, "/ethermint.evm.v1.Query/BaseFee", in, out, opts...)
if err != nil {
return nil, err
}
@@ -1466,8 +1491,8 @@ type QueryServer interface {
BlockBloom(context.Context, *QueryBlockBloomRequest) (*QueryBlockBloomResponse, error)
// Params queries the parameters of x/evm module.
Params(context.Context, *QueryParamsRequest) (*QueryParamsResponse, error)
// StaticCall queries the static call value of x/evm module.
StaticCall(context.Context, *QueryStaticCallRequest) (*QueryStaticCallResponse, error)
// BaseFee queries the base fee of the parent block of the current block.
BaseFee(context.Context, *QueryBaseFeeRequest) (*QueryBaseFeeResponse, error)
// EthCall implements the `eth_call` rpc api
EthCall(context.Context, *EthCallRequest) (*MsgEthereumTxResponse, error)
// EstimateGas implements the `eth_estimateGas` rpc api
@@ -1508,8 +1533,8 @@ 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) StaticCall(ctx context.Context, req *QueryStaticCallRequest) (*QueryStaticCallResponse, error) {
return nil, status.Errorf(codes.Unimplemented, "method StaticCall not implemented")
func (*UnimplementedQueryServer) BaseFee(ctx context.Context, req *QueryBaseFeeRequest) (*QueryBaseFeeResponse, error) {
return nil, status.Errorf(codes.Unimplemented, "method BaseFee not implemented")
}
func (*UnimplementedQueryServer) EthCall(ctx context.Context, req *EthCallRequest) (*MsgEthereumTxResponse, error) {
return nil, status.Errorf(codes.Unimplemented, "method EthCall not implemented")
@@ -1702,20 +1727,20 @@ func _Query_Params_Handler(srv interface{}, ctx context.Context, dec func(interf
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)
func _Query_BaseFee_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) {
in := new(QueryBaseFeeRequest)
if err := dec(in); err != nil {
return nil, err
}
if interceptor == nil {
return srv.(QueryServer).StaticCall(ctx, in)
return srv.(QueryServer).BaseFee(ctx, in)
}
info := &grpc.UnaryServerInfo{
Server: srv,
FullMethod: "/ethermint.evm.v1.Query/StaticCall",
FullMethod: "/ethermint.evm.v1.Query/BaseFee",
}
handler := func(ctx context.Context, req interface{}) (interface{}, error) {
return srv.(QueryServer).StaticCall(ctx, req.(*QueryStaticCallRequest))
return srv.(QueryServer).BaseFee(ctx, req.(*QueryBaseFeeRequest))
}
return interceptor(ctx, in, info, handler)
}
@@ -1801,8 +1826,8 @@ var _Query_serviceDesc = grpc.ServiceDesc{
Handler: _Query_Params_Handler,
},
{
MethodName: "StaticCall",
Handler: _Query_StaticCall_Handler,
MethodName: "BaseFee",
Handler: _Query_BaseFee_Handler,
},
{
MethodName: "EthCall",
@@ -2488,7 +2513,7 @@ func (m *QueryParamsResponse) MarshalToSizedBuffer(dAtA []byte) (int, error) {
return len(dAtA) - i, nil
}
func (m *QueryStaticCallRequest) Marshal() (dAtA []byte, err error) {
func (m *QueryBaseFeeRequest) Marshal() (dAtA []byte, err error) {
size := m.Size()
dAtA = make([]byte, size)
n, err := m.MarshalToSizedBuffer(dAtA[:size])
@@ -2498,30 +2523,49 @@ func (m *QueryStaticCallRequest) Marshal() (dAtA []byte, err error) {
return dAtA[:n], nil
}
func (m *QueryStaticCallRequest) MarshalTo(dAtA []byte) (int, error) {
func (m *QueryBaseFeeRequest) MarshalTo(dAtA []byte) (int, error) {
size := m.Size()
return m.MarshalToSizedBuffer(dAtA[:size])
}
func (m *QueryStaticCallRequest) MarshalToSizedBuffer(dAtA []byte) (int, error) {
func (m *QueryBaseFeeRequest) MarshalToSizedBuffer(dAtA []byte) (int, error) {
i := len(dAtA)
_ = i
var l int
_ = l
if len(m.Input) > 0 {
i -= len(m.Input)
copy(dAtA[i:], m.Input)
i = encodeVarintQuery(dAtA, i, uint64(len(m.Input)))
i--
dAtA[i] = 0x12
return len(dAtA) - i, nil
}
func (m *QueryBaseFeeResponse) Marshal() (dAtA []byte, err error) {
size := m.Size()
dAtA = make([]byte, size)
n, err := m.MarshalToSizedBuffer(dAtA[:size])
if err != nil {
return nil, err
}
if len(m.Address) > 0 {
i -= len(m.Address)
copy(dAtA[i:], m.Address)
i = encodeVarintQuery(dAtA, i, uint64(len(m.Address)))
i--
dAtA[i] = 0xa
return dAtA[:n], nil
}
func (m *QueryBaseFeeResponse) MarshalTo(dAtA []byte) (int, error) {
size := m.Size()
return m.MarshalToSizedBuffer(dAtA[:size])
}
func (m *QueryBaseFeeResponse) MarshalToSizedBuffer(dAtA []byte) (int, error) {
i := len(dAtA)
_ = i
var l int
_ = l
{
size := m.BaseFee.Size()
i -= size
if _, err := m.BaseFee.MarshalTo(dAtA[i:]); err != nil {
return 0, err
}
i = encodeVarintQuery(dAtA, i, uint64(size))
}
i--
dAtA[i] = 0xa
return len(dAtA) - i, nil
}
@@ -2917,20 +2961,23 @@ func (m *QueryParamsResponse) Size() (n int) {
return n
}
func (m *QueryStaticCallRequest) Size() (n int) {
func (m *QueryBaseFeeRequest) Size() (n int) {
if m == nil {
return 0
}
var l int
_ = l
l = len(m.Address)
if l > 0 {
n += 1 + l + sovQuery(uint64(l))
}
l = len(m.Input)
if l > 0 {
n += 1 + l + sovQuery(uint64(l))
return n
}
func (m *QueryBaseFeeResponse) Size() (n int) {
if m == nil {
return 0
}
var l int
_ = l
l = m.BaseFee.Size()
n += 1 + l + sovQuery(uint64(l))
return n
}
@@ -4816,7 +4863,7 @@ func (m *QueryParamsResponse) Unmarshal(dAtA []byte) error {
}
return nil
}
func (m *QueryStaticCallRequest) Unmarshal(dAtA []byte) error {
func (m *QueryBaseFeeRequest) Unmarshal(dAtA []byte) error {
l := len(dAtA)
iNdEx := 0
for iNdEx < l {
@@ -4839,15 +4886,65 @@ func (m *QueryStaticCallRequest) Unmarshal(dAtA []byte) error {
fieldNum := int32(wire >> 3)
wireType := int(wire & 0x7)
if wireType == 4 {
return fmt.Errorf("proto: QueryStaticCallRequest: wiretype end group for non-group")
return fmt.Errorf("proto: QueryBaseFeeRequest: wiretype end group for non-group")
}
if fieldNum <= 0 {
return fmt.Errorf("proto: QueryStaticCallRequest: illegal tag %d (wire type %d)", fieldNum, wire)
return fmt.Errorf("proto: QueryBaseFeeRequest: 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 *QueryBaseFeeResponse) 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: QueryBaseFeeResponse: wiretype end group for non-group")
}
if fieldNum <= 0 {
return fmt.Errorf("proto: QueryBaseFeeResponse: illegal tag %d (wire type %d)", fieldNum, wire)
}
switch fieldNum {
case 1:
if wireType != 2 {
return fmt.Errorf("proto: wrong wireType = %d for field Address", wireType)
return fmt.Errorf("proto: wrong wireType = %d for field BaseFee", wireType)
}
var stringLen uint64
for shift := uint(0); ; shift += 7 {
@@ -4875,40 +4972,8 @@ func (m *QueryStaticCallRequest) Unmarshal(dAtA []byte) error {
if postIndex > l {
return io.ErrUnexpectedEOF
}
m.Address = string(dAtA[iNdEx:postIndex])
iNdEx = postIndex
case 2:
if wireType != 2 {
return fmt.Errorf("proto: wrong wireType = %d for field Input", 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.Input = append(m.Input[:0], dAtA[iNdEx:postIndex]...)
if m.Input == nil {
m.Input = []byte{}
if err := m.BaseFee.Unmarshal(dAtA[iNdEx:postIndex]); err != nil {
return err
}
iNdEx = postIndex
default:
+14 -32
View File
@@ -557,38 +557,20 @@ func local_request_Query_Params_0(ctx context.Context, marshaler runtime.Marshal
}
var (
filter_Query_StaticCall_0 = &utilities.DoubleArray{Encoding: map[string]int{}, Base: []int(nil), Check: []int(nil)}
)
func request_Query_StaticCall_0(ctx context.Context, marshaler runtime.Marshaler, client QueryClient, req *http.Request, pathParams map[string]string) (proto.Message, runtime.ServerMetadata, error) {
var protoReq QueryStaticCallRequest
func request_Query_BaseFee_0(ctx context.Context, marshaler runtime.Marshaler, client QueryClient, req *http.Request, pathParams map[string]string) (proto.Message, runtime.ServerMetadata, error) {
var protoReq QueryBaseFeeRequest
var metadata runtime.ServerMetadata
if err := req.ParseForm(); err != nil {
return nil, metadata, status.Errorf(codes.InvalidArgument, "%v", err)
}
if err := runtime.PopulateQueryParameters(&protoReq, req.Form, filter_Query_StaticCall_0); err != nil {
return nil, metadata, status.Errorf(codes.InvalidArgument, "%v", err)
}
msg, err := client.StaticCall(ctx, &protoReq, grpc.Header(&metadata.HeaderMD), grpc.Trailer(&metadata.TrailerMD))
msg, err := client.BaseFee(ctx, &protoReq, grpc.Header(&metadata.HeaderMD), grpc.Trailer(&metadata.TrailerMD))
return msg, metadata, err
}
func local_request_Query_StaticCall_0(ctx context.Context, marshaler runtime.Marshaler, server QueryServer, req *http.Request, pathParams map[string]string) (proto.Message, runtime.ServerMetadata, error) {
var protoReq QueryStaticCallRequest
func local_request_Query_BaseFee_0(ctx context.Context, marshaler runtime.Marshaler, server QueryServer, req *http.Request, pathParams map[string]string) (proto.Message, runtime.ServerMetadata, error) {
var protoReq QueryBaseFeeRequest
var metadata runtime.ServerMetadata
if err := req.ParseForm(); err != nil {
return nil, metadata, status.Errorf(codes.InvalidArgument, "%v", err)
}
if err := runtime.PopulateQueryParameters(&protoReq, req.Form, filter_Query_StaticCall_0); err != nil {
return nil, metadata, status.Errorf(codes.InvalidArgument, "%v", err)
}
msg, err := server.StaticCall(ctx, &protoReq)
msg, err := server.BaseFee(ctx, &protoReq)
return msg, metadata, err
}
@@ -871,7 +853,7 @@ func RegisterQueryHandlerServer(ctx context.Context, mux *runtime.ServeMux, serv
})
mux.Handle("GET", pattern_Query_StaticCall_0, func(w http.ResponseWriter, req *http.Request, pathParams map[string]string) {
mux.Handle("GET", pattern_Query_BaseFee_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)
@@ -880,14 +862,14 @@ func RegisterQueryHandlerServer(ctx context.Context, mux *runtime.ServeMux, serv
runtime.HTTPError(ctx, mux, outboundMarshaler, w, req, err)
return
}
resp, md, err := local_request_Query_StaticCall_0(rctx, inboundMarshaler, server, req, pathParams)
resp, md, err := local_request_Query_BaseFee_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_StaticCall_0(ctx, mux, outboundMarshaler, w, req, resp, mux.GetForwardResponseOptions()...)
forward_Query_BaseFee_0(ctx, mux, outboundMarshaler, w, req, resp, mux.GetForwardResponseOptions()...)
})
@@ -1172,7 +1154,7 @@ func RegisterQueryHandlerClient(ctx context.Context, mux *runtime.ServeMux, clie
})
mux.Handle("GET", pattern_Query_StaticCall_0, func(w http.ResponseWriter, req *http.Request, pathParams map[string]string) {
mux.Handle("GET", pattern_Query_BaseFee_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)
@@ -1181,14 +1163,14 @@ func RegisterQueryHandlerClient(ctx context.Context, mux *runtime.ServeMux, clie
runtime.HTTPError(ctx, mux, outboundMarshaler, w, req, err)
return
}
resp, md, err := request_Query_StaticCall_0(rctx, inboundMarshaler, client, req, pathParams)
resp, md, err := request_Query_BaseFee_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_StaticCall_0(ctx, mux, outboundMarshaler, w, req, resp, mux.GetForwardResponseOptions()...)
forward_Query_BaseFee_0(ctx, mux, outboundMarshaler, w, req, resp, mux.GetForwardResponseOptions()...)
})
@@ -1256,7 +1238,7 @@ var (
pattern_Query_Params_0 = runtime.MustPattern(runtime.NewPattern(1, []int{2, 0, 2, 1, 2, 2, 2, 3}, []string{"ethermint", "evm", "v1", "params"}, "", runtime.AssumeColonVerbOpt(true)))
pattern_Query_StaticCall_0 = runtime.MustPattern(runtime.NewPattern(1, []int{2, 0, 2, 1, 2, 2, 2, 3}, []string{"ethermint", "evm", "v1", "static_call"}, "", runtime.AssumeColonVerbOpt(true)))
pattern_Query_BaseFee_0 = runtime.MustPattern(runtime.NewPattern(1, []int{2, 0, 2, 1, 2, 2, 2, 3}, []string{"ethermint", "evm", "v1", "base_fee"}, "", runtime.AssumeColonVerbOpt(true)))
pattern_Query_EthCall_0 = runtime.MustPattern(runtime.NewPattern(1, []int{2, 0, 2, 1, 2, 2, 2, 3}, []string{"ethermint", "evm", "v1", "eth_call"}, "", runtime.AssumeColonVerbOpt(true)))
@@ -1284,7 +1266,7 @@ var (
forward_Query_Params_0 = runtime.ForwardResponseMessage
forward_Query_StaticCall_0 = runtime.ForwardResponseMessage
forward_Query_BaseFee_0 = runtime.ForwardResponseMessage
forward_Query_EthCall_0 = runtime.ForwardResponseMessage