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