Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

BOLT 12 Proof of Payment #3344

Open
TheBlueMatt opened this issue Sep 30, 2024 · 5 comments
Open

BOLT 12 Proof of Payment #3344

TheBlueMatt opened this issue Sep 30, 2024 · 5 comments
Milestone

Comments

@TheBlueMatt
Copy link
Collaborator

We currently don't support proof of payment for sent BOLT 12 payments because the user needs the Bolt12Invoice in the PaymentSent Event. This will require a bit of involvement, we'll need to store the Bolt12Invoice in the ChannelMonitorUpdates for sent payments so we can restore them if the ChannelManager is stale on reload. When we do this we should also include DNSSECProof objects from #3179 so that we get BIP 353 proof of payment too. cc @jkczyz

@TheBlueMatt TheBlueMatt added this to the 0.1 milestone Sep 30, 2024
@jkczyz
Copy link
Contributor

jkczyz commented Oct 2, 2024

IIUC, for BOLT11 payments, the onus is on the user to maintain a copy of the invoice. Any reason why we wouldn't do the same for BOLT12 payments? It would require using manually_handle_bolt12_invoices.

@TheBlueMatt
Copy link
Collaborator Author

Because using manually_handle_bolt12_invoices requires a bunch of work, but PoP is something we should encourage all our users to maintain. If we want to require manually_handle_bolt12_invoices for PoP IMO we should completely remove support for !manually_handle_bolt12_invoices.

@vincenzopalazzo
Copy link
Contributor

Just for proof of payment do you think that would be a nice idea to pop out the invoice through an event? and then also together with the payment completed notification?

For payment proof what you need is that at some point you can get the invoice somewhere.

Not sure if the case that I described is included with the manually_handle_bolt12_invoices, I need to look more inside the code for it

@TheBlueMatt
Copy link
Collaborator Author

Yea, we could have a separate event for it, but its definitely nicer for the user if we provide it all in one go, and I'm not sure its that much work to do so, just a question of piping the invoice through a few state machine states and popping it back out when we get the preimage.

@vincenzopalazzo
Copy link
Contributor

Since I am already going down this proof of payment rabbit hole in other projects, and Jeff isn’t looking into it yet, I could explore this task a bit further.

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

No branches or pull requests

3 participants