Browse Source

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

related: https://github.com/spesmilo/electrum/issues/8301
master
SomberNight 3 years ago
parent
commit
6ac3f84095
No known key found for this signature in database
GPG Key ID: B33B5F232C6271E9
  1. 1
      electrum/address_synchronizer.py
  2. 1
      electrum/lnworker.py
  3. 1
      electrum/submarine_swaps.py
  4. 9
      electrum/wallet.py

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

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

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

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

Loading…
Cancel
Save