Receipt

Type Alias Receipt 

Source
pub type Receipt<T = TxType> = EthereumReceipt<T>;
Expand description

Raw ethereum receipt.

Aliased Type§

pub struct Receipt<T = TxType> {
    pub tx_type: T,
    pub success: bool,
    pub cumulative_gas_used: u64,
    pub logs: Vec<Log>,
}

Fields§

§tx_type: T

Receipt type.

§success: bool

If transaction is executed successfully.

This is the statusCode

§cumulative_gas_used: u64

Gas used

§logs: Vec<Log>

Log send from contracts.

Implementations§

Source§

impl Receipt

Source

pub const fn bitflag_encoded_bytes() -> usize

Available on crate feature reth-codec only.

Used bytes by ReceiptFlags

Source

pub const fn bitflag_unused_bits() -> usize

Available on crate feature reth-codec only.

Unused bits for new fields by ReceiptFlags

Source§

impl<T> Receipt<T>

Source

pub fn into_rpc( self, next_log_index: usize, meta: TransactionMeta, ) -> RpcReceipt<T>

Available on crate feature rpc only.

Converts the logs of the receipt to RPC logs.

Source§

impl<T: TxTy> Receipt<T>

Source

pub fn rlp_encoded_fields_length(&self, bloom: &Bloom) -> usize

Returns length of RLP-encoded receipt fields with the given [Bloom] without an RLP header.

Source

pub fn rlp_encode_fields(&self, bloom: &Bloom, out: &mut dyn BufMut)

RLP-encodes receipt fields with the given [Bloom] without an RLP header.

Source

pub fn rlp_header_inner(&self, bloom: &Bloom) -> Header

Returns RLP header for inner encoding.

Source

pub fn rlp_decode_inner( buf: &mut &[u8], tx_type: T, ) -> Result<ReceiptWithBloom<Self>>

RLP-decodes the receipt from the provided buffer. This does not expect a type byte or network header.

Source

pub fn calculate_receipt_root_no_memo(receipts: &[Self]) -> B256

Calculates the receipt root for a header for the reference type of Receipt.

NOTE: Prefer proofs::calculate_receipt_root if you have log blooms memoized.

Source

pub fn rlp_encoded_fields_length_without_bloom(&self) -> usize

Returns length of RLP-encoded receipt fields without the given [Bloom] without an RLP header

Source

pub fn rlp_encode_fields_without_bloom(&self, out: &mut dyn BufMut)

RLP-encodes receipt fields without the given [Bloom] without an RLP header.

Source

pub fn rlp_header_inner_without_bloom(&self) -> Header

Returns RLP header for inner encoding.

Source

pub fn rlp_decode_inner_without_bloom( buf: &mut &[u8], tx_type: T, ) -> Result<Self>

RLP-decodes the receipt from the provided buffer. This does not expect a type byte or network header.

Trait Implementations§

Source§

impl<T: Compact> Compact for Receipt<T>

Available on crate feature reth-codec only.
Source§

fn to_compact<B>(&self, buf: &mut B) -> usize
where B: BufMut + AsMut<[u8]>,

Takes a buffer which can be written to. Ideally, it returns the length written to.
Source§

fn from_compact(buf: &[u8], _len: usize) -> (Self, &[u8])

Takes a buffer which can be read from. Returns the object and buf with its internal cursor advanced (eg..advance(len)). Read more
§

fn specialized_to_compact<B>(&self, buf: &mut B) -> usize
where B: BufMut + AsMut<[u8]>,

“Optional”: If there’s no good reason to use it, don’t.
§

fn specialized_from_compact(buf: &[u8], len: usize) -> (Self, &[u8])

“Optional”: If there’s no good reason to use it, don’t.
Source§

impl<T: TxTy> Decodable for Receipt<T>

Source§

fn decode(buf: &mut &[u8]) -> Result<Self>

Decodes the blob into the appropriate type. buf must be advanced past the decoded object.
Source§

impl<T: TxTy> Decodable2718 for Receipt<T>

Source§

fn typed_decode(ty: u8, buf: &mut &[u8]) -> Eip2718Result<Self>

Decode the appropriate variant, based on the type flag. Read more
Source§

fn fallback_decode(buf: &mut &[u8]) -> Eip2718Result<Self>

Decode the default variant. Read more
§

fn extract_type_byte(buf: &mut &[u8]) -> Option<u8>

Extract the type byte from the buffer, if any. The type byte is the first byte, provided that first byte is 0x7f or lower.
§

fn decode_2718(buf: &mut &[u8]) -> Result<Self, Eip2718Error>

Decode the transaction according to EIP-2718 rules. First a 1-byte type flag in the range 0x0-0x7f, then the body of the transaction. Read more
§

fn decode_2718_exact(bytes: &[u8]) -> Result<Self, Eip2718Error>

Decode a transaction according to EIP-2718, ensuring no trailing bytes. Read more
§

fn network_decode(buf: &mut &[u8]) -> Result<Self, Eip2718Error>

Decode an EIP-2718 transaction in the network format. The network format is used ONLY by the Ethereum p2p protocol. Do not call this method unless you are building a p2p protocol client. Read more
Source§

