pub struct StorageProof {
pub key: B256,
pub nibbles: Nibbles,
pub value: U256,
pub proof: Vec<Bytes>,
}Expand description
The merkle proof of the storage entry.
Fields§
§key: B256The raw storage key.
nibbles: NibblesThe hashed storage key nibbles.
value: U256The storage value.
proof: Vec<Bytes>Array of rlp-serialized merkle trie nodes which starting from the storage root node and following the path of the hashed storage slot as key.
Implementations§
Source§impl StorageProof
impl StorageProof
Sourcepub fn new_with_hashed(key: B256, hashed_key: B256) -> Self
pub fn new_with_hashed(key: B256, hashed_key: B256) -> Self
Create new storage proof from the storage slot and its pre-hashed image.
Sourcepub fn new_with_nibbles(key: B256, nibbles: Nibbles) -> Self
pub fn new_with_nibbles(key: B256, nibbles: Nibbles) -> Self
Create new storage proof from the storage slot and its pre-hashed image.
Sourcepub fn with_proof(self, proof: Vec<Bytes>) -> Self
pub fn with_proof(self, proof: Vec<Bytes>) -> Self
Set proof nodes on storage proof.
Sourcepub fn verify(&self, root: B256) -> Result<(), ProofVerificationError>
pub fn verify(&self, root: B256) -> Result<(), ProofVerificationError>
Verify the proof against the provided storage root.
Source§impl StorageProof
impl StorageProof
Sourcepub fn into_eip1186_proof(self, slot: JsonStorageKey) -> EIP1186StorageProof
Available on crate feature eip1186 only.
pub fn into_eip1186_proof(self, slot: JsonStorageKey) -> EIP1186StorageProof
eip1186 only.Convert into an EIP-1186 storage proof
Sourcepub fn from_eip1186_proof(storage_proof: EIP1186StorageProof) -> Self
Available on crate feature eip1186 only.
pub fn from_eip1186_proof(storage_proof: EIP1186StorageProof) -> Self
eip1186 only.Convert from an
EIP1186StorageProof
This is the inverse of Self::into_eip1186_proof.
Trait Implementations§
Source§impl Clone for StorageProof
impl Clone for StorageProof
Source§impl Debug for StorageProof
impl Debug for StorageProof
Source§impl Default for StorageProof
impl Default for StorageProof
Source§impl<'de> Deserialize<'de> for StorageProof
Available on crate features serde only.
impl<'de> Deserialize<'de> for StorageProof
serde only.Source§fn deserialize<__D>(__deserializer: __D) -> Result<Self, __D::Error>where
__D: Deserializer<'de>,
fn deserialize<__D>(__deserializer: __D) -> Result<Self, __D::Error>where
__D: Deserializer<'de>,
impl Eq for StorageProof
Source§impl From<EIP1186StorageProof> for StorageProof
Available on crate feature eip1186 only.
impl From<EIP1186StorageProof> for StorageProof
eip1186 only.Source§impl PartialEq for StorageProof
impl PartialEq for StorageProof
Source§impl Serialize for StorageProof
Available on crate features serde only.
impl Serialize for StorageProof
serde only.impl StructuralPartialEq for StorageProof
Auto Trait Implementations§
impl Freeze for StorageProof
impl RefUnwindSafe for StorageProof
impl Send for StorageProof
impl Sync for StorageProof
impl Unpin for StorageProof
impl UnsafeUnpin for StorageProof
impl UnwindSafe for StorageProof
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<T> DeserializeOwned for Twhere
T: for<'de> Deserialize<'de>,
§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> MaybeSerde for Twhere
T: Serialize + for<'de> Deserialize<'de>,
§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: 128 bytes