pub trait StateProofProvider {
// 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 multiproof_v2(
&self,
input: TrieInput,
targets: MultiProofTargetsV2,
) -> Result<DecodedMultiProofV2, ProviderError>;
fn witness(
&self,
input: TrieInput,
target: HashedPostState,
mode: ExecutionWitnessMode,
) -> Result<Vec<Bytes>, ProviderError>;
}Expand description
A type that can generate state proof on top of a given post state.
Required Methods§
Sourcefn 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.
Sourcefn 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.
Sourcefn multiproof_v2(
&self,
input: TrieInput,
targets: MultiProofTargetsV2,
) -> Result<DecodedMultiProofV2, ProviderError>
fn multiproof_v2( &self, input: TrieInput, targets: MultiProofTargetsV2, ) -> Result<DecodedMultiProofV2, ProviderError>
Generate a V2 decoded multiproof for target hashed accounts and storage slots.
Sourcefn witness(
&self,
input: TrieInput,
target: HashedPostState,
mode: ExecutionWitnessMode,
) -> Result<Vec<Bytes>, ProviderError>
fn witness( &self, input: TrieInput, target: HashedPostState, mode: ExecutionWitnessMode, ) -> Result<Vec<Bytes>, ProviderError>
Get trie witness for provided state using the given witness generation mode.
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> StateProofProvider for MemoryOverlayStateProvider<N>where
N: NodePrimitives,
impl<'a, N> StateProofProvider for MemoryOverlayStateProvider<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 multiproof_v2( &self, input: TrieInput, targets: MultiProofTargetsV2, ) -> Result<DecodedMultiProofV2, ProviderError>
fn witness( &self, input: TrieInput, target: HashedPostState, mode: ExecutionWitnessMode, ) -> Result<Vec<Bytes>, ProviderError>
Source§impl<'a, T> StateProofProvider for &'a Twhere
T: 'a + StateProofProvider + ?Sized,
impl<'a, T> StateProofProvider for &'a Twhere
T: 'a + StateProofProvider + ?Sized,
fn proof( &self, input: TrieInput, address: Address, slots: &[FixedBytes<32>], ) -> Result<AccountProof, ProviderError>
fn multiproof( &self, input: TrieInput, targets: MultiProofTargets, ) -> Result<MultiProof, ProviderError>
fn multiproof_v2( &self, input: TrieInput, targets: MultiProofTargetsV2, ) -> Result<DecodedMultiProofV2, ProviderError>
fn witness( &self, input: TrieInput, target: HashedPostState, mode: ExecutionWitnessMode, ) -> Result<Vec<Bytes>, ProviderError>
Source§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 multiproof_v2( &self, input: TrieInput, targets: MultiProofTargetsV2, ) -> Result<DecodedMultiProofV2, ProviderError>
fn witness( &self, input: TrieInput, target: HashedPostState, mode: ExecutionWitnessMode, ) -> Result<Vec<Bytes>, ProviderError>
Source§impl<Provider, N> StateProofProvider for OverlayStateProvider<Provider, N>where
N: NodePrimitives,
Provider: Deref,
<Provider as Deref>::Target: DBProvider + StageCheckpointReader + PruneCheckpointReader + ChangeSetReader + StorageChangeSetReader + BlockNumReader + StorageSettingsCache,
impl<Provider, N> StateProofProvider for OverlayStateProvider<Provider, N>where
N: NodePrimitives,
Provider: Deref,
<Provider as Deref>::Target: DBProvider + StageCheckpointReader + PruneCheckpointReader + ChangeSetReader + StorageChangeSetReader + BlockNumReader + StorageSettingsCache,
fn proof( &self, input: TrieInput, address: Address, slots: &[FixedBytes<32>], ) -> Result<AccountProof, ProviderError>
fn multiproof( &self, input: TrieInput, targets: MultiProofTargets, ) -> Result<MultiProof, ProviderError>
fn multiproof_v2( &self, input: TrieInput, targets: MultiProofTargetsV2, ) -> Result<DecodedMultiProofV2, ProviderError>
fn witness( &self, input: TrieInput, target: HashedPostState, mode: ExecutionWitnessMode, ) -> Result<Vec<Bytes>, ProviderError>
Source§impl<T> StateProofProvider for Arc<T>where
T: StateProofProvider + ?Sized,
impl<T> StateProofProvider for Arc<T>where
T: StateProofProvider + ?Sized,
fn proof( &self, input: TrieInput, address: Address, slots: &[FixedBytes<32>], ) -> Result<AccountProof, ProviderError>
fn multiproof( &self, input: TrieInput, targets: MultiProofTargets, ) -> Result<MultiProof, ProviderError>
fn multiproof_v2( &self, input: TrieInput, targets: MultiProofTargetsV2, ) -> Result<DecodedMultiProofV2, ProviderError>
fn witness( &self, input: TrieInput, target: HashedPostState, mode: ExecutionWitnessMode, ) -> Result<Vec<Bytes>, ProviderError>
Source§impl<T> StateProofProvider for Box<T>where
T: StateProofProvider + ?Sized,
impl<T> StateProofProvider for Box<T>where
T: StateProofProvider + ?Sized,
fn proof( &self, input: TrieInput, address: Address, slots: &[FixedBytes<32>], ) -> Result<AccountProof, ProviderError>
fn multiproof( &self, input: TrieInput, targets: MultiProofTargets, ) -> Result<MultiProof, ProviderError>
fn multiproof_v2( &self, input: TrieInput, targets: MultiProofTargetsV2, ) -> Result<DecodedMultiProofV2, ProviderError>
fn witness( &self, input: TrieInput, target: HashedPostState, mode: ExecutionWitnessMode, ) -> Result<Vec<Bytes>, ProviderError>
Implementors§
impl<'a, Provider: DBProvider + BlockHashReader + StorageSettingsCache> StateProofProvider for LatestStateProvider<Provider>
impl<C, N> StateProofProvider for NoopProvider<C, N>
impl<Provider: DBProvider + StorageSettingsCache> StateProofProvider for LatestStateProviderRef<'_, Provider>
impl<T, ChainSpec> StateProofProvider for MockEthProvider<T, ChainSpec>
Available on crate features
test-utils only.