From 157f188b91d27f30b61465944cf090f22cfc7d24 Mon Sep 17 00:00:00 2001 From: Vladislav Varadinov Date: Thu, 20 Oct 2022 14:40:25 +0300 Subject: [PATCH] imp(ante): refactor for increased `AnteHandler` performance (#1393) --- app/ante/eth.go | 10 +++++----- x/evm/keeper/params.go | 10 +++++----- x/feemarket/keeper/params.go | 4 ++-- 3 files changed, 12 insertions(+), 12 deletions(-) diff --git a/app/ante/eth.go b/app/ante/eth.go index 62158b829b..60a14a8c54 100644 --- a/app/ante/eth.go +++ b/app/ante/eth.go @@ -438,6 +438,9 @@ func (vbd EthValidateBasicDecorator) AnteHandle(ctx sdk.Context, tx sdk.Tx, simu chainID := vbd.evmKeeper.ChainID() ethCfg := chainCfg.EthereumConfig(chainID) baseFee := vbd.evmKeeper.GetBaseFee(ctx, ethCfg) + enableCreate := vbd.evmKeeper.GetEnableCreate(ctx) + enableCall := vbd.evmKeeper.GetEnableCall(ctx) + evmDenom := vbd.evmKeeper.GetEVMDenom(ctx) for _, msg := range protoTx.GetMsgs() { msgEthTx, ok := msg.(*evmtypes.MsgEthereumTx) @@ -458,9 +461,6 @@ func (vbd EthValidateBasicDecorator) AnteHandle(ctx sdk.Context, tx sdk.Tx, simu } // return error if contract creation or call are disabled through governance - enableCreate := vbd.evmKeeper.GetEnableCreate(ctx) - enableCall := vbd.evmKeeper.GetEnableCall(ctx) - if !enableCreate && txData.GetTo() == nil { return ctx, sdkerrors.Wrap(evmtypes.ErrCreateDisabled, "failed to create new contract") } else if !enableCall && txData.GetTo() != nil { @@ -471,7 +471,6 @@ func (vbd EthValidateBasicDecorator) AnteHandle(ctx sdk.Context, tx sdk.Tx, simu return ctx, sdkerrors.Wrap(ethtypes.ErrTxTypeNotSupported, "dynamic fee tx not supported") } - evmDenom := vbd.evmKeeper.GetEVMDenom(ctx) txFee = txFee.Add(sdk.NewCoin(evmDenom, sdkmath.NewIntFromBigInt(txData.Fee()))) } @@ -551,6 +550,8 @@ func (mfd EthMempoolFeeDecorator) AnteHandle(ctx sdk.Context, tx sdk.Tx, simulat chainCfg := mfd.evmKeeper.GetChainConfig(ctx) ethCfg := chainCfg.EthereumConfig(mfd.evmKeeper.ChainID()) baseFee := mfd.evmKeeper.GetBaseFee(ctx, ethCfg) + evmDenom := mfd.evmKeeper.GetEVMDenom(ctx) + if baseFee == nil { for _, msg := range tx.GetMsgs() { ethMsg, ok := msg.(*evmtypes.MsgEthereumTx) @@ -558,7 +559,6 @@ func (mfd EthMempoolFeeDecorator) AnteHandle(ctx sdk.Context, tx sdk.Tx, simulat return ctx, sdkerrors.Wrapf(sdkerrors.ErrUnknownRequest, "invalid message type %T, expected %T", msg, (*evmtypes.MsgEthereumTx)(nil)) } - evmDenom := mfd.evmKeeper.GetEVMDenom(ctx) feeAmt := ethMsg.GetFee() glDec := sdk.NewDec(int64(ethMsg.GetGas())) requiredFee := ctx.MinGasPrices().AmountOf(evmDenom).Mul(glDec) diff --git a/x/evm/keeper/params.go b/x/evm/keeper/params.go index 6d232cfa22..dea4bdd986 100644 --- a/x/evm/keeper/params.go +++ b/x/evm/keeper/params.go @@ -24,35 +24,35 @@ func (k Keeper) SetParams(ctx sdk.Context, params types.Params) { // GetChainConfig returns the chain configuration parameter. func (k Keeper) GetChainConfig(ctx sdk.Context) types.ChainConfig { - chainCfg := types.ChainConfig{} + var chainCfg types.ChainConfig k.paramSpace.GetIfExists(ctx, types.ParamStoreKeyChainConfig, &chainCfg) return chainCfg } // GetEVMDenom returns the EVM denom. func (k Keeper) GetEVMDenom(ctx sdk.Context) string { - evmDenom := "" + var evmDenom string k.paramSpace.GetIfExists(ctx, types.ParamStoreKeyEVMDenom, &evmDenom) return evmDenom } // GetEnableCall returns true if the EVM Call operation is enabled. func (k Keeper) GetEnableCall(ctx sdk.Context) bool { - enableCall := false + var enableCall bool k.paramSpace.GetIfExists(ctx, types.ParamStoreKeyEnableCall, &enableCall) return enableCall } // GetEnableCreate returns true if the EVM Create contract operation is enabled. func (k Keeper) GetEnableCreate(ctx sdk.Context) bool { - enableCreate := false + var enableCreate bool k.paramSpace.GetIfExists(ctx, types.ParamStoreKeyEnableCreate, &enableCreate) return enableCreate } // GetAllowUnprotectedTxs returns true if unprotected txs (i.e non-replay protected as per EIP-155) are supported by the chain. func (k Keeper) GetAllowUnprotectedTxs(ctx sdk.Context) bool { - allowUnprotectedTx := false + var allowUnprotectedTx bool k.paramSpace.GetIfExists(ctx, types.ParamStoreKeyAllowUnprotectedTxs, &allowUnprotectedTx) return allowUnprotectedTx } diff --git a/x/feemarket/keeper/params.go b/x/feemarket/keeper/params.go index e3d7b2aa23..b84908db62 100644 --- a/x/feemarket/keeper/params.go +++ b/x/feemarket/keeper/params.go @@ -30,8 +30,8 @@ func (k Keeper) SetParams(ctx sdk.Context, params types.Params) { // GetBaseFeeEnabled returns true if base fee is enabled func (k Keeper) GetBaseFeeEnabled(ctx sdk.Context) bool { - noBaseFee := false - enableHeight := int64(0) + var noBaseFee bool + var enableHeight int64 k.paramSpace.GetIfExists(ctx, types.ParamStoreKeyNoBaseFee, &noBaseFee) k.paramSpace.GetIfExists(ctx, types.ParamStoreKeyEnableHeight, &enableHeight) return !noBaseFee && ctx.BlockHeight() >= enableHeight