-
Notifications
You must be signed in to change notification settings - Fork 922
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
Invalid bolt11: h: does not match description #5163
Comments
Example: I want to send 1sat to
But can not pay it until I cryptically supply the
|
On Tue, Apr 05, 2022 at 07:16:57AM -0700, Ján Sáreník wrote:
The payer does not have to set the funny JSON description that was set by LNURL parameter `metadata`.
I'm not sure I agree with 'The payer does not have to set the funny JSON
description'. Isn't this the entire point of lnurl's description_hash
usage? To be able to ensure that the payer is paying the invoice
associated with the payment metadata presented from the initial call to
the lnurl?
|
OK. It's just unusable for me. |
Indeed it is not very usable if you're doing everything on the CLI, but these steps were always intended to be abstracted by a wallet or some other thing that exists on top of lightningd. You can probably write a simple script or plugin Would it work to have a plugin with an |
On Tue, Apr 05, 2022 at 08:08:55AM -0700, Ján Sáreník wrote:
It breaks lnlink too but it wasn't really following spec anyways... will |
Should still be allowed, unless you disabled deprecated-apis? (Checked, indeed this is true). But you can add a literal description using |
lightningd/plugins#354 seems to do the trick? |
Yes it works. Thanks. To catch things early, I used to run @rustyrussell This is actually a good example of what you were talking about during the meeting on Monday. The change was a good try, with good intentions, but should not go into deprecation and I would strongly suggest it to be un-deprecated in the next release (in the meanwhile any issues with deprecated-apis will get ignored by me as they will be practically not noticed). |
Works for me now. Closing. |
Just to add some proposals and up-to-date comments to this. In
From the user point of view, the functionality has changed. Imagine a web browser not opening a URL containing a hash simply because the user does not present it with a clear-text data of the hash. No real limitation, HTTPS could be done and would work, but the browser refuses to open a connection… Two proposals here:
|
One example where this would have saved me is generating an invoice on https://expensive-relay.fiatjaf.com, it gave me a deschash-only invoice which I paid. It turns out there was a bug and his service didn't work, since cln blindly paid the invoice, I have no description showing what I bought. fiatjaf's node could simply deny that they see my nostr pubkey in their database and I have no recourse to prove otherwise. |
I agree the contents of the invoice are important and that having a proof of having paid something is meaningless if that proof doesn't specify what was paid for, but I also agree that your node software refusing to pay an invoice you know is good or you don't care is super annoying. An argument could be made that an invoice like this which I paid today is as meaningless as an invoice with a description hash: On the other hand one can also say that there is actually no fundamental restriction, as @jsarenik can use As a last point, I don't think the spec mandates the behavior that the current |
Closing, thanks for comments! |
Issue and Steps to Reproduce
Get an invoice with
description_hash
and try to pay it without supplyingdescription
.Introduced by d5c736f and I think it is wrong. The payer does not have to set the funny JSON description that was set by LNURL parameter
metadata
.@rustyrussell please fix before release, it totally breaks UX
The text was updated successfully, but these errors were encountered: