// 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_ADDRESSINDEX_H #define BITCOIN_ADDRESSINDEX_H #include #include #include struct CMempoolAddressDelta { std::chrono::seconds time; CAmount amount; uint256 prevhash; unsigned int prevout; CMempoolAddressDelta(std::chrono::seconds t, CAmount a, uint256 hash, unsigned int out) { time = t; amount = a; prevhash = hash; prevout = out; } CMempoolAddressDelta(std::chrono::seconds t, CAmount a) { time = t; amount = a; prevhash.SetNull(); prevout = 0; } }; struct CMempoolAddressDeltaKey { int type; uint160 addressBytes; uint256 txhash; unsigned int index; int spending; CMempoolAddressDeltaKey(int addressType, uint160 addressHash, uint256 hash, unsigned int i, int s) { type = addressType; addressBytes = addressHash; txhash = hash; index = i; spending = s; } CMempoolAddressDeltaKey(int addressType, uint160 addressHash) { type = addressType; addressBytes = addressHash; txhash.SetNull(); index = 0; spending = 0; } }; struct CMempoolAddressDeltaKeyCompare { bool operator()(const CMempoolAddressDeltaKey& a, const CMempoolAddressDeltaKey& b) const { if (a.type == b.type) { if (a.addressBytes == b.addressBytes) { if (a.txhash == b.txhash) { if (a.index == b.index) { return a.spending < b.spending; } else { return a.index < b.index; } } else { return a.txhash < b.txhash; } } else { return a.addressBytes < b.addressBytes; } } else { return a.type < b.type; } } }; #endif // BITCOIN_ADDRESSINDEX_H