hardhat.config.ts 2.7 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899
  1. import "@nomicfoundation/hardhat-toolbox"
  2. import { HardhatUserConfig } from "hardhat/config"
  3. import "@nomiclabs/hardhat-solhint"
  4. import "solidity-coverage"
  5. import "dotenv/config"
  6. import "./tasks"
  7. const MAINNET_RPC_URL = process.env.MAINNET_RPC_URL || "https://eth-mainnet.g.alchemy.com/v2/your-api-key"
  8. const SEPOLIA_RPC_URL = process.env.SEPOLIA_RPC_URL || "https://eth-sepolia.g.alchemy.com/v2/your-api-key"
  9. const MATIC_RPC_URL = process.env.MATIC_RPC_URL || "https://polygon-mainnet.g.alchemy.com/v2/your-api-key"
  10. const MUMBAI_RPC_URL = process.env.MUMBAI_RPC_URL || "https://polygon-mumbai.g.alchemy.com/v2/v3/your-api-key"
  11. const BSC_MAINNET_RPC_URL = process.env.BSC_MAINNET_RPC_URL || "https://bsc-dataseed1.binance.org/"
  12. const ETHERSCAN_API_KEY = process.env.ETHERSCAN_API_KEY || "api-key"
  13. const POLYGONSCAN_API_KEY = process.env.POLYGONSCAN_API_KEY || "api-key"
  14. const BSCSCAN_API_KEY = process.env.BSCSCAN_API_KEY || "api-key"
  15. // Import MNEMONIC or single private key
  16. const MNEMONIC = process.env.MNEMONIC || "your mnemonic"
  17. const PRIVATE_KEY = process.env.PRIVATE_KEY
  18. const config: HardhatUserConfig = {
  19. defaultNetwork: "hardhat",
  20. networks: {
  21. mainnet: {
  22. url: MAINNET_RPC_URL,
  23. accounts: PRIVATE_KEY ? [PRIVATE_KEY] : { mnemonic: MNEMONIC },
  24. },
  25. hardhat: {
  26. // // If you want to do some forking, uncomment this
  27. // forking: {
  28. // url: MAINNET_RPC_URL
  29. // }
  30. },
  31. localhost: {
  32. url: "http://127.0.0.1:8545",
  33. },
  34. sepolia: {
  35. url: SEPOLIA_RPC_URL,
  36. accounts: PRIVATE_KEY ? [PRIVATE_KEY] : { mnemonic: MNEMONIC },
  37. },
  38. matic: {
  39. url: MATIC_RPC_URL,
  40. accounts: PRIVATE_KEY ? [PRIVATE_KEY] : { mnemonic: MNEMONIC },
  41. },
  42. mumbai: {
  43. url: MUMBAI_RPC_URL,
  44. accounts: PRIVATE_KEY ? [PRIVATE_KEY] : { mnemonic: MNEMONIC },
  45. },
  46. bscTestnet: {
  47. url: "https://data-seed-prebsc-1-s1.binance.org:8545/",
  48. chainId: 97,
  49. accounts: process.env.PRIVATE_KEY ? [process.env.PRIVATE_KEY] : [],
  50. gasPrice: 10000000000, // 10 gwei
  51. gas: 8000000,
  52. },
  53. bscMainnet: {
  54. url: BSC_MAINNET_RPC_URL,
  55. chainId: 56,
  56. accounts: process.env.PRIVATE_KEY ? [process.env.PRIVATE_KEY] : [],
  57. gasPrice: 5000000000, // 5 gwei
  58. gas: 8000000,
  59. },
  60. },
  61. etherscan: {
  62. // Your API key for Etherscan
  63. // Obtain one at https://etherscan.io/
  64. apiKey: {
  65. mainnet: ETHERSCAN_API_KEY,
  66. sepolia: ETHERSCAN_API_KEY,
  67. // Polygon
  68. polygon: POLYGONSCAN_API_KEY,
  69. polygonMumbai: POLYGONSCAN_API_KEY,
  70. // BSC
  71. bsc: BSCSCAN_API_KEY,
  72. bscTestnet: BSCSCAN_API_KEY,
  73. },
  74. },
  75. solidity: {
  76. compilers: [
  77. {
  78. version: "0.8.28",
  79. settings: {
  80. viaIR: true,
  81. optimizer: {
  82. enabled: true,
  83. runs: 200,
  84. },
  85. },
  86. },
  87. ],
  88. },
  89. }
  90. export default config