Skip to content

Commit 963d557

Browse files
committed
xpay: add payer_note field
1 parent 22f7a62 commit 963d557

File tree

1 file changed

+18
-8
lines changed

1 file changed

+18
-8
lines changed

plugins/xpay/xpay.c

Lines changed: 18 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -181,7 +181,8 @@ static struct command_result *xpay_core(struct command *cmd,
181181
u32 retryfor,
182182
const struct amount_msat *partial,
183183
u32 maxdelay,
184-
bool as_pay);
184+
const char *payer_note,
185+
bool as_pay);
185186

186187
/* Wrapper for pending commands (ignores return) */
187188
static void was_pending(const struct command_result *res)
@@ -1790,6 +1791,7 @@ struct xpay_params {
17901791
unsigned int retryfor;
17911792
u32 maxdelay;
17921793
const char *bip353;
1794+
const char *payer_note;
17931795
};
17941796

17951797
static struct command_result *
@@ -1804,7 +1806,7 @@ invoice_fetched(struct command *cmd,
18041806
inv = json_strdup(NULL, buf, json_get_member(buf, result, "invoice"));
18051807
return xpay_core(cmd, take(to_canonical_invstr(NULL, take(inv))),
18061808
NULL, params->maxfee, params->layers,
1807-
params->retryfor, params->partial, params->maxdelay,
1809+
params->retryfor, params->partial, params->maxdelay, params->payer_note,
18081810
false);
18091811
}
18101812

@@ -1820,9 +1822,12 @@ do_fetchinvoice(struct command *cmd, const char *offerstr, struct xpay_params *x
18201822
json_add_string(req->js, "offer", offerstr);
18211823
if (xparams->msat)
18221824
json_add_amount_msat(req->js, "amount_msat", *xparams->msat);
1823-
if (xparams->bip353)
1824-
json_add_string(req->js, "bip353", xparams->bip353);
1825-
return send_outreq(req);
1825+
if (xparams->bip353)
1826+
json_add_string(req->js, "bip353", xparams->bip353);
1827+
if (xparams->payer_note)
1828+
json_add_string(req->js, "payer_note", xparams->payer_note);
1829+
1830+
return send_outreq(req);
18261831
}
18271832

18281833
static struct command_result *
@@ -1867,7 +1872,8 @@ static struct command_result *json_xpay_params(struct command *cmd,
18671872
const char *invstring;
18681873
const char **layers;
18691874
u32 *maxdelay;
1870-
unsigned int *retryfor;
1875+
const char *payer_note;
1876+
unsigned int *retryfor;
18711877
struct out_req *req;
18721878
struct xpay_params *xparams;
18731879

@@ -1879,7 +1885,8 @@ static struct command_result *json_xpay_params(struct command *cmd,
18791885
p_opt_def("retry_for", param_number, &retryfor, 60),
18801886
p_opt("partial_msat", param_msat, &partial),
18811887
p_opt_def("maxdelay", param_u32, &maxdelay, 2016),
1882-
NULL))
1888+
p_opt("payer_note", param_string, &payer_note),
1889+
NULL))
18831890
return command_param_failed();
18841891

18851892
/* Is this a one-shot vibe payment? Kids these days! */
@@ -1901,6 +1908,7 @@ static struct command_result *json_xpay_params(struct command *cmd,
19011908
xparams->retryfor = *retryfor;
19021909
xparams->maxdelay = *maxdelay;
19031910
xparams->bip353 = NULL;
1911+
xparams->payer_note = payer_note;
19041912

19051913
return do_fetchinvoice(cmd, invstring, xparams);
19061914
}
@@ -1915,6 +1923,7 @@ static struct command_result *json_xpay_params(struct command *cmd,
19151923
xparams->retryfor = *retryfor;
19161924
xparams->maxdelay = *maxdelay;
19171925
xparams->bip353 = invstring;
1926+
xparams->payer_note = payer_note;
19181927

19191928
req = jsonrpc_request_start(cmd, "fetchbip353",
19201929
bip353_fetched,
@@ -1924,7 +1933,7 @@ static struct command_result *json_xpay_params(struct command *cmd,
19241933
}
19251934

19261935
return xpay_core(cmd, invstring,
1927-
msat, maxfee, layers, *retryfor, partial, *maxdelay,
1936+
msat, maxfee, layers, *retryfor, partial, *maxdelay, payer_note,
19281937
as_pay);
19291938
}
19301939

@@ -1936,6 +1945,7 @@ static struct command_result *xpay_core(struct command *cmd,
19361945
u32 retryfor,
19371946
const struct amount_msat *partial,
19381947
u32 maxdelay,
1948+
const char *payer_note,
19391949
bool as_pay)
19401950
{
19411951
struct payment *payment = tal(cmd, struct payment);

0 commit comments

Comments
 (0)