2393 Commits

Author SHA1 Message Date
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
edouardparis
05b848c5d2
Merge #1612: clean usage of color outside of theme palette
47093a3eafcb5fc12a3cedaa045830c7e9b3ded5 clean usage of color outside of theme palette (edouardparis)

Pull request description:

ACKs for top commit:
  edouardparis:
    ACK 47093a3eafcb5fc12a3cedaa045830c7e9b3ded5

Tree-SHA512: b8e928a125873f36eeedd64c94d324b45378d70f67c48f450408dd8906366dbae802c9af28e465d4c3d0249c9e7d140597530bc533c8b83f772f1722615798c3
2025-03-26 11:29:44 +01:00
edouardparis
47093a3eaf clean usage of color outside of theme palette 2025-03-26 11:06:20 +01:00
edouardparis
6e5fcb4463
Merge #1610: installer: add a spacer bellow Next button at registration step
cbc27e66a365b5c7322a2184de33bd38510d8ccc installer: add a spacer bellow Next button at descriptor registration step (pythcoiner)

Pull request description:

  before:

  ![image](https://github.com/user-attachments/assets/7188018e-3e05-4484-915f-7918e70dae00)

  after:

  ![image](https://github.com/user-attachments/assets/4b25f302-79e8-4207-aac2-104f912b2d11)

ACKs for top commit:
  edouardparis:
    ACK cbc27e66a365b5c7322a2184de33bd38510d8ccc

Tree-SHA512: bdd2ea3e635d6ec0a692590779606be48440cb85cafba51ac2943afa9b204e6ecacb4a753441cedfa1d7ef1d6eb8dd8164db3b241c25d7f730ffb3324b7e0068
2025-03-26 09:45:28 +01:00
pythcoiner
cbc27e66a3
installer: add a spacer bellow Next button at descriptor registration step 2025-03-26 06:50:16 +01:00
edouardparis
14d1bd73a8
Merge #1605: Ensure consistent derivation index management
e98745865788d4d32385556f5fa2c8e92aca315b lianad: ensure consistent derivation index management (Michael Mallan)
81a5b159e54b01bf920bdf0228ca6362c370c71e chore(qa): run black formatter (Michael Mallan)

Pull request description:

  This is to fix #1591.

  The database should store the last used/revealed derivation index:
  - Docstrings have been updated accordingly.
  - Getting a new address requires that the database value first be incremented.
  - When listing addresses without specifying a count, all used/revealed addresses should be returned.

ACKs for top commit:
  edouardparis:
    ACK e98745865788d4d32385556f5fa2c8e92aca315b

Tree-SHA512: d60f4404ae80f2b96e7e50739f8da181ef3b321e6f829bb88c4ee3a02832a34281a35e4314ddd6b7cddd880495c11e1e2afc09e6af667a373b335be840fa4afa
2025-03-25 16:33:04 +01:00
edouardparis
8187745cb0
Merge #1606: gui: reformat Settings > Import/Export view
45bc1b3b655471e86b19511811b7cd3c1842d3cf gui: reformat Settings > Import/Export view (pythcoiner)

Pull request description:

  fixes #1603

  ![image](https://github.com/user-attachments/assets/61254373-1691-453c-a495-94792f2b0447)

ACKs for top commit:
  edouardparis:
    ACK 45bc1b3b655471e86b19511811b7cd3c1842d3cf

Tree-SHA512: 4fd61b889954b19be06ec072b0296763aa5942dc69eb3e07029c1530f0b4890092160961d1b8f408866000e0bd62fd783e979c568c43712d1f36eb091efe0509
2025-03-25 12:52:55 +01:00
pythcoiner
45bc1b3b65
gui: reformat Settings > Import/Export view 2025-03-25 12:25:49 +01:00
Michael Mallan
e987458657
lianad: ensure consistent derivation index management
The database should store the last used/revealed derivation index.

Docstrings have been updated accordingly.

Getting a new address requires that the database value first be
incremented.

When listing addresses without specifying a count, all
used/revealed addresses should be returned.
2025-03-24 18:39:04 +00:00