Skip to content

Releases: bitcoindevkit/bdk

Release wallet-1.0.0

19 Dec 19:22
wallet-1.0.0
03a08bb
Compare
Choose a tag to compare

Summary

This is the final bdk_wallet 1.0.0 release. It contains small improvements to the wallet transactions function and
next_unused_address API docs. Please thank all the contributors who made this first major release possible and
who's continued effort make the BDK project so awesome!

Changelog

Changed

  • Wallet::transactions should only return relevant transactions. #1779
  • Minor updates to fix new rustc 1.83.0 clippy warnings. #1776

Documentation

  • Reword the next_unused_address API docs. #1680

What's Changed

Full Changelog: v1.0.0-beta.6...wallet-1.0.0

Release 1.0.0-beta.6

12 Dec 02:28
v1.0.0-beta.6
606a2b0
Compare
Choose a tag to compare
Release 1.0.0-beta.6 Pre-release
Pre-release

Summary

This is the final "beta" test release before a final bdk_wallet 1.0.0 version. Changes include small bug fixes and API improvements plus an improved algorithm for determining which transactions are in the current best "canonical" block chain. The new canonicalization algorithm processes the transaction graph in linear time versus the prior quadratic time algorithm.

Changelog

  • Move transaction testing utilities from crates/chain/tests/common to testenv crate #1612
  • Remove bdk_chain::ConfirmationTime. Use ChainPosition in its place. #1643
  • Fix building change signers in load_with_params #1662
  • Remove bdk_chain method KeychainTxOutIndex::inner #1652
  • Document bdk_file_store is a development/testing database #1661
  • Fix incorrect links in docs to wallet examples #1668
  • Add bdk_wallet "test-utils" feature flag that exposes common helpers for testing and development #1658
  • Removed methods Wallet::insert_tx, Wallet::insert_checkpoint, Wallet::unbroadcast_transactions #1658
  • Fix type constraint on list canonical tx #1724
  • Fix testenv docs.rs docs #1722
  • Use bitcoin::constants::COINBASE_MATURITY #1727
  • Rename bdk_core::spk_client's SyncResult to SyncResponse #1732
  • Fix core checkpoint Drop stack overflow #1731
  • Change Utxo::Foreign::sequence type to not be optional #1681
  • Check time when persisting in rusqlite impl #1730
  • Bump hashbrown dependency version to v0.14.5 #1721
  • Add usage of debug_assert!() to LocalChain::apply_update #1734
  • Allow Sqlite to persist anchor without tx #1736
  • Change ChainPosition to represent transitive anchors and unconfirmed-without-last-seen values #1733
  • Updated electrum-client dependency to 0.22.0 #1751
  • Change TxBuilder to be Send safe and not implement the Clone trait #1737
  • Update esplora-client dependency to 0.11.0 #1746
  • Fix fetch_prev_txout to no longer queries coinbase transactions #1756
  • Remove serde json dependency from chain crate #1752
  • Introduce O(n) canonicalization algorithm #1670
  • Add chain O(n) canonicalization algorithm see: /crates/chain/src/canonical_iter.rs #1670
  • Add chain indexing fields in TxGraph; txs_by_anchor_height and txs_by_last_seen #1670
  • Removed chain TxGraph methods: try_get_chain_position and get_chain_position #1670
  • Change coin_selection and DescriptorExt::dust_value to use Amount type #1763

What's Changed

New Contributors

Full Changelog: v1.0.0-beta.5...v1.0.0-beta.6

Release 0.30.0

23 Nov 01:56
v0.30.0
8081006
Compare
Choose a tag to compare
Release 0.30.0 Pre-release
Pre-release

Summary

This release bumps the MSRV to 1.63.0 and updates the rusqlite dependency version to 0.31 to be aligned with the upcoming 1.0.0 release. These changes will prepare projects for migrating wallet data to the 1.0.0 version of BDK, see #1648.

What's Changed

Full Changelog: v0.29.0...v0.30.0

Release 1.0.0-beta.5

02 Oct 16:44
v1.0.0-beta.5
ec7342d
Compare
Choose a tag to compare
Release 1.0.0-beta.5 Pre-release
Pre-release

