diff --git a/e2e/e2e/client.py b/e2e/e2e/client.py index e1819f8fe1..fd71a5ae18 100644 --- a/e2e/e2e/client.py +++ b/e2e/e2e/client.py @@ -60,7 +60,7 @@ class AllowUpdate: @dataclass class ClientState: chain_id: ChainId - frozen_height: Height + frozen_height: Optional[Height] latest_height: Height max_clock_drift: Duration trust_level: TrustLevel diff --git a/modules/src/clients/ics07_tendermint/client_state.rs b/modules/src/clients/ics07_tendermint/client_state.rs index 196152adcc..eecfcae139 100644 --- a/modules/src/clients/ics07_tendermint/client_state.rs +++ b/modules/src/clients/ics07_tendermint/client_state.rs @@ -200,6 +200,15 @@ impl TryFrom for ClientState { .clone() .ok_or_else(Error::missing_trusting_period)?; + let frozen_height = raw.frozen_height.and_then(|raw_height| { + let height = raw_height.into(); + if height == Height::zero() { + None + } else { + Some(height) + } + }); + Ok(Self { chain_id: ChainId::from_string(raw.chain_id.as_str()), trust_level: trust_level @@ -224,7 +233,7 @@ impl TryFrom for ClientState { .latest_height .ok_or_else(Error::missing_latest_height)? .into(), - frozen_height: raw.frozen_height.map(|h| h.into()), + frozen_height, upgrade_path: raw.upgrade_path, allow_update: AllowUpdate { after_expiry: raw.allow_update_after_expiry,