mirror of
https://github.com/hl-archive-node/nanoreth.git
synced 2025-12-06 10:59:55 +00:00
chore(provider): move state_provider_from_state to BlockState impl (#11777)
This commit is contained in:
@ -504,20 +504,6 @@ impl CanonicalInMemoryState {
|
||||
self.inner.canon_state_notification_sender.send(event).ok();
|
||||
}
|
||||
|
||||
/// Return state provider with reference to in-memory blocks that overlay database state.
|
||||
///
|
||||
/// This merges the state of all blocks that are part of the chain that the requested block is
|
||||
/// the head of. This includes all blocks that connect back to the canonical block on disk.
|
||||
pub fn state_provider_from_state(
|
||||
&self,
|
||||
state: &BlockState,
|
||||
historical: StateProviderBox,
|
||||
) -> MemoryOverlayStateProvider {
|
||||
let in_memory = state.chain().into_iter().map(|block_state| block_state.block()).collect();
|
||||
|
||||
MemoryOverlayStateProvider::new(historical, in_memory)
|
||||
}
|
||||
|
||||
/// Return state provider with reference to in-memory blocks that overlay database state.
|
||||
///
|
||||
/// This merges the state of all blocks that are part of the chain that the requested block is
|
||||
@ -723,6 +709,16 @@ impl BlockState {
|
||||
pub fn iter(self: Arc<Self>) -> impl Iterator<Item = Arc<Self>> {
|
||||
std::iter::successors(Some(self), |state| state.parent.clone())
|
||||
}
|
||||
|
||||
/// Return state provider with reference to in-memory blocks that overlay database state.
|
||||
///
|
||||
/// This merges the state of all blocks that are part of the chain that the this block is
|
||||
/// the head of. This includes all blocks that connect back to the canonical block on disk.
|
||||
pub fn state_provider(&self, historical: StateProviderBox) -> MemoryOverlayStateProvider {
|
||||
let in_memory = self.chain().into_iter().map(|block_state| block_state.block()).collect();
|
||||
|
||||
MemoryOverlayStateProvider::new(historical, in_memory)
|
||||
}
|
||||
}
|
||||
|
||||
/// Represents an executed block stored in-memory.
|
||||
|
||||
Reference in New Issue
Block a user