Skip to content

Releases: payjoin/rust-payjoin

payjoin-0.21.0

03 Dec 23:08
payjoin-0.21.0
0aef52e
Compare
Choose a tag to compare
payjoin-0.21.0 Pre-release
Pre-release

Summary

This release enables transaction cut-through by allowing the receiver to add an arbitrary number of inputs and outputs, and allowing mixed input script types in Payjoin V2. Additionally, there are several changes to the payjoin directory API and the HPKE in an attempt to stabilize the V2 protocol. This release contains many breaking changes as a result.

Changelog

  • Upgrade rustls v0.22.4
  • Depend on bitcoin-ohttp
  • Allow receiver to contribute multiple inputs and outputs
  • Remove contribute_witness_inputs and contribute_non_witness_inputs in favor of a single consolidated contribute_inputs function
  • Make InputPair public to facilitate working with inputs in coin selection and input contributions
  • Enable receiver fee contributions in apply_fee, which now requires a max_feerate parameter
  • Fix weight estimations for nested segwit inputs
  • Fix mixed input scripts receiver check in Payjoin V1 to only error if the receiver would introduce mixed types
  • Allow mixed input scripts in Payjoin V2
  • Implement client end-to-end encryption using HPKE using bitcoin-hpke
  • Make session initialization implicit
  • Make payloads uniform by removing sender auth key
  • Shorten subdirectory IDs to 64 pseudorandom bits #386
  • Clarify send and receive module documentation #407
  • Pad ohttp messages to consistent 8192 bytes #395
  • encode subdirectory IDs in bech32 and other QR optimizations #417
  • Upgrade to bitcoin v0.32.5
  • Work around '#' escaping bug in bip21 crate #373
  • Hide _danger-local-https feature behind _ prefix so it doesn't show up in docs #423

What's Changed

New Contributors

Full Changelog: payjoin-0.20.0...payjoin-0.21.0

payjoin-cli-0.0.9-alpha

13 Aug 19:46
515e06a
Compare
Choose a tag to compare
Pre-release

Summary

Improved checking logic and backwards compatible sends for v2 users

Changelog

  • Fix output checks
  • Make backwards-compatible v2 to v1 sends possible

What's Changed

Full Changelog: payjoin-cli-0.0.8-alpha...payjoin-cli-0.0.9-alpha

payjoin-0.20.0

13 Aug 19:45
515e06a
Compare
Choose a tag to compare
payjoin-0.20.0 Pre-release
Pre-release

Summary

Improved checking logic and backwards compatible sends for v2 users

Changelog

  • remove contribute_non_witness_input because it was unused
  • Fix output checks
  • Make backwards-compatible v2 to v1 sends possible
  • Bump bitcoin to v0.32.2

What's Changed

Full Changelog: payjoin-0.19.0...payjoin-0.20.0

payjoin-cli-0.0.8-alpha

18 Jul 19:30
payjoin-cli-0.0.8-alpha
12e08ce
Compare
Choose a tag to compare
Pre-release

Summary

This release attempts to stabilize the Payjoin V2 Bitcoin URI format. That includes placing v2-specific parameters in the URI's pj parameter's fragment and including the exp expiration parameter.

Commit

Changelog

  • Update to payjoin-0.19.0
    • Error if send or receive session expires with exp parameter #299
    • Encode &ohttp= and &exp= parameters in the &pj= URL as a fragment instead of as URI params #298
    • Allow receivers to make payjoins out of sweep transactions #259

What's Changed

New Contributors

Full Changelog: payjoin-cli-0.0.7-alpha...payjoin-cli-0.0.8-alpha

payjoin-0.19.0

18 Jul 17:10
payjoin-0.19.0
941a679
Compare
Choose a tag to compare
payjoin-0.19.0 Pre-release
Pre-release

Summary

This release attempts to stabilize the Payjoin V2 Bitcoin URI format. That includes placing v2-specific parameters in the URI's pj parameter's fragment and including the exp expiration parameter.

Commit

941a679

Changelog

  • Error if send or receive session expires with exp parameter #299
  • Encode &ohttp= and &exp= parameters in the &pj= URL as a fragment instead of as URI params #298
  • Allow receivers to make payjoins out of sweep transactions #259
  • Fix: Correctly set v=2 query parameter for v2 senders #320

