Skip to content

Commit 8aae18c

Browse files
committed
create massive changelog for 13.0
1 parent 609d4fb commit 8aae18c

File tree

1 file changed

+94
-3
lines changed

1 file changed

+94
-3
lines changed

CHANGELOG.md

Lines changed: 94 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,12 +1,103 @@
1-
# # 12.3.1 - April 1, 2025
1+
# 13.0.0 - October 22, 2025
2+
3+
This release is a pretty big one and includes several significant refactors:
4+
5+
- Eliminate recursion throughout (most of) the library, by writing iterative algorithms.
6+
Includes many small bugfixes.
7+
- Eliminate many of the stringly typed errors; refactor `PolicyError`
8+
- Rewrite the Taproot API based on feedback from Mike Tidwell's development of the "Capture
9+
the Bitcoin" competition at TABConf 6. (See [#766](https://github.com/rust-bitcoin/rust-miniscript/pull/766).)
10+
11+
The full changelog:
12+
13+
- remove `Ctx::check_witness` and replace `Miniscript::parse_insane` with `Miniscript::decode_consensus`
14+
[#871](https://github.com/rust-bitcoin/rust-miniscript/pull/871)
15+
- refactor data structures in the typechecker and fix some issues around thresholds
16+
[#859](https://github.com/rust-bitcoin/rust-miniscript/pull/859)
17+
- fix multiple bugs in size estimation and limit enforcement for descriptors with uncompressed keys
18+
[#849](https://github.com/rust-bitcoin/rust-miniscript/pull/849)
19+
- fix size estimation for Taproot control blocks in satisfactions
20+
[#858](https://github.com/rust-bitcoin/rust-miniscript/pull/858)
21+
- Extend `GetKey` impls and fix some bugs
22+
[#851](https://github.com/rust-bitcoin/rust-miniscript/pull/851)
23+
[#861](https://github.com/rust-bitcoin/rust-miniscript/pull/861)
24+
[#862](https://github.com/rust-bitcoin/rust-miniscript/pull/862)
25+
[#863](https://github.com/rust-bitcoin/rust-miniscript/pull/863)
26+
(backport in [#860](https://github.com/rust-bitcoin/rust-miniscript/pull/860))
27+
- improve decoder from `Script` implementation and error type; rename `parse_with_ext` to `decode_with_ext`
28+
[#845](https://github.com/rust-bitcoin/rust-miniscript/pull/845)
29+
- enforce that xpubs in descriptors have the same network
30+
[#848](https://github.com/rust-bitcoin/rust-miniscript/pull/848)
31+
- fix malleability behavior in Taproot satisfier
32+
[#826](https://github.com/rust-bitcoin/rust-miniscript/pull/846)
33+
- Fix `DefiniteDescriptorKey::new` to forbid multipath keys and hardened derivations (which would cause assertion failures)
34+
[#830](https://github.com/rust-bitcoin/rust-miniscript/pull/830)
35+
[#839](https://github.com/rust-bitcoin/rust-miniscript/pull/839)
36+
(backports in
37+
[#831](https://github.com/rust-bitcoin/rust-miniscript/pull/831)
38+
[#832](https://github.com/rust-bitcoin/rust-miniscript/pull/832)
39+
[#833](https://github.com/rust-bitcoin/rust-miniscript/pull/833)
40+
[#833](https://github.com/rust-bitcoin/rust-miniscript/pull/843))
41+
- add `Descriptor::iter_pk` to iterate over pubkeys in an arbitrary descriptor
42+
[#823](https://github.com/rust-bitcoin/rust-miniscript/pull/823)
43+
- satisfy: pass public key to `lookup_tap_key_spend_sig` to remind satisfier of the keyspend key
44+
[#827](https://github.com/rust-bitcoin/rust-miniscript/pull/827)
45+
- plan: remove unused `AssetProvider::provider_lookup_tap_control_block_map` from trait
46+
[#826](https://github.com/rust-bitcoin/rust-miniscript/pull/826)
47+
- Add conversions from `XOnlyPublicKey` to rust-miniscript descriptor keytypes
48+
[#818](https://github.com/rust-bitcoin/rust-miniscript/pull/818)
49+
(backport in [#819](https://github.com/rust-bitcoin/rust-miniscript/pull/819))
50+
- Fix crash in `parse_descriptor`
51+
[#809](https://github.com/rust-bitcoin/rust-miniscript/pull/809)
52+
(backport in [#816](https://github.com/rust-bitcoin/rust-miniscript/pull/816))
53+
- Eliminate the stringly-typed errors from descriptor key parsing [#804](https://github.com/rust-bitcoin/rust-miniscript/pull/804)
54+
- Rewrite the expression parser to be non-recursive, have much better error messages, and
55+
to be more correct.
56+
[#773](https://github.com/rust-bitcoin/rust-miniscript/pull/773)
57+
[#775](https://github.com/rust-bitcoin/rust-miniscript/pull/775)
58+
[#778](https://github.com/rust-bitcoin/rust-miniscript/pull/778)
59+
[#780](https://github.com/rust-bitcoin/rust-miniscript/pull/780)
60+
[#784](https://github.com/rust-bitcoin/rust-miniscript/pull/784)
61+
- Remove the `no-std` and `actual-serde` features [#769](https://github.com/rust-bitcoin/rust-miniscript/pull/769)
62+
- Rewrite the Taproot API
63+
[#751](https://github.com/rust-bitcoin/rust-miniscript/pull/751)
64+
[#802](https://github.com/rust-bitcoin/rust-miniscript/pull/802)
65+
[#807](https://github.com/rust-bitcoin/rust-miniscript/pull/807)
66+
[#808](https://github.com/rust-bitcoin/rust-miniscript/pull/808)
67+
[#815](https://github.com/rust-bitcoin/rust-miniscript/pull/815)
68+
[#828](https://github.com/rust-bitcoin/rust-miniscript/pull/828) (includes bugfix for compiler crash with 0-probability policy fragments)
69+
- Separate out many distinct "max size exceeded" errors
70+
[#758](https://github.com/rust-bitcoin/rust-miniscript/pull/758)
71+
[#760](https://github.com/rust-bitcoin/rust-miniscript/pull/760)
72+
- Fix spelling of `MaxWitnessItemsExceeded` error variant [#759](https://github.com/rust-bitcoin/rust-miniscript/pull/759)
73+
- Support conversion of multi-Xprivs into multi-Xpubs [#757](https://github.com/rust-bitcoin/rust-miniscript/pull/757)
74+
- Split "witness size exceeded" error from "bare script size exceeded" [#756](https://github.com/rust-bitcoin/rust-miniscript/pull/756)
75+
- Fix decoding WIF privkeys with BIP32 origins [#753](https://github.com/rust-bitcoin/rust-miniscript/pull/753)
76+
- Allow compiling `pk` descriptors to keyspend-only `tr` descriptors [#677](https://github.com/rust-bitcoin/rust-miniscript/pull/677)
77+
- Reduce "maximum pubkeys in multi_a" limit to 999 [#746](https://github.com/rust-bitcoin/rust-miniscript/pull/746)
78+
- **Remove `PartialEq` from `Error`** and introduce `StaticDebugAndDisplay` trait to
79+
help with boxing errors
80+
[#741](https://github.com/rust-bitcoin/rust-miniscript/pull/741)
81+
[#801](https://github.com/rust-bitcoin/rust-miniscript/pull/801)
82+
- Fix lower limit of relative locktime [#740](https://github.com/rust-bitcoin/rust-miniscript/pull/740)
83+
- Remove `TranslatePk` trait; move generics on `Translator` to associated types [#733](https://github.com/rust-bitcoin/rust-miniscript/pull/733)
84+
- Fix upper limit of absolute locktime [#719](https://github.com/rust-bitcoin/rust-miniscript/pull/719)
85+
- Clean up Taproot compiler and policy errors [#732](https://github.com/rust-bitcoin/rust-miniscript/pull/732)
86+
- Eliminate recursion throughout the library; extend the `TreeLike` trait; remove `Liftable` for `Terminal`
87+
[#722](https://github.com/rust-bitcoin/rust-miniscript/pull/722)
88+
[#724](https://github.com/rust-bitcoin/rust-miniscript/pull/724)
89+
[#725](https://github.com/rust-bitcoin/rust-miniscript/pull/725)
90+
- **Update MSRV to Rust 1.63** [#719](https://github.com/rust-bitcoin/rust-miniscript/pull/719)
91+
92+
# 12.3.1 - April 1, 2025
293

394
- Silent fix for CVE-2025-43707 (crash on satisfaction of particularly crafted `thresh` fragments) [#798](https://github.com/rust-bitcoin/rust-miniscript/pull/798)
495

5-
# # 12.3.0 - August 31, 2024
96+
# 12.3.0 - August 31, 2024
697

798
- Fix incorrect string serialization of `and_b` [#735](https://github.com/rust-bitcoin/rust-miniscript/pull/735)
899

9-
# # 12.2.0 - July 20, 2024
100+
# 12.2.0 - July 20, 2024
10101

11102
- Fix panics while decoding large miniscripts from script [#712](https://github.com/rust-bitcoin/rust-miniscript/pull/712)
12103

0 commit comments

Comments
 (0)