make x default in compact form, remove unused endpoint from legacy controller, add compact forms to channel details

This commit is contained in:
Carsten Otto
2021-11-22 17:33:03 +01:00
parent 76628d0ce4
commit e03ecddf48
7 changed files with 35 additions and 36 deletions

View File

@@ -16,8 +16,6 @@ import java.util.Set;
import static de.cotto.lndmanagej.model.ChannelIdFixtures.CHANNEL_ID;
import static de.cotto.lndmanagej.model.ChannelIdFixtures.CHANNEL_ID_3;
import static de.cotto.lndmanagej.model.ChannelIdFixtures.CHANNEL_ID_COMPACT;
import static de.cotto.lndmanagej.model.ChannelIdFixtures.CHANNEL_ID_COMPACT_3;
import static de.cotto.lndmanagej.model.CoopClosedChannelFixtures.CLOSED_CHANNEL;
import static de.cotto.lndmanagej.model.CoopClosedChannelFixtures.CLOSED_CHANNEL_3;
import static de.cotto.lndmanagej.model.ForceClosingChannelFixtures.FORCE_CLOSING_CHANNEL;
@@ -74,13 +72,6 @@ class LegacyControllerIT {
.andExpect(content().string(CHANNEL_ID + "\n" + CHANNEL_ID_3));
}
@Test
void getOpenChannelIdsCompact() throws Exception {
when(channelService.getOpenChannels()).thenReturn(Set.of(LOCAL_OPEN_CHANNEL, LOCAL_OPEN_CHANNEL_3));
mockMvc.perform(get("/legacy/open-channels/compact"))
.andExpect(content().string(CHANNEL_ID_COMPACT + "\n" + CHANNEL_ID_COMPACT_3));
}
@Test
void getOpenChannelIdsPretty() throws Exception {
when(channelService.getOpenChannels()).thenReturn(Set.of(LOCAL_OPEN_CHANNEL, LOCAL_OPEN_CHANNEL_3));

View File

@@ -61,14 +61,6 @@ public class LegacyController {
.collect(Collectors.joining(NEWLINE));
}
@GetMapping("/open-channels/compact")
public String getOpenChannelIdsCompact() {
mark("getOpenChannelIdsCompact");
return getOpenChannelIdsSorted()
.map(ChannelId::getCompactForm)
.collect(Collectors.joining(NEWLINE));
}
@GetMapping("/open-channels/pretty")
public String getOpenChannelIdsPretty() {
mark("getOpenChannelIdsPretty");

View File

@@ -6,8 +6,20 @@ import de.cotto.lndmanagej.model.Pubkey;
public record ChannelDetailsDto(
ChannelId channelId,
String channelIdCompact,
String channelIdCompactLnd,
Pubkey remotePubkey,
String remoteAlias,
@JsonProperty("private") boolean privateChannel
) {
public ChannelDetailsDto(ChannelId channelId, Pubkey remotePubkey, String remoteAlias, boolean privateChannel) {
this(
channelId,
channelId.getCompactForm(),
channelId.getCompactFormLnd(),
remotePubkey,
remoteAlias,
privateChannel
);
}
}

View File

@@ -19,7 +19,6 @@ import static de.cotto.lndmanagej.model.ChannelFixtures.CAPACITY_2;
import static de.cotto.lndmanagej.model.ChannelIdFixtures.CHANNEL_ID;
import static de.cotto.lndmanagej.model.ChannelIdFixtures.CHANNEL_ID_3;
import static de.cotto.lndmanagej.model.ChannelIdFixtures.CHANNEL_ID_COMPACT;
import static de.cotto.lndmanagej.model.ChannelIdFixtures.CHANNEL_ID_COMPACT_3;
import static de.cotto.lndmanagej.model.ChannelIdFixtures.CHANNEL_ID_COMPACT_4;
import static de.cotto.lndmanagej.model.CoopClosedChannelFixtures.CLOSED_CHANNEL;
import static de.cotto.lndmanagej.model.CoopClosedChannelFixtures.CLOSED_CHANNEL_3;
@@ -93,15 +92,6 @@ class LegacyControllerTest {
);
}
@Test
void getOpenChannelIdsCompact() {
when(channelService.getOpenChannels()).thenReturn(Set.of(LOCAL_OPEN_CHANNEL, LOCAL_OPEN_CHANNEL_3));
assertThat(legacyController.getOpenChannelIdsCompact()).isEqualTo(
CHANNEL_ID_COMPACT + "\n" + CHANNEL_ID_COMPACT_3
);
verify(metrics).mark(argThat(name -> name.endsWith(".getOpenChannelIdsCompact")));
}
@Test
void getOpenChannelIdsPretty() {
when(nodeService.getAlias(PUBKEY_2)).thenReturn(ALIAS_2);

View File

@@ -4,10 +4,11 @@ import javax.annotation.Nonnull;
import java.util.Objects;
public final class ChannelId implements Comparable<ChannelId> {
private final long shortChannelId;
private static final int EXPECTED_NUMBER_OF_SEGMENTS = 3;
private static final long NOT_BEFORE = 430_103_660_018_532_352L; // January 1st 2016
private final long shortChannelId;
private ChannelId(long shortChannelId) {
this.shortChannelId = shortChannelId;
}
@@ -33,10 +34,11 @@ public final class ChannelId implements Comparable<ChannelId> {
}
public String getCompactForm() {
long block = shortChannelId >> 40;
long transaction = shortChannelId >> 16 & 0xFFFFFF;
long output = shortChannelId & 0xFFFF;
return block + ":" + transaction + ":" + output;
return getCompactFormWithDelimiter("x");
}
public String getCompactFormLnd() {
return getCompactFormWithDelimiter(":");
}
public long getShortChannelId() {
@@ -69,4 +71,11 @@ public final class ChannelId implements Comparable<ChannelId> {
public int compareTo(@Nonnull ChannelId other) {
return Long.compare(shortChannelId, other.shortChannelId);
}
private String getCompactFormWithDelimiter(String delimiter) {
long block = shortChannelId >> 40;
long transaction = shortChannelId >> 16 & 0xFFFFFF;
long output = shortChannelId & 0xFFFF;
return block + delimiter + transaction + delimiter + output;
}
}

View File

@@ -132,6 +132,11 @@ class ChannelIdTest {
assertThat(CHANNEL_ID.getCompactForm()).isEqualTo(CHANNEL_ID_COMPACT);
}
@Test
void getCompactFormLnd() {
assertThat(CHANNEL_ID.getCompactFormLnd()).isEqualTo("712345:123:1");
}
@Test
void testEquals() {
EqualsVerifier.forClass(ChannelId.class).verify();

View File

@@ -1,10 +1,10 @@
package de.cotto.lndmanagej.model;
public class ChannelIdFixtures {
public static final String CHANNEL_ID_COMPACT = "712345:123:1";
public static final String CHANNEL_ID_COMPACT_2 = "799999:456:2";
public static final String CHANNEL_ID_COMPACT_3 = "799999:456:3";
public static final String CHANNEL_ID_COMPACT_4 = "799999:456:4";
public static final String CHANNEL_ID_COMPACT = "712345x123x1";
public static final String CHANNEL_ID_COMPACT_2 = "799999x456x2";
public static final String CHANNEL_ID_COMPACT_3 = "799999x456x3";
public static final String CHANNEL_ID_COMPACT_4 = "799999x456x4";
public static final ChannelId CHANNEL_ID = ChannelId.fromCompactForm(CHANNEL_ID_COMPACT);
public static final ChannelId CHANNEL_ID_2 = ChannelId.fromCompactForm(CHANNEL_ID_COMPACT_2);
public static final ChannelId CHANNEL_ID_3 = ChannelId.fromCompactForm(CHANNEL_ID_COMPACT_3);