rust-payjoin icon indicating copy to clipboard operation
rust-payjoin copied to clipboard

Uniffi 0.29.x to 0.30.x upgrade tracking issue

Open chavic opened this issue 2 months ago • 0 comments

This ticket tracks bringing rust-payjoin onto UniFFI 0.30 once uniffi-dart#90 lands and bitcoin-ffi upgrades. The crate currently pins UniFFI 0.29.4.

The scope covers bumping all UniFFI runtime/build deps to 0.30, pointing to the upgraded uniffi-dart commit released in #90, refreshing the build tooling and generated artifacts (Dart, Python, etc.), and validating that callback/handle semantics still work end-to-end across the payjoin flows.

Tasks:

  • [ ] Track #90; once merged, update the uniffi-dart git revision and both uniffi crate pins in payjoin-ffi/Cargo.toml.
  • [ ] Refresh build.rs and uniffi-bindgen.rs to align with any API changes exposed by the new generator (nothing in the build scripts is expected to change), then regenerate all bindings (payjoin-ffi/dart, payjoin-ffi/python) via the existing build scripts.
  • [ ] Add #[uniffi::trait_interface] (and any new attribute requirements) to every exported trait in payjoin-ffi/src/send/mod.rs:486 and the receive module traits cited above; verify downstream glue compiles.
  • [ ] Rebuild the crate so that build.rs emits the regenerated scaffolding, commit the updated artifacts, and remove any stale references to the old pointer-based handles.
  • [ ] Run test payjoin-ffi, the contrib/CI scripts, and the Dart/Python smoke tests that exercise callback handles and session persistence to confirm the new handle semantics behave correctly.

When the crate consumes UniFFI 0.30, the regenerated language bindings pass their integration tests, and the upgraded artifacts can be packaged alongside rust-payjoin’s releases without breaking callback flows.

chavic avatar Oct 21 '25 12:10 chavic