Skip to content

Releases: bitcoindevkit/bdk

Release 1.0.0-alpha.4

18 Jan 12:53
v1.0.0-alpha.4
0a2a570
Compare
Choose a tag to compare
Release 1.0.0-alpha.4 Pre-release
Pre-release

Summary

This release improves the KeychainTxOutIndex API and contains a few bug fixes and performance improvements.

Changelog

Fixed

Changed

  • The old hardwaresigner module has been moved out of bdk and inside a new bdk_hwi crate. #1161
  • Wallet's peek-address logic is optimized by making use of <SpkIterator as Iterator>::nth. #1269
  • KeychainTxOutIndex API is refactored to better differentiate between methods that return unbounded vs stored spks. #1269
  • KeychainTxOutIndex no longer directly exposes SpkTxOutIndex methods via DeRef. This was problematic because SpkTxOutIndex also contains lookahead spks which we want to hide. #1269

Added

  • LocalChain::disconnect_from method to evict a chain of blocks starting from a given BlockId. #1276
  • SpkIterator::descriptor method which gets a reference to the internal descriptor. #1269

What's Changed

New Contributors

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

Release 1.0.0-alpha.3

07 Jan 17:28
v1.0.0-alpha.3
9efaead
Compare
Choose a tag to compare
Release 1.0.0-alpha.3 Pre-release
Pre-release

Summary

This release changes LocalChain to have a hard-wired genesis block, adds context specific Wallet TxBuilder errors, and bumps the projects MSRV to 1.63. It also includes other API and docs improvements and bug fixes, see the changelog for all the details.

Changelog

Fixed

  • Further improve unconfirmed tx conflict resolution. #1109
  • Stuck Electrum chain sync issue. #1145
  • Bug related to taproot signing with internal keys. We would previously sign with the first private key we had, without checking if it was the correct internal key or not. #1200
  • Coinbase transactions cannot exist in the mempool and be unconfirmed. TxGraph::try_get_chain_position should always return None for coinbase transactions not anchored in best chain. #1202
  • Esplora incorrect gap limit check in blocking client. #1225
  • Loading a wallet from persistence now restores keychain indices. #1246

Changed

  • Rename ConfirmationTimeAnchor to ConfirmationTimeHeightAnchor. #1206
  • New LocalChain now have a hardwired genesis block: #1178
    • Changed ChainOracle::get_chain_tip method to return a BlockId instead of an Option of a BlockId.
    • Refactored LocalChain so that the genesis BlockId is hardwired. This way, the ChainOracle::get_chain_tip implementation can always return a tip.
    • Add is_empty method to PersistBackend. This returns true when there is no data in the persistence.
    • Changed Wallet::new to initialize a fresh wallet only.
    • Added Wallet::load to restore an instance of a wallet.
    • Replaced Store::new with separate methods to create/open the database file.
  • Updated the bdk module to use new context specific error types: #1028
    • wallet: MiniscriptPsbtError, CreateTxError, BuildFeeBumpError error enums.
    • coin_selection: module Error enum.
  • Renamed fallible Wallet address functions to try_get_address() and try_get_internal_address(). #1028
  • Rename LocalUtxo to LocalOutput. #1190
  • MSRV is now 1.63.0 for bdk, chain, and bitcoind_rpc crates. #1183
  • Use a universal lookahead value for KeychainTxOutIndex and have a reasonable default. #1229
  • Return NonEmptyDatabase error when constructing a wallet with Wallet::new if the file already contains data (in which case, the caller should use load or new_or_load). #1256
  • In electrum_ext rename functions scan_without_keychain to sync and scan to full_scan. #1235
  • In esplora_ext rename functions scan_txs to sync and scan_txs_with_keychains to full_scan. #1235
  • Increase rust-bip39 dependency version to 2.0 #1259

Removed

  • Removed catch-all top level bdk::Error enum. #1028
  • Removed impl_error macro. #1028

Added

  • Add infallible Wallet get_address and get_internal_address functions. #1028
  • Add Wallet::list_output method. #1190
  • New async-https-rustls feature flag for the bdk_esplora crate, allowing to compile rust-esplora-client using rustls-tls instead of the default native-tls. #1179

What's Changed

New Contributors

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

Release 1.0.0-alpha.2