Summary

This release changes bdk_wallet transaction creation to enable RBF by default, it also updates the bdk_esplora client to retry server requests that fail due to rate limiting. The bdk_electrum crate now also offers a use-openssl feature.

What's Changed

New Contributors

Full Changelog: v1.0.0-beta.4...v1.0.0-beta.5

Release 1.0.0-beta.4

13 Sep 21:17
v1.0.0-beta.4
88423f3
Compare
Choose a tag to compare
Release 1.0.0-beta.4 Pre-release
Pre-release

Summary

BDK Wallet 1.0.0-beta.4 replaces 1.0.0-beta.3 and fixes a versioning mistake with two of our dependency crates. The bdk-wallet 1.0.0-beta.3 version and related dependency patch releases have been yanked from crates.io.

Changelog

See https://github.com/bitcoindevkit/bdk/releases/tag/v1.0.0-beta.3

What's Changed

Full Changelog: v1.0.0-beta.3...v1.0.0-beta.4

Release 1.0.0-beta.3

13 Sep 16:14
v1.0.0-beta.3
98e1c9d
Compare
Choose a tag to compare
Release 1.0.0-beta.3 Pre-release
Pre-release

Version Yanked and Replaced by 1.0.0-beta.4

Summary

BDK Wallet 1.0.0-beta.3 is out! 🚀 Fixed transaction creation to not skip unused addresses, added function for sorting wallet transactions and option to change default BNB fallback coin selection. We moved the bdk_hwi crate functionality to the rust-hwi repo.

NOTE: The bdk_wallet BETA releases are meant for early user testing to find bugs, get feedback on APIs and identify any missing functionality. A final bdk_wallet 1.0.0 release will be available once known bugs are fixed, and tutorial docs and language bindings projects are updated.

What's Changed

Full Changelog: v1.0.0-beta.2...v1.0.0-beta.3

Release 1.0.0-beta.2

25 Aug 18:22
v1.0.0-beta.2
775e4ae
Compare
Choose a tag to compare
Release 1.0.0-beta.2 Pre-release
Pre-release

Summary

The primary user facing changes are re-enabling single descriptor wallets and renaming LoadParams methods to be more explict. Wallet persistence was also simplified and blockchain clients no longer depend on bdk_chain.

What's Changed

New Contributors

Full Changelog: v1.0.0-beta.1...v1.0.0-beta.2

Release 1.0.0-beta.1

22 Jul 15:29
v1.0.0-beta.1
17a9850
Compare
Choose a tag to compare
Release 1.0.0-beta.1 Pre-release
Pre-release

Summary

This release includes the first beta version of bdk_wallet with a stable 1.0.0 API. The changes in this version include reworked wallet persistence, changeset, and construction, optional user provided RNG, custom tx sorting, and use of merkle proofs in bdk_electrum.

What's Changed

  • fix(wallet)!: Simplify SignOptions and improve finalization logic by @ValuedMammal in #1476
  • feat(wallet): Allow user provided RNG, make rand an optional dependency by @rustaceanrob in #1395
  • refactor(wallet): Use Psbt::sighash_ecdsa for computing sighashes by @ValuedMammal in #1424
  • refactor(wallet)!: Use Weight type instead of usize by @oleonardolima in #1468
  • refactor(wallet): Remove usage of blockdata:: from bitcoin paths by @tcharding in #1490
  • refactor(chain): calculate DescriptorId as the sha256 hash of spk at index 0 by @notmandatory in #1486
  • refactor(chain)!: Change tx_last_seen to Option<u64> by @ValuedMammal in #1416
  • refactor(wallet)!: Add support for custom sorting and deprecate BIP69 by @nymius in #1487
  • refactor(chain)!: Create module indexer by @ValuedMammal in #1493
  • chore(chain)!: Rename Append to Merge by @LagginTimes in #1502
  • refactor(wallet)!: Simplify public_descriptor(), remove redundant function by @gnapoli23 in #1503
  • ci: pin cc dependency version to build with rust 1.63 by @LagginTimes in #1505
  • feat(electrum)!: Update bdk_electrum to use merkle proofs by @LagginTimes in #1489
  • refactor(wallet)!: rework persistence, changeset, and construction by @evanlinjin in #1514
  • refactor(chain)!: Update KeychainTxOutIndex methods to use owned K and ScriptBuf by @rustaceanrob in #1506
  • Bump bdk version to 1.0.0-beta.1 by @notmandatory in #1522

