Fast check for duplicate tx in the pool (#1392)

This commit is contained in:
Antioch Peverell 2018-08-20 23:02:28 +01:00 committed by Ignotus Peverell
parent 7ca4d45bf5
commit 8c820a8929
2 changed files with 8 additions and 0 deletions

View file

@ -179,6 +179,12 @@ where
// Combine all the txs from the pool with any extra txs provided.
let mut txs = self.all_transactions();
// Quick check to see if we have seen this tx before.
if txs.contains(&entry.tx) {
return Err(PoolError::DuplicateTx);
}
txs.extend(extra_txs);
let agg_tx = if txs.is_empty() {

View file

@ -174,6 +174,8 @@ pub enum PoolError {
LowFeeTransaction(u64),
/// Attempt to add a duplicate output to the pool.
DuplicateCommitment,
/// Attempt to add a duplicate tx to the pool.
DuplicateTx,
/// Other kinds of error (not yet pulled out into meaningful errors).
Other(String),
}