Commit fdf6e8d9 authored by mergify[bot]'s avatar mergify[bot] Committed by GitHub

Merge branch 'develop' into michael/remove-duplicate-signer

parents 06c85961 0c3493e2
......@@ -205,6 +205,19 @@ contract SystemDictator is OwnableUpgradeable {
)
)
);
// Upgrade and initialize the L2OutputOracle so the Proposer can start up.
config.globalConfig.proxyAdmin.upgradeAndCall(
payable(config.proxyAddressConfig.l2OutputOracleProxy),
address(config.implementationAddressConfig.l2OutputOracleImpl),
abi.encodeCall(
L2OutputOracle.initialize,
(
l2OutputOracleDynamicConfig.l2OutputOracleStartingBlockNumber,
l2OutputOracleDynamicConfig.l2OutputOracleStartingTimestamp
)
)
);
}
/**
......@@ -290,19 +303,6 @@ contract SystemDictator is OwnableUpgradeable {
// Dynamic config must be set before we can initialize the L2OutputOracle.
require(dynamicConfigSet, "SystemDictator: dynamic oracle config is not yet initialized");
// Upgrade and initialize the L2OutputOracle.
config.globalConfig.proxyAdmin.upgradeAndCall(
payable(config.proxyAddressConfig.l2OutputOracleProxy),
address(config.implementationAddressConfig.l2OutputOracleImpl),
abi.encodeCall(
L2OutputOracle.initialize,
(
l2OutputOracleDynamicConfig.l2OutputOracleStartingBlockNumber,
l2OutputOracleDynamicConfig.l2OutputOracleStartingTimestamp
)
)
);
// Upgrade and initialize the OptimismPortal.
config.globalConfig.proxyAdmin.upgradeAndCall(
payable(config.proxyAddressConfig.optimismPortalProxy),
......
......@@ -29,6 +29,7 @@ const deployFn: DeployFunction = async (hre) => {
L1ERC721BridgeProxy,
L1ERC721BridgeProxyWithSigner,
SystemConfigProxy,
L2OutputOracleProxy,
] = await getContractsFromArtifacts(hre, [
{
name: 'SystemDictatorProxy',
......@@ -67,6 +68,11 @@ const deployFn: DeployFunction = async (hre) => {
iface: 'SystemConfig',
signerOrProvider: deployer,
},
{
name: 'L2OutputOracleProxy',
iface: 'L2OutputOracle',
signerOrProvider: deployer,
},
])
// If we have the key for the controller then we don't need to wait for external txns.
......@@ -287,6 +293,13 @@ const deployFn: DeployFunction = async (hre) => {
'gasLimit',
hre.deployConfig.l2GenesisBlockGasLimit
)
// Check L2OutputOracle was initialized properly.
await assertContractVariable(
L2OutputOracleProxy,
'latestBlockNumber',
hre.deployConfig.l2OutputOracleStartingBlockNumber
)
},
})
......
......@@ -26,7 +26,6 @@ const deployFn: DeployFunction = async (hre) => {
L1CrossDomainMessenger,
L1StandardBridgeProxy,
L1StandardBridge,
L2OutputOracle,
OptimismPortal,
OptimismMintableERC20Factory,
L1ERC721Bridge,
......@@ -57,11 +56,6 @@ const deployFn: DeployFunction = async (hre) => {
iface: 'L1StandardBridge',
signerOrProvider: deployer,
},
{
name: 'L2OutputOracleProxy',
iface: 'L2OutputOracle',
signerOrProvider: deployer,
},
{
name: 'OptimismPortalProxy',
iface: 'OptimismPortal',
......@@ -213,13 +207,6 @@ const deployFn: DeployFunction = async (hre) => {
submit L2 outputs to the L2OutputOracle.
`,
checks: async () => {
// Check L2OutputOracle was initialized properly.
await assertContractVariable(
L2OutputOracle,
'latestBlockNumber',
hre.deployConfig.l2OutputOracleStartingBlockNumber
)
// Check OptimismPortal was initialized properly.
await assertContractVariable(
OptimismPortal,
......
......@@ -89,7 +89,7 @@ The `sourceHash` of a deposit transaction is computed based on the origin:
Where the `l1BlockHash`, and `l1LogIndex` all refer to the inclusion of the deposit log event on L1.
`l1LogIndex` is the index of the deposit event log in the combined list of log events of the block.
- L1 attributes deposited:
`keccak256(bytes32(uint256(1)), keccak256(l1BlockHash), bytes32(uint256(seqNumber)))`.
`keccak256(bytes32(uint256(1)), keccak256(l1BlockHash, bytes32(uint256(seqNumber))))`.
Where `l1BlockHash` refers to the L1 block hash of which the info attributes are deposited.
And `seqNumber = l2BlockNum - l2EpochStartBlockNum`,
where `l2BlockNum` is the L2 block number of the inclusion of the deposit tx in L2,
......
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