Add testcases with snapshots for multisig k-of-n and several taproot leaves
What changed, and why it matters
This commit only adds new test cases and screen snapshots for the Ledger Bitcoin app. It exercises two wallet-registration scenarios: a 2-of-3 multisig wallet and a Taproot wallet with multiple spending paths. There are no changes to the app's actual code, so this cannot introduce a security vulnerability or fix one in the shipped firmware.
No security action needed. Treat as routine test-coverage addition. Reviewers may optionally verify that the new snapshots match the intended UI flow when the tests are run.
Security signals we found
No strong security signals were identified.
Evidence from the diff
The diff adds two pytest test functions in tests/test_register_wallet.py and the corresponding expected device-screen snapshots for several Ledger device models (apex_p, flex, nanosp, nanox, stax). The new tests call the existing run_register_test helper with WalletPolicy objects for a wsh(sortedmulti(2,…)) descriptor and a tr(…,{pk(…),pk(…)}) descriptor. No application source files, APDU handlers, parsing logic, or cryptographic code are modified.
Changed components
tests/test_register_wallet.pytests/snapshots/Inspect captured patch +35 / −0
diff --git a/tests/snapshots/apex_p/test_register_wallet_accept_wit_2of3_0_0/00000.png b/tests/snapshots/apex_p/test_register_wallet_accept_wit_2of3_0_0/00000.png
new file mode 100644
index 0000000..081ec3d
Binary files /dev/null and b/tests/snapshots/apex_p/test_register_wallet_accept_wit_2of3_0_0/00000.png differ
diff --git a/tests/snapshots/apex_p/test_register_wallet_accept_wit_2of3_0_0/00001.png b/tests/snapshots/apex_p/test_register_wallet_accept_wit_2of3_0_0/00001.png
new file mode 100644
index 0000000..c0deb4c
Binary files /dev/null and b/tests/snapshots/apex_p/test_register_wallet_accept_wit_2of3_0_0/00001.png differ
diff --git a/tests/snapshots/apex_p/test_register_wallet_accept_wit_2of3_0_0/00002.png b/tests/snapshots/apex_p/test_register_wallet_accept_wit_2of3_0_0/00002.png
new file mode 100644
index 0000000..799d356
Binary files /dev/null and b/tests/snapshots/apex_p/test_register_wallet_accept_wit_2of3_0_0/00002.png differ
diff --git a/tests/snapshots/apex_p/test_register_wallet_accept_wit_2of3_0_0/00003.png b/tests/snapshots/apex_p/test_register_wallet_accept_wit_2of3_0_0/00003.png
new file mode 100644
index 0000000..3406898
Binary files /dev/null and b/tests/snapshots/apex_p/test_register_wallet_accept_wit_2of3_0_0/00003.png differ
diff --git a/tests/snapshots/apex_p/test_register_wallet_accept_wit_2of3_0_0/00004.png b/tests/snapshots/apex_p/test_register_wallet_accept_wit_2of3_0_0/00004.png
new file mode 100644
index 0000000..012ebf0
Binary files /dev/null and b/tests/snapshots/apex_p/test_register_wallet_accept_wit_2of3_0_0/00004.png differ
diff --git a/tests/snapshots/apex_p/test_register_wallet_accept_wit_2of3_0_0/00005.png b/tests/snapshots/apex_p/test_register_wallet_accept_wit_2of3_0_0/00005.png
new file mode 100644
index 0000000..6b448ac
Binary files /dev/null and b/tests/snapshots/apex_p/test_register_wallet_accept_wit_2of3_0_0/00005.png differ
diff --git a/tests/snapshots/apex_p/test_register_wallet_accept_wit_2of3_0_0/00006.png b/tests/snapshots/apex_p/test_register_wallet_accept_wit_2of3_0_0/00006.png
new file mode 100644
index 0000000..13cbaa5
Binary files /dev/null and b/tests/snapshots/apex_p/test_register_wallet_accept_wit_2of3_0_0/00006.png differ
diff --git a/tests/snapshots/apex_p/test_register_wallet_tr_script_multi_leaf_0_0/00000.png b/tests/snapshots/apex_p/test_register_wallet_tr_script_multi_leaf_0_0/00000.png
new file mode 100644
index 0000000..9716cd9
Binary files /dev/null and b/tests/snapshots/apex_p/test_register_wallet_tr_script_multi_leaf_0_0/00000.png differ
diff --git a/tests/snapshots/apex_p/test_register_wallet_tr_script_multi_leaf_0_0/00001.png b/tests/snapshots/apex_p/test_register_wallet_tr_script_multi_leaf_0_0/00001.png
new file mode 100644
index 0000000..3a1c750
Binary files /dev/null and b/tests/snapshots/apex_p/test_register_wallet_tr_script_multi_leaf_0_0/00001.png differ
diff --git a/tests/snapshots/apex_p/test_register_wallet_tr_script_multi_leaf_0_0/00002.png b/tests/snapshots/apex_p/test_register_wallet_tr_script_multi_leaf_0_0/00002.png
new file mode 100644
index 0000000..40df464
Binary files /dev/null and b/tests/snapshots/apex_p/test_register_wallet_tr_script_multi_leaf_0_0/00002.png differ
diff --git a/tests/snapshots/apex_p/test_register_wallet_tr_script_multi_leaf_0_0/00003.png b/tests/snapshots/apex_p/test_register_wallet_tr_script_multi_leaf_0_0/00003.png
new file mode 100644
index 0000000..14f3610
Binary files /dev/null and b/tests/snapshots/apex_p/test_register_wallet_tr_script_multi_leaf_0_0/00003.png differ
diff --git a/tests/snapshots/apex_p/test_register_wallet_tr_script_multi_leaf_0_0/00004.png b/tests/snapshots/apex_p/test_register_wallet_tr_script_multi_leaf_0_0/00004.png
new file mode 100644
index 0000000..7245a41
Binary files /dev/null and b/tests/snapshots/apex_p/test_register_wallet_tr_script_multi_leaf_0_0/00004.png differ
diff --git a/tests/snapshots/apex_p/test_register_wallet_tr_script_multi_leaf_0_0/00005.png b/tests/snapshots/apex_p/test_register_wallet_tr_script_multi_leaf_0_0/00005.png
new file mode 100644
index 0000000..5cf916f
Binary files /dev/null and b/tests/snapshots/apex_p/test_register_wallet_tr_script_multi_leaf_0_0/00005.png differ
diff --git a/tests/snapshots/apex_p/test_register_wallet_tr_script_multi_leaf_0_0/00006.png b/tests/snapshots/apex_p/test_register_wallet_tr_script_multi_leaf_0_0/00006.png
new file mode 100644
index 0000000..b07b465
Binary files /dev/null and b/tests/snapshots/apex_p/test_register_wallet_tr_script_multi_leaf_0_0/00006.png differ
diff --git a/tests/snapshots/apex_p/test_register_wallet_tr_script_multi_leaf_0_0/00007.png b/tests/snapshots/apex_p/test_register_wallet_tr_script_multi_leaf_0_0/00007.png
new file mode 100644
index 0000000..dd12f07
Binary files /dev/null and b/tests/snapshots/apex_p/test_register_wallet_tr_script_multi_leaf_0_0/00007.png differ
diff --git a/tests/snapshots/flex/test_register_wallet_accept_wit_2of3_0_0/00000.png b/tests/snapshots/flex/test_register_wallet_accept_wit_2of3_0_0/00000.png
new file mode 100644
index 0000000..d9d188e
Binary files /dev/null and b/tests/snapshots/flex/test_register_wallet_accept_wit_2of3_0_0/00000.png differ
diff --git a/tests/snapshots/flex/test_register_wallet_accept_wit_2of3_0_0/00001.png b/tests/snapshots/flex/test_register_wallet_accept_wit_2of3_0_0/00001.png
new file mode 100644
index 0000000..e601822
Binary files /dev/null and b/tests/snapshots/flex/test_register_wallet_accept_wit_2of3_0_0/00001.png differ
diff --git a/tests/snapshots/flex/test_register_wallet_accept_wit_2of3_0_0/00002.png b/tests/snapshots/flex/test_register_wallet_accept_wit_2of3_0_0/00002.png
new file mode 100644
index 0000000..e30480f
Binary files /dev/null and b/tests/snapshots/flex/test_register_wallet_accept_wit_2of3_0_0/00002.png differ
diff --git a/tests/snapshots/flex/test_register_wallet_accept_wit_2of3_0_0/00003.png b/tests/snapshots/flex/test_register_wallet_accept_wit_2of3_0_0/00003.png
new file mode 100644
index 0000000..7b4066e
Binary files /dev/null and b/tests/snapshots/flex/test_register_wallet_accept_wit_2of3_0_0/00003.png differ
diff --git a/tests/snapshots/flex/test_register_wallet_accept_wit_2of3_0_0/00004.png b/tests/snapshots/flex/test_register_wallet_accept_wit_2of3_0_0/00004.png
new file mode 100644
index 0000000..59bec00
Binary files /dev/null and b/tests/snapshots/flex/test_register_wallet_accept_wit_2of3_0_0/00004.png differ
diff --git a/tests/snapshots/flex/test_register_wallet_accept_wit_2of3_0_0/00005.png b/tests/snapshots/flex/test_register_wallet_accept_wit_2of3_0_0/00005.png
new file mode 100644
index 0000000..d0c9054
Binary files /dev/null and b/tests/snapshots/flex/test_register_wallet_accept_wit_2of3_0_0/00005.png differ
diff --git a/tests/snapshots/flex/test_register_wallet_accept_wit_2of3_0_0/00006.png b/tests/snapshots/flex/test_register_wallet_accept_wit_2of3_0_0/00006.png
new file mode 100644
index 0000000..4e9bb16
Binary files /dev/null and b/tests/snapshots/flex/test_register_wallet_accept_wit_2of3_0_0/00006.png differ
diff --git a/tests/snapshots/flex/test_register_wallet_tr_script_multi_leaf_0_0/00000.png b/tests/snapshots/flex/test_register_wallet_tr_script_multi_leaf_0_0/00000.png
new file mode 100644
index 0000000..d4b2f35
Binary files /dev/null and b/tests/snapshots/flex/test_register_wallet_tr_script_multi_leaf_0_0/00000.png differ
diff --git a/tests/snapshots/flex/test_register_wallet_tr_script_multi_leaf_0_0/00001.png b/tests/snapshots/flex/test_register_wallet_tr_script_multi_leaf_0_0/00001.png
new file mode 100644
index 0000000..8247de7
Binary files /dev/null and b/tests/snapshots/flex/test_register_wallet_tr_script_multi_leaf_0_0/00001.png differ
diff --git a/tests/snapshots/flex/test_register_wallet_tr_script_multi_leaf_0_0/00002.png b/tests/snapshots/flex/test_register_wallet_tr_script_multi_leaf_0_0/00002.png
new file mode 100644
index 0000000..96c63f9
Binary files /dev/null and b/tests/snapshots/flex/test_register_wallet_tr_script_multi_leaf_0_0/00002.png differ
diff --git a/tests/snapshots/flex/test_register_wallet_tr_script_multi_leaf_0_0/00003.png b/tests/snapshots/flex/test_register_wallet_tr_script_multi_leaf_0_0/00003.png
new file mode 100644
index 0000000..bec5066
Binary files /dev/null and b/tests/snapshots/flex/test_register_wallet_tr_script_multi_leaf_0_0/00003.png differ
diff --git a/tests/snapshots/flex/test_register_wallet_tr_script_multi_leaf_0_0/00004.png b/tests/snapshots/flex/test_register_wallet_tr_script_multi_leaf_0_0/00004.png
new file mode 100644
index 0000000..a38642f
Binary files /dev/null and b/tests/snapshots/flex/test_register_wallet_tr_script_multi_leaf_0_0/00004.png differ
diff --git a/tests/snapshots/flex/test_register_wallet_tr_script_multi_leaf_0_0/00005.png b/tests/snapshots/flex/test_register_wallet_tr_script_multi_leaf_0_0/00005.png
new file mode 100644
index 0000000..449536b
Binary files /dev/null and b/tests/snapshots/flex/test_register_wallet_tr_script_multi_leaf_0_0/00005.png differ
diff --git a/tests/snapshots/flex/test_register_wallet_tr_script_multi_leaf_0_0/00006.png b/tests/snapshots/flex/test_register_wallet_tr_script_multi_leaf_0_0/00006.png
new file mode 100644
index 0000000..85e6d28
Binary files /dev/null and b/tests/snapshots/flex/test_register_wallet_tr_script_multi_leaf_0_0/00006.png differ
diff --git a/tests/snapshots/flex/test_register_wallet_tr_script_multi_leaf_0_0/00007.png b/tests/snapshots/flex/test_register_wallet_tr_script_multi_leaf_0_0/00007.png
new file mode 100644
index 0000000..02ffd7f
Binary files /dev/null and b/tests/snapshots/flex/test_register_wallet_tr_script_multi_leaf_0_0/00007.png differ
diff --git a/tests/snapshots/nanosp/test_register_wallet_accept_wit_2of3_0_0/00000.png b/tests/snapshots/nanosp/test_register_wallet_accept_wit_2of3_0_0/00000.png
new file mode 100644
index 0000000..cfa6b7e
Binary files /dev/null and b/tests/snapshots/nanosp/test_register_wallet_accept_wit_2of3_0_0/00000.png differ
diff --git a/tests/snapshots/nanosp/test_register_wallet_accept_wit_2of3_0_0/00001.png b/tests/snapshots/nanosp/test_register_wallet_accept_wit_2of3_0_0/00001.png
new file mode 100644
index 0000000..19fd34b
Binary files /dev/null and b/tests/snapshots/nanosp/test_register_wallet_accept_wit_2of3_0_0/00001.png differ
diff --git a/tests/snapshots/nanosp/test_register_wallet_accept_wit_2of3_0_0/00002.png b/tests/snapshots/nanosp/test_register_wallet_accept_wit_2of3_0_0/00002.png
new file mode 100644
index 0000000..4503e2e
Binary files /dev/null and b/tests/snapshots/nanosp/test_register_wallet_accept_wit_2of3_0_0/00002.png differ
diff --git a/tests/snapshots/nanosp/test_register_wallet_accept_wit_2of3_0_0/00003.png b/tests/snapshots/nanosp/test_register_wallet_accept_wit_2of3_0_0/00003.png
new file mode 100644
index 0000000..1976ef6
Binary files /dev/null and b/tests/snapshots/nanosp/test_register_wallet_accept_wit_2of3_0_0/00003.png differ
diff --git a/tests/snapshots/nanosp/test_register_wallet_accept_wit_2of3_0_0/00004.png b/tests/snapshots/nanosp/test_register_wallet_accept_wit_2of3_0_0/00004.png
new file mode 100644
index 0000000..4eb7cc6
Binary files /dev/null and b/tests/snapshots/nanosp/test_register_wallet_accept_wit_2of3_0_0/00004.png differ
diff --git a/tests/snapshots/nanosp/test_register_wallet_accept_wit_2of3_0_0/00005.png b/tests/snapshots/nanosp/test_register_wallet_accept_wit_2of3_0_0/00005.png
new file mode 100644
index 0000000..34b2343
Binary files /dev/null and b/tests/snapshots/nanosp/test_register_wallet_accept_wit_2of3_0_0/00005.png differ
diff --git a/tests/snapshots/nanosp/test_register_wallet_accept_wit_2of3_0_0/00006.png b/tests/snapshots/nanosp/test_register_wallet_accept_wit_2of3_0_0/00006.png
new file mode 100644
index 0000000..0f8376c
Binary files /dev/null and b/tests/snapshots/nanosp/test_register_wallet_accept_wit_2of3_0_0/00006.png differ
diff --git a/tests/snapshots/nanosp/test_register_wallet_accept_wit_2of3_0_0/00007.png b/tests/snapshots/nanosp/test_register_wallet_accept_wit_2of3_0_0/00007.png
new file mode 100644
index 0000000..6211111
Binary files /dev/null and b/tests/snapshots/nanosp/test_register_wallet_accept_wit_2of3_0_0/00007.png differ
diff --git a/tests/snapshots/nanosp/test_register_wallet_accept_wit_2of3_0_0/00008.png b/tests/snapshots/nanosp/test_register_wallet_accept_wit_2of3_0_0/00008.png
new file mode 100644
index 0000000..b576ab4
Binary files /dev/null and b/tests/snapshots/nanosp/test_register_wallet_accept_wit_2of3_0_0/00008.png differ
diff --git a/tests/snapshots/nanosp/test_register_wallet_accept_wit_2of3_0_0/00009.png b/tests/snapshots/nanosp/test_register_wallet_accept_wit_2of3_0_0/00009.png
new file mode 100644
index 0000000..46b27b5
Binary files /dev/null and b/tests/snapshots/nanosp/test_register_wallet_accept_wit_2of3_0_0/00009.png differ
diff --git a/tests/snapshots/nanosp/test_register_wallet_accept_wit_2of3_0_0/00010.png b/tests/snapshots/nanosp/test_register_wallet_accept_wit_2of3_0_0/00010.png
new file mode 100644
index 0000000..f2be9be
Binary files /dev/null and b/tests/snapshots/nanosp/test_register_wallet_accept_wit_2of3_0_0/00010.png differ
diff --git a/tests/snapshots/nanosp/test_register_wallet_accept_wit_2of3_0_0/00011.png b/tests/snapshots/nanosp/test_register_wallet_accept_wit_2of3_0_0/00011.png
new file mode 100644
index 0000000..0f80b11
Binary files /dev/null and b/tests/snapshots/nanosp/test_register_wallet_accept_wit_2of3_0_0/00011.png differ
diff --git a/tests/snapshots/nanosp/test_register_wallet_accept_wit_2of3_0_0/00012.png b/tests/snapshots/nanosp/test_register_wallet_accept_wit_2of3_0_0/00012.png
new file mode 100644
index 0000000..11155a8
Binary files /dev/null and b/tests/snapshots/nanosp/test_register_wallet_accept_wit_2of3_0_0/00012.png differ
diff --git a/tests/snapshots/nanosp/test_register_wallet_accept_wit_2of3_0_0/00013.png b/tests/snapshots/nanosp/test_register_wallet_accept_wit_2of3_0_0/00013.png
new file mode 100644
index 0000000..f928909
Binary files /dev/null and b/tests/snapshots/nanosp/test_register_wallet_accept_wit_2of3_0_0/00013.png differ
diff --git a/tests/snapshots/nanosp/test_register_wallet_tr_script_multi_leaf_0_0/00000.png b/tests/snapshots/nanosp/test_register_wallet_tr_script_multi_leaf_0_0/00000.png
new file mode 100644
index 0000000..cfa6b7e
Binary files /dev/null and b/tests/snapshots/nanosp/test_register_wallet_tr_script_multi_leaf_0_0/00000.png differ
diff --git a/tests/snapshots/nanosp/test_register_wallet_tr_script_multi_leaf_0_0/00001.png b/tests/snapshots/nanosp/test_register_wallet_tr_script_multi_leaf_0_0/00001.png
new file mode 100644
index 0000000..a7e1400
Binary files /dev/null and b/tests/snapshots/nanosp/test_register_wallet_tr_script_multi_leaf_0_0/00001.png differ
diff --git a/tests/snapshots/nanosp/test_register_wallet_tr_script_multi_leaf_0_0/00002.png b/tests/snapshots/nanosp/test_register_wallet_tr_script_multi_leaf_0_0/00002.png
new file mode 100644
index 0000000..3ef277d
Binary files /dev/null and b/tests/snapshots/nanosp/test_register_wallet_tr_script_multi_leaf_0_0/00002.png differ
diff --git a/tests/snapshots/nanosp/test_register_wallet_tr_script_multi_leaf_0_0/00003.png b/tests/snapshots/nanosp/test_register_wallet_tr_script_multi_leaf_0_0/00003.png
new file mode 100644
index 0000000..6f850ec
Binary files /dev/null and b/tests/snapshots/nanosp/test_register_wallet_tr_script_multi_leaf_0_0/00003.png differ
diff --git a/tests/snapshots/nanosp/test_register_wallet_tr_script_multi_leaf_0_0/00004.png b/tests/snapshots/nanosp/test_register_wallet_tr_script_multi_leaf_0_0/00004.png
new file mode 100644
index 0000000..0269527
Binary files /dev/null and b/tests/snapshots/nanosp/test_register_wallet_tr_script_multi_leaf_0_0/00004.png differ
diff --git a/tests/snapshots/nanosp/test_register_wallet_tr_script_multi_leaf_0_0/00005.png b/tests/snapshots/nanosp/test_register_wallet_tr_script_multi_leaf_0_0/00005.png
new file mode 100644
index 0000000..7c74cb4
Binary files /dev/null and b/tests/snapshots/nanosp/test_register_wallet_tr_script_multi_leaf_0_0/00005.png differ
diff --git a/tests/snapshots/nanosp/test_register_wallet_tr_script_multi_leaf_0_0/00006.png b/tests/snapshots/nanosp/test_register_wallet_tr_script_multi_leaf_0_0/00006.png
new file mode 100644
index 0000000..1976ef6
Binary files /dev/null and b/tests/snapshots/nanosp/test_register_wallet_tr_script_multi_leaf_0_0/00006.png differ
diff --git a/tests/snapshots/nanosp/test_register_wallet_tr_script_multi_leaf_0_0/00007.png b/tests/snapshots/nanosp/test_register_wallet_tr_script_multi_leaf_0_0/00007.png
new file mode 100644
index 0000000..4eb7cc6
Binary files /dev/null and b/tests/snapshots/nanosp/test_register_wallet_tr_script_multi_leaf_0_0/00007.png differ
diff --git a/tests/snapshots/nanosp/test_register_wallet_tr_script_multi_leaf_0_0/00008.png b/tests/snapshots/nanosp/test_register_wallet_tr_script_multi_leaf_0_0/00008.png
new file mode 100644
index 0000000..34b2343
Binary files /dev/null and b/tests/snapshots/nanosp/test_register_wallet_tr_script_multi_leaf_0_0/00008.png differ
diff --git a/tests/snapshots/nanosp/test_register_wallet_tr_script_multi_leaf_0_0/00009.png b/tests/snapshots/nanosp/test_register_wallet_tr_script_multi_leaf_0_0/00009.png
new file mode 100644
index 0000000..0f8376c
Binary files /dev/null and b/tests/snapshots/nanosp/test_register_wallet_tr_script_multi_leaf_0_0/00009.png differ
diff --git a/tests/snapshots/nanosp/test_register_wallet_tr_script_multi_leaf_0_0/00010.png b/tests/snapshots/nanosp/test_register_wallet_tr_script_multi_leaf_0_0/00010.png
new file mode 100644
index 0000000..6211111
Binary files /dev/null and b/tests/snapshots/nanosp/test_register_wallet_tr_script_multi_leaf_0_0/00010.png differ
diff --git a/tests/snapshots/nanosp/test_register_wallet_tr_script_multi_leaf_0_0/00011.png b/tests/snapshots/nanosp/test_register_wallet_tr_script_multi_leaf_0_0/00011.png
new file mode 100644
index 0000000..b576ab4
Binary files /dev/null and b/tests/snapshots/nanosp/test_register_wallet_tr_script_multi_leaf_0_0/00011.png differ
diff --git a/tests/snapshots/nanosp/test_register_wallet_tr_script_multi_leaf_0_0/00012.png b/tests/snapshots/nanosp/test_register_wallet_tr_script_multi_leaf_0_0/00012.png
new file mode 100644
index 0000000..46b27b5
Binary files /dev/null and b/tests/snapshots/nanosp/test_register_wallet_tr_script_multi_leaf_0_0/00012.png differ
diff --git a/tests/snapshots/nanosp/test_register_wallet_tr_script_multi_leaf_0_0/00013.png b/tests/snapshots/nanosp/test_register_wallet_tr_script_multi_leaf_0_0/00013.png
new file mode 100644
index 0000000..f2be9be
Binary files /dev/null and b/tests/snapshots/nanosp/test_register_wallet_tr_script_multi_leaf_0_0/00013.png differ
diff --git a/tests/snapshots/nanosp/test_register_wallet_tr_script_multi_leaf_0_0/00014.png b/tests/snapshots/nanosp/test_register_wallet_tr_script_multi_leaf_0_0/00014.png
new file mode 100644
index 0000000..0f80b11
Binary files /dev/null and b/tests/snapshots/nanosp/test_register_wallet_tr_script_multi_leaf_0_0/00014.png differ
diff --git a/tests/snapshots/nanosp/test_register_wallet_tr_script_multi_leaf_0_0/00015.png b/tests/snapshots/nanosp/test_register_wallet_tr_script_multi_leaf_0_0/00015.png
new file mode 100644
index 0000000..11155a8
Binary files /dev/null and b/tests/snapshots/nanosp/test_register_wallet_tr_script_multi_leaf_0_0/00015.png differ
diff --git a/tests/snapshots/nanosp/test_register_wallet_tr_script_multi_leaf_0_0/00016.png b/tests/snapshots/nanosp/test_register_wallet_tr_script_multi_leaf_0_0/00016.png
new file mode 100644
index 0000000..f928909
Binary files /dev/null and b/tests/snapshots/nanosp/test_register_wallet_tr_script_multi_leaf_0_0/00016.png differ
diff --git a/tests/snapshots/nanox/test_register_wallet_accept_wit_2of3_0_0/00000.png b/tests/snapshots/nanox/test_register_wallet_accept_wit_2of3_0_0/00000.png
new file mode 100644
index 0000000..cfa6b7e
Binary files /dev/null and b/tests/snapshots/nanox/test_register_wallet_accept_wit_2of3_0_0/00000.png differ
diff --git a/tests/snapshots/nanox/test_register_wallet_accept_wit_2of3_0_0/00001.png b/tests/snapshots/nanox/test_register_wallet_accept_wit_2of3_0_0/00001.png
new file mode 100644
index 0000000..19fd34b
Binary files /dev/null and b/tests/snapshots/nanox/test_register_wallet_accept_wit_2of3_0_0/00001.png differ
diff --git a/tests/snapshots/nanox/test_register_wallet_accept_wit_2of3_0_0/00002.png b/tests/snapshots/nanox/test_register_wallet_accept_wit_2of3_0_0/00002.png
new file mode 100644
index 0000000..4503e2e
Binary files /dev/null and b/tests/snapshots/nanox/test_register_wallet_accept_wit_2of3_0_0/00002.png differ
diff --git a/tests/snapshots/nanox/test_register_wallet_accept_wit_2of3_0_0/00003.png b/tests/snapshots/nanox/test_register_wallet_accept_wit_2of3_0_0/00003.png
new file mode 100644
index 0000000..1976ef6
Binary files /dev/null and b/tests/snapshots/nanox/test_register_wallet_accept_wit_2of3_0_0/00003.png differ
diff --git a/tests/snapshots/nanox/test_register_wallet_accept_wit_2of3_0_0/00004.png b/tests/snapshots/nanox/test_register_wallet_accept_wit_2of3_0_0/00004.png
new file mode 100644
index 0000000..4eb7cc6
Binary files /dev/null and b/tests/snapshots/nanox/test_register_wallet_accept_wit_2of3_0_0/00004.png differ
diff --git a/tests/snapshots/nanox/test_register_wallet_accept_wit_2of3_0_0/00005.png b/tests/snapshots/nanox/test_register_wallet_accept_wit_2of3_0_0/00005.png
new file mode 100644
index 0000000..34b2343
Binary files /dev/null and b/tests/snapshots/nanox/test_register_wallet_accept_wit_2of3_0_0/00005.png differ
diff --git a/tests/snapshots/nanox/test_register_wallet_accept_wit_2of3_0_0/00006.png b/tests/snapshots/nanox/test_register_wallet_accept_wit_2of3_0_0/00006.png
new file mode 100644
index 0000000..0f8376c
Binary files /dev/null and b/tests/snapshots/nanox/test_register_wallet_accept_wit_2of3_0_0/00006.png differ
diff --git a/tests/snapshots/nanox/test_register_wallet_accept_wit_2of3_0_0/00007.png b/tests/snapshots/nanox/test_register_wallet_accept_wit_2of3_0_0/00007.png
new file mode 100644
index 0000000..6211111
Binary files /dev/null and b/tests/snapshots/nanox/test_register_wallet_accept_wit_2of3_0_0/00007.png differ
diff --git a/tests/snapshots/nanox/test_register_wallet_accept_wit_2of3_0_0/00008.png b/tests/snapshots/nanox/test_register_wallet_accept_wit_2of3_0_0/00008.png
new file mode 100644
index 0000000..b576ab4
Binary files /dev/null and b/tests/snapshots/nanox/test_register_wallet_accept_wit_2of3_0_0/00008.png differ
diff --git a/tests/snapshots/nanox/test_register_wallet_accept_wit_2of3_0_0/00009.png b/tests/snapshots/nanox/test_register_wallet_accept_wit_2of3_0_0/00009.png
new file mode 100644
index 0000000..46b27b5
Binary files /dev/null and b/tests/snapshots/nanox/test_register_wallet_accept_wit_2of3_0_0/00009.png differ
diff --git a/tests/snapshots/nanox/test_register_wallet_accept_wit_2of3_0_0/00010.png b/tests/snapshots/nanox/test_register_wallet_accept_wit_2of3_0_0/00010.png
new file mode 100644
index 0000000..f2be9be
Binary files /dev/null and b/tests/snapshots/nanox/test_register_wallet_accept_wit_2of3_0_0/00010.png differ
diff --git a/tests/snapshots/nanox/test_register_wallet_accept_wit_2of3_0_0/00011.png b/tests/snapshots/nanox/test_register_wallet_accept_wit_2of3_0_0/00011.png
new file mode 100644
index 0000000..0f80b11
Binary files /dev/null and b/tests/snapshots/nanox/test_register_wallet_accept_wit_2of3_0_0/00011.png differ
diff --git a/tests/snapshots/nanox/test_register_wallet_accept_wit_2of3_0_0/00012.png b/tests/snapshots/nanox/test_register_wallet_accept_wit_2of3_0_0/00012.png
new file mode 100644
index 0000000..11155a8
Binary files /dev/null and b/tests/snapshots/nanox/test_register_wallet_accept_wit_2of3_0_0/00012.png differ
diff --git a/tests/snapshots/nanox/test_register_wallet_accept_wit_2of3_0_0/00013.png b/tests/snapshots/nanox/test_register_wallet_accept_wit_2of3_0_0/00013.png
new file mode 100644
index 0000000..f928909
Binary files /dev/null and b/tests/snapshots/nanox/test_register_wallet_accept_wit_2of3_0_0/00013.png differ
diff --git a/tests/snapshots/nanox/test_register_wallet_tr_script_multi_leaf_0_0/00000.png b/tests/snapshots/nanox/test_register_wallet_tr_script_multi_leaf_0_0/00000.png
new file mode 100644
index 0000000..cfa6b7e
Binary files /dev/null and b/tests/snapshots/nanox/test_register_wallet_tr_script_multi_leaf_0_0/00000.png differ
diff --git a/tests/snapshots/nanox/test_register_wallet_tr_script_multi_leaf_0_0/00001.png b/tests/snapshots/nanox/test_register_wallet_tr_script_multi_leaf_0_0/00001.png
new file mode 100644
index 0000000..a7e1400
Binary files /dev/null and b/tests/snapshots/nanox/test_register_wallet_tr_script_multi_leaf_0_0/00001.png differ
diff --git a/tests/snapshots/nanox/test_register_wallet_tr_script_multi_leaf_0_0/00002.png b/tests/snapshots/nanox/test_register_wallet_tr_script_multi_leaf_0_0/00002.png
new file mode 100644
index 0000000..3ef277d
Binary files /dev/null and b/tests/snapshots/nanox/test_register_wallet_tr_script_multi_leaf_0_0/00002.png differ
diff --git a/tests/snapshots/nanox/test_register_wallet_tr_script_multi_leaf_0_0/00003.png b/tests/snapshots/nanox/test_register_wallet_tr_script_multi_leaf_0_0/00003.png
new file mode 100644
index 0000000..6f850ec
Binary files /dev/null and b/tests/snapshots/nanox/test_register_wallet_tr_script_multi_leaf_0_0/00003.png differ
diff --git a/tests/snapshots/nanox/test_register_wallet_tr_script_multi_leaf_0_0/00004.png b/tests/snapshots/nanox/test_register_wallet_tr_script_multi_leaf_0_0/00004.png
new file mode 100644
index 0000000..0269527
Binary files /dev/null and b/tests/snapshots/nanox/test_register_wallet_tr_script_multi_leaf_0_0/00004.png differ
diff --git a/tests/snapshots/nanox/test_register_wallet_tr_script_multi_leaf_0_0/00005.png b/tests/snapshots/nanox/test_register_wallet_tr_script_multi_leaf_0_0/00005.png
new file mode 100644
index 0000000..7c74cb4
Binary files /dev/null and b/tests/snapshots/nanox/test_register_wallet_tr_script_multi_leaf_0_0/00005.png differ
diff --git a/tests/snapshots/nanox/test_register_wallet_tr_script_multi_leaf_0_0/00006.png b/tests/snapshots/nanox/test_register_wallet_tr_script_multi_leaf_0_0/00006.png
new file mode 100644
index 0000000..1976ef6
Binary files /dev/null and b/tests/snapshots/nanox/test_register_wallet_tr_script_multi_leaf_0_0/00006.png differ
diff --git a/tests/snapshots/nanox/test_register_wallet_tr_script_multi_leaf_0_0/00007.png b/tests/snapshots/nanox/test_register_wallet_tr_script_multi_leaf_0_0/00007.png
new file mode 100644
index 0000000..4eb7cc6
Binary files /dev/null and b/tests/snapshots/nanox/test_register_wallet_tr_script_multi_leaf_0_0/00007.png differ
diff --git a/tests/snapshots/nanox/test_register_wallet_tr_script_multi_leaf_0_0/00008.png b/tests/snapshots/nanox/test_register_wallet_tr_script_multi_leaf_0_0/00008.png
new file mode 100644
index 0000000..34b2343
Binary files /dev/null and b/tests/snapshots/nanox/test_register_wallet_tr_script_multi_leaf_0_0/00008.png differ
diff --git a/tests/snapshots/nanox/test_register_wallet_tr_script_multi_leaf_0_0/00009.png b/tests/snapshots/nanox/test_register_wallet_tr_script_multi_leaf_0_0/00009.png
new file mode 100644
index 0000000..0f8376c
Binary files /dev/null and b/tests/snapshots/nanox/test_register_wallet_tr_script_multi_leaf_0_0/00009.png differ
diff --git a/tests/snapshots/nanox/test_register_wallet_tr_script_multi_leaf_0_0/00010.png b/tests/snapshots/nanox/test_register_wallet_tr_script_multi_leaf_0_0/00010.png
new file mode 100644
index 0000000..6211111
Binary files /dev/null and b/tests/snapshots/nanox/test_register_wallet_tr_script_multi_leaf_0_0/00010.png differ
diff --git a/tests/snapshots/nanox/test_register_wallet_tr_script_multi_leaf_0_0/00011.png b/tests/snapshots/nanox/test_register_wallet_tr_script_multi_leaf_0_0/00011.png
new file mode 100644
index 0000000..b576ab4
Binary files /dev/null and b/tests/snapshots/nanox/test_register_wallet_tr_script_multi_leaf_0_0/00011.png differ
diff --git a/tests/snapshots/nanox/test_register_wallet_tr_script_multi_leaf_0_0/00012.png b/tests/snapshots/nanox/test_register_wallet_tr_script_multi_leaf_0_0/00012.png
new file mode 100644
index 0000000..46b27b5
Binary files /dev/null and b/tests/snapshots/nanox/test_register_wallet_tr_script_multi_leaf_0_0/00012.png differ
diff --git a/tests/snapshots/nanox/test_register_wallet_tr_script_multi_leaf_0_0/00013.png b/tests/snapshots/nanox/test_register_wallet_tr_script_multi_leaf_0_0/00013.png
new file mode 100644
index 0000000..f2be9be
Binary files /dev/null and b/tests/snapshots/nanox/test_register_wallet_tr_script_multi_leaf_0_0/00013.png differ
diff --git a/tests/snapshots/nanox/test_register_wallet_tr_script_multi_leaf_0_0/00014.png b/tests/snapshots/nanox/test_register_wallet_tr_script_multi_leaf_0_0/00014.png
new file mode 100644
index 0000000..0f80b11
Binary files /dev/null and b/tests/snapshots/nanox/test_register_wallet_tr_script_multi_leaf_0_0/00014.png differ
diff --git a/tests/snapshots/nanox/test_register_wallet_tr_script_multi_leaf_0_0/00015.png b/tests/snapshots/nanox/test_register_wallet_tr_script_multi_leaf_0_0/00015.png
new file mode 100644
index 0000000..11155a8
Binary files /dev/null and b/tests/snapshots/nanox/test_register_wallet_tr_script_multi_leaf_0_0/00015.png differ
diff --git a/tests/snapshots/nanox/test_register_wallet_tr_script_multi_leaf_0_0/00016.png b/tests/snapshots/nanox/test_register_wallet_tr_script_multi_leaf_0_0/00016.png
new file mode 100644
index 0000000..f928909
Binary files /dev/null and b/tests/snapshots/nanox/test_register_wallet_tr_script_multi_leaf_0_0/00016.png differ
diff --git a/tests/snapshots/stax/test_register_wallet_accept_wit_2of3_0_0/00000.png b/tests/snapshots/stax/test_register_wallet_accept_wit_2of3_0_0/00000.png
new file mode 100644
index 0000000..f35ff21
Binary files /dev/null and b/tests/snapshots/stax/test_register_wallet_accept_wit_2of3_0_0/00000.png differ
diff --git a/tests/snapshots/stax/test_register_wallet_accept_wit_2of3_0_0/00001.png b/tests/snapshots/stax/test_register_wallet_accept_wit_2of3_0_0/00001.png
new file mode 100644
index 0000000..9d23f9a
Binary files /dev/null and b/tests/snapshots/stax/test_register_wallet_accept_wit_2of3_0_0/00001.png differ
diff --git a/tests/snapshots/stax/test_register_wallet_accept_wit_2of3_0_0/00002.png b/tests/snapshots/stax/test_register_wallet_accept_wit_2of3_0_0/00002.png
new file mode 100644
index 0000000..04579b0
Binary files /dev/null and b/tests/snapshots/stax/test_register_wallet_accept_wit_2of3_0_0/00002.png differ
diff --git a/tests/snapshots/stax/test_register_wallet_accept_wit_2of3_0_0/00003.png b/tests/snapshots/stax/test_register_wallet_accept_wit_2of3_0_0/00003.png
new file mode 100644
index 0000000..b0d6ca7
Binary files /dev/null and b/tests/snapshots/stax/test_register_wallet_accept_wit_2of3_0_0/00003.png differ
diff --git a/tests/snapshots/stax/test_register_wallet_accept_wit_2of3_0_0/00004.png b/tests/snapshots/stax/test_register_wallet_accept_wit_2of3_0_0/00004.png
new file mode 100644
index 0000000..97f1de3
Binary files /dev/null and b/tests/snapshots/stax/test_register_wallet_accept_wit_2of3_0_0/00004.png differ
diff --git a/tests/snapshots/stax/test_register_wallet_accept_wit_2of3_0_0/00005.png b/tests/snapshots/stax/test_register_wallet_accept_wit_2of3_0_0/00005.png
new file mode 100644
index 0000000..ec28cb5
Binary files /dev/null and b/tests/snapshots/stax/test_register_wallet_accept_wit_2of3_0_0/00005.png differ
diff --git a/tests/snapshots/stax/test_register_wallet_accept_wit_2of3_0_0/00006.png b/tests/snapshots/stax/test_register_wallet_accept_wit_2of3_0_0/00006.png
new file mode 100644
index 0000000..fcd778d
Binary files /dev/null and b/tests/snapshots/stax/test_register_wallet_accept_wit_2of3_0_0/00006.png differ
diff --git a/tests/snapshots/stax/test_register_wallet_tr_script_multi_leaf_0_0/00000.png b/tests/snapshots/stax/test_register_wallet_tr_script_multi_leaf_0_0/00000.png
new file mode 100644
index 0000000..4bee17b
Binary files /dev/null and b/tests/snapshots/stax/test_register_wallet_tr_script_multi_leaf_0_0/00000.png differ
diff --git a/tests/snapshots/stax/test_register_wallet_tr_script_multi_leaf_0_0/00001.png b/tests/snapshots/stax/test_register_wallet_tr_script_multi_leaf_0_0/00001.png
new file mode 100644
index 0000000..5d00ab5
Binary files /dev/null and b/tests/snapshots/stax/test_register_wallet_tr_script_multi_leaf_0_0/00001.png differ
diff --git a/tests/snapshots/stax/test_register_wallet_tr_script_multi_leaf_0_0/00002.png b/tests/snapshots/stax/test_register_wallet_tr_script_multi_leaf_0_0/00002.png
new file mode 100644
index 0000000..0a3840b
Binary files /dev/null and b/tests/snapshots/stax/test_register_wallet_tr_script_multi_leaf_0_0/00002.png differ
diff --git a/tests/snapshots/stax/test_register_wallet_tr_script_multi_leaf_0_0/00003.png b/tests/snapshots/stax/test_register_wallet_tr_script_multi_leaf_0_0/00003.png
new file mode 100644
index 0000000..974ddad
Binary files /dev/null and b/tests/snapshots/stax/test_register_wallet_tr_script_multi_leaf_0_0/00003.png differ
diff --git a/tests/snapshots/stax/test_register_wallet_tr_script_multi_leaf_0_0/00004.png b/tests/snapshots/stax/test_register_wallet_tr_script_multi_leaf_0_0/00004.png
new file mode 100644
index 0000000..a0bb9be
Binary files /dev/null and b/tests/snapshots/stax/test_register_wallet_tr_script_multi_leaf_0_0/00004.png differ
diff --git a/tests/snapshots/stax/test_register_wallet_tr_script_multi_leaf_0_0/00005.png b/tests/snapshots/stax/test_register_wallet_tr_script_multi_leaf_0_0/00005.png
new file mode 100644
index 0000000..6ced4b3
Binary files /dev/null and b/tests/snapshots/stax/test_register_wallet_tr_script_multi_leaf_0_0/00005.png differ
diff --git a/tests/snapshots/stax/test_register_wallet_tr_script_multi_leaf_0_0/00006.png b/tests/snapshots/stax/test_register_wallet_tr_script_multi_leaf_0_0/00006.png
new file mode 100644
index 0000000..b36092c
Binary files /dev/null and b/tests/snapshots/stax/test_register_wallet_tr_script_multi_leaf_0_0/00006.png differ
diff --git a/tests/snapshots/stax/test_register_wallet_tr_script_multi_leaf_0_0/00007.png b/tests/snapshots/stax/test_register_wallet_tr_script_multi_leaf_0_0/00007.png
new file mode 100644
index 0000000..2c97c87
Binary files /dev/null and b/tests/snapshots/stax/test_register_wallet_tr_script_multi_leaf_0_0/00007.png differ
diff --git a/tests/test_register_wallet.py b/tests/test_register_wallet.py
index aa02527..92150cb 100644
--- a/tests/test_register_wallet.py
+++ b/tests/test_register_wallet.py
@@ -74,6 +74,23 @@ def test_register_wallet_accept_wit(navigator: Navigator, firmware: Firmware, cl
test_name=test_name)
+def test_register_wallet_accept_wit_2of3(navigator: Navigator, firmware: Firmware, client:
+ RaggerClient, test_name: str, speculos_globals):
+ # A k-of-n multisig (k < n): the cleartext uses the "Any K of ..." wording
+ # (as opposed to the n-of-n "Each of ...").
+ run_register_test(navigator, client, speculos_globals, WalletPolicy(
+ name="Cold storage",
+ descriptor_template="wsh(sortedmulti(2,@0/**,@1/**,@2/**))",
+ keys_info=[
+ "[f5acc2fd/48'/1'/0'/1']tpubDFAqEGNyad35YgH8zxvxFZqNUoPtr5mDojs7wzbXQBHTZ4xHeVXG6w2HvsKvjBpaRpTmjYDjdPg5w2c6Wvu8QBkyMDrmBWdCyqkDM7reSsY",
+ "[76223a6e/48'/1'/0'/2']tpubDE7NQymr4AFtewpAsWtnreyq9ghkzQBXpCZjWLFVRAvnbf7vya2eMTvT2fPapNqL8SuVvLQdbUbMfWLVDCZKnsEBqp6UK93QEzL8Ck23AwF",
+ "[f5acc2fd/48'/1'/0'/2']tpubDFAqEGNyad35aBCKUAXbQGDjdVhNueno5ZZVEn3sQbW5ci457gLR7HyTmHBg93oourBssgUxuWz1jX5uhc1qaqFo9VsybY1J5FuedLfm4dK",
+ ],
+ ),
+ instructions=register_wallet_instruction_approve_long(firmware),
+ test_name=test_name)
+
+
def test_register_wallet_with_long_name(navigator: Navigator, firmware: Firmware, client:
RaggerClient, test_name: str, speculos_globals):
name = "Cold storage with a pretty long name that requires 64 characters"
@@ -493,6 +510,24 @@ def test_register_wallet_tr_script_sortedmulti(navigator: Navigator, firmware: F
instructions=register_wallet_instruction_approve_long(firmware),
test_name=test_name)
+def test_register_wallet_tr_script_multi_leaf(navigator: Navigator, firmware: Firmware, client:
+ RaggerClient, test_name: str, speculos_globals):
+ # A taproot with a two-leaf script tree, so the cleartext renders MORE THAN TWO
+ # spending paths: the key path ("Primary spending path") plus one "Spending path #N"
+ # per leaf. Exercises the numbered multi-path layout (Primary + #1 + #2).
+ run_register_test(navigator, client, speculos_globals, WalletPolicy(
+ name="Taproot key or one of two script keys",
+ descriptor_template="tr(@0/**,{pk(@1/**),pk(@2/**)})",
+ keys_info=[
+ "[f5acc2fd/48'/1'/0'/1']tpubDFAqEGNyad35YgH8zxvxFZqNUoPtr5mDojs7wzbXQBHTZ4xHeVXG6w2HvsKvjBpaRpTmjYDjdPg5w2c6Wvu8QBkyMDrmBWdCyqkDM7reSsY",
+ "[76223a6e/48'/1'/0'/2']tpubDE7NQymr4AFtewpAsWtnreyq9ghkzQBXpCZjWLFVRAvnbf7vya2eMTvT2fPapNqL8SuVvLQdbUbMfWLVDCZKnsEBqp6UK93QEzL8Ck23AwF",
+ "[f5acc2fd/48'/1'/0'/2']tpubDFAqEGNyad35aBCKUAXbQGDjdVhNueno5ZZVEn3sQbW5ci457gLR7HyTmHBg93oourBssgUxuWz1jX5uhc1qaqFo9VsybY1J5FuedLfm4dK",
+ ],
+ ),
+ instructions=register_wallet_instruction_approve_long(firmware),
+ test_name=test_name)
+
+
def test_register_wallet_max_derivation_steps(navigator: Navigator, firmware: Firmware, client:
RaggerClient, test_name: str, speculos_globals):
# Test that we can register a wallet with MAX_BIP388_XPUB_DERIVATION_STEPS (8) derivation steps
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.