Releases: bitcoindevkit/bdk-ffi
v2.3.1
This is version 2.3.1 of the BDK language bindings. This release bumps the following Rust dependencies:
| Dependency | Version |
|---|---|
| bdk_kyoto | 0.15.4 |
What's Changed
- Backport Android build/publish workflow and publication plugin changes (#952)
- Update
bdk_kyototo0.15.4(panic fix) (#953) - Set iOS deployment target in
bdk-swiftxcframework build scripts (#958)
Full Changelog: v2.3.0...v2.3.1
v2.3.0
Release 2.3.0
This is version 2.3.0 of the BDK language bindings. This release uses the following Rust dependencies:
| Dependency | Version |
|---|---|
| bdk_wallet | 2.3.0 |
| bdk_electrum | 0.23.2 |
| bdk_esplora | 0.22.1 |
| bdk_kyoto | 0.15.3 |
| rust-bitcoin | 0.32.7 |
| uniffi | 0.30.0 |
Added
- Expose
Wallet::apply_update_eventswhich returns aWalletEventtype #908 - Expose
Psbt::outputwhich returns a list of psbtOutput#903 Othervariant added to CBFRecoveryPointto enable wallet birthdays #920- Implement
Displaytrait forFeeRate#859 - Expose
FeeRate::fee_vbandFeeRate::fee_wumethods #859 - Wallet API: expose
TxBuilder::only_witness_utxoandTxBuilder::add_foreign_utxo#928 - Esplora API: expose
get_block_by_hashwhich returns aBlock#936 - Esplora API: expose
get_tip_hash#930 - Esplora API: expose
get_header_by_hash#930 - Esplora API: expose
get_address_txs#930 - Esplora API: expose
get_tx_no_opt#930 - Esplora API: expose
get_txid_at_block_index#930 - Esplora API: expose
get_merkle_proofandget_output_status#942 - Electrum API: expose
fetch_tx#931 - Electrum API: expose
block_header#931 - Electrum API: expose
block_headers_pop#931 - Electrum API: expose
relay_feeandtransaction_get_raw#938 - DerivationPath: expose
child,extend, andto_u32_vec#935
Auto-Generated Changes Log
- Fix audit workflow by @thunderbiscuit in #898
- Post Release Fixes by @thunderbiscuit in #900
- fix(kyoto): Spawn dedicated thread for DNS by @rustaceanrob in #902
- deps: uniffi 0.30.0 by @reez in #883
- New stuff on the
FeeRatetype by @thunderbiscuit in #859 - Fixes to changelog by @thunderbiscuit in #907
- Add development script and commands by @thunderbiscuit in #901
- Bump
bdk_kyotopatch release by @rustaceanrob in #910 - feat: Add wallet event by @ItoroD in #908
- feat: Expose psbt output by @ItoroD in #903
- chore: add swift development script and commands by @reez in #914
- fix: Remove unwanted software in android test CI runner by @ItoroD in #918
- feat(kyoto): Add optional new wallet sync height by @rustaceanrob in #920
- fix: Stop removal of large files in android CI by @ItoroD in #922
- feat: expose
derived_addresshelper onDescriptorby @reez in #916 - Bump bdk_wallet dependency to 2.3.0 by @thunderbiscuit in #923
- add lib crate-type to bdk-ffi to be able to reuse it for other bindings like bdk-dart by @kumulynja in #924
- Esplora additions by @reez in #930
- Electrum additions by @reez in #931
- Fix module.modulemap build conflict with other packages by @maltsevoff in #925
- feat(electrum): Add relay_fee and transaction_get_raw by @ItoroD in #938
- chore: Bump ext test lib to 1.3.0 by @ItoroD in #937
- feat: Add method to get block by hash for esplora by @ItoroD in #936
- feat: Add derivation path child and extend methods by @ItoroD in #935
- feat: expose only_witness_utxo and add_foreign_utxo on TxBuilder by @kumulynja in #928
- feat(esplora): Add get_merkle_proof and get_output_status by @ItoroD in #942
New Contributors
- @kumulynja made their first contribution in #924
- @maltsevoff made their first contribution in #925
Full Changelog: v2.2.0...v2.3.0
Release 2.2.0
This release uses the following Rust dependencies:
| Dependency | Version |
|---|---|
| bdk_wallet | 2.2.0 |
| bdk_electrum | 0.23.2 |
| bdk_esplora | 0.22.1 |
| bdk_kyoto | 0.15.0 |
| rust-bitcoin | 0.32.7 |
| uniffi | 0.29.4 |
Added
- Implement
DisplayforScript#813 - Expose
Wallet::create_singleconstructor on Wallet type #825 - Set
lookaheadonWallet::load#829 - Expose
Wallet::apply_evicted_txsmethod #832 - Add
Wallet::create_from_two_path_descriptorconstructor #847 next_logandLogLevelare removed fromkyoto#849- Updates Android native libraries to use 16KB page sizes #865
- Expose
TxBuilder::exclude_unconfirmedmethod #870 - Expose
TxBuilder::exclude_below_confirmationsmethod #870 - Throw errors rather than panics on faulty Esplora sync/full_scan operations #863
- Expose
Wallet::insert_txout#884 - Expose
Wallet::nmark_used#882 - Add
Wallet::load_single#897 - Expose
DerivationPath::master,DerivationPath::is_master,DerivationPath::len,DerivationPath::is_empty#893
Auto-Generated Release Notes
- feat: Add multisig example by @ItoroD in #812
- docs: Add how to run example files to readme by @ItoroD in #817
- Add changelog for 2.0.0 release by @thunderbiscuit in #820
- Make a runtime environment for DNS for Kyoto by @rustaceanrob in #814
- Export
DisplayforScriptby @rustaceanrob in #813 - Remove Python by @thunderbiscuit in #815
- Remove nexus-publishing plugin by @thunderbiscuit in #822
- Add
Descriptor::desc_typemethod by @thunderbiscuit in #688 - Bump uniffi to 0.29.4 by @thunderbiscuit in #823
- Remove bdk-jvm libary by @thunderbiscuit in #824
- Set
lookaheadwithWallet::loadby @rustaceanrob in #829 - Apply evicted transactions by @rustaceanrob in #832
- Remove jvm weekly tests by @thunderbiscuit in #833
- chore: update to alpha snapshot by @reez in #830
- chore: bump bdk_wallet to 2.1.0 and clients to latest versions by @thunderbiscuit in #835
- Fix workflow to build api docs for android by @thunderbiscuit in #839
- Test Android library in CI by @thunderbiscuit in #826
- feat: Create trigger workflow trigger for bdk-jvm by @ItoroD in #840
- Fix bdk-jvm trigger by @thunderbiscuit in #841
- Clean up android instrumented tests by @thunderbiscuit in #845
- Expose
Wallet::create_from_two_path_descriptorconstructor by @thunderbiscuit in #847 - ci: remove kyoto live test sync by @reez in #848
- fix(kyoto): Remove the
Debuglogs from public API by @rustaceanrob in #849 - Migrate Network type to proc macros (and remove the last of the UDL)! by @thunderbiscuit in #850
- Update Rust compiler to 1.85.1 by @thunderbiscuit in #851
- Expose
Wallet::create_singlemethod by @thunderbiscuit in #825 - Remove the live weekly Swift tests by @reez in #854
- Remove uniffi
build_foreign_language_testcasestests by @thunderbiscuit in #858 - Small refactors of Cargo.toml file by @thunderbiscuit in #857
- CI Worflow Review + Cleanup by @thunderbiscuit in #856
- Increase page sizes on Android platforms to 16KB by @ReneeVandervelde in #865
- Move Rust tests into their own separate module by @thunderbiscuit in #861
- fix: catch esplora panics and return parsing error by @reez in #863
- feat: Add exclude_unconfirmed to tx_builder by @ItoroD in #870
- CI: Add trigger event for bdk-python library by @mg-twentyone in #868
- Bump
bdk_kyotoversion by @rustaceanrob in #864 - Bump bdk_wallet to 2.2.0 by @thunderbiscuit in #871
- Update release template by @thunderbiscuit in #873
- Update readme for 2.2.0 release by @thunderbiscuit in #874
- Reduce stack allocation in CBF by @rustaceanrob in #878
- feat: Add Input for PSBT by @ItoroD in #846
- feat: expose
Wallet::unmark_usedby @reez in #882 - feat: expose
insert_txoutonWalletby @reez in #884 - feat: expose
stagedandtake_stagedonWalletby @reez in #885 - Small cleanup of our visibility modifiers by @thunderbiscuit in #876
- refactor: descriptor errors instead of panicking on invalid fingerprints by @reez in #880
- chore: pr template checklist changelog by @reez in #887
- Update cargo.lock file by @thunderbiscuit in #891
- Bump
bdk_kyotopatch release by @rustaceanrob in #894 - fix: surface electrum error when server returns invalid genesis hash by @reez in #881
- Refactor DerivationPath to use tuple by @thunderbiscuit in #895
- Add DerivationPath helper methods by @ItoroD in #893
- chore: add upstream doc links to pr template by @reez in #896
- Enable loading of single-descriptor wallets by @thunderbiscuit in #897
New Contributors
- @ReneeVandervelde made their first contribution in #865
- @mg-twentyone made their first contribution in #868
Full Changelog: v2.0.0...v2.2.0
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