mirror of
https://github.com/LBRYFoundation/LBRY-Vault.git
synced 2025-08-29 00:11:36 +00:00
fix #4577
This commit is contained in:
parent
579d48cf0c
commit
a799a00dc5
3 changed files with 21 additions and 6 deletions
|
@ -34,7 +34,7 @@ from .keystore import bip44_derivation, purpose48_derivation
|
||||||
from .wallet import Imported_Wallet, Standard_Wallet, Multisig_Wallet, wallet_types, Wallet
|
from .wallet import Imported_Wallet, Standard_Wallet, Multisig_Wallet, wallet_types, Wallet
|
||||||
from .storage import STO_EV_USER_PW, STO_EV_XPUB_PW, get_derivation_used_for_hw_device_encryption
|
from .storage import STO_EV_USER_PW, STO_EV_XPUB_PW, get_derivation_used_for_hw_device_encryption
|
||||||
from .i18n import _
|
from .i18n import _
|
||||||
from .util import UserCancelled, InvalidPassword
|
from .util import UserCancelled, InvalidPassword, WalletFileException
|
||||||
|
|
||||||
# hardware device setup purpose
|
# hardware device setup purpose
|
||||||
HWD_SETUP_NEW_WALLET, HWD_SETUP_DECRYPT_WALLET = range(0, 2)
|
HWD_SETUP_NEW_WALLET, HWD_SETUP_DECRYPT_WALLET = range(0, 2)
|
||||||
|
@ -106,10 +106,20 @@ class BaseWizard(object):
|
||||||
self.choice_dialog(title=title, message=message, choices=choices, run_next=self.on_wallet_type)
|
self.choice_dialog(title=title, message=message, choices=choices, run_next=self.on_wallet_type)
|
||||||
|
|
||||||
def upgrade_storage(self):
|
def upgrade_storage(self):
|
||||||
|
exc = None
|
||||||
def on_finished():
|
def on_finished():
|
||||||
self.wallet = Wallet(self.storage)
|
if exc is None:
|
||||||
self.terminate()
|
self.wallet = Wallet(self.storage)
|
||||||
self.waiting_dialog(partial(self.storage.upgrade), _('Upgrading wallet format...'), on_finished=on_finished)
|
self.terminate()
|
||||||
|
else:
|
||||||
|
raise exc
|
||||||
|
def do_upgrade():
|
||||||
|
nonlocal exc
|
||||||
|
try:
|
||||||
|
self.storage.upgrade()
|
||||||
|
except Exception as e:
|
||||||
|
exc = e
|
||||||
|
self.waiting_dialog(do_upgrade, _('Upgrading wallet format...'), on_finished=on_finished)
|
||||||
|
|
||||||
def load_2fa(self):
|
def load_2fa(self):
|
||||||
self.storage.put('wallet_type', '2fa')
|
self.storage.put('wallet_type', '2fa')
|
||||||
|
|
|
@ -957,7 +957,12 @@ class InstallWizard(BaseWizard, Widget):
|
||||||
# on completion hide message
|
# on completion hide message
|
||||||
Clock.schedule_once(lambda dt: app.info_bubble.hide(now=True), -1)
|
Clock.schedule_once(lambda dt: app.info_bubble.hide(now=True), -1)
|
||||||
if on_finished:
|
if on_finished:
|
||||||
Clock.schedule_once(lambda dt: on_finished(), -1)
|
def protected_on_finished():
|
||||||
|
try:
|
||||||
|
on_finished()
|
||||||
|
except Exception as e:
|
||||||
|
self.show_error(str(e))
|
||||||
|
Clock.schedule_once(lambda dt: protected_on_finished(), -1)
|
||||||
|
|
||||||
app = App.get_running_app()
|
app = App.get_running_app()
|
||||||
app.show_info_bubble(
|
app.show_info_bubble(
|
||||||
|
|
|
@ -1661,4 +1661,4 @@ class Wallet(object):
|
||||||
return Multisig_Wallet
|
return Multisig_Wallet
|
||||||
if wallet_type in wallet_constructors:
|
if wallet_type in wallet_constructors:
|
||||||
return wallet_constructors[wallet_type]
|
return wallet_constructors[wallet_type]
|
||||||
raise RuntimeError("Unknown wallet type: " + str(wallet_type))
|
raise WalletFileException("Unknown wallet type: " + str(wallet_type))
|
||||||
|
|
Loading…
Add table
Reference in a new issue