Class Invoice


  • public class Invoice
    extends Object
    Represents a syntactically and semantically correct lightning BOLT11 invoice. There are three ways to construct an `Invoice`: 1. using `InvoiceBuilder` 2. using `Invoice::from_signed(SignedRawInvoice)` 3. using `str::parse::(&str)`
    • Method Detail

      • eq

        public boolean eq​(Invoice b)
        Checks if two Invoices contain equal inner contents. This ignores pointers and is_owned flags and looks at the values in fields. Two objects with NULL inner values will be considered "equal" here.
      • clone

        public Invoice clone()
        Creates a copy of the Invoice
        Overrides:
        clone in class Object
      • into_signed_raw

        public SignedRawInvoice into_signed_raw()
        Transform the `Invoice` into it's unchecked version
      • check_signature

        public Result_NoneSemanticErrorZ check_signature()
        Check that the invoice is signed correctly and that key recovery works
      • from_signed

        public static Result_InvoiceSemanticErrorZ from_signed​(SignedRawInvoice signed_invoice)
        Constructs an `Invoice` from a `SignedRawInvoice` by checking all its invariants. ``` use lightning_invoice::*; let invoice = \"lnbc100p1psj9jhxdqud3jxktt5w46x7unfv9kz6mn0v3jsnp4q0d3p2sfluzdx45tqcs\\ h2pu5qc7lgq0xs578ngs6s0s68ua4h7cvspp5q6rmq35js88zp5dvwrv9m459tnk2zunwj5jalqtyxqulh0l\\ 5gflssp5nf55ny5gcrfl30xuhzj3nphgj27rstekmr9fw3ny5989s300gyus9qyysgqcqpcrzjqw2sxwe993\\ h5pcm4dxzpvttgza8zhkqxpgffcrf5v25nwpr3cmfg7z54kuqq8rgqqqqqqqq2qqqqq9qq9qrzjqd0ylaqcl\\ j9424x9m8h2vcukcgnm6s56xfgu3j78zyqzhgs4hlpzvznlugqq9vsqqqqqqqlgqqqqqeqq9qrzjqwldmj9d\\ ha74df76zhx6l9we0vjdquygcdt3kssupehe64g6yyp5yz5rhuqqwccqqyqqqqlgqqqqjcqq9qrzjqf9e58a\\ guqr0rcun0ajlvmzq3ek63cw2w282gv3z5uupmuwvgjtq2z55qsqqg6qqqyqqqrtnqqqzq3cqygrzjqvphms\\ ywntrrhqjcraumvc4y6r8v4z5v593trte429v4hredj7ms5z52usqq9ngqqqqqqqlgqqqqqqgq9qrzjq2v0v\\ p62g49p7569ev48cmulecsxe59lvaw3wlxm7r982zxa9zzj7z5l0cqqxusqqyqqqqlgqqqqqzsqygarl9fh3\\ 8s0gyuxjjgux34w75dnc6xp2l35j7es3jd4ugt3lu0xzre26yg5m7ke54n2d5sym4xcmxtl8238xxvw5h5h5\\ j5r6drg6k6zcqj0fcwg\"; let signed = invoice.parse::().unwrap(); assert!(Invoice::from_signed(signed).is_ok()); ```
      • timestamp

        public long timestamp()
        Returns the `Invoice`'s timestamp (should equal it's creation time)
      • payment_hash

        public byte[] payment_hash()
        Returns the hash to which we will receive the preimage on completion of the payment
      • payee_pub_key

        @Nullable
        public byte[] payee_pub_key()
        Get the payee's public key if one was included in the invoice Note that the return value (or a relevant inner pointer) may be NULL or all-0s to represent None
      • payment_secret

        public byte[] payment_secret()
        Get the payment secret if one was included in the invoice
      • features

        @Nullable
        public InvoiceFeatures features()
        Get the invoice features if they were included in the invoice Note that the return value (or a relevant inner pointer) may be NULL or all-0s to represent None
      • recover_payee_pub_key

        public byte[] recover_payee_pub_key()
        Recover the payee's public key (only to be used if none was included in the invoice)
      • expiry_time

        public long expiry_time()
        Returns the invoice's expiry time, if present, otherwise [`DEFAULT_EXPIRY_TIME`].
      • min_final_cltv_expiry

        public long min_final_cltv_expiry()
        Returns the invoice's `min_final_cltv_expiry` time, if present, otherwise [`DEFAULT_MIN_FINAL_CLTV_EXPIRY`].
      • private_routes

        public PrivateRoute[] private_routes()
        Returns a list of all routes included in the invoice
      • route_hints

        public RouteHint[] route_hints()
        Returns a list of all routes included in the invoice as the underlying hints
      • currency

        public Currency currency()
        Returns the currency for which the invoice was issued
      • amount_pico_btc

        public Option_u64Z amount_pico_btc()
        Returns the amount if specified in the invoice as pico .
      • to_str

        public String to_str()
        Get the string representation of a Invoice object