@@ -39,6 +39,7 @@ import { IL1ERC721Bridge } from "interfaces/L1/IL1ERC721Bridge.sol";
3939import { IL1StandardBridge } from "interfaces/L1/IL1StandardBridge.sol " ;
4040import { IOptimismMintableERC20Factory } from "interfaces/universal/IOptimismMintableERC20Factory.sol " ;
4141import { IETHLockbox } from "interfaces/L1/IETHLockbox.sol " ;
42+ import { ISystemConfig } from "../../interfaces/L1/ISystemConfig.sol " ;
4243
4344contract OPContractsManagerContractsContainer {
4445 /// @notice Addresses of the Blueprint contracts.
@@ -593,10 +594,12 @@ contract OPContractsManagerGameTypeAdder is OPContractsManagerBase {
593594 )
594595 ) {
595596 address impl = implementations ().faultDisputeGameV2Impl;
597+ // Always use the permissioned game to get the anchor state registry because it is guaranteed to
598+ // exist.
596599 bytes memory gameArgs = abi.encodePacked (
597600 gameConfig.disputeAbsolutePrestate, // 32 bytes
598601 gameConfig.vm, // 20 bytes
599- address (getAnchorStateRegistry (dgf, IDisputeGame (impl), gameConfig.disputeGameType )), // 20
602+ address (getAnchorStateRegistryV1 ( ISystemConfig ( gameConfig.systemConfig) )), // 20
600603 // bytes
601604 address (outputs[i].delayedWETH), // 20 bytes
602605 l2ChainId // 32 bytes
@@ -608,8 +611,7 @@ contract OPContractsManagerGameTypeAdder is OPContractsManagerBase {
608611 bytes memory gameArgs = abi.encodePacked (
609612 gameConfig.disputeAbsolutePrestate, // 32 bytes
610613 gameConfig.vm, // 20 bytes
611- address (getAnchorStateRegistry (dgf, IDisputeGame (impl), gameConfig.disputeGameType)), // 20
612- // bytes
614+ address (getAnchorStateRegistryV1 (ISystemConfig (gameConfig.systemConfig))), // 20 bytes
613615 address (outputs[i].delayedWETH), // 20 bytes
614616 l2ChainId, // 32 bytes
615617 getProposer (dgf, IPermissionedDisputeGame (address (existingGame)), gameConfig.disputeGameType), // 20
0 commit comments