123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869 |
- // const {POOLS} = require("@layerzerolabs/sg-sdk")
- const {getEndpointId} = require("../utils/network")
- const {getPoolsByNetwork} = require("../utils/layerzero");
- task("createPools", "create the pools for the network").setAction(async (taskArgs) => {
- let router = await ethers.getContract("Router")
- let pools = getPoolsByNetwork(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)
- // }
- // return;
- // make sure the token exists
- const factory = await ethers.getContract("Factory")
- const mirrorgateEthVault = await ethers.getContract("MirrorgateEthVault");
- pools.push({
- info: {
- poolId: 0,
- address: mirrorgateEthVault.address,
- sharedDecimals: await mirrorgateEthVault.decimals(),
- }
- })
- let tx
- for (let pool of pools) {
- let sharedDecimals = pool.info.sharedDecimals
- let address = pool.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}`
- try {
- tx = await (
- await router.createPool(
- pool.info.poolId,
- token.address,
- sharedDecimals, // Mirrorgate pairs shared decimals across chains
- decimals, // the tokens real decimals
- poolName,
- poolSymbol
- )
- ).wait()
- let poolAddr = await factory.getPool(pool.info.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) {
- console.error(e);
- if (e.error.message.includes("Mirrorgate: Pool already created")) {
- let poolAddr = await factory.getPool(pool.info.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}`)
- }
- }
- }
- })
|