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§
Sourcefn storage(
&self,
account: Address,
storage_key: FixedBytes<32>,
) -> Result<Option<Uint<256, 4>>, ProviderError>
fn storage( &self, account: Address, storage_key: FixedBytes<32>, ) -> Result<Option<Uint<256, 4>>, ProviderError>
Get storage of given account.
Provided Methods§
Sourcefn account_code(
&self,
addr: &Address,
) -> Result<Option<Bytecode>, ProviderError>
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
Sourcefn account_balance(
&self,
addr: &Address,
) -> Result<Option<Uint<256, 4>>, ProviderError>
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
Sourcefn account_nonce(&self, addr: &Address) -> Result<Option<u64>, ProviderError>
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,
impl<'a, N> StateProvider for MemoryOverlayStateProvider<N>where
N: NodePrimitives,
Source§impl<'a, T> StateProvider for &'a Twhere
T: 'a + StateProvider + ?Sized,
&'a T: BlockHashReader + AccountReader + BytecodeReader + StateRootProvider + StorageRootProvider + StateProofProvider + HashedPostStateProvider,
impl<'a, T> StateProvider for &'a Twhere
T: 'a + StateProvider + ?Sized,
&'a T: BlockHashReader + AccountReader + BytecodeReader + StateRootProvider + StorageRootProvider + StateProofProvider + HashedPostStateProvider,
fn storage( &self, account: Address, storage_key: FixedBytes<32>, ) -> Result<Option<Uint<256, 4>>, 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>
Source§impl<N> StateProvider for MemoryOverlayStateProviderRef<'_, N>where
N: NodePrimitives,
impl<N> StateProvider for MemoryOverlayStateProviderRef<'_, N>where
N: NodePrimitives,
Source§impl<T> StateProvider for Arc<T>where
T: StateProvider + ?Sized,
Arc<T>: BlockHashReader + AccountReader + BytecodeReader + StateRootProvider + StorageRootProvider + StateProofProvider + HashedPostStateProvider,
impl<T> StateProvider for Arc<T>where
T: StateProvider + ?Sized,
Arc<T>: BlockHashReader + AccountReader + BytecodeReader + StateRootProvider + StorageRootProvider + StateProofProvider + HashedPostStateProvider,
fn storage( &self, account: Address, storage_key: FixedBytes<32>, ) -> Result<Option<Uint<256, 4>>, 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>
Source§impl<T> StateProvider for Box<T>where
T: StateProvider + ?Sized,
Box<T>: BlockHashReader + AccountReader + BytecodeReader + StateRootProvider + StorageRootProvider + StateProofProvider + HashedPostStateProvider,
impl<T> StateProvider for Box<T>where
T: StateProvider + ?Sized,
Box<T>: BlockHashReader + AccountReader + BytecodeReader + StateRootProvider + StorageRootProvider + StateProofProvider + HashedPostStateProvider,
fn storage( &self, account: Address, storage_key: FixedBytes<32>, ) -> Result<Option<Uint<256, 4>>, 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§
impl<'a, Provider: DBProvider + BlockHashReader + StorageSettingsCache> StateProvider for LatestStateProvider<Provider>
impl<'a, Provider: DBProvider + BlockNumReader + BlockHashReader + ChangeSetReader + StorageChangeSetReader + PruneCheckpointReader + StageCheckpointReader + StorageSettingsCache + RocksDBProviderFactory + NodePrimitivesProvider> StateProvider for HistoricalStateProvider<Provider>
impl<C, N> StateProvider for NoopProvider<C, N>
impl<Provider, N> StateProvider for HistoricalStateProviderRef<'_, Provider, N>where
Provider: DBProvider + BlockNumReader + BlockHashReader + ChangeSetReader + StorageChangeSetReader + PruneCheckpointReader + StageCheckpointReader + StorageSettingsCache + RocksDBProviderFactory + NodePrimitivesProvider<Primitives = N>,
N: NodePrimitives,
impl<Provider: DBProvider + BlockHashReader + StorageSettingsCache> StateProvider for LatestStateProviderRef<'_, Provider>
impl<T, ChainSpec> StateProvider for MockEthProvider<T, ChainSpec>
Available on crate features
test-utils only.