Trait DatabaseAsyncRef

pub trait DatabaseAsyncRef {
    type Error: Send + DBErrorMarker + Error;

    // Required methods
    fn basic_async_ref(
        &self,
        address: Address,
    ) -> impl Future<Output = Result<Option<AccountInfo>, Self::Error>> + Send;
    fn code_by_hash_async_ref(
        &self,
        code_hash: FixedBytes<32>,
    ) -> impl Future<Output = Result<Bytecode, Self::Error>> + Send;
    fn storage_async_ref(
        &self,
        address: Address,
        index: Uint<256, 4>,
    ) -> impl Future<Output = Result<Uint<256, 4>, Self::Error>> + Send;
    fn block_hash_async_ref(
        &self,
        number: u64,
    ) -> impl Future<Output = Result<FixedBytes<32>, Self::Error>> + Send;
}
Expand description

The async EVM database interface

Contains the same methods as DatabaseRef, but it returns Future type instead.

Use WrapDatabaseAsync to provide DatabaseRef implementation for a type that only implements this trait.

Required Associated Types§

type Error: Send + DBErrorMarker + Error

The database error type

Required Methods§

fn basic_async_ref( &self, address: Address, ) -> impl Future<Output = Result<Option<AccountInfo>, Self::Error>> + Send

Gets basic account information.

fn code_by_hash_async_ref( &self, code_hash: FixedBytes<32>, ) -> impl Future<Output = Result<Bytecode, Self::Error>> + Send

Gets account code by its hash.

fn storage_async_ref( &self, address: Address, index: Uint<256, 4>, ) -> impl Future<Output = Result<Uint<256, 4>, Self::Error>> + Send

Gets storage value of address at index.

fn block_hash_async_ref( &self, number: u64, ) -> impl Future<Output = Result<FixedBytes<32>, Self::Error>> + Send

Gets block hash by block number.

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.

Implementors§

Source§

impl<N: Network, P: Provider<N>> DatabaseAsyncRef for AlloyDB<N, P>