The wallet is used in some steps to get fingerprint aliases.
The recovery panel previously handled a wallet update, but this
was omitted when making the recovery panel part of the spend
panel.
This bug already existed for the final step of a regular spend
where the signing information would show old aliases if these
were updated while defining the spend.
7085542066006d1d0debbe6fff0b3463ace834f1 Move lianalite to services::connect module (edouardparis)
f3ae84f91c2028d8e53da0d096867c8cf13a54c4 Move keys service to its own submodule (edouardparis)
Pull request description:
Move the current client implementation for https://keys.wizardsardine.com from `services` to `services::keys`.
Move the liana-connect client implementation to `services::connect`
ACKs for top commit:
jp1ac4:
ACK 7085542066006d1d0debbe6fff0b3463ace834f1.
Tree-SHA512: 853f8cde9de768f0b087125b7ae9a5aae3fec9a5d6085ccf0ae72e6b75c7833424ddf482bcc9eefeea05f35ef59b65727af8f6e0af1efcf0a95217f3d9b74b2c
61bc0ffbc85748437da0155ea25a5b741306aef2 tests: use data_directory (edouardparis)
6ccaa0573b42b8e1998f3a780e2f714af3ce9b6d Prepare datadir for multiple wallet support (edouardparis)
Pull request description:
A new field data_directory is introduced in lianad configuration, it resolves directly to the path of the wallet datadir without the per network reasoning. The previous data_dir field is kept for backward compatibility for already generated configuration file.
ACKs for top commit:
jp1ac4:
ACK 61bc0ffbc85748437da0155ea25a5b741306aef2.
Tree-SHA512: da2e1bcda9bbd4b11d29833694bc8f6f88506fd8f2d423c7eb8cab3a58f3e6a0b4330e89393f7cc70e5838d770a1571d8b5bdce1d83b068d1e958be3ee183021
This adds some explantory text about the recovery panel.
For consistency, the text stating that no recovery paths are
available will be shown in the same card as when recovery paths
are available, which will help differentiate between this text
and the explanatory text.
The previous wording could be misleading for recovery paths that
had already been available since many blocks ago.
For the user, it's enough to know that the path is available, i.e.
a spend on this recovery path can be created and broadcast.
A new field data_directory is introduced in lianad configuration, it
resolves directly to the path of the wallet datadir without the per network
reasoning. The previous data_dir field is kept for backward
compatibility for already generated configuration file.
19f5132ee8439ef3d4d27dd7254104d60c8540af Remove the link between gui config and lianad config (edouardparis)
Pull request description:
This commit is part of preparatory work to support multiple wallets.
This commit introduces two breaking change:
The fields daemon_config_path and daemon_rpc_path are removed. The GUI will deduce these values from their expected location in the root data directory.
Because this link is removed, the gui flag --conf is not useful anymore as it cannot then find the location of the root data directory.
ACKs for top commit:
jp1ac4:
ACK 19f5132ee8439ef3d4d27dd7254104d60c8540af.
Tree-SHA512: f883781e935e2253ebc2d4b71331c12efbaa142d45c418d17411c3de0b2288127832de8ff34eb24d07abfdb8e3045b48c3e5c3773857518c3a28df2a7c46263c
c7bbbd854ccfb8f2dccb6e7f63b6f4c982cd76c1 feat: enable coin control for recovery spends (Michael Mallan)
c2f964d5b365501ec5a608a8f8333ffeb1edc2b7 fix: load tip height directly rather than from cache (Michael Mallan)
0d9cf43bf9c623221be6ed9882ec7df6e710566d fix: avoid overflow when checking for previous step (Michael Mallan)
83c90b085a8fc3c6f738678a01b63f2811a33600 refactor: get first timelock from descriptor (Michael Mallan)
0514f743daae738c05bb124ce55f0ae01193df01 refactor: add function to filter coins for selection (Michael Mallan)
934d0c76f486016bdd2a7098d14694b9ba470442 fix: grey out next button in case of error (Michael Mallan)
71541c69bae7f8f33659337ad66e7ca161cbcef4 feat: support outpoints recovery parameter (Michael Mallan)
Pull request description:
This implements #1641.
The recovery process is treated as a regular spend, with an initial step for selecting the recovery path.
Further refactoring to `DefineSpend` could be applied in a follow-up to clearly distinguish between the three kinds of spends now handled:
1) regular primary path spend to external recipient(s)
2) self-send (using primary path)
3) recovery spend
ACKs for top commit:
edouardparis:
ACK c7bbbd854ccfb8f2dccb6e7f63b6f4c982cd76c1
Tree-SHA512: 2a949bed0e1d1eedc5179544597b36ff124badc31264672765ea77a8a3cd1257334190739ece5da25422d5a9009e6cf58f9f70ae1f0ebe4903aa455342142870
The regular spend panel has been updated to allow for recovery
spends.
A recovery spend will use the same panel type as a regular spend,
with an extra step added for selecting the recovery path.
This commit is part of preparatory work to support
multiple wallets.
This commit introduces two breaking change:
The fields daemon_config_path and daemon_rpc_path are removed.
The GUI will deduce these values from their expected
location in the root data directory.
Because this link is removed, the gui flag --conf is not useful
anymore as it cannot then find the location of the root data directory.
It should not be possible to click the Next button if there's
any error.
This could arise for a self-send if a very high feerate is chosen
and there are insufficient funds. In this case, the Next button
will now be greyed out until form values are edited and the error
has disappeared.
This changes the GUI daemon trait's create_recovery method to
support passing an outpoints parameter. For now, however, this
method is called with an empty outpoints slice, meaning that all
recoverable coins will be used.
a50fa04519160169ecae9fb56b047ab76303f712 export: remove stop button from the modal (pythcoiner)
968c36fcf6ec4cbad4fa13e9b05c759c1be05752 export: add a cross button to the modal (pythcoiner)
Pull request description:
This PR add a cross button to the export modal for consistency w/ other modals.

