1784 Commits

Author SHA1 Message Date
edouardparis
9707a58ee2
Merge #1099: Lianalite login
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
2024-08-22 11:28:31 +02:00
edouardparis
80077905a6 Revert ctx state for remote backend when user clicks on previous 2024-08-21 16:39:48 +02:00
edouardparis
cc57f8f749 fix: load hotsigners even for wallet with remote backend 2024-08-21 16:39:48 +02:00
edouardparis
26d7e317ef fix: retrieve wallet_id from settings.json 2024-08-21 16:39:48 +02:00
edouardparis
0fbba9eaa2 Add backend section to settings to send invitation 2024-08-21 16:39:48 +02:00
edouardparis
5e4c04fa80 Add invitation process to add wallet flow 2024-08-21 16:39:48 +02:00
edouardparis
f7dde3d6ec Add redirect_to query parameter to otp request url
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.
2024-08-20 17:40:51 +02:00
edouardparis
92ee94edbc Add login page to connect to remote backend 2024-08-20 17:40:51 +02:00
edouardparis
224aa66231
Merge #1231: change min window height to 650
208c53814845a9b8a9078c1a3380b5912029100c change min window height to 650 (pythcoiner)

Pull request description:

  fixes #1230

ACKs for top commit:
  edouardparis:
    utACK 208c53814845a9b8a9078c1a3380b5912029100c

Tree-SHA512: ef2cccb0a2def6ca35fada5915a5267483ad57c29094852ee9ad95e22762a806565bd22c6b359d037c701103d8ba5a5b22480c3bef4308ef73c149e579444791
2024-08-19 11:31:32 +02:00
pythcoiner
208c538148 change min window height to 650 2024-08-15 15:34:15 +02:00
edouardparis
39c0458f0b
Merge #1229: fix wrong units in remaining time warning
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
2024-08-14 15:22:05 +02:00
edouardparis
c70a5cb9fe fix wrong units in remaining time warning
close #1226
2024-08-14 14:26:53 +02:00
Antoine Poinsot
d2d9d11290
Merge #1214: gui: add the version in the window title bar
79f3f5968f5d97e2588bd9f3a08d9d5b8cbbaefc gui: add the version in the window title bar (pythcoiner)

