diff --git a/PENDING.md b/PENDING.md index 25cf75bc64..141df2a9be 100644 --- a/PENDING.md +++ b/PENDING.md @@ -24,6 +24,7 @@ FEATURES * Gaia * SDK + * [simulator] \#2682 MsgEditValidator now looks at the validator's max rate, thus it now succeeds a significant portion of the time * Tendermint diff --git a/cmd/gaia/app/genesis_test.go b/cmd/gaia/app/genesis_test.go index 579ad93a85..1b1c196469 100644 --- a/cmd/gaia/app/genesis_test.go +++ b/cmd/gaia/app/genesis_test.go @@ -92,10 +92,8 @@ func TestGaiaAppGenState(t *testing.T) { func makeMsg(name string, pk crypto.PubKey) auth.StdTx { desc := stake.NewDescription(name, "", "", "") comm := stakeTypes.CommissionMsg{} - msg := stake.NewMsgCreateValidator( - sdk.ValAddress(pk.Address()), pk, - sdk.NewInt64Coin(bondDenom, 50), desc, comm, - ) + msg := stake.NewMsgCreateValidator(sdk.ValAddress(pk.Address()), pk, sdk.NewInt64Coin(bondDenom, + 50), desc, comm) return auth.NewStdTx([]sdk.Msg{msg}, auth.StdFee{}, nil, "") } diff --git a/x/stake/simulation/msgs.go b/x/stake/simulation/msgs.go index ec2dffd927..dda344ffbd 100644 --- a/x/stake/simulation/msgs.go +++ b/x/stake/simulation/msgs.go @@ -26,11 +26,11 @@ func SimulateMsgCreateValidator(m auth.AccountKeeper, k stake.Keeper) simulation Moniker: simulation.RandStringOfLength(r, 10), } - maxCommission := sdk.NewInt(10) + maxCommission := sdk.NewDecWithPrec(r.Int63n(1000), 3) commission := stake.NewCommissionMsg( - sdk.NewDecWithPrec(simulation.RandomAmount(r, maxCommission).Int64(), 1), - sdk.NewDecWithPrec(simulation.RandomAmount(r, maxCommission).Int64(), 1), - sdk.NewDecWithPrec(simulation.RandomAmount(r, maxCommission).Int64(), 1), + simulation.RandomDecAmount(r, maxCommission), + maxCommission, + simulation.RandomDecAmount(r, maxCommission), ) acc := simulation.RandomAcc(r, accs) @@ -85,11 +85,10 @@ func SimulateMsgEditValidator(k stake.Keeper) simulation.Operation { Details: simulation.RandStringOfLength(r, 10), } - maxCommission := sdk.NewInt(10) - newCommissionRate := sdk.NewDecWithPrec(simulation.RandomAmount(r, maxCommission).Int64(), 1) - val := keeper.RandomValidator(r, k, ctx) address := val.GetOperator() + newCommissionRate := simulation.RandomDecAmount(r, val.Commission.MaxRate) + msg := stake.MsgEditValidator{ Description: description, ValidatorAddr: address, diff --git a/x/stake/types/commission.go b/x/stake/types/commission.go index b76971faa0..730bb67413 100644 --- a/x/stake/types/commission.go +++ b/x/stake/types/commission.go @@ -11,7 +11,7 @@ type ( // Commission defines a commission parameters for a given validator. Commission struct { Rate sdk.Dec `json:"rate"` // the commission rate charged to delegators - MaxRate sdk.Dec `json:"max_rate"` // maximum commission rate which validator can ever charge + MaxRate sdk.Dec `json:"max_rate"` // maximum commission rate which this validator can ever charge MaxChangeRate sdk.Dec `json:"max_change_rate"` // maximum daily increase of the validator commission UpdateTime time.Time `json:"update_time"` // the last time the commission rate was changed }