sendCredits.js 1.6 KB

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