Skip to content

Commit e472df3

Browse files
committed
seed type handling
1 parent df56291 commit e472df3

File tree

3 files changed

+28
-9
lines changed

3 files changed

+28
-9
lines changed

src/seedsigner/models/seed_storage.py

Lines changed: 25 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -5,11 +5,15 @@
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+
812
def __init__(self) -> None:
913
self.seeds: List[Seed] = []
1014
self.pending_seed: Seed = None
1115
self._pending_mnemonic: List[str] = []
12-
self._pending_is_electrum : bool = False
16+
self._pending_seed_type: str = self.PENDING_SEED_TYPE_BIP39
1317

1418

1519
def set_pending_seed(self, seed: Seed):
@@ -58,10 +62,25 @@ def pending_mnemonic(self) -> List[str]:
5862
def pending_mnemonic_length(self) -> int:
5963
return len(self._pending_mnemonic)
6064

65+
66+
@property
67+
def pending_seed_type(self) -> str:
68+
return self._pending_seed_type
69+
70+
71+
@property
72+
def _pending_is_bip39(self) -> bool:
73+
return self._pending_seed_type == self.PENDING_SEED_TYPE_BIP39
74+
75+
76+
@property
77+
def _pending_is_electrum(self) -> bool:
78+
return self._pending_seed_type == self.PENDING_SEED_TYPE_ELECTRUM
79+
6180

62-
def init_pending_mnemonic(self, num_words:int = 12, is_electrum:bool = False):
81+
def init_pending_mnemonic(self, num_words:int = 12, seed_type: str = None):
6382
self._pending_mnemonic = [None] * num_words
64-
self._pending_is_electrum = is_electrum
83+
self._pending_seed_type = seed_type or self.PENDING_SEED_TYPE_BIP39
6584

6685

6786
def update_pending_mnemonic(self, word: str, index: int):
@@ -83,7 +102,7 @@ def get_pending_mnemonic_word(self, index: int) -> str:
83102

84103
def get_pending_mnemonic_fingerprint(self, network: str = SettingsConstants.MAINNET) -> str:
85104
try:
86-
if self._pending_is_electrum:
105+
if self._pending_seed_type == self.PENDING_SEED_TYPE_ELECTRUM:
87106
seed = ElectrumSeed(self._pending_mnemonic)
88107
else:
89108
seed = Seed(self._pending_mnemonic)
@@ -93,7 +112,7 @@ def get_pending_mnemonic_fingerprint(self, network: str = SettingsConstants.MAIN
93112

94113

95114
def convert_pending_mnemonic_to_pending_seed(self):
96-
if self._pending_is_electrum:
115+
if self._pending_seed_type == self.PENDING_SEED_TYPE_ELECTRUM:
97116
self.pending_seed = ElectrumSeed(self._pending_mnemonic)
98117
else:
99118
self.pending_seed = Seed(self._pending_mnemonic)
@@ -102,4 +121,4 @@ def convert_pending_mnemonic_to_pending_seed(self):
102121

103122
def discard_pending_mnemonic(self):
104123
self._pending_mnemonic = []
105-
self._pending_is_electrum = False
124+
self._pending_seed_type = self.PENDING_SEED_TYPE_BIP39

src/seedsigner/views/seed_views.py

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -220,7 +220,7 @@ def run(self):
220220
is_final_word = (
221221
self.cur_word_index == self.controller.storage.pending_mnemonic_length - 1 and
222222
not self.is_calc_final_word and
223-
not self.controller.storage._pending_is_electrum
223+
self.controller.storage._pending_is_bip39 # only apply final word logic for BIP-39
224224
)
225225

226226
partial_mnemonic = None
@@ -526,7 +526,7 @@ def run(self):
526526
show_back_button=False,
527527
)
528528

529-
self.controller.storage.init_pending_mnemonic(num_words=12, is_electrum=True)
529+
self.controller.storage.init_pending_mnemonic(num_words=12, seed_type=self.controller.storage.PENDING_SEED_TYPE_ELECTRUM)
530530

531531
return Destination(SeedMnemonicEntryView)
532532

tests/test_flows_seed.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -372,7 +372,7 @@ def test_export_xpub_electrum_seed_flow(self):
372372
Electrum seeds should skip script type selection
373373
"""
374374
# Load a finalized Seed into the Controller
375-
self.controller.storage.init_pending_mnemonic(num_words=12, is_electrum=True)
375+
self.controller.storage.init_pending_mnemonic(num_words=12, seed_type=self.controller.storage.PENDING_SEED_TYPE_ELECTRUM)
376376
self.controller.storage.set_pending_seed(ElectrumSeed("regular reject rare profit once math fringe chase until ketchup century escape".split()))
377377
self.controller.storage.finalize_pending_seed()
378378

0 commit comments

Comments
 (0)