reth_transaction_pool

Trait PoolTransaction

Source
pub trait PoolTransaction:
    Debug
    + Send
    + Sync
    + Clone {
    type TryFromConsensusError;
    type Consensus: From<Self> + TryInto<Self, Error = Self::TryFromConsensusError>;
    type Pooled: Into<Self>;

Show 25 methods // Required methods fn hash(&self) -> &TxHash; fn sender(&self) -> Address; fn nonce(&self) -> u64; fn cost(&self) -> U256; fn gas_limit(&self) -> u64; fn max_fee_per_gas(&self) -> u128; fn access_list(&self) -> Option<&AccessList>; fn max_priority_fee_per_gas(&self) -> Option<u128>; fn max_fee_per_blob_gas(&self) -> Option<u128>; fn effective_tip_per_gas(&self, base_fee: u64) -> Option<u128>; fn priority_fee_or_price(&self) -> u128; fn kind(&self) -> TxKind; fn input(&self) -> &[u8] ; fn size(&self) -> usize; fn tx_type(&self) -> u8; fn encoded_length(&self) -> usize; fn chain_id(&self) -> Option<u64>; // Provided methods fn try_from_consensus( tx: Self::Consensus, ) -> Result<Self, Self::TryFromConsensusError> { ... } fn into_consensus(self) -> Self::Consensus { ... } fn from_pooled(pooled: Self::Pooled) -> Self { ... } fn to(&self) -> Option<Address> { ... } fn is_eip1559(&self) -> bool { ... } fn is_eip4844(&self) -> bool { ... } fn is_eip7702(&self) -> bool { ... } fn ensure_max_init_code_size( &self, max_init_code_size: usize, ) -> Result<(), InvalidPoolTransactionError> { ... }
}
Expand description

Trait for transaction types used inside the pool

Required Associated Types§

Source

type TryFromConsensusError

Associated error type for the try_from_consensus method.

Source

type Consensus: From<Self> + TryInto<Self, Error = Self::TryFromConsensusError>

Associated type representing the raw consensus variant of the transaction.

Source

type Pooled: Into<Self>

Associated type representing the recovered pooled variant of the transaction.

Required Methods§

Source

fn hash(&self) -> &TxHash

Hash of the transaction.

Source

fn sender(&self) -> Address

The Sender of the transaction.

Source

fn nonce(&self) -> u64

Returns the nonce for this transaction.

Source

fn cost(&self) -> U256

Returns the cost that this transaction is allowed to consume:

For EIP-1559 transactions: max_fee_per_gas * gas_limit + tx_value. For legacy transactions: gas_price * gas_limit + tx_value. For EIP-4844 blob transactions: max_fee_per_gas * gas_limit + tx_value + max_blob_fee_per_gas * blob_gas_used.

Source

fn gas_limit(&self) -> u64

Amount of gas that should be used in executing this transaction. This is paid up-front.

Source

fn max_fee_per_gas(&self) -> u128

Returns the EIP-1559 the maximum fee per gas the caller is willing to pay.

For legacy transactions this is gas_price.

This is also commonly referred to as the “Gas Fee Cap” (GasFeeCap).

Source

fn access_list(&self) -> Option<&AccessList>

Returns the access_list for the particular transaction type. For Legacy transactions, returns default.

Source

fn max_priority_fee_per_gas(&self) -> Option<u128>

Returns the EIP-1559 Priority fee the caller is paying to the block author.

This will return None for non-EIP1559 transactions

Source

fn max_fee_per_blob_gas(&self) -> Option<u128>

Returns the EIP-4844 max fee per data gas

This will return None for non-EIP4844 transactions

Source

fn effective_tip_per_gas(&self, base_fee: u64) -> Option<u128>

Returns the effective tip for this transaction.

For EIP-1559 transactions: min(max_fee_per_gas - base_fee, max_priority_fee_per_gas). For legacy transactions: gas_price - base_fee.

Source

fn priority_fee_or_price(&self) -> u128

Returns the max priority fee per gas if the transaction is an EIP-1559 transaction, and otherwise returns the gas price.

Source

fn kind(&self) -> TxKind

Returns the transaction’s [TxKind], which is the address of the recipient or [TxKind::Create] if the transaction is a contract creation.

Source

fn input(&self) -> &[u8]

Returns the input data of this transaction.

Source

fn size(&self) -> usize

Returns a measurement of the heap usage of this type and all its internals.

Source

fn tx_type(&self) -> u8

Returns the transaction type

Source

fn encoded_length(&self) -> usize

Returns the length of the rlp encoded transaction object

Note: Implementations should cache this value.

Source

fn chain_id(&self) -> Option<u64>

Returns chain_id

Provided Methods§

Source

fn try_from_consensus( tx: Self::Consensus, ) -> Result<Self, Self::TryFromConsensusError>

Define a method to convert from the Consensus type to Self

Source

fn into_consensus(self) -> Self::Consensus

Define a method to convert from the Self type to Consensus

Source

fn from_pooled(pooled: Self::Pooled) -> Self

Define a method to convert from the Pooled type to Self

Source

fn to(&self) -> Option<Address>

Returns the recipient of the transaction if it is not a [TxKind::Create] transaction.

Source

fn is_eip1559(&self) -> bool

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

Source

fn is_eip4844(&self) -> bool

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

Source

fn is_eip7702(&self) -> bool

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

Source

fn ensure_max_init_code_size( &self, max_init_code_size: usize, ) -> Result<(), InvalidPoolTransactionError>

Ensures that the transaction’s code size does not exceed the provided max_init_code_size.

This is specifically relevant for contract creation transactions ([TxKind::Create]), where the input data contains the initialization code. If the input code size exceeds the configured limit, an InvalidPoolTransactionError::ExceedsMaxInitCodeSize error is returned.

Dyn Compatibility§

This trait is not dyn compatible.

In older versions of Rust, dyn compatibility was called "object safety", so this trait is not object safe.

Implementors§

Source§

impl PoolTransaction for MockTransaction

Available on crate feature test-utils only.
Source§

type TryFromConsensusError = TryFromRecoveredTransactionError

Source§

type Consensus = TransactionSignedEcRecovered

Source§

type Pooled = PooledTransactionsElementEcRecovered

Source§

impl PoolTransaction for EthPooledTransaction

Source§

type TryFromConsensusError = TryFromRecoveredTransactionError

Source§

type Consensus = TransactionSignedEcRecovered

Source§

type Pooled = PooledTransactionsElementEcRecovered