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/notices/upgrade-16a.mdx
+72-1Lines changed: 72 additions & 1 deletion
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -55,4 +55,75 @@ Updated to support both upgrade paths: `U15 → U16a` and `U16 → U16a`.
55
55
Any pending L1 withdrawals on those chains that are not finalized before the upgrade executes will need to be reproven after the upgrade completes. Users must re-submit their proof transactions after the upgrade.
56
56
Chains already on U16 are not affected. No funds are at risk.</Callout>
57
57
58
-
If you're upgrading from Upgrade 15, follow the [chain operator instructions for U16](https://docs.optimism.io/notices/upgrade-16#for-chain-operators).
58
+
### Chain operators must complete the following tasks:
59
+
60
+
* Update `op-challenger` to [op-challenger/v1.5.1](https://github.com/ethereum-optimism/optimism/releases/tag/op-challenger%2Fv1.5.1)
61
+
62
+
### For permissionless fault proof enabled chains
63
+
64
+
Chains running permissionless fault proofs will need to deploy new dispute game contracts with new absolute prestates.
65
+
66
+
<Steps>
67
+
### Verify the new absolute prestate
68
+
69
+
<Callouttype="info">
70
+
As of upgrade 14, the 64 bit multi-threaded version of cannon is utilized.
71
+
</Callout>
72
+
73
+
The absolute prestate is generated with the [op-program/v1.6.1-rc.1](https://github.com/ethereum-optimism/optimism/tree/op-program/v1.6.1-rc.1). You can use this new absolute prestate `0x03eb07101fbdeaf3f04d9fb76526362c1eea2824e4c6e970bdb19675b72e4fc8` for the following chains:
74
+
75
+
* Mainnet and Sepolia: `OP`, `Base`, `Soneium`, `Ink`and `Unichain`
76
+
77
+
You can verify this absolute prestate by running the following [command](https://github.com/ethereum-optimism/optimism/blob/d6fb90dd489e39efa206b55200766ccc075c1d9b/Makefile#L130-L132) in the root of the monorepo on the `op-program/v1.6.1-rc.1` tag:
78
+
79
+
```shell
80
+
make reproducible-prestate
81
+
```
82
+
83
+
This will output the calculated prestates, which will look something like:
84
+
85
+
```shell
86
+
-------------------- Production Prestates --------------------
During the previous step, you also generated the preimage of the absolute prestate, which is the op-program serialized into a binary file. You'll find that new file at `optimism/op-program/bin/prestate-mt64.bin.gz`. Rename that file to have the absolute prestate hash as the filename so it looks like `PRESTATEHASH.bin.gz`.
109
+
110
+
Upload that file to where you're storing your other absolute preimage files. This should be the location where you're pointing your `--cannon-prestates-url` at. The `op-challenger` will grab this file and use it when it needs to challenge games.
111
+
112
+
### Execute the upgrade
113
+
114
+
Once your `op-challenger` is ready with the new preimage, you can execute the upgrade transaction. This should be done by making a delegatecall to the `upgrade()` function of the OP Contract Manager (at the address listed in [the registry](https://github.com/ethereum-optimism/superchain-registry/blob/6621a0f13ce523fe1bb8deea739fe37abe20f90d/validation/standard/standard-versions-mainnet.toml#L22).
115
+
116
+
Please simulate and validate the expected output prior to executing the transaction.
117
+
</Steps>
118
+
119
+
### Withdrawal flow changes
120
+
121
+
1. There will be a one-time invalidation of all pending withdrawal proofs created on L1.
122
+
123
+
2. Complete any pending withdrawals before the upgrade is executed
124
+
125
+
3. Avoid creating new withdrawal proofs that would not become executable in time
126
+
127
+
4. If a withdrawal was invalidated, submit a second withdrawal proof transaction on L1
128
+
129
+
This invalidation does not place any ETH or ERC-20 tokens at risk.
0 commit comments