Trait StateProofProvider
pub trait StateProofProvider: Send + Sync {
// Required methods
fn proof(
&self,
input: TrieInput,
address: Address,
slots: &[FixedBytes<32>],
) -> Result<AccountProof, ProviderError>;
fn multiproof(
&self,
input: TrieInput,
targets: MultiProofTargets,
) -> Result<MultiProof, ProviderError>;
fn witness(
&self,
input: TrieInput,
target: HashedPostState,
) -> Result<Vec<Bytes>, ProviderError>;
}
Expand description
A type that can generate state proof on top of a given post state.
Required Methods§
fn proof(
&self,
input: TrieInput,
address: Address,
slots: &[FixedBytes<32>],
) -> Result<AccountProof, ProviderError>
fn proof( &self, input: TrieInput, address: Address, slots: &[FixedBytes<32>], ) -> Result<AccountProof, ProviderError>
Get account and storage proofs of target keys in the HashedPostState
on top of the current state.
fn multiproof(
&self,
input: TrieInput,
targets: MultiProofTargets,
) -> Result<MultiProof, ProviderError>
fn multiproof( &self, input: TrieInput, targets: MultiProofTargets, ) -> Result<MultiProof, ProviderError>
Generate [MultiProof
] for target hashed account and corresponding
hashed storage slot keys.
fn witness(
&self,
input: TrieInput,
target: HashedPostState,
) -> Result<Vec<Bytes>, ProviderError>
fn witness( &self, input: TrieInput, target: HashedPostState, ) -> Result<Vec<Bytes>, ProviderError>
Get trie witness for provided state.
Implementations on Foreign Types§
§impl<'a, T> StateProofProvider for &'a T
impl<'a, T> StateProofProvider for &'a T
fn proof( &self, input: TrieInput, address: Address, slots: &[FixedBytes<32>], ) -> Result<AccountProof, ProviderError>
fn multiproof( &self, input: TrieInput, targets: MultiProofTargets, ) -> Result<MultiProof, ProviderError>
fn witness( &self, input: TrieInput, target: HashedPostState, ) -> Result<Vec<Bytes>, ProviderError>
§impl<N> StateProofProvider for MemoryOverlayStateProviderRef<'_, N>where
N: NodePrimitives,
impl<N> StateProofProvider for MemoryOverlayStateProviderRef<'_, N>where
N: NodePrimitives,
fn proof( &self, input: TrieInput, address: Address, slots: &[FixedBytes<32>], ) -> Result<AccountProof, ProviderError>
fn multiproof( &self, input: TrieInput, targets: MultiProofTargets, ) -> Result<MultiProof, ProviderError>
fn witness( &self, input: TrieInput, target: HashedPostState, ) -> Result<Vec<Bytes>, ProviderError>
§impl<T> StateProofProvider for Box<T>
impl<T> StateProofProvider for Box<T>
fn proof( &self, input: TrieInput, address: Address, slots: &[FixedBytes<32>], ) -> Result<AccountProof, ProviderError>
fn multiproof( &self, input: TrieInput, targets: MultiProofTargets, ) -> Result<MultiProof, ProviderError>
fn witness( &self, input: TrieInput, target: HashedPostState, ) -> Result<Vec<Bytes>, ProviderError>
§impl<T> StateProofProvider for Arc<T>
impl<T> StateProofProvider for Arc<T>
fn proof( &self, input: TrieInput, address: Address, slots: &[FixedBytes<32>], ) -> Result<AccountProof, ProviderError>
fn multiproof( &self, input: TrieInput, targets: MultiProofTargets, ) -> Result<MultiProof, ProviderError>
fn witness( &self, input: TrieInput, target: HashedPostState, ) -> Result<Vec<Bytes>, ProviderError>
Implementors§
impl<'a, Provider: DBProvider + BlockHashReader + StateCommitmentProvider> StateProofProvider for LatestStateProvider<Provider>
impl<'a, Provider: DBProvider + BlockNumReader + BlockHashReader + StateCommitmentProvider> StateProofProvider for HistoricalStateProvider<Provider>
impl<C, N> StateProofProvider for NoopProvider<C, N>
impl<Provider: DBProvider + BlockNumReader + StateCommitmentProvider> StateProofProvider for HistoricalStateProviderRef<'_, Provider>
impl<Provider: DBProvider + StateCommitmentProvider> StateProofProvider for LatestStateProviderRef<'_, Provider>
impl<T, ChainSpec> StateProofProvider for MockEthProvider<T, ChainSpec>
Available on crate feature
test-utils
only.