Fix bug with set_fees returning insufficient amount

This commit is contained in:
Sosthene 2024-10-12 16:28:50 +02:00
parent 4eda758b64
commit 9fd463b592

View File

@ -111,22 +111,19 @@ pub fn create_transaction(
})
.collect();
let mut fee_set = false;
for candidate in candidates {
if let Some(c) = candidate {
if c == change_address {
SpClient::set_fees(&mut new_psbt, fee_rate, change_address.clone())?;
fee_set = true;
break;
} else if c == sender_address {
SpClient::set_fees(&mut new_psbt, fee_rate, sender_address.clone())?;
fee_set = true;
break;
let fee_set = candidates.iter().filter_map(|candidate_opt| {
candidate_opt.as_ref().and_then(|c| {
if *c == change_address {
Some(SpClient::set_fees(&mut new_psbt, fee_rate, change_address.clone()))
} else if *c == sender_address {
Some(SpClient::set_fees(&mut new_psbt, fee_rate, sender_address.clone()))
} else {
None
}
}
}
})
}).find_map(|result| result.ok());
if !fee_set {
if fee_set.is_none() {
return Err(Error::msg("Must specify payer for fee"));
}
};