kivy: support old-type seed phrases in wizard
This commit is contained in:
parent
384c7cacd7
commit
d58ec9a570
|
@ -452,7 +452,13 @@ class RestoreSeedDialog(WizardDialog):
|
||||||
super(RestoreSeedDialog, self).__init__(**kwargs)
|
super(RestoreSeedDialog, self).__init__(**kwargs)
|
||||||
self._test = kwargs['test']
|
self._test = kwargs['test']
|
||||||
from electrum.mnemonic import Mnemonic
|
from electrum.mnemonic import Mnemonic
|
||||||
self.mnemonic = Mnemonic('en')
|
from electrum.old_mnemonic import words as old_wordlist
|
||||||
|
self.words = set(Mnemonic('en').wordlist).union(set(old_wordlist))
|
||||||
|
|
||||||
|
def get_suggestions(self, prefix):
|
||||||
|
for w in self.words:
|
||||||
|
if w.startswith(prefix):
|
||||||
|
yield w
|
||||||
|
|
||||||
def on_text(self, dt):
|
def on_text(self, dt):
|
||||||
self.ids.next.disabled = not bool(self._test(self.get_text()))
|
self.ids.next.disabled = not bool(self._test(self.get_text()))
|
||||||
|
@ -467,7 +473,7 @@ class RestoreSeedDialog(WizardDialog):
|
||||||
|
|
||||||
enable_space = False
|
enable_space = False
|
||||||
self.ids.suggestions.clear_widgets()
|
self.ids.suggestions.clear_widgets()
|
||||||
suggestions = [x for x in self.mnemonic.get_suggestions(last_word)]
|
suggestions = [x for x in self.get_suggestions(last_word)]
|
||||||
if suggestions and len(suggestions) < 10:
|
if suggestions and len(suggestions) < 10:
|
||||||
for w in suggestions:
|
for w in suggestions:
|
||||||
if w == last_word:
|
if w == last_word:
|
||||||
|
|
|
@ -36,7 +36,6 @@ class InstallWizard(Widget):
|
||||||
self.config = config
|
self.config = config
|
||||||
self.network = network
|
self.network = network
|
||||||
self.storage = storage
|
self.storage = storage
|
||||||
self.wallet = Wallet(self.storage)
|
|
||||||
|
|
||||||
def waiting_dialog(self, task, msg, on_complete=None):
|
def waiting_dialog(self, task, msg, on_complete=None):
|
||||||
'''Perform a blocking task in the background by running the passed
|
'''Perform a blocking task in the background by running the passed
|
||||||
|
@ -111,18 +110,17 @@ class InstallWizard(Widget):
|
||||||
|
|
||||||
def add_seed(self, text, password):
|
def add_seed(self, text, password):
|
||||||
def task():
|
def task():
|
||||||
if Wallet.is_seed(text):
|
if not Wallet.is_seed(text):
|
||||||
self.wallet.add_seed(text, password)
|
raise BaseException("invalid seed")
|
||||||
self.wallet.create_master_keys(password)
|
self.wallet = Wallet.from_seed(text, password, self.storage)
|
||||||
else:
|
|
||||||
self.wallet = Wallet.from_text(text, None, self.storage)
|
|
||||||
self.wallet.create_main_account()
|
self.wallet.create_main_account()
|
||||||
self.wallet.synchronize()
|
self.wallet.synchronize()
|
||||||
msg= _("Electrum is generating your addresses, please wait.")
|
msg= _("Electrum is generating your addresses, please wait.")
|
||||||
self.waiting_dialog(task, msg, self.terminate)
|
self.waiting_dialog(task, msg, self.terminate)
|
||||||
|
|
||||||
def create(self):
|
def create(self):
|
||||||
seed = self.wallet.make_seed()
|
from electrum.wallet import BIP32_Wallet
|
||||||
|
seed = BIP32_Wallet.make_seed()
|
||||||
msg = _("If you forget your PIN or lose your device, your seed phrase will be the "
|
msg = _("If you forget your PIN or lose your device, your seed phrase will be the "
|
||||||
"only way to recover your funds.")
|
"only way to recover your funds.")
|
||||||
def on_ok(_dlg, _btn):
|
def on_ok(_dlg, _btn):
|
||||||
|
|
|
@ -1615,6 +1615,7 @@ class BIP32_Wallet(Deterministic_Wallet):
|
||||||
def mnemonic_to_seed(self, seed, password):
|
def mnemonic_to_seed(self, seed, password):
|
||||||
return Mnemonic.mnemonic_to_seed(seed, password)
|
return Mnemonic.mnemonic_to_seed(seed, password)
|
||||||
|
|
||||||
|
@classmethod
|
||||||
def make_seed(self, lang=None):
|
def make_seed(self, lang=None):
|
||||||
return Mnemonic(lang).make_seed()
|
return Mnemonic(lang).make_seed()
|
||||||
|
|
||||||
|
|
Loading…
Reference in New Issue