Skip to content

Commit cacb354

Browse files
committed
chore: fix tests and add latest epochs
1 parent 619455d commit cacb354

File tree

4 files changed

+25
-7
lines changed

4 files changed

+25
-7
lines changed

calculation/src/main/java/org/cardanofoundation/rewards/calculation/TreasuryCalculation.java

Lines changed: 6 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -157,7 +157,12 @@ public static BigInteger calculateUnclaimedRefundsForRetiredPools(Set<RetiredPoo
157157
!ownerAccountsRegisteredInThePast.contains(retiredPool.getRewardAddress())) {
158158
// If the reward address has been unregistered, the deposit can not be returned
159159
// and will be added to the treasury instead (Pool Reap see: shelley-ledger.pdf p.53)
160-
unclaimedRefunds = unclaimedRefunds.add(retiredPool.getDepositAmount());
160+
BigInteger depositAmount = BigInteger.valueOf(500_000_000); // default pool deposit of 500 Ada
161+
if (retiredPool.getDepositAmount() != null) {
162+
depositAmount = retiredPool.getDepositAmount();
163+
}
164+
165+
unclaimedRefunds = unclaimedRefunds.add(depositAmount);
161166
}
162167
}
163168
}

validation/src/main/java/org/cardanofoundation/rewards/validation/TreasuryValidation.java

Lines changed: 5 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -7,6 +7,8 @@
77
import org.cardanofoundation.rewards.validation.data.provider.JsonDataProvider;
88
import org.cardanofoundation.rewards.validation.domain.EpochValidationInput;
99
import org.cardanofoundation.rewards.validation.domain.TreasuryValidationResult;
10+
11+
import java.math.BigDecimal;
1012
import java.math.BigInteger;
1113
import java.util.HashSet;
1214
import java.util.List;
@@ -15,7 +17,8 @@
1517

1618
public class TreasuryValidation {
1719

18-
public static TreasuryValidationResult calculateTreasuryForEpoch(int epoch, DataProvider dataProvider, NetworkConfig networkConfig) {
20+
public static TreasuryValidationResult calculateTreasuryForEpoch(int epoch, DataProvider dataProvider, NetworkConfig networkConfig,
21+
BigInteger unspendableEarnedRewards) {
1922
TreasuryCalculationResult treasuryCalculationResult;
2023

2124
if (dataProvider instanceof JsonDataProvider) {
@@ -53,7 +56,7 @@ public static TreasuryValidationResult calculateTreasuryForEpoch(int epoch, Data
5356
epochValidationInput.getRetiredPools(),
5457
epochValidationInput.getMirCertificates().stream().toList(),
5558
epochValidationInput.getDeregisteredAccountsOnEpochBoundary(),
56-
epochValidationInput.getRegisteredAccountsUntilNow(), BigInteger.ZERO, networkConfig);
59+
epochValidationInput.getRegisteredAccountsUntilNow(), unspendableEarnedRewards, networkConfig);
5760
} else {
5861
AdaPots adaPotsForPreviousEpoch = dataProvider.getAdaPotsForEpoch(epoch - 1);
5962
ProtocolParameters protocolParameters = dataProvider.getProtocolParametersForEpoch(epoch - 2);

validation/src/test/java/org/cardanofoundation/rewards/validation/EpochValidationTest.java

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -108,7 +108,7 @@ public void testAllegraHardForkEpoch() {
108108
}
109109

110110
static Stream<Integer> dataProviderEpochRange() {
111-
return IntStream.range(206, 230).boxed();
111+
return IntStream.range(210, 230).boxed();
112112
}
113113

114114
@ParameterizedTest
@@ -126,7 +126,7 @@ public void testCalculateEpochRewardsWithJsonDataProvider(int epoch) {
126126

127127
static Stream<Integer> testEpochs() {
128128
return Stream.of(
129-
360, 475
129+
360, 475, 537
130130
);
131131
}
132132

validation/src/test/java/org/cardanofoundation/rewards/validation/TreasuryValidationTest.java

Lines changed: 12 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -4,6 +4,7 @@
44
import java.util.stream.IntStream;
55
import java.util.stream.Stream;
66

7+
import lombok.extern.slf4j.Slf4j;
78
import org.cardanofoundation.rewards.calculation.config.NetworkConfig;
89
import org.cardanofoundation.rewards.validation.data.provider.DataProvider;
910
import org.cardanofoundation.rewards.validation.data.provider.DbSyncDataProvider;
@@ -25,6 +26,7 @@
2526
@SpringBootTest
2627
@TestInstance(TestInstance.Lifecycle.PER_CLASS)
2728
@ComponentScan
29+
@Slf4j
2830
public class TreasuryValidationTest {
2931

3032
@Autowired
@@ -59,13 +61,21 @@ void Test_calculateTreasury(final int epoch, DataProviderType dataProviderType)
5961
throw new RuntimeException("Unknown data provider type: " + dataProviderType);
6062
}
6163

62-
TreasuryValidationResult treasuryValidationResult = TreasuryValidation.calculateTreasuryForEpoch(epoch, dataProvider, networkConfig);
64+
BigInteger unspendableEarnedRewards = BigInteger.ZERO;
65+
if (epoch == 215) {
66+
unspendableEarnedRewards = new BigInteger("53681623");
67+
} else if (epoch > 215) {
68+
log.warn("Unspendable rewards are not provided for epoch " + epoch + " and cannot be calculated within the TreasuryCalculation" +
69+
" as it needs other variables processed in the EpochCalculation, using zero value, but the test may fail.");
70+
}
71+
72+
TreasuryValidationResult treasuryValidationResult = TreasuryValidation.calculateTreasuryForEpoch(epoch, dataProvider, networkConfig, unspendableEarnedRewards);
6373
BigInteger difference = treasuryValidationResult.getActualTreasury().subtract(treasuryValidationResult.getCalculatedTreasury());
6474
Assertions.assertEquals(BigInteger.ZERO, difference, "The difference " + difference.longValue() + " Lovelace between expected treasury value and actual treasury value is not zero");
6575
}
6676

6777
static Stream<Integer> dataProviderRange() {
68-
return IntStream.range(209, 215).boxed();
78+
return IntStream.range(210, 216).boxed();
6979
}
7080

7181
@ParameterizedTest

0 commit comments

Comments
 (0)