Commit d7a4b366 authored by OptimismBot's avatar OptimismBot Committed by GitHub

Merge pull request #5478 from ethereum-optimism/fix/l2oo-constructor

contracts-bedrock: update constructor require statment
parents a272058b 7bfa7472
This diff is collapsed.
...@@ -143,28 +143,29 @@ L2ERC721Bridge_Test:test_finalizeBridgeERC721_notViaLocalMessenger_reverts() (ga ...@@ -143,28 +143,29 @@ L2ERC721Bridge_Test:test_finalizeBridgeERC721_notViaLocalMessenger_reverts() (ga
L2ERC721Bridge_Test:test_finalizeBridgeERC721_selfToken_reverts() (gas: 17659) L2ERC721Bridge_Test:test_finalizeBridgeERC721_selfToken_reverts() (gas: 17659)
L2ERC721Bridge_Test:test_finalizeBridgeERC721_succeeds() (gas: 168970) L2ERC721Bridge_Test:test_finalizeBridgeERC721_succeeds() (gas: 168970)
L2OutputOracleTest:test_computeL2Timestamp_succeeds() (gas: 37298) L2OutputOracleTest:test_computeL2Timestamp_succeeds() (gas: 37298)
L2OutputOracleTest:test_constructor_badTimestamp_reverts() (gas: 70947) L2OutputOracleTest:test_constructor_badTimestamp_reverts() (gas: 70991)
L2OutputOracleTest:test_constructor_l2BlockTimeZero_reverts() (gas: 45954) L2OutputOracleTest:test_constructor_l2BlockTimeZero_reverts() (gas: 45954)
L2OutputOracleTest:test_constructor_succeeds() (gas: 33827) L2OutputOracleTest:test_constructor_submissionInterval_reverts() (gas: 45942)
L2OutputOracleTest:test_deleteL2Outputs_afterLatest_reverts() (gas: 212262) L2OutputOracleTest:test_constructor_succeeds() (gas: 33805)
L2OutputOracleTest:test_deleteL2Outputs_finalized_reverts() (gas: 108967) L2OutputOracleTest:test_deleteL2Outputs_afterLatest_reverts() (gas: 212306)
L2OutputOracleTest:test_deleteL2Outputs_finalized_reverts() (gas: 108990)
L2OutputOracleTest:test_deleteL2Outputs_ifNotChallenger_reverts() (gas: 18918) L2OutputOracleTest:test_deleteL2Outputs_ifNotChallenger_reverts() (gas: 18918)
L2OutputOracleTest:test_deleteL2Outputs_nonExistent_reverts() (gas: 107339) L2OutputOracleTest:test_deleteL2Outputs_nonExistent_reverts() (gas: 107339)
L2OutputOracleTest:test_deleteOutputs_multipleOutputs_succeeds() (gas: 302439) L2OutputOracleTest:test_deleteOutputs_multipleOutputs_succeeds() (gas: 302462)
L2OutputOracleTest:test_deleteOutputs_singleOutput_succeeds() (gas: 181038) L2OutputOracleTest:test_deleteOutputs_singleOutput_succeeds() (gas: 181016)
L2OutputOracleTest:test_getL2OutputIndexAfter_multipleOutputsExist_succeeds() (gas: 267120) L2OutputOracleTest:test_getL2OutputIndexAfter_multipleOutputsExist_succeeds() (gas: 267098)
L2OutputOracleTest:test_getL2OutputIndexAfter_noOutputsExis_reverts() (gas: 17959) L2OutputOracleTest:test_getL2OutputIndexAfter_noOutputsExis_reverts() (gas: 17937)
L2OutputOracleTest:test_getL2OutputIndexAfter_previousBlock_succeeds() (gas: 96066) L2OutputOracleTest:test_getL2OutputIndexAfter_previousBlock_succeeds() (gas: 96044)
L2OutputOracleTest:test_getL2OutputIndexAfter_sameBlock_succeeds() (gas: 95995) L2OutputOracleTest:test_getL2OutputIndexAfter_sameBlock_succeeds() (gas: 95973)
L2OutputOracleTest:test_getL2Output_succeeds() (gas: 101634) L2OutputOracleTest:test_getL2Output_succeeds() (gas: 101612)
L2OutputOracleTest:test_latestBlockNumber_succeeds() (gas: 96962) L2OutputOracleTest:test_latestBlockNumber_succeeds() (gas: 96940)
L2OutputOracleTest:test_nextBlockNumber_succeeds() (gas: 17490) L2OutputOracleTest:test_nextBlockNumber_succeeds() (gas: 17468)
L2OutputOracleTest:test_proposeL2Output_emptyOutput_reverts() (gas: 26690) L2OutputOracleTest:test_proposeL2Output_emptyOutput_reverts() (gas: 26668)
L2OutputOracleTest:test_proposeL2Output_futureTimetamp_reverts() (gas: 28669) L2OutputOracleTest:test_proposeL2Output_futureTimetamp_reverts() (gas: 28647)
L2OutputOracleTest:test_proposeL2Output_notProposer_reverts() (gas: 25783) L2OutputOracleTest:test_proposeL2Output_notProposer_reverts() (gas: 25806)
L2OutputOracleTest:test_proposeL2Output_proposeAnotherOutput_succeeds() (gas: 101028) L2OutputOracleTest:test_proposeL2Output_proposeAnotherOutput_succeeds() (gas: 101006)
L2OutputOracleTest:test_proposeL2Output_unexpectedBlockNumber_reverts() (gas: 28381) L2OutputOracleTest:test_proposeL2Output_unexpectedBlockNumber_reverts() (gas: 28381)
L2OutputOracleTest:test_proposeL2Output_unmatchedBlockhash_reverts() (gas: 29381) L2OutputOracleTest:test_proposeL2Output_unmatchedBlockhash_reverts() (gas: 29404)
L2OutputOracleTest:test_proposeL2Output_wrongFork_reverts() (gas: 28984) L2OutputOracleTest:test_proposeL2Output_wrongFork_reverts() (gas: 28984)
L2OutputOracleTest:test_proposeWithBlockhashAndHeight_succeeds() (gas: 95253) L2OutputOracleTest:test_proposeWithBlockhashAndHeight_succeeds() (gas: 95253)
L2OutputOracleUpgradeable_Test:test_initValuesOnProxy_succeeds() (gas: 26208) L2OutputOracleUpgradeable_Test:test_initValuesOnProxy_succeeds() (gas: 26208)
......
...@@ -78,7 +78,7 @@ contract L2OutputOracle is Initializable, Semver { ...@@ -78,7 +78,7 @@ contract L2OutputOracle is Initializable, Semver {
event OutputsDeleted(uint256 indexed prevNextOutputIndex, uint256 indexed newNextOutputIndex); event OutputsDeleted(uint256 indexed prevNextOutputIndex, uint256 indexed newNextOutputIndex);
/** /**
* @custom:semver 1.2.0 * @custom:semver 1.3.0
* *
* @param _submissionInterval Interval in blocks at which checkpoints must be submitted. * @param _submissionInterval Interval in blocks at which checkpoints must be submitted.
* @param _l2BlockTime The time per L2 block, in seconds. * @param _l2BlockTime The time per L2 block, in seconds.
...@@ -95,11 +95,11 @@ contract L2OutputOracle is Initializable, Semver { ...@@ -95,11 +95,11 @@ contract L2OutputOracle is Initializable, Semver {
address _proposer, address _proposer,
address _challenger, address _challenger,
uint256 _finalizationPeriodSeconds uint256 _finalizationPeriodSeconds
) Semver(1, 2, 0) { ) Semver(1, 3, 0) {
require(_l2BlockTime > 0, "L2OutputOracle: L2 block time must be greater than 0"); require(_l2BlockTime > 0, "L2OutputOracle: L2 block time must be greater than 0");
require( require(
_submissionInterval > _l2BlockTime, _submissionInterval > 0,
"L2OutputOracle: submission interval must be greater than L2 block time" "L2OutputOracle: submission interval must be greater than 0"
); );
SUBMISSION_INTERVAL = _submissionInterval; SUBMISSION_INTERVAL = _submissionInterval;
......
...@@ -47,21 +47,11 @@ contract L2OutputOracleTest is L2OutputOracle_Initializer { ...@@ -47,21 +47,11 @@ contract L2OutputOracleTest is L2OutputOracle_Initializer {
}); });
} }
function testFuzz_constructor_submissionIntervalLteL2BlockTime_reverts( function test_constructor_submissionInterval_reverts() external {
uint256 _submissionInterval, vm.expectRevert("L2OutputOracle: submission interval must be greater than 0");
uint256 _l2BlockTime
) external {
// Bound the _l2blockTime to be in the range of [1, type(uint256).max]
_l2BlockTime = bound(_l2BlockTime, 1, type(uint256).max);
// Roll the block number to _l2blockTime (the starting L2 timestamp must be less than or equal to the current time)
vm.roll(_l2BlockTime);
// Bound _submissionInterval to be less than or equal to _l2BlockTime
_submissionInterval = bound(_submissionInterval, 0, _l2BlockTime);
vm.expectRevert("L2OutputOracle: submission interval must be greater than L2 block time");
new L2OutputOracle({ new L2OutputOracle({
_submissionInterval: _submissionInterval, _submissionInterval: 0,
_l2BlockTime: _l2BlockTime, _l2BlockTime: l2BlockTime,
_startingBlockNumber: startingBlockNumber, _startingBlockNumber: startingBlockNumber,
_startingTimestamp: block.timestamp, _startingTimestamp: block.timestamp,
_proposer: proposer, _proposer: proposer,
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment