Commit Graph

738 Commits

Author SHA1 Message Date
tomFlowee 3926268b5d UX bugfix; only show instapay limit on payment scan
This makes sure that if we use the QR scanning page for scanning a
private key, this does not list our intapay limits.
2024-05-06 22:05:33 +02:00
tomFlowee cb6fdd412f New version 2024-05-06 22:05:33 +02:00
tomFlowee ad53051b3a Go with the times. 2024-05-05 20:53:19 +02:00
tomFlowee 16d52b9383 Make camera stuff available for desktop app
In case the configure step found the QtMultimedia libs, we also
include the camera / QR-scanner functionality in the desktop
app since users may use a laptop which contains a camera.
2024-05-05 20:52:26 +02:00
tomFlowee da8802c6d1 Re-do the 'import wallet' screen (mobile)
This completely re-designed the 'import wallet' screens on
mobile.
We use the various new features available now, most importantly the
ability to detect derivation and start-height from an electrum
indexing server.
2024-05-05 20:52:26 +02:00
tomFlowee 46d73996d7 Make the ImportHandler & IndexerServices work together
We now get an actual endpoint from the IndexerServices which is handed
to the ImportHandler for remote services.

This also includes a bunch of bugfixes and basic 'make it work' stuff.
2024-05-03 11:53:08 +02:00
tomFlowee 9ec9632999 Add helper method FloweePay::addressForPrivKey
Also use the helper method in Flowee_utils:
static PrivateKey PrivateKey::fromBase58(std::string);
2024-05-01 22:19:14 +02:00
tomFlowee 49b10a6842 Add xpriv import and detection 2024-04-30 21:51:16 +02:00
tomFlowee 25a2fce9f2 Add support for xpub strings.
This allows the xpub type strings to be identified and used. Nobody uses
it at this time, though.
2024-04-29 12:15:43 +02:00
tomFlowee d3baf2495a Add CliboardHelper support for privatekeys + seeds. 2024-04-29 12:15:43 +02:00
tomFlowee e7c937cae1 Integrate into the app singleton 2024-04-29 12:15:43 +02:00
tomFlowee 6b31d46892 Add IndexerServics to find electrum indexers
This does not hardcode any indexers, as that would be fragile as
well as painting a bulls-eye on the backs of the server operators
for ddos targets.

Instead this reuses the same concept from Satoshi's Bitcoin. We have
DNS feeds (currently only one) maintained by a crawler.
This finds us a handful of Electrum servers.
We connect to one of those to find more servers, notice that this is
not SSL encrypted because we only have an IP address at that time
while SSL wants a hostname.

This quick connection over plainnet is there just to fetch the
server list known to the server, we can then open an SSL connection
to any of those.
2024-04-29 12:15:43 +02:00
tomFlowee 7a5a9d8b41 Expand ImportHandler to support privkeys etc too. 2024-04-27 21:05:01 +02:00
tomFlowee 930bedfeaa Add copyright headers to new class 2024-04-23 12:58:01 +02:00
tomFlowee ab75ae136f Start new class ImportHandler.
ImportHandler can connect to an Electrum Server and
check different derivation paths etc for a given seed.
2024-04-23 12:55:51 +02:00
tomFlowee dbed7c7a69 Reject transactions of v >= 10
This is purely a future-proofing measure, don't accept transactions that
are likely to be handled differently than todays transactions.
Since the May 2023 upgrade versions other than 1 or two are not allowed
on-chain, but before that some version 4 transactions were mined (and some
negative numbered ones longer ago).

Talks about a version 10 transaction has started, so make sure this software,
if it is still running at someone's machine, will already reject higher
version transactions because we can't know if they are compatible or not.
2024-03-13 17:03:37 +01:00
tomFlowee 032f20d2dd On Desktop, show tooltip with exact mined date.
If the timestamp is something vague like "half an hour ago" then the
tooltip will show the to-the-minute correct timestamp.
2024-03-05 22:07:09 +01:00
tomFlowee d07a8f3355 new version 2024-02-27 19:42:39 +01:00
tomFlowee d1dc483b18 A little counter balance for big bloom filters
Last year I increased the bloom filters to make sure that bcom wallets
could be imported with their weird behavior.
The side-effect has been that wallets imported that have 3K addresses
and up start to have massive amounts of false-positives on their bloom
filter during import.
So while the hacks done before were for wallet vendors intentionally
keeping their list of private keys small (100 or so), we know we can
thus turn off said weird workarounds when the wallet is in actual fact
much larger. And thus save bandwidth.
2024-02-27 19:41:35 +01:00
tomFlowee 15411010b0 Avoid rollback when not needed
This now uses a shared-pointer and moves the creation to the point where
we know the new data is actually a transaction for us, avoiding work
when the bloom filter caught a transaction not actually for us.
2024-02-27 19:41:09 +01:00
tomFlowee 920e5d470c Split bloom filter and private-key ownership.
Now we view the creation of more private keys, and how many, as a
separate concept as the bloom-filter 'gap' counts.

This cleans up the concepts of bloom filters, we now use the
design as documented on;

https://codeberg.org/Flowee/pay/wiki/dev/bloom
2024-02-27 16:07:02 +01:00
tomFlowee fc407ee7f2 Improve debug output features. In debug builds.
This removes the 'debug' logging (again) in non-debug builds,
but it also adds a new 'debugFile' argument where the user can
point to the logs.conf (as used by all flowee server components)
which allows setting of log levels per section, and more.
2024-02-26 23:09:56 +01:00
tomFlowee a2560d98a7 Separate 'singleAccount' concept between UIs
The isSingleAccount property controls if the UI is simple or more
complex.
The single account setup doesn't show you that you have any concept on
differnt accounts at all. No account chooser etc.

