diff --git a/Cargo-minimal.lock b/Cargo-minimal.lock index ae887d999..e26ebdaaf 100644 --- a/Cargo-minimal.lock +++ b/Cargo-minimal.lock @@ -2567,7 +2567,7 @@ checksum = "df94ce210e5bc13cb6651479fa48d14f601d9858cfe0467f43ae157023b938d3" [[package]] name = "payjoin" -version = "1.0.0-rc.5" +version = "1.0.0-rc.6" dependencies = [ "bhttp", "bitcoin", diff --git a/Cargo-recent.lock b/Cargo-recent.lock index f2f39df53..0d5f3c52a 100644 --- a/Cargo-recent.lock +++ b/Cargo-recent.lock @@ -2698,7 +2698,7 @@ checksum = "df94ce210e5bc13cb6651479fa48d14f601d9858cfe0467f43ae157023b938d3" [[package]] name = "payjoin" -version = "1.0.0-rc.5" +version = "1.0.0-rc.6" dependencies = [ "bhttp", "bitcoin", diff --git a/payjoin-cli/Cargo.toml b/payjoin-cli/Cargo.toml index 512f0483d..55f4b3409 100644 --- a/payjoin-cli/Cargo.toml +++ b/payjoin-cli/Cargo.toml @@ -35,7 +35,7 @@ dirs = "6.0.0" http-body-util = { version = "0.1.3", optional = true } hyper = { version = "1.8.0", features = ["http1", "server"], optional = true } hyper-util = { version = "0.1.18", optional = true } -payjoin = { version = "1.0.0-rc.5", default-features = false } +payjoin = { version = "1.0.0-rc.6", default-features = false } pest_derive = "2.7.0" r2d2 = "0.8.10" r2d2_sqlite = "0.22.0" diff --git a/payjoin-ffi/Cargo.toml b/payjoin-ffi/Cargo.toml index bdaaf1bf3..86c88113d 100644 --- a/payjoin-ffi/Cargo.toml +++ b/payjoin-ffi/Cargo.toml @@ -27,7 +27,7 @@ getrandom = "0.2.10" icu_locale_core = "=2.0.1" icu_provider = "=2.0.0" lazy_static = "1.5.0" -payjoin = { version = "1.0.0-rc.5", features = ["v1", "v2"] } +payjoin = { version = "1.0.0-rc.6", features = ["v1", "v2"] } payjoin-test-utils = { version = "0.0.1", optional = true } serde = { version = "1.0.228", features = ["derive"] } serde_json = "1.0.149" diff --git a/payjoin-mailroom/Cargo.toml b/payjoin-mailroom/Cargo.toml index 0289adfc0..a8b5dff0c 100644 --- a/payjoin-mailroom/Cargo.toml +++ b/payjoin-mailroom/Cargo.toml @@ -67,7 +67,7 @@ opentelemetry-otlp = { version = "0.32", optional = true, default-features = fal "http-proto", ] } opentelemetry_sdk = "0.32" -payjoin = { version = "1.0.0-rc.5", features = [ +payjoin = { version = "1.0.0-rc.6", features = [ "directory", ], default-features = false } rand = "0.8" diff --git a/payjoin-test-utils/Cargo.toml b/payjoin-test-utils/Cargo.toml index ca2cfde43..e980f9eda 100644 --- a/payjoin-test-utils/Cargo.toml +++ b/payjoin-test-utils/Cargo.toml @@ -32,7 +32,7 @@ futures = { version = "0.3.21", default-features = false, features = ["std"] } http = { version = "1.3.1", optional = true } ohttp = { package = "bitcoin-ohttp", version = "0.6.0", optional = true } once_cell = "1.21.3" -payjoin = { version = "1.0.0-rc.5", default-features = false } +payjoin = { version = "1.0.0-rc.6", default-features = false } payjoin-mailroom = { version = "0.1.1", features = ["_manual-tls"] } tar = "0.4.20" # Pin to 0.14.7 (last version to support our MSRV 1.85) diff --git a/payjoin/CHANGELOG.md b/payjoin/CHANGELOG.md index a47a94a41..4aff4bce8 100644 --- a/payjoin/CHANGELOG.md +++ b/payjoin/CHANGELOG.md @@ -1,5 +1,36 @@ # Payjoin Changelog +## 1.0.0-rc.6 + +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. + +Selected Improvements: + +### API Changes + +- Insulate `bitcoin_uri` from the public API: `Uri` and `PjUri` become 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) +- `SessionOutcome` drops the unused witness payload on a `Success` outcome 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) + ## 1.0.0-rc.5 This release renames `PersistedError::error_state` to `fatal_state`, makes diff --git a/payjoin/Cargo.toml b/payjoin/Cargo.toml index 01c0e4213..595b07da8 100644 --- a/payjoin/Cargo.toml +++ b/payjoin/Cargo.toml @@ -1,6 +1,6 @@ [package] name = "payjoin" -version = "1.0.0-rc.5" +version = "1.0.0-rc.6" authors = ["Dan Gould "] description = "Payjoin Library implementing BIP 78 and BIP 77 batching protocols." repository = "https://github.com/payjoin/rust-payjoin"