Skip to content

Releases: Blockstream/gdk

Release 0.67.0

08 Aug 09:57
release_0.67.0
Compare
Choose a tag to compare

Release 0.67.0 - 2023-08-08

Changed

  • GA_sign_message: rename "recoverable" to "create_recoverable_sig"
    in the hardware wallet interface.

Release 0.0.65

20 Jul 09:38
release_0.0.65
44bca59
Compare
Choose a tag to compare

Release 0.0.65 - 2023-07-03

Added

  • Documentation: The JSON examples for many calls are now automatically
    generated so they are always up to date. Additionally, separate examples
    are now available for multisig and singlesig, Bitcoin and Liquid.
  • Documentation: The "sign_tx" HWW request is now documented, which
    completes the documentation of all requests in this interface.
  • Documentation: Improve the GA_create_transaction documentation.
  • GA_validate: Now allows validating addresses for other networks.
  • Singlesig: GA_get_receive_address: add new flag "ignore_gap_limit" to
    return addresses beyond the GAP_LIMIT.
  • Singlesig: GA_connect: add new option "gap_limit".

Changed

  • Liquid: The hardware wallet capability "supports_external_blinding" now
    defaults to false. Callers should pass this as true for hardware devices
    that can support externally blinded outputs.
  • GA_get_transactions: The "transaction_size" element has been removed.
  • GA_get_transactions: The "is_fee" Liquid-only element has been removed. The
    fee output in Liquid can be determined instead by "scriptpubkey" being an
    empty string.
  • GA_get_receive_address/GA_get_previous_addresses: The "blinding_script"
    element has been removed, and "scriptpubkey" added. For generating SLIP177
    blinding keys, "scriptpubkey" should be used.
  • GA_sign_transaction: The "sign_with" element can now be specified as "all"
    to indicate that the user wishes to sign with all keys (i.e. include the
    Green backend if the caller is a multisig wallet).
  • GA_sign_transaction: The "signing_inputs" element has been renamed to
    "transaction_inputs" and corresponds exactly with "transaction_inputs"
    from GA_create_transaction".
  • HWW: The "sign_tx" HWW request now passes much less data for signing; in
    particular the entire GA_create_transaction JSON is no longer included.
  • GA_create_transaction/GA_create_swap_transaction: The JSON interface to
    these calls has changed:
    • Creating a transaction with explicit wallet outputs (i.e. a redeposit,
      consolidation or sweep transaction) now requires that the full metdata
      from GA_get_receive_address is passed. This ensures that wallet outputs
      will be correctly identified. If only the address is passed, the "satoshi"
      summary values returned will likely be incorrect (although the transaction
      itself is correct and can be submitted). This requirement will be removed
      in a future update.
    • The default UTXO selection for Liquid assets now uses a modified
      branch-and-bound selection strategy. Generally this means that fees
      will be lower and the chance of creating a changeless output is
      significantly higher.
    • The top-level "send_all" element has been removed. Callers can now control
      this behavior on a per-asset basis by setting "is_greedy":true in the
      "addressees" elements.
    • The top-level "addressees_read_only" and "amount_read_only" elements have
      been removed. Addressees with "is_greedy":true, and all addressees for
      RBF/CPFP transactions should be considered read only by the caller.
    • The top-level "is_redeposit" element has been removed. Callers should set
      "is_greedy":true on the wallet addressee instead.
    • The "addressees" elements passed in by the caller are no longer reordered
      when the call returns. Each addressee will now have extra data returned
      such as their scriptpubkey and any confidential address information.
    • The "change_index" element has been removed. The amount of any change for
      an asset is available in "change_amount" and the "satoshi" element of the
      "change_address" element, when the change amount is non-zero for the asset.
    • Spurious unused change addresses are no longer created if an asset does
      not require a change output.
    • GA_create/blind/sign/send_transaction: The "used_utxos" element has been
      renamed to "transaction_inputs" to match the element "transaction_outputs".
      This element now contains the complete set of inputs, notably the inputs
      inherited from the previous transaction when bumping the fee via RBF.
  • GA_get_unspent_outputs_for_private_key: The interface for this function has
    changed to use an auth handler and take its arguments as JSON.
    Additionally, the returned results are now returned in the same format as
    GA_get_unspent_outputs. Please see the function documentation for details.
  • Singlesig: GA_get_receive_address: now returns addressess up to the GAP_LIMIT.
    When the GAP_LIMIT is reached, the last unused address will be returned.
  • Java bindings: GDK class renamed GDKJNI, file name changed accordingly,
    from GDK.java to GDKJNI.java

Fixed

  • GA_create_transaction: The top-level "satoshi" summary now correctly gives
    the net effect of the transaction on the wallet. For Liquid, the summary no
    longer includes the fee in order to match the Bitcoin behaviour. Note also
    that redeposits correctly show the net effect as zero.
  • GA_create_transaction: The "satoshi" element of "change_address" change
    outputs now contains the correct amount of change for the asset.
  • GA_sign_transaction: The HWWI is no longer invoked for transactions which
    have no inputs for the user to sign.
  • Singlesig: GA_get_subaccount(s): set "bip44_discovered" correctly for
    subaccounts created but not discovered (including subaccount 0).

Release 0.0.64

05 Jun 13:43
release_0.0.64
8d391af
Compare
Choose a tag to compare

Release 0.0.64 - 23-06-05

Added

  • GA_get_unspent_outputs: Singlesig: Liquid: set is_confidential.

Changed

  • Singlesig: switch from polling to subscription for transactions data. This
    change is transparent for the caller, but it should improve performances and
    reduce the server load.

