post-merge cleanup

This commit is contained in:
Josh Harvey 2016-04-19 19:35:08 +03:00
parent c98c4dc606
commit c644d0f789
3 changed files with 78 additions and 82 deletions

View file

@ -69,13 +69,9 @@ function loadPlugin (name, config) {
// each used plugin MUST be installed // each used plugin MUST be installed
try { try {
plugin = require('lamassu-' + name) plugin = require('lamassu-' + name)
} catch (_) {
try {
require('plugins/' + name)
} catch (_) { } catch (_) {
throw new Error(name + ' module is not installed. ' + throw new Error(name + ' module is not installed. ' +
'Try running \'npm install --save lamassu-' + name + '\' first') 'Try running \'npm install --save lamassu-' + name + '\' first')
}
} }
// each plugin MUST implement those // each plugin MUST implement those
@ -160,27 +156,27 @@ exports.configure = function configure (config) {
cryptoCodes.forEach(function (cryptoCode) { cryptoCodes.forEach(function (cryptoCode) {
// TICKER [required] configure (or load) // TICKER [required] configure (or load)
loadOrConfigPlugin( loadOrConfigPlugin(
tickerPlugins[cryptoCode], tickerPlugins[cryptoCode],
'ticker', 'ticker',
cryptoCode, cryptoCode,
deviceCurrency, // device currency deviceCurrency, // device currency
function onTickerChange (newTicker) { function onTickerChange (newTicker) {
tickerPlugins[cryptoCode] = newTicker tickerPlugins[cryptoCode] = newTicker
pollRate(cryptoCode) pollRate(cryptoCode)
} }
) )
// WALLET [required] configure (or load) // WALLET [required] configure (or load)
loadOrConfigPlugin( loadOrConfigPlugin(
walletPlugins[cryptoCode], walletPlugins[cryptoCode],
'transfer', 'transfer',
cryptoCode, cryptoCode,
null, null,
function onWalletChange (newWallet) { function onWalletChange (newWallet) {
walletPlugins[cryptoCode] = newWallet walletPlugins[cryptoCode] = newWallet
pollBalance(cryptoCode) pollBalance(cryptoCode)
} }
) )
tradesQueues[cryptoCode] = tradesQueues[cryptoCode] || [] tradesQueues[cryptoCode] = tradesQueues[cryptoCode] || []
@ -189,12 +185,12 @@ exports.configure = function configure (config) {
traderPlugins[cryptoCode], traderPlugins[cryptoCode],
'trader', 'trader',
cryptoCode, cryptoCode,
null, null,
function onTraderChange (newTrader) { function onTraderChange (newTrader) {
traderPlugins[cryptoCode] = newTrader traderPlugins[cryptoCode] = newTrader
if (newTrader === null) stopTrader(cryptoCode) if (newTrader === null) stopTrader(cryptoCode)
else startTrader(cryptoCode) else startTrader(cryptoCode)
} }
) )
}) })
@ -267,7 +263,7 @@ function executeTx (session, tx, authority, cb) {
if (cryptoAtomsToSend === 0) { if (cryptoAtomsToSend === 0) {
logger.debug('No cryptoAtoms to send') logger.debug('No cryptoAtoms to send')
return cb(null, {statusCode: 204, txId: tx.txId, txHash: null}) return cb(null, {statusCode: 204, txId: tx.txId, txHash: null})
} }
var cryptoCode = tx.cryptoCode var cryptoCode = tx.cryptoCode
_sendCoins(tx.toAddress, cryptoAtomsToSend, cryptoCode, function (_err, txHash) { _sendCoins(tx.toAddress, cryptoAtomsToSend, cryptoCode, function (_err, txHash) {
@ -358,32 +354,32 @@ exports.trade = function trade (session, rawTrade, cb) {
async.apply(db.addOutgoingPending, session, rawTrade.currency, rawTrade.cryptoCode, rawTrade.toAddress), async.apply(db.addOutgoingPending, session, rawTrade.currency, rawTrade.cryptoCode, rawTrade.toAddress),
async.apply(db.recordBill, session, rawTrade) async.apply(db.recordBill, session, rawTrade)
], cb) ], cb)
}; }
exports.stateChange = function stateChange(session, rec, cb) { exports.stateChange = function stateChange (session, rec, cb) {
var rec = { var event = {
id: rec.uuid, id: rec.uuid,
fingerprint: session.fingerprint, fingerprint: session.fingerprint,
eventType: 'stateChange', eventType: 'stateChange',
note: JSON.stringify({state: rec.state, sessionId: session.id}), note: JSON.stringify({state: rec.state, sessionId: session.id}),
deviceTime: session.deviceTime deviceTime: session.deviceTime
} }
db.machineEvent(rec, cb) db.machineEvent(event, cb)
}; }
exports.recordPing = function recordPing(session, rec, cb) { exports.recordPing = function recordPing (session, rec, cb) {
var rec = { var event = {
id: uuid.v4(), id: uuid.v4(),
fingerprint: session.fingerprint, fingerprint: session.fingerprint,
eventType: 'ping', eventType: 'ping',
note: JSON.stringify({state: rec.state, sessionId: session.id}), note: JSON.stringify({state: rec.state, sessionId: session.id}),
deviceTime: session.deviceTime deviceTime: session.deviceTime
} }
db.machineEvent(rec, cb) db.machineEvent(event, cb)
}; }
exports.sendCoins = function sendCoins(session, rawTx, cb) { exports.sendCoins = function sendCoins (session, rawTx, cb) {
executeTx(session, rawTx, 'machine', cb); executeTx(session, rawTx, 'machine', cb)
} }
exports.cashOut = function cashOut (session, tx, cb) { exports.cashOut = function cashOut (session, tx, cb) {
@ -457,9 +453,9 @@ function startTrader (cryptoCode) {
tradeIntervals[cryptoCode] = setInterval( tradeIntervals[cryptoCode] = setInterval(
function () { executeTrades(cryptoCode) }, function () { executeTrades(cryptoCode) },
cachedConfig.exchanges.settings.tradeInterval cachedConfig.exchanges.settings.tradeInterval
) )
} }
function stopTrader (cryptoCode) { function stopTrader (cryptoCode) {
if (!tradeIntervals[cryptoCode]) return if (!tradeIntervals[cryptoCode]) return
@ -468,7 +464,7 @@ function stopTrader (cryptoCode) {
clearInterval(tradeIntervals[cryptoCode]) clearInterval(tradeIntervals[cryptoCode])
tradeIntervals[cryptoCode] = null tradeIntervals[cryptoCode] = null
tradesQueues[cryptoCode] = [] tradesQueues[cryptoCode] = []
} }
function pollBalance (cryptoCode, cb) { function pollBalance (cryptoCode, cb) {
logger.debug('[%s] collecting balance', cryptoCode) logger.debug('[%s] collecting balance', cryptoCode)

View file

@ -52,7 +52,7 @@ exports.init = function init (_conString) {
if (!conString) { if (!conString) {
throw new Error('Postgres connection string is required') throw new Error('Postgres connection string is required')
} }
} }
function connect (cb) { function connect (cb) {
pg.connect(conString, function (err, client, done) { pg.connect(conString, function (err, client, done) {
@ -109,7 +109,7 @@ exports.recordDeviceEvent = function recordDeviceEvent (session, event) {
event.deviceTime] event.deviceTime]
client.query(sql, values, done) client.query(sql, values, done)
}) })
} }
function query (client, queryStr, values, cb) { function query (client, queryStr, values, cb) {
if (!cb) { if (!cb) {
@ -185,8 +185,8 @@ function computeSendAmount (tx, totals) {
var fiatRemaining = (tx.fiat || totals.billsFiat) - totals.txFiat var fiatRemaining = (tx.fiat || totals.billsFiat) - totals.txFiat
var satoshisRemaining = tx.satoshis.eq(0) var satoshisRemaining = tx.satoshis.eq(0)
? totals.billsSatoshis.minus(totals.txSatoshis) ? totals.billsSatoshis.minus(totals.txSatoshis)
: tx.satoshis.minus(totals.txSatoshis) : tx.satoshis.minus(totals.txSatoshis)
var result = { var result = {
fiat: fiatRemaining, fiat: fiatRemaining,
@ -265,18 +265,18 @@ function insertOutgoingCompleteTx (client, session, tx, cb) {
} }
function insertIncoming (client, session, tx, satoshis, fiat, stage, authority, function insertIncoming (client, session, tx, satoshis, fiat, stage, authority,
cb) { cb) {
var realSatoshis = satoshis || new BigNumber(0) var realSatoshis = satoshis || new BigNumber(0)
insertTx(client, session, true, tx, realSatoshis, fiat, stage, authority, cb) insertTx(client, session, true, tx, realSatoshis, fiat, stage, authority, cb)
} }
function insertOutgoing (client, session, tx, satoshis, fiat, stage, authority, function insertOutgoing (client, session, tx, satoshis, fiat, stage, authority,
cb) { cb) {
insertTx(client, session, false, tx, satoshis, fiat, stage, authority, cb) insertTx(client, session, false, tx, satoshis, fiat, stage, authority, cb)
} }
function insertTx (client, session, incoming, tx, satoshis, fiat, stage, function insertTx (client, session, incoming, tx, satoshis, fiat, stage,
authority, cb) { authority, cb) {
var fields = [ var fields = [
'session_id', 'session_id',
'stage', 'stage',
@ -327,7 +327,7 @@ function refreshPendingTx (client, session, cb) {
} }
function addPendingTx (client, session, incoming, currencyCode, cryptoCode, toAddress, function addPendingTx (client, session, incoming, currencyCode, cryptoCode, toAddress,
satoshis, cb) { satoshis, cb) {
var fields = ['device_fingerprint', 'session_id', 'incoming', var fields = ['device_fingerprint', 'session_id', 'incoming',
'currency_code', 'crypto_code', 'to_address', 'satoshis'] 'currency_code', 'crypto_code', 'to_address', 'satoshis']
var sql = getInsertQuery('pending_transactions', fields, false) var sql = getInsertQuery('pending_transactions', fields, false)
@ -367,7 +367,7 @@ exports.addOutgoingTx = function addOutgoingTx (session, tx, cb) {
}) })
}) })
}) })
} }
exports.sentCoins = function sentCoins (session, tx, authority, toSend, fee, exports.sentCoins = function sentCoins (session, tx, authority, toSend, fee,
error, txHash) { error, txHash) {
@ -431,14 +431,14 @@ exports.addOutgoingPending = function addOutgoingPending (session, currencyCode,
logger.error(err) logger.error(err)
return cb(err) return cb(err)
}) })
} }
silentQuery(client, 'COMMIT', null, function () { silentQuery(client, 'COMMIT', null, function () {
done() done()
cb() cb()
}) })
}) })
}) })
} }
exports.addInitialIncoming = function addInitialIncoming (session, tx, cb) { exports.addInitialIncoming = function addInitialIncoming (session, tx, cb) {
connect(function (cerr, client, done) { connect(function (cerr, client, done) {
@ -460,7 +460,7 @@ exports.addInitialIncoming = function addInitialIncoming (session, tx, cb) {
}) })
}) })
}) })
} }
function insertDispense (client, session, tx, cartridges, transactionId, cb) { function insertDispense (client, session, tx, cartridges, transactionId, cb) {
var fields = [ var fields = [
@ -511,55 +511,55 @@ exports.cartridgeCounts = function cartridgeCounts (session, cb) {
done() done()
if (err) return cb(err) if (err) return cb(err)
var counts = results.rows.length === 1 var counts = results.rows.length === 1
? [results.rows[0].count1, results.rows[0].count2] ? [results.rows[0].count1, results.rows[0].count2]
: [0, 0] : [0, 0]
cb(null, {id: results.rows[0].id, counts: counts}); cb(null, {id: results.rows[0].id, counts: counts})
}); })
}); })
}; }
exports.machineEvent = function machineEvent(rec, cb) { exports.machineEvent = function machineEvent (rec, cb) {
var TTL = 2 * 60 * 60 * 1000 var TTL = 2 * 60 * 60 * 1000
connect(function(cerr, client, done) { connect(function (cerr, client, done) {
if (cerr) return cb(cerr); if (cerr) return cb(cerr)
var fields = ['id', 'device_fingerprint', 'event_type', 'note', 'device_time'] var fields = ['id', 'device_fingerprint', 'event_type', 'note', 'device_time']
var sql = getInsertQuery('machine_events', fields, false) var sql = getInsertQuery('machine_events', fields, false)
var values = [rec.id, rec.fingerprint, rec.eventType, rec.note, rec.deviceTime] var values = [rec.id, rec.fingerprint, rec.eventType, rec.note, rec.deviceTime]
var deleteSql = 'DELETE FROM machine_events WHERE (EXTRACT(EPOCH FROM (now() - created))) * 1000 > $1'; var deleteSql = 'DELETE FROM machine_events WHERE (EXTRACT(EPOCH FROM (now() - created))) * 1000 > $1'
var deleteValues = [TTL]; var deleteValues = [TTL]
query(client, deleteSql, deleteValues, function(err) { query(client, deleteSql, deleteValues, function (err) {
if (err) console.error(err) if (err) console.error(err)
}) })
query(client, sql, values, function(err, results) { query(client, sql, values, function (err, results) {
done(); done()
return cb(err, results); return cb(err, results)
}); })
}); })
}; }
exports.devices = function devices(cb) { exports.devices = function devices (cb) {
connect(function(cerr, client, done) { connect(function (cerr, client, done) {
if (cerr) return cb(cerr); if (cerr) return cb(cerr)
var sql = 'SELECT fingerprint, name FROM devices ' + var sql = 'SELECT fingerprint, name FROM devices ' +
'WHERE authorized=$1'; 'WHERE authorized=$1'
query(client, sql, [true], function(err, results) { query(client, sql, [true], function (err, results) {
done(); done()
if (err) return cb(err); if (err) return cb(err)
cb(null, results) cb(null, results)
}) })
}) })
} }
exports.machineEvents = function machineEvents(cb) { exports.machineEvents = function machineEvents (cb) {
connect(function(cerr, client, done) { connect(function (cerr, client, done) {
if (cerr) return cb(cerr); if (cerr) return cb(cerr)
var sql = 'SELECT *, (EXTRACT(EPOCH FROM (now() - created))) * 1000 AS age FROM machine_events' var sql = 'SELECT *, (EXTRACT(EPOCH FROM (now() - created))) * 1000 AS age FROM machine_events'
query(client, sql, [], function(err, results) { query(client, sql, [], function (err, results) {
done(); done()
if (err) return cb(err); if (err) return cb(err)
cb(null, results) cb(null, results)
}) })
}) })

View file

@ -39,11 +39,11 @@ function buildRates () {
rates[cryptoCode] = { rates[cryptoCode] = {
cashIn: rate.ask.times(cashInCommission), cashIn: rate.ask.times(cashInCommission),
cashOut: rate.bid.div(cashOutCommission) cashOut: rate.bid.div(cashOutCommission)
} }
}) })
return rates return rates
} }
function buildBalances () { function buildBalances () {
var cryptoCodes = plugins.getcryptoCodes() var cryptoCodes = plugins.getcryptoCodes()
@ -55,7 +55,7 @@ function buildBalances () {
}) })
return _balances return _balances
} }
function poll (req, res) { function poll (req, res) {
var fingerprint = getFingerprint(req) var fingerprint = getFingerprint(req)
@ -103,9 +103,9 @@ function poll (req, res) {
res.json(response) res.json(response)
}) })
plugins.recordPing(session(req), req.query, function(err) { plugins.recordPing(session(req), req.query, function (err) {
if (err) console.error(err); if (err) console.error(err)
}); })
} }
function trade (req, res) { function trade (req, res) {
@ -119,8 +119,8 @@ function trade (req, res) {
}) })
} }
function stateChange(req, res) { function stateChange (req, res) {
plugins.stateChange(session(req), req.body, function(err) { plugins.stateChange(session(req), req.body, function (err) {
if (err) console.error(err) if (err) console.error(err)
res.json(200) res.json(200)
}) })
@ -276,5 +276,5 @@ function session (req) {
function getFingerprint (req) { function getFingerprint (req) {
return (typeof req.connection.getPeerCertificate === 'function' && return (typeof req.connection.getPeerCertificate === 'function' &&
req.connection.getPeerCertificate().fingerprint) || 'unknown' req.connection.getPeerCertificate().fingerprint) || 'unknown'
} }