Skip to content

Releases: ebellocchia/bip_utils

Version 2.5.0

29 Jun 09:45
Compare
Choose a tag to compare
  • 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

17 Jun 21:26
Compare
Choose a tag to compare
  • 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

19 Mar 14:20
Compare
Choose a tag to compare
  • 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

26 Feb 13:33
Compare
Choose a tag to compare
  • Exported some missing utility classes

Version 2.2.0

25 Feb 12:44
Compare
Choose a tag to compare
  • 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

01 Nov 13:34
Compare
Choose a tag to compare
  • 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

18 Oct 11:49
Compare
Choose a tag to compare
  • 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

13 Oct 12:56
Compare
Choose a tag to compare
  • Fix setup.py so that it doesn't include the tests folder in the final distribution

Version 2.0.0

13 Oct 08:48
Compare
Choose a tag to compare
  • 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

23 May 10:00
Compare
Choose a tag to compare
  • Add missing MANIFEST.in file, that was preventing the package to be installed from pip