SIGN IN SIGN UP

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