Enum alloy_consensus::receipt::envelope::ReceiptEnvelope
source · #[non_exhaustive]pub enum ReceiptEnvelope<T = Log> {
Legacy(ReceiptWithBloom<T>),
Eip2930(ReceiptWithBloom<T>),
Eip1559(ReceiptWithBloom<T>),
Eip4844(ReceiptWithBloom<T>),
}
Expand description
Receipt envelope, as defined in EIP-2718.
This enum distinguishes between tagged and untagged legacy receipts, as the
in-protocol Merkle tree may commit to EITHER 0-prefixed or raw. Therefore
we must ensure that encoding returns the precise byte-array that was
decoded, preserving the presence or absence of the TransactionType
flag.
Transaction receipt payloads are specified in their respective EIPs.
Variants (Non-exhaustive)§
This enum is marked as non-exhaustive
Legacy(ReceiptWithBloom<T>)
Receipt envelope with no type flag.
Eip2930(ReceiptWithBloom<T>)
Receipt envelope with type flag 1, containing a EIP-2930 receipt.
Eip1559(ReceiptWithBloom<T>)
Receipt envelope with type flag 2, containing a EIP-1559 receipt.
Eip4844(ReceiptWithBloom<T>)
Receipt envelope with type flag 2, containing a EIP-4844 receipt.
Implementations§
source§impl<T> ReceiptEnvelope<T>
impl<T> ReceiptEnvelope<T>
sourcepub fn is_success(&self) -> bool
pub fn is_success(&self) -> bool
Return true if the transaction was successful.
sourcepub fn cumulative_gas_used(&self) -> u128
pub fn cumulative_gas_used(&self) -> u128
Returns the cumulative gas used at this receipt.
sourcepub fn logs_bloom(&self) -> &Bloom
pub fn logs_bloom(&self) -> &Bloom
Return the receipt’s bloom.
sourcepub const fn as_receipt_with_bloom(&self) -> Option<&ReceiptWithBloom<T>>
pub const fn as_receipt_with_bloom(&self) -> Option<&ReceiptWithBloom<T>>
Return the inner receipt with bloom. Currently this is infallible, however, future receipt types may be added.
sourcepub const fn as_receipt(&self) -> Option<&Receipt<T>>
pub const fn as_receipt(&self) -> Option<&Receipt<T>>
Return the inner receipt. Currently this is infallible, however, future receipt types may be added.
source§impl ReceiptEnvelope
impl ReceiptEnvelope
sourcepub fn inner_length(&self) -> usize
pub fn inner_length(&self) -> usize
Get the length of the inner receipt in the 2718 encoding.
sourcepub fn rlp_payload_length(&self) -> usize
pub fn rlp_payload_length(&self) -> usize
Calculate the length of the rlp payload of the network encoded receipt.
Trait Implementations§
source§impl<'a, T> Arbitrary<'a> for ReceiptEnvelope<T>where
T: Arbitrary<'a>,
Available on crate feature arbitrary
only.
impl<'a, T> Arbitrary<'a> for ReceiptEnvelope<T>where
T: Arbitrary<'a>,
arbitrary
only.source§fn arbitrary(u: &mut Unstructured<'a>) -> Result<Self>
fn arbitrary(u: &mut Unstructured<'a>) -> Result<Self>
Self
from the given unstructured data. Read more§fn arbitrary_take_rest(u: Unstructured<'a>) -> Result<Self, Error>
fn arbitrary_take_rest(u: Unstructured<'a>) -> Result<Self, Error>
Self
from the entirety of the given
unstructured data. Read moresource§impl<T: Clone> Clone for ReceiptEnvelope<T>
impl<T: Clone> Clone for ReceiptEnvelope<T>
source§fn clone(&self) -> ReceiptEnvelope<T>
fn clone(&self) -> ReceiptEnvelope<T>
1.0.0 · source§fn clone_from(&mut self, source: &Self)
fn clone_from(&mut self, source: &Self)
source
. Read moresource§impl<T: Debug> Debug for ReceiptEnvelope<T>
impl<T: Debug> Debug for ReceiptEnvelope<T>
source§impl Decodable for ReceiptEnvelope
impl Decodable for ReceiptEnvelope
source§impl Decodable2718 for ReceiptEnvelope
impl Decodable2718 for ReceiptEnvelope
source§fn typed_decode(ty: u8, buf: &mut &[u8]) -> Eip2718Result<Self>
fn typed_decode(ty: u8, buf: &mut &[u8]) -> Eip2718Result<Self>
source§fn fallback_decode(buf: &mut &[u8]) -> Eip2718Result<Self>
fn fallback_decode(buf: &mut &[u8]) -> Eip2718Result<Self>
§fn extract_type_byte(buf: &mut &[u8]) -> Option<u8>
fn extract_type_byte(buf: &mut &[u8]) -> Option<u8>
§fn decode_2718(buf: &mut &[u8]) -> Result<Self, Eip2718Error>
fn decode_2718(buf: &mut &[u8]) -> Result<Self, Eip2718Error>
source§impl<'de, T> Deserialize<'de> for ReceiptEnvelope<T>where
T: Deserialize<'de>,
impl<'de, T> Deserialize<'de> for ReceiptEnvelope<T>where
T: Deserialize<'de>,
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>,
source§impl Encodable for ReceiptEnvelope
impl Encodable for ReceiptEnvelope
source§impl Encodable2718 for ReceiptEnvelope
impl Encodable2718 for ReceiptEnvelope
source§fn encode_2718_len(&self) -> usize
fn encode_2718_len(&self) -> usize
source§fn encode_2718(&self, out: &mut dyn BufMut)
fn encode_2718(&self, out: &mut dyn BufMut)
§fn encoded_2718(&self) -> Vec<u8> ⓘ
fn encoded_2718(&self) -> Vec<u8> ⓘ
§fn trie_hash(&self) -> FixedBytes<32>
fn trie_hash(&self) -> FixedBytes<32>
§fn network_encode(&self, out: &mut dyn BufMut)
fn network_encode(&self, out: &mut dyn BufMut)
source§impl<T: PartialEq> PartialEq for ReceiptEnvelope<T>
impl<T: PartialEq> PartialEq for ReceiptEnvelope<T>
source§fn eq(&self, other: &ReceiptEnvelope<T>) -> bool
fn eq(&self, other: &ReceiptEnvelope<T>) -> bool
self
and other
values to be equal, and is used
by ==
.source§impl<T> Serialize for ReceiptEnvelope<T>where
T: Serialize,
impl<T> Serialize for ReceiptEnvelope<T>where
T: Serialize,
source§impl<T> TxReceipt<T> for ReceiptEnvelope<T>
impl<T> TxReceipt<T> for ReceiptEnvelope<T>
source§fn cumulative_gas_used(&self) -> u128
fn cumulative_gas_used(&self) -> u128
Returns the cumulative gas used at this receipt.
source§fn status_or_post_state(&self) -> &Eip658Value
fn status_or_post_state(&self) -> &Eip658Value
source§fn bloom_cheap(&self) -> Option<Bloom>
fn bloom_cheap(&self) -> Option<Bloom>
impl<T: Eq> Eq for ReceiptEnvelope<T>
impl<T> StructuralPartialEq for ReceiptEnvelope<T>
Auto Trait Implementations§
impl<T> Freeze for ReceiptEnvelope<T>
impl<T> RefUnwindSafe for ReceiptEnvelope<T>where
T: RefUnwindSafe,
impl<T> Send for ReceiptEnvelope<T>where
T: Send,
impl<T> Sync for ReceiptEnvelope<T>where
T: Sync,
impl<T> Unpin for ReceiptEnvelope<T>where
T: Unpin,
impl<T> UnwindSafe for ReceiptEnvelope<T>where
T: UnwindSafe,
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
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> DeserializeOwned for Twhere
T: for<'de> Deserialize<'de>,
impl<T> Eip2718Envelope for Twhere
T: Decodable2718 + Encodable2718,
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: 352 bytes
Size for each variant:
Legacy
: 336 bytesEip2930
: 336 bytesEip1559
: 336 bytesEip4844
: 336 bytes