Releases: bitcoindevkit/bdk
Release 0.20.0
Highlights for this release include bug fixes for the ElectrumBlockchain
and descriptor templates, new transactions building feature to discourage fee sniping, and new transaction signing options. Also with this release MSRV is now 1.56.1 and AddressValidator
is deprecated. A big thanks to our past and latest new contributors. See below for all the details.
What's Changed
- Bump versions by @bonomat in #623
- Release version to 0.19.0 by @notmandatory in #629
- fix typo by @bucko13 in #622
- Fix CI, bump MSRV to 1.56.1 by @danielabrozzoni in #638
- Fix README.md link to rust 1.56.1 blog post by @notmandatory in #643
- Additional comments for
TransactionDetails
. by @evanlinjin in #633 - Discourage fee sniping with nLockTime by @danielabrozzoni in #611
- Restrict
drain_to
usage by @danielabrozzoni in #625 - Remove database flush by @bruteforcecat in #575
- Fix: Hang when
ElectrumBlockchainConfig::stop_gap == 0
by @evanlinjin in #652 - Avoid using immature coinbase inputs by @danielabrozzoni in #614
- set coin type based on network by @jbesraa in #585
- test: BDK won't add unconf inputs when fee bumping by @danielabrozzoni in #648
- Get block hash by its height by @vladimirfomene in #634
- Add remove_partial_sigs and try_finalize to SignOptions by @bruteforcecat in #621
- Deprecate
AddressValidator
by @evanlinjin in #664 - Fix: Wallet sync may decrement address index by @evanlinjin in #653
- Rename
set_current_height
tocurrent_height
by @afilini in #667
New Contributors
- @bucko13 made their first contribution in #622
- @jbesraa made their first contribution in #585
- @vladimirfomene made their first contribution in #634
Full Changelog: v0.19.0...v0.20.0
Release 0.19.0
This release brings experimental taproot support including tr()
descriptors, taproot PSBTs, signing key and script spend taproot PSBTs, and tr()
in descriptor!
macros. The release also bring a new coin selection algorithm OldestFirstCoinSelection
, a sqlite-db
fix, and major dependency updates. See below for the changes.
What's Changed
- Release 0.18.0 by @notmandatory in #584
- Expose bip39::Error by @evanlinjin in #582
- add OldestFirstCoinSelection by @bruteforcecat in #557
- Bump MSRV to 1.56 by @afilini in #596
- Fix typo in docs for TxBuilder allow_shrinking method by @thunderbiscuit in #599
- Change wallet::get_funded_wallet to return Wallet by @notmandatory in #600
- wrong Network path fixed by @waterst0ne in #602
- [blockchain] Add traits to reuse
Blockchain
s across multiple wallets by @afilini in #569 - Upgrade to rust-bitcoin 0.28 by @afilini in #606
- unpinning dependency tokio to just 1 by @ulrichard in #604
- Populate the redeemScript for
sh(wsh(sortedmulti()))
by @afilini in #610 - Fix sqlite database set_utxo to insert or update utxos by @notmandatory in #605
- Add support for Taproot and
tr()
descriptors by @afilini in #593 - Fix index out of bound error by @bonomat in #619
- rpc: use
importdescriptors
with Core >= 0.21 by @afilini in #628
New Contributors
- @evanlinjin made their first contribution in #582
- @bruteforcecat made their first contribution in #557
- @waterst0ne made their first contribution in #602
Full Changelog: v0.18.0...v0.19.0
Release 0.18.0
This release includes an important security fix, see the "Security Advisory: Miniscript MINIMALIF Bug" blog post for more details.
Other changes in this release include improvements to the key generation traits, new wallet functions to get signers, descriptor checksum and address validators, and a new sqlite-bundled
feature for mobile users. The Database::flush()
function was deprecated and the WalletExport
struct was renamed to FullyNodedExport
.
What's Changed
- Never delete spent utxos from the database by @danielabrozzoni in #515
- Fix pre-segwit inputs with esplora by @LLFourn in #571
- Update
electrsd
to v0.15 by @afilini in #545 - Release 0.17.0 by @notmandatory in #564
- Add wallet creation example using RPC by @rajarshimaitra in #519
- Add sqlite-bundled feature by @notmandatory in #566
- Fix hierarchy of headers on docs landing page by @thunderbiscuit in #554
- update AddressInfo struct by @Eunoia1729 in #563
- Expose more getters in Wallet and other useful descriptor traits by @afilini in #562
- Faster sync by collecting esplora ureq thread handles by @nickfarrow in #579
- Deprecate Database::flush() function by @notmandatory in #577
- Improve keys traits, simplify
rpcwallet
example by @afilini in #583 - export: Rename
WalletExport
toFullyNodedExport
by @afilini in #589
New Contributors
- @Eunoia1729 made their first contribution in #563
- @nickfarrow made their first contribution in #579
Full Changelog: v0.17.0...v0.18.0
Release 0.17.0
This release brings a change to the wallet sync API to decouple the Wallet from the Blockchain, see the CHANGELOG for all the details. Also in this release is a change to the wallet sync verification logic which is now enabled via a build time feature. Two new wallet functions were added to get an internal address and to let offline wallets load and cache addresses. See below for the complete list of improvements and fixed bugs.
What's Changed
- Release/0.16.0 by @notmandatory in #532
- [ci] Pin nightly docs workflow rust version to nightly-2022-01-25 by @notmandatory in #539
- Implement XKeyUtils on InnerXKey by @acerbisgianluca in #542
- Pin tokio version to ~1.14 by @notmandatory in #550
- Fix sent calculation in the RPC backend by @danielabrozzoni in #551
- Refactor verification logic by @rajarshimaitra in #502
- Release/0.16.1 by @notmandatory in #552
- Add API for internal addresses by @LLFourn in #522
- refactor wallet address caching into its own public method by @a5an0 in #537
- Remove blockchain from wallet by @LLFourn in #535
New Contributors
- @acerbisgianluca made their first contribution in #542
- @a5an0 made their first contribution in #537
Full Changelog: v0.16.1...v0.17.0
Release 0.16.1
This release includes changes to fix CI and an issue caused by our tokio
dependency changing their MSRV to 1.49.0
.
What's Changed
- [ci] Pin nightly docs workflow rust version to nightly-2022-01-25 by @notmandatory in #539
- Pin tokio version to ~1.14 by @notmandatory in #550
Full Changelog: v0.16.0...v0.16.1
Release 0.16.0
This is another under the hood fixes release, in particular if using reqwest the default TLS features are disabled (can be re-enabled with new reqwest-default-tls
feature), we are now using the dust value from rust-bitcoin
, and generated WIFs use the correct network format. See below for details and all the changes:
What's Changed
- Update logo by @afilini in #497
- [ci] Fix publish_docs job by @notmandatory in #503
- Add back old logo to static/bdk.svg by @notmandatory in #509
- Fix wif network by @mcroad in #504
- Add a custom logo to our docs by @afilini in #510
- Fix nightly_docs.yml publish_docs 'Commit' step by @notmandatory in #511
- Release/0.15.0 by @notmandatory in #508
- Disable reqwest's default features by @thomaseizinger in #495
- Using dust value from rust-bitcoin in
is_dust
by @jatayl in #505
New Contributors
Full Changelog: v0.15.0...v0.16.0
Release 0.15.0
Most of the changes for this release are under the hood, primarily a restructure of the electrum/esplora sync logic and moving the function wallet_name_from_descriptor
from the rpc
to the wallet
module. The release also includes a version bump for electrsd
to 0.13
. See below for details and all the changes:
What's Changed
- Restructure electrum/esplora sync logic by @LLFourn in #461
- moving the function wallet_name_from_descriptor from blockchain/rpc.rs to wallet/mod.rs as it can be useful not only for rpc by @ulrichard in #471
- Update issue templates by @notmandatory in #477
- Fix typo in check_miniscript method declaration and use by @thunderbiscuit in #475
- release/0.14.0 by @notmandatory in #473
- Fix typos in comments by @thunderbiscuit in #478
- Use "Description" instead of "Descriptive Title" in SoB Issue Template by @rajarshimaitra in #487
- bump electrsd dep to 0.13 by @RCasatta in #492
- Only run clippy for the stable rust version by @notmandatory in #501
New Contributors
- @thunderbiscuit made their first contribution in #475
Full Changelog: v0.14.0...v0.15.0
Release 0.14.0
Notable changes in this release include adding a new method to TxBuilder
to embed data in a transaction via OP_RETURN
and updating the Database
trait to store the last sync timestamp and block height. Other internal improvements include a change in the keys
module dependencies from tiny-bip39
to using rust-bip39
, renaming ConfirmationTime
to BlockTime
to more clearly describe the data that struct contains, and using a borrowed transaction when broadcasting. And finally we have updated our integration test framework to verify support for sending to Taproot addresses 🥕 ! See below for all the details:
What's Changed
- Fix/ci update 1.56 by @afilini in #454
- Borrow instead of moving transaction when broadcasting by @klochowicz in #452
- Release/0.13.0 by @notmandatory in #453
- Use rust-bip39 instead of tiny-bip39 by @rajarshimaitra in #462
- Update codecov@v2 by @rajarshimaitra in #458
- Post bip39 updates by @rajarshimaitra in #464
- Add data as output (via OP_RETURN) by @RCasatta in #460
- Store the last sync time and block height by @afilini in #459
- [test] add tests to verify support for sending to bech32m address by @sandipndev in #402
New Contributors
- @klochowicz made their first contribution in #452
- @sandipndev made their first contribution in #402
Full Changelog: v0.13.0...v0.14.0
v0.13.0
This release of BDK adds new the Wallet::get_tx()
function which returns a single transactions made and received by the wallet. It also includes dependency updates to fix recent build and audit issues.
What's Changed
- Downgrade tiny-bip39 to version prior to 0.8.0 by @notmandatory in #444
- Release/0.12.0 by @notmandatory in #445
- Expose get_tx() method from
DB
toWallet
by @rajarshimaitra in #443 - Pin ahash version to 0.7.4 for sqlite feature by @notmandatory in #449
- Make MemoryDatabase Send + Sync by @artfuldev in #448
New Contributors
- @artfuldev made their first contribution in #448
Full Changelog: v0.12.0...v0.13.0
v0.12.0
This release of BDK adds support for SOCKS5 proxies in the EsploraBlockchain
and adds the new optional sqlite
feature to store cached wallet and blockchain data in a SQLite database. The miniscript/use-serde
feature was also activated to allow consumers of the BDK library to access it via the re-exported miniscript
crate.
You can find the full details in the changelog.
What's Changed
- Fix a small typo in log_progress() description by @romanz in #426
- Use ureq with default features by @rajarshimaitra in #432
- Fix imports in test macros by @luckysori in #428
- [CI] Fixed esplora blockchain tests in CI by @rajarshimaitra in #430
- Release/0.11.0 by @notmandatory in #434
- Fix
extract_policy()
onpk_h()
operands by @afilini in #438 - [rpc] rescan in chunks of 10_000 blocks by @RCasatta in #436
- [fix-build] Fix version of zeroize_derive < 1.2.0 by @LLFourn in #440
- [esplora] Support proxies in EsploraBlockchain by @afilini in #429
- Add use-serde feature by @luckysori in #442
- implement sqlite database by @johncantrell97 in #376
Full Changelog: v0.11.0...v0.12.0