Summary
Insulate 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 become owned newtypes read through accessor methods, parsing returns payjoin's own UriParseError, and UriExt is replaced by inherent methods. This release also seals the persisted SessionOutcome ahead of the 1.0 database-compatibility freeze and exposes proposal transaction ID stability on receiver states.
Changelog
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-ownedUriParseError, and theUriExttrait is removed in favor of inherentcheck_pj_supported,assume_checked, andrequire_networkmethods (#1756) - Seal the persisted
SessionOutcomeas#[non_exhaustive]and drop its unused witness payload 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 #1744
- Remove Receiver::SessionEvent enum todo by @benalleng in #1749
- Pre-1.0 Doorkeeper for SessionOutcome in by @DanGould in #1747
- Expose proposal txid stability on receiver states by @chavic in #1718
- Restore ScriptBuf and Witness test imports by @spacebear21 in #1755
- Insulate bitcoin uri by @spacebear21 in #1756
- Bump payjoin to version 1.0.0-rc.6 by @DanGould in #1758
Full Changelog: payjoin-1.0.0-rc.5...payjoin-1.0.0-rc.6