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