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