| 1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586878889909192939495969798 |
- import { web3 } from "hardhat";
- import swapPath from "./interface/swapPath";
- import logger from "../utils/logger";
- function filterPool(pool: any) {
- return true
- }
- function handleSamePools(poolList: any[], pathList: any[]) {
- for (let poolIndexI = 0; poolIndexI < poolList.length; poolIndexI++) {
- const x = poolList[poolIndexI]
- if (!filterPool(x)) continue
- for (let poolIndexJ = poolIndexI + 1; poolIndexJ < poolList.length; poolIndexJ++) {
- const y = poolList[poolIndexJ]
- if (!filterPool(y)) continue
- pathList.push([x, y])
- }
- }
- }
- async function main() {
- logger.debug('start loading...')
- const v2PoolList = require('../config/v2PoolList.json')
- const v3PoolList = require('../config/v3PoolList.json')
- logger.debug('start filter...')
- const checkedPath: any = {}
- for (let v2PoolIndex = 0; v2PoolIndex < v2PoolList.length; v2PoolIndex++) {
- const v2Pool = v2PoolList[v2PoolIndex]
- v2Pool.type = 'v2'
- // 已经查过的sum不再查询
- if (checkedPath[v2Pool.sum2] != null) continue
- checkedPath[v2Pool.sum2] = []
- // 开始排查
- const sameSumPoolList = [v2Pool]
- // 排查v2的,从当前位置开始,以免重复path
- for (let findSameSumV2Index = v2PoolIndex + 1; findSameSumV2Index < v2PoolList.length; findSameSumV2Index++) {
- const v2PoolUnChecked = v2PoolList[findSameSumV2Index]
- // 同sumValue
- if (v2PoolUnChecked.sum2 == v2Pool.sum2) {
- v2PoolUnChecked.type = 'v2'
- sameSumPoolList.push(v2PoolUnChecked)
- }
- }
- // 排查v3的,从0开始
- for (let findSameSumV3Index = 0; findSameSumV3Index < v3PoolList.length; findSameSumV3Index++) {
- const v3PoolUnChecked = v3PoolList[findSameSumV3Index]
- // 同sumValue
- if (v3PoolUnChecked.sum2 == v2Pool.sum2) {
- v3PoolUnChecked.type = 'v3'
- sameSumPoolList.push(v3PoolUnChecked)
- }
- }
- if (sameSumPoolList.length > 1) {
- handleSamePools(sameSumPoolList, checkedPath[v2Pool.sum2])
- const rst = await swapPath.appendOrUpdate(v2Pool.sum2, '2', checkedPath[v2Pool.sum2])
- logger.debug(`${rst.msg}, v2, ${v2PoolIndex}/${v2PoolList.length}`)
- }
- }
- // 处理v3的
- for (let v3PoolIndex = 0; v3PoolIndex < v3PoolList.length; v3PoolIndex++) {
- const v3Pool = v3PoolList[v3PoolIndex]
- v3Pool.type = 'v3'
- // 已经查过的sum不再查询
- if (checkedPath[v3Pool.sum2] != null) continue
- checkedPath[v3Pool.sum2] = []
- // 开始排查
- const sameSumPoolList = [v3Pool]
- // 排查v3的,从v3PoolIndex开始
- for (let findSameSumV3Index = v3PoolIndex + 1; findSameSumV3Index < v3PoolList.length; findSameSumV3Index++) {
- const v3PoolUnChecked = v3PoolList[findSameSumV3Index]
- // 同sumValue
- if (v3PoolUnChecked.sum2 == v3Pool.sum2) {
- v3PoolUnChecked.type = 'v3'
- sameSumPoolList.push(v3PoolUnChecked)
- }
- }
- if (sameSumPoolList.length > 1) {
- handleSamePools(sameSumPoolList, checkedPath[v3Pool.sum2])
- const rst = await swapPath.appendOrUpdate(v3Pool.sum2, '2', checkedPath[v3Pool.sum2])
- logger.debug(`${rst.msg}, v3, ${v3PoolIndex}/${v3PoolList.length}`)
- }
- }
- logger.debug('query ok.')
- }
- main().catch((error) => {
- console.error(error);
- process.exitCode = 1;
- })
|