What changed, and why it matters
This commit is a routine test update and build timestamp refresh. It adds a new test parameter to exercise wallet-name handling with both short and long names (including spaces), and bumps the firmware build date and version. There is no security-relevant code change.
No security action required; treat as normal maintenance/test improvement.
Security signals we found
No strong security signals were identified.
Evidence from the diff
The diff updates two files: (1) stm32/COLDCARD_MK4/file_time.c bumps the FAT timestamp and version string from 5.4.3 to 5.4.4, and (2) testing/test_ownership.py parameterizes an existing test over wallet names ‘msnm’ and ‘Longer Wallet Name’, adjusting assertions and URL encoding accordingly. No production code is modified.
Changed components
testing/test_ownership.pystm32/COLDCARD_MK4/file_time.cInspect captured patch +10 / −9
diff --git a/stm32/COLDCARD_MK4/file_time.c b/stm32/COLDCARD_MK4/file_time.c
index 9912c06..2a4dde1 100644
--- a/stm32/COLDCARD_MK4/file_time.c
+++ b/stm32/COLDCARD_MK4/file_time.c
@@ -2,12 +2,12 @@
//
// AUTO-generated.
//
-// built: 2025-05-13
-// version: 5.4.3
+// built: 2025-09-18
+// version: 5.4.4
//
#include <stdint.h>
// this overrides ports/stm32/fatfs_port.c
uint32_t get_fattime(void) {
- return 0x5aad2880UL;
+ return 0x5b322880UL;
}
diff --git a/testing/test_ownership.py b/testing/test_ownership.py
index 1e83363..29fa5fe 100644
--- a/testing/test_ownership.py
+++ b/testing/test_ownership.py
@@ -606,7 +606,8 @@ def test_named_wallet_search_fail(load_shared_mod, goto_home, pick_menu_item, nf
@pytest.mark.parametrize('valid', [True, False])
@pytest.mark.parametrize('method', ["qr", "nfc"])
-def test_named_wallet_search(valid, method, clear_ms, import_ms_wallet, is_q1,
+@pytest.mark.parametrize('wname', ["msnm", "Longer Wallet Name"])
+def test_named_wallet_search(wname, valid, method, clear_ms, import_ms_wallet, is_q1,
load_shared_mod, goto_home, pick_menu_item, scan_a_qr,
cap_story, need_keypress, nfc_write, use_testnet,
wipe_cache, settings_set):
@@ -627,7 +628,7 @@ def test_named_wallet_search(valid, method, clear_ms, import_ms_wallet, is_q1,
idx = 5
if i == 2:
idx = 763
- name = f'msnw{i}'
+ name = f'{wname}{i}'
keys = import_ms_wallet(M+i, N+i, AF_P2WSH, name=name, accept=True)
# last address
addr, scriptPubKey, script, details = make_ms_address(
@@ -638,14 +639,14 @@ def test_named_wallet_search(valid, method, clear_ms, import_ms_wallet, is_q1,
if valid:
# msnw2 -> last added wallet
- addr, *_ = ms_data["msnw2"]
+ addr, *_ = ms_data[f"{wname}{i}"]
else:
# will fail, even tho address is present in different wallet
# with wallet=<wal> only specified wallet is searched
- addr, *_ = ms_data["msnw0"]
+ addr, *_ = ms_data[f"{wname}0"]
# will only search specified wallet
- addr = f"{addr}?wallet=msnw2"
+ addr = f"{addr}?wallet={wname}{i}".replace(' ', '%20')
if method == 'qr':
goto_home()
@@ -686,7 +687,7 @@ def test_named_wallet_search(valid, method, clear_ms, import_ms_wallet, is_q1,
assert 'Found in wallet' in story
assert 'Derivation path' in story
- assert "msnw2" in story
+ assert f"{wname}" in story
else:
assert title == 'Unknown Address'
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.