feat(legacy): send BIP-380 descriptor in GetPublicKey response
What changed, and why it matters
This commit adds a new convenience feature to the older Trezor One (legacy) firmware: when you ask the device for a public key, it now also returns a BIP-380 output descriptor string. This is a standardized way to describe how that public key should be used in Bitcoin wallets. The change is a feature addition, not a fix for a known security bug. It does not change how private keys are handled or how transactions are signed.
No immediate security action required. Treat as a normal feature commit. Reviewers may want to verify the BIP-380 checksum implementation against the reference and confirm that descriptor buffer sizes are sufficient for all supported paths and xpub lengths.
Security signals we found
New C string formatting path using snprintf with length checks
New BIP-380 checksum implementation translated from HWI Python code
Descriptor field enabled in protobuf options (was FT_IGNORE)
Display behavior changed for taproot to show descriptor instead of xpub
No private-key handling or signing logic modified
Evidence from the diff
The commit implements descriptor_format() in legacy/firmware/crypto.c and wires it into fsm_msg_coin.h so that GetPublicKey responses include a BIP-380 descriptor. It also enables the previously ignored PublicKey.descriptor field (max_size:246) and adds tests. The descriptor is built from the script type, root fingerprint, derivation path, xpub, and a BIP-380 checksum. For taproot (SPENDTAPROOT) the descriptor is shown on device instead of the plain xpub. Unsupported script types (e.g., SPENDMULTISIG) leave has_descriptor false. The implementation includes bounds checks and memzero on failure.
Changed components
legacy/firmware/crypto.clegacy/firmware/crypto.hlegacy/firmware/fsm_msg_coin.hlegacy/firmware/protob/messages-bitcoin.optionstests/device_tests/bitcoin/test_descriptors.pyInspect captured patch +205 / −11
diff --git a/legacy/firmware/.changelog.d/3576.added b/legacy/firmware/.changelog.d/3576.added
new file mode 100644
index 00000000..e67334a3
--- /dev/null
+++ b/legacy/firmware/.changelog.d/3576.added
@@ -0,0 +1 @@
+Send BIP-380 descriptor in GetPublicKey response.
diff --git a/legacy/firmware/crypto.c b/legacy/firmware/crypto.c
index 60dca466..615cee7a 100644
--- a/legacy/firmware/crypto.c
+++ b/legacy/firmware/crypto.c
@@ -18,6 +18,8 @@
*/
#include "crypto.h"
+#include <inttypes.h>
+#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#include "address.h"
@@ -28,10 +30,12 @@
#include "curves.h"
#include "hmac.h"
#include "layout.h"
+#include "memzero.h"
#include "pbkdf2.h"
#include "secp256k1.h"
#include "segwit_addr.h"
#include "sha2.h"
+#include "util.h"
#if !BITCOIN_ONLY
#include "cash_addr.h"
@@ -976,3 +980,113 @@ bool multisig_uses_single_path(const MultisigRedeemScriptType *multisig) {
return true;
}
}
+
+// descriptor checksum manually translated from
+// https://github.com/bitcoin-core/HWI/blob/master/hwilib/descriptor.py
+
+static const char INPUT_CHARSET[] =
+ "0123456789()[],'/*abcdefgh@:$%{}"
+ "IJKLMNOPQRSTUVWXYZ&+-.;<=>?!^_|~"
+ "ijklmnopqrstuvwxyzABCDEFGH`#\"\\ ";
+static const char CHECKSUM_CHARSET[] = "qpzry9x8gf2tvdw0s3jn54khce6mua7l";
+static const size_t DESCRIPTOR_CHECKSUM_LEN = 8;
+
+static uint64_t descriptor_polymod(uint64_t c, uint8_t val) {
+ uint64_t c0 = c >> 35;
+ c = ((c & 0x7FFFFFFFF) << 5) ^ val;
+ if (c0 & 1) {
+ c ^= 0xF5DEE51989;
+ }
+ if (c0 & 2) {
+ c ^= 0xA9FDCA3312;
+ }
+ if (c0 & 4) {
+ c ^= 0x1BAB10E32D;
+ }
+ if (c0 & 8) {
+ c ^= 0x3706B1677A;
+ }
+ if (c0 & 16) {
+ c ^= 0x644D626FFD;
+ }
+ return c;
+}
+
+static bool descriptor_checksum(const char *descriptor, size_t descriptor_len,
+ char dest[DESCRIPTOR_CHECKSUM_LEN]) {
+ uint64_t c = 1;
+ uint8_t cls = 0;
+ uint8_t clscount = 0;
+
+ for (size_t i = 0; i < descriptor_len; i++) {
+ const char *const pos_ptr = strchr(INPUT_CHARSET, descriptor[i]);
+ if (!pos_ptr || !*pos_ptr) {
+ return false;
+ }
+ size_t pos = pos_ptr - INPUT_CHARSET;
+ c = descriptor_polymod(c, pos & 31);
+ cls = cls * 3 + (pos >> 5);
+ clscount += 1;
+ if (clscount == 3) {
+ c = descriptor_polymod(c, cls);
+ cls = 0;
+ clscount = 0;
+ }
+ }
+ if (clscount > 0) {
+ c = descriptor_polymod(c, cls);
+ }
+ for (size_t j = 0; j < 8; j++) {
+ c = descriptor_polymod(c, 0);
+ }
+ c ^= 1;
+ for (size_t j = 0; j < DESCRIPTOR_CHECKSUM_LEN; j++) {
+ size_t pos = (c >> (5 * (7 - j))) & 31;
+ if (pos >= sizeof(CHECKSUM_CHARSET)) {
+ return false;
+ }
+ dest[j] = CHECKSUM_CHARSET[pos];
+ }
+ return true;
+}
+
+bool descriptor_format(InputScriptType script_type, uint32_t root_fingerprint,
+ const uint32_t address_n[], size_t address_n_count,
+ const char *xpub, char *dest, size_t dest_size) {
+ const char *type = NULL;
+ const char *terminator = "";
+ if (script_type == InputScriptType_SPENDADDRESS) {
+ type = "pkh";
+ } else if (script_type == InputScriptType_SPENDP2SHWITNESS) {
+ type = "sh(wpkh";
+ terminator = ")";
+ } else if (script_type == InputScriptType_SPENDWITNESS) {
+ type = "wpkh";
+ } else if (script_type == InputScriptType_SPENDTAPROOT) {
+ type = "tr";
+ } else {
+ return false;
+ }
+ // (see layout2.c) / i '
+ char path_str[8 * (1 + 10 + 1) + 1] = {0};
+ size_t off = 0;
+ for (size_t i = 0; i < address_n_count; i++) {
+ uint32_t unhardened = address_n[i] & PATH_UNHARDEN_MASK;
+ bool is_hardened = address_n[i] & PATH_HARDENED;
+ off += snprintf(&path_str[off], sizeof(path_str) - off, "/%" PRIu32 "%s",
+ unhardened, is_hardened ? "h" : "");
+ if (off + 1 >= sizeof(path_str)) {
+ return false;
+ }
+ }
+ int written = snprintf(dest, dest_size, "%s([%08" PRIx32 "%s]%s/<0;1>/*)%s#",
+ type, root_fingerprint, path_str, xpub, terminator);
+ if (written > 1 && written + DESCRIPTOR_CHECKSUM_LEN < dest_size) {
+ // checksum is not computed over the `#` separator
+ if (descriptor_checksum(dest, written - 1, &dest[written])) {
+ return true;
+ }
+ }
+ memzero(dest, dest_size);
+ return false;
+}
diff --git a/legacy/firmware/crypto.h b/legacy/firmware/crypto.h
index 02c8566e..816c423b 100644
--- a/legacy/firmware/crypto.h
+++ b/legacy/firmware/crypto.h
@@ -125,4 +125,8 @@ void slip21_derive_path(Slip21Node *inout, const uint8_t *label,
const uint8_t *slip21_key(const Slip21Node *node);
bool multisig_uses_single_path(const MultisigRedeemScriptType *multisig);
+bool descriptor_format(InputScriptType script_type, uint32_t root_fingerprint,
+ const uint32_t address_n[], size_t address_n_count,
+ const char *xpub, char *dest, size_t dest_size);
+
#endif
diff --git a/legacy/firmware/fsm_msg_coin.h b/legacy/firmware/fsm_msg_coin.h
index c741beeb..8a331950 100644
--- a/legacy/firmware/fsm_msg_coin.h
+++ b/legacy/firmware/fsm_msg_coin.h
@@ -126,12 +126,26 @@ void fsm_msgGetPublicKey(const GetPublicKey *msg) {
return;
}
+ if (coin->xpub_magic) {
+ char tmp_xpub[XPUB_MAXLEN] = {0};
+ hdnode_serialize_public(node, fingerprint, coin->xpub_magic, tmp_xpub,
+ sizeof(tmp_xpub));
+
+ resp->has_descriptor = descriptor_format(
+ script_type, root_fingerprint, msg->address_n, msg->address_n_count,
+ tmp_xpub, resp->descriptor, sizeof(resp->descriptor));
+ }
+
if (msg->has_show_display && msg->show_display) {
int page = 0;
bool qrcode = false;
while (page < 2) {
- layoutXPUB(resp->xpub, page, qrcode);
+ const char *show_xpub = resp->xpub;
+ if (script_type == InputScriptType_SPENDTAPROOT && resp->has_descriptor) {
+ show_xpub = resp->descriptor;
+ }
+ layoutXPUB(show_xpub, page, qrcode);
bool confirmed =
protectButton(ButtonRequestType_ButtonRequest_PublicKey, false);
diff --git a/legacy/firmware/protob/messages-bitcoin.options b/legacy/firmware/protob/messages-bitcoin.options
index 0a95c493..80228f0f 100644
--- a/legacy/firmware/protob/messages-bitcoin.options
+++ b/legacy/firmware/protob/messages-bitcoin.options
@@ -3,7 +3,7 @@ GetPublicKey.ecdsa_curve_name max_size:32
GetPublicKey.coin_name max_size:21
PublicKey.xpub max_size:113
-PublicKey.descriptor type:FT_IGNORE
+PublicKey.descriptor max_size:246
GetAddress.address_n max_count:8
GetAddress.coin_name max_size:21
diff --git a/tests/device_tests/bitcoin/test_descriptors.py b/tests/device_tests/bitcoin/test_descriptors.py
index 2da50b3e..912bd20d 100644
--- a/tests/device_tests/bitcoin/test_descriptors.py
+++ b/tests/device_tests/bitcoin/test_descriptors.py
@@ -161,7 +161,6 @@ def _address_n(purpose, coin, account, script_type):
return res
-@pytest.mark.models("core")
@pytest.mark.parametrize(
"coin, account, purpose, script_type, descriptors", VECTORS_DESCRIPTORS
)
@@ -169,8 +168,9 @@ def test_descriptors(
session: Session, coin, account, purpose, script_type, descriptors
):
with session.client as client:
- IF = InputFlowShowXpubQRCode(session.client)
- client.set_input_flow(IF.get())
+ if session.client.model != models.T1B1:
+ IF = InputFlowShowXpubQRCode(session.client)
+ client.set_input_flow(IF.get())
address_n = _address_n(purpose, coin, account, script_type)
res = btc.get_public_node(
@@ -199,3 +199,21 @@ def test_descriptors_trezorlib(
session, coin, account, purpose, script_type, show_display=True
)
assert res == descriptors
+
+
+def test_descriptors_unsupported(session: Session):
+ with session.client as client:
+ if session.client.model != models.T1B1:
+ IF = InputFlowShowXpubQRCode(session.client)
+ client.set_input_flow(IF.get())
+
+ address_n = [H_(45), H_(0)]
+ res = btc.get_public_node(
+ session,
+ address_n,
+ show_display=True,
+ coin_name="Bitcoin",
+ script_type=messages.InputScriptType.SPENDMULTISIG,
+ ignore_xpub_magic=True,
+ )
+ assert res.descriptor is None
diff --git a/tests/ui_tests/fixtures.json b/tests/ui_tests/fixtures.json
index 7bbae967..64c9103f 100644
--- a/tests/ui_tests/fixtures.json
+++ b/tests/ui_tests/fixtures.json
@@ -31,24 +31,43 @@
"T1B1_en_bitcoin-test_decred.py::test_decred_multisig_change": "8f95b7d2e65a76068196ab46c8189ba5a137795b43e88699d85ad7e2c164d645",
"T1B1_en_bitcoin-test_decred.py::test_send_decred": "50fa7dc09dbf22fc4c1e62ee2870e9047e29dd050edbdcf34341a5483d52cdac",
"T1B1_en_bitcoin-test_decred.py::test_send_decred_change": "b27eb08c244e00f9a2c5fecad0a8efc65fa2eba15f72ad0eb3b42a3ac16d465d",
-"T1B1_en_bitcoin-test_descriptors.py::test_descriptors_trezorlib[Bitcoin-0-10025-InputScriptType.SPE-6c24ae6f": "104401402fa93edc328c73d3c6ac3f185d55bc2515c4c6f74f518ecb2c247048",
+"T1B1_en_bitcoin-test_descriptors.py::test_descriptors[Bitcoin-0-10025-InputScriptType.SPENDTAPROOT--301d7568": "16e872ebbcb1ef53ebfa96f4d154bd9f17e4bf2b64936dd382a3b533cfcd570f",
+"T1B1_en_bitcoin-test_descriptors.py::test_descriptors[Bitcoin-0-44-InputScriptType.SPENDADDRESS-pkh-a1b0211f": "8ce74bf750fa077f3349cce10fabfe945bd3c44a957de62949ccb33b9f9dd0b8",
+"T1B1_en_bitcoin-test_descriptors.py::test_descriptors[Bitcoin-0-49-InputScriptType.SPENDP2SHWITNESS-75f8d49f": "35e777790592f18aa33e3ca9d7bc8de386f3e079966e914c836c88c30ff85fd6",
+"T1B1_en_bitcoin-test_descriptors.py::test_descriptors[Bitcoin-0-84-InputScriptType.SPENDWITNESS-wpk-cee65569": "7c9abf10389dba7937e29b9d494639589e0bff2698e54cef177e3b6da0c92e18",
+"T1B1_en_bitcoin-test_descriptors.py::test_descriptors[Bitcoin-0-86-InputScriptType.SPENDTAPROOT-tr(-6b548a1a": "7cb282d1ed26109c4f67eb2e765b4fdbe1f6c1c7460bf0d44788c1c33b61484e",
+"T1B1_en_bitcoin-test_descriptors.py::test_descriptors[Bitcoin-1-44-InputScriptType.SPENDADDRESS-pkh-37215d1b": "1fc0840d4f3da3dcd2d0267a5f8c1578fabc92af6f675ba7d90ae1d72191bb8d",
+"T1B1_en_bitcoin-test_descriptors.py::test_descriptors[Bitcoin-1-49-InputScriptType.SPENDP2SHWITNESS-3ccd985b": "54991fdd4d36a72f0948611b20f6e07b7cab07854a4ad538981ac54ebedc6961",
+"T1B1_en_bitcoin-test_descriptors.py::test_descriptors[Bitcoin-1-84-InputScriptType.SPENDWITNESS-wpk-21c3fa4c": "e532ad6eee6ed465436d2265de6216c9194ba04f03706df70b69524a78ec8d17",
+"T1B1_en_bitcoin-test_descriptors.py::test_descriptors[Bitcoin-1-86-InputScriptType.SPENDTAPROOT-tr(-3a85f3dd": "3843ce64e5e805b927bb22dc46379d79e28b53929a7e32daacf0b0ed7b17c6af",
+"T1B1_en_bitcoin-test_descriptors.py::test_descriptors[Testnet-0-10025-InputScriptType.SPENDTAPROOT--591134d6": "8fbfa69b229b8210572de455a8d3e99ecb5fdd9860ddda02d0dfaa8d493e3edc",
+"T1B1_en_bitcoin-test_descriptors.py::test_descriptors[Testnet-0-44-InputScriptType.SPENDADDRESS-pkh-b7612f41": "45323e5eaab0c214c44b4b6667dfeb6870a7c22da1e23e4bfcdf3945c11ae45a",
+"T1B1_en_bitcoin-test_descriptors.py::test_descriptors[Testnet-0-49-InputScriptType.SPENDP2SHWITNESS-4408e6b6": "9f147172e3cd4911bacf3c18754fb46f7c6dc7c46d080b9e9328fb48d276df30",
+"T1B1_en_bitcoin-test_descriptors.py::test_descriptors[Testnet-0-84-InputScriptType.SPENDWITNESS-wpk-49d5549d": "c10d0063e773ecee0ed5f844ac5b3000ccf762e8dc5ccaed188f0a84f9f788d3",
+"T1B1_en_bitcoin-test_descriptors.py::test_descriptors[Testnet-0-86-InputScriptType.SPENDTAPROOT-tr(-51c6f7dc": "cb08724ffbbfd4f08ca89fe03c23cd56df6ea9494ff16c1aebadff77adcf8032",
+"T1B1_en_bitcoin-test_descriptors.py::test_descriptors[Testnet-1-44-InputScriptType.SPENDADDRESS-pkh-671fabde": "7b204973f3ca702ad0f69799b795f601d1441a56be38bdf9166aada439227674",
+"T1B1_en_bitcoin-test_descriptors.py::test_descriptors[Testnet-1-49-InputScriptType.SPENDP2SHWITNESS-6a0c7b09": "cfe83fe0b30062606ccd54403c4dc9c256ebfb5ca60474c128f9d04380dac9f4",
+"T1B1_en_bitcoin-test_descriptors.py::test_descriptors[Testnet-1-84-InputScriptType.SPENDWITNESS-wpk-7c651f2d": "6e6dab3036adda56b78ceafe68239522c27f4ee3fec74f0113371c5cfa85ca93",
+"T1B1_en_bitcoin-test_descriptors.py::test_descriptors[Testnet-1-86-InputScriptType.SPENDTAPROOT-tr(-b37d77de": "5ef82b790c6823854c32a91023f5cf7ab367020de3de74e154a4b521ffb57e08",
+"T1B1_en_bitcoin-test_descriptors.py::test_descriptors_trezorlib[Bitcoin-0-10025-InputScriptType.SPE-6c24ae6f": "16e872ebbcb1ef53ebfa96f4d154bd9f17e4bf2b64936dd382a3b533cfcd570f",
"T1B1_en_bitcoin-test_descriptors.py::test_descriptors_trezorlib[Bitcoin-0-44-InputScriptType.SPENDA-fc66840d": "8ce74bf750fa077f3349cce10fabfe945bd3c44a957de62949ccb33b9f9dd0b8",
"T1B1_en_bitcoin-test_descriptors.py::test_descriptors_trezorlib[Bitcoin-0-49-InputScriptType.SPENDP-3f679311": "35e777790592f18aa33e3ca9d7bc8de386f3e079966e914c836c88c30ff85fd6",
"T1B1_en_bitcoin-test_descriptors.py::test_descriptors_trezorlib[Bitcoin-0-84-InputScriptType.SPENDW-dedbd46d": "7c9abf10389dba7937e29b9d494639589e0bff2698e54cef177e3b6da0c92e18",
-"T1B1_en_bitcoin-test_descriptors.py::test_descriptors_trezorlib[Bitcoin-0-86-InputScriptType.SPENDT-9b717395": "eda93660418b28f718f1370691abc58427f382d0cbb6fc1d51e2bda02ad4dba4",
+"T1B1_en_bitcoin-test_descriptors.py::test_descriptors_trezorlib[Bitcoin-0-86-InputScriptType.SPENDT-9b717395": "7cb282d1ed26109c4f67eb2e765b4fdbe1f6c1c7460bf0d44788c1c33b61484e",
"T1B1_en_bitcoin-test_descriptors.py::test_descriptors_trezorlib[Bitcoin-1-44-InputScriptType.SPENDA-908dd45b": "1fc0840d4f3da3dcd2d0267a5f8c1578fabc92af6f675ba7d90ae1d72191bb8d",
"T1B1_en_bitcoin-test_descriptors.py::test_descriptors_trezorlib[Bitcoin-1-49-InputScriptType.SPENDP-07c408b2": "54991fdd4d36a72f0948611b20f6e07b7cab07854a4ad538981ac54ebedc6961",
"T1B1_en_bitcoin-test_descriptors.py::test_descriptors_trezorlib[Bitcoin-1-84-InputScriptType.SPENDW-ae5dad46": "e532ad6eee6ed465436d2265de6216c9194ba04f03706df70b69524a78ec8d17",
-"T1B1_en_bitcoin-test_descriptors.py::test_descriptors_trezorlib[Bitcoin-1-86-InputScriptType.SPENDT-f5c0cb2f": "5548f9742257256c208b3901d9c76c25f8287a44b4083d267f0d7f75603f9120",
-"T1B1_en_bitcoin-test_descriptors.py::test_descriptors_trezorlib[Testnet-0-10025-InputScriptType.SPE-ad017c81": "60d72b0cf0980fe5d5779e561b4d32c18ec088206d9a9c3ec1e0b1d3954df53f",
+"T1B1_en_bitcoin-test_descriptors.py::test_descriptors_trezorlib[Bitcoin-1-86-InputScriptType.SPENDT-f5c0cb2f": "3843ce64e5e805b927bb22dc46379d79e28b53929a7e32daacf0b0ed7b17c6af",
+"T1B1_en_bitcoin-test_descriptors.py::test_descriptors_trezorlib[Testnet-0-10025-InputScriptType.SPE-ad017c81": "8fbfa69b229b8210572de455a8d3e99ecb5fdd9860ddda02d0dfaa8d493e3edc",
"T1B1_en_bitcoin-test_descriptors.py::test_descriptors_trezorlib[Testnet-0-44-InputScriptType.SPENDA-87568704": "45323e5eaab0c214c44b4b6667dfeb6870a7c22da1e23e4bfcdf3945c11ae45a",
"T1B1_en_bitcoin-test_descriptors.py::test_descriptors_trezorlib[Testnet-0-49-InputScriptType.SPENDP-08c818f5": "9f147172e3cd4911bacf3c18754fb46f7c6dc7c46d080b9e9328fb48d276df30",
"T1B1_en_bitcoin-test_descriptors.py::test_descriptors_trezorlib[Testnet-0-84-InputScriptType.SPENDW-3a2da005": "c10d0063e773ecee0ed5f844ac5b3000ccf762e8dc5ccaed188f0a84f9f788d3",
-"T1B1_en_bitcoin-test_descriptors.py::test_descriptors_trezorlib[Testnet-0-86-InputScriptType.SPENDT-0d2d3911": "7febe50f7f780da4275d4e3bcca421a91a93e327fcb9d108ca5404b1e4500deb",
+"T1B1_en_bitcoin-test_descriptors.py::test_descriptors_trezorlib[Testnet-0-86-InputScriptType.SPENDT-0d2d3911": "cb08724ffbbfd4f08ca89fe03c23cd56df6ea9494ff16c1aebadff77adcf8032",
"T1B1_en_bitcoin-test_descriptors.py::test_descriptors_trezorlib[Testnet-1-44-InputScriptType.SPENDA-06441aab": "7b204973f3ca702ad0f69799b795f601d1441a56be38bdf9166aada439227674",
"T1B1_en_bitcoin-test_descriptors.py::test_descriptors_trezorlib[Testnet-1-49-InputScriptType.SPENDP-2341fa5a": "cfe83fe0b30062606ccd54403c4dc9c256ebfb5ca60474c128f9d04380dac9f4",
"T1B1_en_bitcoin-test_descriptors.py::test_descriptors_trezorlib[Testnet-1-84-InputScriptType.SPENDW-59aa0a79": "6e6dab3036adda56b78ceafe68239522c27f4ee3fec74f0113371c5cfa85ca93",
-"T1B1_en_bitcoin-test_descriptors.py::test_descriptors_trezorlib[Testnet-1-86-InputScriptType.SPENDT-af95048b": "32fce016e30f21c81a33514e2895972ac58dceb5e61b55fa4990552910144408",
+"T1B1_en_bitcoin-test_descriptors.py::test_descriptors_trezorlib[Testnet-1-86-InputScriptType.SPENDT-af95048b": "5ef82b790c6823854c32a91023f5cf7ab367020de3de74e154a4b521ffb57e08",
+"T1B1_en_bitcoin-test_descriptors.py::test_descriptors_unsupported": "6f4d8e975ff174c9934606921683d11340c82c4d04030c3f53d8927d3a331b46",
"T1B1_en_bitcoin-test_firo.py::test_spend_lelantus": "cbb87e77f54c351584dd713a8eaabb99b65a515e57c30bfb9e7a38660ca6895b",
"T1B1_en_bitcoin-test_fujicoin.py::test_send_p2tr": "bfa5dc1a494ea17fd43d52a315a7f1abe9ad80d7fdaa8b3ec5f92c4118638d1e",
"T1B1_en_bitcoin-test_getaddress.py::test_bch": "e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855",
@@ -1172,6 +1191,7 @@
"T2T1_cs_bitcoin-test_descriptors.py::test_descriptors_trezorlib[Testnet-1-49-InputScriptType.SPENDP-2341fa5a": "0399cfe170772fa36ca76dc1fd13551388dbca982e2bdad94116f5af8e6f8310",
"T2T1_cs_bitcoin-test_descriptors.py::test_descriptors_trezorlib[Testnet-1-84-InputScriptType.SPENDW-59aa0a79": "7d50d07d97bcfad0f802b4888d466e524b30f473fc6e52912c838a6501f4dafc",
"T2T1_cs_bitcoin-test_descriptors.py::test_descriptors_trezorlib[Testnet-1-86-InputScriptType.SPENDT-af95048b": "143244b0746312b9f0c082df756d7432dc38aa2d16ce0ce987f7b7a19c95fb3e",
+"T2T1_cs_bitcoin-test_descriptors.py::test_descriptors_unsupported": "c5a9d70b025a2dd6150a32d004526a61d9ccc67343e636680ecb5a0c6d29553d",
"T2T1_cs_bitcoin-test_firo.py::test_spend_lelantus": "f0484f86922b4cbc72af259ece38149d3d8be3bd4779543ab666393a7e8bca83",
"T2T1_cs_bitcoin-test_fujicoin.py::test_send_p2tr": "e61e28ce4eee243b897af40b8d2b58f2712f4ed4262e6d8d7998bab377fed6e7",
"T2T1_cs_bitcoin-test_getaddress.py::test_address_mac": "32d380b2c0942f8a2ab6a32e0e4c8a2ad2ab6750ee39c6fa4d4f0bacf59a4b7c",
@@ -2741,6 +2761,7 @@
"T2T1_de_bitcoin-test_descriptors.py::test_descriptors_trezorlib[Testnet-1-49-InputScriptType.SPENDP-2341fa5a": "d6623a80459152ecec8368605148fbdcec8e0dd74fb6814adc07149b24181c55",
"T2T1_de_bitcoin-test_descriptors.py::test_descriptors_trezorlib[Testnet-1-84-InputScriptType.SPENDW-59aa0a79": "62196b9f736c63ac041e76e7071d84ae0784402e2252a141602910452c7c2e2e",
"T2T1_de_bitcoin-test_descriptors.py::test_descriptors_trezorlib[Testnet-1-86-InputScriptType.SPENDT-af95048b": "13a7c8e8a8b4b7c5e479aadfab9870b02be34d946af9378758b536e6aaa65312",
+"T2T1_de_bitcoin-test_descriptors.py::test_descriptors_unsupported": "bef9a948f36c0c2879585e45d8b53c8c22b803fc1741fdac2238755a049973c8",
"T2T1_de_bitcoin-test_firo.py::test_spend_lelantus": "45fa4667f9c8118bd4839dabbb80cfc946020e104ccb51ddf131b3e5c9cf86da",
"T2T1_de_bitcoin-test_fujicoin.py::test_send_p2tr": "f8bae5eb466f380190d55eee72522386d48f78f9cf50e6c2a3d1fd65b1820aa8",
"T2T1_de_bitcoin-test_getaddress.py::test_address_mac": "a3edf3ced8fa1fa6b9f67f869a28bc880ce5e214b0adfaf839cd867875845912",
@@ -4310,6 +4331,7 @@
"T2T1_en_bitcoin-test_descriptors.py::test_descriptors_trezorlib[Testnet-1-49-InputScriptType.SPENDP-2341fa5a": "accd33c3a2120c8a157381db64a6b86b371ac2dae90157014407740496a72124",
"T2T1_en_bitcoin-test_descriptors.py::test_descriptors_trezorlib[Testnet-1-84-InputScriptType.SPENDW-59aa0a79": "94fb60f33655c67015a9838ab38decc7a1bc92454ec9e67a0cea63e144434383",
"T2T1_en_bitcoin-test_descriptors.py::test_descriptors_trezorlib[Testnet-1-86-InputScriptType.SPENDT-af95048b": "cbccc3636bde2b8c67eea42d14922c66ff6b72f5129ad0ac30d0ac773f664850",
+"T2T1_en_bitcoin-test_descriptors.py::test_descriptors_unsupported": "be0b3f0e2e0a26a74ab112ec41921bd1636578ec4b266f6ac5c1d98aa8d002f7",
"T2T1_en_bitcoin-test_firo.py::test_spend_lelantus": "542f2cab190fdd568a6a8e7834c3a5ef5264c3d113870c4b6860f49c1f4ca55f",
"T2T1_en_bitcoin-test_fujicoin.py::test_send_p2tr": "26fe3ca92c3b806a213d208736c7a94dc88abc83e1d49e334a26dd47f0646eb2",
"T2T1_en_bitcoin-test_getaddress.py::test_address_mac": "8b1ccc0dbd6e6e3d02a896650ab90dd332ba4edbbcc4095e0fbb6a96e5256f75",
@@ -5897,6 +5919,7 @@
"T2T1_es_bitcoin-test_descriptors.py::test_descriptors_trezorlib[Testnet-1-49-InputScriptType.SPENDP-2341fa5a": "4ebba15a1dfeb526b454f8d81a0efbadf33adcf4cde84c8d6ad30ae27d846eac",
"T2T1_es_bitcoin-test_descriptors.py::test_descriptors_trezorlib[Testnet-1-84-InputScriptType.SPENDW-59aa0a79": "93dd82f04ee6b6a3198d40498eb03dcd61ab22977ba183ecd8df33c5925879a5",
"T2T1_es_bitcoin-test_descriptors.py::test_descriptors_trezorlib[Testnet-1-86-InputScriptType.SPENDT-af95048b": "1f840ce543a9012fee30ba952af054ee9a91522adc0b941a25a7f28d71185a21",
+"T2T1_es_bitcoin-test_descriptors.py::test_descriptors_unsupported": "ec6150bdf88c54acfb984aecd0b12d7ec2bdba03036c92e4a66d38dc909a11b5",
"T2T1_es_bitcoin-test_firo.py::test_spend_lelantus": "d1f56b5df559122b825dc7c0103b3ed49668daa6e25c365ae1cd739ec9ea56ed",
"T2T1_es_bitcoin-test_fujicoin.py::test_send_p2tr": "1aab5ea1eda269fde3882fee7ecd3729f453a1d8c3c2a41a44a3757ac4973183",
"T2T1_es_bitcoin-test_getaddress.py::test_address_mac": "1775658fa541fff7933453c1d346449c492079a39341e07135ac9e7662b3bbd3",
@@ -7466,6 +7489,7 @@
"T2T1_fr_bitcoin-test_descriptors.py::test_descriptors_trezorlib[Testnet-1-49-InputScriptType.SPENDP-2341fa5a": "8804686c87edd3cfd3395fa658c2c47f4217fce64a67257867b7ebc30d72bd16",
"T2T1_fr_bitcoin-test_descriptors.py::test_descriptors_trezorlib[Testnet-1-84-InputScriptType.SPENDW-59aa0a79": "208297cd8c9e724e7fa05ab8097f82fa2c3555db6fef36cedb5e80b92a19ae12",
"T2T1_fr_bitcoin-test_descriptors.py::test_descriptors_trezorlib[Testnet-1-86-InputScriptType.SPENDT-af95048b": "e7eac43e4f8a5201b96002ab92f5dbdaa3f99908dabe7cb73e1e8697e3bd8281",
+"T2T1_fr_bitcoin-test_descriptors.py::test_descriptors_unsupported": "dab754b336dfcb4d0c318655b86395b18963c7367c27b298fb1f72c8ecd1f427",
"T2T1_fr_bitcoin-test_firo.py::test_spend_lelantus": "7d5fd0516c206a1392f7a9086add4a30aff35d1a7760dc387dc7ec4c087fc5ff",
"T2T1_fr_bitcoin-test_fujicoin.py::test_send_p2tr": "aad81f232fde9c743a56d1bd1add97254d5207242cff175011d08ec390c19353",
"T2T1_fr_bitcoin-test_getaddress.py::test_address_mac": "94d3ba1cba15b836e6ebc48ab307aeea71275ef2d9849aaabc8e883df555ce3f",
@@ -9035,6 +9059,7 @@
"T2T1_pt_bitcoin-test_descriptors.py::test_descriptors_trezorlib[Testnet-1-49-InputScriptType.SPENDP-2341fa5a": "651687c09cdd08efd30452eaf7e7167dc86051576a748b6d5c034e6facb2390a",
"T2T1_pt_bitcoin-test_descriptors.py::test_descriptors_trezorlib[Testnet-1-84-InputScriptType.SPENDW-59aa0a79": "4a0dae801cad85a3c7e595cbcbd5ff067c559fd0c48d57e08d41e87db17e5272",
"T2T1_pt_bitcoin-test_descriptors.py::test_descriptors_trezorlib[Testnet-1-86-InputScriptType.SPENDT-af95048b": "8a862c8f7eb90468c25bc67d8b54c04356054f49f9718338036be47847ea179f",
+"T2T1_pt_bitcoin-test_descriptors.py::test_descriptors_unsupported": "167a55c10fed7b23caee147febb87231cd212ce06a69e8abe150b028f9c43604",
"T2T1_pt_bitcoin-test_firo.py::test_spend_lelantus": "0919e9c0bd4e53e2c973f05bfd8199082b41a2d22076445f19a474446d4e4130",
"T2T1_pt_bitcoin-test_fujicoin.py::test_send_p2tr": "2a362ef90d2af2b26d005ec995af1a719b6bdfdab327ebc363915ca2cf00544c",
"T2T1_pt_bitcoin-test_getaddress.py::test_address_mac": "e9e80e1bfd347b598699a7a84deb8932eff90fc5fb8b56771453e06fe3c4c216",
@@ -10888,6 +10913,7 @@
"T3B1_cs_bitcoin-test_descriptors.py::test_descriptors_trezorlib[Testnet-1-49-InputScriptType.SPENDP-2341fa5a": "af6df3e14e33271100c4e89787ca074db0e9c69ac32ef09e0b238a50c1df573d",
"T3B1_cs_bitcoin-test_descriptors.py::test_descriptors_trezorlib[Testnet-1-84-InputScriptType.SPENDW-59aa0a79": "28aad4242eeaaa5553a0b8cc26543899c9d464bb9b290fe3e47c3b1d3b5ec7fa",
"T3B1_cs_bitcoin-test_descriptors.py::test_descriptors_trezorlib[Testnet-1-86-InputScriptType.SPENDT-af95048b": "8b171579c3ef2dbe750d9f586b28b5340adbd72ed963d84bbbb017c383b89c5f",
+"T3B1_cs_bitcoin-test_descriptors.py::test_descriptors_unsupported": "ec91e827d40e09a7e4ec7b00dde33650036e3b27d7a64e0a6b61b187582c382b",
"T3B1_cs_bitcoin-test_firo.py::test_spend_lelantus": "e21767ecc6d8b5a4b96f46c291825c8a069a16b807b44e97f26b019441161a79",
"T3B1_cs_bitcoin-test_fujicoin.py::test_send_p2tr": "8ee22167bc400ba6043a919d35349323bce65554bbbf2ca3784eaf0f1fe03ff7",
"T3B1_cs_bitcoin-test_getaddress.py::test_address_mac": "92840d4624bb07440bb1ab5cb4b57251c9950388accbc8334a9a7d609ededb01",
@@ -12380,6 +12406,7 @@
"T3B1_de_bitcoin-test_descriptors.py::test_descriptors_trezorlib[Testnet-1-49-InputScriptType.SPENDP-2341fa5a": "89776f2e576e052c0ffd64de7bf42ba35e0553629088bc84ea3c4afda73d12be",
"T3B1_de_bitcoin-test_descriptors.py::test_descriptors_trezorlib[Testnet-1-84-InputScriptType.SPENDW-59aa0a79": "1f9e9a244fcc94aed40bbe822c45a720715093f8fc959848643b95ae45301f0f",
"T3B1_de_bitcoin-test_descriptors.py::test_descriptors_trezorlib[Testnet-1-86-InputScriptType.SPENDT-af95048b": "71e066cd9ee288d77b930897c33299e31943b954adaf9bb8ef618d0158c2fe9c",
+"T3B1_de_bitcoin-test_descriptors.py::test_descriptors_unsupported": "5c2ecea94a19668d5c8cd65222e52a55ff1c004d06565244dc39d660f81f8b23",
"T3B1_de_bitcoin-test_firo.py::test_spend_lelantus": "d32fbb7396eddf08d1e8f92373a8e995eda64d503a9a668ad3fc60f6b6a855a7",
"T3B1_de_bitcoin-test_fujicoin.py::test_send_p2tr": "974c5dc853b83aad3781af671b6b0b4a97eeaf1225b94611c993d28a5ce24033",
"T3B1_de_bitcoin-test_getaddress.py::test_address_mac": "c92ee4e050daadcfc7cc95657b00deed76bb463d486eefcc66455bdbe60faa33",
@@ -13872,6 +13899,7 @@
"T3B1_en_bitcoin-test_descriptors.py::test_descriptors_trezorlib[Testnet-1-49-InputScriptType.SPENDP-2341fa5a": "64f19f4b13c4bf8873a817ee3ff4f4ca22c063eaaa7d998b1c02630b15ba79d0",
"T3B1_en_bitcoin-test_descriptors.py::test_descriptors_trezorlib[Testnet-1-84-InputScriptType.SPENDW-59aa0a79": "d8b552d16fa9d25a96636d49315d4eae944311b3da72d43143405f1698dfbc74",
"T3B1_en_bitcoin-test_descriptors.py::test_descriptors_trezorlib[Testnet-1-86-InputScriptType.SPENDT-af95048b": "0957cbc4b30ad66dc9a3e8e71c2f51a3a4e99ff84bffc30fcc91b60ab3bcd6b0",
+"T3B1_en_bitcoin-test_descriptors.py::test_descriptors_unsupported": "419c789b2484206e4560ce6f95afd5f7427ddcabe0f4aeb64543621e01ec063c",
"T3B1_en_bitcoin-test_firo.py::test_spend_lelantus": "e7ed03ddbdd51976f826187855b756aa26cd1e517f5ebe597be2aa27a22fc94f",
"T3B1_en_bitcoin-test_fujicoin.py::test_send_p2tr": "1295e9a12ad593d4f729ada17022983a5ad334b533aedc74aaa4734c31470b20",
"T3B1_en_bitcoin-test_getaddress.py::test_address_mac": "1477d62e338f4d7c1bfac2fc5d2fc231218da5768666c11482dc1f83229506f3",
@@ -15364,6 +15392,7 @@
"T3B1_es_bitcoin-test_descriptors.py::test_descriptors_trezorlib[Testnet-1-49-InputScriptType.SPENDP-2341fa5a": "c649438ca03bbf06745f79b804df379a3b11ed4b4cf4633d34608a9130033d27",
"T3B1_es_bitcoin-test_descriptors.py::test_descriptors_trezorlib[Testnet-1-84-InputScriptType.SPENDW-59aa0a79": "9557f9d455849cc758a22a559f8cc162c551a3df4760f8c8f91905b8d5b39911",
"T3B1_es_bitcoin-test_descriptors.py::test_descriptors_trezorlib[Testnet-1-86-InputScriptType.SPENDT-af95048b": "d8f181bee037b5a6dd76188f4ea7924701b88e720147407dd0e25c2616e057fe",
+"T3B1_es_bitcoin-test_descriptors.py::test_descriptors_unsupported": "3a88fdffa9a26c4c04c468b20b869df53e6415b10a1e88cf22e948c40bf4e4a0",
"T3B1_es_bitcoin-test_firo.py::test_spend_lelantus": "f1add9b875b1244300bb84609edc468fa674793867312d32ab306af577686f91",
"T3B1_es_bitcoin-test_fujicoin.py::test_send_p2tr": "8917f75318e1d73b9f0e2943f707cc41e0adc58b0d05c8b68527b7e2985189a9",
"T3B1_es_bitcoin-test_getaddress.py::test_address_mac": "211e7c3419bd48ceefc570971fc522f809b39614563be948fd1e545366506dee",
@@ -16856,6 +16885,7 @@
"T3B1_fr_bitcoin-test_descriptors.py::test_descriptors_trezorlib[Testnet-1-49-InputScriptType.SPENDP-2341fa5a": "9551f617fda273df7fe738d05e2919e486117f353ad69aa897a8632a8d35f5a1",
"T3B1_fr_bitcoin-test_descriptors.py::test_descriptors_trezorlib[Testnet-1-84-InputScriptType.SPENDW-59aa0a79": "f59e07e2196f480afed4c62b02fa567fea35d196653e65bacc2812218a298327",
"T3B1_fr_bitcoin-test_descriptors.py::test_descriptors_trezorlib[Testnet-1-86-InputScriptType.SPENDT-af95048b": "22edbd3d36b0426581db7aef337cc90122f656537d0f35bec779dbcc3b53300b",
+"T3B1_fr_bitcoin-test_descriptors.py::test_descriptors_unsupported": "bd8cb26f5248651be9227aa9888cf08fafcd7d25de3be5afc82b52ff86eb5716",
"T3B1_fr_bitcoin-test_firo.py::test_spend_lelantus": "ccfc8daf5b2e178702aedea33079c02e55003cdb667fb97809d273622af023a8",
"T3B1_fr_bitcoin-test_fujicoin.py::test_send_p2tr": "c6d272b06fb12c41a952da02e14fc8d662dca16ae3906a01236c01e82fdd6901",
"T3B1_fr_bitcoin-test_getaddress.py::test_address_mac": "35c9c9529c59ca5c386ac05856f7452f26cde732203b5b61ec9321230b52df89",
@@ -18348,6 +18378,7 @@
"T3B1_pt_bitcoin-test_descriptors.py::test_descriptors_trezorlib[Testnet-1-49-InputScriptType.SPENDP-2341fa5a": "836fc91451ec956b9ff434ea424258a43f9e1840ea719b2d66463fd7c5179147",
"T3B1_pt_bitcoin-test_descriptors.py::test_descriptors_trezorlib[Testnet-1-84-InputScriptType.SPENDW-59aa0a79": "509997353863c8ad833761795a279cfdd4ecfd07684a9fd3e20c6742b6867546",
"T3B1_pt_bitcoin-test_descriptors.py::test_descriptors_trezorlib[Testnet-1-86-InputScriptType.SPENDT-af95048b": "097225a375b4438a9afbc9217b9a5b395903771d9520b3e93f6f7aecbc8a6ad8",
+"T3B1_pt_bitcoin-test_descriptors.py::test_descriptors_unsupported": "ec932753a11fcf3e27e2ed0d181761b7dbaee17d38ce4d2ba72631de59b378cd",
"T3B1_pt_bitcoin-test_firo.py::test_spend_lelantus": "b09e93b4095c105e526991dc7e9ac313bcb5878829c20a93c56db8d6ff2acca4",
"T3B1_pt_bitcoin-test_fujicoin.py::test_send_p2tr": "eaf2ad9c64c59e2cc7f2ff1da10ff8fb8cb4d34a62810d5944cc100dabf0c586",
"T3B1_pt_bitcoin-test_getaddress.py::test_address_mac": "6ba5ca7223cd8ad675e081407f186acdfc8420304eea96de0fde5eda45ef0a57",
@@ -20210,6 +20241,7 @@
"T3T1_cs_bitcoin-test_descriptors.py::test_descriptors_trezorlib[Testnet-1-49-InputScriptType.SPENDP-2341fa5a": "3301307684571e8ac51630f4da4515771cf55a863932b9857498e2b78e9d25ca",
"T3T1_cs_bitcoin-test_descriptors.py::test_descriptors_trezorlib[Testnet-1-84-InputScriptType.SPENDW-59aa0a79": "9c35233810204972db7b3f0c54788f8ead1aef95ff92123e19eb934cff51da1e",
"T3T1_cs_bitcoin-test_descriptors.py::test_descriptors_trezorlib[Testnet-1-86-InputScriptType.SPENDT-af95048b": "7319098a0b5c43fe02d51bd77c078eb5708729f743555670cdbb959ab737083e",
+"T3T1_cs_bitcoin-test_descriptors.py::test_descriptors_unsupported": "e11f6068d90d47c953872af95f266c30e34b39b5ca9e79819becba0076b999b8",
"T3T1_cs_bitcoin-test_firo.py::test_spend_lelantus": "d1ec9a6e2f71f9cfdbcdd573cdbacfd34402079b69bf2e3cadac285c094be0f7",
"T3T1_cs_bitcoin-test_fujicoin.py::test_send_p2tr": "28d7fc5ca125d0c4bc0a47d3aa19ca55a2c465d40d518374c7061427a33517f2",
"T3T1_cs_bitcoin-test_getaddress.py::test_address_mac": "592adf9c06f8f39132298b46037dd524fac99e58237a0c023197bf47df67d632",
@@ -21733,6 +21765,7 @@
"T3T1_de_bitcoin-test_descriptors.py::test_descriptors_trezorlib[Testnet-1-49-InputScriptType.SPENDP-2341fa5a": "8ebf09b552ebcac68ac9b5097fb0d77d11ceddad4465fbaa260daaa157549bbe",
"T3T1_de_bitcoin-test_descriptors.py::test_descriptors_trezorlib[Testnet-1-84-InputScriptType.SPENDW-59aa0a79": "7a9989037197e6c5f9ba16a4943118c28c671910611546af15271c77df76b66e",
"T3T1_de_bitcoin-test_descriptors.py::test_descriptors_trezorlib[Testnet-1-86-InputScriptType.SPENDT-af95048b": "0ce33011c163dcb4ac7d756b397ff1ab4d0da016d79dacf5ff427f40d1f3f3e9",
+"T3T1_de_bitcoin-test_descriptors.py::test_descriptors_unsupported": "cf6206b7dd675be09488eb3ab507313314666ebe5a0818f8f851224964965e4e",
"T3T1_de_bitcoin-test_firo.py::test_spend_lelantus": "d260281e9fb9f21462e3f505dd9297bcf18b601ba10021d9d60578a7311e613b",
"T3T1_de_bitcoin-test_fujicoin.py::test_send_p2tr": "e967de22df3cfb928f8c8c69f4d787e5c59e5e49f392a507a07eee994fdd8e1f",
"T3T1_de_bitcoin-test_getaddress.py::test_address_mac": "f2fcbbd7ad83aff9adc0ee97fe98e7272d8bcfcc4a023798e2ab1c9895fda70f",
@@ -23256,6 +23289,7 @@
"T3T1_en_bitcoin-test_descriptors.py::test_descriptors_trezorlib[Testnet-1-49-InputScriptType.SPENDP-2341fa5a": "2c74f0e8c2ab1979ff8c2a837c76489dc2333dfd6cb479b691965c1619c59dbe",
"T3T1_en_bitcoin-test_descriptors.py::test_descriptors_trezorlib[Testnet-1-84-InputScriptType.SPENDW-59aa0a79": "29b629fe406090b1d57b772ab9c2b0a0376f6507404b580659b13131fdb76e78",
"T3T1_en_bitcoin-test_descriptors.py::test_descriptors_trezorlib[Testnet-1-86-InputScriptType.SPENDT-af95048b": "b0ec36df84a7677bb1c4c8cf1b2d8d1a6f4a00ea5078b483f7e3cd3d39c4893f",
+"T3T1_en_bitcoin-test_descriptors.py::test_descriptors_unsupported": "af858e07b06152de8a560e69814d62b4bdcbe309c34470b6c55bc654c54e0f04",
"T3T1_en_bitcoin-test_firo.py::test_spend_lelantus": "5ef7266ddb76b7de33cd535f37f5a3d943f752fdc05dae02f7523276d5c6d469",
"T3T1_en_bitcoin-test_fujicoin.py::test_send_p2tr": "736f08577319d5410d6cabc860b0976b25063dfcaa39a35bc60f52438a47757b",
"T3T1_en_bitcoin-test_getaddress.py::test_address_mac": "cb8641952bec9e793e7d19f281a85a0ca1be2c3397ca5c0cf4ee7ad905429984",
@@ -24779,6 +24813,7 @@
"T3T1_es_bitcoin-test_descriptors.py::test_descriptors_trezorlib[Testnet-1-49-InputScriptType.SPENDP-2341fa5a": "6defe7420fa0a9658f2f8bf09c9d8e9bba99ff249f5efd617d807e08e9d711d4",
"T3T1_es_bitcoin-test_descriptors.py::test_descriptors_trezorlib[Testnet-1-84-InputScriptType.SPENDW-59aa0a79": "2a5e99f353e0ed1cc668444b46c75ead8393e0722b300d23bbbf82769c3cf179",
"T3T1_es_bitcoin-test_descriptors.py::test_descriptors_trezorlib[Testnet-1-86-InputScriptType.SPENDT-af95048b": "7daab68ea803dfab629e31b27fc4bf38a58efe65ab8d5125d68f18d700b26a62",
+"T3T1_es_bitcoin-test_descriptors.py::test_descriptors_unsupported": "2a8412322fdbe59534b6d31a373c03234be4a82b300af7ae2ff8cfe95e1b3171",
"T3T1_es_bitcoin-test_firo.py::test_spend_lelantus": "f097fef7f6ca3989106aa02e2a754cba839c372ca1c75ea10440ad09e4d18a64",
"T3T1_es_bitcoin-test_fujicoin.py::test_send_p2tr": "b8a4cccbffab83155485f9190936c4a33c02bb94e4cdd20f2b36edb89253708d",
"T3T1_es_bitcoin-test_getaddress.py::test_address_mac": "c568b82943d9f63ad6b29b7dee6f5ed9dca78fc9610d4fa7f12bb8a061a6882a",
@@ -26302,6 +26337,7 @@
"T3T1_fr_bitcoin-test_descriptors.py::test_descriptors_trezorlib[Testnet-1-49-InputScriptType.SPENDP-2341fa5a": "f977f9e06d8aa6d47602469acfc5171b9eb9912e3188e075a02c066a59865e2a",
"T3T1_fr_bitcoin-test_descriptors.py::test_descriptors_trezorlib[Testnet-1-84-InputScriptType.SPENDW-59aa0a79": "c1da468e4f3a1cefdf97be97368fb567954bc4741d6b92fdcb70f7e3b957d9bf",
"T3T1_fr_bitcoin-test_descriptors.py::test_descriptors_trezorlib[Testnet-1-86-InputScriptType.SPENDT-af95048b": "8154c57a69923e2d38cff3e63afb188bc5e10462cfc455c69fdfe56312d81895",
+"T3T1_fr_bitcoin-test_descriptors.py::test_descriptors_unsupported": "c51564cc853cc9675a77b64331da2ee8b9d1adf9a42810ba52321bbb402d620c",
"T3T1_fr_bitcoin-test_firo.py::test_spend_lelantus": "949fc662439e5aeaa8cc069a96fdbf706165fb4c25d05c78596d1d12c836b2fe",
"T3T1_fr_bitcoin-test_fujicoin.py::test_send_p2tr": "e03463e4c1a01f32e7f4ba15121d9e78c8158056132b593a854f3f0342b62655",
"T3T1_fr_bitcoin-test_getaddress.py::test_address_mac": "fdf4909aff89183fa79899fde974115e687a71e0cf09dea210e8aa60ba54c906",
@@ -27825,6 +27861,7 @@
"T3T1_pt_bitcoin-test_descriptors.py::test_descriptors_trezorlib[Testnet-1-49-InputScriptType.SPENDP-2341fa5a": "bcdad05263b4b4d85b016289b2c98d78ad30e22ce51ea6ed45a3858acaf2d264",
"T3T1_pt_bitcoin-test_descriptors.py::test_descriptors_trezorlib[Testnet-1-84-InputScriptType.SPENDW-59aa0a79": "0f1b168d49854dcf57b4e0f756fb68ea068e076ecb219432069b521d391ead1c",
"T3T1_pt_bitcoin-test_descriptors.py::test_descriptors_trezorlib[Testnet-1-86-InputScriptType.SPENDT-af95048b": "2c85585b8ac64a9ab8bd252b7f01d0efe934fbebd8e3d3869290aee4b68c8bdf",
+"T3T1_pt_bitcoin-test_descriptors.py::test_descriptors_unsupported": "fef5b775c1a998978b45d32d839fb3375170141cb86e5b95d350673ee4372f02",
"T3T1_pt_bitcoin-test_firo.py::test_spend_lelantus": "14e0d71b50468c058ec1d00b38f4c2d0d143e30518d063e0927736b3a0a17981",
"T3T1_pt_bitcoin-test_fujicoin.py::test_send_p2tr": "57dbedcdcc24c51e8606bc26249ae63886a8e989e05a0c1a76ef1e71b45f56ab",
"T3T1_pt_bitcoin-test_getaddress.py::test_address_mac": "c15216b8aa033bd81f0a8fb6415c6728320b0c30fe3150eeb8a1749ae0a1a83c",
@@ -29988,6 +30025,7 @@
"T3W1_cs_bitcoin-test_descriptors.py::test_descriptors_trezorlib[Testnet-1-49-InputScriptType.SPENDP-2341fa5a": "84b48aa24e56c8fa7389a4d32459ace9d89532ae6a70952f4be1dfa6a84fb754",
"T3W1_cs_bitcoin-test_descriptors.py::test_descriptors_trezorlib[Testnet-1-84-InputScriptType.SPENDW-59aa0a79": "8fb1c57f85c1c7b4999df64afa11372509d85b491a1e6b7303c87a810b9ea851",
"T3W1_cs_bitcoin-test_descriptors.py::test_descriptors_trezorlib[Testnet-1-86-InputScriptType.SPENDT-af95048b": "4c3136d15ad66f757f097bf6ec57bb5f64a6a7ee819448a93242a3f1940ab9a5",
+"T3W1_cs_bitcoin-test_descriptors.py::test_descriptors_unsupported": "b1158639f37860c944ad9ba8596c4426cc7aa7b5bb3486e8ccc434345b3ce166",
"T3W1_cs_bitcoin-test_firo.py::test_spend_lelantus": "42243e0ca6be99b2dba82fcd571381915266cbb428a12e567de473181d57bc2a",
"T3W1_cs_bitcoin-test_fujicoin.py::test_send_p2tr": "83e40e92aff89ebe1ba7cf997319655d8e2de29b582809b35ed6fa21113275bd",
"T3W1_cs_bitcoin-test_getaddress.py::test_address_mac": "c24521e569c08e3605b164212c876f8ac57c5eef6cca6f2ca53a635a883ebc4b",
@@ -31517,6 +31555,7 @@
"T3W1_de_bitcoin-test_descriptors.py::test_descriptors_trezorlib[Testnet-1-49-InputScriptType.SPENDP-2341fa5a": "05156cf02920ee9ffaa0257d5c308a443704d7d1e9bc6724fb1456bee4c69492",
"T3W1_de_bitcoin-test_descriptors.py::test_descriptors_trezorlib[Testnet-1-84-InputScriptType.SPENDW-59aa0a79": "cd5d4a984aa495a4dd90b7cc6edb910e8ce0f17184ec6e7c923d30d181915631",
"T3W1_de_bitcoin-test_descriptors.py::test_descriptors_trezorlib[Testnet-1-86-InputScriptType.SPENDT-af95048b": "368e9bea4b61ee5085408aa732c20a22781db4b4b3210e31e699c5b3fe4504e8",
+"T3W1_de_bitcoin-test_descriptors.py::test_descriptors_unsupported": "662a3a77de8d78833b7a3bf4fcef7e7671d5b7105049e5c2769afeddb010bc54",
"T3W1_de_bitcoin-test_firo.py::test_spend_lelantus": "64df3206479ddff2142d08a9ead9713d0d8bd89fc4c6bc3eeb4454016b3e6db5",
"T3W1_de_bitcoin-test_fujicoin.py::test_send_p2tr": "fb0227bc796f89c834b60a2e9260f300b174e31248af378f694865246a5a1365",
"T3W1_de_bitcoin-test_getaddress.py::test_address_mac": "b3ce10e1620297758d6f2b235127f1dd0d61804c8cc32bc6664db5c3a9d81dde",
@@ -33046,6 +33085,7 @@
"T3W1_en_bitcoin-test_descriptors.py::test_descriptors_trezorlib[Testnet-1-49-InputScriptType.SPENDP-2341fa5a": "1c42b3cfc0be9efc98e00143031ea35c58b45a7be21ae7b5c66c030ec47a7203",
"T3W1_en_bitcoin-test_descriptors.py::test_descriptors_trezorlib[Testnet-1-84-InputScriptType.SPENDW-59aa0a79": "3e376eca2ba6b4009792f121d00bfc563a82e81fe9bcef3c42db4c519d41cb36",
"T3W1_en_bitcoin-test_descriptors.py::test_descriptors_trezorlib[Testnet-1-86-InputScriptType.SPENDT-af95048b": "a49c2ef5f589fa28c32252daa8039e0750b76ceed85e6ec74e923d4ef5e588a3",
+"T3W1_en_bitcoin-test_descriptors.py::test_descriptors_unsupported": "27456cb13705dd8a6ebc3ff56661032ce304b56a268131c474aa34ecfb343e00",
"T3W1_en_bitcoin-test_firo.py::test_spend_lelantus": "b601f2b34a3eb8343acaf88a23f5adb241463ddfe2ccbeee3dea762ed6efe678",
"T3W1_en_bitcoin-test_fujicoin.py::test_send_p2tr": "183601d7728d2463247ed0a87e8ae52605265ad075e45ec9a2fe21ab457e6092",
"T3W1_en_bitcoin-test_getaddress.py::test_address_mac": "931d9afceb0ba1e4faae891775819277242d889644d5c0c5863fc8c9fcf859b1",
@@ -34575,6 +34615,7 @@
"T3W1_es_bitcoin-test_descriptors.py::test_descriptors_trezorlib[Testnet-1-49-InputScriptType.SPENDP-2341fa5a": "6638b0bd806a00f992ab2c46f2f28c8923c9819a4da112394bfbbb9cbbc54fbc",
"T3W1_es_bitcoin-test_descriptors.py::test_descriptors_trezorlib[Testnet-1-84-InputScriptType.SPENDW-59aa0a79": "b4701e157098ca8542611714c82ffdff925f9f1d419b7f20c717eb43b09141ac",
"T3W1_es_bitcoin-test_descriptors.py::test_descriptors_trezorlib[Testnet-1-86-InputScriptType.SPENDT-af95048b": "b756e5172e63204880a6a71207a28fbd9cd0091e4451ad37118cf04bf16dad9e",
+"T3W1_es_bitcoin-test_descriptors.py::test_descriptors_unsupported": "6c1c05ab5faffe45fc309988da6b6191d710c1ff46ff780c9ba0437f6a836f99",
"T3W1_es_bitcoin-test_firo.py::test_spend_lelantus": "a9e5145cb031c62a4e93abb23951dd9c392c45c18fee64c7cdf23577e48c2333",
"T3W1_es_bitcoin-test_fujicoin.py::test_send_p2tr": "834f174de88b297fcfb13a3e0ed8559f43ee87154c9d70ea6bb1698ce5d30cd9",
"T3W1_es_bitcoin-test_getaddress.py::test_address_mac": "56536ae9cd7c4ff8022def4ec3350031d3614064d961f53a2850f2be425af201",
@@ -36104,6 +36145,7 @@
"T3W1_fr_bitcoin-test_descriptors.py::test_descriptors_trezorlib[Testnet-1-49-InputScriptType.SPENDP-2341fa5a": "eadb2c9facb3546f68779d6114f6327c6425fb3ea9454fd65cd96b4da6656bbe",
"T3W1_fr_bitcoin-test_descriptors.py::test_descriptors_trezorlib[Testnet-1-84-InputScriptType.SPENDW-59aa0a79": "a38fe567cace3c6ca60f85ea8920c871c7c05b0768457e741199db91edcf20df",
"T3W1_fr_bitcoin-test_descriptors.py::test_descriptors_trezorlib[Testnet-1-86-InputScriptType.SPENDT-af95048b": "f56e4227e1528dc3054a1a386e88a56590a4b85c1923052cd5ec186c3d299db5",
+"T3W1_fr_bitcoin-test_descriptors.py::test_descriptors_unsupported": "a4cc8ebe1a6488c05f637c85aaddb57ce208ab85223eafca41d2be48f42d3fa2",
"T3W1_fr_bitcoin-test_firo.py::test_spend_lelantus": "f0e1d2c0f51345267a4158567fc501743a94e6c05011b0cd05c4c8a4652bdbfa",
"T3W1_fr_bitcoin-test_fujicoin.py::test_send_p2tr": "6b442aa9dddb3f391ecd491d16fb33f3c8ade6def6f07df530ab1025a0a267d6",
"T3W1_fr_bitcoin-test_getaddress.py::test_address_mac": "e8156cf4eda1d29060f05b4a18d50032b0b344230609b7de7cababfe0a86b20b",
@@ -37638,6 +37680,7 @@
"T3W1_pt_bitcoin-test_descriptors.py::test_descriptors_trezorlib[Testnet-1-49-InputScriptType.SPENDP-2341fa5a": "935708dc0f3720fc27f9382b4c39802733ed2dc9360897a07bfea3803f41043c",
"T3W1_pt_bitcoin-test_descriptors.py::test_descriptors_trezorlib[Testnet-1-84-InputScriptType.SPENDW-59aa0a79": "5922be980f4e3ca85a1866465e825eabba2461536fdfa1c0672d6c7f2f51ebc8",
"T3W1_pt_bitcoin-test_descriptors.py::test_descriptors_trezorlib[Testnet-1-86-InputScriptType.SPENDT-af95048b": "856200aadac8fa6e6b036afdb2cf3231b0e158f38d70afb6b16045e5f6d1c0ce",
+"T3W1_pt_bitcoin-test_descriptors.py::test_descriptors_unsupported": "c21805edcbd43b9fc597dc9d5bf316713b02011da9c747ebb0110eca2d0a59c2",
"T3W1_pt_bitcoin-test_firo.py::test_spend_lelantus": "aac6538f94f3e012b7c4c48203f5e949730f46a889fe0a3859491a16c0ee1709",
"T3W1_pt_bitcoin-test_fujicoin.py::test_send_p2tr": "2f0103c3db15006234d7ba2fff4ce755cf4052ec9ac8d559d3346cfe138ed0e3",
"T3W1_pt_bitcoin-test_getaddress.py::test_address_mac": "1c74667c078e25e7e0d37c7b2aa35f7c8ab02cd88e74695ecb355c82a293b0cc",
Why this scored 19/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.