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

Function payment_sendonion

plugins/libplugin-pay.c:1730–1764  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

1728}
1729
1730static void payment_sendonion(struct payment *p)
1731{
1732 struct out_req *req;
1733 u8 *payload, *tlv;
1734 req = jsonrpc_request_start(p->plugin, NULL, "createonion",
1735 payment_createonion_success,
1736 payment_rpc_failure, p);
1737
1738 json_array_start(req->js, "hops");
1739 for (size_t i = 0; i < tal_count(p->createonion_request->hops); i++) {
1740 json_object_start(req->js, NULL);
1741 struct createonion_hop *hop = &p->createonion_request->hops[i];
1742 json_add_node_id(req->js, "pubkey", &hop->pubkey);
1743
1744 tlv = tal_arr(tmpctx, u8, 0);
1745 towire_tlvstream_raw(&tlv, hop->tlv_payload->fields);
1746 payload = tal_arr(tmpctx, u8, 0);
1747 towire_bigsize(&payload, tal_bytelen(tlv));
1748 towire(&payload, tlv, tal_bytelen(tlv));
1749 json_add_hex_talarr(req->js, "payload", payload);
1750 tal_free(tlv);
1751 tal_free(payload);
1752 json_object_end(req->js);
1753 }
1754 json_array_end(req->js);
1755
1756 json_add_hex_talarr(req->js, "assocdata",
1757 p->createonion_request->assocdata);
1758
1759 if (p->createonion_request->session_key)
1760 json_add_secret(req->js, "sessionkey",
1761 p->createonion_request->session_key);
1762
1763 send_outreq(p->plugin, req);
1764}
1765
1766/* Mutual recursion. */
1767static void payment_finished(struct payment *p);

Callers 1

payment_continueFunction · 0.85

Calls 13

towire_tlvstream_rawFunction · 0.85
tal_bytelenFunction · 0.85
tal_freeFunction · 0.85
send_outreqFunction · 0.70
json_array_startFunction · 0.50
json_object_startFunction · 0.50
json_add_node_idFunction · 0.50
towire_bigsizeFunction · 0.50
towireFunction · 0.50
json_add_hex_talarrFunction · 0.50
json_object_endFunction · 0.50
json_array_endFunction · 0.50

Tested by

no test coverage detected