Skip to content
Closed
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
59 commits
Select commit Hold shift + click to select a range
159fb05
feat: AnchorStateRegistry as source of truth
smartcontracts Jan 17, 2025
3cf1adb
feat: new eth lockbox (#285)
0xDiscotech Feb 27, 2025
c47da68
feat: integrate portal with lockbox (#291)
agusduha Feb 28, 2025
f7b2b7f
fix: semver lock
agusduha Feb 28, 2025
a381511
fix: failing tests after merge
0xDiscotech Feb 28, 2025
fda3e0c
fix: interface import
agusduha Feb 28, 2025
878d2a9
chore: add lockbox pao matches final system owner check
0xDiscotech Feb 28, 2025
053545f
fix: pr comments (#293)
0xDiscotech Mar 3, 2025
540c870
feat: add Super Root specific method to OptimismPortal
smartcontracts Feb 25, 2025
ccf9270
fix: pr second comments (#295)
0xDiscotech Mar 3, 2025
60cc361
Merge pull request #14532 from ethereum-optimism/sc/pwd-super-roots
smartcontracts Mar 3, 2025
af7edc6
Merge remote-tracking branch 'upstream/feat/interop-portal-updates' i…
agusduha Mar 4, 2025
1970d26
fix: pre pr
agusduha Mar 4, 2025
1c13499
Merge pull request #297 from defi-wonderland/fix/sync-feature-branch
agusduha Mar 4, 2025
c28004e
fix: test upgrade fails (#296)
0xDiscotech Mar 4, 2025
884b84a
fix: pr fixes (#298)
0xDiscotech Mar 5, 2025
0ab40c5
fix: add lockbox on implementations struct to fix go test (#300)
0xDiscotech Mar 5, 2025
1e55785
feat: AnchorStateRegistry as source of truth
smartcontracts Jan 17, 2025
21ce885
feat: add Super Root specific method to OptimismPortal
smartcontracts Feb 25, 2025
ffa4d6e
feat: interop portal OPCM updates
smartcontracts Mar 5, 2025
2f0052b
fix: remove old respectedGameType check from portal test
smartcontracts Mar 5, 2025
a983bbf
fix: deploy new dispute games in OPCM
smartcontracts Mar 5, 2025
61b7fc7
feat: add upgrade 15 test path
smartcontracts Mar 5, 2025
4fb777e
feat: integrate into opcm fork tests
smartcontracts Mar 5, 2025
43bc99d
fix: corrected checks for ASR
smartcontracts Mar 6, 2025
cfeb68f
fix: rebase tweaks
smartcontracts Mar 6, 2025
8990020
Merge pull request #14661 from ethereum-optimism/sc/interop-portal-opcm
smartcontracts Mar 6, 2025
0980d04
Merge remote-tracking branch 'upstream/feat/interop-portal-updates' i…
agusduha Mar 6, 2025
2792854
fix: OPCM integration
agusduha Mar 6, 2025
d4348e5
fix: OPCM stack too deep
agusduha Mar 6, 2025
08ec7e2
fix: pre pr
agusduha Mar 6, 2025
2f7f094
fix: update portal implementation on opcm upgrade
0xDiscotech Mar 6, 2025
982a13a
fix: call upgrade on portal without upgrading any impl
0xDiscotech Mar 6, 2025
c3a588d
fix: iopcm interface for older versions already deployed
0xDiscotech Mar 6, 2025
f71a15d
refactor: use minimal interface for opcm without lockbox
0xDiscotech Mar 6, 2025
34fa32a
fix: import
0xDiscotech Mar 6, 2025
851ed94
Merge pull request #301 from defi-wonderland/fix/sync-opcm
agusduha Mar 6, 2025
d7f97c8
chore: undo changes on opcm carried when resolving conflicts (#302)
0xDiscotech Mar 6, 2025
859810a
fix: include lockbox on reinitialization test and add todos with issu…
0xDiscotech Mar 6, 2025
23f5395
fix: add ETHLockbox to op-deployer
smartcontracts Mar 6, 2025
151b18f
fix: add evm tags to ETHLockboxImpl
smartcontracts Mar 6, 2025
5c59150
fix: evm tags for ethLockboxProxy too
smartcontracts Mar 6, 2025
66634b6
fix: remove certain ETHLockbox checks
smartcontracts Mar 7, 2025
5311c21
fix: properly add ETHLockbox to state
smartcontracts Mar 7, 2025
b1b6ecc
fix: handle deposit tests and kill L2oo tests
smartcontracts Mar 7, 2025
8f150df
fix: undo change in user test
smartcontracts Mar 7, 2025
93c578d
fix: kill more L2OO tests
smartcontracts Mar 7, 2025
ae4dfad
fix: bug in withdrawal validity test
smartcontracts Mar 7, 2025
3f59cf0
fix: pr review (#309)
0xDiscotech Mar 7, 2025
7a771e6
Merge pull request #14588 from defi-wonderland/feat/introduce-eth-loc…
smartcontracts Mar 8, 2025
bf60861
Merge branch 'develop' into feat/interop-portal-updates
smartcontracts Mar 8, 2025
cb542db
Merge branch 'develop' into feat/interop-portal-updates
smartcontracts Mar 9, 2025
94ee135
fix: some remaining merge issues
smartcontracts Mar 9, 2025
f7dc5ab
fix: go linting error
smartcontracts Mar 9, 2025
fa40bbc
fix: remove old test skips
smartcontracts Mar 10, 2025
45899f1
fix: unskip v2 upgrade tests
smartcontracts Mar 10, 2025
ca2275c
fix: skip v2 upgrade tests again
smartcontracts Mar 10, 2025
99271b1
Keep prestate as before if input is zero
maurelian Mar 10, 2025
d669db6
pre-pr
maurelian Mar 10, 2025
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
3 changes: 3 additions & 0 deletions op-chain-ops/genesis/config.go
Original file line number Diff line number Diff line change
Expand Up @@ -1111,6 +1111,8 @@ type L1Deployments struct {
OptimismMintableERC20FactoryProxy common.Address `json:"OptimismMintableERC20FactoryProxy"`
OptimismPortal common.Address `json:"OptimismPortal"`
OptimismPortalProxy common.Address `json:"OptimismPortalProxy"`
ETHLockbox common.Address `json:"ETHLockbox"`
ETHLockboxProxy common.Address `json:"ETHLockboxProxy"`
ProxyAdmin common.Address `json:"ProxyAdmin"`
SystemConfig common.Address `json:"SystemConfig"`
SystemConfigProxy common.Address `json:"SystemConfigProxy"`
Expand Down Expand Up @@ -1156,6 +1158,7 @@ func (d *L1Deployments) Check(deployConfig *DeployConfig) error {
name == "DataAvailabilityChallengeProxy") {
continue
}

if val.Field(i).Interface().(common.Address) == (common.Address{}) {
return fmt.Errorf("%s is not set", name)
}
Expand Down
19 changes: 10 additions & 9 deletions op-chain-ops/interopgen/configs.go
Original file line number Diff line number Diff line change
Expand Up @@ -74,15 +74,16 @@ type L2Config struct {
Challenger common.Address
SystemConfigOwner common.Address
genesis.L2InitializationConfig
Prefund map[common.Address]*big.Int
SaltMixer string
GasLimit uint64
DisputeGameType uint32
DisputeAbsolutePrestate common.Hash
DisputeMaxGameDepth uint64
DisputeSplitDepth uint64
DisputeClockExtension uint64
DisputeMaxClockDuration uint64
Prefund map[common.Address]*big.Int
SaltMixer string
GasLimit uint64
DisputeGameUsesSuperRoots bool
DisputeGameType uint32
DisputeAbsolutePrestate common.Hash
DisputeMaxGameDepth uint64
DisputeSplitDepth uint64
DisputeClockExtension uint64
DisputeMaxClockDuration uint64
}

func (c *L2Config) Check(log log.Logger) error {
Expand Down
37 changes: 19 additions & 18 deletions op-chain-ops/interopgen/deploy.go
Original file line number Diff line number Diff line change
Expand Up @@ -198,24 +198,25 @@ func DeployL2ToL1(l1Host *script.Host, superCfg *SuperchainConfig, superDeployme
l1Host.SetTxOrigin(cfg.Deployer)

output, err := opcm.DeployOPChain(l1Host, opcm.DeployOPChainInput{
OpChainProxyAdminOwner: cfg.ProxyAdminOwner,
SystemConfigOwner: cfg.SystemConfigOwner,
Batcher: cfg.BatchSenderAddress,
UnsafeBlockSigner: cfg.P2PSequencerAddress,
Proposer: cfg.Proposer,
Challenger: cfg.Challenger,
BasefeeScalar: cfg.GasPriceOracleBaseFeeScalar,
BlobBaseFeeScalar: cfg.GasPriceOracleBlobBaseFeeScalar,
L2ChainId: new(big.Int).SetUint64(cfg.L2ChainID),
Opcm: superDeployment.Opcm,
SaltMixer: cfg.SaltMixer,
GasLimit: cfg.GasLimit,
DisputeGameType: cfg.DisputeGameType,
DisputeAbsolutePrestate: cfg.DisputeAbsolutePrestate,
DisputeMaxGameDepth: cfg.DisputeMaxGameDepth,
DisputeSplitDepth: cfg.DisputeSplitDepth,
DisputeClockExtension: cfg.DisputeClockExtension,
DisputeMaxClockDuration: cfg.DisputeMaxClockDuration,
OpChainProxyAdminOwner: cfg.ProxyAdminOwner,
SystemConfigOwner: cfg.SystemConfigOwner,
Batcher: cfg.BatchSenderAddress,
UnsafeBlockSigner: cfg.P2PSequencerAddress,
Proposer: cfg.Proposer,
Challenger: cfg.Challenger,
BasefeeScalar: cfg.GasPriceOracleBaseFeeScalar,
BlobBaseFeeScalar: cfg.GasPriceOracleBlobBaseFeeScalar,
L2ChainId: new(big.Int).SetUint64(cfg.L2ChainID),
Opcm: superDeployment.Opcm,
SaltMixer: cfg.SaltMixer,
GasLimit: cfg.GasLimit,
DisputeGameUsesSuperRoots: cfg.DisputeGameUsesSuperRoots,
DisputeGameType: cfg.DisputeGameType,
DisputeAbsolutePrestate: cfg.DisputeAbsolutePrestate,
DisputeMaxGameDepth: cfg.DisputeMaxGameDepth,
DisputeSplitDepth: cfg.DisputeSplitDepth,
DisputeClockExtension: cfg.DisputeClockExtension,
DisputeMaxClockDuration: cfg.DisputeMaxClockDuration,
})
if err != nil {
return nil, fmt.Errorf("failed to deploy L2 OP chain: %w", err)
Expand Down
2 changes: 2 additions & 0 deletions op-chain-ops/interopgen/deployments.go
Original file line number Diff line number Diff line change
Expand Up @@ -16,6 +16,7 @@ type Implementations struct {
OpcmUpgrader common.Address `json:"OPCMUpgrader"`
DelayedWETHImpl common.Address `json:"DelayedWETHImpl"`
OptimismPortalImpl common.Address `json:"OptimismPortalImpl"`
ETHLockboxImpl common.Address `json:"ETHLockboxImpl"`
PreimageOracleSingleton common.Address `json:"PreimageOracleSingleton"`
MipsSingleton common.Address `json:"MipsSingleton"`
SystemConfigImpl common.Address `json:"SystemConfigImpl"`
Expand Down Expand Up @@ -51,6 +52,7 @@ type L2OpchainDeployment struct {
L1CrossDomainMessengerProxy common.Address `json:"L1CrossDomainMessengerProxy"`
// Fault proof contracts below.
OptimismPortalProxy common.Address `json:"OptimismPortalProxy"`
ETHLockboxProxy common.Address `json:"ETHLockboxProxy"`
DisputeGameFactoryProxy common.Address `json:"DisputeGameFactoryProxy"`
AnchorStateRegistryProxy common.Address `json:"AnchorStateRegistryProxy"`
FaultDisputeGame common.Address `json:"FaultDisputeGame"`
Expand Down
19 changes: 10 additions & 9 deletions op-chain-ops/interopgen/recipe.go
Original file line number Diff line number Diff line change
Expand Up @@ -275,15 +275,16 @@ func (r *InteropDevL2Recipe) build(l1ChainID uint64, addrs devkeys.Addresses) (*
UseAltDA: false,
},
},
Prefund: make(map[common.Address]*big.Int),
SaltMixer: "",
GasLimit: 60_000_000,
DisputeGameType: 1, // PERMISSIONED_CANNON Game Type
DisputeAbsolutePrestate: common.HexToHash("0x038512e02c4c3f7bdaec27d00edf55b7155e0905301e1a88083e4e0a6764d54c"),
DisputeMaxGameDepth: 73,
DisputeSplitDepth: 30,
DisputeClockExtension: 10800, // 3 hours (input in seconds)
DisputeMaxClockDuration: 302400, // 3.5 days (input in seconds)
Prefund: make(map[common.Address]*big.Int),
SaltMixer: "",
GasLimit: 60_000_000,
DisputeGameUsesSuperRoots: true,
DisputeGameType: 1, // PERMISSIONED_CANNON Game Type
DisputeAbsolutePrestate: common.HexToHash("0x038512e02c4c3f7bdaec27d00edf55b7155e0905301e1a88083e4e0a6764d54c"),
DisputeMaxGameDepth: 73,
DisputeSplitDepth: 30,
DisputeClockExtension: 10800, // 3 hours (input in seconds)
DisputeMaxClockDuration: 302400, // 3.5 days (input in seconds)
}

l2Users := devkeys.ChainUserKeys(new(big.Int).SetUint64(r.ChainID))
Expand Down
2 changes: 2 additions & 0 deletions op-chain-ops/solc/types.go
Original file line number Diff line number Diff line change
Expand Up @@ -263,6 +263,8 @@ type Expression struct {
ReferencedDeclaration int `json:"referencedDeclaration,omitempty"`
ArgumentTypes []AstTypeDescriptions `json:"argumentTypes,omitempty"`
Value interface{} `json:"value,omitempty"`
Kind string `json:"kind,omitempty"`
Expression *Expression `json:"expression,omitempty"`
}

type ForgeArtifact struct {
Expand Down
1 change: 1 addition & 0 deletions op-deployer/pkg/deployer/bootstrap/validator.go
Original file line number Diff line number Diff line change
Expand Up @@ -47,6 +47,7 @@ type ValidatorInput struct {
ProtocolVersionsImpl common.Address `json:"protocolVersionsImpl"`
L1ERC721BridgeImpl common.Address `json:"l1ERC721BridgeImpl"`
OptimismPortalImpl common.Address `json:"optimismPortalImpl"`
ETHLockboxImpl common.Address `json:"ethLockboxImpl" evm:"ethLockboxImpl"`
SystemConfigImpl common.Address `json:"systemConfigImpl"`
OptimismMintableERC20FactoryImpl common.Address `json:"optimismMintableERC20FactoryImpl"`
L1CrossDomainMessengerImpl common.Address `json:"l1CrossDomainMessengerImpl"`
Expand Down
1 change: 1 addition & 0 deletions op-deployer/pkg/deployer/bootstrap/validator_test.go
Original file line number Diff line number Diff line change
Expand Up @@ -62,6 +62,7 @@ func testValidator(t *testing.T, forkRPCURL string, loc *artifacts.Locator, rele
ProtocolVersionsImpl: common.Address{'2'},
L1ERC721BridgeImpl: common.Address{'3'},
OptimismPortalImpl: common.Address{'4'},
ETHLockboxImpl: common.Address{'5'},
SystemConfigImpl: common.Address{'5'},
OptimismMintableERC20FactoryImpl: common.Address{'6'},
L1CrossDomainMessengerImpl: common.Address{'7'},
Expand Down
6 changes: 6 additions & 0 deletions op-deployer/pkg/deployer/inspect/l1.go
Original file line number Diff line number Diff line change
Expand Up @@ -71,6 +71,8 @@ func (l L1Contracts) AsL1Deployments() *genesis.L1Deployments {
OptimismMintableERC20FactoryProxy: l.OpChainDeployment.OptimismMintableERC20FactoryProxyAddress,
OptimismPortal: l.ImplementationsDeployment.OptimismPortalImplAddress,
OptimismPortalProxy: l.OpChainDeployment.OptimismPortalProxyAddress,
ETHLockbox: l.ImplementationsDeployment.ETHLockboxImplAddress,
ETHLockboxProxy: l.OpChainDeployment.ETHLockboxProxyAddress,
ProxyAdmin: l.OpChainDeployment.ProxyAdminAddress,
SystemConfig: l.ImplementationsDeployment.SystemConfigImplAddress,
SystemConfigProxy: l.OpChainDeployment.SystemConfigProxyAddress,
Expand Down Expand Up @@ -98,6 +100,7 @@ type OpChainDeployment struct {
L1StandardBridgeProxyAddress common.Address `json:"l1StandardBridgeProxyAddress"`
L1CrossDomainMessengerProxyAddress common.Address `json:"l1CrossDomainMessengerProxyAddress"`
OptimismPortalProxyAddress common.Address `json:"optimismPortalProxyAddress"`
ETHLockboxProxyAddress common.Address `json:"ethLockboxProxyAddress"`
DisputeGameFactoryProxyAddress common.Address `json:"disputeGameFactoryProxyAddress"`
AnchorStateRegistryProxyAddress common.Address `json:"anchorStateRegistryProxyAddress"`
AnchorStateRegistryImplAddress common.Address `json:"anchorStateRegistryImplAddress"`
Expand All @@ -113,6 +116,7 @@ type ImplementationsDeployment struct {
OpcmAddress common.Address `json:"opcmAddress"`
DelayedWETHImplAddress common.Address `json:"delayedWETHImplAddress"`
OptimismPortalImplAddress common.Address `json:"optimismPortalImplAddress"`
ETHLockboxImplAddress common.Address `json:"ethLockboxImplAddress"`
PreimageOracleSingletonAddress common.Address `json:"preimageOracleSingletonAddress"`
MipsSingletonAddress common.Address `json:"mipsSingletonAddress"`
SystemConfigImplAddress common.Address `json:"systemConfigImplAddress"`
Expand Down Expand Up @@ -169,6 +173,7 @@ func L1(globalState *state.State, chainID common.Hash) (*L1Contracts, error) {
L1StandardBridgeProxyAddress: chainState.L1StandardBridgeProxyAddress,
L1CrossDomainMessengerProxyAddress: chainState.L1CrossDomainMessengerProxyAddress,
OptimismPortalProxyAddress: chainState.OptimismPortalProxyAddress,
ETHLockboxProxyAddress: chainState.ETHLockboxProxyAddress,
DisputeGameFactoryProxyAddress: chainState.DisputeGameFactoryProxyAddress,
AnchorStateRegistryProxyAddress: chainState.AnchorStateRegistryProxyAddress,
FaultDisputeGameAddress: chainState.FaultDisputeGameAddress,
Expand All @@ -182,6 +187,7 @@ func L1(globalState *state.State, chainID common.Hash) (*L1Contracts, error) {
OpcmAddress: globalState.ImplementationsDeployment.OpcmAddress,
DelayedWETHImplAddress: globalState.ImplementationsDeployment.DelayedWETHImplAddress,
OptimismPortalImplAddress: globalState.ImplementationsDeployment.OptimismPortalImplAddress,
ETHLockboxImplAddress: globalState.ImplementationsDeployment.ETHLockboxImplAddress,
PreimageOracleSingletonAddress: globalState.ImplementationsDeployment.PreimageOracleSingletonAddress,
MipsSingletonAddress: globalState.ImplementationsDeployment.MipsSingletonAddress,
SystemConfigImplAddress: globalState.ImplementationsDeployment.SystemConfigImplAddress,
Expand Down
13 changes: 10 additions & 3 deletions op-deployer/pkg/deployer/integration_test/apply_test.go
Original file line number Diff line number Diff line change
Expand Up @@ -297,7 +297,7 @@ func TestProofParamOverrides(t *testing.T) {
{
"disputeGameFinalityDelaySeconds",
uint64Caster,
st.ImplementationsDeployment.OptimismPortalImplAddress,
st.ImplementationsDeployment.AnchorStateRegistryImplAddress,
},
{
"faultGameAbsolutePrestate",
Expand Down Expand Up @@ -462,6 +462,7 @@ func TestAdditionalDisputeGames(t *testing.T) {
intent.Chains[0].AdditionalDisputeGames = []state.AdditionalDisputeGame{
{
ChainProofParams: state.ChainProofParams{
DisputeGameUsesSuperRoots: false,
DisputeGameType: 255,
DisputeAbsolutePrestate: standard.DisputeAbsolutePrestate,
DisputeMaxGameDepth: 50,
Expand Down Expand Up @@ -675,10 +676,11 @@ func validateSuperchainDeployment(t *testing.T, st *state.State, cg codeGetter)
func validateOPChainDeployment(t *testing.T, cg codeGetter, st *state.State, intent *state.Intent, govEnabled bool) {
// Validate that the implementation addresses are always set, even in subsequent deployments
// that pull from an existing OPCM deployment.
implAddrs := []struct {
type addrTuple struct {
name string
addr common.Address
}{
}
implAddrs := []addrTuple{
{"DelayedWETHImplAddress", st.ImplementationsDeployment.DelayedWETHImplAddress},
{"OptimismPortalImplAddress", st.ImplementationsDeployment.OptimismPortalImplAddress},
{"SystemConfigImplAddress", st.ImplementationsDeployment.SystemConfigImplAddress},
Expand All @@ -690,6 +692,11 @@ func validateOPChainDeployment(t *testing.T, cg codeGetter, st *state.State, int
{"MipsSingletonAddress", st.ImplementationsDeployment.MipsSingletonAddress},
{"PreimageOracleSingletonAddress", st.ImplementationsDeployment.PreimageOracleSingletonAddress},
}

if !intent.L1ContractsLocator.IsTag() {
implAddrs = append(implAddrs, addrTuple{"ETHLockboxImplAddress", st.ImplementationsDeployment.ETHLockboxImplAddress})
}

for _, addr := range implAddrs {
require.NotEmpty(t, addr.addr, "%s should be set", addr.name)
code := cg(t, addr.addr)
Expand Down
1 change: 0 additions & 1 deletion op-deployer/pkg/deployer/opcm/dispute_game_factory.go
Original file line number Diff line number Diff line change
Expand Up @@ -8,7 +8,6 @@ import (
type SetDisputeGameImplInput struct {
Factory common.Address
Impl common.Address
Portal common.Address
AnchorStateRegistry common.Address
GameType uint32
}
Expand Down
1 change: 1 addition & 0 deletions op-deployer/pkg/deployer/opcm/implementations.go
Original file line number Diff line number Diff line change
Expand Up @@ -37,6 +37,7 @@ type DeployImplementationsOutput struct {
OpcmUpgrader common.Address `json:"opcmUpgraderAddress"`
DelayedWETHImpl common.Address `json:"delayedWETHImplAddress"`
OptimismPortalImpl common.Address `json:"optimismPortalImplAddress"`
ETHLockboxImpl common.Address `json:"ethLockboxImplAddress" evm:"ethLockboxImpl"`
PreimageOracleSingleton common.Address `json:"preimageOracleSingletonAddress"`
MipsSingleton common.Address `json:"mipsSingletonAddress"`
SystemConfigImpl common.Address `json:"systemConfigImplAddress"`
Expand Down
3 changes: 3 additions & 0 deletions op-deployer/pkg/deployer/opcm/opchain.go
Original file line number Diff line number Diff line change
Expand Up @@ -33,6 +33,7 @@ type DeployOPChainInput struct {
SaltMixer string
GasLimit uint64

DisputeGameUsesSuperRoots bool
DisputeGameType uint32
DisputeAbsolutePrestate common.Hash
DisputeMaxGameDepth uint64
Expand Down Expand Up @@ -63,6 +64,7 @@ type DeployOPChainOutput struct {
L1CrossDomainMessengerProxy common.Address
// Fault proof contracts below.
OptimismPortalProxy common.Address
ETHLockboxProxy common.Address `evm:"ethLockboxProxy"`
DisputeGameFactoryProxy common.Address
AnchorStateRegistryProxy common.Address
FaultDisputeGame common.Address
Expand Down Expand Up @@ -92,6 +94,7 @@ type ReadImplementationAddressesInput struct {
type ReadImplementationAddressesOutput struct {
DelayedWETH common.Address
OptimismPortal common.Address
ETHLockbox common.Address `evm:"ethLockbox"`
SystemConfig common.Address
L1CrossDomainMessenger common.Address
L1ERC721Bridge common.Address
Expand Down
9 changes: 4 additions & 5 deletions op-deployer/pkg/deployer/pipeline/dispute_games.go
Original file line number Diff line number Diff line change
Expand Up @@ -127,13 +127,12 @@ func deployDisputeGame(

lgr.Info("setting dispute game impl on factory", "respected", game.MakeRespected)
sdgiInput := opcm.SetDisputeGameImplInput{
Factory: thisState.DisputeGameFactoryProxyAddress,
Impl: out.DisputeGameImpl,
GameType: game.DisputeGameType,
AnchorStateRegistry: thisState.AnchorStateRegistryProxyAddress,
Factory: thisState.DisputeGameFactoryProxyAddress,
Impl: out.DisputeGameImpl,
GameType: game.DisputeGameType,
}
if game.MakeRespected {
sdgiInput.Portal = thisState.OptimismPortalProxyAddress
sdgiInput.AnchorStateRegistry = thisState.AnchorStateRegistryProxyAddress
}
if err := opcm.SetDisputeGameImpl(
env.L1ScriptHost,
Expand Down
1 change: 1 addition & 0 deletions op-deployer/pkg/deployer/pipeline/implementations.go
Original file line number Diff line number Diff line change
Expand Up @@ -72,6 +72,7 @@ func DeployImplementations(env *Env, intent *state.Intent, st *state.State) erro
OpcmUpgraderAddress: dio.OpcmUpgrader,
DelayedWETHImplAddress: dio.DelayedWETHImpl,
OptimismPortalImplAddress: dio.OptimismPortalImpl,
ETHLockboxImplAddress: dio.ETHLockboxImpl,
PreimageOracleSingletonAddress: dio.PreimageOracleSingleton,
MipsSingletonAddress: dio.MipsSingleton,
SystemConfigImplAddress: dio.SystemConfigImpl,
Expand Down
16 changes: 10 additions & 6 deletions op-deployer/pkg/deployer/pipeline/opchain.go
Original file line number Diff line number Diff line change
Expand Up @@ -58,6 +58,7 @@ func DeployOPChain(env *Env, intent *state.Intent, st *state.State, chainID comm

st.ImplementationsDeployment.DelayedWETHImplAddress = impls.DelayedWETH
st.ImplementationsDeployment.OptimismPortalImplAddress = impls.OptimismPortal
st.ImplementationsDeployment.ETHLockboxImplAddress = impls.ETHLockbox
st.ImplementationsDeployment.SystemConfigImplAddress = impls.SystemConfig
st.ImplementationsDeployment.L1CrossDomainMessengerImplAddress = impls.L1CrossDomainMessenger
st.ImplementationsDeployment.L1ERC721BridgeImplAddress = impls.L1ERC721Bridge
Expand All @@ -73,12 +74,13 @@ func DeployOPChain(env *Env, intent *state.Intent, st *state.State, chainID comm
func makeDCI(intent *state.Intent, thisIntent *state.ChainIntent, chainID common.Hash, st *state.State) (opcm.DeployOPChainInput, error) {
proofParams, err := jsonutil.MergeJSON(
state.ChainProofParams{
DisputeGameType: standard.DisputeGameType,
DisputeAbsolutePrestate: standard.DisputeAbsolutePrestate,
DisputeMaxGameDepth: standard.DisputeMaxGameDepth,
DisputeSplitDepth: standard.DisputeSplitDepth,
DisputeClockExtension: standard.DisputeClockExtension,
DisputeMaxClockDuration: standard.DisputeMaxClockDuration,
DisputeGameUsesSuperRoots: standard.DisputeGameUsesSuperRoots,
DisputeGameType: standard.DisputeGameType,
DisputeAbsolutePrestate: standard.DisputeAbsolutePrestate,
DisputeMaxGameDepth: standard.DisputeMaxGameDepth,
DisputeSplitDepth: standard.DisputeSplitDepth,
DisputeClockExtension: standard.DisputeClockExtension,
DisputeMaxClockDuration: standard.DisputeMaxClockDuration,
},
intent.GlobalDeployOverrides,
thisIntent.DeployOverrides,
Expand All @@ -100,6 +102,7 @@ func makeDCI(intent *state.Intent, thisIntent *state.ChainIntent, chainID common
Opcm: st.ImplementationsDeployment.OpcmAddress,
SaltMixer: st.Create2Salt.String(), // passing through salt generated at state initialization
GasLimit: standard.GasLimit,
DisputeGameUsesSuperRoots: proofParams.DisputeGameUsesSuperRoots,
DisputeGameType: proofParams.DisputeGameType,
DisputeAbsolutePrestate: proofParams.DisputeAbsolutePrestate,
DisputeMaxGameDepth: proofParams.DisputeMaxGameDepth,
Expand All @@ -123,6 +126,7 @@ func makeChainState(chainID common.Hash, dco opcm.DeployOPChainOutput) *state.Ch
L1StandardBridgeProxyAddress: dco.L1StandardBridgeProxy,
L1CrossDomainMessengerProxyAddress: dco.L1CrossDomainMessengerProxy,
OptimismPortalProxyAddress: dco.OptimismPortalProxy,
ETHLockboxProxyAddress: dco.ETHLockboxProxy,
DisputeGameFactoryProxyAddress: dco.DisputeGameFactoryProxy,
AnchorStateRegistryProxyAddress: dco.AnchorStateRegistryProxy,
FaultDisputeGameAddress: dco.FaultDisputeGame,
Expand Down
Loading