Browse Source

token拉取

skyfffire 3 years ago
parent
commit
bc12bdab8a

+ 4 - 4
scripts/calcLevel2Path.ts → scripts/ready/calcLevel2Path.ts

@@ -1,6 +1,6 @@
 import { web3 } from "hardhat";
-import swapPath from "./interface/swapPath";
-import logger from "../utils/logger";
+import swapPath from "../interface/swapPath";
+import logger from "../../utils/logger";
 
 function filterPool(pool: any) {
   return true
@@ -22,8 +22,8 @@ function handleSamePools(poolList: any[], pathList: any[]) {
 
 async function main() {
   logger.debug('start loading...')
-  const v2PoolList = require('../config/v2PoolList.json')
-  const v3PoolList = require('../config/v3PoolList.json')
+  const v2PoolList = require('../../config/v2PoolList.json')
+  const v3PoolList = require('../../config/v3PoolList.json')
 
   logger.debug('start filter...')
   const checkedPath: any = {}

+ 58 - 0
scripts/ready/insertAllTokens.ts

@@ -0,0 +1,58 @@
+import logger from "../../utils/logger";
+import history from "../interface/history"
+import { web3 } from "hardhat";
+
+const ierc20abi = require('../../abi/IERC20_ABI.json')
+
+async function handleToken(pool: any, zero: boolean) {
+  const token = {
+    'address': zero ? pool.token0 : pool.token1,
+    'symbol': zero ? pool.symbol0 : pool.symbol1,
+    'decimal': zero ? pool.decimals0 : pool.decimals1,
+    'name': 'xxxxxxxx'
+  }
+
+  const tokenObj = new web3.eth.Contract(ierc20abi, token.address)
+
+  token.name = await tokenObj.methods.name().call()
+  token.name = token.name.replace(/[^A-Za-z0-9 ]+/g, '').substring(0, 37)
+
+  return token
+}
+
+async function main() {
+  logger.debug('start loading pools...')
+  const v2PoolList = require('../../config/v2PoolList.json')
+  const v3PoolList = require('../../config/v3PoolList.json')
+  const poolList = v2PoolList.concat(v3PoolList)
+
+  const tokenBus: any = {}
+
+  // 所有token获取
+  for (let poolIndex in poolList) {
+    const pool = poolList[poolIndex]
+
+    if (tokenBus[pool.token0] == null) {
+      const token = await handleToken(pool, true)
+      tokenBus[pool.token0] = token
+
+      const saveRst = await history.appendOrUpdate('token', token.address, token)
+      logger.debug(token + saveRst.msg)
+    }
+
+    if (tokenBus[pool.token1] == null) {
+      const token = await handleToken(pool, false)
+      tokenBus[pool.token1] = token
+
+      const saveRst = await history.appendOrUpdate('token', token.address, token)
+      logger.debug(token + saveRst.msg)
+    }
+  }
+
+  logger.debug(Object.keys(tokenBus).length)
+}
+
+main().catch((error) => {
+  console.error(error);
+  process.exitCode = 1;
+})

+ 7 - 7
scripts/pushv2.ts → scripts/ready/pushv2.ts

@@ -1,8 +1,8 @@
 import { web3 } from "hardhat";
-import History from "./interface/history";
-import contracts from "../config/contracts";
-import logger from "../utils/logger";
-import v2_routers from "../config/v2_routers";
+import History from "../interface/history";
+import contracts from "../../config/contracts";
+import logger from "../../utils/logger";
+import v2_routers from "../../config/v2_routers";
 import {BigNumber} from "ethers";
 import {replaceAll} from "hardhat/internal/util/strings";
 
@@ -99,12 +99,12 @@ async function main() {
 
   logger.debug('Pull v2 start.')
 
-  const v2_factory_abi = require('../abi/UNIV2_FACTORY_ABI.json')
-  const v2_tool_abi = require('../abi/410_V2_TOOLS.json')
+  const v2_factory_abi = require('../../abi/UNIV2_FACTORY_ABI.json')
+  const v2_tool_abi = require('../../abi/410_V2_TOOLS.json')
 
   // 初始化410 v2工具箱
   const v2_410_tool = new web3.eth.Contract(v2_tool_abi, contracts.TOOLS_410_V2)
-  const v2RouterInfo = require('../config/v2RouterInfo.json')
+  const v2RouterInfo = require('../../config/v2RouterInfo.json')
 
   for (let router_index = 0; router_index < v2RouterInfo.length; router_index++) {
     const v2Router = v2RouterInfo[router_index]

+ 7 - 7
scripts/pushv3.ts → scripts/ready/pushv3.ts

@@ -1,8 +1,8 @@
 import { web3 } from "hardhat";
-import History from "./interface/history";
-import contracts from "../config/contracts";
-import logger from "../utils/logger";
-import v3_routers from "../config/v3_routers";
+import History from "../interface/history";
+import contracts from "../../config/contracts";
+import logger from "../../utils/logger";
+import v3_routers from "../../config/v3_routers";
 import {BigNumber} from "ethers";
 import {replaceAll} from "hardhat/internal/util/strings";
 
@@ -88,9 +88,9 @@ async function main() {
 
   logger.debug('Pull v3 start.')
 
-  const v3_router_abi = require('../abi/UNIV3_ROUTER_ABI.json')
-  const positionManagerAbi = require('../abi/UNIV3_POSITION_MANAGER_ABI.json')
-  const v3_tool_abi = require('../artifacts/contracts/V3Tool.sol/V3Tool.json').abi
+  const v3_router_abi = require('../../abi/UNIV3_ROUTER_ABI.json')
+  const positionManagerAbi = require('../../abi/UNIV3_POSITION_MANAGER_ABI.json')
+  const v3_tool_abi = require('../../artifacts/contracts/V3Tool.sol/V3Tool.json').abi
 
   // 初始化 v3工具箱
   const v3_tool = new web3.eth.Contract(v3_tool_abi, contracts.TOOLS_V3)