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
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
- chore: add meta data to bitcoind_rpc crate by @notmandatory in #1174
- chore: fix MSRV for flate2 by @evanlinjin in #1182
- Further improve unconfirmed tx conflict resolution by @LagginTimes in #1109
- fix(electrum): fixed chain sync issue by @LagginTimes in #1145
- fix(bdk): Check if we're using the correct internal key before signing by @danielabrozzoni in #1200
- ci: Pin jobserver after cc by @danielabrozzoni in #1207
- chore: rename
ConfirmationTimeAnchor
toConfirmationTimeHeightAnchor
by @LagginTimes in #1206 - fix(chain): filter coinbase tx not in best chain by @LagginTimes in #1202
- feat: add dependabot by @realeinherjar in #1121
LocalChain
with hardwired genesis block by @evanlinjin in #1178- chore: fix typos by @realeinherjar in #1220
- Add CreateTxError and use as error type for TxBuilder::finish() by @notmandatory in #1028
- chore: remove bdk dependency on log and dev dependency on env_logger by @notmandatory in #1204
- Add
Wallet::list_output
method by @evanlinjin in #1190 - esplora: fix incorrect gap limit check in blocking client by @darosior in #1225
- build(esplora): Add async-https-rustls flag to esplora client by @thunderbiscuit in #1179
- doc(bdk): Clarify the absolute_fee docs by @danielabrozzoni in #1158
- Bump MSRV to 1.63.0 by @notmandatory in #1183
- doc: Improve TxGraph & co docs by @danielabrozzoni in #1188
- ci: pin home dependency to 0.5.5 and check_clippy to rust stable version by @notmandatory in #1247
- Fix: apply loaded changeset to indexed_graph when loading a wallet from persistence by @thunderbiscuit in #1246
- Use a universal lookahead value for
KeychainTxOutIndex
and have a reasonable default by @darosior in #1229 - Refactor/rename electrum_ext and esplora_ext to have sync and full_scan functions by @notmandatory in #1235
- cherry-pick feat(wallet)!: add
NonEmptyDatabase
variant toNewError
by @notmandatory in #1256 - fix(typos): existant -> existent by @storopoli in #1258
- Bump
bip39
dependency to v2.0 by @tnull in #1259 - Bump bdk version to 1.0.0-alpha.3 by @notmandatory in #1255
New Contributors
- @realeinherjar made their first contribution in #1121
- @darosior made their first contribution in #1225
- @storopoli made their first contribution in #1258
Full Changelog: v1.0.0-alpha.2...v1.0.0-alpha.3