1
0

wallet/lnworker/etc: add sanity checks to start_network methods

related: https://github.com/spesmilo/electrum/issues/8301
This commit is contained in:
SomberNight
2023-04-17 16:56:57 +00:00
parent a03f4769ca
commit 6ac3f84095
4 changed files with 8 additions and 4 deletions

View File

@@ -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)

View File

@@ -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()

View File

@@ -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():

View File

@@ -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)