mirror of
https://github.com/hl-archive-node/nanoreth.git
synced 2025-12-06 10:59:55 +00:00
feat: get BlockMeta table values from static file or database (#13844)
This commit is contained in:
@ -562,14 +562,29 @@ impl<N: ProviderNodeTypes> BlockBodyIndicesProvider for ProviderFactory<N> {
|
||||
&self,
|
||||
number: BlockNumber,
|
||||
) -> ProviderResult<Option<StoredBlockBodyIndices>> {
|
||||
self.provider()?.block_body_indices(number)
|
||||
self.static_file_provider.get_with_static_file_or_database(
|
||||
StaticFileSegment::BlockMeta,
|
||||
number,
|
||||
|static_file| static_file.block_body_indices(number),
|
||||
|| self.provider()?.block_body_indices(number),
|
||||
)
|
||||
}
|
||||
|
||||
fn block_body_indices_range(
|
||||
&self,
|
||||
range: RangeInclusive<BlockNumber>,
|
||||
) -> ProviderResult<Vec<StoredBlockBodyIndices>> {
|
||||
self.provider()?.block_body_indices_range(range)
|
||||
self.static_file_provider.get_range_with_static_file_or_database(
|
||||
StaticFileSegment::BlockMeta,
|
||||
*range.start()..*range.end() + 1,
|
||||
|static_file, range, _| {
|
||||
static_file.block_body_indices_range(range.start..=range.end.saturating_sub(1))
|
||||
},
|
||||
|range, _| {
|
||||
self.provider()?.block_body_indices_range(range.start..=range.end.saturating_sub(1))
|
||||
},
|
||||
|_| true,
|
||||
)
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user