Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
2 changes: 1 addition & 1 deletion go.mod
Original file line number Diff line number Diff line change
Expand Up @@ -21,7 +21,7 @@ require (
github.com/docker/docker v27.5.1+incompatible
github.com/docker/go-connections v0.5.0
github.com/ethereum-optimism/go-ethereum-hdwallet v0.1.4-0.20251001155152-4eb15ccedf7e
github.com/ethereum-optimism/superchain-registry/validation v0.0.0-20251104194255-7380dcd87c00
github.com/ethereum-optimism/superchain-registry/validation v0.0.0-20251121143344-5ac16e0fbb00
github.com/ethereum/go-ethereum v1.16.3
github.com/fatih/color v1.18.0
github.com/fsnotify/fsnotify v1.9.0
Expand Down
4 changes: 2 additions & 2 deletions go.sum
Original file line number Diff line number Diff line change
Expand Up @@ -240,8 +240,8 @@ github.com/ethereum-optimism/go-ethereum-hdwallet v0.1.4-0.20251001155152-4eb15c
github.com/ethereum-optimism/go-ethereum-hdwallet v0.1.4-0.20251001155152-4eb15ccedf7e/go.mod h1:DYj7+vYJ4cIB7zera9mv4LcAynCL5u4YVfoeUu6Wa+w=
github.com/ethereum-optimism/op-geth v1.101603.2-0.20251016091451-5c6d276814f2 h1:fvYTR+KOcvSDd/gJuh+ALG/Fx7Y0xU3ZaDkgT/kqVi0=
github.com/ethereum-optimism/op-geth v1.101603.2-0.20251016091451-5c6d276814f2/go.mod h1:Ct2QjqZ2UKgvvgKLLYzoh/DBicJZB8DXsv45DgEjcco=
github.com/ethereum-optimism/superchain-registry/validation v0.0.0-20251104194255-7380dcd87c00 h1:eLxykgilVpGE1NTJSpUkpk/cXam6+ZkbbnCfCBShEiU=
github.com/ethereum-optimism/superchain-registry/validation v0.0.0-20251104194255-7380dcd87c00/go.mod h1:NZ816PzLU1TLv1RdAvYAb6KWOj4Zm5aInT0YpDVml2Y=
github.com/ethereum-optimism/superchain-registry/validation v0.0.0-20251121143344-5ac16e0fbb00 h1:TR5Y7B+5m63V0Dno7MHcFqv/XZByQzx/4THV1T1A7+U=
github.com/ethereum-optimism/superchain-registry/validation v0.0.0-20251121143344-5ac16e0fbb00/go.mod h1:NZ816PzLU1TLv1RdAvYAb6KWOj4Zm5aInT0YpDVml2Y=
github.com/ethereum/c-kzg-4844/v2 v2.1.0 h1:gQropX9YFBhl3g4HYhwE70zq3IHFRgbbNPw0Shwzf5w=
github.com/ethereum/c-kzg-4844/v2 v2.1.0/go.mod h1:TC48kOKjJKPbN7C++qIgt0TJzZ70QznYR7Ob+WXl57E=
github.com/ethereum/go-verkle v0.2.2 h1:I2W0WjnrFUIzzVPwm8ykY+7pL2d4VhlsePn4j7cnFk8=
Expand Down
10 changes: 5 additions & 5 deletions op-deployer/pkg/deployer/integration_test/cli/upgrade_test.go
Original file line number Diff line number Diff line change
Expand Up @@ -54,11 +54,11 @@ func TestCLIUpgrade(t *testing.T) {
version: "v4.1.0",
forkBlock: 9165154, // one block past the opcm deployment block
},
//{
//contractTag: standard.ContractsV500Tag,
//version: "v5.0.0-rc.2",
//forkBlock: 9554797, // one block past the opcm deployment block
//},
{
contractTag: standard.ContractsV500Tag,
version: "v5.0.0",
forkBlock: 9629972, // one block past the opcm deployment block
},
}

for _, tc := range testCases {
Expand Down
4 changes: 4 additions & 0 deletions op-deployer/pkg/deployer/opcm/contract.go
Original file line number Diff line number Diff line change
Expand Up @@ -28,6 +28,10 @@ func (c *Contract) ProtocolVersions(ctx context.Context) (common.Address, error)
return c.getAddress(ctx, "protocolVersions")
}

func (c *Contract) OPCMStandardValidator(ctx context.Context) (common.Address, error) {
return c.getAddress(ctx, "opcmStandardValidator")
}

func (c *Contract) getAddress(ctx context.Context, name string) (common.Address, error) {
return c.callContractMethod(ctx, name, abi.Arguments{})
}
Expand Down
2 changes: 1 addition & 1 deletion op-deployer/pkg/deployer/standard/standard.go
Original file line number Diff line number Diff line change
Expand Up @@ -43,7 +43,7 @@ const (
ContractsV300Tag = "op-contracts/v3.0.0"
ContractsV400Tag = "op-contracts/v4.0.0-rc.7"
ContractsV410Tag = "op-contracts/v4.1.0"
ContractsV500Tag = "op-contracts/v5.0.0-rc.2"
ContractsV500Tag = "op-contracts/v5.0.0"
CurrentTag = ContractsV500Tag
)

