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 { ...@@ -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 { ...@@ -290,19 +303,6 @@ contract SystemDictator is OwnableUpgradeable {
// Dynamic config must be set before we can initialize the L2OutputOracle. // Dynamic config must be set before we can initialize the L2OutputOracle.
require(dynamicConfigSet, "SystemDictator: dynamic oracle config is not yet initialized"); 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. // Upgrade and initialize the OptimismPortal.
config.globalConfig.proxyAdmin.upgradeAndCall( config.globalConfig.proxyAdmin.upgradeAndCall(
payable(config.proxyAddressConfig.optimismPortalProxy), payable(config.proxyAddressConfig.optimismPortalProxy),
......
...@@ -29,6 +29,7 @@ const deployFn: DeployFunction = async (hre) => { ...@@ -29,6 +29,7 @@ const deployFn: DeployFunction = async (hre) => {
L1ERC721BridgeProxy, L1ERC721BridgeProxy,
L1ERC721BridgeProxyWithSigner, L1ERC721BridgeProxyWithSigner,
SystemConfigProxy, SystemConfigProxy,
L2OutputOracleProxy,
] = await getContractsFromArtifacts(hre, [ ] = await getContractsFromArtifacts(hre, [
{ {
name: 'SystemDictatorProxy', name: 'SystemDictatorProxy',
...@@ -67,6 +68,11 @@ const deployFn: DeployFunction = async (hre) => { ...@@ -67,6 +68,11 @@ const deployFn: DeployFunction = async (hre) => {
iface: 'SystemConfig', iface: 'SystemConfig',
signerOrProvider: deployer, 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. // 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) => { ...@@ -287,6 +293,13 @@ const deployFn: DeployFunction = async (hre) => {
'gasLimit', 'gasLimit',
hre.deployConfig.l2GenesisBlockGasLimit hre.deployConfig.l2GenesisBlockGasLimit
) )
// Check L2OutputOracle was initialized properly.
await assertContractVariable(
L2OutputOracleProxy,
'latestBlockNumber',
hre.deployConfig.l2OutputOracleStartingBlockNumber
)
}, },
}) })
......
...@@ -26,7 +26,6 @@ const deployFn: DeployFunction = async (hre) => { ...@@ -26,7 +26,6 @@ const deployFn: DeployFunction = async (hre) => {
L1CrossDomainMessenger, L1CrossDomainMessenger,
L1StandardBridgeProxy, L1StandardBridgeProxy,
L1StandardBridge, L1StandardBridge,
L2OutputOracle,
OptimismPortal, OptimismPortal,
OptimismMintableERC20Factory, OptimismMintableERC20Factory,
L1ERC721Bridge, L1ERC721Bridge,
...@@ -57,11 +56,6 @@ const deployFn: DeployFunction = async (hre) => { ...@@ -57,11 +56,6 @@ const deployFn: DeployFunction = async (hre) => {
iface: 'L1StandardBridge', iface: 'L1StandardBridge',
signerOrProvider: deployer, signerOrProvider: deployer,
}, },
{
name: 'L2OutputOracleProxy',
iface: 'L2OutputOracle',
signerOrProvider: deployer,
},
{ {
name: 'OptimismPortalProxy', name: 'OptimismPortalProxy',
iface: 'OptimismPortal', iface: 'OptimismPortal',
...@@ -213,13 +207,6 @@ const deployFn: DeployFunction = async (hre) => { ...@@ -213,13 +207,6 @@ const deployFn: DeployFunction = async (hre) => {
submit L2 outputs to the L2OutputOracle. submit L2 outputs to the L2OutputOracle.
`, `,
checks: async () => { checks: async () => {
// Check L2OutputOracle was initialized properly.
await assertContractVariable(
L2OutputOracle,
'latestBlockNumber',
hre.deployConfig.l2OutputOracleStartingBlockNumber
)
// Check OptimismPortal was initialized properly. // Check OptimismPortal was initialized properly.
await assertContractVariable( await assertContractVariable(
OptimismPortal, OptimismPortal,
......
...@@ -89,7 +89,7 @@ The `sourceHash` of a deposit transaction is computed based on the origin: ...@@ -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. 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. `l1LogIndex` is the index of the deposit event log in the combined list of log events of the block.
- L1 attributes deposited: - 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. Where `l1BlockHash` refers to the L1 block hash of which the info attributes are deposited.
And `seqNumber = l2BlockNum - l2EpochStartBlockNum`, And `seqNumber = l2BlockNum - l2EpochStartBlockNum`,
where `l2BlockNum` is the L2 block number of the inclusion of the deposit tx in L2, 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