fix: show better errors when a LNURL-withdraw wallet cannot be created, closes #39
This commit is contained in:
parent
76f17d8594
commit
aed2414f3a
|
@ -37,7 +37,7 @@ LNURL has a fallback scheme, so if scanned by a regular QR code reader it can de
|
||||||
![lnurl fallback](https://i.imgur.com/CPBKHIv.png)
|
![lnurl fallback](https://i.imgur.com/CPBKHIv.png)
|
||||||
https://github.com/btcontract/lnurl-rfc/blob/master/spec.md
|
https://github.com/btcontract/lnurl-rfc/blob/master/spec.md
|
||||||
|
|
||||||
Adding **/lnurlwallet?lightning="LNURL-withdraw"** will trigger a withdraw that builds an LNbits wallet.
|
Using **lnbits.com/?lightning="LNURL-withdraw"** will trigger a withdraw that builds an LNbits wallet.
|
||||||
Example use would be an ATM, which utilises LNURL, if the user scans the QR with a regular QR code scanner app, they will stilll be able to access the funds.
|
Example use would be an ATM, which utilises LNURL, if the user scans the QR with a regular QR code scanner app, they will stilll be able to access the funds.
|
||||||
|
|
||||||
![lnurl ATM](https://i.imgur.com/Gi6bn3L.jpg)
|
![lnurl ATM](https://i.imgur.com/Gi6bn3L.jpg)
|
||||||
|
|
|
@ -17,9 +17,13 @@ def lnurlwallet():
|
||||||
memo = "LNbits LNURL funding"
|
memo = "LNbits LNURL funding"
|
||||||
|
|
||||||
try:
|
try:
|
||||||
withdraw_res = handle_lnurl(request.args.get("lightning"), response_class=LnurlWithdrawResponse)
|
withdraw_res = handle_lnurl(request.args.get("lightning"))
|
||||||
|
if not withdraw_res.ok:
|
||||||
|
abort(HTTPStatus.BAD_REQUEST, f"Could not process LNURL-withdraw: {withdraw_res.error_msg}")
|
||||||
|
if not isinstance(withdraw_res, LnurlWithdrawResponse):
|
||||||
|
abort(HTTPStatus.BAD_REQUEST, "Not a valid LNURL-withdraw.")
|
||||||
except LnurlException:
|
except LnurlException:
|
||||||
abort(HTTPStatus.INTERNAL_SERVER_ERROR, "Could not process withdraw LNURL.")
|
abort(HTTPStatus.INTERNAL_SERVER_ERROR, "Could not process LNURL-withdraw.")
|
||||||
|
|
||||||
try:
|
try:
|
||||||
ok, checking_id, payment_request, error_message = WALLET.create_invoice(withdraw_res.max_sats, memo)
|
ok, checking_id, payment_request, error_message = WALLET.create_invoice(withdraw_res.max_sats, memo)
|
||||||
|
@ -35,7 +39,7 @@ def lnurlwallet():
|
||||||
)
|
)
|
||||||
|
|
||||||
if not r.ok:
|
if not r.ok:
|
||||||
abort(HTTPStatus.INTERNAL_SERVER_ERROR, "Could not process withdraw LNURL.")
|
abort(HTTPStatus.INTERNAL_SERVER_ERROR, "Could not process LNURL-withdraw.")
|
||||||
|
|
||||||
for i in range(10):
|
for i in range(10):
|
||||||
invoice_status = WALLET.get_invoice_status(checking_id)
|
invoice_status = WALLET.get_invoice_status(checking_id)
|
||||||
|
|
Loading…
Reference in New Issue
Block a user