| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748 |
- const OneTask = require('./task')
- const Context = require("./context");
- const Config = require("../config/config");
- const BinanceSpot = require("./binance/binance-spot");
- const IERC20 = require("./web3/ierc20-token");
- const Token = require("./token");
- const PrivateConfig = require("../PrivateConfig")
- OneTask.baseInit = async function() {
- this.context = new Context()
- this.context.binanceSpot = new BinanceSpot(PrivateConfig.binanceAPIKey, PrivateConfig.binanceSecretKey)
- const pairs = Object.values(PrivateConfig.tokenMapping).map(coin => `${coin}${Config.baseIerc20Token.symbol}` )
- const exchangeInfo = await BinanceSpot.exchangeInfo(pairs)
- // 解析priceTickFilter
- const priceTickFilterMap = (() => {
- const filterMap = {}
- exchangeInfo.symbols.forEach(function(pairInfo) {
- const filter = pairInfo.filters.filter(filterObj => filterObj.filterType === 'PRICE_FILTER')[0]
- filterMap[pairInfo.symbol] = Math.log10(1 / parseFloat(filter.tickSize))
- })
- return filterMap
- })()
- // 解析lotSizeFilter
- const lotSizeFilterMap = (() => {
- const filterMap = {}
- exchangeInfo.symbols.forEach(function(pairInfo) {
- const filter = pairInfo.filters.filter(filterObj => filterObj.filterType === 'LOT_SIZE')[0]
- filterMap[pairInfo.symbol] = Math.log10(1 / parseFloat(filter.stepSize))
- })
- return filterMap
- })()
- // 初始化IERC20的token
- await IERC20.batchInit(this.context, Object.keys(PrivateConfig.tokenMapping))
- // 初始化本地token,绑定binance与IERC20
- await Token.batchInit(this.context, Object.keys(PrivateConfig.tokenMapping), priceTickFilterMap, lotSizeFilterMap)
- }
- module.exports = OneTask
|