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: protocol/l2-contract-upgrades.md
+6-6Lines changed: 6 additions & 6 deletions
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -74,17 +74,17 @@ The NUT file will be stored in the monorepo, and tracked by git. It will be upda
74
74
75
75
A given set of upgrade transactions will typically perform the following actions:
76
76
77
-
1. deploy new `DeployerWrapper` contract
78
-
2. deploy new implementations
77
+
1. deploy new `ConditionalDeployer` contract
78
+
2. deploy new implementations via the `ConditionalDeployer`
79
79
2. deploy a new `L2ContractsManager`
80
80
3. update the `ProxyAdmin` (This step will only be needed the first time this scheme is used)
81
81
4. execute a call to `ProxyAdmin.upgradePredeploys()`
82
82
1. This function will `DELEGATECALL` the new `L2ContractsManager`'s `upgrade()` function.
83
83
2. For all predeploys being upgrade, `L2ContractsManager.upgrade()` will make a call to that predeploy's `upgradeTo()` function
84
84
85
-
### New DeployerWrapper
85
+
### New ConditionalDeployer
86
86
87
-
A new `DeployerWrapper` contract is needed to ensure that step 2 "deploy new implementations" can preserve the following properties of the L1 OPCM system:
87
+
A new `ConditionalDeployer` contract is needed to ensure that step 2 "deploy new implementations" can preserve the following properties of the L1 OPCM system:
88
88
89
89
1. If a contract's bytecode is unchanged, then the implementation address will be unchanged. This
90
90
is achieved on L1 in the DeployImplemenations script's [use](https://github.com/ethereum-optimism/optimism/blob/60f0c8d0beb2ea22f0ebc11416a22978b182dbfa/packages/contracts-bedrock/scripts/deploy/DeployImplementations.s.sol#L260) of [`createDeterministic`](https://github.com/ethereum-optimism/optimism/blob/60f0c8d0beb2ea22f0ebc11416a22978b182dbfa/packages/contracts-bedrock/scripts/libraries/DeployUtils.sol#L145).
@@ -94,12 +94,12 @@ A new `DeployerWrapper` contract is needed to ensure that step 2 "deploy new imp
94
94
regardless the upgrade call will always be included in the `L2ContractsManager` so that it need not
95
95
be edited between upgrades.
96
96
97
-
The `DeployerWrapper` contract will be very minimal contract which will receive the initcode and then:
97
+
The `ConditionalDeployer` contract will be very minimal contract which will receive the initcode and then:
98
98
1. determine whether a create2 collision will occur
99
99
2. if not: forward the initcode to the [determinstic-deployer](https://github.com/Arachnid/deterministic-deployment-proxy/blob/master/source/deterministic-deployment-proxy.yul#L13) contract.
100
100
3. if yes: return
101
101
102
-
The `DeployerWrapper` should not revert if called with properly formed inputs.
102
+
The `ConditionalDeployer` should not revert if called with properly formed inputs.
0 commit comments