What changed, and why it matters
This commit reorganizes the on-screen menu shown after a wallet key is generated or loaded in the Krux firmware. It splits the existing options into a two-level menu for newly generated mnemonics while keeping the old layout for existing ones. There is no security-relevant change visible in the code.
No security action required; this is a UI/UX refactor. Continue normal review and testing.
Security signals we found
No strong security signals were identified.
Evidence from the diff
The change in src/krux/pages/login.py refactors the post-mnemonic menu. A new boolean ‘new’ selects between a simplified top-level menu (‘Continue’, ‘Wallet Options’) for newly generated keys and the original menu (‘Load Wallet’, ‘Passphrase’, ‘Customize’) for existing keys. Selecting ‘Wallet Options’ opens a submenu containing ‘Passphrase’ and ‘Customize’. The logic for handling ‘back’, ‘delete key’, and the actual passphrase/customize actions is preserved. No cryptographic, input-validation, or authentication logic is modified.
Changed components
src/krux/pages/login.pyInspect captured patch +44 / −5
diff --git a/src/krux/pages/login.py b/src/krux/pages/login.py
index 8bc7c7d..f8f0bed 100644
--- a/src/krux/pages/login.py
+++ b/src/krux/pages/login.py
@@ -286,11 +286,18 @@ class Login(MnemonicLoader):
self.ctx.display.clear()
submenu = Menu(
self.ctx,
- [
- (t("Load Wallet"), lambda: None),
- (t("Passphrase"), lambda: None),
- (t("Customize"), lambda: None),
- ],
+ (
+ [
+ (t("Continue"), lambda: None),
+ (t("Wallet Options"), lambda: None),
+ ]
+ if new
+ else [
+ (t("Load Wallet"), lambda: None),
+ (t("Passphrase"), lambda: None),
+ (t("Customize"), lambda: None),
+ ]
+ ),
offset=(
self.ctx.display.draw_hcentered_text(wallet_info, info_box=True)
* FONT_HEIGHT
@@ -318,8 +325,40 @@ class Login(MnemonicLoader):
if self.prompt(t("Are you sure?"), self.ctx.display.height() // 2):
del key
return MENU_CONTINUE
+ continue
if index == 0:
break
+ if new and index == 1:
+ self.ctx.display.clear()
+ submenu = Menu(
+ self.ctx,
+ [
+ (t("Passphrase"), lambda: None),
+ (t("Customize"), lambda: None),
+ ],
+ offset=(
+ self.ctx.display.draw_hcentered_text(wallet_info, info_box=True)
+ * FONT_HEIGHT
+ + DEFAULT_PADDING
+ ),
+ )
+
+ self.ctx.display.draw_hcentered_text(
+ key.fingerprint_hex_str(True),
+ color=theme.highlight_color,
+ bg_color=theme.info_bg_color,
+ )
+ self.ctx.display.draw_hcentered_text(
+ network_name,
+ DEFAULT_PADDING + FONT_HEIGHT,
+ color=Utils.get_network_color(network_name),
+ bg_color=theme.info_bg_color,
+ )
+
+ index, _ = submenu.run_loop()
+ if index == submenu.back_index:
+ continue
+ index += 1
if index == 1:
from .wallet_settings import PassphraseEditor
Why this scored 15/100
Community notes
Notes can correct, qualify, or add evidence to the AI analysis. Every note shown here has been validated by a human moderator.
The AI analysis stands alone for now. Submit a note if you can add evidence or important context.