This is a breaking release.
- Drop support for Python 3.7.
- Support Coincurve up to version 20.
- Drop base58 dependency. Port base58 code directly in-tree as a
base58
module. - Fix circular dependency in source installation.
- A new method
get_fingerprint()
was added.
- Support Coincurve up to version 18. This version includes support for BIP340 x-only keys and Schnorr signatures.
- Implement a pure Python fallback for RIPEMD160 in case
hashlib
does not provide it. NOTE: the Python implementation was copied from a test-only implementation and is not constant time. This shouldn't be an issue for the usage we make of it here.
- Actually support Coincurve up to version 17..
This is a breaking release.
- Python 3.10 support.
- Drop Python 3.6 support (EOL).
- Support Coincurve up to version 17.
- Two new methods were added:
get_xpub_bytes()
andget_xpriv_bytes()
This is a breaking release.
- Added test vector #5 for more sanity checks when deserializing an xpub or an xpriv (see bitcoin/bips#921).
- Renamed
get_master_xpub
andget_master_xpriv
toget_xpub
andget_xpriv
. - We now refuse to create a
BIP32
object with:- An unknown network
- A depth of 0 (master) and a non-0 index or fingerprint
- Added test vector #4 for private keys with leading zeros (see bitcoin/bips#1030)
- (Breaking) Bumped Coincurve dependency to
0.15
- Re-arranged the 2 dependencies to use "compatible release" notation
- Started to use a changelog
- New
InvalidInputError
raised instead of bluntly asserting on insane inputs - New
PrivateDerivationError
raised when trying to access private keys without private keys being set (eg for hardened derivation). - Bugfix: we can now parse "master paths": ie do
pubkey_from_path("m")
orpubkey_from_path([])