Commit Graph

321 Commits

Author SHA1 Message Date
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
tomFlowee 73e10f8bef Fix reordering of finding transactions
In our wallet we very rarely end up in a situation where we have to ask
the same transactions twice from a peer due to us having generated a
bunch of new keys from a HD wallet in the middle of a series we asked
that peer. Making the filter we sent at the start of the series be
outdated halfway through.

This is now handled properly.

This adds a unit test which tests that we now reach the right balance
and can add the same block multiple times without it failing.

Fixes: #12
2023-04-04 13:36:07 +02:00
tomFlowee a06a073595 Fix assert, as found by linter. 2023-04-03 11:46:32 +02:00
tomFlowee 6f46a18608 Follow flowee-libs changes
This implements the new API needed for the change in flowee libs.
The commit there is: 1d309cd7ae9bb668b481fe650e17e15fad037b2b
2023-04-01 23:01:37 +02:00
tomFlowee ec8fa4b95d Minor spacing fix 2023-03-29 16:06:12 +02:00
tomFlowee d0f56c85ee Don't send bloom filter more often than needed. 2023-03-29 15:43:22 +02:00
tomFlowee 082cba55ae Comments and const fixes. 2023-03-29 15:42:53 +02:00
tomFlowee 01f87acc28 Add address on QR
This exports the payment-request address to the QML side.
We use this to show under the QR the address we are requesting to send
to.

This is quite useful for users wanting to manually check if things are
going well.
2023-03-21 23:33:23 +01:00
tomFlowee 3bdebe7b8d Introduce GUI settting: show bch.
On the main screen, also known as the "Activity view" this allows the
user to choose to only see fiat or see both Bitcoin Cash and fiat values
listed next to each transaction.
2023-03-21 22:28:41 +01:00
tomFlowee c4836213e5 Remove unused include 2023-03-21 21:55:41 +01:00
tomFlowee 4f595b5a36 Document "Pay" properties. 2023-03-21 21:43:34 +01:00
tomFlowee f05f3d52a3 Fix rounding for negative numbers. 2023-03-15 16:03:19 +01:00
tomFlowee d7963e4d82 Make pasting a payment url work in more usecases
This moves the code simply to a detail, allowing us to parse things like
the amount as well in a bip21 compatible URL in such usage.
2023-03-13 18:17:23 +01:00
tomFlowee 09b03faab7 Make sure that the hamburger menu is removed on broadcast
We now make sure that the menu accessible from the header is only
there when we are actually on the page where it is relevant.
2023-03-13 18:17:23 +01:00
tomFlowee 43c5f250d5 Merge branch 'master' into buildPayment 2023-03-13 12:15:59 +01:00
tomFlowee 697024d823 Fix one more usecase for unknown historical price. 2023-03-13 12:12:42 +01:00
tomFlowee 8b3a85a88b Synchronize property names
This makes the payment detail (output) have the same property name as the
payment itself which was supposed to just be a proxy for a single-output
payment.
Consistency is good.
2023-03-13 11:56:35 +01:00
tomFlowee a6e9001e4c Fix the cent-less currency display
This partly reverts earlier "fix" from 9b87590 and fixes the
problem in the right place.

fixes #13
2023-03-12 20:45:10 +01:00