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
Removed .env file from git
Added hardhat config for L1 testnet and mainnet Alchemy as a provider
Fixing a mistake
Quick undo
Latest changes for L1 mainnet deploy
L1testnet run details
Added a dummy transfer script
A minor tidy up of step 0 and step 1
Further fixes to the deployment README
Added a step0.ts
Removed some hard coded values in .env.example
Copy file name to clipboardExpand all lines: scripts/README.md
+34-14Lines changed: 34 additions & 14 deletions
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -41,64 +41,84 @@ in the `contract.ts` file.
41
41
42
42
## Step 5
43
43
44
-
Create a `.env` file. Use the `env.example` as a template.
44
+
Create a `.env` file. Use the `env.example` as a template. Set the following values in the `.env`
45
+
46
+
* Set the DEPLOYER_CONTRACT_ADDRESS to match the address of the OwnableCreate2Deployer factory.
47
+
* Set the MULTICALL_ADMIN_PUB_KEY and FACTORY_ADMIN_PUB_KEY to match the address of the address of the privileged transaction multisig. This address for reference should be `0x0E2D55943f4EF07c336C12A85d083c20FF189182`.
45
48
46
49
## Execution steps
47
50
51
+
### `step0.ts`
52
+
53
+
In this step we deploy the `MultiCallDeploy` only. We use the standard deployment key (Orange key) for this deployment, as the address of the MultiCallDeploy strictly does
54
+
not need to be the same across all the environments.
55
+
56
+
* Set the value of RELAYER_SUBMITTER_EOA_PUB_KEY to match the EOA of the primary Relayer submitter. The Submitter EOA is granted execute permission on the MultiCallDeploy.
57
+
* Set the value of MULTICALL_ADMIN_PUB_KEY
58
+
* Set the `accountIndex` to 0 in `wallet-options.ts`.
59
+
* Execute the command `npx hardhat run scripts/step0.ts --network <ENV>`
60
+
48
61
### `step1.ts`
49
62
50
-
In this step we deploy the `MultiCallDeploy`, and the `Factory`contracts. We use the Passport Nonce reserver
63
+
In this step we deploy the `Factory`contract. We use the Passport Nonce reserver
51
64
in this step because we want the `Factory` contract to have the same address across all our chains, as
52
65
this address is used to produce a deterministic counter factual address for the smart contract wallets across
53
66
all the chains.
54
67
55
-
* Set the `accountIndex` to 10.
68
+
* Set the value of RELAYER_SUBMITTER_EOA_PUB_KEY to match the EOA of the primary Relayer submitter.
69
+
* Set the value of the FACTORY_ADMIN_PUB_KEY to the privileged mulstisig pub key (Purple ledger)
70
+
* Set the value of `multiCallDeployAddress` to match the address of the contract deployed in Step0.
71
+
* Set the `accountIndex` to 10 in `wallet-options.ts`.
56
72
* Execute the command `npx hardhat run scripts/step1.ts --network <ENV>`
57
73
58
74
### `step2.ts`
59
75
60
76
In this step we deploy the contract that tracks the location of the latest wallet implementation. As this step
61
-
just uses the CREATE2 contract factory we use the standard deployment key.
77
+
just uses the CREATE2 contract factory we use the standard deployment key (Orange Key!!!).
62
78
79
+
* Set the value of DEPLOYER_CONTRACT_ADDRESS to the address of the CREATE2 factory contract.
80
+
* Set the value of WALLET_IMPL_LOCATOR_ADMIN, and WALLET_IMPL_CHANGER_ADMIN environment variables to the public key of the Privileged key.
63
81
* Set the `accountIndex` to 0.
64
82
* Execute the command `npx hardhat run scripts/step2.ts --network <ENV>`
65
83
66
84
### `step3.ts`
67
85
68
-
In this step we deploy the startup wallet. This wallet address is used to generate the CFA, and hence like the Factory
69
-
uses a Passport nonce reserver key.
86
+
In this step we deploy the startup wallet. This wallet address is used to generate the CFA, and hence like the Factory uses a Passport nonce reserver key.
70
87
71
88
* Set the `accountIndex` to 10.
89
+
* WARNING: COPY the `LatestWalletImplLocator` address into the `step3.ts` script from step2.
72
90
* Execute the command `npx hardhat run scripts/step3.ts --network <ENV>`
73
-
* WARNING: COPY the `LatestWalletImplLocator` address into the `step3.ts` script from step2.
74
91
75
92
### `step4.ts`
76
93
77
-
In this step we deploy the `MainModuleDynamicAuth` module, and it can simply use the standard deployment key.
94
+
In this step we deploy the `MainModuleDynamicAuth` module, and it should use the standard deployment key (Orange Key!!!)
78
95
79
96
* Set the `accountIndex` to 0.
97
+
* WARNING: COPY the `FactoryAddress` address into the `step4.ts` script from step1.
98
+
* WARNING: COPY the `StartupWalletImpl` address into the `step4.ts` script from step3.
80
99
* Execute the command `npx hardhat run scripts/step4.ts --network <ENV>`
81
-
* WARNING: COPY the `FactoryAddress` address into the `step4.ts` script from step1.
82
-
* WARNING: COPY the `StartupWalletImpl` address into the `step4.ts` script from step3.
83
100
84
101
### `step5.ts`
85
102
86
103
In this step we deploy the Signer contract, which is also used to generate the CFA, and hence like the Factory, and
87
-
Startup wallet implementation, we use the Passport nonce reserver key in this step.
104
+
Startup wallet implementation, we use the Passport nonce reserver key (Black Key!!!) in this step.
88
105
89
106
* Set the `accountIndex` to 10.
107
+
* Set the SIGNER_ROOT_ADMIN_PUB_KEY to the Privileged public key.
108
+
* Set the SIGNER_ADMIN_PUB_KEY to the relevant Breakglass public key.
109
+
* Set the IMMUTABLE_SIGNER_PUB_KEY
90
110
* Execute the command `npx hardhat run scripts/step5.ts --network <ENV>`
91
111
92
112
### `step6.ts`
93
113
94
114
In this step we point the `LatestWalletImplLocator` to the `MainModuleDynamicAuth` module address. In this step
95
-
we use the privileged deployment key, as we gave this key authority to alter the implementation address in `step2.ts`
115
+
we use the privileged deployment key (Purple Key!!!), as we gave this key authority to alter the implementation address in `step2.ts`.
96
116
above.
97
117
98
118
* Set the `accountIndex` to 10.
119
+
* WARNING: COPY the `MainModuleDynamicAuth` address into the `step6.ts` script from step4.
120
+
* WARNING: COPY the `LatestWalletImplLocator` address into the `step6.ts` script from step2.
99
121
* Execute the command `npx hardhat run scripts/step6.ts --network <ENV>`
100
-
* WARNING: COPY the `MainModuleDynamicAuth` address into the `step6.ts` script from step4.
101
-
* WARNING: COPY the `LatestWalletImplLocator` address into the `step6.ts` script from step2.
0 commit comments