sendpay: Compatible with old parameters description

This commit is contained in:
trueptolemy 2019-09-24 12:39:53 +08:00 committed by Christian Decker
parent 2d184d464f
commit 12da10cd15

View File

@ -804,9 +804,11 @@ static struct command_result *json_sendpay(struct command *cmd,
struct sha256 *rhash;
struct route_hop *route;
struct amount_msat *msat;
const char *b11str, *label;
const char *b11str, *label = NULL;
struct command_result *res;
/* For generating help, give new-style. */
if (!params || !deprecated_apis) {
if (!param(cmd, buffer, params,
p_req("route", param_array, &routetok),
p_req("payment_hash", param_sha256, &rhash),
@ -815,6 +817,30 @@ static struct command_result *json_sendpay(struct command *cmd,
p_opt("bolt11", param_string, &b11str),
NULL))
return command_param_failed();
} else if (params->type == JSMN_ARRAY) {
if (!param(cmd, buffer, params,
p_req("route", param_array, &routetok),
p_req("payment_hash", param_sha256, &rhash),
p_opt("label_or_description", param_escaped_string, &label),
p_opt("msatoshi", param_msat, &msat),
p_opt("bolt11", param_string, &b11str),
NULL))
return command_param_failed();
} else {
const char *desc = NULL;
if (!param(cmd, buffer, params,
p_req("route", param_array, &routetok),
p_req("payment_hash", param_sha256, &rhash),
p_opt("label", param_escaped_string, &label),
p_opt("description", param_escaped_string, &desc),
p_opt("msatoshi", param_msat, &msat),
p_opt("bolt11", param_string, &b11str),
NULL))
return command_param_failed();
if (!label && desc)
label = desc;
}
if (routetok->size == 0)
return command_fail(cmd, JSONRPC2_INVALID_PARAMS, "Empty route");