From d147a2093ec6d0a463610292e30a91fced6c44d7 Mon Sep 17 00:00:00 2001 From: Roman Krasiuk Date: Fri, 7 Feb 2025 15:30:32 +0100 Subject: [PATCH] fix(provider): fix pending block retrieval in `find_block_by_hash` (#14303) --- crates/storage/provider/src/providers/consistent.rs | 13 ++++++------- 1 file changed, 6 insertions(+), 7 deletions(-) diff --git a/crates/storage/provider/src/providers/consistent.rs b/crates/storage/provider/src/providers/consistent.rs index 4d47cc23d..1bd0fc03c 100644 --- a/crates/storage/provider/src/providers/consistent.rs +++ b/crates/storage/provider/src/providers/consistent.rs @@ -797,22 +797,21 @@ impl BlockReader for ConsistentProvider { source: BlockSource, ) -> ProviderResult> { if matches!(source, BlockSource::Canonical | BlockSource::Any) { - return self.get_in_memory_or_storage_by_block( + if let Some(block) = self.get_in_memory_or_storage_by_block( hash.into(), |db_provider| db_provider.find_block_by_hash(hash, BlockSource::Canonical), |block_state| Ok(Some(block_state.block_ref().recovered_block().clone_block())), - ) + )? { + return Ok(Some(block)) + } } if matches!(source, BlockSource::Pending | BlockSource::Any) { - if let Some(block) = self + return Ok(self .canonical_in_memory_state .pending_block() .filter(|b| b.hash() == hash) - .map(|b| b.into_block()) - { - return Ok(Some(block)) - } + .map(|b| b.into_block())) } Ok(None)