Add LSPS5 webhook notification support - #993
Open
Camillarhi wants to merge 1 commit into
Open
Conversation
|
🎉 This PR is now ready for review! |
Camillarhi
marked this pull request as draft
July 17, 2026 12:06
Camillarhi
force-pushed
the
lsps5
branch
7 times, most recently
from
August 20, 2026 00:24
1d750fb to
9d4f022
Compare
Camillarhi
marked this pull request as ready for review
August 24, 2026 14:06
Camillarhi
force-pushed
the
lsps5
branch
4 times, most recently
from
August 25, 2026 14:30
5412755 to
2601d0f
Compare
Implement the bLIP-55 / LSPS5 webhook registration protocol on top of the
multi-LSP liquidity module (src/liquidity/{client,service}).
Client side, exposed via Node::liquidity().lsps5():
- set_webhook / list_webhooks / remove_webhook to manage webhook
registrations with a given LSP. Each takes the LSP's node ID explicitly:
bLIP-55 has the notification service verify the x-lsps5-signature header
against the signing LSP's node ID, so a registration is meaningful only
for one LSP at a time.
Service side, enabled by passing an LSPS5ServiceConfig to
Builder::enable_liquidity_provider():
- Deliver outgoing webhook notifications over HTTPS in response to
LSPS5ServiceEvent::SendWebhookNotification.
- Send lsps5.payment_incoming when an inbound HTLC forward to a client
fails because the client is offline (wired from LdkEvent::
HTLCHandlingFailed with LocalHTLCFailureReason::PeerOffline).
- Send lsps5.onion_message_incoming when an intercepted onion message
targets a client that is currently offline.
- Send lsps5.expiry_soon from a periodic task that scans channels for outbound
HTLCs approaching their cltv_expiry, so a client that went offline holding an
HTLC has a chance to come online and settle before it expires.
Adds integration tests covering webhook registration and the
payment_incoming trigger, and wires the feature through the UniFFI
bindings.
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Integrates LSPS5 (bLIP-0055) from lightning-liquidity, enabling webhook-based push notifications so clients can be alerted to events while their app is offline. Built on the refactored multi-LSP liquidity module
(src/liquidity/{client,service}).When
node_idisNone,set_webhookandremove_webhookfan out to every LSPS5-capable LSP, so a webhook can be configured once across all configured LSPs.Lets a node act as an LSPS5 server:
LSPS5ServiceEvent::SendWebhookNotification.onion_message_incomingnotification when an intercepted onion message targets a client that is currently offline (wired fromLdkEvent::OnionMessageIntercepted, gated on peer connectivity via the peer manager).Reopening after an accidental force-push pushed the branch to main's tip and auto-closed #729.
Fixes: #1017