This commit is contained in:
Josh Harvey 2016-05-25 14:38:29 +03:00
parent f189438094
commit 59db6d803c
2 changed files with 2 additions and 243 deletions

View file

@ -9,16 +9,12 @@ BigNumber.config({CRYPTO: true})
var logger = require('./logger')
var notifier = require('./notifier')
var argv = require('minimist')(process.argv.slice(2))
var uuid = require('node-uuid')
var tradeIntervals = {}
var CHECK_NOTIFICATION_INTERVAL = 60 * 1000
var ALERT_SEND_INTERVAL = 60 * 60 * 1000
var POLLING_RATE = 60 * 1000 // poll each minute
var REAP_RATE = 2 * 1000
var PENDING_TIMEOUT = 70 * 1000
var INCOMING_TX_INTERVAL = 5 * 1000
var LIVE_INCOMING_TX_INTERVAL = 30 * 1000
var STALE_INCOMING_TX_AGE = 7 * 24 * 60 * 60 * 1000
@ -27,11 +23,6 @@ var MAX_NOTIFY_AGE = 48 * 60 * 60 * 1000
var MIN_NOTIFY_AGE = 5 * 60 * 1000
var TRANSACTION_EXPIRATION = 48 * 60 * 60 * 1000
if (argv.timeout) PENDING_TIMEOUT = argv.timeout / 1000
// TODO: might have to update this if user is allowed to extend monitoring time
var DEPOSIT_TIMEOUT = 130 * 1000
var db = null
var cryptoCodes = null
@ -319,40 +310,6 @@ function executeTx (session, tx, authority, cb) {
})
}
function reapOutgoingTx (session, tx) {
executeTx(session, tx, 'timeout', function (err) {
if (err) logger.error(err)
})
}
function reapTx (row) {
var session = {fingerprint: row.device_fingerprint, id: row.session_id}
var tx = {
fiat: 0,
cryptoAtoms: new BigNumber(row.cryptoAtoms),
toAddress: row.toAddress,
currencyCode: row.currencyCode,
cryptoCode: row.cryptoCode,
incoming: row.incoming
}
if (!row.incoming) reapOutgoingTx(session, tx)
}
function reapTxs () {
db.removeOldPending(DEPOSIT_TIMEOUT)
// NOTE: No harm in processing old pending tx, we don't need to wait for
// removeOldPending to complete.
db.pendingTxs(PENDING_TIMEOUT, function (err, rows) {
if (err) return logger.warn(err)
var rowCount = rows.length
for (var i = 0; i < rowCount; i++) {
var row = rows[i]
reapTx(row)
}
})
}
// TODO: Run these in parallel and return success
exports.trade = function trade (session, rawTrade, cb) {
// TODO: move this to DB, too
@ -369,10 +326,7 @@ exports.trade = function trade (session, rawTrade, cb) {
})
}
async.parallel([
async.apply(db.addOutgoingPending, session, rawTrade.currency, rawTrade.cryptoCode, rawTrade.toAddress),
async.apply(db.recordBill, session, rawTrade)
], cb)
db.recordBill(session, rawTrade, cb)
}
exports.stateChange = function stateChange (session, rec, cb) {
@ -519,7 +473,6 @@ exports.startPolling = function startPolling () {
startTrader(cryptoCode)
})
setInterval(reapTxs, REAP_RATE)
setInterval(monitorLiveIncoming, LIVE_INCOMING_TX_INTERVAL)
setInterval(monitorIncoming, INCOMING_TX_INTERVAL)
setInterval(monitorUnnotified, UNNOTIFIED_INTERVAL)