|
1 | | -# unreleased |
2 | | - |
3 | | -- Bump MSRV to Rust 1.56.1 |
4 | | -- Remove "no-std" feature |
| 1 | +# 0.32.0 - TODO: Add date when we do final release |
| 2 | + |
| 3 | +- Bump MSRV to Rust 1.56.1 [#2188](https://github.com/rust-bitcoin/rust-bitcoin/pull/2188) |
| 4 | +- Remove "no-std" feature [#2233](https://github.com/rust-bitcoin/rust-bitcoin/pull/2233) |
| 5 | +- Enforce displaying `Amount` with trailing zeros [#2604](https://github.com/rust-bitcoin/rust-bitcoin/pull/2604) |
| 6 | + |
| 7 | +## Things you will almost certainly hit when upgrading |
| 8 | + |
| 9 | +- Rename `Signature` field names [#2338](https://github.com/rust-bitcoin/rust-bitcoin/pull/2338) |
| 10 | + - `sig` becomes `signature` |
| 11 | + - `hash_ty` becomes `sighash_type` |
| 12 | +- Rename `txid` to `compute_txid` [#2366](https://github.com/rust-bitcoin/rust-bitcoin/pull/2366) |
| 13 | +- In hardcoded BIP-32 derivation paths: Remove `m/` prefix requirement [#2451](https://github.com/rust-bitcoin/rust-bitcoin/pull/2451) |
| 14 | + |
| 15 | +## Crate smashing |
| 16 | + |
| 17 | +This release we continued our effort to split up the library into |
| 18 | +smaller crates AKA crate smashing. |
| 19 | + |
| 20 | +- Release new `bitcoin-units` crate [docs](https://docs.rs/bitcoin-units/0.1.1/bitcoin_units/) |
| 21 | +- Release new `base58ck` crate [docs](https://docs.rs/base58ck/0.1.0/base58ck/) |
| 22 | +- Release new `bitcoin-io` crate [docs](https://docs.rs/bitcoin-io/0.1.2/bitcoin_io/) |
| 23 | + |
| 24 | +## Bug fixes |
| 25 | + |
| 26 | +- Fix `FeeRate::checked_mul_by_weight` [#2182](https://github.com/rust-bitcoin/rust-bitcoin/pull/2182) |
| 27 | +- Use network when calculating difficulty [#2168](https://github.com/rust-bitcoin/rust-bitcoin/pull/2168) |
| 28 | +- Fix `InputWeightPrediction::P2WPKH_MAX` constant DER sig length [#2213](https://github.com/rust-bitcoin/rust-bitcoin/pull/2213) |
| 29 | +- Fix CJDNS marker byte check [#2546](https://github.com/rust-bitcoin/rust-bitcoin/pull/2546) |
| 30 | +- Add resource limit check during deserialization of merkle block [#2607](https://github.com/rust-bitcoin/rust-bitcoin/pull/2607) |
| 31 | + |
| 32 | +## Changes to and involving the `Network` type |
| 33 | + |
| 34 | +In release 0.31.0 we managed to annoy a lot of people by the addition of `non_exhaustive` to the |
| 35 | +`Network` type. After much discussion, and in an effort to cater to multiple camps, we did a bunch |
| 36 | +of changes this release. To sum up, "network" is ill defined and it means different things to |
| 37 | +different devs/software. Your software should probably have some custom handling of whatever |
| 38 | +"network" means to you. |
| 39 | + |
| 40 | +In particular consider having some type that implements `AsRef<Params>`, we have attempted to |
| 41 | + replace `Network` in much of the API ([#2541](https://github.com/rust-bitcoin/rust-bitcoin/pull/2541)). |
| 42 | + |
| 43 | +- Add `NetworkKind` [#2232](https://github.com/rust-bitcoin/rust-bitcoin/pull/2232) |
| 44 | +- Reduce usage of `Network` in the public API [#2541](https://github.com/rust-bitcoin/rust-bitcoin/pull/2541) |
| 45 | +- Remove `Network` from `AddressInner` [#1832](https://github.com/rust-bitcoin/rust-bitcoin/pull/1832) |
| 46 | +- Add consts to `Params` for individual networks [#2396](https://github.com/rust-bitcoin/rust-bitcoin/pull/2396) |
| 47 | +- Add `params()` method to `Network` [#2172](https://github.com/rust-bitcoin/rust-bitcoin/pull/2172) |
| 48 | +- Use `KnowHrp`` instead of `Network` [#2387](https://github.com/rust-bitcoin/rust-bitcoin/pull/2387) |
| 49 | +- Add check to max difficulty transition threshold [#2337](https://github.com/rust-bitcoin/rust-bitcoin/pull/2337) |
| 50 | + |
| 51 | +## Other API additions |
| 52 | + |
| 53 | +- Add `CompressedPublicKey` [#2277](https://github.com/rust-bitcoin/rust-bitcoin/pull/2277) |
| 54 | +- Add a `consensus::deserialize_hex` function [#2039](https://github.com/rust-bitcoin/rust-bitcoin/pull/2039) |
| 55 | +- Add `Witness::p2tr_key_spend` function [#2097](https://github.com/rust-bitcoin/rust-bitcoin/pull/2097) |
| 56 | +- Add `taproot::SerializedSignature` [#2156](https://github.com/rust-bitcoin/rust-bitcoin/pull/2156) |
| 57 | +- Add input weight predictions for p2pkh outputs [#2185](https://github.com/rust-bitcoin/rust-bitcoin/pull/2185) |
| 58 | +- Add `Weight::from_vb_weight function` function (added in [#2206](https://github.com/rust-bitcoin/rust-bitcoin/pull/2206), |
| 59 | + renamed in [#2228](https://github.com/rust-bitcoin/rust-bitcoin/pull/2228) |
| 60 | +- Implement `LowerHex` and `UpperHex` for `CompactTarget` [#2221](https://github.com/rust-bitcoin/rust-bitcoin/pull/2221) |
| 61 | +- Add conversions from TXIDs to merkle nodes [#2227](https://github.com/rust-bitcoin/rust-bitcoin/pull/2227) |
| 62 | +- Add `transaction::effective_value()` function [#2230](https://github.com/rust-bitcoin/rust-bitcoin/pull/2230) |
| 63 | +- Improve `LockTime`s and related types: |
| 64 | + - Improve relative locktime API [#2549](https://github.com/rust-bitcoin/rust-bitcoin/pull/2549) |
| 65 | + - Implement `ordered::ArbitraryOrd` for absolute and relative locktimes, introducing the "ordered" feature: |
| 66 | + - [#2581](https://github.com/rust-bitcoin/rust-bitcoin/pull/2581) |
| 67 | + - [#2248](https://github.com/rust-bitcoin/rust-bitcoin/pull/2248) |
| 68 | +- Add and use custom `ArrayVec` |
| 69 | + - [#2287](https://github.com/rust-bitcoin/rust-bitcoin/pull/2287) |
| 70 | + - [#2286](https://github.com/rust-bitcoin/rust-bitcoin/pull/2286) |
| 71 | + - [#2310](https://github.com/rust-bitcoin/rust-bitcoin/pull/2310) |
| 72 | +- Add the implementation of `Display` for `transaction::Version` [#2309](https://github.com/rust-bitcoin/rust-bitcoin/pull/2309) |
| 73 | +- Add functionality to serialize signatures to a writer [#2392](https://github.com/rust-bitcoin/rust-bitcoin/pull/2392) |
| 74 | +- Add unchecked integer operations to `Amount` and `SignedAmount` (add, sum etc.) [#2436](https://github.com/rust-bitcoin/rust-bitcoin/pull/2436) |
| 75 | +- Add methods `p2wpkh_script_code` to `Script` and `ScriptBuf` [#2445](https://github.com/rust-bitcoin/rust-bitcoin/pull/2445) |
| 76 | +- Improve API for signing Taproot inputs in PSBTs [#2458](https://github.com/rust-bitcoin/rust-bitcoin/pull/2458) |
| 77 | +- Add `TapNodeHash` getter method on `TapTree` and `NodeInfo` [#2467](https://github.com/rust-bitcoin/rust-bitcoin/pull/2467) |
| 78 | +- Add hex parsing to pow types [#2514](https://github.com/rust-bitcoin/rust-bitcoin/pull/2514) |
| 79 | +- Implement `From<core::convert::Infallible>` for errors [#2516](https://github.com/rust-bitcoin/rust-bitcoin/pull/2516) |
| 80 | +- Add ServiceFlags::P2P_V2 [#2555](https://github.com/rust-bitcoin/rust-bitcoin/pull/2555) |
| 81 | + |
| 82 | +## Other API breaking changes |
| 83 | + |
| 84 | +- Require `io::BufRead` instead of `io::Read` in consensus decode trait [#2240](https://github.com/rust-bitcoin/rust-bitcoin/pull/2240) |
| 85 | +- Make `Payload` and `AddressEncoding` private [#1979](https://github.com/rust-bitcoin/rust-bitcoin/pull/1979) |
| 86 | +- Remove `bech32` from the public API [#2381](https://github.com/rust-bitcoin/rust-bitcoin/pull/2381) |
| 87 | +- Make from_hex inherent for byte-like types [#2491](https://github.com/rust-bitcoin/rust-bitcoin/pull/2491) |
| 88 | +- Remove the FromHexStr trait [#2492](https://github.com/rust-bitcoin/rust-bitcoin/pull/2492) |
| 89 | + |
| 90 | +## Error handling |
| 91 | + |
| 92 | +- Split `Prevouts` errors out into specific error types [#2042](https://github.com/rust-bitcoin/rust-bitcoin/pull/2042) |
| 93 | +- Improve error handling in the `sighash` module [#2329](https://github.com/rust-bitcoin/rust-bitcoin/pull/2329) |
| 94 | +- Improve lock time errors [#2417](https://github.com/rust-bitcoin/rust-bitcoin/pull/2417) |
| 95 | +- Split relative locktime error up [#2433](https://github.com/rust-bitcoin/rust-bitcoin/pull/2433) |
| 96 | +- Improve `amount` module errors [#2487](https://github.com/rust-bitcoin/rust-bitcoin/pull/2487) |
| 97 | +- Add the `FromScriptError` for handling errors in address [#2497](https://github.com/rust-bitcoin/rust-bitcoin/pull/2497) |
| 98 | +- Add `NetworkValidationError` [#2508](https://github.com/rust-bitcoin/rust-bitcoin/pull/2508) but don't return it [#2610](https://github.com/rust-bitcoin/rust-bitcoin/pull/2610) |
| 99 | +- Improve leaf errors ("leaf" means not enum with nested error type) [#2530](https://github.com/rust-bitcoin/rust-bitcoin/pull/2530) |
5 | 100 |
|
6 | 101 | # 0.31.1 - 2023-10-18 |
7 | 102 |
|
|
0 commit comments