Skip to content

Commit 07bf6a9

Browse files
authored
fix: vm.getBlockNumber (#206)
1 parent 20878a9 commit 07bf6a9

File tree

3 files changed

+38
-38
lines changed

3 files changed

+38
-38
lines changed

foundry.toml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -5,7 +5,7 @@ script = 'script'
55
out = 'out'
66
libs = ['lib']
77
cache_path = 'cache'
8-
solc = "0.8.23"
8+
solc = "0.8.30"
99

1010
# For dependencies
1111
remappings = [

test/PDPVerifier.t.sol

Lines changed: 29 additions & 29 deletions
Original file line numberDiff line numberDiff line change
@@ -303,11 +303,11 @@ contract PDPVerifierDataSetMutateTest is Test, PieceHelper {
303303

304304
// flush add
305305
vm.expectEmit(true, true, false, false);
306-
emit IPDPEvents.NextProvingPeriod(setId, block.number + CHALLENGE_FINALITY_DELAY, 2);
307-
pdpVerifier.nextProvingPeriod(setId, block.number + CHALLENGE_FINALITY_DELAY, empty);
306+
emit IPDPEvents.NextProvingPeriod(setId, vm.getBlockNumber() + CHALLENGE_FINALITY_DELAY, 2);
307+
pdpVerifier.nextProvingPeriod(setId, vm.getBlockNumber() + CHALLENGE_FINALITY_DELAY, empty);
308308

309309
assertEq(pdpVerifier.getDataSetLeafCount(setId), leafCount);
310-
assertEq(pdpVerifier.getNextChallengeEpoch(setId), block.number + CHALLENGE_FINALITY_DELAY);
310+
assertEq(pdpVerifier.getNextChallengeEpoch(setId), vm.getBlockNumber() + CHALLENGE_FINALITY_DELAY);
311311
assertEq(pdpVerifier.getChallengeRange(setId), leafCount);
312312

313313
assertTrue(pdpVerifier.pieceLive(setId, pieceId));
@@ -337,12 +337,12 @@ contract PDPVerifierDataSetMutateTest is Test, PieceHelper {
337337
assertEq(firstId, 0);
338338
// flush add
339339
vm.expectEmit(true, true, true, false);
340-
emit IPDPEvents.NextProvingPeriod(setId, block.number + CHALLENGE_FINALITY_DELAY, 6);
341-
pdpVerifier.nextProvingPeriod(setId, block.number + CHALLENGE_FINALITY_DELAY, empty);
340+
emit IPDPEvents.NextProvingPeriod(setId, vm.getBlockNumber() + CHALLENGE_FINALITY_DELAY, 6);
341+
pdpVerifier.nextProvingPeriod(setId, vm.getBlockNumber() + CHALLENGE_FINALITY_DELAY, empty);
342342

343343
uint256 expectedLeafCount = 64 + 128;
344344
assertEq(pdpVerifier.getDataSetLeafCount(setId), expectedLeafCount);
345-
assertEq(pdpVerifier.getNextChallengeEpoch(setId), block.number + CHALLENGE_FINALITY_DELAY);
345+
assertEq(pdpVerifier.getNextChallengeEpoch(setId), vm.getBlockNumber() + CHALLENGE_FINALITY_DELAY);
346346

347347
assertTrue(pdpVerifier.pieceLive(setId, firstId));
348348
assertTrue(pdpVerifier.pieceLive(setId, firstId + 1));
@@ -408,8 +408,8 @@ contract PDPVerifierDataSetMutateTest is Test, PieceHelper {
408408
pieces[0] = makeSamplePiece(2);
409409
pdpVerifier.addPieces(setId, pieces, empty);
410410
assertEq(pdpVerifier.getNextChallengeEpoch(setId), pdpVerifier.NO_CHALLENGE_SCHEDULED()); // Not updated on first add anymore
411-
pdpVerifier.nextProvingPeriod(setId, block.number + CHALLENGE_FINALITY_DELAY, empty);
412-
assertEq(pdpVerifier.getNextChallengeEpoch(setId), block.number + CHALLENGE_FINALITY_DELAY);
411+
pdpVerifier.nextProvingPeriod(setId, vm.getBlockNumber() + CHALLENGE_FINALITY_DELAY, empty);
412+
assertEq(pdpVerifier.getNextChallengeEpoch(setId), vm.getBlockNumber() + CHALLENGE_FINALITY_DELAY);
413413

414414
// Remove piece
415415
uint256[] memory toRemove = new uint256[](1);
@@ -418,7 +418,7 @@ contract PDPVerifierDataSetMutateTest is Test, PieceHelper {
418418

419419
vm.expectEmit(true, true, false, false);
420420
emit IPDPEvents.PiecesRemoved(setId, toRemove);
421-
pdpVerifier.nextProvingPeriod(setId, block.number + CHALLENGE_FINALITY_DELAY, empty); // flush
421+
pdpVerifier.nextProvingPeriod(setId, vm.getBlockNumber() + CHALLENGE_FINALITY_DELAY, empty); // flush
422422

423423
assertEq(pdpVerifier.getNextChallengeEpoch(setId), pdpVerifier.NO_CHALLENGE_SCHEDULED());
424424
assertEq(pdpVerifier.pieceLive(setId, 0), false);
@@ -462,15 +462,15 @@ contract PDPVerifierDataSetMutateTest is Test, PieceHelper {
462462

463463
vm.expectEmit(true, true, false, false);
464464
emit IPDPEvents.PiecesRemoved(setId, toRemove);
465-
pdpVerifier.nextProvingPeriod(setId, block.number + CHALLENGE_FINALITY_DELAY, empty); // flush
465+
pdpVerifier.nextProvingPeriod(setId, vm.getBlockNumber() + CHALLENGE_FINALITY_DELAY, empty); // flush
466466

467467
assertEq(pdpVerifier.pieceLive(setId, 0), false);
468468
assertEq(pdpVerifier.pieceLive(setId, 1), true);
469469
assertEq(pdpVerifier.pieceLive(setId, 2), false);
470470

471471
assertEq(pdpVerifier.getNextPieceId(setId), 3);
472472
assertEq(pdpVerifier.getDataSetLeafCount(setId), 64 / 32);
473-
assertEq(pdpVerifier.getNextChallengeEpoch(setId), block.number + CHALLENGE_FINALITY_DELAY);
473+
assertEq(pdpVerifier.getNextChallengeEpoch(setId), vm.getBlockNumber() + CHALLENGE_FINALITY_DELAY);
474474

475475
bytes memory emptyCidData = new bytes(0);
476476
assertEq(pdpVerifier.getPieceCid(setId, 0).data, emptyCidData);
@@ -497,7 +497,7 @@ contract PDPVerifierDataSetMutateTest is Test, PieceHelper {
497497
vm.expectRevert("Can only schedule removal of existing pieces");
498498
pdpVerifier.schedulePieceDeletions(setId, toRemove, empty);
499499
// Actual removal does not fail
500-
pdpVerifier.nextProvingPeriod(setId, block.number + CHALLENGE_FINALITY_DELAY, empty);
500+
pdpVerifier.nextProvingPeriod(setId, vm.getBlockNumber() + CHALLENGE_FINALITY_DELAY, empty);
501501

502502
// Scheduling both unchallengeable and challengeable pieces for removal succeeds
503503
// scheduling duplicate ids in both cases succeeds
@@ -514,7 +514,7 @@ contract PDPVerifierDataSetMutateTest is Test, PieceHelper {
514514
assertEq(true, pdpVerifier.pieceChallengable(setId, 0));
515515
assertEq(false, pdpVerifier.pieceChallengable(setId, 1));
516516
pdpVerifier.schedulePieceDeletions(setId, toRemove2, empty);
517-
pdpVerifier.nextProvingPeriod(setId, block.number + CHALLENGE_FINALITY_DELAY, empty);
517+
pdpVerifier.nextProvingPeriod(setId, vm.getBlockNumber() + CHALLENGE_FINALITY_DELAY, empty);
518518

519519
assertEq(false, pdpVerifier.pieceLive(setId, 0));
520520
assertEq(false, pdpVerifier.pieceLive(setId, 1));
@@ -551,7 +551,7 @@ contract PDPVerifierDataSetMutateTest is Test, PieceHelper {
551551

552552
// Test nextProvingPeriod with too large extra data
553553
vm.expectRevert("Extra data too large");
554-
pdpVerifier.nextProvingPeriod(setId, block.number + 10, tooLargeExtraData);
554+
pdpVerifier.nextProvingPeriod(setId, vm.getBlockNumber() + 10, tooLargeExtraData);
555555

556556
// Test deleteDataSet with too large extra data
557557
vm.expectRevert("Extra data too large");
@@ -595,7 +595,7 @@ contract PDPVerifierDataSetMutateTest is Test, PieceHelper {
595595
// Try to call nextProvingPeriod as non-storage-provider
596596
vm.prank(nonStorageProvider);
597597
vm.expectRevert("only the storage provider can move to next proving period");
598-
pdpVerifier.nextProvingPeriod(setId, block.number + 10, empty);
598+
pdpVerifier.nextProvingPeriod(setId, vm.getBlockNumber() + 10, empty);
599599
}
600600

601601
function testNextProvingPeriodChallengeEpochTooSoon() public {
@@ -606,7 +606,7 @@ contract PDPVerifierDataSetMutateTest is Test, PieceHelper {
606606
pdpVerifier.addPieces(setId, pieces, empty);
607607

608608
// Current block number
609-
uint256 currentBlock = block.number;
609+
uint256 currentBlock = vm.getBlockNumber();
610610

611611
// Try to call nextProvingPeriod with a challenge epoch that is not at least
612612
// challengeFinality epochs in the future
@@ -640,10 +640,10 @@ contract PDPVerifierDataSetMutateTest is Test, PieceHelper {
640640

641641
// Try to set next proving period with various values
642642
vm.expectRevert("can only start proving once leaves are added");
643-
pdpVerifier.nextProvingPeriod(setId, block.number + 100, empty);
643+
pdpVerifier.nextProvingPeriod(setId, vm.getBlockNumber() + 100, empty);
644644

645645
vm.expectRevert("can only start proving once leaves are added");
646-
pdpVerifier.nextProvingPeriod(setId, block.number + CHALLENGE_FINALITY_DELAY, empty);
646+
pdpVerifier.nextProvingPeriod(setId, vm.getBlockNumber() + CHALLENGE_FINALITY_DELAY, empty);
647647

648648
vm.expectRevert("can only start proving once leaves are added");
649649
pdpVerifier.nextProvingPeriod(setId, type(uint256).max, empty);
@@ -656,7 +656,7 @@ contract PDPVerifierDataSetMutateTest is Test, PieceHelper {
656656
// Try to call nextProvingPeriod on the empty data set
657657
// Should revert because no leaves have been added yet
658658
vm.expectRevert("can only start proving once leaves are added");
659-
pdpVerifier.nextProvingPeriod(setId, block.number + CHALLENGE_FINALITY_DELAY, empty);
659+
pdpVerifier.nextProvingPeriod(setId, vm.getBlockNumber() + CHALLENGE_FINALITY_DELAY, empty);
660660
}
661661

662662
function testEmitDataSetEmptyEvent() public {
@@ -677,7 +677,7 @@ contract PDPVerifierDataSetMutateTest is Test, PieceHelper {
677677
emit IPDPEvents.DataSetEmpty(setId);
678678

679679
// Call nextProvingPeriod which should remove the piece and emit the event
680-
pdpVerifier.nextProvingPeriod(setId, block.number + CHALLENGE_FINALITY_DELAY, empty);
680+
pdpVerifier.nextProvingPeriod(setId, vm.getBlockNumber() + CHALLENGE_FINALITY_DELAY, empty);
681681

682682
// Verify the data set is indeed empty
683683
assertEq(pdpVerifier.getDataSetLeafCount(setId), 0);
@@ -776,7 +776,7 @@ contract PDPVerifierPaginationTest is Test, PieceHelper {
776776

777777
// Move to next proving period to make removals effective
778778
uint256 challengeFinality = pdpVerifier.getChallengeFinality();
779-
pdpVerifier.nextProvingPeriod(setId, block.number + challengeFinality, empty);
779+
pdpVerifier.nextProvingPeriod(setId, vm.getBlockNumber() + challengeFinality, empty);
780780

781781
// Should return only 7 active pieces
782782
(Cids.Cid[] memory pieces, uint256[] memory ids, uint256[] memory sizes, bool hasMore) =
@@ -1177,7 +1177,7 @@ contract SumTreeAddTest is Test, PieceHelper {
11771177
// Remove pieces in batch
11781178
pdpVerifier.schedulePieceDeletions(testSetId, pieceIdsToRemove, empty);
11791179
// flush adds and removals
1180-
pdpVerifier.nextProvingPeriod(testSetId, block.number + CHALLENGE_FINALITY_DELAY, empty);
1180+
pdpVerifier.nextProvingPeriod(testSetId, vm.getBlockNumber() + CHALLENGE_FINALITY_DELAY, empty);
11811181
for (uint256 i = 0; i < pieceIdsToRemove.length; i++) {
11821182
bytes memory zeroBytes;
11831183
assertEq(pdpVerifier.getPieceCid(testSetId, pieceIdsToRemove[i]).data, zeroBytes);
@@ -1321,7 +1321,7 @@ contract SumTreeAddTest is Test, PieceHelper {
13211321
pdpVerifier.addPieces(testSetId, pieceDataArray, empty);
13221322
}
13231323
pdpVerifier.schedulePieceDeletions(testSetId, pieceIdsToRemove, empty);
1324-
pdpVerifier.nextProvingPeriod(testSetId, block.number + CHALLENGE_FINALITY_DELAY, empty); //flush removals
1324+
pdpVerifier.nextProvingPeriod(testSetId, vm.getBlockNumber() + CHALLENGE_FINALITY_DELAY, empty); //flush removals
13251325

13261326
assertFindPieceAndOffset(testSetId, 0, 3, 0);
13271327
assertFindPieceAndOffset(testSetId, 1, 4, 0);
@@ -1432,10 +1432,10 @@ contract PDPListenerIntegrationTest is Test, PieceHelper {
14321432

14331433
badListener.setBadOperation(PDPRecordKeeper.OperationType.NEXT_PROVING_PERIOD);
14341434
vm.expectRevert("Failing operation");
1435-
pdpVerifier.nextProvingPeriod(setId, block.number + CHALLENGE_FINALITY_DELAY, empty);
1435+
pdpVerifier.nextProvingPeriod(setId, vm.getBlockNumber() + CHALLENGE_FINALITY_DELAY, empty);
14361436

14371437
badListener.setBadOperation(PDPRecordKeeper.OperationType.NONE);
1438-
pdpVerifier.nextProvingPeriod(setId, block.number + CHALLENGE_FINALITY_DELAY, empty);
1438+
pdpVerifier.nextProvingPeriod(setId, vm.getBlockNumber() + CHALLENGE_FINALITY_DELAY, empty);
14391439
}
14401440
}
14411441

@@ -1519,7 +1519,7 @@ contract PDPVerifierExtraDataTest is Test, PieceHelper {
15191519
);
15201520

15211521
// Test NEXT_PROVING_PERIOD operation
1522-
pdpVerifier.nextProvingPeriod(setId, block.number + CHALLENGE_FINALITY_DELAY, empty);
1522+
pdpVerifier.nextProvingPeriod(setId, vm.getBlockNumber() + CHALLENGE_FINALITY_DELAY, empty);
15231523
assertEq(
15241524
extraDataListener.getExtraData(setId, PDPRecordKeeper.OperationType.NEXT_PROVING_PERIOD),
15251525
empty,
@@ -1596,7 +1596,7 @@ contract PDPVerifierE2ETest is Test, ProofBuilderHelper, PieceHelper {
15961596
piecesProofPeriod1[1] = makePiece(treesA[1], leafCountsA[1]);
15971597
pdpVerifier.addPieces(setId, piecesProofPeriod1, empty);
15981598
// flush the original addPieces call
1599-
pdpVerifier.nextProvingPeriod(setId, block.number + CHALLENGE_FINALITY_DELAY, empty);
1599+
pdpVerifier.nextProvingPeriod(setId, vm.getBlockNumber() + CHALLENGE_FINALITY_DELAY, empty);
16001600

16011601
uint256 challengeRangeProofPeriod1 = pdpVerifier.getChallengeRange(setId);
16021602
assertEq(
@@ -1662,7 +1662,7 @@ contract PDPVerifierE2ETest is Test, ProofBuilderHelper, PieceHelper {
16621662

16631663
pdpVerifier.provePossession{value: 1e18}(setId, proofsProofPeriod1);
16641664

1665-
pdpVerifier.nextProvingPeriod(setId, block.number + CHALLENGE_FINALITY_DELAY, empty);
1665+
pdpVerifier.nextProvingPeriod(setId, vm.getBlockNumber() + CHALLENGE_FINALITY_DELAY, empty);
16661666
// CHECK: leaf counts
16671667
assertEq(
16681668
pdpVerifier.getPieceLeafCount(setId, 0),
@@ -1693,7 +1693,7 @@ contract PDPVerifierE2ETest is Test, ProofBuilderHelper, PieceHelper {
16931693
// CHECK: the next challenge epoch has been updated
16941694
assertEq(
16951695
pdpVerifier.getNextChallengeEpoch(setId),
1696-
block.number + CHALLENGE_FINALITY_DELAY,
1696+
vm.getBlockNumber() + CHALLENGE_FINALITY_DELAY,
16971697
"Next challenge epoch should be updated"
16981698
);
16991699
}

test/PDPVerifierProofTest.t.sol

Lines changed: 8 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -69,9 +69,9 @@ contract PDPVerifierProofTest is Test, ProofBuilderHelper, PieceHelper {
6969
assertEq(pdpVerifier.getNextChallengeEpoch(setId), challengeEpoch);
7070

7171
// Verify the next challenge is in a subsequent epoch after nextProvingPeriod
72-
pdpVerifier.nextProvingPeriod(setId, block.number + CHALLENGE_FINALITY_DELAY, empty);
72+
pdpVerifier.nextProvingPeriod(setId, vm.getBlockNumber() + CHALLENGE_FINALITY_DELAY, empty);
7373

74-
assertEq(pdpVerifier.getNextChallengeEpoch(setId), block.number + CHALLENGE_FINALITY_DELAY);
74+
assertEq(pdpVerifier.getNextChallengeEpoch(setId), vm.getBlockNumber() + CHALLENGE_FINALITY_DELAY);
7575
}
7676

7777
receive() external payable {}
@@ -273,7 +273,7 @@ contract PDPVerifierProofTest is Test, ProofBuilderHelper, PieceHelper {
273273
vm.mockCall(address(pdpVerifier.PYTH()), pythCallData, abi.encode(price));
274274

275275
pdpVerifier.provePossession{value: 1e18}(setId, proofs);
276-
pdpVerifier.nextProvingPeriod(setId, block.number + CHALLENGE_FINALITY_DELAY, empty); // resample
276+
pdpVerifier.nextProvingPeriod(setId, vm.getBlockNumber() + CHALLENGE_FINALITY_DELAY, empty); // resample
277277

278278
uint256 nextChallengeEpoch = pdpVerifier.getNextChallengeEpoch(setId);
279279
assertNotEq(nextChallengeEpoch, challengeEpoch);
@@ -320,7 +320,7 @@ contract PDPVerifierProofTest is Test, ProofBuilderHelper, PieceHelper {
320320
removePieces[0] = newPieceId;
321321
pdpVerifier.schedulePieceDeletions(setId, removePieces, empty);
322322
// flush removes
323-
pdpVerifier.nextProvingPeriod(setId, block.number + CHALLENGE_FINALITY_DELAY, empty);
323+
pdpVerifier.nextProvingPeriod(setId, vm.getBlockNumber() + CHALLENGE_FINALITY_DELAY, empty);
324324

325325
// Make a new proof that is valid with two pieces
326326
challengeEpoch = pdpVerifier.getNextChallengeEpoch(setId);
@@ -374,14 +374,14 @@ contract PDPVerifierProofTest is Test, ProofBuilderHelper, PieceHelper {
374374
(uint256 setId, bytes32[][] memory tree) = makeDataSetWithOnePiece(leafCount);
375375

376376
// Set challenge sampling far in the future
377-
uint256 farFutureBlock = block.number + 1000;
377+
uint256 farFutureBlock = vm.getBlockNumber() + 1000;
378378
pdpVerifier.nextProvingPeriod(setId, farFutureBlock, empty);
379379
assertEq(
380380
pdpVerifier.getNextChallengeEpoch(setId), farFutureBlock, "Challenge epoch should be set to far future"
381381
);
382382

383383
// Reset to a closer block
384-
uint256 nearerBlock = block.number + CHALLENGE_FINALITY_DELAY;
384+
uint256 nearerBlock = vm.getBlockNumber() + CHALLENGE_FINALITY_DELAY;
385385
pdpVerifier.nextProvingPeriod(setId, nearerBlock, empty);
386386
assertEq(
387387
pdpVerifier.getNextChallengeEpoch(setId), nearerBlock, "Challenge epoch should be reset to nearer block"
@@ -449,7 +449,7 @@ contract PDPVerifierProofTest is Test, ProofBuilderHelper, PieceHelper {
449449
// Create new data set and add pieces.
450450
uint256 setId = pdpVerifier.createDataSet{value: PDPFees.sybilFee()}(address(listener), empty);
451451
pdpVerifier.addPieces(setId, pieces, empty);
452-
pdpVerifier.nextProvingPeriod(setId, block.number + CHALLENGE_FINALITY_DELAY, empty); // flush adds
452+
pdpVerifier.nextProvingPeriod(setId, vm.getBlockNumber() + CHALLENGE_FINALITY_DELAY, empty); // flush adds
453453
return (setId, trees);
454454
}
455455

@@ -468,7 +468,7 @@ contract PDPVerifierProofTest is Test, ProofBuilderHelper, PieceHelper {
468468
Cids.Cid[] memory pieces = new Cids.Cid[](1);
469469
pieces[0] = makePiece(tree, leafCount);
470470
uint256 pieceId = pdpVerifier.addPieces(setId, pieces, empty);
471-
pdpVerifier.nextProvingPeriod(setId, block.number + CHALLENGE_FINALITY_DELAY, empty); // flush adds
471+
pdpVerifier.nextProvingPeriod(setId, vm.getBlockNumber() + CHALLENGE_FINALITY_DELAY, empty); // flush adds
472472
return (tree, pieceId);
473473
}
474474

0 commit comments

Comments
 (0)