Skip to content

op-contracts/v8.0.0-rc.3

Pre-release
Pre-release

Choose a tag to compare

@ajsutton ajsutton released this 13 Aug 23:04
· 3 commits to develop since this release
Immutable release. Only release title and notes can be modified.
op-contracts/v8.0.0-rc.3
f45a5cc

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.

Changes new since op-contracts/v8.0.0-rc.2 are marked [new in rc.3].

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).
  • [new in rc.3] Chain deployment reverts on game config mismatches instead of silently promoting them to Super Games (#22128).

Standard validator

  • [new in rc.3] The validator now checks that the SystemConfig l2ChainId() matches the chain ID under validation (SYSCON-140) (#22366).
  • [new in rc.3] The validator now checks that each registered dispute game implementation is the expected release implementation (-150 error codes for the Super Fault, Super Permissioned and ZK games), and that the ZK game verifier is the release-approved SP1 PLONK adapter (#22365, #22218).
  • [new in rc.3] The validator now checks that the AnchorStateRegistry a game anchors against is the same registry the OptimismPortal consults when finalizing withdrawals (-70) (#22412).

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).
  • [new in rc.3] SuperPermissionedDisputeGame.initialize now reverts when sent ETH (#22410). The game has no bond accounting, so any value sent would have been trapped in the clone.

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.

Other

  • [new in rc.3] Fork.INTEROP is renamed to Fork.LAGOON in the L2 genesis scripts (#22157, #22161). This is a naming change only and affects no deployed contract.

Contract version changes

Versions that changed between rc.2 and rc.3 are marked [new in rc.3].

Contract v7.0.0 v8.0.0-rc.3
OPContractsManagerV2 7.1.17 8.0.1 [new in rc.3]
SystemConfig 3.14.2 4.0.0
OptimismPortal2 5.6.1 5.8.0
OPContractsManagerStandardValidator 2.9.1 3.3.0 [new in rc.3]
SuperchainConfig 2.4.2 2.4.3
SuperFaultDisputeGame 0.7.2 0.8.0
SuperPermissionedDisputeGame 0.7.0 1.1.0 [new in rc.3]
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.3