龚成明 2 жил өмнө
parent
commit
f5388d9fb2

+ 1 - 1
libs/token.js

@@ -15,7 +15,7 @@ module.exports = class Token {
 
   static async init(context, tokenHash, lotSizeFilterMap) {
     // token初始化
-    const ierc20Decimals = await IERC20.getDecimals(tokenHash)
+    const ierc20Decimals = parseInt(await IERC20.getDecimals(tokenHash))
     const exchangeSymbol = Config.tokenMapping[tokenHash]
     const exchangePair = `${exchangeSymbol}${Config.baseIerc20Token.symbol}`
     const exchangeLotSize = lotSizeFilterMap[exchangePair]

+ 2 - 3
libs/web3/1inch.js

@@ -7,7 +7,7 @@ const chainID = 56
 
 class OneInch {}
 
-OneInch.price = async function(fromTokenAddress, toTokenAddress, fromTokenDecimals = 18, amount = Config.baseTokenAmount) {
+OneInch.price = async function(fromTokenAddress, toTokenAddress, amount=Config.baseTokenAmount, fromTokenDecimals=Config.baseIerc20Token.decimals) {
   fromTokenAddress = fromTokenAddress.toLowerCase()
   toTokenAddress = toTokenAddress.toLowerCase()
   amount = amount * (10 ** fromTokenDecimals)
@@ -21,8 +21,7 @@ OneInch.price = async function(fromTokenAddress, toTokenAddress, fromTokenDecima
 
   const toTokenAmount = parseFloat(rst.toTokenAmount) / (10 ** rst.toToken.decimals)
   const fromTokenAmount = amount / (10 ** fromTokenDecimals)
-  const price = fromTokenAmount / toTokenAmount
-  rst.price = price
+  rst.price = fromTokenAmount / toTokenAmount
   Config.estimatedGas = rst.estimatedGas
 
   if (toTokenAddress.toLowerCase() === '0xe9e7cea3dedca5984780bafc599bd69add087d56') {

+ 12 - 8
scripts/monitors/price-monitor.js

@@ -9,15 +9,19 @@ const showPrices = function(context, task) {
 
   console.clear()
 
-  console.info(`---------------------------------------------------------------------------------`)
-  console.info(`| pair\t\t\t| 1inch\t\t\t\t| binance\t\t|`)
-  console.info(`---------------------------------------------------------------------------------`)
+  console.info(`-----------------------------------------------------------------------------------------------------------------`)
+  console.info(`| pair\t\t\t| 1inch\t\t\t\t| binance\t\t| distance\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
 
-    console.info(`| ${token.exchange.pair}\t\t| ${token.OneInchPrice}\t\t| ${token.binancePrice}\t\t|`)
+    console.info(`| ${pair}\t\t| ${OneInchPrice}\t\t| ${BinancePrice}\t\t| ${distancePrice}\t\t|`)
   })
-  console.info(`---------------------------------------------------------------------------------`)
+  console.info(`-----------------------------------------------------------------------------------------------------------------`)
   logger.info('')
 }
 
@@ -33,11 +37,11 @@ const onTickFun = async function() {
     const fromIerc20Token = Config.baseIerc20Token
     const amount = Config.baseTokenAmount
 
-    const OneInchPrice = await OneInch.price(fromIerc20Token.contract, tokenHash, toToken.ierc20.decimals, amount)
-    const binancePrice = await BinanceSpot.realPrice(toToken.exchange.pair)
+    const OneInchPrice = await OneInch.price(fromIerc20Token.contract, tokenHash, amount)
+    const BinancePrice = await BinanceSpot.realPrice(toToken.exchange.pair)
 
     toToken.OneInchPrice = OneInchPrice
-    toToken.binancePrice = binancePrice
+    toToken.BinancePrice = BinancePrice
   }
 
   // 绘制帧