Skip to content

Releases: payjoin/rust-payjoin

Release payjoin-1.0.0-rc.1

30 Oct 16:00
payjoin-1.0.0-rc.1
7d9e7f5

Choose a tag to compare

Pre-release

This release candidate fixes a BIP78 spec compliance bug, and an issue with the BIP77 sender when polling an arbitrary relay via RFC9540.
It also removes a redundant Sender SessionEvent.

  • Fix identify_receiver_outputs (#1168)
  • Use full_relay_url in sender GET request (#1166)
  • Remove ReceivedProposalPsbt infavor of session outcome (#1171)

What's Changed

Full Changelog: payjoin-1.0.0-rc.0...payjoin-1.0.0-rc.1

Release payjoin-1.0.0-rc.0

03 Oct 21:05
payjoin-1.0.0-rc.0
a43acb1

Choose a tag to compare

Pre-release

Change log

Introduce monitoring typestates, replyable error handling, and other updates for more robust session lifecycle management.

Selected Improvements:

Updates to Typestates and Session Event Log Replay

  • Receiver Monitor Typestate (#1061)
  • Sender closed variant (#1129)
  • Rename sender session events (#1125, #1116)
  • Remove PollingForProposal from session event (#1128)
  • Return closed session state during replays (#1136)
  • Introduce SessionEvent::Closed (#1078)
  • Name multi-field SessionEvent variants (#1051)
  • Enforce handle_fatal_reject type safety (#1058)
  • Remove uninitialized session state (#1014)
  • Enforce that SessionHistory is created internally (#1062)
  • Reduce visibility of common recv abstractions (#1109)
  • Abstract V2 Sender over SenderContext and remove public Url (#1141)

Improve Error Handling

  • Handle fatal errors in receiver state machine (#1060)
  • Update sender process_res to parse and process error response (#1114)
  • HPKE encrypt error response (#1115)
  • Use HasReplyableErrorTransition in reply error typestate (#1130)
  • Use reply key for replyable errors to v2 senders (#981)
  • Improve receive error hierarchy (#1031)
  • Separate session replay & protocol operation (#1036)

API and Dependency Refinements

  • Depend on url/serde with no default features (#1126)
  • Use String type instead of Url on Request Struct (#1122)
  • Remove the url crate dep from payjoin-test-utils (#1111)
  • Remove use of payjoin::Url and url::Url in public methods (#1057)
  • Make payjoin::uri module public (#1048)
  • Replace psbt_with_fee_contributions with pub fn (#1120)
  • Refactor sender to validate PjParam by version (#901)
  • Replace bitcoind with corepc_node (#1041)
  • Bump MSRV to 1.85.0 (#957)
  • Upgrade testcontainers (#970)

Build, CI, and Workflow Enhancements

  • Run all tests in macOS CI (#1094)
  • Use tracing crate instead of log (#1020)
  • Add Pull Request Review Template (#967)
  • Add bug issue templates (#758, #784)
  • Add Feature Request, Good First Issue, and General Issue Templates (#891)
  • Enforce new AI Disclosure in PR Checklist (#1012)

Miscellaneous Cleanups

  • Remove redundant fields from WantsInputs, WantsOutputs, and WantsFeeRange events (#1106, #1102, #1092)
  • Remove mailbox from receiver session context (#1112)
  • Remove extraneous clones and redundant Vec clones in HPKE encrypt functions (#1089, #982, #845)
  • Use expiration instead of expiry (#1087)
  • Clarify request construction methods for sender and receiver (#814)

What's Changed

Read more

Release payjoin-test-utils 0.0.1

02 Jul 19:43
payjoin-test-utils-0.0.1
3b7230b

Choose a tag to compare

Pre-release

Change log

  • Export InMemoryTestPersister under _test-utils #761
  • Introduce constructors for SegWit input pairs #712
  • Move testing constants to payjoin-test-utils #613
  • Specify the versions for deps more precisely in the cargo toml #696
  • Extend tests for rest of receive module #632
  • Fix uninline format clippy violations #667

What's Changed

New Contributors

...

Read more

Release payjoin-ffi-0.24

02 Jul 19:45
payjoin-ffi-0.24
55b5444

Choose a tag to compare

Pre-release

Change log

Session Persister

  • Update to payjoin-0.24.0
  • Replace PersisterTrait with SessionPersister Trait #750 #789
  • 0.24 name audit #803, #810
  • Sender Session Events #777
  • Receiver Session Events #760
  • Replace Persister with SessionPersister for v2 Sender #789
  • Expose fallback tx off receiver session history #799
  • Sender session history fallback #805
  • Remove storage error wrapper #781
  • Move extract_fallback_tx to MaybeInputsOwned #801

Misc.

  • Fix setup.py BIP number typo in description #709
  • Remove unused Python callback classes #725
  • README fixes #732
  • Update links to reference BIP-77 document #733
  • Remove unused imports in python int. tests #779
  • Propagate error on loading Receiver #720
  • Upgrade setuptools #704

What's Changed

Read more

Release payjoin-directory 0.0.3

02 Jul 19:39
payjoin-directory-0.0.3
da49c64

Choose a tag to compare

Pre-release

Changelog

  • Update links to reference BIP-77 document #733
  • Fix uninline format clippy violations #667
  • Serve a page on / for payjoin-directory #824

What's Changed

New Contributors

Read more

Release payjoin-cli 0.2.0

02 Jul 19:42
payjoin-cli-0.2.0
3583302

Choose a tag to compare

Pre-release

Change log

  • Support sender and receiver being generic over their typestate (#728, #719)
  • Remove existing persistence strategy and replace with new SessionPersister trait (#789, #750)
  • Update references to BIP-77 (#733)
  • Rename RelayState to RelayManager for clarity (#727)
  • Refactor config to use proc macros over builder (#703)
  • Create fallback ohttp-relay logic for payjoin-cli (#607)
  • Separate v2 cli logic into mod and ohttp components (#714)
  • Update Nigiri instructions (#691, #682)
  • Dedupe ImplementationError (#669)
  • Add Quick Start, Configuration, Reference to CLI README (#624)

What's Changed

Read more

payjoin-0.24.0

01 Jul 00:23
payjoin-0.24.0
d802c9d

Choose a tag to compare

payjoin-0.24.0 Pre-release
Pre-release

Summary

The Session Event Log Release

Selected Improvements:

  • Alter receiver session as_ref assert and persist::Value import for
    ReceiverToken (#658)

  • Add SessionPersister trait (#716)

  • Sender generic over typestate (#728)

  • Make Receiver generic over its typestate (#719)

  • Receiver Session Events (#760)

  • Export InMemoryTestPersister under _test-utils (#761)

  • Capture hpke reply key in session event (#762)

  • Sender Session Events (#777)

  • Replace Persister with SessionPersister for v2 Sender (#789)

  • Persistence follow ups (#638)

  • Expose fallback tx off receiver session history (#799)

  • Sender session history fallback (#805)

  • 0.24 name audit (#803, #810)

  • Introduce constructors for SegWit input pairs (#712)

  • Introduce constructors for legacy input pairs (#753)

  • Update README title and add logo & badges (#665)

  • Move persist sub module to root module (#656)

  • Remove rust docs reference to non-existent method (#655)

  • Introduce Payjoin version enum (#668)

  • Use IntoUrl for ohttp_relay argument (#692)

  • Dedupe ImplementationError (#669)

  • Clean up re-exports (#746)

  • Randomly pad OHTTP requests (#715)

  • Limit response sizes for v1 (#586)

What's Changed

Read more

Release payjoin-directory 0.0.2

14 Apr 16:51
payjoin-directory-0.0.2
8456a6a

Choose a tag to compare

Pre-release

Summary

Use standard Oblivious HTTP Key Configuration bootstrapping and decentralize directory operation

Commit

8456a6a

Changelog

  • Do not log ERROR on directory validation errors #628
  • Use payjoin 0.23.0 (056a39b)
  • Announce allowed purposes (6282ffb)
  • Serve /.well-known/ohttp-gateway as per RFC 9540 (6282ffb)
  • Rely on payjoin/directory feature module #502
  • Introduce db-module-specific Result #488
  • Return bound port on listen for test stability (d4fa3d4)

What's Changed

  • Propagate ParseError when retrieving ohttp parameter by @shinghim in #428
  • update gitignore with vscode workspace dir by @0xBEEFCAF3 in #438
  • fix: the attribute version is obsolete by @ethicnology in #439
  • Don't pause between long polls by @DanGould in #436
  • Propagate errors when retrieving exp parameter by @shinghim in #441
  • Propagate error if the fs read for ohttp keys fails during config by @shinghim in #435
  • Fix unresumable Sender by @DanGould in #443
  • Lint with new rust 1.85.0-nightly by @DanGould in #447
  • Make _danger-local-https feature additive by @DanGould in #430
  • Join subdir to base pj URL to preserve path by @DanGould in #448
  • Fix test flakiness by @spacebear21 in #388
  • Fix tests following additive feature changes by @DanGould in #450
  • Separate send version modules (part 1) by @DanGould in #453
  • add nix flake with dev shells and limited crane based checks by @nothingmuch in #455
  • fix #! line in ./contrib/test_local.sh by @nothingmuch in #462
  • Abstract send feature error variants into separate feature-specific abstractions by @DanGould in #464
  • Make Request impl fns pub(crate) by @DanGould in #467
  • Move v1 response handling to V1Context by @DanGould in #469
  • Separate receive submodules to be additive by @DanGould in #466
  • Remove ohttp_relay from SessionContext by @DanGould in #470
  • Handle v2 error by @DanGould in #474
  • Avoid stringly typed arguments in payjoin-cli App trait by @nothingmuch in #479
  • Enumerate errors for peek_with_timeout by @shinghim in #456
  • Set disableoutputsubstitution to 'true' if used by @0xBEEFCAF3 in #485
  • Separate receive::{v1,v2} error modules by @DanGould in #482
  • Follow up from #456: Update path qualifier and introduce module-specific Result by @shinghim in #488
  • Use FeeRate::BROADCAST_MIN for minfeerate defaults by @DanGould in #493
  • send SIGINT instead of SIGKILL in e2e test by @nothingmuch in #497
  • use compressed representation for reply key by @nothingmuch in #496
  • Organize feature separation for ergonomics by @DanGould in #501
  • Introduce directory feature module by @DanGould in #502
  • Expose test helpers by @spacebear21 in #484
  • Accomodate Updated BIP 78 Spec by @DanGould in #505
  • Add cargo llvm-cov to flake devshell by @nothingmuch in #495
  • use FeeRate for max_fee_rate arg, and default it to BROADCAST_MIN by @nothingmuch in #491
  • Move redis container initialization to test utils by @spacebear21 in #507
  • Add appropriate docstrings to test-utils by @DanGould in #510
  • Produce receive::JsonError accurately so that send can properly handle it by @DanGould in #506
  • Validate_utxo treats missing utxos as an error by @benalleng in #516
  • Update lib.rs, Cargo.toml docs by @DanGould in #517
  • Remove unwrap() in integration/e2e tests by @spacebear21 in #512
  • Clean up feature/module documentation with docs.rs features by @DanGould in #518
  • Abstract away additionalfeecontribution to its own struct by @0xBEEFCAF3 in #521
  • Add support for merging unique psbts by @0xBEEFCAF3 in #523
  • Cleanup test assertions by @spacebear21 in #519
  • Refactor new Request impls to use reference types in the signature by @benalleng in #524
  • Remove merge_unsigned_tx doctest by @0xBEEFCAF3 in #531
  • Fix payjoin-cli v1 coverage by @spacebear21 in #532
  • Only derive JsonError for errors that can return Json by @DanGould in #526
  • Fall back to first candidate if avoid_uih fails by @DanGould in #533
  • Remove map_errs for ImplementationError by @spacebear21 in #536
  • Handle receiver contribution errors as unavailable by @DanGould in #534
  • Add missing #[cfg(test)] to send::v2 test module by @0xBEEFCAF3 in #541
  • Use IntoUrl for more ergonomic function signatures by @DanGould in #520
  • feat: removed unwrap from v2 of send and recieve by @Gmin2 in #544
  • don't accept invalid certs even in tests by @nothingmuch in #550
  • Document contributing commit message rules by @DanGould in #548
  • Make payjoin-cli v1 / v2 features additive by @DanGould in #538
  • Multiparty Senders: NS1R by @0xBEEFCAF3 in #434
  • Code spell by @0xBEEFCAF3 in #562
  • Change HpkeError::Secp256k1 into the opaque InvalidPublicKey error by @shinghim in #511
  • Clean up e2e test temp dirs on panic by @0xBEEFCAF3 in #565
  • Create new lowercase error catch for uri endpoint fragments by @benalleng in #558
  • Fix broken links by @thebrandonlucas in #568
  • RFC 9540 directory and receiver by @nothingmuch in #549
  • Fix confusing and incorrect test condition by @nothingmuch in #571
  • Add additional tests for v2 send module by @benalleng in #554
  • Check independent features by @DanGould in #567
  • Add additional tests for v1 send module by @benalleng in #556
  • Propagate sub-config parsing error by @DanGould in #575
  • Handle fetch_ohttp_keys response status by @DanGould in #576
  • Use actual ohttp-relay in integration tests by @nothingmuch in #572
  • Make InputContributionError public by @spacebear21 in #580
  • Make serialize_url and extract_v1 infallible by @spacebear21 in #579
  • Opt-in to traffic from arbitrary relays in directory by @nothingmuch in #569
  • Specify OHTTP gateway for opt-in respecting ohttp-relay by @nothingmuch in #570
  • Update ohttp-relay to 0.0.10 by @DanGould in #587
  • Refactor replacement outputs to be an Iterator of ref TxOuts by @benalleng in #529
  • Remove redundant UrlExt import by @0xBEEFCAF3 in #593
  • Fix Payjoin directory docker build by @0xBEEFCAF3 in #592
  • Make WellKnownError public by @spacebear21 in #598
  • Fix replacement_outputs type in v2 WantsOutputs ...
Read more

Release payjoin-cli-0.1.0

02 Apr 21:25
payjoin-cli-0.1.0
3976ba1

Choose a tag to compare

Pre-release

Summary

Take the payjoin-cli out of alpha now that the wire protocol is presumed to be stable.

Changelog

  • Bump payjoin to 0.23.0 with stable wire protocol
  • Allow mixed input scripts #367 #505
  • Fix bug to propagate missing config parameter or argument error #441
  • Don't pause between long polling requests #463
  • Hide danger-local-https feature with _ prefix #423
  • Allow specifying a max-feerate for receivers #332
  • Fix e2e tests and coverage reporting #443 #497 #532
  • Handle recoverable receiver errors by replying to sender with error response #474 #526 #534
  • Make config.toml hierarchical #538
  • Make v1/v2 features additive #538

What's Changed

Read more

Release payjoin-0.23.0

02 Apr 21:12
payjoin-0.23.0
e2a6f45

Choose a tag to compare

Pre-release

Summary

This release features a first-class persistence abstraction, wire protocol changes for RFC 9540 support, and better compliance with the BIP78 specification. It also pays back a whole bunch of tech debt including enhanced error handling, expanded functionality with new modules and additive features, and improved test infrastructure. There are breaking API and protocol changes as a result.

It also introduces an experimental multiparty sender behind the hidden "_multiparty" feature gate.

Changelog

  • Make features additive #430 #466 #501 #518
  • Make receiver errors replyable to the sender #474 #506 #526 #606
  • Separate error modules #482
  • Introduce "directory" feature module #502
  • Expose test helpers via payjoin-test-utils crate #484
  • Accomodate updated BIP78 spec #505
  • Fallback to first candidate if avoid_uih fails #533
  • Use IntoUrl trait instead of Url in function signatures #520
  • Don't accept invalid certs even in tests #550
  • Introduce experimental multiparty sender behind the "_multiparty" feature flag #434
  • Add support for RFC 9540 #549 #570 #587
  • Fix the pjos BIP21 parameter to match the BIP78 spec #546
  • Introduce mutation testing #573
  • Add first-class persistence abstraction #552
  • Add many more tests, significantly improving test coverage

What's Changed

Read more