Commit Graph

738 Commits

Author SHA1 Message Date
tomFlowee 463077e569 Mark tag as deprecated. 2023-05-06 16:59:41 +02:00
tomFlowee 24dcdefd8b Remove obsolete version check
This added support for an older version of Qt, but we moved to require
an even newer one. Making the check irrelevant.
2023-05-06 16:12:14 +02:00
tomFlowee 5c25710bbe Avoid work.
Don't load the currency files I'm not actually processing.
2023-05-06 14:32:49 +02:00
tomFlowee 5be3a6e1f1 Remove dead code. 2023-05-06 12:45:52 +02:00
tomFlowee 88440a6eff Various fixes in PriceDataHistory
Fixes: #16

* Don't store the initial dummy value '100,-' in the history.
* Don't store the 404 server reply as a price file.
* On switching of currency, instantly try downloading the
historical prices instead of waiting for the next restart.
2023-05-06 12:45:33 +02:00
tomFlowee d12618f6bc Fix days math
This avoids math problems when the two dates are in a different month.
2023-05-06 11:54:03 +02:00
tomFlowee 4bebaa27eb Fix use after free.
The 'erase' actually deletes the wtx, so we should not reference the
txid from it after we call erase.

Found with valgrind.
2023-05-02 20:06:46 +02:00
tomFlowee 8534f6368f New version 2023-05-02 16:07:22 +02:00
tomFlowee 2975b5e5d7 Make 'importing' not be for any new wallet. 2023-05-02 12:21:23 +02:00
tomFlowee 1929e99a4a Fix behavior on initial sync
After the sync is ended is now actually shows the QR.
2023-05-02 12:18:40 +02:00
tomFlowee 527e7895ef Merge branch 'master' into PaymentRequest 2023-05-02 10:53:16 +02:00
tomFlowee 3dfb2b3d38 Port the startupscreen and desktop receive tab too
This makes the new PaymentRequest design be used by all components.
2023-05-02 10:52:37 +02:00
tomFlowee 4f93cdface Cleanup layout of receive tab 2023-05-02 10:52:37 +02:00
tomFlowee 4ba71ff870 Improve payment-request tracking
We introduce a new WalletkeyView which is a class that provides a
thread-safe view on a single private-key in the wallet. Detecting all
transactions depositing money in that key and thus being an ideal
backend for the PaymentRequest.
2023-05-02 10:52:37 +02:00
tomFlowee d0b5134527 Create a functional Payment Request screen.
We now use a better design where the PaymentRequest object is owned by
QML.
2023-05-02 10:52:37 +02:00
tomFlowee 1e73c5bee5 Step one of rebuilding the payment-requests
This mostly removes the less than successful architecture.

This architecture stems from my first attempts at mixing C++ and QML, and
its not great.
As we can see from the removals, it touches a lot of places and
especially the wallet owning them is messy, but in QML we have to do a
lot of null pointer checks, also not exactly readable.
Lets try something different.
2023-05-02 10:52:37 +02:00
tomFlowee 374480bfdb Detect problem and bail early.
When the wallet already noticed a new block but the blockchain database
doesn't have it, we should just bail.
The only way this is likely to happen is because a previous run of the
wallet didn't write out its data. We keep the assert for that case, but
in release builds we are now more robust.
2023-05-01 21:51:25 +02:00
tomFlowee 1b2ad144c1 Avoid hitting assert
QML tends to call our getters even in unrealistic scenarios, which means
an extra check is useful to avoid hitting an assert, or doing an out-of-
bounds access.
2023-05-01 21:51:25 +02:00
tomFlowee 6ac8005ea7 Remove dupliacte option. 2023-05-01 21:51:25 +02:00
tomFlowee c89f90d253 FIx startup race condition
Ah, seems that the signal 'ApplicationActive' is also sent at the app startup,
which this code didn't handle too well.
Now we ignore this signal until we are property started.
2023-04-24 15:36:17 +02:00
tomFlowee 924774eeca Honor offline requests for this new feature. 2023-04-24 12:24:23 +02:00
tomFlowee 4384d73d10 increase version 2023-04-20 10:04:13 +02:00
tomFlowee 534ea13b7b Handle waking up too. 2023-04-19 15:28:10 +02:00
tomFlowee 22d3cc1c5f Fix accidental refactor.
Moved this yesterday, should not have.
This method is called every single time the app is behind and reaches tip.
2023-04-19 13:56:04 +02:00
tomFlowee e9d425dc35 Notice a TODO for this to-be-rewritten class
The console output shows a warning about this code, so better
note down the source of this issue.
2023-04-19 13:54:49 +02:00
tomFlowee ec065fe32a fix whitespace indent 2023-04-19 13:53:50 +02:00
tomFlowee 0559a3b79d Fix constness cppcheck issue
Avoid using a non-const iterator on a const container.
2023-04-19 13:36:34 +02:00
tomFlowee 34292dbe96 Remove unused parameter. 2023-04-19 13:35:35 +02:00
tomFlowee 644556c74a Avoid referencing a const container as non-const
That may cause the CoW container to be copied for no good reason.
2023-04-18 21:22:21 +02:00
tomFlowee 686f4ab1af Fix wallet not showing in some cases.
This handles the special usecase where we replace the only existing
wallet with another one.
2023-04-18 21:21:01 +02:00
tomFlowee bd8ded906b Move away from std::rand()
Make sure everyone uses the randomness from openssl (via Flowee
libraries).
2023-04-18 21:09:45 +02:00
tomFlowee 0c6a35876b Fix a new wallet sometimes not seeing new transactions 2023-04-18 19:29:43 +02:00
tomFlowee 79b9ec822a Avoid rounding. 2023-04-18 14:34:00 +02:00
tomFlowee 1ddcc3b05a Don't accept unconfirmed tx while doing the import 2023-04-18 14:18:01 +02:00
tomFlowee b6d895e8f5 Fix anythingNew to also check for blockheight
This means that an unconfirmed transaction doesn't stop it getting newly
added, which is needed to mark it as mined.
2023-04-17 22:47:18 +02:00
tomFlowee 309c4256e7 Special import feature for bigger bloom filters.
Fixes: #14

