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.
This commit is contained in:
Sjors Provoost
2023-04-04 18:33:08 +02:00
parent fe1b325688
commit bd13dc2f46
20 changed files with 161 additions and 142 deletions

View File

@ -0,0 +1,12 @@
RPC
---
- The `listdescriptors` RPC now shows `h` rather than apostrophe (`'`) to indicate
hardened derivation. This does not apply when using the `private` parameter, which
matches the marker used when descriptor was generated or imported. Newly created
wallets use `h`. This change makes it easier to handle descriptor strings manually.
E.g. an RPC call that takes an array of descriptors can now use '["desc": ".../0h/..."]'.
Either `h` or `'` can still be used when providing a descriptor to e.g. `getdescriptorinfo`
or `importdescriptors`. Note that this choice changes the descriptor checksum.
For legacy wallets the `hdkeypath` field in `getaddressinfo` is unchanged,
nor is the serialization format of wallet dumps. (#26076)