hardhat.config.js 4.1 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155
  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/sendCredits");
  19. require("./tasks/swap");
  20. require("./tasks/createChainPath");
  21. require("./tasks/setWeightForChainPath");
  22. require("./tasks/setBridge");
  23. require("./tasks/getBridge");
  24. require("./tasks/mintTokens");
  25. require("./tasks/getPool");
  26. require("./tasks/addLPStakingPool");
  27. require("./tasks/createPools");
  28. require("./tasks/createChainPaths");
  29. require("./tasks/activateChainPath");
  30. require("./tasks/activateChainPaths");
  31. require("./tasks/deployToken");
  32. require("./tasks/testnetSwap");
  33. require("./tasks/wireBridges");
  34. require("./tasks/wireStargateTokens");
  35. require("./tasks/sendStargateTokens");
  36. require("./tasks/sendCreditsAll");
  37. require("./tasks/getChainPath");
  38. require("./tasks/getFeeVersion")
  39. require("./tasks")
  40. // You need to export an object to set up your config
  41. // Go to https://hardhat.org/config/ to learn more4
  42. function getMnemonic(networkName) {
  43. if (networkName) {
  44. const mnemonic = process.env['MNEMONIC_' + networkName.toUpperCase()]
  45. if (mnemonic && mnemonic !== '') {
  46. return mnemonic
  47. }
  48. }
  49. const mnemonic = process.env.MNEMONIC
  50. if (!mnemonic || mnemonic === '') {
  51. return 'test test test test test test test test test test test junk'
  52. }
  53. return mnemonic
  54. }
  55. function accounts(chainKey) {
  56. return { mnemonic: getMnemonic(chainKey) }
  57. }
  58. /**
  59. * @type import('hardhat/config').HardhatUserConfig
  60. */
  61. module.exports = {
  62. solidity: {
  63. version: "0.7.6",
  64. settings: {
  65. optimizer: {
  66. enabled: true,
  67. runs: 200,
  68. },
  69. },
  70. },
  71. contractSizer: {
  72. alphaSort: false,
  73. runOnCompile: true,
  74. disambiguatePaths: false,
  75. },
  76. // for hardhat-deploy
  77. namedAccounts: {
  78. deployer: 0,
  79. },
  80. defaultNetwork: "hardhat",
  81. networks: {
  82. ethereum: {
  83. url: "https://mainnet.infura.io/v3/9aa3d95b3bc440fa88ea12eaa4456161", // public infura endpoint
  84. chainId: 1,
  85. accounts: accounts(),
  86. },
  87. avalanche: {
  88. url: "https://api.avax.network/ext/bc/C/rpc",
  89. chainId: 43114,
  90. accounts: accounts(),
  91. },
  92. rinkeby: {
  93. url: "https://rinkeby.infura.io/v3/9aa3d95b3bc440fa88ea12eaa4456161", // public infura endpoint
  94. chainId: 4,
  95. accounts: accounts(),
  96. },
  97. 'bsc-testnet': {
  98. url: 'https://data-seed-prebsc-1-s1.binance.org:8545/',
  99. chainId: 97,
  100. accounts: accounts(),
  101. },
  102. fuji: {
  103. url: `https://api.avax-test.network/ext/bc/C/rpc`,
  104. chainId: 43113,
  105. accounts: accounts(),
  106. },
  107. mumbai: {
  108. url: "https://rpc-mumbai.maticvigil.com/",
  109. chainId: 80001,
  110. accounts: accounts(),
  111. },
  112. 'arbitrum-rinkeby': {
  113. url: `https://rinkeby.arbitrum.io/rpc`,
  114. chainId: 421611,
  115. accounts: accounts(),
  116. },
  117. 'optimism-kovan': {
  118. url: `https://kovan.optimism.io/`,
  119. chainId: 69,
  120. accounts: accounts(),
  121. },
  122. 'fantom-testnet': {
  123. url: `https://rpc.testnet.fantom.network/`,
  124. chainId: 4002,
  125. accounts: accounts(),
  126. }
  127. },
  128. mocha: {
  129. timeout: 500000,
  130. },
  131. gasReporter: {
  132. enabled: process.env.REPORT_GAS === "true",
  133. currency: "USD",
  134. },
  135. etherscan: {
  136. apiKey: process.env.ETHERSCAN_API_KEY,
  137. },
  138. };