diff --git a/simapp/helpers/test_helpers.go b/simapp/helpers/test_helpers.go index 9ccecbd976c4..b133b4a13cb8 100644 --- a/simapp/helpers/test_helpers.go +++ b/simapp/helpers/test_helpers.go @@ -14,7 +14,7 @@ import ( // SimAppChainID hardcoded chainID for simulation const ( - DefaultGenTxGas = 1000000 + DefaultGenTxGas = 2000000 SimAppChainID = "simulation-app" ) diff --git a/x/bank/simulation/genesis.go b/x/bank/simulation/genesis.go index 9031d0336451..3ead9433c577 100644 --- a/x/bank/simulation/genesis.go +++ b/x/bank/simulation/genesis.go @@ -35,6 +35,15 @@ func RandomGenesisSendParams(r *rand.Rand) types.SendEnabledParams { return params.SendEnabled } +func GenesisCoins(bondDenom string, initialStake int64) sdk.Coins { + coins := make(sdk.Coins, 4) + for i := range coins { + coins[i] = sdk.NewCoin(fmt.Sprintf("%s%02d", bondDenom, i), sdk.NewInt(initialStake)) + } + coins = coins.Add(sdk.NewInt64Coin(bondDenom, initialStake)) + return coins +} + // RandomGenesisBalances returns a slice of account balances. Each account has // a balance of simState.InitialStake for sdk.DefaultBondDenom. func RandomGenesisBalances(simState *module.SimulationState) []types.Balance { @@ -43,7 +52,7 @@ func RandomGenesisBalances(simState *module.SimulationState) []types.Balance { for _, acc := range simState.Accounts { genesisBalances = append(genesisBalances, types.Balance{ Address: acc.Address.String(), - Coins: sdk.NewCoins(sdk.NewCoin(sdk.DefaultBondDenom, sdk.NewInt(simState.InitialStake))), + Coins: GenesisCoins(sdk.DefaultBondDenom, simState.InitialStake), }) } @@ -65,8 +74,12 @@ func RandomizedGenState(simState *module.SimulationState) { ) numAccs := int64(len(simState.Accounts)) - totalSupply := sdk.NewInt(simState.InitialStake * (numAccs + simState.NumBonded)) - supply := sdk.NewCoins(sdk.NewCoin(sdk.DefaultBondDenom, totalSupply)) + + supply := GenesisCoins(sdk.DefaultBondDenom, simState.InitialStake) + for i, coin := range supply { + supply[i] = sdk.NewCoin(coin.Denom, coin.Amount.MulRaw(numAccs)) + } + supply = supply.Add(sdk.NewInt64Coin(sdk.DefaultBondDenom, simState.InitialStake*simState.NumBonded)) bankGenesis := types.GenesisState{ Params: types.Params{ diff --git a/x/bank/simulation/genesis_test.go b/x/bank/simulation/genesis_test.go index fc31ca38e9ef..4e4f28de77e6 100644 --- a/x/bank/simulation/genesis_test.go +++ b/x/bank/simulation/genesis_test.go @@ -42,8 +42,8 @@ func TestRandomizedGenState(t *testing.T) { require.Len(t, bankGenesis.Params.GetSendEnabled(), 1) require.Len(t, bankGenesis.Balances, 3) require.Equal(t, "cosmos1ghekyjucln7y67ntx7cf27m9dpuxxemn4c8g4r", bankGenesis.Balances[2].GetAddress().String()) - require.Equal(t, "1000stake", bankGenesis.Balances[2].GetCoins().String()) - require.Equal(t, "6000stake", bankGenesis.Supply.String()) + require.Equal(t, simulation.GenesisCoins("stake", 1000).String(), bankGenesis.Balances[2].GetCoins().String()) + require.Equal(t, "6000stake,3000stake00,3000stake01,3000stake02,3000stake03", bankGenesis.Supply.String()) } // TestRandomizedGenState tests abnormal scenarios of applying RandomizedGenState.