github.com/fibonacci-chain/fbc@v0.0.0-20231124064014-c7636198c1e9/libs/cosmos-sdk/x/crisis/spec/02_messages.md (about)

     1  <!--
     2  order: 2
     3  -->
     4  
     5  # Messages
     6  
     7  In this section we describe the processing of the crisis messages and the
     8  corresponding updates to the state. 
     9  
    10  ## MsgVerifyInvariant
    11  
    12  Blockchain invariants can be checked using the `MsgVerifyInvariant` message. 
    13  
    14  ```go
    15  type MsgVerifyInvariant struct {
    16  	Sender         sdk.AccAddress 
    17  	InvariantRoute string
    18  }
    19  ```
    20  
    21  This message is expected to fail if: 
    22   - the sender does not have enough coins for the constant fee
    23   - the invariant route is not registered 
    24  
    25  This message checks the invariant provided, and if the invariant is broken it
    26  panics, halting the blockchain. If the invariant is broken, the constant fee is
    27  never deducted as the transaction is never committed to a block (equivalent to
    28  being refunded). However, if the invariant is not broken, the constant fee will
    29  not be refunded.