Struct AccountProof
pub struct AccountProof {
pub address: Address,
pub info: Option<Account>,
pub proof: Vec<Bytes>,
pub storage_root: FixedBytes<32>,
pub storage_proofs: Vec<StorageProof>,
}Expand description
The merkle proof with the relevant account info.
Fields§
§address: AddressThe address associated with the account.
info: Option<Account>Account info, if any.
proof: Vec<Bytes>Array of rlp-serialized merkle trie nodes which starting from the root node and following the path of the hashed address as key.
storage_root: FixedBytes<32>The storage trie root.
storage_proofs: Vec<StorageProof>Array of storage proofs as requested.
Implementations§
§impl AccountProof
impl AccountProof
pub fn into_eip1186_response(
self,
slots: Vec<JsonStorageKey>,
) -> EIP1186AccountProofResponse
Available on crate feature eip1186 only.
pub fn into_eip1186_response( self, slots: Vec<JsonStorageKey>, ) -> EIP1186AccountProofResponse
eip1186 only.Convert into an EIP-1186 account proof response.
For non-existent accounts, this returns KECCAK_EMPTY for codeHash and
EMPTY_ROOT_HASH for storageHash, matching reth’s default behavior.
Use Self::into_eip1186_response_with to customize the behavior for
non-existent accounts (e.g. returning B256::ZERO for geth compatibility).
pub fn into_eip1186_response_with(
self,
slots: Vec<JsonStorageKey>,
zero_empty_account: bool,
) -> EIP1186AccountProofResponse
Available on crate feature eip1186 only.
pub fn into_eip1186_response_with( self, slots: Vec<JsonStorageKey>, zero_empty_account: bool, ) -> EIP1186AccountProofResponse
eip1186 only.Convert into an EIP-1186 account proof response, with optional geth-compatible zero hashes for non-existent accounts.
When zero_empty_account is true, non-existent accounts return B256::ZERO
for both codeHash and storageHash, matching geth’s behavior since v1.13.4
(go-ethereum#28357).
When false, returns KECCAK_EMPTY / EMPTY_ROOT_HASH (reth default).
pub fn from_eip1186_proof(proof: EIP1186AccountProofResponse) -> AccountProof
Available on crate feature eip1186 only.
pub fn from_eip1186_proof(proof: EIP1186AccountProofResponse) -> AccountProof
eip1186 only.Converts an
EIP1186AccountProofResponse to an
AccountProof.
This is the inverse of Self::into_eip1186_response
§impl AccountProof
impl AccountProof
pub const fn new(address: Address) -> AccountProof
pub const fn new(address: Address) -> AccountProof
Create new account proof entity.
Trait Implementations§
§impl Clone for AccountProof
impl Clone for AccountProof
§fn clone(&self) -> AccountProof
fn clone(&self) -> AccountProof
1.0.0 (const: unstable) · Source§fn clone_from(&mut self, source: &Self)
fn clone_from(&mut self, source: &Self)
source. Read more§impl Debug for AccountProof
impl Debug for AccountProof
§impl Default for AccountProof
impl Default for AccountProof
§fn default() -> AccountProof
fn default() -> AccountProof
§impl<'de> Deserialize<'de> for AccountProof
impl<'de> Deserialize<'de> for AccountProof
§fn deserialize<__D>(
__deserializer: __D,
) -> Result<AccountProof, <__D as Deserializer<'de>>::Error>where
__D: Deserializer<'de>,
fn deserialize<__D>(
__deserializer: __D,
) -> Result<AccountProof, <__D as Deserializer<'de>>::Error>where
__D: Deserializer<'de>,
impl Eq for AccountProof
§impl From<EIP1186AccountProofResponse> for AccountProof
Available on crate feature eip1186 only.
impl From<EIP1186AccountProofResponse> for AccountProof
eip1186 only.§fn from(proof: EIP1186AccountProofResponse) -> AccountProof
fn from(proof: EIP1186AccountProofResponse) -> AccountProof
§impl PartialEq for AccountProof
impl PartialEq for AccountProof
§impl Serialize for AccountProof
impl Serialize for AccountProof
§fn serialize<__S>(
&self,
__serializer: __S,
) -> Result<<__S as Serializer>::Ok, <__S as Serializer>::Error>where
__S: Serializer,
fn serialize<__S>(
&self,
__serializer: __S,
) -> Result<<__S as Serializer>::Ok, <__S as Serializer>::Error>where
__S: Serializer,
impl StructuralPartialEq for AccountProof
Auto Trait Implementations§
impl Freeze for AccountProof
impl RefUnwindSafe for AccountProof
impl Send for AccountProof
impl Sync for AccountProof
impl Unpin for AccountProof
impl UnsafeUnpin for AccountProof
impl UnwindSafe for AccountProof
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> Instrument for T
impl<T> Instrument for T
Source§fn instrument(self, span: Span) -> Instrumented<Self> ⓘ
fn instrument(self, span: Span) -> Instrumented<Self> ⓘ
Source§fn in_current_span(self) -> Instrumented<Self> ⓘ
fn in_current_span(self) -> 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> ⓘ
Source§impl<T> WithSubscriber for T
impl<T> WithSubscriber for T
Source§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>,
Source§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: 192 bytes