rust-bitcoin-unsafe-fast/bitcoin
Andrew Poelstra a66ad97fb6
bip32: split InvalidChildNumber and InvalidChildNumberFormat out of error
Currently in this module we have a distinction between an "index" which
is a number between [0, 2^31 - 1] which indexes into the set of normal
or hardened child numbers. We also have a child *number*, which within
the library is an opaque type, but can be freely converted into/out of a
u32 in the consensus encoding which uses the MSB as a normal/hardened
flag and the other bits to encode the index.

Probably we want to change ChildNumber::From<u32> to some sort of
from_consensus_u32 method, but that's out of scope for this PR. What is
*in scope*, though is fixing the error types.

In the existing code we have three problems:

* Our error type for a bad index is called InvalidChildNumber, rather
  than InvalidIndex, and the error message reflects this, which is wrong
  and confusing. (Some with InvalidChildNumberFormat.)
* The InvalidChildNumberFormat is always constructed from a ParseIntError
  from stdlib, but we always throw that away rather than preserving it.
* These two error variants only appear when parsing child numbers, or
  derivation paths which are lists of child numbers, but they are part
  of the main error enum.
2025-04-22 14:46:34 +00:00
..
contrib Remove rust-ordered dependency 2025-02-18 13:36:07 +11:00
embedded chore: remove unused cortex-m dependency from embedded Cargo.toml files in bitcoin and hashes modules. 2025-04-05 18:25:41 +08:00
examples bip32: make Xpriv::new_master be infallible 2025-04-22 14:45:36 +00:00
src bip32: split InvalidChildNumber and InvalidChildNumberFormat out of error 2025-04-22 14:46:34 +00:00
tests bip32: make Xpriv::new_master be infallible 2025-04-22 14:45:36 +00:00
CHANGELOG.md Merge rust-bitcoin/rust-bitcoin#4292: chore: fix grammatical errors 2025-03-30 15:19:49 +00:00
Cargo.toml Allow using the 'base64' feature in no_std environments 2025-04-19 19:31:11 +02:00