mirror of
https://github.com/aljazceru/lightning.git
synced 2025-12-24 09:34:24 +01:00
listpays: fixed bolt11 null with keysend and update doc command
listpays: make doc-all missed Changelog-Added: JSON-RPC: `listpays` can be used to query payments using the `payment_hash` Changelog-Added: JSON-RPC: `listpays` now includes the `payment_hash`
This commit is contained in:
committed by
Christian Decker
parent
723b7223b7
commit
700897f06e
14
doc/lightning-listpays.7
generated
14
doc/lightning-listpays.7
generated
@@ -3,12 +3,12 @@
|
||||
lightning-listpays - Command for querying payment status
|
||||
.SH SYNOPSIS
|
||||
|
||||
\fBlistpays\fR [bolt11]
|
||||
\fBlistpays\fR [bolt11] [payment_hash]
|
||||
|
||||
.SH DESCRIPTION
|
||||
|
||||
The \fBlistpay\fR RPC command gets the status of all \fIpay\fR commands, or a
|
||||
single one if \fIbolt11\fR is specified\.
|
||||
single one if either \fIbolt11\fR or \fIpayment_hash\fR was specified\.
|
||||
|
||||
.SH RETURN VALUE
|
||||
|
||||
@@ -16,7 +16,11 @@ On success, an array of objects is returned\. Each object contains:
|
||||
|
||||
|
||||
\fIbolt11\fR
|
||||
the \fIbolt11\fR argument given to \fIpay\fR (see below for exceptions)\.
|
||||
the \fIbolt11\fR invoice if provided to \fBpay\fR\.
|
||||
|
||||
|
||||
\fIpayment_hash\fR
|
||||
the \fIpayment_hash\fR of the payment\.
|
||||
|
||||
|
||||
\fIstatus\fR
|
||||
@@ -24,11 +28,11 @@ one of \fIcomplete\fR, \fIfailed\fR or \fIpending\fR\.
|
||||
|
||||
|
||||
\fIpayment_preimage\fR
|
||||
(if \fIstatus\fR is \fIcomplete\fR) proves payment was received\.
|
||||
if \fIstatus\fR is \fIcomplete\fR\.
|
||||
|
||||
|
||||
\fIlabel\fR
|
||||
optional \fIlabel\fR, if provided to \fIpay\fR\.
|
||||
optional \fIlabel\fR, if provided to \fIpay\fR or \fIsendonion\fR\.
|
||||
|
||||
|
||||
\fIamount_sent_msat\fR
|
||||
|
||||
@@ -4,13 +4,13 @@ lightning-listpays -- Command for querying payment status
|
||||
SYNOPSIS
|
||||
--------
|
||||
|
||||
**listpays** \[bolt11\]
|
||||
**listpays** \[bolt11\] \[payment_hash\]
|
||||
|
||||
DESCRIPTION
|
||||
-----------
|
||||
|
||||
The **listpay** RPC command gets the status of all *pay* commands, or a
|
||||
single one if *bolt11* is specified.
|
||||
single one if either *bolt11* or *payment_hash* was specified.
|
||||
|
||||
RETURN VALUE
|
||||
------------
|
||||
@@ -18,16 +18,19 @@ RETURN VALUE
|
||||
On success, an array of objects is returned. Each object contains:
|
||||
|
||||
*bolt11*
|
||||
the *bolt11* argument given to *pay* (see below for exceptions).
|
||||
the *bolt11* invoice if provided to `pay`.
|
||||
|
||||
*payment_hash*
|
||||
the *payment_hash* of the payment.
|
||||
|
||||
*status*
|
||||
one of *complete*, *failed* or *pending*.
|
||||
|
||||
*payment\_preimage*
|
||||
(if *status* is *complete*) proves payment was received.
|
||||
if *status* is *complete*.
|
||||
|
||||
*label*
|
||||
optional *label*, if provided to *pay*.
|
||||
optional *label*, if provided to *pay* or *sendonion*.
|
||||
|
||||
*amount\_sent\_msat*
|
||||
total amount sent, in "NNNmsat" format.
|
||||
|
||||
@@ -1736,7 +1736,10 @@ static void add_new_entry(struct json_stream *ret,
|
||||
const struct pay_mpp *pm)
|
||||
{
|
||||
json_object_start(ret, NULL);
|
||||
json_add_string(ret, "bolt11", pm->b11);
|
||||
if (pm->b11)
|
||||
json_add_string(ret, "bolt11", pm->b11);
|
||||
|
||||
json_add_sha256(ret, "payment_hash", pm->payment_hash);
|
||||
json_add_string(ret, "status", pm->status);
|
||||
json_add_u32(ret, "created_at", pm->timestamp);
|
||||
|
||||
@@ -1854,11 +1857,13 @@ static struct command_result *json_listpays(struct command *cmd,
|
||||
const jsmntok_t *params)
|
||||
{
|
||||
const char *b11str;
|
||||
struct sha256 *payment_hash;
|
||||
struct out_req *req;
|
||||
|
||||
/* FIXME: would be nice to parse as a bolt11 so check worked in future */
|
||||
if (!param(cmd, buf, params,
|
||||
p_opt("bolt11", param_string, &b11str),
|
||||
p_opt("payment_hash", param_sha256, &payment_hash),
|
||||
NULL))
|
||||
return command_param_failed();
|
||||
|
||||
@@ -1867,6 +1872,9 @@ static struct command_result *json_listpays(struct command *cmd,
|
||||
cast_const(char *, b11str));
|
||||
if (b11str)
|
||||
json_add_string(req->js, "bolt11", b11str);
|
||||
|
||||
if (payment_hash)
|
||||
json_add_sha256(req->js, "payment_hash", payment_hash);
|
||||
return send_outreq(cmd->plugin, req);
|
||||
}
|
||||
|
||||
@@ -2054,7 +2062,7 @@ static const struct plugin_command commands[] = {
|
||||
}, {
|
||||
"listpays",
|
||||
"payment",
|
||||
"List result of payment {bolt11}, or all",
|
||||
"List result of payment {bolt11} or {payment_hash}, or all",
|
||||
"Covers old payments (failed and succeeded) and current ones.",
|
||||
json_listpays
|
||||
},
|
||||
|
||||
@@ -3240,3 +3240,27 @@ def test_mpp_presplit_routehint_conflict(node_factory, bitcoind):
|
||||
inv = l3.rpc.invoice(Millisatoshi(2 * 10000 * 1000), 'i', 'i', exposeprivatechannels=True)['bolt11']
|
||||
|
||||
l1.rpc.pay(inv)
|
||||
|
||||
|
||||
def test_listpay_result_with_paymod(node_factory, bitcoind):
|
||||
"""
|
||||
The object of this test is to verify the correct behavior
|
||||
of the RPC command listpay e with two different type of
|
||||
payment, such as: keysend (without invoice) and pay (with invoice).
|
||||
l1 -> keysend -> l2
|
||||
l2 -> pay invoice -> l3
|
||||
"""
|
||||
|
||||
amount_sat = 10 ** 6
|
||||
|
||||
l1, l2, l3 = node_factory.line_graph(3)
|
||||
|
||||
invl2 = l2.rpc.invoice(amount_sat * 2, "inv_l2", "inv_l2")
|
||||
l1.rpc.pay(invl2['bolt11'])
|
||||
|
||||
l2.rpc.keysend(l3.info['id'], amount_sat * 2, "keysend_l3")
|
||||
|
||||
assert 'bolt11' in l1.rpc.listpays()['pays'][0]
|
||||
assert 'payment_hash' in l2.rpc.listpays()['pays'][0]
|
||||
assert 'payment_hash' in l1.rpc.listpays()['pays'][0]
|
||||
assert 'bolt11' not in l2.rpc.listpays()['pays'][0]
|
||||
|
||||
Reference in New Issue
Block a user