pub trait DatabaseAsync {
type Error: Send + DBErrorMarker;
// Required methods
fn basic_async(
&mut self,
address: Address,
) -> impl Future<Output = Result<Option<AccountInfo>, Self::Error>> + Send;
fn code_by_hash_async(
&mut self,
code_hash: B256,
) -> impl Future<Output = Result<Bytecode, Self::Error>> + Send;
fn storage_async(
&mut self,
address: Address,
index: U256,
) -> impl Future<Output = Result<U256, Self::Error>> + Send;
fn block_hash_async(
&mut self,
number: u64,
) -> impl Future<Output = Result<B256, Self::Error>> + Send;
}
Expand description
The async EVM database interface.
Contains the same methods as Database, but it returns Future type instead.
Use WrapDatabaseAsync to provide Database implementation for a type that only implements this trait.
Required Associated Types§
Sourcetype Error: Send + DBErrorMarker
type Error: Send + DBErrorMarker
The database error type.
Required Methods§
Sourcefn basic_async(
&mut self,
address: Address,
) -> impl Future<Output = Result<Option<AccountInfo>, Self::Error>> + Send
fn basic_async( &mut self, address: Address, ) -> impl Future<Output = Result<Option<AccountInfo>, Self::Error>> + Send
Get basic account information.
Sourcefn code_by_hash_async(
&mut self,
code_hash: B256,
) -> impl Future<Output = Result<Bytecode, Self::Error>> + Send
fn code_by_hash_async( &mut self, code_hash: B256, ) -> impl Future<Output = Result<Bytecode, Self::Error>> + Send
Get account code by its hash.
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.