Larry
7 years ago
1 changed files with 98 additions and 0 deletions
@ -0,0 +1,98 @@ |
|||
// Copyright (c) 2009-2010 Satoshi Nakamoto
|
|||
// Copyright (c) 2009-2015 The Bitcoin Core developers
|
|||
// Distributed under the MIT software license, see the accompanying
|
|||
// file COPYING or http://www.opensource.org/licenses/mit-license.php.
|
|||
|
|||
#ifndef BITCOIN_SPENTINDEX_H |
|||
#define BITCOIN_SPENTINDEX_H |
|||
|
|||
#include "uint256.h" |
|||
#include "amount.h" |
|||
|
|||
struct CSpentIndexKey { |
|||
uint256 txid; |
|||
unsigned int outputIndex; |
|||
|
|||
ADD_SERIALIZE_METHODS; |
|||
|
|||
template <typename Stream, typename Operation> |
|||
inline void SerializationOp(Stream& s, Operation ser_action, int nType, int nVersion) { |
|||
READWRITE(txid); |
|||
READWRITE(outputIndex); |
|||
} |
|||
|
|||
CSpentIndexKey(uint256 t, unsigned int i) { |
|||
txid = t; |
|||
outputIndex = i; |
|||
} |
|||
|
|||
CSpentIndexKey() { |
|||
SetNull(); |
|||
} |
|||
|
|||
void SetNull() { |
|||
txid.SetNull(); |
|||
outputIndex = 0; |
|||
} |
|||
|
|||
}; |
|||
|
|||
struct CSpentIndexValue { |
|||
uint256 txid; |
|||
unsigned int inputIndex; |
|||
int blockHeight; |
|||
CAmount satoshis; |
|||
int addressType; |
|||
uint160 addressHash; |
|||
|
|||
ADD_SERIALIZE_METHODS; |
|||
|
|||
template <typename Stream, typename Operation> |
|||
inline void SerializationOp(Stream& s, Operation ser_action, int nType, int nVersion) { |
|||
READWRITE(txid); |
|||
READWRITE(inputIndex); |
|||
READWRITE(blockHeight); |
|||
READWRITE(satoshis); |
|||
READWRITE(addressType); |
|||
READWRITE(addressHash); |
|||
} |
|||
|
|||
CSpentIndexValue(uint256 t, unsigned int i, int h, CAmount s, int type, uint160 a) { |
|||
txid = t; |
|||
inputIndex = i; |
|||
blockHeight = h; |
|||
satoshis = s; |
|||
addressType = type; |
|||
addressHash = a; |
|||
} |
|||
|
|||
CSpentIndexValue() { |
|||
SetNull(); |
|||
} |
|||
|
|||
void SetNull() { |
|||
txid.SetNull(); |
|||
inputIndex = 0; |
|||
blockHeight = 0; |
|||
satoshis = 0; |
|||
addressType = 0; |
|||
addressHash.SetNull(); |
|||
} |
|||
|
|||
bool IsNull() const { |
|||
return txid.IsNull(); |
|||
} |
|||
}; |
|||
|
|||
struct CSpentIndexKeyCompare |
|||
{ |
|||
bool operator()(const CSpentIndexKey& a, const CSpentIndexKey& b) const { |
|||
if (a.txid == b.txid) { |
|||
return a.outputIndex < b.outputIndex; |
|||
} else { |
|||
return a.txid < b.txid; |
|||
} |
|||
} |
|||
}; |
|||
|
|||
#endif // BITCOIN_SPENTINDEX_H
|
Loading…
Reference in new issue