diff --git a/CHANGELOG.md b/CHANGELOG.md index 73ae65f4..b7ebc0ac 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,5 +1,59 @@ # Liana daemon and GUI release notes +## 9.0 + +This Liana release introduces small bug fixes and a nice new export feature. +The whole code architecture was reworked to follow rust guidelines about workspace +and the reproducible build now makes usage of `nix` instead of `docker`. +The `liana-gui` linux binary is now built against an older `GLIBC 2.31` and +the release asset for apple devices is now an universal2 target that can be run by both +old x86_64 and new ARM apple devices. + +The new Blockstream Jade Plus device id was added and this hardware wallet should be supported. + +### Breaking changes + +Running Liana v9 on an existing installation will migrate its database. +Once migrated the database won't be compatible with previous versions of Liana. +This means you won't be able to open with Liana v8 (or below) any wallet opened or created with Liana v9. + +The new Minimum Supported Rust Version of the GUI software is now 1.80. This change was necessary to have +up to date system dependencies like `rfd`. + +### Features + +#### Liana daemon / library + +- The daemon feature was removed, we expect user to use their own process manager like systemd. +- Three new columns are added to the table transaction: the number of inputs, the number of outputs and if the + transaction is a coinbase transaction. +- A new column is added to the coins table: `is_from_self` and a new field `is_from_self` + is added to the coin entry of the `list_coins` command. This field is true + if the coin is from a transaction that every inputs or ancestors inputs belongs to the wallet. + +#### Liana GUI + +- New button on the transactions panel allows user to do an export of their transactions to an external file using the CSV format. +- Bitcoind and electrum information in the settings panel can now be copied to clipboard. +- The sync progress is now displayed with a percentage with 2 decimals +- On the send panel, the trailing zeros of the calculated max amount are not anymore trimmed. +- Coins that are change from transactions that user control (either confirmed or every inputs belongs to the wallet), + are now part of the balance. +- Unconfirmed coins can now be selected by the automatic selection if the coins is from transaction which inputs are controlled by the wallet. + +### Fixes + +#### Liana daemon / library + +- A spurious overestimation in fees was resolved. + +#### Liana GUI + +- The home panel was changed to load in an asynchronous and lighter way the payments list. +- When opening the receive panel, no new address is generated without the explicit demand of the user. +- A rescan request was failing with recent version of bitcoind because of the failure to match hardened derivation indexes. +- While updating a PSBT, taproot signatures were not correctly merged. + ## 8.0 This release introduces support for Taproot descriptors on Bitbox02 devices and diff --git a/Cargo.lock b/Cargo.lock index ceb755b4..8a0037ab 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -3041,7 +3041,7 @@ dependencies = [ [[package]] name = "liana" -version = "8.0.0" +version = "9.0.0" dependencies = [ "bdk_coin_select", "bip39", @@ -3064,7 +3064,7 @@ dependencies = [ [[package]] name = "liana-gui" -version = "8.0.0" +version = "9.0.0" dependencies = [ "async-hwi", "async-trait", @@ -3107,7 +3107,7 @@ dependencies = [ [[package]] name = "lianad" -version = "8.0.0" +version = "9.0.0" dependencies = [ "backtrace", "bdk_electrum", diff --git a/contrib/release/release.sh b/contrib/release/release.sh index fcf4f71d..0420287f 100755 --- a/contrib/release/release.sh +++ b/contrib/release/release.sh @@ -7,7 +7,7 @@ set -ex -VERSION="${VERSION:-"8.0"}" +VERSION="${VERSION:-"9.0"}" LIANA_PREFIX="liana-$VERSION" LINUX_DIR_NAME="$LIANA_PREFIX-x86_64-linux-gnu" LINUX_ARCHIVE="$LINUX_DIR_NAME.tar.gz" @@ -94,6 +94,6 @@ NIX_BUILD_DIR="$(nix path-info .#release)" mv "Liana-$VERSION-noncodesigned.zip" "$RELEASE_DIR/" ) -find "$RELEASE_DIR" -type f ! -name "shasums.txt" -exec sha256sum {} + | tee "$RELEASE_DIR/shasums.txt" +find "$RELEASE_DIR" -type f ! -name "$LIANA_PREFIX-shasums.txt" -exec sha256sum {} + | tee "$RELEASE_DIR/$LIANA_PREFIX-shasums.txt" set +ex diff --git a/contrib/release/sign.sh b/contrib/release/sign.sh index 4e876f77..3ef2e382 100755 --- a/contrib/release/sign.sh +++ b/contrib/release/sign.sh @@ -3,7 +3,8 @@ set -e # Exit immediately if a command exits with a non-zero status set -x # Print commands and their arguments as they are executed -VERSION="${VERSION:-"8.0"}" +VERSION="${VERSION:-"9.0"}" +LIANA_PREFIX="liana-$VERSION" # Define the release directory RELEASE_DIR="$PWD/release_assets" RELEASE_BUILD_DIR="$PWD/release_build" @@ -12,7 +13,7 @@ RELEASE_BUILD_DIR="$PWD/release_build" sign_with_gpg() { ( cd "$RELEASE_DIR" - gpg --detach-sign --armor "shasums.txt" + gpg --detach-sign --armor "$LIANA_PREFIX-shasums.txt" ) } diff --git a/doc/SIGNING_DEVICES.md b/doc/SIGNING_DEVICES.md index ab7f8254..858639c4 100644 --- a/doc/SIGNING_DEVICES.md +++ b/doc/SIGNING_DEVICES.md @@ -30,7 +30,7 @@ firmware](https://github.com/Coldcard/firmware?tab=readme-ov-file#long-lived-bra For use in Taproot descriptors you should use version 6.3.3 or higher. -## [Jade](https://github.com/Blockstream/Jade) +## [Jade and Jade Plus](https://github.com/Blockstream/Jade) Version 1.0.30 of the firmware is supported for use in P2WSH descriptors. diff --git a/doc/TRY.md b/doc/TRY.md index cf6f36be..dc2f43fc 100644 --- a/doc/TRY.md +++ b/doc/TRY.md @@ -98,6 +98,14 @@ Example for Linux (replace the signature name with the one corresponding to your gpg --keyserver hkps://keys.openpgp.org --refresh-keys 5B63F3B97699C7EEF3B040B19B7F629A53E77B83 ``` +if Liana version is superior or equal to v9: + +``` +gpg --keyserver hkps://keys.openpgp.org --receive 5B63F3B97699C7EEF3B040B19B7F629A53E77B83 +sha256sum --check liana-9.0-shasums.txt +gpg --verify liana-9.0-shasums.txt.asc +``` + If all is good, you can run Liana! diff --git a/liana-gui/Cargo.toml b/liana-gui/Cargo.toml index e279d15c..cf9e6c92 100644 --- a/liana-gui/Cargo.toml +++ b/liana-gui/Cargo.toml @@ -1,6 +1,6 @@ [package] name = "liana-gui" -version = "8.0.0" +version = "9.0.0" readme = "README.md" description = "Liana GUI" repository = "https://github.com/wizardsardine/liana" diff --git a/liana-gui/src/lib.rs b/liana-gui/src/lib.rs index c68ddbd6..6f816464 100644 --- a/liana-gui/src/lib.rs +++ b/liana-gui/src/lib.rs @@ -16,7 +16,7 @@ pub mod utils; use lianad::Version; pub const VERSION: Version = Version { - major: 8, + major: 9, minor: 0, patch: 0, }; diff --git a/liana/Cargo.toml b/liana/Cargo.toml index 2b54116a..e0529dea 100644 --- a/liana/Cargo.toml +++ b/liana/Cargo.toml @@ -1,6 +1,6 @@ [package] name = "liana" -version = "8.0.0" +version = "9.0.0" authors = ["Antoine Poinsot "] edition = "2018" repository = "https://github.com/wizardsardine/liana" diff --git a/lianad/Cargo.toml b/lianad/Cargo.toml index f051374d..4aefe8f1 100644 --- a/lianad/Cargo.toml +++ b/lianad/Cargo.toml @@ -1,6 +1,6 @@ [package] name = "lianad" -version = "8.0.0" +version = "9.0.0" authors = ["Antoine Poinsot "] edition = "2018" repository = "https://github.com/wizardsardine/liana" diff --git a/lianad/src/lib.rs b/lianad/src/lib.rs index 5c7e3f81..84ef4a56 100644 --- a/lianad/src/lib.rs +++ b/lianad/src/lib.rs @@ -78,7 +78,7 @@ impl fmt::Display for Version { } pub const VERSION: Version = Version { - major: 8, + major: 9, minor: 0, patch: 0, }; diff --git a/tests/test_rpc.py b/tests/test_rpc.py index 0fd53988..307fb691 100644 --- a/tests/test_rpc.py +++ b/tests/test_rpc.py @@ -24,7 +24,7 @@ from test_framework.utils import ( def test_getinfo(lianad): res = lianad.rpc.getinfo() assert "timestamp" in res.keys() - assert res["version"] == "8.0.0-dev" + assert res["version"] == "9.0.0-dev" assert res["network"] == "regtest" wait_for(lambda: lianad.rpc.getinfo()["block_height"] == 101) res = lianad.rpc.getinfo()