-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathhardhat.config.js
133 lines (110 loc) · 3.57 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
129
130
131
132
133
require("@nomicfoundation/hardhat-toolbox")//
require("dotenv").config()
require("hardhat-deploy")
/** @type import('hardhat/config').HardhatUserConfig */
//mainnet variables
const MAINNET_RPC_URL = process.env.MAINNET_RPC_URL
const MAINNET_PVT_KEY = process.env.MAINNET_PVT_KEY
//sepolia variables
const SEPOLIA_RPC_URL = process.env.SEPOLIA_RPC_URL
const SEPOLIA_PVT_KEY = process.env.SEPOLIA_PVT_KEY
// rinkeby variables
const RINKEBY_RPC_URL = process.env.RINKEBY_RPC_URL
const RINKEBY_PVT_KEY = process.env.RINKEBY_PVT_KEY
// polygon variables
const POLYGON_MAINNET_RPC_URL = process.env.POLYGON_MAINNET_RPC_URL
const POLYGON_MAINNET_PVT_KEY = process.env.POLYGON_MAINNET_PVT_KEY
// API KEY for contract verification
const ETHERSCAN_API_KEY = process.env.ETHERSCAN_API_KEY
const POLYGONSCAN_API_KEY = process.env.POLYGONSCAN_API_KEY
//gas reporter -coinmarket-api-key
const COINMARKETCAP_API_KEY = process.env.COINMARKETCAP_API_KEY;
const GAS_REPORTER = process.env.GAS_REPORTER || false;
module.exports = {
solidity: {
compilers:[
{version:"0.8.7"},
{version:"0.4.24"},
{version:"0.8.20"},
]
},
defaultNetwork: "hardhat",
networks: {
hardhat: {
chainId: 31337,
// // If you want to do some forking, uncomment this
// forking: {
// url: MAINNET_RPC_URL
// }
},
localhost: {
chainId: 31337,
},
sepolia: {
url: SEPOLIA_RPC_URL,
chainId: 11155111,
accounts: SEPOLIA_PVT_KEY !== undefined ? [SEPOLIA_PVT_KEY] : [],
// accounts:{
// mnemonic:MNEMONIC,
// },
saveDeployments: true,
blockConfirmations: 6,
},
rinkeby: {
url: MAINNET_RPC_URL,
chainId: 1,
accounts: MAINNET_PVT_KEY !== undefined ? [MAINNET_PVT_KEY] : [],
// accounts:{
// mnemonic:MNEMONIC,
// },
saveDeployments: true,
blockConfirmations: 6,
},
mainnet: {
url: MAINNET_RPC_URL,
chainId: 4,
accounts: MAINNET_PVT_KEY !== undefined ? [MAINNET_PVT_KEY] : [],
// accounts:{
// mnemonic:MNEMONIC,
// },
saveDeployments: true,
},
polygon: {
url: POLYGON_MAINNET_RPC_URL,
chainId: 137,
accounts: POLYGON_MAINNET_PVT_KEY != undefined ? [POLYGON_MAINNET_PVT_KEY] : [],
saveDeployments: true,
},
},
namedAccounts:{
deployer:{
default: 0, // here this will by default take the first account as deployer
1: 0, // similarly on mainnet it will take the first account as deployer. Note though that depending on how hardhat network are configured, the account 0 on one network can be different than on another
},
player:{
default:1,
}
},
etherscan: {
//npx hardhat verify --network NETWORK_NAME DEPLOYED_CONTRACT_ADDRESS "Constructor argument 1"
apiKey: {
mainnet: ETHERSCAN_API_KEY,
sepolia: ETHERSCAN_API_KEY,
polygon: POLYGONSCAN_API_KEY,
},
},
gasReporter:{
enabled: GAS_REPORTER,
currency:"USD",
outputFile:"gas-report.txt",
noColors:true,
coinmarketcap: COINMARKETCAP_API_KEY,
},
mocha:{
timeout:200000, // 200 seconds max for running tests
},
contractSizer:{
runCompile: false,
only:["NftMarketplace"],
},
}