Skip to content

Releases: LtbLightning/payjoin-ffi

payjoin-ffi 0.21.0

04 Dec 05:32
v0.21.0
5230f19
Compare
Choose a tag to compare
payjoin-ffi 0.21.0 Pre-release
Pre-release

Summary

This release accommodates rust-payjoin 0.21.0, using a payjoin v2-first
API and exposing bitcoin-ffi types directly.

Changelog

  • Major overhaul to attempt a stable BIP 77 protocol implementation.
  • v1 support is now only available through the V2 backwards-compatible APIs.
  • see payjoin-0.21.0 changelog for more details.
  • Separate payjoin_ffi and payjoin_ffi::uni UniFFI types into two layers.
  • Re-export bitcoin-ffi types and their UniFFI bindings

What's Changed

Full Changelog: v0.20.0...v0.21.0

payjoin-ffi 0.20.0

22 Aug 04:18
9e79770
Compare
Choose a tag to compare
payjoin-ffi 0.20.0 Pre-release
Pre-release

[0.20.0]

APIs Added

  • Send Module (V1 & V2):

    • RequestBuilder exposes from_psbt_and_uri, build_with_additional_fee, build_recommended, build_non_incentivizing, always_disable_output_substitution.
    • RequestContext exposes extract_contextV1 & extract_contextV2.
    • ContextV1 exposes process_response.
    • ContextV2 exposes process_response.
  • Receive Module (V1):

    • UncheckedProposal exposes from_request, extract_tx_to_schedule_broadcast, check_broadcast_suitability, build_non_incentivizing, assume_interactive_receiver, always_disable_output_substitution.
    • MaybeInputsOwned exposes check_inputs_not_owned.
    • MaybeMixedInputScripts exposes check_no_mixed_input_scripts.
    • MaybeInputsSeen exposes check_no_inputs_seen_before.
    • OutputsUnknown exposes identify_receiver_outputs.
    • ProvisionalProposal exposes substitute_output_address, contribute_witness_input, try_preserving_privacy, finalize_proposal.
    • PayjoinProposal exposes is_output_substitution_disabled, owned_vouts, psbt, utxos_to_be_locked.
  • Receive Module (V2):

    • Enroller exposes from_directory_config, process_response, extract_request.
    • Enrolled exposes extract_request, process_response, fall_back_target.
    • V2UncheckedProposal exposes extract_tx_to_schedule_broadcast, check_broadcast_suitability, assume_interactive_receiver.
    • V2MaybeInputsOwned exposes check_inputs_not_owned.
    • V2MaybeMixedInputScripts exposes check_no_mixed_input_scripts.
    • V2MaybeInputsSeen exposes check_no_inputs_seen_before.
    • V2OutputsUnknown exposes identify_receiver_outputs.
    • V2ProvisionalProposal exposes substitute_output_address, contribute_witness_input, try_preserving_privacy, finalize_proposal.
    • V2PayjoinProposal exposes deserialize_res, extract_v1_req, extract_v2_req, is_output_substitution_disabled, owned_vouts, psbt, utxos_to_be_locked.
  • Other APIs:

    • Exposed PjUriBuilder and PjUri.
    • Exposed pjUrl_builder() in ActiveSession.
    • Exposed check_pj_supported() in PjUri.
    • Exposed fetch_ohttp_keys() to fetch the ohttp keys from the specified payjoin directory.
    • Make backwards-compatible v2 to v1 sends possible.

APIs Changed

  • Send Module (V1 & V2):

    • Removed contribute_non_witness_input from v1 & v2.
    • Refactor output substitution with new fallible try_substitute_outputs.
  • Receive Module (V2):

    • Upgrade receive/v2 type state machine to resume multiple payjoins simultaneously (#283).
    • Allow receivers to make payjoins out of sweep transactions (#259).
    • Encode &ohttp= and &exp= parameters in the &pj= URL as a fragment instead of as URI params (#298).
  • Other Changes:

    • Replaced Enroller with SessionInitializer.
    • Replaced Enrolled with ActiveSession.
    • Replaced fallback_target() with pj_url.

What's Changed

New Contributors

Full Changelog: v0.1.0.dev...v0.20.0

Python v0.1.0.dev

20 Dec 05:18
5f4f0bd
Compare
Choose a tag to compare
Python v0.1.0.dev Pre-release
Pre-release

Initial release