From e41d5ff4e18ee8391c872dd6a5bf77534692a442 Mon Sep 17 00:00:00 2001 From: Acat Date: Thu, 22 May 2025 19:14:17 +0800 Subject: [PATCH] refactor: use `impl IntoIterator` for transaction batches and streamline validation calls (#16408) --- crates/optimism/txpool/src/validator.rs | 4 ++-- crates/transaction-pool/src/lib.rs | 4 ++-- crates/transaction-pool/src/validate/eth.rs | 6 +++--- crates/transaction-pool/src/validate/mod.rs | 4 ++-- 4 files changed, 9 insertions(+), 9 deletions(-) diff --git a/crates/optimism/txpool/src/validator.rs b/crates/optimism/txpool/src/validator.rs index 52aabfec75..6f73955390 100644 --- a/crates/optimism/txpool/src/validator.rs +++ b/crates/optimism/txpool/src/validator.rs @@ -238,7 +238,7 @@ where pub async fn validate_all_with_origin( &self, origin: TransactionOrigin, - transactions: Vec, + transactions: impl IntoIterator + Send, ) -> Vec> { futures_util::future::join_all( transactions.into_iter().map(|tx| self.validate_one(origin, tx)), @@ -347,7 +347,7 @@ where async fn validate_transactions_with_origin( &self, origin: TransactionOrigin, - transactions: Vec, + transactions: impl IntoIterator + Send, ) -> Vec> { self.validate_all_with_origin(origin, transactions).await } diff --git a/crates/transaction-pool/src/lib.rs b/crates/transaction-pool/src/lib.rs index 762b196b86..ad8e05a98e 100644 --- a/crates/transaction-pool/src/lib.rs +++ b/crates/transaction-pool/src/lib.rs @@ -248,11 +248,11 @@ where async fn validate_all( &self, origin: TransactionOrigin, - transactions: impl IntoIterator, + transactions: impl IntoIterator + Send, ) -> Vec<(TxHash, TransactionValidationOutcome)> { self.pool .validator() - .validate_transactions(transactions.into_iter().map(|tx| (origin, tx)).collect()) + .validate_transactions_with_origin(origin, transactions) .await .into_iter() .map(|tx| (tx.tx_hash(), tx)) diff --git a/crates/transaction-pool/src/validate/eth.rs b/crates/transaction-pool/src/validate/eth.rs index f8681926b7..866a28d33f 100644 --- a/crates/transaction-pool/src/validate/eth.rs +++ b/crates/transaction-pool/src/validate/eth.rs @@ -113,7 +113,7 @@ where pub fn validate_all_with_origin( &self, origin: TransactionOrigin, - transactions: Vec, + transactions: impl IntoIterator + Send, ) -> Vec> { self.inner.validate_batch_with_origin(origin, transactions) } @@ -144,7 +144,7 @@ where async fn validate_transactions_with_origin( &self, origin: TransactionOrigin, - transactions: Vec, + transactions: impl IntoIterator + Send, ) -> Vec> { self.validate_all_with_origin(origin, transactions) } @@ -648,7 +648,7 @@ where fn validate_batch_with_origin( &self, origin: TransactionOrigin, - transactions: Vec, + transactions: impl IntoIterator + Send, ) -> Vec> { let mut provider = None; transactions diff --git a/crates/transaction-pool/src/validate/mod.rs b/crates/transaction-pool/src/validate/mod.rs index 06d50d6f99..36d9f14add 100644 --- a/crates/transaction-pool/src/validate/mod.rs +++ b/crates/transaction-pool/src/validate/mod.rs @@ -214,7 +214,7 @@ pub trait TransactionValidator: Debug + Send + Sync { fn validate_transactions_with_origin( &self, origin: TransactionOrigin, - transactions: Vec, + transactions: impl IntoIterator + Send, ) -> impl Future>> + Send { let futures = transactions.into_iter().map(|tx| self.validate_transaction(origin, tx)); futures_util::future::join_all(futures) @@ -261,7 +261,7 @@ where async fn validate_transactions_with_origin( &self, origin: TransactionOrigin, - transactions: Vec, + transactions: impl IntoIterator + Send, ) -> Vec> { match self { Self::Left(v) => v.validate_transactions_with_origin(origin, transactions).await,