From 0ea5e8b9e86aaef0faa074a73eb923dadd372121 Mon Sep 17 00:00:00 2001 From: "Peter D. Gray" Date: Tue, 7 Feb 2023 09:57:43 -0500 Subject: [PATCH] ux tweaks --- external/micropython | 2 +- shared/bsms.py | 4 ++-- shared/multisig.py | 9 +++------ shared/ux.py | 13 +++++++------ stm32/COLDCARD/file_time.c | 6 +++--- stm32/COLDCARD_MK4/file_time.c | 6 +++--- 6 files changed, 19 insertions(+), 21 deletions(-) diff --git a/external/micropython b/external/micropython index 97d35f05..abf88c98 160000 --- a/external/micropython +++ b/external/micropython @@ -1 +1 @@ -Subproject commit 97d35f058f504a354fc6df79a8b3db5c91862501 +Subproject commit abf88c98b6ee9897b6fcc8ffea0276f07447dd48 diff --git a/shared/bsms.py b/shared/bsms.py index d84867af..46adf0e9 100644 --- a/shared/bsms.py +++ b/shared/bsms.py @@ -790,7 +790,7 @@ async def bsms_signer_round1(*a): token_int = None if not shortcut: prompt = "Press (1) to import token file from SD Card, (2) to input token manually" - prompt += ", (3) for unencrypted BSMS." + prompt += ", (3) for unencrypted BSMS" escape = "123" if NFC is not None: prompt += ", (4) to import via NFC" @@ -811,7 +811,7 @@ async def bsms_signer_round1(*a): escape = "12" ch = await ux_show_story(prompt, escape=escape) if ch == "1": - token_hex = await ux_spinner_edit("", hex_only=True) + token_hex = await ux_spinner_edit("", hex_only=True, max_len=32) elif ch == "2": token_int = await ux_input_numbers("", lambda: True) token_hex = hex(int(token_int)) diff --git a/shared/multisig.py b/shared/multisig.py index 9ec091fc..f081ffef 100644 --- a/shared/multisig.py +++ b/shared/multisig.py @@ -3,10 +3,8 @@ # multisig.py - support code for multisig signing and p2sh in general. # import stash, chains, ustruct, ure, uio, sys, ngu, uos, ujson -from utils import ( - xfp2str, str2xfp, swab32, cleanup_deriv_path, keypath_to_str, str_to_keypath, problem_file_line, - export_prompt_builder -) +from utils import xfp2str, str2xfp, swab32, cleanup_deriv_path, keypath_to_str +from utils import str_to_keypath, problem_file_line, export_prompt_builder from ux import ux_show_story, ux_confirm, ux_dramatic_pause, ux_clear_keys, ux_enter_bip32_index from files import CardSlot, CardMissingError, needs_microsd from descriptor import MultisigDescriptor, multisig_descriptor_template @@ -98,7 +96,6 @@ def make_redeem_script(M, nodes, subkey_idx): pubkeys.append(b'\x21' + copy.pubkey()) del copy - pubkeys.sort() # serialize redeem script @@ -1177,7 +1174,7 @@ not be accepted by network. This settings lasts only until power down. -Press (4) to confirm entering this DANGEROUS mode. +Press (4) to confirm entering this DANGEROUS mode. ''', escape='4') if ch != '4': return diff --git a/shared/ux.py b/shared/ux.py index ba37ceca..6ec2c88a 100644 --- a/shared/ux.py +++ b/shared/ux.py @@ -475,7 +475,7 @@ async def ux_input_numbers(val, validate_func): if len(here) < 32: here += ch -async def ux_spinner_edit(pw, confirm_exit=True, hex_only=False): +async def ux_spinner_edit(pw, confirm_exit=True, hex_only=False, max_len=100): # Allow them to pick each digit using "D-pad" from glob import dis from display import FontTiny, FontSmall @@ -497,10 +497,12 @@ async def ux_spinner_edit(pw, confirm_exit=True, hex_only=False): # assert len(set(symbols+letters+Letters+numbers)) == len(my_rng) if hex_only: - footer1 = "hex mode" + footer1 = "Enter Hexidecimal Number" + footer2 = "58=Change 9=Next 7=Back" else: footer1 = "1=Letters 2=Numbers 3=Symbols" footer2 = "4=SwapCase 0=HELP" + y = 20 pw = bytearray(pw or ('0' if hex_only else 'A')) @@ -538,8 +540,7 @@ async def ux_spinner_edit(pw, confirm_exit=True, hex_only=False): # pre-render the fixed stuff dis.clear() dis.text(None, -10, footer1, FontTiny) - if not hex_only: - dis.text(None, -1, footer2, FontTiny) + dis.text(None, -1, footer2, FontTiny) dis.save() # no key-repeat on certain keys @@ -567,7 +568,7 @@ async def ux_spinner_edit(pw, confirm_exit=True, hex_only=False): if ax == pos: # draw cursor - if len(pw) < 2 * n_visible: + if not hex_only and (len(pw) < 2 * n_visible): dis.text(x - 4, y - 19, '0x%02X' % ch, FontTiny) dis.icon(x - 2, y - 10, 'spin') @@ -605,7 +606,7 @@ async def ux_spinner_edit(pw, confirm_exit=True, hex_only=False): elif ch == '9': # right pos += 1 if pos >= len(pw): - if len(pw) < 100 and pw[-3:] != b' ': + if len(pw) < max_len and pw[-3:] != b' ': # expands with space in normal mode # expands with 0 in hex_only mode pw += new_expand diff --git a/stm32/COLDCARD/file_time.c b/stm32/COLDCARD/file_time.c index a5188efd..c3ede5e7 100644 --- a/stm32/COLDCARD/file_time.c +++ b/stm32/COLDCARD/file_time.c @@ -2,12 +2,12 @@ // // AUTO-generated. // -// built: 2022-11-14 -// version: 5.0.8 +// built: 2023-02-03 +// version: 5.1.0 // #include // this overrides ports/stm32/fatfs_port.c uint32_t get_fattime(void) { - return 0x556e2800UL; + return 0x56432820UL; } diff --git a/stm32/COLDCARD_MK4/file_time.c b/stm32/COLDCARD_MK4/file_time.c index a5188efd..3b42e565 100644 --- a/stm32/COLDCARD_MK4/file_time.c +++ b/stm32/COLDCARD_MK4/file_time.c @@ -2,12 +2,12 @@ // // AUTO-generated. // -// built: 2022-11-14 -// version: 5.0.8 +// built: 2023-02-02 +// version: 5.1.0 // #include // this overrides ports/stm32/fatfs_port.c uint32_t get_fattime(void) { - return 0x556e2800UL; + return 0x56422820UL; }