ACKs for top commit:
edouardparis:
utACK a50fa04519160169ecae9fb56b047ab76303f712
Tree-SHA512: afbff780a052d6b34275c62bbb7713e49300680752287a822be187d118560404eea252878120c53fbb1147a9b86f55e0f043f1802660e0bf3cbf2a6dc3062af3
417a949037b7c33895e34081d9acd23ddd4a10f8 fix: cache coins for remote backend when loading gui (Michael Mallan)
e03d4e17be937cf49f32a9f3d9d80351d7652a9a refactor: add function to get coins to cache (Michael Mallan)
Pull request description:
With this PR, coins will be cached when first loading a GUI that is using Liana Connect as the backend.
The cache refreshes less often for Liana Connect (every 2 mins), which means there can be a discrepancy between the coins loaded on a page and those in the cache, especially when first loading the GUI with no coins cached.
This can be seen when choosing to refresh a coin in the Coins panel. After selecting the coin and the refresh option, the Self-Send page is displayed with coins listed, but the coin that was previously selected in the Coins panel won't be selected here unless the cache has already refreshed. By caching coins at the start, it makes such a scenario less likely to occur when using Liana Connect.
ACKs for top commit:
edouardparis:
ACK 417a949037b7c33895e34081d9acd23ddd4a10f8
Tree-SHA512: 1c64fbc7100685575a4e7e20ac95065c0dbaa981f38953659985dcfacc628ebb2870c34e6a82ee8da781485858ce9d6c7414f62fcb61786e50037088e9903212
d637564a117947bd0493eba9bf61a1d84f893aa5 lianad: in update_spend_tx() work on the db_psbt instead of the imported one (pythcoiner)
Pull request description:
This PR partially fixes#1581.
Previously the imported PSBT we taken as base and signature added from the PSBT stored in DB, this create issue when the imported PSBT is supplied by a signing device that trim the PSBT (in QRCode context for instance).
This PR change the logic by taking the PSBT stored in DB as base and add signatures from the imported PSBT.
~~Note: the same logic change must be done on `liana-backend`~~
edit: review the logic on liana-backend, nothing seems to be change on this side, validated by a test by importing a psbt from krux trough Krux(QRCode) => SeedQReader => file => import
ACKs for top commit:
edouardparis:
ACK d637564a117947bd0493eba9bf61a1d84f893aa5
Tree-SHA512: 2a14f2387f3ab74e93f4e5b67ff48011bea945bfa897e21f14be40bf40b52460c921c4dcb92899ce46f1aed6096ec8bd97b423341c1660dd3cd081146080572c
2527bcea2eef753fb776e1618c7d4b9b79801a3c fix: timelock parameter is optional (Michael Mallan)
d4151d88d690d49b779402f61d6d506460fd8d87 rpc: allow to choose outpoints in `createrecovery` (Michael Mallan)
8cc723fb3bca3af661e7ace47ee8cb838d7d0db9 commands: allow to specify coins for recovery (Michael Mallan)
ce711ae10afa343c7228abe4be55cb615c3d971b commands: add test for `create_recovery` (Michael Mallan)
21c899f9ec2121e06189a1c6a63c4d7c9f213585 gui: fix docstring (Michael Mallan)
Pull request description:
This is to resolve#1637.
The `coins_outpoints` parameter for the recovery command works similarly to the corresponding parameter for a normal spend. An empty slice means that all recoverable coins will be chosen, i.e. the same as the current behaviour.
In order to maintain backwards compatibility, the new `outpoints` parameter in the `createrecovery` RPC command has been added as an optional parameter in the last position.
The GUI's use of this RPC command will be updated in a separate PR.
Note the first commit is an unrelated docstring fix and the second commit adds some preliminary tests for the `create_recovery` command.
ACKs for top commit:
edouardparis:
ACK 2527bcea2eef753fb776e1618c7d4b9b79801a3c
Tree-SHA512: 13e13ec2bccf974ad03424c6fba8ce31eb27af23809420f81ed13ebc114a3620aafa612416b2d2338e1444934f1529ebdcaf2391f750e6e915a28f4f49e53d7b
df4528dc767a39fb979579c7cafca1fd49fa3d49 feat: move recovery from settings to own menu (Michael Mallan)
Pull request description:
This is to resolve#1640.
The tooltip has been removed for now as the menu buttons don't currently support adding an icon with tooltip, but a tooltip can be re-added later if required (#1647).
ACKs for top commit:
edouardparis:
ACK df4528dc767a39fb979579c7cafca1fd49fa3d49
Tree-SHA512: ba4af1cbf61064a2b825fc400f37fdf1f2d621aee73607ed3c70c770867b0a4f4ebe17d0644373e03e4ec54fed6f5ea74beb12e1cda6fe7e720c8e726400fed4
2279b332d4c1fd06c761e841ec15adfc2b5787dc filter for confirmed coins when checking recovery paths (Michael Mallan)
Pull request description:
This is to fix#1636 and consequently fixes#1102. This PR therefore replaces #1144.
A wallet containing an unconfirmed coin of timelock 1 will no longer show any recovery paths as available.
The recovery transaction created by `createrecovery` only includes confirmed coins and so we should only consider these coins when checking for available recovery paths. An unconfirmed coin could not be broadcast in a recovery transaction as it would not yet satisfy the timelock constraint.
ACKs for top commit:
edouardparis:
utACK 2279b332d4c1fd06c761e841ec15adfc2b5787dc
Tree-SHA512: e1c1891e8d89a02b4eaacf64758c404b73384fe1c5183a6a21c2ad440ca8898cf68148981bc51d142875ac4458f943459227f0bdc7e04aa9cf2f35c22d33fb81
This will increase visibility of the recovery feature.
The tooltip has been removed for now as the menu buttons don't
currently support adding an icon with tooltip, but a tooltip
can be re-added later if required.