Releases: bitcoindevkit/bdk
Release chain-0.22.0
Summary
This release of bdk_chain
v0.22.0 includes a better syncing experience for electrum and esplora, relevant transactions that are missing can now be evicted with the help of SyncRequestBuilder
. CanonicalizationParams
can be used to modify the behavior of CanonicalIter
for a given query. Updated dependency on miniscript
to 12.3.1 along with various fixes and improvements.
Other notable releases:
bdk_core
0.5.0bdk_electrum
0.22.0bdk_esplora
0.21.0bdk_bitcoind_rpc
0.19.0bdk_file_store
0.20.0bdk_testenv
0.12.0
Note
The blockchain client crates all depend on the latest version of bdk_core
. If your project uses a version of bdk_core
earlier than v0.5.0, you should not attempt to upgrade to the latest chain source crates until you've upgraded to the latest version of bdk_core
.
What's Changed
- test(core): add unit tests for
merge
trait by @pluveto in #1738 bdk_electrum
: Handle negative heights properly by @evanlinjin in #1837- Make full-scan/sync flow easier to reason about. by @evanlinjin in #1838
- docs: update CONTRIBUTING.md with section for new contributors by @notmandatory in #1871
- doc: remove 1.0 roadmap stuff and fix broken links from README by @luisschwab in #1882
- doc: remove persist crate from README by @luisschwab in #1884
- Introduce
evicted-at
/last-evicted
timestamps by @evanlinjin in #1839 - example_cli: add feerate option to psbt new cmd by @ValuedMammal in #1840
- deps: bump
miniscript
to12.3.1
by @LagginTimes in #1924 - chore: remove bdk_wallet and update readme and ci workflow by @notmandatory in #1928
- feat(chain): Add method for constructing TxGraph from a ChangeSet by @uvuvuwu in #1930
- fix: Canonicalization should handle transactions that spend from two conflicting transactions by @evanlinjin in #1917
- Introduce canonicalization parameters by @evanlinjin in #1808
- feat(rpc)!: Update Emitter::mempool to support evicted_at by @LagginTimes in #1857
New Contributors
- @pluveto made their first contribution in #1738
- @Musab1258 made their first contribution in #1895
- @uvuvuwu made their first contribution in #1930
Full Changelog: chain-0.21.1...chain-0.22.0
Release wallet-1.2.0
Summary
In this release of bdk_wallet 1.2.0 The TxBuilder add_recipient
function now accepts anything that implements Into<ScriptBuf>
. The wallet considers a coinbase output eligible for selection if it will mature in the next block. Wallets persisted with a rusqlite::Connection
are checked to be thread-safe. The bdk_chain
dependency is updated to version 0.21.1, plus a number of internal cleanups.
What's Changed
- Fix off-by-one error checking coinbase maturity in optional UTxOs by @nymius in #1830
- wallet: Bump bitcoin dependency to v0.32.4 by @stevenroose in #1853
bdk_wallet
: Pinbdk_chain
version to latest release by @evanlinjin in #1860- Refactor/use iterators to preselect utxos by @nymius in #1798
- Refactor file store by @nymius in #1684
- docs: update CONTRIBUTING.md with section for new contributors by @notmandatory in #1871
- fix(examples): make regtest default on wallet_example_rpc by @luisschwab in #1872
- chore(examples): make change descriptor optional on example_wallet_rpc by @luisschwab in #1865
- Generalize
add_recipient
to acceptAddress
by @rustaceanrob in #1841 - doc: remove 1.0 roadmap stuff and fix broken links from README by @luisschwab in #1882
- doc: remove persist crate from README by @luisschwab in #1884
- fix(wallet): allow PersistedWallet to be Send + Sync by @notmandatory in #1874
- example_cli: add feerate option to psbt new cmd by @ValuedMammal in #1840
- chore: bump
miniscript
to12.3.1
by @LagginTimes in #1924 - chore: bump bdk_wallet to 1.2.0 by @ValuedMammal in #1925
New Contributors
- @Musab1258 made their first contribution in #1895
Full Changelog: wallet-1.1.0...wallet-1.2.0
Release bdk 0.30.2
This is a patch release to fix a crash that can occur when syncing wallets that have many (10k+) UTXOs.
!! DEPRECATED !!
The bdk library is now deprecated and replaced by bdk_wallet. All projects should migrate to bdk_wallet 1.0.0 or newer as soon as possible. For migration instructions see the "Book of BDK" chapter on "Migrating from 0.x".
The BDK team will continue to publish bdk
0.30.x
bug fix releases as needed, but only for a limited time.
What's Changed
- Fix out of memory issue caused by many txs. by @jguinta in #1831
- Fix SQLite panic when syncing many UTXOs by enabling WAL journal mode by @notmandatory in #1836
New Contributors
Full Changelog: v0.30.1...v0.30.2
Release wallet-1.1.0
Summary
In this release of bdk_wallet v1.1.0 the tx builder is updated to use transaction version 2 by default, and support for wallets using testnet4 is now live. This release also includes important updates to bdk_electrum which has a new MSRV of 1.75.0 to stay current with the latest security fixes, bdk_bitcoind_rpc introduces a new compact block filter module, as well as various bug fixes and improvements.
What's Changed
- test(wallet): small cleanups to test_wallet_transactions_relevant by @notmandatory in #1785
- refactor(wallet): cleanup and remove unused code in create_tx by @notmandatory in #1768
- docs: add architectural decision records (ADR) by @ValuedMammal in #1592
- fix(wallet): improve safety on finalize psbt by @f3r10 in #1790
- feat(wallet): change default tx to version 2 by @benalleng in #1789
- test(wallet): create tx locktime cltv for a specific time by @f3r10 in #1682
- feat(wallet): support Testnet4 in valid networks by @ValuedMammal in #1805
- fix(wallet): use
map_keychain
inWallet::build_fee_bump
by @ValuedMammal in #1812 - ci: add secondary MSRV job of 1.75.0 by @oleonardolima in #1803
- ci: apply zizmor security audit by @oleonardolima in #1778
New Contributors
- @f3r10 made their first contribution in #1790
- @benalleng made their first contribution in #1789
- @pluveto made their first contribution in #1738
Full Changelog: wallet-1.0.0...wallet-1.1.0
Release bdk 0.30.1
!! DEPRECATED !!
The bdk library is now deprecated and replaced by bdk_wallet. All projects should migrate to bdk_wallet 1.0.0 or newer as soon as possible. For migration instructions see the "Book of BDK" chapter on "Migrating from 0.x".
The BDK team will continue to publish bdk
0.30.x
bug fix releases as needed, but only for a limited time.
What's Changed
- fix electrum conftime_req filter for needs_block_height by @zoedberg in #1782
- Update bdk 0.30.x README docs to deprecate the bdk library by @notmandatory in #1791
New Contributors
Full Changelog: v0.30.0...v0.30.1
Release wallet-1.0.0
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
- docs(wallet): reword the
next_unused_address
doc by @oleonardolima in #1680 - chore[chain,wallet]: fix build warnings by @notmandatory in #1774
- ci: automated update to rustc 1.83.0 by @create-pr-actions in #1776
transactions
method should only return relevant transactions by @evanlinjin in #1779- Bump bdk_wallet version to 1.0.0 by @notmandatory in #1784
Full Changelog: v1.0.0-beta.6...wallet-1.0.0
Release 1.0.0-beta.6
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
totestenv
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
- Refactor: Move transaction testing utilities from
crates/chain/tests/common
totestenv
crate by @tvpeter in #1612 - chore(deps): bump actions/checkout from 1 to 4 by @dependabot in #1211
- ci: update audit.yml workflow to use actions-rust-lang/audit by @notmandatory in #1646
- feat(chain,wallet)!: rm
ConfirmationTime
by @evanlinjin in #1643 - fix(wallet): fix building change signers in
load_with_params
by @ValuedMammal in #1662 - chore(deps): bump tibdex/github-app-token from 1 to 2 by @dependabot in #1657
- refactor(chain)!: remove
inner
method from KeychainTxOutIndex by @ValuedMammal in #1652 - chore(file_store): Document that it's a dev database by @LLFourn in #1661
- chore(deps): bump Swatinem/rust-cache from 2.2.1 to 2.7.5 by @dependabot in #1645
- docs: fix incorrect links to wallet examples by @torkelrogstad in #1668
- ci: pin deps for MSRV by @ValuedMammal in #1674
- chore(deps): bump peter-evans/create-pull-request from 6 to 7 by @dependabot in #1672
- chore(deps): bump crazy-max/ghaction-import-gpg from 5 to 6 by @dependabot in #1673
- fix(wallet)!: Improve test utilities by @ValuedMammal in #1658
- ci: automated update to rustc 1.82.0 by @create-pr-actions in #1719
- Type constraint on list canonical tx by @rustaceanrob in #1724
- fix(testenv): disable downloads (bitcoind and electrsd) for docs.rs b… by @riverKanies in #1722
- Use
bitcoin::constants::COINBASE_MATURITY
by @rustaceanrob in #1727 - chore(core)!: rename
SyncResult
toSyncResponse
by @oleonardolima in #1732 - fix(core): Fix checkpoint Drop stack overflow by @LLFourn in #1731
- types: Make Utxo::Foreign::sequence not optional by @stevenroose in #1681
- Check time when persisting in
rusqlite
impl by @rustaceanrob in #1730 - chore(deps): bump hashbrown to v0.14.5 by @tvolk131 in #1721
- chore(chain)!: use
debug_assert!
onapply_update
by @oleonardolima in #1734 - ci: pin
rustls
dependency version to build with rust 1.63 by @LagginTimes in #1745 - Sqlite - allow persisting anchor without tx by @evanlinjin in #1736
- chore: Revert
rustls
pin dependency by @evanlinjin in #1749 - feat(chain,wallet)!: Transitive
ChainPosition
by @evanlinjin in #1733 - deps(electrum): bump
electrum-client
to 0.22.0 by @LagginTimes in #1751 - fix(tx_builder)!: make TxBuilder Send safe, remove Clone trait by @notmandatory in #1737
- deps(esplora): bump
esplora-client
to 0.11.0 by @ValuedMammal in #1746 - fix(electrum): prevent
fetch_prev_txout
from querying coinbase transactions by @LagginTimes in #1756 - Remove serde json dependency from chain crate by @nymius in #1752
- Introduce
O(n)
canonicalization algorithm by @evanlinjin in #1670 - Change coin_selection and DescriptorExt::dust_value to use Amount type by @notmandatory in #1763
- Bump bdk_wallet version to 1.0.0-beta.6 by @notmandatory in #1772
New Contributors
- @tvpeter made their first contribution in #1612
- @dependabot made their first contribution in #1211
- @torkelrogstad made their first contribution in #1668
- @riverKanies made their first contribution in #1722
- @tvolk131 made their first contribution in #1721
Full Changelog: v1.0.0-beta.5...v1.0.0-beta.6
Release 0.30.0
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
- ci (maintenance): Pin byteorder, webpki to keep the MSRV by @danielabrozzoni in #1160
- Bump MSRV 1.63.0 AND add deprecate TxBuilder::allow_shrinking() by @notmandatory in #1366
- (maintenance) doc(bdk): Clarify the absolute_fee docs by @danielabrozzoni in #1159
- release/0.29, deps: Update
rusqlite
to 0.31 by @ValuedMammal in #1651 - test: update electrsd to fix RUSTSEC-2024-0384 warning by @notmandatory in #1744
Full Changelog: v0.29.0...v0.30.0
Release 1.0.0-beta.5
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
- ci: automated update to rustc 1.81.0 by @create-pr-actions in #1613
- doc(wallet): Add docs to explain the lookahead by @ValuedMammal in #1596
- chore: fix RUSTSEC-2024-0370 proc-macro-error is unmaintained by @oleonardolima in #1603
- fix(bdk_esplora, bdk_electrum): build and test with
--no-default-features
by @oleonardolima in #1615 - fix!(wallet):
ChangeSet
should not be non-exhaustive by @evanlinjin in #1623 - feat(wallet)!: enable RBF by default on TxBuilder by @luisschwab in #1616
- deps(esplora): bump esplora-client to 0.10.0 by @ValuedMammal in #1626
- feat(chain,core)!: move
Merge
tobdk_core
by @evanlinjin in #1625 - Replace trait
AnchorFromBlockPosition
with new struct by @jirijakes in #1594 - ci: fix build-test job with --no-default-features, add miniscript/no-std by @notmandatory in #1636
- feat(bdk_electrum): add
use-openssl
as a feature by @oleonardolima in #1620 - Bump bdk_wallet version to 1.0.0-beta.5 by @ValuedMammal in #1639
New Contributors
- @luisschwab made their first contribution in #1616
- @jirijakes made their first contribution in #1594
Full Changelog: v1.0.0-beta.4...v1.0.0-beta.5
Release 1.0.0-beta.4
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
- Bump bdk_wallet version to 1.0.0-beta.4 by @notmandatory in #1610
Full Changelog: v1.0.0-beta.3...v1.0.0-beta.4