rust-bitcoin-unsafe-fast/CHANGELOG.md

17 KiB

0.27 - 2020-07-21

0.26.2 - 2021-06-08

The previous release changed the behavior of Display for ChildNumber, assuming that any correct usage would not be affected. Issue 608 goes into the details of why this isn't the case and how we broke both rust-miniscript and BDK.

0.26.1 - 2021-06-06 (yanked, see explanation above)

0.26.0 - 2020-12-21

0.25.1 - 2020-10-26

  • Remove an incorrect debug_assert that can cause a panic when running using the dev profile.

0.25.1 - 2020-10-07

0.25.0 - 2020-09-10

  • Bump MSRV to 1.29.0

0.24.0 - 2020-09-10

0.23.0 - 2020-01-07

  • Update secp256k1 dependency to 0.17.1.
  • Update bitcoinconsensus dependency to 0.19.0-1.
  • Update bech32 dependency to 0.7.2.

0.22.0 - 2020-01-07

  • Add ServiceFlags type.
  • Add NetworkMessage::command.
  • Add key::Error.
  • Add newtypes for specific hashes:
    • Txid
    • Wtxid
    • BlockHash
    • SigHash
    • PubkeyHash
    • ScriptHash
    • WPubkeyHash
    • WScriptHash
    • TxMerkleNode
    • WitnessMerkleNode
    • WitnessCommitment
    • XpubIdentifier
    • FilterHash
  • Refactor CommandString.
  • Refactor Reject message.
  • Rename RejectReason enum variants.
  • Refactor encode::Error.
  • Implement Default for TxIn.
  • Implement std::hash::Hash for Inventory.
  • Implement Copy for InvType enum.
  • Use psbt::Error in PartiallySignedTransaction::from_unsigned_tx.
  • Drop message decode max length to 4_000_000.
  • Drop hex and byteorder dependencies.

0.21.0 - 2019-10-02

0.20.0 - 2019-08-23

  • Update secp256k1 0.15 and bitcoinconsensus 0.17

0.19.0 - 2019-08-16

  • Add Amount and SignedAmount types.
  • Add BIP-158 support with BlockFilter and related types.
  • Add util::misc::signed_msg_hash() for signing messages.
  • Add MerkleBlock and PartialMerkleTree types.
  • bip32: Support serde serializaton for types and add some utility methods:
    • ChildNumber::increment
    • DerivationPath::children_from
    • DerivationPath::normal_children
    • DerivationPath::hardened_children
  • Add blockdata::script::Builder::push_verify to verify-ify an opcode.
  • Add sendheaders network message.
  • Add OutPoint::new() method and JSON-serialize as <txid>:<vout>.
  • Refactor Address type:
    • Now supports segwit addresses with version >0.
    • Add Address::from_script constructor.
    • Add Address::address_type inspector.
    • Parsing now returns an address::Error instead of encode::Error.
    • Removed bitcoin_bech32 dependency for bech32 payloads.
  • bip143: Rename witness_script to script_code
  • Rename BlockHeader::spv_validate to validate_pow
  • Rename OP_NOP2 and OP_NOP3 to OP_CLTV and OP_CSV
  • psbt: Use BTreeMap instead of HashMap to ensure serialization roundtrips.
  • Drop Decimal type.
  • Drop LoneHeaders type.
  • Replace strason dependency with (optional) serde_json.
  • Export the bitcoin_hashes and secp256k1 dependent crates.
  • Updated bitcoin_hashes dependency to v0.7.
  • Removed rand and serde_test dependencies.
  • Internal improvements to consensus encoding logic.

0.18.0 - 2019-03-21

  • Update bitcoin-bech32 version to 0.9
  • add to_bytes method for util::key types
  • add serde impls for util::key types
  • contracthash: minor cleanups, use util::key types instead of secp256k1 types

0.17.1 - 2019-03-04

  • Add some trait impls to PublicKey for miniscript interoperability

0.17.0 - 2019-02-28 - ``The PSBT Release''

0.16.0 - 2019-01-15

  • Reorganize opcode types to eliminate unsafe code
  • Un-expose some macros that were unintentionally exported
  • Update rust-secp256k1 dependency to 0.12
  • Remove util::iter::Pair type which does not belong in this library
  • Minor bugfixes and optimizations

0.15.1 - 2018-11-08

0.15.0 - 2018-11-03

  • Significant API overhaul:
    • Remove nu_select macro and low-level networking support
    • Move network::consensus_params to consensus::params
    • Move many other things into consensus::params
    • Move BitcoinHash from network::serialize to util::hash; remove impl for Vec<u8>
    • Rename/restructure error types
    • Rename Consensus{De,En}coder to consensus::{De,En}coder
    • Replace Raw{De,En}coder with blanket impls of consensus::{De,En}coder on io::Read and io::Write
    • make serialize and serialize_hex infallible
  • Make 0-input transaction de/serialization always use segwit
  • Implement FromStr and Display for many more types

0.14.2 - 2018-09-11

  • Add serde support for Address

0.14.1 - 2018-08-28

  • Reject non-compact VarInts on various types
  • Expose many types at the top level of the crate
  • Add Ord, PartialOrd impls for Script

0.14.0 - 2018-08-22

0.13.1

  • Add Display trait to uints, FromStr trait to Network enum
  • Add witness inv types to inv enum, constants for Bitcoin regtest network, is_coin_base accessor for tx inputs
  • Expose merkleroot(Vec<Sha256dHash>)

0.13

  • Move witnesses inside the TxIn structure
  • Add Transaction::get_weight()
  • Update bip143 sighash_all API to be more ergonomic

0.12

  • The in-memory blockchain was moved into a dedicated project rust-bitcoin-chain.
  • Removed old script interpreter
  • A new optional feature "bitcoinconsensus" lets this library use Bitcoin Core's native script verifier, wrappend into Rust by the rust-bitcoinconsenus project. See Transaction::verify and Script::verify methods.
  • Replaced Base58 traits with encode_slice, check_encode_slice, from and from_check functions in the base58 module.
  • Un-reversed the Debug output for Sha256dHash
  • Add bech32 support
  • Support segwit address types

0.11

  • Remove num dependency at Matt's request; agree this is obnoxious to require all downstream users to also have a num dependency just so they can use Uint256::from_u64.