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§
Sourcefn storage_changeset(
&self,
block_number: BlockNumber,
) -> ProviderResult<Vec<(BlockNumberAddress, StorageEntry)>>
fn storage_changeset( &self, block_number: BlockNumber, ) -> ProviderResult<Vec<(BlockNumberAddress, StorageEntry)>>
Iterate over storage changesets and return the storage state from before this block.
Sourcefn get_storage_before_block(
&self,
block_number: BlockNumber,
address: Address,
storage_key: B256,
) -> ProviderResult<Option<StorageEntry>>
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.
Sourcefn storage_changesets_range(
&self,
range: impl RangeBounds<BlockNumber>,
) -> ProviderResult<Vec<(BlockNumberAddress, StorageEntry)>>
fn storage_changesets_range( &self, range: impl RangeBounds<BlockNumber>, ) -> ProviderResult<Vec<(BlockNumberAddress, StorageEntry)>>
Get all storage changesets in a range of blocks.
Provided Methods§
Sourcefn storage_block_changeset(
&self,
block_number: BlockNumber,
) -> ProviderResult<Vec<StorageBeforeTx>>
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
impl<'a, T: 'a + StorageChangeSetReader + ?Sized> StorageChangeSetReader for &'a T
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_block_changeset( &self, block_number: BlockNumber, ) -> ProviderResult<Vec<StorageBeforeTx>>
Source§impl<T: StorageChangeSetReader + ?Sized> StorageChangeSetReader for Arc<T>
impl<T: StorageChangeSetReader + ?Sized> StorageChangeSetReader for Arc<T>
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_block_changeset( &self, block_number: BlockNumber, ) -> ProviderResult<Vec<StorageBeforeTx>>
Source§impl<T: StorageChangeSetReader + ?Sized> StorageChangeSetReader for Box<T>
impl<T: StorageChangeSetReader + ?Sized> StorageChangeSetReader for Box<T>
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_block_changeset( &self, block_number: BlockNumber, ) -> ProviderResult<Vec<StorageBeforeTx>>
Implementors§
impl<C: Send + Sync, N: NodePrimitives> StorageChangeSetReader for NoopProvider<C, N>
Available on crate feature
db-api only.