Changeset View
Changeset View
Standalone View
Standalone View
src/rpc/misc.cpp
Show First 20 Lines • Show All 183 Lines • ▼ Show 20 Lines | RPCHelpMan{ | ||||
"0h]" | "0h]" | ||||
"0279be667ef9dcbbac55a06295Ce870b07029Bfcdb2" | "0279be667ef9dcbbac55a06295Ce870b07029Bfcdb2" | ||||
"dce28d959f2815b16f81798)\"")}} | "dce28d959f2815b16f81798)\"")}} | ||||
.Check(request); | .Check(request); | ||||
RPCTypeCheck(request.params, {UniValue::VSTR}); | RPCTypeCheck(request.params, {UniValue::VSTR}); | ||||
FlatSigningProvider provider; | FlatSigningProvider provider; | ||||
auto desc = Parse(request.params[0].get_str(), provider); | std::string 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, | ||||
strprintf("Invalid descriptor")); | 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 44 Lines • ▼ Show 20 Lines | UniValue deriveaddresses(const Config &config, const JSONRPCRequest &request) { | ||||
int64_t range_end = 0; | int64_t range_end = 0; | ||||
if (request.params.size() >= 2 && !request.params[1].isNull()) { | 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; | ||||
auto desc = Parse(desc_str, key_provider, /* require_checksum = */ true); | std::string error; | ||||
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, | ||||
strprintf("Invalid descriptor")); | 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 |