156 lines
4.3 KiB
TypeScript
156 lines
4.3 KiB
TypeScript
|
import '@typechain/hardhat';
|
||
|
import '@nomiclabs/hardhat-ethers';
|
||
|
import '@nomiclabs/hardhat-waffle';
|
||
|
import '@nomiclabs/hardhat-etherscan';
|
||
|
import 'hardhat-contract-sizer';
|
||
|
import 'hardhat-gas-reporter';
|
||
|
import '@openzeppelin/hardhat-upgrades';
|
||
|
|
||
|
import { SolcUserConfig } from 'hardhat/types'
|
||
|
|
||
|
import * as dotenv from 'dotenv';
|
||
|
import {float} from "hardhat/internal/core/params/argumentTypes";
|
||
|
dotenv.config();
|
||
|
const DEFAULT_PRIVATE_KEY = process.env.MNEMONIC || '1000000000000000000000000000000000000000000000000000000000000000';
|
||
|
|
||
|
|
||
|
const DEFAULT_COMPILER_SETTINGS: SolcUserConfig = {
|
||
|
version: '0.8.15',
|
||
|
settings: {
|
||
|
optimizer: {
|
||
|
enabled: true,
|
||
|
runs: 200,
|
||
|
},
|
||
|
metadata: {
|
||
|
bytecodeHash: 'none',
|
||
|
},
|
||
|
evmVersion: "istanbul",
|
||
|
},
|
||
|
}
|
||
|
|
||
|
module.exports = {
|
||
|
networks: {
|
||
|
hardhat: {
|
||
|
chainId: 137,
|
||
|
forking: {
|
||
|
url: `https://polygon-rpc.com`,
|
||
|
blockNumber: 27081600 // hardcode block number to increase performance of the local cache
|
||
|
},
|
||
|
allowUnlimitedContractSize: true,
|
||
|
loggingEnabled: false,
|
||
|
accounts:{
|
||
|
count:100
|
||
|
}
|
||
|
},
|
||
|
eth: {
|
||
|
url: `https://mainnet.infura.io/v3/${process.env.INFURA_ID_PROJECT}`,
|
||
|
chainId: 1,
|
||
|
accounts: [`0x${DEFAULT_PRIVATE_KEY}`],
|
||
|
gasPrice: 20000000000
|
||
|
},
|
||
|
ropsten: {
|
||
|
url: `https://ropsten.infura.io/v3/${process.env.INFURA_ID_PROJECT}`,
|
||
|
chainId: 3,
|
||
|
accounts: [`0x${DEFAULT_PRIVATE_KEY}`]
|
||
|
},
|
||
|
rinkeby: {
|
||
|
url: `https://rinkeby.infura.io/v3/${process.env.INFURA_ID_PROJECT}`,
|
||
|
accounts: [`0x${DEFAULT_PRIVATE_KEY}`]
|
||
|
},
|
||
|
goerli: {
|
||
|
url: `https://goerli.infura.io/v3/${process.env.INFURA_ID_PROJECT}`,
|
||
|
chainId: 5,
|
||
|
accounts: [`0x${DEFAULT_PRIVATE_KEY}`]
|
||
|
},
|
||
|
kovan: {
|
||
|
url: `https://kovan.infura.io/v3/${process.env.INFURA_ID_PROJECT}`,
|
||
|
chainId: 42,
|
||
|
accounts: [`0x${DEFAULT_PRIVATE_KEY}`]
|
||
|
},
|
||
|
bscTest: {
|
||
|
url: `https://data-seed-prebsc-2-s3.binance.org:8545`,
|
||
|
chainId: 97,
|
||
|
accounts: [`0x${DEFAULT_PRIVATE_KEY}`]
|
||
|
},
|
||
|
bsc: {
|
||
|
url: `https://bsc-dataseed.binance.org/`,
|
||
|
chainId: 56,
|
||
|
accounts: [`0x${DEFAULT_PRIVATE_KEY}`]
|
||
|
},
|
||
|
polygonMumbai: {
|
||
|
url: `https://rpc-mumbai.maticvigil.com`,
|
||
|
chainId: 80001,
|
||
|
accounts: [`0x${DEFAULT_PRIVATE_KEY}`]
|
||
|
},
|
||
|
polygon: {
|
||
|
url: `https://polygon-rpc.com`,
|
||
|
chainId: 137,
|
||
|
accounts: [`0x${DEFAULT_PRIVATE_KEY}`]
|
||
|
},
|
||
|
avalanche: {
|
||
|
url: `https://api.avax.network/ext/bc/C/rpc`,
|
||
|
chainId: 43114,
|
||
|
accounts: [`0x${DEFAULT_PRIVATE_KEY}`]
|
||
|
},
|
||
|
fantom: {
|
||
|
url: `https://rpc.ftm.tools/`,
|
||
|
chainId: 250,
|
||
|
accounts: [`0x${DEFAULT_PRIVATE_KEY}`]
|
||
|
},
|
||
|
arbitrum: {
|
||
|
url: `https://arb1.arbitrum.io/rpc`,
|
||
|
chainId: 42161,
|
||
|
accounts: [`0x${DEFAULT_PRIVATE_KEY}`]
|
||
|
},
|
||
|
aurora: {
|
||
|
url: `https://mainnet.aurora.dev`,
|
||
|
chainId: 1313161554,
|
||
|
accounts: [`0x${DEFAULT_PRIVATE_KEY}`],
|
||
|
gasPrice: 80000000 //0.08 gwei
|
||
|
},
|
||
|
},
|
||
|
etherscan: {
|
||
|
apiKey: {
|
||
|
mainnet: process.env.ETHERSCAN_API_KEY,
|
||
|
ropsten: process.env.ETHERSCAN_API_KEY,
|
||
|
rinkeby: process.env.ETHERSCAN_API_KEY,
|
||
|
goerli: process.env.ETHERSCAN_API_KEY,
|
||
|
kovan: process.env.ETHERSCAN_API_KEY,
|
||
|
// binance smart chain
|
||
|
bsc: process.env.BSCSCAN_API_KEY,
|
||
|
bscTestnet: process.env.BSCSCAN_API_KEY,
|
||
|
// fantom mainnet
|
||
|
opera: process.env.FANTOMSCAN_API_KEY,
|
||
|
ftmTestnet: process.env.FANTOMSCAN_API_KEY,
|
||
|
// polygon
|
||
|
polygon: process.env.POLYGONSCAN_API_KEY,
|
||
|
polygonMumbai: process.env.POLYGONSCAN_API_KEY,
|
||
|
// avalanche
|
||
|
avalanche: process.env.AVALANCHE_API_KEY,
|
||
|
avalancheFujiTestnet: process.env.AVALANCHE_API_KEY,
|
||
|
// arbitrum
|
||
|
arbitrumOne: process.env.ARBITRUM_API_KEY,
|
||
|
arbitrumTestnet: process.env.ARBITRUM_API_KEY,
|
||
|
aurora: process.env.AURORA_API_KEY
|
||
|
},
|
||
|
//apiKey: `${process.env.AURORA_API_KEY}`,
|
||
|
},
|
||
|
solidity: {
|
||
|
compilers: [DEFAULT_COMPILER_SETTINGS]
|
||
|
},
|
||
|
contractSizer: {
|
||
|
alphaSort: false,
|
||
|
disambiguatePaths: true,
|
||
|
runOnCompile: false
|
||
|
},
|
||
|
typechain: {
|
||
|
outDir: 'typechain',
|
||
|
target: 'ethers-v5'
|
||
|
},
|
||
|
gasReporter: {
|
||
|
enabled: process.env.REPORT_GAS === 'true' ? true : false,
|
||
|
noColors: true,
|
||
|
outputFile: 'reports/gas_usage/summary.txt'
|
||
|
}
|
||
|
}
|