pub trait StorageChangeSetReader: Send {
// Required methods
fn storage_changeset(
&self,
block_number: u64,
) -> Result<Vec<(BlockNumberAddress, ChangesetEntry)>, ProviderError>;
fn get_storage_before_block(
&self,
block_number: u64,
address: Address,
storage_key: FixedBytes<32>,
) -> Result<Option<ChangesetEntry>, ProviderError>;
fn storage_changesets_range(
&self,
range: impl RangeBounds<u64>,
) -> Result<Vec<(BlockNumberAddress, ChangesetEntry)>, 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, ChangesetEntry)>, ProviderError>
fn storage_changeset( &self, block_number: u64, ) -> Result<Vec<(BlockNumberAddress, ChangesetEntry)>, ProviderError>
Iterate over storage changesets and return the storage state from before this block.
Returned entries have their keys tagged as StorageSlotKey::Plain or
StorageSlotKey::Hashed based on the current storage mode.
Sourcefn get_storage_before_block(
&self,
block_number: u64,
address: Address,
storage_key: FixedBytes<32>,
) -> Result<Option<ChangesetEntry>, ProviderError>
fn get_storage_before_block( &self, block_number: u64, address: Address, storage_key: FixedBytes<32>, ) -> Result<Option<ChangesetEntry>, ProviderError>
Search the block’s changesets for the given address and storage key, and return the result.
The storage_key must match the key format used by the storage mode
(plain in v1, keccak256-hashed in v2).
Returns None if the storage slot was not changed in this block.
Sourcefn storage_changesets_range(
&self,
range: impl RangeBounds<u64>,
) -> Result<Vec<(BlockNumberAddress, ChangesetEntry)>, ProviderError>
fn storage_changesets_range( &self, range: impl RangeBounds<u64>, ) -> Result<Vec<(BlockNumberAddress, ChangesetEntry)>, ProviderError>
Get all storage changesets in a range of blocks.
Returned entries have their keys tagged as StorageSlotKey::Plain or
StorageSlotKey::Hashed based on the current storage mode.
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.
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> StorageChangeSetReader for &'a T
impl<'a, T> StorageChangeSetReader for &'a T
fn storage_changeset( &self, block_number: u64, ) -> Result<Vec<(BlockNumberAddress, ChangesetEntry)>, ProviderError>
fn get_storage_before_block( &self, block_number: u64, address: Address, storage_key: FixedBytes<32>, ) -> Result<Option<ChangesetEntry>, ProviderError>
fn storage_changesets_range( &self, range: impl RangeBounds<u64>, ) -> Result<Vec<(BlockNumberAddress, ChangesetEntry)>, 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, ChangesetEntry)>, ProviderError>
fn get_storage_before_block( &self, block_number: u64, address: Address, storage_key: FixedBytes<32>, ) -> Result<Option<ChangesetEntry>, ProviderError>
fn storage_changesets_range( &self, range: impl RangeBounds<u64>, ) -> Result<Vec<(BlockNumberAddress, ChangesetEntry)>, 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>
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>
test-utils only.