In a previous PR #1096, we made usage
of the widget state instead of the component state to
set the collapsed value when the widget is created.
But the widget is reset at each refresh of the interface,
instead the component state does not change.
This commit makes the distinction between the two by
having the widget state as an initial state and the component
one as a capture of the user clicks.
c0e7b63809fd60f4fc6f5e9cd5223c138e25cfde fix launcher wording (edouardparis)
977d8fa2dda00b45178b18ee3120082c0780b5ad Create datadir before install to store installer.log (edouardparis)
dee083c6d1b12eff07edef2f888bc1899c57bb72 Add blue banner for testing network (edouardparis)
be343aec37d6a8d6249285cf64759e23673e85e8 Add previous button to installer first page (edouardparis)
9ae33408cb0c0446e5ce729d46aa23dce3eb614d Move all network setup in launcher (edouardparis)
Pull request description:
This Pull requests introduce three changes:
1. Network can only be chosen with the launcher panel. A drop down showing what network user can install is shown to the user when clicking on install a new network.
2. A previous button is added to the first installer page, so user can be redirected to launcher and the network choices if he has chosen the wrong network. close#306
3. In order to make it clear for the user which network he is actually using or he is currently installing a blue banner is added on top of the window if the network is different than the bitcoin mainnet.




ACKs for top commit:
jp1ac4:
Tested ACK c0e7b63809.
Tree-SHA512: 9a0673ac785835da06fe313a861d76bdd14438cff56edb37b108b0564fd473e54028a63e209ad253b25aea318b3eb65a062cc190f76117df1baf35a251ce8356
3b604093ce13a6727b5201c59b9af014f28d329f gui: fix rbf feerate input form (jp1ac4)
Pull request description:
This fixes#860.
It makes it possible to edit a single-digit feerate, for example, by deleting the existing value and then entering a new one.
ACKs for top commit:
edouardparis:
ACK 3b604093ce13a6727b5201c59b9af014f28d329f
Tree-SHA512: 1e9add231590fc42b12cd3153892644cac75c4b4560236f8d892c152a06a63cda583229a78bc78365f050317574b6098c927f9c67e3cd4282e83a50cbd212758
d770e62e19687a4e6357ac24f899653d922d9293 Collapse advanced settings menu and grey-out `Next` button in installer if mainnet wallet already exists (pythcoiner)
Pull request description:
this PR fixes#1039, it add a warning in the installer if an wallet already exists on mainnet & grey-out `Next` button if the network is not valid.

