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

Function json_add_node

plugins/topology.c:428–497  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

426}
427
428static void json_add_node(struct json_stream *js,
429 const struct gossmap *gossmap,
430 const struct gossmap_node *n)
431{
432 struct node_id node_id;
433 u8 *nannounce;
434
435 json_object_start(js, NULL);
436 gossmap_node_get_id(gossmap, n, &node_id);
437 json_add_node_id(js, "nodeid", &node_id);
438 nannounce = gossmap_node_get_announce(tmpctx, gossmap, n);
439 if (nannounce) {
440 secp256k1_ecdsa_signature signature;
441 u8 *features;
442 u32 timestamp;
443 u8 rgb_color[3], alias[32];
444 u8 *addresses;
445 struct node_id nid;
446 struct wireaddr *addrs;
447 struct json_escape *esc;
448 struct tlv_node_ann_tlvs *na_tlvs;
449
450 if (!fromwire_node_announcement(nannounce, nannounce,
451 &signature,
452 &features,
453 &timestamp,
454 &nid,
455 rgb_color,
456 alias,
457 &addresses,
458 &na_tlvs)) {
459 plugin_log(plugin, LOG_BROKEN,
460 "Cannot parse stored node_announcement"
461 " for %s at %u: %s",
462 type_to_string(tmpctx, struct node_id,
463 &node_id),
464 n->nann_off,
465 tal_hex(tmpctx, nannounce));
466 goto out;
467 }
468
469 esc = json_escape(NULL,
470 take(tal_strndup(NULL,
471 (const char *)alias,
472 ARRAY_SIZE(alias))));
473 json_add_escaped_string(js, "alias", take(esc));
474 json_add_hex(js, "color", rgb_color, ARRAY_SIZE(rgb_color));
475 json_add_u64(js, "last_timestamp", timestamp);
476 json_add_hex_talarr(js, "features", features);
477
478 json_array_start(js, "addresses");
479 addrs = fromwire_wireaddr_array(nannounce, addresses);
480 for (size_t i = 0; i < tal_count(addrs); i++)
481 json_add_address(js, NULL, &addrs[i]);
482 json_array_end(js);
483
484 if (na_tlvs->option_will_fund) {
485 json_object_start(js, "option_will_fund");

Callers 1

json_listnodesFunction · 0.85

Calls 15

gossmap_node_get_idFunction · 0.85
tal_hexFunction · 0.85
json_add_hexFunction · 0.85
fromwire_wireaddr_arrayFunction · 0.85
json_add_lease_ratesFunction · 0.85
lease_rates_tohexFunction · 0.85
plugin_logFunction · 0.70
json_escapeClass · 0.70
json_object_startFunction · 0.50
json_add_node_idFunction · 0.50
type_to_stringClass · 0.50

Tested by

no test coverage detected