Skip to content

Commit 62487f4

Browse files
committed
add Scroll Upgrades page with information for tracking future upgrades
1 parent 8185c22 commit 62487f4

File tree

3 files changed

+106
-1
lines changed

3 files changed

+106
-1
lines changed

public/locales/en/translation.json

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -113,6 +113,7 @@
113113
"introduction": "Introduction",
114114
"principles": "Principles",
115115
"scrollArchitecture": "Scroll Architecture",
116+
"scrollUpgrades": "Scroll Upgrades",
116117
"overview": "Overview",
117118

118119
"scrollChain": "Scroll Chain",

src/config/sidebar.ts

Lines changed: 7 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -181,7 +181,13 @@ export const getSidebar = () => {
181181
technology: [
182182
{
183183
section: t("sidebar.technology.overview"),
184-
contents: [{ title: t("sidebar.technology.scrollArchitecture"), url: formatUrl("technology") }],
184+
contents: [
185+
{ title: t("sidebar.technology.scrollArchitecture"), url: formatUrl("technology") },
186+
{
187+
title: t("sidebar.technology.scrollUpgrades"),
188+
url: "technology/overview/scroll-upgrades",
189+
},
190+
],
185191
},
186192
{
187193
section: t("sidebar.technology.scrollChain"),
Lines changed: 98 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,98 @@
1+
---
2+
section: technology
3+
date: Last Modified
4+
title: "Scroll Upgrades"
5+
lang: "en"
6+
permalink: "technology/overview/scroll-upgrades"
7+
---
8+
9+
As the team continues to progress on Scroll's roadmap, we will be upgrading the Scroll network to include new features and improvements.
10+
11+
The following contracts are used to initiate upgrades and execute upgrades after the two-week timelock period:
12+
13+
| Contract | Network | Address |
14+
| ------------------------ | ------- | - |
15+
| L1 Scroll Multisig | Ethereum| [`0xEfc9D1096fb65c832207E5e7F13C2D1102244dbe`](https://etherscan.io/address/0xEfc9D1096fb65c832207E5e7F13C2D1102244dbe)|
16+
| L1 Timelock | Ethereum| [`0x1A658B88fD0a3c82fa1a0609fCDbD32e7dd4aB9C`](https://etherscan.io/address/0x1A658B88fD0a3c82fa1a0609fCDbD32e7dd4aB9C)|
17+
| L2 Scroll Multisig | Scroll| [`0xEfc9D1096fb65c832207E5e7F13C2D1102244dbe`](https://scrollscan.com/address/0xEfc9D1096fb65c832207E5e7F13C2D1102244dbe)|
18+
| L2 Timelock | Scroll | [`0xf6069DB81239E5194bb53f83aF564d282357bc99`](https://scrollscan.com/address/0xf6069DB81239E5194bb53f83aF564d282357bc99)|
19+
20+
## February 2024 Bridge Upgrade
21+
22+
### Overview
23+
24+
To reduce bridging costs, we implemented a number of gas optimizations on our bridge and rollup contract suite. The optimization techniques used include the following:
25+
26+
- We will now use constants to store some companion contract addresses, instead of using storage variables. This is possible since these values should (almost) never change. With this change we can save on a few storage load operations.
27+
- We updated the intrinsic gas estimation in `L1MessageQueue` to use a simple upper bound instead of an exact calculation. The two results will be similar for most bridge transactions but the new implementation is significantly cheaper.
28+
- The gateway router contracts will now bridge ETH directly through the messenger contracts, skipping `ETHGateway`.
29+
- We merged two contracts `L1MessageQueue` and `L2GasPriceOracle` to save on call costs from one contract to the other.
30+
31+
### Timeline
32+
33+
34+
- **Scroll Sepolia:**
35+
- Network Upgrade: January 19, 2024
36+
- **Scroll Mainnet:**
37+
- Upgrade Initiation: February 5, 2024
38+
- Timelock Completion & Upgrade: February 19, 2024
39+
40+
41+
### Technical Details
42+
43+
#### Code Changes
44+
- [Bridge Cost Optimization](https://github.com/scroll-tech/scroll/pull/1011)
45+
- [Audit Fixes](https://github.com/scroll-tech/scroll/pulls?q=is%3Apr+created%3A%3E2024-01-27+created%3A%3C2024-02-19+state%3Aopen+OZ+)
46+
- [Previously deployed version](https://github.com/scroll-tech/scroll/tree/ff380141a8cbcc214dc65f17ffa44faf4be646b6) (commit `ff380141a8cbcc214dc65f17ffa44faf4be646b6`)
47+
- [Version deployed](https://github.com/scroll-tech/scroll/tree/) (commit `TBA`)
48+
{/* TODO: add commit and link for deployed version */}
49+
50+
#### Audits
51+
52+
- OpenZeppelin
53+
- [Initial Report]()
54+
- [Final Report]()
55+
56+
{/* TODO: Add links to the audit reports */}
57+
58+
#### List of Changes
59+
60+
**Changes to L1 contracts:**
61+
62+
- In `ScrollChain`, change `messageQueue` and `verifier` to `immutable`.
63+
- In `L1ScrollMessenger`, change `counterpart`, `rollup`, and `messageQueue` to `immutable`.
64+
- In all token gateways, change `counterpart`, `router`, and `messenger` to `immutable`.
65+
- In `L1GatewayRouter`, skip `L1ETHGateway` and bridge directly through `L1ScrollMessenger` for ETH deposits.
66+
- Merge `L1MessageQueue` and `L2GasPriceOracle` into a single contract `L1MessageQueueWithGasPriceOracle` (deployed on the same address as the previous `L1MessageQueue`). In this contract we also change `messenger` and `scrollChain` to `immutable`, and simplify `calculateIntrinsicGasFee`.
67+
68+
**Changes to L2 contracts:**
69+
70+
- In `L2ScrollMessenger`, change `counterpart` to `immutable`.
71+
- In all token gateways, change `counterpart`, `router`, and `messenger` to `immutable`.
72+
- In `L2GatewayRouter`, skip `L2ETHGateway` and bridge directly through `L2ScrollMessenger` for ETH withdrawals.
73+
74+
**Contracts affected:**
75+
76+
- **L1:** `L1MessageQueue`, `L2GasPriceOracle`, `ScrollChain`, `L1WETHGateway`, `L1StandardERC20Gateway`, `L1GatewayRouter`, `L1ScrollMessenger`, `L1CustomERC20Gateway`, `L1ERC721Gateway`, `L1ERC1155Gateway`.
77+
- **L2:** `L2ScrollMessenger`, `L2WETHGateway`, `L2StandardERC20Gateway`, `L2GatewayRouter`, `L2CustomERC20Gateway`, `L2ERC721Gateway`, `L2ERC1155Gateway`.
78+
79+
#### Compatibility
80+
81+
##### Sequencer and follower nodes (l2geth)
82+
83+
Operators running an `l2geth` node do not need to upgrade. The changes in this upgrade will not affect `l2geth`.
84+
85+
##### Dapps and indexers
86+
87+
Dapps and indexers (and similar off-chain infrastructure) that query contracts or rely on contract interfaces would, in most cases, not need to be changed. The majority of the contract changes are internal and/or backward compatible.
88+
89+
If your application depends on [`L2GasPriceOracle`](https://etherscan.io/address/0x987e300fDfb06093859358522a79098848C33852) to monitor how Scroll keeps track of the L2 gas price on L1, from the upgrade block number you will need to start monitoring [`L1MessageQueueWithGasPriceOracle`](https://etherscan.io/address/0x0d7E906BD9cAFa154b048cFa766Cc1E54E39AF9B).
90+
91+
The original gas price oracle contract will be deprecated: it will no longer be updated or used by the Scroll bridge.
92+
93+
- Ethereum:
94+
- `L2GasPriceOracle`: [`0x987e300fDfb06093859358522a79098848C33852`](https://etherscan.io/address/0x987e300fDfb06093859358522a79098848C33852)
95+
- `L1MessageQueueWithGasPriceOracle`: [`0x0d7E906BD9cAFa154b048cFa766Cc1E54E39AF9B`](https://etherscan.io/address/0x0d7E906BD9cAFa154b048cFa766Cc1E54E39AF9B)
96+
- Sepolia:
97+
- `L2GasPriceOracle`: [`0x247969F4fad93a33d4826046bc3eAE0D36BdE548`](https://sepolia.etherscan.io/address/0x247969F4fad93a33d4826046bc3eAE0D36BdE548)
98+
- `L1MessageQueueWithGasPriceOracle`: [`0xF0B2293F5D834eAe920c6974D50957A1732de763`](https://sepolia.etherscan.io/address/0xF0B2293F5D834eAe920c6974D50957A1732de763)

0 commit comments

Comments
 (0)