blitz_api/app/lightning/impl
Justin Sharp d415fb30fd fix: handle missing bolt11 in CLN list_payments for keysend/BOLT12
Follow-up to #290 — same class of bug, different code path.

list_payments() in cln_jrpc.py unconditionally indexed p["bolt11"] for any
incomplete payment, causing a KeyError -> the function returned None and
then list_all_tx() crashed with `TypeError: 'NoneType' object is not
iterable`, returning HTTP 500 to the Transactions view.

CLN's `listpays` does not include `bolt11` for keysend payments or for
BOLT12 offer payments, so any node that has ever made one of those will
hit this on every Transactions load.

Fix: guard the bolt11 decode the same way #290 guards invoice fields —
only decode when bolt11 is present, and fall back to amount_sent_msat
when neither bolt11 nor amount_msat are available, so the payment still
shows up in the list.

Reproduced on RaspiBlitz v1.12.1 with Core Lightning v25.12.1 and a
keysend payment in history.
2026-05-12 19:01:33 +02:00
..
protos chore: update deps and flake file 2024-12-16 15:20:46 +01:00
specializations feat: replace call_script func with better func 2025-05-06 09:16:46 +02:00
__init__.py refactor: switch to domain driven directory layout 2022-10-03 20:22:00 +02:00
cln_grpc.py chore: run ruff format and isort 2025-05-06 09:16:46 +02:00
cln_jrpc.py fix: handle missing bolt11 in CLN list_payments for keysend/BOLT12 2026-05-12 19:01:33 +02:00
cln_utils.py feat: implement Ruff as a linter; fix given errors 2023-06-25 07:17:00 +02:00
ln_base.py refactor: switch to domain driven directory layout 2022-10-03 20:22:00 +02:00
lnd_grpc.py chore: clean up imports; add better LND error logging 2026-02-03 11:05:19 +01:00