adds atm check, so withdraw isnt cancelled on false call by wallets

This commit is contained in:
ben
2022-10-06 14:16:21 +01:00
parent 96545380f7
commit 27bae6a0c6

View File

@@ -184,22 +184,27 @@ async def lnurl_callback(
raise HTTPException( raise HTTPException(
status_code=HTTPStatus.FORBIDDEN, detail="lnurldevice not found." status_code=HTTPStatus.FORBIDDEN, detail="lnurldevice not found."
) )
if pr: if device.device == "atm":
if lnurldevicepayment.id != k1: if not pr:
return {"status": "ERROR", "reason": "Bad K1"} raise HTTPException(
if lnurldevicepayment.payhash != "payment_hash": status_code=HTTPStatus.FORBIDDEN, detail="No payment request"
return {"status": "ERROR", "reason": f"Payment already claimed"} )
else:
if lnurldevicepayment.id != k1:
return {"status": "ERROR", "reason": "Bad K1"}
if lnurldevicepayment.payhash != "payment_hash":
return {"status": "ERROR", "reason": f"Payment already claimed"}
lnurldevicepayment = await update_lnurldevicepayment( lnurldevicepayment = await update_lnurldevicepayment(
lnurldevicepayment_id=paymentid, payhash=lnurldevicepayment.payload lnurldevicepayment_id=paymentid, payhash=lnurldevicepayment.payload
) )
await pay_invoice( await pay_invoice(
wallet_id=device.wallet, wallet_id=device.wallet,
payment_request=pr, payment_request=pr,
max_sat=lnurldevicepayment.sats / 1000, max_sat=lnurldevicepayment.sats / 1000,
extra={"tag": "withdraw"}, extra={"tag": "withdraw"},
) )
return {"status": "OK"} return {"status": "OK"}
payment_hash, payment_request = await create_invoice( payment_hash, payment_request = await create_invoice(
wallet_id=device.wallet, wallet_id=device.wallet,