Skip to content

Commit fef6fc5

Browse files
committed
lnwatcher: do not keep watching channel because of non-existing outputs. fixes #9299
1 parent 7a7c0f1 commit fef6fc5

File tree

1 file changed

+5
-1
lines changed

1 file changed

+5
-1
lines changed

electrum/lnwatcher.py

+5-1
Original file line numberDiff line numberDiff line change
@@ -447,6 +447,10 @@ async def do_breach_remedy(self, funding_outpoint, closing_tx, spenders):
447447
keep_watching = False if sweep_info_dict else not self.is_deeply_mined(closing_tx.txid())
448448
# create and broadcast transaction
449449
for prevout, sweep_info in sweep_info_dict.items():
450+
prev_txid, prev_index = prevout.split(':')
451+
if not self.adb.get_transaction(prev_txid):
452+
# do not keep watching if prevout does not exist
453+
continue
450454
name = sweep_info.name + ' ' + chan.get_id_for_log()
451455
spender_txid = spenders.get(prevout)
452456
spender_tx = self.adb.get_transaction(spender_txid) if spender_txid else None
@@ -461,7 +465,7 @@ async def do_breach_remedy(self, funding_outpoint, closing_tx, spenders):
461465
keep_watching = True
462466
await self.maybe_redeem(spenders, spender_txid+':0', e_htlc_tx, name)
463467
else:
464-
keep_watching |= not self.is_deeply_mined(spender_tx.txid())
468+
keep_watching |= not self.is_deeply_mined(spender_txid)
465469
txin_idx = spender_tx.get_input_idx_that_spent_prevout(TxOutpoint.from_str(prevout))
466470
assert txin_idx is not None
467471
spender_txin = spender_tx.inputs()[txin_idx]

0 commit comments

Comments
 (0)