]> Untitled Git - bdk-cli/log
bdk-cli
6 weeks agodrop verbose flag
Vihiga Tyonum [Wed, 8 Jul 2026 16:32:39 +0000 (17:32 +0100)]
drop verbose flag

6 weeks agofeat(handlers): mv feats into subdirs in handlers
Vihiga Tyonum [Wed, 8 Jul 2026 15:22:46 +0000 (16:22 +0100)]
feat(handlers): mv feats into subdirs in handlers

6 weeks agofeat(dns-payment): port dns payment instruction
Vihiga Tyonum [Wed, 8 Jul 2026 12:42:01 +0000 (13:42 +0100)]
feat(dns-payment): port dns payment instruction

- migrate dns payment instruction feature

6 weeks agoMerge branch 'master' into ref/restructure-project
Vihiga Tyonum [Wed, 8 Jul 2026 09:48:41 +0000 (10:48 +0100)]
Merge branch 'master' into ref/restructure-project

7 weeks agoMerge bitcoindevkit/bdk-cli#236: feat: add BIP353 DNS payment instructions
merge-script [Wed, 8 Jul 2026 08:28:33 +0000 (09:28 +0100)]
Merge bitcoindevkit/bdk-cli#236: feat: add BIP353 DNS payment instructions

943b4b648f89c1958cbf5bcd085b28e80e1077a1 fix: separate CreateTx from CreateDnsTx (Sonkeng Maldini)
550918c1c83fbdd941880a7a837fce29550b0a77 fix: unifying recipients before send (Sonkeng Maldini)
6ea1b217a695ba4bb9f1a27b4b2ca1e49fc68801 fix: add log when resolving (Sonkeng Maldini)
e3c8efcf6d805beff974fc0c1dfa7545f42045c1 discard pretty flag and apply reviews (Sonkeng Maldini)
7a2c5dfef61885494391a88d23ebc6edd14add3e feat: integrate BIP 353 dns payment instructions (Sonkeng Maldini)

