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