github bitcoindevkit/bdk v1.0.0-alpha.3
Release 1.0.0-alpha.3

pre-release5 months ago

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

Don't miss a new bdk release

NewReleases is sending notifications on new releases.