Skip to content

Latest commit

 

History

History
186 lines (150 loc) · 12.1 KB

CHANGELOG.md

File metadata and controls

186 lines (150 loc) · 12.1 KB

# 12.2.0 - July 20, 2024

  • Fix panics while decoding large miniscripts from script #712

12.1.0 - July 9, 2024

  • Make LoggerAssetProvider constructible #697
  • Explicitly track recursion depth in fragments #704

12.0.0 - May 22, 2024

  • Update MSRV to Rust v1.56.1 #639
  • Remove sketchy LikelyFalse error #645
  • Drop the Property trait entirely #652
  • Improve compiler logic when deciding between conjunctions and multi/multi_a #657
  • Several locktime improvements #654
  • Derive Hash for pub items #659
  • Upgrade bech32 dependency to v0.11.0 #661
  • Return Weight type for max_weight_to_satisfy methods #664

Introduce a new Threshold type

Performance/compiled time improvements

  • Remove recursion in semantic module #612
  • Remove generics from Error by making fragment a String #642
  • Remove unused generic on check_witness #644
  • Add conditional formatting for Terminal #651

Other internal cleanups / improvements

  • Remove internals dependency #631
  • Introduce an example binary useful for profiling #646
  • Refactor out type_check #649
  • Replace macros with traits, using trait bound trick #650

11.0.0 - November 16, 2023

  • Add the planning module #592
  • Bump MSRV to 1.48 #569
  • Upgrade rust-bitcoin to v0.31.0 #618
  • Reduce binary bloat by removing generic param from type_check 584
  • Add height to tap tree 588
  • Improve TapTree API 617
  • Remove "unstable" feature 482
  • Remove hashbrown dependency 564
  • Add method to convert expr_raw_pkh into pkh 557
  • psbt: Rewrite input replacement to avoid forgetting fields 568

10.0.0 - May 24, 2023

9.0.0 - November 5, 2022

  • Fixed a bug dealing with dissatisfying pkh inside thresh
  • Changed the signature of Satisfier::lookup_raw_pkh_pk API. Only custom implementations of Satisfier need to be updated. The psbt APIs are unchanged.
  • Fixed a bug related to display of raw_pk_h. These descriptors are experimental and only usable by opting via ExtParams while parsing string.

8.0.0 - October 20, 2022

This release contains several significant API overhauls, as well as a bump of our MSRV from 1.29 to 1.41. Users are encouraged to update their compiler to 1.41 before updating to this version.

It includes more Taproot support, but users should be aware that Taproot support for Miniscript is not standardized and is subject to change in the future. See this gist for our thinking regarding this at the time of release.

7.0.0 - April 20, 2022

  • Fixed miniscript type system bug. This is a security vulnerability and users are strongly encouraged to upgrade. See this (link)[https://github.com/rust-bitcoin/rust-miniscript/pull/349/commits/db97c39afa4053c2c3917f04392f6e24964b3972] for details.
  • Support for tr descriptors with miniscript leaves and multi_a fragment
  • Changes to MiniscriptKey and ToPublicKey traits for x-only keys support
  • Add PsbtExt trait for psbt operations
    • Psbt::update_desc adds information from a descriptor to a psbt. This figures out the type of the descriptor and adds corresponding redeem script/witness script and tap tree information
  • Add derived_descriptor API to Descriptor so that users no longer need to use translate APIs. See examples/xpub_descriptor for usage
  • Update DescriptorTrait: script_code and explicit_script can now fail because of taproot descriptors
  • Add PreTaprootDescriptor and PreTaprootDescriptorTrait to support non-failing versions of script_code and explicit_script for non taproot descriptors
  • Overhaul the interpreter API to provide simpler APIs iter(prevouts) and iter_assume_sig() so that it no longer takes a closure input.
  • Add interpreter support for taproot transactions.
  • Works with rust-bitcoin 0.28.0

6.0.1 - Aug 5, 2021

  • The lift method on a Miniscript node was fixed. It would previously mix up the X and Y argument of an andor fragment.

6.0.0 - Jul 29, 2021

  • bump rust-bitcoin to 0.27
  • several bugfixes

5.0.0 - Jan 14, 2021

  • Remove PkCtx from the API
  • Move descriptors into their own types, with an enum containing all of them
  • Move descriptor functionality into a trait
  • Remove FromStr bound from MiniscriptKeyand MiniscriptKey::Hash
  • Various DescriptorPublicKey improvements
  • Allow hardened paths in DescriptorPublicKey, remove direct ToPublicKey implementation
  • Change Option to Result in all APIs
  • bump rust-bitcoin to 0.26

4.0.0 - Nov 23, 2020

  • Add support for parsing secret keys
  • Add sortedmulti descriptor
  • Added standardness and other sanity checks
  • Cleaned up Error type and return values of most of the API
  • Overhauled satisfied_constraints module into a new Iterpreter API

3.0.0 - Oct 13, 2020

  • Bump MSRV to 1.29

2.0.0 - Oct 1, 2020

  • Changes to the miniscript type system to detect an invalid combination of heightlocks and timelocks
    • Lift miniscripts can now fail. Earlier it always succeeded and gave the resulting Semantic Policy
    • Compiler will not compile policies that contain at least one unspendable path
  • Added support for Descriptor PublicKeys(xpub)
  • Added a generic psbt finalizer and extractor
  • Updated Satisfaction API for checking time/height before setting satisfaction
  • Added a policy entailment API for more miniscript semantic analysis

1.0.0 - July 6, 2020

  • Added the following aliases to miniscript for ease of operations
    • Rename pk to pk_k
    • Rename thresh_m to multi
    • Add alias pk(K) = c:pk_k(K)
    • Add alias pkh(K) = c:pk_h(K)
  • Fixed Miniscript parser bugs when decoding Hashlocks
  • Added scriptContext(Legacy and Segwitv0) to Miniscript.
  • Miscellaneous fixes against DoS attacks for heavy nesting.
  • Fixed Satisfier bug that caused flipping of arguments for and_v and and_n and and_or