Commit Graph

1388 Commits

Author SHA1 Message Date
tomFlowee bb4e0bc138 Always show BCH value on testnet
The feature to show only the exchange-rate based value on the
main screen doesn't make sense on anything but mainnet due to
the simple fact that thats the only one that has an exchange rate.

We hide the feature on testnet and make it always show the BCH
value on the overview screens.

Notice that the actuall setting, as written in the config file,
is shared between chains. We only have one confg file. So any
solution with default values would not work.
2023-05-02 11:14:15 +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 167c590b78 Use triple equals in JS 2023-05-01 21:51:25 +02:00
tomFlowee 6ac8005ea7 Remove dupliacte option. 2023-05-01 21:51:25 +02:00
tomFlowee cd62fbcfe5 Move the info popup above the rest
We no longer show the feedback text below the address label
and additionally the tapping of the address label will also
cause the copying to be started.
2023-04-25 14:18:57 +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 5d2671b772 Handle fast tapping on the keyboard
This solves the UX issue where tapping a certain button fast in
sequence, we only acted on every other one.
Turns out, half were registered as 'double clicks'.
2023-04-19 15:04:39 +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 3346342784 Add 'max funds' feature to 'build transaction'
Allow the selection of all funds in a wallet to be sent to a
destination.

This also refreshes the UI layout a little.
2023-04-18 22:09:45 +02:00
tomFlowee 47b4e1ea0a Synchronize the errorRed colors
This adds a errorRedBg 'background' color for a popup with normal white
text on top of it.
2023-04-18 21:54:43 +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 53166485c3 Add more background around logo
Some phones have rather extreme rounded edges around the image,
which cut off too much of the logo to be comfortable.
This makes the logo a bit smaller with more blue background that
is Ok to be cut off.
2023-04-18 14:52:53 +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 d9d92847f6 Make section names stick to the top of the view. 2023-04-18 10:33:28 +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 9a6b9686b9 UX; move most complicated to bottom. 2023-04-17 14:27:54 +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 939a22a015 Show 'payment to self' better 2023-04-08 14:19:01 +02:00
tomFlowee ab779242aa Add scroll thumb to the history list.
This allows us to navigate a longer list much easier.
2023-04-08 14:05:44 +02:00
tomFlowee b5dce3070a Make ScrollThumb better suited for mobile. 2023-04-08 14:03:23 +02:00
tomFlowee bb94edee23 Only show the title "your wallets" when you have > 1 2023-04-08 12:53:04 +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