Releases: Blockstream/gdk
Release 0.73.1
Release 0.73.1 - 24-09-27
Note: Please also see the 0.73.0 release notes at https://github.com/Blockstream/gdk/releases/tag/release_0.73.0 if you are upgrading from a pre-0.73.0 release.
Added
- GA_create_redeposit_transaction: Added a new call to create transactions that re-deposit wallet funds. For Liquid this call handles multiple-asset re-deposits and adds L-BTC fee inputs as required to cover re-deposit fees.
Changed
- Dependencies: Update libwally.
Release 0.73.0
Release 0.73.0 - 24-09-18
Added
- PSBT: Allow PSBT creation from singlesig descriptor watch-only sessions.
- GA_broadcast_transaction: Added support for setting a memo when broadcasting.
- GA_broadcast_transaction: Added support for broadcasting a PSBT/PSET directly. The PSBT is automatically finalized; callers no longer need to manually finalize and extract before sending a signed PSBT.
- GA_broadcast_transaction: Add support for simulating broadcast. This allows the caller to use the library to finalize/extract PSBTs for broadcast elsewhere.
Changed
- GA_broadcast_transaction: This call has changed to run via an auth handler, in order to allow extending its functionality.
- Network: Update esplora connection details to the new official URLs.
- Dependencies: Update ur-c, libwally, rust-miniscript.
Fixed
- GA_get_unspent_outputs (Multisig): Fix intermittently incorrect nlocktime/expiry details.
- GA_get_unspent_outputs (Multisig): Fix filtering for expired UTXOs to always work correctly.
- GA_get_transactions (Singlesig): Fix returned results when a tx is replaced and the replacements tx no longer involves the wallet.
- GA_get_transactions (Singlesig): Fix sync incorrectly returning an empty wallet when the first tx is received on the gap-limit address index.
- Documentation: Various formatting and consistency fixes.
Release 0.72.2
Release 0.72.2 - 24-07-31
Note: Please also see the 0.72.0 and 0.72.1 release notes at https://github.com/Blockstream/gdk/releases/tag/release_0.72.0 and release notes at https://github.com/Blockstream/gdk/releases/tag/release_0.72.1 if you are upgrading from a pre-0.72.0 release.
Fixed
- Multisig: Fix further issues logging in with old watch only sessions/hardware wallets.
- Build: Re-enable full static library builds.
Release 0.72.1
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
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"
astrue
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 callGA_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 callingGA_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 for2of3
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
tolibgreen_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
tocom.blockstream.green_gdk
. The JNI class name has been changed fromGDKJNI
toGDK
. Additionally, the native shared library providing the JNI implementation has been renamed fromlibgreenaddress
tolibgreen_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
togreen_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
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
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
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
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 ofGA_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
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.