diff --git a/CHANGELOG.md b/CHANGELOG.md index 230a2652d9..6828a2fc0b 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -45,6 +45,7 @@ Ref: https://keepachangelog.com/en/1.0.0/ * (feat) [\#1121](https://github.com/Finschia/finschia-sdk/pull/1121) Add update-censorship cmd to x/foundation cli * (server) [#1153](https://github.com/Finschia/finschia-sdk/pull/1153) remove grpc replace directive * (crypto) [\#1163](https://github.com/Finschia/finschia-sdk/pull/1163) Update some secp256k1 logics with latest `dcrec` +* (x/crisis) [#1167](https://github.com/Finschia/finschia-sdk/pull/1167) Use `CacheContext()` in `AssertInvariants()` ### Bug Fixes * chore(deps) [\#1141](https://github.com/Finschia/finschia-sdk/pull/1141) Bump github.com/cosmos/ledger-cosmos-go from 0.12.2 to 0.13.2 to fix ledger signing issue diff --git a/x/crisis/keeper/keeper.go b/x/crisis/keeper/keeper.go index 258e7167b0..2318628128 100644 --- a/x/crisis/keeper/keeper.go +++ b/x/crisis/keeper/keeper.go @@ -76,7 +76,9 @@ func (k Keeper) AssertInvariants(ctx sdk.Context) { n := len(invarRoutes) for i, ir := range invarRoutes { logger.Info("asserting crisis invariants", "inv", fmt.Sprint(i+1, "/", n), "name", ir.FullRoute()) - if res, stop := ir.Invar(ctx); stop { + + invCtx, _ := ctx.CacheContext() + if res, stop := ir.Invar(invCtx); stop { // TODO: Include app name as part of context to allow for this to be // variable. panic(fmt.Errorf("invariant broken: %s\n"+ diff --git a/x/foundation/keeper/internal/invariants.go b/x/foundation/keeper/internal/invariants.go index 3c6c19b9ef..b2abf2e0ea 100644 --- a/x/foundation/keeper/internal/invariants.go +++ b/x/foundation/keeper/internal/invariants.go @@ -25,9 +25,6 @@ func RegisterInvariants(ir sdk.InvariantRegistry, k Keeper) { func ModuleAccountInvariant(k Keeper) sdk.Invariant { return func(ctx sdk.Context) (string, bool) { - // cache, we don't want to write changes - ctx, _ = ctx.CacheContext() - treasuryAcc := k.authKeeper.GetModuleAccount(ctx, foundation.TreasuryName) balance := k.bankKeeper.GetAllBalances(ctx, treasuryAcc.GetAddress()) @@ -41,14 +38,11 @@ func ModuleAccountInvariant(k Keeper) sdk.Invariant { func TotalWeightInvariant(k Keeper) sdk.Invariant { return func(ctx sdk.Context) (string, bool) { - // cache, we don't want to write changes - ctx, _ = ctx.CacheContext() - expected := k.GetFoundationInfo(ctx).TotalWeight - real := sdk.NewDec(int64(len(k.GetMembers(ctx)))) + actual := sdk.NewDec(int64(len(k.GetMembers(ctx)))) - msg := fmt.Sprintf("total weight of foundation; expected %s, got %s\n", expected, real) - broken := !real.Equal(expected) + msg := fmt.Sprintf("total weight of foundation; expected %s, got %s\n", expected, actual) + broken := !actual.Equal(expected) return sdk.FormatInvariant(foundation.ModuleName, totalWeightInvariant, msg), broken } @@ -56,9 +50,6 @@ func TotalWeightInvariant(k Keeper) sdk.Invariant { func ProposalInvariant(k Keeper) sdk.Invariant { return func(ctx sdk.Context) (string, bool) { - // cache, we don't want to write changes - ctx, _ = ctx.CacheContext() - version := k.GetFoundationInfo(ctx).Version msg := fmt.Sprintf("current foundation version; %d\n", version) broken := false