Pārlūkot izejas kodu

维护进程测试

skyfffire 3 gadi atpakaļ
vecāks
revīzija
06c3601b2a

+ 1 - 1
config/router-list.json

@@ -18,5 +18,5 @@
   {"name":"HIP","router":"0x8F2a57bbC2B3870Ed321541F091f9A3EbE008Ad4","factory":"0x8cF9A887e53be909C221A2708E72898546dAB7Cc","fee":"3000","type":"univ2","chain":"ethw","fromPosition": 0},
   {"name":"UNIW2","router":"0xf19eb68da923d28c78f2c640fb5ddbc07868cdcf","factory":"0xfa969454d450dfb86a2dceffec48529f799f4a69","fee":"3000","type":"univ2","chain":"ethw","fromPosition": 0},
   {"name":"CakeW","router":"0xb8dad6ef36940a7c881980860ea28822994e22bd","factory":"0xe97352E2d3a4F418044a91533a2379dbd11b425d","fee":"2500","type":"univ2","chain":"ethw","fromPosition": 0},
-  {"name":"UNIV3","router":"0x68b3465833fb72A70ecDF485E0e4C7bD8665Fc45","position":"0xC36442b4a4522E871399CD717aBDD847Ab11FE88","fee":"0","type":"univ3","chain":"eth","fromPosition": 0}
+  {"name":"UNIV3","router":"0x68b3465833fb72A70ecDF485E0e4C7bD8665Fc45","position":"0xC36442b4a4522E871399CD717aBDD847Ab11FE88","fee":"0","type":"univ3","chain":"eth","fromPosition": 300000}
 ]

+ 2 - 2
hardhat.config.ts

@@ -5,8 +5,8 @@ import deployer from './.secret'
 import {HardhatRuntimeEnvironment} from "hardhat/types";
 
 // const ETH_RPC = '/ethereum/data/geth.ipc'
-const ETH_RPC = 'http://3.227.34.41:8545'
-const ETH_W_RPC = 'http://3.227.34.41:18545'
+const ETH_RPC = 'http://www.410eth.com:8545'
+const ETH_W_RPC = 'http://www.410eth.com:18545'
 
 const config: HardhatUserConfig = {
   defaultNetwork: 'eth_w',

+ 0 - 0
scripts/lp/lpGenerate.ts


+ 50 - 75
scripts/core/pullAndPush.ts → scripts/lp/lpMaintenance.ts

@@ -4,11 +4,10 @@ import contracts from "../../config/contracts";
 import logger from "../../utils/logger";
 import {BigNumber} from "ethers";
 import {replaceAll} from "hardhat/internal/util/strings";
-import swapPath from "../interface/swapPath";
 import history from "../interface/history";
 const ierc20abi = require('../../abi/IERC20_ABI.json')
 
-export class PullAndPush {
+export class LpMaintenance {
   fromHead: boolean = false
   isFirst: boolean = false
   tokenInstance: any = {}
@@ -19,31 +18,6 @@ export class PullAndPush {
     this.isFirst = _isFirst
   }
 
-  async handlePosition(routerObj: any) {
-    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, {"now": nowPosition})
-      } else {
-        nowPosition = pullState.data[0].dataObj.now
-      }
-
-      return nowPosition
-    } catch (e) {
-      logger.error(`Pull state error, router: ${routerObj.router}, factory: ${routerObj.factory}`)
-      logger.error(e)
-    }
-
-    return 0
-  }
-
   async getV2PoolByPosition(routerObj: any, position: number, v2ToolBy410: any) {
     try {
       const info = await v2ToolBy410.methods.getPairIdInfo(routerObj.factory, position).call()
@@ -73,7 +47,7 @@ export class PullAndPush {
       }
 
       // 更新一次position
-      await History.appendOrUpdate('UNIV2DEX', routerObj.factory, {"now": position + 1})
+      // await History.appendOrUpdate('UNIV2DEX', routerObj.factory, {"now": position + 1})
 
       return lp
     } catch (e) {}
@@ -109,7 +83,7 @@ export class PullAndPush {
         token1: positionInfo.token1
       }
 
-      await History.appendOrUpdate('UNIV3DEX', routerObj.router + '_router', {"now": position + 1})
+      // await History.appendOrUpdate('UNIV3DEX', routerObj.router + '_router', {"now": position + 1})
 
       return lp
     } catch (e) {}
@@ -117,24 +91,6 @@ export class PullAndPush {
     return undefined
   }
 
