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

Function json_xpay_params

plugins/xpay/xpay.c:2382–2488  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

2380}
2381
2382static struct command_result *json_xpay_params(struct command *cmd,
2383 const char *buffer,
2384 const jsmntok_t *params,
2385 bool as_pay)
2386{
2387 struct amount_msat *msat, *maxfee, *partial;
2388 const char *invstring;
2389 const char **layers;
2390 u32 *maxdelay;
2391 const char *payer_note;
2392 unsigned int *retryfor;
2393 struct sha256 *localinvreqid;
2394 struct json_escape *label;
2395 struct out_req *req;
2396 struct xpay_params *xparams;
2397 bool *dev_use_shadow;
2398
2399 if (!param_check(cmd, buffer, params,
2400 p_req("invstring", param_invstring, &invstring),
2401 p_opt("amount_msat", param_msat, &msat),
2402 p_opt("maxfee", param_msat, &maxfee),
2403 p_opt("layers", param_string_array, &layers),
2404 p_opt_def("retry_for", param_number, &retryfor, 60),
2405 p_opt("partial_msat", param_msat, &partial),
2406 p_opt_def("maxdelay", param_u32, &maxdelay, 2016),
2407 p_opt("payer_note", param_string, &payer_note),
2408 p_opt("label", param_label, &label),
2409 p_opt("localinvreqid", param_sha256, &localinvreqid),
2410 p_opt_dev("dev_use_shadow", param_bool, &dev_use_shadow, true),
2411 NULL))
2412 return command_param_failed();
2413
2414 /* Is this a one-shot vibe payment? Kids these days! */
2415 if (!as_pay && bolt12_has_offer_prefix(invstring)) {
2416 struct command_result *ret;
2417 struct amount_msat authorized;
2418
2419 ret = check_offer_payable(cmd, invstring, msat, &authorized);
2420 if (ret)
2421 return ret;
2422
2423 if (localinvreqid)
2424 return command_fail(cmd, JSONRPC2_INVALID_PARAMS,
2425 "Cannot use localinvreqid with offer payment");
2426
2427 if (*dev_use_shadow == false)
2428 return command_fail(cmd, JSONRPC2_INVALID_PARAMS,
2429 "Cannot use dev_use_shadow=false with offer payment");
2430
2431 if (command_check_only(cmd))
2432 return command_check_done(cmd);
2433
2434 xparams = tal(cmd, struct xpay_params);
2435 xparams->msat = msat;
2436 xparams->maxfee = maxfee;
2437 xparams->partial = partial;
2438 xparams->layers = layers;
2439 xparams->retryfor = *retryfor;

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