forked from cerc-io/laconicd-deprecated
e90b21bc8e
1. add bond,auction, nameserivce module 2. update to v0.12.2 ethermint version 3. fix the test cases 4. add gql server
38 lines
1.1 KiB
Go
38 lines
1.1 KiB
Go
package keeper
|
|
|
|
import (
|
|
"fmt"
|
|
sdk "github.com/cosmos/cosmos-sdk/types"
|
|
"github.com/tharsis/ethermint/x/bond/types"
|
|
)
|
|
|
|
// RegisterInvariants registers all bond invariants
|
|
func RegisterInvariants(ir sdk.InvariantRegistry, k Keeper) {
|
|
ir.RegisterRoute(types.ModuleName, "module-account", ModuleAccountInvariant(k))
|
|
}
|
|
|
|
// ModuleAccountInvariant checks that the 'bond' module account balance is non-negative.
|
|
func ModuleAccountInvariant(k Keeper) sdk.Invariant {
|
|
return func(ctx sdk.Context) (string, bool) {
|
|
moduleAddress := k.accountKeeper.GetModuleAddress(types.ModuleName)
|
|
balances := k.bankKeeper.GetAllBalances(ctx, moduleAddress)
|
|
for _, balance := range balances {
|
|
if balance.IsNegative() {
|
|
return sdk.FormatInvariant(
|
|
types.ModuleName,
|
|
"module-account",
|
|
fmt.Sprintf("Module account '%s' has negative balance.", types.ModuleName)),
|
|
true
|
|
}
|
|
}
|
|
return "", false
|
|
}
|
|
}
|
|
|
|
// AllInvariants runs all invariants of the bonds module.
|
|
func AllInvariants(k Keeper) sdk.Invariant {
|
|
return func(ctx sdk.Context) (string, bool) {
|
|
return ModuleAccountInvariant(k)(ctx)
|
|
}
|
|
}
|