ClientState from Tendermint tracks the current validator set, latest height, and a possible frozen height.

interface ClientState {
    allowUpdateAfterExpiry: boolean;
    allowUpdateAfterMisbehaviour: boolean;
    chainId: string;
    frozenHeight: undefined | Height;
    latestHeight: undefined | Height;
    maxClockDrift: undefined | Duration;
    proofSpecs: ProofSpec[];
    trustLevel: undefined | Fraction;
    trustingPeriod: undefined | Duration;
    unbondingPeriod: undefined | Duration;
    upgradePath: string[];
}

Properties

allowUpdateAfterExpiry: boolean

This flag, when set to true, will allow governance to recover a client which has expired

allowUpdateAfterMisbehaviour: boolean

This flag, when set to true, will allow governance to unfreeze a client whose chain has experienced a misbehaviour event

chainId: string
frozenHeight: undefined | Height

Block height when the client was frozen due to a misbehaviour

latestHeight: undefined | Height

Latest height the client was updated to

maxClockDrift: undefined | Duration

defines how much new (untrusted) header's Time can drift into the future.

proofSpecs: ProofSpec[]

Proof specifications used in verifying counterparty state

trustLevel: undefined | Fraction
trustingPeriod: undefined | Duration

duration of the period since the LastestTimestamp during which the submitted headers are valid for upgrade

unbondingPeriod: undefined | Duration

duration of the staking unbonding period

upgradePath: string[]

Path at which next upgraded client will be committed. Each element corresponds to the key for a single CommitmentProof in the chained proof. NOTE: ClientState must stored under {upgradePath}/{upgradeHeight}/clientState ConsensusState must be stored under {upgradepath}/{upgradeHeight}/consensusState For SDK chains using the default upgrade module, upgrade_path should be []string{"upgrade", "upgradedIBCState"}`