one-task.js 1.2 KB

12345678910111213141516171819202122232425262728
  1. const OneTask = require('./task')
  2. const Context = require("./context");
  3. const BinanceSpot = require("./binance/binance-spot");
  4. const BinanceKit = require("./binance/binance-kit");
  5. const IERC20 = require("./web3/ierc20-token");
  6. const Token = require("./token");
  7. const assert = require("assert");
  8. OneTask.baseInit = async function() {
  9. const config = this.context.config
  10. // 构造pairs
  11. const pairs = Object.values(config.tokenMapping).map(coin => `${coin}${config.baseIerc20Token.symbol}` )
  12. // 拉取binance exchange info
  13. const exchangeInfo = await BinanceSpot.exchangeInfo(pairs)
  14. assert.notEqual(exchangeInfo.symbols, undefined, 'exchange info 获取失败,请重启试试。')
  15. // 解析priceTickFilter
  16. const priceTickFilterMap = BinanceKit.parsePriceTickFilterMap(exchangeInfo.symbols)
  17. // 解析lotSizeFilter
  18. const lotSizeFilterMap = BinanceKit.parseLotSizeFilterMap(exchangeInfo.symbols)
  19. // 初始化IERC20的token
  20. await IERC20.batchInit(this.context, Object.keys(config.tokenMapping))
  21. // 初始化本地token,绑定binance与IERC20
  22. await Token.batchInit(this.context, Object.keys(config.tokenMapping), priceTickFilterMap, lotSizeFilterMap)
  23. }
  24. module.exports = OneTask