ACKs for top commit:
edouardparis:
ACK d770e62e19687a4e6357ac24f899653d922d9293
Tree-SHA512: c756804fb89aa9cc8bc1009517f88745521580c8d3128ebfdd5b364280fd56dbdbc7490680e0e7208b6c0e1fb55279ce357f46ad2c312311c5cb6e941d27a214
d80dba048c2a020e6b0ce191d1470bdb0a82c148 doc: document the release process in a new document (Antoine Poinsot)
187857f106d639246f70278d4a55422f89014fd1 README: add a link to our Discord (Antoine Poinsot)
Pull request description:
This document a bunch of stuff i've been doing for every release in the past years. I've detailed it in a number of steps for clarity.
Fixes https://github.com/wizardsardine/liana/issues/803.
ACKs for top commit:
edouardparis:
ACK d80dba048c2a020e6b0ce191d1470bdb0a82c148
Tree-SHA512: c9f166c1ecfc595fcc3cd34d8603f6f2a67747625847e745fde5846dc5e687f04ac2e57886949f3f620ff1a55c40dc398cabc3013f058ddf70e00c73f3ec5922
6531cc293def967f63cb737b2ca5547b95bb3d9a fix local date time and bump chrono (edouardparis)
Pull request description:
close#1057
ACKs for top commit:
edouardparis:
Self-ACK 6531cc293def967f63cb737b2ca5547b95bb3d9a
Tree-SHA512: 5519cd01edcb3864f08a652b4f652d71db28b0f306f56bd11fe4bcb2ff1e56e3737da8eba16873cc4fc5e5c640cc482f69b307f5de6679ab5a8d23730c043165
99e4af84ffd64a0aad3dbb99af2d64a3cd38f490 bum async-hwi 0.0.18 (edouardparis)
Pull request description:
Include coldcard 0.12.2 that fixes the
nightly build on MacOS
ACKs for top commit:
edouardparis:
Self-ACK 99e4af84ffd64a0aad3dbb99af2d64a3cd38f490
Tree-SHA512: 5fb06e47f0f419681075df5968d7c43b50012d86f7d53f8cffb4d9584d74fd9b1936f30f8ebc9545808c79cbc5b349db17f2df5e18dc9b25dff8e3af5edafa55
570f0af35b84372d0e4684f9afd42ea7c900b43e installer: refresh hw list only if modal is open (edouardparis)
4e2015922d2a40ce934440a23f18fe8d1323ebcc doc: add Jade section to signing devices (edouardparis)
6b0c93c5c3fe2a5b6e7a3dfe49755c6edc704510 Add jade hardware wallet (edouardparis)
Pull request description:
ACKs for top commit:
edouardparis:
Self-ACK 570f0af35b84372d0e4684f9afd42ea7c900b43e
Tree-SHA512: 3f27c8bcc7afa74f751de245b44f53ce3e99b42175809566e2bf15832600d6466afd56684de08333a11079b7cb1daca3412e7224299d98f0c76cf2575b48494d
45c7b850a64318152e245b269ffef25d63033384 Remove legacy harware_wallets field from gui config (edouardparis)
Pull request description:
Ledger hmacs, wallet name and fingerprint labels where moved one year ago in the settings.json file.
Here the commit of the new settings module:
bf1e9e4b80
A second commit in v4 checked that settings.json is present otherwise it does the migration from the gui configuration file to the settings file:
3eeba08248
We remove the legacy field from the config field so the wallet module does not depend on the config module anymore to load hardware wallet information.
Tested on gui.toml config with legacy field hardware_wallets and it does not fail to launch.
ACKs for top commit:
jp1ac4:
ACK 45c7b850a6.
Tree-SHA512: a13c042c3842c732117ee8099d5a90d28462c5916408edb9fcee5518427acca5b737cd6e1ebe77a94e7d8dabf7a6bdd124ddf927ed850c58b5f980c6efe4f391
9cd36a76d09a1d563769f9c3dac81ec8ce1005eb gui: enable advanced text shaping (edouardparis)
Pull request description:
Set text shaping and font fallback to text widget.
It enable Emojis
based on #597
ACKs for top commit:
edouardparis:
Self-ACK 9cd36a76d09a1d563769f9c3dac81ec8ce1005eb
Tree-SHA512: 1ed1621135c5bfbd624a9cf4bd96385db42d021e8432334429b2ec376d769715920d90d76cc000f43625367bdac85444b131be249197e4fab4d5629c7a0138e1
52e32b6a69c751f68e461f4e858170e4ade6619d Update iced patch branch in guix build (edouardparis)
acea67bc35738843144204539833b5767f6c936e Remove transaparency from PickList for tiny-skia (edouardparis)
7801d8cb1f11511cd8e11a556add9e8c62656780 Change descriptor view in installer behind scrollable (edouardparis)
c39d544566a76b126fdc4613197d5b937f72fad3 Use wgpu with tiny-skia fallback (edouardparis)
4920291d04302a5d73196b1d8eeb6ce05d7753a2 fix ui button and badge width (edouardparis)
de371116371c61c5cd2e3bd0d44cdc849f14c5cf Change text size (edouardparis)
a24d9416f62712fc5a5c6fe5d8fa619d06f4006a gui: bump msrv 1.70 (edouardparis)
fdcc30236721f2cf7bdffe788127a35ca376d453 gui: iced-0.12 (edouardparis)
64a626d7e871fd82db27b8ddf773231fe1361755 gui: bump iced 0.10 (edouard)
Pull request description:
This PR does the migration from iced 0.9 to iced 0.12.
This new iced version has impact on the fonts size. I reverted the size according to the original UX figma file.
The new backend renderer is the `wgpu` with `tiny-skia` as a fallback. `wgpu` is the first class citizen of the iced renderers, it supports everything. The `tiny-skia` has some layout problems and does not support some features that is the reason why this PR introduces tiny change in the theme or long string display (ad69711c4a, 88fd0f18e2).
In order to keep the MSRV as low as possible, a custom patch of the crates `iced_winit`,`iced_style`, `iced_futures` is added to the Cargo.toml
ACKs for top commit:
darosior:
ACK 52e32b6a69c751f68e461f4e858170e4ade6619d -- it's been tested a bunch, in particular by Kevin.
Tree-SHA512: 6afda45c227f0dd864c59aee100895af3f0d511c5a425f4d032c5891f900f2e438de778adaa82c5213dba768e608bf7610b6c78d4cb10a2d7ae59f5b132938f4
View is broken because of the long line of text of the
descriptor, current fix is to put it behind a scrollable
until we find a better way to display it to the user.
Ledger hmacs, wallet name and fingerprint labels where
moved one year ago in the settings.json file.
Here the commit of the new settings module:
bf1e9e4b80
A second commit in v4 checked that settings.json is present
otherwise it does the migration from the gui configuration file
to the settings file:
3eeba08248
We remove the legacy field from the config field so the wallet module
does not depend on the config module anymore to load hardware wallet
information.
89912105734175e0f2a5e53eb6165b12055cc2c1 Add macos arm64 binary to bitcoind download (edouardparis)
c21004badb10d00990da088d4df659b25263a23f bump ahash dependency to fix macos build (edouardparis)
Pull request description:
- bump ahash dependency to fix macos build
- ci requires now macos aarch64 for the liana-gui tests on macos, sha256sum is added for bitcoind-26.1-arm64-apple-darwin.tar.gz (https://bitcoincore.org/bin/bitcoin-core-26.1/)
ACKs for top commit:
darosior:
ACK 89912105734175e0f2a5e53eb6165b12055cc2c1
Tree-SHA512: 082b2896abcb600e5e6ab4ec24cd56b4994c843e9a478a7e5e1515dbaa357cfa1714270a1a4b135d17caa9a0ed3bebad714df0f28e3c6a341503238ce6156a7c
860a1ea07467788473f0a83edc4d7a02d8ad3c1a guix: use Rust 1.70 for release builds (Antoine Poinsot)
Pull request description:
This is prep work for #597, which bumps the MSRV of the GUI to 1.70.
We are being pulled over in two different directions when it comes to our reproducible builds. On the one hand we need to target reasonably old glibc versions in order to be compatible with older systems. On the other hand the immaturity of the Rust ecosystem makes us require bleeding edge versions of the compiler. With Guix to get the newer versions of the compiler we need to also bump the glibc version.
This was not a sustainable situation. I was planning for a long time to cleanup our reproducible builds. To create a proper Guix package for both the daemon and the GUI using the build system they provide. I had envisioned this way i could rewrite the inputs of the Guix package to use an older glibc, while being able to bump the Guix time-machine. It would even have allowed us to perform Windows builds inside Guix! And who knows i could even have attempted to perform Apple ones too.
Unfortunately it turned out to be more complicated than that. I couldn't manage to get my package to compile using an older glibc. Some details about some of my failed attempts can be found there: https://lists.gnu.org/archive/html/help-guix/2024-04/msg00056.html.
Instead of wasting more time on this, backport the newer Rust declarations from up-to-date Guix to Guix-of-our-time-machine.
ACKs for top commit:
edouardparis:
utACK 860a1ea07467788473f0a83edc4d7a02d8ad3c1a
Tree-SHA512: ee0a753376b380c5b39d9cefd6ac49c95d818b3233183f6832df256b93fe5627bf5d9193de1340ae12c0e8e8ec8e5c869674e975d5066723d9d38e66a509cbef
9aa0b990a36716954ff30149982d1b5928cc3e57 Add nixGL to gui/shell.nix (edouardparis)
Pull request description:
Nixos 23.11 comes with libc 2.38, this version of libc may not be compatible with some drivers. For now the hack found is to use a community wrapper that detects the requirements and do the link (https://github.com/guibou/nixGL). usage:
nixGL cargo run
ACKs for top commit:
edouardparis:
Self-ACK 9aa0b990a36716954ff30149982d1b5928cc3e57
Tree-SHA512: 08e6c00412038129d482d61eaddaed6e1c237feba373baa16c7e408c6f95cff0ec510b890bd08c37d275fa1b37dc580388fbdd8a01fbbab25afb0a9be8eb2912
Nixos 23.11 comes with libc 2.38, this version of libc may not be compatible
with some drivers. For now the hack found is to user a community wrapper that
detects the requirements and do the link (https://github.com/guibou/nixGL).
usage:
nixGL cargo run
70058e6af056721abff7a5bbdc6e97427b32dc18 bump rust toolchain to 1.76.0 for gui + fix new clippy warnings introduced by 1.76.0 (pythcoiner)
Pull request description:
bump rust toolchain to 1.76.0 for gui + fix new clippy warnings introduced by 1.76.0
ACKs for top commit:
edouardparis:
ACK 70058e6af056721abff7a5bbdc6e97427b32dc18
Tree-SHA512: f640606496e5b5de51618dad115de06023502e2b6980413a4e67f1041147a9347188a3042f1f382a3cc72c3a1e2edecd563012ab4dc10c5a4b616b40631dd26f
07b47e46db2a8c00d4e7a1ae6004113f87ed758a gui: use tokio::sync::Mutex for embedded daemon (edouardparis)
7b70c8434a978a9235099be2640e292a5debe329 Use async-trait for daemon (edouardparis)
Pull request description:
This a preparatory work in order to have a lianalite backend connection to satisfy the Daemon trait.
This PR also allows us to use tokio::sync::Mutex for the embedded daemon which goes great with the iced tokio runtime.
ACKs for top commit:
edouardparis:
Self-ACK 07b47e46db2a8c00d4e7a1ae6004113f87ed758a
Tree-SHA512: 2d48b07735dc03f127bdddecdd0a4d4f436b2b95d9fccdfcb113ef00c5b8998361606370fdadce7fdee94240b81697704925538cd69904b5a7cbaf3fd03b05cc
1c99376860458f350c3289cd995716aca96c4d87 gui(app): cache unconfirmed & confirmed coins only (jp1ac4)
daf9f85cfd3ef77698773f9c86763f4bb5122b6a gui(spend): filter for unconfirmed & confirmed coins (jp1ac4)
982220da030d7f4f001374b54345c4703891a3ba gui(home): filter for unconfirmed & confirmed coins (jp1ac4)
85b053ff90d7eb679cd2c1e72a59249b3796400f gui(recovery): filter for unconfirmed & confirmed coins (jp1ac4)
c9fcfae9d46b81a56b731d95a51fa1e3ea812287 gui(recovery): filter coins by psbt outpoints (jp1ac4)
4509bd6baf380c59363a2042fad28796bd0b09ab gui(coins): filter for confirmed & unconfirmed (jp1ac4)
685f83bd0eef46d1448cdc2caf4eef2a7fa09b71 gui(transactions): remove unused list_coins (jp1ac4)
21f87047ac013c22bd405de584d655ad9cdb76f8 gui(transactions): filter coins by tx outpoints (jp1ac4)
ddd1e84700642abbe43d2086de66bcf6d43741fa gui(psbt): get conflicting txs from filtered coins (jp1ac4)
4641d9eb7bd5fd2f8b8ed053601ff296965ea552 gui(daemon): filter coins using spend txs prev outpoints (jp1ac4)
aa578ba1fd846e28ed4566be9069e35a5c22dc43 gui(daemon): filter coins for pending txs (jp1ac4)
46121590c36947d8eac2be4e9989e0b4e8615235 gui(daemon): filter outpoints from txs inputs & outputs (jp1ac4)
f3fdb968275db3987d7afaee3b1ba84e0020f8a9 gui(daemon): extract common function for historytxs (jp1ac4)
6c7ca2ccaebd8acd6629c7faf8e418cb50128677 gui(daemon): add optional filter to `list_coins` (jp1ac4)
Pull request description:
This is to resolve https://github.com/wizardsardine/liana/issues/677.
As well as adding the filters to the daemon interface, I've applied filters in separate commits to different sections of the GUI.
This PR builds on changes from https://github.com/wizardsardine/liana/pull/958 and https://github.com/wizardsardine/liana/pull/965. The latter is required when filtering for pending transactions so that a coin whose spending txid changes (e.g. due to RBF) remains as spending.
ACKs for top commit:
edouardparis:
ACK 1c99376860458f350c3289cd995716aca96c4d87
Tree-SHA512: c8b9c68a8344df1dbb04b22e315234dec7ae0c18bfc697f88296d3a4b5e7276a48005db6caf1a0b89a23e174f72118ad10945118be8cd96fbee20ba79c12d721