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

Function payment_sendonion

plugins/libplugin-pay.c:1965–1999  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

1963}
1964
1965static struct command_result *payment_sendonion(struct payment *p)
1966{
1967 struct out_req *req;
1968 u8 *payload, *tlv;
1969 req = jsonrpc_request_start(payment_cmd(p), "createonion",
1970 payment_createonion_success,
1971 payment_rpc_failure, p);
1972
1973 json_array_start(req->js, "hops");
1974 for (size_t i = 0; i < tal_count(p->createonion_request->hops); i++) {
1975 json_object_start(req->js, NULL);
1976 struct createonion_hop *hop = &p->createonion_request->hops[i];
1977 json_add_node_id(req->js, "pubkey", &hop->pubkey);
1978
1979 tlv = tal_arr(tmpctx, u8, 0);
1980 towire_tlvstream_raw(&tlv, hop->tlv_payload->fields);
1981 payload = tal_arr(tmpctx, u8, 0);
1982 towire_bigsize(&payload, tal_bytelen(tlv));
1983 towire(&payload, tlv, tal_bytelen(tlv));
1984 json_add_hex_talarr(req->js, "payload", payload);
1985 tal_free(tlv);
1986 tal_free(payload);
1987 json_object_end(req->js);
1988 }
1989 json_array_end(req->js);
1990
1991 json_add_hex_talarr(req->js, "assocdata",
1992 p->createonion_request->assocdata);
1993
1994 if (p->createonion_request->session_key)
1995 json_add_secret(req->js, "sessionkey",
1996 p->createonion_request->session_key);
1997
1998 return send_outreq(req);
1999}
2000
2001/* Mutual recursion. */
2002static struct command_result *payment_finished(struct payment *p);

Callers 1

payment_continueFunction · 0.85

Calls 14

payment_cmdFunction · 0.85
json_array_startFunction · 0.85
json_object_startFunction · 0.85
json_add_node_idFunction · 0.85
towire_tlvstream_rawFunction · 0.85
tal_bytelenFunction · 0.85
json_add_hex_talarrFunction · 0.85
tal_freeFunction · 0.85
json_object_endFunction · 0.85
json_array_endFunction · 0.85
json_add_secretFunction · 0.85
send_outreqFunction · 0.70

Tested by

no test coverage detected