Skip to content
Projects
Groups
Snippets
Help
Loading...
Help
Support
Submit feedback
Contribute to GitLab
Sign in
Toggle navigation
N
nebula
Project
Project
Details
Activity
Releases
Cycle Analytics
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Charts
Issues
0
Issues
0
List
Boards
Labels
Milestones
Merge Requests
0
Merge Requests
0
CI / CD
CI / CD
Pipelines
Jobs
Schedules
Charts
Wiki
Wiki
Snippets
Snippets
Members
Members
Collapse sidebar
Close sidebar
Activity
Graph
Charts
Create a new issue
Jobs
Commits
Issue Boards
Open sidebar
exchain
nebula
Commits
49685f81
Unverified
Commit
49685f81
authored
Nov 22, 2022
by
mergify[bot]
Committed by
GitHub
Nov 22, 2022
Browse files
Options
Browse Files
Download
Plain Diff
Merge pull request #4040 from ethereum-optimism/sc/ctb-l2oo-cleanups-2
maint(ctb): minor cleanups in L2OO
parents
7c6e9a56
dcdbd78e
Changes
5
Expand all
Hide whitespace changes
Inline
Side-by-side
Showing
5 changed files
with
59 additions
and
72 deletions
+59
-72
l2outputoracle.go
op-bindings/bindings/l2outputoracle.go
+11
-11
.gas-snapshot
packages/contracts-bedrock/.gas-snapshot
+30
-30
L2OutputOracle.sol
packages/contracts-bedrock/contracts/L1/L2OutputOracle.sol
+12
-22
L2OutputOracle.t.sol
...ges/contracts-bedrock/contracts/test/L2OutputOracle.t.sol
+4
-7
OptimismPortal.t.sol
...ges/contracts-bedrock/contracts/test/OptimismPortal.t.sol
+2
-2
No files found.
op-bindings/bindings/l2outputoracle.go
View file @
49685f81
This diff is collapsed.
Click to expand it.
packages/contracts-bedrock/.gas-snapshot
View file @
49685f81
...
...
@@ -5,7 +5,7 @@ GasBenchMark_L1StandardBridge_Deposit:test_depositERC20_benchmark_1() (gas: 1122
GasBenchMark_L1StandardBridge_Deposit:test_depositETH_benchmark_0() (gas: 348176)
GasBenchMark_L1StandardBridge_Deposit:test_depositETH_benchmark_1() (gas: 112253)
GasBenchMark_L1StandardBridge_Finalize:test_finalizeETHWithdrawal_benchmark() (gas: 40502)
GasBenchMark_L2OutputOracle:test_proposeL2Output_benchmark() (gas: 686
48
)
GasBenchMark_L2OutputOracle:test_proposeL2Output_benchmark() (gas: 686
20
)
GasBenchMark_OptimismPortal:test_depositTransaction_benchmark() (gas: 74956)
GasBenchMark_OptimismPortal:test_depositTransaction_benchmark_1() (gas: 35693)
CrossDomainMessenger_Test:testFuzz_baseGas(uint32) (runs: 256, μ: 20196, ~: 20196)
...
...
@@ -85,29 +85,29 @@ L2CrossDomainMessenger_Test:test_L2MessengerSendMessage() (gas: 122423)
L2CrossDomainMessenger_Test:test_L2MessengerTwiceSendMessage() (gas: 134632)
L2CrossDomainMessenger_Test:test_L2MessengerXDomainSenderReverts() (gas: 10568)
L2CrossDomainMessenger_Test:test_L2MessengerxDomainMessageSenderResets() (gas: 52615)
L2OutputOracleTest:testCannot_ProposeWithUnmatchedBlockhash() (gas: 26
850
)
L2OutputOracleTest:testCannot_constructWithBadTimestamp() (gas: 50
456
)
L2OutputOracleTest:testCannot_deleteL2Output_ifNotOwner() (gas: 250
90
)
L2OutputOracleTest:testCannot_deleteL2Output_withWrongRoot() (gas: 913
9
9)
L2OutputOracleTest:testCannot_deleteL2Output_withWrongTime() (gas: 873
8
2)
L2OutputOracleTest:testCannot_proposeEmptyOutput() (gas: 24
126
)
L2OutputOracleTest:testCannot_proposeFutureTimetamp() (gas: 260
95
)
L2OutputOracleTest:testCannot_proposeL2OutputIfNotProposer() (gas: 235
63
)
L2OutputOracleTest:testCannot_proposeOnWrongFork() (gas: 263
68
)
L2OutputOracleTest:testCannot_proposeUnexpectedBlockNumber() (gas: 2
6003
)
L2OutputOracleTest:testCannot_ProposeWithUnmatchedBlockhash() (gas: 26
798
)
L2OutputOracleTest:testCannot_constructWithBadTimestamp() (gas: 50
365
)
L2OutputOracleTest:testCannot_deleteL2Output_ifNotOwner() (gas: 250
64
)
L2OutputOracleTest:testCannot_deleteL2Output_withWrongRoot() (gas: 913
1
9)
L2OutputOracleTest:testCannot_deleteL2Output_withWrongTime() (gas: 873
0
2)
L2OutputOracleTest:testCannot_proposeEmptyOutput() (gas: 24
074
)
L2OutputOracleTest:testCannot_proposeFutureTimetamp() (gas: 260
43
)
L2OutputOracleTest:testCannot_proposeL2OutputIfNotProposer() (gas: 235
37
)
L2OutputOracleTest:testCannot_proposeOnWrongFork() (gas: 263
16
)
L2OutputOracleTest:testCannot_proposeUnexpectedBlockNumber() (gas: 2
5977
)
L2OutputOracleTest:test_changeProposer() (gas: 47047)
L2OutputOracleTest:test_computeL2Timestamp() (gas: 30
215
)
L2OutputOracleTest:test_constructor() (gas: 45
612
)
L2OutputOracleTest:test_deleteOutput() (gas: 77
197
)
L2OutputOracleTest:test_getL2Output() (gas: 88
478
)
L2OutputOracleTest:test_latestBlockNumber() (gas: 76
240
)
L2OutputOracleTest:test_computeL2Timestamp() (gas: 30
483
)
L2OutputOracleTest:test_constructor() (gas: 45
586
)
L2OutputOracleTest:test_deleteOutput() (gas: 77
092
)
L2OutputOracleTest:test_getL2Output() (gas: 88
702
)
L2OutputOracleTest:test_latestBlockNumber() (gas: 76
186
)
L2OutputOracleTest:test_nextBlockNumber() (gas: 15187)
L2OutputOracleTest:test_proposeWithBlockhashAndHeight() (gas: 7
5044
)
L2OutputOracleTest:test_proposingAnotherOutput() (gas: 768
69
)
L2OutputOracleTest:test_proposeWithBlockhashAndHeight() (gas: 7
4990
)
L2OutputOracleTest:test_proposingAnotherOutput() (gas: 768
15
)
L2OutputOracleTest:test_updateOwner() (gas: 36063)
L2OutputOracleUpgradeable_Test:test_cannotInitImpl() (gas: 17403)
L2OutputOracleUpgradeable_Test:test_cannotInitProxy() (gas: 22398)
L2OutputOracleUpgradeable_Test:test_initValuesOnProxy() (gas: 360
94
)
L2OutputOracleUpgradeable_Test:test_initValuesOnProxy() (gas: 360
68
)
L2OutputOracleUpgradeable_Test:test_upgrading() (gas: 180457)
L2StandardBridge_Test:test_cannotWithdrawEthWithoutSendingIt() (gas: 21749)
L2StandardBridge_Test:test_finalizeBridgeETH_incorrectValueReverts() (gas: 23733)
...
...
@@ -149,21 +149,21 @@ OptimismPortalUpgradeable_Test:test_initialize_cannotInitImpl_reverts() (gas: 10
OptimismPortalUpgradeable_Test:test_initialize_cannotInitProxy_reverts() (gas: 15767)
OptimismPortalUpgradeable_Test:test_params_initValuesOnProxy_success() (gas: 16010)
OptimismPortalUpgradeable_Test:test_upgradeToAndCall_upgrading_success() (gas: 180435)
OptimismPortal_FinalizeWithdrawal_Test:test_finalizeWithdrawalTransaction_ifOutputRootChanges_reverts() (gas: 1927
96
)
OptimismPortal_FinalizeWithdrawal_Test:test_finalizeWithdrawalTransaction_ifOutputTimestampIsNotFinalized_reverts() (gas: 1950
84
)
OptimismPortal_FinalizeWithdrawal_Test:test_finalizeWithdrawalTransaction_ifOutputRootChanges_reverts() (gas: 1927
70
)
OptimismPortal_FinalizeWithdrawal_Test:test_finalizeWithdrawalTransaction_ifOutputTimestampIsNotFinalized_reverts() (gas: 1950
58
)
OptimismPortal_FinalizeWithdrawal_Test:test_finalizeWithdrawalTransaction_ifWithdrawalNotProven_reverts() (gas: 39589)
OptimismPortal_FinalizeWithdrawal_Test:test_finalizeWithdrawalTransaction_ifWithdrawalProofNotOldEnough_reverts() (gas: 1905
38
)
OptimismPortal_FinalizeWithdrawal_Test:test_finalizeWithdrawalTransaction_ifWithdrawalProofNotOldEnough_reverts() (gas: 1905
12
)
OptimismPortal_FinalizeWithdrawal_Test:test_finalizeWithdrawalTransaction_onInsufficientGas_reverts() (gas: 192953)
OptimismPortal_FinalizeWithdrawal_Test:test_finalizeWithdrawalTransaction_onRecentWithdrawal_reverts() (gas: 173010)
OptimismPortal_FinalizeWithdrawal_Test:test_finalizeWithdrawalTransaction_onReentrancy_reverts() (gas: 233210)
OptimismPortal_FinalizeWithdrawal_Test:test_finalizeWithdrawalTransaction_onReplay_reverts() (gas: 2326
82
)
OptimismPortal_FinalizeWithdrawal_Test:test_finalizeWithdrawalTransaction_provenWithdrawalHash_success() (gas: 2246
76
)
OptimismPortal_FinalizeWithdrawal_Test:test_finalizeWithdrawalTransaction_targetFails_fails() (gas: 327
313
)
OptimismPortal_FinalizeWithdrawal_Test:test_finalizeWithdrawalTransaction_timestampLessThanL2OracleStart_reverts() (gas: 1912
94
)
OptimismPortal_FinalizeWithdrawal_Test:test_proveWithdrawalTransaction_onInvalidOutputRootProof_reverts() (gas: 813
33
)
OptimismPortal_FinalizeWithdrawal_Test:test_finalizeWithdrawalTransaction_onReplay_reverts() (gas: 2326
04
)
OptimismPortal_FinalizeWithdrawal_Test:test_finalizeWithdrawalTransaction_provenWithdrawalHash_success() (gas: 2246
24
)
OptimismPortal_FinalizeWithdrawal_Test:test_finalizeWithdrawalTransaction_targetFails_fails() (gas: 327
261
)
OptimismPortal_FinalizeWithdrawal_Test:test_finalizeWithdrawalTransaction_timestampLessThanL2OracleStart_reverts() (gas: 1912
68
)
OptimismPortal_FinalizeWithdrawal_Test:test_proveWithdrawalTransaction_onInvalidOutputRootProof_reverts() (gas: 813
07
)
OptimismPortal_FinalizeWithdrawal_Test:test_proveWithdrawalTransaction_onSelfCall_reverts() (gas: 50776)
OptimismPortal_FinalizeWithdrawal_Test:test_proveWithdrawalTransaction_oninvalidWithdrawalProof_reverts() (gas: 130
105
)
OptimismPortal_FinalizeWithdrawal_Test:test_proveWithdrawalTransaction_validWithdrawalProof_success() (gas: 1768
47
)
OptimismPortal_FinalizeWithdrawal_Test:test_proveWithdrawalTransaction_oninvalidWithdrawalProof_reverts() (gas: 130
079
)
OptimismPortal_FinalizeWithdrawal_Test:test_proveWithdrawalTransaction_validWithdrawalProof_success() (gas: 1768
21
)
OptimismPortal_Test:test_OptimismPortalConstructor() (gas: 17298)
OptimismPortal_Test:test_OptimismPortalReceiveEth_success() (gas: 127483)
OptimismPortal_Test:test_depositTransaction_NoValueContract_success() (gas: 76706)
...
...
@@ -175,7 +175,7 @@ OptimismPortal_Test:test_depositTransaction_withEthValueAndContractContractCreat
OptimismPortal_Test:test_depositTransaction_withEthValueAndEOAContractCreation_success() (gas: 75852)
OptimismPortal_Test:test_depositTransaction_withEthValueFromContract_success() (gas: 83370)
OptimismPortal_Test:test_depositTransaction_withEthValueFromEOA_success() (gas: 83964)
OptimismPortal_Test:test_isBlockFinalized_success() (gas: 113
53
7)
OptimismPortal_Test:test_isBlockFinalized_success() (gas: 113
32
7)
OptimismPortal_Test:test_simple_isBlockFinalized_success() (gas: 24142)
Proxy_Test:test_clashingFunctionSignatures() (gas: 101347)
Proxy_Test:test_implementationKey() (gas: 20887)
...
...
packages/contracts-bedrock/contracts/L1/L2OutputOracle.sol
View file @
49685f81
...
...
@@ -222,10 +222,10 @@ contract L2OutputOracle is OwnableUpgradeable, Semver {
);
}
emit OutputProposed(_outputRoot, block.timestamp, _l2BlockNumber);
l2Outputs[_l2BlockNumber] = Types.OutputProposal(_outputRoot, block.timestamp);
latestBlockNumber = _l2BlockNumber;
emit OutputProposed(_outputRoot, block.timestamp, _l2BlockNumber);
}
/**
...
...
@@ -242,11 +242,6 @@ contract L2OutputOracle is OwnableUpgradeable, Semver {
view
returns (Types.OutputProposal memory)
{
require(
_l2BlockNumber >= STARTING_BLOCK_NUMBER,
"L2OutputOracle: block number cannot be less than the starting block number."
);
// Find the distance between _l2BlockNumber, and the checkpoint block before it.
uint256 offset = (_l2BlockNumber - STARTING_BLOCK_NUMBER) % SUBMISSION_INTERVAL;
...
...
@@ -259,23 +254,23 @@ contract L2OutputOracle is OwnableUpgradeable, Semver {
Types.OutputProposal memory output = l2Outputs[lookupBlockNumber];
require(
output.outputRoot != bytes32(0),
"L2OutputOracle:
No output found for that block number.
"
"L2OutputOracle:
no output found for the given block number
"
);
return output;
}
/**
* @notice Transfers the proposer role to a new account (`newProposer`).
* Can only be called by the current owner.
* @notice Allows the owner to change the proposer address.
*
* @param _proposer New proposer address.
*/
function changeProposer(address _newProposer) public onlyOwner {
require(
_newProposer != address(0),
"L2OutputOracle: new proposer cannot be the zero address"
);
function changeProposer(address _proposer) public onlyOwner {
require(_proposer != address(0), "L2OutputOracle: new proposer cannot be the zero address");
emit ProposerChanged(proposer, _proposer);
emit ProposerChanged(proposer, _newProposer);
proposer = _newProposer;
proposer = _proposer;
}
/**
...
...
@@ -293,11 +288,6 @@ contract L2OutputOracle is OwnableUpgradeable, Semver {
* @param _l2BlockNumber The L2 block number of the target block.
*/
function computeL2Timestamp(uint256 _l2BlockNumber) public view returns (uint256) {
require(
_l2BlockNumber >= STARTING_BLOCK_NUMBER,
"L2OutputOracle: block number must be greater than or equal to starting block number"
);
return STARTING_TIMESTAMP + ((_l2BlockNumber - STARTING_BLOCK_NUMBER) * L2_BLOCK_TIME);
}
}
packages/contracts-bedrock/contracts/test/L2OutputOracle.t.sol
View file @
49685f81
// SPDX-License-Identifier: MIT
pragma solidity 0.8.15;
import { stdError } from "forge-std/Test.sol";
import { L2OutputOracle_Initializer, NextImpl } from "./CommonTest.t.sol";
import { L2OutputOracle } from "../L1/L2OutputOracle.sol";
import { Proxy } from "../universal/Proxy.sol";
...
...
@@ -74,13 +75,11 @@ contract L2OutputOracleTest is L2OutputOracle_Initializer {
assertEq(proposal.timestamp, block.timestamp);
// The block number is too low:
vm.expectRevert(
"L2OutputOracle: block number cannot be less than the starting block number."
);
vm.expectRevert(stdError.arithmeticError);
oracle.getL2Output(0);
// The block number is larger than the latest proposed output:
vm.expectRevert("L2OutputOracle:
No output found for that block number.
");
vm.expectRevert("L2OutputOracle:
no output found for the given block number
");
oracle.getL2Output(nextBlockNumber + 1);
}
...
...
@@ -95,9 +94,7 @@ contract L2OutputOracleTest is L2OutputOracle_Initializer {
function test_computeL2Timestamp() external {
// reverts if timestamp is too low
vm.expectRevert(
"L2OutputOracle: block number must be greater than or equal to starting block number"
);
vm.expectRevert(stdError.arithmeticError);
oracle.computeL2Timestamp(startingBlockNumber - 1);
// returns the correct value...
...
...
packages/contracts-bedrock/contracts/test/OptimismPortal.t.sol
View file @
49685f81
...
...
@@ -242,7 +242,7 @@ contract OptimismPortal_Test is Portal_Initializer {
// The checkpointed block should not be finalized until 1 second from now.
assertEq(op.isBlockFinalized(checkpoint), false);
// Nor should a block after it
vm.expectRevert("L2OutputOracle:
No output found for that block number.
");
vm.expectRevert("L2OutputOracle:
no output found for the given block number
");
assertEq(op.isBlockFinalized(checkpoint + 1), false);
// Nor a block before it, even though the finalization period has passed, there is
// not yet a checkpoint block on top of it for which that is true.
...
...
@@ -255,7 +255,7 @@ contract OptimismPortal_Test is Portal_Initializer {
// So should the block before it.
assertEq(op.isBlockFinalized(checkpoint - 1), true);
// But not the block after it.
vm.expectRevert("L2OutputOracle:
No output found for that block number.
");
vm.expectRevert("L2OutputOracle:
no output found for the given block number
");
assertEq(op.isBlockFinalized(checkpoint + 1), false);
}
}
...
...
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment