Releases: bitcoindevkit/bdk-ffi
v2.0.0
This release brings bdk-ffi to it's 2.0.0 version!
The release uses the following Rust dependencies:
- bdk_wallet 2.0.0
- bdk_electrum 0.23.0
- bdk_esplora 0.22.0
- bdk_kyoto 0.13.1
- uniffi 0.29.1
- rust-bitcoin 0.32.6
Added
- PSBT file operations: read and write PSBT files #800
- New
Psbt::from_unsigned_txconstructor #802 - New
Psbt::spend_utxomethod #798 - Arbitrary persistence for wallet #771
- Wallet changeset primitives #756
- Display implementation for
Transaction#799 Descriptor::max_weight_to_satisfymethod #794- Expose
Wallet::public_descriptor#786 - Expose
Wallet::tx_details#778 - Expose
Wallet::latest_checkpoint#761 TxGraphChangeSet::first_seenandlast_evictedfields #782from_stringconstructors for hash types #784Transaction::wtxidmethod #773- Kyoto: average feerate and connect functionality #797
Changed
- Use
Amounttype inTxOutinstead of u64 #781 - Update to latest bdk_kyoto with API changes #772
- Add
lookaheadas optional argument to wallet methods
#770
Fixed
v1.2.0
This release brings in a new experimental compact block filters client!
The release uses the following Rust dependencies:
- bdk_wallet 1.2.0
- bdk_electrum 0.21.0
- bdk_esplora 0.20.1
- bdk_kyoto 0.8.0
- uniffi 0.29.1
- rust-bitcoin 0.32.5
Added
- New CBF client (Kyoto) [#591], [#716]
- Add optional `proxy` parameter to Esplora client constructor [#711]
- Add optional `socks5` parameter to Electrum client constructor [#711]
- Add `ElectrumClient::ping` method [#689]
- New API docs for a lot of types
- Add `Wallet::apply_unconfirmed_txs` method [#704]
- Add `UnconfirmedTx` type [#704]
Changed
- The `Amount::from_sat` constructor renamed its `sat` argument to `satoshi` [#708]
v1.1.0
This is our first 1.0 stable release!
Dependencies
This release uses the following Rust dependencies:
| Library | Version |
|---|---|
| bdk_wallet | 1.1.0 |
| bdk_electrum | 0.21.0 |
| bdk_esplora | 0.20.1 |
| rust-bitcoin | 0.32.5 |
| uniffi | 0.29.0 |
Changelog
Added
- Expose
ElectrumClient::block_headers_subscribemethod #664 - Expose
EsploraClient::get_block_hashmethod #665 - Expose
EsploraClient::get_tx_statusmethod #666 - Expose
EsploraClient::get_tx_infomethod #666 - Support for Testnet 4 #674
- Add
AddressDataandWitnessProgramtypes from rust bitcoin #671 - Expose
Address::to_address_datamethod #671
Changed
- More complete
LocalOutputtype #667
Automated Release Notes
- Update download-artifact action to v4 by @thunderbiscuit in #659
- Steps 28/29/30 of release process by @reez in #656
- Print satoshi amounts in all tests by @thunderbiscuit in #661
- Add get_block_hash to esplora by @reez in #665
- Add get_tx_status and get_tx_info to Esplora by @reez in #666
- Fix LiveTransactionTest JVM test name by @thunderbiscuit in #670
- Add more fields to
LocalOutputby @reez in #667 - feat: add to_address_data to address type by @reez in #671
- Upgrade to bdk_wallet 1.1.0 and bdk_electrum to 0.21.0 by @thunderbiscuit in #672
- Remove bitcoin ffi by @thunderbiscuit in #674
- Upgrade to uniffi 0.29.0 by @thunderbiscuit in #677
- Use macros where possible by @thunderbiscuit in #678
- feat: expose ElectrumClient::block_headers_subscribe method by @thunderbiscuit in #664
- General fixes by @thunderbiscuit in #682
- Prepare 1.1.0-rc.1 by @thunderbiscuit in #683
Full Changelog: v1.0.0-beta.7...v1.1.0
Release 1.1.0-rc.1
This is our first 1.0 release candidate! Please consider helping us test it and provide feedback if you have any.
Dependencies
This release uses the following Rust dependencies:
| Library | Version |
|---|---|
| bdk_wallet | 1.1.0 |
| bdk_electrum | 0.21.0 |
| bdk_esplora | 0.20.1 |
| rust-bitcoin | 0.32.5 |
| uniffi | 0.29.0 |
Changelog
Added
- Expose
ElectrumClient::block_headers_subscribemethod #664 - Expose
EsploraClient::get_block_hashmethod #665 - Expose
EsploraClient::get_tx_statusmethod #666 - Expose
EsploraClient::get_tx_infomethod #666 - Support for Testnet 4 #674
- Add
AddressDataandWitnessProgramtypes from rust bitcoin #671 - Expose
Address::to_address_datamethod #671
Changed
- More complete
LocalOutputtype #667
Automated Release Notes
- Update download-artifact action to v4 by @thunderbiscuit in #659
- Steps 28/29/30 of release process by @reez in #656
- Print satoshi amounts in all tests by @thunderbiscuit in #661
- Add get_block_hash to esplora by @reez in #665
- Add get_tx_status and get_tx_info to Esplora by @reez in #666
- Fix LiveTransactionTest JVM test name by @thunderbiscuit in #670
- Add more fields to
LocalOutputby @reez in #667 - feat: add to_address_data to address type by @reez in #671
- Upgrade to bdk_wallet 1.1.0 and bdk_electrum to 0.21.0 by @thunderbiscuit in #672
- Remove bitcoin ffi by @thunderbiscuit in #674
- Upgrade to uniffi 0.29.0 by @thunderbiscuit in #677
- Use macros where possible by @thunderbiscuit in #678
- feat: expose ElectrumClient::block_headers_subscribe method by @thunderbiscuit in #664
- General fixes by @thunderbiscuit in #682
- Prepare 1.1.0-rc.1 by @thunderbiscuit in #683
Full Changelog: v1.0.0-beta.7...v1.1.0-rc.1
Release 0.32.1
This is a patch release that bumps the Rust bdk library to 0.30.2.
See https://github.com/bitcoindevkit/bdk/releases/tag/v0.30.2 for details!
v1.0.0-beta.7
This release updates the bdk-ffi libraries to the final bdk_wallet 1.0.0 release, and related libraries (Esplora, Electrum, etc.), as well as adds new methods and types.
Added:
ElectrumClient::server_features#641ServerFeaturesResstruct #641ElectrumClient::estimate_fee#641EsploraClient::get_fee_estimates#648- New optional argument
sign_optionsonWallet::signandWallet::finalize_psbt#650
Changed:
- The
full_scanandsyncmethods on the Electrum and Esplora clients now take a renamedrequestargument #642 ElectrumClient::broadcastwas renamedElectrumClient::transaction_broadcastto mirror the Rust API #642
What's Changed
- chore: use macos-14 image in publish-jvm.yaml by @reez in #643
- Step 28/29/30 in Release by @reez in #645
- Add ADR document on errors by @thunderbiscuit in #513
- Add
ElectrumClient::server_featuresmethod by @thunderbiscuit in #641 - Small fixes to Electrum and Esplora APIs by @thunderbiscuit in #642
- deps: bump bdk to 1.0.0 by @reez in #647
- Update CI actions to Node.js 20 by @thunderbiscuit in #517
- Add get_fee_estimates to EsploraClient by @reez in #648
- Add sign_options argument to Wallet::sign and Wallet::finalize_psbt methods by @thunderbiscuit in #650
- Prepare language bindings libraries for beta 7 release by @reez in #653
- Add dokka setup for Kotlin API docs by @thunderbiscuit in #655
- Update libraries to official release versions by @reez in #654
Full Changelog: v1.0.0-beta.6...v1.0.0-beta.7
v1.0.0-beta.6
This release updates the bdk-ffi libraries to the latest bdk_wallet 1.0.0-beta.6 and related libraries (Esplora, Electrum, etc).
Added
DescriptorPublicKey::is_multipath#625DescriptorPublicKey::master_fingerprint#625Descriptor::is_multipath#625Descriptor:: to_single_descriptors#625EsploraClient::get_height#623Psbt::finalize#630TxBuilder::add_data#611TxBuilder::current_height#611TxBuilder::nlocktime#611TxBuilder::allow_dust#611TxBuilder::version#611TxBuilder::policy_path#629Wallet::cancel_tx#601Wallet::get_utxo#601Wallet::derivation_of_spk#601Wallet::descriptor_checksum#603Wallet:: finalize_psbt#604Wallet:: policies#629
Other
- Added documentation via docstrings
What's Changed
- Create android build script for windows by @ItoroD in #607
- Bump snapshot and dev versions of libraries by @reez in #609
- Fix jvm and android readmes by @thunderbiscuit in #608
- chore: ci test-swift from macos-12 to macos-13 by @reez in #618
- feat: add get_height to esplora by @reez in #623
- feat: transactions use transactions_sort_by by @reez in #617
- Add docstrings to
Walletby @reez in #615 - feat: expose Wallet::policies method by @thunderbiscuit in #629
- Add methods to
Descriptor+DescriptorPublicKeyby @reez in #625 - Add
finalizetoPsbtby @rustaceanrob in #630 - Add TxBuilder APIs by @thunderbiscuit in #611
- docs: wallet type docstrings by @reez in #616
- Build Kotlin API docs in CI by @thunderbiscuit in #632
- Use
macos-14image in CI by @thunderbiscuit in #634 - deps: bump bdk to beta_6 by @reez in #637
- chore: update libraries to official release versions by @reez in #640
- chore: use macos-14 image in publish-jvm.yaml by @reez in #644
Full Changelog: v1.0.0-beta.5...v1.0.0-beta.6
Release 1.0.0-beta.5
This release updates the bdk-ffi libraries to the latest bdk_wallet 1.0.0-beta.5 and related libraries (Esplora, Electrum, etc.).
Changelog
Added
EsploraClient
- get_tx #598
Wallet
- peek_address #599
- next_derivation_index #599
- next_unused_address #599
- mark_used #599
- reveal_addresses_to #599
- list_unused_addresses #599
- descriptor_checksum #603
- finalize_psbt #604
- cancel_tx #601
- get_utxo #601
- derivation_of_spk #601
TxBuilder
- set_exact_sequence #600
Changed
Wallet
- corrected argument name in reveal_next_address #599
Removed
TxBuilder
- enable_rbf #600
What's Changed
- chore: small fixes for swift packaging by @notmandatory in #588
- Bump Rust libraries to beta 4 by @thunderbiscuit in #589
- Small refactors by @thunderbiscuit in #590
- Post beta 2 cleanup by @thunderbiscuit in #595
- feat: esplora client get_tx by @reez in #598
- Use shell scripts to build bdk-jvm and bdk-android by @thunderbiscuit in #584
- Add missing Wallet APIs related to revealing and querying the wallet for addresses and indices by @thunderbiscuit in #599
- deps: bump bdk to beta_5 by @reez in #600
- Remove dependency on bdk_bitcoind_rpc by @thunderbiscuit in #602
- Add descriptor checksum to wallet by @rustaceanrob in #603
- Add
finalize_psbtmethod to wallet by @rustaceanrob in #604 - Add wallet apis by @thunderbiscuit in #601
Full Changelog: v1.0.0-beta.2...v1.0.0-beta.5
Release 1.0.0-beta.2
This release updates the bdk-ffi libraries to the latest bdk_wallet 1.0.0-beta.2 and related libraries (Esplora, Electrum, etc.), as well as uses the latest uniffi-rs library version 0.28.0. The releases now depend on bitcoin-ffi for the types that are exposed from the rust-bitcoin org. It also bumps the minimum supported Android API level to 24 (Android Nougat).
Changelog
Added
- SQLite persistence through bdk_sqlite #544
- The
Address,DescriptorSecretKey,DescriptorPublicKey,Mnemonic, andDescriptortypes now have thetoString()method implemented on them by default #551 - Address.from_script() #554
- New
FromScriptError#561 - New type
ChangeSet#561 - Wallet constructors do not take a persistence path anymore #561
Wallet.get_balance()method renamed tobalance()#561- Add
add_global_xpubs()method onTxBuilder#574 - Add
wallet.derivation_indexmethod on Wallet type #579 - Add
wallet.persistmethod on Wallet type #582 - Add
Connectiontype #582
Changed
AddressErroris replaced byAddressParseError#561- New variants in
CalculateFeeError#561 - New variants in
CreateTxError#561 - New variants in
ParseAmountError#561 - New variants in
SignerError#561 - New variants in
WalletCreationError#561 Wallet.calculate_fee()returns anAmount#561- Renamed
Transaction.txid()toTransaction.compute_txid()#561
Removed
- flat file persistence #544
What's Changed
- Post Alpha 11 Changes by @thunderbiscuit in #543
- Inspect spks on Requests by @reez in #537
- Upgrade uniffi dependency to 0.27.1 by @thunderbiscuit in #545
- Bring back PSBT methods by @thunderbiscuit in #532
- Update bdk_wallet to alpha 12 by @thunderbiscuit in #544
- Remove Ruby config in uniffi.toml by @thunderbiscuit in #549
- chore(swift): add new live tests to justfile and ci workflow by @reez in #553
- Callback to Foreign Trait by @reez in #555
- Use
Displaytrait to auto-populate the toString method anddescriptionfields by @thunderbiscuit in #551 - Add address from_script method by @reez in #554
- Add display trait to mnemonic by @reez in #558
- Add display trait to descriptor by @reez in #559
- chore(swift): update build-local-swift.sh to use xcodebuild tool by @notmandatory in #557
- Bump minimum supported Android version to 24 by @thunderbiscuit in #560
- Bump uniffi to 0.28.0 #562 by @ItoroD in #564
- Bump bdk_wallet to alpha 13 by @thunderbiscuit in #561
- Clean up import paths that use blockdata by @reez in #568
- Build python wheels using
manylinux_2_28_x86_64by @thunderbiscuit in #575 - deps: bump bdk to beta-2 by @rustaceanrob in #582
- Expose
add_global_xpubs()method on transaction builder by @thunderbiscuit in #574 - Expose derivation_index method on wallet type by @thunderbiscuit in #579
- Use external uniffi library for rust-bitcoin types by @thunderbiscuit in #546
- feat: extract_keys by @reez in #586
New Contributors
- @ItoroD made their first contribution in #564
- @rustaceanrob made their first contribution in #582
Full Changelog: v1.0.0-alpha.11...v1.0.0-beta.2
Release 1.0.0-alpha.11
Summary
This release brings the latest alpha 11 release of the Rust bdk_wallet library, as well as the new Electrum client, the new memory wallet, and a whole lot of new types and APIs across the library. Also of note are the much simpler-to-use full_scan and sync workflows for syncing wallets.
Changelog
Added:
Amounttype #533TxIntype #536Transaction.input()method #536Transaction.output()method #536Transaction.lock_time()method #536Electrumclient #535- Memory wallet #528
Full Changelog: v1.0.0-alpha.9...v1.0.0-alpha.11