Skip to content

Commit

Permalink
feat: enabling networks conditionally
Browse files Browse the repository at this point in the history
  • Loading branch information
matiasbn committed Jun 17, 2021
1 parent ad1b7ad commit 6227714
Show file tree
Hide file tree
Showing 11 changed files with 1,048 additions and 798 deletions.
226 changes: 226 additions & 0 deletions configurations/develop.config.ts
Original file line number Diff line number Diff line change
@@ -0,0 +1,226 @@
import Joi from 'joi';
import {
appRoot,
CONTRACT_NAMES,
PERIOD_TYPE,
SENetworkNames,
SENetworkNamesBytes32,
SENetworks,
SLO_TYPE,
TOKEN_NAMES,
USE_CASES,
} from '../constants';
import { EthereumERC20__factory } from '../typechain';
import { NetworkUserConfig } from 'hardhat/types';
//
// const schema = Joi.object({
// DEVELOP_MNEMONIC: Joi.string().required(),
// DEVELOP_URI: Joi.string().required(),
// DEVELOP_WS_URI: Joi.string().required(),
// }).unknown();
//
// const { error, value } = schema.validate(process.env);
//
// if (error) {
// throw new Error(
// `.env file validation error for network develop: ${error.message}`
// );
// } else {
// process.env = value;
// }

