diff options
author | Wladimir J. van der Laan <laanwj@gmail.com> | 2011-05-27 19:48:42 +0200 |
---|---|---|
committer | Wladimir J. van der Laan <laanwj@gmail.com> | 2011-05-27 19:48:42 +0200 |
commit | f488e7358dad96a676ea000d1d253ccfa24afaaa (patch) | |
tree | b8827eae5b808734797662e753fd7c376621cd7d /gui/include/transactionrecord.h | |
parent | 0856c1a03e4c663b09fa50237198c4af382dc18d (diff) |
transaction color based on confirmed/not confirmed, basic transaction model impl
Diffstat (limited to 'gui/include/transactionrecord.h')
-rw-r--r-- | gui/include/transactionrecord.h | 94 |
1 files changed, 94 insertions, 0 deletions
diff --git a/gui/include/transactionrecord.h b/gui/include/transactionrecord.h new file mode 100644 index 0000000000..47eed05d93 --- /dev/null +++ b/gui/include/transactionrecord.h @@ -0,0 +1,94 @@ +#ifndef TRANSACTIONRECORD_H +#define TRANSACTIONRECORD_H + +#include "main.h" + +#include <QList> + +class TransactionStatus +{ +public: + TransactionStatus(): + confirmed(false), sortKey(""), maturity(Mature), + matures_in(0), status(Offline), depth(0), open_for(0) + { } + + enum Maturity + { + Immature, + Mature, + MaturesIn, + MaturesWarning, /* Will likely not mature because no nodes have confirmed */ + NotAccepted + }; + + enum Status { + OpenUntilDate, + OpenUntilBlock, + Offline, + Unconfirmed, + HaveConfirmations + }; + + bool confirmed; + std::string sortKey; + + /* For "Generated" transactions */ + Maturity maturity; + int matures_in; + + /* Reported status */ + Status status; + int64 depth; + int64 open_for; /* Timestamp if status==OpenUntilDate, otherwise number of blocks */ +}; + +class TransactionRecord +{ +public: + enum Type + { + Other, + Generated, + SendToAddress, + SendToIP, + RecvFromAddress, + RecvFromIP, + SendToSelf + }; + + TransactionRecord(): + hash(), time(0), type(Other), address(""), debit(0), credit(0) + { + } + + TransactionRecord(uint256 hash, int64 time, const TransactionStatus &status): + hash(hash), time(time), type(Other), address(""), debit(0), + credit(0), status(status) + { + } + + TransactionRecord(uint256 hash, int64 time, const TransactionStatus &status, + Type type, const std::string &address, + int64 debit, int64 credit): + hash(hash), time(time), type(type), address(address), debit(debit), credit(credit), + status(status) + { + } + + static bool showTransaction(const CWalletTx &wtx); + static QList<TransactionRecord> decomposeTransaction(const CWalletTx &wtx); + + /* Fixed */ + uint256 hash; + int64 time; + Type type; + std::string address; + int64 debit; + int64 credit; + + /* Status: can change with block chain update */ + TransactionStatus status; +}; + +#endif // TRANSACTIONRECORD_H |