Skip to content

Commit 569498f

Browse files
authored
chore: fixed history build for era for preview and sanchonet (#15)
* chore: fixed history build for era for preview and sanchonet * chore: removed formatting tool * chore: fixed test, restored fmt plugin
1 parent 6d67bca commit 569498f

File tree

3 files changed

+250
-0
lines changed

3 files changed

+250
-0
lines changed

src/main/java/org/cardanofoundation/conversions/StaticEraHistoryFactory.java

Lines changed: 36 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -17,6 +17,8 @@ public static EraHistory create(GenesisPaths genesisPaths) {
1717
return switch (genesisPaths.networkType()) {
1818
case MAINNET -> new EraHistory(mainnet(genesisPaths));
1919
case PREPROD -> new EraHistory(preprod(genesisPaths));
20+
case PREVIEW -> new EraHistory(preview(genesisPaths));
21+
case SANCHONET -> new EraHistory(sanchonet(genesisPaths));
2022
default -> new EraHistory(List.of());
2123
};
2224
}
@@ -224,4 +226,38 @@ private static List<EraHistoryItem> preprod(GenesisPaths genesisPaths) {
224226
Ouroboros_Praos,
225227
true));
226228
}
229+
230+
private static List<EraHistoryItem> preview(GenesisPaths genesisPaths) {
231+
return List.of(
232+
new EraHistoryItem(
233+
Phase.Shelley,
234+
new Era(Shelley, Optional.of(genesisPaths.shelleyLink())),
235+
0L, // TODO find out this value based on some explorer data
236+
Optional.empty(),
237+
0L,
238+
Optional.empty(),
239+
0,
240+
Optional.empty(),
241+
VER_6_0,
242+
Optional.of(Praos),
243+
Ouroboros_Praos,
244+
false));
245+
}
246+
247+
private static List<EraHistoryItem> sanchonet(GenesisPaths genesisPaths) {
248+
return List.of(
249+
new EraHistoryItem(
250+
Phase.Shelley,
251+
new Era(Shelley, Optional.of(genesisPaths.shelleyLink())),
252+
0L, // TODO find out this value based on some explorer data
253+
Optional.empty(),
254+
0L,
255+
Optional.empty(),
256+
0,
257+
Optional.empty(),
258+
VER_6_0,
259+
Optional.of(Praos),
260+
Ouroboros_Praos,
261+
false));
262+
}
227263
}
Lines changed: 107 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,107 @@
1+
package org.cardanofoundation.conversions;
2+
3+
import static org.assertj.core.api.Assertions.assertThat;
4+
import static org.cardanofoundation.conversions.domain.EraType.*;
5+
import static org.cardanofoundation.conversions.domain.NetworkType.PREVIEW;
6+
7+
import com.fasterxml.jackson.databind.ObjectMapper;
8+
import java.time.Duration;
9+
import java.time.LocalDateTime;
10+
import lombok.extern.slf4j.Slf4j;
11+
import org.junit.jupiter.api.BeforeEach;
12+
import org.junit.jupiter.api.Disabled;
13+
import org.junit.jupiter.api.Test;
14+
15+
@Slf4j
16+
class GenesisConfigPreviewTest {
17+
18+
private static GenesisConfig genesisConfig;
19+
20+
@BeforeEach
21+
public void setup() {
22+
var conversionsConfig = ClasspathConversionsFactory.create(PREVIEW);
23+
var eraHistory = StaticEraHistoryFactory.create(conversionsConfig.genesisPaths());
24+
25+
genesisConfig = new GenesisConfig(conversionsConfig, eraHistory, new ObjectMapper());
26+
}
27+
28+
@Test
29+
public void testByronSlotDuration() {
30+
assertThat(genesisConfig.slotDuration(Byron)).isEqualTo(Duration.ofSeconds(20));
31+
}
32+
33+
@Test
34+
public void testShelleySlotDuration() {
35+
assertThat(genesisConfig.slotDuration(Shelley)).isEqualTo(Duration.ofSeconds(1));
36+
}
37+
38+
@Test
39+
public void testAlonzoSlotDuration() {
40+
assertThat(genesisConfig.slotDuration(Alonzo)).isEqualTo(Duration.ofSeconds(1));
41+
}
42+
43+
@Test
44+
public void testByronSlotsPerEpoch() {
45+
assertThat(genesisConfig.slotsPerEpoch(Byron)).isEqualTo(4320L);
46+
}
47+
48+
@Test
49+
public void testShelleySlotsPerEpoch() {
50+
assertThat(genesisConfig.slotsPerEpoch(Shelley)).isEqualTo(86400L);
51+
}
52+
53+
@Test
54+
public void testAllegraSlotsPerEpoch() {
55+
assertThat(genesisConfig.slotsPerEpoch(Allegra)).isEqualTo(86400L);
56+
}
57+
58+
@Test
59+
@Disabled("there is no byron in preview")
60+
public void testLastByronEpoch() {
61+
assertThat(genesisConfig.lastByronEpochNo()).isEqualTo(-1);
62+
}
63+
64+
@Test
65+
public void testFirstShelleyEpoch() {
66+
assertThat(genesisConfig.firstShelleyEpochNo()).isEqualTo(0);
67+
}
68+
69+
@Test
70+
@Disabled("there is no byron in preview")
71+
public void testLastByronSlot() {
72+
assertThat(genesisConfig.lastByronSlot()).isEqualTo(4492799);
73+
}
74+
75+
@Test
76+
public void testPrimitiveNetworkStartTime() {
77+
assertThat(genesisConfig.getCardanoNetworkStartTime()).isEqualTo(1666656000L);
78+
}
79+
80+
@Test
81+
public void testNetworkStartTime() {
82+
assertThat(genesisConfig.getStartTime()).isEqualTo(LocalDateTime.of(2022, 10, 25, 0, 0, 0));
83+
}
84+
85+
@Test
86+
public void testProtocolMagic() {
87+
assertThat(genesisConfig.getProtocolNetworkMagic()).isEqualTo(2L);
88+
}
89+
90+
@Test
91+
public void testBlockTimeNetworkBeginning() {
92+
assertThat(genesisConfig.blockTime(Byron, 0)).isEqualTo(genesisConfig.getStartTime());
93+
}
94+
95+
@Test
96+
public void testShelleyStartTime() {
97+
assertThat(genesisConfig.getShelleyStartTime())
98+
.isEqualTo(LocalDateTime.of(2022, 10, 25, 0, 0, 0));
99+
}
100+
101+
@Test
102+
// proposal reveal time for Cardano Summit Awards 2023
103+
public void testBlockTimeNetwork() {
104+
assertThat(genesisConfig.blockTime(Shelley, 46755827L))
105+
.isEqualTo(LocalDateTime.of(2024, 4, 18, 3, 43, 47));
106+
}
107+
}
Lines changed: 107 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,107 @@
1+
package org.cardanofoundation.conversions;
2+
3+
import static org.assertj.core.api.Assertions.assertThat;
4+
import static org.cardanofoundation.conversions.domain.EraType.*;
5+
import static org.cardanofoundation.conversions.domain.NetworkType.SANCHONET;
6+
7+
import com.fasterxml.jackson.databind.ObjectMapper;
8+
import java.time.Duration;
9+
import java.time.LocalDateTime;
10+
import lombok.extern.slf4j.Slf4j;
11+
import org.junit.jupiter.api.BeforeEach;
12+
import org.junit.jupiter.api.Disabled;
13+
import org.junit.jupiter.api.Test;
14+
15+
@Slf4j
16+
class GenesisConfigSanchonetTest {
17+
18+
private static GenesisConfig genesisConfig;
19+
20+
@BeforeEach
21+
public void setup() {
22+
var conversionsConfig = ClasspathConversionsFactory.create(SANCHONET);
23+
var eraHistory = StaticEraHistoryFactory.create(conversionsConfig.genesisPaths());
24+
25+
genesisConfig = new GenesisConfig(conversionsConfig, eraHistory, new ObjectMapper());
26+
}
27+
28+
@Test
29+
public void testByronSlotDuration() {
30+
assertThat(genesisConfig.slotDuration(Byron)).isEqualTo(Duration.ofSeconds(20));
31+
}
32+
33+
@Test
34+
public void testShelleySlotDuration() {
35+
assertThat(genesisConfig.slotDuration(Shelley)).isEqualTo(Duration.ofSeconds(1));
36+
}
37+
38+
@Test
39+
public void testAlonzoSlotDuration() {
40+
assertThat(genesisConfig.slotDuration(Alonzo)).isEqualTo(Duration.ofSeconds(1));
41+
}
42+
43+
@Test
44+
public void testByronSlotsPerEpoch() {
45+
assertThat(genesisConfig.slotsPerEpoch(Byron)).isEqualTo(4320L);
46+
}
47+
48+
@Test
49+
public void testShelleySlotsPerEpoch() {
50+
assertThat(genesisConfig.slotsPerEpoch(Shelley)).isEqualTo(86400L);
51+
}
52+
53+
@Test
54+
public void testAllegraSlotsPerEpoch() {
55+
assertThat(genesisConfig.slotsPerEpoch(Allegra)).isEqualTo(86400L);
56+
}
57+
58+
@Test
59+
@Disabled("there is no byron in preview")
60+
public void testLastByronEpoch() {
61+
assertThat(genesisConfig.lastByronEpochNo()).isEqualTo(-1);
62+
}
63+
64+
@Test
65+
public void testFirstShelleyEpoch() {
66+
assertThat(genesisConfig.firstShelleyEpochNo()).isEqualTo(0);
67+
}
68+
69+
@Test
70+
@Disabled("there is no byron in preview")
71+
public void testLastByronSlot() {
72+
assertThat(genesisConfig.lastByronSlot()).isEqualTo(4492799);
73+
}
74+
75+
@Test
76+
public void testPrimitiveNetworkStartTime() {
77+
assertThat(genesisConfig.getCardanoNetworkStartTime()).isEqualTo(1686789000L);
78+
}
79+
80+
@Test
81+
public void testNetworkStartTime() {
82+
assertThat(genesisConfig.getStartTime()).isEqualTo(LocalDateTime.of(2023, 6, 15, 0, 30, 0));
83+
}
84+
85+
@Test
86+
public void testProtocolMagic() {
87+
assertThat(genesisConfig.getProtocolNetworkMagic()).isEqualTo(4L);
88+
}
89+
90+
@Test
91+
public void testBlockTimeNetworkBeginning() {
92+
assertThat(genesisConfig.blockTime(Byron, 0)).isEqualTo(genesisConfig.getStartTime());
93+
}
94+
95+
@Test
96+
public void testShelleyStartTime() {
97+
assertThat(genesisConfig.getShelleyStartTime())
98+
.isEqualTo(LocalDateTime.of(2023, 6, 15, 0, 30, 0));
99+
}
100+
101+
@Test
102+
// proposal reveal time for Cardano Summit Awards 2023
103+
public void testBlockTimeNetwork() {
104+
assertThat(genesisConfig.blockTime(Shelley, 26735107L))
105+
.isEqualTo(LocalDateTime.of(2024, 4, 19, 10, 55, 7));
106+
}
107+
}

0 commit comments

Comments
 (0)