On Desktop, however, we choose to always show the archived wallets
anyway. Even though its not in-your-face. Which makes the behavior
between those UIs slightly different.
The addition of the limitedArchiveView property is meant to
facilitate that.
2024-02-14 00:02:53 +01:00
tomFlowee 04c4c7ec03 Avoid using a not existing account 2024-02-14 00:02:53 +01:00
tomFlowee 8c0210b0fe Add content to desktop TransactionDetails screen. 2024-02-12 23:01:14 +01:00
tomFlowee dfa96a79a5 Handle transactions being deleted while scrolling. 2024-02-10 21:56:59 +01:00
tomFlowee 3a254cdb69 Add mutex lockers where the m_wallet is used. 2024-02-10 21:56:59 +01:00
tomFlowee f0c9db2703 Improve debug logging slightly 2024-02-10 21:56:59 +01:00
tomFlowee c48f8500b5 Fix virtual transaction showing up in some cases
In very rare cases on flusing the 'new since' feature we'd end up with a
virtual transaction created at the bottom of the list.
We now avoid this.
2024-02-10 21:56:59 +01:00
tomFlowee a6af4c8771 Remap 'tried' to a more logical backing value.
This changes 'tried' being about the amount of peers we actually
handshaked with to the amount of peers we tried to connect to at all.
2024-02-10 21:56:59 +01:00
tomFlowee a8c9fdca29 Add asserts and avoid duplicate work
When a wallet is updating we may get a lot of new transactions added in
a short amount of time, this avoids calling updateMap for each one in
turn and instead triggers an update only if there isn't one in-flight.

This takes advantage of the fact that the wallet does its update in a
different thread than the UI-one.
2024-02-10 00:28:00 +01:00
tomFlowee 61ff5172d7 Add asserts and ensure thread-safety.
Add asserts making sure we're only called in the GUI thread.
Add missing mutex locks.
2024-02-10 00:28:00 +01:00
tomFlowee 30c29fd364 Add asserts to make requirement clear. 2024-02-10 00:28:00 +01:00
tomFlowee 2facea90d8 Make this compile with older ZXIng libs too 2024-02-10 00:28:00 +01:00
tomFlowee 073ffe6e3b New feature; show fusion icon on TransactionDetails
When an input used in a transaction comes from a cash-fusion
transaction, we now put the CF logo next to it in order to
make this fact clear to the user and allow them to understand
how tracable this specific payment was.
2024-02-03 23:52:27 +01:00
tomFlowee b24a939b93 Be nice to devs. 2024-01-30 17:22:12 +01:00
tomFlowee 87d5789bc7 Move the property to the right location 2024-01-30 17:21:57 +01:00
tomFlowee 4f23501908 Fix some possible memory corruption issues.
Use deleteLater for the QObject

Use sender() in the slot instead of assuming that the class member still
points to it.
2024-01-28 20:11:46 +01:00
tomFlowee 437ee5634d Don't assert that isn't really a problem.
Hit this assert when I had the app open in the debugger for
some minutes.
2024-01-28 20:02:36 +01:00
tomFlowee 2d55f1b508 Avoid exception.
Simplify the loop by using lock() on the std::shared_ptr, which doesn't
throw.
Also follow the API change in the libs and some deeper introspection for
the actual connection status.
2024-01-28 20:01:56 +01:00
tomFlowee 483b8455b2 Improve TransactionDetails screen
* make it much faster for large transactions to open by not drawing and
then hiding the inputs/outputs that are not relevant to us.

* Allow expanding cloaked addresses by clicking on them.
* instead of a right mouse button menu, show a copy icon next to each
address.
* Add the chainprefix to the clipboard on copy.
2024-01-28 14:42:53 +01:00
tomFlowee 0fadec043b Make this method also work for transactions I receive
This now finds if there is a single output address we can honstly point
at and say "this is the beneficiary of this transaction" and we return
this.

This will be in the context of the wallet it is in, naturally.
2024-01-28 13:04:23 +01:00
tomFlowee 9758ead829 New version 2024-01-28 11:30:33 +01:00
tomFlowee 1455d90b30 Add ban / disconnect UI elements on NetView 2024-01-26 14:26:40 +01:00
tomFlowee 519b6d7532 Add button to pardon the banned.
This allows a user to re-connect to formerly banned peers.
2024-01-26 13:45:51 +01:00
tomFlowee e8adc7f94b Remove monthly pardon.
This has been solved better in flowee libs in
commit dc9ef827b.
2024-01-26 13:34:19 +01:00
tomFlowee efc4e7c7d4 Make peers show up faster in netView
A peer that has not yet handshaked is now show in this view, giving a
better indication of what is going on on platforms that do not have easy
access to a log file.
2024-01-26 12:12:45 +01:00
tomFlowee 4bf81d0db7 Fix bug: decrypting a wallet doesn't start sync 2024-01-25 21:24:47 +01:00
tomFlowee 7e8c3d5824 Cover older unconfirmed transaction display
This makes sure that we update the last-mined-date also when a
transaction is simply confirmed that was already in the wallet.
This only really shows if you were offline and only later broadcast that
transaction, which was unusual enough for me to never notice before :-)
2024-01-25 21:05:59 +01:00
tomFlowee 5c3642fd3b Swap declaration, following linter suggestion. 2024-01-25 19:48:56 +01:00