Original release notes
Summary
This release insulates the bitcoin_uri crate from payjoin's public API so that a breaking release of bitcoin_uri no longer forces a breaking release of payjoin. Uri and PjUri are now owned newtypes read through accessor methods instead of public fields, parsing returns payjoin's own UriParseError, and the UriExt trait is replaced by inherent methods. It also seals the persisted SessionOutcome ahead of the 1.0 database-compatibility freeze and exposes proposal transaction ID stability on receiver states.
Changelog
Selected Improvements:
API Changes
- Insulate
bitcoin_urifrom the public API:UriandPjUribecome owned
newtypes with accessor methods (address(), amount(), set_amount(), label(), message(), extras()), parsing returns the payjoin-owned UriParseError, and the UriExt trait is removed in favor of inherent check_pj_supported, assume_checked, and require_network methods (#1756)
SessionOutcomedrops the unused witness payload on aSuccessoutcome and
instead encapsulates a bitcoin::Txid instead. Also fully seal the enum by fully handling remaining cases with a new Unrecognized(Txid) arm ahead of the 1.0 database-compatibility freeze. (#1747)
- Expose
proposal_txid_is_stable()on the receiver states that hold the
fallback transaction, mirrored in payjoin-ffi (#1718)
Bug Fixes
- Fix the proposal transaction ID stability check for nested SegWit inputs
(#1718)
What's Changed
- Fix mrsv lint warnings by @benalleng in https://github.com/payjoin/rust-payjoin/pull/1744
- Remove Receiver::SessionEvent enum todo by @benalleng in https://github.com/payjoin/rust-payjoin/pull/1749
- Pre-1.0 Doorkeeper for SessionOutcome in by @DanGould in https://github.com/payjoin/rust-payjoin/pull/1747
- Expose proposal txid stability on receiver states by @chavic in https://github.com/payjoin/rust-payjoin/pull/1718
- Restore ScriptBuf and Witness test imports by @spacebear21 in https://github.com/payjoin/rust-payjoin/pull/1755
- Insulate bitcoin uri by @spacebear21 in https://github.com/payjoin/rust-payjoin/pull/1756
- Bump payjoin to version 1.0.0-rc.6 by @DanGould in https://github.com/payjoin/rust-payjoin/pull/1758
Full Changelog: https://github.com/payjoin/rust-payjoin/compare/payjoin-1.0.0-rc.5...payjoin-1.0.0-rc.6

