c30ce5909f44449f13fa98565cdbc8e82661b33c ci: run spend functional tests (Michael Mallan)
Pull request description:
This adds the spend functional tests to the CI pipeline.
ACKs for top commit:
darosior:
utACK c30ce5909f44449f13fa98565cdbc8e82661b33c
Tree-SHA512: a2ec8085c418cc8a1e3bb49e8016d9061148e226083c27205297cd58ab1fc7208803d6c156077709cc547a973138e3c9312693c3761ab8a4cdb1f1dab7263a1f
c75f909dc91968392eef71c42b7fe332435e8298 Separate login from choose backend step (edouardparis)
Pull request description:
From the issue https://github.com/wizardsardine/liana/issues/1240 It was decided to separate the installer step where user choose the backend and the login.
ACKs for top commit:
pythcoiner:
ACK c75f909dc91968392eef71c42b7fe332435e8298
jp1ac4:
Tested ACK c75f909dc9.
Tree-SHA512: 8cb098b1a8f2e7f5cb65c2bfc1bc94fed828bacca0093377f0f8a38c13b78983d5612714c7bb464c42c81a532e1f7a64763223dba826b8af558fb65449326885
26ade7ebdd3b35667e07ba34986c7e25dd857f89 qa: pipe stderr to stdout, not PIPE (Antoine Poinsot)
Pull request description:
It turns out that setting both to PIPE would result in stderr not being read for some reason. So follow
https://docs.python.org/3/library/subprocess.html and set stdout to PIPE and stderr to STDOUT.
Tested with a process (electrs) which logs on stderr.
ACKs for top commit:
darosior:
ACK 26ade7ebdd3b35667e07ba34986c7e25dd857f89 -- tested by running the functional tests in parallel for #1222 and could correctly get the logs to debug the issue.
Tree-SHA512: fb4303474411bb818a2743ab675af476d132eb25bb8138d691d6f205febf8c863716bc9c8f400ab30876c3f0b376531ba96932946847e9068e641fa9b5edf7d4
It turns out that setting both to PIPE would result in stderr not being
read for some reason. So follow
https://docs.python.org/3/library/subprocess.html and set stdout to PIPE
and stderr to STDOUT.
Tested with a process (electrs) which logs on stderr.
a331f9fd706c34ba8ab639ca1c7b16a2a80a4fc3 fix hard coded network signet for remote backend (edouardparis)
Pull request description:
remote backend supports now also mainnet, we have to load downstream the chosen network.
ACKs for top commit:
edouardparis:
Self-ACK a331f9fd706c34ba8ab639ca1c7b16a2a80a4fc3
Tree-SHA512: a8ea2d349e647f766ecd3283eb72c3897b0e73799e17f602b563609d6258290da7347dd3f76d18f6f6e0ee7736a30e2c59ff3775fcded19f914846077bbe82ae
c99df6ccfa88a75ab31ae1edb2b17ef771f50b42 Merge launcher and first installer step (edouardparis)
Pull request description:
When the gui launches, it checks if there is
a wallet in the network datadirs with bitcoin mainnet in priority, then other networks as fallbacks. If it is the case, it tries to display information about the wallet by reading the settings.json file.
If no wallet was found, then the gui displays the choice to either create a wallet or add it.


