mirror of
https://github.com/dashpay/dash.git
synced 2024-12-28 21:42:47 +01:00
rpc: Update generate
for developer notes
Fix nits by John Newbery.
This commit is contained in:
parent
df7e2f057b
commit
2a962834fe
@ -2927,10 +2927,11 @@ UniValue generate(const JSONRPCRequest& request)
|
|||||||
{
|
{
|
||||||
CWallet * const pwallet = GetWalletForJSONRPCRequest(request);
|
CWallet * const pwallet = GetWalletForJSONRPCRequest(request);
|
||||||
|
|
||||||
if (!EnsureWalletIsAvailable(pwallet, request.fHelp))
|
if (!EnsureWalletIsAvailable(pwallet, request.fHelp)) {
|
||||||
return NullUniValue;
|
return NullUniValue;
|
||||||
|
}
|
||||||
|
|
||||||
if (request.fHelp || request.params.size() < 1 || request.params.size() > 2)
|
if (request.fHelp || request.params.size() < 1 || request.params.size() > 2) {
|
||||||
throw std::runtime_error(
|
throw std::runtime_error(
|
||||||
"generate nblocks ( maxtries )\n"
|
"generate nblocks ( maxtries )\n"
|
||||||
"\nMine up to nblocks blocks immediately (before the RPC call returns) to an address in the wallet.\n"
|
"\nMine up to nblocks blocks immediately (before the RPC call returns) to an address in the wallet.\n"
|
||||||
@ -2943,25 +2944,28 @@ UniValue generate(const JSONRPCRequest& request)
|
|||||||
"\nGenerate 11 blocks\n"
|
"\nGenerate 11 blocks\n"
|
||||||
+ HelpExampleCli("generate", "11")
|
+ HelpExampleCli("generate", "11")
|
||||||
);
|
);
|
||||||
|
|
||||||
int nGenerate = request.params[0].get_int();
|
|
||||||
uint64_t nMaxTries = 1000000;
|
|
||||||
if (request.params.size() > 1) {
|
|
||||||
nMaxTries = request.params[1].get_int();
|
|
||||||
}
|
}
|
||||||
|
|
||||||
std::shared_ptr<CReserveScript> coinbaseScript;
|
int num_generate = request.params[0].get_int();
|
||||||
pwallet->GetScriptForMining(coinbaseScript);
|
uint64_t max_tries = 1000000;
|
||||||
|
if (request.params.size() > 1 && !request.params[1].isNull()) {
|
||||||
|
max_tries = request.params[1].get_int();
|
||||||
|
}
|
||||||
|
|
||||||
|
std::shared_ptr<CReserveScript> coinbase_script;
|
||||||
|
pwallet->GetScriptForMining(coinbase_script);
|
||||||
|
|
||||||
// If the keypool is exhausted, no script is returned at all. Catch this.
|
// If the keypool is exhausted, no script is returned at all. Catch this.
|
||||||
if (!coinbaseScript)
|
if (!coinbase_script) {
|
||||||
throw JSONRPCError(RPC_WALLET_KEYPOOL_RAN_OUT, "Error: Keypool ran out, please call keypoolrefill first");
|
throw JSONRPCError(RPC_WALLET_KEYPOOL_RAN_OUT, "Error: Keypool ran out, please call keypoolrefill first");
|
||||||
|
}
|
||||||
|
|
||||||
//throw an error if no script was provided
|
//throw an error if no script was provided
|
||||||
if (coinbaseScript->reserveScript.empty())
|
if (coinbase_script->reserveScript.empty()) {
|
||||||
throw JSONRPCError(RPC_INTERNAL_ERROR, "No coinbase script available (mining requires a wallet)");
|
throw JSONRPCError(RPC_INTERNAL_ERROR, "No coinbase script available");
|
||||||
|
}
|
||||||
|
|
||||||
return generateBlocks(coinbaseScript, nGenerate, nMaxTries, true);
|
return generateBlocks(coinbase_script, num_generate, max_tries, true);
|
||||||
}
|
}
|
||||||
|
|
||||||
extern UniValue abortrescan(const JSONRPCRequest& request); // in rpcdump.cpp
|
extern UniValue abortrescan(const JSONRPCRequest& request); // in rpcdump.cpp
|
||||||
|
Loading…
Reference in New Issue
Block a user