pub struct ArbReceipt {
pub kind: ArbReceiptKind,
pub gas_used_for_l1: u64,
pub multi_gas_used: MultiGas,
}Expand description
Arbitrum receipt: wraps the per-type receipt kind with L1 gas metadata.
Fields§
§kind: ArbReceiptKind§gas_used_for_l1: u64Gas units used for L1 calldata posting (poster gas). Populated by the block executor after receipt construction.
multi_gas_used: MultiGasMulti-dimensional gas usage breakdown. Populated when multi-gas tracking is enabled (ArbOS v60+).
Implementations§
Source§impl ArbReceipt
impl ArbReceipt
Sourcepub fn new(kind: ArbReceiptKind) -> Self
pub fn new(kind: ArbReceiptKind) -> Self
Create a new receipt with no L1 gas usage (filled in later).
pub fn with_gas_used_for_l1(self, gas: u64) -> Self
Trait Implementations§
Source§impl Clone for ArbReceipt
impl Clone for ArbReceipt
Source§fn clone(&self) -> ArbReceipt
fn clone(&self) -> ArbReceipt
Returns a duplicate of the value. Read more
1.0.0 · Source§fn clone_from(&mut self, source: &Self)
fn clone_from(&mut self, source: &Self)
Performs copy-assignment from
source. Read moreSource§impl Compact for ArbReceipt
impl Compact for ArbReceipt
Source§fn to_compact<B>(&self, buf: &mut B) -> usize
fn to_compact<B>(&self, buf: &mut B) -> usize
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])
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
fn specialized_to_compact<B>(&self, buf: &mut B) -> usize
“Optional”: If there’s no good reason to use it, don’t.
§fn specialized_from_compact(buf: &[u8], len: usize) -> (Self, &[u8])
fn specialized_from_compact(buf: &[u8], len: usize) -> (Self, &[u8])
“Optional”: If there’s no good reason to use it, don’t.
Source§impl Compress for ArbReceipt
impl Compress for ArbReceipt
Source§type Compressed = Vec<u8>
type Compressed = Vec<u8>
Compressed type.
Source§fn compress_to_buf<B: BufMut + AsMut<[u8]>>(&self, buf: &mut B)
fn compress_to_buf<B: BufMut + AsMut<[u8]>>(&self, buf: &mut B)
Compresses data to a given buffer.
§fn uncompressable_ref(&self) -> Option<&[u8]>
fn uncompressable_ref(&self) -> Option<&[u8]>
If the type cannot be compressed, return its inner reference as
Some(self.as_ref())Source§impl Debug for ArbReceipt
impl Debug for ArbReceipt
Source§impl Decodable for ArbReceipt
impl Decodable for ArbReceipt
Source§impl Decodable2718 for ArbReceipt
impl Decodable2718 for ArbReceipt
Source§fn typed_decode(ty: u8, buf: &mut &[u8]) -> Eip2718Result<Self>
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>
fn fallback_decode(buf: &mut &[u8]) -> Eip2718Result<Self>
Decode the default variant. Read more
§fn extract_type_byte(buf: &mut &[u8]) -> Option<u8>
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>
fn decode_2718(buf: &mut &[u8]) -> Result<Self, Eip2718Error>
§fn decode_2718_exact(bytes: &[u8]) -> Result<Self, Eip2718Error>
fn decode_2718_exact(bytes: &[u8]) -> Result<Self, Eip2718Error>
Source§impl Decompress for ArbReceipt
impl Decompress for ArbReceipt
Source§fn decompress(value: &[u8]) -> Result<Self, DatabaseError>
fn decompress(value: &[u8]) -> Result<Self, DatabaseError>
Decompresses data coming from the database.
§fn decompress_owned(value: Vec<u8>) -> Result<Self, DatabaseError>
fn decompress_owned(value: Vec<u8>) -> Result<Self, DatabaseError>
Decompresses owned data coming from the database.
Source§impl<'de> Deserialize<'de> for ArbReceipt
impl<'de> Deserialize<'de> for ArbReceipt
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>,
Deserialize this value from the given Serde deserializer. Read more
Source§impl Eip2718EncodableReceipt for ArbReceipt
impl Eip2718EncodableReceipt for ArbReceipt
Source§fn eip2718_encoded_length_with_bloom(&self, bloom: &Bloom) -> usize
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)
fn eip2718_encode_with_bloom(&self, bloom: &Bloom, out: &mut dyn BufMut)
EIP-2718 encodes the receipt with the provided bloom filter.
Source§impl Encodable for ArbReceipt
impl Encodable for ArbReceipt
Source§impl Encodable2718 for ArbReceipt
impl Encodable2718 for ArbReceipt
Source§fn encode_2718_len(&self) -> usize
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)
fn encode_2718(&self, out: &mut dyn BufMut)
§fn encoded_2718(&self) -> Vec<u8> ⓘ
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>
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 into_encoded(self) -> WithEncoded<Self>
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
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)
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 InMemorySize for ArbReceipt
impl InMemorySize for ArbReceipt
Source§impl PartialEq for ArbReceipt
impl PartialEq for ArbReceipt
Source§impl RlpDecodableReceipt for ArbReceipt
impl RlpDecodableReceipt for ArbReceipt
Source§fn rlp_decode_with_bloom(buf: &mut &[u8]) -> Result<ReceiptWithBloom<Self>>
fn rlp_decode_with_bloom(buf: &mut &[u8]) -> Result<ReceiptWithBloom<Self>>
RLP decodes receipt and [
Bloom] into [ReceiptWithBloom] instance.Source§impl RlpEncodableReceipt for ArbReceipt
impl RlpEncodableReceipt for ArbReceipt
Source§fn rlp_encoded_length_with_bloom(&self, bloom: &Bloom) -> usize
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)
fn rlp_encode_with_bloom(&self, bloom: &Bloom, out: &mut dyn BufMut)
RLP encodes the receipt with the provided bloom filter.
Source§impl Serialize for ArbReceipt
impl Serialize for ArbReceipt
Source§impl SetArbReceiptFields for ArbReceipt
impl SetArbReceiptFields for ArbReceipt
fn set_gas_used_for_l1(&mut self, gas: u64)
fn set_multi_gas_used(&mut self, multi_gas: MultiGas)
Source§impl TxReceipt for ArbReceipt
impl TxReceipt for ArbReceipt
Source§fn status_or_post_state(&self) -> Eip658Value
fn status_or_post_state(&self) -> Eip658Value
Returns the status or post state of the transaction. Read more
Source§fn bloom(&self) -> Bloom
fn bloom(&self) -> Bloom
Returns the bloom filter for the logs in the receipt. This operation
may be expensive.
Source§fn cumulative_gas_used(&self) -> u64
fn cumulative_gas_used(&self) -> u64
Returns the cumulative gas used in the block after this transaction was executed.
Source§fn into_logs(self) -> Vec<Self::Log>
fn into_logs(self) -> Vec<Self::Log>
Consumes the type and returns the logs emitted by this transaction as a vector.
§fn bloom_cheap(&self) -> Option<Bloom>
fn bloom_cheap(&self) -> Option<Bloom>
Returns the bloom filter for the logs in the receipt, if it is cheap to
compute.
§fn with_bloom_ref(&self) -> ReceiptWithBloom<&Self>
fn with_bloom_ref(&self) -> ReceiptWithBloom<&Self>
Returns [
ReceiptWithBloom] with the computed bloom filter [Self::bloom] and a reference
to the receipt.§fn into_with_bloom(self) -> ReceiptWithBloom<Self>
fn into_with_bloom(self) -> ReceiptWithBloom<Self>
Consumes the type and converts it into [
ReceiptWithBloom] with the computed bloom filter
[Self::bloom] and the receipt.§fn into_with_bloom_unchecked(self, logs_bloom: Bloom) -> ReceiptWithBloom<Self>
fn into_with_bloom_unchecked(self, logs_bloom: Bloom) -> ReceiptWithBloom<Self>
Consumes the type and converts it into [
ReceiptWithBloom] with the given bloom filter.Source§impl Typed2718 for ArbReceipt
impl Typed2718 for ArbReceipt
§fn is_eip2930(&self) -> bool
fn is_eip2930(&self) -> bool
Returns true if the type is an EIP-2930 transaction.
§fn is_eip1559(&self) -> bool
fn is_eip1559(&self) -> bool
Returns true if the type is an EIP-1559 transaction.
§fn is_eip4844(&self) -> bool
fn is_eip4844(&self) -> bool
Returns true if the type is an EIP-4844 transaction.
§fn is_eip7702(&self) -> bool
fn is_eip7702(&self) -> bool
Returns true if the type is an EIP-7702 transaction.
impl Eq for ArbReceipt
impl RlpBincode for ArbReceipt
impl StructuralPartialEq for ArbReceipt
Auto Trait Implementations§
impl Freeze for ArbReceipt
impl RefUnwindSafe for ArbReceipt
impl Send for ArbReceipt
impl Sync for ArbReceipt
impl Unpin for ArbReceipt
impl UnwindSafe for ArbReceipt
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
Mutably borrows from an owned value. Read more
Source§impl<T> CloneToUninit for Twhere
T: Clone,
impl<T> CloneToUninit for Twhere
T: Clone,
§impl<T> Conv for T
impl<T> Conv for T
§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
Compare self to
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
Checks if this value is equivalent to the given key. Read more
§impl<T> FmtForward for T
impl<T> FmtForward for T
§fn fmt_binary(self) -> FmtBinary<Self>where
Self: Binary,
fn fmt_binary(self) -> FmtBinary<Self>where
Self: Binary,
Causes
self to use its Binary implementation when Debug-formatted.§fn fmt_display(self) -> FmtDisplay<Self>where
Self: Display,
fn fmt_display(self) -> FmtDisplay<Self>where
Self: Display,
Causes
self to use its Display implementation when
Debug-formatted.§fn fmt_lower_exp(self) -> FmtLowerExp<Self>where
Self: LowerExp,
fn fmt_lower_exp(self) -> FmtLowerExp<Self>where
Self: LowerExp,
Causes
self to use its LowerExp implementation when
Debug-formatted.§fn fmt_lower_hex(self) -> FmtLowerHex<Self>where
Self: LowerHex,
fn fmt_lower_hex(self) -> FmtLowerHex<Self>where
Self: LowerHex,
Causes
self to use its LowerHex implementation when
Debug-formatted.§fn fmt_octal(self) -> FmtOctal<Self>where
Self: Octal,
fn fmt_octal(self) -> FmtOctal<Self>where
Self: Octal,
Causes
self to use its Octal implementation when Debug-formatted.§fn fmt_pointer(self) -> FmtPointer<Self>where
Self: Pointer,
fn fmt_pointer(self) -> FmtPointer<Self>where
Self: Pointer,
Causes
self to use its Pointer implementation when
Debug-formatted.§fn fmt_upper_exp(self) -> FmtUpperExp<Self>where
Self: UpperExp,
fn fmt_upper_exp(self) -> FmtUpperExp<Self>where
Self: UpperExp,
Causes
self to use its UpperExp implementation when
Debug-formatted.§fn fmt_upper_hex(self) -> FmtUpperHex<Self>where
Self: UpperHex,
fn fmt_upper_hex(self) -> FmtUpperHex<Self>where
Self: UpperHex,
Causes
self to use its UpperHex implementation when
Debug-formatted.§fn fmt_list(self) -> FmtList<Self>where
&'a Self: for<'a> IntoIterator,
fn fmt_list(self) -> FmtList<Self>where
&'a Self: for<'a> IntoIterator,
Formats each item in a sequence. Read more
§impl<T> Instrument for T
impl<T> Instrument for T
§fn instrument(self, span: Span) -> Instrumented<Self>
fn instrument(self, span: Span) -> Instrumented<Self>
§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>
Converts
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>
Converts
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 more§impl<T> Pipe for Twhere
T: ?Sized,
impl<T> Pipe for Twhere
T: ?Sized,
§fn pipe<R>(self, func: impl FnOnce(Self) -> R) -> Rwhere
Self: Sized,
fn pipe<R>(self, func: impl FnOnce(Self) -> R) -> Rwhere
Self: Sized,
Pipes by value. This is generally the method you want to use. Read more
§fn pipe_ref<'a, R>(&'a self, func: impl FnOnce(&'a Self) -> R) -> Rwhere
R: 'a,
fn pipe_ref<'a, R>(&'a self, func: impl FnOnce(&'a Self) -> R) -> Rwhere
R: 'a,
Borrows
self and passes that borrow into the pipe function. Read more§fn pipe_ref_mut<'a, R>(&'a mut self, func: impl FnOnce(&'a mut Self) -> R) -> Rwhere
R: 'a,
fn pipe_ref_mut<'a, R>(&'a mut self, func: impl FnOnce(&'a mut Self) -> R) -> Rwhere
R: 'a,
Mutably borrows
self and passes that borrow into the pipe function. Read more§fn pipe_borrow<'a, B, R>(&'a self, func: impl FnOnce(&'a B) -> R) -> R
fn pipe_borrow<'a, B, R>(&'a self, func: impl FnOnce(&'a B) -> R) -> R
§fn pipe_borrow_mut<'a, B, R>(
&'a mut self,
func: impl FnOnce(&'a mut B) -> R,
) -> R
fn pipe_borrow_mut<'a, B, R>( &'a mut self, func: impl FnOnce(&'a mut B) -> R, ) -> R
§fn pipe_as_ref<'a, U, R>(&'a self, func: impl FnOnce(&'a U) -> R) -> R
fn pipe_as_ref<'a, U, R>(&'a self, func: impl FnOnce(&'a U) -> R) -> R
Borrows
self, then passes self.as_ref() into the pipe function.§fn pipe_as_mut<'a, U, R>(&'a mut self, func: impl FnOnce(&'a mut U) -> R) -> R
fn pipe_as_mut<'a, U, R>(&'a mut self, func: impl FnOnce(&'a mut U) -> R) -> R
Mutably borrows
self, then passes self.as_mut() into the pipe
function.§fn pipe_deref<'a, T, R>(&'a self, func: impl FnOnce(&'a T) -> R) -> R
fn pipe_deref<'a, T, R>(&'a self, func: impl FnOnce(&'a T) -> R) -> R
Borrows
self, then passes self.deref() into the pipe function.§impl<T> Pointable for T
impl<T> Pointable for T
§impl<T> SerdeBincodeCompat for Twhere
T: RlpBincode + 'static,
impl<T> SerdeBincodeCompat for Twhere
T: RlpBincode + 'static,
§type BincodeRepr<'a> = Bytes
type BincodeRepr<'a> = Bytes
Serde representation of the type for bincode serialization. Read more
§impl<T> Tap for T
impl<T> Tap for T
§fn tap_borrow<B>(self, func: impl FnOnce(&B)) -> Self
fn tap_borrow<B>(self, func: impl FnOnce(&B)) -> Self
Immutable access to the
Borrow<B> of a value. Read more§fn tap_borrow_mut<B>(self, func: impl FnOnce(&mut B)) -> Self
fn tap_borrow_mut<B>(self, func: impl FnOnce(&mut B)) -> Self
Mutable access to the
BorrowMut<B> of a value. Read more§fn tap_ref<R>(self, func: impl FnOnce(&R)) -> Self
fn tap_ref<R>(self, func: impl FnOnce(&R)) -> Self
Immutable access to the
AsRef<R> view of a value. Read more§fn tap_ref_mut<R>(self, func: impl FnOnce(&mut R)) -> Self
fn tap_ref_mut<R>(self, func: impl FnOnce(&mut R)) -> Self
Mutable access to the
AsMut<R> view of a value. Read more§fn tap_deref<T>(self, func: impl FnOnce(&T)) -> Self
fn tap_deref<T>(self, func: impl FnOnce(&T)) -> Self
Immutable access to the
Deref::Target of a value. Read more§fn tap_deref_mut<T>(self, func: impl FnOnce(&mut T)) -> Self
fn tap_deref_mut<T>(self, func: impl FnOnce(&mut T)) -> Self
Mutable access to the
Deref::Target of a value. Read more§fn tap_dbg(self, func: impl FnOnce(&Self)) -> Self
fn tap_dbg(self, func: impl FnOnce(&Self)) -> Self
Calls
.tap() only in debug builds, and is erased in release builds.§fn tap_mut_dbg(self, func: impl FnOnce(&mut Self)) -> Self
fn tap_mut_dbg(self, func: impl FnOnce(&mut Self)) -> Self
Calls
.tap_mut() only in debug builds, and is erased in release
builds.§fn tap_borrow_dbg<B>(self, func: impl FnOnce(&B)) -> Self
fn tap_borrow_dbg<B>(self, func: impl FnOnce(&B)) -> Self
Calls
.tap_borrow() only in debug builds, and is erased in release
builds.§fn tap_borrow_mut_dbg<B>(self, func: impl FnOnce(&mut B)) -> Self
fn tap_borrow_mut_dbg<B>(self, func: impl FnOnce(&mut B)) -> Self
Calls
.tap_borrow_mut() only in debug builds, and is erased in release
builds.§fn tap_ref_dbg<R>(self, func: impl FnOnce(&R)) -> Self
fn tap_ref_dbg<R>(self, func: impl FnOnce(&R)) -> Self
Calls
.tap_ref() only in debug builds, and is erased in release
builds.§fn tap_ref_mut_dbg<R>(self, func: impl FnOnce(&mut R)) -> Self
fn tap_ref_mut_dbg<R>(self, func: impl FnOnce(&mut R)) -> Self
Calls
.tap_ref_mut() only in debug builds, and is erased in release
builds.§fn tap_deref_dbg<T>(self, func: impl FnOnce(&T)) -> Self
fn tap_deref_dbg<T>(self, func: impl FnOnce(&T)) -> Self
Calls
.tap_deref() only in debug builds, and is erased in release
builds.