Releases: ebellocchia/bip_utils
Releases · ebellocchia/bip_utils
Version 2.5.0
- Add support for Electrum mnemonics and keys derivation (both v1 and v2)
- Module for BIP32 keys serialization/deserialization available for external use
- Add support for Axelar coin
- Add support for uncompressed public keys to
P2PKHAddrEncoder
- Add support for SLIP-0032
Bip32Path
can distinguish between absolute and relative paths
Bip32PathParser
discards empty elements
- Some rework on the bech32 and bip32_key_ser modules
Version 2.4.0
- Add local implementation of Substrate SCALE encoding (remove dependency from scalecodec)
- Add support to BIP32-Ed25519 (Khovratovich/Law) derivation scheme
Bip32Base.FromPrivateKey
and Bip32Base.FromPublicKey
can now recover the full derivation data (if specified)
Bip44Base.FromPrivateKey
can now recover the full derivation data (if specified)
- Add
Bip44Base.FromPublicKey
method
- Always use Cryptodome for RIPEMD160
Version 2.3.0
- Add support for Bitcoin Taproot addresses (P2TR)
- Add support for BIP-0086
- Add support for bech32m
- Add support for Algorand 25-word mnemonic
- Add support for Solana SPL token
- P2WPKH decoding/encoding methods don't need anymore the witness version as parameter, since it's fixed to zero internally (it can still be passed without errors though, it's just ignored)
- Use Cryptodome if ripemd160 and sha512_256 algorithms are not available in hashlib
- Add documentation using sphinx
- Some refactoring for mnemonic module
- Breaking changes:
- Mnemonic-specific checksum exceptions (i.e.
Bip39ChecksumError
and MoneroChecksumError
) were replaced by the common MnemonicChecksumError
Version 2.2.1
- Exported some missing utility classes
Version 2.2.0
- Add support for the following coins: Akash Network, Certik, Near Protocol, Osmosis, Secret Network:
Coin |
Main net enum |
Test net enum |
Akash Network |
Bip44Coins.AKASH_NETWORK |
- |
Certik |
Bip44Coins.CERTIK |
- |
Near Protocol |
Bip44Coins.NEAR_PROTOCOL |
- |
Osmosis |
Bip44Coins.OSMOSIS |
- |
Secret Network (old path) |
Bip44Coins.SECRET_NETWORK_OLD |
- |
Secret Network (new path) |
Bip44Coins.SECRET_NETWORK_NEW |
- |
- Add possibility to decode and validate addresses. The old address classes are split into decoder/encoder classes to maintain the same design of the other decoding/encoding modules (e.g.
AlgoAddrDecoder
, AlgoAddrEncoder
). The old address classes are kept for compatibility but they are just aliases for the correspondent encoder class (e.g. AlgoAddr
-> AlgoAddrEncoder
) .
- Add support to BIP-0038 (with and without EC multiplication)
- Some minor improvements and refactoring
Version 2.1.0
- Add support for Celo, eCash and Bitcoin Cash Simple Ledger Protocol:
Coin |
Main net enum |
Test net enum |
Bitcoin Cash SLP |
Bip44Coins.BITCOIN_CASH_SLP |
Bip44Coins.BITCOIN_CASH_SLP_TESTNET |
Celo |
Bip44Coins.CELO |
- |
eCash |
Bip44Coins.ECASH |
Bip44Coins.ECASH_TESTNET |
Coin |
Main net enum |
Test net enum |
Bitcoin Cash SLP |
Bip49Coins.BITCOIN_CASH_SLP |
Bip49Coins.BITCOIN_CASH_SLP_TESTNET |
eCash |
Bip49Coins.ECASH |
Bip49Coins.ECASH_TESTNET |
- Add class
BchAddrConverter
for converting Bitcoin Cash addresses
- Fix point from/to bytes conversion when using ecdsa < 0.17
Version 2.0.2
- Add configuration files for flake8 and prospector
- Fix all flake8 warnings
- Fix the vast majority of prospector warnings
- Remove all star imports (
import *
)
Version 2.0.1
- Fix setup.py so that it doesn't include the tests folder in the final distribution
Version 2.0.0
- Lots of improvements and new features:
- Add implementation of SLIP-0010
- Add support for nist256p1, ed25519, ed25519-blake2b and sr25519 curves
- Add support for new coins based on the new curves (see below)
- Add support for Substrate (Polkadot ecosystem) keys derivation and addresses generation
- Add support for Monero mnemonic generation and validation
- Add support for Monero keys derivation and addresses/subaddresses generation
- Usage of coincurve library for secp256k1 curve (still possible to use ecdsa, anyway)
- Better usage of private and public keys:
- Improved and more complete class hierarchy and design
- Easier construction (from bytes, from point, from object)
- Possibility to pass as argument the key object in addition to key raw bytes (e.g. to methods of Bip and address classes)
- Keys validation
- Possibility to use both compressed/uncompressed public keys without the need of converting
- General code refactoring and re-design to keep everything neat and tidy
- New supported coins:
- BIP44 coins:
- Algorand
- Elrond
- Filecoin
- Kusama (based on BIP44 and ed25519 SLIP-0010, like TrustWallet, it won't generate the same addresses of Polkadot-JS)
- Monero (based on BIP44 and secp256k1 or ed25519 SLIP-0010, it won't generate the same addresses of the official wallets but it supports subaddresses generation)
- Nano
- NEO
- Ontology
- Polkadot (based on BIP44 and ed25519 SLIP-0010, like TrustWallet, it won't generate the same addresses of Polkadot-JS)
- Solana
- Stellar
- Tezos
- Theta Network
- Zilliqa
- Substrate coins (based on the official wallet, e.g. Polkadot-JS):
- Acala
- Bifrost
- Chainx
- Edgeware
- Karura
- Kusama
- Moonbeam
- Moonriver
- Phala Network
- Plasm Network
- Sora
- Stafi
- Polkadot
- Generic Substrate coin
- Monero (based on the official wallet)
- Breaking changes:
Bip32
class does not exist anymore. It has been replaced by different classes depending on the underlying elliptic curve: Bip32Ed25519Slip
, Bip32Ed25519Blake2bSlip
, Bip32Nist256p1
, Bip32Secp256k1
Bip49
and Bip84
now have their own coin types: Bip49Coins
and Bip84Coins
Bip39MnemonicValidator.GetEntropy
method has been replaced by Bip39MnemonicDecoder.Decode
method
- The mnemonic in
Bip39MnemonicValidator
class is passed as argument to the methods instead of the constructor (e.g. Bip39MnemonicValidator(mnemonic).IsValid()
-> Bip39MnemonicValidator().IsValid(mnemonic)
)
P2PKH, P2SH and P2WPKH
address classes now have an "Addr" suffix (i.e. P2PKHAddr, P2SHAddr and P2WPKHAddr
, same for BCH versions)
- In address classes, the
ToAddress
method now is called EncodeKey
(e.g. EthAddr.ToAddress
-> EthAddr.EncodeKey
) and the additional parameters shall be explicitly named
AtomBech32Decoder
/AtomBech32Encoder
is now simply called Bech32Decoder
/Bech32Encoder
P2PKHAddr
/P2SHAddr
/P2WPKHAddr
classes do not have anymore Bitcoin net versions as default parameter
Version 1.11.1
- Add missing MANIFEST.in file, that was preventing the package to be installed from pip