@@ -20,8 +20,35 @@ At this point, you should be able to view an environment's config (try `zeus env
20
20
21
21
### Writing a Script
22
22
23
- Scripts are broken up into multiple steps TODO
24
-
23
+ Scripts are broken up into multiple steps, typically following a deploy-queue-execute pattern:
24
+
25
+ 1 . ** Deploy (1-deployContracts.s.sol)**
26
+ - Inherits from ` EOADeployer `
27
+ - Deploys new contract implementations
28
+ - Validates deployments through extensive checks:
29
+ - Implementation addresses
30
+ - Proxy admin ownership
31
+ - Constructor parameters
32
+ - Initialization state
33
+ - Version numbers
34
+
35
+ 2 . ** Queue (2-queueUpgrade.s.sol)**
36
+ - Inherits from ` MultisigBuilder `
37
+ - Prepares upgrade transaction for the Timelock
38
+ - Constructs calldata for the Executor Multisig
39
+ - Schedules the transaction in the Timelock
40
+ - Includes validation to ensure proper queuing
41
+
42
+ 3 . ** Execute (3-executeUpgrade.s.sol)**
43
+ - Inherits from the Queue script
44
+ - Executes the queued transaction after the timelock delay
45
+ - Performs final validation of the upgrade:
46
+ - Proxy implementation addresses
47
+ - Proxy admin ownership
48
+ - Constructor parameters
49
+ - Initialization state
50
+
51
+ Each step should include comprehensive test functions to validate the changes at each stage of the upgrade process.
25
52
26
53
### EOADeployer
27
54
0 commit comments