diff --git a/src/blockchain/esplora/api.rs b/src/blockchain/esplora/api.rs index a297db90e..c0ea0fbe0 100644 --- a/src/blockchain/esplora/api.rs +++ b/src/blockchain/esplora/api.rs @@ -2,7 +2,7 @@ //! //! see: use crate::BlockTime; -use bitcoin::{OutPoint, Script, Transaction, TxIn, TxOut, Txid, blockdata::witness::Witness}; +use bitcoin::{blockdata::witness::Witness, OutPoint, Script, Transaction, TxIn, TxOut, Txid}; #[derive(serde::Deserialize, Clone, Debug)] pub struct PrevOut { diff --git a/src/blockchain/esplora/ureq.rs b/src/blockchain/esplora/ureq.rs index e7055672e..4cf5a14d1 100644 --- a/src/blockchain/esplora/ureq.rs +++ b/src/blockchain/esplora/ureq.rs @@ -103,35 +103,39 @@ impl Blockchain for EsploraBlockchain { .take(self.concurrency as usize) .cloned(); - let handles = scripts.map(move |script| { - let client = self.url_client.clone(); - // make each request in its own thread. - std::thread::spawn(move || { - let mut related_txs: Vec = client._scripthash_txs(&script, None)?; - - let n_confirmed = - related_txs.iter().filter(|tx| tx.status.confirmed).count(); - // esplora pages on 25 confirmed transactions. If there's 25 or more we - // keep requesting to see if there's more. - if n_confirmed >= 25 { - loop { - let new_related_txs: Vec = client._scripthash_txs( - &script, - Some(related_txs.last().unwrap().txid), - )?; - let n = new_related_txs.len(); - related_txs.extend(new_related_txs); - // we've reached the end - if n < 25 { - break; + let handles = scripts + .map(move |script| { + let client = self.url_client.clone(); + // make each request in its own thread. + std::thread::spawn(move || { + let mut related_txs: Vec = + client._scripthash_txs(&script, None)?; + + let n_confirmed = + related_txs.iter().filter(|tx| tx.status.confirmed).count(); + // esplora pages on 25 confirmed transactions. If there's 25 or more we + // keep requesting to see if there's more. + if n_confirmed >= 25 { + loop { + let new_related_txs: Vec = client._scripthash_txs( + &script, + Some(related_txs.last().unwrap().txid), + )?; + let n = new_related_txs.len(); + related_txs.extend(new_related_txs); + // we've reached the end + if n < 25 { + break; + } } } - } - Result::<_, Error>::Ok(related_txs) + Result::<_, Error>::Ok(related_txs) + }) }) - }); + .collect::>(); let txs_per_script: Vec> = handles + .into_iter() .map(|handle| handle.join().unwrap()) .collect::>()?; let mut satisfaction = vec![]; diff --git a/src/testutils/blockchain_tests.rs b/src/testutils/blockchain_tests.rs index 722329b39..0c9a54a51 100644 --- a/src/testutils/blockchain_tests.rs +++ b/src/testutils/blockchain_tests.rs @@ -2,7 +2,7 @@ use crate::testutils::TestIncomingTx; use bitcoin::consensus::encode::{deserialize, serialize}; use bitcoin::hashes::hex::{FromHex, ToHex}; use bitcoin::hashes::sha256d; -use bitcoin::{Address, Amount, Script, Transaction, Txid, blockdata::witness::Witness}; +use bitcoin::{blockdata::witness::Witness, Address, Amount, Script, Transaction, Txid}; pub use bitcoincore_rpc::{Auth, Client as RpcClient, RpcApi}; use core::str::FromStr; use electrsd::bitcoind::BitcoinD; @@ -197,8 +197,10 @@ impl TestClient { let mut block = Block { header, txdata }; let witness_root = block.witness_root().unwrap(); - let witness_commitment = - Block::compute_witness_commitment(&witness_root, &coinbase_tx.input[0].witness.to_vec()[0]); + let witness_commitment = Block::compute_witness_commitment( + &witness_root, + &coinbase_tx.input[0].witness.to_vec()[0], + ); // now update and replace the coinbase tx let mut coinbase_witness_commitment_script = vec![0x6a, 0x24, 0xaa, 0x21, 0xa9, 0xed]; diff --git a/src/wallet/mod.rs b/src/wallet/mod.rs index 37bd3a4f2..04545fae8 100644 --- a/src/wallet/mod.rs +++ b/src/wallet/mod.rs @@ -1009,7 +1009,6 @@ where } } - /// get the signers pub fn signers(&self) -> (&SignersContainer, &SignersContainer) { (self.signers.as_ref(), self.change_signers.as_ref())