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
#### 1. Collect addresses for at least 2 initial members
126
-
-[ ] addr 1
127
-
-[ ] addr 2
126
+
127
+
Output
128
+
129
+
-`Addr_1`
130
+
-`Addr_2`
128
131
129
132
130
133
#### 2. Deploy initial DAO
@@ -137,43 +140,45 @@ Output:
137
140
138
141
#### 3. Setup initial Split contract through the 0xSplits dApp
139
142
140
-
- Go to this [link](https://app.0xsplits.xyz/) to create new Split with initial members, split amounts can be equal as these will be updated in the first split proposals. You can either set the DAO Safe address or an EOA as the split controller (you must transfer ownership later). You can freely set the distribution threshold and sponsorship fee.
143
+
- Go to the [0xSplit dApp](https://app.0xsplits.xyz/) to create new Split with initial members (at least two), split amounts can be equal as these will be updated in the first split proposals. You can either set the DAO Safe address or an EOA as the split controller (you must transfer ownership later). You can freely set the distribution threshold and sponsorship fee.
141
144
142
145
Output:
143
146
-`split` address (`SPLIT_ADDRESS`)
144
147
145
-
#### 4. Deploy a NetworkRegistry contract in the home network
148
+
#### 4. Deploy a NetworkRegistry contract in the Home network
146
149
147
-
- Before running the deployment script in the `protocol-guild-contract` repository you download locally, go to the `constants/config.ts` directory, find the `home network` you plan to work with and set the `moloch``safe` & `split` addresses to the contract addresses you deployed in the previous steps.
150
+
- Before running the deployment script in the `protocol-guild-contract` repository you download locally, go to the `constants/config.ts` directory, find the chainID of the `home network` you plan to work with and set the `moloch`,`safe` & `split` addresses to the contract addresses you deployed in the previous steps.
148
151
- Open a terminal, go to the directory where `protocol-guild-contract` is located and run the following command line (example uses Goerli):
- Confirm the DAO Safe has ownership over the registry contract
155
-
- Finally, set the new `registry` address within the `home network` in the `constants/config.ts` file.
158
+
- Finally, set the new `pgRegistry` address within the `home network` in the `constants/config.ts` file.
156
159
157
160
Output:
158
161
159
162
-`registry` address (`REGISTRY_ADDRESS`)
160
163
161
164
#### 5. Transfer control of the 0xSplit to NetworkRegistry
162
165
163
-
- If you set the 0xSplit controller to an EOA, you can both `transferControl` to the `registry` contract through 0xSplits dApp. Alternatively, you can run the following script in the `protocol-guild-contract` repo:
166
+
- If you set the 0xSplit controller to an EOA, you can `transferControl` to the `registry` contract through 0xSplits dApp. Alternatively, you can run the following script in the `protocol-guild-contract` repo:
164
167
165
168
```bash
166
169
pnpm hardhat --network goerli registry:ownSplit
167
170
```
168
171
169
-
If you initially set the 0xSplit controller to the DAO's Safe, you'll need to submit a DAO proposal using the DAOHaus `Multicall Proposal Builder`. For this, you need the `splitMain` address to craft a tx to call the`transferControl(<split>, <new_controller>)`
172
+
If you initially set the 0xSplit controller to the DAO's Safe, you'll need to submit a DAO proposal using the DAOHaus `Multicall Proposal Builder`. For this, you need the `splitMain` address to craft a tx that calls`transferControl(<split>, <new_controller>)`
170
173
- If you set the 0xSplit controller to an external smart contract wallet, try using wallet connect or a vendor tx builder dApp.
171
174
172
-
- Make sure the `registry` address is set as the new potential controller.
175
+
- Make sure the `registry` address is set as the new potential 0xSplit controller.
173
176
174
177
#### 6. NetworkRegistry accepts control of the 0xSplit
175
178
176
-
- Now the new controller must accept the role for the 0xSplit contract. If the replica `registry` has an EOA as a fallback owner, you just need to call `acceptSplitControl()`. Otherview, you'll need to submit a DAO proposal using the DAOHaus `Multicall Proposal Builder` to craft a cross-chain tx by calling the `acceptNetworkSplitControl([<chainId>], [<relayerFee>])`.
179
+
- Now the new controller must accept the role for the 0xSplit contract, so you need to submit a DAO proposal using the DAOHaus `Multicall Proposal Builder` to craft a tx that calls `acceptSplitControl()` in the `registry` contract.
180
+
181
+
- Make sure the `registry` address is set as the 0xSplit controller: you verify that in the 0xSplit dApp or by opening the `splitMain` contract in the block explorer and look for the `getController(split)` function.
177
182
178
183
### Deploy a Foreign Registry
179
184
@@ -210,17 +215,17 @@ Output:
210
215
211
216
#### 3. Transfer + Accept control of the 0xSplit to Replica NetworkRegistry
212
217
213
-
- You can follow the same instructions in Steps 5 & 6 from above but for the replica network. Remember that you might set your deployer address (EOA) as the 0xSplit controller.
218
+
- You can follow the same instructions in Steps 5 & 6 from above but for the replica network. Remember that you might set your deployer address (EOA) as the 0xSplit controller, so you might just need to call `acceptSplitControl()`. Otherwise, you'll to craft a cross-chain tx by calling the `acceptNetworkSplitControl([<chainId>], [<relayerFee>])` through the main `registry` contract.
214
219
215
-
-You can also use the UI to batch the two actions required to add a new replica in the main registry (`updateNetworkRegistry` + `acceptNetworkSplitControl`). See the next section for instructions.
220
+
-However,you can also use the UI to batch the two actions required to add a new replica in the main registry (`updateNetworkRegistry` + `acceptNetworkSplitControl`). See the next section for instructions.
216
221
217
222
- In the end, make sure the replica `registry` address is set as the new controller.
218
223
219
-
#### 4. Enable a foreign registry + acept 0xSplit control in the frontend
224
+
#### 4. Enable a foreign registry + accept 0xSplit control in the frontend
220
225
221
-
1. Open the [targetDao.ts](./src/targetDao.ts) config file and add a new record under `REPLICA_CHAIN_ADDRESSES` in the `TARGETS` object.
226
+
1. Open the [targetDao.ts](./src/targetDao.ts) config file and add a new record (if not exists) under `REPLICA_CHAINS` in the `TARGETS` object.
222
227
2. Make sure the [keychain.ts](./src/utils/keychain.ts) config file supports the network where you deployed the new registry.
223
-
2.Navigate to the `Registries` page, open the menu for the new network registry and click on `Register`. This proposal form will batch the two actions required to enable a new replica in the main registry (`updateNetworkRegistry` + `acceptNetworkSplitControl`).
228
+
2.In the frontend, navigate to the `Registries` page, open the menu for the new network registry and click on `Register`. This proposal form will batch the two actions required to enable a new replica in the main registry (`updateNetworkRegistry` + `acceptNetworkSplitControl`).
0 commit comments