Commit Graph

15 Commits

Author SHA1 Message Date
TomZ cb2b147096 Split 'balance' into 3 variables.
* confirmed
* unconfirmed
* immature
2020-11-06 22:54:39 +01:00
TomZ f5ca55b587 Educate the Wallet about coinbase maturity
Now we wait for coinbases to mature before we show them in balance and
before we use them in transactions.
2020-11-06 20:20:41 +01:00
TomZ 0dbf1010af Split the growing Wallet.cpp into multiple files. 2020-11-06 18:25:48 +01:00
TomZ c8ae3817c5 Make sending transactions on startup work better.
We wait until the chain is synched and then we check for and broadcast
unconfirmed transactions.

This essentially means that every single block we receive will trigger
this code. In BCH I think that is just fine since all we really do is
send an INV.
2020-11-05 22:21:50 +01:00
TomZ fce7f1a955 Make wallet send all unconfirmed transactions again
We make sure to broadcast our transactions repeatedly if they are not
yet confirmed.
For instance if the last time we made it we were offline.
2020-11-04 22:00:34 +01:00
TomZ f24a6e0f84 Implement replacing transaction
When a unconfirmed transaction gets made invalid by a mined one spending
the same output, this updates the wallet balance and UTXO state
properly.
2020-11-03 20:16:36 +01:00
TomZ ae0c395d50 Make the wallet process mempool transactions
When a transaction is received by the p2pnet layer via a simple INV/
GetData we now process this and properly lock the outputs it spent to
avoid creating double spending transactions.

One task is left: properly recognize when a mined transaction
invalidates another transaction (like an unconfirmed one) and update the
datastructures.
2020-11-02 21:49:06 +01:00
TomZ 005c241344 Make backend able to accept a 'max' payment
The idea is that the user can empty out a wallet using the 'max' button.
2020-10-23 22:34:34 +02:00
TomZ 0cd48d8809 Version 2 of UTXO selection algo
This avoids the far to CPU intensive perfect solution and instead does a
best effort comparisn between various semi-random selections of inputs.
2020-10-23 19:45:08 +02:00
TomZ 19e941ce14 Show the sync-height of a wallet. 2020-10-17 17:34:40 +02:00
TomZ 99f5b728f5 Re-create the send page
This brings back a new GUI for sending payments.
2020-10-15 19:18:54 +02:00
TomZ d0bf8c63ee Add wallet boolean 2020-06-13 11:04:34 +02:00
TomZ 35246ffbc3 Implement first steps of paying.
This provides code for creating the transaction, selecting the UTXOs and
signing the transaction.
Essentially everything except the handling of final tx (like sending it
to a peer).
2020-06-08 14:37:29 +02:00
TomZ 9e9d8b1a32 Factor low-level behaviour out to class
For maintainability the pair of tx-index/output-index are now stored in
a simple class.

Additionally the calls to the privacyFilter have been upgraded to follow
the API fix in Flowee the Hub.
2020-06-08 14:31:45 +02:00
TomZ d6d823ecd2 Introducing the new Flowee Pay solution
This is clearly beta-level quality, it won't lose your money, but
kittens can be killed if you use this in production! Don't do that!

This payment client uses the proper P2P client and does not require
any additional indexing services and therefor is very much geared
towards the most private it can be with SPV, while staying scalable and
nible.

The only GUI available right now is for the desktop, it should be pretty
simple to re-do a nice GUI for some mobile or similar form-factors.
That is one area that QML simply rocks in.
2020-05-24 19:29:32 +02:00