Commit ca7b022f authored by George C. Knee's avatar George C. Knee Committed by GitHub

Import `SystemConfigProxy` address from new location in `superchain` (registry). (#9585)

* chore: update dependency on superchain-registry

* update references to chainConfig.SystemConfigAddr

* refactor: simplify extraction of addresses

* update dependency on superchain-registry/superchain

* go mod tidy
parent 52e52366
...@@ -10,7 +10,7 @@ require ( ...@@ -10,7 +10,7 @@ require (
github.com/crate-crypto/go-kzg-4844 v0.7.0 github.com/crate-crypto/go-kzg-4844 v0.7.0
github.com/decred/dcrd/dcrec/secp256k1/v4 v4.2.0 github.com/decred/dcrd/dcrec/secp256k1/v4 v4.2.0
github.com/ethereum-optimism/go-ethereum-hdwallet v0.1.3 github.com/ethereum-optimism/go-ethereum-hdwallet v0.1.3
github.com/ethereum-optimism/superchain-registry/superchain v0.0.0-20240213180600-05287996b949 github.com/ethereum-optimism/superchain-registry/superchain v0.0.0-20240222124135-cdcbd3dfeb01
github.com/ethereum/go-ethereum v1.13.8 github.com/ethereum/go-ethereum v1.13.8
github.com/fsnotify/fsnotify v1.7.0 github.com/fsnotify/fsnotify v1.7.0
github.com/go-chi/chi/v5 v5.0.12 github.com/go-chi/chi/v5 v5.0.12
...@@ -220,5 +220,6 @@ require ( ...@@ -220,5 +220,6 @@ require (
replace github.com/ethereum/go-ethereum v1.13.8 => github.com/ethereum-optimism/op-geth v1.101308.1-rc.1 replace github.com/ethereum/go-ethereum v1.13.8 => github.com/ethereum-optimism/op-geth v1.101308.1-rc.1
//replace github.com/ethereum-optimism/superchain-registry/superchain => ../superchain-registry/superchain // replace github.com/ethereum-optimism/superchain-registry/superchain => ../superchain-registry/superchain
//replace github.com/ethereum/go-ethereum v1.13.5 => ../go-ethereum //replace github.com/ethereum/go-ethereum v1.13.5 => ../go-ethereum
...@@ -172,8 +172,8 @@ github.com/ethereum-optimism/go-ethereum-hdwallet v0.1.3 h1:RWHKLhCrQThMfch+QJ1Z ...@@ -172,8 +172,8 @@ github.com/ethereum-optimism/go-ethereum-hdwallet v0.1.3 h1:RWHKLhCrQThMfch+QJ1Z
github.com/ethereum-optimism/go-ethereum-hdwallet v0.1.3/go.mod h1:QziizLAiF0KqyLdNJYD7O5cpDlaFMNZzlxYNcWsJUxs= github.com/ethereum-optimism/go-ethereum-hdwallet v0.1.3/go.mod h1:QziizLAiF0KqyLdNJYD7O5cpDlaFMNZzlxYNcWsJUxs=
github.com/ethereum-optimism/op-geth v1.101308.1-rc.1 h1:uKZtsxfu7G1AoiKQDIADZmCoKlQFdVpPLVt5zE6rSLc= github.com/ethereum-optimism/op-geth v1.101308.1-rc.1 h1:uKZtsxfu7G1AoiKQDIADZmCoKlQFdVpPLVt5zE6rSLc=
github.com/ethereum-optimism/op-geth v1.101308.1-rc.1/go.mod h1:ThMnNKm56W1zaBeth62dQDakd60fuHAYwuJ2tqP5qdM= github.com/ethereum-optimism/op-geth v1.101308.1-rc.1/go.mod h1:ThMnNKm56W1zaBeth62dQDakd60fuHAYwuJ2tqP5qdM=
github.com/ethereum-optimism/superchain-registry/superchain v0.0.0-20240213180600-05287996b949 h1:QKw8/XbFsmFQJsipKHP0CGWE1jJyO5qhhzPNZixoTRw= github.com/ethereum-optimism/superchain-registry/superchain v0.0.0-20240222124135-cdcbd3dfeb01 h1:jA9SNqYJcBOUqGJNUOg/ieAVSfTVDIpe15ULz4qGGV0=
github.com/ethereum-optimism/superchain-registry/superchain v0.0.0-20240213180600-05287996b949/go.mod h1:7xh2awFQqsiZxFrHKTgEd+InVfDRrkKVUIuK8SAFHp0= github.com/ethereum-optimism/superchain-registry/superchain v0.0.0-20240222124135-cdcbd3dfeb01/go.mod h1:7xh2awFQqsiZxFrHKTgEd+InVfDRrkKVUIuK8SAFHp0=
github.com/ethereum/c-kzg-4844 v0.4.0 h1:3MS1s4JtA868KpJxroZoepdV0ZKBp3u/O5HcZ7R3nlY= github.com/ethereum/c-kzg-4844 v0.4.0 h1:3MS1s4JtA868KpJxroZoepdV0ZKBp3u/O5HcZ7R3nlY=
github.com/ethereum/c-kzg-4844 v0.4.0/go.mod h1:VewdlzQmpT5QSrVhbBuGoCdFJkpaJlO1aQputP83wc0= github.com/ethereum/c-kzg-4844 v0.4.0/go.mod h1:VewdlzQmpT5QSrVhbBuGoCdFJkpaJlO1aQputP83wc0=
github.com/fatih/color v1.13.0 h1:8LOYc1KYPPmyKMuN8QV2DNRWNbLo6LZ0iLs8+mlH53w= github.com/fatih/color v1.13.0 h1:8LOYc1KYPPmyKMuN8QV2DNRWNbLo6LZ0iLs8+mlH53w=
......
...@@ -175,7 +175,7 @@ func entrypoint(ctx *cli.Context) error { ...@@ -175,7 +175,7 @@ func entrypoint(ctx *cli.Context) error {
log.Info("L2OutputOracle", "version", versions.L2OutputOracle, "address", addresses.L2OutputOracleProxy) log.Info("L2OutputOracle", "version", versions.L2OutputOracle, "address", addresses.L2OutputOracleProxy)
log.Info("OptimismMintableERC20Factory", "version", versions.OptimismMintableERC20Factory, "address", addresses.OptimismMintableERC20FactoryProxy) log.Info("OptimismMintableERC20Factory", "version", versions.OptimismMintableERC20Factory, "address", addresses.OptimismMintableERC20FactoryProxy)
log.Info("OptimismPortal", "version", versions.OptimismPortal, "address", addresses.OptimismPortalProxy) log.Info("OptimismPortal", "version", versions.OptimismPortal, "address", addresses.OptimismPortalProxy)
log.Info("SystemConfig", "version", versions.SystemConfig, "address", chainConfig.SystemConfigAddr) log.Info("SystemConfig", "version", versions.SystemConfig, "address", addresses.SystemConfigProxy)
implementations, ok := superchain.Implementations[l1ChainID.Uint64()] implementations, ok := superchain.Implementations[l1ChainID.Uint64()]
if !ok { if !ok {
......
...@@ -144,7 +144,7 @@ func entrypoint(ctx *cli.Context) error { ...@@ -144,7 +144,7 @@ func entrypoint(ctx *cli.Context) error {
contracts["L2OutputOracle"] = Contract{Version: versions.L2OutputOracle, Address: addresses.L2OutputOracleProxy} contracts["L2OutputOracle"] = Contract{Version: versions.L2OutputOracle, Address: addresses.L2OutputOracleProxy}
contracts["OptimismMintableERC20Factory"] = Contract{Version: versions.OptimismMintableERC20Factory, Address: addresses.OptimismMintableERC20FactoryProxy} contracts["OptimismMintableERC20Factory"] = Contract{Version: versions.OptimismMintableERC20Factory, Address: addresses.OptimismMintableERC20FactoryProxy}
contracts["OptimismPortal"] = Contract{Version: versions.OptimismPortal, Address: addresses.OptimismPortalProxy} contracts["OptimismPortal"] = Contract{Version: versions.OptimismPortal, Address: addresses.OptimismPortalProxy}
contracts["SystemConfig"] = Contract{Version: versions.SystemConfig, Address: chainConfig.SystemConfigAddr} contracts["SystemConfig"] = Contract{Version: versions.SystemConfig, Address: addresses.SystemConfigProxy}
contracts["ProxyAdmin"] = Contract{Version: "null", Address: addresses.ProxyAdmin} contracts["ProxyAdmin"] = Contract{Version: "null", Address: addresses.ProxyAdmin}
output = append(output, ChainVersionCheck{Name: chainConfig.Name, ChainID: l2ChainID, Contracts: contracts}) output = append(output, ChainVersionCheck{Name: chainConfig.Name, ChainID: l2ChainID, Contracts: contracts})
......
...@@ -89,7 +89,7 @@ func GetContractVersions(ctx context.Context, addresses *superchain.AddressList, ...@@ -89,7 +89,7 @@ func GetContractVersions(ctx context.Context, addresses *superchain.AddressList,
if err != nil { if err != nil {
return versions, fmt.Errorf("OptimismPortal: %w", err) return versions, fmt.Errorf("OptimismPortal: %w", err)
} }
versions.SystemConfig, err = getVersion(ctx, common.Address(chainConfig.SystemConfigAddr), backend) versions.SystemConfig, err = getVersion(ctx, common.Address(addresses.SystemConfigProxy), backend)
if err != nil { if err != nil {
return versions, fmt.Errorf("SystemConfig: %w", err) return versions, fmt.Errorf("SystemConfig: %w", err)
} }
......
...@@ -585,7 +585,7 @@ func OptimismPortal(batch *safe.Batch, implementations superchain.Implementation ...@@ -585,7 +585,7 @@ func OptimismPortal(batch *safe.Batch, implementations superchain.Implementation
return fmt.Errorf("L2OutputOracle address doesn't match config") return fmt.Errorf("L2OutputOracle address doesn't match config")
} }
if systemConfig != common.Address(chainConfig.SystemConfigAddr) { if systemConfig != common.Address(list.SystemConfigProxy) {
return fmt.Errorf("SystemConfig address doesn't match config") return fmt.Errorf("SystemConfig address doesn't match config")
} }
...@@ -646,7 +646,7 @@ func SystemConfig(batch *safe.Batch, implementations superchain.ImplementationLi ...@@ -646,7 +646,7 @@ func SystemConfig(batch *safe.Batch, implementations superchain.ImplementationLi
return err return err
} }
args := []any{ args := []any{
common.Address(chainConfig.SystemConfigAddr), common.Address(list.SystemConfigProxy),
storageSetterAddr, storageSetterAddr,
calldata, calldata,
} }
...@@ -661,7 +661,7 @@ func SystemConfig(batch *safe.Batch, implementations superchain.ImplementationLi ...@@ -661,7 +661,7 @@ func SystemConfig(batch *safe.Batch, implementations superchain.ImplementationLi
return err return err
} }
systemConfig, err := bindings.NewSystemConfigCaller(common.Address(chainConfig.SystemConfigAddr), backend) systemConfig, err := bindings.NewSystemConfigCaller(common.Address(list.SystemConfigProxy), backend)
if err != nil { if err != nil {
return err return err
} }
...@@ -763,7 +763,7 @@ func SystemConfig(batch *safe.Batch, implementations superchain.ImplementationLi ...@@ -763,7 +763,7 @@ func SystemConfig(batch *safe.Batch, implementations superchain.ImplementationLi
} }
args := []any{ args := []any{
common.Address(chainConfig.SystemConfigAddr), common.Address(list.SystemConfigProxy),
common.Address(implementations.SystemConfig.Address), common.Address(implementations.SystemConfig.Address),
calldata, calldata,
} }
......
...@@ -55,10 +55,8 @@ func LoadOPStackRollupConfig(chainID uint64) (*Config, error) { ...@@ -55,10 +55,8 @@ func LoadOPStackRollupConfig(chainID uint64) (*Config, error) {
return nil, fmt.Errorf("unable to retrieve genesis SystemConfig of chain %d", chainID) return nil, fmt.Errorf("unable to retrieve genesis SystemConfig of chain %d", chainID)
} }
var depositContractAddress common.Address addrs, ok := superchain.Addresses[chainID]
if addrs, ok := superchain.Addresses[chainID]; ok { if !ok {
depositContractAddress = common.Address(addrs.OptimismPortalProxy)
} else {
return nil, fmt.Errorf("unable to retrieve deposit contract address") return nil, fmt.Errorf("unable to retrieve deposit contract address")
} }
...@@ -113,8 +111,8 @@ func LoadOPStackRollupConfig(chainID uint64) (*Config, error) { ...@@ -113,8 +111,8 @@ func LoadOPStackRollupConfig(chainID uint64) (*Config, error) {
EcotoneTime: superChain.Config.EcotoneTime, EcotoneTime: superChain.Config.EcotoneTime,
FjordTime: superChain.Config.FjordTime, FjordTime: superChain.Config.FjordTime,
BatchInboxAddress: common.Address(chConfig.BatchInboxAddr), BatchInboxAddress: common.Address(chConfig.BatchInboxAddr),
DepositContractAddress: depositContractAddress, DepositContractAddress: common.Address(addrs.OptimismPortalProxy),
L1SystemConfigAddress: common.Address(chConfig.SystemConfigAddr), L1SystemConfigAddress: common.Address(addrs.SystemConfigProxy),
} }
if superChain.Config.ProtocolVersionsAddr != nil { // Set optional protocol versions address if superChain.Config.ProtocolVersionsAddr != nil { // Set optional protocol versions address
cfg.ProtocolVersionsAddress = common.Address(*superChain.Config.ProtocolVersionsAddr) cfg.ProtocolVersionsAddress = common.Address(*superChain.Config.ProtocolVersionsAddr)
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment