sendStargateTokens.js 1.2 KB

123456789101112131415161718192021222324
  1. const { CHAIN_ID } = require("@layerzerolabs/core-sdk")
  2. task("sendStargateTokens", "send StargateTokens cross chain")
  3. .addParam("targetNetwork", "the destination StargateToken chain id")
  4. .addParam("addr", "the destination address to send the tokens to on destination")
  5. .addParam("qty", "the quantity of stargate tokens")
  6. .setAction(async (taskArgs) => {
  7. let accounts = await ethers.getSigners()
  8. let owner = accounts[0] // me
  9. const StargateToken = await ethers.getContractFactory("StargateToken")
  10. const stargateTokenAddr = (await hre.deployments.get("StargateToken")).address
  11. const stargateToken = await StargateToken.attach(stargateTokenAddr)
  12. await (await stargateToken.connect(owner).approve(stargateToken.address, taskArgs.qty)).wait(1)
  13. let dstChainId = CHAIN_ID[taskArgs.targetNetwork]
  14. console.log(`source(${CHAIN_ID[hre.network.name]}) sendTokens( ${taskArgs.qty} ) --> dstChainId(${dstChainId})`)
  15. let tx = await (
  16. await stargateToken.sendTokens(dstChainId, taskArgs.addr, taskArgs.qty, { value: ethers.utils.parseEther("0.1") })
  17. ).wait(1)
  18. console.log(` tx: ${tx.transactionHash}`)
  19. })