CheckSubstituteAndUpdateState should be implemented to handle the proposal.
Implementing CheckSubstituteAndUpdateState
In the ClientStateinterface, we find:
- the substitute client is the same type as the subject client. For a reference implementation, please see the Tendermint light client.
- the provided substitute may be used to update the subject client. This may mean that certain parameters must remain unaltered. For example, a valid substitute Tendermint light client must NOT change the chain ID, trust level, max clock drift, unbonding period, proof specs or upgrade path. Please note that
AllowUpdateAfterMisbehaviourandAllowUpdateAfterExpiryhave been deprecated (see ADR 026 for more information).