diff --git a/crates/transaction-pool/src/traits.rs b/crates/transaction-pool/src/traits.rs index 697dbafc71..645a59df2a 100644 --- a/crates/transaction-pool/src/traits.rs +++ b/crates/transaction-pool/src/traits.rs @@ -250,7 +250,9 @@ impl BestTransactions for std::iter::Empty { } /// Trait for transaction types used inside the pool -pub trait PoolTransaction: fmt::Debug + Send + Sync + FromRecoveredTransaction { +pub trait PoolTransaction: + fmt::Debug + Send + Sync + FromRecoveredTransaction + IntoRecoveredTransaction +{ /// Hash of the transaction. fn hash(&self) -> &TxHash; diff --git a/crates/transaction-pool/src/validate.rs b/crates/transaction-pool/src/validate.rs index cafab6aaf7..84770a1ba7 100644 --- a/crates/transaction-pool/src/validate.rs +++ b/crates/transaction-pool/src/validate.rs @@ -7,8 +7,9 @@ use crate::{ MAX_INIT_CODE_SIZE, TX_MAX_SIZE, }; use reth_primitives::{ - Address, InvalidTransactionError, TransactionKind, TxHash, EIP1559_TX_TYPE_ID, - EIP2930_TX_TYPE_ID, LEGACY_TX_TYPE_ID, U256, + Address, IntoRecoveredTransaction, InvalidTransactionError, TransactionKind, + TransactionSignedEcRecovered, TxHash, EIP1559_TX_TYPE_ID, EIP2930_TX_TYPE_ID, + LEGACY_TX_TYPE_ID, U256, }; use reth_provider::AccountProvider; use std::{fmt, time::Instant}; @@ -330,6 +331,12 @@ impl ValidPoolTransaction { } } +impl IntoRecoveredTransaction for ValidPoolTransaction { + fn to_recovered_transaction(&self) -> TransactionSignedEcRecovered { + self.transaction.to_recovered_transaction() + } +} + #[cfg(test)] impl Clone for ValidPoolTransaction { fn clone(&self) -> Self {