Skip to content

Release op-contracts v1.4.0-rc.2 - Fault Proofs V1

Pre-release
Pre-release
Compare
Choose a tag to compare
@clabby clabby released this 03 May 17:21
· 163 commits to develop since this release
a6d4eed

Overview

This release candidate enables fault proofs in the withdrawal path of the bridge on L1. It also modifies the SystemConfig to remove the legacy L2OutputOracle contract in favor of the DisputeGameFactory.

Specification here.

The full set of L1 contracts included in this release is:

  • AddressManager: Latest (this has no version) (No change from prior version)
  • AnchorStateRegistry: 1.0.0 (New Contract)
  • DelayedWETH: 1.0.0 (New Contract)
  • DisputeGameFactory: 1.0.0 (New Contract)
  • L1CrossDomainMessenger: 2.3.0 (No change from prior version)
  • L1ERC721Bridge: 2.1.0 (No change from prior version)
  • L1StandardBridge: 2.1.0 (No change from prior version)
  • OptimismMintableERC20Factory: 1.9.0 (No change from prior version)
  • OptimismPortal: 3.8.0 (Modified from prior version, with breaking changes)
  • SystemConfig: 2.0.0 (Modified from prior version, with breaking changes)
  • SuperchainConfig: 1.1.0 (No change from prior version)
  • ProtocolVersions: 1.0.0 (No change from prior version)

The L2OutputOracle is no longer used for chains running this version of the L1 contracts.

Contracts Changed

  1. L2OutputOracle
    • The L2OutputOracle has been removed from the deployed protocol.
  2. OptimismPortal
    • The OptimismPortal has been modified to allow users to prove their withdrawals against outputs that were proposed as dispute games, created via a trusted DisputeGameFactory contract. spec.
  3. SystemConfig
    • The SystemConfig has been changed to remove the L2_OUTPUT_ORACLE storage slot as well as the getter for the contract. To replace it, a new getter for the DisputeGameFactory proxy has been added.

New Contracts

  1. DisputeGameFactory
    • The DisputeGameFactory is the new inbox for L2 output proposals on L1, creating dispute games.
    • Output proposals are now permissionless by default.
    • Challenging output proposals is now permissionless by default.
  2. FaultDisputeGame
    • The FaultDisputeGame facilitates trustless disputes over L2 output roots proposed on L1. spec.
  3. PermissionedDisputeGame
    • A child of the FaultDisputeGame contract, that permissions proposing and challenging. Deployed as a safety mechanism to temporarily restore liveness in the event of the FaultDisputeGame's failure.
  4. MIPS
    • The MIPS VM is a minimal kernel emulating the MIPS32 ISA with a subset of available Linux syscalls. This contract allows for executing single steps of a fault proof program at the base case of disputes in the FaultDisputeGame. spec.
  5. PreimageOracle
    • The PreimageOracle contract is responsible for serving verified data to the program running on top of the MIPS VM during single-step execution. When data enters the PreimageOracle, it is verified to be correctly formatted and honest. spec.
  6. AnchorStateRegistry
    • The AnchorStateRegistry contract is responsible for tracking the latest finalized root claims from various dispute game types.
  7. DelayedWETH
    • DelayedWETH is an extension of WETH9 that delays unwrapping operations. Bonds that are placed in dispute games are held within this contract, and the owner may intervene in withdrawals to redistribute funds to submitters in case of dispute game resolution failure.

Full Changelog

op-contracts/v1.4.0-rc.1...op-contracts/v1.4.0-rc.2