#include "main.h"
#include "db.h"
+#include "txdb.h"
#include "init.h"
+#include "miner.h"
#include "bitcoinrpc.h"
using namespace json_spirit;
"getmininginfo\n"
"Returns an object containing mining-related information.");
+ uint64 nMinWeight = 0, nMaxWeight = 0, nWeight = 0;
+ pwalletMain->GetStakeWeight(*pwalletMain, nMinWeight, nMaxWeight, nWeight);
+
Object obj;
obj.push_back(Pair("blocks", (int)nBestHeight));
obj.push_back(Pair("currentblocksize",(uint64_t)nLastBlockSize));
obj.push_back(Pair("currentblocktx",(uint64_t)nLastBlockTx));
obj.push_back(Pair("difficulty", (double)GetDifficulty()));
+ obj.push_back(Pair("blockvalue", (uint64_t)GetProofOfWorkReward(GetLastBlockIndex(pindexBest, false)->nBits)));
+ obj.push_back(Pair("netmhashps", GetPoWMHashPS()));
+ obj.push_back(Pair("netstakeweight", GetPoSKernelPS()));
obj.push_back(Pair("errors", GetWarnings("statusbar")));
obj.push_back(Pair("pooledtx", (uint64_t)mempool.size()));
+
+ obj.push_back(Pair("stakeweight", (uint64_t)nWeight));
+ obj.push_back(Pair("minweight", (uint64_t)nMinWeight));
+ obj.push_back(Pair("maxweight", (uint64_t)nMaxWeight));
+
+ obj.push_back(Pair("stakeinterest", (uint64_t)GetProofOfStakeReward(0, GetLastBlockIndex(pindexBest, true)->nBits, GetLastBlockIndex(pindexBest, true)->nTime, true)));
obj.push_back(Pair("testnet", fTestNet));
return obj;
}
pblock->hashMerkleRoot = pblock->BuildMerkleTree();
- if (!fTestNet && pblock->GetBlockTime() < CHAINCHECKS_SWITCH_TIME)
- {
- if (!pblock->SignBlock(*pwalletMain))
- throw JSONRPCError(-100, "Unable to sign block, wallet locked?");
- }
-
return CheckWork(pblock, *pwalletMain, reservekey);
}
}
pblock->vtx[0].vin[0].scriptSig = mapNewBlock[pdata->hashMerkleRoot].second;
pblock->hashMerkleRoot = pblock->BuildMerkleTree();
- if (!fTestNet && pblock->GetBlockTime() < CHAINCHECKS_SWITCH_TIME)
- {
- if (!pblock->SignBlock(*pwalletMain))
- throw JSONRPCError(-100, "Unable to sign block, wallet locked?");
- }
-
return CheckWork(pblock, *pwalletMain, reservekey);
}
}
throw JSONRPCError(RPC_DESERIALIZATION_ERROR, "Block decode failed");
}
- if (!fTestNet && block.GetBlockTime() < CHAINCHECKS_SWITCH_TIME)
- {
- if (!block.SignBlock(*pwalletMain))
- throw JSONRPCError(-100, "Unable to sign block, wallet locked?");
- }
-
bool fAccepted = ProcessBlock(NULL, &block);
if (!fAccepted)
return "rejected";