mirror of
https://github.com/dashpay/dash.git
synced 2024-12-25 12:02:48 +01:00
Merge #18531: rpc: remove deprecated CRPCCommand constructor
faaf9c58e4aa809019d4ca12747dd47411988e37 remove CRPCCommand constructor that takes rpcfn_type function pointer (MarcoFalke) fa19bb2cd8c575593583138a84e6bb3444d6196d remove dead rpc code (MarcoFalke) Pull request description: Remove the CRPCCommand arguments, now that they are asserted to be equal and thus redundant ### Future work > Here or follow up, makes sense to also assert type of returned UniValue? Sure, but let's not get ahead of ourselves. I am going to submit any further works as follow-ups, including: * Removing all python regex linters on the args, now that RPCMan can be used to generate any output, including the cli.cpp table * Auto-formatting and sanity checking the RPCExamples with RPCMan * Checking passed-in json in self-check. Removing redundant checks * Checking returned json against documentation to avoid regressions or false documentation * Compile the RPC documentation at compile-time to ensure it doesn't change at runtime and is completely static ### Bugs found * The assert identified issue #18607 * The changes itself fixed bug #19250 ACKs for top commit: fjahr: tested ACK faaf9c58e4aa809019d4ca12747dd47411988e37 promag: Tested ACK faaf9c58e4aa809019d4ca12747dd47411988e37. ryanofsky: Code review ACK faaf9c58e4aa809019d4ca12747dd47411988e37. Two obviously good simplifications. Tree-SHA512: 5de3b440f7b2ed2c3e86655d4f0e2e5df9c67e8ce3c7817d5ea5311d1a38690f2f3e28fab41aad6936be9fc884326d037e5f19e85d4d2fe281474dada13911ee
This commit is contained in:
parent
a7e538d7ae
commit
1d87ce4e86
@ -16,17 +16,26 @@
|
||||
#include <QDir>
|
||||
#include <QtGlobal>
|
||||
|
||||
static UniValue rpcNestedTest_rpc(const JSONRPCRequest& request)
|
||||
static RPCHelpMan rpcNestedTest_rpc()
|
||||
{
|
||||
if (request.fHelp) {
|
||||
return "help message";
|
||||
}
|
||||
return request.params.write(0, 0);
|
||||
return RPCHelpMan{
|
||||
"rpcNestedTest",
|
||||
"echo the passed string(s)",
|
||||
{
|
||||
{"arg1", RPCArg::Type::STR, RPCArg::Optional::OMITTED, ""},
|
||||
{"arg2", RPCArg::Type::STR, RPCArg::Optional::OMITTED, ""},
|
||||
{"arg3", RPCArg::Type::STR, RPCArg::Optional::OMITTED, ""},
|
||||
},
|
||||
{},
|
||||
RPCExamples{""},
|
||||
[](const RPCHelpMan& self, const JSONRPCRequest& request) -> UniValue {
|
||||
return request.params.write(0, 0);
|
||||
},
|
||||
};
|
||||
}
|
||||
|
||||
static const CRPCCommand vRPCCommands[] =
|
||||
{
|
||||
{ "test", "rpcNestedTest", &rpcNestedTest_rpc, {} },
|
||||
static const CRPCCommand vRPCCommands[] = {
|
||||
{"test", "rpcNestedTest", &rpcNestedTest_rpc, {"arg1", "arg2", "arg3"}},
|
||||
};
|
||||
|
||||
void RPCNestedTests::rpcNestedTests()
|
||||
|
@ -434,11 +434,7 @@ static RPCHelpMan generate()
|
||||
{
|
||||
return RPCHelpMan{"generate", "has been replaced by the -generate cli option. Refer to -help for more information.", {}, {}, RPCExamples{""}, [&](const RPCHelpMan& self, const JSONRPCRequest& request) -> UniValue {
|
||||
|
||||
if (request.fHelp) {
|
||||
throw std::runtime_error(self.ToString());
|
||||
} else {
|
||||
throw JSONRPCError(RPC_METHOD_NOT_FOUND, self.ToString());
|
||||
}
|
||||
}};
|
||||
}
|
||||
|
||||
|
@ -1386,8 +1386,6 @@ static RPCHelpMan echo(const std::string& name)
|
||||
RPCExamples{""},
|
||||
[&](const RPCHelpMan& self, const JSONRPCRequest& request) -> UniValue
|
||||
{
|
||||
if (request.fHelp) throw std::runtime_error(self.ToString());
|
||||
|
||||
if (request.params[9].isStr()) {
|
||||
CHECK_NONFATAL(request.params[9].get_str() != "trigger_internal_bug");
|
||||
}
|
||||
|
@ -310,6 +310,10 @@ static RPCHelpMan addnode()
|
||||
std::string strCommand;
|
||||
if (!request.params[1].isNull())
|
||||
strCommand = request.params[1].get_str();
|
||||
if (strCommand != "onetry" && strCommand != "add" && strCommand != "remove") {
|
||||
throw std::runtime_error(
|
||||
self.ToString());
|
||||
}
|
||||
|
||||
const NodeContext& node = EnsureAnyNodeContext(request.context);
|
||||
CConnman& connman = EnsureConnman(node);
|
||||
@ -715,7 +719,7 @@ static RPCHelpMan setban()
|
||||
std::string strCommand;
|
||||
if (!request.params[1].isNull())
|
||||
strCommand = request.params[1].get_str();
|
||||
if (request.fHelp || !help.IsValidNumArgs(request.params.size()) || (strCommand != "add" && strCommand != "remove")) {
|
||||
if (strCommand != "add" && strCommand != "remove") {
|
||||
throw std::runtime_error(help.ToString());
|
||||
}
|
||||
const NodeContext& node = EnsureAnyNodeContext(request.context);
|
||||
|
@ -83,7 +83,6 @@ void RPCUnsetTimerInterface(RPCTimerInterface *iface);
|
||||
*/
|
||||
void RPCRunLater(const std::string& name, std::function<void()> func, int64_t nSeconds);
|
||||
|
||||
typedef UniValue(*rpcfn_type)(const JSONRPCRequest& jsonRequest);
|
||||
typedef RPCHelpMan (*RpcMethodFnType)();
|
||||
|
||||
class CRPCCommand
|
||||
@ -134,14 +133,6 @@ public:
|
||||
CHECK_NONFATAL(fn().GetArgNames() == args_in);
|
||||
}
|
||||
|
||||
//! Simplified constructor taking plain rpcfn_type function pointer.
|
||||
CRPCCommand(const char* category, const char* name, rpcfn_type fn, std::initializer_list<const char*> args)
|
||||
: CRPCCommand(category, name, "",
|
||||
[fn](const JSONRPCRequest& request, UniValue& result, bool) { result = fn(request); return true; },
|
||||
{args.begin(), args.end()}, intptr_t(fn))
|
||||
{
|
||||
}
|
||||
|
||||
std::string category;
|
||||
std::string name;
|
||||
std::string subname;
|
||||
|
@ -1,24 +0,0 @@
|
||||
#!/usr/bin/env bash
|
||||
#
|
||||
# Copyright (c) 2018 The Bitcoin Core developers
|
||||
# Distributed under the MIT software license, see the accompanying
|
||||
# file COPYING or http://www.opensource.org/licenses/mit-license.php.
|
||||
#
|
||||
# Check that all RPC help texts are generated by RPCHelpMan.
|
||||
|
||||
export LC_ALL=C
|
||||
|
||||
EXIT_CODE=0
|
||||
|
||||
# Assume that all multiline strings passed into a runtime_error are help texts.
|
||||
# This is potentially fragile, but the linter is only temporary and can safely
|
||||
# be removed early 2019.
|
||||
|
||||
non_autogenerated_help=$(grep -A1 'runtime_error($' $(git ls-files -- "*.cpp") | grep '".*\\n"$')
|
||||
if [[ ${non_autogenerated_help} != "" ]]; then
|
||||
echo "Must use RPCHelpMan to generate the help for the following RPC methods:"
|
||||
echo "${non_autogenerated_help}"
|
||||
echo
|
||||
EXIT_CODE=1
|
||||
fi
|
||||
exit ${EXIT_CODE}
|
Loading…
Reference in New Issue
Block a user