@@ -664,38 +664,38 @@ contract TestQueryResponse is Test {
664
664
queryResponse.verifyQueryResponseSignatures (resp, signatures);
665
665
}
666
666
667
- function testFuzz_validateBlockTime_success (uint64 _blockTime , uint64 _minBlockTime ) public view {
668
- _blockTime %= type (uint64 ).max/ 1_000_000 + 1 ;
669
- _minBlockTime %= type (uint64 ).max/ 1_000_000 + 1 ;
670
- if (_minBlockTime > type (uint64 ).max/ 1_000_000 - _blockTime)
671
- _blockTime %= type (uint64 ).max/ 1_000_000 - _minBlockTime + 1 ;
667
+ uint64 constant private SECOND_RESOLUTION = 1_000_000 ;
668
+ uint64 constant private MAX_SECONDS = type (uint64 ).max/ SECOND_RESOLUTION;
672
669
673
- _blockTime += _minBlockTime;
670
+ function testFuzz_validateBlockTime_success (uint64 _blockTime , uint64 _minBlockTime ) public view {
671
+ //assure: blockTime >= minBlockTime
672
+ _minBlockTime = uint64 (bound (_minBlockTime, 0 , MAX_SECONDS));
673
+ _blockTime = uint64 (bound (_blockTime, _minBlockTime, MAX_SECONDS));
674
674
675
- queryResponse.validateBlockTime (uint64 ( _blockTime * 1_000_000 ) , _minBlockTime);
675
+ queryResponse.validateBlockTime (_blockTime * SECOND_RESOLUTION , _minBlockTime);
676
676
}
677
677
678
- function testFuzz_validateBlockTime_fail (uint64 _blockTime , uint64 _minBlockTime ) public {
679
- _minBlockTime %= type ( uint64 ).max / 1_000_000 + 1 ;
678
+ function testFuzz_validateBlockTime_fail (uint64 _blockTime , uint256 _minBlockTime ) public {
679
+ //assure: blockTime < minBlockTime
680
680
vm.assume (_minBlockTime > 0 );
681
- _blockTime %= _minBlockTime;
681
+ uint upperBound = _minBlockTime <= MAX_SECONDS ? _minBlockTime-1 : MAX_SECONDS;
682
+ _blockTime = uint64 (bound (_blockTime, 0 , upperBound));
682
683
683
684
vm.expectRevert (StaleBlockTime.selector );
684
- queryResponse.validateBlockTime (uint64 ( _blockTime * 1_000_000 ) , _minBlockTime);
685
+ queryResponse.validateBlockTime (_blockTime * SECOND_RESOLUTION , _minBlockTime);
685
686
}
686
687
687
688
function testFuzz_validateBlockNum_success (uint64 _blockNum , uint64 _minBlockNum ) public view {
688
- if (_minBlockNum > type (uint64 ).max - _blockNum) //can't safely add _minBlockNum
689
- _blockNum %= type (uint64 ).max - _minBlockNum + 1 ; //prevent overflow
690
-
691
- _blockNum += _minBlockNum;
689
+ //assure: blockNum >= minBlockNum
690
+ _blockNum = uint64 (bound (_blockNum, _minBlockNum, type (uint64 ).max));
692
691
693
692
queryResponse.validateBlockNum (_blockNum, _minBlockNum);
694
693
}
695
694
696
695
function testFuzz_validateBlockNum_fail (uint256 _blockNum , uint256 _minBlockNum ) public {
696
+ //assure: blockNum < minBlockNum
697
697
vm.assume (_minBlockNum > 0 );
698
- _blockNum %= _minBlockNum;
698
+ _blockNum = uint64 ( bound (_blockNum, 0 , _minBlockNum-1 )) ;
699
699
700
700
vm.expectRevert (StaleBlockNum.selector );
701
701
queryResponse.validateBlockNum (uint64 (_blockNum), _minBlockNum);
0 commit comments