diff options
author | Andrew Chow <github@achow101.com> | 2023-05-08 13:13:30 -0400 |
---|---|---|
committer | Andrew Chow <github@achow101.com> | 2023-05-08 13:31:28 -0400 |
commit | fa53611cf1b2ab2f49470ba75ee29a94a7b89105 (patch) | |
tree | 0e150cbe3f756c78159377266d73cbb7af5b79c4 /test/functional/wallet_migration.py | |
parent | 26cb32c02d76d6635c67942a5eeb70a6199df69d (diff) | |
parent | fe49f06c0e91b96feb8d8f1bd478c3173f14782c (diff) | |
download | bitcoin-fa53611cf1b2ab2f49470ba75ee29a94a7b89105.tar.xz |
Merge bitcoin/bitcoin#26076: Switch hardened derivation marker to h
fe49f06c0e91b96feb8d8f1bd478c3173f14782c doc: clarify PR 26076 release note (Sjors Provoost)
bd13dc2f46ea10302a928fcf0f53b7aed77ad260 Switch hardened derivation marker to h in descriptors (Sjors Provoost)
Pull request description:
This makes it easier to handle descriptor strings manually, especially when importing from another Bitcoin Core wallet.
For example the `importdescriptors` RPC call is easiest to use `h` as the marker: `'["desc": ".../0h/..."]'`, avoiding the need for escape characters. With this change `listdescriptors` will use `h`, so you can copy-paste the result, without having to add escape characters or switch `'` to 'h' manually.
Both markers can still be parsed.
The `hdkeypath` field in `getaddressinfo` is also impacted by this change, except for legacy wallets. The latter is to prevent accidentally breaking ancient software that uses our legacy wallet.
See discussion in #15740
ACKs for top commit:
achow101:
ACK fe49f06c0e91b96feb8d8f1bd478c3173f14782c
darosior:
re-ACK fe49f06c0e91b96feb8d8f1bd478c3173f14782c
Tree-SHA512: f78bc873b24a6f7a2bf38f5dd58f2b723e35e6b10e4d65c36ec300e2d362d475eeca6e5afa04b3037ab4bee0bf8ebc93ea5fc18102a2111d3d88fc873c08dc89
Diffstat (limited to 'test/functional/wallet_migration.py')
-rwxr-xr-x | test/functional/wallet_migration.py | 14 |
1 files changed, 7 insertions, 7 deletions
diff --git a/test/functional/wallet_migration.py b/test/functional/wallet_migration.py index 7c2959bb89..7a04e11370 100755 --- a/test/functional/wallet_migration.py +++ b/test/functional/wallet_migration.py @@ -53,7 +53,7 @@ class WalletMigrationTest(BitcoinTestFramework): assert_equal(addr_info["address"], addr_info_old["address"]) assert_equal(addr_info["scriptPubKey"], addr_info_old["scriptPubKey"]) assert_equal(addr_info["ismine"], addr_info_old["ismine"]) - assert_equal(addr_info["hdkeypath"], addr_info_old["hdkeypath"]) + assert_equal(addr_info["hdkeypath"], addr_info_old["hdkeypath"].replace("'","h")) assert_equal(addr_info["solvable"], addr_info_old["solvable"]) assert_equal(addr_info["ischange"], addr_info_old["ischange"]) assert_equal(addr_info["hdmasterfingerprint"], addr_info_old["hdmasterfingerprint"]) @@ -91,11 +91,11 @@ class WalletMigrationTest(BitcoinTestFramework): self.assert_is_sqlite("basic0") # The wallet should create the following descriptors: - # * BIP32 descriptors in the form of "0'/0'/*" and "0'/1'/*" (2 descriptors) - # * BIP44 descriptors in the form of "44'/1'/0'/0/*" and "44'/1'/0'/1/*" (2 descriptors) - # * BIP49 descriptors, P2SH(P2WPKH), in the form of "86'/1'/0'/0/*" and "86'/1'/0'/1/*" (2 descriptors) - # * BIP84 descriptors, P2WPKH, in the form of "84'/1'/0'/1/*" and "84'/1'/0'/1/*" (2 descriptors) - # * BIP86 descriptors, P2TR, in the form of "86'/1'/0'/0/*" and "86'/1'/0'/1/*" (2 descriptors) + # * BIP32 descriptors in the form of "0h/0h/*" and "0h/1h/*" (2 descriptors) + # * BIP44 descriptors in the form of "44h/1h/0h/0/*" and "44h/1h/0h/1/*" (2 descriptors) + # * BIP49 descriptors, P2SH(P2WPKH), in the form of "86h/1h/0h/0/*" and "86h/1h/0h/1/*" (2 descriptors) + # * BIP84 descriptors, P2WPKH, in the form of "84h/1h/0h/1/*" and "84h/1h/0h/1/*" (2 descriptors) + # * BIP86 descriptors, P2TR, in the form of "86h/1h/0h/0/*" and "86h/1h/0h/1/*" (2 descriptors) # * A combo(PK) descriptor for the wallet master key. # So, should have a total of 11 descriptors on it. assert_equal(len(basic0.listdescriptors()["descriptors"]), 11) @@ -107,7 +107,7 @@ class WalletMigrationTest(BitcoinTestFramework): self.assert_addr_info_equal(change_addr_info, old_change_addr_info) addr_info = basic0.getaddressinfo(basic0.getnewaddress("", "bech32")) - assert_equal(addr_info["hdkeypath"], "m/84'/1'/0'/0/0") + assert_equal(addr_info["hdkeypath"], "m/84h/1h/0h/0/0") self.log.info("Test migration of a basic keys only wallet with a balance") basic1 = self.create_legacy_wallet("basic1") |