@@ -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) */
187188static 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
17951797static 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
18281833static 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