Releases: Blockstream/gdk
Releases · Blockstream/gdk
Release 0.68.4
Release 0.68.4 - 23-10-26
Fixed
- Liquid: Singlesig: Fix cache re-load.
Release 0.68.3
Release 0.68.3 - 23-10-25
Fixed
- Singlesig: Fix incorrectly reported unconfirmed transactions.
Release 0.68.2
Release 0.68.2 - 23-10-16
Changed
- GA_create_subaccount: Multisig: emit subaccount "synced" notification.
Release 0.68.1
Release 0.68.1 - 23-10-10
Fixed
- tor: patch error message to prevent play store flagging a security issue incorrectly.
- Multisig: psbt: detect and mark change outputs when signing PSBT/PSET.
- Fix the mingw compilation/login crash issues.
Release 0.68.0
Release 0.68.0 - 23-09-27
Added
- Add new subaccount notifications. These signal the creation of a
subaccount or if it completed the first sync. Please see the notification
documentation for details. - GA_get_unspent_outputs_for_private_key: add support for Electrum
sessions. - GA_get_unspent_outputs_for_private_key: rename "compressed" to
"is_compressed". - GA_get_unspent_outputs_for_private_key: allow to sweep p2wpkh and
p2sh-p2wpkkh outputs. - GA_psbt_sign: Support signing BTC PSBTv0 and PSBTv2 in addition to Liquid PSETs.
- GA_psbt_sign: Support signing PSBT/PSET with hardware wallets.
- GA_psbt_sign: Support two-factor authentication for PSBT/PSET.
- GA_psbt_sign: Support spending limits for PSBTs.
- GA_create_transaction (singlesig): Support creating sweep transactions
and transactions with mixed sweep and wallet inputs. - GA_get_transaction_details (singlesig): Support fetching non-wallet
transactions to match the multisig behaviour. - GA_sign_transaction: Allow the caller to provide their own Anti-Exfil
host entropy. - GA_bcur_decode: Support parsing crypto-psbt, crypto-output and crypto-account.
Changed
- GA_psbt_get_details: The returned data now matches the existing format
from GA_create_transaction/GA_sign_transaction. - GA_get_credentials (Liquid): Now also returns the SLIP77 master blinding
key when available. - Documentation: Document the Anti-exfil protocol fields in HWW requests.
Fixed
- GA_sign_transaction: Always return the transaction txid in the "txhash" element.
Release 0.67.1
Release 0.67.1 - 2023-08-25
Removed
- GA_sign_message: removed "create_recoverable_sig" flag in the
hardware wallet interface. Please see the gdk HWW interface
documentation for details
Release 0.67.0
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
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.
- Creating a transaction with explicit wallet outputs (i.e. a redeposit,
- 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
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
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
andconfidential
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.