Avatar
bumi
330fb1431ff9d8c250706bbcdc016d5495a3f744e047a408173e92ae7ee42dac
working on getalby.com - a browser extension with lightning and Nostr support

nostr:npub1h50pnxqw9jg7dhr906fvy4mze2yzawf895jhnc3p7qmljdugm6gsrurqev do you have an Alby account? then I can enable the invite a friend feature already for you.

I mainly was curious what’s the reason or if I miss something on why it is in there. (just as lnurl itself has removed it)

basically, yes. making this independent of the bolt11 somehow to allow implementations that have issues with the description hash also be used to receive zaps.

to the point as always :)

even if one would pass some random big string to the wallet, what should it do with the zap request for example? (bolt11 and description would come from the same source)

should it show the scary JSON somehow to the user?

the description is used as a short text for humans. that’s what is shown for people.

assuming a zap request could be shorter than 639 bytes it would also not work.

I don’t know the bolt11 details well enough.

Even if it’s their fault to not implement the bolt11 spec perfectly the state is that some big implementations have this problem.

It limits how zappers can be built. LN implementations have problems, not to talk about tools like lnbits, strike, etc.

those can not be used because of this limitation.

good point, ecash and other options would also not work.

The spec says the description hash is used to commit to an associated description that is over 639 bytes.

things might accidentally work because the length is long enough.

(For me having the length decide on either storing a human readable string in a description or a hash for machines using the lengths of the string does not really makes sense - the app should explicitly choose. but that's how it is there.)

LDK, Phoenixd both don't support setting the description hash.

From what I heard LDK might support setting the description hash for long descriptions (as the spec says).

but that's also annoying for implementations (as discussed in the LNURL case) For plain LNURL the description hash requirement was dropped because of that.

This also means no human readable description can be passed along (that would be shown to the sender) (because it's either or)

Join the Alby community call, happening now!

https://meet.fulmo.org/AlbyCommunityCall

and isn't it easy to do this fully on the client side?

for example like this: https://gist.github.com/bumi/050a29cef2f6f9f9d7960d834104890a

making a queue and wait a but until window.nostr is enabled?

I think the window.nostr should be as stupid as possible to also make it easier for other ways to implement it. (e.g. nsecbunker and such)

syntactic sugar and such nice things I would try to put in the client -maybe even some library.

one issue is that this usage of the description hash is not the intended usage by the bolt11 spec and by the node implementations. (LDK, CLN, Phoenix) (e.g a phoenix or LDK backed zap receiver can not work because of that)

Then I feel like this is also a very indirect and complicated check (decoding the bolt11, getting the hash, hashing the request,…) and it seems like damus is the only client doing this.

can we make this independent of the bolt11 somehow?

thanks, what was the reason why CLN does want to implement the description as they do? because the bolt11 spec says so?

to me it makes no sense to decide on the length of a field if it is added in a clear text field for humans on in hash for computers.

if you still see this, point me to a page where this happens.

Quite a long time ago this was optimized and with MV3 browsers I think also made this easier.

There was the discussion of adding an event similar to how it actually works with DOMContentLoaded and other events which I think would be the cleaner way if something is really needed.