@@ -78,15 +78,21 @@ contract InitializeL1BridgeContracts is Script {
78
78
79
79
vm.startBroadcast (L1_DEPLOYER_PRIVATE_KEY);
80
80
81
+ // note: we use call upgrade(...) and initialize(...) instead of upgradeAndCall(...),
82
+ // otherwise the contract owner would become ProxyAdmin.
83
+
81
84
// initialize ScrollChain
82
- proxyAdmin.upgradeAndCall (
85
+ proxyAdmin.upgrade (
83
86
ITransparentUpgradeableProxy (L1_SCROLL_CHAIN_PROXY_ADDR),
84
- L1_SCROLL_CHAIN_IMPLEMENTATION_ADDR,
85
- abi.encodeCall (
86
- ScrollChain.initialize,
87
- (L1_MESSAGE_QUEUE_PROXY_ADDR, L1_MULTIPLE_VERSION_ROLLUP_VERIFIER_ADDR, MAX_TX_IN_CHUNK)
88
- )
87
+ L1_SCROLL_CHAIN_IMPLEMENTATION_ADDR
88
+ );
89
+
90
+ ScrollChain (L1_SCROLL_CHAIN_PROXY_ADDR).initialize (
91
+ L1_MESSAGE_QUEUE_PROXY_ADDR,
92
+ L1_MULTIPLE_VERSION_ROLLUP_VERIFIER_ADDR,
93
+ MAX_TX_IN_CHUNK
89
94
);
95
+
90
96
ScrollChain (L1_SCROLL_CHAIN_PROXY_ADDR).addSequencer (L1_COMMIT_SENDER_ADDRESS);
91
97
ScrollChain (L1_SCROLL_CHAIN_PROXY_ADDR).addProver (L1_FINALIZE_SENDER_ADDRESS);
92
98
@@ -103,35 +109,32 @@ contract InitializeL1BridgeContracts is Script {
103
109
L2GasPriceOracle (L2_GAS_PRICE_ORACLE_PROXY_ADDR).updateWhitelist (L1_WHITELIST_ADDR);
104
110
105
111
// initialize L1MessageQueueWithGasPriceOracle
106
- proxyAdmin.upgradeAndCall (
112
+ proxyAdmin.upgrade (
107
113
ITransparentUpgradeableProxy (L1_MESSAGE_QUEUE_PROXY_ADDR),
108
- L1_MESSAGE_QUEUE_IMPLEMENTATION_ADDR,
109
- abi.encodeCall (
110
- L1MessageQueue.initialize,
111
- (
112
- L1_SCROLL_MESSENGER_PROXY_ADDR,
113
- L1_SCROLL_CHAIN_PROXY_ADDR,
114
- L1_ENFORCED_TX_GATEWAY_PROXY_ADDR,
115
- L2_GAS_PRICE_ORACLE_PROXY_ADDR,
116
- MAX_L1_MESSAGE_GAS_LIMIT
117
- )
118
- )
114
+ L1_MESSAGE_QUEUE_IMPLEMENTATION_ADDR
119
115
);
116
+
117
+ L1MessageQueueWithGasPriceOracle (L1_MESSAGE_QUEUE_PROXY_ADDR).initialize (
118
+ L1_SCROLL_MESSENGER_PROXY_ADDR,
119
+ L1_SCROLL_CHAIN_PROXY_ADDR,
120
+ L1_ENFORCED_TX_GATEWAY_PROXY_ADDR,
121
+ L2_GAS_PRICE_ORACLE_PROXY_ADDR,
122
+ MAX_L1_MESSAGE_GAS_LIMIT
123
+ );
124
+
120
125
L1MessageQueueWithGasPriceOracle (L1_MESSAGE_QUEUE_PROXY_ADDR).initializeV2 ();
121
126
122
127
// initialize L1ScrollMessenger
123
- proxyAdmin.upgradeAndCall (
128
+ proxyAdmin.upgrade (
124
129
ITransparentUpgradeableProxy (L1_SCROLL_MESSENGER_PROXY_ADDR),
125
- L1_SCROLL_MESSENGER_IMPLEMENTATION_ADDR,
126
- abi.encodeCall (
127
- L1ScrollMessenger.initialize,
128
- (
129
- L2_SCROLL_MESSENGER_PROXY_ADDR,
130
- L1_FEE_VAULT_ADDR,
131
- L1_SCROLL_CHAIN_PROXY_ADDR,
132
- L1_MESSAGE_QUEUE_PROXY_ADDR
133
- )
134
- )
130
+ L1_SCROLL_MESSENGER_IMPLEMENTATION_ADDR
131
+ );
132
+
133
+ L1ScrollMessenger (payable (L1_SCROLL_MESSENGER_PROXY_ADDR)).initialize (
134
+ L2_SCROLL_MESSENGER_PROXY_ADDR,
135
+ L1_FEE_VAULT_ADDR,
136
+ L1_SCROLL_CHAIN_PROXY_ADDR,
137
+ L1_MESSAGE_QUEUE_PROXY_ADDR
135
138
);
136
139
137
140
// initialize EnforcedTxGateway
@@ -147,63 +150,72 @@ contract InitializeL1BridgeContracts is Script {
147
150
);
148
151
149
152
// initialize L1CustomERC20Gateway
150
- proxyAdmin.upgradeAndCall (
153
+ proxyAdmin.upgrade (
151
154
ITransparentUpgradeableProxy (L1_CUSTOM_ERC20_GATEWAY_PROXY_ADDR),
152
- L1_CUSTOM_ERC20_GATEWAY_IMPLEMENTATION_ADDR,
153
- abi.encodeCall (
154
- L1CustomERC20Gateway.initialize,
155
- (L2_CUSTOM_ERC20_GATEWAY_PROXY_ADDR, L1_GATEWAY_ROUTER_PROXY_ADDR, L1_SCROLL_MESSENGER_PROXY_ADDR)
156
- )
155
+ L1_CUSTOM_ERC20_GATEWAY_IMPLEMENTATION_ADDR
156
+ );
157
+
158
+ L1CustomERC20Gateway (L1_CUSTOM_ERC20_GATEWAY_PROXY_ADDR).initialize (
159
+ L2_CUSTOM_ERC20_GATEWAY_PROXY_ADDR,
160
+ L1_GATEWAY_ROUTER_PROXY_ADDR,
161
+ L1_SCROLL_MESSENGER_PROXY_ADDR
157
162
);
158
163
159
164
// initialize L1ERC1155Gateway
160
- proxyAdmin.upgradeAndCall (
165
+ proxyAdmin.upgrade (
161
166
ITransparentUpgradeableProxy (L1_ERC1155_GATEWAY_PROXY_ADDR),
162
- L1_ERC1155_GATEWAY_IMPLEMENTATION_ADDR,
163
- abi.encodeCall (L1ERC1155Gateway.initialize, (L2_ERC1155_GATEWAY_PROXY_ADDR, L1_SCROLL_MESSENGER_PROXY_ADDR))
167
+ L1_ERC1155_GATEWAY_IMPLEMENTATION_ADDR
168
+ );
169
+
170
+ L1ERC1155Gateway (L1_ERC1155_GATEWAY_PROXY_ADDR).initialize (
171
+ L2_ERC1155_GATEWAY_PROXY_ADDR,
172
+ L1_SCROLL_MESSENGER_PROXY_ADDR
164
173
);
165
174
166
175
// initialize L1ERC721Gateway
167
- proxyAdmin.upgradeAndCall (
176
+ proxyAdmin.upgrade (
168
177
ITransparentUpgradeableProxy (L1_ERC721_GATEWAY_PROXY_ADDR),
169
- L1_ERC721_GATEWAY_IMPLEMENTATION_ADDR,
170
- abi.encodeCall (L1ERC721Gateway.initialize, (L2_ERC721_GATEWAY_PROXY_ADDR, L1_SCROLL_MESSENGER_PROXY_ADDR))
178
+ L1_ERC721_GATEWAY_IMPLEMENTATION_ADDR
179
+ );
180
+
181
+ L1ERC721Gateway (L1_ERC721_GATEWAY_PROXY_ADDR).initialize (
182
+ L2_ERC721_GATEWAY_PROXY_ADDR,
183
+ L1_SCROLL_MESSENGER_PROXY_ADDR
171
184
);
172
185
173
186
// initialize L1ETHGateway
174
- proxyAdmin.upgradeAndCall (
175
- ITransparentUpgradeableProxy (L1_ETH_GATEWAY_PROXY_ADDR),
176
- L1_ETH_GATEWAY_IMPLEMENTATION_ADDR,
177
- abi.encodeCall (
178
- L1ETHGateway.initialize,
179
- (L2_ETH_GATEWAY_PROXY_ADDR, L1_GATEWAY_ROUTER_PROXY_ADDR, L1_SCROLL_MESSENGER_PROXY_ADDR)
180
- )
187
+ proxyAdmin.upgrade (ITransparentUpgradeableProxy (L1_ETH_GATEWAY_PROXY_ADDR), L1_ETH_GATEWAY_IMPLEMENTATION_ADDR);
188
+
189
+ L1ETHGateway (L1_ETH_GATEWAY_PROXY_ADDR).initialize (
190
+ L2_ETH_GATEWAY_PROXY_ADDR,
191
+ L1_GATEWAY_ROUTER_PROXY_ADDR,
192
+ L1_SCROLL_MESSENGER_PROXY_ADDR
181
193
);
182
194
183
195
// initialize L1StandardERC20Gateway
184
- proxyAdmin.upgradeAndCall (
196
+ proxyAdmin.upgrade (
185
197
ITransparentUpgradeableProxy (L1_STANDARD_ERC20_GATEWAY_PROXY_ADDR),
186
- L1_STANDARD_ERC20_GATEWAY_IMPLEMENTATION_ADDR,
187
- abi.encodeCall (
188
- L1StandardERC20Gateway.initialize,
189
- (
190
- L2_STANDARD_ERC20_GATEWAY_PROXY_ADDR,
191
- L1_GATEWAY_ROUTER_PROXY_ADDR,
192
- L1_SCROLL_MESSENGER_PROXY_ADDR,
193
- L2_SCROLL_STANDARD_ERC20_ADDR,
194
- L2_SCROLL_STANDARD_ERC20_FACTORY_ADDR
195
- )
196
- )
198
+ L1_STANDARD_ERC20_GATEWAY_IMPLEMENTATION_ADDR
199
+ );
200
+
201
+ L1StandardERC20Gateway (L1_STANDARD_ERC20_GATEWAY_PROXY_ADDR).initialize (
202
+ L2_STANDARD_ERC20_GATEWAY_PROXY_ADDR,
203
+ L1_GATEWAY_ROUTER_PROXY_ADDR,
204
+ L1_SCROLL_MESSENGER_PROXY_ADDR,
205
+ L2_SCROLL_STANDARD_ERC20_ADDR,
206
+ L2_SCROLL_STANDARD_ERC20_FACTORY_ADDR
197
207
);
198
208
199
209
// initialize L1WETHGateway
200
- proxyAdmin.upgradeAndCall (
210
+ proxyAdmin.upgrade (
201
211
ITransparentUpgradeableProxy (L1_WETH_GATEWAY_PROXY_ADDR),
202
- L1_WETH_GATEWAY_IMPLEMENTATION_ADDR,
203
- abi.encodeCall (
204
- L1WETHGateway.initialize,
205
- (L2_WETH_GATEWAY_PROXY_ADDR, L1_GATEWAY_ROUTER_PROXY_ADDR, L1_SCROLL_MESSENGER_PROXY_ADDR)
206
- )
212
+ L1_WETH_GATEWAY_IMPLEMENTATION_ADDR
213
+ );
214
+
215
+ L1WETHGateway (payable (L1_WETH_GATEWAY_PROXY_ADDR)).initialize (
216
+ L2_WETH_GATEWAY_PROXY_ADDR,
217
+ L1_GATEWAY_ROUTER_PROXY_ADDR,
218
+ L1_SCROLL_MESSENGER_PROXY_ADDR
207
219
);
208
220
209
221
// set WETH gateway in router
0 commit comments