const plugins = require('./plugins') const notifier = require('./notifier') const T = require('./time') const logger = require('./logger') const cashOutTx = require('./cash-out-tx') const INCOMING_TX_INTERVAL = 30 * T.seconds const LIVE_INCOMING_TX_INTERVAL = 5 * T.seconds const UNNOTIFIED_INTERVAL = 10 * T.seconds const SWEEP_HD_INTERVAL = T.minute const TRADE_INTERVAL = 10 * T.seconds const PONG_INTERVAL = 10 * T.seconds const PONG_CLEAR_INTERVAL = 1 * T.day const CHECK_NOTIFICATION_INTERVAL = 30 * T.seconds let pi function reload (settings) { pi = plugins(settings) logger.debug('settings reloaded in poller') } function start (settings) { reload(settings) pi.executeTrades() pi.pong() pi.pongClear() cashOutTx.monitorLiveIncoming(settings) cashOutTx.monitorStaleIncoming(settings) cashOutTx.monitorUnnotified(settings) pi.sweepHd() notifier.checkNotification(pi) setInterval(() => pi.executeTrades(), TRADE_INTERVAL) setInterval(() => cashOutTx.monitorLiveIncoming(settings), LIVE_INCOMING_TX_INTERVAL) setInterval(() => cashOutTx.monitorStaleIncoming(settings), INCOMING_TX_INTERVAL) setInterval(() => cashOutTx.monitorUnnotified(settings), UNNOTIFIED_INTERVAL) setInterval(() => pi.sweepHd(), SWEEP_HD_INTERVAL) setInterval(() => pi.pong(), PONG_INTERVAL) setInterval(() => pi.pongClear(), PONG_CLEAR_INTERVAL) setInterval(() => notifier.checkNotification(pi), CHECK_NOTIFICATION_INTERVAL) } module.exports = {start, reload}