Merge pull request #358 from lbryio/fix_wallet_init_3
Fix wallet initialization
This commit is contained in:
commit
552ed77882
1 changed files with 22 additions and 23 deletions
|
@ -771,7 +771,6 @@ class LBRYumWallet(Wallet):
|
||||||
self._config = config
|
self._config = config
|
||||||
self.network = None
|
self.network = None
|
||||||
self.wallet = None
|
self.wallet = None
|
||||||
self.cmd_runner = None
|
|
||||||
self.first_run = False
|
self.first_run = False
|
||||||
self.printed_retrieving_headers = False
|
self.printed_retrieving_headers = False
|
||||||
self._start_check = None
|
self._start_check = None
|
||||||
|
@ -809,10 +808,11 @@ class LBRYumWallet(Wallet):
|
||||||
|
|
||||||
self._start_check = task.LoopingCall(check_started)
|
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 _: self._start_check.start(.1))
|
||||||
d.addCallback(lambda _: network_start_d)
|
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
|
return d
|
||||||
|
|
||||||
def _stop(self):
|
def _stop(self):
|
||||||
|
@ -843,21 +843,20 @@ class LBRYumWallet(Wallet):
|
||||||
return d
|
return d
|
||||||
|
|
||||||
def _load_wallet(self):
|
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():
|
def _load_blockchain(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)
|
|
||||||
|
|
||||||
blockchain_caught_d = defer.Deferred()
|
blockchain_caught_d = defer.Deferred()
|
||||||
|
|
||||||
def check_caught_up():
|
def check_caught_up():
|
||||||
|
@ -900,30 +899,30 @@ class LBRYumWallet(Wallet):
|
||||||
return defer.fail(err)
|
return defer.fail(err)
|
||||||
|
|
||||||
self._catch_up_check = task.LoopingCall(check_caught_up)
|
self._catch_up_check = task.LoopingCall(check_caught_up)
|
||||||
d = get_wallet()
|
d = defer.succeed(self.wallet.start_threads(self.network))
|
||||||
d.addCallback(self._save_wallet)
|
|
||||||
d.addCallback(lambda _: self.wallet.start_threads(self.network))
|
|
||||||
d.addCallback(lambda _: self._catch_up_check.start(.1))
|
d.addCallback(lambda _: self._catch_up_check.start(.1))
|
||||||
d.addErrback(log_error)
|
d.addErrback(log_error)
|
||||||
d.addCallback(lambda _: blockchain_caught_d)
|
d.addCallback(lambda _: blockchain_caught_d)
|
||||||
return d
|
return d
|
||||||
|
|
||||||
def _get_cmd_runner(self):
|
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,
|
# run commands as a defer.succeed,
|
||||||
# lbryum commands should be run this way , unless if the command
|
# lbryum commands should be run this way , unless if the command
|
||||||
# only makes a lbrum server query, use _run_cmd_as_defer_to_thread()
|
# only makes a lbrum server query, use _run_cmd_as_defer_to_thread()
|
||||||
def _run_cmd_as_defer_succeed(self, command_name, *args):
|
def _run_cmd_as_defer_succeed(self, command_name, *args):
|
||||||
|
cmd_runner = self._get_cmd_runner()
|
||||||
cmd = known_commands[command_name]
|
cmd = known_commands[command_name]
|
||||||
func = getattr(self.cmd_runner, cmd.name)
|
func = getattr(cmd_runner, cmd.name)
|
||||||
return defer.succeed(func(*args))
|
return defer.succeed(func(*args))
|
||||||
|
|
||||||
# run commands as a deferToThread, lbryum commands that only make
|
# run commands as a deferToThread, lbryum commands that only make
|
||||||
# queries to lbryum server should be run this way
|
# queries to lbryum server should be run this way
|
||||||
def _run_cmd_as_defer_to_thread(self, command_name, *args):
|
def _run_cmd_as_defer_to_thread(self, command_name, *args):
|
||||||
|
cmd_runner = self._get_cmd_runner()
|
||||||
cmd = known_commands[command_name]
|
cmd = known_commands[command_name]
|
||||||
func = getattr(self.cmd_runner, cmd.name)
|
func = getattr(cmd_runner, cmd.name)
|
||||||
return threads.deferToThread(func, *args)
|
return threads.deferToThread(func, *args)
|
||||||
|
|
||||||
def get_balance(self):
|
def get_balance(self):
|
||||||
|
|
Loading…
Add table
Reference in a new issue