hardhat.config.js 4.6 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165
  1. require("dotenv").config();
  2. require("@nomiclabs/hardhat-etherscan");
  3. require("@nomiclabs/hardhat-waffle");
  4. require("@nomiclabs/hardhat-solhint");
  5. require("@nomiclabs/hardhat-web3");
  6. require("hardhat-gas-reporter");
  7. require("solidity-coverage");
  8. require("hardhat-contract-sizer");
  9. require("hardhat-tracer");
  10. require("@primitivefi/hardhat-dodoc");
  11. require("hardhat-deploy");
  12. require("hardhat-deploy-ethers");
  13. require("hardhat-spdx-license-identifier");
  14. // const infuraProjectId = process.env.INFURA_PROJECT_ID;
  15. // console.log(`infuraProjectId: ${infuraProjectId}`);
  16. // custom helper tasks
  17. require("./tasks/addLiquidity");
  18. require("./tasks/addLiquidityForETH");
  19. require("./tasks/sendCredits");
  20. require("./tasks/swap");
  21. require("./tasks/createChainPath");
  22. require("./tasks/setWeightForChainPath");
  23. require("./tasks/setBridge");
  24. require("./tasks/getBridge");
  25. require("./tasks/mintTokens");
  26. require("./tasks/getPool");
  27. require("./tasks/addLPStakingPool");
  28. require("./tasks/createPools");
  29. require("./tasks/createChainPaths");
  30. require("./tasks/activateChainPath");
  31. require("./tasks/activateChainPaths");
  32. require("./tasks/deployToken");
  33. require("./tasks/testnetSwap");
  34. require("./tasks/wireBridges");
  35. require("./tasks/wireStargateTokens");
  36. require("./tasks/sendStargateTokens");
  37. require("./tasks/sendCreditsAll");
  38. require("./tasks/getChainPath");
  39. require("./tasks/getFeeVersion")
  40. require("./tasks")
  41. // You need to export an object to set up your config
  42. // Go to https://hardhat.org/config/ to learn more4
  43. function getMnemonic(networkName) {
  44. if (networkName) {
  45. const mnemonic = process.env['MNEMONIC_' + networkName.toUpperCase()]
  46. if (mnemonic && mnemonic !== '') {
  47. return mnemonic
  48. }
  49. }
  50. const mnemonic = process.env.MNEMONIC
  51. if (!mnemonic || mnemonic === '') {
  52. return 'clay nephew tornado chair just unveil toe inspire hover scout weather income'
  53. }
  54. return mnemonic
  55. }
  56. function accounts(chainKey) {
  57. return {mnemonic: getMnemonic(chainKey)}
  58. }
  59. /**
  60. * @type import('hardhat/config').HardhatUserConfig
  61. */
  62. module.exports = {
  63. solidity: {
  64. version: "0.7.6",
  65. settings: {
  66. optimizer: {
  67. enabled: true,
  68. runs: 200,
  69. },
  70. },
  71. },
  72. contractSizer: {
  73. alphaSort: false,
  74. runOnCompile: true,
  75. disambiguatePaths: false,
  76. },
  77. // for hardhat-deploy
  78. namedAccounts: {
  79. deployer: 0,
  80. },
  81. defaultNetwork: "hardhat",
  82. networks: {
  83. // ethereum: {
  84. // url: "https://mainnet.infura.io/v3/9aa3d95b3bc440fa88ea12eaa4456161", // public infura endpoint
  85. // chainId: 1,
  86. // accounts: accounts(),
  87. // },
  88. //
  89. // avalanche: {
  90. // url: "https://api.avax.network/ext/bc/C/rpc",
  91. // chainId: 43114,
  92. // accounts: accounts(),
  93. // },
  94. //
  95. // rinkeby: {
  96. // url: "https://rinkeby.infura.io/v3/9aa3d95b3bc440fa88ea12eaa4456161", // public infura endpoint
  97. // chainId: 4,
  98. // accounts: accounts(),
  99. // },
  100. // 'bsc-testnet': {
  101. // url: 'https://data-seed-prebsc-1-s1.binance.org:8545/',
  102. // chainId: 97,
  103. // accounts: accounts(),
  104. // },
  105. // fuji: {
  106. // url: `https://api.avax-test.network/ext/bc/C/rpc`,
  107. // chainId: 43113,
  108. // accounts: accounts(),
  109. // },
  110. // mumbai: {
  111. // url: "https://rpc-mumbai.maticvigil.com/",
  112. // chainId: 80001,
  113. // accounts: accounts(),
  114. // },
  115. // 'arbitrum-rinkeby': {
  116. // url: `https://rinkeby.arbitrum.io/rpc`,
  117. // chainId: 421611,
  118. // accounts: accounts(),
  119. // },
  120. // 'optimism-kovan': {
  121. // url: `https://kovan.optimism.io/`,
  122. // chainId: 69,
  123. // accounts: accounts(),
  124. // },
  125. // 'fantom-testnet': {
  126. // url: `https://rpc.testnet.fantom.network/`,
  127. // chainId: 4002,
  128. // accounts: accounts(),
  129. // },
  130. "arb-test": {
  131. url: "https://arb-goerli.g.alchemy.com/v2/7YU_JyqrlbMJ2KzmN6zB1vFF-Smn2AXb",
  132. chainId: 421613,
  133. accounts: accounts("arb-test")
  134. },
  135. "opt-test": {
  136. url: "https://opt-goerli.g.alchemy.com/v2/iMrfsHlDWHlHgG5DtkcGqCu5BzsAGokB",
  137. chainId: 420,
  138. accounts: accounts("opt-test")
  139. }
  140. },
  141. mocha: {
  142. timeout: 500000,
  143. },
  144. gasReporter: {
  145. enabled: process.env.REPORT_GAS === "true",
  146. currency: "USD",
  147. },
  148. etherscan: {
  149. apiKey: "FT4MXT4NWUTYI73XCA8YHMVDMJXBER6KNX",
  150. },
  151. };