StargateToken.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/core-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(` -> StargateToken needs LayerZero: ${hre.network.name} LZEndpointMock: ${lzAddress}`)
  17. } else {
  18. console.log(hre.network.name)
  19. lzAddress = getLayerZeroAddress(hre.network.name)
  20. console.log(` -> StargateToken needs LayerZero: ${hre.network.name} LayerZeroEndpoint: ${lzAddress}`)
  21. }
  22. let mainEndpointId = CONFIG.stargateToken.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.stargateToken.name
  28. let tokenSymbol = CONFIG.stargateToken.symbol
  29. if (hre.network.name !== "hardhat") {
  30. console.log(`StargateToken name: ${tokenName}, symbol:${tokenSymbol} | mainEndpointId: ${mainEndpointId} | isTestnet: ${isTestnet()}`)
  31. }
  32. await deploy("StargateToken", {
  33. from: deployer,
  34. args: [tokenName, tokenSymbol, lzAddress, mainEndpointId, CONFIG.stargateToken.initialSupplyMainEndpoint],
  35. log: true,
  36. skipIfAlreadyDeployed: true,
  37. waitConfirmations: 1,
  38. })
  39. }
  40. module.exports.tags = ["StargateToken", "test"]
  41. module.exports.dependencies = getDependencies()