makePool.js 2.0 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445
  1. const POOLS = require("../constants/pools.json")
  2. task("makePool", "createPair on it as owner (this adds a new token for swap()ing)")
  3. .addParam("poolId", "the desired poolId for the new Pool being created")
  4. .addParam("sharedDecimals", "the least common amount of decimals for the token across chains")
  5. .setAction(async (taskArgs, hre) => {
  6. const Router = await ethers.getContractFactory("Router")
  7. const routerAddr = (await hre.deployments.get("Router")).address
  8. const router = await Router.attach(routerAddr)
  9. // make sure the token exists
  10. let Token = await ethers.getContractFactory("MockToken") // its an ERC20
  11. let tokenAddr = POOLS[taskArgs.poolId][hre.network.name]
  12. // console.log(POOLS)
  13. // console.log(taskArgs.poolId, hre.network.name)
  14. let token = await Token.attach(tokenAddr)
  15. let name = await token.name()
  16. let symbol = await token.symbol()
  17. let decimals = await token.decimals()
  18. let poolName = `${name}-LP`
  19. let poolSymbol = `S*${symbol}`
  20. try {
  21. let tx = await (
  22. await router.createPool(
  23. taskArgs.poolId,
  24. tokenAddr,
  25. taskArgs.sharedDecimals, // Stargate pairs shared decimals across chains
  26. decimals, // the tokens real decimals
  27. poolName,
  28. poolSymbol
  29. )
  30. ).wait(10)
  31. console.log(
  32. `✅ ${hre.network.name} > ${poolName} (${poolSymbol}) | createPair poolId[${taskArgs.poolId}] name:${name} symbol:${symbol} decimals:${decimals} address:${token.address}]`
  33. )
  34. console.log(` -> tx.transactionHash: ${tx.transactionHash}`)
  35. } catch (e) {
  36. console.log(
  37. `✅ ${hre.network.name} > ${poolName} (${poolSymbol}) | createPair poolId[${taskArgs.poolId}] name:${name} symbol:${symbol} decimals:${decimals} address:${token.address}] | *already created*`
  38. )
  39. }
  40. })