MCPcopy Create free account
hub / github.com/BTCGPU/BTCGPU / Unserialize

Method Unserialize

src/txdb.cpp:316–347  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

314
315 template<typename Stream>
316 void Unserialize(Stream &s) {
317 unsigned int nCode = 0;
318 // version
319 unsigned int nVersionDummy;
320 ::Unserialize(s, VARINT(nVersionDummy));
321 // header code
322 ::Unserialize(s, VARINT(nCode));
323 fCoinBase = nCode & 1;
324 std::vector<bool> vAvail(2, false);
325 vAvail[0] = (nCode & 2) != 0;
326 vAvail[1] = (nCode & 4) != 0;
327 unsigned int nMaskCode = (nCode / 8) + ((nCode & 6) != 0 ? 0 : 1);
328 // spentness bitmask
329 while (nMaskCode > 0) {
330 unsigned char chAvail = 0;
331 ::Unserialize(s, chAvail);
332 for (unsigned int p = 0; p < 8; p++) {
333 bool f = (chAvail & (1 << p)) != 0;
334 vAvail.push_back(f);
335 }
336 if (chAvail != 0)
337 nMaskCode--;
338 }
339 // txouts themself
340 vout.assign(vAvail.size(), CTxOut());
341 for (unsigned int i = 0; i < vAvail.size(); i++) {
342 if (vAvail[i])
343 ::Unserialize(s, CTxOutCompressor(vout[i]));
344 }
345 // coinbase height
346 ::Unserialize(s, VARINT(nHeight, VarIntMode::NONNEGATIVE_SIGNED));
347 }
348};
349
350}

Callers

nothing calls this directly

Calls 6

UnserializeFunction · 0.85
CTxOutCompressorClass · 0.85
CTxOutClass · 0.50
push_backMethod · 0.45
assignMethod · 0.45
sizeMethod · 0.45

Tested by

no test coverage detected