Commit be8d68a3 authored by Mark Tyneway's avatar Mark Tyneway

contracts-bedrock: better initialize

parent 4144e692
This source diff could not be displayed because it is too large. You can view the blob instead.
This diff is collapsed.
......@@ -123,7 +123,7 @@ func BuildL1DeveloperGenesis(config *DeployConfig) (*core.Genesis, error) {
if err != nil {
return nil, err
}
data, err = portalABI.Pack("initialize")
data, err = portalABI.Pack("initialize", false)
if err != nil {
return nil, fmt.Errorf("cannot abi encode initialize for OptimismPortal: %w", err)
}
......
......@@ -159,14 +159,15 @@ contract OptimismPortal is Initializable, ResourceMetering, Semver {
L2_ORACLE = _l2Oracle;
GUARDIAN = _guardian;
FINALIZATION_PERIOD_SECONDS = _finalizationPeriodSeconds;
initialize();
initialize(true);
}
/**
* @notice Initializer.
*/
function initialize() public initializer {
function initialize(bool _paused) public initializer {
l2Sender = Constants.DEFAULT_L2_SENDER;
paused = _paused;
__ResourceMetering_init();
}
......
......@@ -310,11 +310,11 @@ contract SystemDictator is OwnableUpgradeable {
)
);
// Upgrade and initialize the OptimismPortal.
// Upgrade and initialize the OptimismPortal as paused.
config.globalConfig.proxyAdmin.upgradeAndCall(
payable(config.proxyAddressConfig.optimismPortalProxy),
address(config.implementationAddressConfig.optimismPortalImpl),
abi.encodeCall(OptimismPortal.initialize, ())
abi.encodeCall(OptimismPortal.initialize, (true))
);
// Upgrade the L1CrossDomainMessenger.
......
......@@ -175,7 +175,7 @@ contract Portal_Initializer is L2OutputOracle_Initializer {
vm.prank(multisig);
proxy.upgradeToAndCall(
address(opImpl),
abi.encodeWithSelector(OptimismPortal.initialize.selector)
abi.encodeWithSelector(OptimismPortal.initialize.selector, false)
);
op = OptimismPortal(payable(address(proxy)));
}
......@@ -235,6 +235,8 @@ contract Messenger_Initializer is L2OutputOracle_Initializer {
_finalizationPeriodSeconds: 7 days
});
vm.label(address(op), "OptimismPortal");
vm.prank(op.GUARDIAN());
op.unpause();
// Deploy the address manager
vm.prank(multisig);
......
......@@ -1059,12 +1059,12 @@ contract OptimismPortalUpgradeable_Test is Portal_Initializer {
function test_initialize_cannotInitProxy_reverts() external {
vm.expectRevert("Initializable: contract is already initialized");
OptimismPortal(payable(proxy)).initialize();
OptimismPortal(payable(proxy)).initialize(false);
}
function test_initialize_cannotInitImpl_reverts() external {
vm.expectRevert("Initializable: contract is already initialized");
OptimismPortal(opImpl).initialize();
OptimismPortal(opImpl).initialize(false);
}
function test_upgradeToAndCall_upgrading_succeeds() external {
......
......@@ -18,8 +18,8 @@ const deployFn: DeployFunction = async (hre) => {
name: 'OptimismPortal',
args: [
L2OutputOracleProxy.address,
hre.deployConfig.finalizationPeriodSeconds,
hre.deployConfig.finalSystemOwner,
hre.deployConfig.finalizationPeriodSeconds,
],
postDeployAction: async (contract) => {
await assertContractVariable(
......
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