From 7d02e7d37065e3f55efcee49353efd08adb0907a Mon Sep 17 00:00:00 2001 From: Kay Kurokawa Date: Mon, 19 Dec 2016 15:24:14 -0500 Subject: [PATCH 1/2] changing wallet initialization order --- lbrynet/core/Wallet.py | 35 +++++++++++++++++------------------ 1 file changed, 17 insertions(+), 18 deletions(-) diff --git a/lbrynet/core/Wallet.py b/lbrynet/core/Wallet.py index 04665e8d7..fa9716ca6 100644 --- a/lbrynet/core/Wallet.py +++ b/lbrynet/core/Wallet.py @@ -809,9 +809,11 @@ class LBRYumWallet(Wallet): self._start_check = task.LoopingCall(check_started) + d.addCallback(lambda _: self._load_wallet()) + d.addCallback(self._save_wallet) d.addCallback(lambda _: self._start_check.start(.1)) d.addCallback(lambda _: network_start_d) - d.addCallback(lambda _: self._load_wallet()) + d.addCallback(lambda _: self._load_blockchain()) d.addCallback(lambda _: self._get_cmd_runner()) return d @@ -843,21 +845,20 @@ class LBRYumWallet(Wallet): return d def _load_wallet(self): + path = self.config.get_wallet_path() + storage = lbryum.wallet.WalletStorage(path) + wallet = lbryum.wallet.Wallet(storage) + if not storage.file_exists: + self.first_run = True + seed = wallet.make_seed() + wallet.add_seed(seed, None) + wallet.create_master_keys(None) + wallet.create_main_account() + wallet.synchronize() + self.wallet = wallet + return defer.succeed(True) - def get_wallet(): - path = self.config.get_wallet_path() - storage = lbryum.wallet.WalletStorage(path) - wallet = lbryum.wallet.Wallet(storage) - if not storage.file_exists: - self.first_run = True - seed = wallet.make_seed() - wallet.add_seed(seed, None) - wallet.create_master_keys(None) - wallet.create_main_account() - wallet.synchronize() - self.wallet = wallet - return defer.succeed(True) - + def _load_blockchain(self): blockchain_caught_d = defer.Deferred() def check_caught_up(): @@ -900,9 +901,7 @@ class LBRYumWallet(Wallet): return defer.fail(err) self._catch_up_check = task.LoopingCall(check_caught_up) - d = get_wallet() - d.addCallback(self._save_wallet) - d.addCallback(lambda _: self.wallet.start_threads(self.network)) + d = defer.succeed(self.wallet.start_threads(self.network)) d.addCallback(lambda _: self._catch_up_check.start(.1)) d.addErrback(log_error) d.addCallback(lambda _: blockchain_caught_d) From 1690e71ad1005627872612eaa8e7dbdd1740a78b Mon Sep 17 00:00:00 2001 From: Kay Kurokawa Date: Mon, 19 Dec 2016 15:34:15 -0500 Subject: [PATCH 2/2] setup Commands class on run, instead of on initialization --- lbrynet/core/Wallet.py | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/lbrynet/core/Wallet.py b/lbrynet/core/Wallet.py index fa9716ca6..6af123df8 100644 --- a/lbrynet/core/Wallet.py +++ b/lbrynet/core/Wallet.py @@ -771,7 +771,6 @@ class LBRYumWallet(Wallet): self._config = config self.network = None self.wallet = None - self.cmd_runner = None self.first_run = False self.printed_retrieving_headers = False self._start_check = None @@ -814,7 +813,6 @@ class LBRYumWallet(Wallet): d.addCallback(lambda _: self._start_check.start(.1)) d.addCallback(lambda _: network_start_d) d.addCallback(lambda _: self._load_blockchain()) - d.addCallback(lambda _: self._get_cmd_runner()) return d def _stop(self): @@ -908,21 +906,23 @@ class LBRYumWallet(Wallet): return d def _get_cmd_runner(self): - self.cmd_runner = Commands(self.config, self.wallet, self.network) + return Commands(self.config, self.wallet, self.network) # run commands as a defer.succeed, # lbryum commands should be run this way , unless if the command # only makes a lbrum server query, use _run_cmd_as_defer_to_thread() def _run_cmd_as_defer_succeed(self, command_name, *args): + cmd_runner = self._get_cmd_runner() cmd = known_commands[command_name] - func = getattr(self.cmd_runner, cmd.name) + func = getattr(cmd_runner, cmd.name) return defer.succeed(func(*args)) # run commands as a deferToThread, lbryum commands that only make # queries to lbryum server should be run this way def _run_cmd_as_defer_to_thread(self, command_name, *args): + cmd_runner = self._get_cmd_runner() cmd = known_commands[command_name] - func = getattr(self.cmd_runner, cmd.name) + func = getattr(cmd_runner, cmd.name) return threads.deferToThread(func, *args) def get_balance(self):