Expand Down
4 changes: 2 additions & 2 deletions op-deployer/pkg/deployer/upgrade/flags.go
Original file line number Diff line number Diff line change
Expand Up @@ -74,8 +74,8 @@ var Commands = cli.Commands{
Action: UpgradeCLI(v410.DefaultUpgrader),
},
&cli.Command{
Name: "v5.0.0-rc.2",
Usage: "upgrades a chain to version v5.0.0-rc.2 (U17 release candidate)",
Name: "v5.0.0",
Usage: "upgrades a chain to version v5.0.0 (U17)",
Flags: append([]cli.Flag{
deployer.L1RPCURLFlag,
ConfigFlag,
Expand Down
2 changes: 2 additions & 0 deletions op-validator/cmd/main.go
Original file line number Diff line number Diff line change
Expand Up @@ -36,6 +36,8 @@ func main() {
versionCmd(standard.ContractsV200Tag),
versionCmd(standard.ContractsV300Tag),
versionCmd(standard.ContractsV400Tag),
versionCmd(standard.ContractsV410Tag),
versionCmd(standard.ContractsV500Tag),
},
},
}
Expand Down
13 changes: 13 additions & 0 deletions op-validator/pkg/service/flags.go
Original file line number Diff line number Diff line change
Expand Up @@ -34,6 +34,11 @@ var (
Usage: "L2 chain ID",
Required: true,
}
ProposerFlag = &cli.StringFlag{
Name: "proposer",
Usage: "Proposer address as hex string (required for OPCMStandardValidator)",
Required: false,
}
FailOnErrorFlag = &cli.BoolFlag{
Name: "fail",
Usage: "Exit with non-zero code if validation errors are found",
Expand All @@ -48,6 +53,7 @@ var ValidateFlags = []cli.Flag{
ProxyAdminFlag,
SystemConfigFlag,
L2ChainIDFlag,
ProposerFlag,
FailOnErrorFlag,
}

Expand All @@ -58,6 +64,7 @@ type Config struct {
ProxyAdmin common.Address
SystemConfig common.Address
L2ChainID *big.Int
Proposer common.Address
}

// NewConfig creates a new Config from CLI context
Expand All @@ -70,11 +77,17 @@ func NewConfig(ctx *cli.Context) (*Config, error) {
return nil, fmt.Errorf("invalid L2 chain ID: %s", ctx.String(L2ChainIDFlag.Name))
}

var proposer common.Address
if proposerStr := ctx.String(ProposerFlag.Name); proposerStr != "" {
proposer = common.HexToAddress(proposerStr)
}

return &Config{
L1RPCURL: ctx.String(L1RPCURLFlag.Name),
AbsolutePrestate: absolutePrestate,
ProxyAdmin: proxyAdmin,
SystemConfig: systemConfig,
L2ChainID: l2ChainID,
Proposer: proposer,
}, nil
}
7 changes: 7 additions & 0 deletions op-validator/pkg/service/validate.go
Original file line number Diff line number Diff line change
Expand Up @@ -46,6 +46,7 @@ func Validate(ctx context.Context, lgr log.Logger, release string, cfg *Config)
}

var validator validations.Validator

switch release {
case standard.ContractsV180Tag:
validator = validations.NewV180Validator(l1Client)
Expand All @@ -55,14 +56,20 @@ func Validate(ctx context.Context, lgr log.Logger, release string, cfg *Config)
validator = validations.NewV300Validator(l1Client)
case standard.ContractsV400Tag:
validator = validations.NewV400Validator(l1Client)
case standard.ContractsV410Tag:
validator = validations.NewV410Validator(l1Client)
case standard.ContractsV500Tag:
validator = validations.NewV500Validator(l1Client)
default:
return nil, fmt.Errorf("invalid release: %s", release)
}
lgr.Info("Using Validator", "version", release)

return validator.Validate(ctx, validations.BaseValidatorInput{
ProxyAdminAddress: cfg.ProxyAdmin,
SystemConfigAddress: cfg.SystemConfig,
AbsolutePrestate: cfg.AbsolutePrestate,
L2ChainID: cfg.L2ChainID,
Proposer: cfg.Proposer,
})
}
8 changes: 8 additions & 0 deletions op-validator/pkg/validations/addresses.go
Original file line number Diff line number Diff line change
Expand Up @@ -18,6 +18,10 @@ var addresses = map[uint64]map[string]common.Address{
standard.ContractsV300Tag: common.HexToAddress("0xf989Df70FB46c581ba6157Ab335c0833bA60e1f0"),
// Bootstrapped on 06/03/2025 using OP Deployer.
standard.ContractsV400Tag: common.HexToAddress("0x3dfc5e44043DC5998928E0b8280136b7352d3F70"),
// Bootstrapped on 10/02/2025 using OP Deployer.
standard.ContractsV410Tag: common.HexToAddress("0x845FEF377Fa9C678B3eBe33B024678538f1215dD"),
// Bootstrapped on 10/27/2025 using OP Deployer.
standard.ContractsV500Tag: common.HexToAddress("0xDCE1A51A25dD5BF02ccB4264D039EDdF11A95b43"),
},
11155111: {
// Bootstrapped on 03/02/2025 using OP Deployer.
Expand All @@ -28,6 +32,10 @@ var addresses = map[uint64]map[string]common.Address{
standard.ContractsV300Tag: common.HexToAddress("0x2d56022cb84ce6b961c3b4288ca36386bcd9024c"),
// Bootstrapped on 06/03/2025 using OP Deployer.
standard.ContractsV400Tag: common.HexToAddress("0xA8a1529547306FEC7A32a001705160f2110451aE"),
// Bootstrapped on 10/02/2025 using OP Deployer.
standard.ContractsV410Tag: common.HexToAddress("0x7B4d2a02d5fa6C7C98D835d819956EBB876Ff439"),
// Bootstrapped on 10/27/2025 using OP Deployer.
standard.ContractsV500Tag: common.HexToAddress("0x757bFA3AAABcE60112Cee3239DCD05b5F6EFaE3A"),
},
}

Expand Down
Loading