From cc4bff4625c164cd3d70ceccc9cb889c7f3dd69a Mon Sep 17 00:00:00 2001 From: yito88 Date: Thu, 8 Aug 2024 22:46:44 +0200 Subject: [PATCH] add InvalidUpgradePath --- .../ics07-tendermint/src/client_state/common.rs | 15 ++++++++------- ibc-core/ics02-client/types/src/error.rs | 2 ++ 2 files changed, 10 insertions(+), 7 deletions(-) diff --git a/ibc-clients/ics07-tendermint/src/client_state/common.rs b/ibc-clients/ics07-tendermint/src/client_state/common.rs index 3ddbb9d38..b0af93e68 100644 --- a/ibc-clients/ics07-tendermint/src/client_state/common.rs +++ b/ibc-clients/ics07-tendermint/src/client_state/common.rs @@ -56,10 +56,10 @@ impl ClientStateCommon for ClientState { let upgrade_path = &self.inner().upgrade_path; let (upgrade_path_prefix, upgrade_path) = match upgrade_path.len() { 0 => { - return Err(ClientError::ClientSpecific { - description: "cannot upgrade client as no upgrade path has been set" - .to_string(), - }); + return Err(UpgradeClientError::InvalidUpgradePath { + reason: "no upgrade path has been set".to_string(), + } + .into()); } 1 => (CommitmentPrefix::empty(), upgrade_path[0].clone()), 2 => ( @@ -67,9 +67,10 @@ impl ClientStateCommon for ClientState { upgrade_path[1].clone(), ), _ => { - return Err(ClientError::ClientSpecific { - description: "upgrade client failed: upgrade path is too long".to_string(), - }) + return Err(UpgradeClientError::InvalidUpgradePath { + reason: "upgrade path is too long".to_string(), + } + .into()); } }; diff --git a/ibc-core/ics02-client/types/src/error.rs b/ibc-core/ics02-client/types/src/error.rs index 14e86274e..c5ea46242 100644 --- a/ibc-core/ics02-client/types/src/error.rs +++ b/ibc-core/ics02-client/types/src/error.rs @@ -151,6 +151,8 @@ pub enum UpgradeClientError { upgraded_height: Height, client_height: Height, }, + /// Invalid upgrade path: `{reason}` + InvalidUpgradePath { reason: String }, /// invalid upgrade proposal: `{reason}` InvalidUpgradeProposal { reason: String }, /// invalid upgrade plan: `{reason}`