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: README.md
+178-1Lines changed: 178 additions & 1 deletion
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -248,7 +248,184 @@ npm run deploy -- --network <network>
248
248
249
249
### Deploy Proxy Contract
250
250
251
-
TODO: update this section
251
+
Follow these steps to deploy UTTProxy on a new chain, let's call it "target chain", and connect it to the main UTT contract:
252
+
253
+
#### 1. Prerequisites Setup
254
+
255
+
**Environment Variables:**
256
+
257
+
Add/update in .env (or console environment):
258
+
-`<NETWORK>_URL` - RPC endpoint for the new chain
259
+
- Appropriate API keys for contract verification (if supported)
260
+
-`TEST_PRIVATE_KEY` or `MAIN_PRIVATE_KEY` - Deployer wallet private key, should be same as for other networks;
261
+
- Our testnet deployer wallet is 0xc8c745De6a84DFF8E604c1fD4BE18baDd8433135
262
+
- Our mainnet deployer wallet is 0x0D1e9d15F6198C5458ca0Cd24b48f4D9B4AB942e
263
+
264
+
**Network Configuration:**
265
+
Add new network configuration in `hardhat.config.ts`:
266
+
267
+
1.**Add to networks section:**
268
+
```javascript
269
+
new_chain: {
270
+
url:process.env.NEW_CHAIN_URL,
271
+
accounts: [process.env.MAIN_PRIVATE_KEY??""],
272
+
chainId:<chain_id>
273
+
}
274
+
```
275
+
276
+
2. **Add to etherscan.customChains for contract verification:**
277
+
```javascript
278
+
{
279
+
network:"new_chain",
280
+
chainId:<chain_id>,
281
+
urls: {
282
+
apiURL:"https://<explorer_domain>/api",
283
+
browserURL:"https://<explorer_domain>"
284
+
}
285
+
}
286
+
```
287
+
288
+
**Note:** For Blockscout explorers, set the corresponding `etherscan.apiKey` entry to `null` (no API key required). For Etherscan-based explorers, you'll need to provide the appropriate API key.
289
+
290
+
#### 2. Find or Deploy LINK Token
291
+
292
+
If the target chain is already supported by Chainlink and has a faucet, we can use this. LINK token addresses on all supported chains are [listed in the Chainlink docs](https://docs.chain.link/resources/link-token-contracts).
293
+
294
+
Otherwise, we can deploy our own LINK token like so:
- Randomly generated 32-character hex strings (nohyphens), e.g. `30d3f168244f40788be35c05f6c5924f`; e.g. use a uuid v4 generator and remove hyphens.
335
+
- Mainnet and testnet variants of the same proxy chain my share job ids, but job ids of different proxy chains must be different. E.g. Aurora mainnet job id for the endorse job migt be equal to the Aurora testnet job, but must be different from the Optimism mainnet job.
336
+
337
+
**Redeploy Oracle Node:**
338
+
After adding the new chain configuration, rebuild and redeploy the Chainlink oracle node container to pick up the new jobs:
0 commit comments