pub struct DecodedMultiProof {
pub account_subtree: DecodedProofNodes,
pub branch_node_masks: BranchNodeMasksMap,
pub storages: B256Map<DecodedStorageMultiProof>,
}Expand description
This is a type of MultiProof that uses decoded proofs, meaning these proofs are stored as a
collection of TrieNodes instead of RLP-encoded bytes.
Fields§
§account_subtree: DecodedProofNodesState trie multiproof for requested accounts.
branch_node_masks: BranchNodeMasksMapConsolidated branch node masks (hash_mask, tree_mask) for each path in the account
proof.
storages: B256Map<DecodedStorageMultiProof>Storage trie multiproofs.
Implementations§
Source§impl DecodedMultiProof
impl DecodedMultiProof
Sourcepub fn account_proof_nodes(&self, path: &Nibbles) -> Vec<(Nibbles, TrieNode)>
pub fn account_proof_nodes(&self, path: &Nibbles) -> Vec<(Nibbles, TrieNode)>
Return the account proof nodes for the given account path.
Sourcepub fn storage_proof_nodes(
&self,
hashed_address: B256,
slots: impl IntoIterator<Item = B256>,
) -> Vec<(B256, Vec<(Nibbles, TrieNode)>)>
pub fn storage_proof_nodes( &self, hashed_address: B256, slots: impl IntoIterator<Item = B256>, ) -> Vec<(B256, Vec<(Nibbles, TrieNode)>)>
Return the storage proof nodes for the given storage slots of the account path.
Sourcepub fn account_proof(
&self,
address: Address,
slots: &[B256],
) -> Result<DecodedAccountProof, Error>
pub fn account_proof( &self, address: Address, slots: &[B256], ) -> Result<DecodedAccountProof, Error>
Construct the account proof from the multiproof.
Sourcepub fn extend(&mut self, other: Self)
pub fn extend(&mut self, other: Self)
Extends this multiproof with another one, merging both account and storage proofs.
Sourcepub fn from_storage_proof(
hashed_address: B256,
storage_proof: DecodedStorageMultiProof,
) -> Self
pub fn from_storage_proof( hashed_address: B256, storage_proof: DecodedStorageMultiProof, ) -> Self
Create a DecodedMultiProof from a DecodedStorageMultiProof.
Trait Implementations§
Source§impl Clone for DecodedMultiProof
impl Clone for DecodedMultiProof
Source§impl Debug for DecodedMultiProof
impl Debug for DecodedMultiProof
Source§impl Default for DecodedMultiProof
impl Default for DecodedMultiProof
impl Eq for DecodedMultiProof
Source§impl From<DecodedMultiProof> for DecodedMultiProofV2
impl From<DecodedMultiProof> for DecodedMultiProofV2
Source§fn from(proof: DecodedMultiProof) -> Self
fn from(proof: DecodedMultiProof) -> Self
Source§impl PartialEq for DecodedMultiProof
impl PartialEq for DecodedMultiProof
impl StructuralPartialEq for DecodedMultiProof
Source§impl TryFrom<MultiProof> for DecodedMultiProof
impl TryFrom<MultiProof> for DecodedMultiProof
Auto Trait Implementations§
impl Freeze for DecodedMultiProof
impl RefUnwindSafe for DecodedMultiProof
impl Send for DecodedMultiProof
impl Sync for DecodedMultiProof
impl Unpin for DecodedMultiProof
impl UnsafeUnpin for DecodedMultiProof
impl UnwindSafe for DecodedMultiProof
Blanket Implementations§
Source§impl<T> BorrowMut<T> for Twhere
T: ?Sized,
impl<T> BorrowMut<T> for Twhere
T: ?Sized,
Source§fn borrow_mut(&mut self) -> &mut T
fn borrow_mut(&mut self) -> &mut T
impl<ST, DT> CastableFrom<ST, Initialized, Initialized> for DT
impl<ST, DT> CastableFrom<ST, Uninit, Uninit> for DT
Source§impl<T> CloneToUninit for Twhere
T: Clone,
impl<T> CloneToUninit for Twhere
T: Clone,
§impl<Q, K> Equivalent<K> for Q
impl<Q, K> Equivalent<K> for Q
§fn equivalent(&self, key: &K) -> bool
fn equivalent(&self, key: &K) -> bool
key and return true if they are equal.§impl<Q, K> Equivalent<K> for Q
impl<Q, K> Equivalent<K> for Q
§fn equivalent(&self, key: &K) -> bool
fn equivalent(&self, key: &K) -> bool
§impl<T> Instrument for T
impl<T> Instrument for T
§fn instrument(self, span: Span) -> Instrumented<Self> ⓘ
fn instrument(self, span: Span) -> Instrumented<Self> ⓘ
Source§impl<T> IntoEither for T
impl<T> IntoEither for T
Source§fn into_either(self, into_left: bool) -> Either<Self, Self> ⓘ
fn into_either(self, into_left: bool) -> Either<Self, Self> ⓘ
self into a Left variant of Either<Self, Self>
if into_left is true.
Converts self into a Right variant of Either<Self, Self>
otherwise. Read moreSource§fn into_either_with<F>(self, into_left: F) -> Either<Self, Self> ⓘ
fn into_either_with<F>(self, into_left: F) -> Either<Self, Self> ⓘ
self into a Left variant of Either<Self, Self>
if into_left(&self) returns true.
Converts self into a Right variant of Either<Self, Self>
otherwise. Read moreimpl<T> MaybeDebug for Twhere
T: Debug,
§impl<T> Pointable for T
impl<T> Pointable for T
impl<T> Read<Exclusive, BecauseExclusive> for Twhere
T: ?Sized,
§impl<T> WithSubscriber for T
impl<T> WithSubscriber for T
§fn with_subscriber<S>(self, subscriber: S) -> WithDispatch<Self> ⓘwhere
S: Into<Dispatch>,
fn with_subscriber<S>(self, subscriber: S) -> WithDispatch<Self> ⓘwhere
S: Into<Dispatch>,
§fn with_current_subscriber(self) -> WithDispatch<Self> ⓘ
fn with_current_subscriber(self) -> WithDispatch<Self> ⓘ
Layout§
Note: Most layout information is completely unstable and may even differ between compilations. The only exception is types with certain repr(...) attributes. Please see the Rust Reference's “Type Layout” chapter for details on type layout guarantees.
Size: 120 bytes