From 762070fc602752b6cbfaf8a8bcb04a4f1fb6a5a5 Mon Sep 17 00:00:00 2001 From: Alexander Pastushenko Date: Tue, 15 Oct 2024 18:56:00 +0400 Subject: [PATCH] Refactor handling reorg period in Cosmos chain --- .../main/chains/hyperlane-cosmos/src/utils.rs | 19 ++++++++++++------- 1 file changed, 12 insertions(+), 7 deletions(-) diff --git a/rust/main/chains/hyperlane-cosmos/src/utils.rs b/rust/main/chains/hyperlane-cosmos/src/utils.rs index 31213dd306..39db9e6cb2 100644 --- a/rust/main/chains/hyperlane-cosmos/src/utils.rs +++ b/rust/main/chains/hyperlane-cosmos/src/utils.rs @@ -31,13 +31,18 @@ pub(crate) async fn get_block_height_for_lag( provider: &WasmGrpcProvider, lag: &ReorgPeriod, ) -> ChainResult> { - let block_height = if !lag.is_none() { - let lag = lag.as_blocks()?; - let tip = provider.latest_block_height().await?; - let block_height = tip - lag as u64; - Some(block_height) - } else { - None + let block_height = match lag { + ReorgPeriod::Blocks(blocks) => { + let tip = provider.latest_block_height().await?; + let block_height = tip - blocks.get() as u64; + Some(block_height) + } + ReorgPeriod::None => None, + ReorgPeriod::Tag(_) => { + return Err(ChainCommunicationError::CustomError( + "Cosmos does not support reorg period as a tag".into(), + )) + } }; Ok(block_height)