New Contributors

Full Changelog: v1.0.0-alpha.13...v1.0.0-beta.1

Release 1.0.0-alpha.13

15 Jun 03:05
v1.0.0-alpha.13
0543801
Compare
Choose a tag to compare
Pre-release

Summary

This release includes major changes required to finalize the bdk_wallet 1.0.0 APIs, including: upgrading to rust-bitcoin 0.32 and rust-miniscript 0.12.0, constructing a Wallet now requires two descriptors (external and internal), the db field was removed from Wallet, staged changes can be persisted via a blocking or async data store.

Changelog

Fixed

  • Fix KeychainTxOutIndex range-based methods. #1463

Changed

  • Upgrade rust bitcoin to 0.32.0, miniscript to 0.12.0. #1448
    • Use compute_txid() instead of deprecated txid().
    • Use minimal_non_dust() instead of dust_value().
    • Use signature and sighash_type fields, instead of previous sig and hash_type.
    • Use sighash::P2wpkhError, and sighash::TaprootError instead of older sighash::Error.
    • Converts from Network to NetworkKind, where expected.
    • Converts from Weight type to current used usize.
    • Use .into() to convert from AbsLockTime and RelLockTime to absolute::LockTime and relative::LockTime.
    • Remove use of deprecated ThirtyTwoByteHash trait, use Message::from_digest().
    • Update the miniscript policy and dsl macros to proper expect and handle new Threshold type, instead of the previous two parameters.
  • Add further bitcoin::Amount usage on public APIs. #1426
    • Updated CreateTxError::FeeTooLow to use bitcoin::Amount.
    • Updated Wallet::calculate_fee(). to use bitcoin::Amount
    • Updated TxBuilder::fee_absolute(). to use bitcoin::Amount.
    • Updated CalculateFeeError::NegativeFee to use bitcoin::SignedAmount.
    • Updated TxGraph::calculate_fee(). to use bitcoin::Amount.
    • Updated PsbUtils::fee_amount() to use bitcoin::Amount.
  • Wallet::get_balance() renamed to Wallet::balance(). #1455
  • Constructing a Wallet now requires two distinct descriptors. #1390
  • Removed duplicated InsufficientFunds error member. #1441
  • Refactor wallet and persist mods, remove bdk_persist crate. #1454 and #1473
    • Removed db from Wallet, users are now responsible for persisting changes, see docs and examples.
    • Removed the bdk_persist crate.
    • Remove persist submodule from bdk_chain.
    • Change Wallet to outsource it's persistence logic by introducing Wallet::take_staged.
    • Add take convenience method to Append trait.

What's Changed

New Contributors

Full Changelog: v1.0.0-alpha.12...v1.0.0-alpha.13

Release 1.0.0-alpha.12

23 May 23:00
v1.0.0-alpha.12
4a8452f
Compare
Choose a tag to compare
Pre-release

Summary

This bi-weekly release fixes an electrum syncing bug when calculating fees and adds the bdk_sqlite crate for storing wallet data in a SQLite tables. The Wallet::allow_shrinking function was also remove because it was too easy to misuse. Also the bdk crate was renamed to bdk_wallet. See the changelog for all the details.

Changelog

Fixed

  • Fixed calculate_fee result when syncing with electrum. #1443

Changed

  • Removed TxBuilder::allow_shrinking() function. #1386
  • Renamed bdk crate to bdk_wallet. #1326
  • Update Wallet to use CombinedChangeSet for persistence. #1128

Added

  • Add CombinedChangeSet in bdk_persist crate. #1128
  • Add bdk_sqlite crate implementing SQLite based wallet data storage. #1128
  • Update bdk_wallet export feature to support taproot descriptors. #1393

What's Changed

Full Changelog: v1.0.0-alpha.11...v1.0.0-alpha.12