Skip to content

Commit 89b2350

Browse files
refactor: unify pending_block fn (#16596)
1 parent 5eb0789 commit 89b2350

File tree

10 files changed

+14
-61
lines changed

10 files changed

+14
-61
lines changed

crates/rpc/rpc-eth-api/src/helpers/block.rs

Lines changed: 2 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -233,10 +233,8 @@ pub trait LoadBlock:
233233
async move {
234234
if block_id.is_pending() {
235235
// Pending block can be fetched directly without need for caching
236-
if let Some(pending_block) = self
237-
.provider()
238-
.pending_block_with_senders()
239-
.map_err(Self::Error::from_eth_err)?
236+
if let Some(pending_block) =
237+
self.provider().pending_block().map_err(Self::Error::from_eth_err)?
240238
{
241239
return Ok(Some(Arc::new(pending_block)));
242240
}

crates/rpc/rpc-eth-api/src/helpers/pending_block.rs

Lines changed: 1 addition & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -76,9 +76,7 @@ pub trait LoadPendingBlock:
7676
>,
7777
Self::Error,
7878
> {
79-
if let Some(block) =
80-
self.provider().pending_block_with_senders().map_err(Self::Error::from_eth_err)?
81-
{
79+
if let Some(block) = self.provider().pending_block().map_err(Self::Error::from_eth_err)? {
8280
if let Some(receipts) = self
8381
.provider()
8482
.receipts_by_block(block.hash().into())

crates/storage/provider/src/providers/blockchain_provider.rs

Lines changed: 2 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -295,11 +295,7 @@ impl<N: ProviderNodeTypes> BlockReader for BlockchainProvider<N> {
295295
self.consistent_provider()?.block(id)
296296
}
297297

298-
fn pending_block(&self) -> ProviderResult<Option<SealedBlock<Self::Block>>> {
299-
Ok(self.canonical_in_memory_state.pending_block())
300-
}
301-
302-
fn pending_block_with_senders(&self) -> ProviderResult<Option<RecoveredBlock<Self::Block>>> {
298+
fn pending_block(&self) -> ProviderResult<Option<RecoveredBlock<Self::Block>>> {
303299
Ok(self.canonical_in_memory_state.pending_recovered_block())
304300
}
305301

@@ -1205,10 +1201,9 @@ mod tests {
12051201
});
12061202

12071203
// Assertions related to the pending block
1208-
assert_eq!(provider.pending_block()?, Some(block.clone()));
12091204

12101205
assert_eq!(
1211-
provider.pending_block_with_senders()?,
1206+
provider.pending_block()?,
12121207
Some(RecoveredBlock::new_sealed(block.clone(), block.senders().unwrap()))
12131208
);
12141209

crates/storage/provider/src/providers/consistent.rs

Lines changed: 1 addition & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -825,11 +825,7 @@ impl<N: ProviderNodeTypes> BlockReader for ConsistentProvider<N> {
825825
)
826826
}
827827

828-
fn pending_block(&self) -> ProviderResult<Option<SealedBlock<Self::Block>>> {
829-
Ok(self.canonical_in_memory_state.pending_block())
830-
}
831-
832-
fn pending_block_with_senders(&self) -> ProviderResult<Option<RecoveredBlock<Self::Block>>> {
828+
fn pending_block(&self) -> ProviderResult<Option<RecoveredBlock<Self::Block>>> {
833829
Ok(self.canonical_in_memory_state.pending_recovered_block())
834830
}
835831

crates/storage/provider/src/providers/database/mod.rs

Lines changed: 1 addition & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -365,14 +365,10 @@ impl<N: ProviderNodeTypes> BlockReader for ProviderFactory<N> {
365365
self.provider()?.block(id)
366366
}
367367

368-
fn pending_block(&self) -> ProviderResult<Option<SealedBlock<Self::Block>>> {
368+
fn pending_block(&self) -> ProviderResult<Option<RecoveredBlock<Self::Block>>> {
369369
self.provider()?.pending_block()
370370
}
371371

372-
fn pending_block_with_senders(&self) -> ProviderResult<Option<RecoveredBlock<Self::Block>>> {
373-
self.provider()?.pending_block_with_senders()
374-
}
375-
376372
fn pending_block_and_receipts(
377373
&self,
378374
) -> ProviderResult<Option<(SealedBlock<Self::Block>, Vec<Self::Receipt>)>> {

crates/storage/provider/src/providers/database/provider.rs

Lines changed: 1 addition & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -1191,12 +1191,7 @@ impl<TX: DbTx + 'static, N: NodeTypesForProvider> BlockReader for DatabaseProvid
11911191

11921192
Ok(None)
11931193
}
1194-
1195-
fn pending_block(&self) -> ProviderResult<Option<SealedBlock<Self::Block>>> {
1196-
Ok(None)
1197-
}
1198-
1199-
fn pending_block_with_senders(&self) -> ProviderResult<Option<RecoveredBlock<Self::Block>>> {
1194+
fn pending_block(&self) -> ProviderResult<Option<RecoveredBlock<Self::Block>>> {
12001195
Ok(None)
12011196
}
12021197

crates/storage/provider/src/providers/static_file/manager.rs

Lines changed: 1 addition & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -1644,12 +1644,7 @@ impl<N: FullNodePrimitives<SignedTx: Value, Receipt: Value, BlockHeader: Value>>
16441644
Err(ProviderError::UnsupportedProvider)
16451645
}
16461646

1647-
fn pending_block(&self) -> ProviderResult<Option<SealedBlock<Self::Block>>> {
1648-
// Required data not present in static_files
1649-
Err(ProviderError::UnsupportedProvider)
1650-
}
1651-
1652-
fn pending_block_with_senders(&self) -> ProviderResult<Option<RecoveredBlock<Self::Block>>> {
1647+
fn pending_block(&self) -> ProviderResult<Option<RecoveredBlock<Self::Block>>> {
16531648
// Required data not present in static_files
16541649
Err(ProviderError::UnsupportedProvider)
16551650
}

crates/storage/provider/src/test_utils/mock.rs

Lines changed: 1 addition & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -669,11 +669,7 @@ impl<ChainSpec: EthChainSpec + Send + Sync + 'static> BlockReader
669669
}
670670
}
671671

672-
fn pending_block(&self) -> ProviderResult<Option<SealedBlock<Self::Block>>> {
673-
Ok(None)
674-
}
675-
676-
fn pending_block_with_senders(&self) -> ProviderResult<Option<RecoveredBlock<Self::Block>>> {
672+
fn pending_block(&self) -> ProviderResult<Option<RecoveredBlock<Self::Block>>> {
677673
Ok(None)
678674
}
679675

crates/storage/storage-api/src/block.rs

Lines changed: 3 additions & 15 deletions
Original file line numberDiff line numberDiff line change
@@ -78,17 +78,11 @@ pub trait BlockReader:
7878
/// Returns `None` if block is not found.
7979
fn block(&self, id: BlockHashOrNumber) -> ProviderResult<Option<Self::Block>>;
8080

81-
/// Returns the pending block if available
82-
///
83-
/// Note: This returns a [`SealedBlock`] because it's expected that this is sealed by the
84-
/// provider and the caller does not know the hash.
85-
fn pending_block(&self) -> ProviderResult<Option<SealedBlock<Self::Block>>>;
86-
8781
/// Returns the pending block if available
8882
///
8983
/// Note: This returns a [`RecoveredBlock`] because it's expected that this is sealed by
9084
/// the provider and the caller does not know the hash.
91-
fn pending_block_with_senders(&self) -> ProviderResult<Option<RecoveredBlock<Self::Block>>>;
85+
fn pending_block(&self) -> ProviderResult<Option<RecoveredBlock<Self::Block>>>;
9286

9387
/// Returns the pending block and receipts if available.
9488
#[expect(clippy::type_complexity)]
@@ -165,12 +159,9 @@ impl<T: BlockReader> BlockReader for Arc<T> {
165159
fn block(&self, id: BlockHashOrNumber) -> ProviderResult<Option<Self::Block>> {
166160
T::block(self, id)
167161
}
168-
fn pending_block(&self) -> ProviderResult<Option<SealedBlock<Self::Block>>> {
162+
fn pending_block(&self) -> ProviderResult<Option<RecoveredBlock<Self::Block>>> {
169163
T::pending_block(self)
170164
}
171-
fn pending_block_with_senders(&self) -> ProviderResult<Option<RecoveredBlock<Self::Block>>> {
172-
T::pending_block_with_senders(self)
173-
}
174165
fn pending_block_and_receipts(
175166
&self,
176167
) -> ProviderResult<Option<(SealedBlock<Self::Block>, Vec<Self::Receipt>)>> {
@@ -226,12 +217,9 @@ impl<T: BlockReader> BlockReader for &T {
226217
fn block(&self, id: BlockHashOrNumber) -> ProviderResult<Option<Self::Block>> {
227218
T::block(self, id)
228219
}
229-
fn pending_block(&self) -> ProviderResult<Option<SealedBlock<Self::Block>>> {
220+
fn pending_block(&self) -> ProviderResult<Option<RecoveredBlock<Self::Block>>> {
230221
T::pending_block(self)
231222
}
232-
fn pending_block_with_senders(&self) -> ProviderResult<Option<RecoveredBlock<Self::Block>>> {
233-
T::pending_block_with_senders(self)
234-
}
235223
fn pending_block_and_receipts(
236224
&self,
237225
) -> ProviderResult<Option<(SealedBlock<Self::Block>, Vec<Self::Receipt>)>> {

crates/storage/storage-api/src/noop.rs

Lines changed: 1 addition & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -163,11 +163,7 @@ impl<C: Send + Sync, N: NodePrimitives> BlockReader for NoopProvider<C, N> {
163163
Ok(None)
164164
}
165165

166-
fn pending_block(&self) -> ProviderResult<Option<SealedBlock<Self::Block>>> {
167-
Ok(None)
168-
}
169-
170-
fn pending_block_with_senders(&self) -> ProviderResult<Option<RecoveredBlock<Self::Block>>> {
166+
fn pending_block(&self) -> ProviderResult<Option<RecoveredBlock<Self::Block>>> {
171167
Ok(None)
172168
}
173169

0 commit comments

Comments
 (0)