aboutsummaryrefslogtreecommitdiff
path: root/test/functional/wallet_descriptor.py
diff options
context:
space:
mode:
authorSjors Provoost <sjors@sprovoost.nl>2023-04-04 18:33:08 +0200
committerSjors Provoost <sjors@sprovoost.nl>2023-04-04 18:33:08 +0200
commitbd13dc2f46ea10302a928fcf0f53b7aed77ad260 (patch)
treeb7c0773b762bd3374bbc0e675e6f8b54b1e779d8 /test/functional/wallet_descriptor.py
parentfe1b3256888bd0e70d0c9655f565e139ec87b606 (diff)
downloadbitcoin-bd13dc2f46ea10302a928fcf0f53b7aed77ad260.tar.xz
Switch hardened derivation marker to h in descriptors
This makes it easier to handle descriptor strings manually. E.g. an RPC call that takes an array of descriptors can now use '["desc": ".../0h/..."]'. Both markers can still be parsed. The default for new descriptors is changed to h. In normalized form h is also used. For private keys the chosen marker is preserved in a round trip. The hdkeypath field in getaddressinfo is also impacted by this change.
Diffstat (limited to 'test/functional/wallet_descriptor.py')
-rwxr-xr-xtest/functional/wallet_descriptor.py32
1 files changed, 16 insertions, 16 deletions
diff --git a/test/functional/wallet_descriptor.py b/test/functional/wallet_descriptor.py
index b0e93df36a..4673eb091c 100755
--- a/test/functional/wallet_descriptor.py
+++ b/test/functional/wallet_descriptor.py
@@ -60,43 +60,43 @@ class WalletDescriptorTest(BitcoinTestFramework):
addr = self.nodes[0].getnewaddress("", "legacy")
addr_info = self.nodes[0].getaddressinfo(addr)
assert addr_info['desc'].startswith('pkh(')
- assert_equal(addr_info['hdkeypath'], 'm/44\'/1\'/0\'/0/0')
+ assert_equal(addr_info['hdkeypath'], 'm/44h/1h/0h/0/0')
addr = self.nodes[0].getnewaddress("", "p2sh-segwit")
addr_info = self.nodes[0].getaddressinfo(addr)
assert addr_info['desc'].startswith('sh(wpkh(')
- assert_equal(addr_info['hdkeypath'], 'm/49\'/1\'/0\'/0/0')
+ assert_equal(addr_info['hdkeypath'], 'm/49h/1h/0h/0/0')
addr = self.nodes[0].getnewaddress("", "bech32")
addr_info = self.nodes[0].getaddressinfo(addr)
assert addr_info['desc'].startswith('wpkh(')
- assert_equal(addr_info['hdkeypath'], 'm/84\'/1\'/0\'/0/0')
+ assert_equal(addr_info['hdkeypath'], 'm/84h/1h/0h/0/0')
addr = self.nodes[0].getnewaddress("", "bech32m")
addr_info = self.nodes[0].getaddressinfo(addr)
assert addr_info['desc'].startswith('tr(')
- assert_equal(addr_info['hdkeypath'], 'm/86\'/1\'/0\'/0/0')
+ assert_equal(addr_info['hdkeypath'], 'm/86h/1h/0h/0/0')
# Check that getrawchangeaddress works
addr = self.nodes[0].getrawchangeaddress("legacy")
addr_info = self.nodes[0].getaddressinfo(addr)
assert addr_info['desc'].startswith('pkh(')
- assert_equal(addr_info['hdkeypath'], 'm/44\'/1\'/0\'/1/0')
+ assert_equal(addr_info['hdkeypath'], 'm/44h/1h/0h/1/0')
addr = self.nodes[0].getrawchangeaddress("p2sh-segwit")
addr_info = self.nodes[0].getaddressinfo(addr)
assert addr_info['desc'].startswith('sh(wpkh(')
- assert_equal(addr_info['hdkeypath'], 'm/49\'/1\'/0\'/1/0')
+ assert_equal(addr_info['hdkeypath'], 'm/49h/1h/0h/1/0')
addr = self.nodes[0].getrawchangeaddress("bech32")
addr_info = self.nodes[0].getaddressinfo(addr)
assert addr_info['desc'].startswith('wpkh(')
- assert_equal(addr_info['hdkeypath'], 'm/84\'/1\'/0\'/1/0')
+ assert_equal(addr_info['hdkeypath'], 'm/84h/1h/0h/1/0')
addr = self.nodes[0].getrawchangeaddress("bech32m")
addr_info = self.nodes[0].getaddressinfo(addr)
assert addr_info['desc'].startswith('tr(')
- assert_equal(addr_info['hdkeypath'], 'm/86\'/1\'/0\'/1/0')
+ assert_equal(addr_info['hdkeypath'], 'm/86h/1h/0h/1/0')
# Make a wallet to receive coins at
self.nodes[0].createwallet(wallet_name="desc2", descriptors=True)
@@ -178,14 +178,14 @@ class WalletDescriptorTest(BitcoinTestFramework):
self.nodes[0].createwallet(wallet_name='desc_import', disable_private_keys=True, descriptors=True)
imp_rpc = self.nodes[0].get_wallet_rpc('desc_import')
- addr_types = [('legacy', False, 'pkh(', '44\'/1\'/0\'', -13),
- ('p2sh-segwit', False, 'sh(wpkh(', '49\'/1\'/0\'', -14),
- ('bech32', False, 'wpkh(', '84\'/1\'/0\'', -13),
- ('bech32m', False, 'tr(', '86\'/1\'/0\'', -13),
- ('legacy', True, 'pkh(', '44\'/1\'/0\'', -13),
- ('p2sh-segwit', True, 'sh(wpkh(', '49\'/1\'/0\'', -14),
- ('bech32', True, 'wpkh(', '84\'/1\'/0\'', -13),
- ('bech32m', True, 'tr(', '86\'/1\'/0\'', -13)]
+ addr_types = [('legacy', False, 'pkh(', '44h/1h/0h', -13),
+ ('p2sh-segwit', False, 'sh(wpkh(', '49h/1h/0h', -14),
+ ('bech32', False, 'wpkh(', '84h/1h/0h', -13),
+ ('bech32m', False, 'tr(', '86h/1h/0h', -13),
+ ('legacy', True, 'pkh(', '44h/1h/0h', -13),
+ ('p2sh-segwit', True, 'sh(wpkh(', '49h/1h/0h', -14),
+ ('bech32', True, 'wpkh(', '84h/1h/0h', -13),
+ ('bech32m', True, 'tr(', '86h/1h/0h', -13)]
for addr_type, internal, desc_prefix, deriv_path, int_idx in addr_types:
int_str = 'internal' if internal else 'external'