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(); }