forked from cerc-io/laconicd-deprecated
refactor: optimize AnteHandler gas consumption (#1388)
* refactor: antehandler order and params optimization * removed additional individual params for the feemarket module * typo fix * Apply suggestions from code review - Fede Co-authored-by: Federico Kunze Küllmer <31522760+fedekunze@users.noreply.github.com> * typo fix * formatted using gofumpt * typo fix - missed negate operator * missed to negate conditions * added unit tests for the new param getter methods * updated changelog * Apply suggestions from code review Co-authored-by: Federico Kunze Küllmer <31522760+fedekunze@users.noreply.github.com> * moved to improvements * Converted unit tests into table-driven tests * added Require().Equal() to test case Co-authored-by: Federico Kunze Küllmer <31522760+fedekunze@users.noreply.github.com>
This commit is contained in:
co-authored by
Federico Kunze Küllmer
parent
5879750b30
commit
83e509bc57
@@ -21,3 +21,38 @@ func (k Keeper) GetParams(ctx sdk.Context) (params types.Params) {
|
||||
func (k Keeper) SetParams(ctx sdk.Context, params types.Params) {
|
||||
k.paramSpace.SetParamSet(ctx, ¶ms)
|
||||
}
|
||||
|
||||
// GetChainConfig returns the chain configuration parameter.
|
||||
func (k Keeper) GetChainConfig(ctx sdk.Context) types.ChainConfig {
|
||||
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 := ""
|
||||
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
|
||||
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
|
||||
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
|
||||
k.paramSpace.GetIfExists(ctx, types.ParamStoreKeyAllowUnprotectedTxs, &allowUnprotectedTx)
|
||||
return allowUnprotectedTx
|
||||
}
|
||||
|
||||
@@ -2,13 +2,94 @@ package keeper_test
|
||||
|
||||
import (
|
||||
"github.com/evmos/ethermint/x/evm/types"
|
||||
"reflect"
|
||||
)
|
||||
|
||||
func (suite *KeeperTestSuite) TestParams() {
|
||||
params := suite.app.EvmKeeper.GetParams(suite.ctx)
|
||||
suite.Require().Equal(types.DefaultParams(), params)
|
||||
params.EvmDenom = "inj"
|
||||
suite.app.EvmKeeper.SetParams(suite.ctx, params)
|
||||
newParams := suite.app.EvmKeeper.GetParams(suite.ctx)
|
||||
suite.Require().Equal(newParams, params)
|
||||
testCases := []struct {
|
||||
name string
|
||||
paramsFun func() interface{}
|
||||
getFun func() interface{}
|
||||
expected bool
|
||||
}{
|
||||
{
|
||||
"success - Checks if the default params are set correctly",
|
||||
func() interface{} {
|
||||
return types.DefaultParams()
|
||||
},
|
||||
func() interface{} {
|
||||
return suite.app.EvmKeeper.GetParams(suite.ctx)
|
||||
},
|
||||
true,
|
||||
},
|
||||
{
|
||||
"success - EvmDenom param is set to \"inj\" and can be retrieved correctly",
|
||||
func() interface{} {
|
||||
params.EvmDenom = "inj"
|
||||
suite.app.EvmKeeper.SetParams(suite.ctx, params)
|
||||
return params.EvmDenom
|
||||
},
|
||||
func() interface{} {
|
||||
return suite.app.EvmKeeper.GetEVMDenom(suite.ctx)
|
||||
},
|
||||
true,
|
||||
},
|
||||
{
|
||||
"success - Check EnableCreate param is set to false and can be retrieved correctly",
|
||||
func() interface{} {
|
||||
params.EnableCreate = false
|
||||
suite.app.EvmKeeper.SetParams(suite.ctx, params)
|
||||
return params.EnableCreate
|
||||
},
|
||||
func() interface{} {
|
||||
return suite.app.EvmKeeper.GetEnableCreate(suite.ctx)
|
||||
},
|
||||
true,
|
||||
},
|
||||
{
|
||||
"success - Check EnableCall param is set to false and can be retrieved correctly",
|
||||
func() interface{} {
|
||||
params.EnableCall = false
|
||||
suite.app.EvmKeeper.SetParams(suite.ctx, params)
|
||||
return params.EnableCall
|
||||
},
|
||||
func() interface{} {
|
||||
return suite.app.EvmKeeper.GetEnableCall(suite.ctx)
|
||||
},
|
||||
true,
|
||||
},
|
||||
{
|
||||
"success - Check AllowUnprotectedTxs param is set to false and can be retrieved correctly",
|
||||
func() interface{} {
|
||||
params.AllowUnprotectedTxs = false
|
||||
suite.app.EvmKeeper.SetParams(suite.ctx, params)
|
||||
return params.AllowUnprotectedTxs
|
||||
},
|
||||
func() interface{} {
|
||||
return suite.app.EvmKeeper.GetAllowUnprotectedTxs(suite.ctx)
|
||||
},
|
||||
true,
|
||||
},
|
||||
{
|
||||
"success - Check ChainConfig param is set to the default value and can be retrieved correctly",
|
||||
func() interface{} {
|
||||
params.ChainConfig = types.DefaultChainConfig()
|
||||
suite.app.EvmKeeper.SetParams(suite.ctx, params)
|
||||
return params.ChainConfig
|
||||
},
|
||||
func() interface{} {
|
||||
return suite.app.EvmKeeper.GetChainConfig(suite.ctx)
|
||||
},
|
||||
true,
|
||||
},
|
||||
}
|
||||
for _, tc := range testCases {
|
||||
suite.Run(tc.name, func() {
|
||||
outcome := reflect.DeepEqual(tc.paramsFun(), tc.getFun())
|
||||
suite.Require().Equal(tc.expected, outcome)
|
||||
})
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user