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

Function json_add_node

plugins/topology.c:338–406  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

336}
337
338static void json_add_node(struct json_stream *js,
339 const struct gossmap *gossmap,
340 const struct gossmap_node *n)
341{
342 struct node_id node_id;
343 u8 *nannounce;
344
345 json_object_start(js, NULL);
346 gossmap_node_get_id(gossmap, n, &node_id);
347 json_add_node_id(js, "nodeid", &node_id);
348 nannounce = gossmap_node_get_announce(tmpctx, gossmap, n);
349 if (nannounce) {
350 secp256k1_ecdsa_signature signature;
351 u8 *features;
352 u32 timestamp;
353 u8 rgb_color[3], alias[32];
354 u8 *addresses;
355 struct node_id nid;
356 struct wireaddr *addrs;
357 struct json_escape *esc;
358 struct tlv_node_ann_tlvs *na_tlvs;
359
360 if (!fromwire_node_announcement(nannounce, nannounce,
361 &signature,
362 &features,
363 &timestamp,
364 &nid,
365 rgb_color,
366 alias,
367 &addresses,
368 &na_tlvs)) {
369 plugin_log(plugin, LOG_BROKEN,
370 "Cannot parse stored node_announcement"
371 " for %s at %"PRIu64": %s",
372 fmt_node_id(tmpctx, &node_id),
373 n->nann_off,
374 tal_hex(tmpctx, nannounce));
375 goto out;
376 }
377
378 esc = json_escape(NULL,
379 take(tal_strndup(NULL,
380 (const char *)alias,
381 ARRAY_SIZE(alias))));
382 json_add_escaped_string(js, "alias", take(esc));
383 json_add_hex(js, "color", rgb_color, ARRAY_SIZE(rgb_color));
384 json_add_u64(js, "last_timestamp", timestamp);
385 json_add_hex_talarr(js, "features", features);
386
387 json_array_start(js, "addresses");
388 addrs = fromwire_wireaddr_array(nannounce, addresses);
389 for (size_t i = 0; i < tal_count(addrs); i++)
390 json_add_address(js, NULL, &addrs[i]);
391 json_array_end(js);
392
393 if (na_tlvs->option_will_fund) {
394 json_object_start(js, "option_will_fund");
395 json_add_lease_rates(js, na_tlvs->option_will_fund);

Callers 1

json_listnodesFunction · 0.85

Calls 15

json_object_startFunction · 0.85
gossmap_node_get_idFunction · 0.85
json_add_node_idFunction · 0.85
fmt_node_idFunction · 0.85
tal_hexFunction · 0.85
json_add_escaped_stringFunction · 0.85
json_add_hexFunction · 0.85
json_add_u64Function · 0.85
json_add_hex_talarrFunction · 0.85
json_array_startFunction · 0.85
fromwire_wireaddr_arrayFunction · 0.85

Tested by

no test coverage detected