Invoice request message interface and data format
authorJeffrey Czyz <jkczyz@gmail.com>
Mon, 19 Sep 2022 21:57:46 +0000 (16:57 -0500)
committerJeffrey Czyz <jkczyz@gmail.com>
Fri, 9 Dec 2022 14:53:33 +0000 (08:53 -0600)
commit0c621646a627a0e43e10fdb7717ba0dbc45893c5
tree81a8b253f1b18a88277e9cf3609dc458b298a129
parent3e17e7f9bbc55faf7c3293b307d237357a2eb3b1
Invoice request message interface and data format

Define an interface for BOLT 12 `invoice_request` messages. The
underlying format consists of the original bytes and the parsed
contents.

The bytes are later needed when constructing an `invoice` message. This
is because it must mirror all the `offer` and `invoice_request` TLV
records, including unknown ones, which aren't represented in the
contents.

The contents will be used in `invoice` messages to avoid duplication.
Some fields while required in a typical user-pays-merchant flow may not
be necessary in the merchant-pays-user flow (e.g., refund, ATM).
lightning/src/ln/features.rs
lightning/src/offers/invoice_request.rs [new file with mode: 0644]
lightning/src/offers/mod.rs
lightning/src/offers/offer.rs
lightning/src/offers/payer.rs [new file with mode: 0644]