2351 Commits

Author SHA1 Message Date
edouardparis
19f5132ee8 Remove the link between gui config and lianad config
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.
2025-04-23 11:14:55 +02:00
edouardparis
0ff3479d56
Merge #1662: Show fee next to feerate input when creating a new spend
b426d31914bf906d65307bdeb6851430d59b399d Adapt redraft to display fees (thomas)

Pull request description:

  ![Capture d’écran du 2025-04-21 07-41-39](https://github.com/user-attachments/assets/d9de2c77-a458-4116-bce2-e3ca530372cf)

  ![Capture d’écran du 2025-04-21 07-42-33](https://github.com/user-attachments/assets/a9648183-74f2-4ec6-8a8f-8667baa70fea)

  Closes #1653

ACKs for top commit:
  edouardparis:
    ACK b426d31914bf906d65307bdeb6851430d59b399d

Tree-SHA512: 23d3b15d0b3ec560a0a6992c2efe2557b3f5a142c690878a0c67893182560431e14ee3f4e5f9acc0a0adaaa5bcf41656964e9ed96a28da83bf312d0e08c2f4c2
2025-04-23 09:59:32 +02:00
thomas
b426d31914 Adapt redraft to display fees 2025-04-22 14:41:36 +02:00
edouardparis
3837f35714
Merge #1645: Import/Export PSBT from/to file
d86bd20a2fbcec0c3c37dd0cabb5ea02130a88f6 export: better wording when user try to import psbt w/ non owned coins (pythcoiner)
a1918f5eb6009c5e4526edcc57f82f5a1ccec37f export: do not panic if import an insane PSBT (pythcoiner)
3d9440d3ac70451a85b96e780b71d540ec811415 export:cleanup (pythcoiner)
71684e7039252384d18146c06b79d6f7deb9e0e4 gui: integrate import PSBT from file (pythcoiner)
9658cfde3fdbdd5823c3fd9014253bbf2901368a export: finalyze PSBT import (pythcoiner)
0796efae19e2bce521cd55c3f7bbc9f731bbad0e gui: integrate PSBT export instead copy to clipboard (pythcoiner)
64fcf3415481d516d516148aebf57a2a0ff40e42 gui: rename Action => Modal for consistency (pythcoiner)

Pull request description:

  - [x] gui: integrate PSBT export to file
  - [x] export: finalyze import PSBT from file
  - [x] gui integrate PSBT import from file

  ![image](https://github.com/user-attachments/assets/f9eac738-2014-4901-9df3-9cce862ea510)

  ![image](https://github.com/user-attachments/assets/647cd1d1-0f33-43f3-b543-8f64ecd92a31)

  ![image](https://github.com/user-attachments/assets/b2c157d7-ac3a-4944-ac57-99a15088c1c7)

  ![image](https://github.com/user-attachments/assets/287fc5aa-bd36-4431-bedc-1ff8b1b57e83)

  ![image](https://github.com/user-attachments/assets/1b393295-03f3-4c32-9670-0226dfd23dcb)

  Note: this PR is based on #1644

  closes #1632

ACKs for top commit:
  edouardparis:
    ACK d86bd20a2fbcec0c3c37dd0cabb5ea02130a88f6

Tree-SHA512: 8bfde198fd1ff18fe893a64ffa31fd6c0fde2aa54214df7d1e0d1bb2b4ebfc67904160b5d7375e74c180d73ee2f2a754d32bb5be98e548bd7b54106597ce7b49
2025-04-21 10:46:03 +02:00
pythcoiner
d86bd20a2f
export: better wording when user try to import psbt w/ non owned coins 2025-04-21 03:31:52 +02:00
edouardparis
254c5f4a92
Merge #1660: export: add a cross button to the modal
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.

  ![image](https://github.com/user-attachments/assets/07284af0-31e1-4507-adde-e9aa344ff958)

ACKs for top commit:
  edouardparis:
    utACK a50fa04519160169ecae9fb56b047ab76303f712

Tree-SHA512: afbff780a052d6b34275c62bbb7713e49300680752287a822be187d118560404eea252878120c53fbb1147a9b86f55e0f043f1802660e0bf3cbf2a6dc3062af3
2025-04-18 14:42:43 +02:00
pythcoiner
a50fa04519
export: remove stop button from the modal 2025-04-17 18:51:31 +02:00
edouardparis
b4883415f3
Merge #1661: fix: cache coins when first loading GUI with Liana Connect
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
2025-04-17 16:55:13 +02:00
Michael Mallan
417a949037
fix: cache coins for remote backend when loading gui 2025-04-17 13:46:28 +01:00
Michael Mallan
e03d4e17be
refactor: add function to get coins to cache 2025-04-17 13:45:55 +01:00
pythcoiner
a1918f5eb6
export: do not panic if import an insane PSBT 2025-04-17 10:36:04 +02:00
pythcoiner
968c36fcf6
export: add a cross button to the modal 2025-04-16 19:59:18 +02:00
pythcoiner
3d9440d3ac
export:cleanup 2025-04-16 19:23:18 +02:00
pythcoiner
71684e7039
gui: integrate import PSBT from file 2025-04-16 19:18:14 +02:00
pythcoiner
9658cfde3f
export: finalyze PSBT import 2025-04-16 19:11:00 +02:00
pythcoiner
0796efae19
gui: integrate PSBT export instead copy to clipboard 2025-04-16 19:10:59 +02:00
pythcoiner
64fcf34154
gui: rename Action => Modal for consistency 2025-04-16 19:10:59 +02:00
edouardparis
733c3a6071
Merge #1657: lianad: in update_spend_tx() work on the db_psbt
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
2025-04-16 17:57:37 +02:00
pythcoiner
d637564a11
lianad: in update_spend_tx() work on the db_psbt instead of the imported one 2025-04-16 13:08:40 +02:00
edouardparis
1e551e15b1
Merge #1646: lianad: allow to select coins for recovery
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
2025-04-15 17:32:12 +02:00
edouardparis
896407aba3
Merge #1644: Add Import/Export Xpub feature
0b2ebd3aaad945afdf8b4dea4931179626663b89 export: typo 'Fail to' => 'Failed to' (pythcoiner)
8dd16fb586b4edc87d602b0a1d6ad396fe5340b3 export: trim string read from files (pythcoiner)
541c63419b1a39d0159ca87492360037e2119fbb installer: integrate import xpub feature (pythcoiner)
98bacb9f4c88ad63c537b7819a437e4e17bdd0b5 export: add import xpub feature (pythcoiner)
d7e388707b3368e12b73b578524b8e0c667ddb92 installer: integrate export xpub feature (pythcoiner)
986a982d8e7148b51bf20e4913502bfa1ce1ffe6 export: add export xpub feature (pythcoiner)

Pull request description:

  - [x] Add export feature to `export`
  - [x] Installer: Export xpub to a file instead copying to clipboard

  ![image](https://github.com/user-attachments/assets/87218f66-08fb-4083-8f37-c5589dae763c)

  - [x] Add import feature to `export`
  - [x] Installer: Add import Xpub feature at descriptor creation step

  before importing key:

  ![image](https://github.com/user-attachments/assets/56d57860-057c-4327-9002-545adff1b1c0)

  after importing key:

  ![image](https://github.com/user-attachments/assets/94cffb17-01b7-4a56-8974-f76a1791428c)

  closes #1633

ACKs for top commit:
  edouardparis:
    ACK 0b2ebd3aaad945afdf8b4dea4931179626663b89

Tree-SHA512: 44540efd25525a6489b27b1a928bac1c94e06720c5ba82e1eeada09abdb967db3f0ec8f2e404274818d1720efc508e19c8d9a5002f1e047c0335c8b8844ef7e1
2025-04-15 10:05:50 +02:00
pythcoiner
0b2ebd3aaa
export: typo 'Fail to' => 'Failed to' 2025-04-14 16:59:12 +02:00
pythcoiner
8dd16fb586
export: trim string read from files 2025-04-14 16:59:11 +02:00
edouardparis
9a623c2eef
Merge #1648: feat: move recovery from settings to own menu
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
2025-04-14 15:29:32 +02:00
edouardparis
ff693788b2
Merge #1643: filter for confirmed coins when checking recovery paths
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
2025-04-14 14:57:20 +02:00
pythcoiner
541c63419b
installer: integrate import xpub feature 2025-04-14 14:20:40 +02:00
pythcoiner
98bacb9f4c
export: add import xpub feature 2025-04-14 09:27:36 +02:00
pythcoiner
d7e388707b
installer: integrate export xpub feature 2025-04-14 09:27:35 +02:00
Michael Mallan
df4528dc76
feat: move recovery from settings to own menu
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.
2025-04-09 15:18:33 +01:00
Michael Mallan
2527bcea2e
fix: timelock parameter is optional
The timelock parameter is optional in that it can be omitted,
but if present it must have an integer value rather than a
value of `null`.
2025-04-08 15:34:08 +01:00
Michael Mallan
d4151d88d6
rpc: allow to choose outpoints in createrecovery
To maintain backwards compatibility, the `outpoints` parameter
is the final positional argument and can be omitted entirely.
2025-04-08 14:50:10 +01:00
Michael Mallan
8cc723fb3b
commands: allow to specify coins for recovery 2025-04-08 14:49:02 +01:00
Michael Mallan
ce711ae10a
commands: add test for create_recovery 2025-04-07 16:01:20 +01:00
Michael Mallan
21c899f9ec
gui: fix docstring 2025-04-07 16:01:18 +01:00
pythcoiner
986a982d8e
export: add export xpub feature 2025-04-07 06:36:21 +02:00
Michael Mallan
2279b332d4
filter for confirmed coins when checking recovery paths
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.
2025-04-04 12:24:29 +01:00
edouardparis
2485e250d6
Merge #1629: enhance v10 changelog
85dc1d122444d7096ad6dcd449c2aadb25808da8 enhance v10 changelog (edouardparis)

Pull request description:

ACKs for top commit:
  jp1ac4:
    ACK 85dc1d1224.

Tree-SHA512: a5028e12e2274256cb46daf5caa275b8004fba47e3b3a382c2802f2faeca345569d20b265b6607805f5c423e276213676b976bbcdf83e531f40172a20e3585a2
2025-04-01 11:36:17 +02:00
edouardparis
85dc1d1224 enhance v10 changelog 2025-04-01 11:00:30 +02:00
edouardparis
c39d3338fc
Merge #1627: dep: rust-miniscript 12.3.1
c5a3c11aa3b3731fd975461bab8147427fb5293d cargo update miniscript (edouardparis)

Pull request description:

ACKs for top commit:
  edouardparis:
    Self-ACK c5a3c11aa3b3731fd975461bab8147427fb5293d

Tree-SHA512: f03cd733ab3b708aea9e5e66c798e1e2afe88e7aa730a5932d3e805860e6aba542c45701fa0cfc860cf63f16a5d47b9f94634929682cf8dce961307ed12b133a
2025-04-01 09:25:05 +02:00
edouardparis
c5a3c11aa3 cargo update miniscript 2025-04-01 09:08:51 +02:00
edouardparis
715910e624
Merge #1625: gui: fix liana connect invitation alignement
fb5a51f09cfcf151734412028af5d337eeae6e7b gui: fix liana connect invitation alignement (pythcoiner)

Pull request description:

  fixes #1622

  before:

  ![image](https://github.com/user-attachments/assets/2a6777dd-7f0a-4440-a46f-a71de75908e0)

  after:

  ![image](https://github.com/user-attachments/assets/3839270a-48ff-4fdf-a154-e66d6a4ae5e2)

ACKs for top commit:
  edouardparis:
    utACK fb5a51f09cfcf151734412028af5d337eeae6e7b

Tree-SHA512: 094cc33a40c1e91b17305b920f0816d747b161d234218b35fc904a1c32029acde4c181a3cd53a8c51dfef6702e64dbcbaa399bfbb635948fe9d4e267128c98ec
2025-04-01 08:51:49 +02:00
pythcoiner
fb5a51f09c
gui: fix liana connect invitation alignement 2025-04-01 02:49:21 +02:00
edouardparis
46ad749b78
Merge #1623: gui(installer): show manually entered xpub in modal until saved
b9f19360ca81654da38cb00da1e6f69b2bc82a0c gui(installer): show manually entered xpub in modal until saved (Michael Mallan)

Pull request description:

  This fixes a regression introduced as part of the key-from-token work for cosigner and Safety Net keys.

  The manually entered xpub should continue to be displayed until the "Apply" button has been clicked and the changes saved.

  The `chosen_key_source_kind` field has been renamed to `form_key_source_kind` as it is only used to determine which of the xpub and token forms should be displayed. Its value is now only set to `Some` when the form for entering an xpub or token should be displayed. This change allows to distinguish between a manual xpub that has just been entered in the form and one that was previously entered and has been chosen from the list of existing keys.

ACKs for top commit:
  edouardparis:
    ACK b9f19360ca81654da38cb00da1e6f69b2bc82a0c

Tree-SHA512: 0e246a0113038c93f4ad0ece42a4bf1a414772f4cf1ad123dafe84d453d5249b81f485d3937c5373a0442f9dd2bf19f46cb55231dfae06c18987023ba13568a1
2025-03-31 14:47:20 +02:00
Michael Mallan
b9f19360ca
gui(installer): show manually entered xpub in modal until saved
This fixes a regression introduced as part of the key-from-token
work for cosigner and safety net keys.

The manually entered xpub should continue to be displayed until
the "Apply" button has been clicked and the changes saved.

The `chosen_key_source_kind` field has been renamed to
`form_key_source_kind` as it is only used to determine which of
the xpub and token forms should be displayed.
2025-03-31 12:00:37 +01:00
edouardparis
8d15bde6f3
Merge #1618: gui: rename descriptor export extension *.descriptor => *.txt
5dfedbbe43193e3a2596f43d0b72eac4fd35a2c0 gui: rename descriptor export extension *.descriptor => *.txt (pythcoiner)

Pull request description:

ACKs for top commit:
  edouardparis:
    ACK 5dfedbbe43193e3a2596f43d0b72eac4fd35a2c0

Tree-SHA512: fe90f849c3a5e14a717fc7f8f51d291bc77ff6b8a6567da507e00e7a33c900dfa3746b4b5e770a2dfb1a6c6985c39619b417c983f61651eb6f2dffc47ef0a2e9
2025-03-28 09:25:13 +01:00
pythcoiner
5dfedbbe43
gui: rename descriptor export extension *.descriptor => *.txt 2025-03-27 22:49:55 +01:00
edouardparis
d4448b6479
Merge #1614: show rescan warning after restoring wallet from backup
d812ad63a1f367bb304d2edf60103e62effca0bc show rescan warning after restoring wallet from backup (Michael Mallan)

Pull request description:

  This adds a warning on the home page if the wallet has been restored from a backup and the user is using a local bitcoind node.

  This warning has a button to jump to the rescan page and another button to dismiss the warning, which is the only way to remove it (rescanning does not automatically remove it).

  Whether the wallet was restored from a backup is not saved after closing the GUI, so this warning will only be shown in the same user session as that in which the wallet was restored.

  The warning will not currently be shown when importing a descriptor.

ACKs for top commit:
  edouardparis:
    ACK d812ad63a1f367bb304d2edf60103e62effca0bc

Tree-SHA512: 55c8becd30f231a9c9ea1a8818a3df23b98c5f69206e522ae1fee7e5e0679b200e5f1728e67e538ed613236e7925b025286b0e3f4719abcfad3d1ff2a1968df6
2025-03-26 17:48:42 +01:00
Michael Mallan
d812ad63a1
show rescan warning after restoring wallet from backup 2025-03-26 15:36:22 +00:00
edouardparis
22e9313a30
Merge #1613: gui: add a spacer below Delete button un PSBT view
b2fbcde142a5262576e7c2dd1ae297da618d5338 gui: add a spacer below Delete button un PSBT view (pythcoiner)

Pull request description:

  before:

  ![image](https://github.com/user-attachments/assets/7c64a23f-9888-49ca-9b3c-938e7b99501a)

  after:

  ![image](https://github.com/user-attachments/assets/5cfda93a-624c-4121-b9dc-54f24e9e4186)

ACKs for top commit:
  edouardparis:
    ACK b2fbcde142a5262576e7c2dd1ae297da618d5338

Tree-SHA512: c2bd9aefabf259db3692cfceb75ba21365dc70f61ef808db1de6e9a915003bdb0be5c68d75720dc796436ac7bd58bf107c19c758c0849ed3dbaea1eba11e1c09
2025-03-26 15:59:24 +01:00
pythcoiner
b2fbcde142
gui: add a spacer below Delete button un PSBT view 2025-03-26 15:14:14 +01:00