diff --git a/electrum/address_synchronizer.py b/electrum/address_synchronizer.py index cea1ed0f3..3e490f8f4 100644 --- a/electrum/address_synchronizer.py +++ b/electrum/address_synchronizer.py @@ -182,6 +182,7 @@ class AddressSynchronizer(Logger, EventListener): self.add_unverified_or_unconfirmed_tx(tx_hash, tx_height) def start_network(self, network: Optional['Network']) -> None: + assert self.network is None, "already started" self.network = network if self.network is not None: self.synchronizer = Synchronizer(self) diff --git a/electrum/lnworker.py b/electrum/lnworker.py index 37aa6c98a..ffc56c74f 100644 --- a/electrum/lnworker.py +++ b/electrum/lnworker.py @@ -338,6 +338,7 @@ class LNWorker(Logger, EventListener, NetworkRetryManager[LNPeerAddr]): def start_network(self, network: 'Network'): assert network + assert self.network is None, "already started" self.network = network self.config = network.config self._add_peers_from_config() diff --git a/electrum/submarine_swaps.py b/electrum/submarine_swaps.py index d1c653ca3..b0af03fd4 100644 --- a/electrum/submarine_swaps.py +++ b/electrum/submarine_swaps.py @@ -170,6 +170,7 @@ class SwapManager(Logger): def start_network(self, *, network: 'Network', lnwatcher: 'LNWalletWatcher'): assert network assert lnwatcher + assert self.network is None, "already started" self.network = network self.lnwatcher = lnwatcher for k, swap in self.swaps.items(): diff --git a/electrum/wallet.py b/electrum/wallet.py index ec75dab95..302726f4b 100644 --- a/electrum/wallet.py +++ b/electrum/wallet.py @@ -440,7 +440,7 @@ class Abstract_Wallet(ABC, Logger, EventListener): self.db.put('lightning_privkey2', ln_xprv) self.lnworker = LNWallet(self, ln_xprv) if self.network: - self.start_network_lightning() + self._start_network_lightning() async def stop(self): """Stop all networking and save DB to disk.""" @@ -531,15 +531,16 @@ class Abstract_Wallet(ABC, Logger, EventListener): self.adb.clear_history() self.save_db() - def start_network(self, network): + def start_network(self, network: 'Network'): + assert self.network is None, "already started" self.network = network if network: asyncio.run_coroutine_threadsafe(self.main_loop(), self.network.asyncio_loop) self.adb.start_network(network) if self.lnworker: - self.start_network_lightning() + self._start_network_lightning() - def start_network_lightning(self): + def _start_network_lightning(self): assert self.lnworker assert self.lnworker.network is None, 'lnworker network already initialized' self.lnworker.start_network(self.network)