diff --git a/.github/workflows/guidelines_enforcer.yml b/.github/workflows/guidelines_enforcer.yml index fdaf9f27..839fc5ec 100644 --- a/.github/workflows/guidelines_enforcer.yml +++ b/.github/workflows/guidelines_enforcer.yml @@ -20,4 +20,4 @@ on: jobs: guidelines_enforcer: name: Call Ledger guidelines_enforcer - uses: LedgerHQ/ledger-app-workflows/.github/workflows/reusable_guidelines_enforcer.yml@v1 + uses: LedgerHQ/ledger-app-workflows/.github/workflows/reusable_guidelines_enforcer.yml@app-bitcoin-legacy-hardening diff --git a/CHANGELOG.md b/CHANGELOG.md index 01892664..825e0328 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -5,11 +5,14 @@ All notable changes to this project will be documented in this file. The format is based on [Keep a Changelog](http://keepachangelog.com/) and this project adheres to [Semantic Versioning](http://semver.org/). -## [2.4.10] - 2025-11-07 +## [2.4.10] - 2026-02-19 ### Modified -- Ticker moved on the right +- Derivation Path Hardening: + - `HAVE_APPLICATION_FLAG_DERIVE_MASTER` is removed for all coins except Bitcoin Legacy and Bitcoin Test Legacy + - BIP-32 derivation paths are enforced using wildcard syntax (`m/*/`), with a few exceptions for Bitcoin forks +- Ticker moved on the right. ## [2.4.9] - 2025-09-08 diff --git a/Makefile b/Makefile index 2b01b77b..b96c26ff 100644 --- a/Makefile +++ b/Makefile @@ -54,6 +54,7 @@ COIN_NATIVE_SEGWIT_PREFIX=\"tb\" COIN_KIND=COIN_KIND_BITCOIN_TESTNET COIN_FLAGS=FLAG_SEGWIT_CHANGE_SUPPORT APPNAME ="Bitcoin Test Legacy" +HAVE_APPLICATION_FLAG_DERIVE_MASTER = 1 else ifeq ($(COIN),bitcoin_legacy) # Horizen @@ -64,11 +65,14 @@ COIN_P2SH_VERSION=5 COIN_FAMILY=1 COIN_COINID=\"Bitcoin\" COIN_COINID_NAME="Bitcoin" +COIN_TAGLINE1="This is a recovery tool." +COIN_TAGLINE2="Not for everyday use!" COIN_COINID_SHORT=\"BTC\" COIN_NATIVE_SEGWIT_PREFIX=\"bc\" COIN_KIND=COIN_KIND_BITCOIN COIN_FLAGS=FLAG_SEGWIT_CHANGE_SUPPORT APPNAME ="Bitcoin Legacy" +HAVE_APPLICATION_FLAG_DERIVE_MASTER = 1 else ifeq ($(COIN),bitcoin_cash) # Bitcoin cash @@ -84,6 +88,7 @@ COIN_COINID_SHORT=\"BCH\" COIN_KIND=COIN_KIND_BITCOIN_CASH COIN_FORKID=0 APPNAME ="Bitcoin Cash" +PATH_APP_LOAD_PARAMS = "*/145'" "*/0'" "4541509'" "45'" else ifeq ($(COIN),bitcoin_gold) # Bitcoin Gold @@ -100,6 +105,7 @@ COIN_KIND=COIN_KIND_BITCOIN_GOLD COIN_FLAGS=FLAG_SEGWIT_CHANGE_SUPPORT COIN_FORKID=79 APPNAME ="Bitcoin Gold" +PATH_APP_LOAD_PARAMS = "*/156'" "*/0'" "4541509'" "45'" else ifeq ($(COIN),litecoin) # Litecoin @@ -115,6 +121,7 @@ COIN_NATIVE_SEGWIT_PREFIX=\"ltc\" COIN_KIND=COIN_KIND_LITECOIN COIN_FLAGS=FLAG_SEGWIT_CHANGE_SUPPORT APPNAME ="Litecoin" +PATH_APP_LOAD_PARAMS = "*/2'" else ifeq ($(COIN),dogecoin) # Doge @@ -128,6 +135,7 @@ COIN_COINID_NAME="Doge" COIN_COINID_SHORT=\"DOGE\" COIN_KIND=COIN_KIND_DOGE APPNAME ="Dogecoin" +PATH_APP_LOAD_PARAMS = "*/3'" else ifeq ($(COIN),dash) # Dash @@ -141,22 +149,7 @@ COIN_COINID_NAME="Dash" COIN_COINID_SHORT=\"DASH\" COIN_KIND=COIN_KIND_DASH APPNAME ="Dash" - -else ifeq ($(COIN),zcash) -# Zcash (deprecated, code before the NU5 hard fork) -$(error the zcash variant is deprecated and no longer functional since the NU5 hard fork) -BIP44_COIN_TYPE=133 -BIP44_COIN_TYPE_2=133 -COIN_P2PKH_VERSION=7352 -COIN_P2SH_VERSION=7357 -COIN_FAMILY=1 -COIN_COINID=\"Zcash\" -COIN_COINID_NAME="Zcash" -COIN_COINID_SHORT=\"ZEC\" -COIN_KIND=COIN_KIND_ZCASH -# Switch to Canopy over Heartwood -BRANCH_ID=0xE9FF75A6 -APPNAME ="Zcash" +PATH_APP_LOAD_PARAMS = "*/5'" else ifeq ($(COIN),horizen) # Horizen @@ -170,6 +163,7 @@ COIN_COINID_NAME="Horizen" COIN_COINID_SHORT=\"ZEN\" COIN_KIND=COIN_KIND_HORIZEN APPNAME ="Horizen" +PATH_APP_LOAD_PARAMS = "*/121'" else ifeq ($(COIN),komodo) # Komodo @@ -183,6 +177,7 @@ COIN_COINID_NAME="Komodo" COIN_COINID_SHORT=\"KMD\" COIN_KIND=COIN_KIND_KOMODO APPNAME ="Komodo" +PATH_APP_LOAD_PARAMS = "*/141'" else ifeq ($(COIN),stratis) # Stratis @@ -197,6 +192,7 @@ COIN_COINID_SHORT=\"STRAX\" COIN_KIND=COIN_KIND_STRATIS COIN_FLAGS=FLAG_PEERCOIN_SUPPORT APPNAME ="Stratis" +PATH_APP_LOAD_PARAMS = "*/105105'" else ifeq ($(COIN),xrhodium) #Xrhodium @@ -210,6 +206,7 @@ COIN_COINID_NAME="xRhodium" COIN_COINID_SHORT=\"XRC\" COIN_KIND=COIN_KIND_XRHODIUM APPNAME ="xRhodium" +PATH_APP_LOAD_PARAMS = "*/10291'" else ifeq ($(COIN),peercoin) # Peercoin @@ -224,6 +221,7 @@ COIN_COINID_SHORT=\"PPC\" COIN_KIND=COIN_KIND_PEERCOIN COIN_FLAGS=FLAG_PEERCOIN_UNITS\|FLAG_PEERCOIN_SUPPORT APPNAME ="Peercoin" +PATH_APP_LOAD_PARAMS = "*/6'" else ifeq ($(COIN),pivx) # PivX @@ -238,6 +236,7 @@ COIN_COINID_NAME="PivX" COIN_COINID_SHORT=\"PIVX\" COIN_KIND=COIN_KIND_PIVX APPNAME ="PivX" +PATH_APP_LOAD_PARAMS = "*/119'" "*/77'" else ifeq ($(COIN),viacoin) # Viacoin @@ -252,6 +251,7 @@ COIN_COINID_SHORT=\"VIA\" COIN_KIND=COIN_KIND_VIACOIN COIN_FLAGS=FLAG_SEGWIT_CHANGE_SUPPORT APPNAME ="Viacoin" +PATH_APP_LOAD_PARAMS = "*/14'" else ifeq ($(COIN),vertcoin) # Vertcoin @@ -268,6 +268,7 @@ COIN_NATIVE_SEGWIT_PREFIX=\"vtc\" COIN_KIND=COIN_KIND_VERTCOIN COIN_FLAGS=FLAG_SEGWIT_CHANGE_SUPPORT APPNAME ="Vertcoin" +PATH_APP_LOAD_PARAMS = "*/28'" "*/128'" else ifeq ($(COIN),digibyte) BIP44_COIN_TYPE=20 @@ -282,9 +283,8 @@ COIN_NATIVE_SEGWIT_PREFIX=\"dgb\" COIN_KIND=COIN_KIND_DIGIBYTE COIN_FLAGS=FLAG_SEGWIT_CHANGE_SUPPORT APPNAME ="Digibyte" +PATH_APP_LOAD_PARAMS = "*/20'" -else ifeq ($(COIN),qtum) -$(error the qtum variant is deprecated and has been moved to its dedicated repo) else ifeq ($(COIN),firo) BIP44_COIN_TYPE=136 BIP44_COIN_TYPE_2=136 @@ -296,6 +296,7 @@ COIN_COINID_NAME="Firo" COIN_COINID_SHORT=\"FIRO\" COIN_KIND=COIN_KIND_FIRO APPNAME ="Firo" +PATH_APP_LOAD_PARAMS = "*/136'" else ifeq ($(COIN),bitcoin_private) # Bitcoin Private @@ -312,6 +313,7 @@ COIN_COINID_SHORT=\"BTCP\" COIN_KIND=COIN_KIND_BITCOIN_PRIVATE COIN_FORKID=42 APPNAME ="Bitcoin Private" +PATH_APP_LOAD_PARAMS = "*/183'" "*/0'" "4541509'" "45'" else ifeq ($(COIN),gamecredits) # GameCredits @@ -326,6 +328,7 @@ COIN_COINID_SHORT=\"GAME\" COIN_KIND=COIN_KIND_GAMECREDITS COIN_FLAGS=FLAG_SEGWIT_CHANGE_SUPPORT APPNAME ="GameCredits" +PATH_APP_LOAD_PARAMS = "*/101'" else ifeq ($(COIN),zclassic) # ZClassic @@ -339,6 +342,7 @@ COIN_COINID_NAME="ZClassic" COIN_COINID_SHORT=\"ZCL\" COIN_KIND=COIN_KIND_ZCLASSIC APPNAME ="ZClassic" +PATH_APP_LOAD_PARAMS = "*/147'" else ifeq ($(COIN),nix) # NIX @@ -354,6 +358,7 @@ COIN_NATIVE_SEGWIT_PREFIX=\"nix\" COIN_KIND=COIN_KIND_NIX COIN_FLAGS=FLAG_SEGWIT_CHANGE_SUPPORT APPNAME ="NIX" +PATH_APP_LOAD_PARAMS = "*/400'" else ifeq ($(COIN),lbry) # LBRY @@ -367,6 +372,7 @@ COIN_COINID_NAME="LBRY" COIN_COINID_SHORT=\"LBC\" COIN_KIND=COIN_KIND_LBRY APPNAME ="LBRY" +PATH_APP_LOAD_PARAMS = "*/140'" else ifeq ($(COIN),resistance) # Resistance @@ -380,6 +386,7 @@ COIN_COINID_NAME="Resistance" COIN_COINID_SHORT=\"RES\" COIN_KIND=COIN_KIND_RESISTANCE APPNAME ="Resistance" +PATH_APP_LOAD_PARAMS = "*/356'" else ifeq ($(COIN),ravencoin) # Ravencoin @@ -393,6 +400,7 @@ COIN_COINID_NAME="Ravencoin" COIN_COINID_SHORT=\"RVN\" COIN_KIND=COIN_KIND_RAVENCOIN APPNAME ="Ravencoin" +PATH_APP_LOAD_PARAMS = "*/175'" else ifeq ($(COIN),hydra_testnet) # Hydra testnet @@ -408,7 +416,7 @@ COIN_NATIVE_SEGWIT_PREFIX=\"hc\" COIN_KIND=COIN_KIND_HYDRA COIN_FLAGS=FLAG_SEGWIT_CHANGE_SUPPORT APPNAME ="Hydra Test" -APP_LOAD_PARAMS += --path "44'/609'" +PATH_APP_LOAD_PARAMS = "44'/609'" else ifeq ($(COIN),hydra) # Hydra mainnet @@ -424,7 +432,7 @@ COIN_NATIVE_SEGWIT_PREFIX=\"hc\" COIN_KIND=COIN_KIND_HYDRA COIN_FLAGS=FLAG_SEGWIT_CHANGE_SUPPORT APPNAME ="Hydra" -APP_LOAD_PARAMS += --path "44'/609'" +PATH_APP_LOAD_PARAMS = "44'/609'" else ifeq ($(filter clean,$(MAKECMDGOALS)),) $(error Unsupported COIN - use $(VARIANT_VALUES)) diff --git a/lib-app-bitcoin b/lib-app-bitcoin index 5b70c93c..08a1a0cc 160000 --- a/lib-app-bitcoin +++ b/lib-app-bitcoin @@ -1 +1 @@ -Subproject commit 5b70c93caba43712758ae563353164a64ba84414 +Subproject commit 08a1a0cc9101668b10652e5807a36e2e2d3f2d8a diff --git a/tests/snapshots/flex/test_get_public_key_m/44'/1'/0'_0_0/00000.png b/tests/snapshots/flex/test_get_public_key_m/44'/1'/0'_0_0/00000.png index 5a1a7890..b7194148 100644 Binary files a/tests/snapshots/flex/test_get_public_key_m/44'/1'/0'_0_0/00000.png and b/tests/snapshots/flex/test_get_public_key_m/44'/1'/0'_0_0/00000.png differ diff --git a/tests/snapshots/flex/test_get_public_key_m/44'/1'/0'_0_1/00000.png b/tests/snapshots/flex/test_get_public_key_m/44'/1'/0'_0_1/00000.png index f3d4041a..2ee6c791 100644 Binary files a/tests/snapshots/flex/test_get_public_key_m/44'/1'/0'_0_1/00000.png and b/tests/snapshots/flex/test_get_public_key_m/44'/1'/0'_0_1/00000.png differ diff --git a/tests/snapshots/flex/test_get_public_key_m/44'/1'/0'_0_1/00001.png b/tests/snapshots/flex/test_get_public_key_m/44'/1'/0'_0_1/00001.png index f3ef57e4..7ad8fe50 100644 Binary files a/tests/snapshots/flex/test_get_public_key_m/44'/1'/0'_0_1/00001.png and b/tests/snapshots/flex/test_get_public_key_m/44'/1'/0'_0_1/00001.png differ diff --git a/tests/snapshots/flex/test_get_public_key_m/44'/1'/0'_0_2/00000.png b/tests/snapshots/flex/test_get_public_key_m/44'/1'/0'_0_2/00000.png index 4321e601..8d07f2f2 100644 Binary files a/tests/snapshots/flex/test_get_public_key_m/44'/1'/0'_0_2/00000.png and b/tests/snapshots/flex/test_get_public_key_m/44'/1'/0'_0_2/00000.png differ diff --git a/tests/snapshots/flex/test_get_public_key_m/44'/1'/10'_0_0/00000.png b/tests/snapshots/flex/test_get_public_key_m/44'/1'/10'_0_0/00000.png index 5a1a7890..b7194148 100644 Binary files a/tests/snapshots/flex/test_get_public_key_m/44'/1'/10'_0_0/00000.png and b/tests/snapshots/flex/test_get_public_key_m/44'/1'/10'_0_0/00000.png differ diff --git a/tests/snapshots/flex/test_get_public_key_m/44'/1'/10'_0_1/00000.png b/tests/snapshots/flex/test_get_public_key_m/44'/1'/10'_0_1/00000.png index f3d4041a..2ee6c791 100644 Binary files a/tests/snapshots/flex/test_get_public_key_m/44'/1'/10'_0_1/00000.png and b/tests/snapshots/flex/test_get_public_key_m/44'/1'/10'_0_1/00000.png differ diff --git a/tests/snapshots/flex/test_get_public_key_m/44'/1'/10'_0_1/00001.png b/tests/snapshots/flex/test_get_public_key_m/44'/1'/10'_0_1/00001.png index 12c1fa40..b22596c1 100644 Binary files a/tests/snapshots/flex/test_get_public_key_m/44'/1'/10'_0_1/00001.png and b/tests/snapshots/flex/test_get_public_key_m/44'/1'/10'_0_1/00001.png differ diff --git a/tests/snapshots/flex/test_get_public_key_m/44'/1'/10'_0_2/00000.png b/tests/snapshots/flex/test_get_public_key_m/44'/1'/10'_0_2/00000.png index 4321e601..8d07f2f2 100644 Binary files a/tests/snapshots/flex/test_get_public_key_m/44'/1'/10'_0_2/00000.png and b/tests/snapshots/flex/test_get_public_key_m/44'/1'/10'_0_2/00000.png differ diff --git a/tests/snapshots/flex/test_get_public_key_m/44'/1'/2'/1/42_0_0/00000.png b/tests/snapshots/flex/test_get_public_key_m/44'/1'/2'/1/42_0_0/00000.png index 5a1a7890..b7194148 100644 Binary files a/tests/snapshots/flex/test_get_public_key_m/44'/1'/2'/1/42_0_0/00000.png and b/tests/snapshots/flex/test_get_public_key_m/44'/1'/2'/1/42_0_0/00000.png differ diff --git a/tests/snapshots/flex/test_get_public_key_m/44'/1'/2'/1/42_0_1/00000.png b/tests/snapshots/flex/test_get_public_key_m/44'/1'/2'/1/42_0_1/00000.png index f3d4041a..2ee6c791 100644 Binary files a/tests/snapshots/flex/test_get_public_key_m/44'/1'/2'/1/42_0_1/00000.png and b/tests/snapshots/flex/test_get_public_key_m/44'/1'/2'/1/42_0_1/00000.png differ diff --git a/tests/snapshots/flex/test_get_public_key_m/44'/1'/2'/1/42_0_1/00001.png b/tests/snapshots/flex/test_get_public_key_m/44'/1'/2'/1/42_0_1/00001.png index 0281157d..84658ac8 100644 Binary files a/tests/snapshots/flex/test_get_public_key_m/44'/1'/2'/1/42_0_1/00001.png and b/tests/snapshots/flex/test_get_public_key_m/44'/1'/2'/1/42_0_1/00001.png differ diff --git a/tests/snapshots/flex/test_get_public_key_m/44'/1'/2'/1/42_0_2/00000.png b/tests/snapshots/flex/test_get_public_key_m/44'/1'/2'/1/42_0_2/00000.png index 4321e601..8d07f2f2 100644 Binary files a/tests/snapshots/flex/test_get_public_key_m/44'/1'/2'/1/42_0_2/00000.png and b/tests/snapshots/flex/test_get_public_key_m/44'/1'/2'/1/42_0_2/00000.png differ diff --git a/tests/snapshots/flex/test_get_public_key_m/48'/1'/4'/1'/0/7_0_0/00000.png b/tests/snapshots/flex/test_get_public_key_m/48'/1'/4'/1'/0/7_0_0/00000.png index 5a1a7890..b7194148 100644 Binary files a/tests/snapshots/flex/test_get_public_key_m/48'/1'/4'/1'/0/7_0_0/00000.png and b/tests/snapshots/flex/test_get_public_key_m/48'/1'/4'/1'/0/7_0_0/00000.png differ diff --git a/tests/snapshots/flex/test_get_public_key_m/48'/1'/4'/1'/0/7_0_1/00000.png b/tests/snapshots/flex/test_get_public_key_m/48'/1'/4'/1'/0/7_0_1/00000.png index f3d4041a..2ee6c791 100644 Binary files a/tests/snapshots/flex/test_get_public_key_m/48'/1'/4'/1'/0/7_0_1/00000.png and b/tests/snapshots/flex/test_get_public_key_m/48'/1'/4'/1'/0/7_0_1/00000.png differ diff --git a/tests/snapshots/flex/test_get_public_key_m/48'/1'/4'/1'/0/7_0_1/00001.png b/tests/snapshots/flex/test_get_public_key_m/48'/1'/4'/1'/0/7_0_1/00001.png index b0e0aec8..b7a6249e 100644 Binary files a/tests/snapshots/flex/test_get_public_key_m/48'/1'/4'/1'/0/7_0_1/00001.png and b/tests/snapshots/flex/test_get_public_key_m/48'/1'/4'/1'/0/7_0_1/00001.png differ diff --git a/tests/snapshots/flex/test_get_public_key_m/48'/1'/4'/1'/0/7_0_2/00000.png b/tests/snapshots/flex/test_get_public_key_m/48'/1'/4'/1'/0/7_0_2/00000.png index 4321e601..8d07f2f2 100644 Binary files a/tests/snapshots/flex/test_get_public_key_m/48'/1'/4'/1'/0/7_0_2/00000.png and b/tests/snapshots/flex/test_get_public_key_m/48'/1'/4'/1'/0/7_0_2/00000.png differ diff --git a/tests/snapshots/flex/test_get_public_key_m/49'/1'/1'/1/3_0_0/00000.png b/tests/snapshots/flex/test_get_public_key_m/49'/1'/1'/1/3_0_0/00000.png index 5a1a7890..b7194148 100644 Binary files a/tests/snapshots/flex/test_get_public_key_m/49'/1'/1'/1/3_0_0/00000.png and b/tests/snapshots/flex/test_get_public_key_m/49'/1'/1'/1/3_0_0/00000.png differ diff --git a/tests/snapshots/flex/test_get_public_key_m/49'/1'/1'/1/3_0_1/00000.png b/tests/snapshots/flex/test_get_public_key_m/49'/1'/1'/1/3_0_1/00000.png index f3d4041a..2ee6c791 100644 Binary files a/tests/snapshots/flex/test_get_public_key_m/49'/1'/1'/1/3_0_1/00000.png and b/tests/snapshots/flex/test_get_public_key_m/49'/1'/1'/1/3_0_1/00000.png differ diff --git a/tests/snapshots/flex/test_get_public_key_m/49'/1'/1'/1/3_0_1/00001.png b/tests/snapshots/flex/test_get_public_key_m/49'/1'/1'/1/3_0_1/00001.png index 33e7d9a5..117e92e4 100644 Binary files a/tests/snapshots/flex/test_get_public_key_m/49'/1'/1'/1/3_0_1/00001.png and b/tests/snapshots/flex/test_get_public_key_m/49'/1'/1'/1/3_0_1/00001.png differ diff --git a/tests/snapshots/flex/test_get_public_key_m/49'/1'/1'/1/3_0_2/00000.png b/tests/snapshots/flex/test_get_public_key_m/49'/1'/1'/1/3_0_2/00000.png index 4321e601..8d07f2f2 100644 Binary files a/tests/snapshots/flex/test_get_public_key_m/49'/1'/1'/1/3_0_2/00000.png and b/tests/snapshots/flex/test_get_public_key_m/49'/1'/1'/1/3_0_2/00000.png differ diff --git a/tests/snapshots/flex/test_get_public_key_m/84'/1'/2'/0/10_0_0/00000.png b/tests/snapshots/flex/test_get_public_key_m/84'/1'/2'/0/10_0_0/00000.png index f3d4041a..2ee6c791 100644 Binary files a/tests/snapshots/flex/test_get_public_key_m/84'/1'/2'/0/10_0_0/00000.png and b/tests/snapshots/flex/test_get_public_key_m/84'/1'/2'/0/10_0_0/00000.png differ diff --git a/tests/snapshots/flex/test_get_public_key_m/84'/1'/2'/0/10_0_0/00001.png b/tests/snapshots/flex/test_get_public_key_m/84'/1'/2'/0/10_0_0/00001.png index c3760d14..c9450864 100644 Binary files a/tests/snapshots/flex/test_get_public_key_m/84'/1'/2'/0/10_0_0/00001.png and b/tests/snapshots/flex/test_get_public_key_m/84'/1'/2'/0/10_0_0/00001.png differ diff --git a/tests/snapshots/flex/test_get_public_key_m/84'/1'/2'/0/10_0_1/00000.png b/tests/snapshots/flex/test_get_public_key_m/84'/1'/2'/0/10_0_1/00000.png index 4321e601..8d07f2f2 100644 Binary files a/tests/snapshots/flex/test_get_public_key_m/84'/1'/2'/0/10_0_1/00000.png and b/tests/snapshots/flex/test_get_public_key_m/84'/1'/2'/0/10_0_1/00000.png differ diff --git a/tests/snapshots/flex/test_get_public_key_m/86'/1'/4'/1/12_0_0/00000.png b/tests/snapshots/flex/test_get_public_key_m/86'/1'/4'/1/12_0_0/00000.png index 5a1a7890..b7194148 100644 Binary files a/tests/snapshots/flex/test_get_public_key_m/86'/1'/4'/1/12_0_0/00000.png and b/tests/snapshots/flex/test_get_public_key_m/86'/1'/4'/1/12_0_0/00000.png differ diff --git a/tests/snapshots/flex/test_get_public_key_m/86'/1'/4'/1/12_0_1/00000.png b/tests/snapshots/flex/test_get_public_key_m/86'/1'/4'/1/12_0_1/00000.png index f3d4041a..2ee6c791 100644 Binary files a/tests/snapshots/flex/test_get_public_key_m/86'/1'/4'/1/12_0_1/00000.png and b/tests/snapshots/flex/test_get_public_key_m/86'/1'/4'/1/12_0_1/00000.png differ diff --git a/tests/snapshots/flex/test_get_public_key_m/86'/1'/4'/1/12_0_1/00001.png b/tests/snapshots/flex/test_get_public_key_m/86'/1'/4'/1/12_0_1/00001.png index cc577d03..784b2bc7 100644 Binary files a/tests/snapshots/flex/test_get_public_key_m/86'/1'/4'/1/12_0_1/00001.png and b/tests/snapshots/flex/test_get_public_key_m/86'/1'/4'/1/12_0_1/00001.png differ diff --git a/tests/snapshots/flex/test_get_public_key_m/86'/1'/4'/1/12_0_2/00000.png b/tests/snapshots/flex/test_get_public_key_m/86'/1'/4'/1/12_0_2/00000.png index 4321e601..8d07f2f2 100644 Binary files a/tests/snapshots/flex/test_get_public_key_m/86'/1'/4'/1/12_0_2/00000.png and b/tests/snapshots/flex/test_get_public_key_m/86'/1'/4'/1/12_0_2/00000.png differ diff --git a/tests/snapshots/flex/test_sign_message_0_0/00000.png b/tests/snapshots/flex/test_sign_message_0_0/00000.png index f3d4041a..2ee6c791 100644 Binary files a/tests/snapshots/flex/test_sign_message_0_0/00000.png and b/tests/snapshots/flex/test_sign_message_0_0/00000.png differ diff --git a/tests/snapshots/flex/test_sign_message_0_0/00001.png b/tests/snapshots/flex/test_sign_message_0_0/00001.png index c0003346..ece60082 100644 Binary files a/tests/snapshots/flex/test_sign_message_0_0/00001.png and b/tests/snapshots/flex/test_sign_message_0_0/00001.png differ diff --git a/tests/snapshots/flex/test_sign_message_0_1/00000.png b/tests/snapshots/flex/test_sign_message_0_1/00000.png index 4321e601..8d07f2f2 100644 Binary files a/tests/snapshots/flex/test_sign_message_0_1/00000.png and b/tests/snapshots/flex/test_sign_message_0_1/00000.png differ diff --git a/tests/snapshots/flex/test_sign_message_1_0/00000.png b/tests/snapshots/flex/test_sign_message_1_0/00000.png index 7cb72de3..2645d784 100644 Binary files a/tests/snapshots/flex/test_sign_message_1_0/00000.png and b/tests/snapshots/flex/test_sign_message_1_0/00000.png differ diff --git a/tests/snapshots/flex/test_sign_message_1_0/00001.png b/tests/snapshots/flex/test_sign_message_1_0/00001.png index 2f2a9c99..12165877 100644 Binary files a/tests/snapshots/flex/test_sign_message_1_0/00001.png and b/tests/snapshots/flex/test_sign_message_1_0/00001.png differ diff --git a/tests/snapshots/flex/test_sign_message_1_0/00002.png b/tests/snapshots/flex/test_sign_message_1_0/00002.png index 95ef8277..53e3b350 100644 Binary files a/tests/snapshots/flex/test_sign_message_1_0/00002.png and b/tests/snapshots/flex/test_sign_message_1_0/00002.png differ diff --git a/tests/snapshots/flex/test_sign_psbt_singlesig_pkh_1to1_0_0/00000.png b/tests/snapshots/flex/test_sign_psbt_singlesig_pkh_1to1_0_0/00000.png index 830f3e02..d31558d5 100644 Binary files a/tests/snapshots/flex/test_sign_psbt_singlesig_pkh_1to1_0_0/00000.png and b/tests/snapshots/flex/test_sign_psbt_singlesig_pkh_1to1_0_0/00000.png differ diff --git a/tests/snapshots/flex/test_sign_psbt_singlesig_pkh_1to1_0_1/00000.png b/tests/snapshots/flex/test_sign_psbt_singlesig_pkh_1to1_0_1/00000.png index d18a01fd..d646e2f7 100644 Binary files a/tests/snapshots/flex/test_sign_psbt_singlesig_pkh_1to1_0_1/00000.png and b/tests/snapshots/flex/test_sign_psbt_singlesig_pkh_1to1_0_1/00000.png differ diff --git a/tests/snapshots/flex/test_sign_psbt_singlesig_pkh_1to1_0_2/00000.png b/tests/snapshots/flex/test_sign_psbt_singlesig_pkh_1to1_0_2/00000.png index 951ea778..8815360f 100644 Binary files a/tests/snapshots/flex/test_sign_psbt_singlesig_pkh_1to1_0_2/00000.png and b/tests/snapshots/flex/test_sign_psbt_singlesig_pkh_1to1_0_2/00000.png differ diff --git a/tests/snapshots/flex/test_sign_psbt_singlesig_pkh_1to1_0_3/00000.png b/tests/snapshots/flex/test_sign_psbt_singlesig_pkh_1to1_0_3/00000.png index a19a87d4..3b36acb8 100644 Binary files a/tests/snapshots/flex/test_sign_psbt_singlesig_pkh_1to1_0_3/00000.png and b/tests/snapshots/flex/test_sign_psbt_singlesig_pkh_1to1_0_3/00000.png differ diff --git a/tests/snapshots/flex/test_sign_psbt_singlesig_sh_wpkh_1to2_0_0/00000.png b/tests/snapshots/flex/test_sign_psbt_singlesig_sh_wpkh_1to2_0_0/00000.png index 830f3e02..d31558d5 100644 Binary files a/tests/snapshots/flex/test_sign_psbt_singlesig_sh_wpkh_1to2_0_0/00000.png and b/tests/snapshots/flex/test_sign_psbt_singlesig_sh_wpkh_1to2_0_0/00000.png differ diff --git a/tests/snapshots/flex/test_sign_psbt_singlesig_sh_wpkh_1to2_0_1/00000.png b/tests/snapshots/flex/test_sign_psbt_singlesig_sh_wpkh_1to2_0_1/00000.png index f8642ee7..f0f67eb3 100644 Binary files a/tests/snapshots/flex/test_sign_psbt_singlesig_sh_wpkh_1to2_0_1/00000.png and b/tests/snapshots/flex/test_sign_psbt_singlesig_sh_wpkh_1to2_0_1/00000.png differ diff --git a/tests/snapshots/flex/test_sign_psbt_singlesig_sh_wpkh_1to2_1_0/00000.png b/tests/snapshots/flex/test_sign_psbt_singlesig_sh_wpkh_1to2_1_0/00000.png index 6cf0e820..486aedd9 100644 Binary files a/tests/snapshots/flex/test_sign_psbt_singlesig_sh_wpkh_1to2_1_0/00000.png and b/tests/snapshots/flex/test_sign_psbt_singlesig_sh_wpkh_1to2_1_0/00000.png differ diff --git a/tests/snapshots/flex/test_sign_psbt_singlesig_sh_wpkh_1to2_1_1/00000.png b/tests/snapshots/flex/test_sign_psbt_singlesig_sh_wpkh_1to2_1_1/00000.png index a19a87d4..3b36acb8 100644 Binary files a/tests/snapshots/flex/test_sign_psbt_singlesig_sh_wpkh_1to2_1_1/00000.png and b/tests/snapshots/flex/test_sign_psbt_singlesig_sh_wpkh_1to2_1_1/00000.png differ diff --git a/tests/snapshots/flex/test_sign_psbt_singlesig_wpkh_1to2_0_0/00000.png b/tests/snapshots/flex/test_sign_psbt_singlesig_wpkh_1to2_0_0/00000.png index 830f3e02..d31558d5 100644 Binary files a/tests/snapshots/flex/test_sign_psbt_singlesig_wpkh_1to2_0_0/00000.png and b/tests/snapshots/flex/test_sign_psbt_singlesig_wpkh_1to2_0_0/00000.png differ diff --git a/tests/snapshots/flex/test_sign_psbt_singlesig_wpkh_1to2_0_1/00000.png b/tests/snapshots/flex/test_sign_psbt_singlesig_wpkh_1to2_0_1/00000.png index a796aaad..74c6d09c 100644 Binary files a/tests/snapshots/flex/test_sign_psbt_singlesig_wpkh_1to2_0_1/00000.png and b/tests/snapshots/flex/test_sign_psbt_singlesig_wpkh_1to2_0_1/00000.png differ diff --git a/tests/snapshots/flex/test_sign_psbt_singlesig_wpkh_1to2_1_0/00000.png b/tests/snapshots/flex/test_sign_psbt_singlesig_wpkh_1to2_1_0/00000.png index bfd48b79..5625725f 100644 Binary files a/tests/snapshots/flex/test_sign_psbt_singlesig_wpkh_1to2_1_0/00000.png and b/tests/snapshots/flex/test_sign_psbt_singlesig_wpkh_1to2_1_0/00000.png differ diff --git a/tests/snapshots/flex/test_sign_psbt_singlesig_wpkh_1to2_1_1/00000.png b/tests/snapshots/flex/test_sign_psbt_singlesig_wpkh_1to2_1_1/00000.png index a19a87d4..3b36acb8 100644 Binary files a/tests/snapshots/flex/test_sign_psbt_singlesig_wpkh_1to2_1_1/00000.png and b/tests/snapshots/flex/test_sign_psbt_singlesig_wpkh_1to2_1_1/00000.png differ diff --git a/tests/snapshots/flex/test_sign_psbt_singlesig_wpkh_1to2_2_0_0/00000.png b/tests/snapshots/flex/test_sign_psbt_singlesig_wpkh_1to2_2_0_0/00000.png index 830f3e02..d31558d5 100644 Binary files a/tests/snapshots/flex/test_sign_psbt_singlesig_wpkh_1to2_2_0_0/00000.png and b/tests/snapshots/flex/test_sign_psbt_singlesig_wpkh_1to2_2_0_0/00000.png differ diff --git a/tests/snapshots/flex/test_sign_psbt_singlesig_wpkh_1to2_2_0_1/00000.png b/tests/snapshots/flex/test_sign_psbt_singlesig_wpkh_1to2_2_0_1/00000.png index a796aaad..74c6d09c 100644 Binary files a/tests/snapshots/flex/test_sign_psbt_singlesig_wpkh_1to2_2_0_1/00000.png and b/tests/snapshots/flex/test_sign_psbt_singlesig_wpkh_1to2_2_0_1/00000.png differ diff --git a/tests/snapshots/flex/test_sign_psbt_singlesig_wpkh_1to2_2_1_0/00000.png b/tests/snapshots/flex/test_sign_psbt_singlesig_wpkh_1to2_2_1_0/00000.png index bfd48b79..5625725f 100644 Binary files a/tests/snapshots/flex/test_sign_psbt_singlesig_wpkh_1to2_2_1_0/00000.png and b/tests/snapshots/flex/test_sign_psbt_singlesig_wpkh_1to2_2_1_0/00000.png differ diff --git a/tests/snapshots/flex/test_sign_psbt_singlesig_wpkh_1to2_2_1_1/00000.png b/tests/snapshots/flex/test_sign_psbt_singlesig_wpkh_1to2_2_1_1/00000.png index a19a87d4..3b36acb8 100644 Binary files a/tests/snapshots/flex/test_sign_psbt_singlesig_wpkh_1to2_2_1_1/00000.png and b/tests/snapshots/flex/test_sign_psbt_singlesig_wpkh_1to2_2_1_1/00000.png differ diff --git a/tests/snapshots/flex/test_sign_psbt_singlesig_wpkh_2to2_0_0/00000.png b/tests/snapshots/flex/test_sign_psbt_singlesig_wpkh_2to2_0_0/00000.png index 830f3e02..d31558d5 100644 Binary files a/tests/snapshots/flex/test_sign_psbt_singlesig_wpkh_2to2_0_0/00000.png and b/tests/snapshots/flex/test_sign_psbt_singlesig_wpkh_2to2_0_0/00000.png differ diff --git a/tests/snapshots/flex/test_sign_psbt_singlesig_wpkh_2to2_0_1/00000.png b/tests/snapshots/flex/test_sign_psbt_singlesig_wpkh_2to2_0_1/00000.png index 6683aef3..27b8768a 100644 Binary files a/tests/snapshots/flex/test_sign_psbt_singlesig_wpkh_2to2_0_1/00000.png and b/tests/snapshots/flex/test_sign_psbt_singlesig_wpkh_2to2_0_1/00000.png differ diff --git a/tests/snapshots/flex/test_sign_psbt_singlesig_wpkh_2to2_0_2/00000.png b/tests/snapshots/flex/test_sign_psbt_singlesig_wpkh_2to2_0_2/00000.png index e0d8d6aa..f99c088e 100644 Binary files a/tests/snapshots/flex/test_sign_psbt_singlesig_wpkh_2to2_0_2/00000.png and b/tests/snapshots/flex/test_sign_psbt_singlesig_wpkh_2to2_0_2/00000.png differ diff --git a/tests/snapshots/flex/test_sign_psbt_singlesig_wpkh_2to2_0_3/00000.png b/tests/snapshots/flex/test_sign_psbt_singlesig_wpkh_2to2_0_3/00000.png index a19a87d4..3b36acb8 100644 Binary files a/tests/snapshots/flex/test_sign_psbt_singlesig_wpkh_2to2_0_3/00000.png and b/tests/snapshots/flex/test_sign_psbt_singlesig_wpkh_2to2_0_3/00000.png differ diff --git a/tests/snapshots/stax/test_get_public_key_m/44'/1'/0'_0_2/00000.png b/tests/snapshots/stax/test_get_public_key_m/44'/1'/0'_0_2/00000.png index 7a494786..ef044255 100644 Binary files a/tests/snapshots/stax/test_get_public_key_m/44'/1'/0'_0_2/00000.png and b/tests/snapshots/stax/test_get_public_key_m/44'/1'/0'_0_2/00000.png differ diff --git a/tests/snapshots/stax/test_get_public_key_m/44'/1'/10'_0_2/00000.png b/tests/snapshots/stax/test_get_public_key_m/44'/1'/10'_0_2/00000.png index 7a494786..ef044255 100644 Binary files a/tests/snapshots/stax/test_get_public_key_m/44'/1'/10'_0_2/00000.png and b/tests/snapshots/stax/test_get_public_key_m/44'/1'/10'_0_2/00000.png differ diff --git a/tests/snapshots/stax/test_get_public_key_m/44'/1'/2'/1/42_0_2/00000.png b/tests/snapshots/stax/test_get_public_key_m/44'/1'/2'/1/42_0_2/00000.png index 7a494786..ef044255 100644 Binary files a/tests/snapshots/stax/test_get_public_key_m/44'/1'/2'/1/42_0_2/00000.png and b/tests/snapshots/stax/test_get_public_key_m/44'/1'/2'/1/42_0_2/00000.png differ diff --git a/tests/snapshots/stax/test_get_public_key_m/48'/1'/4'/1'/0/7_0_2/00000.png b/tests/snapshots/stax/test_get_public_key_m/48'/1'/4'/1'/0/7_0_2/00000.png index 7a494786..ef044255 100644 Binary files a/tests/snapshots/stax/test_get_public_key_m/48'/1'/4'/1'/0/7_0_2/00000.png and b/tests/snapshots/stax/test_get_public_key_m/48'/1'/4'/1'/0/7_0_2/00000.png differ diff --git a/tests/snapshots/stax/test_get_public_key_m/49'/1'/1'/1/3_0_2/00000.png b/tests/snapshots/stax/test_get_public_key_m/49'/1'/1'/1/3_0_2/00000.png index 7a494786..ef044255 100644 Binary files a/tests/snapshots/stax/test_get_public_key_m/49'/1'/1'/1/3_0_2/00000.png and b/tests/snapshots/stax/test_get_public_key_m/49'/1'/1'/1/3_0_2/00000.png differ diff --git a/tests/snapshots/stax/test_get_public_key_m/84'/1'/2'/0/10_0_1/00000.png b/tests/snapshots/stax/test_get_public_key_m/84'/1'/2'/0/10_0_1/00000.png index 7a494786..ef044255 100644 Binary files a/tests/snapshots/stax/test_get_public_key_m/84'/1'/2'/0/10_0_1/00000.png and b/tests/snapshots/stax/test_get_public_key_m/84'/1'/2'/0/10_0_1/00000.png differ diff --git a/tests/snapshots/stax/test_get_public_key_m/86'/1'/4'/1/12_0_2/00000.png b/tests/snapshots/stax/test_get_public_key_m/86'/1'/4'/1/12_0_2/00000.png index 7a494786..ef044255 100644 Binary files a/tests/snapshots/stax/test_get_public_key_m/86'/1'/4'/1/12_0_2/00000.png and b/tests/snapshots/stax/test_get_public_key_m/86'/1'/4'/1/12_0_2/00000.png differ diff --git a/tests/snapshots/stax/test_sign_message_0_1/00000.png b/tests/snapshots/stax/test_sign_message_0_1/00000.png index 7a494786..ef044255 100644 Binary files a/tests/snapshots/stax/test_sign_message_0_1/00000.png and b/tests/snapshots/stax/test_sign_message_0_1/00000.png differ diff --git a/tests/snapshots/stax/test_sign_message_1_0/00002.png b/tests/snapshots/stax/test_sign_message_1_0/00002.png index 8c8ccd52..8eccbb89 100644 Binary files a/tests/snapshots/stax/test_sign_message_1_0/00002.png and b/tests/snapshots/stax/test_sign_message_1_0/00002.png differ diff --git a/tests/snapshots/stax/test_sign_psbt_singlesig_pkh_1to1_0_3/00000.png b/tests/snapshots/stax/test_sign_psbt_singlesig_pkh_1to1_0_3/00000.png index 4a531d56..6ebe7ecd 100644 Binary files a/tests/snapshots/stax/test_sign_psbt_singlesig_pkh_1to1_0_3/00000.png and b/tests/snapshots/stax/test_sign_psbt_singlesig_pkh_1to1_0_3/00000.png differ diff --git a/tests/snapshots/stax/test_sign_psbt_singlesig_sh_wpkh_1to2_1_1/00000.png b/tests/snapshots/stax/test_sign_psbt_singlesig_sh_wpkh_1to2_1_1/00000.png index 4a531d56..6ebe7ecd 100644 Binary files a/tests/snapshots/stax/test_sign_psbt_singlesig_sh_wpkh_1to2_1_1/00000.png and b/tests/snapshots/stax/test_sign_psbt_singlesig_sh_wpkh_1to2_1_1/00000.png differ diff --git a/tests/snapshots/stax/test_sign_psbt_singlesig_wpkh_1to2_1_1/00000.png b/tests/snapshots/stax/test_sign_psbt_singlesig_wpkh_1to2_1_1/00000.png index 4a531d56..6ebe7ecd 100644 Binary files a/tests/snapshots/stax/test_sign_psbt_singlesig_wpkh_1to2_1_1/00000.png and b/tests/snapshots/stax/test_sign_psbt_singlesig_wpkh_1to2_1_1/00000.png differ diff --git a/tests/snapshots/stax/test_sign_psbt_singlesig_wpkh_1to2_2_1_1/00000.png b/tests/snapshots/stax/test_sign_psbt_singlesig_wpkh_1to2_2_1_1/00000.png index 4a531d56..6ebe7ecd 100644 Binary files a/tests/snapshots/stax/test_sign_psbt_singlesig_wpkh_1to2_2_1_1/00000.png and b/tests/snapshots/stax/test_sign_psbt_singlesig_wpkh_1to2_2_1_1/00000.png differ diff --git a/tests/snapshots/stax/test_sign_psbt_singlesig_wpkh_2to2_0_3/00000.png b/tests/snapshots/stax/test_sign_psbt_singlesig_wpkh_2to2_0_3/00000.png index 4a531d56..6ebe7ecd 100644 Binary files a/tests/snapshots/stax/test_sign_psbt_singlesig_wpkh_2to2_0_3/00000.png and b/tests/snapshots/stax/test_sign_psbt_singlesig_wpkh_2to2_0_3/00000.png differ