|
|
@ -28,6 +28,7 @@ async def create_invoice( |
|
|
|
memo: str, |
|
|
|
description_hash: Optional[bytes] = None, |
|
|
|
extra: Optional[Dict] = None, |
|
|
|
webhook: Optional[str] = None, |
|
|
|
) -> Tuple[str, str]: |
|
|
|
await db.begin() |
|
|
|
invoice_memo = None if description_hash else memo |
|
|
@ -50,6 +51,7 @@ async def create_invoice( |
|
|
|
amount=amount_msat, |
|
|
|
memo=storeable_memo, |
|
|
|
extra=extra, |
|
|
|
webhook=webhook, |
|
|
|
) |
|
|
|
|
|
|
|
await db.commit() |
|
|
@ -131,10 +133,7 @@ async def pay_invoice( |
|
|
|
payment: PaymentResponse = WALLET.pay_invoice(payment_request) |
|
|
|
if payment.ok and payment.checking_id: |
|
|
|
await create_payment( |
|
|
|
checking_id=payment.checking_id, |
|
|
|
fee=payment.fee_msat, |
|
|
|
preimage=payment.preimage, |
|
|
|
**payment_kwargs, |
|
|
|
checking_id=payment.checking_id, fee=payment.fee_msat, preimage=payment.preimage, **payment_kwargs, |
|
|
|
) |
|
|
|
await delete_payment(temp_id) |
|
|
|
else: |
|
|
@ -154,8 +153,7 @@ async def redeem_lnurl_withdraw(wallet_id: str, res: LnurlWithdrawResponse, memo |
|
|
|
|
|
|
|
async with httpx.AsyncClient() as client: |
|
|
|
await client.get( |
|
|
|
res.callback.base, |
|
|
|
params={**res.callback.query_params, **{"k1": res.k1, "pr": payment_request}}, |
|
|
|
res.callback.base, params={**res.callback.query_params, **{"k1": res.k1, "pr": payment_request}}, |
|
|
|
) |
|
|
|
|
|
|
|
|
|
|
@ -212,11 +210,7 @@ async def perform_lnurlauth(callback: str) -> Optional[LnurlErrorResponse]: |
|
|
|
async with httpx.AsyncClient() as client: |
|
|
|
r = await client.get( |
|
|
|
callback, |
|
|
|
params={ |
|
|
|
"k1": k1.hex(), |
|
|
|
"key": key.verifying_key.to_string("compressed").hex(), |
|
|
|
"sig": sig.hex(), |
|
|
|
}, |
|
|
|
params={"k1": k1.hex(), "key": key.verifying_key.to_string("compressed").hex(), "sig": sig.hex(),}, |
|
|
|
) |
|
|
|
try: |
|
|
|
resp = json.loads(r.text) |
|
|
@ -225,9 +219,7 @@ async def perform_lnurlauth(callback: str) -> Optional[LnurlErrorResponse]: |
|
|
|
|
|
|
|
return LnurlErrorResponse(reason=resp["reason"]) |
|
|
|
except (KeyError, json.decoder.JSONDecodeError): |
|
|
|
return LnurlErrorResponse( |
|
|
|
reason=r.text[:200] + "..." if len(r.text) > 200 else r.text, |
|
|
|
) |
|
|
|
return LnurlErrorResponse(reason=r.text[:200] + "..." if len(r.text) > 200 else r.text,) |
|
|
|
|
|
|
|
|
|
|
|
async def check_invoice_status(wallet_id: str, payment_hash: str) -> PaymentStatus: |
|
|
|