Enum PooledTransactionsElement
pub enum PooledTransactionsElement {
Legacy {
transaction: TxLegacy,
signature: PrimitiveSignature,
hash: FixedBytes<32>,
},
Eip2930 {
transaction: TxEip2930,
signature: PrimitiveSignature,
hash: FixedBytes<32>,
},
Eip1559 {
transaction: TxEip1559,
signature: PrimitiveSignature,
hash: FixedBytes<32>,
},
Eip7702 {
transaction: TxEip7702,
signature: PrimitiveSignature,
hash: FixedBytes<32>,
},
BlobTransaction(BlobTransaction),
}
Expand description
A response to GetPooledTransactions
. This can include either a blob transaction, or a
non-4844 signed transaction.
Variants§
Legacy
A legacy transaction
Fields
transaction: TxLegacy
The inner transaction
signature: PrimitiveSignature
The signature
hash: FixedBytes<32>
The hash of the transaction
Eip2930
An EIP-2930 typed transaction
Fields
transaction: TxEip2930
The inner transaction
signature: PrimitiveSignature
The signature
hash: FixedBytes<32>
The hash of the transaction
Eip1559
An EIP-1559 typed transaction
Fields
transaction: TxEip1559
The inner transaction
signature: PrimitiveSignature
The signature
hash: FixedBytes<32>
The hash of the transaction
Eip7702
An EIP-7702 typed transaction
Fields
transaction: TxEip7702
The inner transaction
signature: PrimitiveSignature
The signature
hash: FixedBytes<32>
The hash of the transaction
BlobTransaction(BlobTransaction)
A blob transaction, which includes the transaction, blob data, commitments, and proofs.
Implementations§
§impl PooledTransactionsElement
impl PooledTransactionsElement
pub fn try_from_broadcast(
tx: TransactionSigned,
) -> Result<PooledTransactionsElement, TransactionSigned>
pub fn try_from_broadcast( tx: TransactionSigned, ) -> Result<PooledTransactionsElement, TransactionSigned>
Tries to convert a TransactionSigned
into a PooledTransactionsElement
.
This function used as a helper to convert from a decoded p2p broadcast message to
PooledTransactionsElement
. Since BlobTransaction
is disallowed to be broadcasted on
p2p, return an err if tx
is Transaction::Eip4844
.
pub fn try_from_blob_transaction(
tx: TransactionSigned,
sidecar: BlobTransactionSidecar,
) -> Result<PooledTransactionsElement, TransactionSigned>
pub fn try_from_blob_transaction( tx: TransactionSigned, sidecar: BlobTransactionSidecar, ) -> Result<PooledTransactionsElement, TransactionSigned>
Converts from an EIP-4844 TransactionSignedEcRecovered
to a
PooledTransactionsElementEcRecovered
with the given sidecar.
Returns an Err
containing the original TransactionSigned
if the transaction is not
EIP-4844.
pub fn signature_hash(&self) -> FixedBytes<32>
pub fn signature_hash(&self) -> FixedBytes<32>
Heavy operation that return signature hash over rlp encoded transaction. It is only for signature signing or signer recovery.
pub const fn hash(&self) -> &FixedBytes<32>
pub const fn hash(&self) -> &FixedBytes<32>
Reference to transaction hash. Used to identify transaction.
pub const fn signature(&self) -> &PrimitiveSignature
pub const fn signature(&self) -> &PrimitiveSignature
Returns the signature of the transaction.
pub fn recover_signer(&self) -> Option<Address>
pub fn recover_signer(&self) -> Option<Address>
Recover signer from signature and hash.
Returns None
if the transaction’s signature is invalid, see also Self::recover_signer
.
pub fn try_into_ecrecovered(
self,
) -> Result<PooledTransactionsElementEcRecovered, PooledTransactionsElement>
pub fn try_into_ecrecovered( self, ) -> Result<PooledTransactionsElementEcRecovered, PooledTransactionsElement>
Tries to recover signer and return PooledTransactionsElementEcRecovered
.
Returns Err(Self)
if the transaction’s signature is invalid, see also
Self::recover_signer
.
pub fn into_ecrecovered_transaction(
self,
signer: Address,
) -> TransactionSignedEcRecovered
pub fn into_ecrecovered_transaction( self, signer: Address, ) -> TransactionSignedEcRecovered
Create TransactionSignedEcRecovered
by converting this transaction into
TransactionSigned
and Address
of the signer.
pub fn into_transaction(self) -> TransactionSigned
pub fn into_transaction(self) -> TransactionSigned
Returns the inner TransactionSigned
.
pub const fn is_eip4844(&self) -> bool
pub const fn is_eip4844(&self) -> bool
Returns true if the transaction is an EIP-4844 transaction.
pub const fn as_legacy(&self) -> Option<&TxLegacy>
pub const fn as_legacy(&self) -> Option<&TxLegacy>
Returns the [TxLegacy
] variant if the transaction is a legacy transaction.
pub const fn as_eip2930(&self) -> Option<&TxEip2930>
pub const fn as_eip2930(&self) -> Option<&TxEip2930>
Returns the [TxEip2930
] variant if the transaction is an EIP-2930 transaction.
pub const fn as_eip1559(&self) -> Option<&TxEip1559>
pub const fn as_eip1559(&self) -> Option<&TxEip1559>
Returns the [TxEip1559
] variant if the transaction is an EIP-1559 transaction.
pub const fn as_eip4844(&self) -> Option<&TxEip4844>
pub const fn as_eip4844(&self) -> Option<&TxEip4844>
Returns the [TxEip4844
] variant if the transaction is an EIP-4844 transaction.
pub const fn as_eip7702(&self) -> Option<&TxEip7702>
pub const fn as_eip7702(&self) -> Option<&TxEip7702>
Returns the [TxEip7702
] variant if the transaction is an EIP-7702 transaction.
pub fn blob_gas_used(&self) -> Option<u64>
pub fn blob_gas_used(&self) -> Option<u64>
Returns the blob gas used for all blobs of the EIP-4844 transaction if it is an EIP-4844 transaction.
This is the number of blobs times the
DATA_GAS_PER_BLOB
a single blob consumes.
pub const fn max_fee_per_blob_gas(&self) -> Option<u128>
pub const fn max_fee_per_blob_gas(&self) -> Option<u128>
Max fee per blob gas for eip4844 transaction [TxEip4844
].
Returns None
for non-eip4844 transactions.
This is also commonly referred to as the “Blob Gas Fee Cap” (BlobGasFeeCap
).
pub const fn max_priority_fee_per_gas(&self) -> Option<u128>
pub const fn max_priority_fee_per_gas(&self) -> Option<u128>
Max priority fee per gas for eip1559 transaction, for legacy and eip2930 transactions this
is None
This is also commonly referred to as the “Gas Tip Cap” (GasTipCap
).
pub const fn max_fee_per_gas(&self) -> u128
pub const fn max_fee_per_gas(&self) -> u128
Max fee per gas for eip1559 transaction, for legacy transactions this is gas_price
.
This is also commonly referred to as the “Gas Fee Cap” (GasFeeCap
).
Trait Implementations§
§impl<'a> Arbitrary<'a> for PooledTransactionsElement
Available on crate feature arbitrary
only.
impl<'a> Arbitrary<'a> for PooledTransactionsElement
arbitrary
only.§fn arbitrary(
u: &mut Unstructured<'a>,
) -> Result<PooledTransactionsElement, Error>
fn arbitrary( u: &mut Unstructured<'a>, ) -> Result<PooledTransactionsElement, Error>
Generates an arbitrary PooledTransactionsElement
.
This function generates an arbitrary PooledTransactionsElement
by creating a transaction
and, if applicable, generating a sidecar for blob transactions.
It handles the generation of sidecars and constructs the resulting
PooledTransactionsElement
.
§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 more§impl AsRef<PooledTransactionsElement> for PooledTransactionsElementEcRecovered
impl AsRef<PooledTransactionsElement> for PooledTransactionsElementEcRecovered
§fn as_ref(&self) -> &PooledTransactionsElement
fn as_ref(&self) -> &PooledTransactionsElement
§impl Clone for PooledTransactionsElement
impl Clone for PooledTransactionsElement
§fn clone(&self) -> PooledTransactionsElement
fn clone(&self) -> PooledTransactionsElement
1.0.0 · Source§fn clone_from(&mut self, source: &Self)
fn clone_from(&mut self, source: &Self)
source
. Read more§impl Debug for PooledTransactionsElement
impl Debug for PooledTransactionsElement
§impl Decodable for PooledTransactionsElement
impl Decodable for PooledTransactionsElement
§fn decode(buf: &mut &[u8]) -> Result<PooledTransactionsElement, Error>
fn decode(buf: &mut &[u8]) -> Result<PooledTransactionsElement, Error>
Decodes an enveloped post EIP-4844 PooledTransactionsElement
.
CAUTION: this expects that buf
is rlp(tx_type || rlp(tx-data))
§impl Decodable2718 for PooledTransactionsElement
impl Decodable2718 for PooledTransactionsElement
§fn typed_decode(
ty: u8,
buf: &mut &[u8],
) -> Result<PooledTransactionsElement, Eip2718Error>
fn typed_decode( ty: u8, buf: &mut &[u8], ) -> Result<PooledTransactionsElement, Eip2718Error>
§fn fallback_decode(
buf: &mut &[u8],
) -> Result<PooledTransactionsElement, Eip2718Error>
fn fallback_decode( buf: &mut &[u8], ) -> Result<PooledTransactionsElement, Eip2718Error>
§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>
§impl<'de> Deserialize<'de> for PooledTransactionsElement
impl<'de> Deserialize<'de> for PooledTransactionsElement
§fn deserialize<__D>(
__deserializer: __D,
) -> Result<PooledTransactionsElement, <__D as Deserializer<'de>>::Error>where
__D: Deserializer<'de>,
fn deserialize<__D>(
__deserializer: __D,
) -> Result<PooledTransactionsElement, <__D as Deserializer<'de>>::Error>where
__D: Deserializer<'de>,
§impl Encodable for PooledTransactionsElement
impl Encodable for PooledTransactionsElement
§fn encode(&self, out: &mut dyn BufMut)
fn encode(&self, out: &mut dyn BufMut)
This encodes the transaction with the signature, and an rlp header.
For legacy transactions, it encodes the transaction data:
rlp(tx-data)
For EIP-2718 typed transactions, it encodes the transaction type followed by the rlp of the
transaction:
rlp(tx-type || rlp(tx-data))
§impl Encodable2718 for PooledTransactionsElement
impl Encodable2718 for PooledTransactionsElement
§fn encode_2718_len(&self) -> usize
fn encode_2718_len(&self) -> usize
§fn encode_2718(&self, out: &mut dyn BufMut)
fn encode_2718(&self, out: &mut dyn BufMut)
§fn trie_hash(&self) -> FixedBytes<32>
fn trie_hash(&self) -> FixedBytes<32>
§fn encoded_2718(&self) -> Vec<u8> ⓘ
fn encoded_2718(&self) -> Vec<u8> ⓘ
§fn network_len(&self) -> usize
fn network_len(&self) -> usize
§fn network_encode(&self, out: &mut dyn BufMut)
fn network_encode(&self, out: &mut dyn BufMut)
§impl PartialEq for PooledTransactionsElement
impl PartialEq for PooledTransactionsElement
§impl Serialize for PooledTransactionsElement
impl Serialize for PooledTransactionsElement
§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 TryFrom<TransactionSigned> for PooledTransactionsElement
impl TryFrom<TransactionSigned> for PooledTransactionsElement
§type Error = TransactionConversionError
type Error = TransactionConversionError
§fn try_from(
tx: TransactionSigned,
) -> Result<PooledTransactionsElement, <PooledTransactionsElement as TryFrom<TransactionSigned>>::Error>
fn try_from( tx: TransactionSigned, ) -> Result<PooledTransactionsElement, <PooledTransactionsElement as TryFrom<TransactionSigned>>::Error>
impl Eq for PooledTransactionsElement
impl StructuralPartialEq for PooledTransactionsElement
Auto Trait Implementations§
impl !Freeze for PooledTransactionsElement
impl RefUnwindSafe for PooledTransactionsElement
impl Send for PooledTransactionsElement
impl Sync for PooledTransactionsElement
impl Unpin for PooledTransactionsElement
impl UnwindSafe for PooledTransactionsElement
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> 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
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<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> 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,
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,
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,
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,
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,
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,
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,
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,
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,
§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 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,
§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,
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,
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
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
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
self
, then passes self.deref()
into the pipe function.§impl<T> Pointable for T
impl<T> Pointable for T
§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
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
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
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
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
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
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
.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
.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
.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
.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
.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
.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
.tap_deref()
only in debug builds, and is erased in release
builds.§impl<T> TryConv for T
impl<T> TryConv for T
§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> ⓘ
impl<A> ArbInterop for A
impl<T> DeserializeOwned for Twhere
T: for<'de> Deserialize<'de>,
impl<T> Eip2718Envelope for Twhere
T: Decodable2718 + Encodable2718,
impl<T> ErasedDestructor for Twhere
T: 'static,
impl<T> MaybeArbitrary for Twhere
T: for<'a> Arbitrary<'a>,
impl<T> MaybeDebug for Twhere
T: Debug,
impl<T> MaybeSend for Twhere
T: Send,
impl<T> MaybeSendSync for T
impl<T> NippyJarHeader for T
impl<T> RpcObject for Twhere
T: RpcParam + RpcReturn,
impl<T> RpcParam for T
impl<T> RpcReturn for T
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: 416 bytes
Size for each variant:
Legacy
: 248 bytesEip2930
: 264 bytesEip1559
: 280 bytesEip7702
: 296 bytesBlobTransaction
: 408 bytes