This change implements the online commands for both sending and receiving a Payjoin. Note that this PR does not implement Payjoin persistence.
### Notes to the reviewers
Tested on my local regtest with rpc using the OHTTP relays and directories in the [payjoin-cli README](https://github.com/payjoin/rust-payjoin/tree/master/payjoin-cli). Feel free to do the same, and let me know if there are comments, documentation, etc. which should be changed with this. I was not able to find any...
Here are the sample command you can use to test on regtest:
* [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 <--- There is no testing suite for this.
* [X] I've added docs for the new feature
* [N/A] 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
* [ ] I'm linking the issue being fixed by this PR
Mehmet Efe Umit [Wed, 19 Nov 2025 06:18:38 +0000 (22:18 -0800)]
refactor: move broadcast to a helper function
Prior to the Payjoin integration, we need to have the broadcast logic
outside the broadcast command so that it can be shared between the
existing online command and the Payjoin sender.
Mehmet Efe Umit [Wed, 19 Nov 2025 06:14:22 +0000 (22:14 -0800)]
refactor: move sync to a helper function
This is a pre-requisite for adding Payjoin support. When the receiver
sends the Payjoin proposal to the sender to be broadcasted, they need to
sync the blockchain before checking if the Payjoin has indeed been
broadcasted. To do that, the sync function will need to be shared
between the two online commands.
This PR introduces a new `descriptor` subcommand to the BDK CLI that enable users to generate and inspect **Bitcoin wallet descriptors** for internal and external paths, supporting common types (pkh, sh, wpkh, wsh, tr). It includes support for both **single-path** descriptors from extended keys (`xprv`/`xpub` or `tprv`/`tpub`).
This resolves issue https://github.com/bitcoindevkit/bdk-cli/issues/175
## Features Implemented
- Adds new `descriptor` subcommand with:
- `generate` – generate new descriptors
- Supports BIP44, BIP49, BIP84, and BIP86 script types
- Generates **internal and external descriptors**
- Reasonable defaults:
- `--type` defaults to `wsh` and a short `t`
- `--network` default `testnet`
---
## Usage Examples
### 1. Generate Descriptors from an Extended Private Key
```bash
cargo run -- --network testnet descriptor generate --type wsh <XPRV>
```
### 2. Generate Descriptors from a Mnemonic (no key provided)
```bash
cargo run -- --network testnet descriptor generate --type tr
```
* [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`
Doesn't work:
```bash
-> % cargo run -- key generate --pretty
error: unexpected argument '--pretty' found
Usage: bdk-cli key generate [OPTIONS]
For more information, try '--help'.
```
<!-- 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
#### Bugfixes:
* [ ] This pull request breaks the existing API
* [x] I've added tests to reproduce the issue which are now passing
* [ ] I'm linking the issue being fixed by this PR
Checkpoints were removed from Kyoto to minimize trust in the library and reduce maintence burden. As such, there is no longer the ability to "skip blocks", at least on test networks. Mainnet offers two checkpoints, segwit and taproot activation, but these are included from genesis on test networks.
Broadcasting a transaction now awaits for the transaction to be gossiped, simplifying the logic here.
rustaceanrob [Mon, 13 Oct 2025 12:19:12 +0000 (13:19 +0100)]
Update `bdk_kyoto` to `0.15.1`
Checkpoints were removed from Kyoto to minimize trust in the library and
reduce maintence burden. As such, there is no longer the ability to
"skip blocks", at least on test networks. Mainnet offers two
checkpoints, segwit and taproot activation, but these are included from
genesis on test networks.
Broadcasting a transaction now awaits for the transaction to be
gossiped, simplifying the logic here.
<!-- You can erase any parts of this template not applicable to your Pull Request. -->
### Description
This PR bump version to 2.0.0
Fixes #215
<!-- 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
<!-- You can erase any parts of this template not applicable to your Pull Request. -->
### Description
Fixes #216
<!-- Describe the purpose of this PR, what's being adding and/or fixed -->
<!-- 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
- Bumped `tracing-subscriber` to 0.3.20
<!-- 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
#### 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
<!-- Describe the purpose of this PR, what's being adding and/or fixed -->
### Notes to the reviewers
For creating the tr descriptor, I used the NUMS pubkey proposed in [BIP-341](https://github.com/bitcoin/bips/blob/master/bip-0341.mediawiki#constructing-and-spending-taproot-outputs).
There is [discussion](https://github.com/rust-bitcoin/rust-bitcoin/issues/1322) about adding NUMS key to `rust-bicoin`, we can use it in the future from there.
Also there is [BIP draft](https://github.com/bitcoin/bips/pull/1746) for new descriptor key expression `unspendable()` for exacly this use case - we will simply use descriptor `tr(unspendable(), TREE)`.
## 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 tests for the new feature
* [ ] I've added docs for the new feature
* [ ] I've updated `CHANGELOG.md`
<!-- You can erase any parts of this template not applicable to your Pull Request. -->
### Description
Update the following dependencies:
- bdk_wallet to 2.1.0
- bdk_bitcoind_rpc to 0.21.0
- bdk_esplora to 0.22.1
- bdk_kyoto to 0.13.1
<!-- Describe the purpose of this PR, what's being adding and/or fixed -->
### Notes to the reviewers
Fixes #213
<!-- 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
- Updated `bdk_wallet ` to `2.1.0`, `bdk_bitcoind_rpc` to `0.21.0`, `bdk_esplora` to `0.22.1`, `bdk_kyoto` to `0.13.1`
<!-- 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:
* [ ] I've added tests for the new feature
* [ ] I've added docs for the new feature
* [x] I've updated `CHANGELOG.md`
<!-- You can erase any parts of this template not applicable to your Pull Request. -->
### Description
This PR adds a top level flag `--pretty` to format output in a tabular form to enhance readability for users.
<!-- 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
- Add `--pretty` top level flag for formatting commands output in a tabular format
### 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`
Vihiga Tyonum [Mon, 18 Aug 2025 13:16:42 +0000 (14:16 +0100)]
feat(pretty-fmt): add cli-table to format output
- add cli-table and `--pretty` flag to format
output of commands in a tabular form for:
- offline wallet commands
- repl
- compile commands
- keys commands
<!-- You can erase any parts of this template not applicable to your Pull Request. -->
### Description
We currently only support `sqlite` persistence. This PR adds an alternative `redb` persistence by leveraging Summer Of Bitcoin work on [`bdk_redb`](https://github.com/110CodingP/bdk_redb).
<!-- Describe the purpose of this PR, what's being adding and/or fixed -->
### Notes to the reviewers
The CI does not pass since `bdk_redb` has a MSRV of 1.85.0 which is in turn due to `redb`. Also `bdk_redb` is yet to published as a crate so currently we use the GitHub version of the same.
The following script tests a simple scenario of creating a wallet with bitcoind-rpc as chain source , sending funds to an address controlled by the wallet and creating a transaction using the wallet:
```
rm -rf ~/.bitcoin/regtest
rm -rf ~/.bdk-bitcoin
bitcoin-cli -rpcuser=alice -rpcpassword=password createwallet alice
~~Also removed `sqlite` from default features since we now have an alternative.~~
<!-- 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 tests for the new feature (test is in the PR description)
* [x] I've added docs for the new feature
* [x] I've updated `CHANGELOG.md`
<!-- You can erase any parts of this template not applicable to your Pull Request. -->
### Description
- Updates Rust Edition to 2024
- Removes MSRV for the project
- fixes clippy warnings
<!-- Describe the purpose of this PR, what's being adding and/or fixed -->
<!-- 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 -->
<!-- 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
#### 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
### 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`
Kyoto now holds on to a transaction internally until it is successfully broadcast, so we can broadcast the transaction immediately once the node starts up, and wait for a confirmation or 30 second timeout
Successful test on Signet. Note that `Testnet4` still has the difficulty adjustment bug when loading block headers from storage.
### 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`
#### Bugfixes:
* [ ] This pull request breaks the existing API
* [ ] I've added tests to reproduce the issue which are now passing
* [ ] I'm linking the issue being fixed by this PR
rustaceanrob [Tue, 17 Jun 2025 12:36:59 +0000 (13:36 +0100)]
fix(kyoto): remove conn requirement to send tx
Kyoto now holds on to a transaction internally until it is successfully
broadcast, so we can broadcast the transaction immediately once the node
starts up, and wait for a confirmation or 30 second timeout
Update README to show how to use `just` command runner to start, connect and fund your bdk-cli wallet with local bitcoind regtest node. Also, fixed clippy warnings.
### 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
* Updated dependencies:
* bdk_wallet to 2.0.0
* bdk_bitcoind_rpc to 0.20.0
* bdk_electrum to 0.23.0
* bdk_esplora to 0.22.0
* bdk_kyoto to 0.11.0
* Renamed `BuilderError` to `KyotoBuilderError`
* Added `KyotoUpdateError`
### Notes to the reviewers
There are still some unrelated warnings in the test code that should be fixed in a followup PR.
## Changelog notice
* Updated project to use `bdk_wallet` 2.0 and related supporting chain client versions.
### 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
This PR adds Justfile config file for the just command runner.
### Notes to the reviewers
The default values for `datadir`, `rpcuser` and `rpcpassword` set in the Justfile are those used in the project.
### 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
* [ ] I've updated `CHANGELOG.md`
Fix for https://github.com/bitcoindevkit/bdk-cli/issues/170.
I think this is the simplest way to do it.
It's also possible to change the main signature to return `Result`, which should provide similar behavior, but this option isn't compatible with the `#[maybe_async]` macro, so I decided not to complicate things.
### 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
* [ ] I've added tests to reproduce the issue which are now passing
* [x] I'm linking the issue being fixed by this PR
* [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
<!-- You can erase any parts of this template not applicable to your Pull Request. -->
### Description
- update aud.yml workflow to use the latest ubuntu
<!-- 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
<!-- You can erase any parts of this template not applicable to your Pull Request. -->
### Description
update `bdk-cli` version to `1.0.0` and bumped the rust edition to 2021.
#### 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
<!-- You can erase any parts of this template not applicable to your Pull Request. -->
### Description
Update readme document
<!-- Describe the purpose of this PR, what's being adding and/or fixed -->
<!-- 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 -->
<!-- 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
The code coverage workflow broke and this change fixes it.
### Notes to the reviewers
This is copy/pasted from the bdk repo job of the same name.
### 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
The actual implementation comes down to listening for an info message that reports the transaction was sent to a peer. For simplicity I am ignoring any wallet updates, but if the user calls the `Sync` command they can catch them. Follows up #181
### 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`
#### Bugfixes:
* [ ] This pull request breaks the existing API
* [ ] I've added tests to reproduce the issue which are now passing
* [ ] I'm linking the issue being fixed by this PR
rustaceanrob [Thu, 8 May 2025 19:30:07 +0000 (20:30 +0100)]
feat(cbf): implement transaction broadcasting
For the highest reliability, we wait for the connection requirement to
be met by the node. Once met, we can broadcast and wait for
confirmation. The function will either timeout after 15 seconds or
successfully finish with gossip confirmation.
<!-- You can erase any parts of this template not applicable to your Pull Request. -->
### Description
This PR set the data directory for the Kyoto client. See [comment](https://github.com/bitcoindevkit/bdk-cli/pull/181#issuecomment-2863853425)
<!-- 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 -->
This PR ensures that the `light_client_data` directory created by the Kyoto client is in the wallet's data directory.
## 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:
* [ ] I've added tests for the new feature
* [ ] I've added docs for the new feature
* [ ] I've updated `CHANGELOG.md`
<!-- You can erase any parts of this template not applicable to your Pull Request. -->
### Description
This PR re-enables the Compact Block Filters (cbf) feature using `bdk_kyoto` and it is part of updating the library
to use the latest `bdk` crates.
<!-- Describe the purpose of this PR, what's being adding and/or fixed -->
### Notes to the reviewers
This is part of issue #172
<!-- 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 -->
### Checklists
* [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
Vihiga Tyonum [Sat, 3 May 2025 14:59:53 +0000 (15:59 +0100)]
feat(cbf): add cbf feature using bdk_kyoto
- enable full_scan and sync operations
[issue: #172]
feat(cbf): update broadcasting tx
- add wait time for node to connect to peers
before broadcasting tx
- add sync chain starting from 10 blocks below
the wallet tip to ensure tx is propagated
- update code_coverage workflow to cover cbf
feature
feat(cbf): update bdk-kyoto to 0.9.0
- refactor syncing into a fn
- made `skip-blocks` optional and removed default
value to use bdk-kyoto Sync scan type
### Notes to the reviewers
- replaced `list_transactions` with `transactions`
- set `enable_rbf` to be `true` by default
- update creating and serializing Psbts
- update `new_wallet` to return `PersistedWallet<Connection>`
- default fee_rate to use FeeRate::BROADCAST_MIN
- update `zeroize` to version `1.8.1` from `<1.4.0`
- update `bdk-reserves` from `0.27.1` to `0.29.0`
- replace `bdk/electrum` with `bdk_electrum` for the `electrum` feature
- add `bdk_esplora` for the `bdk/use-esplora-ureq` and `bdk/use-esplora-reqwest` features
- add `bdk_bitcoind_rpc` lib to replace `bdk/rpc` feature
- add `hwi` library to replace `bdk/hardware-signer` feature
<!-- 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
- set `enable_rbf` to be `true` by default
- update using `PartiallySignedTransaction` to `Psbt`
- default fee_rate to use FeeRate::BROADCAST_MIN
- update `zeroize` to version `1.8.1` from `<1.4.0`
- update `bdk-reserves` from `0.27.1` to `0.29.0`
- replace `bdk/electrum` with `bdk_electrum` for the `electrum` feature
- replace `bdk/use-esplora-ureq` and `bdk/use-esplora-reqwest` with `bdk_esplora` lib
- replace `bdk/rpc` with `bdk_bitcoind_rpc` lib
- replace `bdk/hardware-signer` with `hwi` lib
<!-- 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
#### Bugfixes:
* [x] This pull request breaks the existing API
* [x] I'm linking the issue being fixed by this PR
Vihiga Tyonum [Fri, 21 Feb 2025 03:16:26 +0000 (04:16 +0100)]
feat: add ci test for features
- add ci test for features
- add "compiler" feature to bdk_wallet dependency
- remove duplicate fn in utils.rs
- replace "possible_values" with "value_parser"
as it is deprecated in clap 4.5
Vihiga Tyonum [Mon, 3 Feb 2025 12:01:10 +0000 (13:01 +0100)]
refactor: update imports from bdk to bdk_wallet
- replace `list_transactions` method with
`transactions`
- format `recipients` to be a vec of `ScriptBuf`
and `Amount`
- update creating and serializing `Psbt`s
- update `fee_rate` method and default to
`FeeRate::BROADCAST_MIN`
- replace `allow_shrinking` method with `drain_to`
method
- update `handle_offline_wallet_subcommands` to
use `PersistedWallet<D>` instead of `Wallet<D>`
[Ticket: X]
Vihiga Tyonum [Mon, 3 Feb 2025 11:48:06 +0000 (12:48 +0100)]
refactor:update imports from bdk to use bdk_wallet
-update imports from bdk to use bdk_wallet
- set `enable_rbf` command option to be `true` by
default
- add `parse_address` fn to parse address from
string
- replace `ExtendedPrivateKey` with `Xpriv` from
bdk_wallet
- update derving address from string to use
`assumed_check`
Adding hardware signers, so that hardware wallets can be used to sign transactions.
### Notes to the reviewers
~~It doesn't work 100% yet for me.
I am using the following wallet:
https://github.com/RCasatta/electrum2descriptors/blob/main/tests/wallets2descriptors.rs#L89
https://github.com/RCasatta/electrum2descriptors/blob/main/tests/wallets/multisig_hw_segwit
I can create and sign a transaction with this version of bdk-cli. It displays the details on the Trezor and everything looks good so far. But in the CLI output of bdk-cli it says "is_finalized= false" and when I open the supposedly signed tx in Electrum, it aslo says "Status: Unsigned".
So, something must still be missing.~~
Initially I had some dependency problems, so I deleted Cargo.lock. That solved the dependency problems, but that's the reason for the large diff on that file.
## Changelog notice
Added hardware signers through the use of HWI
### 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
* [x] I've updated `CHANGELOG.md`
Update `bdk` from 0.27 to 0.27.1 to fix bitcoindevkit/bdk#866.
### Notes to the reviewers
Once we get this verified for `bdk-cli` and `bdk-ffi` I'll publish the new bdk release and update this PR to use the new version.
## Changelog notice
Changed
- Update bdk from 0.27 to 0.27.1 to fix bitcoindevkit/bdk#866.
### 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
<!-- You can erase any parts of this template not applicable to your Pull Request. -->
### Description
Upgrades to bdk `v0.27.0-rc.1`. Pins dependency `zip` to `v0.6`, as latest version of `zip` moved up their MSRV to `1.59`.
### Notes to the reviewers
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 -->
- BDK version bumped to `0.27`.
### 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