Skip to content

Commit 5bb3657

Browse files
committed
fix: u16a notice
1 parent d030314 commit 5bb3657

File tree

1 file changed

+72
-1
lines changed

1 file changed

+72
-1
lines changed

pages/notices/upgrade-16a.mdx

Lines changed: 72 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -55,4 +55,75 @@ Updated to support both upgrade paths: `U15 → U16a` and `U16 → U16a`.
5555
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.
5656
Chains already on U16 are not affected. No funds are at risk.</Callout>
5757

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+
<Callout type="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 --------------------
87+
88+
89+
Cannon64 Absolute prestate hash:
90+
0x03eb07101fbdeaf3f04d9fb76526362c1eea2824e4c6e970bdb19675b72e4fc8
91+
92+
-------------------- Experimental Prestates --------------------
93+
94+
CannonInterop Absolute prestate hash:
95+
0x03fc3b4d091527d53f1ff369ea8ed65e5e17cc7fc98ebf75380238151cdc949c
96+
97+
Cannon64Next Absolute prestate hash:
98+
0x03eb07101fbdeaf3f04d9fb76526362c1eea2824e4c6e970bdb19675b72e4fc8
99+
```
100+
101+
* The "Cannon64" hash is the 64-bit prestate.
102+
103+
Verify that your target prestate was calculated as expected and matches the corresponding entry in
104+
[standard-prestates.toml](https://github.com/ethereum-optimism/superchain-registry/blob/main/validation/standard/standard-prestates.toml).
105+
106+
### Upload your new preimage file
107+
108+
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

Comments
 (0)