impl<T: TxTy> Eip2718EncodableReceipt for Receipt<T>

Source§

fn eip2718_encoded_length_with_bloom(&self, bloom: &Bloom) -> usize

EIP-2718 encoded length with the provided bloom filter.
Source§

fn eip2718_encode_with_bloom(&self, bloom: &Bloom, out: &mut dyn BufMut)

EIP-2718 encodes the receipt with the provided bloom filter.
Source§

impl<T: TxTy> Encodable for Receipt<T>

Source§

fn encode(&self, out: &mut dyn BufMut)

Encodes the type into the out buffer.
Source§

fn length(&self) -> usize

Returns the length of the encoding of this type in bytes. Read more
Source§

impl<T: TxTy> Encodable2718 for Receipt<T>

Source§

fn encode_2718_len(&self) -> usize

The length of the 2718 encoded envelope. This is the length of the type flag + the length of the inner encoding.
Source§

fn encode_2718(&self, out: &mut dyn BufMut)

Encode the transaction according to EIP-2718 rules. First a 1-byte type flag in the range 0x0-0x7f, then the body of the transaction. Read more
§

fn type_flag(&self) -> Option<u8>

Return the type flag (if any). Read more
§

fn encoded_2718(&self) -> Vec<u8>

Encode the transaction according to [EIP-2718] rules. First a 1-byte type flag in the range 0x0-0x7f, then the body of the transaction. Read more
§

fn trie_hash(&self) -> FixedBytes<32>

Compute the hash as committed to in the MPT trie. This hash is used ONLY by the Ethereum merkle-patricia trie and associated proofs. Do not call this method unless you are building a full or light client. Read more
§

fn seal(self) -> Sealed<Self>

Seal the encodable, by encoding and hashing it.
§

fn into_encoded(self) -> WithEncoded<Self>

A convenience function that encodes the value in the 2718 format and wraps it in a [WithEncoded] wrapper. Read more
§

fn network_len(&self) -> usize

The length of the 2718 encoded envelope in network format. This is the length of the header + the length of the type flag and inner encoding.
§

fn network_encode(&self, out: &mut dyn BufMut)

Encode in the network format. The network format is used ONLY by the Ethereum p2p protocol. Do not call this method unless you are building a p2p protocol client. Read more
Source§

impl<'a, T> From<Receipt<'a, T>> for Receipt<T>

Available on crate features serde and serde-bincode-compat only.
Source§

fn from(value: Receipt<'a, T>) -> Self

Converts to this type from the input type.
Source§

impl<T> From<ReceiptEnvelope<T>> for Receipt<TxType>
where T: Into<Log>,

Source§

fn from(value: ReceiptEnvelope<T>) -> Self

Converts to this type from the input type.
Source§

impl<T: TxTy> InMemorySize for Receipt<T>

Source§

fn size(&self) -> usize

Returns a heuristic for the in-memory size of a struct.
Source§

impl<T: TxTy> IsTyped2718 for Receipt<T>

Source§

fn is_type(type_id: u8) -> bool

Returns true if the given type ID corresponds to a supported typed transaction.
Source§

impl<T: TxTy> RlpDecodableReceipt for Receipt<T>

Source§

fn rlp_decode_with_bloom(buf: &mut &[u8]) -> Result<ReceiptWithBloom<Self>>

RLP decodes receipt and [Bloom] into [ReceiptWithBloom] instance.
Source§

impl<T: TxTy> RlpEncodableReceipt for Receipt<T>

Source§

fn rlp_encoded_length_with_bloom(&self, bloom: &Bloom) -> usize

Returns the length of the receipt payload with the provided bloom filter.
Source§

fn rlp_encode_with_bloom(&self, bloom: &Bloom, out: &mut dyn BufMut)

RLP encodes the receipt with the provided bloom filter.
Source§

impl<T> SerdeBincodeCompat for Receipt<T>
where T: Copy + Serialize + TryFrom<u8, Error = Eip2718Error> + Debug + 'static,

Available on crate features serde and serde-bincode-compat only.
Source§

type BincodeRepr<'a> = Receipt<'a, T>

Serde representation of the type for bincode serialization. Read more
Source§

fn as_repr(&self) -> Self::BincodeRepr<'_>

Convert this type into its bincode representation
Source§

fn from_repr(repr: Self::BincodeRepr<'_>) -> Self

Convert from the bincode representation
Source§

impl<T: TxTy> Typed2718 for Receipt<T>

Source§

fn ty(&self) -> u8

Returns the EIP-2718 type flag.
§

fn is_type(&self, ty: u8) -> bool

Returns true if the type matches the given type.
§

fn is_legacy(&self) -> bool

Returns true if the type is a legacy transaction.
§

fn is_eip2930(&self) -> bool

Returns true if the type is an EIP-2930 transaction.
§

fn is_eip1559(&self) -> bool

Returns true if the type is an EIP-1559 transaction.
§

fn is_eip4844(&self) -> bool

Returns true if the type is an EIP-4844 transaction.
§

fn is_eip7702(&self) -> bool

Returns true if the type is an EIP-7702 transaction.

Layout§

Note: Unable to compute type layout, possibly due to this type having generic parameters. Layout can only be computed for concrete, fully-instantiated types.