From: phrwlk Date: Tue, 27 Jan 2026 13:10:00 +0000 (+0000) Subject: fix(esplora): deduplicate missing txids in fetch_txs_with_outpoints X-Git-Url: http://internal-gitweb-vhost/parse/src/example_cli/%22https:/encode/struct.EncoderStringWriter.html?a=commitdiff_plain;h=3b6b3ba710492056677349686568f2b2f6c23ee7;p=bdk fix(esplora): deduplicate missing txids in fetch_txs_with_outpoints --- diff --git a/crates/esplora/src/async_ext.rs b/crates/esplora/src/async_ext.rs index 945bea12..dc4d3218 100644 --- a/crates/esplora/src/async_ext.rs +++ b/crates/esplora/src/async_ext.rs @@ -501,7 +501,7 @@ where // get outpoint spend-statuses let mut outpoints = outpoints.into_iter(); - let mut missing_txs = Vec::::with_capacity(outpoints.len()); + let mut missing_txs = HashSet::::with_capacity(outpoints.len()); loop { let handles = outpoints .by_ref() @@ -522,7 +522,7 @@ where None => continue, }; if !inserted_txs.contains(&spend_txid) { - missing_txs.push(spend_txid); + missing_txs.insert(spend_txid); } if let Some(spend_status) = op_status.status { insert_anchor_or_seen_at_from_status( diff --git a/crates/esplora/src/blocking_ext.rs b/crates/esplora/src/blocking_ext.rs index d33723b0..3a255447 100644 --- a/crates/esplora/src/blocking_ext.rs +++ b/crates/esplora/src/blocking_ext.rs @@ -457,7 +457,7 @@ fn fetch_txs_with_outpoints>( // get outpoint spend-statuses let mut outpoints = outpoints.into_iter(); - let mut missing_txs = Vec::::with_capacity(outpoints.len()); + let mut missing_txs = HashSet::::with_capacity(outpoints.len()); loop { let handles = outpoints .by_ref() @@ -483,7 +483,7 @@ fn fetch_txs_with_outpoints>( None => continue, }; if !inserted_txs.contains(&spend_txid) { - missing_txs.push(spend_txid); + missing_txs.insert(spend_txid); } if let Some(spend_status) = op_status.status { insert_anchor_or_seen_at_from_status(