/ src / primitives / block.cpp
block.cpp
 1  // Copyright (c) 2009-2010 Satoshi Nakamoto
 2  // Copyright (c) 2009-2019 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  #include <primitives/block.h>
 7  
 8  #include <hash.h>
 9  #include <tinyformat.h>
10  
11  uint256 CBlockHeader::GetHash() const
12  {
13      return (HashWriter{} << *this).GetHash();
14  }
15  
16  std::string CBlock::ToString() const
17  {
18      std::stringstream s;
19      s << strprintf("CBlock(hash=%s, ver=0x%08x, hashPrevBlock=%s, hashMerkleRoot=%s, nTime=%u, nBits=%08x, nNonce=%u, vtx=%u)\n",
20          GetHash().ToString(),
21          nVersion,
22          hashPrevBlock.ToString(),
23          hashMerkleRoot.ToString(),
24          nTime, nBits, nNonce,
25          vtx.size());
26      for (const auto& tx : vtx) {
27          s << "  " << tx->ToString() << "\n";
28      }
29      return s.str();
30  }