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)>>;

    // 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.

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".

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_block_changeset( &self, block_number: BlockNumber, ) -> ProviderResult<Vec<StorageBeforeTx>>

Source§

impl<T: StorageChangeSetReader + ?Sized> StorageChangeSetReader for Arc<T>
where Arc<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_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_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.