1da3b304bbci: Pin rustls to keep the MSRV (Daniela Brozzoni)792b39fa92Explicitly deny multipath keys (Daniela Brozzoni)b73385dbd2Update wallet_electrum to rust-bitcoin 0.30.0 (Daniela Brozzoni)3dac3f9bbaUpdate example_electrum to rust-bitcoin 0.30.0 (Daniela Brozzoni)2949bdc7b8Update example_cli to rust-bitcoin 0.30.0 (Daniela Brozzoni)468d2a0a3bUpdate tmp_plan to rust-bitcoin 0.30.0 (Daniela Brozzoni)b8ac16d03cUpdate coin_select to rust-bitcoin 0.30.0 (Daniela Brozzoni)6c29e53ee8Update wallet_esplora and wallet_esplora_async to... ...rust-bitcoin 0.30.0 (Daniela Brozzoni)6eb079576fUpdate crates/esplora to rust-bitcoin 0.30.0 (Daniela Brozzoni)91b0f0ba29Update crates/electrum to bitcoin 0.30.0 (Daniela Brozzoni)f4e3ba3265Update bdk to bitcoin 0.30.0 (Daniela Brozzoni)853d361751Update bdk_chain to bitcoin 0.30.0 (Daniela Brozzoni) Pull request description: ### Description Updates to rust-bitcoin 0.30.0 and miniscript 0.10.0 Not covered in this PR: - https://github.com/bitcoindevkit/bdk/issues/1036. Although the latter is deprecated, I think it's better if I update it in a separate PR, as this one is pretty big already. - https://github.com/bitcoindevkit/bdk/issues/1037 - https://github.com/bitcoindevkit/bdk/issues/1038 Heads up, I'm explicitly denying multipath descriptors until we have better tests for them. See the commit message of 23fba7aee9b55bf59db73c296b9fb025a256502e ### Changelog notice - Update to `rust-bitcoin` 0.30.0 and `miniscript` 10.0.0 ### Checklists #### All Submissions: * [x] I've signed all my commits * [x] I followed the [contribution guidelines](https://github.com/bitcoindevkit/bdk/blob/master/CONTRIBUTING.md) * [x] I ran `cargo fmt` and `cargo clippy` before committing ACKs for top commit: evanlinjin: ACK1da3b304bbTree-SHA512: ff1457ed711f9f8cdb446ea10aaf124632f539c02406da94317d8dc38013b321217d3bdcb2df4bd72b2ed92116b52e9c6b98ee91d4d508a579c67449a7caa549
The Bitcoin Dev Kit
BDK
A modern, lightweight, descriptor-based wallet library written in Rust!
Project Homepage | Documentation
About
The bdk libraries aims to provide well engineered and reviewed components for Bitcoin based applications.
It is built upon the excellent rust-bitcoin and rust-miniscript crates.
⚠ The Bitcoin Dev Kit developers are in the process of releasing a
v1.0which is a fundamental re-write of how the library works. See for some background on this project: https://bitcoindevkit.org/blog/road-to-bdk-1/ (ignore the timeline 😁) For a release timeline see thebdk_core_stagingrepo where a lot of the component work is being done. The plan is that everything in thebdk_core_stagingrepo will be moved into thecratesdirectory here.
Architecture
The project is split up into several crates in the /crates directory:
bdk: Contains the central high levelWallettype that is built from the low-level mechanisms provided by the other componentschain: Tools for storing and indexing chain datafile_store: A (experimental) persistence backend for storing chain data in a single file.esplora: Extends theesplora-clientcrate with methods to fetch chain data from an esplora HTTP server in the form that [bdk_chain] andWalletcan consume.electrum: Extends theelectrum-clientcrate with methods to fetch chain data from an electrum server in the form that [bdk_chain] andWalletcan consume.
Fully working examples of how to use these components are in /example-crates
Minimum Supported Rust Version (MSRV)
This library should compile with any combination of features with Rust 1.57.0.
To build with the MSRV you will need to pin dependencies as follows:
# log 0.4.19 has MSRV 1.60.0+
cargo update -p log --precise "0.4.18"
# tempfile 3.7.0 has MSRV 1.63.0+
cargo update -p tempfile --precise "3.6.0"
# rustls 0.21.2 has MSRV 1.60.0+
cargo update -p rustls:0.21.6 --precise "0.21.1"