Releases: Blockstream/gdk
Release 0.73.3
Release 0.73.3 - 24-10-25
Note: Please also see the 0.73.2, 0.73.1 and 0.73.0 release notes at https://github.com/Blockstream/gdk/releases/tag/release_0.73.2, https://github.com/Blockstream/gdk/releases/tag/release_0.73.1 and 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: Add support for
"expired_at"
to create re-deposit transactions for UTXOs that will expire in the future. - GA_get_balance/GA_get_unspent_outputs/GA_create_redeposit_transaction: Add support for
"expires_in"
to support filtering for UTXOs that expire in the given number of blocks from the current block height.
Changed
- Transactions: Improve error messages when too many or duplicate inputs are used.
Fixed
- Transactions: Fix weight calculation for Liquid when all inputs to a transaction are non-segwit (i.e. p2sh, p2pkh). This fix prevents the actual fee rate from becoming lower than the desired fee rate.
- Singlesig (Liquid): Prevent returned fee rates from falling below the networks real relay fee rate of 0.1 sat/vbyte.
Release 0.73.2
Release 0.73.2 - 24-10-08
Note: Please also see the 0.73.1 and 0.73.0 release notes at https://github.com/Blockstream/gdk/releases/tag/release_0.73.1 and https://github.com/Blockstream/gdk/releases/tag/release_0.73.0 if you are upgrading from a pre-0.73.0 release.
Added
- Python: Python wheels for Linux and Mac platforms are now published to PyPI. Other platforms will be supported in future releases. Please ensure you use the
requirements.txt
file provided with each release to ensure that the gdk wheel you install is the correct package.
Changed
- Liquid: Preliminary changes to support discounted Liquid fees. This will be available to end users in an upcoming release.
- Dependencies: Update rust dependencies.
Fixed
- Liquid: Fix errors when listing transactions or fetching balances from a subaccount which contains non-unblindable UTXOs.
- Multisig: Fix minor discrepancies between transaction weight and vsize due to rounding. Note this fix requires a server release which will be made shortly.
- Build (Windows): Remove duplicated "lib" directory from the library install path.
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.