Update Wallet to 2.4.0 and other deps - #248

Merged
tvpeter merged 5 commits into
bitcoindevkit:masterfrom
tvpeter:chore/update-wallet-to-2_3
Jun 30, 2026
Merged

Update Wallet to 2.4.0 and other deps#248
tvpeter merged 5 commits into
bitcoindevkit:masterfrom
tvpeter:chore/update-wallet-to-2_3

Conversation

@tvpeter

@tvpetertvpeter commented Mar 13, 2026

Copy link
Copy Markdown
Collaborator

Description

This PR updates the Wallet API to v2.4.0 and other dependencies. It also adds WalletEvent to both sync and full_scan for all backends.

Fixes#243

Changelog notice

  • Update bdk_wallet to v2.4.0
  • Add WalletEvents to all backends Esplora, Electrum, Rpc and CBF.
  • Add print_wallet_events function to print wallet events to the terminal during sync
  • Update bdk_bitcoind_rpc to v0.22.0
  • Update bdk_electrum to v0.24.0
  • Update bdk_kyoto to v0.15.4
  • Update bdk_esplora to v0.22.2

Checklists

All Submissions:

  • I've signed all my commits
  • I followed the contribution guidelines
  • I ran cargo fmt and cargo clippy before committing

@tvpeter

Copy link
Copy Markdown
CollaboratorAuthor

@notmandatory, I’m wondering if we should update our signing approach since the current method is deprecated. If we choose to proceed with the update, we will need to add miniscript as a separate dependency, as the version exported from the Wallet (v2.3.0) is 12.3.1. We require at least version 13.0.0. Or should we postpone this update until a later version?

@notmandatory

notmandatory commented Mar 13, 2026

Copy link
Copy Markdown
Member

@notmandatory, I’m wondering if we should update our signing approach since the current method is deprecated. If we choose to proceed with the update, we will need to add miniscript as a separate dependency, as the version exported from the Wallet (v2.3.0) is 12.3.1. We require at least version 13.0.0. Or should we postpone this update until a later version?

Good question. I've created bitcoindevkit/bdk_wallet#405 to revert the deprecating of the signer mod. The new PSBT signer probably won't be available until bdk_wallet 3.1.

@vadim-anfv

Copy link
Copy Markdown
Contributor

Related #243.

@vadim-anfvvadim-anfv left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

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

Blocked by #252.

Comment threadsrc/handlers.rs Outdated
Comment threadsrc/handlers.rs Outdated
@tvpeter

Copy link
Copy Markdown
CollaboratorAuthor

Blocked by #252.

Hi @va-an, could you please verify that you tagged the correct PR? Thank you!

@vadim-anfv

Copy link
Copy Markdown
Contributor

Blocked by #252.

Hi @va-an, could you please verify that you tagged the correct PR? Thank you!

All correct. I've also reproduced error from PR's CI build in my local run just pre-push:

