Skip to content

Commit

Permalink
json-rpc: Add description argument to sendpay
Browse files Browse the repository at this point in the history
  • Loading branch information
cdecker authored and rustyrussell committed Jul 30, 2018
1 parent ab223c2 commit 1738107
Show file tree
Hide file tree
Showing 2 changed files with 30 additions and 5 deletions.
5 changes: 3 additions & 2 deletions contrib/pylightning/lightning/lightning.py
Original file line number Diff line number Diff line change
Expand Up @@ -275,13 +275,14 @@ def getinfo(self):
"""
return self.call("getinfo")

def sendpay(self, route, payment_hash):
def sendpay(self, route, payment_hash, description=""):
"""
Send along {route} in return for preimage of {payment_hash}
"""
payload = {
"route": route,
"payment_hash": payment_hash
"payment_hash": payment_hash,
"description": description,
}
return self.call("sendpay", payload)

Expand Down
30 changes: 27 additions & 3 deletions lightningd/pay.c
Original file line number Diff line number Diff line change
Expand Up @@ -918,17 +918,20 @@ static void json_sendpay_on_resolve(const struct sendpay_result* r,
static void json_sendpay(struct command *cmd,
const char *buffer, const jsmntok_t *params)
{
const jsmntok_t *routetok, *rhashtok;
const jsmntok_t *routetok, *rhashtok, *desctok;
const jsmntok_t *t, *end;
size_t n_hops;
struct sha256 rhash;
struct route_hop *route;
u64 *msatoshi;
const struct json_escaped *desc;
const char *description;

if (!param(cmd, buffer, params,
p_req("route", json_tok_tok, &routetok),
p_req("payment_hash", json_tok_tok, &rhashtok),
p_opt("msatoshi", json_tok_u64, &msatoshi),
p_opt_tok("description", &desctok),
NULL))
return;

Expand Down Expand Up @@ -1025,10 +1028,31 @@ static void json_sendpay(struct command *cmd,
}
}

/* FIXME(cdecker): Add a description parameter to sendpay */
if (desctok) {
desc = json_tok_escaped_string(cmd, buffer, desctok);
if (!desc) {
command_fail(cmd, JSONRPC2_INVALID_PARAMS,
"description '%.*s' not a string",
desctok->end - desctok->start,
buffer + desctok->start);
return;
}
description = json_escaped_unescape(cmd, desc);
if (description == NULL) {
command_fail(
cmd, JSONRPC2_INVALID_PARAMS,
"description '%.*s' not a valid escaped string",
desctok->end - desctok->start,
buffer + desctok->start);
return;
}
} else {
description = NULL;
}

if (send_payment(cmd, cmd->ld, &rhash, route,
msatoshi ? *msatoshi : route[n_hops-1].amount,
NULL,
description,
&json_sendpay_on_resolve, cmd))
command_still_pending(cmd);
}
Expand Down

0 comments on commit 1738107

Please sign in to comment.