From 40e9cdcda3c9f224de90920ad377f703fe661a67 Mon Sep 17 00:00:00 2001 From: Matthew Slipper Date: Wed, 15 Jan 2025 08:43:26 -0700 Subject: [PATCH 1/3] op-deployer: Holocene defaults (#13783) * op-deployer: Default to holocene * Add contracts v180 tag --- op-deployer/pkg/deployer/standard/standard.go | 3 ++- op-deployer/pkg/deployer/state/deploy_config.go | 1 + 2 files changed, 3 insertions(+), 1 deletion(-) diff --git a/op-deployer/pkg/deployer/standard/standard.go b/op-deployer/pkg/deployer/standard/standard.go index 50664b959b2a..cea4dd42e42d 100644 --- a/op-deployer/pkg/deployer/standard/standard.go +++ b/op-deployer/pkg/deployer/standard/standard.go @@ -31,6 +31,7 @@ const ( Eip1559Elasticity uint64 = 6 ContractsV160Tag = "op-contracts/v1.6.0" + ContractsV180Tag = "op-contracts/v1.8.0-rc.4" ContractsV170Beta1L2Tag = "op-contracts/v1.7.0-beta.1+l2-contracts" ) @@ -46,7 +47,7 @@ var L1VersionsSepolia L1Versions var L1VersionsMainnet L1Versions -var DefaultL1ContractsTag = ContractsV160Tag +var DefaultL1ContractsTag = ContractsV180Tag var DefaultL2ContractsTag = ContractsV170Beta1L2Tag diff --git a/op-deployer/pkg/deployer/state/deploy_config.go b/op-deployer/pkg/deployer/state/deploy_config.go index c9ad464cc9d4..e521c3d5214a 100644 --- a/op-deployer/pkg/deployer/state/deploy_config.go +++ b/op-deployer/pkg/deployer/state/deploy_config.go @@ -80,6 +80,7 @@ func CombineDeployConfig(intent *Intent, chainIntent *ChainIntent, state *State, L2GenesisEcotoneTimeOffset: op_service.U64UtilPtr(0), L2GenesisFjordTimeOffset: op_service.U64UtilPtr(0), L2GenesisGraniteTimeOffset: op_service.U64UtilPtr(0), + L2GenesisHoloceneTimeOffset: op_service.U64UtilPtr(0), UseInterop: intent.UseInterop, }, L2CoreDeployConfig: genesis.L2CoreDeployConfig{ From 0acca36dfa9a3440b430e59fda19b6004d4d4956 Mon Sep 17 00:00:00 2001 From: Matthew Slipper Date: Wed, 15 Jan 2025 17:17:27 -0600 Subject: [PATCH 2/3] op-deployer: Fix holocene L2 genesis deployment --- op-deployer/pkg/deployer/opcm/l2genesis.go | 16 ++++++++++++---- op-deployer/pkg/deployer/pipeline/l2genesis.go | 9 ++++++++- 2 files changed, 20 insertions(+), 5 deletions(-) diff --git a/op-deployer/pkg/deployer/opcm/l2genesis.go b/op-deployer/pkg/deployer/opcm/l2genesis.go index 086e5fb099a9..8c2dfb08a664 100644 --- a/op-deployer/pkg/deployer/opcm/l2genesis.go +++ b/op-deployer/pkg/deployer/opcm/l2genesis.go @@ -21,8 +21,9 @@ type L1Deployments struct { } type L2GenesisInput struct { - L1Deployments L1Deployments - L2Config genesis.L2InitializationConfig + L1Deployments L1Deployments + L2Config genesis.L2InitializationConfig + OverrideAllocsMode string } type L2GenesisScript struct { @@ -33,8 +34,15 @@ func L2Genesis(l2Host *script.Host, input *L2GenesisInput) error { l2Host.SetEnvVar("L2GENESIS_L1CrossDomainMessengerProxy", input.L1Deployments.L1CrossDomainMessengerProxy.String()) l2Host.SetEnvVar("L2GENESIS_L1StandardBridgeProxy", input.L1Deployments.L1StandardBridgeProxy.String()) l2Host.SetEnvVar("L2GENESIS_L1ERC721BridgeProxy", input.L1Deployments.L1ERC721BridgeProxy.String()) - allocsMode := input.L2Config.UpgradeScheduleDeployConfig.AllocMode(uint64(time.Now().Unix())) - l2Host.SetEnvVar("FORK", string(allocsMode)) + + var allocsMode string + if input.OverrideAllocsMode == "" { + allocsMode = string(input.L2Config.UpgradeScheduleDeployConfig.AllocMode(uint64(time.Now().Unix()))) + } else { + allocsMode = input.OverrideAllocsMode + } + + l2Host.SetEnvVar("FORK", allocsMode) deployConfig := &genesis.DeployConfig{ L2InitializationConfig: input.L2Config, diff --git a/op-deployer/pkg/deployer/pipeline/l2genesis.go b/op-deployer/pkg/deployer/pipeline/l2genesis.go index 945cb5af8ff0..5d66f1dfd8ac 100644 --- a/op-deployer/pkg/deployer/pipeline/l2genesis.go +++ b/op-deployer/pkg/deployer/pipeline/l2genesis.go @@ -2,6 +2,7 @@ package pipeline import ( "fmt" + "github.com/ethereum-optimism/optimism/op-deployer/pkg/deployer/standard" "github.com/ethereum-optimism/optimism/op-deployer/pkg/env" @@ -48,13 +49,19 @@ func GenerateL2Genesis(pEnv *Env, intent *state.Intent, bundle ArtifactsBundle, return fmt.Errorf("failed to create L2 script host: %w", err) } + var overrideAllocsMode string + if intent.L2ContractsLocator.IsTag() && intent.L2ContractsLocator.Tag == standard.ContractsV170Beta1L2Tag { + overrideAllocsMode = "granite" + } + if err := opcm.L2Genesis(host, &opcm.L2GenesisInput{ L1Deployments: opcm.L1Deployments{ L1CrossDomainMessengerProxy: thisChainState.L1CrossDomainMessengerProxyAddress, L1StandardBridgeProxy: thisChainState.L1StandardBridgeProxyAddress, L1ERC721BridgeProxy: thisChainState.L1ERC721BridgeProxyAddress, }, - L2Config: initCfg.L2InitializationConfig, + L2Config: initCfg.L2InitializationConfig, + OverrideAllocsMode: overrideAllocsMode, }); err != nil { return fmt.Errorf("failed to call L2Genesis script: %w", err) } From 39305752eee2b1ca49e34d4d57e3268caf19704b Mon Sep 17 00:00:00 2001 From: Matthew Slipper Date: Wed, 15 Jan 2025 17:22:31 -0600 Subject: [PATCH 3/3] Add comment --- op-deployer/pkg/deployer/pipeline/l2genesis.go | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/op-deployer/pkg/deployer/pipeline/l2genesis.go b/op-deployer/pkg/deployer/pipeline/l2genesis.go index 5d66f1dfd8ac..28884e411f24 100644 --- a/op-deployer/pkg/deployer/pipeline/l2genesis.go +++ b/op-deployer/pkg/deployer/pipeline/l2genesis.go @@ -49,6 +49,10 @@ func GenerateL2Genesis(pEnv *Env, intent *state.Intent, bundle ArtifactsBundle, return fmt.Errorf("failed to create L2 script host: %w", err) } + // This is an ugly hack to support holocene. The v1.7.0 predeploy contracts do not support setting the allocs + // mode as Holocene, even though there are no predeploy changes in Holocene. The v1.7.0 changes are the "official" + // release of the predeploy contracts, so we need to set the allocs mode to "granite" to avoid having to backport + // Holocene support into the predeploy contracts. var overrideAllocsMode string if intent.L2ContractsLocator.IsTag() && intent.L2ContractsLocator.Tag == standard.ContractsV170Beta1L2Tag { overrideAllocsMode = "granite"