Skip to main content

StorageChangeSetReader

Trait StorageChangeSetReader 

Source
pub trait StorageChangeSetReader: Send {
    // Required methods
    fn storage_changeset(
        &self,
        block_number: BlockNumber,
    ) -> ProviderResult<Vec<(BlockNumberAddress, StorageEntry)>>;
    fn get_storage_before_block(
        &self,
        block_number: BlockNumber,
        address: Address,
        storage_key: B256,
    ) -> ProviderResult<Option<StorageEntry>>;
    fn storage_changesets_range(
        &self,
        range: impl RangeBounds<BlockNumber>,
    ) -> ProviderResult<Vec<(BlockNumberAddress, StorageEntry)>>;
    fn storage_changeset_count(&self) -> ProviderResult<usize>;

    // Provided method
    fn storage_block_changeset(
        &self,
        block_number: BlockNumber,
    ) -> ProviderResult<Vec<StorageBeforeTx>> { ... }
}
Expand description

Storage ChangeSet reader

Required Methods§

Source

fn storage_changeset( &self, block_number: BlockNumber, ) -> ProviderResult<Vec<(BlockNumberAddress, StorageEntry)>>

Iterate over storage changesets and return the storage state from before this block.

Source

fn get_storage_before_block( &self, block_number: BlockNumber, address: Address, storage_key: B256, ) -> ProviderResult<Option<StorageEntry>>

Search the block’s changesets for the given address and storage key, and return the result.

Returns None if the storage slot was not changed in this block.

Source

fn storage_changesets_range( &self, range: impl RangeBounds<BlockNumber>, ) -> ProviderResult<Vec<(BlockNumberAddress, StorageEntry)>>

Get all storage changesets in a range of blocks.

Source

fn storage_changeset_count(&self) -> ProviderResult<usize>

Get the total count of all storage changes.

Provided Methods§

Source

fn storage_block_changeset( &self, block_number: BlockNumber, ) -> ProviderResult<Vec<StorageBeforeTx>>

Get storage changesets for a block as static-file rows.

Default implementation uses storage_changeset and maps to StorageBeforeTx.

Dyn Compatibility§

This trait is not dyn compatible.

In older versions of Rust, dyn compatibility was called "object safety", so this trait is not object safe.

Implementations on Foreign Types§

Source§

impl<'a, T: 'a + StorageChangeSetReader + ?Sized> StorageChangeSetReader for &'a T
where &'a T: Send,

Source§

fn storage_changeset( &self, block_number: BlockNumber, ) -> ProviderResult<Vec<(BlockNumberAddress, StorageEntry)>>

Source§

fn get_storage_before_block( &self, block_number: BlockNumber, address: Address, storage_key: B256, ) -> ProviderResult<Option<StorageEntry>>

Source§

fn storage_changesets_range( &self, range: impl RangeBounds<BlockNumber>, ) -> ProviderResult<Vec<(BlockNumberAddress, StorageEntry)>>

Source§

fn storage_changeset_count(&self) -> ProviderResult<usize>

Source§

fn storage_block_changeset( &self, block_number: BlockNumber, ) -> ProviderResult<Vec<StorageBeforeTx>>

Source§

impl<T: StorageChangeSetReader + ?Sized> StorageChangeSetReader for Box<T>
where Box<T>: Send,

Source§

fn storage_changeset( &self, block_number: BlockNumber, ) -> ProviderResult<Vec<(BlockNumberAddress, StorageEntry)>>

Source§

fn get_storage_before_block( &self, block_number: BlockNumber, address: Address, storage_key: B256, ) -> ProviderResult<Option<StorageEntry>>

Source§

fn storage_changesets_range( &self, range: impl RangeBounds<BlockNumber>, ) -> ProviderResult<Vec<(BlockNumberAddress, StorageEntry)>>

Source§

fn storage_changeset_count(&self) -> ProviderResult<usize>

Source§

fn storage_block_changeset( &self, block_number: BlockNumber, ) -> ProviderResult<Vec<StorageBeforeTx>>

Implementors§

Source§

impl<C: Send + Sync, N: NodePrimitives> StorageChangeSetReader for NoopProvider<C, N>

Available on crate feature db-api only.