- let from_channel_str = prev_channel_id
- .map(|channel_id| format!(" from channel {}", log_bytes!(channel_id)))
- .unwrap_or_default();
- let to_channel_str = next_channel_id
- .map(|channel_id| format!(" to channel {}", log_bytes!(channel_id)))
- .unwrap_or_default();
+ let read_only_network_graph = network_graph.read_only();
+ let nodes = read_only_network_graph.nodes();
+ let channels = channel_manager.list_channels();
+
+ let node_str = |channel_id: &Option<[u8; 32]>| match channel_id {
+ None => String::new(),
+ Some(channel_id) => match channels.iter().find(|c| c.channel_id == *channel_id) {
+ None => String::new(),
+ Some(channel) => {
+ match nodes.get(&NodeId::from_pubkey(&channel.counterparty.node_id)) {
+ None => " from private node".to_string(),
+ Some(node) => match &node.announcement_info {
+ None => " from unnamed node".to_string(),
+ Some(announcement) => {
+ format!(" from node {}", NodeAlias(&announcement.alias))
+ }
+ },
+ }
+ }
+ },
+ };
+ let channel_str = |channel_id: &Option<[u8; 32]>| {
+ channel_id
+ .map(|channel_id| format!(" with channel {}", hex_utils::hex_str(&channel_id)))
+ .unwrap_or_default()
+ };
+ let from_prev_str =
+ format!("{}{}", node_str(prev_channel_id), channel_str(prev_channel_id));
+ let to_next_str =
+ format!("{}{}", node_str(next_channel_id), channel_str(next_channel_id));
+