mirror of
https://github.com/LBRYFoundation/LBRY-Vault.git
synced 2025-09-06 10:39:48 +00:00
restore: try old wallet first
This commit is contained in:
parent
3ecd81c94a
commit
9b986f8cb6
2 changed files with 47 additions and 32 deletions
|
@ -123,14 +123,18 @@ class InstallWizard(QDialog):
|
||||||
waiting = lambda: False if wallet.is_up_to_date() else "%s\n%s %d\n%s %.1f"\
|
waiting = lambda: False if wallet.is_up_to_date() else "%s\n%s %d\n%s %.1f"\
|
||||||
%(_("Please wait..."),_("Addresses generated:"),len(wallet.addresses(True)),_("Kilobytes received:"), wallet.interface.bytes_received/1024.)
|
%(_("Please wait..."),_("Addresses generated:"),len(wallet.addresses(True)),_("Kilobytes received:"), wallet.interface.bytes_received/1024.)
|
||||||
|
|
||||||
|
# try to restore old account
|
||||||
|
wallet.create_old_account()
|
||||||
wallet.set_up_to_date(False)
|
wallet.set_up_to_date(False)
|
||||||
wallet.interface.poke('synchronizer')
|
wallet.interface.poke('synchronizer')
|
||||||
waiting_dialog(waiting)
|
waiting_dialog(waiting)
|
||||||
|
|
||||||
# try to restore old account
|
if wallet.is_found():
|
||||||
if not wallet.is_found():
|
wallet.seed_version = 4
|
||||||
print "trying old method"
|
wallet.storage.put('seed_version', wallet.seed_version, True)
|
||||||
wallet.create_old_account()
|
else:
|
||||||
|
wallet.accounts.pop(0)
|
||||||
|
wallet.create_accounts()
|
||||||
wallet.set_up_to_date(False)
|
wallet.set_up_to_date(False)
|
||||||
wallet.interface.poke('synchronizer')
|
wallet.interface.poke('synchronizer')
|
||||||
waiting_dialog(waiting)
|
waiting_dialog(waiting)
|
||||||
|
@ -145,31 +149,9 @@ class InstallWizard(QDialog):
|
||||||
|
|
||||||
def run(self):
|
def run(self):
|
||||||
|
|
||||||
a = self.restore_or_create()
|
|
||||||
if not a: exit()
|
|
||||||
|
|
||||||
wallet = Wallet(self.storage)
|
action = self.restore_or_create()
|
||||||
|
if not action: exit()
|
||||||
if a =='create':
|
|
||||||
wallet.init_seed(None)
|
|
||||||
self.show_seed(wallet)
|
|
||||||
if self.verify_seed(wallet):
|
|
||||||
wallet.save_seed()
|
|
||||||
else:
|
|
||||||
exit()
|
|
||||||
else:
|
|
||||||
# ask for seed and gap.
|
|
||||||
sg = self.seed_dialog()
|
|
||||||
if not sg: exit()
|
|
||||||
seed, gap = sg
|
|
||||||
if not seed: exit()
|
|
||||||
wallet.gap_limit = gap
|
|
||||||
if len(seed) == 128:
|
|
||||||
wallet.seed = ''
|
|
||||||
wallet.init_sequence(str(seed))
|
|
||||||
else:
|
|
||||||
wallet.init_seed(str(seed))
|
|
||||||
wallet.save_seed()
|
|
||||||
|
|
||||||
# select a server.
|
# select a server.
|
||||||
s = self.network_dialog()
|
s = self.network_dialog()
|
||||||
|
@ -177,15 +159,44 @@ class InstallWizard(QDialog):
|
||||||
self.config.set_key("server", None, True)
|
self.config.set_key("server", None, True)
|
||||||
self.config.set_key('auto_cycle', False, True)
|
self.config.set_key('auto_cycle', False, True)
|
||||||
|
|
||||||
# generate the first addresses, in case we are offline
|
wallet = Wallet(self.storage)
|
||||||
if s is None or a == 'create':
|
|
||||||
wallet.synchronize()
|
if action =='create':
|
||||||
|
wallet.init_seed(None)
|
||||||
|
self.show_seed(wallet)
|
||||||
|
if self.verify_seed(wallet):
|
||||||
|
wallet.save_seed()
|
||||||
|
wallet.create_accounts()
|
||||||
|
# generate first addresses offline
|
||||||
|
wallet.synchronize()
|
||||||
|
else:
|
||||||
|
return
|
||||||
|
|
||||||
|
elif action == 'restore':
|
||||||
|
# ask for seed and gap.
|
||||||
|
sg = self.seed_dialog()
|
||||||
|
if not sg:
|
||||||
|
return
|
||||||
|
seed, gap = sg
|
||||||
|
if not seed:
|
||||||
|
return
|
||||||
|
wallet.gap_limit = gap
|
||||||
|
|
||||||
|
if len(seed) == 128:
|
||||||
|
wallet.seed = ''
|
||||||
|
wallet.init_sequence(str(seed))
|
||||||
|
else:
|
||||||
|
wallet.init_seed(str(seed))
|
||||||
|
wallet.save_seed()
|
||||||
|
|
||||||
|
|
||||||
# start wallet threads
|
# start wallet threads
|
||||||
wallet.start_threads(self.interface, self.blockchain)
|
wallet.start_threads(self.interface, self.blockchain)
|
||||||
|
|
||||||
|
# if it is a creation, use 5
|
||||||
|
# if restore, use 4 then 5
|
||||||
|
|
||||||
if a == 'restore' and s is not None:
|
if action == 'restore' and s is not None:
|
||||||
try:
|
try:
|
||||||
keep_it = self.restore_wallet(wallet)
|
keep_it = self.restore_wallet(wallet)
|
||||||
wallet.fill_addressbook()
|
wallet.fill_addressbook()
|
||||||
|
|
|
@ -238,6 +238,9 @@ class Wallet:
|
||||||
self.storage.put('seed', self.seed, True)
|
self.storage.put('seed', self.seed, True)
|
||||||
self.storage.put('seed_version', self.seed_version, True)
|
self.storage.put('seed_version', self.seed_version, True)
|
||||||
|
|
||||||
|
|
||||||
|
def create_accounts(self):
|
||||||
|
|
||||||
master_k, master_c, master_K, master_cK = bip32_init(self.seed)
|
master_k, master_c, master_K, master_cK = bip32_init(self.seed)
|
||||||
|
|
||||||
# normal accounts
|
# normal accounts
|
||||||
|
@ -1331,6 +1334,7 @@ class Wallet:
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
class WalletSynchronizer(threading.Thread):
|
class WalletSynchronizer(threading.Thread):
|
||||||
|
|
||||||
|
|
||||||
|
|
Loading…
Add table
Reference in a new issue