Skip to content

Releases: btclib-org/btclib

v2023.7.12

12 Jul 13:36
600cb13
Compare
Choose a tag to compare

This is the last release supporting py37.

Major changes include:

  • added first draft implementation of descriptors
  • added first draft implementation of script engine
  • added taproot psbt fields
  • improved bip32 derivation (speeded-up, added one more test)
  • supported py3.12 with btclib_libsecp256k1
  • updated toolchain

v2023.5.30

13 Jun 15:50
ad850fe
Compare
Choose a tag to compare

Major changes include:

  • Fix circular import between script and b32

v2023.2.3

02 Feb 19:34
7766535
Compare
Choose a tag to compare

Major changes include:

  • enabled libsecp256k1 by default
  • improved documentation
  • used generic containers (Sequence instead of list, Mapping instead of dict) where possible

v2023.1.17

16 Jan 15:53
cfaad37
Compare
Choose a tag to compare

Major changes include:

  • exported names per module (bip32, block, ec, ecc, mnemonic, psbt, script, tx)
  • added join_psbts and join_txs
  • refactored bip340_nonce
  • improved integration of libsecp256k1
  • added secp256k1-py test vectors
  • improved typing
  • added SECURITY, CONTRIBUTING, bug report and feature request templates
  • added pre-commit hooks
  • adopted mypy --strict and from future import annotations

v2022.12.31

31 Dec 21:02
786b0e2
Compare
Choose a tag to compare

Major changes include:

v2022.7.20

20 Jul 12:03
5415608
Compare
Choose a tag to compare

Major changes include:

  • by default ssa, dsa and point multiplication are now sped up using btclib_libsecp256k1;
    this provides an 8 times speed up in benchmarks and 3 times in real world applications.

v2022.5.3

03 May 13:47
a074e68
Compare
Choose a tag to compare

Major changes includes:

  • dropped python 3.6 support
  • added support for btclib_libsecp256k1
  • the hashes.fingerprint function, removed in the previous version,
    has been reinstated in the to_pub_key module
  • encode_num and decode_num have been moved from
    script.op_codes to utils
  • op_pushdata and op_str have been renamed to
    serialize_bytes_command and serialize_str_command
  • script.op_codes has been removed and its functions merged in script
  • script serialization is now more consistent: all integers, even small
    ones, are now considered like bytes. To put small integers on the stack
    OP_X must be used explicitly. Using integers directly will lead to larger
    scripts that will be likely to be rejected by the network as not standard
  • check_validity is now correctly propagated inside each function

v2022.2.9

09 Feb 17:21
adc38d8
Compare
Choose a tag to compare

This is the latest release to support python 3.6

Major changes includes:

  • added bech32m
  • added Taproot support
  • introduced ScriptPubKey class
  • used script_type instead of prefix/wit_ver for b58/b32 address functions
  • split up op_int in op_num and op_int
  • prevented bip32 account derivation with arbitrarily high index
  • ensured der.Sig.r is congruent to a valid x-coordinate
  • renamed ScriptToken as Command
  • moved witness and script_pub_key into script folder
  • removed dataclasses_json dependency
  • introduced submodules
  • renamed Tx.tx_id as Tx.id
  • renamed deserialize as parse
  • renamed signature functions: trailing underscore marks hash-reduced versions
  • updated BIP32 test vectors
  • moved continuous testing from TravisCI to Github Actions
  • simplified configuration files
  • fixed pylint and flake8 warnings

v2020.12.19

19 Dec 12:48
62b5cae
Compare
Choose a tag to compare

Major changes includes:

  • added secp256k1 point multiplication based on efficient endomorphism
  • fixed ssa batch verification functions' logic
  • enforced snake_case variable naming convention, e.g. 'script_pub_key', etc.
  • added BIP32KeyOrigin, BIP32KeyPath, and BIP32KeyPaths
  • adopted str instead of bytes as default type for BIP32 keys, bms sigs, PSBTs, addresses, and WIFs; base58 and bech32 encodings keep returning bytes, like base64
  • cleaned up and refactored all dataclasses, now using serialize/deserialized and possibly b58encode/b58decode, b64encode/b64decode, etc.
  • renamed TxIn.witness as TxIn.script_witness
  • fixed Witness management in TxIn and Tx, including equality operator
  • consolidated sig_hash code into sig_hash module
  • added more script_pub_key functions: assert_p2pkh, is_p2pkh, etc.

v2020.11.23

22 Nov 20:32
8ab8797
Compare
Choose a tag to compare

Major changes includes:

  • updated BIP340 (Schnorr signature) implementation as per the latest changes in bitcoin core
  • refactored PsbtIn, PsbtOut, and Psbt
  • added legacy sighash
  • made btclib compatible with python 3.6
  • ssa.det_nonce now returns an int
  • moved tagged_hash from ssa into hashes module
  • added CurveGroup._y_aff_from_jac and removed unused methods
  • discontinued y_odd in favor of y_even as y-simmetry tiebreaker criterium
  • removed nonce input from dsa.sign and ssa.sign (only available from _sign functions)
  • cleaned up Exception handling, avoided bare/broad except
  • introduced btclib Exceptions that can be discriminated from regular Exceptions