hardhat.config.ts 1.9 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273
  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 ETHERSCAN_API_KEY = process.env.ETHERSCAN_API_KEY || "api-key"
  12. const POLYGONSCAN_API_KEY = process.env.POLYGONSCAN_API_KEY || "api-key"
  13. // Import MNEMONIC or single private key
  14. const MNEMONIC = process.env.MNEMONIC || "your mnemonic"
  15. const PRIVATE_KEY = process.env.PRIVATE_KEY
  16. const config: HardhatUserConfig = {
  17. defaultNetwork: "hardhat",
  18. networks: {
  19. mainnet: {
  20. url: MAINNET_RPC_URL,
  21. accounts: PRIVATE_KEY ? [PRIVATE_KEY] : { mnemonic: MNEMONIC },
  22. },
  23. hardhat: {
  24. // // If you want to do some forking, uncomment this
  25. // forking: {
  26. // url: MAINNET_RPC_URL
  27. // }
  28. },
  29. localhost: {
  30. url: "http://127.0.0.1:8545",
  31. },
  32. sepolia: {
  33. url: SEPOLIA_RPC_URL,
  34. accounts: PRIVATE_KEY ? [PRIVATE_KEY] : { mnemonic: MNEMONIC },
  35. },
  36. matic: {
  37. url: MATIC_RPC_URL,
  38. accounts: PRIVATE_KEY ? [PRIVATE_KEY] : { mnemonic: MNEMONIC },
  39. },
  40. mumbai: {
  41. url: MUMBAI_RPC_URL,
  42. accounts: PRIVATE_KEY ? [PRIVATE_KEY] : { mnemonic: MNEMONIC },
  43. },
  44. },
  45. etherscan: {
  46. // Your API key for Etherscan
  47. // Obtain one at https://etherscan.io/
  48. apiKey: {
  49. mainnet: ETHERSCAN_API_KEY,
  50. sepolia: ETHERSCAN_API_KEY,
  51. // Polygon
  52. polygon: POLYGONSCAN_API_KEY,
  53. polygonMumbai: POLYGONSCAN_API_KEY,
  54. },
  55. },
  56. solidity: {
  57. compilers: [
  58. {
  59. version: "0.8.28",
  60. },
  61. ],
  62. },
  63. }
  64. export default config