|
1 | 1 | # Payjoin Changelog |
2 | 2 |
|
| 3 | +## 1.0.0-rc.4 |
| 4 | + |
| 5 | +This release locks down the public API ahead of the 1.0 freeze. It insulates the bitcoin-ohttp and bitcoin-hpke types from the public interface, marks public enums non_exhaustive and persistence transition types must_use, exposes transient versus fatal classification on PersistedError, corrects the create_error_request return type, renames the Receiver<Monitor> check methods, and removes utxos_to_be_locked. It also hardens the receiver against panic paths and fixes bugs in output substitution change handling, session replay, and coin selection. |
| 6 | + |
| 7 | +Selected Improvements: |
| 8 | + |
| 9 | +### API Stabilization |
| 10 | + |
| 11 | +- Insulate `bitcoin-ohttp` and `bitcoin-hpke` from the public API (#1702) |
| 12 | +- Apply 1.0 freeze-required API fixes: `#[non_exhaustive]` enums, `ShortIdError`, `OutputSubstitution` export, and `#[must_use]` transition types (#1703) |
| 13 | +- Expose transient versus fatal classification on `PersistedError` and return current state in transient errors (#1724) |
| 14 | +- Correct `create_error_request` return type (#1715) |
| 15 | +- Rename `Receiver<Monitor>` check methods (`check_for_broadcast` to `check_for_transaction`) (#1661, #1684) |
| 16 | +- Remove `utxos_to_be_locked` (#1719) |
| 17 | +- Add `InputPair::outpoint()` accessor (#1654) |
| 18 | + |
| 19 | +### Bug Fixes and Hardening |
| 20 | + |
| 21 | +- Prevent receiver panic paths (#1704) |
| 22 | +- Fix output substitution change misdirect (#1685) |
| 23 | +- Fix session replay reporting closed sessions as expired (#1672) |
| 24 | +- Fix `try_preserving_privacy` returning `Empty` when candidates exist (#1629) |
| 25 | +- Assert bech32 encoding is uppercase (#1666) |
| 26 | + |
| 27 | +### Dependencies |
| 28 | + |
| 29 | +- Update to bitcoind async client 0.14 (#1646) |
| 30 | +- Downgrade transitive dependencies to match minimal direct dependencies (#1640) |
| 31 | + |
| 32 | +### Testing and Documentation |
| 33 | + |
| 34 | +- Add tests to catch mutants (#1622) |
| 35 | +- Add spec-related consts for readability in tests (#1699) |
| 36 | +- Employ new `fallback_tx` method (#1625) |
| 37 | +- Fix `check_payment` docstring (#1626) |
| 38 | +- Fix commented test assert (#1624) |
| 39 | +- Attach `--no-run` to feature-gated test runs to ensure compilation (#1621) |
| 40 | + |
3 | 41 | ## 1.0.0-rc.3 |
4 | 42 |
|
5 | 43 | This release introduces sender and receiver cancel() APIs, fallback typestates for both sender and receiver, merges Cancel/Failure error variants and carves out dedicated errors (CoinSelectionError, DecapsulationError, dedicated create-request error), promotes InMemoryTestPersister to InMemoryPersister while removing NoopSessionPersister, replaces the url crate dependency with an internal Url type, adds is_expired and ErrorCode/WellKnownError::code to the error hierarchy, and removes sender sigs from receiver psbt_to_sign. |
|
0 commit comments