From 543b7ecb2330862a1bcc74bccbc4baa5ce481d55 Mon Sep 17 00:00:00 2001 From: Vlad Stan Date: Fri, 30 May 2025 15:25:15 +0300 Subject: [PATCH] fix: rever tasks logic --- lnbits/tasks.py | 32 ++++++++++++-------------------- 1 file changed, 12 insertions(+), 20 deletions(-) diff --git a/lnbits/tasks.py b/lnbits/tasks.py index 64d6fd639..a04407cc6 100644 --- a/lnbits/tasks.py +++ b/lnbits/tasks.py @@ -200,23 +200,15 @@ async def invoice_callback_dispatcher(checking_id: str, is_internal: bool = Fals invoice_listeners from core and extensions. """ payment = await get_standalone_payment(checking_id, incoming=True) - if not payment or payment.is_out: - return - - status = await payment.check_status() - if not status.success: - logger.warning( - f"Invoice '{checking_id}' is not settled yet, status: {status}. " - "Should never got here!" - ) - return - payment.fee = status.fee_msat or 0 - # only overwrite preimage if status.preimage provides it - payment.preimage = status.preimage or payment.preimage - payment.status = PaymentState.SUCCESS - await update_payment(payment) - internal = "internal" if is_internal else "" - logger.success(f"{internal} invoice {checking_id} settled") - for name, send_chan in invoice_listeners.items(): - logger.trace(f"invoice listeners: sending to `{name}`") - await send_chan.put(payment) + if payment and payment.is_in: + status = await payment.check_status() + payment.fee = status.fee_msat or 0 + # only overwrite preimage if status.preimage provides it + payment.preimage = status.preimage or payment.preimage + payment.status = PaymentState.SUCCESS + await update_payment(payment) + internal = "internal" if is_internal else "" + logger.success(f"{internal} invoice {checking_id} settled") + for name, send_chan in invoice_listeners.items(): + logger.trace(f"invoice listeners: sending to `{name}`") + await send_chan.put(payment)