aboutsummaryrefslogtreecommitdiff
path: root/src/rpc/misc.cpp
diff options
context:
space:
mode:
authorAndrew Chow <achow101-github@achow101.com>2019-08-02 18:04:02 -0400
committerAndrew Chow <achow101-github@achow101.com>2019-08-16 19:34:01 -0400
commitc325f619dd071b5489989f645e42cace8eb23fb4 (patch)
tree25177eef2a597ec4bdfff5abe7782c10be5daf2f /src/rpc/misc.cpp
parent7a960ba775a60ebcc2e830356693e3ed702b22f1 (diff)
downloadbitcoin-c325f619dd071b5489989f645e42cace8eb23fb4.tar.xz
Return an error from descriptor Parse that gives more information about what failed
Diffstat (limited to 'src/rpc/misc.cpp')
-rw-r--r--src/rpc/misc.cpp10
1 files changed, 6 insertions, 4 deletions
diff --git a/src/rpc/misc.cpp b/src/rpc/misc.cpp
index d1e9682416..e48ed8db75 100644
--- a/src/rpc/misc.cpp
+++ b/src/rpc/misc.cpp
@@ -150,9 +150,10 @@ UniValue getdescriptorinfo(const JSONRPCRequest& request)
RPCTypeCheck(request.params, {UniValue::VSTR});
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) {
- throw JSONRPCError(RPC_INVALID_ADDRESS_OR_KEY, strprintf("Invalid descriptor"));
+ throw JSONRPCError(RPC_INVALID_ADDRESS_OR_KEY, strprintf("Invalid descriptor, %s", error));
}
UniValue result(UniValue::VOBJ);
@@ -199,9 +200,10 @@ UniValue deriveaddresses(const JSONRPCRequest& request)
}
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) {
- throw JSONRPCError(RPC_INVALID_ADDRESS_OR_KEY, strprintf("Invalid descriptor"));
+ throw JSONRPCError(RPC_INVALID_ADDRESS_OR_KEY, strprintf("Invalid descriptor, %s", error));
}
if (!desc->IsRange() && request.params.size() > 1) {