What's Changed

New Contributors

Full Changelog: payjoin-0.18.0...payjoin-0.19.0

payjoin-cli-0.0.7-alpha

27 Jun 20:57
payjoin-cli-0.0.7-alpha
b63b0ff
Compare
Choose a tag to compare
Pre-release

Summary

An upgraded asynchronous payjoin experience. This update includes a new resume subcommand to continue any prior session. It also stops using .json files to persist data opting for a sled database instead.

Changelog

  • Resume multiple payjoins easily with the resume subcommand. A repeat send
    subcommand will also resume an existing session (#283)
  • Normalize dash-separated long args (#295)
  • Use sled database. Old .json storage files will no longer be read and should be deleted.
  • read Network::from_core_arg (#304)
  • Don't needlessly substitute outputs for v2 receivers (#277)
  • Print instructions and info on interrupt (#303)

What's Changed

Full Changelog: payjoin-cli-0.0.6-alpha...payjoin-cli-0.0.7-alpha

payjoin-0.18.0

27 Jun 20:56
payjoin-0.18.0
c952b2a
Compare
Choose a tag to compare
payjoin-0.18.0 Pre-release
Pre-release

Summary

An upgraded asynchronous payjoin experience. This update focused semantically describing a Payjoin V2 "Session" and includes various enhancements and bugfixes.

Changelog

  • Handle OHTTP encapsulated response status (#284)
  • Upgrade receive::v2 Typestate machine to resume multiple payjoins simultaneously (#283)
    • Enroller became SessionInitializer
    • Enrolled became ActiveSession
      • fallback_target() became pj_url()
      • pj_url_builder() was introduced
    • ContextV2 became SessionContext
      • Include a bitcoin address in SessionContext
  • send::ResponseError variants fields got explicit names (#304)
  • Refactor output substitution with new fallable try_substitute_outputs (#277)

What's Changed

Full Changelog: payjoin-0.17.0...payjoin-0.18.0

payjoin-0.17.0

17 Jun 14:12
payjoin-0.17.0
5a0bdc9
Compare
Choose a tag to compare
payjoin-0.17.0 Pre-release
Pre-release

Summary

These updates help to play nicely with wallets like Bitcoin Dev Kit and Sparrow.

Changelog

  • Prepare Payjoin PSBT with no output keypaths (#270)
  • Restore sender UTXOs before Payjoin Signing (#280)
  • Deserialize url::Url with url/serde feature instead of custom deserializer (#286)

New Contributors (since last summarized release)

Full Changelog: payjoin-0.13.0...payjoin-0.17.0

payjoin-0.13.0

04 Jan 21:16
de141c8
Compare
Choose a tag to compare
payjoin-0.13.0 Pre-release
Pre-release

Summary

payjoin-0.13.0 improves taproot and v2 payjoin support for integration with downstream projects. Much improved response error handling thanks to @jbesraa's persistence

API

  • Parse json errors from the receiver into WellKnown or other ResponseErrors

Fixes

  • Fixed problem where outdated OHTTP Config issue was unclear (#153)
  • Support Taproot PSBT field clearing and validation (#157)
  • Build v2 docs

Selected PRs

Changelog File

Full Changelog: payjoin-0.12.0...payjoin-0.13.0

payjoin-0.12.0

14 Dec 18:22
d23ed51
Compare
Choose a tag to compare
payjoin-0.12.0 Pre-release
Pre-release
  • Introduce v2 feature with oblivious, asynchronous, serverless payjoin
  • Return RequestContext from which either v1 or v2 (Request, Context) tuples may be extracted
  • Derive Debug, Clone from send::Request, receive::UncheckedProposal, optional_parameters::Params
  • Don't derive Debug, Clone from uri::{Payjoin, PayjoinParams}
  • Derive Serialize, Deserialize for RequestContext and Enrolled in v2 to enable persistent state for asynchronous requests
  • UncheckedProposal::check_can_broadcast became ::check_broadcast_suitability allowing receiver to specify minnimum acceptable feerate