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,