Pull request description:

  This PR add the version (major+minor) into the window titlebar, for both installer & wallet.
  close #1181

  ![image](https://github.com/user-attachments/assets/f4cc883c-dbae-4128-89ea-c9b047e3b1de)

  ![image](https://github.com/user-attachments/assets/013d5c89-9df1-4883-a014-802b255813b8)

ACKs for top commit:
  darosior:
    ACK 79f3f5968f5d97e2588bd9f3a08d9d5b8cbbaefc

Tree-SHA512: 4044f501f1e05a533f3e7b98163845a9610215ff053267db8792e2bf975f63eefb187e1f6c78210f8f06a8eaac7d91037f1635da914040674d88852cce45332f
2024-08-06 11:17:15 +02:00
pythcoiner
79f3f5968f gui: add the version in the window title bar 2024-08-06 01:46:31 +02:00
Antoine Poinsot
1f8d17e414
Merge #1212: DesKeyChecker.check() => check the change multipath is not hardened
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
2024-08-05 11:54:31 +02:00
Antoine Poinsot
90df14ce57
Merge #1180: Save transactions in database
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
2024-08-02 12:01:19 +02:00
jp1ac4
bf1e90e0fa
sqlite: merge two migration tests 2024-08-02 10:49:33 +01:00
Antoine Poinsot
e8836757c7
sqlite: add a unit test for migration between v4 and v5 2024-08-02 10:49:32 +01:00
jp1ac4
af5fddfc49
commands: use database for TxGetter 2024-08-02 10:49:32 +01:00
jp1ac4
a86d12d629
commands: get wallet transactions from db 2024-08-02 10:49:31 +01:00
jp1ac4
afa6a51601
poller: save transactions in database
This includes changes from darosior's commits:
3e7d968508a71ffa740576d6bf9432611e78f4a5
e2225a5110ca981c340eef329182e702b375b55f
2024-08-02 09:41:16 +01:00
Antoine Poinsot
ba4c819918
sqlite: separate DB migration from constructor
This is a slightly modified version of darosior's commit:
d826f9fa6336de6eb293a85af044c2c95550cfb5
2024-08-02 09:39:31 +01:00
pythcoiner
8d495579e1 lianad: DesKeyChecker.check() => check the change multipath is not hardened 2024-08-02 07:08:38 +02:00
edouardparis
b94796828d
Merge #1219: GUI: Fix amount rendering
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
2024-08-01 10:07:45 +02:00
Aaron Carlucci
e79674972d gui: remove extra spacing for amounts and default amounts which don't contain a non-zero character to 0.00000000 2024-07-31 11:01:04 +02:00
Antoine Poinsot
50e7ffafa4
lib: setup the connection to bitcoind before the connection to SQLite. 2024-07-30 13:18:11 +01:00
edouardparis
0de58cf3b7
Merge #1198: GUI: Refactor amount formatting
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
2024-07-29 18:45:29 +02:00
Aaron Carlucci
59035060e9 gui: refactor amount formatting 2024-07-29 18:06:47 +02:00
Antoine Poinsot
b2aeafab56
Merge #1186: Add minimum feerate to TooLowFeerate error message
8be0d9856b29eb30593ae7614fe74430ffd206d4 commands: add minimum feerate to TooLowFeerate error message (Aaron Carlucci)

Pull request description:

  This PR adds the minimum feerate value into the `TooLowFeerate` error message for additional context. Addresses the second bullet point in #853.

ACKs for top commit:
  jp1ac4:
    ACK 8be0d9856b29eb30593ae7614fe74430ffd206d4. Thanks!

Tree-SHA512: 3a0e9c69ddb40433faf1e58c16dfee0212641b34478eddeda99388ebf82e2fb466633ab8f79c9bb0bb784f4a46807aa0a5abd65b9d92506144b84addb01dfdd8
2024-07-29 13:53:27 +02:00
Antoine Poinsot
b9d04a55f2
Merge #1207: gui: in DefineSpend.update() call check_valid() if Coins updated
6dd3b6a3a9f0426b67e167de38b5baa09ee58fda gui: in DefineSpend.update() call check_valid() if Coins updated (pythcoiner)

Pull request description:

  close #1167

ACKs for top commit:
  jp1ac4:
    Tested ACK 6dd3b6a3a9f0426b67e167de38b5baa09ee58fda.

Tree-SHA512: f6c5f057756d5a4c1a767eaf65303146c696bacd1d6910125fdaf070b0eafbfc9bf2836cf2c4b3f6434e253e045b5736fb65bc297ecd2b52b23df1c8509f4c1f
2024-07-29 13:49:29 +02:00
Antoine Poinsot
95258380d8
Merge #1205: gui: bump bicoind version to 27.1
2514d0dedba61b6a9f546bedbe122c30614d7a52 gui: bump bicoind version to 27.1 (pythcoiner)

Pull request description:

ACKs for top commit:
  jp1ac4:
    ACK 2514d0dedba61b6a9f546bedbe122c30614d7a52.

Tree-SHA512: 28245c41dddce543b6ebdb81f423f503e64fff3da42777d5e71b085ff9cae86a340f1218bb8e2ac77e351637426a4a95efc576906d282720e61c509592b01d19
2024-07-29 13:48:18 +02:00
Antoine Poinsot
6c52e28c7e
Merge #1210: gui: app::view::psbt::change_view() display amount and address 2 rows
ea47088195337580bbc53b322b6632562743ec44 gui: app::view::psbt::change_view() display amount and address in separate rows (pythcoiner)

Pull request description:

  ![image](https://github.com/user-attachments/assets/c0a3ac45-6fee-4661-9521-dfd2c77d8b66)
  close #1192

ACKs for top commit:
  jp1ac4:
    Tested ACK ea47088195337580bbc53b322b6632562743ec44.

Tree-SHA512: b8466638c1cc59ebe3a9568cdd4d98f80f6a797d7bb2e0052e40b62461e7978c353990a5e8d2c31c216c0fb3514ca50b68902fae57f34255eaf265ef9bb5357e
2024-07-29 13:46:47 +02:00
Antoine Poinsot
bb68fb5ec1
Merge #1092: spend: randomized anti-fee sniping
f2791744d8ad3068d12a39bb07f3745012785a5f spend: set locktime for anti-fee sniping (jp1ac4)

Pull request description:

  This is to resolve #44.

  In the first commit, I combine the destinations and change parameters in `spend::create_spend` in order to avoid "too many arguments" error when adding a new parameter. I think these two parameters combine naturally so that `destinations` includes both recipients and change address.

  The second commit sets locktime following the same approach as Bitcoin Core:
  - locktime is set to current tip height, but randomly (about 10% of cases) value is set up to 100 blocks earlier
  - if tip is more than 8 hours old, locktime is set to 0

  For randomness, I'm currently using the current time's milliseconds in order not to add another dependency, which I think is good enough for this use case.

  For consistency, I decided to use "locktime" everywhere instead of "lock time" or "lock-time".

ACKs for top commit:
  darosior:
    ACK f2791744d8ad3068d12a39bb07f3745012785a5f

Tree-SHA512: 69a57cf664e24b32a835c35eaf9016961b2d0f396891a826582044e6302b2ca04dcf5bf2617b5e18dcbfa25cc254a6e8025262718984095677c829ce051a66cc
2024-07-29 12:32:29 +02:00
edouardparis
749581afe4
Merge #1204: doc: update signing device support & versions for taproot
a94138ebb3ed8de92dea75f850fc0f573e7b4652 doc: update signing device support & versions for taproot (pythcoiner)

Pull request description:

ACKs for top commit:
  jp1ac4:
    ACK a94138ebb3ed8de92dea75f850fc0f573e7b4652.

Tree-SHA512: 3c68c113a187bca0619bc01b7489e62106f3940cfb2ac6c71a7f5f329ba9651ca130a1ffffa39f861b1143ba845b0e740020bab8f2a383e469d57621b1f489a7
2024-07-23 12:15:32 +02:00
pythcoiner
2514d0dedb gui: bump bicoind version to 27.1 2024-07-23 04:38:28 +02:00
pythcoiner
a94138ebb3 doc: update signing device support & versions for taproot 2024-07-19 18:47:42 +02:00
edouardparis
ee9cfb9b73
Merge #1211: Add list of words for new generated mnemonic in share xpubs panel
c638350eb9c69c6375ae9c59599e3604c4387d9a Add list of words for new generated mnemonic in share xpubs panel (edouardparis)

Pull request description:

  Because the share xpubs is not anymore a install process, no information is stored. If user want to generate a new mnemonic and share it xpubs he must be aware that he has to backup it.
  ![20240719_15h22m12s_grim](https://github.com/user-attachments/assets/2caacffd-1698-422e-9cd3-c5cf4aee795a)

  close #1203

ACKs for top commit:
  jp1ac4:
    Tested ACK c638350eb9.

Tree-SHA512: 616d208e4923a442dc4b0306a157fe069679b8b78f28cb0ba0b2ad075f811ba527e84d48ff45e706cb0d62c68d56b761f50d4993bc76c3365b9579888b8c26f8
2024-07-19 16:05:48 +02:00
edouardparis
c638350eb9 Add list of words for new generated mnemonic in share xpubs panel
close #1203
2024-07-19 15:56:55 +02:00
pythcoiner
ea47088195 gui: app::view::psbt::change_view() display amount and address in separate rows 2024-07-19 07:00:25 +02:00
pythcoiner
6dd3b6a3a9 gui: in DefineSpend.update() call check_valid() if Coins updated 2024-07-19 04:24:25 +02:00
edouardparis
e81a2d3a9e
Merge #1199: Remove participate wallet process for share xpubs simple panel
6cbf81a3c5d8a7a4e1802581755c7c5d05766b66 Remove participate wallet process for share xpubs simple panel (edouardparis)

Pull request description:

  ![20240717_17h05m05s_grim](https://github.com/user-attachments/assets/91f0f608-d0d0-49a1-abd9-6d5cf01ca5ee)
  ![20240717_17h05m17s_grim](https://github.com/user-attachments/assets/b39f4a13-e581-45b7-a306-09381d303cf8)

ACKs for top commit:
  jp1ac4:
    Tested ACK 6cbf81a3c5.

Tree-SHA512: 4245513005e01b2eece4bf099c0b38b1aa6c23617b53bdd811f5d78c9800133c0dfbbed2f06b70e8ace8725482c9f0c9b0266d193c9b7947d8c5ae9ef8641ac9
2024-07-18 17:28:43 +02:00
edouardparis
8b33788109
Merge #1189: installer: reset signing device registration if descriptor change
fe595b2448f105b45413218b5c1319678d4d5860 installer: reset signing device registration if descriptor change (pythcoiner)

Pull request description:

  closes #1157

ACKs for top commit:
  edouardparis:
    ACK fe595b2448f105b45413218b5c1319678d4d5860

Tree-SHA512: fa3b8299bae4c91c2a64248cde4e6b3a810e16bce5cd46a28499cbbfb5d6169489d6ebd77fdd323c2542564787bb225943b0ba9177797da5b0dbc6912e57b885
2024-07-18 16:59:47 +02:00
edouardparis
bf9bf9a26f
Merge #1200: gui: update SettingState.wallet on WalletUpdated() message
e34062a417a3533a2c42f776a495c2810775983b gui: update `SettingState.wallet` on `WalletUpdated()` message (pythcoiner)

Pull request description:

  This PR fixes #1170.

  result Message from `update_key_aliases()` emited [here](0a7ff2b0ea/gui/src/app/state/settings/wallet.rs (L152)) was not catch in `SettingState.update()`.

ACKs for top commit:
  edouardparis:
    ACK e34062a417a3533a2c42f776a495c2810775983b

Tree-SHA512: 81a90c96f7667eb9a0b55a7a1f918e1621e72bbd71ff30d1551e04746f9fa257d9d37a405bf0ca58b7f2b7039d2dcc16b3869da3c3643f61652d0a310c23a11b
2024-07-18 16:11:57 +02:00
pythcoiner
e34062a417 gui: update SettingState.wallet on WalletUpdated() message 2024-07-18 15:56:24 +02:00
pythcoiner
fe595b2448 installer: reset signing device registration if descriptor change 2024-07-18 15:36:31 +02:00
edouardparis
6cbf81a3c5 Remove participate wallet process for share xpubs simple panel 2024-07-18 15:26:39 +02:00
edouardparis
86a79759e6
Merge #1201: gui: TransactionPanel.update() -> update label if tx already exists
fdf01cc095787c5cf947841c1902a22d500b81d7 gui: TransactionPanel.update() -> update label if tx already exists (pythcoiner)

Pull request description:

  close #1174

  labels were not updated if tx already exists

ACKs for top commit:
  edouardparis:
    ACK fdf01cc095787c5cf947841c1902a22d500b81d7

Tree-SHA512: 0143eab573caa9c0db32895da1f2ee732b0ddc1f0455a9b9d0aab245502f336a807cdc44a8a762c1b00962129bce67de3a80e8f833f1265f87b3a4278e2a7585
2024-07-18 15:07:09 +02:00
pythcoiner
fdf01cc095 gui: TransactionPanel.update() -> update label if tx already exists 2024-07-18 14:33:46 +02:00
edouardparis
48d34904b0
Merge #1193: add coldcard support
546d2321efba6cfb487edfd68b02b0b0ff22d56c gui: add coldcard support (pythcoiner)

Pull request description:

  This PR add support for taproot w/ coldcard devices
  We need to wait [async-hwi PR](https://github.com/wizardsardine/async-hwi/pull/92) to be merged berfore merge this one.

  Tested w/ internal key & taptree on Mk4

ACKs for top commit:
  edouardparis:
    ACK 546d2321efba6cfb487edfd68b02b0b0ff22d56c

Tree-SHA512: 4e1bf3782a3533c2f0bb06010397ed2254fbc4420160a4312f7ad58ee85e5225d8543395863cf25efbb3301b9c1e10d6d11f158d3385cdd1cf8d6780edff92a0
2024-07-18 11:10:46 +02:00
pythcoiner
546d2321ef gui: add coldcard support 2024-07-18 10:05:06 +02:00