feat: add custom max gas for block for sim config (backport #16656) (#16730)

Co-authored-by: mmsqe <mavis@crypto.com>
Co-authored-by: Facundo Medica <facundomedica@gmail.com>
This commit is contained in:
mergify[bot] 2023-06-28 09:30:44 +00:00 committed by GitHub
parent 5802a6b2cd
commit d681010fee
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
4 changed files with 13 additions and 4 deletions

View File

@ -37,6 +37,10 @@ Ref: https://keepachangelog.com/en/1.0.0/
## [Unreleased] ## [Unreleased]
### Features
* (sims) [#16656](https://github.com/cosmos/cosmos-sdk/pull/16656) Add custom max gas for block for sim config with unlimited as default.
### Improvements ### Improvements
* (testutil) [#16704](https://github.com/cosmos/cosmos-sdk/pull/16704) Make app config configurator for testing for configurable. * (testutil) [#16704](https://github.com/cosmos/cosmos-sdk/pull/16704) Make app config configurator for testing for configurable.

View File

@ -23,4 +23,5 @@ type Config struct {
AllInvariants bool // print all failed invariants if a broken invariant is found AllInvariants bool // print all failed invariants if a broken invariant is found
DBBackend string // custom db backend type DBBackend string // custom db backend type
BlockMaxGas int64 // custom max gas for block
} }

View File

@ -176,7 +176,7 @@ func (w WeightedProposalContent) ContentSimulatorFn() simulation.ContentSimulato
// Consensus Params // Consensus Params
// randomConsensusParams returns random simulation consensus parameters, it extracts the Evidence from the Staking genesis state. // randomConsensusParams returns random simulation consensus parameters, it extracts the Evidence from the Staking genesis state.
func randomConsensusParams(r *rand.Rand, appState json.RawMessage, cdc codec.JSONCodec) *tmproto.ConsensusParams { func randomConsensusParams(r *rand.Rand, appState json.RawMessage, cdc codec.JSONCodec, maxGas int64) *tmproto.ConsensusParams {
var genesisState map[string]json.RawMessage var genesisState map[string]json.RawMessage
err := json.Unmarshal(appState, &genesisState) err := json.Unmarshal(appState, &genesisState)
if err != nil { if err != nil {
@ -187,7 +187,7 @@ func randomConsensusParams(r *rand.Rand, appState json.RawMessage, cdc codec.JSO
consensusParams := &tmproto.ConsensusParams{ consensusParams := &tmproto.ConsensusParams{
Block: &tmproto.BlockParams{ Block: &tmproto.BlockParams{
MaxBytes: int64(simulation.RandIntBetween(r, 20000000, 30000000)), MaxBytes: int64(simulation.RandIntBetween(r, 20000000, 30000000)),
MaxGas: -1, MaxGas: maxGas,
}, },
Validator: &tmproto.ValidatorParams{ Validator: &tmproto.ValidatorParams{
PubKeyTypes: []string{types.ABCIPubKeyTypeEd25519}, PubKeyTypes: []string{types.ABCIPubKeyTypeEd25519},

View File

@ -31,8 +31,12 @@ func initChain(
config simulation.Config, config simulation.Config,
cdc codec.JSONCodec, cdc codec.JSONCodec,
) (mockValidators, time.Time, []simulation.Account, string) { ) (mockValidators, time.Time, []simulation.Account, string) {
blockMaxGas := int64(-1)
if config.BlockMaxGas > 0 {
blockMaxGas = config.BlockMaxGas
}
appState, accounts, chainID, genesisTimestamp := appStateFn(r, accounts, config) appState, accounts, chainID, genesisTimestamp := appStateFn(r, accounts, config)
consensusParams := randomConsensusParams(r, appState, cdc) consensusParams := randomConsensusParams(r, appState, cdc, blockMaxGas)
req := abci.RequestInitChain{ req := abci.RequestInitChain{
AppStateBytes: appState, AppStateBytes: appState,
ChainId: chainID, ChainId: chainID,