Skip to main content

StateProvider

Trait StateProvider 

Source
pub trait StateProvider:
    BlockHashReader
    + AccountReader
    + BytecodeReader
    + StateRootProvider
    + StorageRootProvider
    + StateProofProvider
    + HashedPostStateProvider {
    // Required method
    fn storage(
        &self,
        account: Address,
        storage_key: FixedBytes<32>,
    ) -> Result<Option<Uint<256, 4>>, 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§

Source

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

Get storage of given account.

Provided Methods§

Source

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

Source

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

Source

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

Get account nonce by its address.

Returns None if the account doesn’t exist

Dyn Compatibility§

This trait is dyn compatible.

In older versions of Rust, dyn compatibility was called "object safety".

Implementations on Foreign Types§

Source§

impl<'a, N> StateProvider for MemoryOverlayStateProvider<N>
where N: NodePrimitives,

Source§

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

Source§

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

Source§

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

Source§

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

Source§

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

Source§

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

Source§

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

Source§

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

Source§

impl<S> StateProvider for CachedStateProvider<S>
where S: StateProvider,

Source§

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

Source§

impl<S> StateProvider for InstrumentedStateProvider<S>
where S: StateProvider,

Source§

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

Source§

impl<T> StateProvider for Arc<T>

Source§

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

Source§

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

Source§

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

Source§

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

Source§

impl<T> StateProvider for Box<T>

Source§

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

Source§

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

Source§

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

Source§

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

Implementors§