hardhat.config.ts 2.5 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485868788899091929394959697
  1. import "@nomicfoundation/hardhat-toolbox"
  2. import { HardhatUserConfig } from "hardhat/config"
  3. import "hardhat-deploy"
  4. import "@nomiclabs/hardhat-solhint"
  5. import "hardhat-deploy"
  6. import "solidity-coverage"
  7. import "dotenv/config"
  8. import "./tasks/utils/accounts"
  9. import "./tasks/utils/balance"
  10. import "./tasks/utils/block-number"
  11. import "./tasks/utils/send-eth"
  12. import "./tasks/erc721/mint"
  13. import "./tasks/erc721/base-uri"
  14. import "./tasks/erc721/contract-uri"
  15. import "./tasks/erc20/mint"
  16. import "./tasks/erc1155/mint"
  17. import "./tasks/erc1155/base-uri"
  18. import "./tasks/erc1155/contract-uri"
  19. const MAINNET_RPC_URL = process.env.MAINNET_RPC_URL || "https://eth-mainnet.g.alchemy.com/v2/your-api-key"
  20. const SEPOLIA_RPC_URL = process.env.SEPOLIA_RPC_URL || "https://eth-sepolia.g.alchemy.com/v2/your-api-key"
  21. const MATIC_RPC_URL = process.env.MATIC_RPC_URL || "https://polygon-mainnet.g.alchemy.com/v2/your-api-key"
  22. const MUMBAI_RPC_URL = process.env.MUMBAI_RPC_URL || "https://polygon-mumbai.g.alchemy.com/v2/v3/your-api-key"
  23. const ETHERSCAN_API_KEY = process.env.ETHERSCAN_API_KEY || "api-key"
  24. const POLYGONSCAN_API_KEY = process.env.POLYGONSCAN_API_KEY || "api-key"
  25. // Import MNEMONIC or single private key
  26. const MNEMONIC = process.env.MNEMONIC || "your mnemonic"
  27. const PRIVATE_KEY = process.env.PRIVATE_KEY
  28. const config: HardhatUserConfig = {
  29. defaultNetwork: "hardhat",
  30. networks: {
  31. mainnet: {
  32. url: MAINNET_RPC_URL,
  33. accounts: PRIVATE_KEY ? [PRIVATE_KEY] : { mnemonic: MNEMONIC },
  34. },
  35. hardhat: {
  36. // // If you want to do some forking, uncomment this
  37. // forking: {
  38. // url: MAINNET_RPC_URL
  39. // }
  40. },
  41. localhost: {
  42. url: "http://127.0.0.1:8545",
  43. },
  44. sepolia: {
  45. url: SEPOLIA_RPC_URL,
  46. accounts: PRIVATE_KEY ? [PRIVATE_KEY] : { mnemonic: MNEMONIC },
  47. },
  48. matic: {
  49. url: MATIC_RPC_URL,
  50. accounts: PRIVATE_KEY ? [PRIVATE_KEY] : { mnemonic: MNEMONIC },
  51. },
  52. mumbai: {
  53. url: MUMBAI_RPC_URL,
  54. accounts: PRIVATE_KEY ? [PRIVATE_KEY] : { mnemonic: MNEMONIC },
  55. },
  56. },
  57. etherscan: {
  58. // Your API key for Etherscan
  59. // Obtain one at https://etherscan.io/
  60. apiKey: {
  61. mainnet: ETHERSCAN_API_KEY,
  62. sepolia: ETHERSCAN_API_KEY,
  63. // Polygon
  64. polygon: POLYGONSCAN_API_KEY,
  65. polygonMumbai: POLYGONSCAN_API_KEY,
  66. },
  67. },
  68. namedAccounts: {
  69. deployer: {
  70. default: 0, // here this will by default take the first account as deployer
  71. mainnet: 0, // similarly on mainnet it will take the first account as deployer.
  72. },
  73. owner: {
  74. default: 0,
  75. },
  76. },
  77. solidity: {
  78. compilers: [
  79. {
  80. version: "0.8.20",
  81. },
  82. ],
  83. },
  84. }
  85. export default config