1983 Commits

Author SHA1 Message Date
edouardparis
d87da1eeaf
Merge #1419: gui(edit key modal): increase size of the closing icon
f4596ab4b0974d0b3986c0431337b8a304333278 gui(edit key modal): increase size of the closing icon (pythcoiner)

Pull request description:

  Fixes #1409
  ![image](https://github.com/user-attachments/assets/dda46bf0-6ada-4dd7-a88a-973a4b989765)

ACKs for top commit:
  jp1ac4:
    Tested ACK f4596ab4b0.

Tree-SHA512: ac0ace1ca0c6463d05daf4fb9fb770e9a6be639633dbd3bfd019c9c2de193b4141d3fbb32d0c9f71b97694339aa6b5e4a06c2e538f8c0394e60ad71ff9edde8c
2024-11-04 12:17:29 +01:00
edouardparis
472b070002
Merge #1413: bump gui msrv to 1.71.1
456fce35a58564b4a3195eb17e906965f42a9d5a bump gui msrv to 1.71.1 (edouardparis)

Pull request description:

  This PR updates our build system to use rust 1.71.1, required by the last version of async-hwi

ACKs for top commit:
  edouardparis:
    Self-ACK 456fce35a58564b4a3195eb17e906965f42a9d5a

Tree-SHA512: 2b5431d4ffc92d6f7dc03fd0524ea1f534489025c3e120f6be5f08af2c2c973908f03f1dabacfd74e9b3820d4e9d5cec0a4d6184c641c1b9096646a4508ea3ca
2024-11-04 11:49:45 +01:00
edouardparis
456fce35a5 bump gui msrv to 1.71.1 2024-11-04 11:30:05 +01:00
edouardparis
a061d8f3e2
Merge #1417: gui(installer): re-add next button when starting managed bitcoind
322597f474a7b726540f28e383fb19c76e161d2b gui(installer): re-add next button (Michael Mallan)

Pull request description:

  This Next button was accidentally removed in commit bd03cc9cfffb7c5c45dd0dd60d54db807d4e02a2.

ACKs for top commit:
  pythcoiner:
    tACK 322597f

Tree-SHA512: 35e17d52b3ba9145078e7a70bc732792a21e6a903e49c16b5d3fa79cc9b4a6e69111029476b338f592402bfcfac12e2b9ff77fe57eaddb9a62f5a52870893698
2024-11-04 09:58:34 +01:00
pythcoiner
f4596ab4b0 gui(edit key modal): increase size of the closing icon 2024-11-01 16:14:37 +01:00
Michael Mallan
322597f474
gui(installer): re-add next button
This Next button was accidentally removed in commit
bd03cc9cfffb7c5c45dd0dd60d54db807d4e02a2.

This re-adds the button with some code refactoring.
2024-11-01 10:20:48 +00:00
edouardparis
cbc46e9e26
Merge #1403: Disable edit of defined key in multisig template recovery path
59c73001a4c9eaa835f2a9345d995f263653ab48 Disable edit of defined key in multisig template recovery path (edouardparis)

Pull request description:

  The primary keys shouldn't be editable from the recovery path in the Multisig Savings template but only from the primary path. It could bring to weird behaviors and corner cases.

ACKs for top commit:
  jp1ac4:
    Tested ACK 59c73001a4c9eaa835f2a9345d995f263653ab48.

Tree-SHA512: 0fa72bfeac7a32fc188f041c395f46ce2e3de72d7f750343641bff68b92d885d3510f3cd4600cc09856a5192a493fe7b3afca70a7ca78c0aeeb9ee0f3411fda5
2024-10-30 17:06:03 +01:00
edouardparis
59c73001a4 Disable edit of defined key in multisig template recovery path
The primary keys shouldn't be editable from the recovery path in the
Multisig Savings template but only from the primary path. It could bring
to weird behaviors and corner cases.
2024-10-30 16:26:39 +01:00
edouardparis
799ec102a8
Merge #1396: gui: upgrade managed bitcoind version to 28.0
1bc6248063c908219d4f1e343ca487c4f64d7843 gui: upgrade managed bitcoind version to 28.0 (Michael Mallan)

Pull request description:

  This is to resolve #1372.

  Hashes were taken from https://bitcoincore.org/bin/bitcoin-core-28.0/SHA256SUMS.

  File names we use can be found here:
  2d5991cb0c/gui/src/node/bitcoind.rs (L42-L60)

ACKs for top commit:
  edouardparis:
    utACK 1bc6248063c908219d4f1e343ca487c4f64d7843

Tree-SHA512: c6c5976c357164dc2f6e31f5af7981c41ef63197bfb1aac1f54ddb30dff423796fe23957e5a2c6014fcdabb64b91057a97b22d3c9e7ea33bcfa5ce47c912846a
2024-10-30 15:29:40 +01:00
edouardparis
2d5991cb0c
Merge #1399: Template multisig security
36af35fae3f21995fcbe0c4c1a5f685a2318d0a0 refac: remove select button at the choose template step (edouardparis)
2eddbbd7000ccb8e392a3da4fd854651bf604a80 change wording in inheritance template (edouardparis)
789c2aebfb3731b43b9d1750d5586db1456c14fc Add new template: multisig security wallet (edouardparis)

Pull request description:

  ![20241029_18h22m22s_grim](https://github.com/user-attachments/assets/e87daab2-82bc-496e-bfc1-98feb9c03731)
  ![20241029_18h22m31s_grim](https://github.com/user-attachments/assets/d2e54c4d-c76b-48b2-95ae-f9482af0284d)

ACKs for top commit:
  edouardparis:
    Self-ACK 36af35fae3f21995fcbe0c4c1a5f685a2318d0a0

Tree-SHA512: 4e6617adb2eb7f0932aca8260f6fad120dcdb2aafc2c0880036bddc31874b1ba4280dbb27eb495d601a10948fb3aaf40ca4c5fd8922fc8660fc269a4c80a5cff
2024-10-30 14:39:50 +01:00
edouardparis
36af35fae3 refac: remove select button at the choose template step 2024-10-30 14:00:03 +01:00
edouardparis
2eddbbd700 change wording in inheritance template 2024-10-30 14:00:03 +01:00
edouardparis
789c2aebfb Add new template: multisig security wallet 2024-10-30 14:00:03 +01:00
edouardparis
931b625e31
Merge #1366: Add templates to installer descriptor editor
bd03cc9cfffb7c5c45dd0dd60d54db807d4e02a2 Add inheritance and custom templates (edouardparis)
5889e60dc2a3b8894195caca5c9e00f954197523 Add descriptor template description step (edouardparis)
fab3303147ad1933f9b434502b8cc5465b451dc5 installer step: ChooseDescriptorTemplate (edouardparis)
d0ec811bef457bfcb266e6d39c7aaec07e34c8e0 installer: refac setup as a list of paths (edouardparis)
5fabd987e8ade7fae38f47d34b986c3ea13718c8 move installer view module in a directory (edouardparis)
0b1932c9fac6afc63021f57ae47ee3b42125efae keep key hot signer origin (edouardparis)
e6f85227ca9020b8390ee5a3e9e07438714bb4d5 installer descriptor editor: add key module (edouardparis)
d73894dfa0143f8bdb7fcb884b9c8c6d2154382b installer: module editor (edouardparis)

Pull request description:

  WIP for #1147

ACKs for top commit:
  edouardparis:
    Self-ACK bd03cc9cfffb7c5c45dd0dd60d54db807d4e02a2

Tree-SHA512: ddf80c250cb2d4d146167c84dfbf870f3e97589bc8a634e1b276b81a68a77721d15224a71bca1271dcccc299f9f33c893bdafc6affe40d7aaba980e902f0ded7
2024-10-29 15:11:53 +01:00
edouardparis
bd03cc9cff Add inheritance and custom templates 2024-10-29 14:52:09 +01:00
edouardparis
5889e60dc2 Add descriptor template description step 2024-10-29 11:33:48 +01:00
edouardparis
fab3303147 installer step: ChooseDescriptorTemplate 2024-10-29 11:33:48 +01:00
edouardparis
d0ec811bef installer: refac setup as a list of paths 2024-10-29 11:33:48 +01:00
edouardparis
5fabd987e8 move installer view module in a directory 2024-10-29 11:33:48 +01:00
edouardparis
0b1932c9fa keep key hot signer origin 2024-10-29 11:33:48 +01:00
edouardparis
e6f85227ca installer descriptor editor: add key module 2024-10-29 11:33:48 +01:00
edouardparis
d73894dfa0 installer: module editor 2024-10-29 11:33:48 +01:00
edouardparis
131be90641
Merge #1386: [GUI] Skip loading screen for existing wallets
0a674d591affd6190d5b4979718fb09d3d8f79f3 gui: load app directly if wallet was previously synced (Michael Mallan)
1408f66963cf6ae5f2fe2ac29d2cd91f747477bc gui(home): indicate if blockchain is syncing (Michael Mallan)
62788d105c2fcdb1e6c400ca6f5f19138378ae0b gui(cache): include sync progress (Michael Mallan)
f3a136c30be0e443cebae85785f70999dfaf8485 gui(home): refactor sync status logic (Michael Mallan)

Pull request description:

  This is to resolve #1384 by skipping the loading screen for an existing wallet even if the blockchain is still syncing.

  This change will only make a difference for local backends given that ~~the blockchain for a Liana Connect wallet is always considered to be synced and so the loading screen was already loading the application directly~~ Liana Connect doesn't use the loading screen.

  It builds on #1377, to additionally check the blockchain sync progress, and show a message with the sync progress as a percentage in case the blockchain is not fully synced. ~~using the logic added there to indicate on the home page that syncing is in progress if the poller has not yet run. Polling does not start until the blockchain has fully synced and so the same logic can be applied here.~~

  ~~For now, no distinction is made on the home page between the wallet syncing and the blockchain syncing, but this may change in future.~~

ACKs for top commit:
  edouardparis:
    ACK 0a674d591affd6190d5b4979718fb09d3d8f79f3

Tree-SHA512: 802e31b7f4be7ed9687e32a5921f19e4560f5f4b4f975fff452be2907954fc9c4c577add713bc999f6d8efa4c6502825361553c9cd5bcdb3be0d5f800f0aa213
2024-10-28 18:39:40 +01:00
Michael Mallan
0a674d591a
gui: load app directly if wallet was previously synced 2024-10-28 12:57:54 +00:00
Michael Mallan
1408f66963
gui(home): indicate if blockchain is syncing 2024-10-28 12:57:52 +00:00
Michael Mallan
62788d105c
gui(cache): include sync progress 2024-10-28 12:57:50 +00:00
Michael Mallan
f3a136c30b
gui(home): refactor sync status logic
Use an enum to clearly enumerate the different cases we are
considering and avoid the need to repeat logic relating to
blockheight in the view.
2024-10-28 12:57:48 +00:00
edouardparis
82f01fc9ba
Merge #1377: [GUI] Consider wallet to be syncing until first poll completes after opening
ec7556ee12f13c87229974769667bb892695889c gui(home): indicate existing wallet is syncing (Michael Mallan)
f7314aa26ebb75fdbc016e7519eed52a827782a6 gui(cache): include last poll timestamp (Michael Mallan)
9dd737b98c74ff9e815b06ed20c35840f4eddb66 gui: upgrade liana dependency (Michael Mallan)

Pull request description:

  This PR uses the changes from #1376 to complete #1373.

  It builds on the changes from #1370 to consider an existing wallet (that uses a local backend) to be syncing until the first poll completes after opening the GUI, where "existing wallet" means one that has positive height (since a newly created wallet has height 0).

  Note that for an external Liana daemon,  this logic is only applied in case the last poll timestamp has already been set when starting the GUI. Otherwise, we can't be sure if this external daemon will ever set this value.

ACKs for top commit:
  edouardparis:
    ACK ec7556ee12f13c87229974769667bb892695889c

Tree-SHA512: a6db8e510a7d24ca554965512e289eb271dab41871bde9362a7af71b73c771431025b1be1092bab98b106fb520d8c6959d712909d1db9a21731f3a79c9f766a1
2024-10-25 17:54:09 +02:00
Michael Mallan
1bc6248063
gui: upgrade managed bitcoind version to 28.0 2024-10-25 15:02:20 +01:00
Michael Mallan
ec7556ee12
gui(home): indicate existing wallet is syncing
If opening an existing wallet that uses a local backend, indicate
that it is checking for new transactions until the first poll
completes.

A remote backend is always synced after the initial scan.
2024-10-24 15:03:40 +01:00
Michael Mallan
f7314aa26e
gui(cache): include last poll timestamp 2024-10-24 15:03:36 +01:00
Michael Mallan
9dd737b98c
gui: upgrade liana dependency 2024-10-24 14:58:21 +01:00
edouardparis
c2ce025a78
Merge #1376: Get timestamp of last completed poll of the blockchain
dee9554c518793b57b71965d835905300ef86fbc database: add `wallet()` method and use in `getinfo` command (Michael Mallan)
4694eaaef9f6650047ab5a527c8c7852a01ab7fe poller: don't poll now if blockchain syncing (Michael Mallan)
0f9f1f352c9bef22d7b21508d47daa77573b446c commands: return last poll timestamp from `getinfo` (Michael Mallan)
c6add0aeb1a0d16301a96745b560b94b31476d13 qa: add method to get lianad poll interval (Michael Mallan)
61e39f7d8623c288639122e295c26a0961687cb9 poller: store last poll timestamp (Michael Mallan)
e9fdcde995a57695769637228e503779c84a1aed database: get and set last poll timestamp (Michael Mallan)
a2b79f1b07bca86e955603ecb2f2489686ae901d sqlite: get and set last poll timestamp (Michael Mallan)

Pull request description:

  This is a first step towards #1373.

  The timestamp of the last completed poll of the blockchain will be stored in the database, and this value will be made available via the `getinfo` command.

ACKs for top commit:
  edouardparis:
    ACK dee9554c518793b57b71965d835905300ef86fbc

Tree-SHA512: 32706d516e9915d7320583b37990a5d907bb254905efbb0318c5eae4b27753800933d1b9e68bf43a0190c27d8a5d349f633c0e6e70ba21815ed6eed1648f0625
2024-10-24 15:38:07 +02:00
Michael Mallan
dee9554c51
database: add wallet() method and use in getinfo command
This allows us to get several values relating to the wallet
in one call.

The field names of the `Wallet` struct have been chosen to
match the corresponding DB interface methods.

Some sqlite methods will call `wallet()` instead of `db_wallet()`
to ensure consistency in output.
2024-10-24 11:27:56 +01:00
Michael Mallan
4694eaaef9
poller: don't poll now if blockchain syncing
If a user broadcasts a spend while the blockchain is syncing
(e.g. via liana-cli), we tell the poller to run now. However, if
the blockchain is still syncing, the blockchain height is likely
to increase before the poll completes and so the poller is likely
to restart multiple times.

Even if the poller doesn't restart multiple times, this change
makes the poller behaviour consistent with regard to a syncing
blockchain.
2024-10-24 11:24:32 +01:00
Michael Mallan
0f9f1f352c
commands: return last poll timestamp from getinfo 2024-10-24 11:24:31 +01:00
Michael Mallan
c6add0aeb1
qa: add method to get lianad poll interval 2024-10-24 11:24:27 +01:00
Michael Mallan
61e39f7d86
poller: store last poll timestamp 2024-10-24 11:24:25 +01:00
Michael Mallan
e9fdcde995
database: get and set last poll timestamp 2024-10-24 11:24:18 +01:00
edouardparis
c23320aaca
Merge #1394: electrum: use debug log level for sync messages
f9b7a25b40f7599c71e1e5be9bc03d9a25de7647 electrum: use debug log level for sync messages (Michael Mallan)

Pull request description:

  These sync messages appear typically every 30 seconds and are only useful for debugging purposes.

  The full scan messages can remain at info level for now as they are only expected to occur once for a new wallet and then only in case a rescan is performed.

ACKs for top commit:
  edouardparis:
    utACK f9b7a25b40f7599c71e1e5be9bc03d9a25de7647

Tree-SHA512: b0414489856b31825be9c3dac9be5422c136aed15540fcd39debeb06dc172a23742420aef2c887f1443e529db600fa453d920bf85c17f8da568ddeca6060911e
2024-10-23 13:35:26 +02:00
edouardparis
2d772d3b0c
Merge #1395: Fix lianalite resend token
e3ae1f369b32f5be542ce3df53cb652cc7be3b44 Use signWithOtp method instead of the resend endpoint (edouardparis)
2711e3443061bd2842c19a72ab8b78995b13fd97 fix clippy error redundant clone (edouardparis)

Pull request description:

  close https://github.com/wizardsardine/liana/issues/1385

ACKs for top commit:
  edouardparis:
    Self-ACK e3ae1f369b32f5be542ce3df53cb652cc7be3b44

Tree-SHA512: 12a6ee2ace8c44113e54ca821ff5e3b08236c4e2f272ea04c5eeb4eaddf496575029410c5050365fbda49200613a4385cb24905c8eb9073e76fe36d78eb4fa2a
2024-10-23 13:33:28 +02:00
edouardparis
e3ae1f369b Use signWithOtp method instead of the resend endpoint
close #1385
2024-10-23 12:53:43 +02:00
Michael Mallan
f9b7a25b40
electrum: use debug log level for sync messages
These sync messages appear typically every 30 seconds and are
only useful for debugging purposes.

The full scan messages can remain at info level for now as
they are only expected to occur once for a new wallet and then
only in case a rescan is performed.
2024-10-23 11:49:23 +01:00
edouardparis
2711e34430 fix clippy error redundant clone 2024-10-23 12:43:51 +02:00
edouardparis
1c8df3e1b1
Merge #1387: [GUI] Don't treat wallets using bitcoind as syncing
9208cd11b23a9d234cba008fff3a820bc9d3a702 gui: don't treat wallets using bitcoind as syncing (Michael Mallan)
f34bb1b79a524689400fac07f213857c7a0ebc93 gui: include node type in embedded daemon backend (Michael Mallan)

Pull request description:

  This is a follow-up to #1370.

  If the user has imported a descriptor and is using bitcoind as a local node, then they will need to perform a rescan in order
  to see past transactions. Treating the wallet as syncing in this case could mislead the user that a rescan is being performed. Therefore, it's better to keep the past behaviour here to avoid further confusion.

ACKs for top commit:
  edouardparis:
    ACK 9208cd11b23a9d234cba008fff3a820bc9d3a702

Tree-SHA512: fabb3289f01c68309cd511854b0ea249e5fa1279c736bfc61c3140ca3352dfc24a1be46c977ed21c528a67c3d1f0e16521d94aaa0ee1c17d8f9ed4f3403547d0
2024-10-22 10:35:07 +02:00
edouardparis
048be60f6a
Merge #1390: doc: fix broken link to Edouard PGP key
6e326e8e25c26a77cc66ddb0a9b526413c956f4f doc: fix broken link to Edouard PGP key (pythcoiner)

Pull request description:

  fixes #1374

ACKs for top commit:
  edouardparis:
    ACK 6e326e8e25c26a77cc66ddb0a9b526413c956f4f

Tree-SHA512: c591551871d899ea19986248ed55224a75345792cfad5c0baf17547dcd67e987df12bb0949cf3af3f87837ca423a0419f2aa5c3f4048a093c3438e4036ad9d2c
2024-10-22 09:40:13 +02:00
pythcoiner
6e326e8e25 doc: fix broken link to Edouard PGP key 2024-10-21 19:35:29 +02:00
Michael Mallan
9208cd11b2
gui: don't treat wallets using bitcoind as syncing
If the user has imported a descriptor and is using bitcoind as
a local node, then they will need to perform a rescan in order
to see past transactions.

Treating the wallet as syncing in this case could mislead the
user that a rescan is being performed. Therefore, it's better
to keep the past behaviour here to avoid further confusion.
2024-10-21 11:00:03 +01:00
Michael Mallan
f34bb1b79a
gui: include node type in embedded daemon backend
This is for convenience in case we need to know the node type
being used.

Although we expect there to always be a node type, it is kept as
`Option` to be consistent with the daemon config.
2024-10-21 11:00:01 +01:00
edouardparis
67c9262a30
Merge #1370: [GUI] Indicate wallet is syncing after completing installer
6f4eb79a5a45751a1c919565ea9c88f59fbda0ab gui: refresh cache more often while height is 0 (Michael Mallan)
a51110269c96e7a9d7c4143e0bd6f8cf27a703a3 gui(home): indicate that wallet is syncing (Michael Mallan)
b452966653da1f2d857dd5901972171aa9d1250c gui(home): track blockheight from cache (Michael Mallan)
1d1e735ae975bb73af5389090e1eee68c727c7ea ui: add loading spinner that types text (Michael Mallan)
3c46a7337c57ef646626d052a0ab23a7fa0ecb17 ui: add carousel loading spinner (Michael Mallan)
e4c1ab106d74ad193aa1ba2f5746ce598c4801e5 ui: render amount with chosen colors (Michael Mallan)
013feb3909ebed0a8850a51a7d61383f327b5d4d ui: refactor amount function (Michael Mallan)

Pull request description:

  This is to resolve #1361.

  The home page considers the wallet to be syncing if its height is 0. In this case, the balance will slowly blink and a "Syncing..." text will appear just below.

  The home page will check the wallet's height upon each cache refresh, and will reload the home page once the syncing has completed so that the updated balance is displayed without the user needing to do anything.

  Both the blinking balance and "Syncing..." text use a new `Carousel` widget that cycles through different child widgets at a specified rate.

  EDIT: I've added an extra commit to address #1363 as that is also related to the wallet height and cache refresh.

ACKs for top commit:
  edouardparis:
    ACK 6f4eb79a5a45751a1c919565ea9c88f59fbda0ab

Tree-SHA512: 04214ccb1cf998ae6f7589f2c37335416a6d39b668269c4e07e30c8713e1a0e9e46257c60cea7b19ee6d6e35cbdccaf1122d25a66e6e7e905de51fce185f9180
2024-10-18 14:46:14 +02:00