From 7bd2576049b5ac07f6a0a73d1dbd563bb7605b89 Mon Sep 17 00:00:00 2001 From: Matthias Seitz Date: Tue, 28 Mar 2023 18:24:21 +0200 Subject: [PATCH] fix(txpool): fix legacy tx chain id check (#2005) --- crates/transaction-pool/src/pool/txpool.rs | 2 +- crates/transaction-pool/src/validate.rs | 13 +++++++------ 2 files changed, 8 insertions(+), 7 deletions(-) diff --git a/crates/transaction-pool/src/pool/txpool.rs b/crates/transaction-pool/src/pool/txpool.rs index c063ef385f..69c190c8c0 100644 --- a/crates/transaction-pool/src/pool/txpool.rs +++ b/crates/transaction-pool/src/pool/txpool.rs @@ -1157,7 +1157,7 @@ mod tests { let mut f = MockTransactionFactory::default(); let mut pool = AllTransactions::default(); let tx = MockTransaction::eip1559().inc_price().inc_limit(); - let valid_tx = f.validated(tx.clone()); + let valid_tx = f.validated(tx); let InsertOk { updates, replaced_tx, move_to, state, .. } = pool.insert_tx(valid_tx.clone(), on_chain_balance, on_chain_nonce).unwrap(); assert!(updates.is_empty()); diff --git a/crates/transaction-pool/src/validate.rs b/crates/transaction-pool/src/validate.rs index 645ace7605..107a8b536d 100644 --- a/crates/transaction-pool/src/validate.rs +++ b/crates/transaction-pool/src/validate.rs @@ -146,7 +146,6 @@ where LEGACY_TX_TYPE_ID => { // Accept legacy transactions } - EIP2930_TX_TYPE_ID => { // Accept only legacy transactions until EIP-2718/2930 activates if !self.eip2718 { @@ -217,11 +216,13 @@ where } // Checks for chainid - if transaction.chain_id() != Some(self.chain_id()) { - return TransactionValidationOutcome::Invalid( - transaction, - InvalidTransactionError::ChainIdMismatch.into(), - ) + if let Some(chain_id) = transaction.chain_id() { + if chain_id != self.chain_id() { + return TransactionValidationOutcome::Invalid( + transaction, + InvalidTransactionError::ChainIdMismatch.into(), + ) + } } let account = match self