Skip to content

Conversation

spacebear21
Copy link
Contributor

@spacebear21 spacebear21 commented Mar 14, 2025

I broke up chunks of work into individually reviewable commits. Of course, these individual commits fail to compile except until all errors are addressed in the last commit. They can be squashed on merge to avoid transitive failing commits in git history.

Dependencies:

TODOs:

  • Update Cargo.toml/lock once a proper version tag exists for payjoin-0.23 (currently it points to my bindings-0.23 branch)
  • Fix bdk_integration_test which requires upgraded payjoin-directory dependency

A follow-up PR will properly bind rust-payjoin error types instead of using the big catch-all PayjoinError, see #48

@spacebear21 spacebear21 requested a review from DanGould March 14, 2025 16:18
@spacebear21 spacebear21 marked this pull request as draft March 14, 2025 16:19
Copy link
Contributor

@DanGould DanGould left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Wow. It's amazing to see how far the lib has come in such a short time reflected in these changes.

Concept ACK regarding separating the commits for review and squashing so that history builds. Thanks for being so thoughtful.

FWIW I'd be willing to merge the result of this PR with a Cargo.toml pointing to a rust-payjoin branch, especially since Cargo.lock locks it to a specific commit, and then updating once payjoin 0.23 is released before we cut a payjoin-ffi release.

The PjUriBuilder pattern was removed in
payjoin/rust-payjoin@daee12d
It was renamed to `subdir` then removed in favor of `Receiver::id` in
payjoin/rust-payjoin@3c39eaf
These function signatures now take the ohttp_relay parameter.

extract_v1_req was removed in:
payjoin/rust-payjoin@5c78a15
The send version modules were separated in:
payjoin/rust-payjoin@8480c3c

This mostly updates the wrapped structs to point to the moved
payjoin::send::v2 structs

It also adds new error variants to PayjoinError as defined in:
payjoin/rust-payjoin@30c2a07
@DanGould
Copy link
Contributor

Double checked and seems like all of my review comments were addressed. @spacebear21 can you do the merge so that we retain all of the commit messages + do a merge on top of that?

Copy link
Contributor

@DanGould DanGould left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

ACK 6e755fc

Should probably fix the test in the first commit and then follow up with a squashed update commit

@spacebear21 spacebear21 merged commit 23a72a7 into LtbLightning:main Mar 18, 2025
3 checks passed
Copy link
Contributor

@DanGould DanGould left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

We've got a straggler

hex = "0.4.3"
ohttp = { package = "bitcoin-ohttp", version = "0.6.0" }
payjoin = { version = "0.22.0", features = ["send", "receive", "base64", "v2", "io"] }
payjoin = { git = "https://github.com/payjoin/rust-payjoin.git", rev = "bb47c8469146f1a9055b7f850d86f58f2b9627c6", features = ["v1", "io"] }
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Oh shoot, why "v1" ? We don't produce v1 bindings. This is going to cause a problem.

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

v1 was an implicit feature in the previous version so I thought we should keep it in for parity. Though I suppose if it enables only explicit v1 features it can be removed.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants