- 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 operationsPsbt::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 usetranslate
APIs. See examples/xpub_descriptor
for usage - Update
DescriptorTrait
:script_code
andexplicit_script
can now fail because of taproot descriptors - Add
PreTaprootDescriptor
andPreTaprootDescriptorTrait
to support non-failing versions ofscript_code
andexplicit_script
for non taproot descriptors - Overhaul the interpreter API to provide simpler APIs
iter(prevouts)
anditer_assume_sig()
so that it no longer takes a closure input. - Add interpreter support for taproot transactions.
- Works with rust-bitcoin 0.28.0
- The
lift
method on a Miniscript node was fixed. It would previously mix up theX
andY
argument of anandor
fragment.
- bump
rust-bitcoin
to 0.27 - several bugfixes
- 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 fromMiniscriptKey
andMiniscriptKey::Hash
- Various
DescriptorPublicKey
improvements - Allow hardened paths in
DescriptorPublicKey
, remove directToPublicKey
implementation - Change
Option
toResult
in all APIs - bump
rust-bitcoin
to 0.26
- 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 newIterpreter
API
- Bump MSRV to 1.29
- 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
- Added the following aliases to miniscript for ease of operations
- Rename
pk
topk_k
- Rename
thresh_m
tomulti
- Add alias
pk(K)
=c:pk_k(K)
- Add alias
pkh(K)
=c:pk_h(K)
- Rename
- Fixed Miniscript parser bugs when decoding Hashlocks
- Added scriptContext(
Legacy
andSegwitv0
) to Miniscript. - Miscellaneous fixes against DoS attacks for heavy nesting.
- Fixed Satisfier bug that caused flipping of arguments for
and_v
andand_n
andand_or