From: CryptoManiac Date: Sun, 20 Jul 2014 00:03:50 +0000 (+0400) Subject: RPC: Add parsed and raw checkpoint message data in gectcheckpoint output. X-Git-Tag: v0.4.4.6-nvc-update5^2~3 X-Git-Url: https://git.novaco.in/?a=commitdiff_plain;h=a45c599c49010b542e48ecec49fa19cf1823fe44;hp=086e4fae8b918e0844d7a306acdd0683bec729db;p=novacoin.git RPC: Add parsed and raw checkpoint message data in gectcheckpoint output. --- diff --git a/src/rpcblockchain.cpp b/src/rpcblockchain.cpp index 8d2f389..0e79959 100644 --- a/src/rpcblockchain.cpp +++ b/src/rpcblockchain.cpp @@ -270,7 +270,7 @@ Value getblockbynumber(const Array& params, bool fHelp) return blockToJSON(block, pblockindex, params.size() > 1 ? params[1].get_bool() : false); } -// ppcoin: get information of sync-checkpoint +// get information of sync-checkpoint Value getcheckpoint(const Array& params, bool fHelp) { if (fHelp || params.size() != 0) @@ -286,6 +286,27 @@ Value getcheckpoint(const Array& params, bool fHelp) result.push_back(Pair("height", pindexCheckpoint->nHeight)); result.push_back(Pair("timestamp", DateTimeStrFormat(pindexCheckpoint->GetBlockTime()).c_str())); + if (Checkpoints::checkpointMessage.vchSig.size() != 0) + { + Object msgdata; + CUnsignedSyncCheckpoint checkpoint; + + CDataStream sMsg(Checkpoints::checkpointMessage.vchMsg, SER_NETWORK, PROTOCOL_VERSION); + sMsg >> checkpoint; + + Object parsed; // message version and data (block hash) + parsed.push_back(Pair("version", checkpoint.nVersion)); + parsed.push_back(Pair("hash", checkpoint.hashCheckpoint.GetHex().c_str())); + msgdata.push_back(Pair("parsed", parsed)); + + Object raw; // raw checkpoint message data + raw.push_back(Pair("data", HexStr(Checkpoints::checkpointMessage.vchMsg).c_str())); + raw.push_back(Pair("signature", HexStr(Checkpoints::checkpointMessage.vchSig).c_str())); + msgdata.push_back(Pair("details", raw)); + + result.push_back(Pair("raw", msgdata)); + } + // Check that the block satisfies synchronized checkpoint if (CheckpointsMode == Checkpoints::STRICT) result.push_back(Pair("policy", "strict"));