620f6a6770
* add gasWanted transient store keys * add gasWanted transient store keeper functions * add gasWanted transient store tracker * add comment * remove unncesary comment * remove unnecesary function * fix tests * fix bad comment * remove unnecesary comment * update comment * update changelog * Update CHANGELOG.md Co-authored-by: Federico Kunze Küllmer <31522760+fedekunze@users.noreply.github.com> * add GasWantedDecorator * remove unnecesary comments * gasWanted decorator test * fix tests * fix tests and build * fix lint * updated end block event * Update app/ante/fee_market.go Co-authored-by: Federico Kunze Küllmer <31522760+fedekunze@users.noreply.github.com> * fix undeclared variable * Update app/ante/fee_market_test.go * remove unnecesary line * migrate MinGasMultiplier to FeeMarket module * set limited gas wanted * remove old newKeeper param * update proto comment * fix test * update comments * Update x/feemarket/keeper/abci.go Co-authored-by: Federico Kunze Küllmer <31522760+fedekunze@users.noreply.github.com> * address comments from review * tidy * tests Co-authored-by: Federico Kunze Küllmer <31522760+fedekunze@users.noreply.github.com>
62 lines
1.6 KiB
Go
62 lines
1.6 KiB
Go
package simulation
|
|
|
|
import (
|
|
"encoding/json"
|
|
"fmt"
|
|
"math/rand"
|
|
|
|
"github.com/cosmos/cosmos-sdk/types/module"
|
|
|
|
"github.com/tharsis/ethermint/x/evm/types"
|
|
)
|
|
|
|
const (
|
|
extraEIPsKey = "extra_eips"
|
|
)
|
|
|
|
// GenExtraEIPs defines a set of extra EIPs with 50% probability
|
|
func GenExtraEIPs(r *rand.Rand) []int64 {
|
|
var extraEIPs []int64
|
|
// 50% chance of having extra EIPs
|
|
if r.Intn(2) == 0 {
|
|
extraEIPs = []int64{1344, 1884, 2200, 2929, 3198, 3529}
|
|
}
|
|
return extraEIPs
|
|
}
|
|
|
|
// GenEnableCreate enables the EnableCreate param with 80% probability
|
|
func GenEnableCreate(r *rand.Rand) bool {
|
|
// 80% chance of enabling create contract
|
|
enableCreate := r.Intn(100) < 80
|
|
return enableCreate
|
|
}
|
|
|
|
// GenEnableCall enables the EnableCall param with 80% probability
|
|
func GenEnableCall(r *rand.Rand) bool {
|
|
// 80% chance of enabling evm account transfer and calling contract
|
|
enableCall := r.Intn(100) < 80
|
|
return enableCall
|
|
}
|
|
|
|
// RandomizedGenState generates a random GenesisState for the EVM module
|
|
func RandomizedGenState(simState *module.SimulationState) {
|
|
// evm params
|
|
var extraEIPs []int64
|
|
|
|
simState.AppParams.GetOrGenerate(
|
|
simState.Cdc, extraEIPsKey, &extraEIPs, simState.Rand,
|
|
func(r *rand.Rand) { extraEIPs = GenExtraEIPs(r) },
|
|
)
|
|
|
|
params := types.NewParams(types.DefaultEVMDenom, true, true, types.DefaultChainConfig(), extraEIPs...)
|
|
evmGenesis := types.NewGenesisState(params, []types.GenesisAccount{})
|
|
|
|
bz, err := json.MarshalIndent(evmGenesis, "", " ")
|
|
if err != nil {
|
|
panic(err)
|
|
}
|
|
fmt.Printf("Selected randomly generated %s parameters:\n%s\n", types.ModuleName, bz)
|
|
|
|
simState.GenState[types.ModuleName] = simState.Cdc.MustMarshalJSON(evmGenesis)
|
|
}
|