public async Task RefreshOnlyIfNecessary(LnrpcListChannelsResponse listChannelsResponse, LnrpcPendingChannelsResponse pendingChannelsResponse) { var allPublicKeys = new List <string>(); if (listChannelsResponse?.Channels != null) { allPublicKeys.AddRange(listChannelsResponse.Channels.Select(c => c.Remote_pubkey)); } if (pendingChannelsResponse?.Pending_open_channels != null) { allPublicKeys.AddRange(pendingChannelsResponse.Pending_open_channels.Select(c => c.Channel.Remote_node_pub)); } foreach (var publicKey in allPublicKeys) { if (this.nodeAliasCache.ContainsKey(publicKey)) { continue; } else { var nodeInfo = await this.client.SwaggerClient.GetNodeInfoAsync(publicKey).ConfigureAwait(false); this.nodeAliasCache.Add(nodeInfo.Node.Pub_key, nodeInfo.Node.Alias); } } }
public void WriteMetrics(LnrpcListChannelsResponse listChannelsResponse) { if (listChannelsResponse?.Channels != null) { foreach (var channel in listChannelsResponse.Channels) { var nodeAlias = this.nodeAliasCache.GetNodeAlias(channel.Remote_pubkey); this.metrics.Write($"{this.configuration.MetricPrefix}_list_channels", GetFields(channel), GetTags(nodeAlias)); } } }