소스 검색

细化日志内容,优化配置币种

龚成明 2 년 전
부모
커밋
941e53c571
4개의 변경된 파일39개의 추가작업 그리고 21개의 파일을 삭제
  1. 13 8
      config/config.js
  2. 5 2
      kit/num-kit.js
  3. 1 1
      kit/tick-kit.js
  4. 20 10
      scripts/monitors/price-monitor.js

+ 13 - 8
config/config.js

@@ -37,18 +37,23 @@ Config.tokenMapping = {
   '0x7130d2A12B9BCbFAe4f2634d864A1Ee1Ce3Ead9c': 'BTC',
   '0x2170ed0880ac9a755fd29b2688956bd959f933f8': 'ETH',
   '0xa260E12d2B924cb899AE80BB58123ac3fEE1E2F0': 'HOOK',
-  '0x4338665CBB7B2485A8855A139b75D5e34AB0DB94': 'LTC'
-  // '0x7083609fce4d1d8dc0c979aab8c869ea2c873402': 'DOT',
+  '0x4338665CBB7B2485A8855A139b75D5e34AB0DB94': 'LTC',
+  '0x7083609fce4d1d8dc0c979aab8c869ea2c873402': 'DOT',
   // '0x0eb3a705fc54725037cc9e008bdede697f62f335': 'ATOM',
-  // '0xaec945e04baf28b135fa7c640f624f8d90f1c3a6': 'C98',
-  // '0x8ff795a6f4d97e7887c79bea79aba5cc76444adf': 'BCH',
-  // '0xbf5140a22578168fd562dccf235e5d43a02ce9b1': 'UNI',
+  '0xaec945e04baf28b135fa7c640f624f8d90f1c3a6': 'C98',
+  '0x8ff795a6f4d97e7887c79bea79aba5cc76444adf': 'BCH',
+  '0xbf5140a22578168fd562dccf235e5d43a02ce9b1': 'UNI',
   // '0xe02df9e3e622debdd69fb838bb799e3f168902c5': 'BAKE',
-  // '0xf8a0bf9cf54bb92f17374d9e9a321e6a111a51bd': 'LINK',
+  '0xf8a0bf9cf54bb92f17374d9e9a321e6a111a51bd': 'LINK',
   // '0x16939ef78684453bfdfb47825f8a5f714f12623a': 'XTZ',
   // '0xae9269f27437f0fcbc232d39ec814844a51d6b8f': 'BURGER',
-  // '0x0e09fabb73bd3ade0a17ecc321fd13a19e81ce82': 'CAKE',
-  // '0xba2ae424d960c26247dd6c32edc70b295c744c43': 'DOGE'
+  '0x0e09fabb73bd3ade0a17ecc321fd13a19e81ce82': 'CAKE',
+  '0xba2ae424d960c26247dd6c32edc70b295c744c43': 'DOGE',
+  '0x2859e4544C4bB03966803b044A93563Bd2D0DD4D': 'SHIB',
+  '0x0D8Ce2A99Bb6e3B7Db580eD848240e4a0F9aE153': 'FIL',
+  '0x570A5D26f7765Ecb712C0924E4De545B89fD43dF': 'SOL',
+  '0x67b725d7e342d7B611fa85e859Df9697D9378B2e': 'SAND',
+  // '0x728C5baC3C3e370E372Fc4671f9ef6916b814d8B': 'UNFI'
 }
 
 module.exports = Config

+ 5 - 2
kit/num-kit.js

