-
Notifications
You must be signed in to change notification settings - Fork 4
/
hardhat.config.js
128 lines (122 loc) · 4.67 KB
/
hardhat.config.js
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
//npx hardhat run scripts/deploy.js --network <network-name>
//run the tests: npx hardhat test
//Plugins to let hardhat use web3 and truffle libraries
require("@nomiclabs/hardhat-web3");
require("hardhat-watcher");
require('@symblox/hardhat-abi-gen');
require('@nomiclabs/hardhat-etherscan');
require("@nomiclabs/hardhat-waffle");
//const mnemonic = process.env.SEED
//This requires a private key rather than a memonic, this is a private key to a throw away account so this can compile, but it should be stored in a local secret.json file
//It could then be accessed below using secret.key
// const mnemonic = process.env.KEY || "4d777ee25c2bb753c12597e8f35a2eedb90ece9bc5682f335e0e2c2fdc8d5674"
const accountInfo = {
mnemonic: process.env.MNEMONIC,
path: "m/44'/60'/0'/0",
initialIndex: 1,
count: 20,
passphrase: "",
}
module.exports = {
//defaultNetwork: "hardhat",
watcher: {
compilation: { //npx hardhat watch compilation -- auto compile on change
tasks: ["compile"],
},
test: {//npx hardhat watch test -- run test when a file is saved
tasks: [{ command: 'test', params: { testFiles: ['./test/testSkyPoolsV2.js'] } }], //test this file
files: ['./test/testSkyPoolsV2.js'] //test when this file is saved
}
},
solidity: {
version: "0.8.19",
settings: {
optimizer: {
enabled: true,
runs: 1000
}
}
},
networks: {
development: {
url: "http://127.0.0.1:8545",
accounts: accountInfo,
confirmations: 2,
skipDryRun: true,
gas: "auto",
gasPrice: "auto",
maxPriorityFeePerGas: 1000000000,
},
hardhat: {
//run tests on fork of mainnet
// forking: {
// url: "https://eth-mainnet.alchemyapi.io/v2/YfblHzLI_PlnIA0pxphS90J3yaA3dDi5",
// blockNumber: 17322134 //13220045 //previous testing block
// }
},
goerli: {
url: "https://goerli.infura.io/v3/f35c2a4f3d0941a38a3edb62ed10c847",
accounts: accountInfo,
network_id: 5, // Ropsten's id
gas: "auto", // Ropsten has a lower block limit than mainnet
confirmations: 2, // # of confs to wait between deployments. (default: 0)
timeoutBlocks: 200, // # of blocks before a deployment times out (minimum/default: 50)
skipDryRun: true, // Skip dry run before migrations? (default: false for public nets )
gasPrice: "auto",
maxPriorityFeePerGas: 1000000000,
},
mainnet: {
url: "https://mainnet.infura.io/v3/f35c2a4f3d0941a38a3edb62ed10c847",
accounts: accountInfo,
network_id: 1, // Ropsten's id
gas: "auto", // Ropsten has a lower block limit than mainnet
confirmations: 2, // # of confs to wait between deployments. (default: 0)
timeoutBlocks: 200, // # of blocks before a deployment times out (minimum/default: 50)
skipDryRun: true, // Skip dry run before migrations? (default: false for public nets )
gasPrice: "auto",
maxPriorityFeePerGas: 1000000000,
},
bsc_testnet: {
url: "https://mainnet.infura.io/v3/f35c2a4f3d0941a38a3edb62ed10c847",
accounts: accountInfo,
network_id: 97, // Ropsten's id
gas: 7500000, // Ropsten has a lower block limit than mainnet
confirmations: 2, // # of confs to wait between deployments. (default: 0)
timeoutBlocks: 200, // # of blocks before a deployment times out (minimum/default: 50)
skipDryRun: true, // Skip dry run before migrations? (default: false for public nets )
gasPrice: 10000000000
},
bsc_mainnet: {
url: "https://mainnet.infura.io/v3/f35c2a4f3d0941a38a3edb62ed10c847",
accounts: accountInfo,
network_id: 56, // Ropsten's id
gas: 3000000, // Ropsten has a lower block limit than mainnet
confirmations: 2, // # of confs to wait between deployments. (default: 0)
timeoutBlocks: 200, // # of blocks before a deployment times out (minimum/default: 50)
skipDryRun: true, // Skip dry run before migrations? (default: false for public nets )
gasPrice: 10000000000
}
// Useful for private networks
// private: {
// provider: () => new HDWalletProvider(mnemonic, `https://network.io`),
// network_id: 2111, // This network is yours, in the cloud.
// production: true // Treats this network as if it was a public net. (default: false)
// }
},
// Set default mocha options here, use special reporters etc.
mocha: {
timeout: 100000
},
etherscan: {
apiKey: "A7EAG5WB4FRAHIURRGWD8HSTM8CVYXZGZ4"
},
abiExporter: {
path: './abi',
clear: false,
flat: true,
spacing: 2
},
plugins: [
"@chainsafe/truffle-plugin-abigen"
]
};