ACKs for top commit:
jp1ac4:
Tested ACK c99df6ccfa.
Tree-SHA512: 5a43c543373cbce4aac8f1ead932b7858f8906b005eaca0a07270488b0eb9e8181c58d87400bc512889bb1d258496587da6269889b16e2afd94ef4b03445b76b
When the gui launches, it checks if there is
a wallet in the network datadirs with bitcoin mainnet in priority.
If it is the case, it tries to display information about
the wallet by reading the settings.json file.
If no wallet was found, then the gui displays the choice
to either create a wallet or add it.
eef55b41c97146476234bbd445e23d9f8f98cb20 Change remote backend server url (edouardparis)
Pull request description:
Remote backend has the auth service credentials.
We rely now uniquely on the following urls:
* https://api.signet.lianalite.com for signet
* https://api.lianalite.com for mainnet
ACKs for top commit:
edouardparis:
Self-ACK eef55b41c97146476234bbd445e23d9f8f98cb20
Tree-SHA512: fadc9f6c8454dc747ed22302ea33ae985460cc1b7c872010ef4845ced66c0468ba59d0e8e3296426427bea40c2d42ad2935b90fb4ecf6d2dc07d4c1d0c379fab
8610afeea635c0ffe91db76fb10ed46e72478d82 fix wrong datadir in app cache using remote backend (edouardparis)
Pull request description:
Detected after Manuel failed to have in cache the correct the refresh token. It was not correctly stored after 1h in the settings file because of the wrong datadir.
ACKs for top commit:
edouardparis:
Self-ACK 8610afeea635c0ffe91db76fb10ed46e72478d82
Tree-SHA512: 7bb6f1281d4642927dbb4a10183e5551a93137ca5e6cea09b906e23a3789684070fd00395aabe4711205db74ffad715ee8ba5bf7e728bf8c2b8327e3b9c5c329
80077905a64b2d804c20a49d190f742a244d7816 Revert ctx state for remote backend when user clicks on previous (edouardparis)
cc57f8f7497c0ed763fdd115a1bd7fcbbd6c9043 fix: load hotsigners even for wallet with remote backend (edouardparis)
26d7e317efe19c62ba8baf6ac889c4fd9f2c6aa9 fix: retrieve wallet_id from settings.json (edouardparis)
0fbba9eaa24bc4fbb0966235415eba1459b7d8bd Add backend section to settings to send invitation (edouardparis)
5e4c04fa809aada59ad67f0ef34a3b4d75e00d6b Add invitation process to add wallet flow (edouardparis)
f7dde3d6ecaae5ef7563e21483c7d689cd14e958 Add redirect_to query parameter to otp request url (edouardparis)
92ee94edbc406016db8916d6cf0773de5e2ab250 Add login page to connect to remote backend (edouardparis)
Pull request description:
This PR introduce the new login to the remote backend.
The choice of the used backend is defined per wallet.
The authentication credentials for the remote backend are stored in the settings.json file.
## In the installer
The choice between two different backends is showned to the user that can choose to authenticate to the remote backend or use the local bitcoind.
## Between the launcher and the app a new temporary panel: login.
This intermediary state after the choice of network datadir from the user, is used to connect to the remote backend if the wallet information in the settings.json file contains the credentials for the remote backend authentication otherwise the launcher redirects directly to the App state with the embedded daemon running.
ACKs for top commit:
edouardparis:
Self-ACK 80077905a64b2d804c20a49d190f742a244d7816
Tree-SHA512: c762ff0610cbd5ed6a7b14a3f65395d358bb5299c00e56990b304e0edfeea00465e8ca65d735942e6a53960c220dcbbf65e598cbc738d8c4e7363b18735690b8
the redirect_to is setup in ordert to give to the supabase html template
that user is using the desktop to authenticate. Therefore, It will display
the token instead of the confirmation link button.
c70a5cb9fe3c3cc60cbfa5383ce669758627684f fix wrong units in remaining time warning (edouardparis)
Pull request description:
close#1226
ACKs for top commit:
edouardparis:
Self-ACK c70a5cb9fe3c3cc60cbfa5383ce669758627684f
Tree-SHA512: 830772cd3d33ba6809d1a9832f411191812ee52b8c9b43cf280450995c7cf5d423aae2b1c7ee4483da2eccbd6ca3ff7b36a0b5ce26ed4081354d4fe90af69505
8d495579e1f0b2bd329d3d299e707491c02a31bd lianad: DesKeyChecker.check() => check the change multipath is not hardened (pythcoiner)
Pull request description:
This PR add a check to verify that the change descriptor is not hardened.
without this check it allow import of invalid (not derivable change) multipath like <0;1'> into a LianaDescriptor.
closes#1183
ACKs for top commit:
jp1ac4:
ACK 8d495579e1f0b2bd329d3d299e707491c02a31bd.
darosior:
ACK 8d495579e1f0b2bd329d3d299e707491c02a31bd
Tree-SHA512: f003fa7b819fa03f84126794b30371419208f1ab4f9e36df2f640dd1c1d20564db7bf1abb9897942e5c43f12e7547f01f07dabf2e8ad1df2e1a3218616883444
bf1e90e0fa7f357dc5fb20c12e454f58433dd898 sqlite: merge two migration tests (jp1ac4)
e8836757c70b67ea08a3091b960ff6164422d2b9 sqlite: add a unit test for migration between v4 and v5 (Antoine Poinsot)
af5fddfc4953eb49cf1cb0e56bbb4c947cc95364 commands: use database for TxGetter (jp1ac4)
a86d12d629c0197b9611b36a1b133cf3f7d41dc8 commands: get wallet transactions from db (jp1ac4)
afa6a5160160e265ae5dd427e9ffe6daea14885b poller: save transactions in database (jp1ac4)
ba4c819918ef218d2732e6614a62500f53b8b000 sqlite: separate DB migration from constructor (Antoine Poinsot)
50e7ffafa4b2ad008e0949e940d00a020b7fa4fa lib: setup the connection to bitcoind before the connection to SQLite. (Antoine Poinsot)
Pull request description:
This is the first step of https://github.com/wizardsardine/liana/issues/56#issuecomment-2183063784.
The poller will now save transactions in our own database. These transactions are selected based on the deposit and spend transactions of coins. Only the txid and transaction itself are saved, with the corresponding block height and time taken from the coins table.
In a couple of follow-up commits, I've replaced some RPC calls to bitcoind with DB queries.
ACKs for top commit:
darosior:
re-ACK bf1e90e0fa7f357dc5fb20c12e454f58433dd898
Tree-SHA512: a1d0a6381efe307655b94a3ff257c58e4d921e98a7fa79e5c9f80016c19df761b10266d4122cb290b78424c5e2acefc163683fcfc948950e3c838e39ba31ba57
e79674972d668d823d582cb01923af8598cbe674 gui: remove extra spacing for amounts and default amounts which don't contain a non-zero character to 0.00000000 (Aaron Carlucci)
Pull request description:
This PR attempts to address #1218 by removing extra spacing for amount rendering and making the default for amounts which don' contain a non-zero character to "0.00000000".
ACKs for top commit:
edouardparis:
ACK e79674972d668d823d582cb01923af8598cbe674
Tree-SHA512: f9b9e957760139251c4786679fc808447909f80ab2274f6b21222d840418f5d2b79faff759a66d7a36f05ababedab42a7aba85a5ea8a3f4586713b0c873e96d9
59035060e9b2b911809fdc225bfa862244f5f6d6 gui: refactor amount formatting (Aaron Carlucci)
c6b8133286a4009cc1e72935e30af36d43705237 gui: add space separator to amount integer (Aaron Carlucci)
Pull request description:
This PR is based on #1182 and aims to actually refactor the amount component while adding a space separator to the integer portion of BTC amount displays as per #962.
The code organization is reworked to try and separate the conversion of `bitcoin::Amount` type to a `iced` renderable `Row` elements in steps via smaller functions by:
1. Converting the `Amount` type to a string with the integer and fraction portions formatted in space-separated three digit chunks.
2. Detecting where in that string the non-zero BTC amount occurs
3. Converting the string into parts and rendering the preceding zeros and spaces with normal styling while applying a bold `Row` render element for the significant amount.
To me, this approach makes the code easier to read and is a small step toward separating the string formatting functionality from the render element building. If we find more bugs with this approach, or the team simply doesn't like the reorganization, it's fine to scrap it, as it was a decent learning exercise anyway. Looking forward to feedback.
ACKs for top commit:
edouardparis:
ACK 59035060e9b2b911809fdc225bfa862244f5f6d6
Tree-SHA512: d71b94cf261cf799891239da3795dae49d2b22ebc888b2d3400fbf754f84df6620fcdeb6b6594ef99e4de8a67089181ac8598bdc7a4aba3e71c16d89ccb63fae