@@ -1,4 +1,4 @@
-export default class NumKit {
+module.exports = class NumKit {
   /**
    * 截取小数位工具
    * @param num 需要截取的小数
@@ -13,7 +13,10 @@ export default class NumKit {
 
     let rst = num.toString()
 
-    if (rst.indexOf('.') !== -1) {
+    if (rst.indexOf('e') !== -1) {
+      const e = parseInt(rst.split('e')[1])
+      rst = parseFloat(rst.substring(0, rst.indexOf('.') + n + 1)) * Math.pow(10, e)
+    } else if (rst.indexOf('.') !== -1) {
       rst = rst.substring(0, rst.indexOf('.') + n + 1)
     }
 

+ 1 - 1
kit/tick-kit.js

@@ -88,4 +88,4 @@ TickKit.MACD = function (ticks, N1, N2, N3) {
   return { diffs: diffs, deas: deas, bars: bars }
 }
 
-export default TickKit
+module.exports = TickKit

+ 20 - 10
scripts/monitors/price-monitor.js

@@ -2,6 +2,7 @@ const OneTask = require('../../libs/one-task')
 const OneInch = require('../../libs/web3/1inch')
 const BinanceSpot = require('../../libs/binance/binance-spot')
 const Config = require('../../config/config')
+const NumKit = require('../../kit/num-kit')
 
 const showPrices = function(context, task) {
   const logger = task.logger
@@ -10,22 +11,30 @@ const showPrices = function(context, task) {
 
   console.clear()
 
-  console.info(`-----------------------------------------------------------------------------------------------------------------`)
-  console.info(`| pair\t\t\t| 1inch\t\t\t\t| binance\t\t| distance\t\t\t|`)
-  console.info(`-----------------------------------------------------------------------------------------------------------------`)
+  console.info(`----------------------------------------------------------------------------------------------------------------------------`)
+  console.info(`| pair\t\t\t| 1inch\t\t\t\t| binance\t\t| distance\t\t\t| percentage\t\t\t|`)
+  console.info(`----------------------------------------------------------------------------------------------------------------------------`)
   Object.keys(tokenMap).forEach((tokenHash) => {
     const token = tokenMap[tokenHash]
     const pair = token.exchange.pair
     const OneInchPrice = token.OneInchPrice
     const BinancePrice = token.BinancePrice
-    const distancePrice = BinancePrice - OneInchPrice
+    const DistancePrice = token.DistancePrice
 
-    if (distancePrice > 0) {
-      fileLogger.info(`| ${pair}\t\t| ${OneInchPrice}\t\t| ${BinancePrice}\t\t| ${distancePrice}\t\t|`)
+    const percentage = NumKit.getSubFloat((DistancePrice / OneInchPrice) * 100, 2)
+
+    // 价格非法的就不输出了
+    if ((() => {
+      return !OneInchPrice || !BinancePrice || !DistancePrice
+    })()) return
+
+    // 打印逻辑
+    if (DistancePrice > 0) {
+      fileLogger.info(`| ${pair}\t\t| ${OneInchPrice}\t\t| ${BinancePrice}\t\t| ${DistancePrice}\t\t| ${percentage}\t\t|`)
     }
-    console.info(`| ${pair}\t\t| ${OneInchPrice}\t\t| ${BinancePrice}\t\t| ${distancePrice}\t\t|`)
+    console.info(`| ${pair}\t\t| ${OneInchPrice}\t\t| ${BinancePrice}\t\t| ${DistancePrice}\t\t| ${percentage}\t\t|`)
   })
-  console.info(`-----------------------------------------------------------------------------------------------------------------`)
+  console.info(`----------------------------------------------------------------------------------------------------------------------------`)
   logger.info('')
 }
 
@@ -41,11 +50,12 @@ const onTickFun = async function() {
     const fromIerc20Token = Config.baseIerc20Token
     const amount = Config.baseTokenAmount
 
-    const OneInchPrice = await OneInch.price(fromIerc20Token.contract, tokenHash, amount)
-    const BinancePrice = await BinanceSpot.realPrice(toToken.exchange.pair)
+    const OneInchPrice = NumKit.getSubFloat(await OneInch.price(fromIerc20Token.contract, tokenHash, amount), 8)
+    const BinancePrice = NumKit.getSubFloat(await BinanceSpot.realPrice(toToken.exchange.pair), 8)
 
     toToken.OneInchPrice = OneInchPrice
     toToken.BinancePrice = BinancePrice
+    toToken.DistancePrice = NumKit.getSubFloat(BinancePrice - OneInchPrice, 8)
   }
 
   // 绘制帧