49 lines
1.1 KiB
JavaScript
49 lines
1.1 KiB
JavaScript
'use strict';
|
|
|
|
var _transferExchange;
|
|
var _tradeExchange;
|
|
var _api;
|
|
var _config;
|
|
var _balance = null;
|
|
var _balanceTriggers = [];
|
|
|
|
var winston = require('winston');
|
|
var logger = new (winston.Logger)({transports:[new (winston.transports.Console)()]});
|
|
|
|
var async = require('async');
|
|
|
|
exports.init = function(config, api, transferExchange, tradeExchange) {
|
|
_api = api;
|
|
_config = config;
|
|
|
|
_transferExchange = transferExchange;
|
|
_tradeExchange = tradeExchange;
|
|
|
|
_balanceTriggers = [function (cb) { _transferExchange.balance(cb); }];
|
|
|
|
if (tradeExchange)
|
|
_balanceTriggers.push(function(cb) { _tradeExchange.balance(cb); });
|
|
|
|
_pollBalance();
|
|
setInterval(_pollBalance, 60 * 1000);
|
|
};
|
|
|
|
exports.balance = function balance() {
|
|
return _balance;
|
|
};
|
|
|
|
exports.triggerBalance = _pollBalance;
|
|
|
|
function _pollBalance() {
|
|
logger.info('collecting balance');
|
|
async.parallel(_balanceTriggers, function(err, results) {
|
|
if (err) return;
|
|
|
|
_balance = {
|
|
transferBalance: results[0],
|
|
tradeBalance: results.length === 2 ? results[1] : null,
|
|
timestamp: Date.now()
|
|
};
|
|
logger.info('Balance update:', _balance);
|
|
});
|
|
}
|