rust-bitcoin/CHANGELOG.md

8.8 KiB

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.