Skip to content
This repository has been archived by the owner on Apr 4, 2024. It is now read-only.

refactor: optimize AnteHandler gas consumption #1388

Merged
merged 16 commits into from
Oct 19, 2022
Merged
Show file tree
Hide file tree
Changes from 1 commit
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
115 changes: 84 additions & 31 deletions x/evm/keeper/params_test.go
Original file line number Diff line number Diff line change
Expand Up @@ -2,41 +2,94 @@ package keeper_test

import (
"github.com/evmos/ethermint/x/evm/types"
"reflect"
)

func (suite *KeeperTestSuite) TestParams() {
Vvaradinov marked this conversation as resolved.
Show resolved Hide resolved
// Checks if the default params are set correctly
params := suite.app.EvmKeeper.GetParams(suite.ctx)
suite.Require().Equal(types.DefaultParams(), params)

// Check EvmDenom param is set to "inj" and can be retrieved correctly
params.EvmDenom = "inj"
suite.app.EvmKeeper.SetParams(suite.ctx, params)
evmDenom := suite.app.EvmKeeper.GetEVMDenom(suite.ctx)
suite.Require().Equal(evmDenom, params.EvmDenom)

// Check EnableCreate param is set to false and can be retrieved correctly
params.EnableCreate = false
suite.app.EvmKeeper.SetParams(suite.ctx, params)
enableCreate := suite.app.EvmKeeper.GetEnableCreate(suite.ctx)
suite.Require().Equal(enableCreate, params.EnableCreate)

// Check EnableCall param is set to false and can be retrieved correctly
params.EnableCall = false
suite.app.EvmKeeper.SetParams(suite.ctx, params)
enableCall := suite.app.EvmKeeper.GetEnableCall(suite.ctx)
suite.Require().Equal(enableCall, params.EnableCall)

// Check AllowUnprotectedTxs param is set to false and can be retrieved correctly
params.AllowUnprotectedTxs = false
suite.app.EvmKeeper.SetParams(suite.ctx, params)
allowUnprotectedTxs := suite.app.EvmKeeper.GetAllowUnprotectedTxs(suite.ctx)
suite.Require().Equal(allowUnprotectedTxs, params.AllowUnprotectedTxs)

// Check ChainConfig param is set do the DefaultChainConfig and can be retrieved correctly
params.ChainConfig = types.DefaultChainConfig()
suite.app.EvmKeeper.SetParams(suite.ctx, params)
Vvaradinov marked this conversation as resolved.
Show resolved Hide resolved
chainConfig := suite.app.EvmKeeper.GetChainConfig(suite.ctx)
suite.Require().Equal(chainConfig, params.ChainConfig)
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.Equal(tc.expected, outcome)
Vvaradinov marked this conversation as resolved.
Show resolved Hide resolved
})
}

}
79 changes: 60 additions & 19 deletions x/feemarket/keeper/params_test.go
Original file line number Diff line number Diff line change
Expand Up @@ -2,28 +2,69 @@ package keeper_test

import (
"github.com/evmos/ethermint/x/feemarket/types"
"reflect"
)

func (suite *KeeperTestSuite) TestSetGetParams() {
Vvaradinov marked this conversation as resolved.
Show resolved Hide resolved
// Checks if the default params are set correctly
params := suite.app.FeeMarketKeeper.GetParams(suite.ctx)
suite.Require().Equal(types.DefaultParams(), params)

// Check ElasticityMultiplier is set to 3 and can be retrieved correctly
params.ElasticityMultiplier = 3
suite.app.FeeMarketKeeper.SetParams(suite.ctx, params)
newParams := suite.app.FeeMarketKeeper.GetParams(suite.ctx)
suite.Require().Equal(newParams, params)

// Check BaseFeeEnabled is computed with its default params and can be retrieved correctly
suite.app.FeeMarketKeeper.SetParams(suite.ctx, params)
isBaseFeeEnabled := suite.app.FeeMarketKeeper.GetBaseFeeEnabled(suite.ctx)
suite.Require().Equal(isBaseFeeEnabled, true)

// Check BaseFeeEnabled is computed with alternate params and can be retrieved correctly
params.NoBaseFee = true
params.EnableHeight = 5
suite.app.FeeMarketKeeper.SetParams(suite.ctx, params)
isBaseFeeEnabled = suite.app.FeeMarketKeeper.GetBaseFeeEnabled(suite.ctx)
suite.Require().Equal(isBaseFeeEnabled, false)
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.FeeMarketKeeper.GetParams(suite.ctx)
},
true,
},
{
"success - Check ElasticityMultiplier is set to 3 and can be retrieved correctly",
func() interface{} {
params.ElasticityMultiplier = 3
suite.app.FeeMarketKeeper.SetParams(suite.ctx, params)
return params.ElasticityMultiplier
},
func() interface{} {
return suite.app.FeeMarketKeeper.GetParams(suite.ctx).ElasticityMultiplier
},
true,
},
{
"success - Check BaseFeeEnabled is computed with its default params and can be retrieved correctly",
func() interface{} {
suite.app.FeeMarketKeeper.SetParams(suite.ctx, types.DefaultParams())
return true
},
func() interface{} {
return suite.app.FeeMarketKeeper.GetBaseFeeEnabled(suite.ctx)
},
true,
},
{
"success - Check BaseFeeEnabled is computed with alternate params and can be retrieved correctly",
func() interface{} {
params.NoBaseFee = true
params.EnableHeight = 5
suite.app.FeeMarketKeeper.SetParams(suite.ctx, params)
return true
},
func() interface{} {
return suite.app.FeeMarketKeeper.GetBaseFeeEnabled(suite.ctx)
},
false,
},
}
for _, tc := range testCases {
suite.Run(tc.name, func() {
outcome := reflect.DeepEqual(tc.paramsFun(), tc.getFun())
suite.Require().Equal(tc.expected, outcome)
})
}
}