state-lib.js 858 B

12345678910111213141516171819202122232425262728
  1. const logger = require("../../utils/logger");
  2. module.exports = class StateLib {
  3. async handlePosition(routerObj) {
  4. const block = routerObj.type === 'univ2' ? 'UNIV2DEX' : 'UNIV3DEX'
  5. const hash = routerObj.type === 'univ2' ? routerObj.factory : routerObj.router + '_router'
  6. try {
  7. // 拉取当前pull状态信息
  8. const pullState = await History.findByHashOrBlockOrDataVague(block, hash, '', 0, 200)
  9. let nowPosition = 0
  10. // 没有状态信息的情况
  11. if (pullState.data.length === 0) {
  12. await History.appendOrUpdate(block, hash, {"next": 0})
  13. } else {
  14. nowPosition = pullState.data[0].dataObj.next
  15. }
  16. return nowPosition
  17. } catch (e) {
  18. logger.error(`Pull state error, router: ${routerObj.router}, factory: ${routerObj.factory}`)
  19. logger.error(e)
  20. }
  21. return 0
  22. }
  23. }