Merge rust-bitcoin/rust-bitcoin#6232: refactor(bip32): split relative and absolute bip32 derivation paths
83afae528ab3723212c8f307d4a5285ebbf68205 refactor(bip32): rename derivation path extend to join (Trevor Arjeski)
6ee99f841349fbd2117c19fba57dc8bedd7c96af refactor(bip32): rename DerivationPath to RelativeDerivationPath (Trevor Arjeski)
65ab45cd19e1dd7fd4e2c5db688e05f981e106d8 refactor(bip32): split relative and absolute bip32 derivation paths (Trevor Arjeski)
Pull request description:
This is part of a larger refactor on the bip32 module.
- Make DerivationPath parse only relative paths
- Add AbsoluteDerivationPath for master prefixed (m) notation
Splitting DerivationPath into relative and absolute types will force the
derivation APIs to be more explicit about which path is being used to derive a
child key.
---
Later I want to refactor the derivation APIs and key origin to make them more
strictly typed and less ambiguous and this will assist with that.
Used an LLM to generate the ParseDerivationPathError type and doc comments for
the changes.
Relates to https://github.com/rust-bitcoin/rust-bitcoin/issues/4770
ACKs for top commit:
tcharding:
ACK 83afae528ab3723212c8f307d4a5285ebbf68205
apoelstra:
ACK 83afae528ab3723212c8f307d4a5285ebbf68205; successfully ran local tests
Tree-SHA512: ef38698a3fcf05e442e2b6c0ae8c00acafb7e4e6089e7e997a7cd2d9d13bd45a746432baed8141f8e2eaffd0b2d2e8bf0c64acea28625f22ac414cc1723c009c A
Andrew Poelstra committed
f4477b1c2be23ccedae2e09ea49929163e2e27ae