diff --git a/hardhat.config.ts b/hardhat.config.ts index 030a780d..7f293569 100644 --- a/hardhat.config.ts +++ b/hardhat.config.ts @@ -3,9 +3,10 @@ import fs from 'fs'; import { HardhatUserConfig } from 'hardhat/types'; // @ts-ignore import { accounts } from './test-wallets.js'; -import { eEthereumNetwork } from './helpers/types'; +import { eEthereumNetwork, iParamsPerNetwork } from './helpers/types'; import { BUIDLEREVM_CHAINID, COVERAGE_CHAINID } from './helpers/buidler-constants'; - +import { NETWORKS_RPC_URL, NETWORKS_DEFAULT_GASĀ } from './helper-hardhat-config'; + require('dotenv').config(); import '@nomiclabs/hardhat-ethers'; @@ -43,58 +44,25 @@ if (!SKIP_LOAD) { require(`${path.join(__dirname, 'tasks/misc')}/set-bre.ts`); -const getCommonNetworkConfig = (networkName: eEthereumNetwork, networkId: number) => { - const net = networkName === 'main' ? 'mainnet' : networkName; - if (networkName == 'matic') return { - url: 'https://rpc-mainnet.matic.network', - blockGasLimit: DEFAULT_BLOCK_GAS_LIMIT, - gasMultiplier: DEFAULT_GAS_MUL, - gasPrice: 7500000000, - chainId: networkId, - accounts: { - mnemonic: MNEMONIC, - path: MNEMONIC_PATH, - initialIndex: 0, - count: 20, - }, - } - if (networkName == 'mumbai') return { - url: 'https://rpc-mumbai.maticvigil.com', - blockGasLimit: DEFAULT_BLOCK_GAS_LIMIT, - gasMultiplier: DEFAULT_GAS_MUL, - gasPrice: 1 * 1000 * 1000 * 1000, - chainId: networkId, - accounts: { - mnemonic: MNEMONIC, - path: MNEMONIC_PATH, - initialIndex: 0, - count: 20, - }, - } - return { - url: ALCHEMY_KEY - ? `https://eth-${net}.alchemyapi.io/v2/${ALCHEMY_KEY}` - : `https://${net}.infura.io/v3/${INFURA_KEY}`, - hardfork: HARDFORK, - blockGasLimit: DEFAULT_BLOCK_GAS_LIMIT, - gasMultiplier: DEFAULT_GAS_MUL, - gasPrice: DEFAULT_GAS_PRICE, - chainId: networkId, - accounts: { - mnemonic: MNEMONIC, - path: MNEMONIC_PATH, - initialIndex: 0, - count: 20, - }, - }; -}; +const getCommonNetworkConfig = (networkName: eEthereumNetwork, networkId: number) => ({ + url: NETWORKS_RPC_URL[networkName], + hardfork: HARDFORK, + blockGasLimit: DEFAULT_BLOCK_GAS_LIMIT, + gasMultiplier: DEFAULT_GAS_MUL, + gasPrice: NETWORKS_DEFAULT_GAS[networkName], + chainId: networkId, + accounts: { + mnemonic: MNEMONIC, + path: MNEMONIC_PATH, + initialIndex: 0, + count: 20, + }, +}); const mainnetFork = MAINNET_FORK ? { blockNumber: 11739065, - url: ALCHEMY_KEY - ? `https://eth-mainnet.alchemyapi.io/v2/${ALCHEMY_KEY}` - : `https://mainnet.infura.io/v3/${INFURA_KEY}`, + url: NETWORKS_RPC_URL['main'], } : undefined; diff --git a/helper-hardhat-config.ts b/helper-hardhat-config.ts new file mode 100644 index 00000000..8c78656d --- /dev/null +++ b/helper-hardhat-config.ts @@ -0,0 +1,41 @@ +// @ts-ignore +import { eEthereumNetwork, iParamsPerNetwork } from './helpers/types'; + +require('dotenv').config(); + +const INFURA_KEY = process.env.INFURA_KEY || ''; +const ALCHEMY_KEY = process.env.ALCHEMY_KEY || ''; + +const GWEI = 1000 * 1000 * 1000; + +export const NETWORKS_RPC_URL: iParamsPerNetwork = { + [eEthereumNetwork.kovan]: ALCHEMY_KEY + ? `https://eth-kovan.alchemyapi.io/v2/${ALCHEMY_KEY}` + : `https://kovan.infura.io/v3/${INFURA_KEY}`, + [eEthereumNetwork.ropsten]: ALCHEMY_KEY + ? `https://eth-ropsten.alchemyapi.io/v2/${ALCHEMY_KEY}` + : `https://ropsten.infura.io/v3/${INFURA_KEY}`, + [eEthereumNetwork.main]: ALCHEMY_KEY + ? `https://eth-mainnet.alchemyapi.io/v2/${ALCHEMY_KEY}` + : `https://mainnet.infura.io/v3/${INFURA_KEY}`, + [eEthereumNetwork.coverage]: 'http://localhost:8555', + [eEthereumNetwork.hardhat]: 'http://localhost:8545', + [eEthereumNetwork.buidlerevm]: 'http://localhost:8545', + [eEthereumNetwork.tenderlyMain]: ALCHEMY_KEY + ? `https://eth-mainnet.alchemyapi.io/v2/${ALCHEMY_KEY}` + : `https://mainnet.infura.io/v3/${INFURA_KEY}`, + [eEthereumNetwork.mumbai]: 'https://rpc-mumbai.maticvigil.com', + [eEthereumNetwork.matic]: 'https://rpc-mainnet.matic.network', +} + +export const NETWORKS_DEFAULT_GAS: iParamsPerNetwork = { + [eEthereumNetwork.kovan]: 65 * GWEI , + [eEthereumNetwork.ropsten]: 65 * GWEI , + [eEthereumNetwork.main]: 65 * GWEI , + [eEthereumNetwork.coverage]: 65 * GWEI , + [eEthereumNetwork.hardhat]: 65 * GWEI , + [eEthereumNetwork.buidlerevm]: 65 * GWEI , + [eEthereumNetwork.tenderlyMain]: 65 * GWEI , + [eEthereumNetwork.mumbai]: 1 * GWEI , + [eEthereumNetwork.matic]: 65 * GWEI , +} \ No newline at end of file