Skip to main content

ChangeSetReader

Trait ChangeSetReader 

Source
pub trait ChangeSetReader {
    // Required methods
    fn account_block_changeset(
        &self,
        block_number: BlockNumber,
    ) -> ProviderResult<Vec<AccountBeforeTx>>;
    fn get_account_before_block(
        &self,
        block_number: BlockNumber,
        address: Address,
    ) -> ProviderResult<Option<AccountBeforeTx>>;
    fn account_changesets_range(
        &self,
        range: impl RangeBounds<BlockNumber>,
    ) -> ProviderResult<Vec<(BlockNumber, AccountBeforeTx)>>;
}
Expand description

AccountChange reader

Required Methods§

Source

fn account_block_changeset( &self, block_number: BlockNumber, ) -> ProviderResult<Vec<AccountBeforeTx>>

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

Source

fn get_account_before_block( &self, block_number: BlockNumber, address: Address, ) -> ProviderResult<Option<AccountBeforeTx>>

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

Returns None if the account was not changed in this block.

Source

fn account_changesets_range( &self, range: impl RangeBounds<BlockNumber>, ) -> ProviderResult<Vec<(BlockNumber, AccountBeforeTx)>>

Get all account changesets in a range of blocks.

Accepts any range type that implements RangeBounds<BlockNumber>, including:

  • Range<BlockNumber> (e.g., 0..100)
  • RangeInclusive<BlockNumber> (e.g., 0..=99)
  • RangeFrom<BlockNumber> (e.g., 0..) - iterates until exhausted

If there is no start bound, 0 is used as the start block.

Returns a vector of (block_number, changeset) pairs.

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 + ChangeSetReader + ?Sized> ChangeSetReader for &'a T

Source§

fn account_block_changeset( &self, block_number: BlockNumber, ) -> ProviderResult<Vec<AccountBeforeTx>>

Source§

fn get_account_before_block( &self, block_number: BlockNumber, address: Address, ) -> ProviderResult<Option<AccountBeforeTx>>

Source§

fn account_changesets_range( &self, range: impl RangeBounds<BlockNumber>, ) -> ProviderResult<Vec<(BlockNumber, AccountBeforeTx)>>

Source§

impl<T: ChangeSetReader + ?Sized> ChangeSetReader for Arc<T>

Source§

fn account_block_changeset( &self, block_number: BlockNumber, ) -> ProviderResult<Vec<AccountBeforeTx>>

Source§

fn get_account_before_block( &self, block_number: BlockNumber, address: Address, ) -> ProviderResult<Option<AccountBeforeTx>>

Source§

fn account_changesets_range( &self, range: impl RangeBounds<BlockNumber>, ) -> ProviderResult<Vec<(BlockNumber, AccountBeforeTx)>>

Source§

impl<T: ChangeSetReader + ?Sized> ChangeSetReader for Box<T>

Source§

fn account_block_changeset( &self, block_number: BlockNumber, ) -> ProviderResult<Vec<AccountBeforeTx>>

Source§

fn get_account_before_block( &self, block_number: BlockNumber, address: Address, ) -> ProviderResult<Option<AccountBeforeTx>>

Source§

fn account_changesets_range( &self, range: impl RangeBounds<BlockNumber>, ) -> ProviderResult<Vec<(BlockNumber, AccountBeforeTx)>>

Implementors§

Source§

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