Pull request description:

  <!-- You can erase any parts of this template not applicable to your Pull Request. -->

  ### Description

  This PR adds support for BIP353 payment instructions.
  The following notable changes are done:

  - Adding of an option `resolve_dns_recipient` which receives a Human Readable Name (HRN) and returns the associated address
  - Modify the `create_tx` for it to support user specifying recipients as `HRN`.

  ### Notes to the reviewers

  <!-- In this section you can include notes directed to the reviewers, like explaining why some parts
  of the PR were done in a specific way -->
  Here is a list of HRN that could be used to test the implementation:
  - pay@dunxen.dev: Supports BOLT 12 Payment method only (CAUTION: mainnet)
  - send.some@satsto.me: Supports BOLT 12 payment and On Chain (CAUTION: mainnet)
  - Testing resolving: `bdk-cli -n testnet resolve_dns_recipient testnet@bitdevsyde.org`
  - Testing create tx: `bdk-cli -n testnet wallet -w regtest_default_wallet create_tx --to "bcrt1qe497k549sgw9trzym50tdlegq3xx4apjqynjqm:1000" --to_dns "testnet@bitdevsyde.org:5000"`

  ## Changelog notice

  <!-- Notice the release manager should include in the release tag message changelog -->
  <!-- See https://keepachangelog.com/en/1.0.0/ for examples -->

  - Add top level command `resolve_dns_recipient` to resolve the DNS payment instructions
  - Add option `--to_dns` to `create_tx` command to allow sending to a Human Readable Name (HRN)

  ### Checklists

  #### All Submissions:

  * [x] I've signed all my commits
  * [x] I followed the [contribution guidelines](https://github.com/bitcoindevkit/bdk-cli/blob/master/CONTRIBUTING.md)
  * [x] I ran `cargo fmt` and `cargo clippy` before committing

  #### New Features:

  * [ ] I've added tests for the new feature
  * [ ] I've added docs for the new feature
  * [ ] I've updated `CHANGELOG.md`

Top commit has no ACKs.

Tree-SHA512: 1bd0d0b26e80f3a271c647cd81ae5e7ab9e6813c7b1776141f05765519bcbc27025801f69f3f9cb72e1ecbe4314373d5e9c3262dfd8a4a1511d176a04bedad3d

7 weeks agofix: separate CreateTx from CreateDnsTx
Sonkeng Maldini [Mon, 6 Jul 2026 20:06:10 +0000 (21:06 +0100)]
fix: separate CreateTx from CreateDnsTx

7 weeks agofix: unifying recipients before send
Sonkeng Maldini [Wed, 17 Jun 2026 16:53:17 +0000 (17:53 +0100)]
fix: unifying recipients before send

7 weeks agofix: add log when resolving
Sonkeng Maldini [Tue, 26 May 2026 11:14:17 +0000 (12:14 +0100)]
fix: add log when resolving

7 weeks agodiscard pretty flag and apply reviews
Sonkeng Maldini [Mon, 25 May 2026 17:37:28 +0000 (18:37 +0100)]
discard pretty flag and apply reviews

7 weeks agofeat: integrate BIP 353 dns payment instructions
Sonkeng Maldini [Wed, 7 Jan 2026 21:56:11 +0000 (22:56 +0100)]
feat: integrate BIP 353 dns payment instructions

7 weeks agofeat(sp): fix command_requires_db fn match arm
Vihiga Tyonum [Sun, 5 Jul 2026 02:37:46 +0000 (03:37 +0100)]
feat(sp): fix command_requires_db fn match arm

7 weeks agoMerge 'master' into refactor/restructure-project
Vihiga Tyonum [Sun, 5 Jul 2026 02:33:06 +0000 (03:33 +0100)]
Merge 'master' into refactor/restructure-project

7 weeks agoref(payjoin): add payjoin persistence
Vihiga Tyonum [Sun, 5 Jul 2026 02:07:10 +0000 (03:07 +0100)]
ref(payjoin): add payjoin persistence

- Adds payjoin persistence

7 weeks agoref(compile):compile tr desc with rand unspend key
Vihiga Tyonum [Sat, 4 Jul 2026 11:01:20 +0000 (12:01 +0100)]
ref(compile):compile tr desc with rand unspend key

- add compile taproot descriptor with randomized
unspendable internal key

7 weeks agofeat(WalletEvents): Add wallet events to clients
Vihiga Tyonum [Sat, 4 Jul 2026 10:38:46 +0000 (11:38 +0100)]
feat(WalletEvents): Add wallet events to clients

- Update bdk_wallet to v2.4.0 and other deps
- Add wallet events to RPC, electrum, esplora and
kyoto clients

7 weeks agoref(create_tx): enforce single recp for sendall
Vihiga Tyonum [Sat, 4 Jul 2026 10:13:21 +0000 (11:13 +0100)]
ref(create_tx): enforce single recp for sendall

7 weeks agoMerge bitcoindevkit/bdk-cli#242: Payjoin persistence
merge-script [Thu, 2 Jul 2026 11:45:01 +0000 (12:45 +0100)]
Merge bitcoindevkit/bdk-cli#242: Payjoin persistence

2f14a368158dbeacfc9420587a85fb7b29e2ab07 Retry Payjoin requests with other relays (Mshehu5)
6fb0ecd00e089a8cd2d8eecf46e8f6ac48dc4033 Restrict payjoin inputs to confirmed UTXOs (Mshehu5)
262ce86573a98bfe33cb92d52d2da0acece32538 Add payjoin persistence test (Mshehu5)
e85a92cd655b7d44a401f01ca86dad782e04e54b Prune stale payjoin sessions on DB open (Mshehu5)
181d1325ae5fae60c47c47df7c079abebc84c595 chore(deps): Bump payjoin and enable reqwest rustls (Mshehu5)
b9ca88ff6fbd8846d9f6122a7695cc129b71ad8a Document payjoin recovery commands and SQLite setup (Mshehu5)
559ba76255adaa2ab129c5df63d796ae53f5ac67 Add commands to resume and view payjoin history (Mshehu5)
4f71144a49047c9debd481cbb2a75cd86d462906 Integrate payjoin session persistence into workflow (Mshehu5)
c2bdb3d53f503d9ce58cb2c43771320a89aefdf4 Add SQLite backing store for payjoin sessions (Mshehu5)

Pull request description:

  ### Description
  https://github.com/bitcoindevkit/bdk-cli/pull/230 needed to be merged for this to go through
  Address https://github.com/bitcoindevkit/bdk-cli/issues/149 also follow up to #200
  This PR adds persistance to existing async payjoin integration
  This introduces neccessary database model and tables also  add commad for resume to allow interrupted sessions to be continued also a particular session either send or receive.
  A history commad to view payjoin history and status has been added

  ### Notes to the reviewers

  Step to review this include making a payjoin transaction

  Run a receiver to get a BIP21 URI then pass it to the sender as seen in docs https://github.com/bitcoindevkit/bdk-cli/blob/b9cf2acc5f10db46fa30777ff0910b8610a5fc33/README.md?plain=1#L121-L141

  To test resumption, interrupt either side with Ctrl+C mid-session then run resume on that side to continue. A few scenarios worth covering: receiver resuming after interrupt and sender resuming after interrupt. Use history after each scenario to confirm the session state was persisted correctly.

  docs for this can be seen in 7e4ffd1d3ad1165a7d9187bcacb0bdab3303dbb3

  ### Checklists

  #### All Submissions:

  * [x] I've signed all my commits
  * [x] I followed the [contribution guidelines](https://github.com/bitcoindevkit/bdk-cli/blob/master/CONTRIBUTING.md)
  * [x] I ran `cargo fmt` and `cargo clippy` before committing

  #### New Features:
  * [x] I've added docs for the new feature

Top commit has no ACKs.

Tree-SHA512: 1e8be24fbf7d894687389192381242cebafcaffd8601418e197cfb7942917cbcd5ae308ed5e9fcc644c1dacb78abed9aa23c49c5ff08151b4657956e89d14217

7 weeks agoRetry Payjoin requests with other relays
Mshehu5 [Sun, 28 Jun 2026 16:01:25 +0000 (17:01 +0100)]
Retry Payjoin requests with other relays

Payjoin currently keeps using the relay selected during OHTTP key
bootstrapping. If that relay goes offline, the session fails even when
other relay URLs were supplied.

Select from the available relays for each OHTTP request and remember
failures for the rest of the command. Build a fresh request for every
attempt so failover does not reuse linkable OHTTP ciphertext.

7 weeks agoRestrict payjoin inputs to confirmed UTXOs
Mshehu5 [Sat, 6 Jun 2026 11:24:36 +0000 (12:24 +0100)]
Restrict payjoin inputs to confirmed UTXOs

Prevent wallet failures caused by selecting unconfirmed coins for
payjoin inputs.

Without this filter, the wallet can fail with an "unconfirmed
coins" error during payjoin processing.

7 weeks agoAdd payjoin persistence test
Mshehu5 [Fri, 29 May 2026 10:53:44 +0000 (11:53 +0100)]
Add payjoin persistence test

Cover the new payjoin persistence paths with focused unit tests.

Exercise replay protection, sender and receiver event persistence,
session pruning and history rendering.

These cases were chosen because the PR's new behavior is
concentrated in the persistence layer and session history path

7 weeks agoPrune stale payjoin sessions on DB open
Mshehu5 [Tue, 14 Apr 2026 14:54:06 +0000 (15:54 +0100)]
Prune stale payjoin sessions on DB open

Delete payjoin sessions older than 30 days when the payjoin database is accessed. Remove related event rows in the same cleanup pass.

7 weeks agochore(deps): Bump payjoin and enable reqwest rustls
Mshehu5 [Mon, 13 Apr 2026 11:26:28 +0000 (12:26 +0100)]
chore(deps): Bump payjoin and enable reqwest rustls

Move to payjoin 0.25.0 to stay closer to the latest release.

Enable rustls for the direct reqwest client because Payjoin
polling uses bdk-cli's own HTTPS client and without a TLS
backend the first relay poll fails.

Refine the skipped monitoring status message for the receiver
flow.

7 weeks agoDocument payjoin recovery commands and SQLite setup
Mshehu5 [Mon, 16 Feb 2026 13:51:18 +0000 (14:51 +0100)]
Document payjoin recovery commands and SQLite setup

Update the README to cover the new `resume` and `history` commands
so users can recover interrupted payjoin sessions and inspect saved
session state. Also add the SQLite dependency needed for the
payjoin persistence workflow.

This keeps the user-facing setup and command documentation aligned
with the new persistence and recovery behavior.

7 weeks agoAdd commands to resume and view payjoin history
Mshehu5 [Mon, 16 Feb 2026 13:50:06 +0000 (14:50 +0100)]
Add commands to resume and view payjoin history

Expose persisted payjoin session state through CLI commands so users
can recover interrupted sessions and review prior session progress.
Add `resume` to continue pending sender and receiver sessions,
`history` to list saved sessions, status text helpers for clearer
output, and session ID filtering to target a specific session.

This improves recovery and troubleshooting for long-running async
payjoin flows by making persisted session state available from the
CLI.

7 weeks agoIntegrate payjoin session persistence into workflow
Mshehu5 [Mon, 16 Feb 2026 13:48:33 +0000 (14:48 +0100)]
Integrate payjoin session persistence into workflow

Wire the payjoin persistence layer into the existing send and receive
flows so session state is saved during normal operation and can be
replayed later. Initialize the database from the handlers, replace
the noop persisters with SQLite-backed persisters, resume existing
sessions, and record seen inputs in the receiver flow for replay
protection.

This moves persistence from a standalone storage layer into the
runtime payjoin workflow so interrupted sessions can continue from
saved state instead of starting over. It also simplifies error
handling by relying on `?` once the storage errors map cleanly into
the CLI error type.

7 weeks agoAdd SQLite backing store for payjoin sessions
Mshehu5 [Mon, 16 Feb 2026 13:31:08 +0000 (14:31 +0100)]
Add SQLite backing store for payjoin sessions

Persist payjoin sender and receiver state in SQLite so interrupted
payjoin sessions can be resumed after the CLI exits. Add dedicated
tables for send and receive sessions, append-only event logs for
state replay, receiver pubkey lookup for sender sessions, and
seen-input tracking for replay protection.

This follows the intended async payjoin design by persisting session
state across interruptions. SQLite keeps the initial persistence
backend simple and builds on existing rusqlite support, at the cost
of a small payjoin-specific schema and serialization layer.

8 weeks agoMerge bitcoindevkit/bdk-cli#248: Update Wallet to 2.4.0 and other deps
merge-script [Tue, 30 Jun 2026 19:38:29 +0000 (20:38 +0100)]
Merge bitcoindevkit/bdk-cli#248: Update Wallet to 2.4.0 and other deps

eea5ba9a44cf82a10eca47f77a66c2e0822e1d3f chore: update bdk_electrum and bdk_esplora (Vihiga Tyonum)
4b6094a4b7b379c589e00bd7cad4756a874c83c0 feat(WalletEvent): Add WalletEvent to rpc and cbf (Vihiga Tyonum)
3aa50416de33cb795210b71087da0c9682f90997 chore(update-deps): Fix clippy warnings (Vihiga Tyonum)
a3c6d6eb83e10324723c820b40e6adbe55e652c2 chore: Update project dependencies (Vihiga Tyonum)
06b049d7aba5919446a7851f0dc9efdd9a654052 chore: Update bdk_wallet to v2.3 (Vihiga Tyonum)

Pull request description:

  <!-- You can erase any parts of this template not applicable to your Pull Request. -->

  ### 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

  <!-- Describe the purpose of this PR, what's being adding and/or fixed -->

  ## 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

  <!-- Notice the release manager should include in the release tag message changelog -->
  <!-- See https://keepachangelog.com/en/1.0.0/ for examples -->

  ### Checklists

  #### All Submissions:

  * [x] I've signed all my commits
  * [x] I followed the [contribution guidelines](https://github.com/bitcoindevkit/bdk-cli/blob/master/CONTRIBUTING.md)
  * [x] I ran `cargo fmt` and `cargo clippy` before committing

Top commit has no ACKs.

Tree-SHA512: 2c3c2beb66d1f23fd3e0e30a86622625a51ae5a4092540a9393188cf46523977a05936f893d06149459a65877527b9d52dd9eca00b08a86d59b2ed671b469a2c

8 weeks agochore: update bdk_electrum and bdk_esplora
Vihiga Tyonum [Sun, 28 Jun 2026 19:40:46 +0000 (20:40 +0100)]
chore: update bdk_electrum and bdk_esplora

- update bdk_electrum to v0.24.0
- update bdk_esplora to v0.22.2

8 weeks agofeat(WalletEvent): Add WalletEvent to rpc and cbf
Vihiga Tyonum [Sun, 28 Jun 2026 18:31:15 +0000 (19:31 +0100)]
feat(WalletEvent): Add WalletEvent to rpc and cbf

- add WalletEvent to rpc and cbf clients
- Update Wallet to v2.4.0

8 weeks agochore(update-deps): Fix clippy warnings
Vihiga Tyonum [Tue, 31 Mar 2026 21:13:40 +0000 (22:13 +0100)]
chore(update-deps): Fix clippy warnings

8 weeks agochore: Update project dependencies
Vihiga Tyonum [Fri, 13 Mar 2026 13:13:09 +0000 (14:13 +0100)]
chore: Update project dependencies

- update bdk_bitcoind_rpc to v0.22.0
- update bdk_electrum to v0.23.2
- update bdk_kyoto to v0.15.4

8 weeks agochore: Update bdk_wallet to v2.3
Vihiga Tyonum [Wed, 11 Feb 2026 16:34:15 +0000 (17:34 +0100)]
chore: Update bdk_wallet to v2.3

- Add wallet events to full_scan and sync
subcommands

8 weeks agoMerge bitcoindevkit/bdk-cli#291: fix(create_tx): enforce single recipient for send_all
merge-script [Mon, 29 Jun 2026 08:51:35 +0000 (09:51 +0100)]
Merge bitcoindevkit/bdk-cli#291: fix(create_tx): enforce single recipient for send_all

50d248cfc482bf5d7807b84182e7f19b104ab49b fix(create_tx): enforce single recipient for send_all (Artemiy)

Pull request description:

  Closes #290

  ### Description

  Previously, passing multiple `--to` arguments with `--send_all` would silently drain the wallet to only the first recipient, ignoring the rest. This was inconsistent with the silent-payments `create_tx`, which already validates the recipient count.

  Now returns an error unless exactly one recipient is provided.

  ### Notes to the reviewers

  - The fix mirrors the validation logic already present in the silent-payments `create_tx` branch of the same file, so behavior is now consistent between the two code paths.

  ## Changelog notice
  - Fixed create_tx --send_all to reject multiple recipients instead of silently using only the first one

  ### Checklists

  #### All Submissions:

  * [x] I've signed all my commits
  * [x] I followed the [contribution guidelines](https://github.com/bitcoindevkit/bdk-cli/blob/master/CONTRIBUTING.md)
  * [x] I ran `cargo fmt` and `cargo clippy` before committing

  * [x] I've updated `CHANGELOG.md`

  #### Bugfixes:

  * [ ] This pull request breaks the existing API
  * [ ] I've added tests to reproduce the issue which are now passing
  * [x] I'm linking the issue being fixed by this PR

ACKs for top commit:
  tvpeter:
    ACK 50d248cfc482bf5d7807b84182e7f19b104ab49b
  va-an:
    ACK 50d248cfc482bf5d7807b84182e7f19b104ab49b

Tree-SHA512: c462aebe4ba046e875f8a9981aef01eb85bc1f24ab122c6c9efb9f4569daf9349f7aefcbe42dad7bb2b144d06bae62da7af7419a392bde19d58980305b6ebaf9

8 weeks agoMerge bitcoindevkit/bdk-cli#225: feat(compile): compile taproot descriptor with rando...
merge-script [Sun, 28 Jun 2026 02:59:56 +0000 (03:59 +0100)]
Merge bitcoindevkit/bdk-cli#225: feat(compile): compile taproot descriptor with randomized unspendable internal key

03f6b98d4b0af77fc8a60104a4e1f5cdae3b0c1c test(handlers): drop redundant cfg gate on test module (Vadim Anufriev)
be6bb4b4049ced27ac6d937dd3e47dc5e0182303 docs: add pre-push recipe description to README (Vadim Anufriev)
6e113b1325e264cc4547bd6c3bad890ea6006722 docs(contributing): update CONTRIBUTING.md (Vadim Anufriev)
29ef2e2912a6503086682c33b7ffda21f4c0eed7 refactor(compile): lazy compilation and use pipe for readability (Vadim Anufriev)
a3ca537661dbb80620355b6dae296a836701f93c feat(compile): randomize unspendable internal key for taproot descriptor (Vadim Anufriev)
dd125049ca17f40aae28dead441660b2c201b495 chore(deps): make shlex a non-optional dependency (Vadim Anufriev)

Pull request description:

  ### Description

  Part of #218

  Implements randomization of the unspendable internal key for taproot descriptors. This is the first part of #218, which consists of two parts:
  1. **This PR**: Randomize unspendable internal key for taproot descriptor
  2. **Follow-up**: Add verification command to ensure internal key is derived from NUMS key

  Split into separate PRs for easier review and iteration, and to allow independent discussion of the verification command implementation, as one of the possible approaches could introduce breaking changes.

  ### Notes to the reviewers
  The `compile` command now returns an additional `r` field for taproot descriptors (`-t tr`), containing the randomly generated internal key. Each compilation will produce a different internal key instead of using a fixed NUMS key.

  Example output for taproot (first execution):
  ```
  -> % bdk-cli compile "pk(A)" -t tr
  {
    "descriptor": "tr(2dd09dd0355f4b2d5a4886de599786f3c0211652373221c87aba1cd1f7f1e593,pk(A))#anvu48aj",
    "r": "275a58827bd0ad459d6f92e083ddc3d99a03076155691680eb8f3b06380cdcfd"
  }
  ```

  Same descriptor compiled again produces different `r` and internal key:
  ```
  -> % bdk-cli compile "pk(A)" -t tr
  {
    "descriptor": "tr(801078f69dae7d95631723d4d13e6c32911633d227dcfc24c6b7e32e1e533e6c,pk(A))#f79rr82j",
    "r": "5e3ac63bb20d6a4bfff645279cc63a7472e18066da8826b13cbcb23aecb5c401"
  }
  ```

  Other descriptor types remain unchanged:
  ```
  -> % bdk-cli compile "pk(A)" -t sh
  {
    "descriptor": "sh(pk(A))#k80zhe7s"
  }
  ```

  ### Checklists

  #### All Submissions:

  * [x] I've signed all my commits
  * [x] I followed the [contribution guidelines](https://github.com/bitcoindevkit/bdk-cli/blob/master/CONTRIBUTING.md)
  * [x] I ran `cargo fmt` and `cargo clippy` before committing

  #### New Features:

  * [x] I've added tests for the new feature
  * [ ] I've added docs for the new feature
  * [ ] I've updated `CHANGELOG.md`

Top commit has no ACKs.

Tree-SHA512: 333a7e82007dfe2344f14fb8e1fb7b3f5c19d99677251a97f7909a285607c399aeacfbbca089117677a859da6dfc55a4853b36f1773ed3e70292433e27bfcfd0

2 months agofix(create_tx): enforce single recipient for send_all
Artemiy [Sun, 21 Jun 2026 07:11:17 +0000 (10:11 +0300)]
fix(create_tx): enforce single recipient for send_all

Previously, passing multiple --to arguments with --send_all would
silently drain the wallet to only the first recipient, ignoring the
rest. This was inconsistent with the silent-payments create_tx, which
already validates the recipient count.

Now returns an error unless exactly one recipient is provided

2 months agorefactor(runtime): Add address and createtx to db
Vihiga Tyonum [Mon, 22 Jun 2026 15:07:28 +0000 (16:07 +0100)]
refactor(runtime): Add address and createtx to db

- Add new address, unused address and createtx
commands to list of commands that require
loading existing db
- adding persisting changes in offline and online
commands

2 months agorefactor(sp-payment): Rebase silent payment feat
Vihiga Tyonum [Sat, 6 Jun 2026 11:12:01 +0000 (12:12 +0100)]
refactor(sp-payment): Rebase silent payment feat

- rebase silent payment feature

2 months agorefactor(main): add runtime wallet module
Vihiga Tyonum [Sun, 31 May 2026 11:00:52 +0000 (12:00 +0100)]
refactor(main): add runtime wallet module

- add wallet runtime module to serve as context
manager
- fix clippy errors

2 months agorefactor(handlers): Apply app context
Vihiga Tyonum [Fri, 29 May 2026 03:24:41 +0000 (04:24 +0100)]
refactor(handlers): Apply app context

- apply app context with state to all the modules
- cover case for commands when db is not required

2 months agoRefactor(handlers): Define app context states
Vihiga Tyonum [Fri, 29 May 2026 03:17:56 +0000 (04:17 +0100)]
Refactor(handlers): Define app context states

- Define Init state for when an execution does
not need either the wallet or client for execution
- Define the Offline wallet operations state
for app context when an execution envt needs
 a wallet
- Define the online wallet operations state for
appcontext when an execution needs both the
wallet and client
- make app context generic over the state
- make the app command and async app command
generic over the execution context
- deleted shorten fn as it was applicable to the
pretty flag
- removed tests for pretty flag

2 months agorefactor(output): apply generics to output mod
Vihiga Tyonum [Tue, 26 May 2026 08:27:26 +0000 (09:27 +0100)]
refactor(output): apply generics to output mod

2 months agoref(handlers): fix offline, online and desc mod
Vihiga Tyonum [Thu, 21 May 2026 15:23:38 +0000 (16:23 +0100)]
ref(handlers): fix offline, online and desc mod

- fix execution logic for subcommands under
offline and online wallet subcommands

2 months agoref(handlers): refactor config, descr and key mods
Vihiga Tyonum [Thu, 21 May 2026 15:22:04 +0000 (16:22 +0100)]
ref(handlers): refactor config, descr and key mods

- move execution logic into config, desc and key
modules

2 months agoref(main): add run to handle routing
Vihiga Tyonum [Thu, 21 May 2026 15:20:00 +0000 (16:20 +0100)]
ref(main): add run to handle routing

- add run fn in main to handle routing

2 months agoref(pretty): remove `--pretty` flag
Vihiga Tyonum [Thu, 21 May 2026 15:17:39 +0000 (16:17 +0100)]
ref(pretty): remove `--pretty` flag

- remove --pretty flag
- move types to utils
- update commands

2 months agoref(persister): collapse wallet subdir to persister
Vihiga Tyonum [Thu, 21 May 2026 14:59:56 +0000 (15:59 +0100)]
ref(persister): collapse wallet subdir to persister

- move wallet subdir into the persister module
to simplify the structure as wallet was confusing

2 months agoupdate namespace and update types
Vihiga Tyonum [Thu, 14 May 2026 10:13:27 +0000 (11:13 +0100)]
update namespace and update types

2 months agorevert mod names for command and clients
Vihiga Tyonum [Thu, 14 May 2026 10:09:22 +0000 (11:09 +0100)]
revert mod names for command and clients

2 months agoref(utils): use types in desc output in utils
Vihiga Tyonum [Wed, 29 Apr 2026 15:35:19 +0000 (16:35 +0100)]
ref(utils): use types in desc output in utils

2 months agoref(handlers): rebase bip322 feature
Vihiga Tyonum [Wed, 29 Apr 2026 14:07:54 +0000 (15:07 +0100)]
ref(handlers): rebase bip322 feature

- rebase master for bip322 feature
- update types to use simple table helper

2 months agoref(types): add simple table helper
Vihiga Tyonum [Wed, 29 Apr 2026 08:11:33 +0000 (09:11 +0100)]
ref(types): add simple table helper

- add simple table helper fn for creating tables
- refactor types to use simple table helper
- add type defs for key, wallets and descriptors

2 months agoref(handlers): add types for desc, key & wallets
Vihiga Tyonum [Wed, 29 Apr 2026 08:09:01 +0000 (09:09 +0100)]
ref(handlers): add types for desc, key & wallets

- add types for descriptor, key and wallets mods

2 months agorefactor(handlers): Add types for outputting data
Vihiga Tyonum [Fri, 24 Apr 2026 18:41:23 +0000 (19:41 +0100)]
refactor(handlers): Add types for outputting data

- add trait for formatting outputs
- add types for presenting data to the output
- refactor offline mod to use types

2 months agoref(main): update main entry point
Vihiga Tyonum [Tue, 21 Apr 2026 10:39:06 +0000 (11:39 +0100)]
ref(main): update main entry point

2 months agoref(handlers): split handler fns into repl
Vihiga Tyonum [Tue, 21 Apr 2026 10:25:55 +0000 (11:25 +0100)]
ref(handlers): split handler fns into repl

- split handler fns into repl
- add entry point to the handlers subdir
- add wallet subdir entry point

2 months agoref(handlers):mv handler fns into offline & others
Vihiga Tyonum [Tue, 21 Apr 2026 10:19:03 +0000 (11:19 +0100)]
ref(handlers):mv handler fns into offline & others

- move handler fns into offline, online, wallets
modules

2 months agoref(handlers): split handlers into config, key
Vihiga Tyonum [Tue, 21 Apr 2026 10:15:43 +0000 (11:15 +0100)]
ref(handlers): split handlers into config, key

- split handlers into top level commands config,
key and descriptors

2 months agoref(persister): mv persister into wallet subdir
Vihiga Tyonum [Tue, 21 Apr 2026 10:08:44 +0000 (11:08 +0100)]
ref(persister): mv persister into wallet subdir

- move persister into wallet subdirectory
- update imports in payjoin module

2 months agoref(utils): refactor utils into utils subdir
Vihiga Tyonum [Tue, 21 Apr 2026 10:05:04 +0000 (11:05 +0100)]
ref(utils): refactor utils into utils subdir

- split util fns into `descriptors` and `common`

2 months agoref(config): move config into config subdir
Vihiga Tyonum [Tue, 21 Apr 2026 10:03:00 +0000 (11:03 +0100)]
ref(config): move config into config subdir

2 months agoref(commands): mv commands & clients into subdirs
Vihiga Tyonum [Tue, 21 Apr 2026 09:52:35 +0000 (10:52 +0100)]
ref(commands): mv commands & clients into subdirs

- move all blockchain clients code into the
backend subdirectory
- move commands.rs content into commands
subdirectory

2 months agotest(handlers): drop redundant cfg gate on test module
Vadim Anufriev [Thu, 7 May 2026 20:53:32 +0000 (00:53 +0400)]
test(handlers): drop redundant cfg gate on test module

2 months agodocs: add pre-push recipe description to README
Vadim Anufriev [Thu, 2 Apr 2026 20:53:27 +0000 (00:53 +0400)]
docs: add pre-push recipe description to README

2 months agodocs(contributing): update CONTRIBUTING.md
Vadim Anufriev [Sun, 29 Mar 2026 14:52:52 +0000 (18:52 +0400)]
docs(contributing): update CONTRIBUTING.md

- Remove MSRV mention as the project no longer enforces it
- Add Conventional Commits and GPG signing links to align with other repos

2 months agorefactor(compile): lazy compilation and use pipe for readability
Vadim Anufriev [Tue, 24 Mar 2026 20:12:30 +0000 (00:12 +0400)]
refactor(compile): lazy compilation and use pipe for readability

Move miniscript compilation inside match arms to avoid compiling
for all script contexts when only one is needed. Use `tap::Pipe`
for concise method chaining in sh/wsh/sh-wsh branches.

2 months agofeat(compile): randomize unspendable internal key for taproot descriptor
Vadim Anufriev [Tue, 24 Mar 2026 17:59:39 +0000 (21:59 +0400)]
feat(compile): randomize unspendable internal key for taproot descriptor

Instead of using a fixed NUMS key as the internal key for taproot
descriptors, generate a randomized unspendable key (H + rG) for each
compilation. This improves privacy by preventing observers from
determining whether key path spending is disabled.

The randomness factor `r` is included in the output so the user can
verify that the internal key is derived from the NUMS point.

Also applies `shorten()` globally in pretty mode and uses `?` operator
via dedicated error variants instead of `map_err`.

Tests verify descriptor structure and `r` field uniqueness across
randomized compilations.

2 months agochore(deps): make shlex a non-optional dependency
Vadim Anufriev [Tue, 24 Mar 2026 17:43:08 +0000 (21:43 +0400)]
chore(deps): make shlex a non-optional dependency

Although not directly related to this PR's changes, during review
we agreed to make shlex non-optional since it's used by the default
`repl` feature and the package is under 20 KiB.

See: https://github.com/bitcoindevkit/bdk-cli/pull/225#discussion_r2671741961

3 months agoMerge bitcoindevkit/bdk-cli#220: Add experimental silent payment transaction creation...
merge-script [Tue, 19 May 2026 18:15:42 +0000 (19:15 +0100)]
Merge bitcoindevkit/bdk-cli#220: Add experimental silent payment transaction creation support

c57985475172fc610b3ce996338a43baef1c52d6 feat(silentpayments): add experimental silent-payments sending support (nymius)

Pull request description:

  **Description**

  This PR adds experimental support for creating silent payment transactions through a new `CreateSpTx` command. The implementation integrates the `bdk_sp` crate to enable sending Bitcoin to silent payment addresses.

  Key changes:
  - Adds `bdk_sp` dependency as an optional feature
  - Implements `CreateSpTx` command with support for silent payment recipients
  - Includes parser for silent payment `address:amount` pairs
  - Returns signed transactions ready for broadcast (not PSBTs due to silent payment derivation constraints)

  **Notes to the reviewers**

  - This feature is marked as **EXPERIMENTAL** and includes warnings against mainnet use
  - The command returns signed transactions directly rather than PSBTs because silent payment script pubkey derivation cannot be performed securely in a trustless manner with standard PSBT workflows
  - RBF is disabled for silent payment transactions (sequence set to MAX)
  - The implementation handles both single key and extended key signers
  - Error handling uses temporary `.expect()` calls that should be addressed in future iterations

  **Changelog notice**

  **Added**: Experimental silent payment transaction creation via `CreateSpTx` command (feature-gated behind `sp` flag)

  **Checklists**

  **All Submissions**

  * [x] I've signed all my commits
  * [x] I followed the [conventional commit guidelines](https://www.conventionalcommits.org/en/v1.0.0/)
  * [x] I ran cargo fmt, clippy and test before committing

  **New Features**

  ~~* [ ] I've added tests for the new feature~~
  * [x] I've added docs for the new feature

ACKs for top commit:
  tvpeter:
    tACK c57985475172fc610b3ce996338a43baef1c52d6

Tree-SHA512: 0d5e2064b2eacab4fa2c0161bb1d9fd73c17401900c80a665a8ba3feb2025ddd6896efd0c30f7ceab361a88c397010965442bc9689df85383aaa9a0ec95fec0c

3 months agofeat(silentpayments): add experimental silent-payments sending support
nymius [Wed, 20 Aug 2025 16:42:12 +0000 (13:42 -0300)]
feat(silentpayments): add experimental silent-payments sending support

- Adds CreateSpTx command to create transactions with silent payment
  outputs: this command creates signed transactions directly rather than
  PSBTs due to current limitations in secure shared derivation.

  It supports mixed recipients: regular addresses + silent payments.
  It DOES NOT support RBF for the created transactions.
  It generates signed transactions ready for broadcasting.

- Adds SilentPaymentCode command to create silent payment codes from
  public keys and network: the silent payment code generated is
  independent from any of the other stateful features of bdk-cli.

  This command is mainly intended for experimental use, do not lock any
  funds to the generated code if you don't know what you are doing and
  don't have the keys matching the public keys used.

- Adds bdk_sp dependency with "silent-payments" feature flag.
- Adds silent payment recipient parsing utility.
- Add README section for new silent payment commands.

Note: This is experimental functionality for testing only, not
recommended for mainnet use.

Signed-off-by: nymius <155548262+nymius@users.noreply.github.com>
4 months agoMerge bitcoindevkit/bdk-cli#179: Feature/bip322 integration
merge-script [Fri, 24 Apr 2026 18:48:53 +0000 (19:48 +0100)]
Merge bitcoindevkit/bdk-cli#179: Feature/bip322 integration

7c33b33a2bfd9065cbe0768bcb00ce0ec1653686 chore(deps): switch bdk_bip322 from git to crates.io release (Abiodun Awoyemi)
e03f123c480d50517be98cae9b34c4dfa0ff5f92 fix: rename BIP322 commands, validate address ownership before signing and add Bip322Error variant (Abiodun)
2eab75c167d5609e1e96374ffb08cdf22a12a09a bip322: update proof handling for new bdk-bip322 API (aagbotemi)

Pull request description:

  <!-- You can erase any parts of this template not applicable to your Pull Request. -->

  ### Description
  This PR added [BIP322](https://bips.xyz/322) feature into BDK CLI.
  It also has a usage file for testing purposes

  ### Notes to the reviewers

  <!-- In this section you can include notes directed to the reviewers, like explaining why some parts
  of the PR were done in a specific way -->

  ## Changelog notice

  <!-- Notice the release manager should include in the release tag message changelog -->
  <!-- See https://keepachangelog.com/en/1.0.0/ for examples -->

  ### Checklists

  #### All Submissions:

  * [x] I've signed all my commits
  * [x] I followed the [contribution guidelines](https://github.com/bitcoindevkit/bdk-cli/blob/master/CONTRIBUTING.md)
  * [x] I ran `cargo fmt` and `cargo clippy` before committing

  #### New Features:

  * [x] I've added docs for the new feature
  * [x] I've updated `CHANGELOG.md`

ACKs for top commit:
  notmandatory:
    ACK 7c33b33a2bfd9065cbe0768bcb00ce0ec1653686

Tree-SHA512: a3e16b86c2259eb74f243721f9b54589322066d293ca0ba3ba74de13de264289426e5019ba16514797aa34a3f17a6bed574d0b5cc66d2ff51b68830152616696

4 months agochore(deps): switch bdk_bip322 from git to crates.io release
Abiodun Awoyemi [Thu, 23 Apr 2026 06:25:01 +0000 (07:25 +0100)]
chore(deps): switch bdk_bip322 from git to crates.io release

4 months agoMerge bitcoindevkit/bdk-cli#270: fix: fix RUSTSEC-2026-0097 for rand 0.9
merge-script [Tue, 21 Apr 2026 13:05:09 +0000 (14:05 +0100)]
Merge bitcoindevkit/bdk-cli#270: fix: fix RUSTSEC-2026-0097 for rand 0.9

77dc466ca54eb8466e8670428c384fc34c6a81ac chore: update rand 0.9.2 -> 0.9.3 (Vadim Anufriev)

Pull request description:

  Fixes #269

  Update transitive dependency `rand` from 0.9.2 to 0.9.3 via `cargo update -p rand@0.9.2` to resolve RUSTSEC-2026-0097.

  Note: #268 (`rand 0.8.5` via `secp256k1` and others) remains unaffected by this change and needs to be fixed upstream.

  ### Checklists

  #### All Submissions:

  * [x] I've signed all my commits
  * [x] I followed the [contribution guidelines](https://github.com/bitcoindevkit/bdk-cli/blob/master/CONTRIBUTING.md)
  * [x] I ran `cargo fmt` and `cargo clippy` before committing

Top commit has no ACKs.

Tree-SHA512: b1acee0469b25b8c3e334af0c045df426652995ce8e0da9cff99d391768ef0fb75f99e50f8dfef36a840b2d6f5e7fb0b125e8bfed46952236595b7c81d0f52b1

4 months agofix: rename BIP322 commands, validate address ownership before signing and add Bip322...
Abiodun [Thu, 19 Feb 2026 08:12:42 +0000 (09:12 +0100)]
fix: rename BIP322 commands, validate address ownership before signing and add Bip322Error variant

4 months agobip322: update proof handling for new bdk-bip322 API
aagbotemi [Sat, 26 Apr 2025 12:07:37 +0000 (13:07 +0100)]
bip322: update proof handling for new bdk-bip322 API

4 months agochore: update rand 0.9.2 -> 0.9.3
Vadim Anufriev [Sun, 12 Apr 2026 19:51:27 +0000 (23:51 +0400)]
chore: update rand 0.9.2 -> 0.9.3

5 months agoMerge bitcoindevkit/bdk-cli#265: Bump version to 3.0.0 v3.0.0
merge-script [Thu, 26 Mar 2026 15:23:12 +0000 (16:23 +0100)]
Merge bitcoindevkit/bdk-cli#265: Bump version to 3.0.0

07fd32f8a70bc24463e58c8ffd63fbcaae9930f2 Bump version to 3.0.0 (Vihiga Tyonum)
83499d70ea137c69aea47389de6da20cfc3cddd4 docs: Update changelog for v3.0.0 release (Vihiga Tyonum)

Pull request description:

  <!-- You can erase any parts of this template not applicable to your Pull Request. -->

  ### Description

  This PR bumps the crate version to 3.0.0

  Closes #257

  <!-- Describe the purpose of this PR, what's being adding and/or fixed -->

  ### Checklists

  #### All Submissions:

  * [x] I've signed all my commits
  * [x] I followed the [contribution guidelines](https://github.com/bitcoindevkit/bdk-cli/blob/master/CONTRIBUTING.md)
  * [x] I ran `cargo fmt` and `cargo clippy` before committing

ACKs for top commit:
  va-an:
    ACK 07fd32f8a70bc24463e58c8ffd63fbcaae9930f2

Tree-SHA512: 60c753c7637749971fd695cfce08a9a0abac5b2ea3ed470a6d42cfb8f4861f35fee510af174956d213fb3cde8cc4a907a9fc309d23bf42befd909deadfd1aa22

5 months agoBump version to 3.0.0
Vihiga Tyonum [Thu, 26 Mar 2026 10:25:38 +0000 (11:25 +0100)]
Bump version to 3.0.0

5 months agodocs: Update changelog for v3.0.0 release
Vihiga Tyonum [Thu, 26 Mar 2026 10:08:56 +0000 (11:08 +0100)]
docs: Update changelog for v3.0.0 release

5 months agoMerge bitcoindevkit/bdk-cli#251: Deps: Update transitive dependencies `quinn-proto...
merge-script [Wed, 25 Mar 2026 22:21:20 +0000 (23:21 +0100)]
Merge bitcoindevkit/bdk-cli#251: Deps: Update transitive dependencies `quinn-proto` and `aws-lc-sys`

fb9fe29cee11a414f747c0c6f480ddccbb78a6d2 chore: update project deps (Vihiga Tyonum)
5c63453f5d310b6e55cfcae6fa0cf344c21c5c32 deps: Update rustls-webpki to 0.103.10 (Vihiga Tyonum)
88cdceea26903c6023fe1fd0426fd04c533ea5b2 deps: Update aws-lc-sys to v0.39.0 & parent crate (Vihiga Tyonum)
5980919a637842c7615566737d90d7390f395524 deps: Update quinn-proto to v0.11.14 (Vihiga Tyonum)

Pull request description:

  <!-- You can erase any parts of this template not applicable to your Pull Request. -->

  ### Description

  This PR updates transitive dependencies `quinn-proto` and `aws-lc-sys` to fix identified vulnerabilities.
  Other `aws-lc-sys` linked vulnerabilities fixed by this update include:
  - AWS-LC has Timing Side-Channel in AES-CCM Tag Verification
  - AWS-LC has PKCS7_verify Signature Validation Bypass
  - CRLs not considered authorative by Distribution Point due to faulty matching logic in `rustls-webpki` v0.103.8

  This PR also update:
  - clap to v4.6
  - clap_complete to v4.6
  - env_logger to v0.11.10
  - thiserror to v2.0.18
  - tracing to v0.1.44
  - toml to v1.1.0
  - bdk_electrum to v0.23.2
  - bdk_kyoto to v0.15.4
  - bdk_redb to v0.1.1
  - reqwest to v0.13.2
  - url to v2.5.8

   Fixes #249, #250, #258, #259, #260, #261, #262 and #264

  <!-- Describe the purpose of this PR, what's being adding and/or fixed -->

  #### All Submissions:

  * [x] I've signed all my commits
  * [x] I followed the [contribution guidelines](https://github.com/bitcoindevkit/bdk-cli/blob/master/CONTRIBUTING.md)
  * [x] I ran `cargo fmt` and `cargo clippy` before committing

ACKs for top commit:
  notmandatory:
    tACK fb9fe29cee11a414f747c0c6f480ddccbb78a6d2

Tree-SHA512: d637dbea336c518f8511b83f3b343cb3b8e01ed4c3a2b946b3f607ef6f848d15dab6289232b0d2cf0acc8dcd99075b0d418ad8c4386c33ecc7636ea5eeb5a933

5 months agochore: update project deps
Vihiga Tyonum [Wed, 25 Mar 2026 05:34:44 +0000 (06:34 +0100)]
chore: update project deps

This PR also update:
- clap to v4.6
- clap_complete to v4.6
- env_logger to v0.11.10
- thiserror to v2.0.18
- tracing to v0.1.44
- toml to v1.1.0
- bdk_electrum to v0.23.2
- bdk_kyoto to v0.15.4
- bdk_redb to v0.1.1
- reqwest to v0.13.2
- url to v2.5.8

5 months agodeps: Update rustls-webpki to 0.103.10
Vihiga Tyonum [Tue, 24 Mar 2026 15:58:14 +0000 (16:58 +0100)]
deps: Update rustls-webpki to 0.103.10

Because we have different versions of rustls-webpki
in the project dependency, this updated version
is a dependency of `rustls``

5 months agodeps: Update aws-lc-sys to v0.39.0 & parent crate
Vihiga Tyonum [Mon, 16 Mar 2026 11:26:49 +0000 (12:26 +0100)]
deps: Update aws-lc-sys to v0.39.0 & parent crate

5 months agodeps: Update quinn-proto to v0.11.14
Vihiga Tyonum [Mon, 16 Mar 2026 10:49:16 +0000 (11:49 +0100)]
deps: Update quinn-proto to v0.11.14

5 months agoMerge bitcoindevkit/bdk-cli#237: feat: add completions subcommand
merge-script [Fri, 20 Mar 2026 07:58:20 +0000 (08:58 +0100)]
Merge bitcoindevkit/bdk-cli#237: feat: add completions subcommand

f32fc684d55fdb9b030c873f72fe10c4de1be99b docs(readme): add note about updating completions (va-an)
e173b476b59d286ae96a079292504dc4f3a42212 docs(completions): edit help output (Vadim Anufriev)
ba0bef15335808172f87b11e5f0707f9f1ace098 docs(readme): add completions block to readme (Vadim Anufriev)
c447159ef23bae5d0c54f7188d579d75379632be chore(clippy): fix clippy warnings again (Vadim Anufriev)
7c1303ad9544a578887c12809b18f1c7d0ecc068 chore(clippy): resolve clippy warngins (Vadim Anufriev)
82e662890f70170513ec3ce3ee825038e5f339f4 feat: add command for completions (Vadim Anufriev)

Pull request description:

  ### Description

  Resolves #234.

  Added `completions` subcommand to generate shell completions.

  ### How to test

  Install bdk-cli:
  ```bash
  cargo install --path . --all-features
  ```

  See how to install completions for your shell:
  ```bash
  bdk-cli completions --help
  ```

  For example, to install completions for zsh:
  ```bash
  bdk-cli completions zsh > ~/.zfunc/_bdk-cli
  ```

  After restarting the shell, completions should work with Tab.

  ### Checklists

  #### All Submissions:

  * [x] I've signed all my commits
  * [x] I followed the [contribution guidelines](https://github.com/bitcoindevkit/bdk-cli/blob/master/CONTRIBUTING.md)
  * [x] I ran `cargo fmt` and `cargo clippy` before committing

  #### New Features:

  * [ ] I've added tests for the new feature
  * [x] I've added docs for the new feature
  * [x] I've updated `CHANGELOG.md`

ACKs for top commit:
  notmandatory:
    utACK f32fc684d55fdb9b030c873f72fe10c4de1be99b

Tree-SHA512: f033cb9624a9613356de8ef8f51576257f7f5ddd661d54853f3005294cd449d64810592317f3f62085adaccbc963f69792943bb2450b282cc13881b382855b1a

5 months agoMerge bitcoindevkit/bdk-cli#256: fix(test): Enable using any client in config test
merge-script [Thu, 19 Mar 2026 21:49:04 +0000 (22:49 +0100)]
Merge bitcoindevkit/bdk-cli#256: fix(test): Enable using any client in config test

af0d98e16f8fc6d8e9bdf431d0d39e23b5d51d6a fix(test): Enable any client type in config test (Vihiga Tyonum)

Pull request description:

  ### Description

  As pointed out in issue #255, whenever Esplora was configured out, the config test will fail because Esplora was used as the client.

  This fix addresses the above issue by adding other client types in the test.

  <!-- You can erase any parts of this template not applicable to your Pull Request. -->

  Fixes #255

  ### Checklists

  #### All Submissions:

  * [x] I've signed all my commits
  * [x] I followed the [contribution guidelines](https://github.com/bitcoindevkit/bdk-cli/blob/master/CONTRIBUTING.md)
  * [x] I ran `cargo fmt` and `cargo clippy` before committing

  #### Bugfixes:

  * [ ] This pull request breaks the existing API
  * [x] I've added tests to reproduce the issue which are now passing
  * [x] I'm linking the issue being fixed by this PR

ACKs for top commit:
  notmandatory:
    cACK af0d98e16f8fc6d8e9bdf431d0d39e23b5d51d6a

Tree-SHA512: f1eecabd0d1dc9fc6e005655ffd158d5ed1e1021156ae2ce96195f78fcab35a13380269dd019157da34a8cd28308525d3ef4e1b08a0b6dec2e217a5782052f02

5 months agoMerge bitcoindevkit/bdk-cli#241: chore: remove remainig MSRV mentions
merge-script [Thu, 19 Mar 2026 21:27:56 +0000 (22:27 +0100)]
Merge bitcoindevkit/bdk-cli#241: chore: remove remainig MSRV mentions

4347ea24341a18c978747771c9c09f27a6fcc1aa chore: clippy fixes (Vadim Anufriev)
09b5b3b99b7bab8c228af458f7978fb996507478 chore: remove remainig msrv mentions (Vadim Anufriev)

Pull request description:

  Relates #211.

  ### Description

  I noticed that we still have mentions of MSRV, despite the fact that MSRV was removed in #211.
  In this PR I'm removing the found mentions.

  ### Checklists

  #### All Submissions:

  * [x] I've signed all my commits
  * [x] I followed the [contribution guidelines](https://github.com/bitcoindevkit/bdk-cli/blob/master/CONTRIBUTING.md)
  * [x] I ran `cargo fmt` and `cargo clippy` before committing

ACKs for top commit:
  tvpeter:
    ACK 4347ea24341a18c978747771c9c09f27a6fcc1aa
  notmandatory:
    ACK 4347ea24341a18c978747771c9c09f27a6fcc1aa

Tree-SHA512: 6a3d8efcf7e70ebf5b5dce2e49eba5af41ef6cb22052db78dd3b00e77052b746285d55cd8b571a914f7d3e0b926382be220fe8a0a1d225366c6075a38cf752fa

5 months agoMerge bitcoindevkit/bdk-cli#252: Enforce use of `1.0.0-rc.1` payjoin version
merge-script [Thu, 19 Mar 2026 21:03:10 +0000 (22:03 +0100)]
Merge bitcoindevkit/bdk-cli#252: Enforce use of `1.0.0-rc.1` payjoin version

6a2e398686655d5b5538ad17fd82bd8df37690ca fix(dependencies): change payjoin version specifier `1.0.0-rc.1` to `=1.0.0-rc.1` (nymius)

Pull request description:

  **Description**

  Cargo's version resolution always updates to the latest patch version. If that patch introduces breaking changes, it breaks your application.

  This happened after Payjoin released version 1.0.0-rc.2. Because the version specified for bdk-cli was 1.0.0-rc.1, a fresh install automatically updated to the newer patch.

  To resolve this without migrating to the latest Payjoin API, and to prevent future breakages from subsequent 1.0.0-rc.x releases, this commit pins the Payjoin version strictly to =1.0.0-rc.1.

  This happened before in another project: rust-bitcoin/rust-bitcoin#5358

  **Changelog notice**

  ```text
  fix: enforce `1.0.0-rc.1` payjoin version and avoid automatic patch updates
  ```

ACKs for top commit:
  tvpeter:
    ACK 6a2e398686655d5b5538ad17fd82bd8df37690ca

Tree-SHA512: b225cd052ab832a6ae2baa137679ba6a39412b94af33719306fd587be35cb73490b7467bf8b054aa046e046bce4888e8bd30614342c9bcd29b7044889dc9a265

5 months agodocs(readme): add note about updating completions
va-an [Thu, 19 Mar 2026 08:48:16 +0000 (12:48 +0400)]
docs(readme): add note about updating completions

5 months agofix(test): Enable any client type in config test
Vihiga Tyonum [Wed, 18 Mar 2026 12:22:52 +0000 (13:22 +0100)]
fix(test): Enable any client type in config test

As pointed out in the issue #255, whenever
Esplora was compiled out, the config test will
fail because Esplora was used as the client.

This fix addresses the above issue by adding other
client types in the test.

5 months agoMerge bitcoindevkit/bdk-cli#253: Add additional slash to show ReceivePayjoin cli...
merge-script [Wed, 18 Mar 2026 16:45:27 +0000 (17:45 +0100)]
Merge bitcoindevkit/bdk-cli#253: Add additional slash to show ReceivePayjoin cli docs

a6d22b9af19fdbe212ac8bd7fb1cebd7dc0d0ef5 doc(payjoin): add additional slash to show ReceivePayjoin cli docs (nymius)

Pull request description:

  ### Description

  A missing slash was preventing the `receive_payjoin` command from displaying its documentation string:

  ```bash
  Wallet operations.

  ...
    sync               Syncs with the chosen blockchain server
    broadcast          Broadcasts a transaction to the network. Takes either a raw transaction or a PSBT to extract
    receive_payjoin
    send_payjoin       Sends an original PSBT to a BIP 21 URI and broadcasts the returned Payjoin PSBT
    new_address        Get a new external address
  ...
  ```

  This change adds the additional slash to make a proper doc string, so clap displays it.

ACKs for top commit:
  tvpeter:
    ACK a6d22b9af19fdbe212ac8bd7fb1cebd7dc0d0ef5

Tree-SHA512: 90383ef85fbd0ccbf42b06a5f38a02ec3ed94e817d7cdc1197bc0fe03f2ba3ce77357f65a6fd0b7a787e361db4bc7e38fcb408cafa61e237e098f7fb943afe7b

5 months agodoc(payjoin): add additional slash to show ReceivePayjoin cli docs
nymius [Tue, 17 Mar 2026 19:07:35 +0000 (16:07 -0300)]
doc(payjoin): add additional slash to show ReceivePayjoin cli docs

5 months agofix(dependencies): change payjoin version specifier `1.0.0-rc.1` to `=1.0.0-rc.1`
nymius [Tue, 17 Mar 2026 14:15:48 +0000 (11:15 -0300)]
fix(dependencies): change payjoin version specifier `1.0.0-rc.1` to `=1.0.0-rc.1`

Cargo's version resolution always updates to the latest patch version.
If that patch introduces breaking changes, it breaks your application.

This happened after Payjoin released version 1.0.0-rc.2. Because the
version specified for bdk-cli was 1.0.0-rc.1, a fresh install
automatically updated to the newer patch.

To resolve this without migrating to the latest Payjoin API, and to
prevent future breakages from subsequent 1.0.0-rc.x releases, this
commit pins the Payjoin version strictly to =1.0.0-rc.1.

5 months agoMerge bitcoindevkit/bdk-cli#247: CI: Replace Coveralls with Codecov for coverage...
merge-script [Tue, 10 Mar 2026 09:11:22 +0000 (10:11 +0100)]
Merge bitcoindevkit/bdk-cli#247: CI: Replace Coveralls with Codecov for coverage reporting

a675935153a95adc0c07da5614a57cf5a1c3f628 CI: Update code coverage to use Codecov action (Vihiga Tyonum)

Pull request description:

  <!-- You can erase any parts of this template not applicable to your Pull Request. -->

  ### Description

  This PR updates the code_coverage workflow by replacing the Coveralls code coverage reports with codecov. It also updates the checkout, rust-lang toolchain setup actions.
  Fixes #245

  <!-- Describe the purpose of this PR, what's being adding and/or fixed -->

  ### Notes to the reviewers

  <!-- In this section you can include notes directed to the reviewers, like explaining why some parts
  of the PR were done in a specific way -->

  ## Changelog notice

  <!-- Notice the release manager should include in the release tag message changelog -->
  <!-- See https://keepachangelog.com/en/1.0.0/ for examples -->

  ### Checklists

  #### All Submissions:

  * [x] I've signed all my commits
  * [x] I followed the [contribution guidelines](https://github.com/bitcoindevkit/bdk-cli/blob/master/CONTRIBUTING.md)
  * [x] I ran `cargo fmt` and `cargo clippy` before committing

ACKs for top commit:
  notmandatory:
    ACK a675935153a95adc0c07da5614a57cf5a1c3f628

Tree-SHA512: 021e17bfec6b4c022b8908f2dc4588c3f9f809893d2c6599a073fa943d7caf96a46a47fc9bc54af701b003b95d0b4e1474e9c30fdb533570b3a1d8791f430ba7

5 months agoMerge bitcoindevkit/bdk-cli#246: doc: add installation prerequisite to Readme
merge-script [Tue, 10 Mar 2026 04:09:36 +0000 (05:09 +0100)]
Merge bitcoindevkit/bdk-cli#246: doc: add installation prerequisite to Readme

072572456073c174c728a7fa57c601ed69340856 docs: Update stated bdk_wallet version (Vihiga Tyonum)
d787fa03a748ff28048cf7143fad585fe89e48aa doc: added prerequisites to readme (oscar)

Pull request description:

  <!-- You can erase any parts of this template not applicable to your Pull Request. -->

  ### Description

  This is a continuation of #221

  <!-- Describe the purpose of this PR, what's being adding and/or fixed -->

  ### Notes to the reviewers

  <!-- In this section you can include notes directed to the reviewers, like explaining why some parts
  of the PR were done in a specific way -->
  - Update the stated `bdk_wallet` to 2.x.x
  - Addressed review comments on #221

  ## Changelog notice

  <!-- Notice the release manager should include in the release tag message changelog -->
  <!-- See https://keepachangelog.com/en/1.0.0/ for examples -->

  ### Checklists

  #### All Submissions:

  * [x] I've signed all my commits
  * [x] I followed the [contribution guidelines](https://github.com/bitcoindevkit/bdk-cli/blob/master/CONTRIBUTING.md)
  * [x] I ran `cargo fmt` and `cargo clippy` before committing

ACKs for top commit:
  notmandatory:
    ACK 072572456073c174c728a7fa57c601ed69340856

Tree-SHA512: a0446a915c8c2553ea4612d9e2382e8d3212c73929be9944c9cb965f0fbf2620df339d3284796cf7315bdb65ca5a364a299ba8bfacb3edd3694c2bd796b0fae0

5 months agoCI: Update code coverage to use Codecov action
Vihiga Tyonum [Mon, 9 Mar 2026 22:02:07 +0000 (23:02 +0100)]
CI: Update code coverage to use Codecov action

- update checkout to v6
- update rust toolchain to use official action
- replace coveralls with codecov

5 months agodocs: Update stated bdk_wallet version
Vihiga Tyonum [Mon, 9 Mar 2026 09:41:11 +0000 (10:41 +0100)]
docs: Update stated bdk_wallet version

- update the stated used bdk_wallet version in
README
- fix the review comments for installation
prerequisite

5 months agodoc: added prerequisites to readme
oscar [Tue, 30 Sep 2025 15:59:22 +0000 (17:59 +0200)]
doc: added prerequisites to readme

6 months agochore: clippy fixes
Vadim Anufriev [Tue, 24 Feb 2026 11:07:47 +0000 (15:07 +0400)]
chore: clippy fixes

6 months agoMerge branch 'master' into chore/remove-msrv
Vadim Anufriev [Tue, 24 Feb 2026 10:15:41 +0000 (14:15 +0400)]
Merge branch 'master' into chore/remove-msrv

6 months agoMerge branch 'master' into feat/add-completions-cmd
Vadim Anufriev [Tue, 24 Feb 2026 09:42:57 +0000 (13:42 +0400)]
Merge branch 'master' into feat/add-completions-cmd