Release 0.0.63

31 May 12:18
release_0.0.63
804c480
Compare
Choose a tag to compare

Release 0.0.63 - 23-05-31

Added

  • Liquid: Transaction blinding is now performed using a new call
    GA_blind_transaction, which should be called after creating and before
    signing the tx.
  • Liquid: Hardware wallet capability JSON now contains a new field
    "supports_external_blinding". This should be set to true when registering
    a signer that can blind/sign transactions with blinded outputs from
    wallets other than the callers wallet (for example, a 2 step swap).

Changed

  • FFI (validate_call): Input JSON parameters are now moved internally and will be
    empty when an API call returns. This only affects C and C++ callers.
  • GA_validate: When validating addressees, the entered amount is also validated
    and converted into satoshis. Additionally, the scriptpubkey and blinding public
    key are extracted from the address and returned where applicable.
  • GA_sign_transaction/GA_send_transaction: The "script" element of the returned
    "transaction_outputs" elements has been renamed to "scriptpubkey" to reflect
    its contents more accurately.
  • Liquid/JSON: The keys blinded and confidential in returned JSON have been
    renamed for consistency and to avoid confusion. is_blinded now always refers
    to a transaction input or output which has been blinded, i.e. its value and
    asset have been replaced with blinded commitments. is_blinded at the
    top-level of transaction JSON indicates that the transaction has been fully
    blinded and is ready for signing. is_confidential now always refers to
    an address or addressee element having a confidential address.
  • Liquid: update hard-coded asset icons.

Release 0.0.62

02 May 21:14
release_0.0.62
772e2e8
Compare
Choose a tag to compare

Release 0.0.62 - 2023-04-23

Fixed

  • Watch Only: Fix old-style watch-only sessions fetching UTXOs and balances.

Release 0.0.61

18 Apr 21:08
release_0.0.61
97666d6
Compare
Choose a tag to compare

Fixed

  • Allow GA_decrypt_with_pin to decrypt pin_data created with GA_set_pin.

Release 0.0.60

18 Apr 09:49
release_0.0.60
9c776e1
Compare
Choose a tag to compare
Release 0.0.60 Pre-release
Pre-release

Fixed

  • Fix artifacts for OSX builds.

Release 0.0.59

17 Apr 08:47
release_0.0.59
9680c74
Compare
Choose a tag to compare

Added

  • GA_login_user: add support for Electrum watch only. It is now possible to
    login with a list of xpubs or descriptors.
  • GA_psbt_sign: add support for Liquid Electrum sessions.

Changed

  • GA_get_twofactor_config: Fiat pricing limits no longer return corresponding
    converted BTC amounts. When "is_fiat" is true, the caller should convert
    the amount themselves using GA_convert_amount if desired.
  • FFI (All calls): Input JSON parameters are now moved internally and will be
    empty when an API call returns. This only affects C and C++ callers.
  • Singlesig: GA_create_transaction has now aligned behaviour with multisig:
    previous workarounds to handle the differences between the session types
    can be removed.
  • Liquid: Singlesig: allow 32 bytes master blinding keys, consistently with
    multisig.
  • Build: replace meson with cmake and make sqlite3 an external dependency,
    check the updated README for the new build instructions.
  • Updated libsecp256k1 to version 0.3.1 to fix a "constant-timeness" issue
    with Clang >=14.

Fixed

  • GA_sign_transaction/GA_send_transaction: Fixed exception thrown when a fiat
    spending limit is set but cannot be used (for example, because the pricing
    source is unavailable). When this occurs, 2FA will be required.
  • GA_get_twofactor_config: Fixed exception thrown when a fiat pricing source
    is unavailable and a fiat spending limit is set.
  • Singlesig: fix handling of some invalid proxies.
  • Fix a bug in Android build.
  • Fix missing URL overrides in network parameters.

Removed

  • Removed Python wheel for Ubuntu 18.04, replaced with wheel for Ubuntu 20.04

Release 0.0.58.post2

27 Mar 13:26
release_0.0.58.post2
ee988f4
Compare
Choose a tag to compare
Release 0.0.58.post2 Pre-release
Pre-release

Changed

  • GA_get_twofactor_config: Fiat pricing limits no longer return corresponding
    converted BTC amounts. When "is_fiat" is true, the caller should convert
    the amount themselves using GA_convert_amount if desired.
  • Liquid: Singlesig: allow 32 bytes master blinding keys, consistently with
    multisig.

Fixed

  • GA_sign_transaction/GA_send_transaction: Fixed exception thrown when a fiat
    spending limit is set but cannot be used (for example, because the pricing
    source is unavailable). When this occurs, 2FA will be required.
  • GA_get_twofactor_config: Fixed exception thrown when a fiat pricing source
    is unavailable and a fiat spending limit is set.
  • Singlesig: fix handling of some invalid proxies.

Release 0.0.58.post1

21 Mar 17:12
release_0.0.58.post1
416f89c
Compare
Choose a tag to compare
Release 0.0.58.post1 Pre-release
Pre-release

Changed

  • GA_get_twofactor_config: Fiat pricing limits no longer return corresponding
    converted BTC amounts. When "is_fiat" is true, the caller should convert
    the amount themselves using GA_convert_amount if desired.
  • Liquid: Singlesig: allow 32 bytes master blinding keys, consistently with
    multisig.

Fixed

  • GA_get_twofactor_config: Fixed exception thrown when a fiat pricing source
    is unavailable and a fiat pricing limit is set.
  • Singlesig: fix handling of some invalid proxies.