Skip to content

Releases: Blockstream/gdk

Release 0.72.1

29 Jul 11:03
release_0.72.1
a066f64
Compare
Choose a tag to compare

Release 0.72.1 - 24-07-29

Note: Please also see the 0.72.0 release notes at https://github.com/Blockstream/gdk/releases/tag/release_0.72.0 if you are upgrading from a pre-0.72.0 release.

Added

  • Network: Add missing Google intermediate certificate pins, to mitigate potential connection failures should the certificate chain change again.

Changed

  • Documentation: Minor documentation improvements.
  • Client blob: Prevent external blobserver use on mainnet while this feature is finalized.

Fixed

  • Multisig: Fix login for wallets with very old 2of3 accounts.
  • Login: Fix login failures for wallets used with a mixture of hardware and software signers.
  • GA_create_swap_transaction: Fix missing "error" element, improve errors.
  • LiquiDEX: Fix swap creation with p2wpkh maker inputs.

Release 0.72.0

26 Jul 09:06
release_0.72.0
1ed8a48
Compare
Choose a tag to compare
Release 0.72.0 Pre-release
Pre-release

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.

Release 0.71.3

11 Jun 05:38
18fcde0
Compare
Choose a tag to compare

Note: This release contains a required fix for connecting to the Green Liquid servers. All gdk users must upgrade in order to connect.

Release 0.71.3 - 24-06-11

Fixed

  • Network: Update certificates for SSL certificate pinning validation.

Release 0.71.2

03 Jun 11:37
release_0.71.2
Compare
Choose a tag to compare

Release 0.71.2 - 24-06-01

Fixed

  • GA_get_unspent_outputs(Liquid): Fix results when (1) a filter criteria such
    as "expired_at" is given, (2) this causes all utxos for an asset id to
    be removed and (3) more than one asset id was present in the results initially.

Release 0.71.1

23 May 08:12
release_0.71.1
Compare
Choose a tag to compare

Release 0.71.1 - 24-05-22

Added

  • Docs: Document how to disable RBF when creating transactions.
  • GA_bcur_decode: add decoding progress in multi-qr process.

Changed

  • GA_validate: do not require session to be logged in.
  • GA_bcur_decode: throw an error if qr code not processed correctly.

Fixed

  • GA_get_receive_address: fix an off-by-one error for singlesig.

Release 0.71.0

10 Apr 16:26
release_0.71.0
Compare
Choose a tag to compare

Release 0.71.0 - 24-04-10

Changed

  • GA_create_transaction/GA_convert_amount: In addition to id_invalid_amount returned
    when an amount is malformed, the errors id_amount_above_maximum_allowed, id_amount_below_minimum_allowed,
    and id_amount_below_the_dust_threshold are now returned if the amount is a valid number
    but outside of the acceptable range of values for the amount in question.
  • GA_get_subaccounts: Now returns additional metadata such as the subaccount
    descriptors, matching the output of GA_get_subaccount.

Fixed

  • Multisig: Regularly update the minimum fee rate and prevent fee estimates
    from falling below it. This prevents unexpected submission errors when the
    mempool is full and the minimum required fee increases/decreases.
  • Multisig: Changes to subaccount metadata ("name" and "is_hidden")
    are now reflected in logged in sessions when changed by another session.
  • Build fixes and security updates

Removed

  • GA_rename_subaccount: Has been removed. Please use GA_update_subaccount.

Release 0.70.3

07 Mar 15:11
release_0.70.3
Compare
Choose a tag to compare

Release 0.70.3 - 24-03-06

Changed

  • GA_change_settings: Allow watch-only sessions to override the "unit",
    "sound", "altimeout" and "required_num_blocks" settings locally.

Release 0.70.2

04 Mar 11:11
release_0.70.2
Compare
Choose a tag to compare

Release 0.70.2 - 24-03-04

Fixed

  • Singlesig: watch-only: make GA_get_assets and GA_refresh_assets work
  • Multisig: fix GA_login_user for sessions under 2FA reset
  • Multisig: fix for subscribe calls hanging indefinitely in some cases
    under macos.

Release 0.70.1

28 Feb 08:46
release_0.70.1
Compare
Choose a tag to compare

Release 0.70.1 - 24-02-28

Added

  • GA_login_user: add support for Liquid Electrum watch only. It is now
    possible to login with a list of CT descriptors.
  • GA_sign_transaction/GA_send_transaction: Allow Electrum watch-only sessions
    to sign and send sweep transactions using the same flow as full sessions.
  • GA_get_subaccount: add core_descriptors for Liquid Electrum sessions.
  • Document the settings and pricing source JSON formats.

Changed

  • GA_change_settings: Allow watch-only sessions to override the pricing
    source to use. This overrides only the local settings; it does not
    affect any associated full session or any other watch-only sessions.

Fixed

  • Shared libraries for Android platforms now correctly export C API symbols
    in addition to the Java JNI symbols (this was broken in release 0.69.0).

Release 0.70.0

01 Feb 12:27
release_0.70.0
Compare
Choose a tag to compare

Release 0.70.0 - 24-02-01

Added

  • GA_sign_transaction: Added opt-in support for spending expired CSV outputs
    using their recovery path (i.e. using only the users signature). This
    results in lower fees and also does not require 2FA for spending.
  • GA_sign_transaction/GA_send_transaction: Allow signing/sending transactions
    without requiring 2FA when eligible. Expired inputs, non-wallet inputs,
    and sweep inputs for example will no longer trigger 2FA checks.
  • GA_sign_transaction/GA_send_transaction: Allow re-signing/re-sending
    transactions that are already fully or partially signed. 2FA checks are
    not required for re-signing/re-sending already signed inputs.
  • GA_sign_transaction/GA_send_transaction: Allow watch-only sessions to sign
    and send sweep transactions using the same flow as full sessions.
  • GA_send_transaction: Allow sending transactions that are not wallet-related
    or contain inputs that are not wallet-related. This allows callers to
    always use GA_send_transaction rather than introspecting transactions to
    determine whether to use GA_broadcast_transaction.
  • Added a new, experimental API GA_psbt_from_json to create a PSBT/PSET from
    the result of GA_create_transaction/GA_blind_transaction.
  • GA_psbt_get_details: Various fixes to returned data to more accurately
    reflect the transaction details. In particular, the returned fee and fee
    rate are now correct.
  • BC-UR: Added support for mapping CBOR to JSON for a subset of CBOR. This
    allows decoding Jade-RPC calls into JSON, for example.

Changed

  • GA_create_transaction: A new error "Insufficient funds for fees" is
    returned when there are sufficient inputs to pay the sent amount(s), but
    not enough to pay for fees.
  • The deprecated "script_type" element has been removed from returned
    address, UTXO and transaction list JSON.
  • GA_psbt_sign/GA_psbt_get_details: The required "utxos" element for signing
    can now be given in the format returned by GA_get_unspent_outputs directly,
    in addition to the existing support for passing it as a flat JSON array.
  • GA_login_user: Return a "warnings" array containing any login warnings.
  • Build: Updated various third-party dependencies.
  • Android: Updated Android NDK to r26b LTS, and API level to 23.

Fixed

  • Fees: Improve fee estimation accuracy, particularly for singlesig. Fees
    will be lower for all transaction types in almost all cases.
  • Liquid: Fix "calculated_fee_rate" for Liquid transactions.
  • Multisig: Fixed the fee and fee rate becoming incorrect after signing
    only the users inputs.
  • Build: Various build process improvements and fixes.