pub enum PooledTransactionsElement {
Legacy {
transaction: TxLegacy,
signature: PrimitiveSignature,
hash: TxHash,
},
Eip2930 {
transaction: TxEip2930,
signature: PrimitiveSignature,
hash: TxHash,
},
Eip1559 {
transaction: TxEip1559,
signature: PrimitiveSignature,
hash: TxHash,
},
Eip7702 {
transaction: TxEip7702,
signature: PrimitiveSignature,
hash: TxHash,
},
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: TxHash
The hash of the transaction
Eip2930
An EIP-2930 typed transaction
Fields
transaction: TxEip2930
The inner transaction
signature: PrimitiveSignature
The signature
hash: TxHash
The hash of the transaction
Eip1559
An EIP-1559 typed transaction
Fields
transaction: TxEip1559
The inner transaction
signature: PrimitiveSignature
The signature
hash: TxHash
The hash of the transaction
Eip7702
An EIP-7702 typed transaction
Fields
transaction: TxEip7702
The inner transaction
signature: PrimitiveSignature
The signature
hash: TxHash
The hash of the transaction
BlobTransaction(BlobTransaction)
A blob transaction, which includes the transaction, blob data, commitments, and proofs.
Implementations§
Source§impl PooledTransactionsElement
impl PooledTransactionsElement
Sourcepub fn try_from_broadcast(
tx: TransactionSigned,
) -> Result<Self, TransactionSigned>
pub fn try_from_broadcast( tx: TransactionSigned, ) -> Result<Self, 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
.
Sourcepub fn try_from_blob_transaction(
tx: TransactionSigned,
sidecar: BlobTransactionSidecar,
) -> Result<Self, TransactionSigned>
pub fn try_from_blob_transaction( tx: TransactionSigned, sidecar: BlobTransactionSidecar, ) -> Result<Self, 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.
Sourcepub fn signature_hash(&self) -> B256
pub fn signature_hash(&self) -> B256
Heavy operation that return signature hash over rlp encoded transaction. It is only for signature signing or signer recovery.
Sourcepub const fn hash(&self) -> &TxHash
pub const fn hash(&self) -> &TxHash
Reference to transaction hash. Used to identify transaction.
Sourcepub 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
.
Sourcepub fn try_into_ecrecovered(
self,
) -> Result<PooledTransactionsElementEcRecovered, Self>
pub fn try_into_ecrecovered( self, ) -> Result<PooledTransactionsElementEcRecovered, Self>
Tries to recover signer and return PooledTransactionsElementEcRecovered
.
Returns Err(Self)
if the transaction’s signature is invalid, see also
Self::recover_signer
.
Sourcepub 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.
Sourcepub fn into_transaction(self) -> TransactionSigned
pub fn into_transaction(self) -> TransactionSigned
Returns the inner TransactionSigned
.
Sourcepub const fn is_eip4844(&self) -> bool
pub const fn is_eip4844(&self) -> bool
Returns true if the transaction is an EIP-4844 transaction.
Sourcepub 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.
Sourcepub 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.
Sourcepub 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.
Sourcepub 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.
Sourcepub 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.
Sourcepub 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.
Sourcepub 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
).
Sourcepub 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
).
Sourcepub 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§
Source§impl<'a> Arbitrary<'a> for PooledTransactionsElement
Available on crate feature arbitrary
only.
impl<'a> Arbitrary<'a> for PooledTransactionsElement
arbitrary
only.Source§fn arbitrary(u: &mut Unstructured<'a>) -> Result<Self>
fn arbitrary(u: &mut Unstructured<'a>) -> Result<Self>
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§fn size_hint(depth: usize) -> (usize, Option<usize>)
fn size_hint(depth: usize) -> (usize, Option<usize>)
Unstructured
this type
needs to construct itself. Read more§fn try_size_hint(
depth: usize,
) -> Result<(usize, Option<usize>), MaxRecursionReached>
fn try_size_hint( depth: usize, ) -> Result<(usize, Option<usize>), MaxRecursionReached>
Unstructured
this type
needs to construct itself. Read moreSource§impl AsRef<PooledTransactionsElement> for PooledTransactionsElementEcRecovered
impl AsRef<PooledTransactionsElement> for PooledTransactionsElementEcRecovered
Source§fn as_ref(&self) -> &PooledTransactionsElement
fn as_ref(&self) -> &PooledTransactionsElement
Source§impl Clone for PooledTransactionsElement
impl Clone for PooledTransactionsElement
Source§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 moreSource§impl Debug for PooledTransactionsElement
impl Debug for PooledTransactionsElement
Source§impl Decodable for PooledTransactionsElement
impl Decodable for PooledTransactionsElement
Source§fn decode(buf: &mut &[u8]) -> Result<Self>
fn decode(buf: &mut &[u8]) -> Result<Self>
Decodes an enveloped post EIP-4844 PooledTransactionsElement
.
CAUTION: this expects that buf
is rlp(tx_type || rlp(tx-data))
Source§impl Decodable2718 for PooledTransactionsElement
impl Decodable2718 for PooledTransactionsElement
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> Deserialize<'de> for PooledTransactionsElement
impl<'de> Deserialize<'de> for PooledTransactionsElement
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 PooledTransactionsElement
impl Encodable for PooledTransactionsElement
Source§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))
Source§impl Encodable2718 for PooledTransactionsElement
impl Encodable2718 for PooledTransactionsElement
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)
Source§fn trie_hash(&self) -> B256
fn trie_hash(&self) -> B256
§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)
Source§impl TryFrom<TransactionSigned> for PooledTransactionsElement
impl TryFrom<TransactionSigned> for PooledTransactionsElement
Source§type Error = TransactionConversionError
type Error = TransactionConversionError
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<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>
§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>
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> MaybeArbitrary for Twhere
T: for<'a> Arbitrary<'a>,
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