You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Copy file name to clipboardExpand all lines: pages/builders/notices/fp-changes.mdx
+33-9
Original file line number
Diff line number
Diff line change
@@ -1,23 +1,42 @@
1
1
---
2
-
title: Preparing for Fault Proofs Breaking Changes
2
+
title: Preparing for Fault Proofs Changes
3
3
lang: en-US
4
-
description: Learn how to prepare for Fault Proofs breaking changes.
4
+
description: Learn how to prepare for Fault Proofs changes.
5
5
---
6
6
7
7
import { Steps, Callout } from'nextra/components'
8
8
9
-
# Preparing for Fault Proofs Breaking Changes
9
+
# Preparing for Fault Proofs Changes
10
10
11
-
This page outlines breaking changes related to Fault Proof upgrade for bridges, centralized exchanges, and custom solutions that use withdrawals. This page outlines changes for OP Mainnet and OP Sepolia only, and details for other OP Chains are forthcoming.
12
-
If you experience difficulty at any stage of this process, please reach out to [developer support](https://github.com/ethereum-optimism/developers/discussions).
11
+
OP Labs has submitted a [proposal to governance](https://gov.optimism.io/t/upgrade-proposal-fault-proofs/8161) to upgrade OP Mainnet to support Fault Proofs. If this proposal passes, fault proofs would launch on OP Mainnet approximately June 2024. This document details changes that apply to users, bridges, and centralized exchanges, as well as any custom solutions that use withdrawals. This page outlines changes for OP Mainnet and OP Sepolia only. Details for other OP Chains are forthcoming.
12
+
13
+
If you experience difficulty at any stage of this process, please reach out to [OP Labs Developer Support](https://github.com/ethereum-optimism/developers/discussions).
14
+
15
+
<Callouttype="error">
16
+
**IMPORTANT NOTICE FOR BRIDGES AND USERS**
17
+
18
+
**ALL** withdrawals that are not finalized before the Fault Proofs upgrade executes will need to be reproven after the upgrade is complete.
19
+
20
+
* Reproving simply requires that you execute the [withdrawal proving flow](https://docs.optimism.io/stack/protocol/rollup/withdrawal-flow) again.
21
+
* Withdrawals prior to the Fault Proofs upgrade must wait a 7-day challenge period before finalization. As a result, any withdrawal initiated less than 7 days before the upgrade cannot be finalized before the upgrade is executed. You may want to consider waiting until after the upgrade is complete to begin a withdrawal during this 7-day window.
22
+
</Callout>
13
23
14
24
<Callouttype="warning">
15
-
* Fault Proofs are scheduled to launch on testnet on **Tuesday, March 19, 2024**.
16
-
* Withdrawals between OP Sepolia and Sepolia will no longer be instant, since they are using the Fault Proofs mechanism.
25
+
**IMPORTANT NOTICE FOR BRIDGES AND USERS**
26
+
27
+
Maximum withdrawal delay times are increasing with the Fault Proofs upgrade.
28
+
* Withdrawals will generally take 7 days to finalize (unchanged from before Fault Proofs).
29
+
* Withdrawals that are proven against an output proposal that receives a validity challenge are delayed by an additional 3.5 days. Valid proposals that are challenged maliciously can be delayed by up to an additional 9 days at a very high cost to the malicious actor. Additional delays of this type are expected to be infrequent.
30
+
</Callout>
31
+
32
+
<Callouttype="warning">
33
+
As of the Fault Proofs update to OP Sepolia in March 2024, **OP Sepolia withdrawals are no longer instant.** This is because the Fault Proof mechanism now applies to OP Sepolia transactions.
17
34
</Callout>
18
35
19
36
## Overview of Changes
20
37
38
+
If you are operating a custom bridge, review this section for changes you need to make. If you are using Optimism SDK or Viem for your bridging, you can [skip to the next section](#for-bridges-and-centralized-exchanges).
39
+
21
40
The `L2OutputOracle` is being entirely removed and replaced by the `OptimismPortal` and `DisputeGameFactory`. The `L2OutputOracle` smart contract is currently used by the trusted Proposer role to store L2 state output proposals.
22
41
Presently, developers use these outputs to prove that their withdrawals actually happened on L2. But with fault proofs, developers will have to change how their client software proves withdrawals in the first step of the two-step withdrawal process.
23
42
@@ -39,7 +58,12 @@ Developers should then verify this proposal locally as the default game type wil
39
58
40
59
## For Bridges and Centralized Exchanges
41
60
42
-
The proposed Fault Proof upgrade requires developers to enable Fault Proof changes before the Sepolia release. This impacts bridges, centralized exchanges, and custom solutions that use withdrawals.
61
+
The proposed Fault Proof upgrade requires developers to enable Fault Proof changes before the Op Mainnet release. This impacts bridges, centralized exchanges, and custom solutions that use withdrawals.
62
+
63
+
<Callouttype="error">
64
+
Withdrawals that haven't finalized before the upgrade occurs will be unable to be finalized post-upgrade without resubmitting. This means these withdrawals will need to go through a new 7-day period. The time accrued before the upgrade will not count.
65
+
This means the withdrawal time could be as long as 13-14 days during the upgrade window. (If you submit it \~6 days before the upgrade, then must re-submit after the upgrade, you will have to wait a new seven days.)
66
+
</Callout>
43
67
44
68
<Steps>
45
69
### Update Logic to Support Fault Proofs
@@ -50,7 +74,7 @@ The proposed Fault Proof upgrade requires developers to enable Fault Proof chang
50
74
51
75
***Option 1: Optimism SDK Update.** If you use OptimismSDK for bridging, simply update to version 3.2.0 or higher.
52
76
The Optimism SDK changes do not break the API and require no changes other than updating to the correct software version to support the new `OptimismPortal` logic. The Optimism SDK will automatically begin to use the new logic once it detects that the FPM update has gone live.
53
-
***Option 2: Viem Update.** Viem changes will break the API and require both updating to latest version and replacing use of the currently used decorator with the `experimental` decorator that supports fault proofs. When fault proofs are on Mainnet in the future, `publicActionsL2` will be updated to support fault proofs by default, and it will be recommended that developers switch to the stable API.
77
+
***Option 2: Viem Update.** Viem changes will break the API and require both updating to latest version and replacing use of the currently used decorator with the `experimental` decorator that supports fault proofs. When Fault Proofs are on OP Mainnet, `publicActionsL2` will be updated to support fault proofs by default, and it will be recommended that developers switch to the stable API.
0 commit comments