BDK v1.0.0-alpha3: LocalChain Hard-wired Genesis Block & More

“BDK 1.0.0-alpha3 is out!””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.”

What’s new


Further improve unconfirmed tx conflict resolution. #1109Stuck Electrum chain sync issue. #1145Bug 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. #1200Coinbase 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. #1202Esplora incorrect gap limit check in blocking client. #1225Loading a wallet from persistence now restores keychain indices. #1246


Rename ConfirmationTimeAnchor to ConfirmationTimeHeightAnchor. #1206New LocalChain now have a hardwired genesis block: #1178Changed 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: #1028wallet: MiniscriptPsbtError, CreateTxError, BuildFeeBumpError error enums.coin_selection: module Error enum.Renamed fallible Wallet address functions to try_get_address() and try_get_internal_address(). #1028Rename LocalUtxo to LocalOutput. #1190MSRV is now 1.63.0 for bdk, chain, and bitcoind_rpc crates. #1183Use a universal lookahead value for KeychainTxOutIndex and have a reasonable default. #1229Return 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). #1256In electrum_ext rename functions scan_without_keychain to sync and scan to full_scan. #1235In esplora_ext rename functions scan_txs to sync and scan_txs_with_keychains to full_scan. #1235Increase rust-bip39 dependency version to 2.0 #1259


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


Add infallible Wallet get_address and get_internal_address functions. #1028Add Wallet::list_output method. #1190New 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

New Contributors

@realeinherjar made their first contribution in #1121@darosior made their first contribution in #1225@storopoli made their first contribution in #1258

Full Changelogv1.0.0-alpha.2…v1.0.0-alpha.3

Announcement / Archive
GitHub Repo

Leave a Reply

Your email address will not be published. Required fields are marked *