mirror of
https://github.com/lnbits/lnbits.git
synced 2025-10-01 06:56:27 +02:00
adds atm check, so withdraw isnt cancelled on false call by wallets
This commit is contained in:
@@ -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,
|
||||||
|
Reference in New Issue
Block a user