Skip to content

Version 2.0.0

Compare
Choose a tag to compare
@ebellocchia ebellocchia released this 13 Oct 08:48
· 814 commits to master since this release
  • 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