github.com/cosmos/cosmos-sdk@v0.50.10/x/mint/simulation/proposals.go (about) 1 package simulation 2 3 import ( 4 "math/rand" 5 6 sdkmath "cosmossdk.io/math" 7 8 sdk "github.com/cosmos/cosmos-sdk/types" 9 "github.com/cosmos/cosmos-sdk/types/address" 10 simtypes "github.com/cosmos/cosmos-sdk/types/simulation" 11 "github.com/cosmos/cosmos-sdk/x/mint/types" 12 "github.com/cosmos/cosmos-sdk/x/simulation" 13 ) 14 15 // Simulation operation weights constants 16 const ( 17 DefaultWeightMsgUpdateParams int = 100 18 19 OpWeightMsgUpdateParams = "op_weight_msg_update_params" 20 ) 21 22 // ProposalMsgs defines the module weighted proposals' contents 23 func ProposalMsgs() []simtypes.WeightedProposalMsg { 24 return []simtypes.WeightedProposalMsg{ 25 simulation.NewWeightedProposalMsg( 26 OpWeightMsgUpdateParams, 27 DefaultWeightMsgUpdateParams, 28 SimulateMsgUpdateParams, 29 ), 30 } 31 } 32 33 // SimulateMsgUpdateParams returns a random MsgUpdateParams 34 func SimulateMsgUpdateParams(r *rand.Rand, _ sdk.Context, _ []simtypes.Account) sdk.Msg { 35 // use the default gov module account address as authority 36 var authority sdk.AccAddress = address.Module("gov") 37 38 params := types.DefaultParams() 39 params.BlocksPerYear = uint64(simtypes.RandIntBetween(r, 1, 1000000)) 40 params.GoalBonded = sdkmath.LegacyNewDecWithPrec(int64(simtypes.RandIntBetween(r, 1, 100)), 2) 41 params.InflationMin = sdkmath.LegacyNewDecWithPrec(int64(simtypes.RandIntBetween(r, 1, 50)), 2) 42 params.InflationMax = sdkmath.LegacyNewDecWithPrec(int64(simtypes.RandIntBetween(r, 50, 100)), 2) 43 params.InflationRateChange = sdkmath.LegacyNewDecWithPrec(int64(simtypes.RandIntBetween(r, 1, 100)), 2) 44 params.MintDenom = simtypes.RandStringOfLength(r, 10) 45 46 return &types.MsgUpdateParams{ 47 Authority: authority.String(), 48 Params: params, 49 } 50 }