Changeset View
Changeset View
Standalone View
Standalone View
src/txdb.cpp
Show First 20 Lines • Show All 324 Lines • ▼ Show 20 Lines | public: | ||||
int nHeight; | int nHeight; | ||||
//! empty constructor | //! empty constructor | ||||
CCoins() : fCoinBase(false), vout(0), nHeight(0) {} | CCoins() : fCoinBase(false), vout(0), nHeight(0) {} | ||||
template <typename Stream> void Unserialize(Stream &s) { | template <typename Stream> void Unserialize(Stream &s) { | ||||
uint32_t nCode = 0; | uint32_t nCode = 0; | ||||
// version | // version | ||||
int nVersionDummy; | unsigned int nVersionDummy; | ||||
::Unserialize(s, VARINT(nVersionDummy)); | ::Unserialize(s, VARINT(nVersionDummy)); | ||||
// header code | // header code | ||||
::Unserialize(s, VARINT(nCode)); | ::Unserialize(s, VARINT(nCode)); | ||||
fCoinBase = nCode & 1; | fCoinBase = nCode & 1; | ||||
std::vector<bool> vAvail(2, false); | std::vector<bool> vAvail(2, false); | ||||
vAvail[0] = (nCode & 2) != 0; | vAvail[0] = (nCode & 2) != 0; | ||||
vAvail[1] = (nCode & 4) != 0; | vAvail[1] = (nCode & 4) != 0; | ||||
uint32_t nMaskCode = (nCode / 8) + ((nCode & 6) != 0 ? 0 : 1); | uint32_t nMaskCode = (nCode / 8) + ((nCode & 6) != 0 ? 0 : 1); | ||||
Show All 12 Lines | template <typename Stream> void Unserialize(Stream &s) { | ||||
// txouts themself | // txouts themself | ||||
vout.assign(vAvail.size(), CTxOut()); | vout.assign(vAvail.size(), CTxOut()); | ||||
for (size_t i = 0; i < vAvail.size(); i++) { | for (size_t i = 0; i < vAvail.size(); i++) { | ||||
if (vAvail[i]) { | if (vAvail[i]) { | ||||
::Unserialize(s, CTxOutCompressor(vout[i])); | ::Unserialize(s, CTxOutCompressor(vout[i])); | ||||
} | } | ||||
} | } | ||||
// coinbase height | // coinbase height | ||||
::Unserialize(s, VARINT(nHeight)); | ::Unserialize(s, VARINT(nHeight, VarIntMode::NONNEGATIVE_SIGNED)); | ||||
} | } | ||||
}; | }; | ||||
} // namespace | } // namespace | ||||
/** | /** | ||||
* Upgrade the database from older formats. | * Upgrade the database from older formats. | ||||
* | * | ||||
* Currently implemented: from the per-tx utxo model (0.8..0.14.x) to per-txout. | * Currently implemented: from the per-tx utxo model (0.8..0.14.x) to per-txout. | ||||
▲ Show 20 Lines • Show All 74 Lines • Show Last 20 Lines |