export const develop: NetworkUserConfig = {
chainId: 1337,
accounts: {
mnemonic: process.env.DEVELOP_MNEMONIC,
},
url: 'http://localhost:8545',
stacktical: {
chainlink: {
isProduction: false,
deleteOldJobs: true,
nodeFunds: '10',
gasLimit: undefined,
ethWsUrl: 'ws://host.docker.internal:8545',
ethHttpUrl: 'http://host.docker.internal:8545',
nodesConfiguration: [
{
name: 'node-1',
restApiUrl: 'http://localhost',
restApiPort: '6688',
email: 'test@stacktical.com',
password: 'PaSSword123456',
},
],
},
addresses: {},
checkPastPeriods: false,
tokens: [
{
factory: EthereumERC20__factory,
name: TOKEN_NAMES.DSLA,
},
{
factory: EthereumERC20__factory,
name: TOKEN_NAMES.DAI,
},
{
factory: EthereumERC20__factory,
name: TOKEN_NAMES.USDC,
},
{
factory: EthereumERC20__factory,
name: TOKEN_NAMES.USDT,
address: '0x34704c70e9eC9fB9A921da6DAAD7D3e19f43c734',
},
],
bootstrap: {
allowance: [
{
contract: CONTRACT_NAMES.SEMessenger,
token: CONTRACT_NAMES.LinkToken,
allowance: '10',
},
],
registry: {
periods: [
{
periodType: PERIOD_TYPE.WEEKLY,
amountOfPeriods: 52,
expiredPeriods: 14,
},
],
stake: {
stakingParameters: {},
},
messengers: [
{
contract: CONTRACT_NAMES.SEMessenger,
specificationPath: `${appRoot.path}/contracts/messengers/${USE_CASES.STAKING_EFFICIENCY}/${CONTRACT_NAMES.SEMessenger}.json`,
useCaseName: USE_CASES.STAKING_EFFICIENCY,
externalAdapterUrl: 'http://host.docker.internal:6060',
},
],
},
},
scripts: {
deploy_sla: [
{
sloValue: 50 * 10 ** 3,
sloType: SLO_TYPE.GreaterThan,
whitelisted: false,
periodType: PERIOD_TYPE.WEEKLY,
initialPeriodId: 0,
finalPeriodId: 10,
extraData: [SENetworkNamesBytes32[SENetworks.ONE]],
initialTokenSupply: '10000000',
initialTokenSupplyDivisor: 100,
deployerStakeTimes: 100,
notDeployerStakeTimes: 2,
leverage: 50,
serviceMetadata: {
serviceName: 'P-OPS',
serviceDescription: 'Official bDSLA Beta Partner.',
serviceImage:
'https://storage.googleapis.com/bdsla-incentivized-beta/validators/chainode.svg',
serviceURL: 'https://bdslaToken.network',
serviceAddress: 'one1kf42rl6yg2avkjsu34ch2jn8yjs64ycn4n9wdj',
serviceTicker: SENetworkNames[SENetworks.ONE],
},
},
{
sloValue: 15 * 10 ** 3,
sloType: SLO_TYPE.GreaterThan,
whitelisted: false,
periodType: PERIOD_TYPE.WEEKLY,
initialPeriodId: 10,
finalPeriodId: 30,
extraData: [SENetworkNamesBytes32[SENetworks.ONE]],
initialTokenSupply: '10000000',
initialTokenSupplyDivisor: 100,
deployerStakeTimes: 100,
notDeployerStakeTimes: 2,
leverage: 50,
serviceMetadata: {
serviceName: 'P-OPS',
serviceDescription: 'Official bDSLA Beta Partner.',
serviceImage:
'https://storage.googleapis.com/bdsla-incentivized-beta/validators/chainode.svg',
serviceURL: 'https://bdslaToken.network',
serviceAddress: 'one1kf42rl6yg2avkjsu34ch2jn8yjs64ycn4n9wdj',
serviceTicker: SENetworkNames[SENetworks.ONE],
},
},
{
sloValue: 20 * 10 ** 3,
sloType: SLO_TYPE.GreaterThan,
whitelisted: false,
periodType: PERIOD_TYPE.WEEKLY,
initialPeriodId: 10,
finalPeriodId: 30,
extraData: [SENetworkNamesBytes32[SENetworks.ONE]],
initialTokenSupply: '10000000',
initialTokenSupplyDivisor: 100,
deployerStakeTimes: 100,
notDeployerStakeTimes: 2,
leverage: 50,
serviceMetadata: {
serviceName: 'P-OPS',
serviceDescription: 'Official bDSLA Beta Partner.',
serviceImage:
'https://storage.googleapis.com/bdsla-incentivized-beta/validators/chainode.svg',
serviceURL: 'https://bdslaToken.network',
serviceAddress: 'one1kf42rl6yg2avkjsu34ch2jn8yjs64ycn4n9wdj',
serviceTicker: SENetworkNames[SENetworks.ONE],
},
},
{
sloValue: 25 * 10 ** 3,
sloType: SLO_TYPE.GreaterThan,
whitelisted: false,
periodType: PERIOD_TYPE.WEEKLY,
initialPeriodId: 10,
finalPeriodId: 30,
extraData: [SENetworkNamesBytes32[SENetworks.ONE]],
initialTokenSupply: '10000000',
initialTokenSupplyDivisor: 100,
deployerStakeTimes: 100,
notDeployerStakeTimes: 2,
leverage: 50,
serviceMetadata: {
serviceName: 'P-OPS',
serviceDescription: 'Official bDSLA Beta Partner.',
serviceImage:
'https://storage.googleapis.com/bdsla-incentivized-beta/validators/chainode.svg',
serviceURL: 'https://bdslaToken.network',
serviceAddress: 'one1kf42rl6yg2avkjsu34ch2jn8yjs64ycn4n9wdj',
serviceTicker: SENetworkNames[SENetworks.ONE],
},
},
{
sloValue: 40 * 10 ** 3,
sloType: SLO_TYPE.GreaterThan,
whitelisted: false,
periodType: PERIOD_TYPE.WEEKLY,
initialPeriodId: 10,
finalPeriodId: 30,
extraData: [SENetworkNamesBytes32[SENetworks.ONE]],
initialTokenSupply: '10000000',
initialTokenSupplyDivisor: 100,
deployerStakeTimes: 100,
notDeployerStakeTimes: 2,
leverage: 50,
serviceMetadata: {
serviceName: 'P-OPS',
serviceDescription: 'Official bDSLA Beta Partner.',
serviceImage:
'https://storage.googleapis.com/bdsla-incentivized-beta/validators/chainode.svg',
serviceURL: 'https://bdslaToken.network',
serviceAddress: 'one1kf42rl6yg2avkjsu34ch2jn8yjs64ycn4n9wdj',
serviceTicker: SENetworkNames[SENetworks.ONE],
},
},
],
},
},
};
135 changes: 135 additions & 0 deletions configurations/ethereum.config.ts
Original file line number Diff line number Diff line change
@@ -0,0 +1,135 @@
import {
appRoot,
CONTRACT_NAMES,
PERIOD_TYPE,
TOKEN_NAMES,
USE_CASES,
} from '../constants';
import { EthereumERC20__factory } from '../typechain';
import { NetworkUserConfig } from 'hardhat/types';
import { scripts } from './scripts.config';
import Joi from 'joi';

// const schema = Joi.object({
// MAINNET_MNEMONIC: Joi.string().required(),
// ETHEREUM_URI: Joi.string().required(),
// ETHEREUM_WS_URI: Joi.string().required(),
// }).unknown();
//
// const { error, value } = schema.validate(process.env);
//
// if (error) {
// throw new Error(
// `.env file validation error for network ethereum: ${error.message}`
// );
// } else {
// process.env = value;
// }

