Exemple #1
0
static bool ParseHashStr(const std::string& strReq, uint256& v)
{
    if (!IsHex(strReq) || (strReq.size() != 64))
        return false;

    v.SetHex(strReq);
    return true;
}
void convertDataToBlock(unsigned char* blockData, CBlock& block) {
  {
    std::stringstream ss;
    for (int i = 7; i >= 0; --i)
		ss << std::setw(8) << std::setfill('0') << std::hex << *((int *)(blockData + 4) + i);
    ss.flush();
    block.hashPrevBlock.SetHex(ss.str().c_str());
  }
  {
    std::stringstream ss;
    for (int i = 7; i >= 0; --i)
		ss << std::setw(8) << std::setfill('0') << std::hex << *((int *)(blockData + 36) + i);
    ss.flush();
    block.hashMerkleRoot.SetHex(ss.str().c_str());
  }
  {
    std::stringstream ss;
    for (int i = 7; i >= 0; --i)
		ss << std::setw(8) << std::setfill('0') << std::hex << *((int *)(blockData + 80) + i);
    ss.flush();
    //block.hashMerkleRoot.SetHex(ss.str().c_str());
    nShareBits.SetHex(ss.str().c_str());
  }
  block.nVersion               = *((int *)(blockData));
  block.nTime                  = *((unsigned int *)(blockData + 68));
  block.nBits                  = *((unsigned int *)(blockData + 72));
  block.nNonce                 = *((unsigned int *)(blockData + 76));
  block.nBirthdayA = 0;
  block.nBirthdayB = 0;
  
  nNetworkBits = CBigNum().SetCompact(block.nBits).getuint256();
  
  //DEBUG:
  //std::cout << "received " << block.hashMerkleRoot.ToString().c_str() << std::endl;

  //nShareBits =  *((unsigned int *)(blockData + 80));
  //nShareBits = CBigNum().SetHex(*((unsigned char *)(blockData + 80))).GetCompact();
}