import "@nomiclabs/hardhat-etherscan"; import "@nomiclabs/hardhat-waffle"; import "solidity-coverage"; import "hardhat-deploy"; import dotenv from "dotenv"; import type { HttpNetworkUserConfig } from "hardhat/types"; import yargs from "yargs"; import { clearAuction } from "./src/tasks/clear_auction"; import { initiateAuction } from "./src/tasks/initiate_new_auction"; const argv = yargs .option("network", { type: "string", default: "hardhat", }) .help(false) .version(false).argv; // Load environment variables. dotenv.config(); const { INFURA_KEY, MNEMONIC, MY_ETHERSCAN_API_KEY, PK } = process.env; const DEFAULT_MNEMONIC = "candy maple cake sugar pudding cream honey rich smooth crumble sweet treat"; const sharedNetworkConfig: HttpNetworkUserConfig = {}; if (PK) { sharedNetworkConfig.accounts = [PK]; } else { sharedNetworkConfig.accounts = { mnemonic: MNEMONIC || DEFAULT_MNEMONIC, }; } if (["rinkeby", "mainnet"].includes(argv.network) && INFURA_KEY === undefined) { throw new Error( `Could not find Infura key in env, unable to connect to network ${argv.network}`, ); } initiateAuction(); clearAuction(); export default { paths: { artifacts: "build/artifacts", cache: "build/cache", deploy: "src/deploy", sources: "contracts", }, solidity: { version: "0.6.12", }, networks: { mainnet: { ...sharedNetworkConfig, url: `https://mainnet.infura.io/v3/${INFURA_KEY}`, }, rinkeby: { ...sharedNetworkConfig, url: `https://rinkeby.infura.io/v3/${INFURA_KEY}`, }, xdai: { ...sharedNetworkConfig, url: "https://xdai.poanetwork.dev", }, }, namedAccounts: { deployer: 0, }, mocha: { timeout: 2000000, }, etherscan: { apiKey: MY_ETHERSCAN_API_KEY, }, };