fix perform_lnurl error handling.

This commit is contained in:
fiatjaf
2020-11-11 02:40:41 -03:00
parent d4e30356c7
commit bb94dc6526
3 changed files with 20 additions and 17 deletions
+6 -6
View File
@@ -5,8 +5,8 @@ from binascii import unhexlify
from typing import Optional, Tuple, Dict
from urllib.parse import urlparse, parse_qs
from quart import g
from lnurl import LnurlWithdrawResponse # type: ignore
from ecdsa.util import sigencode_der # type: ignore
from lnurl import LnurlErrorResponse, LnurlWithdrawResponse # type: ignore
try:
from typing import TypedDict # type: ignore
@@ -159,7 +159,7 @@ async def redeem_lnurl_withdraw(wallet_id: str, res: LnurlWithdrawResponse, memo
)
async def perform_lnurlauth(callback: str):
async def perform_lnurlauth(callback: str) -> Optional[LnurlErrorResponse]:
k1 = unhexlify(parse_qs(urlparse(callback).query)["k1"][0])
key = g.wallet.lnurlauth_key
sig = key.sign_digest_deterministic(k1, sigencode=sigencode_der)
@@ -178,11 +178,11 @@ async def perform_lnurlauth(callback: str):
if resp["status"] == "OK":
return None
return resp["reason"]
return LnurlErrorResponse(reason=resp["reason"])
except (KeyError, json.decoder.JSONDecodeError):
return r.text[:200] + "..." if len(r.text) > 200 else r.text
return None
return LnurlErrorResponse(
reason=r.text[:200] + "..." if len(r.text) > 200 else r.text,
)
def check_invoice_status(wallet_id: str, payment_hash: str) -> PaymentStatus: