mirror of
https://github.com/bitcoin/bitcoin.git
synced 2025-11-12 15:09:59 +01:00
[RPC] Give RPC commands more information about the RPC request
This commit is contained in:
@@ -74,9 +74,9 @@ UniValue GetNetworkHashPS(int lookup, int height) {
|
||||
return workDiff.getdouble() / timeDiff;
|
||||
}
|
||||
|
||||
UniValue getnetworkhashps(const UniValue& params, bool fHelp)
|
||||
UniValue getnetworkhashps(const JSONRPCRequest& request)
|
||||
{
|
||||
if (fHelp || params.size() > 2)
|
||||
if (request.fHelp || request.params.size() > 2)
|
||||
throw runtime_error(
|
||||
"getnetworkhashps ( blocks height )\n"
|
||||
"\nReturns the estimated network hashes per second based on the last n blocks.\n"
|
||||
@@ -93,7 +93,7 @@ UniValue getnetworkhashps(const UniValue& params, bool fHelp)
|
||||
);
|
||||
|
||||
LOCK(cs_main);
|
||||
return GetNetworkHashPS(params.size() > 0 ? params[0].get_int() : 120, params.size() > 1 ? params[1].get_int() : -1);
|
||||
return GetNetworkHashPS(request.params.size() > 0 ? request.params[0].get_int() : 120, request.params.size() > 1 ? request.params[1].get_int() : -1);
|
||||
}
|
||||
|
||||
UniValue generateBlocks(boost::shared_ptr<CReserveScript> coinbaseScript, int nGenerate, uint64_t nMaxTries, bool keepScript)
|
||||
@@ -146,9 +146,9 @@ UniValue generateBlocks(boost::shared_ptr<CReserveScript> coinbaseScript, int nG
|
||||
return blockHashes;
|
||||
}
|
||||
|
||||
UniValue generate(const UniValue& params, bool fHelp)
|
||||
UniValue generate(const JSONRPCRequest& request)
|
||||
{
|
||||
if (fHelp || params.size() < 1 || params.size() > 2)
|
||||
if (request.fHelp || request.params.size() < 1 || request.params.size() > 2)
|
||||
throw runtime_error(
|
||||
"generate numblocks ( maxtries )\n"
|
||||
"\nMine up to numblocks blocks immediately (before the RPC call returns)\n"
|
||||
@@ -162,10 +162,10 @@ UniValue generate(const UniValue& params, bool fHelp)
|
||||
+ HelpExampleCli("generate", "11")
|
||||
);
|
||||
|
||||
int nGenerate = params[0].get_int();
|
||||
int nGenerate = request.params[0].get_int();
|
||||
uint64_t nMaxTries = 1000000;
|
||||
if (params.size() > 1) {
|
||||
nMaxTries = params[1].get_int();
|
||||
if (request.params.size() > 1) {
|
||||
nMaxTries = request.params[1].get_int();
|
||||
}
|
||||
|
||||
boost::shared_ptr<CReserveScript> coinbaseScript;
|
||||
@@ -182,9 +182,9 @@ UniValue generate(const UniValue& params, bool fHelp)
|
||||
return generateBlocks(coinbaseScript, nGenerate, nMaxTries, true);
|
||||
}
|
||||
|
||||
UniValue generatetoaddress(const UniValue& params, bool fHelp)
|
||||
UniValue generatetoaddress(const JSONRPCRequest& request)
|
||||
{
|
||||
if (fHelp || params.size() < 2 || params.size() > 3)
|
||||
if (request.fHelp || request.params.size() < 2 || request.params.size() > 3)
|
||||
throw runtime_error(
|
||||
"generatetoaddress numblocks address (maxtries)\n"
|
||||
"\nMine blocks immediately to a specified address (before the RPC call returns)\n"
|
||||
@@ -199,13 +199,13 @@ UniValue generatetoaddress(const UniValue& params, bool fHelp)
|
||||
+ HelpExampleCli("generatetoaddress", "11 \"myaddress\"")
|
||||
);
|
||||
|
||||
int nGenerate = params[0].get_int();
|
||||
int nGenerate = request.params[0].get_int();
|
||||
uint64_t nMaxTries = 1000000;
|
||||
if (params.size() > 2) {
|
||||
nMaxTries = params[2].get_int();
|
||||
if (request.params.size() > 2) {
|
||||
nMaxTries = request.params[2].get_int();
|
||||
}
|
||||
|
||||
CBitcoinAddress address(params[1].get_str());
|
||||
CBitcoinAddress address(request.params[1].get_str());
|
||||
if (!address.IsValid())
|
||||
throw JSONRPCError(RPC_INVALID_ADDRESS_OR_KEY, "Error: Invalid address");
|
||||
|
||||
@@ -215,9 +215,9 @@ UniValue generatetoaddress(const UniValue& params, bool fHelp)
|
||||
return generateBlocks(coinbaseScript, nGenerate, nMaxTries, false);
|
||||
}
|
||||
|
||||
UniValue getmininginfo(const UniValue& params, bool fHelp)
|
||||
UniValue getmininginfo(const JSONRPCRequest& request)
|
||||
{
|
||||
if (fHelp || params.size() != 0)
|
||||
if (request.fHelp || request.params.size() != 0)
|
||||
throw runtime_error(
|
||||
"getmininginfo\n"
|
||||
"\nReturns a json object containing mining-related information."
|
||||
@@ -248,7 +248,7 @@ UniValue getmininginfo(const UniValue& params, bool fHelp)
|
||||
obj.push_back(Pair("currentblocktx", (uint64_t)nLastBlockTx));
|
||||
obj.push_back(Pair("difficulty", (double)GetDifficulty()));
|
||||
obj.push_back(Pair("errors", GetWarnings("statusbar")));
|
||||
obj.push_back(Pair("networkhashps", getnetworkhashps(params, false)));
|
||||
obj.push_back(Pair("networkhashps", getnetworkhashps(request)));
|
||||
obj.push_back(Pair("pooledtx", (uint64_t)mempool.size()));
|
||||
obj.push_back(Pair("chain", Params().NetworkIDString()));
|
||||
return obj;
|
||||
@@ -256,9 +256,9 @@ UniValue getmininginfo(const UniValue& params, bool fHelp)
|
||||
|
||||
|
||||
// NOTE: Unlike wallet RPC (which use BTC values), mining RPCs follow GBT (BIP 22) in using satoshi amounts
|
||||
UniValue prioritisetransaction(const UniValue& params, bool fHelp)
|
||||
UniValue prioritisetransaction(const JSONRPCRequest& request)
|
||||
{
|
||||
if (fHelp || params.size() != 3)
|
||||
if (request.fHelp || request.params.size() != 3)
|
||||
throw runtime_error(
|
||||
"prioritisetransaction <txid> <priority delta> <fee delta>\n"
|
||||
"Accepts the transaction into mined blocks at a higher (or lower) priority\n"
|
||||
@@ -279,10 +279,10 @@ UniValue prioritisetransaction(const UniValue& params, bool fHelp)
|
||||
|
||||
LOCK(cs_main);
|
||||
|
||||
uint256 hash = ParseHashStr(params[0].get_str(), "txid");
|
||||
CAmount nAmount = params[2].get_int64();
|
||||
uint256 hash = ParseHashStr(request.params[0].get_str(), "txid");
|
||||
CAmount nAmount = request.params[2].get_int64();
|
||||
|
||||
mempool.PrioritiseTransaction(hash, params[0].get_str(), params[1].get_real(), nAmount);
|
||||
mempool.PrioritiseTransaction(hash, request.params[0].get_str(), request.params[1].get_real(), nAmount);
|
||||
return true;
|
||||
}
|
||||
|
||||
@@ -315,9 +315,9 @@ std::string gbt_vb_name(const Consensus::DeploymentPos pos) {
|
||||
return s;
|
||||
}
|
||||
|
||||
UniValue getblocktemplate(const UniValue& params, bool fHelp)
|
||||
UniValue getblocktemplate(const JSONRPCRequest& request)
|
||||
{
|
||||
if (fHelp || params.size() > 1)
|
||||
if (request.fHelp || request.params.size() > 1)
|
||||
throw runtime_error(
|
||||
"getblocktemplate ( TemplateRequest )\n"
|
||||
"\nIf the request parameters include a 'mode' key, that is used to explicitly select between the default 'template' request or a 'proposal'.\n"
|
||||
@@ -400,9 +400,9 @@ UniValue getblocktemplate(const UniValue& params, bool fHelp)
|
||||
UniValue lpval = NullUniValue;
|
||||
std::set<std::string> setClientRules;
|
||||
int64_t nMaxVersionPreVB = -1;
|
||||
if (params.size() > 0)
|
||||
if (request.params.size() > 0)
|
||||
{
|
||||
const UniValue& oparam = params[0].get_obj();
|
||||
const UniValue& oparam = request.params[0].get_obj();
|
||||
const UniValue& modeval = find_value(oparam, "mode");
|
||||
if (modeval.isStr())
|
||||
strMode = modeval.get_str();
|
||||
@@ -705,9 +705,9 @@ protected:
|
||||
};
|
||||
};
|
||||
|
||||
UniValue submitblock(const UniValue& params, bool fHelp)
|
||||
UniValue submitblock(const JSONRPCRequest& request)
|
||||
{
|
||||
if (fHelp || params.size() < 1 || params.size() > 2)
|
||||
if (request.fHelp || request.params.size() < 1 || request.params.size() > 2)
|
||||
throw runtime_error(
|
||||
"submitblock \"hexdata\" ( \"jsonparametersobject\" )\n"
|
||||
"\nAttempts to submit new block to network.\n"
|
||||
@@ -727,7 +727,7 @@ UniValue submitblock(const UniValue& params, bool fHelp)
|
||||
);
|
||||
|
||||
CBlock block;
|
||||
if (!DecodeHexBlk(block, params[0].get_str()))
|
||||
if (!DecodeHexBlk(block, request.params[0].get_str()))
|
||||
throw JSONRPCError(RPC_DESERIALIZATION_ERROR, "Block decode failed");
|
||||
|
||||
uint256 hash = block.GetHash();
|
||||
@@ -774,9 +774,9 @@ UniValue submitblock(const UniValue& params, bool fHelp)
|
||||
return BIP22ValidationResult(state);
|
||||
}
|
||||
|
||||
UniValue estimatefee(const UniValue& params, bool fHelp)
|
||||
UniValue estimatefee(const JSONRPCRequest& request)
|
||||
{
|
||||
if (fHelp || params.size() != 1)
|
||||
if (request.fHelp || request.params.size() != 1)
|
||||
throw runtime_error(
|
||||
"estimatefee nblocks\n"
|
||||
"\nEstimates the approximate fee per kilobyte needed for a transaction to begin\n"
|
||||
@@ -792,9 +792,9 @@ UniValue estimatefee(const UniValue& params, bool fHelp)
|
||||
+ HelpExampleCli("estimatefee", "6")
|
||||
);
|
||||
|
||||
RPCTypeCheck(params, boost::assign::list_of(UniValue::VNUM));
|
||||
RPCTypeCheck(request.params, boost::assign::list_of(UniValue::VNUM));
|
||||
|
||||
int nBlocks = params[0].get_int();
|
||||
int nBlocks = request.params[0].get_int();
|
||||
if (nBlocks < 1)
|
||||
nBlocks = 1;
|
||||
|
||||
@@ -805,9 +805,9 @@ UniValue estimatefee(const UniValue& params, bool fHelp)
|
||||
return ValueFromAmount(feeRate.GetFeePerK());
|
||||
}
|
||||
|
||||
UniValue estimatepriority(const UniValue& params, bool fHelp)
|
||||
UniValue estimatepriority(const JSONRPCRequest& request)
|
||||
{
|
||||
if (fHelp || params.size() != 1)
|
||||
if (request.fHelp || request.params.size() != 1)
|
||||
throw runtime_error(
|
||||
"estimatepriority nblocks\n"
|
||||
"\nEstimates the approximate priority a zero-fee transaction needs to begin\n"
|
||||
@@ -823,18 +823,18 @@ UniValue estimatepriority(const UniValue& params, bool fHelp)
|
||||
+ HelpExampleCli("estimatepriority", "6")
|
||||
);
|
||||
|
||||
RPCTypeCheck(params, boost::assign::list_of(UniValue::VNUM));
|
||||
RPCTypeCheck(request.params, boost::assign::list_of(UniValue::VNUM));
|
||||
|
||||
int nBlocks = params[0].get_int();
|
||||
int nBlocks = request.params[0].get_int();
|
||||
if (nBlocks < 1)
|
||||
nBlocks = 1;
|
||||
|
||||
return mempool.estimatePriority(nBlocks);
|
||||
}
|
||||
|
||||
UniValue estimatesmartfee(const UniValue& params, bool fHelp)
|
||||
UniValue estimatesmartfee(const JSONRPCRequest& request)
|
||||
{
|
||||
if (fHelp || params.size() != 1)
|
||||
if (request.fHelp || request.params.size() != 1)
|
||||
throw runtime_error(
|
||||
"estimatesmartfee nblocks\n"
|
||||
"\nWARNING: This interface is unstable and may disappear or change!\n"
|
||||
@@ -856,9 +856,9 @@ UniValue estimatesmartfee(const UniValue& params, bool fHelp)
|
||||
+ HelpExampleCli("estimatesmartfee", "6")
|
||||
);
|
||||
|
||||
RPCTypeCheck(params, boost::assign::list_of(UniValue::VNUM));
|
||||
RPCTypeCheck(request.params, boost::assign::list_of(UniValue::VNUM));
|
||||
|
||||
int nBlocks = params[0].get_int();
|
||||
int nBlocks = request.params[0].get_int();
|
||||
|
||||
UniValue result(UniValue::VOBJ);
|
||||
int answerFound;
|
||||
@@ -868,9 +868,9 @@ UniValue estimatesmartfee(const UniValue& params, bool fHelp)
|
||||
return result;
|
||||
}
|
||||
|
||||
UniValue estimatesmartpriority(const UniValue& params, bool fHelp)
|
||||
UniValue estimatesmartpriority(const JSONRPCRequest& request)
|
||||
{
|
||||
if (fHelp || params.size() != 1)
|
||||
if (request.fHelp || request.params.size() != 1)
|
||||
throw runtime_error(
|
||||
"estimatesmartpriority nblocks\n"
|
||||
"\nWARNING: This interface is unstable and may disappear or change!\n"
|
||||
@@ -892,9 +892,9 @@ UniValue estimatesmartpriority(const UniValue& params, bool fHelp)
|
||||
+ HelpExampleCli("estimatesmartpriority", "6")
|
||||
);
|
||||
|
||||
RPCTypeCheck(params, boost::assign::list_of(UniValue::VNUM));
|
||||
RPCTypeCheck(request.params, boost::assign::list_of(UniValue::VNUM));
|
||||
|
||||
int nBlocks = params[0].get_int();
|
||||
int nBlocks = request.params[0].get_int();
|
||||
|
||||
UniValue result(UniValue::VOBJ);
|
||||
int answerFound;
|
||||
|
||||
Reference in New Issue
Block a user