From 285bf497b632d416fd7d31923903fbbbd2b2f0f6 Mon Sep 17 00:00:00 2001 From: callebtc <93376500+callebtc@users.noreply.github.com> Date: Mon, 12 Dec 2022 23:16:31 +0100 Subject: [PATCH 01/12] fix: log status check --- lnbits/extensions/cashu/views_api.py | 29 +++++++++++++++++++--------- 1 file changed, 20 insertions(+), 9 deletions(-) diff --git a/lnbits/extensions/cashu/views_api.py b/lnbits/extensions/cashu/views_api.py index ad253abf..bf01dbff 100644 --- a/lnbits/extensions/cashu/views_api.py +++ b/lnbits/extensions/cashu/views_api.py @@ -280,22 +280,33 @@ async def melt_coins( fees_msat = fee_reserve(invoice_obj.amount_msat) else: fees_msat = 0 - assert total_provided >= amount + fees_msat / 1000, Exception( + assert total_provided >= amount + math.ceil(fees_msat / 1000), Exception( f"Provided proofs ({total_provided} sats) not enough for Lightning payment ({amount + fees_msat} sats)." ) - + logger.debug(f"Cashu: Initiating payment of {total_provided} sats") await pay_invoice( wallet_id=cashu.wallet, payment_request=invoice, - description=f"pay cashu invoice", - extra={"tag": "cashu", "cahsu_name": cashu.name}, + description=f"Pay cashu invoice", + extra={"tag": "cashu", "cashu_name": cashu.name}, ) - status: PaymentStatus = await check_transaction_status( - cashu.wallet, invoice_obj.payment_hash - ) - if status.paid == True: + try: + logger.debug( + f"Cashu: Wallet {cashu.wallet} fetting PaymentStatus of {invoice_obj.payment_hash}" + ) + status: PaymentStatus = await check_transaction_status( + cashu.wallet, invoice_obj.payment_hash + ) + logger.debug(f"Cashu: Got status.paid: {status.paid}") + if status.paid == True: + logger.debug("Cashu: Payment successful, invalidating proofs") + await ledger._invalidate_proofs(proofs) + except Exception as e: + logger.error(e) + logger.error("Cashu: Error in payment status check, invalidating proofs") await ledger._invalidate_proofs(proofs) + return GetMeltResponse(paid=status.paid, preimage=status.preimage) @@ -333,7 +344,7 @@ async def check_fees( fees_msat = fee_reserve(invoice_obj.amount_msat) else: fees_msat = 0 - return CheckFeesResponse(fee=fees_msat / 1000) + return CheckFeesResponse(fee=math.ceil(fees_msat / 1000)) @cashu_ext.post("/api/v1/{cashu_id}/split") From 6ccc7833777a8af4902a3b194a38042fb415283d Mon Sep 17 00:00:00 2001 From: Vlad Stan Date: Tue, 13 Dec 2022 13:36:21 +0200 Subject: [PATCH 02/12] feat: store & show `webhook` response body --- lnbits/extensions/satspay/helpers.py | 6 +++- lnbits/extensions/satspay/static/js/utils.js | 1 + .../satspay/templates/satspay/index.html | 36 +++++++++++++++---- 3 files changed, 36 insertions(+), 7 deletions(-) diff --git a/lnbits/extensions/satspay/helpers.py b/lnbits/extensions/satspay/helpers.py index 60c5ba4a..b21a3ae2 100644 --- a/lnbits/extensions/satspay/helpers.py +++ b/lnbits/extensions/satspay/helpers.py @@ -37,7 +37,11 @@ async def call_webhook(charge: Charges): json=public_charge(charge), timeout=40, ) - return {"webhook_success": r.is_success, "webhook_message": r.reason_phrase} + return { + "webhook_success": r.is_success, + "webhook_message": r.reason_phrase, + "webhook_response": r.text, + } except Exception as e: logger.warning(f"Failed to call webhook for charge {charge.id}") logger.warning(e) diff --git a/lnbits/extensions/satspay/static/js/utils.js b/lnbits/extensions/satspay/static/js/utils.js index 2b1be8bd..5317673f 100644 --- a/lnbits/extensions/satspay/static/js/utils.js +++ b/lnbits/extensions/satspay/static/js/utils.js @@ -23,6 +23,7 @@ const mapCharge = (obj, oldObj = {}) => { charge.displayUrl = ['/satspay/', obj.id].join('') charge.expanded = oldObj.expanded || false charge.pendingBalance = oldObj.pendingBalance || 0 + charge.extra = charge.extra ? JSON.parse(charge.extra) : charge.extra return charge } diff --git a/lnbits/extensions/satspay/templates/satspay/index.html b/lnbits/extensions/satspay/templates/satspay/index.html index 602b1a28..2dda8792 100644 --- a/lnbits/extensions/satspay/templates/satspay/index.html +++ b/lnbits/extensions/satspay/templates/satspay/index.html @@ -227,7 +227,12 @@ >
- + {{props.row.webhook_message }}
@@ -528,6 +533,23 @@ + + + + + +
+ Close +
+
+
{% endblock %} {% block scripts %} {{ window_vars(user) }}