12 Oct 18:27
v1.0.0-alpha.2
2e4bc3c
Compare
Choose a tag to compare
Release 1.0.0-alpha.2 Pre-release
Pre-release

Summary

Notable changes include a new bitcoind RPC based blockchain client module for quick syncing to bitcoind, a new linked-list LocalChain, and an upgrade to rust-bitcoin 0.30.

Changelog

Fixed

  • wallet_esplora: missing_heights uses the graph update #1152
  • bump electrum version to 0.18 #1132
  • Correct the coin type in the derivation path for wallet examples #1089

Added

  • Add bitcoind_rpc chain-source module. #1041
  • Add example_bitcoind_rpc example module. #1041
  • Add AnchorFromBlockPosition trait which are for anchors that can be constructed from a given block, height and position in block. #1041
  • Add helper methods to IndexedTxGraph and TxGraph for batch operations and applying blocks directly. #1041
  • Add helper methods to CheckPoint for easier construction from a block Header. #1041
  • Add cli-example for esplora. #1040
  • Introduced tx_template module. #1064
  • Introduced TxGraph::TxAncestors iterator. #1064
  • Added walk_ancestors to TxGraph. #1064
  • Implement Anchor for BlockId. #1069

Changed

  • Move WalletUpdate to the wallet module. #1084
  • Remove ForEachTxout trait completely. #1084
  • Refactor ElectrumExt to not use WalletUpdate. #1084
  • Rename indexed_tx_graph::IndexedAdditions to indexed_tx_graph::ChangeSet. #1065
  • Rename indexed_tx_graph::IndexedAdditions::graph_additions to indexed_tx_graph::ChangeSet::graph. #1065
  • Rename indexed_tx_graph::IndexedAdditions::index_additions to indexed_tx_graph::ChangeSet::indexer. #1065
  • Rename tx_graph::Additions to tx_graph::ChangeSet. #1065
  • Rename keychain::DerivationAdditions to keychain::ChangeSet. #1065
  • Rename CanonicalTx::node to CanonicalTx::tx_node. #1065
  • Rename CanonicalTx::observed_as to CanonicalTx::chain_position. #1065
  • Rename LocalChangeSet to WalletChangeSet. #1065
  • Rename LocalChangeSet::chain_changeset to WalletChangeSet::chain. #1065
  • Rename LocalChangeSet::indexed_additions to WalletChangeSet::indexed_tx_graph. #1065
  • Rename LocalUpdate to WalletUpdate. #1065
  • Make TxGraph::determine_changeset pub(crate). #1065
  • Add TxGraph::initial_changeset. #1065
  • Add IndexedTxGraph::initial_changeset. #1065
  • Remove TxGraph::insert_txout_preview. #1065
  • Remove TxGraph::insert_tx_preview. #1065
  • Remove insert_anchor_preview. #1065
  • Remove insert_seen_at_preview. #1065
  • Refactored TxGraph::walk_conflicts to use TxGraph::TxAncestors. #1064
  • Update to rust-bitcoin 0.30.0 and miniscript 10.0.0. #1023
  • Use apply_update instead of determine_changeset + apply_changeset around the code. #1092
  • Rename TxGraph::direct_conflicts_of_tx to TxGraph::direct_conflicts. #1164
  • Rename methods of esplora ext. #1070

What's Changed

New Contributors

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

Release 0.29.0

05 Oct 20:28
v0.29.0
213c270
Compare
Choose a tag to compare
Release 0.29.0 Pre-release
Pre-release

Summary

This maintenance release updates our rust-bitcoin dependency to 0.30.x and fixes a wallet balance bug when a wallet has more than one coinbase transaction.

Changed Log

Changed

  • Update rust-bitcoin to 0.30 #1071

Fixed

  • Fix a bug when syncing coinbase utxos on electrum #1090

What's Changed

Full Changelog: v0.28.2...v0.29.0

Release 0.28.2

10 Aug 15:35
v0.28.2
0ba6bbe
Compare
Choose a tag to compare
Release 0.28.2 Pre-release
Pre-release

Summary

Reverts the 0.28.1 esplora-client version update from 0.5.0 back to 0.4.0.

Changelog

Changes

  • Reverts the 0.28.1 esplora-client version update from 0.5.0 back to 0.4.0.

What's Changed

  • release: bump version to 0.28.2, downgrade esplora-client to 0.4 by @notmandatory in #1074

