From 99a78d4d6c98bbd4eaf4d6c05b9f9e21942e844c Mon Sep 17 00:00:00 2001 From: Sander van Grieken Date: Mon, 17 Apr 2023 10:46:22 +0200 Subject: [PATCH] wallet: don't restart wallet/network when init_lightning --- electrum/wallet.py | 17 ++++++++++------- 1 file changed, 10 insertions(+), 7 deletions(-) diff --git a/electrum/wallet.py b/electrum/wallet.py index 68bb85223..ec75dab95 100644 --- a/electrum/wallet.py +++ b/electrum/wallet.py @@ -438,11 +438,9 @@ class Abstract_Wallet(ABC, Logger, EventListener): node = BIP32Node.from_rootseed(seed, xtype='standard') ln_xprv = node.to_xprv() self.db.put('lightning_privkey2', ln_xprv) - if self.network: - self.network.run_from_another_thread(self.stop()) self.lnworker = LNWallet(self, ln_xprv) if self.network: - self.start_network(self.network) + self.start_network_lightning() async def stop(self): """Stop all networking and save DB to disk.""" @@ -539,10 +537,15 @@ class Abstract_Wallet(ABC, Logger, EventListener): asyncio.run_coroutine_threadsafe(self.main_loop(), self.network.asyncio_loop) self.adb.start_network(network) if self.lnworker: - self.lnworker.start_network(network) - # only start gossiping when we already have channels - if self.db.get('channels'): - self.network.start_gossip() + self.start_network_lightning() + + def start_network_lightning(self): + assert self.lnworker + assert self.lnworker.network is None, 'lnworker network already initialized' + self.lnworker.start_network(self.network) + # only start gossiping when we already have channels + if self.db.get('channels'): + self.network.start_gossip() @abstractmethod def load_keystore(self) -> None: