| 1728 | } |
| 1729 | |
| 1730 | static 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. */ |
| 1767 | static void payment_finished(struct payment *p); |
no test coverage detected