@@ -45,6 +45,7 @@ contract DeployImplementationsInput is BaseDeployIO {
4545 // Outputs from DeploySuperchain.s.sol.
4646 ISuperchainConfig internal _superchainConfigProxy;
4747 IProtocolVersions internal _protocolVersionsProxy;
48+ address internal _upgradeController;
4849
4950 function set (bytes4 _sel , uint256 _value ) public {
5051 require (_value != 0 , "DeployImplementationsInput: cannot set zero value " );
@@ -77,6 +78,7 @@ contract DeployImplementationsInput is BaseDeployIO {
7778 require (_addr != address (0 ), "DeployImplementationsInput: cannot set zero address " );
7879 if (_sel == this .superchainConfigProxy.selector ) _superchainConfigProxy = ISuperchainConfig (_addr);
7980 else if (_sel == this .protocolVersionsProxy.selector ) _protocolVersionsProxy = IProtocolVersions (_addr);
81+ else if (_sel == this .upgradeController.selector ) _upgradeController = _addr;
8082 else revert ("DeployImplementationsInput: unknown selector " );
8183 }
8284
@@ -127,6 +129,11 @@ contract DeployImplementationsInput is BaseDeployIO {
127129 require (address (_protocolVersionsProxy) != address (0 ), "DeployImplementationsInput: not set " );
128130 return _protocolVersionsProxy;
129131 }
132+
133+ function upgradeController () public view returns (address ) {
134+ require (address (_upgradeController) != address (0 ), "DeployImplementationsInput: not set " );
135+ return _upgradeController;
136+ }
130137}
131138
132139contract DeployImplementationsOutput is BaseDeployIO {
@@ -269,6 +276,7 @@ contract DeployImplementationsOutput is BaseDeployIO {
269276 IOPContractsManager impl = IOPContractsManager (address (opcm ()));
270277 require (address (impl.superchainConfig ()) == address (_dii.superchainConfigProxy ()), "OPCMI-10 " );
271278 require (address (impl.protocolVersions ()) == address (_dii.protocolVersionsProxy ()), "OPCMI-20 " );
279+ require (impl.upgradeController () == _dii.upgradeController (), "OPCMI-30 " );
272280 }
273281
274282 function assertValidOptimismPortalImpl (DeployImplementationsInput) internal view {
@@ -444,6 +452,7 @@ contract DeployImplementations is Script {
444452 {
445453 ISuperchainConfig superchainConfigProxy = _dii.superchainConfigProxy ();
446454 IProtocolVersions protocolVersionsProxy = _dii.protocolVersionsProxy ();
455+ address upgradeController = _dii.upgradeController ();
447456
448457 IOPContractsManager.Implementations memory implementations = IOPContractsManager.Implementations ({
449458 l1ERC721BridgeImpl: address (_dio.l1ERC721BridgeImpl ()),
@@ -465,7 +474,14 @@ contract DeployImplementations is Script {
465474 _args: DeployUtils.encodeConstructor (
466475 abi.encodeCall (
467476 IOPContractsManager.__constructor__,
468- (superchainConfigProxy, protocolVersionsProxy, _l1ContractsRelease, _blueprints, implementations)
477+ (
478+ superchainConfigProxy,
479+ protocolVersionsProxy,
480+ _l1ContractsRelease,
481+ _blueprints,
482+ implementations,
483+ upgradeController
484+ )
469485 )
470486 ),
471487 _salt: _salt
@@ -790,6 +806,7 @@ contract DeployImplementationsInterop is DeployImplementations {
790806 {
791807 ISuperchainConfig superchainConfigProxy = _dii.superchainConfigProxy ();
792808 IProtocolVersions protocolVersionsProxy = _dii.protocolVersionsProxy ();
809+ address upgradeController = _dii.upgradeController ();
793810
794811 IOPContractsManager.Implementations memory implementations = IOPContractsManager.Implementations ({
795812 l1ERC721BridgeImpl: address (_dio.l1ERC721BridgeImpl ()),
@@ -811,7 +828,14 @@ contract DeployImplementationsInterop is DeployImplementations {
811828 _args: DeployUtils.encodeConstructor (
812829 abi.encodeCall (
813830 IOPContractsManagerInterop.__constructor__,
814- (superchainConfigProxy, protocolVersionsProxy, _l1ContractsRelease, _blueprints, implementations)
831+ (
832+ superchainConfigProxy,
833+ protocolVersionsProxy,
834+ _l1ContractsRelease,
835+ _blueprints,
836+ implementations,
837+ upgradeController
838+ )
815839 )
816840 ),
817841 _salt: _salt
0 commit comments