Skip to content

Commit 1c58d08

Browse files
authored
Merge pull request #22 from Stacktical/feature/local_dev_avalanche
Network Support - Local Avalanche cluster
2 parents 4b76da5 + 9d4c948 commit 1c58d08

28 files changed

+33337
-32505
lines changed

constants.ts

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -67,6 +67,7 @@ export enum USE_CASES {
6767

6868
export enum NETWORKS {
6969
DEVELOP = 'develop',
70+
DEVELOP_AVALANCHE = 'develop_avalanche',
7071
MUMBAI = 'mumbai',
7172
HARMONYTESTNET = 'harmonytestnet',
7273
ETHEREUM = 'ethereum',
@@ -82,6 +83,7 @@ export enum NETWORKS {
8283

8384
export const GRAPH_NETWORKS = {
8485
[NETWORKS.DEVELOP]: 'mainnet',
86+
[NETWORKS.DEVELOP_AVALANCHE]: 'mainnet',
8587
[NETWORKS.ETHEREUM]: 'mainnet',
8688
[NETWORKS.HARMONY]: 'mainnet',
8789
[NETWORKS.FANTOM]: 'mainnet',

env-full

Lines changed: 83 additions & 72 deletions
Original file line numberDiff line numberDiff line change
@@ -1,73 +1,84 @@
1-
MAINNET_MNEMONIC=
2-
TESTNET_MNEMONIC=
3-
DEVELOP_MNEMONIC=
4-
IPFS_URI=
5-
IPFS_GATEWAY_URI=
6-
DEVELOP_URI=
7-
DEVELOP_WS_URI=
8-
STAKING_EFFICIENCY_INDEXER_URI=
9-
STAKING_EFFICIENCY_ALT_INDEXER_URI=
10-
ETHERSCAN_API_KEY=
11-
MUMBAI_URI=
12-
MUMBAI_WS_URI=
13-
POLYGON_URI=
14-
POLYGON_WS_URI=
15-
HARMONYTESTNET_URI=
16-
HARMONYTESTNET_WS_URI=
17-
HARMONY_URI=
18-
HARMONY_WS_URI=
19-
ETHEREUM_URI=
20-
ETHEREUM_WS_URI=
21-
KOVAN_URI=
22-
KOVAN_WS_URI=
23-
RINKEBY_URI=
24-
RINKEBY_WS_URI=
25-
ETHEREUM_CHAINLINK_NODE_1_URL=
26-
ETHEREUM_CHAINLINK_NODE_1_PORT=
27-
ETHEREUM_CHAINLINK_NODE_1_USER=
28-
ETHEREUM_CHAINLINK_NODE_1_PASS=
29-
ETHEREUM_CHAINLINK_NODE_2_URL=
30-
ETHEREUM_CHAINLINK_NODE_2_PORT=
31-
ETHEREUM_CHAINLINK_NODE_2_USER=
32-
ETHEREUM_CHAINLINK_NODE_2_PASS=
33-
ETHEREUM_CHAINLINK_NODE_3_URL=
34-
ETHEREUM_CHAINLINK_NODE_3_PORT=
35-
ETHEREUM_CHAINLINK_NODE_3_USER=
36-
ETHEREUM_CHAINLINK_NODE_3_PASS=
37-
KOVAN_CHAINLINK_NODE_1_URL=
38-
KOVAN_CHAINLINK_NODE_1_PORT=
39-
KOVAN_CHAINLINK_NODE_1_USER=
40-
KOVAN_CHAINLINK_NODE_1_PASS=
41-
KOVAN_CHAINLINK_NODE_2_URL=
42-
KOVAN_CHAINLINK_NODE_2_PORT=
43-
KOVAN_CHAINLINK_NODE_2_USER=
44-
KOVAN_CHAINLINK_NODE_2_PASS=
45-
KOVAN_CHAINLINK_NODE_3_URL=
46-
KOVAN_CHAINLINK_NODE_3_PORT=
47-
KOVAN_CHAINLINK_NODE_3_USER=
48-
KOVAN_CHAINLINK_NODE_3_PASS=
49-
HARMONY_CHAINLINK_NODE_1_URL=
50-
HARMONY_CHAINLINK_NODE_1_PORT=
51-
HARMONY_CHAINLINK_NODE_1_USER=
52-
HARMONY_CHAINLINK_NODE_1_PASS=
53-
HARMONYTESTNET_CHAINLINK_NODE_1_URL=
54-
HARMONYTESTNET_CHAINLINK_NODE_1_PORT=
55-
HARMONYTESTNET_CHAINLINK_NODE_1_USER=
56-
HARMONYTESTNET_CHAINLINK_NODE_1_PASS=
57-
HARMONY_CHAINLINK_NODE_2_URL=
58-
HARMONY_CHAINLINK_NODE_2_PORT=
59-
HARMONY_CHAINLINK_NODE_2_USER=
60-
HARMONY_CHAINLINK_NODE_2_PASS=
61-
POLYGON_CHAINLINK_NODE_1_URL=
62-
POLYGON_CHAINLINK_NODE_1_PORT=
63-
POLYGON_CHAINLINK_NODE_1_USER=
64-
POLYGON_CHAINLINK_NODE_1_PASS=
65-
POLYGON_CHAINLINK_NODE_2_URL=
66-
POLYGON_CHAINLINK_NODE_2_PORT=
67-
POLYGON_CHAINLINK_NODE_2_USER=
68-
POLYGON_CHAINLINK_NODE_2_PASS=
69-
POLYGON_CHAINLINK_NODE_3_URL=
70-
POLYGON_CHAINLINK_NODE_3_PORT=
71-
POLYGON_CHAINLINK_NODE_3_USER=
72-
POLYGON_CHAINLINK_NODE_3_PASS=
1+
MAINNET_MNEMONIC="test"
2+
TESTNET_MNEMONIC="test"
3+
DEVELOP_MNEMONIC="myth like bonus scare over problem client lizard pioneer submit female collect"
4+
IPFS_URI="https://ipfs.dsla.network"
5+
IPFS_GATEWAY_URI="https://ipfs.dsla.network"
6+
DEVELOP_IPFS_URI="http://host.docker.internal:8080"
7+
DEVELOP_URI="http://localhost:8545"
8+
DEVELOP_WS_URI="ws://localhost:8545"
9+
DEVELOP_AVALANCHE_URI="http://localhost:9650/ext/bc/C/rpc"
10+
DEVELOP_AVALANCHE_WS_URI="ws://localhost:9650/ext/bc/C/ws"
11+
INFURA_PROJECT_ID="test"
12+
ETHEREUM_URI="http://localhost:1234"
13+
ETHEREUM_WS_URI="http://localhost:1234"
14+
HARMONY_URI="http://localhost:1234"
15+
MUMBAI_URI="http://localhost:1234"
16+
MUMBAI_WS_URI="http://localhost:1234"
17+
POLYGON_URI="http://localhost:1234"
18+
POLYGON_WS_URI="http://localhost:1234"
19+
HARMONYTESTNET_URI="http://localhost:1234"
20+
HARMONYTESTNET_WS_URI="http://localhost:1234"
21+
AVALANCHE_URI="http://localhost:1234"
22+
AVALANCHE_WS_URI="http://localhost:1234"
23+
KOVAN_URI="http://localhost:1234"
24+
KOVAN_WS_URI="http://localhost:1234"
25+
RINKEBY_URI="http://localhost:1234"
26+
RINKEBY_WS_URI="http://localhost:1234"
27+
BSC_URI="http://localhost:1234"
28+
BSC_WS_URI="http://localhost:1234"
29+
FUJI_URI="http://localhost:1234"
30+
FUJI_WS_URI="http://localhost:1234"
31+
STAKING_EFFICIENCY_INDEXER_URI="http://localhost:1234"
32+
STAKING_EFFICIENCY_INDEXER_ALT_URI="http://localhost:1234"
33+
FANTOM_URI="http://localhost:1234"
34+
FANTOM_WS_URI="http://localhost:1234"
7335

36+
ETHEREUM_CHAINLINK_NODE_1_URL="http://localhost"
37+
ETHEREUM_CHAINLINK_NODE_1_PORT="1234"
38+
ETHEREUM_CHAINLINK_NODE_1_USER="[email protected]"
39+
ETHEREUM_CHAINLINK_NODE_1_PASS="password"
40+
41+
KOVAN_CHAINLINK_NODE_1_URL="http://localhost"
42+
KOVAN_CHAINLINK_NODE_1_PORT="1234"
43+
KOVAN_CHAINLINK_NODE_1_USER="[email protected]"
44+
KOVAN_CHAINLINK_NODE_1_PASS="password"
45+
46+
RINKEBY_CHAINLINK_NODE_1_URL="http://localhost"
47+
RINKEBY_CHAINLINK_NODE_1_PORT="1234"
48+
RINKEBY_CHAINLINK_NODE_1_USER="[email protected]"
49+
RINKEBY_CHAINLINK_NODE_1_PASS="password"
50+
51+
HARMONY_CHAINLINK_NODE_1_URL="http://localhost"
52+
HARMONY_CHAINLINK_NODE_1_PORT="1234"
53+
HARMONY_CHAINLINK_NODE_1_USER="[email protected]"
54+
HARMONY_CHAINLINK_NODE_1_PASS="password"
55+
56+
HARMONYTESTNET_CHAINLINK_NODE_1_URL="http://localhost"
57+
HARMONYTESTNET_CHAINLINK_NODE_1_PORT="1234"
58+
HARMONYTESTNET_CHAINLINK_NODE_1_USER="[email protected]"
59+
HARMONYTESTNET_CHAINLINK_NODE_1_PASS="password"
60+
61+
POLYGON_CHAINLINK_NODE_1_URL="http://localhost"
62+
POLYGON_CHAINLINK_NODE_1_PORT="1234"
63+
POLYGON_CHAINLINK_NODE_1_USER="[email protected]"
64+
POLYGON_CHAINLINK_NODE_1_PASS="password"
65+
66+
AVALANCHE_CHAINLINK_NODE_1_URL="http://localhost"
67+
AVALANCHE_CHAINLINK_NODE_1_PORT="1234"
68+
AVALANCHE_CHAINLINK_NODE_1_USER="[email protected]"
69+
AVALANCHE_CHAINLINK_NODE_1_PASS="password"
70+
71+
BSC_CHAINLINK_NODE_2_URL="http://localhost"
72+
BSC_CHAINLINK_NODE_2_PORT="1234"
73+
BSC_CHAINLINK_NODE_2_USER="[email protected]"
74+
BSC_CHAINLINK_NODE_2_PASS="password"
75+
76+
FUJI_CHAINLINK_NODE_2_URL="http://localhost"
77+
FUJI_CHAINLINK_NODE_2_PORT="1234"
78+
FUJI_CHAINLINK_NODE_2_USER="[email protected]"
79+
FUJI_CHAINLINK_NODE_2_PASS="password"
80+
81+
FANTOM_CHAINLINK_NODE_1_URL="http://localhost"
82+
FANTOM_CHAINLINK_NODE_1_PORT="1234"
83+
FANTOM_CHAINLINK_NODE_1_USER="[email protected]"
84+
FANTOM_CHAINLINK_NODE_1_PASS="password"

env-min

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -3,9 +3,14 @@ TESTNET_MNEMONIC="test"
33
DEVELOP_MNEMONIC="myth like bonus scare over problem client lizard pioneer submit female collect"
44
IPFS_URI="https://ipfs.dsla.network"
55
IPFS_GATEWAY_URI="https://ipfs.dsla.network"
6+
DEVELOP_IPFS_URI="http://host.docker.internal:8080"
67
DEVELOP_URI="http://localhost:8545"
78
DEVELOP_WS_URI="ws://localhost:8545"
9+
DEVELOP_AVALANCHE_URI="http://localhost:9650/ext/bc/C/rpc"
10+
DEVELOP_AVALANCHE_WS_URI="ws://localhost:9650/ext/bc/C/ws"
811
INFURA_PROJECT_ID="test"
12+
ETHEREUM_URI="http://localhost:1234"
13+
ETHEREUM_WS_URI="http://localhost:1234"
914
HARMONY_URI="http://localhost:1234"
1015
MUMBAI_URI="http://localhost:1234"
1116
MUMBAI_WS_URI="http://localhost:1234"

networks/avalanche.config.ts

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -62,6 +62,7 @@ export const avalanche: NetworkUserConfig = {
6262
address: '0xB31f66AA3C1e785363F0875A1B74E27b85FD66c7',
6363
},
6464
],
65+
ipfs: process.env.IPFS_URI,
6566
chainlink: {
6667
deployLocal: false,
6768
deleteOldJobs: false,

networks/bsc.config.ts

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -64,6 +64,7 @@ export const bsc: NetworkUserConfig = {
6464
},
6565

6666
],
67+
ipfs: process.env.IPFS_URI,
6768
chainlink: {
6869
deployLocal: false,
6970
deleteOldJobs: false,

networks/develop.config.ts

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -33,6 +33,7 @@ export const develop: NetworkUserConfig = {
3333
stacktical: {
3434
checkPastPeriods: false,
3535
deployTokens: true,
36+
ipfs: process.env.DEVELOP_IPFS_URI,
3637
chainlink: {
3738
deployLocal: true,
3839
deleteOldJobs: true,
Lines changed: 136 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,136 @@
1+
import {
2+
appRoot,
3+
CONTRACT_NAMES,
4+
PERIOD_TYPE,
5+
TOKEN_NAMES,
6+
USE_CASES,
7+
} from '../constants';
8+
import { EthereumERC20__factory } from '../typechain';
9+
import { NetworkUserConfig } from 'hardhat/types';
10+
import { scripts } from '../scripts.config';
11+
import Joi from 'joi';
12+
13+
const schema = Joi.object({
14+
DEVELOP_MNEMONIC: Joi.string().required(),
15+
DEVELOP_AVALANCHE_URI: Joi.string().required(),
16+
DEVELOP_AVALANCHE_WS_URI: Joi.string().required(),
17+
DEVELOP_IPFS_URI: Joi.string().required(),
18+
STAKING_EFFICIENCY_INDEXER_URI: Joi.string().required(),
19+
}).unknown();
20+
21+
const { error, value } = schema.validate(process.env);
22+
23+
if (error) {
24+
throw new Error(`.env file validation error: ${error.message}`);
25+
} else {
26+
process.env = value;
27+
}
28+
29+
export const develop_avalanche: NetworkUserConfig = {
30+
chainId: 43112,
31+
gasPrice: 225000000000,
32+
accounts: [
33+
"0x56289e99c94b6912bfc12adc093c9b51124f0dc54ac7a766b2bc5ccf558d8027",
34+
"0x7b4198529994b0dc604278c99d153cfd069d594753d471171a1d102a10438e07",
35+
"0x15614556be13730e9e8d6eacc1603143e7b96987429df8726384c2ec4502ef6e",
36+
"0x31b571bf6894a248831ff937bb49f7754509fe93bbd2517c9c73c4144c0e97dc",
37+
"0x6934bef917e01692b789da754a0eae31a8536eb465e7bff752ea291dad88c675",
38+
"0xe700bdbdbc279b808b1ec45f8c2370e4616d3a02c336e68d85d4668e08f53cff",
39+
"0xbbc2865b76ba28016bc2255c7504d000e046ae01934b04c694592a6276988630",
40+
"0xcdbfd34f687ced8c6968854f8a99ae47712c4f4183b78dcc4a903d1bfe8cbf60",
41+
"0x86f78c5416151fe3546dece84fda4b4b1e36089f2dbc48496faf3a950f16157c",
42+
"0x750839e9dbbd2a0910efe40f50b2f3b2f2f59f5580bb4b83bd8c1201cf9a010a"
43+
],
44+
url: 'http://localhost:9650/ext/bc/C/rpc',
45+
stacktical: {
46+
checkPastPeriods: false,
47+
deployTokens: true,
48+
ipfs: process.env.DEVELOP_IPFS_URI,
49+
tokens: [
50+
{
51+
factory: EthereumERC20__factory,
52+
name: TOKEN_NAMES.DSLA,
53+
},
54+
{
55+
factory: EthereumERC20__factory,
56+
name: TOKEN_NAMES.DAI,
57+
},
58+
{
59+
factory: EthereumERC20__factory,
60+
name: TOKEN_NAMES.USDC,
61+
},
62+
{
63+
factory: EthereumERC20__factory,
64+
name: TOKEN_NAMES.USDT,
65+
},
66+
{
67+
factory: EthereumERC20__factory,
68+
name: TOKEN_NAMES.WAVAX,
69+
},
70+
],
71+
chainlink: {
72+
deployLocal: true,
73+
deleteOldJobs: true,
74+
cleanLocalFolder: true,
75+
nodeFunds: '10',
76+
ethWsUrl: 'ws://host.docker.internal:9650/ext/bc/C/ws',
77+
ethHttpUrl: 'http://host.docker.internal:9650/ext/bc/C/rpc',
78+
nodesConfiguration: [
79+
{
80+
name: 'node-1',
81+
restApiUrl: 'http://localhost',
82+
restApiPort: '6688',
83+
84+
password: 'PaSSword123456',
85+
},
86+
],
87+
},
88+
addresses: {},
89+
bootstrap: {
90+
allowance: [
91+
{
92+
contract: CONTRACT_NAMES.SEMessenger,
93+
token: CONTRACT_NAMES.LinkToken,
94+
allowance: '10',
95+
},
96+
{
97+
contract: CONTRACT_NAMES.SEAMessenger,
98+
token: CONTRACT_NAMES.LinkToken,
99+
allowance: '10',
100+
},
101+
],
102+
registry: {
103+
periods: [
104+
{
105+
periodType: PERIOD_TYPE.WEEKLY,
106+
amountOfPeriods: 52,
107+
expiredPeriods: 14,
108+
},
109+
],
110+
stake: {
111+
stakingParameters: {
112+
dslaBurnedByVerification: '10000',
113+
dslaPlatformReward: '75',
114+
dslaDepositByPeriod: '25000',
115+
dslaMessengerReward: '4925',
116+
dslaUserReward: '10000',
117+
burnDSLA: true,
118+
},
119+
},
120+
},
121+
},
122+
messengers: [
123+
{
124+
contract: CONTRACT_NAMES.SEMessenger,
125+
useCaseName: USE_CASES.STAKING_EFFICIENCY,
126+
externalAdapterUrl: 'http://localhost:6060',
127+
},
128+
{
129+
contract: CONTRACT_NAMES.SEAMessenger,
130+
useCaseName: USE_CASES.STAKING_EFFICIENCY_ALT,
131+
externalAdapterUrl: process.env.STAKING_EFFICIENCY_INDEXER_ALT_URI,
132+
},
133+
],
134+
scripts: scripts,
135+
},
136+
};

networks/ethereum.config.ts

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -68,6 +68,7 @@ export const ethereum: NetworkUserConfig = {
6868
address: '0x7f39C581F595B53c5cb19bD0b3f8dA6c935E2Ca0',
6969
},
7070
],
71+
ipfs: process.env.IPFS_URI,
7172
chainlink: {
7273
deployLocal: false,
7374
deleteOldJobs: false,

networks/fantom.config.ts

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -62,6 +62,7 @@ export const fantom: NetworkUserConfig = {
6262
address: '0x21be370D5312f44cB42ce377BC9b8a0cEF1A4C83',
6363
},
6464
],
65+
ipfs: process.env.IPFS_URI,
6566
chainlink: {
6667
deployLocal: false,
6768
deleteOldJobs: true,

networks/fuji.config.ts

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -66,6 +66,7 @@ export const fuji: NetworkUserConfig = {
6666
},
6767

6868
],
69+
ipfs: process.env.IPFS_URI,
6970
chainlink: {
7071
deployLocal: false,
7172
deleteOldJobs: false,

0 commit comments

Comments
 (0)