sendCredits.js 1.6 KB

12345678910111213141516171819202122232425262728293031323334353637383940
  1. // const { CHAIN_ID } = require("@layerzerolabs/lz-sdk")
  2. const {getEndpointIdByName} = require("../utils/layerzero");
  3. task("sendCredits", "sendCredits function from stargate to destination chainId")
  4. .addParam("poolId", "the poolId")
  5. .addParam("dstPoolId", "the destination poolId")
  6. .addParam("targetNetworks", "csv of the target network names")
  7. .setAction(async (taskArgs, hre) => {
  8. let accounts = await ethers.getSigners()
  9. let owner = accounts[0]
  10. const router = await ethers.getContract("Router")
  11. let targetNetworks = taskArgs.targetNetworks.split(",")
  12. for (let targetNetwork of targetNetworks) {
  13. let chainId = getEndpointIdByName(targetNetwork)
  14. try {
  15. let tx = await router.sendCredits(
  16. chainId,
  17. taskArgs.poolId,
  18. taskArgs.dstPoolId,
  19. owner.address,
  20. {value: ethers.utils.parseEther("0.1")} // guess, but it should cover the relayer fee
  21. )
  22. await tx.wait(1)
  23. console.log(
  24. `💸 ${hre.network.name} > sendCredits( ${chainId}, poolId:${taskArgs.poolId} dstPoolId:${taskArgs.dstPoolId} ) -> tx.hash: ${tx.hash}`
  25. )
  26. } catch (e) {
  27. if (!e.error) {
  28. console.log(e)
  29. } else {
  30. console.log(
  31. `* ${hre.network.name} > sendCredits( ${chainId}, poolId:${taskArgs.poolId} dstPoolId:${taskArgs.dstPoolId} ) ... Error: ${e.error.message}]`
  32. )
  33. }
  34. }
  35. }
  36. })