From 716ba5760fe6e6e6862d62b77cc8020df37c6e69 Mon Sep 17 00:00:00 2001 From: evildido Date: Sun, 20 Jun 2021 10:42:49 +0200 Subject: [PATCH] Fix UPDATE in the calback url --- lnbits/extensions/withdraw/lnurl.py | 26 +++++++++++++++++++------- 1 file changed, 19 insertions(+), 7 deletions(-) diff --git a/lnbits/extensions/withdraw/lnurl.py b/lnbits/extensions/withdraw/lnurl.py index e699e5b4..f3e39f44 100644 --- a/lnbits/extensions/withdraw/lnurl.py +++ b/lnbits/extensions/withdraw/lnurl.py @@ -98,19 +98,21 @@ async def api_lnurl_callback(unique_hash): HTTPStatus.OK, ) - try: - await pay_invoice( - wallet_id=link.wallet, - payment_request=payment_request, - max_sat=link.max_withdrawable, - extra={"tag": "withdraw"}, - ) + try: usescsv = "" for x in range(1, link.uses - link.used): usecv = link.usescsv.split(",") usescsv += "," + str(usecv[x]) + usecsvback = usescsv usescsv = usescsv[1:] + + changesback = { + "open_time": link.wait_time, + "used": link.used, + "usescsv": usecsvback, + } + changes = { "open_time": link.wait_time + now, "used": link.used + 1, @@ -118,11 +120,21 @@ async def api_lnurl_callback(unique_hash): } await update_withdraw_link(link.id, **changes) + + await pay_invoice( + wallet_id=link.wallet, + payment_request=payment_request, + max_sat=link.max_withdrawable, + extra={"tag": "withdraw"}, + ) except ValueError as e: + await update_withdraw_link(link.id, **changesback) return jsonify({"status": "ERROR", "reason": str(e)}) except PermissionError: + await update_withdraw_link(link.id, **changesback) return jsonify({"status": "ERROR", "reason": "Withdraw link is empty."}) except Exception as e: + await update_withdraw_link(link.id, **changesback) return jsonify({"status": "ERROR", "reason": str(e)}) return jsonify({"status": "OK"}), HTTPStatus.OK