-  async saveLpToSwapPath(lp: any) {
-    const lpSum2Query = await swapPath.findBySumValueAndLevel(lp.sum2, '2')
-    let lpSum2List = []
-
-    if (!this.isFirst && lpSum2Query.state) {
-      lpSum2List = JSON.parse(lpSum2Query.data.data)
-    }
-
-    // TODO push之前查重处理
-    lpSum2List.push(lp)
-
-    // const insertRst = await swapPath.appendOrUpdate(lp.sum2, '2', lpSum2List)
-    // logger.debug(`save path: ${lp.name}: ${insertRst.msg}`)
-    await swapPath.appendOrUpdate(lp.sum2, '2', lpSum2List)
-    // free
-    lpSum2List.length = 0
-  }
-
   async handleToken(pool: any, zero: boolean) {
     const token = {
       'address': zero ? pool.token0 : pool.token1,
@@ -180,10 +136,28 @@ export class PullAndPush {
   }
 
   async filterLp(lp: any) {
+    // const filterSizeNormal = 1
+    const filterSizeTop = 10
+
+    // WETH
     if (lp.token0.toLowerCase() === '0xc02aaa39b223fe8d0a0e5c4f27ead9083c756cc2') {
-      return parseInt(lp.r0) > 20 * 1e18
+      return parseInt(lp.r0) > filterSizeTop * 1e18
     } else if (lp.token1.toLowerCase() === '0xc02aaa39b223fe8d0a0e5c4f27ead9083c756cc2') {
-      return parseInt(lp.r1) > 20 * 1e18
+      return parseInt(lp.r1) > filterSizeTop * 1e18
+    }
+
+    // ETH
+    if (lp.token0.toLowerCase() === '0xaf3ccfd9b59b36628cc2f659a09d6440795b2520') {
+      return parseInt(lp.r0) > filterSizeTop * 1e18
+    } else if (lp.token1.toLowerCase() === '0xaf3ccfd9b59b36628cc2f659a09d6440795b2520') {
+      return parseInt(lp.r1) > filterSizeTop * 1e18
+    }
+
+    // WETHW
+    if (lp.token0.toLowerCase() === '0x7bf88d2c0e32de92cdaf2d43ccdc23e8edfd5990') {
+      return parseInt(lp.r0) > filterSizeTop * 1e18
+    } else if (lp.token1.toLowerCase() === '0x7bf88d2c0e32de92cdaf2d43ccdc23e8edfd5990') {
+      return parseInt(lp.r1) > filterSizeTop * 1e18
     }
 
     return true
@@ -234,7 +208,7 @@ export class PullAndPush {
 
   async handleLp(position: number, pairsLength: number,
                            routerObj: any, v2ToolBy410: any, v3Tool: any, v3PositionManager: any) {
-    // 1. 获取lp
+    // 获取lp
     let lp = undefined
     if (routerObj.type === 'univ2') {
       lp = await this.getV2PoolByPosition(routerObj, position, v2ToolBy410)
@@ -243,17 +217,15 @@ export class PullAndPush {
       lp = await this.getV3Pool(routerObj, position + 1, v3Tool, v3PositionManager)
     }
     if (lp) {
-      // 2. 保存Lp信息
+      // 保存Lp信息
       await this.saveLp(lp, '0')
-      // 3. 保存Lp的Token到Token表
+      // 保存Lp的Token到Token表
       await this.saveToken(lp, 'token')
-      // 4. 过滤Lp
+      // 过滤Lp
       if (await this.filterLp(lp)) {
-        // 5. 将过滤后的Lp保存到二阶表
-        // await this.saveLpToSwapPath(lp)
-        // 6. 保存筛选之后的的Token到TopToken表
+        // 保存筛选之后的的Token到TopToken表
         await this.saveToken(lp, 'topToken')
-        // 7. 保存过滤后的Lp到TopLp
+        // 保存过滤后的Lp到TopLp
         await this.saveLp(lp, 'topLp')
       }
     }
@@ -295,7 +267,7 @@ export class PullAndPush {
 
         const factoryAddress = routerObj.factory
         // 获取当前pull状态
-        let position = this.fromHead ? routerObj.fromPosition : await this.handlePosition(routerObj)
+        let position = routerObj.fromPosition
         let v2Factory = undefined
         let v3PositionManager = undefined
         // v2,v3分开处理
@@ -309,17 +281,13 @@ export class PullAndPush {
           v3PositionManager = this.parsePositionManager(routerObj, positionManagerAbi)
           pairsLength = await this.getPositionLength(v3PositionManager)
         }
-        // 如果有未获取的池子
-        const haveNewLp = position < pairsLength
-
-        // 打印信息
-        if (haveNewLp) {
-          logger.debug(`Router address: ${routerObj.router}`)
-          if (routerObj.type === 'univ2') {
-            logger.debug(`factory: ${factoryAddress}, ${position + 1} / ${pairsLength}.`)
-          } else {
-            logger.debug(`position: ${routerObj.position}, ${position + 1} / ${pairsLength}.`)
-          }
+
+        // log该router信息
+        logger.debug(`Router address: ${routerObj.router}`)
+        if (routerObj.type === 'univ2') {
+          logger.debug(`factory: ${factoryAddress}, ${position + 1} / ${pairsLength}.`)
+        } else {
+          logger.debug(`position: ${routerObj.position}, ${position + 1} / ${pairsLength}.`)
         }
 
         // 挨个处理lp信息
@@ -327,11 +295,9 @@ export class PullAndPush {
           await this.handleLp(position, pairsLength, routerObj, v2ToolBy410, v3Tool, v3PositionManager)
         }
 
-        if (haveNewLp) {
-          logger.debug('')
-          logger.debug('')
-          logger.debug('')
-        }
+        logger.debug('')
+        logger.debug('')
+        logger.debug('')
       }
 
       if (this.fromHead && this.isFirst) {
@@ -340,4 +306,13 @@ export class PullAndPush {
       }
     }
   }
-}
+}
+
+async function main() {
+  await new LpMaintenance(true, true).run()
+}
+
+main().catch((error) => {
+  console.error(error);
+  process.exitCode = 1;
+})

+ 0 - 0
scripts/path/level2Maintenance.ts


+ 0 - 10
scripts/push.ts

@@ -1,10 +0,0 @@
-import { PullAndPush } from './core/pullAndPush'
-
-async function main() {
-  await new PullAndPush(false, false).run()
-}
-
-main().catch((error) => {
-  console.error(error);
-  process.exitCode = 1;
-})

+ 0 - 10
scripts/pushFromHead.ts

@@ -1,10 +0,0 @@
-import { PullAndPush } from './core/pullAndPush'
-
-async function main() {
-  await new PullAndPush(true, true).run()
-}
-
-main().catch((error) => {
-  console.error(error);
-  process.exitCode = 1;
-})