|
|
@ -604,6 +604,20 @@ static UniValue SoftForkDesc(const std::string &name, int version, CBlockIndex* |
|
|
|
return rv; |
|
|
|
return rv; |
|
|
|
} |
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
static UniValue BIP9SoftForkDesc(const std::string& name, const Consensus::Params& consensusParams, Consensus::DeploymentPos id) |
|
|
|
|
|
|
|
{ |
|
|
|
|
|
|
|
UniValue rv(UniValue::VOBJ); |
|
|
|
|
|
|
|
rv.push_back(Pair("id", name)); |
|
|
|
|
|
|
|
switch (VersionBitsTipState(consensusParams, id)) { |
|
|
|
|
|
|
|
case THRESHOLD_DEFINED: rv.push_back(Pair("status", "defined")); break; |
|
|
|
|
|
|
|
case THRESHOLD_STARTED: rv.push_back(Pair("status", "started")); break; |
|
|
|
|
|
|
|
case THRESHOLD_LOCKED_IN: rv.push_back(Pair("status", "locked_in")); break; |
|
|
|
|
|
|
|
case THRESHOLD_ACTIVE: rv.push_back(Pair("status", "active")); break; |
|
|
|
|
|
|
|
case THRESHOLD_FAILED: rv.push_back(Pair("status", "failed")); break; |
|
|
|
|
|
|
|
} |
|
|
|
|
|
|
|
return rv; |
|
|
|
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
UniValue getblockchaininfo(const UniValue& params, bool fHelp) |
|
|
|
UniValue getblockchaininfo(const UniValue& params, bool fHelp) |
|
|
|
{ |
|
|
|
{ |
|
|
|
if (fHelp || params.size() != 0) |
|
|
|
if (fHelp || params.size() != 0) |
|
|
@ -634,6 +648,12 @@ UniValue getblockchaininfo(const UniValue& params, bool fHelp) |
|
|
|
" },\n" |
|
|
|
" },\n" |
|
|
|
" \"reject\": { ... } (object) progress toward rejecting pre-softfork blocks (same fields as \"enforce\")\n" |
|
|
|
" \"reject\": { ... } (object) progress toward rejecting pre-softfork blocks (same fields as \"enforce\")\n" |
|
|
|
" }, ...\n" |
|
|
|
" }, ...\n" |
|
|
|
|
|
|
|
" ],\n" |
|
|
|
|
|
|
|
" \"bip9_softforks\": [ (array) status of BIP9 softforks in progress\n" |
|
|
|
|
|
|
|
" {\n" |
|
|
|
|
|
|
|
" \"id\": \"xxxx\", (string) name of the softfork\n" |
|
|
|
|
|
|
|
" \"status\": \"xxxx\", (string) one of \"defined\", \"started\", \"lockedin\", \"active\", \"failed\"\n" |
|
|
|
|
|
|
|
" }\n" |
|
|
|
" ]\n" |
|
|
|
" ]\n" |
|
|
|
"}\n" |
|
|
|
"}\n" |
|
|
|
"\nExamples:\n" |
|
|
|
"\nExamples:\n" |
|
|
@ -657,10 +677,12 @@ UniValue getblockchaininfo(const UniValue& params, bool fHelp) |
|
|
|
const Consensus::Params& consensusParams = Params().GetConsensus(); |
|
|
|
const Consensus::Params& consensusParams = Params().GetConsensus(); |
|
|
|
CBlockIndex* tip = chainActive.Tip(); |
|
|
|
CBlockIndex* tip = chainActive.Tip(); |
|
|
|
UniValue softforks(UniValue::VARR); |
|
|
|
UniValue softforks(UniValue::VARR); |
|
|
|
|
|
|
|
UniValue bip9_softforks(UniValue::VARR); |
|
|
|
softforks.push_back(SoftForkDesc("bip34", 2, tip, consensusParams)); |
|
|
|
softforks.push_back(SoftForkDesc("bip34", 2, tip, consensusParams)); |
|
|
|
softforks.push_back(SoftForkDesc("bip66", 3, tip, consensusParams)); |
|
|
|
softforks.push_back(SoftForkDesc("bip66", 3, tip, consensusParams)); |
|
|
|
softforks.push_back(SoftForkDesc("bip65", 4, tip, consensusParams)); |
|
|
|
softforks.push_back(SoftForkDesc("bip65", 4, tip, consensusParams)); |
|
|
|
obj.push_back(Pair("softforks", softforks)); |
|
|
|
obj.push_back(Pair("softforks", softforks)); |
|
|
|
|
|
|
|
obj.push_back(Pair("bip9_softforks", bip9_softforks)); |
|
|
|
|
|
|
|
|
|
|
|
if (fPruneMode) |
|
|
|
if (fPruneMode) |
|
|
|
{ |
|
|
|
{ |
|
|
|