Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
27 changes: 24 additions & 3 deletions CHANGELOG.md
Original file line number Diff line number Diff line change
Expand Up @@ -4,8 +4,28 @@ Changelog info is also documented on the [GitHub releases](https://github.com/bi
page. See [DEVELOPMENT_CYCLE.md](DEVELOPMENT_CYCLE.md) for more details.

## [Unreleased]
- Fixed `create_tx --send_all` to reject multiple recipients instead of silently using only the first one
- Renamed the `bip322` feature to `message_signer`

## [4.0.0]

- Added persistance to existing async payjoin integration
- Added experimental silent payment transaction creation support
- Added BIP353 DNS payment instruction support and also `resolve_dns_recipient` which receives a Human Readable Name (HRN) and returns the associated address
- Added wallet `lock_utxo`, `unlock_utxo`, `locked_utxos` commands
- Refactored project structure
- Added randomization of the unspendable internal key for taproot descriptors
- Added WalletEvent to `sync` and `full_scan` for all backends
- Added integration tests
- Renamed `bip322` feature to `message_signer`
- Fixed `create_tx --send_all` to reject multiple recipients instead of silently using only the first one
- Updated `bdk_wallet` to v3.1.0, `bdk_redb` to v0.2.0, `bdk_kyoto` to v0.17.0`
- Updated `bdk_bitcoind_rpc` to v0.22.0, `bdk_electrum` to v0.24.0
- Dropped wallet `verbose` flag
- Fixed saving and reusing `proxy_opts` in wallet config
- Limit `test-threads` for running tests in parallel to 2
- Replaced `Network` enum with `NetworkKind`
- Replaced `broadcast_random` with `submit_package` for broadcasting transactions in KyotoClient
- Dropped `include_output_redeem_witness_script` and added `add_global_xpubs` to TxBuilder in `create_tx` command
- Dropped `pretty` flag

## [3.0.0]

Expand Down Expand Up @@ -141,7 +161,8 @@ page. See [DEVELOPMENT_CYCLE.md](DEVELOPMENT_CYCLE.md) for more details.

## [0.1.0-beta.1]

[Unreleased]: https://github.com/bitcoindevkit/bdk-cli/compare/v3.0.0...HEAD
[Unreleased]: https://github.com/bitcoindevkit/bdk-cli/compare/v4.0.0...HEAD
[4.0.0]: https://github.com/bitcoindevkit/bdk-cli/compare/v3.0.0...v4.0.0
[3.0.0]: https://github.com/bitcoindevkit/bdk-cli/compare/v2.0.0...v3.0.0
[2.0.0]: https://github.com/bitcoindevkit/bdk-cli/compare/v1.0.0...v2.0.0
[1.0.0]: https://github.com/bitcoindevkit/bdk-cli/compare/v0.27.1...v1.0.0
Expand Down
10 changes: 7 additions & 3 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -28,15 +28,16 @@

**EXPERIMENTAL**

This crate has been updated to use `bdk_wallet` 2.x. Only use for testing on test networks.
This crate has been updated to use `bdk_wallet` 3.x. Only use for testing on test networks.

This project provides a command-line Bitcoin wallet application using the latest [BDK Wallet APIs](https://docs.rs/bdk_wallet/1.0.0/bdk_wallet/index.html) and chain sources ([RPC](https://docs.rs/bdk_bitcoind_rpc/0.18.0/bdk_bitcoind_rpc/index.html), [Electrum](https://docs.rs/bdk_electrum/0.21.0/bdk_electrum/index.html), [Esplora](https://docs.rs/bdk_esplora/0.21.0/bdk_esplora/), [Kyoto](https://docs.rs/bdk_kyoto/0.9.0/bdk_kyoto/)). This might look tiny and innocent, but by harnessing the power of BDK it provides a powerful generic descriptor based command line wallet tool.
And yes, it can do Taproot!!

This crate can be used for the following purposes:
- Instantly create a miniscript based wallet and connect to your backend of choice (Electrum, Esplora, Core RPC, Kyoto etc) and quickly play around with your own complex bitcoin scripting workflow. With one or many wallets, connected with one or many backends.
- The `tests/integration.rs` module is used to document high level complex workflows between BDK and different Bitcoin infrastructure systems, like Core, Electrum and Lightning(soon TM).
- Receive and send Async Payjoins with session persistence. Sessions can be resumed if interrupted.
- Receive and send async Payjoins with session persistence. Sessions can be resumed if interrupted.
- Creating (experimental) silent payment transactions and sending Bitcoin to silent payment addresses
- (Planned) Expose the basic command handler via `wasm` to integrate `bdk-cli` functionality natively into the web platform. See also the [playground](https://bitcoindevkit.org/bdk-cli/playground/) page.

If you are considering using BDK in your own wallet project bdk-cli is a nice playground to get started with. It allows easy testnet and regtest wallet operations, to try out what's possible with descriptors, miniscript, and BDK APIs. For more information on BDK refer to the [website](https://bitcoindevkit.org/) and the [rust docs](https://docs.rs/bdk_wallet/1.0.0/bdk_wallet/index.html)
Expand All @@ -47,11 +48,14 @@ bdk-cli can be compiled with different features to suit your experimental needs.
- Blockchain Client Options
- `esplora` : Connects the wallet to an esplora server.
- `electrum` : Connects the wallet to an electrum server.
- `cbf`: Connects the wallet to a kyoto client and server.
- `cbf`: BIP157/158 compact block filters (Kyoto light client)
- `rpc`: Connects the wallet to Bitcoind server.
- Extra Utility Tools
- `repl` : use bdk-cli as a [REPL](https://codewith.mu/en/tutorials/1.0/repl) shell (useful for quick manual testing of wallet operations).
- `compiler` : opens up bdk-cli policy compiler commands.
- `message_signer`: BIP322 message signing/verification.
- `silent-payment`: Experimental BIP-352 silent payment sending

Copy link
Copy Markdown

Choose a reason for hiding this comment

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

Nit for a follow-up: the feature is spelled silent-payment here, but in Cargo.toml and in the example commands further down in this README it is silent-payments, in plural. Copying the name from this line gives cargo build --features silent-payment, which won't compile. Should just be a one-word rename.

- `dns_payment`: BIP-353 DNS payment instructions

The `default` feature set is `repl` and `sqlite`. With the `default` features, `bdk-cli` can be used as an **air-gapped** wallet, and can do everything that doesn't require a network connection.

Expand Down
Loading