mirror of
https://github.com/jwinterm/myriadcoin.git
synced 2026-10-28 06:28:34 +01:00
auxpow final fixes
This commit is contained in:
@@ -16,6 +16,9 @@
|
||||
using namespace json_spirit;
|
||||
using namespace std;
|
||||
|
||||
// from rpcraw.cpp
|
||||
void TxToJSON(const CTransaction& tx, const uint256 hashBlock, Object& entry);
|
||||
|
||||
void ScriptPubKeyToJSON(const CScript& scriptPubKey, Object& out, bool fIncludeHex);
|
||||
|
||||
double GetDifficulty(const CBlockIndex* blockindex, int algo)
|
||||
@@ -76,6 +79,38 @@ Object blockToJSON(const CBlock& block, const CBlockIndex* blockindex)
|
||||
result.push_back(Pair("pow_algo", GetAlgoName(algo)));
|
||||
result.push_back(Pair("pow_hash", block.GetPoWHash(algo).GetHex()));
|
||||
result.push_back(Pair("merkleroot", block.hashMerkleRoot.GetHex()));
|
||||
if (block.nVersion & BLOCK_VERSION_AUXPOW) {
|
||||
// this block includes auxpow
|
||||
Object auxpow;
|
||||
auxpow.push_back(Pair("size", (int)::GetSerializeSize(*block.auxpow, SER_NETWORK, PROTOCOL_VERSION)));
|
||||
|
||||
Object coinbasetx;
|
||||
TxToJSON(*block.auxpow, 0, coinbasetx);
|
||||
auxpow.push_back(Pair("coinbasetx", Value(coinbasetx)));
|
||||
|
||||
Array coinbaseMerkle;
|
||||
BOOST_FOREACH(const uint256 &hash, block.auxpow->vMerkleBranch)
|
||||
coinbaseMerkle.push_back(hash.GetHex());
|
||||
auxpow.push_back(Pair("coinbaseMerkleBranch", coinbaseMerkle));
|
||||
auxpow.push_back(Pair("coinbaseIndex", block.auxpow->nIndex));
|
||||
|
||||
Array chainMerkle;
|
||||
BOOST_FOREACH(const uint256 &hash, block.auxpow->vChainMerkleBranch)
|
||||
chainMerkle.push_back(hash.GetHex());
|
||||
auxpow.push_back(Pair("chainMerkleBranch", chainMerkle));
|
||||
auxpow.push_back(Pair("chainIndex", (boost::uint64_t)block.auxpow->nChainIndex));
|
||||
|
||||
Object parent_block;
|
||||
parent_block.push_back(Pair("hash", block.auxpow->parentBlockHeader.GetHash().GetHex()));
|
||||
parent_block.push_back(Pair("version", (boost::uint64_t)block.auxpow->parentBlockHeader.nVersion));
|
||||
parent_block.push_back(Pair("previousblockhash", block.auxpow->parentBlockHeader.hashPrevBlock.GetHex()));
|
||||
parent_block.push_back(Pair("merkleroot", block.auxpow->parentBlockHeader.hashMerkleRoot.GetHex()));
|
||||
parent_block.push_back(Pair("time", (boost::int64_t)block.auxpow->parentBlockHeader.nTime));
|
||||
parent_block.push_back(Pair("bits", HexBits(block.auxpow->parentBlockHeader.nBits)));
|
||||
parent_block.push_back(Pair("nonce", (boost::uint64_t)block.auxpow->parentBlockHeader.nNonce));
|
||||
auxpow.push_back(Pair("parent_block", Value(parent_block)));
|
||||
result.push_back(Pair("auxpow", Value(auxpow)));
|
||||
}
|
||||
Array txs;
|
||||
BOOST_FOREACH(const CTransaction&tx, block.vtx)
|
||||
txs.push_back(tx.GetHash().GetHex());
|
||||
|
||||
Reference in New Issue
Block a user