Skip to content

Commit f0cc53f

Browse files
committed
rebase on SeedSigner#807
1 parent 1b35339 commit f0cc53f

File tree

3 files changed

+10
-35
lines changed

3 files changed

+10
-35
lines changed

src/seedsigner/models/seed_storage.py

Lines changed: 6 additions & 31 deletions
Original file line numberDiff line numberDiff line change
@@ -1,19 +1,15 @@
11
from typing import List
2-
from seedsigner.models.seed import Seed, ElectrumSeed, InvalidSeedException
2+
from seedsigner.models.seed import Seed, InvalidSeedException
33
from seedsigner.models.settings_definition import SettingsConstants
44

55

66

77
class SeedStorage:
8-
PENDING_SEED_TYPE__BIP39 = "bip39"
9-
PENDING_SEED_TYPE__ELECTRUM = "electrum"
10-
# future TODO: PENDING_SEED_TYPE_SLIP39 = "slip39"
11-
128
def __init__(self) -> None:
139
self.seeds: List[Seed] = []
1410
self.pending_seed: Seed = None
1511
self._pending_mnemonic: List[str] = []
16-
self._pending_seed_type: str = self.PENDING_SEED_TYPE__BIP39
12+
self._pending_Seed_cls = None
1713

1814

1915
def set_pending_seed(self, seed: Seed):
@@ -39,15 +35,6 @@ def clear_pending_seed(self):
3935
self.pending_seed = None
4036

4137

42-
def validate_mnemonic(self, mnemonic: List[str]) -> bool:
43-
try:
44-
Seed(mnemonic=mnemonic)
45-
except InvalidSeedException as e:
46-
return False
47-
48-
return True
49-
50-
5138
def num_seeds(self):
5239
return len(self.seeds)
5340

@@ -62,15 +49,10 @@ def pending_mnemonic(self) -> List[str]:
6249
def pending_mnemonic_length(self) -> int:
6350
return len(self._pending_mnemonic)
6451

65-
66-
@property
67-
def pending_is_bip39(self) -> bool:
68-
return self._pending_seed_type == self.PENDING_SEED_TYPE__BIP39
69-
7052

71-
def init_pending_mnemonic(self, num_words:int = 12, seed_type: str = PENDING_SEED_TYPE__BIP39):
53+
def init_pending_mnemonic(self, num_words:int = 12, seed_class = Seed):
7254
self._pending_mnemonic = [None] * num_words
73-
self._pending_seed_type = seed_type
55+
self._pending_Seed_cls = seed_class
7456

7557

7658
def update_pending_mnemonic(self, word: str, index: int):
@@ -92,23 +74,16 @@ def get_pending_mnemonic_word(self, index: int) -> str:
9274

9375
def get_pending_mnemonic_fingerprint(self, network: str = SettingsConstants.MAINNET) -> str:
9476
try:
95-
if self._pending_seed_type == self.PENDING_SEED_TYPE__ELECTRUM:
96-
seed = ElectrumSeed(self._pending_mnemonic)
97-
else:
98-
seed = Seed(self._pending_mnemonic)
77+
seed = self._pending_Seed_cls(self._pending_mnemonic)
9978
return seed.get_fingerprint(network)
10079
except InvalidSeedException:
10180
return None
10281

10382

10483
def convert_pending_mnemonic_to_pending_seed(self):
105-
if self._pending_seed_type == self.PENDING_SEED_TYPE__ELECTRUM:
106-
self.pending_seed = ElectrumSeed(self._pending_mnemonic)
107-
else:
108-
self.pending_seed = Seed(self._pending_mnemonic)
84+
self.pending_seed = self._pending_Seed_cls(self._pending_mnemonic)
10985
self.discard_pending_mnemonic()
11086

11187

11288
def discard_pending_mnemonic(self):
11389
self._pending_mnemonic = []
114-
self._pending_seed_type = self.PENDING_SEED_TYPE__BIP39

src/seedsigner/views/seed_views.py

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -13,7 +13,7 @@
1313
from seedsigner.gui.screens.screen import ButtonOption
1414
from seedsigner.models.encode_qr import CompactSeedQrEncoder, GenericStaticQrEncoder, SeedQrEncoder, SpecterXPubQrEncoder, StaticXpubQrEncoder, UrXpubQrEncoder
1515
from seedsigner.models.qr_type import QRType
16-
from seedsigner.models.seed import Seed
16+
from seedsigner.models.seed import Seed, ElectrumSeed
1717
from seedsigner.models.settings import Settings, SettingsConstants
1818
from seedsigner.models.settings_definition import SettingsDefinition
1919
from seedsigner.models.threads import BaseThread, ThreadsafeCounter
@@ -220,7 +220,7 @@ def run(self):
220220
wordlist = Seed.get_wordlist(wordlist_language_code=self.settings.get_value(SettingsConstants.SETTING__WORDLIST_LANGUAGE))
221221
is_last_word_index = self.cur_word_index == self.controller.storage.pending_mnemonic_length - 1
222222
is_normal_seed_entry_mode = not self.is_calc_final_word
223-
is_bip39_seed = self.controller.storage.pending_is_bip39
223+
is_bip39_seed = self.controller.storage._pending_Seed_cls == Seed
224224

225225
predict_final_seed_word = (
226226
is_last_word_index and
@@ -534,7 +534,7 @@ def run(self):
534534
show_back_button=False,
535535
)
536536

537-
self.controller.storage.init_pending_mnemonic(num_words=12, seed_type=self.controller.storage.PENDING_SEED_TYPE__ELECTRUM)
537+
self.controller.storage.init_pending_mnemonic(num_words=12, seed_class=ElectrumSeed)
538538

539539
return Destination(SeedMnemonicEntryView)
540540

tests/test_flows_seed.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -342,7 +342,7 @@ def test_export_xpub_electrum_seed_flow(self):
342342
Electrum seeds should skip script type selection
343343
"""
344344
# Load a finalized Seed into the Controller
345-
self.controller.storage.init_pending_mnemonic(num_words=12, seed_type=self.controller.storage.PENDING_SEED_TYPE__ELECTRUM)
345+
self.controller.storage.init_pending_mnemonic(num_words=12, seed_class=ElectrumSeed)
346346
self.controller.storage.set_pending_seed(ElectrumSeed("regular reject rare profit once math fringe chase until ketchup century escape".split()))
347347
self.controller.storage.finalize_pending_seed()
348348

0 commit comments

Comments
 (0)