123456789101112131415161718192021222324252627282930313233343536373839404142434445 |
- const POOLS = require("../constants/pools.json")
- task("makePool", "createPair on it as owner (this adds a new token for swap()ing)")
- .addParam("poolId", "the desired poolId for the new Pool being created")
- .addParam("sharedDecimals", "the least common amount of decimals for the token across chains")
- .setAction(async (taskArgs, hre) => {
- const Router = await ethers.getContractFactory("Router")
- const routerAddr = (await hre.deployments.get("Router")).address
- const router = await Router.attach(routerAddr)
- // make sure the token exists
- let Token = await ethers.getContractFactory("MockToken") // its an ERC20
- let tokenAddr = POOLS[taskArgs.poolId][hre.network.name]
- // console.log(POOLS)
- // console.log(taskArgs.poolId, hre.network.name)
- let token = await Token.attach(tokenAddr)
- let name = await token.name()
- let symbol = await token.symbol()
- let decimals = await token.decimals()
- let poolName = `${name}-LP`
- let poolSymbol = `S*${symbol}`
- try {
- let tx = await (
- await router.createPool(
- taskArgs.poolId,
- tokenAddr,
- taskArgs.sharedDecimals, // Stargate pairs shared decimals across chains
- decimals, // the tokens real decimals
- poolName,
- poolSymbol
- )
- ).wait(10)
- console.log(
- `✅ ${hre.network.name} > ${poolName} (${poolSymbol}) | createPair poolId[${taskArgs.poolId}] name:${name} symbol:${symbol} decimals:${decimals} address:${token.address}]`
- )
- console.log(` -> tx.transactionHash: ${tx.transactionHash}`)
- } catch (e) {
- console.log(
- `✅ ${hre.network.name} > ${poolName} (${poolSymbol}) | createPair poolId[${taskArgs.poolId}] name:${name} symbol:${symbol} decimals:${decimals} address:${token.address}] | *already created*`
- )
- }
- })
|