Rewrite Invoice's interface in terms of msats
authorJeffrey Czyz <jkczyz@gmail.com>
Mon, 4 Oct 2021 14:20:49 +0000 (09:20 -0500)
committerJeffrey Czyz <jkczyz@gmail.com>
Tue, 26 Oct 2021 06:12:31 +0000 (01:12 -0500)
InvoiceBuilder's interface was changed recently to work in terms of
msats. Update Invoice's interface to return the amount in msats, too,
and make amount_pico_btc private.

lightning-invoice/src/lib.rs

index 0f125362c3a1877e0fdc7e1d07c5500e95e48be4..f81af8623647c872613a52bd7e5984cf463341a6 100644 (file)
@@ -1219,8 +1219,13 @@ impl Invoice {
                self.signed_invoice.currency()
        }
 
+       /// Returns the amount if specified in the invoice as millisatoshis.
+       pub fn amount_milli_satoshis(&self) -> Option<u64> {
+               self.signed_invoice.amount_pico_btc().map(|v| v / 10)
+       }
+
        /// Returns the amount if specified in the invoice as pico <currency>.
-       pub fn amount_pico_btc(&self) -> Option<u64> {
+       fn amount_pico_btc(&self) -> Option<u64> {
                self.signed_invoice.amount_pico_btc()
        }
 }
@@ -1867,6 +1872,7 @@ mod test {
                assert!(invoice.check_signature().is_ok());
                assert_eq!(invoice.tagged_fields().count(), 10);
 
+               assert_eq!(invoice.amount_milli_satoshis(), Some(123));
                assert_eq!(invoice.amount_pico_btc(), Some(1230));
                assert_eq!(invoice.currency(), Currency::BitcoinTestnet);
                assert_eq!(