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
|`--output <PATH>`| Write to file instead of stdout |
65
65
|`--chain-id <ID>`| Set the chain ID (defaults to 0) |
66
66
|`--permit2`| Enable Permit2 with its canonical address |
67
-
|`--deterministic-deployer`| Enable the deterministic deployer (Nick's factory) with its canonical address |
67
+
|`--deterministic-deployer`| Enable the deterministic deployer (Nick's factory) |
68
+
|`--admin-proxy-owner <ADDR>`| Enable AdminProxy with the given owner |
69
+
70
+
### `init deploy`
71
+
72
+
Generate a starter config for **deploy mode** (contracts deployed via CREATE2 to a running chain). No `address` fields — addresses are computed deterministically. The deterministic deployer is not included in the config since it cannot be deployed via CREATE2 (it must already exist on-chain).
|`--output <PATH>`| Write to file instead of stdout |
89
+
|`--chain-id <ID>`| Set the chain ID (defaults to 0) |
90
+
|`--permit2`| Enable Permit2 |
68
91
|`--admin-proxy-owner <ADDR>`| Enable AdminProxy with the given owner |
69
92
70
93
### `genesis`
@@ -114,15 +137,17 @@ ev-deployer deploy \
114
137
The deploy pipeline:
115
138
116
139
1. Connects to the RPC and verifies the chain ID matches the config.
117
-
2. Checks that the deterministic deployer (`0x4e59b44847b379578588920ca78fbf26c0b4956c`) exists on-chain.
140
+
2. Checks that the [deterministic deployer](https://github.com/Arachnid/deterministic-deployment-proxy) (`0x4e59b44847b379578588920ca78fbf26c0b4956c`) exists on-chain.
118
141
3. Deploys each configured contract via CREATE2.
119
142
4. Verifies that the on-chain bytecode matches the expected bytecode (including patched immutables).
120
143
121
-
The `address` field in the config is **ignored** in deploy mode — addresses come from the CREATE2 computation.
144
+
Permit2 is deployed using the [canonical Uniswap salt](https://github.com/Uniswap/permit2/blob/main/script/DeployPermit2.s.sol), so it lands at its well-known address `0x000000000022D473030F116dDEE9F6B43aC78BA3` on any chain.
145
+
146
+
> **Using with ev-dev**: The deterministic deployer can be included in the ev-dev genesis via `ev-deployer init genesis --deterministic-deployer`, so `ev-deployer deploy` works against ev-dev. See the [ev-dev README](../ev-dev/README.md#live-contract-deployment-create2) for examples.
122
147
123
148
#### State file and resumability
124
149
125
-
The `--state` file tracks deployment progress. On first run it generates a random CREATE2 salt and records which contracts have been deployed. If the process is interrupted, re-running with the same state file resumes where it left off.
150
+
The `--state` file tracks deployment progressand records which contracts have been deployed. If the process is interrupted, re-running with the same state file resumes where it left off. Contracts with well-known salts (e.g. Permit2) use their canonical salt; others use a random salt generated on first run.
126
151
127
152
Immutability rules protect against accidental misconfiguration on resume:
0 commit comments