Переглянути джерело

修复value计算错误的bug

skyfffire 2 роки тому
батько
коміт
b2f3155209
2 змінених файлів з 7 додано та 9 видалено
  1. 6 8
      scripts/lib/lp-lib.js
  2. 1 1
      scripts/maintenance/index.js

+ 6 - 8
scripts/lib/lp-lib.js

@@ -188,8 +188,8 @@ module.exports = class LpLib {
 
   putSwapPrice(lpList) {
     for (const lp of lpList) {
-      const r0RealAmount = parseInt(lp.r0) / Math.pow(10, parseInt(lp.decimals0))
-      const r1RealAmount = parseInt(lp.r1) / Math.pow(10, parseInt(lp.decimals1))
+      const r0RealAmount = lp.r0 / Math.pow(10, parseInt(lp.decimals0))
+      const r1RealAmount = lp.r1 / Math.pow(10, parseInt(lp.decimals1))
 
       // 计算0换1的价格和1换0的价格
       lp.token0ToToken1Price = r1RealAmount / r0RealAmount // 一个token0 = token0ToToken1Price个token1
@@ -269,11 +269,11 @@ module.exports = class LpLib {
         if (tokenAndBaseTokenLp.token0 === tokenHash) {
           const token0ToBaseTokenPrice = tokenAndBaseTokenLp.token0ToToken1Price
 
-          return token0ToBaseTokenPrice * realAmount
+          return isNaN(token0ToBaseTokenPrice) ? 0 : token0ToBaseTokenPrice * realAmount
         } else {
           const token1ToBaseTokenPrice = tokenAndBaseTokenLp.token1ToToken0Price
 
-          return token1ToBaseTokenPrice * realAmount
+          return isNaN(token1ToBaseTokenPrice) ? 0 : token1ToBaseTokenPrice * realAmount
         }
       }
 
@@ -283,19 +283,17 @@ module.exports = class LpLib {
     for (const baseTokenAddress of baseTokenAddressList) {
       const baseTokenToEthPrice = baseTokenConvertEthValueMap[baseTokenAddress]
 
+      if (!baseTokenToEthPrice) continue
+
       // 如果token0跟baseToken能组成池子
       const r0ConvertToBaseTokenRealAmount = valueConvertTokenToBaseToken(this, r0, token0, decimals0, baseTokenAddress)
       if (r0ConvertToBaseTokenRealAmount !== 0) {
-        logger.info(lp.hash, r0, token0, decimals0, r0ConvertToBaseTokenRealAmount, baseTokenToEthPrice)
-
         return r0ConvertToBaseTokenRealAmount * baseTokenToEthPrice
       }
 
       // 如果token1跟baseToken能组成池子
       const r1ConvertToBaseTokenRealAmount = valueConvertTokenToBaseToken(this, r1, token1, decimals1, baseTokenAddress)
       if (r1ConvertToBaseTokenRealAmount !== 0) {
-        logger.info(lp.hash, r1, token1, decimals1, r1ConvertToBaseTokenRealAmount, baseTokenToEthPrice)
-
         return r1ConvertToBaseTokenRealAmount * baseTokenToEthPrice
       }
     }

+ 1 - 1
scripts/maintenance/index.js

@@ -32,7 +32,7 @@ class LpMaintenance {
     for (const lp of lpList) {
       lp.valueStr = this.lpLib.getLpEthValue(lp, baseTokenConvertEthValueMap, maxValueLpMap)
 
-      // if (lp.valueStr > 0) logger.info(`lp: ${lp.hash}, value: ${lp.valueStr}.`)
+      if (lp.valueStr > 0) logger.info(`lp: ${lp.hash}, value: ${lp.valueStr}.`)
     }
     // 6. 更新池子到数据库
     for (const v2Lp of v2LpList) {