export const ethereum: NetworkUserConfig = {
chainId: 1,
accounts: {
mnemonic: process.env.MAINNET_MNEMONIC,
},
url: process.env.ETHEREUM_URI,
stacktical: {
checkPastPeriods: true,
tokens: [
{
factory: EthereumERC20__factory,
name: TOKEN_NAMES.DSLA,
address: '0x3aFfCCa64c2A6f4e3B6Bd9c64CD2C969EFd1ECBe',
},
{
factory: EthereumERC20__factory,
name: TOKEN_NAMES.DAI,
address: '0x6B175474E89094C44Da98b954EedeAC495271d0F',
},
{
factory: EthereumERC20__factory,
name: TOKEN_NAMES.USDC,
address: '0xA0b86991c6218b36c1d19D4a2e9Eb0cE3606eB48',
},
],
chainlink: {
isProduction: true,
deleteOldJobs: false,
nodeFunds: '1',
gasLimit: undefined,
ethWsUrl: process.env.ETHEREUM_WS_URI,
nodesConfiguration: [
{
name: 'berlin',
restApiUrl: process.env.ETHEREUM_CHAINLINK_NODE_1_URL,
restApiPort: process.env.ETHEREUM_CHAINLINK_NODE_1_PORT,
email: process.env.ETHEREUM_CHAINLINK_NODE_1_USER,
password: process.env.ETHEREUM_CHAINLINK_NODE_1_PASS,
},
{
name: 'newyork',
restApiUrl: process.env.ETHEREUM_CHAINLINK_NODE_2_URL,
restApiPort: process.env.ETHEREUM_CHAINLINK_NODE_2_PORT,
email: process.env.ETHEREUM_CHAINLINK_NODE_2_USER,
password: process.env.ETHEREUM_CHAINLINK_NODE_2_PASS,
},
{
name: 'paris',
restApiUrl: process.env.ETHEREUM_CHAINLINK_NODE_3_URL,
restApiPort: process.env.ETHEREUM_CHAINLINK_NODE_3_PORT,
email: process.env.ETHEREUM_CHAINLINK_NODE_3_USER,
password: process.env.ETHEREUM_CHAINLINK_NODE_3_PASS,
},
],
},
addresses: {
[CONTRACT_NAMES.Oracle]: '0x99F4e62a317cc666589c9e370c73c15B158f3c61',
[CONTRACT_NAMES.LinkToken]: '0x514910771af9ca656af840dff83e8264ecf986ca',
[CONTRACT_NAMES.SLORegistry]:
'0x1bE60A36Ba9De2eCeFe8be8d2720B67f932EC487',
[CONTRACT_NAMES.SLARegistry]:
'0xB63a13825e129fBa2f2205847158461bec5f265A',
[CONTRACT_NAMES.MessengerRegistry]:
'0x766C0b52fADC43Bc3EEAe8BC64536404981951bE',
[CONTRACT_NAMES.PeriodRegistry]:
'0x5Da279bE9D6CeB11e7D7117915075066909357bc',
[CONTRACT_NAMES.StakeRegistry]:
'0x4b48AdDd838A11061cE285106f4a30cc5636735C',
[CONTRACT_NAMES.SEMessenger]:
'0xFB29aFC3F4B78755f07faD5B86448595D2EEC86C',
[CONTRACT_NAMES.Details]: '0x38b0cd8BB4C4608E32EE75b25A8846459cEAd513',
[CONTRACT_NAMES.PreCoordinator]:
'0x7db551Ce6677211309db39A67F73cA923e9d4944',
},
bootstrap: {
allowance: [
{
contract: CONTRACT_NAMES.SEMessenger,
token: CONTRACT_NAMES.LinkToken,
allowance: '10',
},
],
registry: {
periods: [
{
periodType: PERIOD_TYPE.WEEKLY,
amountOfPeriods: 52,
expiredPeriods: 0,
},
],
stake: {
stakingParameters: {},
},
messengers: [
{
contract: CONTRACT_NAMES.SEMessenger,
specificationPath: `${appRoot.path}/contracts/messengers/${USE_CASES.STAKING_EFFICIENCY}/${CONTRACT_NAMES.SEMessenger}.json`,
useCaseName: 'staking-efficiency',
externalAdapterUrl:
'https://europe-west1-stacktical-0.cloudfunctions.net/dsla-indexer',
},
],
},
},
scripts: scripts,
},
};
Loading

0 comments on commit 6227714

Please sign in to comment.