WIPP
This commit is contained in:
parent
3a99b7a6bc
commit
00d986376e
8 changed files with 149 additions and 155 deletions
|
|
@ -11,7 +11,7 @@ const logger = require('./logger')
|
|||
const notifier = require('./notifier')
|
||||
const T = require('./time')
|
||||
const configManager = require('./config-manager')
|
||||
const settingsLoader = require('./settings-loader')
|
||||
const settingsLoader = require('./settingsLoader')
|
||||
const ticker = require('./ticker')
|
||||
const wallet = require('./wallet')
|
||||
const exchange = require('./exchange')
|
||||
|
|
@ -47,7 +47,8 @@ let lastAlertTime = null
|
|||
|
||||
exports.logEvent = db.recordDeviceEvent
|
||||
|
||||
function buildRates (settings, deviceId, tickers) {
|
||||
function buildRates (deviceId, tickers) {
|
||||
const settings = settingsLoader.settings
|
||||
const config = configManager.machineScoped(deviceId, settings.config)
|
||||
const cryptoCodes = config.currencies.cryptoCurrencies
|
||||
|
||||
|
|
@ -69,7 +70,8 @@ function buildRates (settings, deviceId, tickers) {
|
|||
return rates
|
||||
}
|
||||
|
||||
function buildBalances (settings, deviceId, balanceRecs) {
|
||||
function buildBalances (deviceId, balanceRecs) {
|
||||
const settings = settingsLoader.settings
|
||||
const config = configManager.machineScoped(deviceId, settings.config)
|
||||
const cryptoCodes = config.currencies.cryptoCurrencies
|
||||
|
||||
|
|
@ -102,7 +104,8 @@ function buildCartridges (cartridges, virtualCartridges, rec) {
|
|||
}
|
||||
}
|
||||
|
||||
exports.pollQueries = function pollQueries (settings, deviceTime, deviceId, deviceRec) {
|
||||
exports.pollQueries = function pollQueries (deviceTime, deviceId, deviceRec) {
|
||||
const settings = settingsLoader.settings
|
||||
const config = configManager.machineScoped(deviceId, settings.config)
|
||||
const fiatCode = config.currencies.fiatCurrency
|
||||
const cryptoCodes = config.currencies.cryptoCurrencies
|
||||
|
|
@ -110,8 +113,8 @@ exports.pollQueries = function pollQueries (settings, deviceTime, deviceId, devi
|
|||
config.currencies.bottomCashOutDenomination ]
|
||||
const virtualCartridges = [config.currencies.virtualCashOutDenomination]
|
||||
|
||||
const tickerPromises = cryptoCodes.map(c => ticker.getRates(settings, fiatCode, c))
|
||||
const balancePromises = cryptoCodes.map(c => wallet.balance(settings, c))
|
||||
const tickerPromises = cryptoCodes.map(c => ticker.getRates(fiatCode, c))
|
||||
const balancePromises = cryptoCodes.map(wallet.balance)
|
||||
const pingPromise = recordPing(deviceId, deviceTime, deviceRec)
|
||||
|
||||
const promises = [db.cartridgeCounts(deviceId), pingPromise].concat(tickerPromises, balancePromises)
|
||||
|
|
@ -124,8 +127,8 @@ exports.pollQueries = function pollQueries (settings, deviceTime, deviceId, devi
|
|||
|
||||
return {
|
||||
cartridges: buildCartridges(cartridges, virtualCartridges, cartridgeCounts),
|
||||
rates: buildRates(settings, deviceId, tickers),
|
||||
balances: buildBalances(settings, deviceId, balances)
|
||||
rates: buildRates(deviceId, tickers),
|
||||
balances: buildBalances(deviceId, balances)
|
||||
}
|
||||
})
|
||||
}
|
||||
|
|
@ -224,7 +227,8 @@ exports.cashOut = function cashOut (deviceId, tx) {
|
|||
})
|
||||
}
|
||||
|
||||
exports.dispenseAck = function (settings, deviceId, tx) {
|
||||
exports.dispenseAck = function (deviceId, tx) {
|
||||
const settings = settingsLoader.settings
|
||||
const config = configManager.machineScoped(deviceId, settings.config)
|
||||
const cartridges = [ config.currencies.topCashOutDenomination,
|
||||
config.currencies.bottomCashOutDenomination ]
|
||||
|
|
@ -232,7 +236,8 @@ exports.dispenseAck = function (settings, deviceId, tx) {
|
|||
return db.addDispense(deviceId, tx, cartridges)
|
||||
}
|
||||
|
||||
function fiatBalance (settings, fiatCode, cryptoCode, deviceId) {
|
||||
function fiatBalance (fiatCode, cryptoCode, deviceId) {
|
||||
const settings = settingsLoader.settings
|
||||
const config = configManager.scoped(cryptoCode, deviceId, settings.config)
|
||||
|
||||
return Promise.all([ticker.ticker(cryptoCode), wallet.balance(cryptoCode)])
|
||||
|
|
@ -257,8 +262,8 @@ function fiatBalance (settings, fiatCode, cryptoCode, deviceId) {
|
|||
})
|
||||
}
|
||||
|
||||
function processTxStatus (settings, tx) {
|
||||
return wallet.getStatus(settings, tx.toAddress, tx.cryptoAtoms, tx.cryptoCode)
|
||||
function processTxStatus (tx) {
|
||||
return wallet.getStatus(tx.toAddress, tx.cryptoAtoms, tx.cryptoCode)
|
||||
.then(res => db.updateTxStatus(tx, res.status))
|
||||
}
|
||||
|
||||
|
|
@ -280,29 +285,23 @@ function notifyConfirmation (tx) {
|
|||
function monitorLiveIncoming () {
|
||||
const statuses = ['notSeen', 'published', 'insufficientFunds']
|
||||
|
||||
return settingsLoader.settings()
|
||||
.then(settings => {
|
||||
return db.fetchOpenTxs(statuses, STALE_LIVE_INCOMING_TX_AGE)
|
||||
.then(txs => Promise.all(txs.map(r => processTxStatus(settings, r))))
|
||||
})
|
||||
return db.fetchOpenTxs(statuses, STALE_LIVE_INCOMING_TX_AGE)
|
||||
.then(txs => Promise.all(txs.map(processTxStatus)))
|
||||
.catch(logger.error)
|
||||
}
|
||||
|
||||
function monitorIncoming () {
|
||||
const statuses = ['notSeen', 'published', 'authorized', 'instant', 'rejected', 'insufficientFunds']
|
||||
|
||||
return settingsLoader.settings()
|
||||
.then(settings => {
|
||||
db.fetchOpenTxs(statuses, STALE_INCOMING_TX_AGE)
|
||||
.then(txs => Promise.all(txs.map(r => processTxStatus(settings, r))))
|
||||
})
|
||||
return db.fetchOpenTxs(statuses, STALE_INCOMING_TX_AGE)
|
||||
.then(txs => Promise.all(txs.map(processTxStatus)))
|
||||
.catch(logger.error)
|
||||
}
|
||||
|
||||
function monitorUnnotified () {
|
||||
db.fetchUnnotifiedTxs(MAX_NOTIFY_AGE, MIN_NOTIFY_AGE)
|
||||
.then(txs => Promise.all(txs.map(notifyConfirmation)))
|
||||
.catch(err => logger.error(err))
|
||||
.catch(logger.error)
|
||||
}
|
||||
|
||||
/*
|
||||
|
|
@ -368,24 +367,22 @@ function consolidateTrades (cryptoCode, fiatCode) {
|
|||
}
|
||||
|
||||
function executeTrades () {
|
||||
return settingsLoader()
|
||||
.then(settings => {
|
||||
const config = settings.config
|
||||
return db.devices()
|
||||
.then(devices => {
|
||||
const deviceIds = devices.map(device => device.device_id)
|
||||
const lists = deviceIds.map(deviceId => {
|
||||
const currencies = configManager.machineScoped(deviceId, config).currencies
|
||||
const fiatCode = currencies.fiatCurrency
|
||||
const cryptoCodes = currencies.cryptoCurrencies
|
||||
return cryptoCodes.map(cryptoCode => ({fiatCode, cryptoCode}))
|
||||
})
|
||||
|
||||
const tradesPromises = R.uniq(R.flatten(lists))
|
||||
.map(r => executeTradesForMarket(settings, r.fiatCode, r.cryptoCode))
|
||||
|
||||
return Promise.all(tradesPromises)
|
||||
const settings = settingsLoader.settings
|
||||
const config = settings.config
|
||||
return db.devices()
|
||||
.then(devices => {
|
||||
const deviceIds = devices.map(device => device.device_id)
|
||||
const lists = deviceIds.map(deviceId => {
|
||||
const currencies = configManager.machineScoped(deviceId, config).currencies
|
||||
const fiatCode = currencies.fiatCurrency
|
||||
const cryptoCodes = currencies.cryptoCurrencies
|
||||
return cryptoCodes.map(cryptoCode => ({fiatCode, cryptoCode}))
|
||||
})
|
||||
|
||||
const tradesPromises = R.uniq(R.flatten(lists))
|
||||
.map(r => executeTradesForMarket(settings, r.fiatCode, r.cryptoCode))
|
||||
|
||||
return Promise.all(tradesPromises)
|
||||
})
|
||||
.catch(logger.error)
|
||||
}
|
||||
|
|
@ -470,11 +467,12 @@ function checkNotification () {
|
|||
})
|
||||
}
|
||||
|
||||
function checkDeviceBalances (settings, deviceId) {
|
||||
function checkDeviceBalances (deviceId) {
|
||||
const settings = settingsLoader.settings
|
||||
const config = configManager.machineScoped(deviceId, settings.config)
|
||||
const cryptoCodes = config.currencies.cryptoCurrencies
|
||||
const fiatCode = config.currencies.fiatCurrency
|
||||
const fiatBalancePromises = cryptoCodes.map(c => fiatBalance(settings, fiatCode, c, deviceId))
|
||||
const fiatBalancePromises = cryptoCodes.map(c => fiatBalance(fiatCode, c, deviceId))
|
||||
|
||||
return Promise.all(fiatBalancePromises)
|
||||
.then(arr => {
|
||||
|
|
@ -487,11 +485,11 @@ function checkDeviceBalances (settings, deviceId) {
|
|||
})
|
||||
}
|
||||
|
||||
function checkBalances (settings) {
|
||||
function checkBalances () {
|
||||
return db.devices()
|
||||
.then(devices => {
|
||||
const deviceIds = devices.map(r => r.device_id)
|
||||
const deviceBalancePromises = deviceIds.map(deviceId => checkDeviceBalances(settings, deviceId))
|
||||
const deviceBalancePromises = deviceIds.map(deviceId => checkDeviceBalances(deviceId))
|
||||
|
||||
return Promise.all(deviceBalancePromises)
|
||||
.then(arr => {
|
||||
|
|
@ -503,7 +501,7 @@ function checkBalances (settings) {
|
|||
}
|
||||
|
||||
exports.startCheckingNotification = function startCheckingNotification (config) {
|
||||
notifier.init(db, checkBalances, config.notifications)
|
||||
notifier.init(checkBalances)
|
||||
checkNotification()
|
||||
setInterval(checkNotification, CHECK_NOTIFICATION_INTERVAL)
|
||||
}
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue