Fix bug with set_fees returning insufficient amount

This commit is contained in:
Sosthene 2024-10-12 16:28:50 +02:00 committed by Nicolas Cantu
parent 61af1d0c10
commit 5e6c447942

View File

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