| 123456789101112131415161718192021222324252627282930313233343536373839 | const { POOLS } = require("@layerzerolabs/sg-sdk")const { getEndpointId } = require("../utils/network")const { getEndpointIdByName } = require("@layerzerolabs/lz-sdk")task("createChainPaths", "given a Stargate router, create chainPaths for a token")    .addParam("targetNetwork", "the stargate router address")    .setAction(async (taskArgs) => {        let router = await ethers.getContract("Router")        console.log(`router.address: ${router.address}`)        const poolData = POOLS[hre.network.name]        console.table(poolData)        let tx        for (let srcPoolId in poolData) {            console.log(`mapping ${hre.network.name}[${getEndpointId()}] srcPoolId: ${srcPoolId}`)            let chainPaths = poolData[srcPoolId].chainPaths            for (let dstObj of chainPaths) {                let { dstChainId, dstPoolId, weight } = dstObj                if (dstChainId != getEndpointIdByName(taskArgs.targetNetwork)) {                    continue                }                try {                    tx = await (await router.createChainPath(srcPoolId, dstChainId, dstPoolId, weight)).wait()                    console.log(`✅ createChainPath: poolId:${srcPoolId} dstChainId:${dstChainId} dstPoolId:${dstPoolId} weight:${weight}`)                    console.log(`    -> tx: ${tx.transactionHash}`)                } catch (e) {                    if (e.error.message.includes("Stargate: cant createChainPath of existing dstChainId and _dstPoolId")) {                        console.log(                            `✅ createChainPath: poolId:${srcPoolId} dstChainId:${dstChainId} dstPoolId:${dstPoolId} weight:${weight} | *already exists*`                        )                    } else {                        console.log(e)                        console.log("^ ERROR")                    }                }            }        }    })
 |