Full Changelog: v0.28.1...v0.28.2

Release 0.28.1

04 Aug 02:18
v0.28.1
7231039
Compare
Choose a tag to compare
Release 0.28.1 Pre-release
Pre-release

Summary

This patch release backports (from the BDK 1.0 dev branch) a fix for a bug in the policy condition calculation and adds a new taproot single key descriptor template (BIP-86). The policy condition calculation bug can cause issues when a policy subtree fails due to missing info even if it's not selected when creating a new transaction, errors on unused policy paths are now ignored.

Changelog

Fixed

  • Backported #932 fix for policy condition calculation #1008

Added

  • Backported #840 taproot descriptor template (BIP-86) #1033

What's Changed

New Contributors

Full Changelog: v0.28.0...v0.28.1

Release 1.0.0-alpha.1

19 Jul 01:54
v1.0.0-alpha.1
f4d2a76
Compare
Choose a tag to compare
Release 1.0.0-alpha.1 Pre-release
Pre-release

Summary

The BDK 1.0.0-alpha release should be used for experimentation only, APIs are still unstable and the code is not fully tested. This alpha.1 release introduces the new ChainOracle struct for more efficient chain syncing. A new std default feature was added for bdk, bdk_chain and bdk_esplora crates; when disabled these crates can be used in no-std projects. BDK 1.0.0-alpha.x docs are now published to docs.rs.

Changelog

Fixed

  • Fixed a bug in the policy condition calculation. #932
  • Pin base64 to 0.21.0 #990
  • Fix docsrs publishing for bdk crate. #1011

Changed

  • Refactor bdk_chain to use new ChainOracle structure. #926 #963 #965 #975 #976
  • Better no std support. #894
    • Set default-features = false for rust-bitcoin and rust-miniscript.
    • Introduce std default feature for bdk, bdk_chain and bdk_esplora.

Added

  • Add a simple conversion tool for going to kilo weight units. #953
  • Add Custom spk iterator. #927
  • Add taproot descriptor template (BIP-86). #840

What's Changed

New Contributors

Full Changelog: v1.0.0-alpha.0...v1.0.0-alpha.1

Release 0.28.0

17 Apr 17:33
v0.28.0
78529b6
Compare
Choose a tag to compare
Release 0.28.0 Pre-release
Pre-release

Summary

This is a maintenance release and includes changes from yanked version 0.27.2 including to disable default-features for rust-bitcoin and rust-miniscript dependencies, and for rust-esplora-client optional dependency. New default std feature must now be enabled unless building for wasm.

Changelog

  • Bump bip39 crate to v2.0.0 #875
  • Set default-features = false for rust-bitcoin and rust-miniscript #882
  • Update esplora client dependency to version 0.4 #884
  • Added new std feature as part of default features #930

What's Changed

Full Changelog: v0.27.1...v0.28.0

Release 1.0.0-alpha.0

20 Mar 18:07
v1.0.0-alpha.0
30c1190
Compare
Choose a tag to compare
Release 1.0.0-alpha.0 Pre-release
Pre-release

Summary

The first "alpha" release of the new BDK 1.0 refactoring work. This is still a WIP and only meant to be used for testing and experimentation with downstream projects.

Also bumping below workspace crate versions:

bdk_chain to 0.4.0
bdk_electrum to 0.2.0
bdk_esplora to 0.2.0
bdk_file_store to 0.1.0

Changelog

Not updating the CHANGELOG file for alpha releases, just putting here for the record.

  • bdk v1.0.0-alpha.0 #793
  • Nit fixes on documentation #888
  • Add docs for EsploraAsyncExt and make doctests runnable #889
  • Simplify reveal_to_target logic #890

Release 0.27.2

15 Mar 19:57
v0.27.2
de46a51
Compare
Choose a tag to compare
Release 0.27.2 Pre-release
Pre-release

RELEASE YANKED FROM CRATES.IO

See: #897

Summary

Disable default-features for rust-bitcoin and rust-miniscript dependencies, and for rust-esplora-client optional dependency.

Changelog

Changed

  • Set default-features = false for rust-bitcoin and rust-miniscript #882
  • Update esplora client dependency to version 0.4 #884

What's Changed

Full Changelog: v0.27.1...v0.27.2