Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
2 changes: 1 addition & 1 deletion Cargo-minimal.lock
Original file line number Diff line number Diff line change
Expand Up @@ -2310,7 +2310,7 @@ checksum = "df94ce210e5bc13cb6651479fa48d14f601d9858cfe0467f43ae157023b938d3"

[[package]]
name = "payjoin"
version = "1.1.0"
version = "1.2.0"
dependencies = [
"arbitrary",
"bhttp",
Expand Down
2 changes: 1 addition & 1 deletion Cargo-recent.lock
Original file line number Diff line number Diff line change
Expand Up @@ -2510,7 +2510,7 @@ checksum = "df94ce210e5bc13cb6651479fa48d14f601d9858cfe0467f43ae157023b938d3"

[[package]]
name = "payjoin"
version = "1.1.0"
version = "1.2.0"
dependencies = [
"arbitrary",
"bhttp",
Expand Down
2 changes: 1 addition & 1 deletion payjoin-cli/Cargo.toml
Original file line number Diff line number Diff line change
Expand Up @@ -34,7 +34,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.1.0", default-features = false }
payjoin = { version = "1.2.0", default-features = false }
pest_derive = "2.7.0"
r2d2 = "0.8.10"
r2d2_sqlite = "0.22.0"
Expand Down
2 changes: 1 addition & 1 deletion payjoin-ffi/Cargo.toml
Original file line number Diff line number Diff line change
Expand Up @@ -25,7 +25,7 @@ path = "uniffi-bindgen.rs"
async-trait = "0.1.89"
getrandom = "0.2.10"
lazy_static = "1.5.0"
payjoin = { version = "1.1.0", features = ["v1", "v2"] }
payjoin = { version = "1.2.0", features = ["v1", "v2"] }
payjoin-test-utils = { version = "0.0.1", optional = true }
serde = { version = "1.0.228", features = ["derive"] }
serde_json = "1.0.149"
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -31,7 +31,7 @@ class ValidationTests {
@Test
fun receiverBuilderRejectsBadAddress() {
val ohttpKeys = OhttpKeys.decode(ohttpKeysData)
assertFailsWith<ReceiverBuilderException> {
assertFailsWith<BuildReceiverException> {
ReceiverBuilder("not-an-address", "https://example.com", ohttpKeys)
}
}
Expand Down
2 changes: 1 addition & 1 deletion payjoin-mailroom/Cargo.toml
Original file line number Diff line number Diff line change
Expand Up @@ -66,7 +66,7 @@ opentelemetry-otlp = { version = "0.32", optional = true, default-features = fal
"http-proto",
] }
opentelemetry_sdk = "0.32"
payjoin = { version = "1.1.0", features = [
payjoin = { version = "1.2.0", features = [
"directory",
], default-features = false }
rand = "0.8"
Expand Down
2 changes: 1 addition & 1 deletion payjoin-test-utils/Cargo.toml
Original file line number Diff line number Diff line change
Expand Up @@ -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.7.0", optional = true }
once_cell = "1.21.3"
payjoin = { version = "1.1.0", default-features = false }
payjoin = { version = "1.2.0", default-features = false }
payjoin-mailroom = { version = "0.1.2", features = ["_manual-tls"] }
rcgen = { version = "0.14.7", optional = true }
reqwest = { version = "0.12.23", default-features = false, features = [
Expand Down
40 changes: 40 additions & 0 deletions payjoin/CHANGELOG.md
Original file line number Diff line number Diff line change
@@ -1,5 +1,45 @@
# Payjoin Changelog

## 1.2.0

This release adds a non-blocking interface to the receiver state machine.
Every step that previously required a synchronous validation closure is
now split in two: a method that extracts the data to be checked, and a
method that submits the results and advances the typestate. Wallets whose
signing, broadcast checks, or ownership lookups are asynchronous, or that
live in a separate process from the code driving the session, can now
drive both the v1 and v2 receiver flows without blocking. The existing
callback methods remain as convenience wrappers, so this release is
backward compatible.

Selected Improvements:

### API Additions

- Split every callback-based receiver transition into an extract/apply
pair, available on both the v1 and v2 receiver flows:
`extract_tx_to_check_broadcast_suitability` and
`apply_broadcast_suitability`, `inputs_owned_checklist` and
`apply_inputs_owned_checklist`, `inputs_seen_checklist` and
`apply_inputs_seen_checklist`, `outputs_owned_checklist` and
`apply_outputs_owned_checklist`, and `psbt_to_sign` and
`finalize_signed_proposal` (#1446)
- Add `ChecklistItem`, `MarkedChecklistItem`, and the sealed
`ChecklistKind` trait with the `InputOwnership`, `InputSeenBefore`, and
`OutputOwnership` kinds, plus a `mark_checklist` helper for integrators
that prefer a closure. A submitted checklist must match the inputs or
outputs of the receiver's own original PSBT (#1446)

### Bug Fixes

- Reject proposals that drop or reorder the sender's original inputs
before classifying any input as sender or receiver contributed. Input
classification treated any proposed input whose outpoint did not match
an original one as receiver-contributed, so a receiver that altered a
sender outpoint was validated as though the receiver had contributed
it. Dropped and reordered inputs are now both rejected up front with
`MissingOrShuffledInputs` (#1836)

## 1.1.0

This release hardens how both sides of a payjoin validate what the
Expand Down
2 changes: 1 addition & 1 deletion payjoin/Cargo.toml
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
[package]
name = "payjoin"
version = "1.1.0"
version = "1.2.0"
authors = ["Dan Gould <d@ngould.dev>"]
description = "Payjoin Library implementing BIP 78 and BIP 77 batching protocols."
repository = "https://github.com/payjoin/rust-payjoin"
Expand Down
Loading