]> Git Repo - VerusCoin.git/blob - src/spentindex.h
Merge branch 'devmerge' into jl777
[VerusCoin.git] / src / spentindex.h
1 // Copyright (c) 2009-2010 Satoshi Nakamoto
2 // Copyright (c) 2009-2015 The Bitcoin Core developers
3 // Distributed under the MIT software license, see the accompanying
4 // file COPYING or http://www.opensource.org/licenses/mit-license.php.
5
6 #ifndef BITCOIN_SPENTINDEX_H
7 #define BITCOIN_SPENTINDEX_H
8
9 #include "uint256.h"
10 #include "amount.h"
11
12 struct CSpentIndexKey {
13     uint256 txid;
14     unsigned int outputIndex;
15
16     ADD_SERIALIZE_METHODS;
17
18     template <typename Stream, typename Operation>
19     inline void SerializationOp(Stream& s, Operation ser_action, int nType, int nVersion) {
20         READWRITE(txid);
21         READWRITE(outputIndex);
22     }
23
24     CSpentIndexKey(uint256 t, unsigned int i) {
25         txid = t;
26         outputIndex = i;
27     }
28
29     CSpentIndexKey() {
30         SetNull();
31     }
32
33     void SetNull() {
34         txid.SetNull();
35         outputIndex = 0;
36     }
37
38 };
39
40 struct CSpentIndexValue {
41     uint256 txid;
42     unsigned int inputIndex;
43     int blockHeight;
44     CAmount satoshis;
45     int addressType;
46     uint160 addressHash;
47
48     ADD_SERIALIZE_METHODS;
49
50     template <typename Stream, typename Operation>
51     inline void SerializationOp(Stream& s, Operation ser_action, int nType, int nVersion) {
52         READWRITE(txid);
53         READWRITE(inputIndex);
54         READWRITE(blockHeight);
55         READWRITE(satoshis);
56         READWRITE(addressType);
57         READWRITE(addressHash);
58     }
59
60     CSpentIndexValue(uint256 t, unsigned int i, int h, CAmount s, int type, uint160 a) {
61         txid = t;
62         inputIndex = i;
63         blockHeight = h;
64         satoshis = s;
65         addressType = type;
66         addressHash = a;
67     }
68
69     CSpentIndexValue() {
70         SetNull();
71     }
72
73     void SetNull() {
74         txid.SetNull();
75         inputIndex = 0;
76         blockHeight = 0;
77         satoshis = 0;
78         addressType = 0;
79         addressHash.SetNull();
80     }
81
82     bool IsNull() const {
83         return txid.IsNull();
84     }
85 };
86
87 struct CSpentIndexKeyCompare
88 {
89     bool operator()(const CSpentIndexKey& a, const CSpentIndexKey& b) const {
90         if (a.txid == b.txid) {
91             return a.outputIndex < b.outputIndex;
92         } else {
93             return a.txid < b.txid;
94         }
95     }
96 };
97
98 #endif // BITCOIN_SPENTINDEX_H
This page took 0.029493 seconds and 4 git commands to generate.