Skip to content

Implementation Tracking: Recurrence Support for BOLT12 Offers #4600

@shaavan

Description

@shaavan

This issue tracks the implementation progress for Recurrence.

Spec PR: lightning/bolts#1240
LDK design discussion: #4476

Summary of Design Discussion

Based on the design discussion, Recurrence support will be split across rust-lightning and LDK Node.

rust-lightning will handle the protocol-facing pieces: wire data, a minimal API surface, and the handling logic that does not require access to saved recurrence state.

LDK Node will own the public-facing APIs and outbound recurrence state tracking.

Implementation Plan

rust-lightning

  • Introduce recurrence wire fields for BOLT12 messages:
    • Offers
    • Invoice Requests
    • Invoices
  • Introduce builder support for creating an InvoiceRequest with an explicit signing pubkey
  • Add handler logic:
    • Payee-side InvoiceRequest handling using the recurrence token
    • Payer-side Invoice handling using the BlindedPath MessageContext

LDK Node

  • Set up outbound recurrence state tracking, update, and expiry logic
  • Introduce recurrence offer builder
  • Introduce APIs to pay, re-pay, and cancel recurrence for recurring offers

Spec

  • Run interoperability tests
  • Review and merge spec

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type
    No fields configured for issues without a type.

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions