wallet/lnworker/etc: add sanity checks to start_network methods
related: https://github.com/spesmilo/electrum/issues/8301
This commit is contained in:
@@ -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)
|
||||
|
||||
@@ -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()
|
||||
|
||||
@@ -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():
|
||||
|
||||
@@ -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)
|
||||
|
||||
Reference in New Issue
Block a user