hardhat.config.js 1.1 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950
  1. const { extendEnvironment } = require('hardhat/config')
  2. require('@nomicfoundation/hardhat-toolbox')
  3. const deployer = require('./.secret-config')
  4. const logger = require('./utils/logger')
  5. const debug = require('./utils/debug')
  6. const FTM_RPC = 'http://3.227.34.41:8545'
  7. const FTM_WS = 'ws://3.227.34.41:8546'
  8. const FTM_IPC = '/ethereum/data/opera.ipc'
  9. const config = {
  10. defaultNetwork: 'FTM',
  11. solidity: "0.7.6",
  12. networks: {
  13. FTM: {
  14. url: FTM_RPC,
  15. chainId: 250,
  16. accounts: [deployer.private]
  17. }
  18. },
  19. paths: {
  20. sources: "./contracts",
  21. tests: "./test",
  22. cache: "./cache",
  23. artifacts: "./artifacts"
  24. },
  25. mocha: {
  26. timeout: 40000
  27. }
  28. }
  29. extendEnvironment(async (hre) => {
  30. const Web3 = require('web3')
  31. hre.Web3 = Web3
  32. logger.debug(`is ${debug.isDev() ? 'dev' : 'pro'} model.`)
  33. if (debug.isDev()) {
  34. logger.debug(`use ${FTM_WS}`)
  35. hre.web3 = new Web3(FTM_WS)
  36. logger.debug(await hre.web3.eth.getBlockNumber())
  37. } else {
  38. const net = require('net')
  39. logger.debug(`use ${FTM_IPC}`)
  40. hre.web3 = new Web3(FTM_IPC, net)
  41. }
  42. })
  43. module.exports=config