x/crisis
is deprecated as of Cosmos SDK v0.53 and will be removed in the next release.
Overview
The crisis module halts the blockchain under the circumstance that a blockchain invariant is broken. Invariants can be registered with the application during the application initialization process.Contents
State
ConstantFee
Due to the anticipated large gas cost requirement to verify an invariant (and potential to exceed the maximum allowable block gas limit) a constant fee is used instead of the standard gas consumption method. The constant fee is intended to be larger than the anticipated gas cost of running the invariant with the standard gas consumption method. The ConstantFee param is stored in the module params state with the prefix of0x01
, it can be updated with governance or the address with authority.
- Params:
mint/params -> legacy_amino(sdk.Coin)
Messages
In this section we describe the processing of the crisis messages and the corresponding updates to the state.MsgVerifyInvariant
Blockchain invariants can be checked using theMsgVerifyInvariant
message.
proto/cosmos/crisis/v1beta1/tx.proto
- the sender does not have enough coins for the constant fee
- the invariant route is not registered
Events
The crisis module emits the following events:Handlers
MsgVerifyInvariance
Type | Attribute Key | Attribute Value |
---|---|---|
invariant | route | {invariantRoute} |
message | module | crisis |
message | action | verify_invariant |
message | sender | {senderAddress} |
Parameters
The crisis module contains the following parameters:Key | Type | Example |
---|---|---|
ConstantFee | object (coin) | {“denom”:“uatom”,“amount”:“1000”} |
Client
CLI
A user can query and interact with thecrisis
module using the CLI.
Transactions
Thetx
commands allow users to interact with the crisis
module.
invariant-broken
Theinvariant-broken
command submits proof when an invariant was broken to halt the chain