github ethereum-optimism/optimism op-contracts/v8.0.0-rc.2

pre-release4 hours ago

Overview

This is a release candidate of the OP Stack smart contracts for Upgrade 20 (U20). Note that U20 does not include a hard fork so L2 predeploy changes will not be deployed.

What's Changed

OP Contracts Manager and upgrade path

  • OPCM v8.0.0 (#22096): the PermittedProxyDeployment allowance for DelayedWETH is removed from upgrade instructions, the startingAnchorRoot override window moves to pre-9.0.0 releases, and upgrade-sequence enforcement is now active — upgrades revert unless the chain's last upgrade was applied by an OPCM 7.x.
  • Upgrades now resolve each proxy's own ProxyAdmin and SystemConfig instead of assuming the calling chain's, fixing upgrades for non-first member chains of an interop set (#22034).
  • Upgrades revert if the new implementation is an OZ v5-style Initializable with its storage slot in use (#21070).
  • Removed the ProtocolVersions contract and its OPCM integration (#20527).

Dispute games

  • The proofs system now uses super roots instead of output roots. Permissioned chains now use the SUPER_PERMISSIONED game type as the respected game. Permissionless chains use SUPER_CANNON_KONA with previous game implementations being removed.
  • Simplified the super permissioned dispute game (#20641), renamed its game type (#21513), and removed the super cannon game type (#20363).

L1 contracts

  • SystemConfig v4.0.0: removed the unused batchInbox() getter and the legacy setGasConfig function (#21641).
  • CrossL2Inbox.validateMessage now reverts when executed by a deposit transaction, as defense in depth (#21693).
  • OptimismPortal2.migrateToSharedDisputeGame now validates its inputs (#20928).
  • FeeVault gains setWithdrawalRoute to update the recipient and withdrawal network atomically (#20982).
  • SuperchainConfig is now marked audited (#21265).

L2 predeploys

Note: These changes will not be deployed to existing chains until the next hard fork, not as part of U20.

  • L2 Fee values now have a setWithdrawalRoute(address,Types.WithdrawalNetwork) method - an atomic combination of the existing recipient and network setters.

Contract version changes

Contract v7.0.0 v8.0.0-rc.2
OPContractsManagerV2 7.1.17 8.0.0
SystemConfig 3.14.2 4.0.0
OptimismPortal2 5.6.1 5.8.0
OPContractsManagerStandardValidator 2.9.1 2.12.0
SuperchainConfig 2.4.2 2.4.3
SuperFaultDisputeGame 0.7.2 0.8.0
SuperPermissionedDisputeGame 0.7.0 1.0.0
ZKDisputeGame 1.1.0 2.0.1
CrossL2Inbox 1.0.2 1.1.0
L2ContractsManager 1.8.0 1.14.0
L2DevFeatureFlags 1.0.0 1.3.0
L2ProxyAdmin 1.0.0 1.1.0
L2ToL2CrossDomainMessenger 1.3.1 1.3.2
ETHLiquidity 1.1.0 1.1.1
BaseFeeVault / L1FeeVault / SequencerFeeVault 1.6.1 1.7.0
OperatorFeeVault 1.1.1 1.2.0
ProtocolVersions 1.1.2 removed

Full Changelog: op-contracts/v7.0.0...op-contracts/v8.0.0-rc.2

Don't miss a new optimism release

NewReleases is sending notifications on new releases.