diff --git a/crates/storage/provider/src/providers/chain_info.rs b/crates/storage/provider/src/providers/chain_info.rs index 21afc4bc4ea3c..bac8360287809 100644 --- a/crates/storage/provider/src/providers/chain_info.rs +++ b/crates/storage/provider/src/providers/chain_info.rs @@ -19,8 +19,8 @@ pub(crate) struct ChainInfoTracker { impl ChainInfoTracker { /// Create a new chain info container for the given canonical head. pub(crate) fn new(head: SealedHeader, finalized: SealedHeader) -> Self { - let (finalized_block, _) = watch::channel(Some(finalized)); - let (safe_block, _) = watch::channel(None); + let (finalized_block, _) = watch::channel(Some(finalized.clone())); + let (safe_block, _) = watch::channel(Some(finalized)); Self { inner: Arc::new(ChainInfoInner { diff --git a/crates/storage/provider/src/providers/mod.rs b/crates/storage/provider/src/providers/mod.rs index afb03b9331499..a519874e3f7fb 100644 --- a/crates/storage/provider/src/providers/mod.rs +++ b/crates/storage/provider/src/providers/mod.rs @@ -117,19 +117,19 @@ where let best: ChainInfo = provider.chain_info()?; let latest_header = provider .header_by_number(best.best_number)? - .ok_or_else(|| ProviderError::HeaderNotFound(best.best_number.into()))?; + .ok_or(ProviderError::HeaderNotFound(best.best_number.into()))?; let finalized_block_number = provider.last_finalized_block_number()?; let finalized_header = provider - .header_by_number(finalized_block_number)? - .ok_or_else(|| ProviderError::HeaderNotFound(finalized_block_number.into()))?; + .sealed_header(finalized_block_number)? + .ok_or(ProviderError::HeaderNotFound(finalized_block_number.into()))?; drop(provider); Ok(Self::with_block_information( database, tree, latest_header.seal(best.best_hash), - finalized_header.seal_slow(), + finalized_header, )) } }