1778 Commits

Author SHA1 Message Date
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
edouardparis
0a7ff2b0ea
Merge #1086: GUI: Stateless remote backend integration
3b60a57bd4e30f40d3bd3efae52a8e488bc060da Remove bitcoind from settings panel if remote backend (edouardparis)
5e2fe3b6c1e9099dc2f087b122bef1c398ebec62 Add liana remote backend (edouardparis)
ca662eea6a40919e1f51275ef1915c892f13e7ce Add lianalite module (edouardparis)

Pull request description:

  Implements the Daemon Trait for a http client consuming signet.lianalite.com API (**only signet for now**).
  Everything is **stateless**, it will not create configuration files or modify settings.json files, but only communicate with the remote backend.

  In order to test it, you need an account and wallet created on `signet.lianalite.com`, then run:
  ```
  cargo run -- --email <email>
  ```
  the cli will then ask you for the otp token present in the authentification email.

ACKs for top commit:
  edouardparis:
    Self-ACK 3b60a57bd4e30f40d3bd3efae52a8e488bc060da

Tree-SHA512: 39b0436e3cd484b2a4b90115994ffd7ba1c3bc578549c5e992b7ee3a77625f821fbab9c6325b44ebd6f1058fc25ac2f5eee73962c8364845a2e85b26471e71ca
2024-07-17 11:51:00 +02:00
edouardparis
0c1c82984c
Merge #1145: Add -h/--help args to the GUI
243f4eac0aaf3def57b3a1107ff8db67749609e7 Add -h/--help args to the GUI (pythcoiner)

Pull request description:

  ```shell
  $ liana-gui -h

  Usage: liana-gui [OPTIONS]

  Options:
      --conf <PATH>       Path of configuration file (gui.toml)
      --datadir <PATH>    Path of liana datadir
      -v, --version       Display liana-gui version
      -h, --help          Print help
      --bitcoin           Use bitcoin network
      --testnet           Use testnet network
      --signet            Use signet network
      --regtest           Use regtest network

  ```

  Closes #1073

ACKs for top commit:
  jp1ac4:
    Tested ACK 243f4eac0aaf3def57b3a1107ff8db67749609e7.

Tree-SHA512: a046966f40da178fd736bcbe0e8042b03fc671baafab71ea3e1413ece3667f915d40f40437c10ecdd27476454d3e552760ac0d2c5d5bc8b21a0b519980cfa9b6
2024-07-17 11:22:32 +02:00
edouardparis
cf008a7243
Merge #1190: disable previous button if device processing
f457dd447cd4af89aace9f56e085073590dde8e5 installer: at descriptor registartion step, disable previous button if device processing (pythcoiner)

Pull request description:

  This PR diasable the previous button  at the descriptor registration step if a device is still processing, avoiding issues like #1158.
  The other way around can be to reset the state of `self.processing` if user go back, but look less clean to me.

  closes #1158

ACKs for top commit:
  edouardparis:
    utACK f457dd447cd4af89aace9f56e085073590dde8e5

Tree-SHA512: 7fee81b17d72f88eb1a673e2875ec9998e1ec7567afa1b487ca07b3d95c8fd1c161159660e37a2e1505b871ce2bf9286a75e5c055f777844062a78e0a08bc695
2024-07-17 11:18:51 +02:00
edouardparis
d93e610b38
Merge #1139: add specter support for tap-miniscript
7e36256f67929ab6c8f829f2ce385f80d7f0354f add specter support for tap-miniscript (pythcoiner)

Pull request description:

  This pr enable specter support for tap-miniscript.
  tested:

  descriptor registration
  spend trough internal key path
  spent trough taptree path

ACKs for top commit:
  jp1ac4:
    Tested ACK 7e36256f67929ab6c8f829f2ce385f80d7f0354f.

Tree-SHA512: 0407979575d206595889ceb0777c7af329979600c9a5348d5f867f8069a9ad417fc805923f5186cff3aa0c9d3c8cfaa31373e148c182112ffa17fc533d287f20
2024-07-15 16:48:59 +02:00
edouardparis
696036f648
Merge #1111: Add instruction to refresh Antoine PGP key
ba9213e48c232a3ae9fcc79506f2ebbe76995cf8 add instruction to refresh Antoine PGP key (pythcoiner)

Pull request description:

  fixes #1077

ACKs for top commit:
  edouardparis:
    ACK ba9213e48c232a3ae9fcc79506f2ebbe76995cf8

Tree-SHA512: 4105f7f568c923e1997e804c45f66ecfe982be28e8459c007009a5280d7cbdab8386e263ce57117784eac1791987035a9d88ae5270dbaf5f60bb144ccbd2fa7b
2024-07-15 15:22:13 +02:00
Aaron Carlucci
c6b8133286 gui: add space separator to amount integer 2024-07-11 11:35:34 +02:00