Merge PR #2299: simulation: reduce number of failed governance msgs
This commit is contained in:
parent
65137f6331
commit
18d5b048a9
|
@ -51,7 +51,11 @@ func SimulateSubmittingVotingAndSlashingForProposal(k gov.Keeper, sk stake.Keepe
|
||||||
if err != nil {
|
if err != nil {
|
||||||
return "", nil, err
|
return "", nil, err
|
||||||
}
|
}
|
||||||
action = simulateHandleMsgSubmitProposal(msg, sk, handler, ctx, event)
|
action, ok := simulateHandleMsgSubmitProposal(msg, sk, handler, ctx, event)
|
||||||
|
// don't schedule votes if proposal failed
|
||||||
|
if !ok {
|
||||||
|
return action, nil, nil
|
||||||
|
}
|
||||||
proposalID := k.GetLastProposalID(ctx)
|
proposalID := k.GetLastProposalID(ctx)
|
||||||
// 2) Schedule operations for votes
|
// 2) Schedule operations for votes
|
||||||
// 2.1) first pick a number of people to vote.
|
// 2.1) first pick a number of people to vote.
|
||||||
|
@ -85,24 +89,25 @@ func SimulateMsgSubmitProposal(k gov.Keeper, sk stake.Keeper) simulation.Operati
|
||||||
if err != nil {
|
if err != nil {
|
||||||
return "", nil, err
|
return "", nil, err
|
||||||
}
|
}
|
||||||
action = simulateHandleMsgSubmitProposal(msg, sk, handler, ctx, event)
|
action, _ = simulateHandleMsgSubmitProposal(msg, sk, handler, ctx, event)
|
||||||
return action, nil, nil
|
return action, nil, nil
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
func simulateHandleMsgSubmitProposal(msg gov.MsgSubmitProposal, sk stake.Keeper, handler sdk.Handler, ctx sdk.Context, event func(string)) (action string) {
|
func simulateHandleMsgSubmitProposal(msg gov.MsgSubmitProposal, sk stake.Keeper, handler sdk.Handler, ctx sdk.Context, event func(string)) (action string, ok bool) {
|
||||||
ctx, write := ctx.CacheContext()
|
ctx, write := ctx.CacheContext()
|
||||||
result := handler(ctx, msg)
|
result := handler(ctx, msg)
|
||||||
if result.IsOK() {
|
ok = result.IsOK()
|
||||||
|
if ok {
|
||||||
// Update pool to keep invariants
|
// Update pool to keep invariants
|
||||||
pool := sk.GetPool(ctx)
|
pool := sk.GetPool(ctx)
|
||||||
pool.LooseTokens = pool.LooseTokens.Sub(sdk.NewDecFromInt(msg.InitialDeposit.AmountOf(denom)))
|
pool.LooseTokens = pool.LooseTokens.Sub(sdk.NewDecFromInt(msg.InitialDeposit.AmountOf(denom)))
|
||||||
sk.SetPool(ctx, pool)
|
sk.SetPool(ctx, pool)
|
||||||
write()
|
write()
|
||||||
}
|
}
|
||||||
event(fmt.Sprintf("gov/MsgSubmitProposal/%v", result.IsOK()))
|
event(fmt.Sprintf("gov/MsgSubmitProposal/%v", ok))
|
||||||
action = fmt.Sprintf("TestMsgSubmitProposal: ok %v, msg %s", result.IsOK(), msg.GetSignBytes())
|
action = fmt.Sprintf("TestMsgSubmitProposal: ok %v, msg %s", ok, msg.GetSignBytes())
|
||||||
return action
|
return
|
||||||
}
|
}
|
||||||
|
|
||||||
func simulationCreateMsgSubmitProposal(r *rand.Rand, sender crypto.PrivKey) (msg gov.MsgSubmitProposal, err error) {
|
func simulationCreateMsgSubmitProposal(r *rand.Rand, sender crypto.PrivKey) (msg gov.MsgSubmitProposal, err error) {
|
||||||
|
|
Loading…
Reference in New Issue