bdk-ffi/CHANGELOG.md
2023-02-21 15:42:50 -05:00

10 KiB

Changelog

All notable changes to this project prior to release 0.9.0 are documented in this file. Future changelog information can be found in each release's git tag and can be viewed with git tag -ln100 "v*". Changelog info is also documented 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.

v0.27.1

  • Update BDK to latest version 0.27.1 #312
  • APIs changed
    • PartiallySignedTransaction.extract_tx() returns a Transaction instead of the transaction bytes. #296
    • Blockchain.broadcast() takes a Transaction instead of a PartiallySignedTransaction. #296
  • APIs added
    • New Transaction structure that can be created from or serialized to consensus encoded bytes. #296
    • Add Wallet.get_internal_address() API #304
    • Add AddressIndex::Peek(index) and AddressIndex::Reset(index) APIs #305

v0.26.0

  • Update BDK to latest version 0.26.0 #288
  • APIs changed
    • The descriptor and change_descriptor arguments on the wallet constructor now take a Descriptor instead of a String. #260
    • TxBuilder.drain_to() argument is now Script instead of address String. #279
  • 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

v0.25.0

  • Update BDK to latest version 0.25.0 #272
  • APIs Added:
    • from_string() constructors now available on DescriptorSecretKey and DescriptorPublicKey #247

v0.11.0

  • Update BDK to latest 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
  • APIs removed
    • generate_mnemonic(word_count: WordCount)

v0.10.0

  • Update BDK to latest version 0.23.0 #204
  • Update uniffi-rs to latest version 0.21.0 #216
  • Breaking Changes
    • Changed TxBuilder.finish() to return new TxBuilderResult #209
    • TxBuilder.add_recipient() now takes a Script instead of an Address #192
    • AddressAmount is now ScriptAmount #192
  • APIs Added
    • Added TxBuilderResult with PSBT and TransactionDetails #209
    • Address and Script structs have been added #192
    • Add PartiallySignedBitcoinTransaction.extract_tx() function #192
    • Add secret_bytes() method on the DescriptorSecretKey #199
    • Add PartiallySignedBitcoinTransaction.combine() method #200

v0.9.0

  • Breaking Changes
    • Rename get_network() method on Wallet interface to network() #185
    • Rename get_transactions() method on Wallet interface to list_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 interface list_transaction() to return array of TransactionDetails #190
    • Update bdk dependency version to 0.22 #193
  • APIs Added #154
    • generate_mnemonic(), returns string mnemonic
    • interface DescriptorSecretKey
      • new(Network, string_mnenoinc, password), contructs DescriptorSecretKey
      • derive(DerivationPath), derives and returns child DescriptorSecretKey
      • extend(DerivationPath), extends and returns DescriptorSecretKey
      • as_public(), returns DescriptorSecretKey as DescriptorPublicKey
      • as_string(), returns DescriptorSecretKey as String
    • interface DescriptorPublicKey
      • derive(DerivationPath) derives and returns child DescriptorPublicKey
      • extend(DerivationPath) extends and returns DescriptorPublicKey
      • as_string() returns DescriptorPublicKey as String
    • Add to interface Blockchain the get_height() and get_block_hash() methods #184
    • Add to interface TxBuilder the set_recipients(recipient: Vec<AddressAmount>) method [#186]
    • Add to dictionary TransactionDetails the confirmation_time field #190
  • Interfaces Added #154
    • DescriptorSecretKey
    • DescriptorPublicKey
    • DerivationPath

v0.8.0

  • Update BDK to version 0.20.0 #169
  • APIs Added
    • TxBuilder.add_data(data: Vec<u8>) #163
    • Wallet.list_unspent() returns Vec<LocalUtxo> #158
    • Add coin control methods on TxBuilder #164

v0.7.0

  • Update BDK to version 0.19.0
    • fixes sqlite-db issue causing wrong balance
    • adds experimental taproot descriptor and PSBT support
  • APIs Removed
    • Wallet.get_new_address(), returned String, #137
    • Wallet.get_last_unused_address(), returned String #137
  • APIs Added
    • Wallet.get_address(AddressIndex), returns AddressInfo #137
  • APIs Changed
    • Wallet.sign(PartiallySignedBitcoinTransaction) now returns a bool, true if finalized #161

v0.6.0

  • 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

v0.5.0

  • 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

v0.4.0

  • Add dual license MIT and Apache 2.0
  • Add sqlite database support
  • Fix memory database configuration enum, remove junk field

v0.3.1

  • Remove hard coded sync progress value (was always returning 21.0)

v0.3.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

v0.2.0