refactor(evidence)!: use collections for state management (#16336)

Co-authored-by: unknown unknown <unknown@unknown>
This commit is contained in:
testinginprod
2023-05-30 11:57:10 +00:00
committed by GitHub
co-authored by unknown unknown
parent 46c8ec8fc9
commit 28178f7ca6
13 changed files with 85 additions and 300 deletions
@@ -140,10 +140,10 @@ func initFixture(t testing.TB) *fixture {
evidencetypes.RegisterMsgServer(integrationApp.MsgServiceRouter(), keeper.NewMsgServerImpl(*evidenceKeeper))
evidencetypes.RegisterQueryServer(integrationApp.QueryHelper(), keeper.NewQuerier(evidenceKeeper))
slashingKeeper.SetParams(sdkCtx, testutil.TestParams())
assert.NilError(t, slashingKeeper.SetParams(sdkCtx, testutil.TestParams()))
// set default staking params
stakingKeeper.SetParams(sdkCtx, stakingtypes.DefaultParams())
assert.NilError(t, stakingKeeper.SetParams(sdkCtx, stakingtypes.DefaultParams()))
return &fixture{
app: integrationApp,
@@ -171,14 +171,15 @@ func TestHandleDoubleSign(t *testing.T) {
selfDelegation := tstaking.CreateValidatorWithValPower(operatorAddr, val, power, true)
// execute end-blocker and verify validator attributes
f.stakingKeeper.EndBlocker(f.sdkCtx)
_, err := f.stakingKeeper.EndBlocker(f.sdkCtx)
assert.NilError(t, err)
assert.DeepEqual(t,
f.bankKeeper.GetAllBalances(ctx, sdk.AccAddress(operatorAddr)).String(),
sdk.NewCoins(sdk.NewCoin(stakingParams.BondDenom, initAmt.Sub(selfDelegation))).String(),
)
assert.DeepEqual(t, selfDelegation, f.stakingKeeper.Validator(ctx, operatorAddr).GetBondedTokens())
f.slashingKeeper.AddPubkey(f.sdkCtx, val)
assert.NilError(t, f.slashingKeeper.AddPubkey(f.sdkCtx, val))
info := slashingtypes.NewValidatorSigningInfo(sdk.ConsAddress(val.Address()), f.sdkCtx.BlockHeight(), int64(0), time.Unix(0, 0), false, int64(0))
f.slashingKeeper.SetValidatorSigningInfo(f.sdkCtx, sdk.ConsAddress(val.Address()), info)
@@ -199,7 +200,7 @@ func TestHandleDoubleSign(t *testing.T) {
})
ctx = ctx.WithCometInfo(nci)
f.evidenceKeeper.BeginBlocker(ctx.WithCometInfo(nci))
assert.NilError(t, f.evidenceKeeper.BeginBlocker(ctx.WithCometInfo(nci)))
// should be jailed and tombstoned
assert.Assert(t, f.stakingKeeper.Validator(ctx, operatorAddr).IsJailed())
@@ -210,7 +211,7 @@ func TestHandleDoubleSign(t *testing.T) {
assert.Assert(t, newTokens.LT(oldTokens))
// submit duplicate evidence
f.evidenceKeeper.BeginBlocker(ctx)
assert.NilError(t, f.evidenceKeeper.BeginBlocker(ctx))
// tokens should be the same (capped slash)
assert.Assert(t, f.stakingKeeper.Validator(ctx, operatorAddr).GetTokens().Equal(newTokens))
@@ -231,9 +232,11 @@ func TestHandleDoubleSign(t *testing.T) {
tstaking.Undelegate(sdk.AccAddress(operatorAddr), operatorAddr, totalBond, true)
// query evidence from store
evidences, err := f.evidenceKeeper.GetAllEvidence(ctx)
iter, err := f.evidenceKeeper.Evidences.Iterate(ctx, nil)
assert.NilError(t, err)
assert.Assert(t, len(evidences) == 1)
values, err := iter.Values()
assert.NilError(t, err)
assert.Assert(t, len(values) == 1)
}
func TestHandleDoubleSign_TooOld(t *testing.T) {
@@ -252,7 +255,8 @@ func TestHandleDoubleSign_TooOld(t *testing.T) {
amt := tstaking.CreateValidatorWithValPower(operatorAddr, val, power, true)
// execute end-blocker and verify validator attributes
f.stakingKeeper.EndBlocker(f.sdkCtx)
_, err := f.stakingKeeper.EndBlocker(f.sdkCtx)
assert.NilError(t, err)
assert.DeepEqual(t,
f.bankKeeper.GetAllBalances(ctx, sdk.AccAddress(operatorAddr)),
sdk.NewCoins(sdk.NewCoin(stakingParams.BondDenom, initAmt.Sub(amt))),
@@ -268,7 +272,7 @@ func TestHandleDoubleSign_TooOld(t *testing.T) {
}},
})
f.app.BaseApp.StoreConsensusParams(ctx, *simtestutil.DefaultConsensusParams)
assert.NilError(t, f.app.BaseApp.StoreConsensusParams(ctx, *simtestutil.DefaultConsensusParams))
cp := f.app.BaseApp.GetConsensusParams(ctx)
ctx = ctx.WithCometInfo(nci)
@@ -276,7 +280,7 @@ func TestHandleDoubleSign_TooOld(t *testing.T) {
ctx = ctx.WithBlockTime(ctx.BlockTime().Add(cp.Evidence.MaxAgeDuration + 1))
ctx = ctx.WithBlockHeight(ctx.BlockHeight() + cp.Evidence.MaxAgeNumBlocks + 1)
f.evidenceKeeper.BeginBlocker(ctx)
assert.NilError(t, f.evidenceKeeper.BeginBlocker(ctx))
assert.Assert(t, f.stakingKeeper.Validator(ctx, operatorAddr).IsJailed() == false)
assert.Assert(t, f.slashingKeeper.IsTombstoned(ctx, sdk.ConsAddress(val.Address())) == false)