Changeset View
Changeset View
Standalone View
Standalone View
src/rpc/jsonrpcrequest.cpp
Show All 23 Lines | void JSONRPCRequest::parse(const UniValue &valRequest) { | ||||
UniValue valMethod = find_value(request, "method"); | UniValue valMethod = find_value(request, "method"); | ||||
if (valMethod.isNull()) { | if (valMethod.isNull()) { | ||||
throw JSONRPCError(RPC_INVALID_REQUEST, "Missing method"); | throw JSONRPCError(RPC_INVALID_REQUEST, "Missing method"); | ||||
} | } | ||||
if (!valMethod.isStr()) { | if (!valMethod.isStr()) { | ||||
throw JSONRPCError(RPC_INVALID_REQUEST, "Method must be a string"); | throw JSONRPCError(RPC_INVALID_REQUEST, "Method must be a string"); | ||||
} | } | ||||
strMethod = valMethod.get_str(); | strMethod = valMethod.get_str(); | ||||
if (strMethod != "getblocktemplate") { | |||||
LogPrint(BCLog::RPC, "ThreadRPCServer method=%s\n", | LogPrint(BCLog::RPC, "ThreadRPCServer method=%s\n", | ||||
SanitizeString(strMethod)); | SanitizeString(strMethod)); | ||||
} | |||||
// Parse params | // Parse params | ||||
UniValue valParams = find_value(request, "params"); | UniValue valParams = find_value(request, "params"); | ||||
if (valParams.isArray() || valParams.isObject()) { | if (valParams.isArray() || valParams.isObject()) { | ||||
params = valParams; | params = valParams; | ||||
} else if (valParams.isNull()) { | } else if (valParams.isNull()) { | ||||
params = UniValue(UniValue::VARR); | params = UniValue(UniValue::VARR); | ||||
} else { | } else { | ||||
throw JSONRPCError(RPC_INVALID_REQUEST, | throw JSONRPCError(RPC_INVALID_REQUEST, | ||||
"Params must be an array or object"); | "Params must be an array or object"); | ||||
} | } | ||||
} | } |