break out deploy configs and add a 3 testnet script (#676)

* feature: add rinkeby config and 3 testnet deploy script

* chore: add threeTestnets bridge and improve scripts layout

* chore: move configs to mainnet/testnet folders

* chore: move RPC to an env var, fix some imports
buddies-main-deployment
James Prestwich 3 years ago committed by GitHub
parent f6f9404cb6
commit 31140fa24b
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
  1. 8
      typescript/optics-deploy/.env.example
  2. 0
      typescript/optics-deploy/config/mainnets/.gitkeep
  3. 14
      typescript/optics-deploy/config/testnets/alfajores.ts
  4. 13
      typescript/optics-deploy/config/testnets/kovan.ts
  5. 44
      typescript/optics-deploy/config/testnets/rinkeby.ts
  6. 4
      typescript/optics-deploy/package.json
  7. 10
      typescript/optics-deploy/scripts/alfajoresKovan/bridge.ts
  8. 10
      typescript/optics-deploy/scripts/alfajoresKovan/core.ts
  9. 23
      typescript/optics-deploy/scripts/threeTestnets/bridge.ts
  10. 21
      typescript/optics-deploy/scripts/threeTestnets/core.ts

@ -1,2 +1,8 @@
ALFAJORES_DEPLOYER_KEY=
KOVAN_DEPLOYER_KEY=
ALFAJORES_RPC=
KOVAN_DEPLOYER_KEY=
KOVAN_RPC=
RINKEBY_DEPLOYER_KEY=
RINKEBY_RPC=

@ -1,12 +1,18 @@
import { ChainJson, toChain } from '../src/chain';
import { ChainJson, toChain } from '../../src/chain';
import * as dotenv from 'dotenv';
import { CoreConfig } from '../src/core/CoreDeploy';
import { BridgeConfig } from '../src/bridge/BridgeDeploy';
import { CoreConfig } from '../../src/core/CoreDeploy';
import { BridgeConfig } from '../../src/bridge/BridgeDeploy';
dotenv.config();
const rpc = process.env.ALFAJORES_RPC;
if (!rpc) {
throw new Error('Missing RPC URI');
}
export const chainJson: ChainJson = {
name: 'alfajores',
rpc: 'https://alfajores-forno.celo-testnet.org',
rpc,
deployerKey: process.env.ALFAJORES_DEPLOYER_KEY,
domain: 1000,
};

@ -1,15 +1,20 @@
import * as dotenv from 'dotenv';
import { ChainJson, toChain } from '../src/chain';
import { CoreConfig } from '../src/core/CoreDeploy';
import { BridgeConfig } from '../src/bridge/BridgeDeploy';
import { ChainJson, toChain } from '../../src/chain';
import { CoreConfig } from '../../src/core/CoreDeploy';
import { BridgeConfig } from '../../src/bridge/BridgeDeploy';
import { BigNumber } from 'ethers';
dotenv.config();
const rpc = process.env.KOVAN_RPC;
if (!rpc) {
throw new Error('Missing RPC URI');
}
const chainJson: ChainJson = {
name: 'kovan',
rpc: 'https://kovan.infura.io/v3/5c456d7844fa40a683e934df60534c60',
rpc,
deployerKey: process.env.KOVAN_DEPLOYER_KEY,
domain: 3000,
gasPrice: BigNumber.from(10_000_000_000),

@ -0,0 +1,44 @@
import * as dotenv from 'dotenv';
import { ChainJson, toChain } from '../../src/chain';
import { CoreConfig } from '../../src/core/CoreDeploy';
import { BridgeConfig } from '../../src/bridge/BridgeDeploy';
import { BigNumber } from 'ethers';
dotenv.config();
const rpc = process.env.RINKEBY_RPC;
if (!rpc) {
throw new Error('Missing RPC URI');
}
const chainJson: ChainJson = {
name: 'rinkeby',
rpc,
deployerKey: process.env.RINKEBY_DEPLOYER_KEY,
domain: 2000,
};
export const chain = toChain(chainJson);
export const devConfig: CoreConfig = {
environment: 'dev',
updater: '0x4177372FD9581ceb2367e0Ce84adC5DAD9DF8D55',
optimisticSeconds: 10,
watchers: ['0x20aC2FD664bA5406A7262967C34107e708dCb18E'],
recoveryTimelock: 180,
recoveryManager: '0x24F6c874F56533d9a1422e85e5C7A806ED11c036',
};
export const stagingConfig: CoreConfig = {
environment: 'staging',
updater: '0x201dd86063Dc251cA5a576d1b7365C38e5fB4CD5',
watchers: ['0x22B2855635154Baa41C306BcA979C8c9a077A180'],
recoveryManager: '0x24F6c874F56533d9a1422e85e5C7A806ED11c036',
optimisticSeconds: 10,
recoveryTimelock: 180,
};
export const bridgeConfig: BridgeConfig = {
weth: '0xc778417E063141139Fce010982780140Aa0cD5Ab',
};

@ -13,8 +13,8 @@
"scripts": {
"prettier": "prettier --write ./src ./config ./scripts",
"test": "echo \"Error: no test specified\" && exit 1",
"deploy-core": "npx ts-node ./scripts/alfajoresKovan.ts",
"deploy-bridge": "npx ts-node ./scripts/bridgeAlfajoresKovan.ts"
"deploy-core": "npx ts-node ./scripts/alfajoresKovan/core.ts",
"deploy-bridge": "npx ts-node ./scripts/alfajoresKovan/bridge.ts"
},
"author": "Celo Labs Inc.",
"license": "MIT OR Apache-2.0",

@ -1,8 +1,8 @@
import { getPathToLatestDeploy } from '../src/verification/readDeployOutput';
import { deployBridges } from '../src/bridge';
import * as alfajores from '../config/alfajores';
import * as kovan from '../config/kovan';
import { BridgeDeploy } from '../src/bridge/BridgeDeploy';
import { getPathToLatestDeploy } from '../../src/verification/readDeployOutput';
import { deployBridges } from '../../src/bridge';
import * as alfajores from '../../config/testnets/alfajores';
import * as kovan from '../../config/testnets/kovan';
import { BridgeDeploy } from '../../src/bridge/BridgeDeploy';
// get the path to the latest core system deploy
const path = getPathToLatestDeploy();

@ -1,8 +1,8 @@
import { deployTwoChains } from '../src/core';
import * as alfajores from '../config/alfajores';
import * as kovan from '../config/kovan';
import { CoreDeploy } from '../src/core/CoreDeploy';
import { deployEnvironment } from '../src/chain';
import { deployTwoChains } from '../../src/core';
import * as alfajores from '../../config/testnets/alfajores';
import * as kovan from '../../config/testnets/kovan';
import { CoreDeploy } from '../../src/core/CoreDeploy';
import { deployEnvironment } from '../../src/chain';
let environment = deployEnvironment();

@ -0,0 +1,23 @@
import { getPathToLatestDeploy } from '../../src/verification/readDeployOutput';
import { deployBridges } from '../../src/bridge';
import * as alfajores from '../../config/testnets/alfajores';
import * as kovan from '../../config/testnets/kovan';
import * as rinkeby from '../../config/testnets/rinkeby';
import { BridgeDeploy } from '../../src/bridge/BridgeDeploy';
// get the path to the latest core system deploy
const path = getPathToLatestDeploy();
const alfajoresDeploy = new BridgeDeploy(
alfajores.chain,
alfajores.bridgeConfig,
path,
);
const kovanDeploy = new BridgeDeploy(kovan.chain, kovan.bridgeConfig, path);
const rinkebyDeploy = new BridgeDeploy(
rinkeby.chain,
rinkeby.bridgeConfig,
path,
);
deployBridges([alfajoresDeploy, kovanDeploy, rinkebyDeploy]);

@ -0,0 +1,21 @@
import { deployNChains } from '../../src/core';
import * as alfajores from '../../config/testnets/alfajores';
import * as kovan from '../../config/testnets/kovan';
import * as rinkeby from '../../config/testnets/rinkeby';
import { CoreDeploy } from '../../src/core/CoreDeploy';
import { deployEnvironment } from '../../src/chain';
let environment = deployEnvironment();
let alfaConfig =
environment === 'staging' ? alfajores.stagingConfig : alfajores.devConfig;
let kovanConfig =
environment === 'staging' ? kovan.stagingConfig : kovan.devConfig;
let rinkebyConfig =
environment === 'staging' ? rinkeby.stagingConfig : rinkeby.devConfig;
const alfaDeploy = new CoreDeploy(alfajores.chain, alfaConfig);
const kovanDeploy = new CoreDeploy(kovan.chain, kovanConfig);
const rinkebyDeploy = new CoreDeploy(rinkeby.chain, rinkebyConfig);
deployNChains([alfaDeploy, kovanDeploy, rinkebyDeploy]);
Loading…
Cancel
Save