Crate lightning_invoice
source ·Expand description
This crate provides data structures to represent lightning BOLT11 invoices and functions to create, encode and decode these. If you just want to use the standard en-/decoding functionality this should get you started:
- For parsing use
str::parse::<Invoice>(&self)
(see the docs ofimpl FromStr for Invoice
) - For constructing invoices use the
InvoiceBuilder
- For serializing invoices use the
Display
/ToString
traits
Modules
Tag constants as specified in BOLT11
A module for paying Lightning invoices and sending spontaneous payments.
Convenient utilities to create an invoice.
Structs
Description string
Positive duration that defines when (relatively to the timestamp) in the future the invoice
expires
Represents a syntactically and semantically correct lightning BOLT11 invoice.
Builder for
Invoice
s. It’s the most convenient and advised way to use this library. It ensures
that only a semantically and syntactically correct Invoice can be built using it.Recoverable signature
min_final_cltv_expiry
to use for the last HTLC in the routePayee public key
A timestamp that refers to a date after 1 January 1970.
Private routing information
Data of the
RawInvoice
that is encoded in the data partData of the
RawInvoice
that is encoded in the human readable partRepresents an syntactically correct Invoice for a payment on the lightning network,
but without the signature information.
De- and encoding should not lead to information loss but may lead to different hashes.
SHA-256 hash
Represents a signed
RawInvoice
with cached hash. The signature is not checked and may be
invalid.Enums
Errors that may occur when constructing a new
RawInvoice
or Invoice
Enum representing the crypto currencies (or networks) supported by this library
Fallback address in case no LN payment is possible
Represents the description of an invoice which has to be either a directly included string or
a hash of a description provided out of band.
Errors that indicate what is wrong with the invoice. They have some granularity for debug
reasons, but should generally result in an “invalid BOLT11 invoice” message for the user.
Indicates that something went wrong while parsing or validating the invoice. Parsing errors
should be mostly seen as opaque and are only there for debugging reasons. Semantic errors
like wrong signatures, missing fields etc. could mean that someone tampered with the invoice.
Tagged field which may have an unknown tag
Errors that may occur when converting a
RawInvoice
to an Invoice
. They relate to the
requirements sections in BOLT #11SI prefixes for the human readable part
When signing using a fallible method either an user-supplied
SignError
or a CreationError
may occur.Tagged field with known tag
Constants
Default expiry time as defined by BOLT 11.
Default minimum final CLTV expiry as defined by BOLT 11.
The maximum timestamp as
Duration::as_secs
since the Unix epoch allowed by [BOLT 11
].