Changeset View
Changeset View
Standalone View
Standalone View
src/rpc/misc.cpp
Show First 20 Lines • Show All 186 Lines • ▼ Show 20 Lines | RPCHelpMan{ | ||||
.Check(request); | .Check(request); | ||||
RPCTypeCheck(request.params, {UniValue::VSTR}); | RPCTypeCheck(request.params, {UniValue::VSTR}); | ||||
FlatSigningProvider provider; | FlatSigningProvider provider; | ||||
std::string error; | std::string error; | ||||
auto desc = Parse(request.params[0].get_str(), provider, error); | auto desc = Parse(request.params[0].get_str(), provider, error); | ||||
if (!desc) { | if (!desc) { | ||||
throw JSONRPCError(RPC_INVALID_ADDRESS_OR_KEY, | throw JSONRPCError(RPC_INVALID_ADDRESS_OR_KEY, error); | ||||
strprintf("Invalid descriptor, %s", error)); | |||||
} | } | ||||
UniValue result(UniValue::VOBJ); | UniValue result(UniValue::VOBJ); | ||||
result.pushKV("descriptor", desc->ToString()); | result.pushKV("descriptor", desc->ToString()); | ||||
result.pushKV("checksum", | result.pushKV("checksum", | ||||
GetDescriptorChecksum(request.params[0].get_str())); | GetDescriptorChecksum(request.params[0].get_str())); | ||||
result.pushKV("isrange", desc->IsRange()); | result.pushKV("isrange", desc->IsRange()); | ||||
result.pushKV("issolvable", desc->IsSolvable()); | result.pushKV("issolvable", desc->IsSolvable()); | ||||
▲ Show 20 Lines • Show All 47 Lines • ▼ Show 20 Lines | if (request.params.size() >= 2 && !request.params[1].isNull()) { | ||||
std::tie(range_begin, range_end) = | std::tie(range_begin, range_end) = | ||||
ParseDescriptorRange(request.params[1]); | ParseDescriptorRange(request.params[1]); | ||||
} | } | ||||
FlatSigningProvider key_provider; | FlatSigningProvider key_provider; | ||||
std::string error; | std::string error; | ||||
auto desc = Parse(desc_str, key_provider, error, /* require_checksum = */ true); | auto desc = Parse(desc_str, key_provider, error, /* require_checksum = */ true); | ||||
if (!desc) { | if (!desc) { | ||||
throw JSONRPCError(RPC_INVALID_ADDRESS_OR_KEY, | throw JSONRPCError(RPC_INVALID_ADDRESS_OR_KEY, error); | ||||
strprintf("Invalid descriptor, %s", error)); | |||||
} | } | ||||
if (!desc->IsRange() && request.params.size() > 1) { | if (!desc->IsRange() && request.params.size() > 1) { | ||||
throw JSONRPCError( | throw JSONRPCError( | ||||
RPC_INVALID_PARAMETER, | RPC_INVALID_PARAMETER, | ||||
"Range should not be specified for an un-ranged descriptor"); | "Range should not be specified for an un-ranged descriptor"); | ||||
} | } | ||||
▲ Show 20 Lines • Show All 474 Lines • Show Last 20 Lines |