mirror of
https://github.com/aljazceru/lnd-manageJ.git
synced 2026-01-24 08:24:20 +01:00
get closed channels
This commit is contained in:
@@ -4,7 +4,7 @@ import com.codahale.metrics.MetricRegistry;
|
||||
import de.cotto.lndmanagej.metrics.Metrics;
|
||||
import de.cotto.lndmanagej.model.Channel;
|
||||
import de.cotto.lndmanagej.model.ChannelId;
|
||||
import de.cotto.lndmanagej.model.LocalChannel;
|
||||
import de.cotto.lndmanagej.model.LocalOpenChannel;
|
||||
import de.cotto.lndmanagej.model.Pubkey;
|
||||
import de.cotto.lndmanagej.service.BalanceService;
|
||||
import de.cotto.lndmanagej.service.ChannelService;
|
||||
@@ -83,22 +83,30 @@ public class LegacyController {
|
||||
public String getOpenChannelIdsPretty() {
|
||||
mark("getOpenChannelIdsPretty");
|
||||
return channelService.getOpenChannels().stream()
|
||||
.sorted(Comparator.comparing(LocalChannel::getId))
|
||||
.map(localChannel -> {
|
||||
Pubkey pubkey = localChannel.getRemotePubkey();
|
||||
return localChannel.getId().getCompactForm() +
|
||||
.sorted(Comparator.comparing(LocalOpenChannel::getId))
|
||||
.map(localOpenChannel -> {
|
||||
Pubkey pubkey = localOpenChannel.getRemotePubkey();
|
||||
return localOpenChannel.getId().getCompactForm() +
|
||||
"\t" + pubkey +
|
||||
"\t" + localChannel.getCapacity() +
|
||||
"\t" + localOpenChannel.getCapacity() +
|
||||
"\t" + nodeService.getAlias(pubkey);
|
||||
})
|
||||
.collect(Collectors.joining(NEWLINE));
|
||||
}
|
||||
|
||||
@GetMapping("/closed-channels")
|
||||
public String getClosedChannelIds() {
|
||||
mark("getClosedChannelIds");
|
||||
return getClosedChannelIdsSorted()
|
||||
.map(ChannelId::toString)
|
||||
.collect(Collectors.joining(NEWLINE));
|
||||
}
|
||||
|
||||
@GetMapping("/peer-pubkeys")
|
||||
public String getPeerPubkeys() {
|
||||
mark("getPeerPubkeys");
|
||||
return channelService.getOpenChannels().stream()
|
||||
.map(LocalChannel::getRemotePubkey)
|
||||
.map(LocalOpenChannel::getRemotePubkey)
|
||||
.map(Pubkey::toString)
|
||||
.sorted()
|
||||
.distinct()
|
||||
@@ -165,6 +173,12 @@ public class LegacyController {
|
||||
.sorted();
|
||||
}
|
||||
|
||||
private Stream<ChannelId> getClosedChannelIdsSorted() {
|
||||
return channelService.getClosedChannels().stream()
|
||||
.map(Channel::getId)
|
||||
.sorted();
|
||||
}
|
||||
|
||||
private void mark(String name) {
|
||||
metrics.mark(MetricRegistry.name(getClass(), name));
|
||||
}
|
||||
|
||||
@@ -4,7 +4,7 @@ import de.cotto.lndmanagej.grpc.GrpcChannels;
|
||||
import de.cotto.lndmanagej.model.BalanceInformation;
|
||||
import de.cotto.lndmanagej.model.ChannelId;
|
||||
import de.cotto.lndmanagej.model.Coins;
|
||||
import de.cotto.lndmanagej.model.LocalChannel;
|
||||
import de.cotto.lndmanagej.model.LocalOpenChannel;
|
||||
import de.cotto.lndmanagej.model.Pubkey;
|
||||
import org.springframework.stereotype.Component;
|
||||
|
||||
@@ -22,7 +22,7 @@ public class BalanceService {
|
||||
|
||||
public Coins getAvailableLocalBalance(Pubkey peer) {
|
||||
return channelService.getOpenChannelsWith(peer).stream()
|
||||
.map(LocalChannel::getId)
|
||||
.map(LocalOpenChannel::getId)
|
||||
.map(this::getAvailableLocalBalance)
|
||||
.reduce(Coins.NONE, Coins::add);
|
||||
}
|
||||
@@ -35,7 +35,7 @@ public class BalanceService {
|
||||
|
||||
public Coins getAvailableRemoteBalance(Pubkey peer) {
|
||||
return channelService.getOpenChannelsWith(peer).stream()
|
||||
.map(LocalChannel::getId)
|
||||
.map(LocalOpenChannel::getId)
|
||||
.map(this::getAvailableRemoteBalance)
|
||||
.reduce(Coins.NONE, Coins::add);
|
||||
}
|
||||
@@ -48,6 +48,6 @@ public class BalanceService {
|
||||
|
||||
private Optional<BalanceInformation> getBalanceInformation(ChannelId channelId) {
|
||||
return grpcChannels.getChannel(channelId)
|
||||
.map(LocalChannel::getBalanceInformation);
|
||||
.map(LocalOpenChannel::getBalanceInformation);
|
||||
}
|
||||
}
|
||||
|
||||
@@ -3,7 +3,8 @@ package de.cotto.lndmanagej.service;
|
||||
import com.google.common.cache.LoadingCache;
|
||||
import de.cotto.lndmanagej.caching.CacheBuilder;
|
||||
import de.cotto.lndmanagej.grpc.GrpcChannels;
|
||||
import de.cotto.lndmanagej.model.LocalChannel;
|
||||
import de.cotto.lndmanagej.model.ClosedChannel;
|
||||
import de.cotto.lndmanagej.model.LocalOpenChannel;
|
||||
import de.cotto.lndmanagej.model.Pubkey;
|
||||
import org.springframework.stereotype.Component;
|
||||
|
||||
@@ -12,26 +13,31 @@ import java.util.stream.Collectors;
|
||||
|
||||
@Component
|
||||
public class ChannelService {
|
||||
private static final int MAXIMUM_SIZE = 500;
|
||||
private static final int CACHE_EXPIRY_MINUTES = 1;
|
||||
|
||||
private final LoadingCache<Object, Set<LocalChannel>> channelsCache;
|
||||
private final LoadingCache<Object, Set<LocalOpenChannel>> channelsCache;
|
||||
private final LoadingCache<Object, Set<ClosedChannel>> closedChannelsCache;
|
||||
|
||||
public ChannelService(GrpcChannels grpcChannels) {
|
||||
channelsCache = new CacheBuilder()
|
||||
.withExpiryMinutes(CACHE_EXPIRY_MINUTES)
|
||||
.withMaximumSize(MAXIMUM_SIZE)
|
||||
.build(grpcChannels::getChannels);
|
||||
closedChannelsCache = new CacheBuilder()
|
||||
.withExpiryMinutes(CACHE_EXPIRY_MINUTES)
|
||||
.build(grpcChannels::getClosedChannels);
|
||||
}
|
||||
|
||||
public Set<LocalChannel> getOpenChannels() {
|
||||
public Set<LocalOpenChannel> getOpenChannels() {
|
||||
return channelsCache.getUnchecked("");
|
||||
}
|
||||
|
||||
public Set<LocalChannel> getOpenChannelsWith(Pubkey peer) {
|
||||
public Set<ClosedChannel> getClosedChannels() {
|
||||
return closedChannelsCache.getUnchecked("");
|
||||
}
|
||||
|
||||
public Set<LocalOpenChannel> getOpenChannelsWith(Pubkey peer) {
|
||||
return getOpenChannels().stream()
|
||||
.filter(c -> peer.equals(c.getRemotePubkey()))
|
||||
.collect(Collectors.toSet());
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user