MCPcopy Create free account
hub / github.com/ElementsProject/lightning / json_xpay_params

Function json_xpay_params

plugins/xpay/xpay.c:2302–2403  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

2300}
2301
2302static struct command_result *json_xpay_params(struct command *cmd,
2303 const char *buffer,
2304 const jsmntok_t *params,
2305 bool as_pay)
2306{
2307 struct amount_msat *msat, *maxfee, *partial;
2308 const char *invstring;
2309 const char **layers;
2310 u32 *maxdelay;
2311 const char *payer_note;
2312 unsigned int *retryfor;
2313 struct sha256 *localinvreqid;
2314 struct json_escape *label;
2315 struct out_req *req;
2316 struct xpay_params *xparams;
2317 bool *dev_use_shadow;
2318
2319 if (!param_check(cmd, buffer, params,
2320 p_req("invstring", param_invstring, &invstring),
2321 p_opt("amount_msat", param_msat, &msat),
2322 p_opt("maxfee", param_msat, &maxfee),
2323 p_opt("layers", param_string_array, &layers),
2324 p_opt_def("retry_for", param_number, &retryfor, 60),
2325 p_opt("partial_msat", param_msat, &partial),
2326 p_opt_def("maxdelay", param_u32, &maxdelay, 2016),
2327 p_opt("payer_note", param_string, &payer_note),
2328 p_opt("label", param_label, &label),
2329 p_opt("localinvreqid", param_sha256, &localinvreqid),
2330 p_opt_dev("dev_use_shadow", param_bool, &dev_use_shadow, true),
2331 NULL))
2332 return command_param_failed();
2333
2334 /* Is this a one-shot vibe payment? Kids these days! */
2335 if (!as_pay && bolt12_has_offer_prefix(invstring)) {
2336 struct command_result *ret;
2337
2338 ret = check_offer_payable(cmd, invstring, msat);
2339 if (ret)
2340 return ret;
2341
2342 if (localinvreqid)
2343 return command_fail(cmd, JSONRPC2_INVALID_PARAMS,
2344 "Cannot use localinvreqid with offer payment");
2345
2346 if (*dev_use_shadow == false)
2347 return command_fail(cmd, JSONRPC2_INVALID_PARAMS,
2348 "Cannot use dev_use_shadow=false with offer payment");
2349
2350 if (command_check_only(cmd))
2351 return command_check_done(cmd);
2352
2353 xparams = tal(cmd, struct xpay_params);
2354 xparams->msat = msat;
2355 xparams->maxfee = maxfee;
2356 xparams->partial = partial;
2357 xparams->layers = layers;
2358 xparams->retryfor = *retryfor;
2359 xparams->maxdelay = *maxdelay;

Callers 2

json_xpayFunction · 0.85
json_xpay_as_payFunction · 0.85

Calls 11

param_checkFunction · 0.85
bolt12_has_offer_prefixFunction · 0.85
check_offer_payableFunction · 0.85
do_fetchinvoiceFunction · 0.85
xpay_coreFunction · 0.85
command_param_failedFunction · 0.50
command_failFunction · 0.50
command_check_onlyFunction · 0.50
command_check_doneFunction · 0.50
json_add_stringFunction · 0.50
send_outreqFunction · 0.50

Tested by

no test coverage detected