Skip to content

Update bitcoind async client 0.14#1646

Merged
DanGould merged 2 commits into
payjoin:masterfrom
caarloshenriq:update-bitcoind-async-client-0.14
Jun 16, 2026
Merged

Update bitcoind async client 0.14#1646
DanGould merged 2 commits into
payjoin:masterfrom
caarloshenriq:update-bitcoind-async-client-0.14

Conversation

@caarloshenriq

Copy link
Copy Markdown
Contributor

Closes #1642

The previous constraint (>=0.10.8, <0.10.10) was a workaround for
a breaking change accidentally backported into 0.10.10 upstream.
Move to 0.14.0.

This requires:

  • Passing None for the new options: Option<BroadcastOptions>
    parameter of send_raw_transaction, added in the 0.10.10/0.14.0
    API change.
  • Raising the minimum versions of tokio-rustls (0.26.2 -> 0.26.4)
    and rustls (0.23.31 -> 0.23.38) in payjoin, payjoin-mailroom,
    and payjoin-test-utils, since bitreq (a transitive dependency of
    bitcoind-async-client 0.14.0) requires these minimums and
    direct-minimal-versions resolution fails otherwise.
Pull Request Checklist

Please confirm the following before requesting review:

@coveralls

coveralls commented Jun 15, 2026

Copy link
Copy Markdown
Collaborator

Coverage Report for CI Build 27632118494

Coverage remained the same at 85.229%

Details

  • Coverage remained the same as the base build.
  • Patch coverage: 1 of 1 lines across 1 file are fully covered (100%).
  • No coverage regressions found.

Uncovered Changes

No uncovered changes found.

Coverage Regressions

No coverage regressions found.


Coverage Stats

Coverage Status
Relevant Lines: 14752
Covered Lines: 12573
Line Coverage: 85.23%
Coverage Strength: 370.16 hits per line

💛 - Coveralls

@DanGould DanGould left a comment

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

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

LGTM

On a related note, now that bitreq is pulled into payjoin-cli it seems the time has come to revisit bitreq and get that across the line, for the ~payjoin-cli-1.1 milestone by reviewing this PR and seeing a release through rust-bitcoin/corepc#516

@DanGould

Copy link
Copy Markdown
Member

@caarloshenriq what pushes bitreq up to 0.3.7. 0.14 seems to be on 0.3.5

https://github.com/alpenlabs/bitcoind-async-client/blob/v0.14.0/Cargo.toml#L30

@benalleng

Copy link
Copy Markdown
Collaborator

Looks like

$ cargo tree -i bitreq
bitreq v0.3.7
└── bitcoind-async-client v0.14.0

I think #1640 will prevent this from drifting past the lowest necessary.

@benalleng benalleng mentioned this pull request Jun 16, 2026
2 tasks
The previous constraint (>=0.10.8, <0.10.10) was a workaround for
a breaking change accidentally backported into 0.10.10 upstream.
Move to 0.14.0, which includes that change intentionally and is
API-compatible with 0.10.10 going forward.

This requires:

- Passing `None` for the new `options: Option<BroadcastOptions>`
  parameter of `send_raw_transaction`, added in the 0.10.10/0.14.0
  API change.
- Raising the minimum versions of tokio-rustls (0.26.2 -> 0.26.4)
  and rustls (0.23.31 -> 0.23.38) in payjoin, payjoin-mailroom,
  and payjoin-test-utils, since bitreq (a transitive dependency of
  bitcoind-async-client 0.14.0) requires these minimums and
  direct-minimal-versions resolution fails otherwise.
@caarloshenriq caarloshenriq force-pushed the update-bitcoind-async-client-0.14 branch from 5d34ad8 to 36462c9 Compare June 16, 2026 16:07
@caarloshenriq

Copy link
Copy Markdown
Contributor Author

@caarloshenriq what pushes bitreq up to 0.3.7. 0.14 seems to be on 0.3.5

https://github.com/alpenlabs/bitcoind-async-client/blob/v0.14.0/Cargo.toml#L30

bitcoind-async-client 0.14.0 declares bitreq = "0.3.5", but since bitreq isn't a direct workspace dependency (it's transitive, pulled in only via bitcoind-async-client), direct-minimal-versions doesn't pin it to that literal minimum. The resolver picks the latest semver-compatible version available, which is 0.3.7 in both lockfiles. I checked 0.3.5, 0.3.6, and 0.3.7: all three declare identical rustls 0.23.38 / tokio-rustls 0.26.4 minimums, so the TLS version bumps in this PR are unrelated to which patch of bitreq gets resolved. Happy to pin it down to 0.3.5 if you'd prefer.

@benalleng

Copy link
Copy Markdown
Collaborator

Go ahead and run ./contrib/update-lock-files.sh one more time on your branch. #1640 will ensure that this also keeps the minimal-dependencies not just direct deps from drifting.

@caarloshenriq caarloshenriq force-pushed the update-bitcoind-async-client-0.14 branch from 36462c9 to 9c35598 Compare June 16, 2026 16:22
@caarloshenriq

caarloshenriq commented Jun 16, 2026

Copy link
Copy Markdown
Contributor Author

Go ahead and run ./contrib/update-lock-files.sh one more time on your branch. #1640 will ensure that this also keeps the minimal-dependencies not just direct deps from drifting.

Ran ./contrib/update-lock-files.sh again on the branch and pushed the updated lockfiles. bitreq still resolves to 0.3.7 even with the -Z minimal-versions step from #1640

@benalleng

This comment was marked as resolved.

@benalleng

Copy link
Copy Markdown
Collaborator

Looks like you fixed it bitreq resolves to 0.3.5 now

@DanGould DanGould merged commit 9abce7b into payjoin:master Jun 16, 2026
15 checks passed
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.

Update payjoin-cli to bitcoind-async-client 0.14+

4 participants