offers: import latest variant from draft.

In particular, this changes the name of a field in invoice_request:
`payer_signature` becomes simply `signature`.  So we allow both for
now, and send the old one unless deprecated_apis is disabled.

Signed-off-by: Rusty Russell <rusty@rustcorp.com.au>
This commit is contained in:
Rusty Russell
2022-03-22 19:20:13 +10:30
parent e36d4d1143
commit 726b6878d1
10 changed files with 96 additions and 52 deletions

View File

@@ -422,13 +422,13 @@ static void print_relative_expiry(u64 *created_at, u32 *relative)
fmt_time(tmpctx, *created_at + *relative));
}
static void print_fallbacks(const struct tlv_invoice_fallbacks *fallbacks)
static void print_fallbacks(struct fallback_address **fallbacks)
{
for (size_t i = 0; i < tal_count(fallbacks->fallbacks); i++) {
for (size_t i = 0; i < tal_count(fallbacks); i++) {
/* FIXME: format properly! */
printf("fallback: %u %s\n",
fallbacks->fallbacks[i]->version,
tal_hex(tmpctx, fallbacks->fallbacks[i]->address));
fallbacks[i]->version,
tal_hex(tmpctx, fallbacks[i]->address));
}
}
@@ -556,12 +556,20 @@ int main(int argc, char *argv[])
print_features(invreq->features);
if (invreq->quantity)
print_quantity(*invreq->quantity);
if (must_have(invreq, payer_signature))
well_formed &= print_signature("invoice_request",
"payer_signature",
invreq->fields,
invreq->payer_key,
invreq->payer_signature);
if (must_have(invreq, signature)) {
if (!print_signature("invoice_request",
"signature",
invreq->fields,
invreq->payer_key,
invreq->signature)) {
/* FIXME: We temporarily allow the old "payer_signature" name */
well_formed &= print_signature("invoice_request",
"payer_signature",
invreq->fields,
invreq->payer_key,
invreq->signature);
}
}
if (invreq->recurrence_counter) {
print_recurrence_counter(invreq->recurrence_counter,
invreq->recurrence_start);