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
7a27de9c
Unverified
Commit
7a27de9c
authored
Nov 28, 2022
by
Mark Tyneway
Committed by
GitHub
Nov 28, 2022
Browse files
Options
Browse Files
Download
Plain Diff
Merge pull request #4066 from ethereum-optimism/sc/ctb-no-genesis-output
feat(ctb): remove genesis output
parents
ba9fbc1b
f74c70cb
Changes
16
Expand all
Hide whitespace changes
Inline
Side-by-side
Showing
16 changed files
with
70 additions
and
132 deletions
+70
-132
l2outputoracle.go
op-bindings/bindings/l2outputoracle.go
+16
-16
config.go
op-chain-ops/genesis/config.go
+0
-4
layer_one.go
op-chain-ops/genesis/layer_one.go
+2
-5
test-deploy-config-full.json
op-chain-ops/genesis/testdata/test-deploy-config-full.json
+0
-1
.gas-snapshot
packages/contracts-bedrock/.gas-snapshot
+41
-41
L2OutputOracle.sol
packages/contracts-bedrock/contracts/L1/L2OutputOracle.sol
+3
-8
BaseSystemDictator.sol
...racts-bedrock/contracts/deployment/BaseSystemDictator.sol
+0
-1
MigrationSystemDictator.sol
...-bedrock/contracts/deployment/MigrationSystemDictator.sol
+0
-1
CommonTest.t.sol
packages/contracts-bedrock/contracts/test/CommonTest.t.sol
+1
-3
L2OutputOracle.t.sol
...ges/contracts-bedrock/contracts/test/L2OutputOracle.t.sol
+2
-11
hardhat.json
packages/contracts-bedrock/deploy-config/hardhat.json
+0
-1
011-L2OutputOracleImpl.ts
packages/contracts-bedrock/deploy/011-L2OutputOracleImpl.ts
+0
-2
017-MigrationSystemDictator.ts
...s/contracts-bedrock/deploy/017-MigrationSystemDictator.ts
+0
-16
018-MigrationSystemDictatorSteps.ts
...tracts-bedrock/deploy/018-MigrationSystemDictatorSteps.ts
+0
-15
hardhat.config.ts
packages/contracts-bedrock/hardhat.config.ts
+0
-5
deposit-erc20.ts
packages/sdk/tasks/deposit-erc20.ts
+5
-2
No files found.
op-bindings/bindings/l2outputoracle.go
View file @
7a27de9c
This diff is collapsed.
Click to expand it.
op-chain-ops/genesis/config.go
View file @
7a27de9c
...
...
@@ -41,7 +41,6 @@ type DeployConfig struct {
L2OutputOracleStartingTimestamp
int
`json:"l2OutputOracleStartingTimestamp"`
L2OutputOracleProposer
common
.
Address
`json:"l2OutputOracleProposer"`
L2OutputOracleOwner
common
.
Address
`json:"l2OutputOracleOwner"`
L2OutputOracleGenesisL2Output
common
.
Hash
`json:"l2OutputOracleGenesisL2Output"`
SystemConfigOwner
common
.
Address
`json:"systemConfigOwner"`
...
...
@@ -145,9 +144,6 @@ func (d *DeployConfig) Check() error {
if
d
.
L2OutputOracleOwner
==
(
common
.
Address
{})
{
return
fmt
.
Errorf
(
"%w: L2OutputOracleOwner cannot be address(0)"
,
ErrInvalidDeployConfig
)
}
if
d
.
L2OutputOracleGenesisL2Output
==
(
common
.
Hash
{})
{
log
.
Warn
(
"L2OutputOracleGenesisL2Output is bytes32(0)"
)
}
if
d
.
SystemConfigOwner
==
(
common
.
Address
{})
{
return
fmt
.
Errorf
(
"%w: SystemConfigOwner cannot be address(0)"
,
ErrInvalidDeployConfig
)
}
...
...
op-chain-ops/genesis/layer_one.go
View file @
7a27de9c
...
...
@@ -102,7 +102,6 @@ func BuildL1DeveloperGenesis(config *DeployConfig) (*core.Genesis, error) {
}
data
,
err
=
l2ooABI
.
Pack
(
"initialize"
,
config
.
L2OutputOracleGenesisL2Output
,
big
.
NewInt
(
0
),
uint642Big
(
uint64
(
config
.
L1GenesisBlockTimestamp
)),
config
.
L2OutputOracleProposer
,
...
...
@@ -278,7 +277,6 @@ func deployL1Contracts(config *DeployConfig, backend *backends.SimulatedBackend)
Args
:
[]
interface
{}{
uint642Big
(
config
.
L2OutputOracleSubmissionInterval
),
uint642Big
(
config
.
L2BlockTime
),
[
32
]
byte
(
config
.
L2OutputOracleGenesisL2Output
),
big
.
NewInt
(
0
),
uint642Big
(
uint64
(
config
.
L1GenesisBlockTimestamp
)),
config
.
L2OutputOracleProposer
,
...
...
@@ -340,11 +338,10 @@ func l1Deployer(backend *backends.SimulatedBackend, opts *bind.TransactOpts, dep
backend
,
deployment
.
Args
[
0
]
.
(
*
big
.
Int
),
deployment
.
Args
[
1
]
.
(
*
big
.
Int
),
deployment
.
Args
[
2
]
.
(
[
32
]
byte
),
deployment
.
Args
[
2
]
.
(
*
big
.
Int
),
deployment
.
Args
[
3
]
.
(
*
big
.
Int
),
deployment
.
Args
[
4
]
.
(
*
big
.
Int
),
deployment
.
Args
[
4
]
.
(
common
.
Address
),
deployment
.
Args
[
5
]
.
(
common
.
Address
),
deployment
.
Args
[
6
]
.
(
common
.
Address
),
)
case
"OptimismPortal"
:
_
,
tx
,
_
,
err
=
bindings
.
DeployOptimismPortal
(
...
...
op-chain-ops/genesis/testdata/test-deploy-config-full.json
View file @
7a27de9c
...
...
@@ -33,7 +33,6 @@
"l2GenesisBlockDifficulty"
:
"0x1"
,
"l2GenesisBlockMixHash"
:
"0x0000000000000000000000000000000000000000000000000000000000000000"
,
"l2GenesisBlockCoinbase"
:
"0x42000000000000000000000000000000000000f0"
,
"l2OutputOracleGenesisL2Output"
:
"0x0000000000000000000000000000000000000000000000000000000000000000"
,
"l2GenesisBlockNumber"
:
"0x0"
,
"l2GenesisBlockGasUsed"
:
"0x0"
,
"l2GenesisBlockParentHash"
:
"0x0000000000000000000000000000000000000000000000000000000000000000"
,
...
...
packages/contracts-bedrock/.gas-snapshot
View file @
7a27de9c
...
...
@@ -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: 728
07
)
GasBenchMark_L2OutputOracle:test_proposeL2Output_benchmark() (gas: 728
29
)
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,30 +85,30 @@ 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: 311
73
)
L2OutputOracleTest:testCannot_constructWithBadTimestamp() (gas: 7
3077
)
L2OutputOracleTest:testCannot_deleteL2Outputs_afterLatest() (gas: 199
643
)
L2OutputOracleTest:testCannot_deleteL2Outputs_ifNotOwner() (gas: 188
27
)
L2OutputOracleTest:testCannot_deleteL2Outputs_nonExistent() (gas: 91
042
)
L2OutputOracleTest:testCannot_proposeEmptyOutput() (gas: 28
482
)
L2OutputOracleTest:testCannot_proposeFutureTimetamp() (gas: 304
40
)
L2OutputOracleTest:testCannot_proposeL2OutputIfNotProposer() (gas: 277
03
)
L2OutputOracleTest:testCannot_proposeOnWrongFork() (gas: 307
68
)
L2OutputOracleTest:testCannot_proposeUnexpectedBlockNumber() (gas: 301
43
)
L2OutputOracleTest:test_changeProposer() (gas: 47
124
)
L2OutputOracleTest:test_computeL2Timestamp() (gas: 37
255
)
L2OutputOracleTest:test_constructor() (gas:
50016
)
L2OutputOracleTest:test_deleteOutputs_multipleOutputs() (gas: 2
09200
)
L2OutputOracleTest:test_deleteOutputs_singleOutput() (gas:
99133
)
L2OutputOracleTest:test_getL2Output() (gas: 89
416
)
L2OutputOracleTest:test_latestBlockNumber() (gas: 806
04
)
L2OutputOracleTest:test_nextBlockNumber() (gas: 151
21
)
L2OutputOracleTest:test_proposeWithBlockhashAndHeight() (gas: 794
32
)
L2OutputOracleTest:test_proposingAnotherOutput() (gas: 812
12
)
L2OutputOracleTest:test_updateOwner() (gas: 360
19
)
L2OutputOracleUpgradeable_Test:test_cannotInitImpl() (gas:
21727
)
L2OutputOracleUpgradeable_Test:test_cannotInitProxy() (gas: 2
6731
)
L2OutputOracleUpgradeable_Test:test_initValuesOnProxy() (gas:
42544
)
L2OutputOracleTest:testCannot_ProposeWithUnmatchedBlockhash() (gas: 311
94
)
L2OutputOracleTest:testCannot_constructWithBadTimestamp() (gas: 7
0886
)
L2OutputOracleTest:testCannot_deleteL2Outputs_afterLatest() (gas: 199
838
)
L2OutputOracleTest:testCannot_deleteL2Outputs_ifNotOwner() (gas: 188
71
)
L2OutputOracleTest:testCannot_deleteL2Outputs_nonExistent() (gas: 91
129
)
L2OutputOracleTest:testCannot_proposeEmptyOutput() (gas: 28
503
)
L2OutputOracleTest:testCannot_proposeFutureTimetamp() (gas: 304
61
)
L2OutputOracleTest:testCannot_proposeL2OutputIfNotProposer() (gas: 277
24
)
L2OutputOracleTest:testCannot_proposeOnWrongFork() (gas: 307
89
)
L2OutputOracleTest:testCannot_proposeUnexpectedBlockNumber() (gas: 301
64
)
L2OutputOracleTest:test_changeProposer() (gas: 47
223
)
L2OutputOracleTest:test_computeL2Timestamp() (gas: 37
163
)
L2OutputOracleTest:test_constructor() (gas:
39324
)
L2OutputOracleTest:test_deleteOutputs_multipleOutputs() (gas: 2
62835
)
L2OutputOracleTest:test_deleteOutputs_singleOutput() (gas:
152682
)
L2OutputOracleTest:test_getL2Output() (gas: 89
261
)
L2OutputOracleTest:test_latestBlockNumber() (gas: 806
47
)
L2OutputOracleTest:test_nextBlockNumber() (gas: 151
87
)
L2OutputOracleTest:test_proposeWithBlockhashAndHeight() (gas: 794
53
)
L2OutputOracleTest:test_proposingAnotherOutput() (gas: 812
55
)
L2OutputOracleTest:test_updateOwner() (gas: 360
63
)
L2OutputOracleUpgradeable_Test:test_cannotInitImpl() (gas:
19546
)
L2OutputOracleUpgradeable_Test:test_cannotInitProxy() (gas: 2
4523
)
L2OutputOracleUpgradeable_Test:test_initValuesOnProxy() (gas:
30297
)
L2OutputOracleUpgradeable_Test:test_upgrading() (gas: 180457)
L2StandardBridge_Test:test_cannotWithdrawEthWithoutSendingIt() (gas: 21749)
L2StandardBridge_Test:test_finalizeBridgeETH_incorrectValueReverts() (gas: 23733)
...
...
@@ -150,23 +150,23 @@ 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: 199
47
7)
OptimismPortal_FinalizeWithdrawal_Test:test_finalizeWithdrawalTransaction_ifOutputTimestampIsNotFinalized_reverts() (gas: 201
67
7)
OptimismPortal_FinalizeWithdrawal_Test:test_finalizeWithdrawalTransaction_ifOutputRootChanges_reverts() (gas: 199
36
7)
OptimismPortal_FinalizeWithdrawal_Test:test_finalizeWithdrawalTransaction_ifOutputTimestampIsNotFinalized_reverts() (gas: 201
56
7)
OptimismPortal_FinalizeWithdrawal_Test:test_finalizeWithdrawalTransaction_ifWithdrawalNotProven_reverts() (gas: 39634)
OptimismPortal_FinalizeWithdrawal_Test:test_finalizeWithdrawalTransaction_ifWithdrawalProofNotOldEnough_reverts() (gas: 197
15
3)
OptimismPortal_FinalizeWithdrawal_Test:test_finalizeWithdrawalTransaction_onInsufficientGas_reverts() (gas: 195
340
)
OptimismPortal_FinalizeWithdrawal_Test:test_finalizeWithdrawalTransaction_onRecentWithdrawal_reverts() (gas: 1753
75
)
OptimismPortal_FinalizeWithdrawal_Test:test_finalizeWithdrawalTransaction_onReentrancy_reverts() (gas: 235
617
)
OptimismPortal_FinalizeWithdrawal_Test:test_finalizeWithdrawalTransaction_onReplay_reverts() (gas: 239
939
)
OptimismPortal_FinalizeWithdrawal_Test:test_finalizeWithdrawalTransaction_provenWithdrawalHash_success() (gas: 231
608
)
OptimismPortal_FinalizeWithdrawal_Test:test_finalizeWithdrawalTransaction_targetFails_fails() (gas: 334
223
)
OptimismPortal_FinalizeWithdrawal_Test:test_finalizeWithdrawalTransaction_timestampLessThanL2OracleStart_reverts() (gas: 1957
67
)
OptimismPortal_FinalizeWithdrawal_Test:test_proveWithdrawalTransaction_onInvalidOutputRootProof_reverts() (gas: 85
539
)
OptimismPortal_FinalizeWithdrawal_Test:test_finalizeWithdrawalTransaction_ifWithdrawalProofNotOldEnough_reverts() (gas: 197
04
3)
OptimismPortal_FinalizeWithdrawal_Test:test_finalizeWithdrawalTransaction_onInsufficientGas_reverts() (gas: 195
266
)
OptimismPortal_FinalizeWithdrawal_Test:test_finalizeWithdrawalTransaction_onRecentWithdrawal_reverts() (gas: 1753
09
)
OptimismPortal_FinalizeWithdrawal_Test:test_finalizeWithdrawalTransaction_onReentrancy_reverts() (gas: 235
543
)
OptimismPortal_FinalizeWithdrawal_Test:test_finalizeWithdrawalTransaction_onReplay_reverts() (gas: 239
675
)
OptimismPortal_FinalizeWithdrawal_Test:test_finalizeWithdrawalTransaction_provenWithdrawalHash_success() (gas: 231
454
)
OptimismPortal_FinalizeWithdrawal_Test:test_finalizeWithdrawalTransaction_targetFails_fails() (gas: 334
069
)
OptimismPortal_FinalizeWithdrawal_Test:test_finalizeWithdrawalTransaction_timestampLessThanL2OracleStart_reverts() (gas: 1957
23
)
OptimismPortal_FinalizeWithdrawal_Test:test_proveWithdrawalTransaction_onInvalidOutputRootProof_reverts() (gas: 85
495
)
OptimismPortal_FinalizeWithdrawal_Test:test_proveWithdrawalTransaction_onSelfCall_reverts() (gas: 50754)
OptimismPortal_FinalizeWithdrawal_Test:test_proveWithdrawalTransaction_oninvalidWithdrawalProof_reverts() (gas: 1387
97
)
OptimismPortal_FinalizeWithdrawal_Test:test_proveWithdrawalTransaction_replayProveChangedOutputRoot_success() (gas: 279
136
)
OptimismPortal_FinalizeWithdrawal_Test:test_proveWithdrawalTransaction_replayProve_reverts() (gas: 1911
98
)
OptimismPortal_FinalizeWithdrawal_Test:test_proveWithdrawalTransaction_validWithdrawalProof_success() (gas: 1813
64
)
OptimismPortal_FinalizeWithdrawal_Test:test_proveWithdrawalTransaction_oninvalidWithdrawalProof_reverts() (gas: 1387
53
)
OptimismPortal_FinalizeWithdrawal_Test:test_proveWithdrawalTransaction_replayProveChangedOutputRoot_success() (gas: 279
048
)
OptimismPortal_FinalizeWithdrawal_Test:test_proveWithdrawalTransaction_replayProve_reverts() (gas: 1911
10
)
OptimismPortal_FinalizeWithdrawal_Test:test_proveWithdrawalTransaction_validWithdrawalProof_success() (gas: 1813
20
)
OptimismPortal_Test:test_OptimismPortalConstructor() (gas: 17298)
OptimismPortal_Test:test_OptimismPortalReceiveEth_success() (gas: 127483)
OptimismPortal_Test:test_depositTransaction_NoValueContract_success() (gas: 76706)
...
...
@@ -178,7 +178,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: 109
865
)
OptimismPortal_Test:test_isBlockFinalized_success() (gas: 109
644
)
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 @
7a27de9c
...
...
@@ -94,7 +94,6 @@ contract L2OutputOracle is OwnableUpgradeable, Semver {
*
* @param _submissionInterval Interval in blocks at which checkpoints must be submitted.
* @param _l2BlockTime The time per L2 block, in seconds.
* @param _startingL2Output The initial L2 output of the L2 chain.
* @param _startingBlockNumber The number of the first L2 block.
* @param _startingTimestamp The timestamp of the first L2 block.
* @param _proposer The address of the proposer.
...
...
@@ -103,7 +102,6 @@ contract L2OutputOracle is OwnableUpgradeable, Semver {
constructor(
uint256 _submissionInterval,
uint256 _l2BlockTime,
bytes32 _startingL2Output,
uint256 _startingBlockNumber,
uint256 _startingTimestamp,
address _proposer,
...
...
@@ -112,20 +110,18 @@ contract L2OutputOracle is OwnableUpgradeable, Semver {
SUBMISSION_INTERVAL = _submissionInterval;
L2_BLOCK_TIME = _l2BlockTime;
initialize(_starting
L2Output, _starting
BlockNumber, _startingTimestamp, _proposer, _owner);
initialize(_startingBlockNumber, _startingTimestamp, _proposer, _owner);
}
/**
* @notice Initializer.
*
* @param _startingL2Output Output for the first recoded L2 block.
* @param _startingBlockNumber Block number for the first recoded L2 block.
* @param _startingTimestamp Timestamp for the first recoded L2 block.
* @param _proposer The address of the proposer.
* @param _owner The address of the owner.
*/
function initialize(
bytes32 _startingL2Output,
uint256 _startingBlockNumber,
uint256 _startingTimestamp,
address _proposer,
...
...
@@ -136,10 +132,9 @@ contract L2OutputOracle is OwnableUpgradeable, Semver {
"L2OutputOracle: starting L2 timestamp must be less than current time"
);
startingTimestamp = _startingTimestamp;
startingBlockNumber = _startingBlockNumber;
latestBlockNumber = _startingBlockNumber;
startingTimestamp = _startingTimestamp;
l2Outputs[startingBlockNumber] = Types.OutputProposal(_startingL2Output, block.timestamp);
__Ownable_init();
changeProposer(_proposer);
...
...
@@ -156,7 +151,7 @@ contract L2OutputOracle is OwnableUpgradeable, Semver {
// solhint-disable-next-line ordering
function deleteL2Outputs(uint256 _l2BlockNumber) external onlyOwner {
// Simple check that accomplishes two things:
// 1. Prevents deleting anything
from before the genesis
block.
// 1. Prevents deleting anything
before (and including) the starting
block.
// 2. Prevents deleting anything other than a checkpoint block.
require(
l2Outputs[_l2BlockNumber].outputRoot != bytes32(0),
...
...
packages/contracts-bedrock/contracts/deployment/BaseSystemDictator.sol
View file @
7a27de9c
...
...
@@ -67,7 +67,6 @@ contract BaseSystemDictator is Ownable {
* @notice Dynamic L2OutputOracle config.
*/
struct L2OutputOracleDynamicConfig {
bytes32 l2OutputOracleStartingL2Output;
uint256 l2OutputOracleStartingBlockNumber;
uint256 l2OutputOracleStartingTimestamp;
}
...
...
packages/contracts-bedrock/contracts/deployment/MigrationSystemDictator.sol
View file @
7a27de9c
...
...
@@ -156,7 +156,6 @@ contract MigrationSystemDictator is BaseSystemDictator {
abi.encodeCall(
L2OutputOracle.initialize,
(
l2OutputOracleDynamicConfig.l2OutputOracleStartingL2Output,
l2OutputOracleDynamicConfig.l2OutputOracleStartingBlockNumber,
l2OutputOracleDynamicConfig.l2OutputOracleStartingTimestamp,
config.l2OutputOracleConfig.l2OutputOracleProposer,
...
...
packages/contracts-bedrock/contracts/test/CommonTest.t.sol
View file @
7a27de9c
...
...
@@ -97,7 +97,6 @@ contract L2OutputOracle_Initializer is CommonTest {
address internal owner = 0x000000000000000000000000000000000000ACDC;
uint256 internal submissionInterval = 1800;
uint256 internal l2BlockTime = 2;
bytes32 internal genesisL2Output = keccak256(abi.encode(0));
uint256 internal startingBlockNumber = 200;
uint256 internal startingTimestamp = 1000;
...
...
@@ -121,7 +120,6 @@ contract L2OutputOracle_Initializer is CommonTest {
oracleImpl = new L2OutputOracle(
submissionInterval,
l2BlockTime,
genesisL2Output,
startingBlockNumber,
startingTimestamp,
proposer,
...
...
@@ -133,7 +131,7 @@ contract L2OutputOracle_Initializer is CommonTest {
address(oracleImpl),
abi.encodeCall(
L2OutputOracle.initialize,
(
genesisL2Output,
startingBlockNumber, startingTimestamp, proposer, owner)
(startingBlockNumber, startingTimestamp, proposer, owner)
)
);
oracle = L2OutputOracle(address(proxy));
...
...
packages/contracts-bedrock/contracts/test/L2OutputOracle.t.sol
View file @
7a27de9c
...
...
@@ -22,10 +22,6 @@ contract L2OutputOracleTest is L2OutputOracle_Initializer {
assertEq(oracle.startingTimestamp(), startingTimestamp);
assertEq(oracle.proposer(), proposer);
assertEq(oracle.owner(), owner);
Types.OutputProposal memory proposal = oracle.getL2Output(startingBlockNumber);
assertEq(proposal.outputRoot, genesisL2Output);
assertEq(proposal.timestamp, initL1Time);
}
function testCannot_constructWithBadTimestamp() external {
...
...
@@ -34,7 +30,6 @@ contract L2OutputOracleTest is L2OutputOracle_Initializer {
new L2OutputOracle(
submissionInterval,
l2BlockTime,
genesisL2Output,
startingBlockNumber,
// startingTimestamp is in the future
block.timestamp + 1,
...
...
@@ -275,6 +270,7 @@ contract L2OutputOracleTest is L2OutputOracle_Initializer {
function test_deleteOutputs_singleOutput() external {
test_proposingAnotherOutput();
test_proposingAnotherOutput();
uint256 latestBlockNumber = oracle.latestBlockNumber();
Types.OutputProposal memory newLatestOutput = oracle.getL2Output(
...
...
@@ -300,6 +296,7 @@ contract L2OutputOracleTest is L2OutputOracle_Initializer {
test_proposingAnotherOutput();
test_proposingAnotherOutput();
test_proposingAnotherOutput();
test_proposingAnotherOutput();
uint256 latestBlockNumber = oracle.latestBlockNumber();
Types.OutputProposal memory newLatestOutput = oracle.getL2Output(
...
...
@@ -374,10 +371,6 @@ contract L2OutputOracleUpgradeable_Test is L2OutputOracle_Initializer {
assertEq(startingBlockNumber, oracleImpl.startingBlockNumber());
assertEq(startingTimestamp, oracleImpl.startingTimestamp());
Types.OutputProposal memory initOutput = oracleImpl.getL2Output(startingBlockNumber);
assertEq(genesisL2Output, initOutput.outputRoot);
assertEq(initL1Time, initOutput.timestamp);
assertEq(proposer, oracleImpl.proposer());
assertEq(owner, oracleImpl.owner());
}
...
...
@@ -385,7 +378,6 @@ contract L2OutputOracleUpgradeable_Test is L2OutputOracle_Initializer {
function test_cannotInitProxy() external {
vm.expectRevert("Initializable: contract is already initialized");
L2OutputOracle(payable(proxy)).initialize(
genesisL2Output,
startingBlockNumber,
startingTimestamp,
proposer,
...
...
@@ -396,7 +388,6 @@ contract L2OutputOracleUpgradeable_Test is L2OutputOracle_Initializer {
function test_cannotInitImpl() external {
vm.expectRevert("Initializable: contract is already initialized");
L2OutputOracle(oracleImpl).initialize(
genesisL2Output,
startingBlockNumber,
startingTimestamp,
proposer,
...
...
packages/contracts-bedrock/deploy-config/hardhat.json
View file @
7a27de9c
...
...
@@ -19,7 +19,6 @@
"l2OutputOracleStartingTimestamp"
:
-1
,
"l2OutputOracleProposer"
:
"0x70997970C51812dc3A010C7d01b50e0d17dc79C8"
,
"l2OutputOracleOwner"
:
"0x6925B8704Ff96DEe942623d6FB5e946EF5884b63"
,
"l2OutputOracleGenesisL2Output"
:
"0x1111111111111111111111111111111111111111111111111111111111111111"
,
"baseFeeVaultRecipient"
:
"0xBcd4042DE499D14e55001CcbB24a551F3b954096"
,
"l1FeeVaultRecipient"
:
"0x71bE63f3384f5fb98995898A86B02Fb2426c5788"
,
...
...
packages/contracts-bedrock/deploy/011-L2OutputOracleImpl.ts
View file @
7a27de9c
import
{
ethers
}
from
'
ethers
'
import
{
DeployFunction
}
from
'
hardhat-deploy/dist/types
'
import
'
@eth-optimism/hardhat-deploy-config
'
import
'
@nomiclabs/hardhat-ethers
'
...
...
@@ -15,7 +14,6 @@ const deployFn: DeployFunction = async (hre) => {
args
:
[
hre
.
deployConfig
.
l2OutputOracleSubmissionInterval
,
hre
.
deployConfig
.
l2BlockTime
,
ethers
.
constants
.
HashZero
,
0
,
0
,
hre
.
deployConfig
.
l2OutputOracleProposer
,
...
...
packages/contracts-bedrock/deploy/017-MigrationSystemDictator.ts
View file @
7a27de9c
...
...
@@ -46,22 +46,6 @@ const deployFn: DeployFunction = async (hre) => {
}
}
if
(
hre
.
deployConfig
.
l2OutputOracleGenesisL2Output
===
ethers
.
constants
.
HashZero
)
{
if
(
hre
.
network
.
config
.
live
===
false
)
{
console
.
log
(
`WARNING!!!`
)
console
.
log
(
`WARNING!!!`
)
console
.
log
(
`WARNING!!!`
)
console
.
log
(
`WARNING!!! A genesis L2 output was not provided.`
)
console
.
log
(
`WARNING!!! Make sure you are ONLY doing this on a test network.`
)
}
else
{
throw
new
Error
(
`must specify the finalSystemOwner on live networks`
)
}
}
const
config
=
await
makeDictatorConfig
(
hre
,
controller
,
finalOwner
,
false
)
await
deployAndVerifyAndThen
({
hre
,
...
...
packages/contracts-bedrock/deploy/018-MigrationSystemDictatorSteps.ts
View file @
7a27de9c
...
...
@@ -278,19 +278,6 @@ const deployFn: DeployFunction = async (hre) => {
'
owner
'
,
hre
.
deployConfig
.
l2OutputOracleOwner
)
if
(
hre
.
deployConfig
.
l2OutputOracleGenesisL2Output
!==
ethers
.
constants
.
HashZero
)
{
const
genesisOutput
=
await
L2OutputOracle
.
getL2Output
(
hre
.
deployConfig
.
l2OutputOracleStartingBlockNumber
)
assert
(
genesisOutput
.
outputRoot
===
hre
.
deployConfig
.
l2OutputOracleGenesisL2Output
,
`L2OutputOracle was not initialized with the correct genesis output root`
)
}
// Check OptimismPortal was initialized properly.
await
assertContractVariable
(
...
...
@@ -387,8 +374,6 @@ const deployFn: DeployFunction = async (hre) => {
}
await
MigrationSystemDictator
.
updateL2OutputOracleDynamicConfig
({
l2OutputOracleStartingL2Output
:
hre
.
deployConfig
.
l2OutputOracleGenesisL2Output
,
l2OutputOracleStartingBlockNumber
:
hre
.
deployConfig
.
l2OutputOracleStartingBlockNumber
,
l2OutputOracleStartingTimestamp
:
deployL2StartingTimestamp
,
...
...
packages/contracts-bedrock/hardhat.config.ts
View file @
7a27de9c
...
...
@@ -165,11 +165,6 @@ const config: HardhatUserConfig = {
l2OutputOracleSubmissionInterval
:
{
type
:
'
number
'
,
},
// bytes32 - The initial L2 output of the L2 chain.
l2OutputOracleGenesisL2Output
:
{
type
:
'
string
'
,
default
:
ethers
.
constants
.
HashZero
,
},
// uint256 - The number of the first L2 block.
l2OutputOracleStartingBlockNumber
:
{
type
:
'
number
'
,
...
...
packages/sdk/tasks/deposit-erc20.ts
View file @
7a27de9c
...
...
@@ -253,10 +253,13 @@ task('deposit-erc20', 'Deposits WETH9 onto L2.')
for
(
let
i
=
0
;
i
<
30
;
i
++
)
{
const
messageReceipt
=
await
messenger
.
waitForMessageReceipt
(
depositTx
)
if
(
messageReceipt
.
receiptStatus
!==
1
)
{
throw
new
Error
(
'
deposit failed
'
)
console
.
log
(
`Deposit failed, retrying...`
)
}
if
(
messageReceipt
.
transactionReceipt
.
blockHash
!==
prevBlockHash
)
{
if
(
prevBlockHash
!==
''
&&
messageReceipt
.
transactionReceipt
.
blockHash
!==
prevBlockHash
)
{
console
.
log
(
`Block hash changed from
${
prevBlockHash
}
to
${
messageReceipt
.
transactionReceipt
.
blockHash
}
`
)
...
...
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