diff --git a/src/api.rs b/src/api.rs index 007d019..8a14f47 100644 --- a/src/api.rs +++ b/src/api.rs @@ -1144,12 +1144,12 @@ fn create_transaction_for_addresses(addresses: Vec, fee_rate: u32) -> an let local_device = lock_local_device()?; let sp_wallet = local_device.get_wallet(); - let freezed_utxos = lock_freezed_utxos()?; + let mut freezed_utxos = lock_freezed_utxos()?; let mut recipients = Vec::with_capacity(addresses.len()); for address in addresses { let recipient = Recipient { - address: address, + address, amount: DEFAULT_AMOUNT, nb_outputs: 1, }; @@ -1166,6 +1166,11 @@ fn create_transaction_for_addresses(addresses: Vec, fee_rate: u32) -> an None, )?; + // We add the used inputs in freezed utxos to prevent accidental double spends + for input in &signed_psbt.unsigned_tx.input { + freezed_utxos.insert(input.previous_output); + } + Ok(signed_psbt) }