From 0760f5096096beccab46dc86805e2841df34a435 Mon Sep 17 00:00:00 2001 From: Blaine Malone Date: Tue, 24 Sep 2024 14:36:38 -0400 Subject: [PATCH] rename: OPStackManafer -> OPContractsManager --- op-chain-ops/Makefile | 2 +- .../deployer/integration_test/apply_test.go | 2 +- .../{opsm => opcm}/implementations.go | 16 +- .../deployer/{opsm => opcm}/l2genesis.go | 2 +- .../deployer/{opsm => opcm}/opchain.go | 4 +- .../{opsm => opcm}/standard-versions.toml | 0 .../deployer/{opsm => opcm}/standard.go | 2 +- .../deployer/{opsm => opcm}/superchain.go | 2 +- .../deployer/pipeline/implementations.go | 12 +- op-chain-ops/deployer/pipeline/l2genesis.go | 6 +- op-chain-ops/deployer/pipeline/opchain.go | 10 +- op-chain-ops/deployer/pipeline/superchain.go | 8 +- op-chain-ops/deployer/state/state.go | 2 +- op-chain-ops/interopgen/configs.go | 4 +- op-chain-ops/interopgen/deploy.go | 17 +- op-chain-ops/interopgen/deployments.go | 4 +- op-chain-ops/interopgen/recipe.go | 6 +- .../scripts/DeployImplementations.s.sol | 204 +++++++++--------- .../scripts/DeployOPChain.s.sol | 38 ++-- .../scripts/DeploySuperchain.s.sol | 2 +- packages/contracts-bedrock/semver-lock.json | 4 +- ...ckManager.json => OPContractsManager.json} | 16 +- ...op.json => OPContractsManagerInterop.json} | 16 +- ...ckManager.json => OPContractsManager.json} | 4 +- ...op.json => OPContractsManagerInterop.json} | 4 +- ...tackManager.sol => OPContractsManager.sol} | 8 +- ...erop.sol => OPContractsManagerInterop.sol} | 6 +- .../test/DeployImplementations.t.sol | 18 +- .../test/DeployOPChain.t.sol | 22 +- ...Manager.t.sol => OPContractsManager.t.sol} | 48 ++--- packages/contracts-bedrock/test/Specs.t.sol | 48 ++--- .../test/vendor/Initializable.t.sol | 4 +- 32 files changed, 275 insertions(+), 266 deletions(-) rename op-chain-ops/deployer/{opsm => opcm}/implementations.go (88%) rename op-chain-ops/deployer/{opsm => opcm}/l2genesis.go (99%) rename op-chain-ops/deployer/{opsm => opcm}/opchain.go (98%) rename op-chain-ops/deployer/{opsm => opcm}/standard-versions.toml (100%) rename op-chain-ops/deployer/{opsm => opcm}/standard.go (88%) rename op-chain-ops/deployer/{opsm => opcm}/superchain.go (99%) rename packages/contracts-bedrock/snapshots/abi/{OPStackManager.json => OPContractsManager.json} (95%) rename packages/contracts-bedrock/snapshots/abi/{OPStackManagerInterop.json => OPContractsManagerInterop.json} (95%) rename packages/contracts-bedrock/snapshots/storageLayout/{OPStackManager.json => OPContractsManager.json} (84%) rename packages/contracts-bedrock/snapshots/storageLayout/{OPStackManagerInterop.json => OPContractsManagerInterop.json} (84%) rename packages/contracts-bedrock/src/L1/{OPStackManager.sol => OPContractsManager.sol} (98%) rename packages/contracts-bedrock/src/L1/{OPStackManagerInterop.sol => OPContractsManagerInterop.sol} (91%) rename packages/contracts-bedrock/test/L1/{OPStackManager.t.sol => OPContractsManager.t.sol} (71%) diff --git a/op-chain-ops/Makefile b/op-chain-ops/Makefile index 262a989bc4658..fd3cc9ad67b34 100644 --- a/op-chain-ops/Makefile +++ b/op-chain-ops/Makefile @@ -46,6 +46,6 @@ fuzz: sync-standard-version: - curl -Lo ./deployer/opsm/standard-versions.toml https://raw.githubusercontent.com/ethereum-optimism/superchain-registry/refs/heads/main/validation/standard/standard-versions.toml + curl -Lo ./deployer/opcm/standard-versions.toml https://raw.githubusercontent.com/ethereum-optimism/superchain-registry/refs/heads/main/validation/standard/standard-versions.toml .PHONY: test fuzz op-deployer sync-standard-version \ No newline at end of file diff --git a/op-chain-ops/deployer/integration_test/apply_test.go b/op-chain-ops/deployer/integration_test/apply_test.go index f3bcd5b3e4bd1..4399e0b887d34 100644 --- a/op-chain-ops/deployer/integration_test/apply_test.go +++ b/op-chain-ops/deployer/integration_test/apply_test.go @@ -151,7 +151,7 @@ func TestEndToEndApply(t *testing.T) { {"SuperchainConfigImpl", st.SuperchainDeployment.SuperchainConfigImplAddress}, {"ProtocolVersionsProxy", st.SuperchainDeployment.ProtocolVersionsProxyAddress}, {"ProtocolVersionsImpl", st.SuperchainDeployment.ProtocolVersionsImplAddress}, - {"OpsmProxy", st.ImplementationsDeployment.OpsmProxyAddress}, + {"OpcmProxy", st.ImplementationsDeployment.OpcmProxyAddress}, {"DelayedWETHImpl", st.ImplementationsDeployment.DelayedWETHImplAddress}, {"OptimismPortalImpl", st.ImplementationsDeployment.OptimismPortalImplAddress}, {"PreimageOracleSingleton", st.ImplementationsDeployment.PreimageOracleSingletonAddress}, diff --git a/op-chain-ops/deployer/opsm/implementations.go b/op-chain-ops/deployer/opcm/implementations.go similarity index 88% rename from op-chain-ops/deployer/opsm/implementations.go rename to op-chain-ops/deployer/opcm/implementations.go index d60330440abca..fec30d94cbd55 100644 --- a/op-chain-ops/deployer/opsm/implementations.go +++ b/op-chain-ops/deployer/opcm/implementations.go @@ -1,4 +1,4 @@ -package opsm +package opcm import ( "fmt" @@ -16,7 +16,7 @@ type DeployImplementationsInput struct { ChallengePeriodSeconds *big.Int ProofMaturityDelaySeconds *big.Int DisputeGameFinalityDelaySeconds *big.Int - // Release version to set OPSM implementations for, of the format `op-contracts/vX.Y.Z`. + // Release version to set OPCM implementations for, of the format `op-contracts/vX.Y.Z`. Release string SuperchainConfigProxy common.Address ProtocolVersionsProxy common.Address @@ -31,8 +31,8 @@ func (input *DeployImplementationsInput) InputSet() bool { } type DeployImplementationsOutput struct { - OpsmProxy common.Address - OpsmImpl common.Address + OpcmProxy common.Address + OpcmImpl common.Address DelayedWETHImpl common.Address OptimismPortalImpl common.Address PreimageOracleSingleton common.Address @@ -84,12 +84,12 @@ func DeployImplementations( } defer cleanupDeploy() - opsmContract := "OPStackManager" + opcmContract := "OPContractsManager" if input.UseInterop { - opsmContract = "OPStackManagerInterop" + opcmContract = "OPContractsManagerInterop" } - if err := host.RememberOnLabel("OPStackManager", opsmContract+".sol", opsmContract); err != nil { - return output, fmt.Errorf("failed to link OPStackManager label: %w", err) + if err := host.RememberOnLabel("OPContractsManager", opcmContract+".sol", opcmContract); err != nil { + return output, fmt.Errorf("failed to link OPContractsManager label: %w", err) } // So we can see in detail where the SystemConfig interop initializer fails diff --git a/op-chain-ops/deployer/opsm/l2genesis.go b/op-chain-ops/deployer/opcm/l2genesis.go similarity index 99% rename from op-chain-ops/deployer/opsm/l2genesis.go rename to op-chain-ops/deployer/opcm/l2genesis.go index 3567df71858f7..8b6e123dad3fc 100644 --- a/op-chain-ops/deployer/opsm/l2genesis.go +++ b/op-chain-ops/deployer/opcm/l2genesis.go @@ -1,4 +1,4 @@ -package opsm +package opcm import ( "fmt" diff --git a/op-chain-ops/deployer/opsm/opchain.go b/op-chain-ops/deployer/opcm/opchain.go similarity index 98% rename from op-chain-ops/deployer/opsm/opchain.go rename to op-chain-ops/deployer/opcm/opchain.go index d600f200dcf12..d9685182b6e13 100644 --- a/op-chain-ops/deployer/opsm/opchain.go +++ b/op-chain-ops/deployer/opcm/opchain.go @@ -1,4 +1,4 @@ -package opsm +package opcm import ( "fmt" @@ -26,7 +26,7 @@ type DeployOPChainInput struct { BasefeeScalar uint32 BlobBaseFeeScalar uint32 L2ChainId *big.Int - OpsmProxy common.Address + OpcmProxy common.Address } func (input *DeployOPChainInput) InputSet() bool { diff --git a/op-chain-ops/deployer/opsm/standard-versions.toml b/op-chain-ops/deployer/opcm/standard-versions.toml similarity index 100% rename from op-chain-ops/deployer/opsm/standard-versions.toml rename to op-chain-ops/deployer/opcm/standard-versions.toml diff --git a/op-chain-ops/deployer/opsm/standard.go b/op-chain-ops/deployer/opcm/standard.go similarity index 88% rename from op-chain-ops/deployer/opsm/standard.go rename to op-chain-ops/deployer/opcm/standard.go index 56f0d7ada37b7..9f182ca4685c9 100644 --- a/op-chain-ops/deployer/opsm/standard.go +++ b/op-chain-ops/deployer/opcm/standard.go @@ -1,4 +1,4 @@ -package opsm +package opcm import "embed" diff --git a/op-chain-ops/deployer/opsm/superchain.go b/op-chain-ops/deployer/opcm/superchain.go similarity index 99% rename from op-chain-ops/deployer/opsm/superchain.go rename to op-chain-ops/deployer/opcm/superchain.go index d27f854990215..34804cc2bbdf8 100644 --- a/op-chain-ops/deployer/opsm/superchain.go +++ b/op-chain-ops/deployer/opcm/superchain.go @@ -1,4 +1,4 @@ -package opsm +package opcm import ( "fmt" diff --git a/op-chain-ops/deployer/pipeline/implementations.go b/op-chain-ops/deployer/pipeline/implementations.go index 0dcda8feea192..5c5a1e99287cc 100644 --- a/op-chain-ops/deployer/pipeline/implementations.go +++ b/op-chain-ops/deployer/pipeline/implementations.go @@ -5,7 +5,7 @@ import ( "fmt" "math/big" - "github.com/ethereum-optimism/optimism/op-chain-ops/deployer/opsm" + "github.com/ethereum-optimism/optimism/op-chain-ops/deployer/opcm" "github.com/ethereum-optimism/optimism/op-chain-ops/deployer/state" "github.com/ethereum-optimism/optimism/op-chain-ops/foundry" "github.com/ethereum-optimism/optimism/op-chain-ops/script" @@ -22,7 +22,7 @@ func DeployImplementations(ctx context.Context, env *Env, artifactsFS foundry.St lgr.Info("deploying implementations") var dump *foundry.ForgeAllocs - var dio opsm.DeployImplementationsOutput + var dio opcm.DeployImplementationsOutput var err error err = CallScriptBroadcast( ctx, @@ -37,9 +37,9 @@ func DeployImplementations(ctx context.Context, env *Env, artifactsFS foundry.St Handler: func(host *script.Host) error { host.SetEnvVar("IMPL_SALT", st.Create2Salt.Hex()[2:]) host.ImportState(st.SuperchainDeployment.StateDump) - dio, err = opsm.DeployImplementations( + dio, err = opcm.DeployImplementations( host, - opsm.DeployImplementationsInput{ + opcm.DeployImplementationsInput{ Salt: st.Create2Salt, WithdrawalDelaySeconds: big.NewInt(604800), MinProposalSizeBytes: big.NewInt(126000), @@ -50,7 +50,7 @@ func DeployImplementations(ctx context.Context, env *Env, artifactsFS foundry.St SuperchainConfigProxy: st.SuperchainDeployment.SuperchainConfigProxyAddress, ProtocolVersionsProxy: st.SuperchainDeployment.ProtocolVersionsProxyAddress, SuperchainProxyAdmin: st.SuperchainDeployment.ProxyAdminAddress, - StandardVersionsToml: opsm.StandardVersionsData, + StandardVersionsToml: opcm.StandardVersionsData, UseInterop: false, }, ) @@ -70,7 +70,7 @@ func DeployImplementations(ctx context.Context, env *Env, artifactsFS foundry.St } st.ImplementationsDeployment = &state.ImplementationsDeployment{ - OpsmProxyAddress: dio.OpsmProxy, + OpcmProxyAddress: dio.OpcmProxy, DelayedWETHImplAddress: dio.DelayedWETHImpl, OptimismPortalImplAddress: dio.OptimismPortalImpl, PreimageOracleSingletonAddress: dio.PreimageOracleSingleton, diff --git a/op-chain-ops/deployer/pipeline/l2genesis.go b/op-chain-ops/deployer/pipeline/l2genesis.go index f74c6e8336209..25aa316c78a50 100644 --- a/op-chain-ops/deployer/pipeline/l2genesis.go +++ b/op-chain-ops/deployer/pipeline/l2genesis.go @@ -8,7 +8,7 @@ import ( "fmt" "math/big" - "github.com/ethereum-optimism/optimism/op-chain-ops/deployer/opsm" + "github.com/ethereum-optimism/optimism/op-chain-ops/deployer/opcm" "github.com/ethereum-optimism/optimism/op-chain-ops/deployer/state" "github.com/ethereum-optimism/optimism/op-chain-ops/foundry" "github.com/ethereum-optimism/optimism/op-chain-ops/script" @@ -47,8 +47,8 @@ func GenerateL2Genesis(ctx context.Context, env *Env, artifactsFS foundry.StatDi Client: env.L1Client, Broadcaster: DiscardBroadcaster, Handler: func(host *script.Host) error { - err := opsm.L2Genesis(host, &opsm.L2GenesisInput{ - L1Deployments: opsm.L1Deployments{ + err := opcm.L2Genesis(host, &opcm.L2GenesisInput{ + L1Deployments: opcm.L1Deployments{ L1CrossDomainMessengerProxy: thisChainState.L1CrossDomainMessengerProxyAddress, L1StandardBridgeProxy: thisChainState.L1StandardBridgeProxyAddress, L1ERC721BridgeProxy: thisChainState.L1ERC721BridgeProxyAddress, diff --git a/op-chain-ops/deployer/pipeline/opchain.go b/op-chain-ops/deployer/pipeline/opchain.go index 90d03b0281429..1ae37970d7d13 100644 --- a/op-chain-ops/deployer/pipeline/opchain.go +++ b/op-chain-ops/deployer/pipeline/opchain.go @@ -5,7 +5,7 @@ import ( "fmt" "math/big" - "github.com/ethereum-optimism/optimism/op-chain-ops/deployer/opsm" + "github.com/ethereum-optimism/optimism/op-chain-ops/deployer/opcm" "github.com/ethereum-optimism/optimism/op-chain-ops/deployer/state" "github.com/ethereum-optimism/optimism/op-chain-ops/foundry" "github.com/ethereum-optimism/optimism/op-chain-ops/script" @@ -27,7 +27,7 @@ func DeployOPChain(ctx context.Context, env *Env, artifactsFS foundry.StatDirFs, return fmt.Errorf("failed to get chain intent: %w", err) } - var dco opsm.DeployOPChainOutput + var dco opcm.DeployOPChainOutput err = CallScriptBroadcast( ctx, CallScriptBroadcastOpts{ @@ -40,9 +40,9 @@ func DeployOPChain(ctx context.Context, env *Env, artifactsFS foundry.StatDirFs, Broadcaster: KeyedBroadcaster, Handler: func(host *script.Host) error { host.ImportState(st.ImplementationsDeployment.StateDump) - dco, err = opsm.DeployOPChain( + dco, err = opcm.DeployOPChain( host, - opsm.DeployOPChainInput{ + opcm.DeployOPChainInput{ OpChainProxyAdminOwner: thisIntent.Roles.ProxyAdminOwner, SystemConfigOwner: thisIntent.Roles.SystemConfigOwner, Batcher: thisIntent.Roles.Batcher, @@ -52,7 +52,7 @@ func DeployOPChain(ctx context.Context, env *Env, artifactsFS foundry.StatDirFs, BasefeeScalar: 1368, BlobBaseFeeScalar: 801949, L2ChainId: chainID.Big(), - OpsmProxy: st.ImplementationsDeployment.OpsmProxyAddress, + OpcmProxy: st.ImplementationsDeployment.OpcmProxyAddress, }, ) return err diff --git a/op-chain-ops/deployer/pipeline/superchain.go b/op-chain-ops/deployer/pipeline/superchain.go index 21aeda0e23dc6..cc1b8d04160c9 100644 --- a/op-chain-ops/deployer/pipeline/superchain.go +++ b/op-chain-ops/deployer/pipeline/superchain.go @@ -7,7 +7,7 @@ import ( "github.com/ethereum-optimism/optimism/op-chain-ops/script" - "github.com/ethereum-optimism/optimism/op-chain-ops/deployer/opsm" + "github.com/ethereum-optimism/optimism/op-chain-ops/deployer/opcm" "github.com/ethereum-optimism/optimism/op-chain-ops/deployer/state" "github.com/ethereum-optimism/optimism/op-chain-ops/foundry" "github.com/ethereum-optimism/optimism/op-node/rollup" @@ -24,7 +24,7 @@ func DeploySuperchain(ctx context.Context, env *Env, artifactsFS foundry.StatDir lgr.Info("deploying superchain") var dump *foundry.ForgeAllocs - var dso opsm.DeploySuperchainOutput + var dso opcm.DeploySuperchainOutput var err error err = CallScriptBroadcast( ctx, @@ -37,9 +37,9 @@ func DeploySuperchain(ctx context.Context, env *Env, artifactsFS foundry.StatDir Client: env.L1Client, Broadcaster: KeyedBroadcaster, Handler: func(host *script.Host) error { - dso, err = opsm.DeploySuperchain( + dso, err = opcm.DeploySuperchain( host, - opsm.DeploySuperchainInput{ + opcm.DeploySuperchainInput{ ProxyAdminOwner: intent.SuperchainRoles.ProxyAdminOwner, ProtocolVersionsOwner: intent.SuperchainRoles.ProtocolVersionsOwner, Guardian: intent.SuperchainRoles.Guardian, diff --git a/op-chain-ops/deployer/state/state.go b/op-chain-ops/deployer/state/state.go index 098fa7a731d74..674e06d743a0e 100644 --- a/op-chain-ops/deployer/state/state.go +++ b/op-chain-ops/deployer/state/state.go @@ -65,7 +65,7 @@ type SuperchainDeployment struct { } type ImplementationsDeployment struct { - OpsmProxyAddress common.Address `json:"opsmProxyAddress"` + OpcmProxyAddress common.Address `json:"opcmProxyAddress"` DelayedWETHImplAddress common.Address `json:"delayedWETHImplAddress"` OptimismPortalImplAddress common.Address `json:"optimismPortalImplAddress"` PreimageOracleSingletonAddress common.Address `json:"preimageOracleSingletonAddress"` diff --git a/op-chain-ops/interopgen/configs.go b/op-chain-ops/interopgen/configs.go index 9abe9880fe8be..f40d29904c2f5 100644 --- a/op-chain-ops/interopgen/configs.go +++ b/op-chain-ops/interopgen/configs.go @@ -33,7 +33,7 @@ type SuperFaultProofConfig struct { DisputeGameFinalityDelaySeconds *big.Int } -type OPSMImplementationsConfig struct { +type OPCMImplementationsConfig struct { Release string FaultProof SuperFaultProofConfig @@ -51,7 +51,7 @@ type SuperchainConfig struct { Paused bool - Implementations OPSMImplementationsConfig + Implementations OPCMImplementationsConfig genesis.SuperchainL1DeployConfig } diff --git a/op-chain-ops/interopgen/deploy.go b/op-chain-ops/interopgen/deploy.go index 9da41e9894d83..692a80d3225e0 100644 --- a/op-chain-ops/interopgen/deploy.go +++ b/op-chain-ops/interopgen/deploy.go @@ -5,13 +5,12 @@ import ( "fmt" "math/big" - "github.com/ethereum-optimism/optimism/op-chain-ops/deployer/opsm" - "github.com/ethereum/go-ethereum/common" "github.com/ethereum/go-ethereum/core/types" "github.com/ethereum/go-ethereum/crypto" "github.com/ethereum/go-ethereum/log" + "github.com/ethereum-optimism/optimism/op-chain-ops/deployer/opcm" "github.com/ethereum-optimism/optimism/op-chain-ops/foundry" "github.com/ethereum-optimism/optimism/op-chain-ops/genesis" "github.com/ethereum-optimism/optimism/op-chain-ops/genesis/beacondeposit" @@ -149,7 +148,7 @@ func prepareInitialL1(l1Host *script.Host, cfg *L1Config) (*L1Deployment, error) func deploySuperchainToL1(l1Host *script.Host, superCfg *SuperchainConfig) (*SuperchainDeployment, error) { l1Host.SetTxOrigin(superCfg.Deployer) - superDeployment, err := opsm.DeploySuperchain(l1Host, opsm.DeploySuperchainInput{ + superDeployment, err := opcm.DeploySuperchain(l1Host, opcm.DeploySuperchainInput{ ProxyAdminOwner: superCfg.ProxyAdminOwner, ProtocolVersionsOwner: superCfg.ProtocolVersionsOwner, Guardian: superCfg.SuperchainConfigGuardian, @@ -161,7 +160,7 @@ func deploySuperchainToL1(l1Host *script.Host, superCfg *SuperchainConfig) (*Sup return nil, fmt.Errorf("failed to deploy Superchain contracts: %w", err) } - implementationsDeployment, err := opsm.DeployImplementations(l1Host, opsm.DeployImplementationsInput{ + implementationsDeployment, err := opcm.DeployImplementations(l1Host, opcm.DeployImplementationsInput{ WithdrawalDelaySeconds: superCfg.Implementations.FaultProof.WithdrawalDelaySeconds, MinProposalSizeBytes: superCfg.Implementations.FaultProof.MinProposalSizeBytes, ChallengePeriodSeconds: superCfg.Implementations.FaultProof.ChallengePeriodSeconds, @@ -172,7 +171,7 @@ func deploySuperchainToL1(l1Host *script.Host, superCfg *SuperchainConfig) (*Sup ProtocolVersionsProxy: superDeployment.ProtocolVersionsProxy, SuperchainProxyAdmin: superDeployment.SuperchainProxyAdmin, UseInterop: superCfg.Implementations.UseInterop, - StandardVersionsToml: opsm.StandardVersionsData, + StandardVersionsToml: opcm.StandardVersionsData, }) if err != nil { return nil, fmt.Errorf("failed to deploy Implementations contracts: %w", err) @@ -197,7 +196,7 @@ func deployL2ToL1(l1Host *script.Host, superCfg *SuperchainConfig, superDeployme l1Host.SetTxOrigin(cfg.Deployer) - output, err := opsm.DeployOPChain(l1Host, opsm.DeployOPChainInput{ + output, err := opcm.DeployOPChain(l1Host, opcm.DeployOPChainInput{ OpChainProxyAdminOwner: cfg.ProxyAdminOwner, SystemConfigOwner: cfg.SystemConfigOwner, Batcher: cfg.BatchSenderAddress, @@ -207,7 +206,7 @@ func deployL2ToL1(l1Host *script.Host, superCfg *SuperchainConfig, superDeployme BasefeeScalar: cfg.GasPriceOracleBaseFeeScalar, BlobBaseFeeScalar: cfg.GasPriceOracleBlobBaseFeeScalar, L2ChainId: new(big.Int).SetUint64(cfg.L2ChainID), - OpsmProxy: superDeployment.OpsmProxy, + OpcmProxy: superDeployment.OpcmProxy, }) if err != nil { return nil, fmt.Errorf("failed to deploy L2 OP chain: %w", err) @@ -220,8 +219,8 @@ func deployL2ToL1(l1Host *script.Host, superCfg *SuperchainConfig, superDeployme } func genesisL2(l2Host *script.Host, cfg *L2Config, deployment *L2Deployment) error { - if err := opsm.L2Genesis(l2Host, &opsm.L2GenesisInput{ - L1Deployments: opsm.L1Deployments{ + if err := opcm.L2Genesis(l2Host, &opcm.L2GenesisInput{ + L1Deployments: opcm.L1Deployments{ L1CrossDomainMessengerProxy: deployment.L1CrossDomainMessengerProxy, L1StandardBridgeProxy: deployment.L1StandardBridgeProxy, L1ERC721BridgeProxy: deployment.L1ERC721BridgeProxy, diff --git a/op-chain-ops/interopgen/deployments.go b/op-chain-ops/interopgen/deployments.go index b6bb124d8e85d..ba18fbfdf9bde 100644 --- a/op-chain-ops/interopgen/deployments.go +++ b/op-chain-ops/interopgen/deployments.go @@ -9,8 +9,8 @@ type L1Deployment struct { } type Implementations struct { - OpsmProxy common.Address `json:"OPSMProxy"` - OpsmImpl common.Address `json:"OPSMImpl"` + OpcmProxy common.Address `json:"OPCMProxy"` + OpcmImpl common.Address `json:"OPCMImpl"` DelayedWETHImpl common.Address `json:"DelayedWETHImpl"` OptimismPortalImpl common.Address `json:"OptimismPortalImpl"` PreimageOracleSingleton common.Address `json:"PreimageOracleSingleton"` diff --git a/op-chain-ops/interopgen/recipe.go b/op-chain-ops/interopgen/recipe.go index 4dbe58e4ca1f0..eea42b87e0a47 100644 --- a/op-chain-ops/interopgen/recipe.go +++ b/op-chain-ops/interopgen/recipe.go @@ -8,7 +8,7 @@ import ( "github.com/ethereum/go-ethereum/common/hexutil" "github.com/ethereum/go-ethereum/params" - "github.com/ethereum-optimism/optimism/op-chain-ops/deployer/opsm" + "github.com/ethereum-optimism/optimism/op-chain-ops/deployer/opcm" "github.com/ethereum-optimism/optimism/op-chain-ops/devkeys" "github.com/ethereum-optimism/optimism/op-chain-ops/genesis" ) @@ -67,7 +67,7 @@ func (r *InteropDevRecipe) Build(addrs devkeys.Addresses) (*WorldConfig, error) ProxyAdminOwner: superchainProxyAdmin, ProtocolVersionsOwner: superchainProtocolVersionsOwner, Deployer: superchainDeployer, - Implementations: OPSMImplementationsConfig{ + Implementations: OPCMImplementationsConfig{ Release: "dev", FaultProof: SuperFaultProofConfig{ WithdrawalDelaySeconds: big.NewInt(604800), @@ -77,7 +77,7 @@ func (r *InteropDevRecipe) Build(addrs devkeys.Addresses) (*WorldConfig, error) DisputeGameFinalityDelaySeconds: big.NewInt(6), }, UseInterop: true, - StandardVersionsToml: opsm.StandardVersionsData, + StandardVersionsToml: opcm.StandardVersionsData, }, SuperchainL1DeployConfig: genesis.SuperchainL1DeployConfig{ RequiredProtocolVersion: params.OPStackSupport, diff --git a/packages/contracts-bedrock/scripts/DeployImplementations.s.sol b/packages/contracts-bedrock/scripts/DeployImplementations.s.sol index df950fed71f27..bdebf297c3f61 100644 --- a/packages/contracts-bedrock/scripts/DeployImplementations.s.sol +++ b/packages/contracts-bedrock/scripts/DeployImplementations.s.sol @@ -28,7 +28,7 @@ import { PermissionedDisputeGame } from "src/dispute/PermissionedDisputeGame.sol import { SuperchainConfig } from "src/L1/SuperchainConfig.sol"; import { ProtocolVersions } from "src/L1/ProtocolVersions.sol"; -import { OPStackManager } from "src/L1/OPStackManager.sol"; +import { OPContractsManager } from "src/L1/OPContractsManager.sol"; import { OptimismPortal2 } from "src/L1/OptimismPortal2.sol"; import { SystemConfig } from "src/L1/SystemConfig.sol"; import { L1CrossDomainMessenger } from "src/L1/L1CrossDomainMessenger.sol"; @@ -36,7 +36,7 @@ import { L1ERC721Bridge } from "src/L1/L1ERC721Bridge.sol"; import { L1StandardBridge } from "src/L1/L1StandardBridge.sol"; import { OptimismMintableERC20Factory } from "src/universal/OptimismMintableERC20Factory.sol"; -import { OPStackManagerInterop } from "src/L1/OPStackManagerInterop.sol"; +import { OPContractsManagerInterop } from "src/L1/OPContractsManagerInterop.sol"; import { OptimismPortalInterop } from "src/L1/OptimismPortalInterop.sol"; import { SystemConfigInterop } from "src/L1/SystemConfigInterop.sol"; @@ -55,7 +55,7 @@ contract DeployImplementationsInput is BaseDeployIO { uint256 internal _proofMaturityDelaySeconds; uint256 internal _disputeGameFinalityDelaySeconds; - // The release version to set OPSM implementations for, of the format `op-contracts/vX.Y.Z`. + // The release version to set OPCM implementations for, of the format `op-contracts/vX.Y.Z`. string internal _release; // Outputs from DeploySuperchain.s.sol. @@ -166,8 +166,8 @@ contract DeployImplementationsInput is BaseDeployIO { } contract DeployImplementationsOutput is BaseDeployIO { - OPStackManager internal _opsmProxy; - OPStackManager internal _opsmImpl; + OPContractsManager internal _opcmProxy; + OPContractsManager internal _opcmImpl; DelayedWETH internal _delayedWETHImpl; OptimismPortal2 internal _optimismPortalImpl; PreimageOracle internal _preimageOracleSingleton; @@ -183,8 +183,8 @@ contract DeployImplementationsOutput is BaseDeployIO { require(_addr != address(0), "DeployImplementationsOutput: cannot set zero address"); // forgefmt: disable-start - if (sel == this.opsmProxy.selector) _opsmProxy = OPStackManager(payable(_addr)); - else if (sel == this.opsmImpl.selector) _opsmImpl = OPStackManager(payable(_addr)); + if (sel == this.opcmProxy.selector) _opcmProxy = OPContractsManager(payable(_addr)); + else if (sel == this.opcmImpl.selector) _opcmImpl = OPContractsManager(payable(_addr)); else if (sel == this.optimismPortalImpl.selector) _optimismPortalImpl = OptimismPortal2(payable(_addr)); else if (sel == this.delayedWETHImpl.selector) _delayedWETHImpl = DelayedWETH(payable(_addr)); else if (sel == this.preimageOracleSingleton.selector) _preimageOracleSingleton = PreimageOracle(_addr); @@ -203,8 +203,8 @@ contract DeployImplementationsOutput is BaseDeployIO { // With 12 addresses, we'd get a stack too deep error if we tried to do this inline as a // single call to `Solarray.addresses`. So we split it into two calls. address[] memory addrs1 = Solarray.addresses( - address(this.opsmProxy()), - address(this.opsmImpl()), + address(this.opcmProxy()), + address(this.opcmImpl()), address(this.optimismPortalImpl()), address(this.delayedWETHImpl()), address(this.preimageOracleSingleton()), @@ -225,15 +225,15 @@ contract DeployImplementationsOutput is BaseDeployIO { assertValidDeploy(_dii); } - function opsmProxy() public returns (OPStackManager) { - DeployUtils.assertValidContractAddress(address(_opsmProxy)); - DeployUtils.assertImplementationSet(address(_opsmProxy)); - return _opsmProxy; + function opcmProxy() public returns (OPContractsManager) { + DeployUtils.assertValidContractAddress(address(_opcmProxy)); + DeployUtils.assertImplementationSet(address(_opcmProxy)); + return _opcmProxy; } - function opsmImpl() public view returns (OPStackManager) { - DeployUtils.assertValidContractAddress(address(_opsmImpl)); - return _opsmImpl; + function opcmImpl() public view returns (OPContractsManager) { + DeployUtils.assertValidContractAddress(address(_opcmImpl)); + return _opcmImpl; } function optimismPortalImpl() public view returns (OptimismPortal2) { @@ -294,35 +294,35 @@ contract DeployImplementationsOutput is BaseDeployIO { assertValidL1ERC721BridgeImpl(_dii); assertValidL1StandardBridgeImpl(_dii); assertValidMipsSingleton(_dii); - assertValidOpsmProxy(_dii); - assertValidOpsmImpl(_dii); + assertValidOpcmProxy(_dii); + assertValidOpcmImpl(_dii); assertValidOptimismMintableERC20FactoryImpl(_dii); assertValidOptimismPortalImpl(_dii); assertValidPreimageOracleSingleton(_dii); assertValidSystemConfigImpl(_dii); } - function assertValidOpsmProxy(DeployImplementationsInput _dii) internal { + function assertValidOpcmProxy(DeployImplementationsInput _dii) internal { // First we check the proxy as itself. - Proxy proxy = Proxy(payable(address(opsmProxy()))); + Proxy proxy = Proxy(payable(address(opcmProxy()))); vm.prank(address(0)); address admin = proxy.admin(); - require(admin == address(_dii.superchainProxyAdmin()), "OPSMP-10"); + require(admin == address(_dii.superchainProxyAdmin()), "OPCMP-10"); - // Then we check the proxy as OPSM. - DeployUtils.assertInitialized({ _contractAddress: address(opsmProxy()), _slot: 0, _offset: 0 }); - require(address(opsmProxy().superchainConfig()) == address(_dii.superchainConfigProxy()), "OPSMP-20"); - require(address(opsmProxy().protocolVersions()) == address(_dii.protocolVersionsProxy()), "OPSMP-30"); - require(LibString.eq(opsmProxy().latestRelease(), _dii.release()), "OPSMP-50"); // Initial release is latest. + // Then we check the proxy as OPCM. + DeployUtils.assertInitialized({ _contractAddress: address(opcmProxy()), _slot: 0, _offset: 0 }); + require(address(opcmProxy().superchainConfig()) == address(_dii.superchainConfigProxy()), "OPCMP-20"); + require(address(opcmProxy().protocolVersions()) == address(_dii.protocolVersionsProxy()), "OPCMP-30"); + require(LibString.eq(opcmProxy().latestRelease(), _dii.release()), "OPCMP-50"); // Initial release is latest. } - function assertValidOpsmImpl(DeployImplementationsInput _dii) internal { - Proxy proxy = Proxy(payable(address(opsmProxy()))); + function assertValidOpcmImpl(DeployImplementationsInput _dii) internal { + Proxy proxy = Proxy(payable(address(opcmProxy()))); vm.prank(address(0)); - OPStackManager impl = OPStackManager(proxy.implementation()); + OPContractsManager impl = OPContractsManager(proxy.implementation()); DeployUtils.assertInitialized({ _contractAddress: address(impl), _slot: 0, _offset: 0 }); - require(address(impl.superchainConfig()) == address(_dii.superchainConfigProxy()), "OPSMI-10"); - require(address(impl.protocolVersions()) == address(_dii.protocolVersionsProxy()), "OPSMI-20"); + require(address(impl.superchainConfig()) == address(_dii.superchainConfigProxy()), "OPCMI-10"); + require(address(impl.protocolVersions()) == address(_dii.protocolVersionsProxy()), "OPCMI-20"); } function assertValidOptimismPortalImpl(DeployImplementationsInput) internal view { @@ -468,42 +468,42 @@ contract DeployImplementations is Script { deployMipsSingleton(_dii, _dio); deployDisputeGameFactoryImpl(_dii, _dio); - // Deploy the OP Stack Manager with the new implementations set. - deployOPStackManager(_dii, _dio); + // Deploy the OP Contracts Manager with the new implementations set. + deployOPContractsManager(_dii, _dio); _dio.checkOutput(_dii); } // -------- Deployment Steps -------- - // --- OP Stack Manager --- + // --- OP Contracts Manager --- - function opsmSystemConfigSetter( + function opcmSystemConfigSetter( DeployImplementationsInput, DeployImplementationsOutput _dio ) internal view virtual - returns (OPStackManager.ImplementationSetter memory) + returns (OPContractsManager.ImplementationSetter memory) { - return OPStackManager.ImplementationSetter({ + return OPContractsManager.ImplementationSetter({ name: "SystemConfig", - info: OPStackManager.Implementation(address(_dio.systemConfigImpl()), SystemConfig.initialize.selector) + info: OPContractsManager.Implementation(address(_dio.systemConfigImpl()), SystemConfig.initialize.selector) }); } - // Deploy and initialize a proxied OPStackManager. - function createOPSMContract( + // Deploy and initialize a proxied OPContractsManager. + function createOPCMContract( DeployImplementationsInput _dii, DeployImplementationsOutput _dio, - OPStackManager.Blueprints memory _blueprints, + OPContractsManager.Blueprints memory _blueprints, string memory _release, - OPStackManager.ImplementationSetter[] memory _setters + OPContractsManager.ImplementationSetter[] memory _setters ) internal virtual - returns (OPStackManager opsmProxy_) + returns (OPContractsManager opcmProxy_) { ProxyAdmin proxyAdmin = _dii.superchainProxyAdmin(); @@ -511,29 +511,35 @@ contract DeployImplementations is Script { Proxy proxy = new Proxy(address(msg.sender)); deployOPContractsManagerImpl(_dii, _dio); - OPStackManager opsmImpl = _dio.opsmImpl(); + OPContractsManager opcmImpl = _dio.opcmImpl(); - OPStackManager.InitializerInputs memory initializerInputs = - OPStackManager.InitializerInputs(_blueprints, _setters, _release, true); + OPContractsManager.InitializerInputs memory initializerInputs = + OPContractsManager.InitializerInputs(_blueprints, _setters, _release, true); vm.startBroadcast(msg.sender); proxy.upgradeToAndCall( - address(opsmImpl), abi.encodeWithSelector(opsmImpl.initialize.selector, initializerInputs) + address(opcmImpl), abi.encodeWithSelector(opcmImpl.initialize.selector, initializerInputs) ); proxy.changeAdmin(address(proxyAdmin)); // transfer ownership of Proxy contract to the ProxyAdmin contract vm.stopBroadcast(); - opsmProxy_ = OPStackManager(address(proxy)); + opcmProxy_ = OPContractsManager(address(proxy)); } - function deployOPStackManager(DeployImplementationsInput _dii, DeployImplementationsOutput _dio) public virtual { + function deployOPContractsManager( + DeployImplementationsInput _dii, + DeployImplementationsOutput _dio + ) + public + virtual + { string memory release = _dii.release(); - // First we deploy the blueprints for the singletons deployed by OPSM. + // First we deploy the blueprints for the singletons deployed by OPCM. // forgefmt: disable-start bytes32 salt = _dii.salt(); - OPStackManager.Blueprints memory blueprints; + OPContractsManager.Blueprints memory blueprints; vm.startBroadcast(msg.sender); blueprints.addressManager = deployBytecode(Blueprint.blueprintDeployerBytecode(type(AddressManager).creationCode), salt); @@ -546,54 +552,56 @@ contract DeployImplementations is Script { vm.stopBroadcast(); // forgefmt: disable-end - OPStackManager.ImplementationSetter[] memory setters = new OPStackManager.ImplementationSetter[](9); - setters[0] = OPStackManager.ImplementationSetter({ + OPContractsManager.ImplementationSetter[] memory setters = new OPContractsManager.ImplementationSetter[](9); + setters[0] = OPContractsManager.ImplementationSetter({ name: "L1ERC721Bridge", - info: OPStackManager.Implementation(address(_dio.l1ERC721BridgeImpl()), L1ERC721Bridge.initialize.selector) + info: OPContractsManager.Implementation(address(_dio.l1ERC721BridgeImpl()), L1ERC721Bridge.initialize.selector) }); - setters[1] = OPStackManager.ImplementationSetter({ + setters[1] = OPContractsManager.ImplementationSetter({ name: "OptimismPortal", - info: OPStackManager.Implementation(address(_dio.optimismPortalImpl()), OptimismPortal2.initialize.selector) + info: OPContractsManager.Implementation(address(_dio.optimismPortalImpl()), OptimismPortal2.initialize.selector) }); - setters[2] = opsmSystemConfigSetter(_dii, _dio); - setters[3] = OPStackManager.ImplementationSetter({ + setters[2] = opcmSystemConfigSetter(_dii, _dio); + setters[3] = OPContractsManager.ImplementationSetter({ name: "OptimismMintableERC20Factory", - info: OPStackManager.Implementation( + info: OPContractsManager.Implementation( address(_dio.optimismMintableERC20FactoryImpl()), OptimismMintableERC20Factory.initialize.selector ) }); - setters[4] = OPStackManager.ImplementationSetter({ + setters[4] = OPContractsManager.ImplementationSetter({ name: "L1CrossDomainMessenger", - info: OPStackManager.Implementation( + info: OPContractsManager.Implementation( address(_dio.l1CrossDomainMessengerImpl()), L1CrossDomainMessenger.initialize.selector ) }); - setters[5] = OPStackManager.ImplementationSetter({ + setters[5] = OPContractsManager.ImplementationSetter({ name: "L1StandardBridge", - info: OPStackManager.Implementation(address(_dio.l1StandardBridgeImpl()), L1StandardBridge.initialize.selector) + info: OPContractsManager.Implementation( + address(_dio.l1StandardBridgeImpl()), L1StandardBridge.initialize.selector + ) }); - setters[6] = OPStackManager.ImplementationSetter({ + setters[6] = OPContractsManager.ImplementationSetter({ name: "DisputeGameFactory", - info: OPStackManager.Implementation( + info: OPContractsManager.Implementation( address(_dio.disputeGameFactoryImpl()), DisputeGameFactory.initialize.selector ) }); - setters[7] = OPStackManager.ImplementationSetter({ + setters[7] = OPContractsManager.ImplementationSetter({ name: "DelayedWETH", - info: OPStackManager.Implementation(address(_dio.delayedWETHImpl()), DelayedWETH.initialize.selector) + info: OPContractsManager.Implementation(address(_dio.delayedWETHImpl()), DelayedWETH.initialize.selector) }); - setters[8] = OPStackManager.ImplementationSetter({ + setters[8] = OPContractsManager.ImplementationSetter({ name: "MIPS", // MIPS is a singleton for all chains, so it doesn't need to be initialized, so the // selector is just `bytes4(0)`. - info: OPStackManager.Implementation(address(_dio.mipsSingleton()), bytes4(0)) + info: OPContractsManager.Implementation(address(_dio.mipsSingleton()), bytes4(0)) }); - // This call contains a broadcast to deploy OPSM which is proxied. - OPStackManager opsmProxy = createOPSMContract(_dii, _dio, blueprints, release, setters); + // This call contains a broadcast to deploy OPCM which is proxied. + OPContractsManager opcmProxy = createOPCMContract(_dii, _dio, blueprints, release, setters); - vm.label(address(opsmProxy), "OPStackManager"); - _dio.set(_dio.opsmProxy.selector, address(opsmProxy)); + vm.label(address(opcmProxy), "OPContractsManager"); + _dio.set(_dio.opcmProxy.selector, address(opcmProxy)); } // --- Core Contracts --- @@ -736,10 +744,10 @@ contract DeployImplementations is Script { vm.broadcast(msg.sender); // TODO: Eventually we will want to select the correct implementation based on the release. - OPStackManager impl = new OPStackManager(superchainConfigProxy, protocolVersionsProxy); + OPContractsManager impl = new OPContractsManager(superchainConfigProxy, protocolVersionsProxy); - vm.label(address(impl), "OPStackManagerImpl"); - _dio.set(_dio.opsmImpl.selector, address(impl)); + vm.label(address(impl), "OPContractsManagerImpl"); + _dio.set(_dio.opcmImpl.selector, address(impl)); } // --- Fault Proofs Contracts --- @@ -968,7 +976,7 @@ contract DeployImplementations is Script { // architecture, this comment block documents how to update the deploy scripts to support new features. // // Using the base scripts and contracts (DeploySuperchain, DeployImplementations, DeployOPChain, and -// the corresponding OPStackManager) deploys a standard chain. For nonstandard and in-development +// the corresponding OPContractsManager) deploys a standard chain. For nonstandard and in-development // features we need to modify some or all of those contracts, and we do that via inheritance. Using // interop as an example, they've made the following changes to L1 contracts: // - `OptimismPortalInterop is OptimismPortal`: A different portal implementation is used, and @@ -981,32 +989,32 @@ contract DeployImplementations is Script { // Similar to how inheritance was used to develop the new portal and system config contracts, we use // inheritance to modify up to all of the deployer contracts. For this interop example, what this // means is we need: -// - An `OPStackManagerInterop is OPStackManager` that knows how to encode the calldata for the +// - An `OPContractsManagerInterop is OPContractsManager` that knows how to encode the calldata for the // new system config initializer. // - A `DeployImplementationsInterop is DeployImplementations` that: // - Deploys OptimismPortalInterop instead of OptimismPortal. // - Deploys SystemConfigInterop instead of SystemConfig. -// - Deploys OPStackManagerInterop instead of OPStackManager, which contains the updated logic +// - Deploys OPContractsManagerInterop instead of OPContractsManager, which contains the updated logic // for encoding the SystemConfig initializer. -// - Updates the OPSM release setter logic to use the updated initializer. +// - Updates the OPCM release setter logic to use the updated initializer. // - A `DeployOPChainInterop is DeployOPChain` that allows the updated input parameter to be passed. // // Most of the complexity in the above flow comes from the the new input for the updated SystemConfig // initializer. If all function signatures were the same, all we'd have to change is the contract -// implementations that are deployed then set in the OPSM. For now, to simplify things until we +// implementations that are deployed then set in the OPCM. For now, to simplify things until we // resolve https://github.com/ethereum-optimism/optimism/issues/11783, we just assume this new role // is the same as the proxy admin owner. contract DeployImplementationsInterop is DeployImplementations { - function createOPSMContract( + function createOPCMContract( DeployImplementationsInput _dii, DeployImplementationsOutput _dio, - OPStackManager.Blueprints memory _blueprints, + OPContractsManager.Blueprints memory _blueprints, string memory _release, - OPStackManager.ImplementationSetter[] memory _setters + OPContractsManager.ImplementationSetter[] memory _setters ) internal override - returns (OPStackManager opsmProxy_) + returns (OPContractsManager opcmProxy_) { ProxyAdmin proxyAdmin = _dii.superchainProxyAdmin(); @@ -1014,20 +1022,20 @@ contract DeployImplementationsInterop is DeployImplementations { Proxy proxy = new Proxy(address(msg.sender)); deployOPContractsManagerImpl(_dii, _dio); // overriding function - OPStackManager opsmImpl = _dio.opsmImpl(); + OPContractsManager opcmImpl = _dio.opcmImpl(); - OPStackManager.InitializerInputs memory initializerInputs = - OPStackManager.InitializerInputs(_blueprints, _setters, _release, true); + OPContractsManager.InitializerInputs memory initializerInputs = + OPContractsManager.InitializerInputs(_blueprints, _setters, _release, true); vm.startBroadcast(msg.sender); proxy.upgradeToAndCall( - address(opsmImpl), abi.encodeWithSelector(opsmImpl.initialize.selector, initializerInputs) + address(opcmImpl), abi.encodeWithSelector(opcmImpl.initialize.selector, initializerInputs) ); proxy.changeAdmin(address(proxyAdmin)); // transfer ownership of Proxy contract to the ProxyAdmin contract vm.stopBroadcast(); - opsmProxy_ = OPStackManagerInterop(address(proxy)); + opcmProxy_ = OPContractsManagerInterop(address(proxy)); } function deployOptimismPortalImpl( @@ -1097,24 +1105,26 @@ contract DeployImplementationsInterop is DeployImplementations { vm.broadcast(msg.sender); // TODO: Eventually we will want to select the correct implementation based on the release. - OPStackManager impl = new OPStackManagerInterop(superchainConfigProxy, protocolVersionsProxy); + OPContractsManager impl = new OPContractsManagerInterop(superchainConfigProxy, protocolVersionsProxy); - vm.label(address(impl), "OPStackManagerImpl"); - _dio.set(_dio.opsmImpl.selector, address(impl)); + vm.label(address(impl), "OPContractsManagerImpl"); + _dio.set(_dio.opcmImpl.selector, address(impl)); } - function opsmSystemConfigSetter( + function opcmSystemConfigSetter( DeployImplementationsInput, DeployImplementationsOutput _dio ) internal view override - returns (OPStackManager.ImplementationSetter memory) + returns (OPContractsManager.ImplementationSetter memory) { - return OPStackManager.ImplementationSetter({ + return OPContractsManager.ImplementationSetter({ name: "SystemConfig", - info: OPStackManager.Implementation(address(_dio.systemConfigImpl()), SystemConfigInterop.initialize.selector) + info: OPContractsManager.Implementation( + address(_dio.systemConfigImpl()), SystemConfigInterop.initialize.selector + ) }); } } diff --git a/packages/contracts-bedrock/scripts/DeployOPChain.s.sol b/packages/contracts-bedrock/scripts/DeployOPChain.s.sol index e0df48cc60295..524f9896b2bd2 100644 --- a/packages/contracts-bedrock/scripts/DeployOPChain.s.sol +++ b/packages/contracts-bedrock/scripts/DeployOPChain.s.sol @@ -26,7 +26,7 @@ import { FaultDisputeGame } from "src/dispute/FaultDisputeGame.sol"; import { PermissionedDisputeGame } from "src/dispute/PermissionedDisputeGame.sol"; import { Claim, GameType, GameTypes, Hash, OutputRoot } from "src/dispute/lib/Types.sol"; -import { OPStackManager } from "src/L1/OPStackManager.sol"; +import { OPContractsManager } from "src/L1/OPContractsManager.sol"; import { OptimismPortal2 } from "src/L1/OptimismPortal2.sol"; import { SystemConfig } from "src/L1/SystemConfig.sol"; import { L1CrossDomainMessenger } from "src/L1/L1CrossDomainMessenger.sol"; @@ -46,7 +46,7 @@ contract DeployOPChainInput is BaseDeployIO { uint32 internal _basefeeScalar; uint32 internal _blobBaseFeeScalar; uint256 internal _l2ChainId; - OPStackManager internal _opsmProxy; + OPContractsManager internal _opcmProxy; function set(bytes4 _sel, address _addr) public { require(_addr != address(0), "DeployOPChainInput: cannot set zero address"); @@ -56,7 +56,7 @@ contract DeployOPChainInput is BaseDeployIO { else if (_sel == this.unsafeBlockSigner.selector) _unsafeBlockSigner = _addr; else if (_sel == this.proposer.selector) _proposer = _addr; else if (_sel == this.challenger.selector) _challenger = _addr; - else if (_sel == this.opsmProxy.selector) _opsmProxy = OPStackManager(_addr); + else if (_sel == this.opcmProxy.selector) _opcmProxy = OPContractsManager(_addr); else revert("DeployOPChainInput: unknown selector"); } @@ -129,7 +129,7 @@ contract DeployOPChainInput is BaseDeployIO { // anchor root and deploy a new permissioned dispute game contract anyway. // // You can `console.logBytes(abi.encode(defaultStartingAnchorRoots))` to get the bytes that - // are hardcoded into `op-chain-ops/deployer/opsm/opchain.go` + // are hardcoded into `op-chain-ops/deployer/opcm/opchain.go` AnchorStateRegistry.StartingAnchorRoot[] memory defaultStartingAnchorRoots = new AnchorStateRegistry.StartingAnchorRoot[](1); defaultStartingAnchorRoots[0] = AnchorStateRegistry.StartingAnchorRoot({ @@ -139,10 +139,10 @@ contract DeployOPChainInput is BaseDeployIO { return abi.encode(defaultStartingAnchorRoots); } - // TODO: Check that opsm is proxied and it has an implementation. - function opsmProxy() public view returns (OPStackManager) { - require(address(_opsmProxy) != address(0), "DeployOPChainInput: not set"); - return _opsmProxy; + // TODO: Check that opcm is proxied and it has an implementation. + function opcmProxy() public view returns (OPContractsManager) { + require(address(_opcmProxy) != address(0), "DeployOPChainInput: not set"); + return _opcmProxy; } } @@ -309,8 +309,8 @@ contract DeployOPChainOutput is BaseDeployIO { require(GameType.unwrap(game.gameType()) == GameType.unwrap(GameTypes.PERMISSIONED_CANNON), "DPG-10"); require(Claim.unwrap(game.absolutePrestate()) == bytes32(hex"dead"), "DPG-20"); - OPStackManager opsm = _doi.opsmProxy(); - (address mips,) = opsm.implementations(opsm.latestRelease(), "MIPS"); + OPContractsManager opcm = _doi.opcmProxy(); + (address mips,) = opcm.implementations(opcm.latestRelease(), "MIPS"); require(game.vm() == IBigStepper(mips), "DPG-30"); require(address(game.weth()) == address(delayedWETHPermissionedGameProxy()), "DPG-40"); @@ -368,7 +368,7 @@ contract DeployOPChainOutput is BaseDeployIO { require(systemConfig.startBlock() == block.number, "SYSCON-140"); require( - systemConfig.batchInbox() == _doi.opsmProxy().chainIdToBatchInboxAddress(_doi.l2ChainId()), "SYSCON-150" + systemConfig.batchInbox() == _doi.opcmProxy().chainIdToBatchInboxAddress(_doi.l2ChainId()), "SYSCON-150" ); require(systemConfig.l1CrossDomainMessenger() == address(l1CrossDomainMessengerProxy()), "SYSCON-160"); @@ -393,7 +393,7 @@ contract DeployOPChainOutput is BaseDeployIO { require(address(messenger.PORTAL()) == address(optimismPortalProxy()), "L1xDM-30"); require(address(messenger.portal()) == address(optimismPortalProxy()), "L1xDM-40"); - require(address(messenger.superchainConfig()) == address(_doi.opsmProxy().superchainConfig()), "L1xDM-50"); + require(address(messenger.superchainConfig()) == address(_doi.opcmProxy().superchainConfig()), "L1xDM-50"); bytes32 xdmSenderSlot = vm.load(address(messenger), bytes32(uint256(204))); require(address(uint160(uint256(xdmSenderSlot))) == Constants.DEFAULT_L2_SENDER, "L1xDM-60"); @@ -409,7 +409,7 @@ contract DeployOPChainOutput is BaseDeployIO { require(address(bridge.messenger()) == address(messenger), "L1SB-20"); require(address(bridge.OTHER_BRIDGE()) == Predeploys.L2_STANDARD_BRIDGE, "L1SB-30"); require(address(bridge.otherBridge()) == Predeploys.L2_STANDARD_BRIDGE, "L1SB-40"); - require(address(bridge.superchainConfig()) == address(_doi.opsmProxy().superchainConfig()), "L1SB-50"); + require(address(bridge.superchainConfig()) == address(_doi.opcmProxy().superchainConfig()), "L1SB-50"); } function assertValidOptimismMintableERC20Factory(DeployOPChainInput) internal view { @@ -431,12 +431,12 @@ contract DeployOPChainOutput is BaseDeployIO { require(address(bridge.MESSENGER()) == address(l1CrossDomainMessengerProxy()), "L721B-30"); require(address(bridge.messenger()) == address(l1CrossDomainMessengerProxy()), "L721B-40"); - require(address(bridge.superchainConfig()) == address(_doi.opsmProxy().superchainConfig()), "L721B-50"); + require(address(bridge.superchainConfig()) == address(_doi.opcmProxy().superchainConfig()), "L721B-50"); } function assertValidOptimismPortal(DeployOPChainInput _doi) internal view { OptimismPortal2 portal = optimismPortalProxy(); - ISuperchainConfig superchainConfig = ISuperchainConfig(address(_doi.opsmProxy().superchainConfig())); + ISuperchainConfig superchainConfig = ISuperchainConfig(address(_doi.opcmProxy().superchainConfig())); require(address(portal.disputeGameFactory()) == address(disputeGameFactoryProxy()), "PORTAL-10"); require(address(portal.systemConfig()) == address(systemConfigProxy()), "PORTAL-20"); @@ -470,9 +470,9 @@ contract DeployOPChain is Script { // -------- Core Deployment Methods -------- function run(DeployOPChainInput _doi, DeployOPChainOutput _doo) public { - OPStackManager opsmProxy = _doi.opsmProxy(); + OPContractsManager opcmProxy = _doi.opcmProxy(); - OPStackManager.Roles memory roles = OPStackManager.Roles({ + OPContractsManager.Roles memory roles = OPContractsManager.Roles({ opChainProxyAdminOwner: _doi.opChainProxyAdminOwner(), systemConfigOwner: _doi.systemConfigOwner(), batcher: _doi.batcher(), @@ -480,7 +480,7 @@ contract DeployOPChain is Script { proposer: _doi.proposer(), challenger: _doi.challenger() }); - OPStackManager.DeployInput memory deployInput = OPStackManager.DeployInput({ + OPContractsManager.DeployInput memory deployInput = OPContractsManager.DeployInput({ roles: roles, basefeeScalar: _doi.basefeeScalar(), blobBasefeeScalar: _doi.blobBaseFeeScalar(), @@ -489,7 +489,7 @@ contract DeployOPChain is Script { }); vm.broadcast(msg.sender); - OPStackManager.DeployOutput memory deployOutput = opsmProxy.deploy(deployInput); + OPContractsManager.DeployOutput memory deployOutput = opcmProxy.deploy(deployInput); vm.label(address(deployOutput.opChainProxyAdmin), "opChainProxyAdmin"); vm.label(address(deployOutput.addressManager), "addressManager"); diff --git a/packages/contracts-bedrock/scripts/DeploySuperchain.s.sol b/packages/contracts-bedrock/scripts/DeploySuperchain.s.sol index 365b67df7b474..5ca889bf409e2 100644 --- a/packages/contracts-bedrock/scripts/DeploySuperchain.s.sol +++ b/packages/contracts-bedrock/scripts/DeploySuperchain.s.sol @@ -15,7 +15,7 @@ import { BaseDeployIO } from "scripts/utils/BaseDeployIO.sol"; // This comment block defines the requirements and rationale for the architecture used in this forge // script, along with other scripts that are being written as new Superchain-first deploy scripts to -// complement the OP Stack Manager. The script architecture is a bit different than a standard forge +// complement the OP Contracts Manager. The script architecture is a bit different than a standard forge // deployment script. // // There are three categories of users that are expected to interact with the scripts: diff --git a/packages/contracts-bedrock/semver-lock.json b/packages/contracts-bedrock/semver-lock.json index 6d1b97c01f0dd..a8481a94b667f 100644 --- a/packages/contracts-bedrock/semver-lock.json +++ b/packages/contracts-bedrock/semver-lock.json @@ -31,9 +31,9 @@ "initCodeHash": "0x433fac9de52d8ce8fc3471b78ef6cc9cff1019f480c9ad91b6e09ab8738a8edb", "sourceCodeHash": "0xde4df0f9633dc0cdb1c9f634003ea5b0f7c5c1aebc407bc1b2f44c0ecf938649" }, - "src/L1/OPStackManager.sol": { + "src/L1/OPContractsManager.sol": { "initCodeHash": "0x92c72b75206e756742df25d67d295e4479e65db1473948b8f53cb4ca642025d5", - "sourceCodeHash": "0x3cbd30c68cad0dd18d49165bd21d94422b7403174f91a733e2398539dadf8656" + "sourceCodeHash": "0x5e04124ee67298d2f1245139baf7de79dee421d2c031c6e5abe0cd3b1bdbdb32" }, "src/L1/OptimismPortal.sol": { "initCodeHash": "0xbe2c0c81b3459014f287d8c89cdc0d27dde5d1f44e5d024fa1e4773ddc47c190", diff --git a/packages/contracts-bedrock/snapshots/abi/OPStackManager.json b/packages/contracts-bedrock/snapshots/abi/OPContractsManager.json similarity index 95% rename from packages/contracts-bedrock/snapshots/abi/OPStackManager.json rename to packages/contracts-bedrock/snapshots/abi/OPContractsManager.json index 9654f8f084ab5..ca2f2ab8ac837 100644 --- a/packages/contracts-bedrock/snapshots/abi/OPStackManager.json +++ b/packages/contracts-bedrock/snapshots/abi/OPContractsManager.json @@ -62,7 +62,7 @@ "type": "address" } ], - "internalType": "struct OPStackManager.Blueprints", + "internalType": "struct OPContractsManager.Blueprints", "name": "", "type": "tuple" } @@ -126,7 +126,7 @@ "type": "address" } ], - "internalType": "struct OPStackManager.Roles", + "internalType": "struct OPContractsManager.Roles", "name": "roles", "type": "tuple" }, @@ -151,7 +151,7 @@ "type": "bytes" } ], - "internalType": "struct OPStackManager.DeployInput", + "internalType": "struct OPContractsManager.DeployInput", "name": "_input", "type": "tuple" } @@ -236,7 +236,7 @@ "type": "address" } ], - "internalType": "struct OPStackManager.DeployOutput", + "internalType": "struct OPContractsManager.DeployOutput", "name": "", "type": "tuple" } @@ -320,7 +320,7 @@ "type": "address" } ], - "internalType": "struct OPStackManager.Blueprints", + "internalType": "struct OPContractsManager.Blueprints", "name": "blueprints", "type": "tuple" }, @@ -344,12 +344,12 @@ "type": "bytes4" } ], - "internalType": "struct OPStackManager.Implementation", + "internalType": "struct OPContractsManager.Implementation", "name": "info", "type": "tuple" } ], - "internalType": "struct OPStackManager.ImplementationSetter[]", + "internalType": "struct OPContractsManager.ImplementationSetter[]", "name": "setters", "type": "tuple[]" }, @@ -364,7 +364,7 @@ "type": "bool" } ], - "internalType": "struct OPStackManager.InitializerInputs", + "internalType": "struct OPContractsManager.InitializerInputs", "name": "_initializerInputs", "type": "tuple" } diff --git a/packages/contracts-bedrock/snapshots/abi/OPStackManagerInterop.json b/packages/contracts-bedrock/snapshots/abi/OPContractsManagerInterop.json similarity index 95% rename from packages/contracts-bedrock/snapshots/abi/OPStackManagerInterop.json rename to packages/contracts-bedrock/snapshots/abi/OPContractsManagerInterop.json index 9654f8f084ab5..ca2f2ab8ac837 100644 --- a/packages/contracts-bedrock/snapshots/abi/OPStackManagerInterop.json +++ b/packages/contracts-bedrock/snapshots/abi/OPContractsManagerInterop.json @@ -62,7 +62,7 @@ "type": "address" } ], - "internalType": "struct OPStackManager.Blueprints", + "internalType": "struct OPContractsManager.Blueprints", "name": "", "type": "tuple" } @@ -126,7 +126,7 @@ "type": "address" } ], - "internalType": "struct OPStackManager.Roles", + "internalType": "struct OPContractsManager.Roles", "name": "roles", "type": "tuple" }, @@ -151,7 +151,7 @@ "type": "bytes" } ], - "internalType": "struct OPStackManager.DeployInput", + "internalType": "struct OPContractsManager.DeployInput", "name": "_input", "type": "tuple" } @@ -236,7 +236,7 @@ "type": "address" } ], - "internalType": "struct OPStackManager.DeployOutput", + "internalType": "struct OPContractsManager.DeployOutput", "name": "", "type": "tuple" } @@ -320,7 +320,7 @@ "type": "address" } ], - "internalType": "struct OPStackManager.Blueprints", + "internalType": "struct OPContractsManager.Blueprints", "name": "blueprints", "type": "tuple" }, @@ -344,12 +344,12 @@ "type": "bytes4" } ], - "internalType": "struct OPStackManager.Implementation", + "internalType": "struct OPContractsManager.Implementation", "name": "info", "type": "tuple" } ], - "internalType": "struct OPStackManager.ImplementationSetter[]", + "internalType": "struct OPContractsManager.ImplementationSetter[]", "name": "setters", "type": "tuple[]" }, @@ -364,7 +364,7 @@ "type": "bool" } ], - "internalType": "struct OPStackManager.InitializerInputs", + "internalType": "struct OPContractsManager.InitializerInputs", "name": "_initializerInputs", "type": "tuple" } diff --git a/packages/contracts-bedrock/snapshots/storageLayout/OPStackManager.json b/packages/contracts-bedrock/snapshots/storageLayout/OPContractsManager.json similarity index 84% rename from packages/contracts-bedrock/snapshots/storageLayout/OPStackManager.json rename to packages/contracts-bedrock/snapshots/storageLayout/OPContractsManager.json index c22ed7c2c8dad..cbb977f214b4f 100644 --- a/packages/contracts-bedrock/snapshots/storageLayout/OPStackManager.json +++ b/packages/contracts-bedrock/snapshots/storageLayout/OPContractsManager.json @@ -25,7 +25,7 @@ "label": "implementations", "offset": 0, "slot": "2", - "type": "mapping(string => mapping(string => struct OPStackManager.Implementation))" + "type": "mapping(string => mapping(string => struct OPContractsManager.Implementation))" }, { "bytes": "32", @@ -39,7 +39,7 @@ "label": "blueprint", "offset": 0, "slot": "4", - "type": "struct OPStackManager.Blueprints" + "type": "struct OPContractsManager.Blueprints" }, { "bytes": "1600", diff --git a/packages/contracts-bedrock/snapshots/storageLayout/OPStackManagerInterop.json b/packages/contracts-bedrock/snapshots/storageLayout/OPContractsManagerInterop.json similarity index 84% rename from packages/contracts-bedrock/snapshots/storageLayout/OPStackManagerInterop.json rename to packages/contracts-bedrock/snapshots/storageLayout/OPContractsManagerInterop.json index c22ed7c2c8dad..cbb977f214b4f 100644 --- a/packages/contracts-bedrock/snapshots/storageLayout/OPStackManagerInterop.json +++ b/packages/contracts-bedrock/snapshots/storageLayout/OPContractsManagerInterop.json @@ -25,7 +25,7 @@ "label": "implementations", "offset": 0, "slot": "2", - "type": "mapping(string => mapping(string => struct OPStackManager.Implementation))" + "type": "mapping(string => mapping(string => struct OPContractsManager.Implementation))" }, { "bytes": "32", @@ -39,7 +39,7 @@ "label": "blueprint", "offset": 0, "slot": "4", - "type": "struct OPStackManager.Blueprints" + "type": "struct OPContractsManager.Blueprints" }, { "bytes": "1600", diff --git a/packages/contracts-bedrock/src/L1/OPStackManager.sol b/packages/contracts-bedrock/src/L1/OPContractsManager.sol similarity index 98% rename from packages/contracts-bedrock/src/L1/OPStackManager.sol rename to packages/contracts-bedrock/src/L1/OPContractsManager.sol index 12e9a6f5cbdb9..4f36897d637ca 100644 --- a/packages/contracts-bedrock/src/L1/OPStackManager.sol +++ b/packages/contracts-bedrock/src/L1/OPContractsManager.sol @@ -40,7 +40,7 @@ import { L1StandardBridge } from "src/L1/L1StandardBridge.sol"; import { OptimismMintableERC20Factory } from "src/universal/OptimismMintableERC20Factory.sol"; /// @custom:proxied true -contract OPStackManager is ISemver, Initializable { +contract OPContractsManager is ISemver, Initializable { // -------- Structs -------- /// @notice Represents the roles that can be set when deploying a standard OP Stack chain. @@ -113,7 +113,7 @@ contract OPStackManager is ISemver, Initializable { address permissionedDisputeGame2; } - /// @notice Inputs required when initializing the OPStackManager. To avoid 'StackTooDeep' errors, + /// @notice Inputs required when initializing the OPContractsManager. To avoid 'StackTooDeep' errors, /// all necessary inputs (excluding immutables) for initialization are bundled together in this struct. struct InitializerInputs { Blueprints blueprints; @@ -133,7 +133,7 @@ contract OPStackManager is ISemver, Initializable { /// @notice Address of the ProtocolVersions contract shared by all chains. ProtocolVersions public immutable protocolVersions; - /// @notice The latest release of the OP Stack Manager, as a string of the format `op-contracts/vX.Y.Z`. + /// @notice The latest release of the OP Contracts Manager, as a string of the format `op-contracts/vX.Y.Z`. string public latestRelease; /// @notice Maps a release version to a contract name to it's implementation data. @@ -181,7 +181,7 @@ contract OPStackManager is ISemver, Initializable { // -------- Methods -------- - /// @notice OPSM is proxied. Therefore the `initialize` function replaces most constructor logic for this contract. + /// @notice OPCM is proxied. Therefore the `initialize` function replaces most constructor logic for this contract. constructor(SuperchainConfig _superchainConfig, ProtocolVersions _protocolVersions) { assertValidContractAddress(address(_superchainConfig)); diff --git a/packages/contracts-bedrock/src/L1/OPStackManagerInterop.sol b/packages/contracts-bedrock/src/L1/OPContractsManagerInterop.sol similarity index 91% rename from packages/contracts-bedrock/src/L1/OPStackManagerInterop.sol rename to packages/contracts-bedrock/src/L1/OPContractsManagerInterop.sol index 0a4a88625c9d2..90fa13e7455c1 100644 --- a/packages/contracts-bedrock/src/L1/OPStackManagerInterop.sol +++ b/packages/contracts-bedrock/src/L1/OPContractsManagerInterop.sol @@ -1,7 +1,7 @@ // SPDX-License-Identifier: MIT pragma solidity 0.8.15; -import { OPStackManager } from "src/L1/OPStackManager.sol"; +import { OPContractsManager } from "src/L1/OPContractsManager.sol"; import { SuperchainConfig } from "src/L1/SuperchainConfig.sol"; import { ProtocolVersions } from "src/L1/ProtocolVersions.sol"; import { ResourceMetering } from "src/L1/ResourceMetering.sol"; @@ -9,12 +9,12 @@ import { SystemConfig } from "src/L1/SystemConfig.sol"; import { SystemConfigInterop } from "src/L1/SystemConfigInterop.sol"; /// @custom:proxied true -contract OPStackManagerInterop is OPStackManager { +contract OPContractsManagerInterop is OPContractsManager { constructor( SuperchainConfig _superchainConfig, ProtocolVersions _protocolVersions ) - OPStackManager(_superchainConfig, _protocolVersions) + OPContractsManager(_superchainConfig, _protocolVersions) { } // The `SystemConfigInterop` contract has an extra `address _dependencyManager` argument diff --git a/packages/contracts-bedrock/test/DeployImplementations.t.sol b/packages/contracts-bedrock/test/DeployImplementations.t.sol index 1eac67c6fdf31..1dca71b4ec706 100644 --- a/packages/contracts-bedrock/test/DeployImplementations.t.sol +++ b/packages/contracts-bedrock/test/DeployImplementations.t.sol @@ -10,7 +10,7 @@ import { DisputeGameFactory } from "src/dispute/DisputeGameFactory.sol"; import { SuperchainConfig } from "src/L1/SuperchainConfig.sol"; import { ProtocolVersions } from "src/L1/ProtocolVersions.sol"; -import { OPStackManager } from "src/L1/OPStackManager.sol"; +import { OPContractsManager } from "src/L1/OPContractsManager.sol"; import { OptimismPortal2 } from "src/L1/OptimismPortal2.sol"; import { SystemConfig } from "src/L1/SystemConfig.sol"; import { L1CrossDomainMessenger } from "src/L1/L1CrossDomainMessenger.sol"; @@ -106,11 +106,11 @@ contract DeployImplementationsOutput_Test is Test { function test_set_succeeds() public { Proxy proxy = new Proxy(address(0)); - address opsmImpl = address(makeAddr("opsmImpl")); + address opcmImpl = address(makeAddr("opcmImpl")); vm.prank(address(0)); - proxy.upgradeTo(opsmImpl); + proxy.upgradeTo(opcmImpl); - OPStackManager opsmProxy = OPStackManager(address(proxy)); + OPContractsManager opcmProxy = OPContractsManager(address(proxy)); OptimismPortal2 optimismPortalImpl = OptimismPortal2(payable(makeAddr("optimismPortalImpl"))); DelayedWETH delayedWETHImpl = DelayedWETH(payable(makeAddr("delayedWETHImpl"))); PreimageOracle preimageOracleSingleton = PreimageOracle(makeAddr("preimageOracleSingleton")); @@ -124,8 +124,8 @@ contract DeployImplementationsOutput_Test is Test { OptimismMintableERC20Factory(makeAddr("optimismMintableERC20FactoryImpl")); DisputeGameFactory disputeGameFactoryImpl = DisputeGameFactory(makeAddr("disputeGameFactoryImpl")); - vm.etch(address(opsmProxy), address(opsmProxy).code); - vm.etch(address(opsmImpl), hex"01"); + vm.etch(address(opcmProxy), address(opcmProxy).code); + vm.etch(address(opcmImpl), hex"01"); vm.etch(address(optimismPortalImpl), hex"01"); vm.etch(address(delayedWETHImpl), hex"01"); vm.etch(address(preimageOracleSingleton), hex"01"); @@ -136,7 +136,7 @@ contract DeployImplementationsOutput_Test is Test { vm.etch(address(l1StandardBridgeImpl), hex"01"); vm.etch(address(optimismMintableERC20FactoryImpl), hex"01"); vm.etch(address(disputeGameFactoryImpl), hex"01"); - dio.set(dio.opsmProxy.selector, address(opsmProxy)); + dio.set(dio.opcmProxy.selector, address(opcmProxy)); dio.set(dio.optimismPortalImpl.selector, address(optimismPortalImpl)); dio.set(dio.delayedWETHImpl.selector, address(delayedWETHImpl)); dio.set(dio.preimageOracleSingleton.selector, address(preimageOracleSingleton)); @@ -148,7 +148,7 @@ contract DeployImplementationsOutput_Test is Test { dio.set(dio.optimismMintableERC20FactoryImpl.selector, address(optimismMintableERC20FactoryImpl)); dio.set(dio.disputeGameFactoryImpl.selector, address(disputeGameFactoryImpl)); - assertEq(address(opsmProxy), address(dio.opsmProxy()), "50"); + assertEq(address(opcmProxy), address(dio.opcmProxy()), "50"); assertEq(address(optimismPortalImpl), address(dio.optimismPortalImpl()), "100"); assertEq(address(delayedWETHImpl), address(dio.delayedWETHImpl()), "200"); assertEq(address(preimageOracleSingleton), address(dio.preimageOracleSingleton()), "300"); @@ -413,7 +413,7 @@ contract DeployImplementations_Test is Test { string memory release = string(bytes.concat(hash(_seed, 5))); protocolVersionsProxy = ProtocolVersions(address(uint160(uint256(hash(_seed, 7))))); - // Must configure the ProxyAdmin contract which is used to upgrade the OPSM's proxy contract. + // Must configure the ProxyAdmin contract which is used to upgrade the OPCM's proxy contract. ProxyAdmin superchainProxyAdmin = new ProxyAdmin(msg.sender); superchainConfigProxy = SuperchainConfig(address(new Proxy(payable(address(superchainProxyAdmin))))); diff --git a/packages/contracts-bedrock/test/DeployOPChain.t.sol b/packages/contracts-bedrock/test/DeployOPChain.t.sol index 732eea8b05bfa..3cbc313cfe11d 100644 --- a/packages/contracts-bedrock/test/DeployOPChain.t.sol +++ b/packages/contracts-bedrock/test/DeployOPChain.t.sol @@ -23,7 +23,7 @@ import { PermissionedDisputeGame } from "src/dispute/PermissionedDisputeGame.sol import { SuperchainConfig } from "src/L1/SuperchainConfig.sol"; import { ProtocolVersions, ProtocolVersion } from "src/L1/ProtocolVersions.sol"; -import { OPStackManager } from "src/L1/OPStackManager.sol"; +import { OPContractsManager } from "src/L1/OPContractsManager.sol"; import { OptimismPortal2 } from "src/L1/OptimismPortal2.sol"; import { SystemConfig } from "src/L1/SystemConfig.sol"; import { L1CrossDomainMessenger } from "src/L1/L1CrossDomainMessenger.sol"; @@ -46,7 +46,7 @@ contract DeployOPChainInput_Test is Test { uint32 basefeeScalar = 100; uint32 blobBaseFeeScalar = 200; uint256 l2ChainId = 300; - OPStackManager opsm = OPStackManager(makeAddr("opsm")); + OPContractsManager opcm = OPContractsManager(makeAddr("opcm")); function setUp() public { doi = new DeployOPChainInput(); @@ -62,7 +62,7 @@ contract DeployOPChainInput_Test is Test { doi.set(doi.basefeeScalar.selector, basefeeScalar); doi.set(doi.blobBaseFeeScalar.selector, blobBaseFeeScalar); doi.set(doi.l2ChainId.selector, l2ChainId); - doi.set(doi.opsmProxy.selector, address(opsm)); + doi.set(doi.opcmProxy.selector, address(opcm)); // Compare the default inputs to the getter methods. assertEq(opChainProxyAdminOwner, doi.opChainProxyAdminOwner(), "200"); assertEq(systemConfigOwner, doi.systemConfigOwner(), "300"); @@ -73,7 +73,7 @@ contract DeployOPChainInput_Test is Test { assertEq(basefeeScalar, doi.basefeeScalar(), "800"); assertEq(blobBaseFeeScalar, doi.blobBaseFeeScalar(), "900"); assertEq(l2ChainId, doi.l2ChainId(), "1000"); - assertEq(address(opsm), address(doi.opsmProxy()), "1100"); + assertEq(address(opcm), address(doi.opcmProxy()), "1100"); } function test_getters_whenNotSet_revert() public { @@ -328,7 +328,7 @@ contract DeployOPChain_TestBase is Test { ProtocolVersions protocolVersionsProxy; // Define default inputs for DeployOPChain. - // `opsm` is set during `setUp` since it is an output of the previous step. + // `opcm` is set during `setUp` since it is an output of the previous step. address opChainProxyAdminOwner = makeAddr("defaultOPChainProxyAdminOwner"); address systemConfigOwner = makeAddr("defaultSystemConfigOwner"); address batcher = makeAddr("defaultBatcher"); @@ -339,7 +339,7 @@ contract DeployOPChain_TestBase is Test { uint32 blobBaseFeeScalar = 200; uint256 l2ChainId = 300; AnchorStateRegistry.StartingAnchorRoot[] startingAnchorRoots; - OPStackManager opsm = OPStackManager(address(0)); + OPContractsManager opcm = OPContractsManager(address(0)); function setUp() public virtual { // Set defaults for reference types @@ -401,8 +401,8 @@ contract DeployOPChain_TestBase is Test { deployOPChain = new DeployOPChain(); (doi, doo) = deployOPChain.etchIOContracts(); - // Set the OPStackManager address as input to DeployOPChain. - opsm = dio.opsmProxy(); + // Set the OPContractsManager input for DeployOPChain. + opcm = dio.opcmProxy(); } // See the function of the same name in the `DeployImplementations_Test` contract of @@ -456,11 +456,11 @@ contract DeployOPChain_Test is DeployOPChain_TestBase { doi.set(doi.basefeeScalar.selector, basefeeScalar); doi.set(doi.blobBaseFeeScalar.selector, blobBaseFeeScalar); doi.set(doi.l2ChainId.selector, l2ChainId); - doi.set(doi.opsmProxy.selector, address(opsm)); // Not fuzzed since it must be an actual instance. + doi.set(doi.opcmProxy.selector, address(opcm)); // Not fuzzed since it must be an actual instance. deployOPChain.run(doi, doo); - // TODO Add fault proof contract assertions below once OPSM fully supports them. + // TODO Add fault proof contract assertions below once OPCM fully supports them. // Assert that individual input fields were properly set based on the inputs. assertEq(opChainProxyAdminOwner, doi.opChainProxyAdminOwner(), "100"); @@ -486,7 +486,7 @@ contract DeployOPChain_Test is DeployOPChain_TestBase { // assertEq(address(doo.faultDisputeGame().proposer()), proposer, "2700"); // assertEq(address(doo.faultDisputeGame().challenger()), challenger, "2800"); - // Most architecture assertions are handled within the OP Stack Manager itself and therefore + // Most architecture assertions are handled within the OP Contracts Manager itself and therefore // we only assert on the things that are not visible onchain. // TODO add these assertions: AddressManager, Proxy, ProxyAdmin, etc. } diff --git a/packages/contracts-bedrock/test/L1/OPStackManager.t.sol b/packages/contracts-bedrock/test/L1/OPContractsManager.t.sol similarity index 71% rename from packages/contracts-bedrock/test/L1/OPStackManager.t.sol rename to packages/contracts-bedrock/test/L1/OPContractsManager.t.sol index ea26a6dae0b33..7f52b702dd716 100644 --- a/packages/contracts-bedrock/test/L1/OPStackManager.t.sol +++ b/packages/contracts-bedrock/test/L1/OPContractsManager.t.sol @@ -6,18 +6,18 @@ import { Test, stdStorage, StdStorage } from "forge-std/Test.sol"; import { DeployOPChainInput } from "scripts/DeployOPChain.s.sol"; import { DeployOPChain_TestBase } from "test/DeployOPChain.t.sol"; -import { OPStackManager } from "src/L1/OPStackManager.sol"; +import { OPContractsManager } from "src/L1/OPContractsManager.sol"; import { SuperchainConfig } from "src/L1/SuperchainConfig.sol"; import { ProtocolVersions } from "src/L1/ProtocolVersions.sol"; import { SystemConfig } from "src/L1/SystemConfig.sol"; // Exposes internal functions for testing. -contract OPStackManager_Harness is OPStackManager { +contract OPContractsManager_Harness is OPContractsManager { constructor( SuperchainConfig _superchainConfig, ProtocolVersions _protocolVersions ) - OPStackManager(_superchainConfig, _protocolVersions) + OPContractsManager(_superchainConfig, _protocolVersions) { } function chainIdToBatchInboxAddress_exposed(uint256 l2ChainId) public pure returns (address) { @@ -26,12 +26,12 @@ contract OPStackManager_Harness is OPStackManager { } // Unlike other test suites, we intentionally do not inherit from CommonTest or Setup. This is -// because OPStackManager acts as a deploy script, so we start from a clean slate here and -// work OPStackManager's deployment into the existing test setup, instead of using the existing -// test setup to deploy OPStackManager. We do however inherit from DeployOPChain_TestBase so +// because OPContractsManager acts as a deploy script, so we start from a clean slate here and +// work OPContractsManager's deployment into the existing test setup, instead of using the existing +// test setup to deploy OPContractsManager. We do however inherit from DeployOPChain_TestBase so // we can use its setup to deploy the implementations similarly to how a real deployment would // happen. -contract OPStackManager_Deploy_Test is DeployOPChain_TestBase { +contract OPContractsManager_Deploy_Test is DeployOPChain_TestBase { using stdStorage for StdStorage; event Deployed(uint256 indexed l2ChainId, SystemConfig indexed systemConfig); @@ -48,14 +48,14 @@ contract OPStackManager_Deploy_Test is DeployOPChain_TestBase { doi.set(doi.basefeeScalar.selector, basefeeScalar); doi.set(doi.blobBaseFeeScalar.selector, blobBaseFeeScalar); doi.set(doi.l2ChainId.selector, l2ChainId); - doi.set(doi.opsmProxy.selector, address(opsm)); + doi.set(doi.opcmProxy.selector, address(opcm)); } // This helper function is used to convert the input struct type defined in DeployOPChain.s.sol - // to the input struct type defined in OPStackManager.sol. - function toOPSMDeployInput(DeployOPChainInput _doi) internal view returns (OPStackManager.DeployInput memory) { - return OPStackManager.DeployInput({ - roles: OPStackManager.Roles({ + // to the input struct type defined in OPContractsManager.sol. + function toOPCMDeployInput(DeployOPChainInput _doi) internal view returns (OPContractsManager.DeployInput memory) { + return OPContractsManager.DeployInput({ + roles: OPContractsManager.Roles({ opChainProxyAdminOwner: _doi.opChainProxyAdminOwner(), systemConfigOwner: _doi.systemConfigOwner(), batcher: _doi.batcher(), @@ -71,30 +71,30 @@ contract OPStackManager_Deploy_Test is DeployOPChain_TestBase { } function test_deploy_l2ChainIdEqualsZero_reverts() public { - OPStackManager.DeployInput memory deployInput = toOPSMDeployInput(doi); + OPContractsManager.DeployInput memory deployInput = toOPCMDeployInput(doi); deployInput.l2ChainId = 0; - vm.expectRevert(OPStackManager.InvalidChainId.selector); - opsm.deploy(deployInput); + vm.expectRevert(OPContractsManager.InvalidChainId.selector); + opcm.deploy(deployInput); } function test_deploy_l2ChainIdEqualsCurrentChainId_reverts() public { - OPStackManager.DeployInput memory deployInput = toOPSMDeployInput(doi); + OPContractsManager.DeployInput memory deployInput = toOPCMDeployInput(doi); deployInput.l2ChainId = block.chainid; - vm.expectRevert(OPStackManager.InvalidChainId.selector); - opsm.deploy(deployInput); + vm.expectRevert(OPContractsManager.InvalidChainId.selector); + opcm.deploy(deployInput); } function test_deploy_succeeds() public { vm.expectEmit(true, false, true, true); // TODO precompute the system config address. emit Deployed(doi.l2ChainId(), SystemConfig(address(1))); - opsm.deploy(toOPSMDeployInput(doi)); + opcm.deploy(toOPCMDeployInput(doi)); } } // These tests use the harness which exposes internal functions for testing. -contract OPStackManager_InternalMethods_Test is Test { - OPStackManager_Harness opsmHarness; +contract OPContractsManager_InternalMethods_Test is Test { + OPContractsManager_Harness opcmHarness; function setUp() public { SuperchainConfig superchainConfigProxy = SuperchainConfig(makeAddr("superchainConfig")); @@ -102,7 +102,7 @@ contract OPStackManager_InternalMethods_Test is Test { vm.etch(address(superchainConfigProxy), hex"01"); vm.etch(address(protocolVersionsProxy), hex"01"); - opsmHarness = new OPStackManager_Harness({ + opcmHarness = new OPContractsManager_Harness({ _superchainConfig: superchainConfigProxy, _protocolVersions: protocolVersionsProxy }); @@ -114,12 +114,12 @@ contract OPStackManager_InternalMethods_Test is Test { // 2. Hash it and manually take the first 19 bytes, and prefixed it with 0x00. uint256 chainId = 1234; address expected = 0x0017FA14b0d73Aa6A26D6b8720c1c84b50984f5C; - address actual = opsmHarness.chainIdToBatchInboxAddress_exposed(chainId); + address actual = opcmHarness.chainIdToBatchInboxAddress_exposed(chainId); vm.assertEq(expected, actual); chainId = type(uint256).max; expected = 0x00a9C584056064687E149968cBaB758a3376D22A; - actual = opsmHarness.chainIdToBatchInboxAddress_exposed(chainId); + actual = opcmHarness.chainIdToBatchInboxAddress_exposed(chainId); vm.assertEq(expected, actual); } } diff --git a/packages/contracts-bedrock/test/Specs.t.sol b/packages/contracts-bedrock/test/Specs.t.sol index cb67549d4c9c6..7f13a88002529 100644 --- a/packages/contracts-bedrock/test/Specs.t.sol +++ b/packages/contracts-bedrock/test/Specs.t.sol @@ -10,7 +10,7 @@ import { Executables } from "scripts/libraries/Executables.sol"; import { ForgeArtifacts, Abi, AbiEntry } from "scripts/libraries/ForgeArtifacts.sol"; // Contracts -import { OPStackManager } from "src/L1/OPStackManager.sol"; +import { OPContractsManager } from "src/L1/OPContractsManager.sol"; // Interfaces import { IOptimismPortal } from "src/L1/interfaces/IOptimismPortal.sol"; @@ -836,29 +836,29 @@ contract Specification_Test is CommonTest { _addSpec({ _name: "WETH98", _sel: _getSel("transferFrom(address,address,uint256)") }); _addSpec({ _name: "WETH98", _sel: _getSel("withdraw(uint256)") }); - // OPStackManager - _addSpec({ _name: "OPStackManager", _sel: _getSel("version()") }); - _addSpec({ _name: "OPStackManager", _sel: _getSel("superchainConfig()") }); - _addSpec({ _name: "OPStackManager", _sel: _getSel("protocolVersions()") }); - _addSpec({ _name: "OPStackManager", _sel: _getSel("latestRelease()") }); - _addSpec({ _name: "OPStackManager", _sel: _getSel("implementations(string,string)") }); - _addSpec({ _name: "OPStackManager", _sel: _getSel("systemConfigs(uint256)") }); - _addSpec({ _name: "OPStackManager", _sel: OPStackManager.initialize.selector }); - _addSpec({ _name: "OPStackManager", _sel: OPStackManager.deploy.selector }); - _addSpec({ _name: "OPStackManager", _sel: OPStackManager.blueprints.selector }); - _addSpec({ _name: "OPStackManager", _sel: OPStackManager.chainIdToBatchInboxAddress.selector }); - - // OPStackManagerInterop - _addSpec({ _name: "OPStackManagerInterop", _sel: _getSel("version()") }); - _addSpec({ _name: "OPStackManagerInterop", _sel: _getSel("superchainConfig()") }); - _addSpec({ _name: "OPStackManagerInterop", _sel: _getSel("protocolVersions()") }); - _addSpec({ _name: "OPStackManagerInterop", _sel: _getSel("latestRelease()") }); - _addSpec({ _name: "OPStackManagerInterop", _sel: _getSel("implementations(string,string)") }); - _addSpec({ _name: "OPStackManagerInterop", _sel: _getSel("systemConfigs(uint256)") }); - _addSpec({ _name: "OPStackManagerInterop", _sel: OPStackManager.initialize.selector }); - _addSpec({ _name: "OPStackManagerInterop", _sel: OPStackManager.deploy.selector }); - _addSpec({ _name: "OPStackManagerInterop", _sel: OPStackManager.blueprints.selector }); - _addSpec({ _name: "OPStackManagerInterop", _sel: OPStackManager.chainIdToBatchInboxAddress.selector }); + // OPContractsManager + _addSpec({ _name: "OPContractsManager", _sel: _getSel("version()") }); + _addSpec({ _name: "OPContractsManager", _sel: _getSel("superchainConfig()") }); + _addSpec({ _name: "OPContractsManager", _sel: _getSel("protocolVersions()") }); + _addSpec({ _name: "OPContractsManager", _sel: _getSel("latestRelease()") }); + _addSpec({ _name: "OPContractsManager", _sel: _getSel("implementations(string,string)") }); + _addSpec({ _name: "OPContractsManager", _sel: _getSel("systemConfigs(uint256)") }); + _addSpec({ _name: "OPContractsManager", _sel: OPContractsManager.initialize.selector }); + _addSpec({ _name: "OPContractsManager", _sel: OPContractsManager.deploy.selector }); + _addSpec({ _name: "OPContractsManager", _sel: OPContractsManager.blueprints.selector }); + _addSpec({ _name: "OPContractsManager", _sel: OPContractsManager.chainIdToBatchInboxAddress.selector }); + + // OPContractsManagerInterop + _addSpec({ _name: "OPContractsManagerInterop", _sel: _getSel("version()") }); + _addSpec({ _name: "OPContractsManagerInterop", _sel: _getSel("superchainConfig()") }); + _addSpec({ _name: "OPContractsManagerInterop", _sel: _getSel("protocolVersions()") }); + _addSpec({ _name: "OPContractsManagerInterop", _sel: _getSel("latestRelease()") }); + _addSpec({ _name: "OPContractsManagerInterop", _sel: _getSel("implementations(string,string)") }); + _addSpec({ _name: "OPContractsManagerInterop", _sel: _getSel("systemConfigs(uint256)") }); + _addSpec({ _name: "OPContractsManagerInterop", _sel: OPContractsManager.initialize.selector }); + _addSpec({ _name: "OPContractsManagerInterop", _sel: OPContractsManager.deploy.selector }); + _addSpec({ _name: "OPContractsManagerInterop", _sel: OPContractsManager.blueprints.selector }); + _addSpec({ _name: "OPContractsManagerInterop", _sel: OPContractsManager.chainIdToBatchInboxAddress.selector }); // DeputyGuardianModule _addSpec({ diff --git a/packages/contracts-bedrock/test/vendor/Initializable.t.sol b/packages/contracts-bedrock/test/vendor/Initializable.t.sol index d5c1a9e5e4c36..7b7596b9bafec 100644 --- a/packages/contracts-bedrock/test/vendor/Initializable.t.sol +++ b/packages/contracts-bedrock/test/vendor/Initializable.t.sol @@ -411,8 +411,8 @@ contract Initializer_Test is Bridge_Initializer { excludes[4] = "src/dispute/FaultDisputeGame.sol"; excludes[5] = "src/dispute/PermissionedDisputeGame.sol"; // TODO: Eventually remove this exclusion. Same reason as above dispute contracts. - excludes[6] = "src/L1/OPStackManager.sol"; - excludes[7] = "src/L1/OPStackManagerInterop.sol"; + excludes[6] = "src/L1/OPContractsManager.sol"; + excludes[7] = "src/L1/OPContractsManagerInterop.sol"; // Get all contract names in the src directory, minus the excluded contracts. string[] memory contractNames = ForgeArtifacts.getContractNames("src/*", excludes);