hardhat.config.ts 2.3 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283
  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_TESTNET_RPC_URL = process.env.BSC_TESTNET_RPC_URL || "https://data-seed-prebsc-2-s2.bnbchain.org:8545"
  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: BSC_TESTNET_RPC_URL,
  48. accounts: PRIVATE_KEY ? [PRIVATE_KEY] : { mnemonic: MNEMONIC },
  49. chainId: 97,
  50. },
  51. },
  52. etherscan: {
  53. // Your API key for Etherscan
  54. // Obtain one at https://etherscan.io/
  55. apiKey: {
  56. mainnet: ETHERSCAN_API_KEY,
  57. sepolia: ETHERSCAN_API_KEY,
  58. // Polygon
  59. polygon: POLYGONSCAN_API_KEY,
  60. polygonMumbai: POLYGONSCAN_API_KEY,
  61. // BSC
  62. bsc: BSCSCAN_API_KEY,
  63. bscTestnet: BSCSCAN_API_KEY,
  64. },
  65. },
  66. solidity: {
  67. compilers: [
  68. {
  69. version: "0.8.28",
  70. },
  71. ],
  72. },
  73. }
  74. export default config