-
Notifications
You must be signed in to change notification settings - Fork 965
Fixing offers when offer_paths are present and offer_issuer_id is not needed #8238
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
base: master
Are you sure you want to change the base?
Conversation
|
As requested by @vincenzopalazzo |
86ec127 to
5c53729
Compare
|
This invoice is invalid: let's break it down by type, length, value (hex)
This has no "b0" field (i.e. type: 176 ( To quote bolt12: And: So, who is producing this invalid invoice? |
5c53729 to
2d84be6
Compare
206ea1b to
ee7364c
Compare
|
Thank you Rusty, and sorry for the late reply. I just updated this PR with what I think fixes the issue. It now does the following: So as far as I know, this code is now properly working and addresses the issues I had identified. The invoice signature is recognized as valid by fetchinvoice, and it works whether or not an offer contains an issuer_id. Thank you! |
c1523df to
2da0d2e
Compare
|
This solves the issuer_id issue identified in #4689 |
2da0d2e to
fbcf9db
Compare
|
It seems this one slipped through the 25.12 release crack because the issue it was linked to had been closed. will request and prompt for review ahead of early 2026 release. @21M4TW can you please rebase? |
-Fixing offers when offer_paths are present and offer_issuer_id is no longer needed. -listoffers_done: Fix invoice_node_id so it is set to the final blinded_node_id when offer_issuer_id is not present and offers_path is present. -Fixing the signature of invoices without an offer issuer (i.e. using a blinded node id for signing).
fbcf9db to
636bf38
Compare
Thanks. I just rebased it to the latest commit from master. |
|
thanks! now over to @endothermicdev for review please. |
Fixing offers when offer_paths are present and offer_issuer_id is no longer needed:
-When offer_paths are present and offer_issuer_id is no longer needed, set offer_issuer_id to NULL in found_best_peer
-In listoffers_done, when there is no offer_issuer_id, set invoice_node_id to the final blinded_node_id from the used offer path (as described in the Bolt12 specs)
-handle_sign_bolt12 was only used to sign invoices, but was not able to sign using the blinded node id. I modified the function to support using a path_pubkey (I created the function node_blinded_privkey as well).