From 0f2d295d43b3f27b4f14962148d239e124796d6b Mon Sep 17 00:00:00 2001 From: nicholaspai <9457025+nicholaspai@users.noreply.github.com> Date: Thu, 20 May 2021 00:07:15 -0400 Subject: [PATCH] feat: Add Mainnet deployments for Beacon (L2<>L1) contracts + new hardhat features (#2998) * WIP * add SourceGovernor Signed-off-by: Nick Pai * allow importer to set path Signed-off-by: Nick Pai * Add chainIds to config * rename to workingDir Signed-off-by: Nick Pai --- hardhat.config.js | 2 +- packages/common/hardhat.config.js | 17 ----------------- packages/common/src/HardhatConfig.js | 16 +++++++++++++++- packages/common/src/hardhat/tasks/bridge.js | 8 ++++---- packages/core/hardhat.config.js | 2 +- packages/core/networks/1.json | 16 ++++++++++++++++ packages/disputer/hardhat.config.js | 2 +- .../financial-templates-lib/hardhat.config.js | 2 +- .../funding-rate-proposer/hardhat.config.js | 2 +- packages/liquidator/hardhat.config.js | 2 +- packages/merkle-distributor/hardhat.config.ts | 2 +- packages/monitors/hardhat.config.js | 2 +- packages/optimistic-oracle/hardhat.config.js | 2 +- packages/trader/hardhat.config.ts | 2 +- 14 files changed, 45 insertions(+), 32 deletions(-) delete mode 100644 packages/common/hardhat.config.js diff --git a/hardhat.config.js b/hardhat.config.js index 094a033a44..e92d0147c9 100644 --- a/hardhat.config.js +++ b/hardhat.config.js @@ -13,4 +13,4 @@ const configOverride = { }, }; -module.exports = getHardhatConfig(configOverride); +module.exports = getHardhatConfig(configOverride, coreWkdir); diff --git a/packages/common/hardhat.config.js b/packages/common/hardhat.config.js deleted file mode 100644 index f3ab0d9864..0000000000 --- a/packages/common/hardhat.config.js +++ /dev/null @@ -1,17 +0,0 @@ -const { getHardhatConfig } = require("./index.js"); - -const path = require("path"); -const coreWkdir = path.dirname(require.resolve("@uma/core/package.json")); -const packageWkdir = path.dirname(require.resolve("@uma/common/package.json")); - -const configOverride = { - paths: { - root: coreWkdir, - sources: `${coreWkdir}/contracts`, - artifacts: `${coreWkdir}/artifacts`, - cache: `${coreWkdir}/cache`, - tests: `${packageWkdir}/test`, - }, -}; - -module.exports = getHardhatConfig(configOverride); diff --git a/packages/common/src/HardhatConfig.js b/packages/common/src/HardhatConfig.js index 4427dd641d..5dea01f31c 100644 --- a/packages/common/src/HardhatConfig.js +++ b/packages/common/src/HardhatConfig.js @@ -1,6 +1,7 @@ const { getNodeUrl, mnemonic } = require("./TruffleConfig"); +const path = require("path"); -function getHardhatConfig(configOverrides) { +function getHardhatConfig(configOverrides, workingDir = "./") { // Hard hat plugins. These are imported inside `getHardhatConfig` so that other packages importing this function // get access to the plugins as well. require("@nomiclabs/hardhat-truffle5"); @@ -35,22 +36,27 @@ function getHardhatConfig(configOverrides) { url: "http://127.0.0.1:8545", }, rinkeby: { + chainId: 4, url: getNodeUrl("rinkeby", true), accounts: { mnemonic }, }, goerli: { + chainId: 5, url: getNodeUrl("goerli", true), accounts: { mnemonic }, }, mumbai: { + chainId: 80001, url: getNodeUrl("polygon-mumbai", true), accounts: { mnemonic }, }, matic: { + chainId: 137, url: getNodeUrl("polygon-matic", true), accounts: { mnemonic }, }, mainnet: { + chainId: 1, url: getNodeUrl("mainnet", true), accounts: { mnemonic }, }, @@ -66,6 +72,14 @@ function getHardhatConfig(configOverrides) { namedAccounts: { deployer: 0, }, + external: { + deployments: { + mainnet: [path.join(workingDir, "build/contracts"), path.join(workingDir, "deployments/mainnet")], + mumbai: [path.join(workingDir, "build/contracts"), path.join(workingDir, "deployments/mumbai")], + matic: [path.join(workingDir, "build/contracts"), path.join(workingDir, "deployments/matic")], + rinkeby: [path.join(workingDir, "build/contracts"), path.join(workingDir, "deployments/rinkeby")], + }, + }, }; return { ...defaultConfig, ...configOverrides }; } diff --git a/packages/common/src/hardhat/tasks/bridge.js b/packages/common/src/hardhat/tasks/bridge.js index 043bdce1d9..574a292f52 100644 --- a/packages/common/src/hardhat/tasks/bridge.js +++ b/packages/common/src/hardhat/tasks/bridge.js @@ -9,8 +9,8 @@ const DEFAULT_ADMIN_ROLE = "0x00000000000000000000000000000000000000000000000000 task("register-generic-resource", "Admin can set generic resource ID on Bridge") .addParam("id", "Resource ID to set", "0x0", types.string) .addParam("target", "Contract to delegate call to for this resource ID", ZERO_ADDRESS, types.string) - .addOptionalParam("deposit", "Deposit function prototype string (e.g. func(uint256,bool))", null, types.string) - .addOptionalParam("execute", "Contract to delegate call to for this resource ID", null, types.string) + .addOptionalParam("deposit", "Deposit function prototype string (e.g. func(uint256,bool))", "", types.string) + .addOptionalParam("execute", "Contract to delegate call to for this resource ID", "", types.string) .setAction(async function (taskArguments, hre) { const { deployments, getNamedAccounts, web3 } = hre; const { deployer } = await getNamedAccounts(); @@ -33,8 +33,8 @@ task("register-generic-resource", "Admin can set generic resource ID on Bridge") const genericHandler = new web3.eth.Contract(GenericHandler.abi, GenericHandler.address); // Compute function signatures by hashing prototype strings: - const depositFuncSig = deposit ? _getFunctionSignature(deposit) : BLANK_FUNCTION_SIG; - const executeFuncSig = execute ? _getFunctionSignature(execute) : BLANK_FUNCTION_SIG; + const depositFuncSig = deposit !== "" ? _getFunctionSignature(deposit) : BLANK_FUNCTION_SIG; + const executeFuncSig = execute !== "" ? _getFunctionSignature(execute) : BLANK_FUNCTION_SIG; console.log(`Deposit function signature: ${depositFuncSig}`); console.log(`Execute function signature: ${executeFuncSig}`); console.log( diff --git a/packages/core/hardhat.config.js b/packages/core/hardhat.config.js index 0491edcde4..a30a925353 100644 --- a/packages/core/hardhat.config.js +++ b/packages/core/hardhat.config.js @@ -13,4 +13,4 @@ const configOverride = { }, }; -module.exports = getHardhatConfig(configOverride); +module.exports = getHardhatConfig(configOverride, __dirname); diff --git a/packages/core/networks/1.json b/packages/core/networks/1.json index 880baf5742..f6be1d8775 100644 --- a/packages/core/networks/1.json +++ b/packages/core/networks/1.json @@ -74,5 +74,21 @@ { "contractName": "DSProxyFactory", "address": "0xAB75727d4e89A7f7F04f57C00234a35950527115" + }, + { + "contractName": "Bridge", + "address": "0xBA26bC014c4c889431826C123492861e886408b9" + }, + { + "contractName": "GenericHandler", + "address": "0x60E6140330F8FE31e785190F39C1B5e5e833c2a9" + }, + { + "contractName": "SourceOracle", + "address": "0x3811A29571c9912f15fEFF0747d2F34Aa48f6721" + }, + { + "contractName": "SourceGovernor", + "address": "0x1ccC90F5dd09c747fe46e176f5b5F7762a13Ba8F" } ] diff --git a/packages/disputer/hardhat.config.js b/packages/disputer/hardhat.config.js index 7ea040caed..d0ee56b5e1 100644 --- a/packages/disputer/hardhat.config.js +++ b/packages/disputer/hardhat.config.js @@ -14,4 +14,4 @@ const configOverride = { }, }; -module.exports = getHardhatConfig(configOverride); +module.exports = getHardhatConfig(configOverride, coreWkdir); diff --git a/packages/financial-templates-lib/hardhat.config.js b/packages/financial-templates-lib/hardhat.config.js index 0ff08afe25..10c478062b 100644 --- a/packages/financial-templates-lib/hardhat.config.js +++ b/packages/financial-templates-lib/hardhat.config.js @@ -14,4 +14,4 @@ const configOverride = { }, }; -module.exports = getHardhatConfig(configOverride); +module.exports = getHardhatConfig(configOverride, coreWkdir); diff --git a/packages/funding-rate-proposer/hardhat.config.js b/packages/funding-rate-proposer/hardhat.config.js index 98cbb2ebf9..f765db9afa 100644 --- a/packages/funding-rate-proposer/hardhat.config.js +++ b/packages/funding-rate-proposer/hardhat.config.js @@ -14,4 +14,4 @@ const configOverride = { }, }; -module.exports = getHardhatConfig(configOverride); +module.exports = getHardhatConfig(configOverride, coreWkdir); diff --git a/packages/liquidator/hardhat.config.js b/packages/liquidator/hardhat.config.js index 9055308e00..aec6b4937f 100644 --- a/packages/liquidator/hardhat.config.js +++ b/packages/liquidator/hardhat.config.js @@ -14,4 +14,4 @@ const configOverride = { }, }; -module.exports = getHardhatConfig(configOverride); +module.exports = getHardhatConfig(configOverride, coreWkdir); diff --git a/packages/merkle-distributor/hardhat.config.ts b/packages/merkle-distributor/hardhat.config.ts index ad8d8aee82..bf7c6cb893 100644 --- a/packages/merkle-distributor/hardhat.config.ts +++ b/packages/merkle-distributor/hardhat.config.ts @@ -17,4 +17,4 @@ const configOverride = { }, }; -module.exports = getHardhatConfig(configOverride); +module.exports = getHardhatConfig(configOverride, coreWkdir); diff --git a/packages/monitors/hardhat.config.js b/packages/monitors/hardhat.config.js index 08598fb16c..8a344c5949 100644 --- a/packages/monitors/hardhat.config.js +++ b/packages/monitors/hardhat.config.js @@ -14,4 +14,4 @@ const configOverride = { }, }; -module.exports = getHardhatConfig(configOverride); +module.exports = getHardhatConfig(configOverride, coreWkdir); diff --git a/packages/optimistic-oracle/hardhat.config.js b/packages/optimistic-oracle/hardhat.config.js index f9695d3c9d..df46ad0128 100644 --- a/packages/optimistic-oracle/hardhat.config.js +++ b/packages/optimistic-oracle/hardhat.config.js @@ -14,4 +14,4 @@ const configOverride = { }, }; -module.exports = getHardhatConfig(configOverride); +module.exports = getHardhatConfig(configOverride, coreWkdir); diff --git a/packages/trader/hardhat.config.ts b/packages/trader/hardhat.config.ts index 11822b4fc9..fa2133d4cb 100644 --- a/packages/trader/hardhat.config.ts +++ b/packages/trader/hardhat.config.ts @@ -17,4 +17,4 @@ const configOverride = { }, }; -module.exports = getHardhatConfig(configOverride); +module.exports = getHardhatConfig(configOverride, coreWkdir);