From c9fcfae9d46b81a56b731d95a51fa1e3ea812287 Mon Sep 17 00:00:00 2001 From: jp1ac4 <121959000+jp1ac4@users.noreply.github.com> Date: Tue, 6 Feb 2024 10:06:11 +0000 Subject: [PATCH] gui(recovery): filter coins by psbt outpoints --- gui/src/app/state/recovery.rs | 15 ++++++--------- 1 file changed, 6 insertions(+), 9 deletions(-) diff --git a/gui/src/app/state/recovery.rs b/gui/src/app/state/recovery.rs index 8b20f661..80ecb369 100644 --- a/gui/src/app/state/recovery.rs +++ b/gui/src/app/state/recovery.rs @@ -155,16 +155,13 @@ impl State for RecoveryPanel { return Command::perform( async move { let psbt = daemon.create_recovery(address, feerate_vb, sequence)?; - let coins = daemon.list_coins(&[], &[]).map(|res| res.coins)?; - let coins = coins - .into_iter() - .filter(|coin| { - psbt.unsigned_tx - .input - .iter() - .any(|input| input.previous_output == coin.outpoint) - }) + let outpoints: Vec<_> = psbt + .unsigned_tx + .input + .iter() + .map(|txin| txin.previous_output) .collect(); + let coins = daemon.list_coins(&[], &outpoints).map(|res| res.coins)?; Ok(SpendTx::new( None, psbt,