From 3a1ef6fe503a149a0b4f134b8205bc8d4ee09d8c Mon Sep 17 00:00:00 2001 From: scgbckbone Date: Wed, 15 Apr 2026 14:56:02 +0200 Subject: [PATCH] bugfix: NFC verify address wrong error message --- releases/Next-ChangeLog.md | 1 + shared/nfc.py | 9 +++++---- testing/test_nfc.py | 32 ++++++++++++++++++++++++++++++++ 3 files changed, 38 insertions(+), 4 deletions(-) diff --git a/releases/Next-ChangeLog.md b/releases/Next-ChangeLog.md index e1de2b3c..db26c4cb 100644 --- a/releases/Next-ChangeLog.md +++ b/releases/Next-ChangeLog.md @@ -12,6 +12,7 @@ This lists the new changes that have not yet been published in a normal release. - Bugfix: Yikes when using "Send Password" on entry with password None field - Bugfix: Do not show "Saving..." UX after failed Notes & Passwords import - Bugfix: Incorrect error message caused by error in Verify/Decrypt Backup +- Bugfix: NFC Verify Address raised incorrect error message # Mk Specific Changes diff --git a/shared/nfc.py b/shared/nfc.py index 115a3865..fe8e1d49 100644 --- a/shared/nfc.py +++ b/shared/nfc.py @@ -747,10 +747,11 @@ class NFCHandler: async def verify_address_nfc(self): # Get an address or complete bip-21 url even and search it... slow. - _, addr, args = await self.read_address() - if addr: - from ownership import OWNERSHIP - await OWNERSHIP.search_ux(addr, args) + res = await self.read_address() + if not res: return + _, addr, args = res + from ownership import OWNERSHIP + await OWNERSHIP.search_ux(addr, args) async def read_extended_private_key(self): f = lambda x: x.decode().strip() if b"prv" in x else None diff --git a/testing/test_nfc.py b/testing/test_nfc.py index ada8e834..e2864c54 100644 --- a/testing/test_nfc.py +++ b/testing/test_nfc.py @@ -666,4 +666,36 @@ def test_nfc_share_files(fname, mode, ftype, nfc_read_json, nfc_read_text, assert res == contents os.remove(f'{sim_root_dir}/MicroSD/' + fname) +def test_verify_address_nfc_cancel(goto_home, pick_menu_item, press_cancel, + cap_story, enable_nfc, cap_menu, nfc_write, + nfc_write_text): + # pressing cancel during 'Verify Address' NFC prompt must not "crash". + enable_nfc() + goto_home() + pick_menu_item("Advanced/Tools") + pick_menu_item("NFC Tools") + pick_menu_item("Verify Address") + time.sleep(0.1) + press_cancel() + time.sleep(0.1) + assert "Verify Address" in cap_menu() + + pick_menu_item("Verify Address") + nfc_write_text("empty") + time.sleep(0.1) + title, story = cap_story() + assert "Unable to find address from NFC data" in story + press_cancel() + time.sleep(.1) + assert "Verify Address" in cap_menu() + + pick_menu_item("Verify Address") + nfc_write(b"empty") + time.sleep(0.1) + title, story = cap_story() + assert "No tag data" in story + press_cancel() + time.sleep(.1) + assert "Verify Address" in cap_menu() + # EOF