| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116 |
- const web3 = require('hardhat').web3
- const logger = require("../../utils/logger")
- const BigNumber = require('ethers').BigNumber
- const ierc20abi = require('../../abi/IERC20_ABI.json')
- const contracts = require('../../config/contracts')
- const Time = require("../../utils/time")
- const ChainLib = require("../lib/chain")
- class LpGenerate {
- tokenInstance = {}
- lpInstance = {}
- async handlePosition(routerObj) {
- const block = routerObj.type === 'univ2' ? 'UNIV2DEX' : 'UNIV3DEX'
- const hash = routerObj.type === 'univ2' ? routerObj.factory : routerObj.router + '_router'
- try {
- // 拉取当前pull状态信息
- const pullState = await History.findByHashOrBlockOrDataVague(block, hash, '', 0, 200)
- let nowPosition = 0
- // 没有状态信息的情况
- if (pullState.data.length === 0) {
- await History.appendOrUpdate(block, hash, {"next": 0})
- } else {
- nowPosition = pullState.data[0].dataObj.next
- }
- return nowPosition
- } catch (e) {
- logger.error(`Pull state error, router: ${routerObj.router}, factory: ${routerObj.factory}`)
- logger.error(e)
- }
- return 0
- }
- parseFactory(router, factoryAbi, factoryAddress) {
- if (router.factoryObj === null) {
- router.factoryObj = new web3.eth.Contract(factoryAbi, factoryAddress)
- }
- return router.factoryObj
- }
- async run() {
- logger.debug('Pull lp start.')
- // 初始化410 v2工具箱
- const v2ToolBy410Abi = require('../../abi/410_V2_TOOLS.json')
- const v2ToolBy410 = new web3.eth.Contract(v2ToolBy410Abi, contracts.V2_TOOLS_BY_410)
- const v2FactoryAbi = require('../../abi/UNIV2_FACTORY_ABI.json')
- // router
- const routerList = require('../../config/router-list.json')
- // while (true) {
- // for (const routerObj of routerList) {
- // try {
- // let pairsLength = 0
- //
- // const factoryAddress = routerObj.factory
- // // 获取当前pull状态
- // let position = await this.handlePosition(routerObj)
- // let v2Factory = undefined
- // // v2,v3分开处理
- // if (routerObj.type === 'univ2') {
- // // 获取工厂实例
- // v2Factory = this.parseFactory(routerObj, v2FactoryAbi, factoryAddress)
- // // 获取当前pairsLength
- // pairsLength = await v2Factory.methods.allPairsLength().call()
- // }
- // // 如果有未获取的池子
- // const haveNewLp = position < pairsLength
- //
- // // 打印信息
- // if (haveNewLp) {
- // logger.debug(`Router address: ${routerObj.router}`)
- // if (routerObj.type === 'univ2') {
- // logger.debug(`factory: ${factoryAddress}, ${position} / ${pairsLength}.`)
- // } else {
- // logger.debug(`position: ${routerObj.position}, ${position} / ${pairsLength}.`)
- // }
- // }
- //
- // // 挨个处理lp信息
- // for (; position < pairsLength; position++) {
- // await this.handleLp(position, pairsLength, routerObj, v2ToolBy410)
- // }
- //
- // if (haveNewLp) {
- // if (routerObj.type === 'univ2') {
- // await History.appendOrUpdate('UNIV2DEX', routerObj.factory, {"next": position})
- // }
- //
- // logger.debug('')
- // logger.debug('')
- // logger.debug('')
- // }
- // } catch (e) {
- // logger.debug(e)
- // }
- // }
- //
- // await Time.delay(12000)
- // }
- }
- }
- async function main() {
- logger.info(await ChainLib.getChainFromCommand())
- }
- main().catch((error) => {
- console.error(error);
- process.exitCode = 1;
- })
|