From 102132fa43044b6ac9aa75e28069cc7d687c0d5d Mon Sep 17 00:00:00 2001 From: ThomasV Date: Sat, 28 Jun 2025 16:51:39 +0200 Subject: [PATCH] lnwatcher: add 'subscribe' parameter to add_callback when a channel is redeemed, we still need to call the callback in order to set labels, accounting_addresses. Fixes #9987 --- electrum/lnwatcher.py | 14 ++++---------- 1 file changed, 4 insertions(+), 10 deletions(-) diff --git a/electrum/lnwatcher.py b/electrum/lnwatcher.py index 0dea133ed..126fb94f9 100644 --- a/electrum/lnwatcher.py +++ b/electrum/lnwatcher.py @@ -46,8 +46,9 @@ class LNWatcher(Logger, EventListener): def remove_callback(self, address): self.callbacks.pop(address, None) - def add_callback(self, address, callback): - self.adb.add_address(address) + def add_callback(self, address, callback, *, subscribe=True): + if subscribe: + self.adb.add_address(address) self.callbacks[address] = callback async def trigger_callbacks(self, *, requires_synchronizer=True): @@ -86,12 +87,7 @@ class LNWatcher(Logger, EventListener): outpoint = chan.funding_outpoint.to_str() address = chan.get_funding_address() callback = lambda: self.check_onchain_situation(address, outpoint) - if chan.need_to_subscribe(): - self.add_callback(address, callback) - - def unwatch_channel(self, address: str, funding_outpoint: str) -> None: - self.logger.info(f'unwatching {funding_outpoint}') - self.remove_callback(address) + self.add_callback(address, callback, subscribe=chan.need_to_subscribe()) @ignore_exceptions @log_exceptions @@ -121,8 +117,6 @@ class LNWatcher(Logger, EventListener): closing_txid=closing_txid, closing_height=closing_height, keep_watching=keep_watching) - if not keep_watching: - self.unwatch_channel(address, funding_outpoint) def diagnostic_name(self): return f"{self.lnworker.wallet.diagnostic_name()}-LNW"