edge key expression additions

This commit is contained in:
scgbckbone 2025-11-13 16:15:45 +01:00 committed by doc-hex
parent 46f4576746
commit 255ca17905
3 changed files with 14 additions and 3 deletions

View File

@ -26,6 +26,8 @@ This lists the changes in the most recent EDGE firmware, for each hardware platf
- New Feature: Sign with specific miniscript wallet. `Settings -> Miniscript -> <name> -> Sign PSBT`
- New Feature: Miniscript wallet name can be specified for `sign` USB command
- New Feature: Rename Miniscript wallet via UX. `Settings -> Miniscript -> <wallet> -> Rename`.
- New Feature: Export [BIP-380](https://github.com/bitcoin/bips/blob/master/bip-0380.mediawiki) extended key expression.
Navigate to `Advanced/Tools -> Export Wallet -> Key Expression`
- Enhancement: Slightly faster HW accelerated tagged hash
- Enhancement: PSBT class optimizations. Ability to sign bigger txn.
- Enhancement: Signing TXN UI shows Miniscript wallet name.

View File

@ -1222,9 +1222,11 @@ async def key_expression_skeleton(_0, _1, item):
todo = [
("Segwit P2WPKH", "m/84h/%dh/%dh"),
("Taproot P2TR", "m/86h/%dh/%dh"),
("Classic P2PKH", "m/44h/%dh/%dh"),
("P2SH-Segwit", "m/49h/%dh/%dh"),
("Multi P2WSH", "m/48h/%dh/%dh/2h"),
("Multi P2TR", "m/48h/%dh/%dh/3h"),
("Multi P2SH-P2WSH", "m/48h/%dh/%dh/1h"),
]

View File

@ -930,7 +930,8 @@ def test_samourai_vs_generic(chain, account, settings_set, pick_menu_item, goto_
@pytest.mark.parametrize("chain", ["BTC", "XTN"])
@pytest.mark.parametrize("way", ["sd", "vdisk", "nfc", "qr"])
@pytest.mark.parametrize("addr_fmt", [AF_P2WPKH, AF_P2WPKH_P2SH, AF_CLASSIC, AF_P2WSH, AF_P2WSH_P2SH])
@pytest.mark.parametrize("addr_fmt", [AF_P2WPKH, AF_P2TR, AF_P2WPKH_P2SH, AF_CLASSIC,
AF_P2WSH, AF_P2WSH_P2SH, 1000]) # using 1000 as P2TR multisig
@pytest.mark.parametrize("acct_num", [None, (2 ** 31) - 1])
def test_key_expression_export(chain, addr_fmt, acct_num, goto_home, settings_set, need_keypress,
pick_menu_item, way, cap_story, cap_menu, virtdisk_path, dev,
@ -964,6 +965,9 @@ def test_key_expression_export(chain, addr_fmt, acct_num, goto_home, settings_se
if addr_fmt == AF_P2WPKH:
menu_item = "Segwit P2WPKH"
derive = f"m/84h/{chain_num}h/{acct_num}h"
elif addr_fmt == AF_P2TR:
menu_item = "Taproot P2TR"
derive = f"m/86h/{chain_num}h/{acct_num}h"
elif addr_fmt == AF_P2WPKH_P2SH:
menu_item = "P2SH-Segwit"
derive = f"m/49h/{chain_num}h/{acct_num}h"
@ -973,10 +977,13 @@ def test_key_expression_export(chain, addr_fmt, acct_num, goto_home, settings_se
elif addr_fmt == AF_P2WSH:
menu_item = "Multi P2WSH"
derive = f"m/48h/{chain_num}h/{acct_num}h/2h"
else:
assert addr_fmt == AF_P2WSH_P2SH
elif addr_fmt == AF_P2WSH_P2SH:
menu_item = "Multi P2SH-P2WSH"
derive = f"m/48h/{chain_num}h/{acct_num}h/1h"
else:
assert addr_fmt == 1000
menu_item = "Multi P2TR"
derive = f"m/48h/{chain_num}h/{acct_num}h/3h"
assert menu_item in menu
pick_menu_item(menu_item)