pub trait StorageChangeSetReader: Send {
// Required methods
fn storage_changeset(
&self,
block_number: u64,
) -> Result<Vec<(BlockNumberAddress, StorageEntry)>, ProviderError>;
fn get_storage_before_block(
&self,
block_number: u64,
address: Address,
storage_key: FixedBytes<32>,
) -> Result<Option<StorageEntry>, ProviderError>;
fn storage_changesets_range(
&self,
range: RangeInclusive<u64>,
) -> Result<Vec<(BlockNumberAddress, StorageEntry)>, ProviderError>;
fn storage_changeset_count(&self) -> Result<usize, ProviderError>;
// Provided method
fn storage_block_changeset(
&self,
block_number: u64,
) -> Result<Vec<StorageBeforeTx>, ProviderError> { ... }
}Expand description
Storage ChangeSet reader
Required Methods§
Sourcefn storage_changeset(
&self,
block_number: u64,
) -> Result<Vec<(BlockNumberAddress, StorageEntry)>, ProviderError>
fn storage_changeset( &self, block_number: u64, ) -> Result<Vec<(BlockNumberAddress, StorageEntry)>, ProviderError>
Iterate over storage changesets and return the storage state from before this block.
Sourcefn get_storage_before_block(
&self,
block_number: u64,
address: Address,
storage_key: FixedBytes<32>,
) -> Result<Option<StorageEntry>, ProviderError>
fn get_storage_before_block( &self, block_number: u64, address: Address, storage_key: FixedBytes<32>, ) -> Result<Option<StorageEntry>, ProviderError>
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: RangeInclusive<u64>,
) -> Result<Vec<(BlockNumberAddress, StorageEntry)>, ProviderError>
fn storage_changesets_range( &self, range: RangeInclusive<u64>, ) -> Result<Vec<(BlockNumberAddress, StorageEntry)>, ProviderError>
Get all storage changesets in a range of blocks.
NOTE: Get inclusive range of blocks.
Sourcefn storage_changeset_count(&self) -> Result<usize, ProviderError>
fn storage_changeset_count(&self) -> Result<usize, ProviderError>
Get the total count of all storage changes.
Provided Methods§
Sourcefn storage_block_changeset(
&self,
block_number: u64,
) -> Result<Vec<StorageBeforeTx>, ProviderError>
fn storage_block_changeset( &self, block_number: u64, ) -> Result<Vec<StorageBeforeTx>, ProviderError>
Get storage changesets for a block as static-file rows.
Default implementation uses storage_changeset and maps to StorageBeforeTx.
Implementations on Foreign Types§
Source§impl<'a, T> StorageChangeSetReader for &'a T
impl<'a, T> StorageChangeSetReader for &'a T
fn storage_changeset( &self, block_number: u64, ) -> Result<Vec<(BlockNumberAddress, StorageEntry)>, ProviderError>
fn get_storage_before_block( &self, block_number: u64, address: Address, storage_key: FixedBytes<32>, ) -> Result<Option<StorageEntry>, ProviderError>
fn storage_changesets_range( &self, range: RangeInclusive<u64>, ) -> Result<Vec<(BlockNumberAddress, StorageEntry)>, ProviderError>
fn storage_changeset_count(&self) -> Result<usize, ProviderError>
fn storage_block_changeset( &self, block_number: u64, ) -> Result<Vec<StorageBeforeTx>, ProviderError>
Source§impl<T> StorageChangeSetReader for Box<T>
impl<T> StorageChangeSetReader for Box<T>
fn storage_changeset( &self, block_number: u64, ) -> Result<Vec<(BlockNumberAddress, StorageEntry)>, ProviderError>
fn get_storage_before_block( &self, block_number: u64, address: Address, storage_key: FixedBytes<32>, ) -> Result<Option<StorageEntry>, ProviderError>
fn storage_changesets_range( &self, range: RangeInclusive<u64>, ) -> Result<Vec<(BlockNumberAddress, StorageEntry)>, ProviderError>
fn storage_changeset_count(&self) -> Result<usize, ProviderError>
fn storage_block_changeset( &self, block_number: u64, ) -> Result<Vec<StorageBeforeTx>, ProviderError>
Implementors§
impl<C, N> StorageChangeSetReader for NoopProvider<C, N>
Available on crate feature
db-api only.impl<N: NodePrimitives> StorageChangeSetReader for StaticFileProvider<N>
impl<N: ProviderNodeTypes> StorageChangeSetReader for BlockchainProvider<N>
impl<T: NodePrimitives, ChainSpec: Send + Sync> StorageChangeSetReader for MockEthProvider<T, ChainSpec>
Available on crate features
test-utils only.