| 1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253 |
- 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 showPrices = function(context, task) {
- const logger = task.logger
- const tokenMap = context.tokenMap
- console.clear()
- 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(`| ${pair}\t\t| ${OneInchPrice}\t\t| ${BinancePrice}\t\t| ${distancePrice}\t\t|`)
- })
- console.info(`-----------------------------------------------------------------------------------------------------------------`)
- logger.info('')
- }
- const onTickFun = async function() {
- const task = this
- const context = task.context
- const tokenMap = context.tokenMap
- const tokenContractAddressList = Object.keys(tokenMap)
- // 搜集所有价格数据
- for (const tokenHash of tokenContractAddressList) {
- const toToken = tokenMap[tokenHash]
- 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)
- toToken.OneInchPrice = OneInchPrice
- toToken.BinancePrice = BinancePrice
- }
- // 绘制帧
- showPrices(context, task)
- }
- const priceMonitor = new OneTask('PriceMonitor',5 * 1000, OneTask.baseInit, onTickFun)
- priceMonitor.Start()
|