Browse Source

json-rpc: Add description argument to `sendpay`

ppa-0.6.1
Christian Decker 7 years ago
committed by Rusty Russell
parent
commit
1738107598
  1. 5
      contrib/pylightning/lightning/lightning.py
  2. 30
      lightningd/pay.c

5
contrib/pylightning/lightning/lightning.py

@ -275,13 +275,14 @@ class LightningRpc(UnixDomainSocketRpc):
"""
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)

30
lightningd/pay.c

@ -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;
@ -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);
}

Loading…
Cancel
Save