123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960 |
- const { POOLS } = require("@layerzerolabs/sg-sdk")
- const { getEndpointId } = require("../utils/network")
- task("createPools", "create the pools for the network").setAction(async (taskArgs) => {
- let router = await ethers.getContract("Router")
- let pools = POOLS[hre.network.name]
- // console.log(pools)
- // for(let poolId in pools){
- // console.log(pools[poolId].info)
- // console.log(`poolId: ${poolId}`)
- // console.table(pools[poolId].chainPaths)
- // }
- // make sure the token exists
- let tx
- for (let poolId in pools) {
- console.log(pools[poolId].info)
- console.log(`poolId: ${poolId}`)
- console.table(pools[poolId].chainPaths)
- let sharedDecimals = pools[poolId].info.sharedDecimals
- let address = pools[poolId].info.address
- let Token = await ethers.getContractFactory("MockToken")
- let token = await Token.attach(address)
- let name = await token.name()
- let symbol = await token.symbol()
- let decimals = await token.decimals()
- let poolName = `${name}-LP`
- let poolSymbol = `S*${symbol}`
- const factory = await ethers.getContract("Factory")
- try {
- tx = await (
- await router.createPool(
- poolId,
- token.address,
- sharedDecimals, // Stargate pairs shared decimals across chains
- decimals, // the tokens real decimals
- poolName,
- poolSymbol
- )
- ).wait()
- let poolAddr = await factory.getPool(poolId)
- console.log(`[${getEndpointId()}] createPool | name:${name} symbol:${symbol} decimals:${decimals} address:${token.address}`)
- console.log(`- tx: ${tx.transactionHash} | pool.address: ${poolAddr} name: ${poolName} symbol: ${poolSymbol}`)
- } catch (e) {
- if (e.error.message.includes("Stargate: Pool already created")) {
- let poolAddr = await factory.getPool(poolId)
- console.log(
- `[${getEndpointId()}] createPool | name:${name} symbol:${symbol} decimals:${decimals} address:${
- token.address
- } | *already created*`
- )
- console.log(`- pool.address: ${poolAddr} name: ${poolName} symbol: ${poolSymbol}`)
- }
- }
- }
- })
|