reth::providers

Trait StateProvider

pub trait StateProvider:
    BlockHashReader
    + AccountReader
    + StateRootProvider
    + StorageRootProvider
    + StateProofProvider
    + HashedPostStateProvider
    + Send
    + Sync {
    // Required methods
    fn storage(
        &self,
        account: Address,
        storage_key: FixedBytes<32>,
    ) -> Result<Option<Uint<256, 4>>, ProviderError>;
    fn bytecode_by_hash(
        &self,
        code_hash: FixedBytes<32>,
    ) -> Result<Option<Bytecode>, ProviderError>;

    // Provided methods
    fn account_code(
        &self,
        addr: Address,
    ) -> Result<Option<Bytecode>, ProviderError> { ... }
    fn account_balance(
        &self,
        addr: Address,
    ) -> Result<Option<Uint<256, 4>>, ProviderError> { ... }
    fn account_nonce(&self, addr: Address) -> Result<Option<u64>, ProviderError> { ... }
}
Expand description

An abstraction for a type that provides state data.

Required Methods§

fn storage( &self, account: Address, storage_key: FixedBytes<32>, ) -> Result<Option<Uint<256, 4>>, ProviderError>

Get storage of given account.

fn bytecode_by_hash( &self, code_hash: FixedBytes<32>, ) -> Result<Option<Bytecode>, ProviderError>

Get account code by its hash

Provided Methods§

fn account_code(&self, addr: Address) -> Result<Option<Bytecode>, ProviderError>

Get account code by its address.

Returns None if the account doesn’t exist or account is not a contract

fn account_balance( &self, addr: Address, ) -> Result<Option<Uint<256, 4>>, ProviderError>

Get account balance by its address.

Returns None if the account doesn’t exist

fn account_nonce(&self, addr: Address) -> Result<Option<u64>, ProviderError>

Get account nonce by its address.

Returns None if the account doesn’t exist

Implementations on Foreign Types§

§

impl<'a, T> StateProvider for &'a T

§

fn storage( &self, account: Address, storage_key: FixedBytes<32>, ) -> Result<Option<Uint<256, 4>>, ProviderError>

§

fn bytecode_by_hash( &self, code_hash: FixedBytes<32>, ) -> Result<Option<Bytecode>, ProviderError>

§

fn account_code(&self, addr: Address) -> Result<Option<Bytecode>, ProviderError>

§

fn account_balance( &self, addr: Address, ) -> Result<Option<Uint<256, 4>>, ProviderError>

§

fn account_nonce(&self, addr: Address) -> Result<Option<u64>, ProviderError>

§

impl<N> StateProvider for MemoryOverlayStateProviderRef<'_, N>
where N: NodePrimitives,

§

fn storage( &self, address: Address, storage_key: FixedBytes<32>, ) -> Result<Option<Uint<256, 4>>, ProviderError>

§

fn bytecode_by_hash( &self, code_hash: FixedBytes<32>, ) -> Result<Option<Bytecode>, ProviderError>

§

impl<T> StateProvider for Box<T>

§

fn storage( &self, account: Address, storage_key: FixedBytes<32>, ) -> Result<Option<Uint<256, 4>>, ProviderError>

§

fn bytecode_by_hash( &self, code_hash: FixedBytes<32>, ) -> Result<Option<Bytecode>, ProviderError>

§

fn account_code(&self, addr: Address) -> Result<Option<Bytecode>, ProviderError>

§

fn account_balance( &self, addr: Address, ) -> Result<Option<Uint<256, 4>>, ProviderError>

§

fn account_nonce(&self, addr: Address) -> Result<Option<u64>, ProviderError>

§

impl<T> StateProvider for Arc<T>

§

fn storage( &self, account: Address, storage_key: FixedBytes<32>, ) -> Result<Option<Uint<256, 4>>, ProviderError>

§

fn bytecode_by_hash( &self, code_hash: FixedBytes<32>, ) -> Result<Option<Bytecode>, ProviderError>

§

fn account_code(&self, addr: Address) -> Result<Option<Bytecode>, ProviderError>

§

fn account_balance( &self, addr: Address, ) -> Result<Option<Uint<256, 4>>, ProviderError>

§

fn account_nonce(&self, addr: Address) -> Result<Option<u64>, ProviderError>

Implementors§