Changelog information can also be found in each release's git tag (which can be viewed with git tag -ln100 "v*"
), as well as on the GitHub releases page. See DEVELOPMENT_CYCLE.md for more details.
The format is based on Keep a Changelog, and this project adheres to Semantic Versioning.
This release updates the bdk-ffi libraries to the latest bdk_wallet 1.0.0-beta.5 and related libraries (Esplora, Electrum, etc.).
EsploraClient
- get_tx
[bitcoindevkit#598]
Wallet
- peek_address
[bitcoindevkit#599]
- next_derivation_index
[bitcoindevkit#599]
- next_unused_address
[bitcoindevkit#599]
- mark_used
[bitcoindevkit#599]
- reveal_addresses_to
[bitcoindevkit#599]
- list_unused_addresses
[bitcoindevkit#599]
- descriptor_checksum
[bitcoindevkit#603]
- finalize_psbt
[bitcoindevkit#604]
- cancel_tx
[bitcoindevkit#601]
- get_utxo
[bitcoindevkit#601]
- derivation_of_spk
[bitcoindevkit#601]
TxBuilder
- set_exact_sequence
[bitcoindevkit#600]
Wallet
- corrected argument name in reveal_next_address
[bitcoindevkit#599]
TxBuilder
- enable_rbf
[bitcoindevkit#600]
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).
- SQLite persistence through bdk_sqlite bitcoindevkit#544
- The
Address
,DescriptorSecretKey
,DescriptorPublicKey
,Mnemonic
, andDescriptor
types now have thetoString()
method implemented on them by default bitcoindevkit#551 Address.from_script()
bitcoindevkit#554- New
FromScriptError
bitcoindevkit#561 - New type
ChangeSet
bitcoindevkit#561 - Wallet constructors do not take a persistence path anymore bitcoindevkit#561
Wallet.get_balance()
method renamed tobalance()
bitcoindevkit#561- Add
add_global_xpubs()
method onTxBuilder
bitcoindevkit#574 - Add
wallet.derivation_index
method on Wallet type bitcoindevkit#579 - Add
wallet.persist
method on Wallet type bitcoindevkit#582 - Add
Connection
type bitcoindevkit#582
AddressError
is replaced byAddressParseError
bitcoindevkit#561- New variants in
CalculateFeeError
bitcoindevkit#561 - New variants in
CreateTxError
bitcoindevkit#561 - New variants in
ParseAmountError
bitcoindevkit#561 - New variants in
SignerError
bitcoindevkit#561 - New variants in
WalletCreationError
bitcoindevkit#561 Wallet.calculate_fee()
returns anAmount
bitcoindevkit#561- Renamed
Transaction.txid()
toTransaction.compute_txid()
bitcoindevkit#561
- flat file persistence bitcoindevkit#544
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.
Added:
Amount
type #533TxIn
type #536Transaction.input()
method #536Transaction.output()
method #536Transaction.lock_time()
method #536Electrum
client #535- Memory wallet #528
This release brings back into the 1.0 API a number of APIs from the 0.31 release, and adds the new flat file persistence feature, as well as more fine-grain errors.
This release is the first alpha release of the 1.0 API for the bindings libraries. Here is what is now available:
- Create and recover wallets using descriptors, including the four descriptor templates
- Sync a wallet using a blocking Esplora client
- Query the wallet for balance and addresses
- Create and sign transactions using the transaction builder
- Broadcast transactions
This release updates the bindings libraries to bdk version 0.29.0, updating rust-bitcoin to version 0.30.2.
- APIs Changed:
- APIs Added:
- The
Address
type now has theis_valid_for_network()
method #443
- The
This release has a new API and a few internal optimizations and refactorings.
- APIs Added
- Add BIP-86 descriptor templates #388
This release has a number of new APIs, and adds support for Windows in bdk-jvm.
- Add support for Windows in bdk-jvm #336
- Add support for older version of Linux distros in bdk-jvm #345
- APIs added
- Update BDK to version 0.28.0 #341
- Drop support of pypy releases of Python libraries #351
- Drop support for Python 3.6 and 3.7 #351
- Drop support for very old Linux versions that do not support the manylinux_2_17_x86_64 platform tag #351
- APIs changed:
- Expose Address payload and network properties. #325
- Add SignOptions to Wallet.sign() params. #326
- address field on
AddressInfo
type is now of typeAddress
#333 - new PartiallySignedTransaction.json_serialize() function to get JSON serialized value of all PSBT fields. #334
- Add from_script constructor to
Address
type #337
- Update BDK to version 0.27.1 #312
- APIs changed
- APIs added
- Update BDK to version 0.26.0 #288
- APIs changed
- APIs added
- Added RpcConfig, BlockchainConfig::Rpc, and Auth #125
- Added Descriptor type in #260 with the following methods:
- Default constructor requires a descriptor in String format and a Network
- new_bip44 constructor returns a Descriptor with structure pkh(key/44'/{0,1}'/0'/{0,1}/*)
- new_bip44_public constructor returns a Descriptor with structure pkh(key/{0,1}/*)
- new_bip49 constructor returns a Descriptor with structure sh(wpkh(key/49'/{0,1}'/0'/{0,1}/*))
- new_bip49_public constructor returns a Descriptor with structure sh(wpkh(key/{0,1}/*))
- new_bip84 constructor returns a Descriptor with structure wpkh(key/84'/{0,1}'/0'/{0,1}/*)
- new_bip84_public constructor returns a Descriptor with structure wpkh(key/{0,1}/*)
- as_string returns the public version of the output descriptor
- as_string_private returns the private version of the output descriptor if available, otherwise return the public version
- Update BDK to version 0.25.0 #272
- APIs Added:
- from_string() constructors now available on DescriptorSecretKey and DescriptorPublicKey #247
- Update BDK to version 0.24.0 #221
- APIs changed
- The constructor on the DescriptorSecretKey type now takes a Mnemonic instead of a String.
- APIs added
- Added Mnemonic struct #219 with following methods:
- new(word_count: WordCount) generates and returns Mnemonic with random entropy
- from_string(mnemonic: String) converts string Mnemonic to Mnemonic type with error
- from_entropy(entropy: Vec) generates and returns Mnemonic with given entropy
- as_string() view Mnemonic as string
- Added Mnemonic struct #219 with following methods:
- APIs removed
- generate_mnemonic(word_count: WordCount)
- Update BDK to version 0.23.0 #204
- Update uniffi-rs to latest version 0.21.0 #216
- Breaking Changes
- APIs Added
- Breaking Changes
- Rename
get_network()
method onWallet
interface tonetwork()
#185 - Rename
get_transactions()
method onWallet
interface tolist_transactions()
#185 - Remove
generate_extended_key
, returned ExtendedKeyInfo #154 - Remove
restore_extended_key
, returned ExtendedKeyInfo #154 - Remove dictionary
ExtendedKeyInfo {mnenonic, xprv, fingerprint}
#154 - Remove interface
Transaction
#190 - Changed
Wallet
interfacelist_transaction()
to return array ofTransactionDetails
#190 - Update
bdk
dependency version to 0.22 #193
- Rename
- APIs Added #154
generate_mnemonic()
, returns string mnemonicinterface DescriptorSecretKey
new(Network, string_mnenoinc, password)
, constructs DescriptorSecretKeyderive(DerivationPath)
, derives and returns child DescriptorSecretKeyextend(DerivationPath)
, extends and returns DescriptorSecretKeyas_public()
, returns DescriptorSecretKey as DescriptorPublicKeyas_string()
, returns DescriptorSecretKey as String
interface DescriptorPublicKey
derive(DerivationPath)
derives and returns child DescriptorPublicKeyextend(DerivationPath)
extends and returns DescriptorPublicKeyas_string()
returns DescriptorPublicKey as String
- Add to
interface Blockchain
theget_height()
andget_block_hash()
methods #184 - Add to
interface TxBuilder
theset_recipients(recipient: Vec<AddressAmount>)
method [#186] - Add to
dictionary TransactionDetails
theconfirmation_time
field #190
- Interfaces Added #154
DescriptorSecretKey
DescriptorPublicKey
DerivationPath
- Update BDK to version 0.20.0 #169
- APIs Added
- Update BDK to version 0.19.0
- fixes sqlite-db issue causing wrong balance
- adds experimental taproot descriptor and PSBT support
- APIs Removed
- APIs Added
Wallet.get_address(AddressIndex)
, returnsAddressInfo
#137
- APIs Changed
Wallet.sign(PartiallySignedBitcoinTransaction)
now returns a bool, true if finalized #161
- Update BDK to version 0.18.0
- Add BumpFeeTxBuilder to bump the fee on an unconfirmed tx created by the Wallet
- Change TxBuilder.build() to TxBuilder.finish() to align with bdk function name
- Fix Wallet.broadcast function, now returns a tx id as a hex string
- Remove creating a new spending Transaction via the PartiallySignedBitcoinTransaction constructor
- Add TxBuilder for creating new spending PartiallySignedBitcoinTransaction
- Add TxBuilder .add_recipient, .fee_rate, and .build functions
- Add TxBuilder .drain_wallet and .drain_to functions
- Update generate cli tool to generate all binding languages and rename to bdk-ffi-bindgen
- Add dual license MIT and Apache 2.0
- Add sqlite database support
- Fix memory database configuration enum, remove junk field
- Remove hard coded sync progress value (was always returning 21.0)
- Move bdk-kotlin bindings and ios example to separate repos
- Add bin to generate Python bindings
- Add
PartiallySignedBitcoinTransaction::deserialize
function as named constructor to decode from a string per BIP 0174 - Add
PartiallySignedBitcoinTransaction::serialize
function to encode to a string per BIP 0174 - Remove
PartiallySignedBitcoinTransaction.details
struct field