mirror of
https://github.com/lightningdevkit/rust-lightning.git
synced 2025-02-25 07:17:40 +01:00
Merge pull request #3039 from valentinewallace/2024-04-invoice-amt-msats-overflow
Fix overflow in invoice amount setter.
This commit is contained in:
commit
78ab54ff82
1 changed files with 7 additions and 1 deletions
|
@ -577,7 +577,13 @@ impl<D: tb::Bool, H: tb::Bool, T: tb::Bool, C: tb::Bool, S: tb::Bool, M: tb::Boo
|
|||
|
||||
/// Sets the amount in millisatoshis. The optimal SI prefix is chosen automatically.
|
||||
pub fn amount_milli_satoshis(mut self, amount_msat: u64) -> Self {
|
||||
let amount = amount_msat * 10; // Invoices are denominated in "pico BTC"
|
||||
let amount = match amount_msat.checked_mul(10) { // Invoices are denominated in "pico BTC"
|
||||
Some(amt) => amt,
|
||||
None => {
|
||||
self.error = Some(CreationError::InvalidAmount);
|
||||
return self
|
||||
}
|
||||
};
|
||||
let biggest_possible_si_prefix = SiPrefix::values_desc()
|
||||
.iter()
|
||||
.find(|prefix| amount % prefix.multiplier() == 0)
|
||||
|
|
Loading…
Add table
Reference in a new issue