hardhat.config.js 2.33 KB
Newer Older
John Doe's avatar
John Doe committed
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
require ("@nomiclabs/hardhat-waffle");
require ("hardhat-gas-reporter");
require ("hardhat-contract-sizer");
require ("@nomiclabs/hardhat-etherscan");
require ("@nomiclabs/hardhat-ethers");
require ("solidity-coverage");
require("hardhat-gas-reporter");
const dotenv = require('dotenv');

dotenv.config();

task("accounts", "Prints the list of accounts", async (taskArgs, hre) => {
  const accounts = await hre.ethers.getSigners();

  for (const account of accounts) {
    console.log(account.address);
  }
});

const PRIVATE_KEY = process.env.PRIVATE_KEY;
const INFURA_PROJECT_ID = process.env.INFURA_PROJECT_ID;
const COINMARKETCAP_API_KEY = process.env.COINMARKETCAP_API_KEY;
const ETHERSCAN_API_KEY = process.env.ETHERSCAN_API_KEY;

module.exports = {
  defaultNetwork: "hardhat",
  networks: {
    hardhat: {
      allowUnlimitedContractSize: true,
      gas: 30000000
    },
    ropsten: {
      url: "https://ropsten.infura.io/v3/179491410de5450cb20f88593067a22c",
      accounts: [`0x${PRIVATE_KEY}`]
    },
    goerli: {
      url: "https://goerli.infura.io/v3/179491410de5450cb20f88593067a22c",
      accounts: [`0x${PRIVATE_KEY}`]
    },
    // localhost: {
    //   url: "http://127.0.0.1:8545",
    //   allowUnlimitedContractSize: true,
    // },
    rinkeby: {
      url: `https://rinkeby.infura.io/v3/${INFURA_PROJECT_ID}`,
      accounts: [`0x${PRIVATE_KEY}`],
      gasPrice: 45000000000,
    },
    // mainnet: {
    //   url: `https://mainnet.infura.io/v3/${INFURA_PROJECT_ID}`,
    //   accounts: [`0x${PRIVATE_KEY}`],
    //   gasPrice: 45000000000,
    // }
  },
  etherscan: {
    // Your API key for Etherscan
    // Obtain one at https://etherscan.io/
    apiKey: ETHERSCAN_API_KEY
  },
  solidity: {
    compilers: [
      {
        version: "0.8.4"
      },
      {
        version: "0.6.6",
      },
    ],
    settings: {
      optimizer: {
        enabled: true,
        runs: 200
      },
      evmVersion: 'london'
    }
  },

  mocha: {
    timeout: 20000,
  },

  gasReporter: {
    coinmarketcap: COINMARKETCAP_API_KEY,
    excludeContracts: ['TestERC20Mock', 'ERC20'],
    currency: "USD",
    gasPrice: 100,
    enabled: true,
  },

  etherscan: {
    apiKey: ETHERSCAN_API_KEY,
  },
  
  // contractSizer: {
  //   alphaSort: true,
  //   disambiguatePaths: false,
  //   runOnCompile: true,
  //   strict: true,
  //   // only: [':ERC20$'],
  // }
};