diff --git a/electrum/gui/kivy/uix/dialogs/installwizard.py b/electrum/gui/kivy/uix/dialogs/installwizard.py index 72fd896ad..cf22199c8 100644 --- a/electrum/gui/kivy/uix/dialogs/installwizard.py +++ b/electrum/gui/kivy/uix/dialogs/installwizard.py @@ -989,7 +989,8 @@ class RestoreSeedDialog(WizardDialog): tis.focus = False def get_params(self, b): - return (self.get_text(), self.is_bip39, self.is_ext) + seed_type = 'bip39' if self.is_bip39 else 'electrum' + return (self.get_text(), seed_type, self.is_ext) class ConfirmSeedDialog(RestoreSeedDialog): diff --git a/electrum/gui/qt/seed_dialog.py b/electrum/gui/qt/seed_dialog.py index 131fb5841..5987773ae 100644 --- a/electrum/gui/qt/seed_dialog.py +++ b/electrum/gui/qt/seed_dialog.py @@ -302,7 +302,12 @@ class SeedLayout(QVBoxLayout): self.prev_share_btn.show() self.next_share_btn.show() self.prev_share_btn.setEnabled(self.slip39_mnemonic_index != 0) - self.next_share_btn.setEnabled(self.slip39_mnemonic_index < len(self.slip39_mnemonics) - 1 or (bool(self.seed_e.text().strip()) and not finished)) + self.next_share_btn.setEnabled( + # already pressed "prev" and undoing that: + self.slip39_mnemonic_index < len(self.slip39_mnemonics) - 1 + # finished entering latest share and starting new one: + or (bool(self.seed_e.text().strip()) and not self.slip39_current_mnemonic_invalid and not finished) + ) def on_prev_share(self): if not self.slip39_mnemonics[self.slip39_mnemonic_index]: diff --git a/electrum/slip39.py b/electrum/slip39.py index 933fa3ae8..6ab1d776c 100644 --- a/electrum/slip39.py +++ b/electrum/slip39.py @@ -28,8 +28,8 @@ import hmac from collections import defaultdict from hashlib import pbkdf2_hmac from typing import Dict, Iterable, List, Optional, Set, Tuple -from electrum.i18n import _ +from .i18n import _ from .mnemonic import Wordlist Indices = Tuple[int, ...] diff --git a/electrum/tests/test_mnemonic.py b/electrum/tests/test_mnemonic.py index 65ef89264..606f9dcdb 100644 --- a/electrum/tests/test_mnemonic.py +++ b/electrum/tests/test_mnemonic.py @@ -1,5 +1,6 @@ from typing import NamedTuple, Optional import json +import os from electrum import keystore from electrum import mnemonic @@ -197,7 +198,8 @@ class Test_slip39(ElectrumTestCase): """ Test SLIP39 test vectors. """ def test_slip39_vectors(self): - with open("slip39-vectors.json", "r") as f: + test_vector_file = os.path.join(os.path.dirname(__file__), "slip39-vectors.json") + with open(test_vector_file, "r") as f: vectors = json.load(f) for description, mnemonics, expected_secret in vectors: if expected_secret: