Skip to content

Commit

Permalink
chore: fixed history build for era for preview and sanchonet (#15)
Browse files Browse the repository at this point in the history
* chore: fixed history build for era for preview and sanchonet

* chore: removed formatting tool

* chore: fixed test, restored fmt plugin
  • Loading branch information
nemo83 authored Jul 16, 2024
1 parent 6d67bca commit 569498f
Show file tree
Hide file tree
Showing 3 changed files with 250 additions and 0 deletions.
Original file line number Diff line number Diff line change
Expand Up @@ -17,6 +17,8 @@ public static EraHistory create(GenesisPaths genesisPaths) {
return switch (genesisPaths.networkType()) {
case MAINNET -> new EraHistory(mainnet(genesisPaths));
case PREPROD -> new EraHistory(preprod(genesisPaths));
case PREVIEW -> new EraHistory(preview(genesisPaths));
case SANCHONET -> new EraHistory(sanchonet(genesisPaths));
default -> new EraHistory(List.of());
};
}
Expand Down Expand Up @@ -224,4 +226,38 @@ private static List<EraHistoryItem> preprod(GenesisPaths genesisPaths) {
Ouroboros_Praos,
true));
}

private static List<EraHistoryItem> preview(GenesisPaths genesisPaths) {
return List.of(
new EraHistoryItem(
Phase.Shelley,
new Era(Shelley, Optional.of(genesisPaths.shelleyLink())),
0L, // TODO find out this value based on some explorer data
Optional.empty(),
0L,
Optional.empty(),
0,
Optional.empty(),
VER_6_0,
Optional.of(Praos),
Ouroboros_Praos,
false));
}

private static List<EraHistoryItem> sanchonet(GenesisPaths genesisPaths) {
return List.of(
new EraHistoryItem(
Phase.Shelley,
new Era(Shelley, Optional.of(genesisPaths.shelleyLink())),
0L, // TODO find out this value based on some explorer data
Optional.empty(),
0L,
Optional.empty(),
0,
Optional.empty(),
VER_6_0,
Optional.of(Praos),
Ouroboros_Praos,
false));
}
}
Original file line number Diff line number Diff line change
@@ -0,0 +1,107 @@
package org.cardanofoundation.conversions;

import static org.assertj.core.api.Assertions.assertThat;
import static org.cardanofoundation.conversions.domain.EraType.*;
import static org.cardanofoundation.conversions.domain.NetworkType.PREVIEW;

import com.fasterxml.jackson.databind.ObjectMapper;
import java.time.Duration;
import java.time.LocalDateTime;
import lombok.extern.slf4j.Slf4j;
import org.junit.jupiter.api.BeforeEach;
import org.junit.jupiter.api.Disabled;
import org.junit.jupiter.api.Test;

@Slf4j
class GenesisConfigPreviewTest {

private static GenesisConfig genesisConfig;

@BeforeEach
public void setup() {
var conversionsConfig = ClasspathConversionsFactory.create(PREVIEW);
var eraHistory = StaticEraHistoryFactory.create(conversionsConfig.genesisPaths());

genesisConfig = new GenesisConfig(conversionsConfig, eraHistory, new ObjectMapper());
}

@Test
public void testByronSlotDuration() {
assertThat(genesisConfig.slotDuration(Byron)).isEqualTo(Duration.ofSeconds(20));
}

@Test
public void testShelleySlotDuration() {
assertThat(genesisConfig.slotDuration(Shelley)).isEqualTo(Duration.ofSeconds(1));
}

@Test
public void testAlonzoSlotDuration() {
assertThat(genesisConfig.slotDuration(Alonzo)).isEqualTo(Duration.ofSeconds(1));
}

@Test
public void testByronSlotsPerEpoch() {
assertThat(genesisConfig.slotsPerEpoch(Byron)).isEqualTo(4320L);
}

@Test
public void testShelleySlotsPerEpoch() {
assertThat(genesisConfig.slotsPerEpoch(Shelley)).isEqualTo(86400L);
}

@Test
public void testAllegraSlotsPerEpoch() {
assertThat(genesisConfig.slotsPerEpoch(Allegra)).isEqualTo(86400L);
}

@Test
@Disabled("there is no byron in preview")
public void testLastByronEpoch() {
assertThat(genesisConfig.lastByronEpochNo()).isEqualTo(-1);
}

@Test
public void testFirstShelleyEpoch() {
assertThat(genesisConfig.firstShelleyEpochNo()).isEqualTo(0);
}

@Test
@Disabled("there is no byron in preview")
public void testLastByronSlot() {
assertThat(genesisConfig.lastByronSlot()).isEqualTo(4492799);
}

@Test
public void testPrimitiveNetworkStartTime() {
assertThat(genesisConfig.getCardanoNetworkStartTime()).isEqualTo(1666656000L);
}

@Test
public void testNetworkStartTime() {
assertThat(genesisConfig.getStartTime()).isEqualTo(LocalDateTime.of(2022, 10, 25, 0, 0, 0));
}

@Test
public void testProtocolMagic() {
assertThat(genesisConfig.getProtocolNetworkMagic()).isEqualTo(2L);
}

@Test
public void testBlockTimeNetworkBeginning() {
assertThat(genesisConfig.blockTime(Byron, 0)).isEqualTo(genesisConfig.getStartTime());
}

@Test
public void testShelleyStartTime() {
assertThat(genesisConfig.getShelleyStartTime())
.isEqualTo(LocalDateTime.of(2022, 10, 25, 0, 0, 0));
}

@Test
// proposal reveal time for Cardano Summit Awards 2023
public void testBlockTimeNetwork() {
assertThat(genesisConfig.blockTime(Shelley, 46755827L))
.isEqualTo(LocalDateTime.of(2024, 4, 18, 3, 43, 47));
}
}
Original file line number Diff line number Diff line change
@@ -0,0 +1,107 @@
package org.cardanofoundation.conversions;

import static org.assertj.core.api.Assertions.assertThat;
import static org.cardanofoundation.conversions.domain.EraType.*;
import static org.cardanofoundation.conversions.domain.NetworkType.SANCHONET;

import com.fasterxml.jackson.databind.ObjectMapper;
import java.time.Duration;
import java.time.LocalDateTime;
import lombok.extern.slf4j.Slf4j;
import org.junit.jupiter.api.BeforeEach;
import org.junit.jupiter.api.Disabled;
import org.junit.jupiter.api.Test;

@Slf4j
class GenesisConfigSanchonetTest {

private static GenesisConfig genesisConfig;

@BeforeEach
public void setup() {
var conversionsConfig = ClasspathConversionsFactory.create(SANCHONET);
var eraHistory = StaticEraHistoryFactory.create(conversionsConfig.genesisPaths());

genesisConfig = new GenesisConfig(conversionsConfig, eraHistory, new ObjectMapper());
}

@Test
public void testByronSlotDuration() {
assertThat(genesisConfig.slotDuration(Byron)).isEqualTo(Duration.ofSeconds(20));
}

@Test
public void testShelleySlotDuration() {
assertThat(genesisConfig.slotDuration(Shelley)).isEqualTo(Duration.ofSeconds(1));
}

@Test
public void testAlonzoSlotDuration() {
assertThat(genesisConfig.slotDuration(Alonzo)).isEqualTo(Duration.ofSeconds(1));
}

@Test
public void testByronSlotsPerEpoch() {
assertThat(genesisConfig.slotsPerEpoch(Byron)).isEqualTo(4320L);
}

@Test
public void testShelleySlotsPerEpoch() {
assertThat(genesisConfig.slotsPerEpoch(Shelley)).isEqualTo(86400L);
}

@Test
public void testAllegraSlotsPerEpoch() {
assertThat(genesisConfig.slotsPerEpoch(Allegra)).isEqualTo(86400L);
}

@Test
@Disabled("there is no byron in preview")
public void testLastByronEpoch() {
assertThat(genesisConfig.lastByronEpochNo()).isEqualTo(-1);
}

@Test
public void testFirstShelleyEpoch() {
assertThat(genesisConfig.firstShelleyEpochNo()).isEqualTo(0);
}

@Test
@Disabled("there is no byron in preview")
public void testLastByronSlot() {
assertThat(genesisConfig.lastByronSlot()).isEqualTo(4492799);
}

@Test
public void testPrimitiveNetworkStartTime() {
assertThat(genesisConfig.getCardanoNetworkStartTime()).isEqualTo(1686789000L);
}

@Test
public void testNetworkStartTime() {
assertThat(genesisConfig.getStartTime()).isEqualTo(LocalDateTime.of(2023, 6, 15, 0, 30, 0));
}

@Test
public void testProtocolMagic() {
assertThat(genesisConfig.getProtocolNetworkMagic()).isEqualTo(4L);
}

@Test
public void testBlockTimeNetworkBeginning() {
assertThat(genesisConfig.blockTime(Byron, 0)).isEqualTo(genesisConfig.getStartTime());
}

@Test
public void testShelleyStartTime() {
assertThat(genesisConfig.getShelleyStartTime())
.isEqualTo(LocalDateTime.of(2023, 6, 15, 0, 30, 0));
}

@Test
// proposal reveal time for Cardano Summit Awards 2023
public void testBlockTimeNetwork() {
assertThat(genesisConfig.blockTime(Shelley, 26735107L))
.isEqualTo(LocalDateTime.of(2024, 4, 19, 10, 55, 7));
}
}

0 comments on commit 569498f

Please sign in to comment.