addLPStakingPool.js 1.7 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546
  1. const FARMS = require("../constants/farms.json")
  2. task("addLPStakingPool", "add an LPStaking pool with add()")
  3. .addParam("poolId", "the Stargate Router's poolId of the S*LP token")
  4. .setAction(async (taskArgs) => {
  5. // console.log(FARMS)
  6. const farm = FARMS[hre.network.name]
  7. if (!farm) {
  8. throw Error(`farm for ${hre.network.name} is undefined`)
  9. }
  10. console.log(farm)
  11. // factory
  12. const factory = await ethers.getContract("Factory")
  13. // pool info
  14. let poolAddr = await factory.getPool(taskArgs.poolId)
  15. let Pool = await ethers.getContractFactory("Pool")
  16. let pool = await Pool.attach(poolAddr)
  17. let poolId = await pool.poolId()
  18. let nativeAssetToken = await pool.token()
  19. console.log(`pool.poolId: ${poolId}`)
  20. console.log(`pool.token (ie: asset token): ${nativeAssetToken}`)
  21. console.log(`pool.address (ie: S*XXX token): ${poolAddr}`)
  22. let weight = farm[taskArgs.poolId].weight
  23. console.log(`setting pid weight: ${weight}`)
  24. let tx
  25. let lpStaking = await ethers.getContract("LPStaking")
  26. try {
  27. tx = await (
  28. await lpStaking.add(
  29. weight, // alloc points
  30. poolAddr // stargate S* lp token address
  31. )
  32. ).wait(1)
  33. } catch (e) {
  34. //console.log(e)
  35. if (e.error.message.includes("StarGate: _lpToken already exists")) {
  36. console.log(`added Farm for poolId:${poolId} | *already exists`)
  37. return
  38. }
  39. }
  40. console.log(`added Farm for poolId:${poolId} | tx: ${tx.transactionHash}`)
  41. })