aboutsummaryrefslogtreecommitdiff
path: root/gui/include/transactionrecord.h
diff options
context:
space:
mode:
authorWladimir J. van der Laan <laanwj@gmail.com>2011-05-27 19:48:42 +0200
committerWladimir J. van der Laan <laanwj@gmail.com>2011-05-27 19:48:42 +0200
commitf488e7358dad96a676ea000d1d253ccfa24afaaa (patch)
treeb8827eae5b808734797662e753fd7c376621cd7d /gui/include/transactionrecord.h
parent0856c1a03e4c663b09fa50237198c4af382dc18d (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.h94
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