From 7cf39eac2ef1d0626dbb2896333bf5c6b58eb252 Mon Sep 17 00:00:00 2001 From: scgbckbone Date: Mon, 29 Apr 2024 15:05:35 +0200 Subject: [PATCH] update Mk4 ChangeLog; remove mantion of SD card from generic export screen; test tweaks --- releases/ChangeLog.md | 8 ++++++++ shared/actions.py | 2 +- testing/test_sign.py | 5 ++--- testing/test_ux.py | 3 ++- 4 files changed, 13 insertions(+), 5 deletions(-) diff --git a/releases/ChangeLog.md b/releases/ChangeLog.md index d0465483..86f34c02 100644 --- a/releases/ChangeLog.md +++ b/releases/ChangeLog.md @@ -27,6 +27,7 @@ This lists the changes in the most recent firmware, for each hardware platform. - Enhancement: When providing 12 or 18 word seed phrase, valid final word choices are presented in a new menu. +- Enhancement: Move dice rolls (for generating master seed) to `Advanced` submenu. - Enhancement: Using "Verify Address" in NFC Tools menu, allows entry of a payment address and reports if it is part of a wallet this Coldcard knows the key for. Includes Multisig and single sig wallets. @@ -34,6 +35,13 @@ This lists the changes in the most recent firmware, for each hardware platform. - stores data as it goes to accelerate future uses - worst case, it can take up to 2 minutes to rule out an address, but after that it is fast! - Bugfix: Saving passphrase on SD Card caused a freeze that required reboot +- Bugfix: Constant `AFC_BECH32M` incorrectly set `AFC_WRAPPED` and `AFC_BECH32`. +- Bugfix: Fix inability to activate Duress Wallet as temporary seed when master seed is 12 words. +- Bugfix: Yikes when using BIP39 passphrase with temporary seed without master seed set. +- Tweak: Force default HW settings (USB,NFC,VDisk OFF) after clone/backup is restored. +- Tweak: Cleanup in NFC code: repeated messages, "Unable to find data expectd in NDEF", removed. +- Tweak: Function button change from (6) to (0) to view change addresses in `Address Explorer` +- Tweak: Function button change from (2) to (0) to switch to derived secret in `Derive Seed B85` - Bootrom version bump: 3.2.0 released with no functional changes except those shared with Q. # Q Specific Changes diff --git a/shared/actions.py b/shared/actions.py index 536d29f9..8576b2e6 100644 --- a/shared/actions.py +++ b/shared/actions.py @@ -1214,7 +1214,7 @@ async def named_generic_skeleton(menu, label, item): name = item.arg # make a single JSON file with basically all useful XPUB's in it. # identical to generic_skeleton but with different story and filename. - prompt = ('This saves a JSON file onto MicroSD card to use with %s Wallet. ' + prompt = ('This saves a JSON file to use with %s Wallet. ' 'Works for both single signature and multisig wallets.') % name await _generic_export(prompt, '%s Wallet' % name, diff --git a/testing/test_sign.py b/testing/test_sign.py index b490c9af..8548cfc4 100644 --- a/testing/test_sign.py +++ b/testing/test_sign.py @@ -188,9 +188,8 @@ if 0: @pytest.mark.bitcoind @pytest.mark.veryslow @pytest.mark.parametrize('segwit', [True, False]) -@pytest.mark.parametrize('out_style', ADDR_STYLES) def test_io_size(request, use_regtest, decode_with_bitcoind, fake_txn, is_mark3, is_mark4, - start_sign, end_sign, dev, segwit, out_style, accept = True): + start_sign, end_sign, dev, segwit, accept = True): # try a bunch of different bigger sized txns # - important to test on real device, due to it's limited memory @@ -214,7 +213,7 @@ def test_io_size(request, use_regtest, decode_with_bitcoind, fake_txn, is_mark3, num_in = 250 num_out = 2000 - psbt = fake_txn(num_in, num_out, dev.master_xpub, segwit_in=segwit, outstyles=[out_style]) + psbt = fake_txn(num_in, num_out, dev.master_xpub, segwit_in=segwit, outstyles=ADDR_STYLES) open('debug/last.psbt', 'wb').write(psbt) diff --git a/testing/test_ux.py b/testing/test_ux.py index ce7be108..175f0e0c 100644 --- a/testing/test_ux.py +++ b/testing/test_ux.py @@ -92,11 +92,12 @@ def word_menu_entry(cap_menu, pick_menu_item, is_q1, do_keypresses, cap_screen): if len(words) == 23: do_keypresses(KEY_DOWN) + time.sleep(.3) cap_scr = cap_screen() while 'Next key' in cap_scr: target = cap_scr.split("\n")[-1].replace("Next key: ", "") do_keypresses(target[0]) - time.sleep(.1) + time.sleep(.3) cap_scr = cap_screen() else: cap_scr = cap_screen()