| 1963 | } |
| 1964 | |
| 1965 | static 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. */ |
| 2002 | static struct command_result *payment_finished(struct payment *p); |
no test coverage detected