MirrorgateToken.js 1.8 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647
  1. const {getLayerZeroAddress} = require("../utils/layerzero")
  2. const CONFIG = require("../constants/config.json")
  3. const {isTestnet, isLocalhost} = require("../utils/network")
  4. const {getEndpointIdByName} = require("@layerzerolabs/lz-sdk")
  5. function getDependencies() {
  6. if (hre.network.name === "hardhat") {
  7. return ["LZEndpointMock"]
  8. }
  9. }
  10. module.exports = async ({getNamedAccounts, deployments}) => {
  11. const {deploy} = deployments
  12. const {deployer} = await getNamedAccounts()
  13. let lzAddress
  14. if (hre.network.name === "hardhat") {
  15. lzAddress = (await deployments.get("LZEndpointMock")).address
  16. // console.log(` -> MirrorgateToken needs LayerZero: ${hre.network.name} LZEndpointMock: ${lzAddress}`)
  17. } else {
  18. console.log(hre.network.name)
  19. lzAddress = getLayerZeroAddress(hre.network.name)
  20. console.log(` -> MirrorgateToken needs LayerZero: ${hre.network.name} LayerZeroEndpoint: ${lzAddress}`)
  21. }
  22. let mainEndpointId = CONFIG.mirrorgateToken.mainEndpointId // ETH
  23. if (isTestnet() && !isLocalhost()) {
  24. // for testnet, mint a bunch of tokens on every chain
  25. mainEndpointId = getEndpointIdByName(hre.network.name)
  26. }
  27. let tokenName = CONFIG.mirrorgateToken.name
  28. let tokenSymbol = CONFIG.mirrorgateToken.symbol
  29. if (hre.network.name !== "hardhat") {
  30. console.log(`MirrorgateToken name: ${tokenName}, symbol:${tokenSymbol} | mainEndpointId: ${mainEndpointId} | isTestnet: ${isTestnet()}`)
  31. }
  32. await deploy("MirrorgateToken", {
  33. from: deployer,
  34. args: [tokenName, tokenSymbol, lzAddress, mainEndpointId, CONFIG.mirrorgateToken.initialSupplyMainEndpoint],
  35. log: true,
  36. skipIfAlreadyDeployed: true,
  37. waitConfirmations: 1,
  38. })
  39. }
  40. module.exports.tags = ["MirrorgateToken", "test"]
  41. module.exports.dependencies = getDependencies()