During import we now always send all change addresses to be monitored
for activity, even if they are empty.
The behavior of not reusing an address after its been emptied is not
universal and as such the import should account for this.

The privacy issue is really not harmed by this during import, as we
basically send all the addresses in a relatively short timespan to the
peer anyway.
2023-04-17 22:41:27 +02:00
tomFlowee ee49a11a2d Fixlets in naming, making cppcheck happy
Mostly avoiding reusing names also defined in a bigger scope.
2023-04-17 20:32:14 +02:00
tomFlowee b1320899e9 Optimize the newTransactions to avoid work
Don't do any work when the transactions that are being added are all
already known.
This is common when we send a merkleblock request to some peer after we
already have received the answer before. For instance when we double
check nothing is being omitted by some other peer.
2023-04-17 19:29:55 +02:00
tomFlowee d1d8c8ad0a Improve comment 2023-04-17 16:17:22 +02:00
tomFlowee b15f0f651d Fix a copy paste error, make this work more than once. 2023-04-17 16:17:03 +02:00
tomFlowee 2799ccb151 Make model a bit more robust in an async world.
Since recently the wallet can delete stuff, we need the model to
be more robust in accepting data not being there.

The "async" statement refers to the fact that the wallet acts
one messages from the network, which may be in any thread.
The signals from the wallet get handled by the WalletHistoryModel in the
Qt-UI-thread, asynchronous.
2023-04-17 16:16:31 +02:00
tomFlowee 35445e8e5c Reduce scope of variable. 2023-04-17 13:14:49 +02:00
tomFlowee d10db500ab Add detection of state problem
If we are lacking transactions this may cause some data inconsistencies
for the UI. Possibly causing a nullptr dereference.
This helps with early detection.
2023-04-17 12:33:42 +02:00
tomFlowee a8725ec4a9 new version 2023-04-09 11:30:26 +02:00
tomFlowee 0970d45cc4 Fix ordering of transaction history
Move the emits of newly found transactions in order to make the
(semi-)recursive call of adding transactions be done in the right
order.
2023-04-07 12:44:22 +02:00
tomFlowee adc7edb250 Make the wallet emit tx removals
Now the wallet handles inserts-in-place by making removing and then
re-adding of transactions, the 'txIndex' is no longer guarenteed to live
forever.
So we now tell the world, and specifically the history model, about the
removal of txIIndexes.
2023-04-05 19:41:40 +02:00
tomFlowee 88f1d81443 Make sure we send the bloom filter a lot less often
One notable behavior change is that we increase the 'change' gap
considerably for wallets that are known to have 'cashfusion'
transactions as those use a lot of change addresses.

This chang also increases the normal gap to avoid people losing history
when importing from another wallet.
2023-04-05 18:07:09 +02:00
tomFlowee 515b09e721 Add some logging for the new code. 2023-04-04 22:33:28 +02:00
tomFlowee e20b476357 Update fusion comment on recheck
When we notice we used all HD keys on finding a transaction, we check
it again after creating a bunch of extra keys.
Now we also use the re-created comment which is where fusion transactions
place the amount of outputs matched.

This is a purely visual change.
2023-04-04 21:55:42 +02:00
tomFlowee 9f201a2627 Start using logging categories.
Instead of dumping everything in zero, use actually distinct categories
which allows logViewer to use them better.
2023-04-04 16:24:28 +02:00