Commit Graph

633 Commits

Author SHA1 Message Date
tomFlowee 60dfe486fd Fix various UX issues with encrypted wallets. 2022-06-24 15:38:25 +02:00
tomFlowee de9dcca659 Honor the offline flag better. 2022-06-24 15:13:18 +02:00
tomFlowee 5720b9c2d0 Move wallet name to its own file.
This allows us to just fully encrypt the wallet.dat while still being
able to see the name of the wallet.
2022-06-24 15:02:52 +02:00
tomFlowee 47eba671e8 Make a fully encrypted wallet forget everything on close 2022-06-24 14:13:07 +02:00
tomFlowee a409b40830 Merge branch 'master' of banana:floweepay 2022-06-24 13:13:37 +02:00
tomFlowee a0116821ba Minor cleanups. 2022-06-24 00:35:20 +02:00
tomFlowee bab952b94d Make sync work together with encryption status
A fully encrypted wallet won't be tried to be synchronized (no peer
connections opened) and the moment we decrypt it we'll start the sync.
2022-06-24 00:34:08 +02:00
tomFlowee 940b1c9010 Make simple getter const. 2022-06-23 13:58:36 +02:00
tomFlowee 2dad7dd78c Follow cppcheck suggestions
Minor optimizations.
2022-06-23 13:57:44 +02:00
tomFlowee 18459769e0 Initialize variable. 2022-06-23 13:57:00 +02:00
tomFlowee 5e8c26695e Remove unneeded assert. 2022-06-23 13:56:44 +02:00
tomFlowee c324b54b1a the std version is not thread-safe. 2022-06-23 13:47:29 +02:00
tomFlowee 745d856e4c Linter bugfixes
Catch tiny (once) memory leak.
Rename variables that have the same name as an outer context.
2022-06-22 15:58:05 +02:00
tomFlowee 017e51c3ba Make a locked wallet behave better in the UI. 2022-06-20 22:52:57 +02:00
tomFlowee 589b1c212c Remove unneeded check
We now use size_t, which is unsigned and so no need to check if its
positive.
2022-06-20 22:50:11 +02:00
tomFlowee 66e1501812 Avoid confusing variable naming.
Don't use the same variable-name in smaller scope (shadowing).
2022-06-20 22:49:29 +02:00
tomFlowee 9acc505f8b Make compile 2022-06-20 18:46:27 +02:00
tomFlowee 9c0adc3d71 Refactor menu population
The menu item QML control has a big flaw, you can't hide items
for specific usecases. Visibility works, but the thing still
takes space.

It probably makes much more sense to simply not add the menu
items for cases where they make no sense, as opposed to making
them invisible.

For this purpose we switch to cheap Action objects and populate
the ConfigItem menu on opening.
2022-06-19 23:41:06 +02:00
tomFlowee d8750ca021 Add more support for encryped walles in the UI 2022-06-19 22:30:11 +02:00
tomFlowee 2be19cc9d7 Make the setEncryption method be more straight forward
have less 'smart' side-effects.
2022-06-19 14:38:34 +02:00
tomFlowee 7558fb1517 Refactor encryption, pass pwd when needed. 2022-06-19 14:29:27 +02:00
tomFlowee 9a2ea5a951 Be consistent in our usage of the encryption class 2022-05-18 20:41:38 +02:00
tomFlowee 263418cffc Add various encryption UI parts. 2022-05-18 20:25:03 +02:00
tomFlowee 5caa359a0e Improve Dialog component
Make the width be better decided and allow custom
loaded content.
2022-05-18 20:16:19 +02:00
tomFlowee 7faba9d19d Make strings translatable. 2022-05-18 17:32:23 +02:00
tomFlowee 4bf79a7ae4 Add quick-and-dirty UI for encryption details.
Also avoid trying to save an encrypted wallet from the PaymentRequest
2022-05-18 15:48:50 +02:00
tomFlowee 1facb553d8 Fix order of initialization
This makes testnet possible to use again.
2022-05-18 13:16:27 +02:00
tomFlowee 9afdad806f Add more encryption support to the QML classes.
Also allow better interaction with the wallet.
2022-05-18 12:59:01 +02:00
tomFlowee dc0ff2e4ba Load and save encrypted wallets. 2022-05-17 23:51:57 +02:00
tomFlowee 751d8f2119 Add test for saveTransaction 2022-05-17 22:49:01 +02:00
tomFlowee e120df9b71 Implement fully encrypting the wallet files.
For the 'fullyEncrypted' option we now simply fully
encrypt the entire blob of both the secrets file as well
as the wallet.dat (which transactions we own).
2022-05-17 22:26:48 +02:00
tomFlowee 071dcaeac6 Fix typo in comment. 2022-05-17 16:22:10 +02:00
tomFlowee f0ca231e7a Make the re-loading of an encrypted tx work. 2022-05-17 16:21:59 +02:00
tomFlowee fe6fa98ff2 Make full-encrypted encrypt the transactions
This additionally makes the password get hashed more often and we create
an 'iv' from it as well.
2022-05-17 00:44:51 +02:00
tomFlowee a58bf9f09f Make basic wallet-encryption work.
We encrypt using a standard AES256 encryption scheme.
The key is 256 bits and we derive that from a user provided password
which we double-hash (sha256). Additionally we use a randomly generated
salt for a specific wallet that is fed into the hashing algo as well.

This version simply encrypts the private keys of a wallet, which makes
it quite basic. A good start.
2022-05-14 14:34:28 +02:00
tomFlowee 2accfa9700 Start wallet-encryption 2022-05-13 19:29:25 +02:00
tomFlowee fdb1327fb2 Follow renames in flowee libs on CKey class 2022-05-11 21:01:57 +02:00
tomFlowee ba589abbea Fix typo in methodname. 2022-05-11 21:00:48 +02:00
tomFlowee 66c8dbbd4c Fixes 2022.05.0 2022-05-03 21:33:35 +02:00
tomFlowee 03b8174d9f Prepare for release, set version 2022-05-03 19:49:26 +02:00
tomFlowee 3aeb074b8f Import translations from the community 2022-05-03 19:47:24 +02:00
tomFlowee 67bb23dd5a Make link on older systems. 2022-05-03 18:48:18 +02:00
tomFlowee c71066a168 Avoid opening multiple notifications due to async 2022-05-01 19:41:41 +02:00
tomFlowee 4a07261c31 Also count number of transactions. 2022-05-01 17:36:11 +02:00
tomFlowee b49bef36bf Avoid annoying notification 2022-05-01 17:36:00 +02:00
tomFlowee 3cb6e2e0f1 Remove manual testing setup. 2022-04-30 21:06:49 +02:00
tomFlowee 9cfe41c9bb Persist muting of block notifications. 2022-04-30 21:06:49 +02:00
tomFlowee 70d042fd05 Make notifications be in local currency.
This uses the current exchange rate to show the new transactions value.
2022-04-30 20:14:53 +02:00
tomFlowee 7a75d1b084 Move ownership of PriceDataProvider
it is now created and owned by the app singleton.
2022-04-30 19:44:06 +02:00
tomFlowee f5a386feca Cleanup PriceDataProvider class and API
fixed some typos and similar.
2022-04-30 15:01:45 +02:00