Skip to content

Commit

Permalink
Merge pull request #2945 from rsksmart/fix_wrong_fed_creation_time_de…
Browse files Browse the repository at this point in the history
…rivation

Derive federation creation time correctly (from seconds instead of milliseconds
  • Loading branch information
marcos-iov authored Jan 23, 2025
2 parents bb95d83 + 57a9edd commit 05c0385
Show file tree
Hide file tree
Showing 2 changed files with 19 additions and 9 deletions.
Original file line number Diff line number Diff line change
Expand Up @@ -767,7 +767,7 @@ private FederationChangeResponseCode commitPendingFederation(PendingFederation c
}

private Federation buildFederationFromPendingFederation(PendingFederation pendingFederation) {
Instant federationCreationTime = Instant.ofEpochMilli(rskExecutionBlock.getTimestamp());
Instant federationCreationTime = Instant.ofEpochSecond(rskExecutionBlock.getTimestamp());
long federationCreationBlockNumber = rskExecutionBlock.getNumber();

return pendingFederation.buildFederation(federationCreationTime, federationCreationBlockNumber, constants, activations);
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -416,15 +416,15 @@ void voteCommitFederation_postRSKIP186_preRSKIP419_whenPendingFederationIsSet_sh
voteAndAssertCommitPendingFederation();

// assertions
Federation newFederation = storageProvider.getNewFederation(federationMainnetConstants, activations);
assertIsTheExpectedFederation(newFederation);

List<UTXO> utxosToMove = List.copyOf(storageProvider.getNewFederationBtcUTXOs(federationMainnetConstants.getBtcParams(), activations));
Federation federationBuiltFromPendingFederation =
pendingFederationToBe.buildFederation(Instant.ofEpochMilli(RSK_EXECUTION_BLOCK_TIMESTAMP), RSK_EXECUTION_BLOCK_NUMBER, federationMainnetConstants, activations);
assertHandoverToNewFederation(utxosToMove, federationBuiltFromPendingFederation);
assertHandoverToNewFederation(utxosToMove, newFederation);

assertPendingFederationVotingWasCleaned();

Federation oldFederation = storageProvider.getOldFederation(federationMainnetConstants, activations);
Federation newFederation = storageProvider.getNewFederation(federationMainnetConstants, activations);
assertLogCommitFederation(oldFederation, newFederation);
}

Expand All @@ -435,9 +435,6 @@ void voteCommitFederation_postRSKIP419_whenPendingFederationIsSet_shouldPerformC
List<UTXO> activeFederationUTXOs = BitcoinTestUtils.createUTXOs(10, activeFederation.getAddress());
bridgeStorageAccessor.saveToRepository(NEW_FEDERATION_BTC_UTXOS_KEY.getKey(), activeFederationUTXOs, BridgeSerializationUtils::serializeUTXOList);

Federation federationBuiltFromPendingFederation =
pendingFederationToBe.buildFederation(Instant.ofEpochMilli(RSK_EXECUTION_BLOCK_TIMESTAMP), RSK_EXECUTION_BLOCK_NUMBER, federationMainnetConstants, activations);

voteAndAssertCreateEmptyPendingFederation();
voteAndAssertAddFederationMembersPublicKeysToPendingFederation(pendingFederationToBe.getMembers());

Expand All @@ -448,7 +445,7 @@ void voteCommitFederation_postRSKIP419_whenPendingFederationIsSet_shouldPerformC
// assert proposed federation was set correctly
Optional<Federation> proposedFederation = storageProvider.getProposedFederation(federationMainnetConstants, activations);
assertTrue(proposedFederation.isPresent());
assertEquals(federationBuiltFromPendingFederation, proposedFederation.get());
assertIsTheExpectedFederation(proposedFederation.get());

assertPendingFederationVotingWasCleaned();

Expand All @@ -457,6 +454,19 @@ void voteCommitFederation_postRSKIP419_whenPendingFederationIsSet_shouldPerformC
assertNoHandoverToNewFederation();
}

private void assertIsTheExpectedFederation(Federation federation) {
assertEquals(RSK_EXECUTION_BLOCK_TIMESTAMP, federation.getCreationTime().getEpochSecond());
assertEquals(RSK_EXECUTION_BLOCK_NUMBER, federation.getCreationBlockNumber());

Federation federationBuiltFromPendingFederation = pendingFederationToBe.buildFederation(
Instant.ofEpochSecond(RSK_EXECUTION_BLOCK_TIMESTAMP),
RSK_EXECUTION_BLOCK_NUMBER,
federationMainnetConstants,
activations
);
assertEquals(federationBuiltFromPendingFederation, federation);
}

@Test
void commitProposedFederation_shouldPerformCommitProposedFederationActions() {
// arrange
Expand Down

0 comments on commit 05c0385

Please sign in to comment.