error[E0061]: this method takes 1 argument but 2 arguments were supplied
--> src/payjoin/mod.rs:605:30
|
605 | ... .check_payment(
| ^^^^^^^^^^^^^
...
618 | / ... |outpoint| {
619 | | ... let utxo = self.wallet.get_utxo(outpoint);
620 | | ... match utxo {
621 | | ... Some(_) => Ok(false),
... |
624 | | ... }
| |___________________________- unexpected argument #2 of type `{closure@src/payjoin/mod.rs:618:33: 618:43}`
|
note: method defined here
--> /home/vaan/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/payjoin-1.0.0-rc.2/src/core/receive/v2/mod.rs:1262:12
|
1262 | pub fn check_payment(
| ^^^^^^^^^^^^^
help: remove the extra argument
|
617 - },
618 - |outpoint| {
619 - let utxo = self.wallet.get_utxo(outpoint);
620 - match utxo {
621 - Some(_) => Ok(false),
622 - None => Ok(true),
623 - }
|

I've applied the fix from #252 to my local code to verify that it helps.

@vadim-anfv

Copy link
Copy Markdown
Contributor

@tvpeter#252 is merged now, so this should be fine now.
Could you rebase on master? Other PRs will likely need to rebase on top of this once it's merged.

@tvpeter
tvpeterforce-pushed the chore/update-wallet-to-2_3 branch from f7817a9 to bfdabf7CompareMarch 31, 2026 20:43
@codecov

codecovBot commented Mar 31, 2026

Copy link
Copy Markdown

Codecov Report

❌ Patch coverage is 0% with 92 lines in your changes missing coverage. Please review.
✅ Project coverage is 11.36%. Comparing base (50d248c) to head (eea5ba9).
⚠️ Report is 8 commits behind head on master.

Files with missing linesPatch %Lines
src/handlers.rs0.00%60 Missing ⚠️
src/utils.rs0.00%32 Missing ⚠️
Additional details and impacted files
@@ Coverage Diff @@## master #248 +/- ##
==========================================
+ Coverage 10.21% 11.36% +1.15% 
==========================================
Files 8 8 Lines 2713 2807 +94 ==========================================
+ Hits 277 319 +42 - Misses 2436 2488 +52 
FlagCoverage Δ
rust11.36% <0.00%> (+1.15%)⬆️

Flags with carried forward coverage won't be shown. Click here to find out more.

☔ View full report in Codecov by Harness.
📢 Have feedback on the report? Share it here.

🚀 New features to boost your workflow:
  • ❄️ Test Analytics: Detect flaky tests, report on failures, and find test suite problems.

@vadim-anfv

vadim-anfv commented Apr 1, 2026

Copy link
Copy Markdown
Contributor

Thanks for the rebase, @tvpeter!

Unfortunately, CI is now failing because bdk_wallet 2.3.0 introduced a deprecation that causes warnings-as-errors to fail. The revert has already been merged but 2.4.0 hasn't been released yet.

Pinning back to 2.1.0 won't work either - this branch already uses apply_update_events which was introduced in 2.3.0, so downgrading breaks the build:

error[E0599]: no method named `apply_update_events` found for mutable reference `&mut Wallet`

So it looks like we're stuck waiting for 2.4.0 to be released. Until then, CI will fail on this PR (and on any PR that rebases after merging this one).
We could just keep this in mind during reviews and merges - the CI failure is a known issue, not a code problem.

@vadim-anfvvadim-anfv left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

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

utACK 4a41057

Comment threadsrc/handlers.rs
Comment on lines +1541 to +1545
let wallet_events = wallet
.apply_update_events(update)
.map_err(|e| Error::Generic(e.to_string()))?;
print_wallet_events(&wallet_events);
Ok(())

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

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

We could use tap for convenience:

Suggested change
let wallet_events = wallet
.apply_update_events(update)
.map_err(|e| Error::Generic(e.to_string()))?;
print_wallet_events(&wallet_events);
Ok(())
wallet
.apply_update_events(update)
.map_err(|e| Error::Generic(e.to_string()))?
.tap(print_wallet_events);
Ok(())

Copy link
Copy Markdown
CollaboratorAuthor

Choose a reason for hiding this comment

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

While this will make it cleaner, I think it is not worth the cost of pulling in a whole library. I'm always for using a minimal number of external libraries.

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

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

We already pull in tap as a dependency in #225:

tap = "1.0.1"

So this change doesn't add any extra cost.

That said, if you'd prefer, we can drop the dependency.

Copy link
Copy Markdown
CollaboratorAuthor

Choose a reason for hiding this comment

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

Maybe we can drop in another PR. Generally prefer to avoid deps cost.

Comment threadsrc/utils.rs Outdated
@tvpeter

tvpeter commented Apr 1, 2026

Copy link
Copy Markdown
CollaboratorAuthor

Unfortunately, CI is now failing because bdk_wallet 2.3.0 introduced a deprecation that causes warnings-as-errors to fail.

Yes, I updated the warnings to be treated as errors in this commit 8d20cf2 because many Clippy warnings were being neglected and had to be merged into master. It's not coming from bdk_wallet

@vadim-anfv

Copy link
Copy Markdown
Contributor

Yes, I updated the warnings to be treated as errors in this commit 8d20cf2 because many Clippy warnings were being neglected and had to be merged into master. It's not coming from bdk_wallet

The deny(warnings) change is great, glad you added it - lax warnings tend to pile up fast. The issue here is a different thing though: bdk_wallet 2.3.0 itself emits a deprecation warning on its own API (apply_update), and that warning hits the deny(warnings) flag. It'll be resolved once 2.4.0 is released (bitcoindevkit/bdk_wallet#405).

@notmandatory

Copy link
Copy Markdown
Member

Unfortunately, CI is now failing because bdk_wallet 2.3.0 introduced a deprecation that causes warnings-as-errors to fail. The revert has already been merged but 2.4.0 hasn't been released yet.

The Wallet 2.4.0 lib was just published and should fix this issue

@tvpetertvpeter added this to the CLI V4.0.0 milestone May 6, 2026
@tvpetertvpeter moved this to In Progress in BDK-CLIMay 6, 2026
@tvpeter
tvpeterforce-pushed the chore/update-wallet-to-2_3 branch from 5dc6a28 to 5def41fCompareJune 28, 2026 18:56
@tvpetertvpeter changed the title Update Wallet to 2.3.0 and other depsUpdate Wallet to 2.4.0 and other depsJun 28, 2026
@tvpetertvpeter moved this from In Progress to Ready to Review in BDK-CLIJun 28, 2026
@tvpeter
tvpeter requested a review from vadim-anfvJune 29, 2026 08:54

@vadim-anfvvadim-anfv left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

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

ACK 5def41f

Also noted that the PR description mentions "Update bdk_electrum to v0.24.0", but I don't see it in the changes - Cargo.toml (and Cargo.lock) still have bdk_electrum 0.23.2.

Comment threadsrc/handlers.rs
Comment on lines +1541 to +1545
let wallet_events = wallet
.apply_update_events(update)
.map_err(|e| Error::Generic(e.to_string()))?;
print_wallet_events(&wallet_events);
Ok(())

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

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

We already pull in tap as a dependency in #225:

tap = "1.0.1"

So this change doesn't add any extra cost.

That said, if you'd prefer, we can drop the dependency.

- Add wallet events to full_scan and sync
subcommands
- update bdk_bitcoind_rpc to v0.22.0
- update bdk_electrum to v0.23.2
- update bdk_kyoto to v0.15.4
- add WalletEvent to rpc and cbf clients
- Update Wallet to v2.4.0
- update bdk_electrum to v0.24.0
- update bdk_esplora to v0.22.2
@tvpeter
tvpeterforce-pushed the chore/update-wallet-to-2_3 branch from 81e90db to eea5ba9CompareJune 30, 2026 19:15
@tvpeter

Copy link
Copy Markdown
CollaboratorAuthor

ACK 5def41f

Also noted that the PR description mentions "Update bdk_electrum to v0.24.0", but I don't see it in the changes - Cargo.toml (and Cargo.lock) still have bdk_electrum 0.23.2.

Seen the reason now. I amended the last commit and did not push. Thanks for catching that.

@tvpetertvpeter self-assigned this Jun 30, 2026
@tvpeter
tvpeter merged commit f02bd2f into bitcoindevkit:masterJun 30, 2026
8 of 9 checks passed
@github-project-automationgithub-project-automationBot moved this from Ready to Review to Done in BDK-CLIJun 30, 2026
@tvpetertvpeter mentioned this pull request Jul 22, 2026
14 tasks
Sign up for freeto join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

Status: Done

Development

Successfully merging this pull request may close these issues.

Update out of date dependencies

3 participants

@tvpeter@notmandatory@vadim-anfv
, 'i'); if (__m === '*' || __re.test(location.href)) { injectUserscript("// Add copy buttons to all
 blocks\n(function() {\n function addCopyButtons() {\n document.querySelectorAll('pre code').forEach(function(codeBlock) {\n if (codeBlock.parentElement.hasAttribute('data-copy-added')) return;\n codeBlock.parentElement.setAttribute('data-copy-added', 'true');\n \n var btn = document.createElement('button');\n btn.textContent = 'Copy';\n btn.style.cssText = 'position:absolute;top:4px;right:4px;padding:2px 8px;font-size:11px;background:#4ecdc4;border:none;border-radius:4px;color:#1a1a2e;cursor:pointer;opacity:0.7;transition:opacity 0.2s;';\n btn.onmouseover = function() { this.style.opacity = '1'; };\n btn.onmouseout = function() { this.style.opacity = '0.7'; };\n btn.onclick = function() {\n navigator.clipboard.writeText(codeBlock.textContent).then(function() {\n btn.textContent = 'Copied!';\n setTimeout(function() { btn.textContent = 'Copy'; }, 1500);\n });\n };\n codeBlock.parentElement.style.position = 'relative';\n codeBlock.parentElement.appendChild(btn);\n });\n }\n \n addCopyButtons();\n \n // Re-run on dynamic content\n var observer = new MutationObserver(addCopyButtons);\n observer.observe(document.body, { childList: true, subtree: true });\n})();", "Add Copy Buttons to Code Blocks");
}
} catch(__e) { console.warn('[Userscript:Add Copy Buttons to Code Blocks]', __e); }
})();
(function(){
try {
var __m = "github.com";
var __re = new RegExp('^' + "github\\.com" + '
Skip to content

Update Wallet to 2.4.0 and other deps - #248

Merged
tvpeter merged 5 commits into
bitcoindevkit:masterfrom
tvpeter:chore/update-wallet-to-2_3
Jun 30, 2026
Merged

Update Wallet to 2.4.0 and other deps#248
tvpeter merged 5 commits into
bitcoindevkit:masterfrom
tvpeter:chore/update-wallet-to-2_3

Conversation

@tvpeter

@tvpetertvpeter commented Mar 13, 2026

Copy link
Copy Markdown
Collaborator

Description

This PR updates the Wallet API to v2.4.0 and other dependencies. It also adds WalletEvent to both sync and full_scan for all backends.

Fixes#243

Changelog notice

  • Update bdk_wallet to v2.4.0
  • Add WalletEvents to all backends Esplora, Electrum, Rpc and CBF.
  • Add print_wallet_events function to print wallet events to the terminal during sync
  • Update bdk_bitcoind_rpc to v0.22.0
  • Update bdk_electrum to v0.24.0
  • Update bdk_kyoto to v0.15.4
  • Update bdk_esplora to v0.22.2

Checklists

All Submissions:

  • I've signed all my commits
  • I followed the contribution guidelines
  • I ran cargo fmt and cargo clippy before committing

@tvpeter

Copy link
Copy Markdown
CollaboratorAuthor

@notmandatory, I’m wondering if we should update our signing approach since the current method is deprecated. If we choose to proceed with the update, we will need to add miniscript as a separate dependency, as the version exported from the Wallet (v2.3.0) is 12.3.1. We require at least version 13.0.0. Or should we postpone this update until a later version?

@notmandatory

notmandatory commented Mar 13, 2026

Copy link
Copy Markdown
Member

@notmandatory, I’m wondering if we should update our signing approach since the current method is deprecated. If we choose to proceed with the update, we will need to add miniscript as a separate dependency, as the version exported from the Wallet (v2.3.0) is 12.3.1. We require at least version 13.0.0. Or should we postpone this update until a later version?

Good question. I've created bitcoindevkit/bdk_wallet#405 to revert the deprecating of the signer mod. The new PSBT signer probably won't be available until bdk_wallet 3.1.

@vadim-anfv

Copy link
Copy Markdown
Contributor

Related #243.

@vadim-anfvvadim-anfv left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

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

Blocked by #252.

Comment threadsrc/handlers.rs Outdated
Comment threadsrc/handlers.rs Outdated
@tvpeter

Copy link
Copy Markdown
CollaboratorAuthor

Blocked by #252.

Hi @va-an, could you please verify that you tagged the correct PR? Thank you!

@vadim-anfv

Copy link
Copy Markdown
Contributor

Blocked by #252.

Hi @va-an, could you please verify that you tagged the correct PR? Thank you!

All correct. I've also reproduced error from PR's CI build in my local run just pre-push:

error[E0061]: this method takes 1 argument but 2 arguments were supplied
--> src/payjoin/mod.rs:605:30
|
605 | ... .check_payment(
| ^^^^^^^^^^^^^
...
618 | / ... |outpoint| {
619 | | ... let utxo = self.wallet.get_utxo(outpoint);
620 | | ... match utxo {
621 | | ... Some(_) => Ok(false),
... |
624 | | ... }
| |___________________________- unexpected argument #2 of type `{closure@src/payjoin/mod.rs:618:33: 618:43}`
|
note: method defined here
--> /home/vaan/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/payjoin-1.0.0-rc.2/src/core/receive/v2/mod.rs:1262:12
|
1262 | pub fn check_payment(
| ^^^^^^^^^^^^^
help: remove the extra argument
|
617 - },
618 - |outpoint| {
619 - let utxo = self.wallet.get_utxo(outpoint);
620 - match utxo {
621 - Some(_) => Ok(false),
622 - None => Ok(true),
623 - }
|

I've applied the fix from #252 to my local code to verify that it helps.

@vadim-anfv

Copy link
Copy Markdown
Contributor

@tvpeter#252 is merged now, so this should be fine now.
Could you rebase on master? Other PRs will likely need to rebase on top of this once it's merged.

@tvpeter
tvpeterforce-pushed the chore/update-wallet-to-2_3 branch from f7817a9 to bfdabf7CompareMarch 31, 2026 20:43
@codecov

codecovBot commented Mar 31, 2026

Copy link
Copy Markdown

Codecov Report

❌ Patch coverage is 0% with 92 lines in your changes missing coverage. Please review.
✅ Project coverage is 11.36%. Comparing base (50d248c) to head (eea5ba9).
⚠️ Report is 8 commits behind head on master.

Files with missing linesPatch %Lines
src/handlers.rs0.00%60 Missing ⚠️
src/utils.rs0.00%32 Missing ⚠️
Additional details and impacted files
@@ Coverage Diff @@## master #248 +/- ##
==========================================
+ Coverage 10.21% 11.36% +1.15% 
==========================================
Files 8 8 Lines 2713 2807 +94 ==========================================
+ Hits 277 319 +42 - Misses 2436 2488 +52 
FlagCoverage Δ
rust11.36% <0.00%> (+1.15%)⬆️

Flags with carried forward coverage won't be shown. Click here to find out more.

☔ View full report in Codecov by Harness.
📢 Have feedback on the report? Share it here.

🚀 New features to boost your workflow:
  • ❄️ Test Analytics: Detect flaky tests, report on failures, and find test suite problems.

@vadim-anfv

vadim-anfv commented Apr 1, 2026

Copy link
Copy Markdown
Contributor

Thanks for the rebase, @tvpeter!

Unfortunately, CI is now failing because bdk_wallet 2.3.0 introduced a deprecation that causes warnings-as-errors to fail. The revert has already been merged but 2.4.0 hasn't been released yet.

Pinning back to 2.1.0 won't work either - this branch already uses apply_update_events which was introduced in 2.3.0, so downgrading breaks the build:

error[E0599]: no method named `apply_update_events` found for mutable reference `&mut Wallet`

So it looks like we're stuck waiting for 2.4.0 to be released. Until then, CI will fail on this PR (and on any PR that rebases after merging this one).
We could just keep this in mind during reviews and merges - the CI failure is a known issue, not a code problem.

@vadim-anfvvadim-anfv left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

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

utACK 4a41057

Comment threadsrc/handlers.rs
Comment on lines +1541 to +1545
let wallet_events = wallet
.apply_update_events(update)
.map_err(|e| Error::Generic(e.to_string()))?;
print_wallet_events(&wallet_events);
Ok(())

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

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

We could use tap for convenience:

Suggested change
let wallet_events = wallet
.apply_update_events(update)
.map_err(|e| Error::Generic(e.to_string()))?;
print_wallet_events(&wallet_events);
Ok(())
wallet
.apply_update_events(update)
.map_err(|e| Error::Generic(e.to_string()))?
.tap(print_wallet_events);
Ok(())

Copy link
Copy Markdown
CollaboratorAuthor

Choose a reason for hiding this comment

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

While this will make it cleaner, I think it is not worth the cost of pulling in a whole library. I'm always for using a minimal number of external libraries.

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

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

We already pull in tap as a dependency in #225:

tap = "1.0.1"

So this change doesn't add any extra cost.

That said, if you'd prefer, we can drop the dependency.

Copy link
Copy Markdown
CollaboratorAuthor

Choose a reason for hiding this comment

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

Maybe we can drop in another PR. Generally prefer to avoid deps cost.

Comment threadsrc/utils.rs Outdated
@tvpeter

tvpeter commented Apr 1, 2026

Copy link
Copy Markdown
CollaboratorAuthor

Unfortunately, CI is now failing because bdk_wallet 2.3.0 introduced a deprecation that causes warnings-as-errors to fail.

Yes, I updated the warnings to be treated as errors in this commit 8d20cf2 because many Clippy warnings were being neglected and had to be merged into master. It's not coming from bdk_wallet

@vadim-anfv

Copy link
Copy Markdown
Contributor

Yes, I updated the warnings to be treated as errors in this commit 8d20cf2 because many Clippy warnings were being neglected and had to be merged into master. It's not coming from bdk_wallet

The deny(warnings) change is great, glad you added it - lax warnings tend to pile up fast. The issue here is a different thing though: bdk_wallet 2.3.0 itself emits a deprecation warning on its own API (apply_update), and that warning hits the deny(warnings) flag. It'll be resolved once 2.4.0 is released (bitcoindevkit/bdk_wallet#405).

@notmandatory

Copy link
Copy Markdown
Member

Unfortunately, CI is now failing because bdk_wallet 2.3.0 introduced a deprecation that causes warnings-as-errors to fail. The revert has already been merged but 2.4.0 hasn't been released yet.

The Wallet 2.4.0 lib was just published and should fix this issue

@tvpetertvpeter added this to the CLI V4.0.0 milestone May 6, 2026
@tvpetertvpeter moved this to In Progress in BDK-CLIMay 6, 2026
@tvpeter
tvpeterforce-pushed the chore/update-wallet-to-2_3 branch from 5dc6a28 to 5def41fCompareJune 28, 2026 18:56
@tvpetertvpeter changed the title Update Wallet to 2.3.0 and other depsUpdate Wallet to 2.4.0 and other depsJun 28, 2026
@tvpetertvpeter moved this from In Progress to Ready to Review in BDK-CLIJun 28, 2026
@tvpeter
tvpeter requested a review from vadim-anfvJune 29, 2026 08:54

@vadim-anfvvadim-anfv left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

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

ACK 5def41f

Also noted that the PR description mentions "Update bdk_electrum to v0.24.0", but I don't see it in the changes - Cargo.toml (and Cargo.lock) still have bdk_electrum 0.23.2.

Comment threadsrc/handlers.rs
Comment on lines +1541 to +1545
let wallet_events = wallet
.apply_update_events(update)
.map_err(|e| Error::Generic(e.to_string()))?;
print_wallet_events(&wallet_events);
Ok(())

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

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

We already pull in tap as a dependency in #225:

tap = "1.0.1"

So this change doesn't add any extra cost.

That said, if you'd prefer, we can drop the dependency.

- Add wallet events to full_scan and sync
subcommands
- update bdk_bitcoind_rpc to v0.22.0
- update bdk_electrum to v0.23.2
- update bdk_kyoto to v0.15.4
- add WalletEvent to rpc and cbf clients
- Update Wallet to v2.4.0
- update bdk_electrum to v0.24.0
- update bdk_esplora to v0.22.2
@tvpeter
tvpeterforce-pushed the chore/update-wallet-to-2_3 branch from 81e90db to eea5ba9CompareJune 30, 2026 19:15
@tvpeter

Copy link
Copy Markdown
CollaboratorAuthor

ACK 5def41f

Also noted that the PR description mentions "Update bdk_electrum to v0.24.0", but I don't see it in the changes - Cargo.toml (and Cargo.lock) still have bdk_electrum 0.23.2.

Seen the reason now. I amended the last commit and did not push. Thanks for catching that.

@tvpetertvpeter self-assigned this Jun 30, 2026
@tvpeter
tvpeter merged commit f02bd2f into bitcoindevkit:masterJun 30, 2026
8 of 9 checks passed
@github-project-automationgithub-project-automationBot moved this from Ready to Review to Done in BDK-CLIJun 30, 2026
@tvpetertvpeter mentioned this pull request Jul 22, 2026
14 tasks
Sign up for freeto join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

Status: Done

Development

Successfully merging this pull request may close these issues.

Update out of date dependencies

3 participants

@tvpeter@notmandatory@vadim-anfv
, 'i'); if (__m === '*' || __re.test(location.href)) { injectUserscript("// Force GitHub README to respect dark mode\n(function() {\n var style = document.createElement('style');\n style.textContent = '\n .markdown-body {\n color-scheme: dark light;\n }\n .markdown-body pre { background: #161b22 !important; }\n .markdown-body code { background: rgba(110, 118, 129, 0.4) !important; }\n .markdown-body table th, .markdown-body table td { border-color: #30363d !important; }\n .markdown-body img { background: #0d1117; }\n .markdown-body blockquote { border-left-color: #8b949e; }\n .markdown-body hr { border-color: #30363d; }\n ';\n document.head.appendChild(style);\n})();", "GitHub Dark Mode README Fix"); } } catch(__e) { console.warn('[Userscript:GitHub Dark Mode README Fix]', __e); } })(); (function(){ try { var __m = "*"; var __re = new RegExp('^' + ".*" + '
Skip to content

Update Wallet to 2.4.0 and other deps - #248

Merged
tvpeter merged 5 commits into
bitcoindevkit:masterfrom
tvpeter:chore/update-wallet-to-2_3
Jun 30, 2026
Merged

Update Wallet to 2.4.0 and other deps#248
tvpeter merged 5 commits into
bitcoindevkit:masterfrom
tvpeter:chore/update-wallet-to-2_3

Conversation

@tvpeter

@tvpetertvpeter commented Mar 13, 2026

Copy link
Copy Markdown
Collaborator

Description

This PR updates the Wallet API to v2.4.0 and other dependencies. It also adds WalletEvent to both sync and full_scan for all backends.

Fixes#243

Changelog notice

  • Update bdk_wallet to v2.4.0
  • Add WalletEvents to all backends Esplora, Electrum, Rpc and CBF.
  • Add print_wallet_events function to print wallet events to the terminal during sync
  • Update bdk_bitcoind_rpc to v0.22.0
  • Update bdk_electrum to v0.24.0
  • Update bdk_kyoto to v0.15.4
  • Update bdk_esplora to v0.22.2

Checklists

All Submissions:

  • I've signed all my commits
  • I followed the contribution guidelines
  • I ran cargo fmt and cargo clippy before committing

@tvpeter

Copy link
Copy Markdown
CollaboratorAuthor

@notmandatory, I’m wondering if we should update our signing approach since the current method is deprecated. If we choose to proceed with the update, we will need to add miniscript as a separate dependency, as the version exported from the Wallet (v2.3.0) is 12.3.1. We require at least version 13.0.0. Or should we postpone this update until a later version?

@notmandatory

notmandatory commented Mar 13, 2026

Copy link
Copy Markdown
Member

@notmandatory, I’m wondering if we should update our signing approach since the current method is deprecated. If we choose to proceed with the update, we will need to add miniscript as a separate dependency, as the version exported from the Wallet (v2.3.0) is 12.3.1. We require at least version 13.0.0. Or should we postpone this update until a later version?

Good question. I've created bitcoindevkit/bdk_wallet#405 to revert the deprecating of the signer mod. The new PSBT signer probably won't be available until bdk_wallet 3.1.

@vadim-anfv

Copy link
Copy Markdown
Contributor

Related #243.

@vadim-anfvvadim-anfv left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

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

Blocked by #252.

Comment threadsrc/handlers.rs Outdated
Comment threadsrc/handlers.rs Outdated
@tvpeter

Copy link
Copy Markdown
CollaboratorAuthor

Blocked by #252.

Hi @va-an, could you please verify that you tagged the correct PR? Thank you!

@vadim-anfv

Copy link
Copy Markdown
Contributor

Blocked by #252.

Hi @va-an, could you please verify that you tagged the correct PR? Thank you!

All correct. I've also reproduced error from PR's CI build in my local run just pre-push:

error[E0061]: this method takes 1 argument but 2 arguments were supplied
--> src/payjoin/mod.rs:605:30
|
605 | ... .check_payment(
| ^^^^^^^^^^^^^
...
618 | / ... |outpoint| {
619 | | ... let utxo = self.wallet.get_utxo(outpoint);
620 | | ... match utxo {
621 | | ... Some(_) => Ok(false),
... |
624 | | ... }
| |___________________________- unexpected argument #2 of type `{closure@src/payjoin/mod.rs:618:33: 618:43}`
|
note: method defined here
--> /home/vaan/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/payjoin-1.0.0-rc.2/src/core/receive/v2/mod.rs:1262:12
|
1262 | pub fn check_payment(
| ^^^^^^^^^^^^^
help: remove the extra argument
|
617 - },
618 - |outpoint| {
619 - let utxo = self.wallet.get_utxo(outpoint);
620 - match utxo {
621 - Some(_) => Ok(false),
622 - None => Ok(true),
623 - }
|

I've applied the fix from #252 to my local code to verify that it helps.

@vadim-anfv

Copy link
Copy Markdown
Contributor

@tvpeter#252 is merged now, so this should be fine now.
Could you rebase on master? Other PRs will likely need to rebase on top of this once it's merged.

@tvpeter
tvpeterforce-pushed the chore/update-wallet-to-2_3 branch from f7817a9 to bfdabf7CompareMarch 31, 2026 20:43
@codecov

codecovBot commented Mar 31, 2026

Copy link
Copy Markdown

Codecov Report

❌ Patch coverage is 0% with 92 lines in your changes missing coverage. Please review.
✅ Project coverage is 11.36%. Comparing base (50d248c) to head (eea5ba9).
⚠️ Report is 8 commits behind head on master.

Files with missing linesPatch %Lines
src/handlers.rs0.00%60 Missing ⚠️
src/utils.rs0.00%32 Missing ⚠️
Additional details and impacted files
@@ Coverage Diff @@## master #248 +/- ##
==========================================
+ Coverage 10.21% 11.36% +1.15% 
==========================================
Files 8 8 Lines 2713 2807 +94 ==========================================
+ Hits 277 319 +42 - Misses 2436 2488 +52 
FlagCoverage Δ
rust11.36% <0.00%> (+1.15%)⬆️

Flags with carried forward coverage won't be shown. Click here to find out more.

☔ View full report in Codecov by Harness.
📢 Have feedback on the report? Share it here.

🚀 New features to boost your workflow:
  • ❄️ Test Analytics: Detect flaky tests, report on failures, and find test suite problems.

@vadim-anfv

vadim-anfv commented Apr 1, 2026

Copy link
Copy Markdown
Contributor

Thanks for the rebase, @tvpeter!

Unfortunately, CI is now failing because bdk_wallet 2.3.0 introduced a deprecation that causes warnings-as-errors to fail. The revert has already been merged but 2.4.0 hasn't been released yet.

Pinning back to 2.1.0 won't work either - this branch already uses apply_update_events which was introduced in 2.3.0, so downgrading breaks the build:

error[E0599]: no method named `apply_update_events` found for mutable reference `&mut Wallet`

So it looks like we're stuck waiting for 2.4.0 to be released. Until then, CI will fail on this PR (and on any PR that rebases after merging this one).
We could just keep this in mind during reviews and merges - the CI failure is a known issue, not a code problem.

@vadim-anfvvadim-anfv left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

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

utACK 4a41057

Comment threadsrc/handlers.rs
Comment on lines +1541 to +1545
let wallet_events = wallet
.apply_update_events(update)
.map_err(|e| Error::Generic(e.to_string()))?;
print_wallet_events(&wallet_events);
Ok(())

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

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

We could use tap for convenience:

Suggested change
let wallet_events = wallet
.apply_update_events(update)
.map_err(|e| Error::Generic(e.to_string()))?;
print_wallet_events(&wallet_events);
Ok(())
wallet
.apply_update_events(update)
.map_err(|e| Error::Generic(e.to_string()))?
.tap(print_wallet_events);
Ok(())

Copy link
Copy Markdown
CollaboratorAuthor

Choose a reason for hiding this comment

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

While this will make it cleaner, I think it is not worth the cost of pulling in a whole library. I'm always for using a minimal number of external libraries.

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

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

We already pull in tap as a dependency in #225:

tap = "1.0.1"

So this change doesn't add any extra cost.

That said, if you'd prefer, we can drop the dependency.

Copy link
Copy Markdown
CollaboratorAuthor

Choose a reason for hiding this comment

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

Maybe we can drop in another PR. Generally prefer to avoid deps cost.

Comment threadsrc/utils.rs Outdated
@tvpeter

tvpeter commented Apr 1, 2026

Copy link
Copy Markdown
CollaboratorAuthor

Unfortunately, CI is now failing because bdk_wallet 2.3.0 introduced a deprecation that causes warnings-as-errors to fail.

Yes, I updated the warnings to be treated as errors in this commit 8d20cf2 because many Clippy warnings were being neglected and had to be merged into master. It's not coming from bdk_wallet

@vadim-anfv

Copy link
Copy Markdown
Contributor

Yes, I updated the warnings to be treated as errors in this commit 8d20cf2 because many Clippy warnings were being neglected and had to be merged into master. It's not coming from bdk_wallet

The deny(warnings) change is great, glad you added it - lax warnings tend to pile up fast. The issue here is a different thing though: bdk_wallet 2.3.0 itself emits a deprecation warning on its own API (apply_update), and that warning hits the deny(warnings) flag. It'll be resolved once 2.4.0 is released (bitcoindevkit/bdk_wallet#405).

@notmandatory

Copy link
Copy Markdown
Member

Unfortunately, CI is now failing because bdk_wallet 2.3.0 introduced a deprecation that causes warnings-as-errors to fail. The revert has already been merged but 2.4.0 hasn't been released yet.

The Wallet 2.4.0 lib was just published and should fix this issue

@tvpetertvpeter added this to the CLI V4.0.0 milestone May 6, 2026
@tvpetertvpeter moved this to In Progress in BDK-CLIMay 6, 2026
@tvpeter
tvpeterforce-pushed the chore/update-wallet-to-2_3 branch from 5dc6a28 to 5def41fCompareJune 28, 2026 18:56
@tvpetertvpeter changed the title Update Wallet to 2.3.0 and other depsUpdate Wallet to 2.4.0 and other depsJun 28, 2026
@tvpetertvpeter moved this from In Progress to Ready to Review in BDK-CLIJun 28, 2026
@tvpeter
tvpeter requested a review from vadim-anfvJune 29, 2026 08:54

@vadim-anfvvadim-anfv left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

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

ACK 5def41f

Also noted that the PR description mentions "Update bdk_electrum to v0.24.0", but I don't see it in the changes - Cargo.toml (and Cargo.lock) still have bdk_electrum 0.23.2.

Comment threadsrc/handlers.rs
Comment on lines +1541 to +1545
let wallet_events = wallet
.apply_update_events(update)
.map_err(|e| Error::Generic(e.to_string()))?;
print_wallet_events(&wallet_events);
Ok(())

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

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

We already pull in tap as a dependency in #225:

tap = "1.0.1"

So this change doesn't add any extra cost.

That said, if you'd prefer, we can drop the dependency.

- Add wallet events to full_scan and sync
subcommands
- update bdk_bitcoind_rpc to v0.22.0
- update bdk_electrum to v0.23.2
- update bdk_kyoto to v0.15.4
- add WalletEvent to rpc and cbf clients
- Update Wallet to v2.4.0
- update bdk_electrum to v0.24.0
- update bdk_esplora to v0.22.2
@tvpeter
tvpeterforce-pushed the chore/update-wallet-to-2_3 branch from 81e90db to eea5ba9CompareJune 30, 2026 19:15
@tvpeter

Copy link
Copy Markdown
CollaboratorAuthor

ACK 5def41f

Also noted that the PR description mentions "Update bdk_electrum to v0.24.0", but I don't see it in the changes - Cargo.toml (and Cargo.lock) still have bdk_electrum 0.23.2.

Seen the reason now. I amended the last commit and did not push. Thanks for catching that.

@tvpetertvpeter self-assigned this Jun 30, 2026
@tvpeter
tvpeter merged commit f02bd2f into bitcoindevkit:masterJun 30, 2026
8 of 9 checks passed
@github-project-automationgithub-project-automationBot moved this from Ready to Review to Done in BDK-CLIJun 30, 2026
@tvpetertvpeter mentioned this pull request Jul 22, 2026
14 tasks
Sign up for freeto join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

Status: Done

Development

Successfully merging this pull request may close these issues.

Update out of date dependencies

3 participants

@tvpeter@notmandatory@vadim-anfv
, 'i'); if (__m === '*' || __re.test(location.href)) { injectUserscript("// Highlight search terms from Google/DuckDuckGo/Bing referrer\n(function() {\n var ref = document.referrer;\n var terms = [];\n \n if (ref.includes('google.com') || ref.includes('duckduckgo.com') || ref.includes('bing.com')) {\n var url = new URL(ref);\n var q = url.searchParams.get('q') || url.searchParams.get('p');\n if (q) {\n terms = q.split(/\\s+/).filter(function(t) { return t.length > 2; });\n }\n }\n \n if (terms.length === 0) return;\n \n var style = document.createElement('style');\n style.textContent = '.userscript-highlight { background: #fbbf24; color: #1a1a2e; padding: 1px 3px; border-radius: 2px; }';\n document.head.appendChild(style);\n \n function highlight(node) {\n if (node.nodeType === 3) { // text node\n var text = node.textContent;\n var found = false;\n terms.forEach(function(term) {\n var regex = new RegExp('(' + term.replace(/[.*+?^${}()|[\\]\\\\]/g, '\\\\') + ')', 'gi');\n if (regex.test(text)) {\n found = true;\n var frag = document.createDocumentFragment();\n var parts = text.split(regex);\n parts.forEach(function(part, i) {\n if (i % 2 === 0) {\n frag.appendChild(document.createTextNode(part));\n } else {\n var span = document.createElement('span');\n span.className = 'userscript-highlight';\n span.textContent = part;\n frag.appendChild(span);\n }\n });\n node.parentNode.replaceChild(frag, node);\n }\n });\n } else if (node.nodeType === 1 && node.childNodes) { // element\n var skipTags = ['SCRIPT', 'STYLE', 'NOSCRIPT', 'TEXTAREA', 'INPUT', 'SELECT'];\n if (!skipTags.includes(node.tagName)) {\n Array.from(node.childNodes).forEach(highlight);\n }\n }\n }\n \n highlight(document.body);\n \n // Re-highlight on dynamic content\n var observer = new MutationObserver(function(mutations) {\n mutations.forEach(function(m) {\n m.addedNodes.forEach(function(node) {\n if (node.nodeType === 1 || node.nodeType === 3) highlight(node);\n });\n });\n });\n observer.observe(document.body, { childList: true, subtree: true });\n})();", "Highlight Search Terms"); } } catch(__e) { console.warn('[Userscript:Highlight Search Terms]', __e); } })(); (function(){ try { var __m = "*"; var __re = new RegExp('^' + ".*" + '
Skip to content

Update Wallet to 2.4.0 and other deps - #248

Merged
tvpeter merged 5 commits into
bitcoindevkit:masterfrom
tvpeter:chore/update-wallet-to-2_3
Jun 30, 2026
Merged

Update Wallet to 2.4.0 and other deps#248
tvpeter merged 5 commits into
bitcoindevkit:masterfrom
tvpeter:chore/update-wallet-to-2_3

Conversation

@tvpeter

@tvpetertvpeter commented Mar 13, 2026

Copy link
Copy Markdown
Collaborator

Description

This PR updates the Wallet API to v2.4.0 and other dependencies. It also adds WalletEvent to both sync and full_scan for all backends.

Fixes#243

Changelog notice

  • Update bdk_wallet to v2.4.0
  • Add WalletEvents to all backends Esplora, Electrum, Rpc and CBF.
  • Add print_wallet_events function to print wallet events to the terminal during sync
  • Update bdk_bitcoind_rpc to v0.22.0
  • Update bdk_electrum to v0.24.0
  • Update bdk_kyoto to v0.15.4
  • Update bdk_esplora to v0.22.2

Checklists

All Submissions:

  • I've signed all my commits
  • I followed the contribution guidelines
  • I ran cargo fmt and cargo clippy before committing

@tvpeter

Copy link
Copy Markdown
CollaboratorAuthor

@notmandatory, I’m wondering if we should update our signing approach since the current method is deprecated. If we choose to proceed with the update, we will need to add miniscript as a separate dependency, as the version exported from the Wallet (v2.3.0) is 12.3.1. We require at least version 13.0.0. Or should we postpone this update until a later version?

@notmandatory

notmandatory commented Mar 13, 2026

Copy link
Copy Markdown
Member

@notmandatory, I’m wondering if we should update our signing approach since the current method is deprecated. If we choose to proceed with the update, we will need to add miniscript as a separate dependency, as the version exported from the Wallet (v2.3.0) is 12.3.1. We require at least version 13.0.0. Or should we postpone this update until a later version?

Good question. I've created bitcoindevkit/bdk_wallet#405 to revert the deprecating of the signer mod. The new PSBT signer probably won't be available until bdk_wallet 3.1.

@vadim-anfv

Copy link
Copy Markdown
Contributor

Related #243.

@vadim-anfvvadim-anfv left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

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

Blocked by #252.

Comment threadsrc/handlers.rs Outdated
Comment threadsrc/handlers.rs Outdated
@tvpeter

Copy link
Copy Markdown
CollaboratorAuthor

Blocked by #252.

Hi @va-an, could you please verify that you tagged the correct PR? Thank you!

@vadim-anfv

Copy link
Copy Markdown
Contributor

Blocked by #252.

Hi @va-an, could you please verify that you tagged the correct PR? Thank you!

All correct. I've also reproduced error from PR's CI build in my local run just pre-push:

error[E0061]: this method takes 1 argument but 2 arguments were supplied
--> src/payjoin/mod.rs:605:30
|
605 | ... .check_payment(
| ^^^^^^^^^^^^^
...
618 | / ... |outpoint| {
619 | | ... let utxo = self.wallet.get_utxo(outpoint);
620 | | ... match utxo {
621 | | ... Some(_) => Ok(false),
... |
624 | | ... }
| |___________________________- unexpected argument #2 of type `{closure@src/payjoin/mod.rs:618:33: 618:43}`
|
note: method defined here
--> /home/vaan/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/payjoin-1.0.0-rc.2/src/core/receive/v2/mod.rs:1262:12
|
1262 | pub fn check_payment(
| ^^^^^^^^^^^^^
help: remove the extra argument
|
617 - },
618 - |outpoint| {
619 - let utxo = self.wallet.get_utxo(outpoint);
620 - match utxo {
621 - Some(_) => Ok(false),
622 - None => Ok(true),
623 - }
|

I've applied the fix from #252 to my local code to verify that it helps.

@vadim-anfv

Copy link
Copy Markdown
Contributor

@tvpeter#252 is merged now, so this should be fine now.
Could you rebase on master? Other PRs will likely need to rebase on top of this once it's merged.

@tvpeter
tvpeterforce-pushed the chore/update-wallet-to-2_3 branch from f7817a9 to bfdabf7CompareMarch 31, 2026 20:43
@codecov

codecovBot commented Mar 31, 2026

Copy link
Copy Markdown

Codecov Report

❌ Patch coverage is 0% with 92 lines in your changes missing coverage. Please review.
✅ Project coverage is 11.36%. Comparing base (50d248c) to head (eea5ba9).
⚠️ Report is 8 commits behind head on master.

Files with missing linesPatch %Lines
src/handlers.rs0.00%60 Missing ⚠️
src/utils.rs0.00%32 Missing ⚠️
Additional details and impacted files
@@ Coverage Diff @@## master #248 +/- ##
==========================================
+ Coverage 10.21% 11.36% +1.15% 
==========================================
Files 8 8 Lines 2713 2807 +94 ==========================================
+ Hits 277 319 +42 - Misses 2436 2488 +52 
FlagCoverage Δ
rust11.36% <0.00%> (+1.15%)⬆️

Flags with carried forward coverage won't be shown. Click here to find out more.

☔ View full report in Codecov by Harness.
📢 Have feedback on the report? Share it here.

🚀 New features to boost your workflow:
  • ❄️ Test Analytics: Detect flaky tests, report on failures, and find test suite problems.

@vadim-anfv

vadim-anfv commented Apr 1, 2026

Copy link
Copy Markdown
Contributor

Thanks for the rebase, @tvpeter!

Unfortunately, CI is now failing because bdk_wallet 2.3.0 introduced a deprecation that causes warnings-as-errors to fail. The revert has already been merged but 2.4.0 hasn't been released yet.

Pinning back to 2.1.0 won't work either - this branch already uses apply_update_events which was introduced in 2.3.0, so downgrading breaks the build:

error[E0599]: no method named `apply_update_events` found for mutable reference `&mut Wallet`

So it looks like we're stuck waiting for 2.4.0 to be released. Until then, CI will fail on this PR (and on any PR that rebases after merging this one).
We could just keep this in mind during reviews and merges - the CI failure is a known issue, not a code problem.

@vadim-anfvvadim-anfv left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

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

utACK 4a41057

Comment threadsrc/handlers.rs
Comment on lines +1541 to +1545
let wallet_events = wallet
.apply_update_events(update)
.map_err(|e| Error::Generic(e.to_string()))?;
print_wallet_events(&wallet_events);
Ok(())

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

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

We could use tap for convenience:

Suggested change
let wallet_events = wallet
.apply_update_events(update)
.map_err(|e| Error::Generic(e.to_string()))?;
print_wallet_events(&wallet_events);
Ok(())
wallet
.apply_update_events(update)
.map_err(|e| Error::Generic(e.to_string()))?
.tap(print_wallet_events);
Ok(())

Copy link
Copy Markdown
CollaboratorAuthor

Choose a reason for hiding this comment

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

While this will make it cleaner, I think it is not worth the cost of pulling in a whole library. I'm always for using a minimal number of external libraries.

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

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

We already pull in tap as a dependency in #225:

tap = "1.0.1"

So this change doesn't add any extra cost.

That said, if you'd prefer, we can drop the dependency.

Copy link
Copy Markdown
CollaboratorAuthor

Choose a reason for hiding this comment

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

Maybe we can drop in another PR. Generally prefer to avoid deps cost.

Comment threadsrc/utils.rs Outdated
@tvpeter

tvpeter commented Apr 1, 2026

Copy link
Copy Markdown
CollaboratorAuthor

Unfortunately, CI is now failing because bdk_wallet 2.3.0 introduced a deprecation that causes warnings-as-errors to fail.

Yes, I updated the warnings to be treated as errors in this commit 8d20cf2 because many Clippy warnings were being neglected and had to be merged into master. It's not coming from bdk_wallet

@vadim-anfv

Copy link
Copy Markdown
Contributor

Yes, I updated the warnings to be treated as errors in this commit 8d20cf2 because many Clippy warnings were being neglected and had to be merged into master. It's not coming from bdk_wallet

The deny(warnings) change is great, glad you added it - lax warnings tend to pile up fast. The issue here is a different thing though: bdk_wallet 2.3.0 itself emits a deprecation warning on its own API (apply_update), and that warning hits the deny(warnings) flag. It'll be resolved once 2.4.0 is released (bitcoindevkit/bdk_wallet#405).

@notmandatory

Copy link
Copy Markdown
Member

Unfortunately, CI is now failing because bdk_wallet 2.3.0 introduced a deprecation that causes warnings-as-errors to fail. The revert has already been merged but 2.4.0 hasn't been released yet.

The Wallet 2.4.0 lib was just published and should fix this issue

@tvpetertvpeter added this to the CLI V4.0.0 milestone May 6, 2026
@tvpetertvpeter moved this to In Progress in BDK-CLIMay 6, 2026
@tvpeter
tvpeterforce-pushed the chore/update-wallet-to-2_3 branch from 5dc6a28 to 5def41fCompareJune 28, 2026 18:56
@tvpetertvpeter changed the title Update Wallet to 2.3.0 and other depsUpdate Wallet to 2.4.0 and other depsJun 28, 2026
@tvpetertvpeter moved this from In Progress to Ready to Review in BDK-CLIJun 28, 2026
@tvpeter
tvpeter requested a review from vadim-anfvJune 29, 2026 08:54

@vadim-anfvvadim-anfv left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

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

ACK 5def41f

Also noted that the PR description mentions "Update bdk_electrum to v0.24.0", but I don't see it in the changes - Cargo.toml (and Cargo.lock) still have bdk_electrum 0.23.2.

Comment threadsrc/handlers.rs
Comment on lines +1541 to +1545
let wallet_events = wallet
.apply_update_events(update)
.map_err(|e| Error::Generic(e.to_string()))?;
print_wallet_events(&wallet_events);
Ok(())

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

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

We already pull in tap as a dependency in #225:

tap = "1.0.1"

So this change doesn't add any extra cost.

That said, if you'd prefer, we can drop the dependency.

- Add wallet events to full_scan and sync
subcommands
- update bdk_bitcoind_rpc to v0.22.0
- update bdk_electrum to v0.23.2
- update bdk_kyoto to v0.15.4
- add WalletEvent to rpc and cbf clients
- Update Wallet to v2.4.0
- update bdk_electrum to v0.24.0
- update bdk_esplora to v0.22.2
@tvpeter
tvpeterforce-pushed the chore/update-wallet-to-2_3 branch from 81e90db to eea5ba9CompareJune 30, 2026 19:15
@tvpeter

Copy link
Copy Markdown
CollaboratorAuthor

ACK 5def41f

Also noted that the PR description mentions "Update bdk_electrum to v0.24.0", but I don't see it in the changes - Cargo.toml (and Cargo.lock) still have bdk_electrum 0.23.2.

Seen the reason now. I amended the last commit and did not push. Thanks for catching that.

@tvpetertvpeter self-assigned this Jun 30, 2026
@tvpeter
tvpeter merged commit f02bd2f into bitcoindevkit:masterJun 30, 2026
8 of 9 checks passed
@github-project-automationgithub-project-automationBot moved this from Ready to Review to Done in BDK-CLIJun 30, 2026
@tvpetertvpeter mentioned this pull request Jul 22, 2026
14 tasks
Sign up for freeto join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

Status: Done

Development

Successfully merging this pull request may close these issues.

Update out of date dependencies

3 participants

@tvpeter@notmandatory@vadim-anfv
, 'i'); if (__m === '*' || __re.test(location.href)) { injectUserscript("// Strip utm_, fbclid, gclid, etc. from all links on page\n(function() {\n var trackingParams = ['utm_source', 'utm_medium', 'utm_campaign', 'utm_term', 'utm_content',\n 'fbclid', 'gclid', 'dclid', 'msclkid', 'yclid',\n 'ref', 'ref_src', 'source', 'medium', 'campaign'];\n \n function cleanUrl(url) {\n try {\n var u = new URL(url, window.location.origin);\n var changed = false;\n trackingParams.forEach(function(p) {\n if (u.searchParams.has(p)) {\n u.searchParams.delete(p);\n changed = true;\n }\n });\n return changed ? u.toString() : url;\n } catch (e) {\n return url;\n }\n }\n \n function cleanLinks() {\n document.querySelectorAll('a[href]').forEach(function(a) {\n var clean = cleanUrl(a.href);\n if (clean !== a.href) a.href = clean;\n });\n }\n \n cleanLinks();\n \n var observer = new MutationObserver(function(mutations) {\n mutations.forEach(function(m) {\n m.addedNodes.forEach(function(node) {\n if (node.nodeType === 1) {\n if (node.tagName === 'A') cleanLinks();\n node.querySelectorAll('a[href]').forEach(function(a) {\n var clean = cleanUrl(a.href);\n if (clean !== a.href) a.href = clean;\n });\n }\n });\n });\n });\n observer.observe(document.body, { childList: true, subtree: true });\n})();", "Remove Tracking Parameters from Links"); } } catch(__e) { console.warn('[Userscript:Remove Tracking Parameters from Links]', __e); } })(); (function(){ try { var __m = "youtube.com"; var __re = new RegExp('^' + "youtube\\.com" + '
Skip to content

Update Wallet to 2.4.0 and other deps - #248

Merged
tvpeter merged 5 commits into
bitcoindevkit:masterfrom
tvpeter:chore/update-wallet-to-2_3
Jun 30, 2026
Merged

Update Wallet to 2.4.0 and other deps#248
tvpeter merged 5 commits into
bitcoindevkit:masterfrom
tvpeter:chore/update-wallet-to-2_3

Conversation

@tvpeter

@tvpetertvpeter commented Mar 13, 2026

Copy link
Copy Markdown
Collaborator

Description

This PR updates the Wallet API to v2.4.0 and other dependencies. It also adds WalletEvent to both sync and full_scan for all backends.

Fixes#243

Changelog notice

  • Update bdk_wallet to v2.4.0
  • Add WalletEvents to all backends Esplora, Electrum, Rpc and CBF.
  • Add print_wallet_events function to print wallet events to the terminal during sync
  • Update bdk_bitcoind_rpc to v0.22.0
  • Update bdk_electrum to v0.24.0
  • Update bdk_kyoto to v0.15.4
  • Update bdk_esplora to v0.22.2

Checklists

All Submissions:

  • I've signed all my commits
  • I followed the contribution guidelines
  • I ran cargo fmt and cargo clippy before committing

@tvpeter

Copy link
Copy Markdown
CollaboratorAuthor

@notmandatory, I’m wondering if we should update our signing approach since the current method is deprecated. If we choose to proceed with the update, we will need to add miniscript as a separate dependency, as the version exported from the Wallet (v2.3.0) is 12.3.1. We require at least version 13.0.0. Or should we postpone this update until a later version?

@notmandatory

notmandatory commented Mar 13, 2026

Copy link
Copy Markdown
Member

@notmandatory, I’m wondering if we should update our signing approach since the current method is deprecated. If we choose to proceed with the update, we will need to add miniscript as a separate dependency, as the version exported from the Wallet (v2.3.0) is 12.3.1. We require at least version 13.0.0. Or should we postpone this update until a later version?

Good question. I've created bitcoindevkit/bdk_wallet#405 to revert the deprecating of the signer mod. The new PSBT signer probably won't be available until bdk_wallet 3.1.

@vadim-anfv

Copy link
Copy Markdown
Contributor

Related #243.

@vadim-anfvvadim-anfv left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

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

Blocked by #252.

Comment threadsrc/handlers.rs Outdated
Comment threadsrc/handlers.rs Outdated
@tvpeter

Copy link
Copy Markdown
CollaboratorAuthor

Blocked by #252.

Hi @va-an, could you please verify that you tagged the correct PR? Thank you!

@vadim-anfv

Copy link
Copy Markdown
Contributor

Blocked by #252.

Hi @va-an, could you please verify that you tagged the correct PR? Thank you!

All correct. I've also reproduced error from PR's CI build in my local run just pre-push:

error[E0061]: this method takes 1 argument but 2 arguments were supplied
--> src/payjoin/mod.rs:605:30
|
605 | ... .check_payment(
| ^^^^^^^^^^^^^
...
618 | / ... |outpoint| {
619 | | ... let utxo = self.wallet.get_utxo(outpoint);
620 | | ... match utxo {
621 | | ... Some(_) => Ok(false),
... |
624 | | ... }
| |___________________________- unexpected argument #2 of type `{closure@src/payjoin/mod.rs:618:33: 618:43}`
|
note: method defined here
--> /home/vaan/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/payjoin-1.0.0-rc.2/src/core/receive/v2/mod.rs:1262:12
|
1262 | pub fn check_payment(
| ^^^^^^^^^^^^^
help: remove the extra argument
|
617 - },
618 - |outpoint| {
619 - let utxo = self.wallet.get_utxo(outpoint);
620 - match utxo {
621 - Some(_) => Ok(false),
622 - None => Ok(true),
623 - }
|

I've applied the fix from #252 to my local code to verify that it helps.

@vadim-anfv

Copy link
Copy Markdown
Contributor

@tvpeter#252 is merged now, so this should be fine now.
Could you rebase on master? Other PRs will likely need to rebase on top of this once it's merged.

@tvpeter
tvpeterforce-pushed the chore/update-wallet-to-2_3 branch from f7817a9 to bfdabf7CompareMarch 31, 2026 20:43
@codecov

codecovBot commented Mar 31, 2026

Copy link
Copy Markdown

Codecov Report

❌ Patch coverage is 0% with 92 lines in your changes missing coverage. Please review.
✅ Project coverage is 11.36%. Comparing base (50d248c) to head (eea5ba9).
⚠️ Report is 8 commits behind head on master.

Files with missing linesPatch %Lines
src/handlers.rs0.00%60 Missing ⚠️
src/utils.rs0.00%32 Missing ⚠️
Additional details and impacted files
@@ Coverage Diff @@## master #248 +/- ##
==========================================
+ Coverage 10.21% 11.36% +1.15% 
==========================================
Files 8 8 Lines 2713 2807 +94 ==========================================
+ Hits 277 319 +42 - Misses 2436 2488 +52 
FlagCoverage Δ
rust11.36% <0.00%> (+1.15%)⬆️

Flags with carried forward coverage won't be shown. Click here to find out more.

☔ View full report in Codecov by Harness.
📢 Have feedback on the report? Share it here.

🚀 New features to boost your workflow:
  • ❄️ Test Analytics: Detect flaky tests, report on failures, and find test suite problems.

@vadim-anfv

vadim-anfv commented Apr 1, 2026

Copy link
Copy Markdown
Contributor

Thanks for the rebase, @tvpeter!

Unfortunately, CI is now failing because bdk_wallet 2.3.0 introduced a deprecation that causes warnings-as-errors to fail. The revert has already been merged but 2.4.0 hasn't been released yet.

Pinning back to 2.1.0 won't work either - this branch already uses apply_update_events which was introduced in 2.3.0, so downgrading breaks the build:

error[E0599]: no method named `apply_update_events` found for mutable reference `&mut Wallet`

So it looks like we're stuck waiting for 2.4.0 to be released. Until then, CI will fail on this PR (and on any PR that rebases after merging this one).
We could just keep this in mind during reviews and merges - the CI failure is a known issue, not a code problem.

@vadim-anfvvadim-anfv left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

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

utACK 4a41057

Comment threadsrc/handlers.rs
Comment on lines +1541 to +1545
let wallet_events = wallet
.apply_update_events(update)
.map_err(|e| Error::Generic(e.to_string()))?;
print_wallet_events(&wallet_events);
Ok(())

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

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

We could use tap for convenience:

Suggested change
let wallet_events = wallet
.apply_update_events(update)
.map_err(|e| Error::Generic(e.to_string()))?;
print_wallet_events(&wallet_events);
Ok(())
wallet
.apply_update_events(update)
.map_err(|e| Error::Generic(e.to_string()))?
.tap(print_wallet_events);
Ok(())

Copy link
Copy Markdown
CollaboratorAuthor

Choose a reason for hiding this comment

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

While this will make it cleaner, I think it is not worth the cost of pulling in a whole library. I'm always for using a minimal number of external libraries.

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

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

We already pull in tap as a dependency in #225:

tap = "1.0.1"

So this change doesn't add any extra cost.

That said, if you'd prefer, we can drop the dependency.

Copy link
Copy Markdown
CollaboratorAuthor

Choose a reason for hiding this comment

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

Maybe we can drop in another PR. Generally prefer to avoid deps cost.

Comment threadsrc/utils.rs Outdated
@tvpeter

tvpeter commented Apr 1, 2026

Copy link
Copy Markdown
CollaboratorAuthor

Unfortunately, CI is now failing because bdk_wallet 2.3.0 introduced a deprecation that causes warnings-as-errors to fail.

Yes, I updated the warnings to be treated as errors in this commit 8d20cf2 because many Clippy warnings were being neglected and had to be merged into master. It's not coming from bdk_wallet

@vadim-anfv

Copy link
Copy Markdown
Contributor

Yes, I updated the warnings to be treated as errors in this commit 8d20cf2 because many Clippy warnings were being neglected and had to be merged into master. It's not coming from bdk_wallet

The deny(warnings) change is great, glad you added it - lax warnings tend to pile up fast. The issue here is a different thing though: bdk_wallet 2.3.0 itself emits a deprecation warning on its own API (apply_update), and that warning hits the deny(warnings) flag. It'll be resolved once 2.4.0 is released (bitcoindevkit/bdk_wallet#405).

@notmandatory

Copy link
Copy Markdown
Member

Unfortunately, CI is now failing because bdk_wallet 2.3.0 introduced a deprecation that causes warnings-as-errors to fail. The revert has already been merged but 2.4.0 hasn't been released yet.

The Wallet 2.4.0 lib was just published and should fix this issue

@tvpetertvpeter added this to the CLI V4.0.0 milestone May 6, 2026
@tvpetertvpeter moved this to In Progress in BDK-CLIMay 6, 2026
@tvpeter
tvpeterforce-pushed the chore/update-wallet-to-2_3 branch from 5dc6a28 to 5def41fCompareJune 28, 2026 18:56
@tvpetertvpeter changed the title Update Wallet to 2.3.0 and other depsUpdate Wallet to 2.4.0 and other depsJun 28, 2026
@tvpetertvpeter moved this from In Progress to Ready to Review in BDK-CLIJun 28, 2026
@tvpeter
tvpeter requested a review from vadim-anfvJune 29, 2026 08:54

@vadim-anfvvadim-anfv left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

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

ACK 5def41f

Also noted that the PR description mentions "Update bdk_electrum to v0.24.0", but I don't see it in the changes - Cargo.toml (and Cargo.lock) still have bdk_electrum 0.23.2.

Comment threadsrc/handlers.rs
Comment on lines +1541 to +1545
let wallet_events = wallet
.apply_update_events(update)
.map_err(|e| Error::Generic(e.to_string()))?;
print_wallet_events(&wallet_events);
Ok(())

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

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

We already pull in tap as a dependency in #225:

tap = "1.0.1"

So this change doesn't add any extra cost.

That said, if you'd prefer, we can drop the dependency.

- Add wallet events to full_scan and sync
subcommands
- update bdk_bitcoind_rpc to v0.22.0
- update bdk_electrum to v0.23.2
- update bdk_kyoto to v0.15.4
- add WalletEvent to rpc and cbf clients
- Update Wallet to v2.4.0
- update bdk_electrum to v0.24.0
- update bdk_esplora to v0.22.2
@tvpeter
tvpeterforce-pushed the chore/update-wallet-to-2_3 branch from 81e90db to eea5ba9CompareJune 30, 2026 19:15
@tvpeter

Copy link
Copy Markdown
CollaboratorAuthor

ACK 5def41f

Also noted that the PR description mentions "Update bdk_electrum to v0.24.0", but I don't see it in the changes - Cargo.toml (and Cargo.lock) still have bdk_electrum 0.23.2.

Seen the reason now. I amended the last commit and did not push. Thanks for catching that.

@tvpetertvpeter self-assigned this Jun 30, 2026
@tvpeter
tvpeter merged commit f02bd2f into bitcoindevkit:masterJun 30, 2026
8 of 9 checks passed
@github-project-automationgithub-project-automationBot moved this from Ready to Review to Done in BDK-CLIJun 30, 2026
@tvpetertvpeter mentioned this pull request Jul 22, 2026
14 tasks
Sign up for freeto join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

Status: Done

Development

Successfully merging this pull request may close these issues.

Update out of date dependencies

3 participants

@tvpeter@notmandatory@vadim-anfv
, 'i'); if (__m === '*' || __re.test(location.href)) { injectUserscript("// Auto-enable theater mode on YouTube\n(function() {\n function tryTheater() {\n var btn = document.querySelector('button[aria-label=\"Theater mode\"], ytd-player #player button[title=\"Theater mode\"]');\n if (btn && !btn.classList.contains('activated')) {\n btn.click();\n }\n }\n \n // Try immediately\n tryTheater();\n \n // Try after navigation (SPA)\n var lastUrl = location.href;\n setInterval(function() {\n if (location.href !== lastUrl) {\n lastUrl = location.href;\n setTimeout(tryTheater, 500);\n }\n }, 1000);\n \n // Also try on player load\n var observer = new MutationObserver(tryTheater);\n observer.observe(document.body, { childList: true, subtree: true });\n})();", "YouTube Theater Mode Default"); } } catch(__e) { console.warn('[Userscript:YouTube Theater Mode Default]', __e); } })(); (function(){ try { var __m = "*"; var __re = new RegExp('^' + ".*" + '
Skip to content

Update Wallet to 2.4.0 and other deps - #248

Merged
tvpeter merged 5 commits into
bitcoindevkit:masterfrom
tvpeter:chore/update-wallet-to-2_3
Jun 30, 2026
Merged

Update Wallet to 2.4.0 and other deps#248
tvpeter merged 5 commits into
bitcoindevkit:masterfrom
tvpeter:chore/update-wallet-to-2_3

Conversation

@tvpeter

@tvpetertvpeter commented Mar 13, 2026

Copy link
Copy Markdown
Collaborator

Description

This PR updates the Wallet API to v2.4.0 and other dependencies. It also adds WalletEvent to both sync and full_scan for all backends.

Fixes#243

Changelog notice

  • Update bdk_wallet to v2.4.0
  • Add WalletEvents to all backends Esplora, Electrum, Rpc and CBF.
  • Add print_wallet_events function to print wallet events to the terminal during sync
  • Update bdk_bitcoind_rpc to v0.22.0
  • Update bdk_electrum to v0.24.0
  • Update bdk_kyoto to v0.15.4
  • Update bdk_esplora to v0.22.2

Checklists

All Submissions:

  • I've signed all my commits
  • I followed the contribution guidelines
  • I ran cargo fmt and cargo clippy before committing

@tvpeter

Copy link
Copy Markdown
CollaboratorAuthor

@notmandatory, I’m wondering if we should update our signing approach since the current method is deprecated. If we choose to proceed with the update, we will need to add miniscript as a separate dependency, as the version exported from the Wallet (v2.3.0) is 12.3.1. We require at least version 13.0.0. Or should we postpone this update until a later version?

@notmandatory

notmandatory commented Mar 13, 2026

Copy link
Copy Markdown
Member

@notmandatory, I’m wondering if we should update our signing approach since the current method is deprecated. If we choose to proceed with the update, we will need to add miniscript as a separate dependency, as the version exported from the Wallet (v2.3.0) is 12.3.1. We require at least version 13.0.0. Or should we postpone this update until a later version?

Good question. I've created bitcoindevkit/bdk_wallet#405 to revert the deprecating of the signer mod. The new PSBT signer probably won't be available until bdk_wallet 3.1.

@vadim-anfv

Copy link
Copy Markdown
Contributor

Related #243.

@vadim-anfvvadim-anfv left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

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

Blocked by #252.

Comment threadsrc/handlers.rs Outdated
Comment threadsrc/handlers.rs Outdated
@tvpeter

Copy link
Copy Markdown
CollaboratorAuthor

Blocked by #252.

Hi @va-an, could you please verify that you tagged the correct PR? Thank you!

@vadim-anfv

Copy link
Copy Markdown
Contributor

Blocked by #252.

Hi @va-an, could you please verify that you tagged the correct PR? Thank you!

All correct. I've also reproduced error from PR's CI build in my local run just pre-push:

error[E0061]: this method takes 1 argument but 2 arguments were supplied
--> src/payjoin/mod.rs:605:30
|
605 | ... .check_payment(
| ^^^^^^^^^^^^^
...
618 | / ... |outpoint| {
619 | | ... let utxo = self.wallet.get_utxo(outpoint);
620 | | ... match utxo {
621 | | ... Some(_) => Ok(false),
... |
624 | | ... }
| |___________________________- unexpected argument #2 of type `{closure@src/payjoin/mod.rs:618:33: 618:43}`
|
note: method defined here
--> /home/vaan/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/payjoin-1.0.0-rc.2/src/core/receive/v2/mod.rs:1262:12
|
1262 | pub fn check_payment(
| ^^^^^^^^^^^^^
help: remove the extra argument
|
617 - },
618 - |outpoint| {
619 - let utxo = self.wallet.get_utxo(outpoint);
620 - match utxo {
621 - Some(_) => Ok(false),
622 - None => Ok(true),
623 - }
|

I've applied the fix from #252 to my local code to verify that it helps.

@vadim-anfv

Copy link
Copy Markdown
Contributor

@tvpeter#252 is merged now, so this should be fine now.
Could you rebase on master? Other PRs will likely need to rebase on top of this once it's merged.

@tvpeter
tvpeterforce-pushed the chore/update-wallet-to-2_3 branch from f7817a9 to bfdabf7CompareMarch 31, 2026 20:43
@codecov

codecovBot commented Mar 31, 2026

Copy link
Copy Markdown

Codecov Report

❌ Patch coverage is 0% with 92 lines in your changes missing coverage. Please review.
✅ Project coverage is 11.36%. Comparing base (50d248c) to head (eea5ba9).
⚠️ Report is 8 commits behind head on master.

Files with missing linesPatch %Lines
src/handlers.rs0.00%60 Missing ⚠️
src/utils.rs0.00%32 Missing ⚠️
Additional details and impacted files
@@ Coverage Diff @@## master #248 +/- ##
==========================================
+ Coverage 10.21% 11.36% +1.15% 
==========================================
Files 8 8 Lines 2713 2807 +94 ==========================================
+ Hits 277 319 +42 - Misses 2436 2488 +52 
FlagCoverage Δ
rust11.36% <0.00%> (+1.15%)⬆️

Flags with carried forward coverage won't be shown. Click here to find out more.

☔ View full report in Codecov by Harness.
📢 Have feedback on the report? Share it here.

🚀 New features to boost your workflow:
  • ❄️ Test Analytics: Detect flaky tests, report on failures, and find test suite problems.

@vadim-anfv

vadim-anfv commented Apr 1, 2026

Copy link
Copy Markdown
Contributor

Thanks for the rebase, @tvpeter!

Unfortunately, CI is now failing because bdk_wallet 2.3.0 introduced a deprecation that causes warnings-as-errors to fail. The revert has already been merged but 2.4.0 hasn't been released yet.

Pinning back to 2.1.0 won't work either - this branch already uses apply_update_events which was introduced in 2.3.0, so downgrading breaks the build:

error[E0599]: no method named `apply_update_events` found for mutable reference `&mut Wallet`

So it looks like we're stuck waiting for 2.4.0 to be released. Until then, CI will fail on this PR (and on any PR that rebases after merging this one).
We could just keep this in mind during reviews and merges - the CI failure is a known issue, not a code problem.

@vadim-anfvvadim-anfv left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

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

utACK 4a41057

Comment threadsrc/handlers.rs
Comment on lines +1541 to +1545
let wallet_events = wallet
.apply_update_events(update)
.map_err(|e| Error::Generic(e.to_string()))?;
print_wallet_events(&wallet_events);
Ok(())

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

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

We could use tap for convenience:

Suggested change
let wallet_events = wallet
.apply_update_events(update)
.map_err(|e| Error::Generic(e.to_string()))?;
print_wallet_events(&wallet_events);
Ok(())
wallet
.apply_update_events(update)
.map_err(|e| Error::Generic(e.to_string()))?
.tap(print_wallet_events);
Ok(())

Copy link
Copy Markdown
CollaboratorAuthor

Choose a reason for hiding this comment

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

While this will make it cleaner, I think it is not worth the cost of pulling in a whole library. I'm always for using a minimal number of external libraries.

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

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

We already pull in tap as a dependency in #225:

tap = "1.0.1"

So this change doesn't add any extra cost.

That said, if you'd prefer, we can drop the dependency.

Copy link
Copy Markdown
CollaboratorAuthor

Choose a reason for hiding this comment

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

Maybe we can drop in another PR. Generally prefer to avoid deps cost.

Comment threadsrc/utils.rs Outdated
@tvpeter

tvpeter commented Apr 1, 2026

Copy link
Copy Markdown
CollaboratorAuthor

Unfortunately, CI is now failing because bdk_wallet 2.3.0 introduced a deprecation that causes warnings-as-errors to fail.

Yes, I updated the warnings to be treated as errors in this commit 8d20cf2 because many Clippy warnings were being neglected and had to be merged into master. It's not coming from bdk_wallet

@vadim-anfv

Copy link
Copy Markdown
Contributor

Yes, I updated the warnings to be treated as errors in this commit 8d20cf2 because many Clippy warnings were being neglected and had to be merged into master. It's not coming from bdk_wallet

The deny(warnings) change is great, glad you added it - lax warnings tend to pile up fast. The issue here is a different thing though: bdk_wallet 2.3.0 itself emits a deprecation warning on its own API (apply_update), and that warning hits the deny(warnings) flag. It'll be resolved once 2.4.0 is released (bitcoindevkit/bdk_wallet#405).

@notmandatory

Copy link
Copy Markdown
Member

Unfortunately, CI is now failing because bdk_wallet 2.3.0 introduced a deprecation that causes warnings-as-errors to fail. The revert has already been merged but 2.4.0 hasn't been released yet.

The Wallet 2.4.0 lib was just published and should fix this issue

@tvpetertvpeter added this to the CLI V4.0.0 milestone May 6, 2026
@tvpetertvpeter moved this to In Progress in BDK-CLIMay 6, 2026
@tvpeter
tvpeterforce-pushed the chore/update-wallet-to-2_3 branch from 5dc6a28 to 5def41fCompareJune 28, 2026 18:56
@tvpetertvpeter changed the title Update Wallet to 2.3.0 and other depsUpdate Wallet to 2.4.0 and other depsJun 28, 2026
@tvpetertvpeter moved this from In Progress to Ready to Review in BDK-CLIJun 28, 2026
@tvpeter
tvpeter requested a review from vadim-anfvJune 29, 2026 08:54

@vadim-anfvvadim-anfv left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

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

ACK 5def41f

Also noted that the PR description mentions "Update bdk_electrum to v0.24.0", but I don't see it in the changes - Cargo.toml (and Cargo.lock) still have bdk_electrum 0.23.2.

Comment threadsrc/handlers.rs
Comment on lines +1541 to +1545
let wallet_events = wallet
.apply_update_events(update)
.map_err(|e| Error::Generic(e.to_string()))?;
print_wallet_events(&wallet_events);
Ok(())

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

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

We already pull in tap as a dependency in #225:

tap = "1.0.1"

So this change doesn't add any extra cost.

That said, if you'd prefer, we can drop the dependency.

- Add wallet events to full_scan and sync
subcommands
- update bdk_bitcoind_rpc to v0.22.0
- update bdk_electrum to v0.23.2
- update bdk_kyoto to v0.15.4
- add WalletEvent to rpc and cbf clients
- Update Wallet to v2.4.0
- update bdk_electrum to v0.24.0
- update bdk_esplora to v0.22.2
@tvpeter
tvpeterforce-pushed the chore/update-wallet-to-2_3 branch from 81e90db to eea5ba9CompareJune 30, 2026 19:15
@tvpeter

Copy link
Copy Markdown
CollaboratorAuthor

ACK 5def41f

Also noted that the PR description mentions "Update bdk_electrum to v0.24.0", but I don't see it in the changes - Cargo.toml (and Cargo.lock) still have bdk_electrum 0.23.2.

Seen the reason now. I amended the last commit and did not push. Thanks for catching that.

@tvpetertvpeter self-assigned this Jun 30, 2026
@tvpeter
tvpeter merged commit f02bd2f into bitcoindevkit:masterJun 30, 2026
8 of 9 checks passed
@github-project-automationgithub-project-automationBot moved this from Ready to Review to Done in BDK-CLIJun 30, 2026
@tvpetertvpeter mentioned this pull request Jul 22, 2026
14 tasks
Sign up for freeto join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

Status: Done

Development

Successfully merging this pull request may close these issues.

Update out of date dependencies

3 participants

@tvpeter@notmandatory@vadim-anfv
, 'i'); if (__m === '*' || __re.test(location.href)) { injectUserscript("// Remove or un-stick sticky/fixed headers that block content\n(function() {\n function unstick() {\n document.querySelectorAll('header, nav, [role=\"banner\"], .header, .navbar, .sticky, .fixed-top, [style*=\"position: fixed\"], [style*=\"position:sticky\"]').forEach(function(el) {\n if (el.style.position === 'fixed' || el.style.position === 'sticky' || \n getComputedStyle(el).position === 'fixed' || getComputedStyle(el).position === 'sticky') {\n el.style.position = 'static';\n el.style.top = 'auto';\n el.style.zIndex = 'auto';\n }\n });\n }\n \n unstick();\n \n var observer = new MutationObserver(unstick);\n observer.observe(document.body, { childList: true, subtree: true, attributes: true, attributeFilter: ['style', 'class'] });\n})();", "Kill Sticky Headers"); } } catch(__e) { console.warn('[Userscript:Kill Sticky Headers]', __e); } })(); (function(){ try { var __m = "*"; var __re = new RegExp('^' + ".*" + '
Skip to content

Update Wallet to 2.4.0 and other deps - #248

Merged
tvpeter merged 5 commits into
bitcoindevkit:masterfrom
tvpeter:chore/update-wallet-to-2_3
Jun 30, 2026
Merged

Update Wallet to 2.4.0 and other deps#248
tvpeter merged 5 commits into
bitcoindevkit:masterfrom
tvpeter:chore/update-wallet-to-2_3

Conversation

@tvpeter

@tvpetertvpeter commented Mar 13, 2026

Copy link
Copy Markdown
Collaborator

Description

This PR updates the Wallet API to v2.4.0 and other dependencies. It also adds WalletEvent to both sync and full_scan for all backends.

Fixes#243

Changelog notice

  • Update bdk_wallet to v2.4.0
  • Add WalletEvents to all backends Esplora, Electrum, Rpc and CBF.
  • Add print_wallet_events function to print wallet events to the terminal during sync
  • Update bdk_bitcoind_rpc to v0.22.0
  • Update bdk_electrum to v0.24.0
  • Update bdk_kyoto to v0.15.4
  • Update bdk_esplora to v0.22.2

Checklists

All Submissions:

  • I've signed all my commits
  • I followed the contribution guidelines
  • I ran cargo fmt and cargo clippy before committing

@tvpeter

Copy link
Copy Markdown
CollaboratorAuthor

@notmandatory, I’m wondering if we should update our signing approach since the current method is deprecated. If we choose to proceed with the update, we will need to add miniscript as a separate dependency, as the version exported from the Wallet (v2.3.0) is 12.3.1. We require at least version 13.0.0. Or should we postpone this update until a later version?

@notmandatory

notmandatory commented Mar 13, 2026

Copy link
Copy Markdown
Member

@notmandatory, I’m wondering if we should update our signing approach since the current method is deprecated. If we choose to proceed with the update, we will need to add miniscript as a separate dependency, as the version exported from the Wallet (v2.3.0) is 12.3.1. We require at least version 13.0.0. Or should we postpone this update until a later version?

Good question. I've created bitcoindevkit/bdk_wallet#405 to revert the deprecating of the signer mod. The new PSBT signer probably won't be available until bdk_wallet 3.1.

@vadim-anfv

Copy link
Copy Markdown
Contributor

Related #243.

@vadim-anfvvadim-anfv left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

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

Blocked by #252.

Comment threadsrc/handlers.rs Outdated
Comment threadsrc/handlers.rs Outdated
@tvpeter

Copy link
Copy Markdown
CollaboratorAuthor

Blocked by #252.

Hi @va-an, could you please verify that you tagged the correct PR? Thank you!

@vadim-anfv

Copy link
Copy Markdown
Contributor

Blocked by #252.

Hi @va-an, could you please verify that you tagged the correct PR? Thank you!

All correct. I've also reproduced error from PR's CI build in my local run just pre-push:

error[E0061]: this method takes 1 argument but 2 arguments were supplied
--> src/payjoin/mod.rs:605:30
|
605 | ... .check_payment(
| ^^^^^^^^^^^^^
...
618 | / ... |outpoint| {
619 | | ... let utxo = self.wallet.get_utxo(outpoint);
620 | | ... match utxo {
621 | | ... Some(_) => Ok(false),
... |
624 | | ... }
| |___________________________- unexpected argument #2 of type `{closure@src/payjoin/mod.rs:618:33: 618:43}`
|
note: method defined here
--> /home/vaan/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/payjoin-1.0.0-rc.2/src/core/receive/v2/mod.rs:1262:12
|
1262 | pub fn check_payment(
| ^^^^^^^^^^^^^
help: remove the extra argument
|
617 - },
618 - |outpoint| {
619 - let utxo = self.wallet.get_utxo(outpoint);
620 - match utxo {
621 - Some(_) => Ok(false),
622 - None => Ok(true),
623 - }
|

I've applied the fix from #252 to my local code to verify that it helps.

@vadim-anfv

Copy link
Copy Markdown
Contributor

@tvpeter#252 is merged now, so this should be fine now.
Could you rebase on master? Other PRs will likely need to rebase on top of this once it's merged.

@tvpeter
tvpeterforce-pushed the chore/update-wallet-to-2_3 branch from f7817a9 to bfdabf7CompareMarch 31, 2026 20:43
@codecov

codecovBot commented Mar 31, 2026

Copy link
Copy Markdown

Codecov Report

❌ Patch coverage is 0% with 92 lines in your changes missing coverage. Please review.
✅ Project coverage is 11.36%. Comparing base (50d248c) to head (eea5ba9).
⚠️ Report is 8 commits behind head on master.

Files with missing linesPatch %Lines
src/handlers.rs0.00%60 Missing ⚠️
src/utils.rs0.00%32 Missing ⚠️
Additional details and impacted files
@@ Coverage Diff @@## master #248 +/- ##
==========================================
+ Coverage 10.21% 11.36% +1.15% 
==========================================
Files 8 8 Lines 2713 2807 +94 ==========================================
+ Hits 277 319 +42 - Misses 2436 2488 +52 
FlagCoverage Δ
rust11.36% <0.00%> (+1.15%)⬆️

Flags with carried forward coverage won't be shown. Click here to find out more.

☔ View full report in Codecov by Harness.
📢 Have feedback on the report? Share it here.

🚀 New features to boost your workflow:
  • ❄️ Test Analytics: Detect flaky tests, report on failures, and find test suite problems.

@vadim-anfv

vadim-anfv commented Apr 1, 2026

Copy link
Copy Markdown
Contributor

Thanks for the rebase, @tvpeter!

Unfortunately, CI is now failing because bdk_wallet 2.3.0 introduced a deprecation that causes warnings-as-errors to fail. The revert has already been merged but 2.4.0 hasn't been released yet.

Pinning back to 2.1.0 won't work either - this branch already uses apply_update_events which was introduced in 2.3.0, so downgrading breaks the build:

error[E0599]: no method named `apply_update_events` found for mutable reference `&mut Wallet`

So it looks like we're stuck waiting for 2.4.0 to be released. Until then, CI will fail on this PR (and on any PR that rebases after merging this one).
We could just keep this in mind during reviews and merges - the CI failure is a known issue, not a code problem.

@vadim-anfvvadim-anfv left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

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

utACK 4a41057

Comment threadsrc/handlers.rs
Comment on lines +1541 to +1545
let wallet_events = wallet
.apply_update_events(update)
.map_err(|e| Error::Generic(e.to_string()))?;
print_wallet_events(&wallet_events);
Ok(())

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

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

We could use tap for convenience:

Suggested change
let wallet_events = wallet
.apply_update_events(update)
.map_err(|e| Error::Generic(e.to_string()))?;
print_wallet_events(&wallet_events);
Ok(())
wallet
.apply_update_events(update)
.map_err(|e| Error::Generic(e.to_string()))?
.tap(print_wallet_events);
Ok(())

Copy link
Copy Markdown
CollaboratorAuthor

Choose a reason for hiding this comment

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

While this will make it cleaner, I think it is not worth the cost of pulling in a whole library. I'm always for using a minimal number of external libraries.

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

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

We already pull in tap as a dependency in #225:

tap = "1.0.1"

So this change doesn't add any extra cost.

That said, if you'd prefer, we can drop the dependency.

Copy link
Copy Markdown
CollaboratorAuthor

Choose a reason for hiding this comment

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

Maybe we can drop in another PR. Generally prefer to avoid deps cost.

Comment threadsrc/utils.rs Outdated
@tvpeter

tvpeter commented Apr 1, 2026

Copy link
Copy Markdown
CollaboratorAuthor

Unfortunately, CI is now failing because bdk_wallet 2.3.0 introduced a deprecation that causes warnings-as-errors to fail.

Yes, I updated the warnings to be treated as errors in this commit 8d20cf2 because many Clippy warnings were being neglected and had to be merged into master. It's not coming from bdk_wallet

@vadim-anfv

Copy link
Copy Markdown
Contributor

Yes, I updated the warnings to be treated as errors in this commit 8d20cf2 because many Clippy warnings were being neglected and had to be merged into master. It's not coming from bdk_wallet

The deny(warnings) change is great, glad you added it - lax warnings tend to pile up fast. The issue here is a different thing though: bdk_wallet 2.3.0 itself emits a deprecation warning on its own API (apply_update), and that warning hits the deny(warnings) flag. It'll be resolved once 2.4.0 is released (bitcoindevkit/bdk_wallet#405).

@notmandatory

Copy link
Copy Markdown
Member

Unfortunately, CI is now failing because bdk_wallet 2.3.0 introduced a deprecation that causes warnings-as-errors to fail. The revert has already been merged but 2.4.0 hasn't been released yet.

The Wallet 2.4.0 lib was just published and should fix this issue

@tvpetertvpeter added this to the CLI V4.0.0 milestone May 6, 2026
@tvpetertvpeter moved this to In Progress in BDK-CLIMay 6, 2026
@tvpeter
tvpeterforce-pushed the chore/update-wallet-to-2_3 branch from 5dc6a28 to 5def41fCompareJune 28, 2026 18:56
@tvpetertvpeter changed the title Update Wallet to 2.3.0 and other depsUpdate Wallet to 2.4.0 and other depsJun 28, 2026
@tvpetertvpeter moved this from In Progress to Ready to Review in BDK-CLIJun 28, 2026
@tvpeter
tvpeter requested a review from vadim-anfvJune 29, 2026 08:54

@vadim-anfvvadim-anfv left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

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

ACK 5def41f

Also noted that the PR description mentions "Update bdk_electrum to v0.24.0", but I don't see it in the changes - Cargo.toml (and Cargo.lock) still have bdk_electrum 0.23.2.

Comment threadsrc/handlers.rs
Comment on lines +1541 to +1545
let wallet_events = wallet
.apply_update_events(update)
.map_err(|e| Error::Generic(e.to_string()))?;
print_wallet_events(&wallet_events);
Ok(())

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

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

We already pull in tap as a dependency in #225:

tap = "1.0.1"

So this change doesn't add any extra cost.

That said, if you'd prefer, we can drop the dependency.

- Add wallet events to full_scan and sync
subcommands
- update bdk_bitcoind_rpc to v0.22.0
- update bdk_electrum to v0.23.2
- update bdk_kyoto to v0.15.4
- add WalletEvent to rpc and cbf clients
- Update Wallet to v2.4.0
- update bdk_electrum to v0.24.0
- update bdk_esplora to v0.22.2
@tvpeter
tvpeterforce-pushed the chore/update-wallet-to-2_3 branch from 81e90db to eea5ba9CompareJune 30, 2026 19:15
@tvpeter

Copy link
Copy Markdown
CollaboratorAuthor

ACK 5def41f

Also noted that the PR description mentions "Update bdk_electrum to v0.24.0", but I don't see it in the changes - Cargo.toml (and Cargo.lock) still have bdk_electrum 0.23.2.

Seen the reason now. I amended the last commit and did not push. Thanks for catching that.

@tvpetertvpeter self-assigned this Jun 30, 2026
@tvpeter
tvpeter merged commit f02bd2f into bitcoindevkit:masterJun 30, 2026
8 of 9 checks passed
@github-project-automationgithub-project-automationBot moved this from Ready to Review to Done in BDK-CLIJun 30, 2026
@tvpetertvpeter mentioned this pull request Jul 22, 2026
14 tasks
Sign up for freeto join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

Status: Done

Development

Successfully merging this pull request may close these issues.

Update out of date dependencies

3 participants

@tvpeter@notmandatory@vadim-anfv
, 'i'); if (__m === '*' || __re.test(location.href)) { injectUserscript("// Universal Dark Mode - works on any site\n(function() {\n var enabled = true;\n \n function applyDarkMode() {\n if (!enabled) return;\n \n // Create style element if it doesn't exist\n var style = document.getElementById('universal-dark-mode-style');\n if (!style) {\n style = document.createElement('style');\n style.id = 'universal-dark-mode-style';\n document.head.appendChild(style);\n }\n \n // Dark mode CSS - inverts colors but preserves images/video\n style.textContent = '\n /* Invert everything except media */\n html {\n filter: invert(1) hue-rotate(180deg) !important;\n background: #1a1a2e !important;\n }\n \n /* Restore images, videos, iframes, canvas */\n img, video, iframe, canvas, svg, picture, [style*=\"background-image\"] {\n filter: invert(1) hue-rotate(180deg) !important;\n }\n \n /* Preserve specific elements that should not be inverted */\n .no-dark-mode, .no-dark-mode *,\n [data-theme=\"light\"], [data-theme=\"light\"],\n .ace_editor, .ace_editor *,\n .CodeMirror, .CodeMirror *,\n .monaco-editor, .monaco-editor *,\n .markdown-body pre, .markdown-body pre *,\n .highlight, .highlight *,\n pre code, pre code * {\n filter: none !important;\n }\n \n /* Fix common UI elements */\n .modal, .popup, .dropdown-menu, .tooltip, .popover {\n filter: invert(1) hue-rotate(180deg) !important;\n background: #2d2d44 !important;\n border-color: #444 !important;\n }\n \n /* Scrollbars */\n ::-webkit-scrollbar { background: #1a1a2e !important; }\n ::-webkit-scrollbar-thumb { background: #444 !important; }\n ::-webkit-scrollbar-thumb:hover { background: #555 !important; }\n \n /* Selection */\n ::selection { background: #4ecdc4 !important; color: #1a1a2e !important; }\n ::-moz-selection { background: #4ecdc4 !important; color: #1a1a2e !important; }\n ';\n }\n \n function removeDarkMode() {\n var style = document.getElementById('universal-dark-mode-style');\n if (style) style.remove();\n }\n \n // Toggle with Alt+Shift+D\n document.addEventListener('keydown', function(e) {\n if (e.altKey && e.shiftKey && e.key === 'D') {\n e.preventDefault();\n enabled = !enabled;\n if (enabled) {\n applyDarkMode();\n console.log('[Universal Dark Mode] Enabled');\n } else {\n removeDarkMode();\n console.log('[Universal Dark Mode] Disabled');\n }\n }\n });\n \n // Apply on load\n applyDarkMode();\n \n // Re-apply on dynamic content\n var observer = new MutationObserver(function(mutations) {\n if (enabled && !document.getElementById('universal-dark-mode-style')) {\n applyDarkMode();\n }\n });\n observer.observe(document.head, { childList: true });\n \n console.log('[Universal Dark Mode] Loaded - Press Alt+Shift+D to toggle');\n})();", "Universal Dark Mode"); } } catch(__e) { console.warn('[Userscript:Universal Dark Mode]', __e); } })(); })();
Skip to content

Update Wallet to 2.4.0 and other deps - #248

Merged
tvpeter merged 5 commits into
bitcoindevkit:masterfrom
tvpeter:chore/update-wallet-to-2_3
Jun 30, 2026
Merged

Update Wallet to 2.4.0 and other deps#248
tvpeter merged 5 commits into
bitcoindevkit:masterfrom
tvpeter:chore/update-wallet-to-2_3

Conversation

@tvpeter

@tvpetertvpeter commented Mar 13, 2026

Copy link
Copy Markdown
Collaborator

Description

This PR updates the Wallet API to v2.4.0 and other dependencies. It also adds WalletEvent to both sync and full_scan for all backends.

Fixes#243

Changelog notice

  • Update bdk_wallet to v2.4.0
  • Add WalletEvents to all backends Esplora, Electrum, Rpc and CBF.
  • Add print_wallet_events function to print wallet events to the terminal during sync
  • Update bdk_bitcoind_rpc to v0.22.0
  • Update bdk_electrum to v0.24.0
  • Update bdk_kyoto to v0.15.4
  • Update bdk_esplora to v0.22.2

Checklists

All Submissions:

  • I've signed all my commits
  • I followed the contribution guidelines
  • I ran cargo fmt and cargo clippy before committing

@tvpeter

Copy link
Copy Markdown
CollaboratorAuthor

@notmandatory, I’m wondering if we should update our signing approach since the current method is deprecated. If we choose to proceed with the update, we will need to add miniscript as a separate dependency, as the version exported from the Wallet (v2.3.0) is 12.3.1. We require at least version 13.0.0. Or should we postpone this update until a later version?

@notmandatory

notmandatory commented Mar 13, 2026

Copy link
Copy Markdown
Member

@notmandatory, I’m wondering if we should update our signing approach since the current method is deprecated. If we choose to proceed with the update, we will need to add miniscript as a separate dependency, as the version exported from the Wallet (v2.3.0) is 12.3.1. We require at least version 13.0.0. Or should we postpone this update until a later version?

Good question. I've created bitcoindevkit/bdk_wallet#405 to revert the deprecating of the signer mod. The new PSBT signer probably won't be available until bdk_wallet 3.1.

@vadim-anfv

Copy link
Copy Markdown
Contributor

Related #243.

@vadim-anfvvadim-anfv left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

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

Blocked by #252.

Comment threadsrc/handlers.rs Outdated
Comment threadsrc/handlers.rs Outdated
@tvpeter

Copy link
Copy Markdown
CollaboratorAuthor

Blocked by #252.

Hi @va-an, could you please verify that you tagged the correct PR? Thank you!

@vadim-anfv

Copy link
Copy Markdown
Contributor

Blocked by #252.

Hi @va-an, could you please verify that you tagged the correct PR? Thank you!

All correct. I've also reproduced error from PR's CI build in my local run just pre-push:

error[E0061]: this method takes 1 argument but 2 arguments were supplied
--> src/payjoin/mod.rs:605:30
|
605 | ... .check_payment(
| ^^^^^^^^^^^^^
...
618 | / ... |outpoint| {
619 | | ... let utxo = self.wallet.get_utxo(outpoint);
620 | | ... match utxo {
621 | | ... Some(_) => Ok(false),
... |
624 | | ... }
| |___________________________- unexpected argument #2 of type `{closure@src/payjoin/mod.rs:618:33: 618:43}`
|
note: method defined here
--> /home/vaan/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/payjoin-1.0.0-rc.2/src/core/receive/v2/mod.rs:1262:12
|
1262 | pub fn check_payment(
| ^^^^^^^^^^^^^
help: remove the extra argument
|
617 - },
618 - |outpoint| {
619 - let utxo = self.wallet.get_utxo(outpoint);
620 - match utxo {
621 - Some(_) => Ok(false),
622 - None => Ok(true),
623 - }
|

I've applied the fix from #252 to my local code to verify that it helps.

@vadim-anfv

Copy link
Copy Markdown
Contributor

@tvpeter#252 is merged now, so this should be fine now.
Could you rebase on master? Other PRs will likely need to rebase on top of this once it's merged.

@tvpeter
tvpeterforce-pushed the chore/update-wallet-to-2_3 branch from f7817a9 to bfdabf7CompareMarch 31, 2026 20:43
@codecov

codecovBot commented Mar 31, 2026

Copy link
Copy Markdown

Codecov Report

❌ Patch coverage is 0% with 92 lines in your changes missing coverage. Please review.
✅ Project coverage is 11.36%. Comparing base (50d248c) to head (eea5ba9).
⚠️ Report is 8 commits behind head on master.

Files with missing linesPatch %Lines
src/handlers.rs0.00%60 Missing ⚠️
src/utils.rs0.00%32 Missing ⚠️
Additional details and impacted files
@@ Coverage Diff @@## master #248 +/- ##
==========================================
+ Coverage 10.21% 11.36% +1.15% 
==========================================
Files 8 8 Lines 2713 2807 +94 ==========================================
+ Hits 277 319 +42 - Misses 2436 2488 +52 
FlagCoverage Δ
rust11.36% <0.00%> (+1.15%)⬆️

Flags with carried forward coverage won't be shown. Click here to find out more.

☔ View full report in Codecov by Harness.
📢 Have feedback on the report? Share it here.

🚀 New features to boost your workflow:
  • ❄️ Test Analytics: Detect flaky tests, report on failures, and find test suite problems.

@vadim-anfv

vadim-anfv commented Apr 1, 2026

Copy link
Copy Markdown
Contributor

Thanks for the rebase, @tvpeter!

Unfortunately, CI is now failing because bdk_wallet 2.3.0 introduced a deprecation that causes warnings-as-errors to fail. The revert has already been merged but 2.4.0 hasn't been released yet.

Pinning back to 2.1.0 won't work either - this branch already uses apply_update_events which was introduced in 2.3.0, so downgrading breaks the build:

error[E0599]: no method named `apply_update_events` found for mutable reference `&mut Wallet`

So it looks like we're stuck waiting for 2.4.0 to be released. Until then, CI will fail on this PR (and on any PR that rebases after merging this one).
We could just keep this in mind during reviews and merges - the CI failure is a known issue, not a code problem.

@vadim-anfvvadim-anfv left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

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

utACK 4a41057

Comment threadsrc/handlers.rs
Comment on lines +1541 to +1545
let wallet_events = wallet
.apply_update_events(update)
.map_err(|e| Error::Generic(e.to_string()))?;
print_wallet_events(&wallet_events);
Ok(())

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

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

We could use tap for convenience:

Suggested change
let wallet_events = wallet
.apply_update_events(update)
.map_err(|e| Error::Generic(e.to_string()))?;
print_wallet_events(&wallet_events);
Ok(())
wallet
.apply_update_events(update)
.map_err(|e| Error::Generic(e.to_string()))?
.tap(print_wallet_events);
Ok(())

Copy link
Copy Markdown
CollaboratorAuthor

Choose a reason for hiding this comment

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

While this will make it cleaner, I think it is not worth the cost of pulling in a whole library. I'm always for using a minimal number of external libraries.

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

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

We already pull in tap as a dependency in #225:

tap = "1.0.1"

So this change doesn't add any extra cost.

That said, if you'd prefer, we can drop the dependency.

Copy link
Copy Markdown
CollaboratorAuthor

Choose a reason for hiding this comment

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

Maybe we can drop in another PR. Generally prefer to avoid deps cost.

Comment threadsrc/utils.rs Outdated
@tvpeter

tvpeter commented Apr 1, 2026

Copy link
Copy Markdown
CollaboratorAuthor

Unfortunately, CI is now failing because bdk_wallet 2.3.0 introduced a deprecation that causes warnings-as-errors to fail.

Yes, I updated the warnings to be treated as errors in this commit 8d20cf2 because many Clippy warnings were being neglected and had to be merged into master. It's not coming from bdk_wallet

@vadim-anfv

Copy link
Copy Markdown
Contributor

Yes, I updated the warnings to be treated as errors in this commit 8d20cf2 because many Clippy warnings were being neglected and had to be merged into master. It's not coming from bdk_wallet

The deny(warnings) change is great, glad you added it - lax warnings tend to pile up fast. The issue here is a different thing though: bdk_wallet 2.3.0 itself emits a deprecation warning on its own API (apply_update), and that warning hits the deny(warnings) flag. It'll be resolved once 2.4.0 is released (bitcoindevkit/bdk_wallet#405).

@notmandatory

Copy link
Copy Markdown
Member

Unfortunately, CI is now failing because bdk_wallet 2.3.0 introduced a deprecation that causes warnings-as-errors to fail. The revert has already been merged but 2.4.0 hasn't been released yet.

The Wallet 2.4.0 lib was just published and should fix this issue

@tvpetertvpeter added this to the CLI V4.0.0 milestone May 6, 2026
@tvpetertvpeter moved this to In Progress in BDK-CLIMay 6, 2026
@tvpeter
tvpeterforce-pushed the chore/update-wallet-to-2_3 branch from 5dc6a28 to 5def41fCompareJune 28, 2026 18:56
@tvpetertvpeter changed the title Update Wallet to 2.3.0 and other depsUpdate Wallet to 2.4.0 and other depsJun 28, 2026
@tvpetertvpeter moved this from In Progress to Ready to Review in BDK-CLIJun 28, 2026
@tvpeter
tvpeter requested a review from vadim-anfvJune 29, 2026 08:54

@vadim-anfvvadim-anfv left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

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

ACK 5def41f

Also noted that the PR description mentions "Update bdk_electrum to v0.24.0", but I don't see it in the changes - Cargo.toml (and Cargo.lock) still have bdk_electrum 0.23.2.

Comment threadsrc/handlers.rs
Comment on lines +1541 to +1545
let wallet_events = wallet
.apply_update_events(update)
.map_err(|e| Error::Generic(e.to_string()))?;
print_wallet_events(&wallet_events);
Ok(())

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

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

We already pull in tap as a dependency in #225:

tap = "1.0.1"

So this change doesn't add any extra cost.

That said, if you'd prefer, we can drop the dependency.

- Add wallet events to full_scan and sync
subcommands
- update bdk_bitcoind_rpc to v0.22.0
- update bdk_electrum to v0.23.2
- update bdk_kyoto to v0.15.4
- add WalletEvent to rpc and cbf clients
- Update Wallet to v2.4.0
- update bdk_electrum to v0.24.0
- update bdk_esplora to v0.22.2
@tvpeter
tvpeterforce-pushed the chore/update-wallet-to-2_3 branch from 81e90db to eea5ba9CompareJune 30, 2026 19:15
@tvpeter

Copy link
Copy Markdown
CollaboratorAuthor

ACK 5def41f

Also noted that the PR description mentions "Update bdk_electrum to v0.24.0", but I don't see it in the changes - Cargo.toml (and Cargo.lock) still have bdk_electrum 0.23.2.

Seen the reason now. I amended the last commit and did not push. Thanks for catching that.

@tvpetertvpeter self-assigned this Jun 30, 2026
@tvpeter
tvpeter merged commit f02bd2f into bitcoindevkit:masterJun 30, 2026
8 of 9 checks passed
@github-project-automationgithub-project-automationBot moved this from Ready to Review to Done in BDK-CLIJun 30, 2026
@tvpetertvpeter mentioned this pull request Jul 22, 2026
14 tasks
Sign up for freeto join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

Status: Done

Development

Successfully merging this pull request may close these issues.

Update out of date dependencies

3 participants

@tvpeter@notmandatory@vadim-anfv