Skip to content

Release 0.72.0

Pre-release
Pre-release
Compare
Choose a tag to compare
@jgriffiths jgriffiths released this 26 Jul 09:06
· 81 commits to master since this release
release_0.72.0
1ed8a48

Release 0.72.0

Note: The release artifact files have changed. Linux x86_64, Linux arm64 and Android jni ibraries are provided in gdk.tar.gz. iPhone targets are unchanged. Python wheel version/platform coverage has been increased.

Added

  • Add GA_shutdown for explicit shutdown of library resources. When callers opt-in to calling this function by passing "with_shutdown" as true to GA_init, tor sessions can be created and destroyed repeatedly without error. Prior to this change, once a tor session was destroyed, no further tor connections could be made.
  • Singlesig: Add experimental opt-in support for saving encrypted wallet metadata to an external server. When enabled, metadata such as subaccount names and transaction notes is synced automatically between different wallet installs and when restoring a wallet from scratch. This feature will be enabled for non-development use in a future release.
  • Add GA_cache_control to enable caller control of cached data.This initial implementation supports returning user metadata using the BIP329 data format (see https://github.com/bitcoin/bips/blob/master/bip-0329.mediawiki for details).
  • GA_register_user: Added support for creating watch only users by passing in watch only credentials (i.e. "username" and "password"). This replaces the old call GA_set_watch_only and allows for returning more data when a watch only session is created.
  • Fees: Callers can now override the minimum network fee rate by setting the "min_fee_rate" element in network parameters when calling GA_connect. This can be used to create transactions that pay less than the minimum fee (for example, for broadcasting later as part of a package).
  • Singlesig: Add Signet support.

Changed

  • GA_sign_transaction: Spending expired CSV outputs now always uses the smaller and cheaper recovery path, which requires only a single signature and does not require two-factor authentication.
  • GA_get_subaccount/GA_get_subaccounts: The elements"recovery_chain_code" and "recovery_pub_key" are no longer returned. The "recovery_xpub" element for 2of3 subaccounts now always contains an xpub with the recovery pubkey and chain code.
  • GA_psbt_from_json: The returned PSBT now includes keypath elements for wallet inputs and outputs, correct witness and redeem scripts, and appropriate input utxos. This allows wallet input/output identification and signing of the resulting PSBT/PSET by external or offline signing devices.
  • C/C++: The name of the shared library has changed from from libgreenaddress to libgreen_gdk. Applications linking to the shared library should update their link commands accordingly.
  • Java: The namespace for the interface has changed from com.blockstream.libgreenaddress to com.blockstream.green_gdk. The JNI class name has been changed from GDKJNI to GDK. Additionally, the native shared library providing the JNI implementation has been renamed from libgreenaddress to libgreen_gdk_java. Java/Kotlin applications should adjust their references to the interface and their final linking commands accordingly.
  • Python: The Python wheel and package name has been changed from greenaddress to green_gdk. Python applications should update their import references and wheel installation commands accordingly.
  • Build: The scripts for building library dependencies have been simplified, and an example Dockerfile for Android builds using Debian Bookworm is now included.
  • Dependencies: Update tor to 0.4.8.9, update libwally to 1.3.0.

Fixed

  • Fixed signing of RBF transactions where one or more expired CSV inputs are present to use the optimized signing path, resulting in lower bumping fees.

Removed

  • GA_set_watch_only: This call has been removed. Users should use GA_register_user to create watch only sessions as documented above.