Skip to content

Conversation

rustyrussell
Copy link
Contributor

This means we now do cancellation of recurring offers.

We use the experimental range for this, instead of the actual range used in the spec PR (lightning/bolts#1240)

Closes: #8392

@rustyrussell rustyrussell added this to the v25.09 milestone Jul 7, 2025
@rustyrussell rustyrussell force-pushed the guilt/bolt12-recurrence-update branch 2 times, most recently from efafa63 to 9d855fa Compare July 8, 2025 02:58
@rustyrussell rustyrussell modified the milestones: v25.09, v25.12 Aug 14, 2025
@rustyrussell rustyrussell force-pushed the guilt/bolt12-recurrence-update branch 2 times, most recently from 77c6052 to 420582f Compare August 25, 2025 06:21
@rustyrussell rustyrussell marked this pull request as ready for review August 25, 2025 06:22
@rustyrussell rustyrussell requested a review from cdecker as a code owner August 25, 2025 06:22
@rustyrussell rustyrussell force-pushed the guilt/bolt12-recurrence-update branch 3 times, most recently from ea34758 to d7993b7 Compare August 26, 2025 03:37
@rustyrussell rustyrussell force-pushed the guilt/bolt12-recurrence-update branch from d7993b7 to 66640c3 Compare September 29, 2025 03:52
Use months instead.

Changelog-EXPERIMENTAL: Protocol: BOLT 12 recurrence `years` removed; use 12 x months.
Offer_absolute_expiry should be used if you want to require starting at the start.

Changelog-EXPERIMENTAL: Protocol: BOLT 12 recurrence `start_any_period` removed, use expiry if you need to restrict when they can start using the offer.
Changes:
* Fields renumbered to their draft values + billion.
* offer_recurrence now comes in compulsory or optional (backwards compat) flavors.
* `proportional_amount` is now inside `offer_recurrence_base` not `offer_recurrence_paywindow`.
* New field `invreq_recurrence_cancel`.

Signed-off-by: Rusty Russell <rusty@rustcorp.com.au>
Changelog-EXPERIMENTAL: Draft specification for recurring offers changed: old recurring offers will no longer work.
And fix incorrect comment on its use in the header!

Signed-off-by: Rusty Russell <rusty@rustcorp.com.au>
If you're doing just-in-time stock management, it would be annoying to
discover this wasn't allowed!

Signed-off-by: Rusty Russell <rusty@rustcorp.com.au>
Signed-off-by: Rusty Russell <rusty@rustcorp.com.au>
Signed-off-by: Rusty Russell <rusty@rustcorp.com.au>
We added this to the recurrence spec: the offer expiration only applies to the
first request, not subsequent ones.

Signed-off-by: Rusty Russell <rusty@rustcorp.com.au>
We're going to want this for cancelrecurringinvoice.

Signed-off-by: Rusty Russell <rusty@rustcorp.com.au>
We're going to want this for cancelrecurringinvoice.

Signed-off-by: Rusty Russell <rusty@rustcorp.com.au>
We're going to want this for sending invreq_recurrence_cancel invoice_requests.

Signed-off-by: Rusty Russell <rusty@rustcorp.com.au>
`fetchinvoice` variant, for setting invreq_recurrence_cancel instead.

Signed-off-by: Rusty Russell <rusty@rustcorp.com.au>
Changelog-EXPERIMENTAL: `cancelrecurringinvoice` command to send new "don't expect any more invoice requests" msg to recurring bolt12 invoices.
In this case, we make an immediately-expiring invoice.  This correctly blocks
any successive requests for invoices, as per the spec requirement.

This means we have to handle invoice_requests without reply_path, amounts
or quantity *if* they specify invreq_recurrence_cancel.

Signed-off-by: Rusty Russell <rusty@rustcorp.com.au>
Signed-off-by: Rusty Russell <rusty@rustcorp.com.au>
@rustyrussell rustyrussell force-pushed the guilt/bolt12-recurrence-update branch from 66640c3 to 6783ece Compare October 1, 2025 02:59
@rustyrussell rustyrussell merged commit 512f328 into ElementsProject:master Oct 1, 2025
35 of 39 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

Update bolt12 recurrence support

1 participant