create_transaction_for_addresses freezes spent utxos to prevent accidental double spends

This commit is contained in:
NicolasCantu 2025-01-17 09:41:27 +01:00
parent cd48128255
commit 4232f9aa62

View File

@ -1144,12 +1144,12 @@ fn create_transaction_for_addresses(addresses: Vec<String>, 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<String>, 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)
}