From e4a4e556a23d51ddd5b9f01ee5a7e5ad2d47e749 Mon Sep 17 00:00:00 2001 From: Josh Harvey Date: Tue, 25 Nov 2014 19:58:36 -0500 Subject: [PATCH] WIP debugging --- lib/plugins.js | 6 ++++-- lib/postgresql_interface.js | 29 +++++++++++++++-------------- 2 files changed, 19 insertions(+), 16 deletions(-) diff --git a/lib/plugins.js b/lib/plugins.js index ed42f285..54bf3da6 100644 --- a/lib/plugins.js +++ b/lib/plugins.js @@ -224,9 +224,11 @@ function reapOutgoingTx(session, tx) { function reapIncomingTx(session, tx) { infoPlugin.checkAddress(tx.toAddress, function(err, status, - satoshisReceived) { + satoshisReceived, txHash) { if (status === 'notSeen') return; - db.addIncomingTx(session, tx, status, satoshisReceived, function(err) { + var newTx = _.clone(tx); + newTx.txHash = txHash; + db.addIncomingTx(session, newTx, status, satoshisReceived, function(err) { if (err) logger.error(err); }); }); diff --git a/lib/postgresql_interface.js b/lib/postgresql_interface.js index 2931accc..f319a7cd 100644 --- a/lib/postgresql_interface.js +++ b/lib/postgresql_interface.js @@ -106,12 +106,12 @@ function query(client, queryStr, values, cb) { values = []; } -// console.log(queryStr); -// console.log(values); -// console.trace(); // DEBUG - client.query(queryStr, values, function(err, results) { - if (err) return cb(new Error(err)); + if (err) { + console.log(queryStr); + console.log(values); + return cb(new Error(err)); + } cb(null, results); }); } @@ -393,7 +393,7 @@ exports.addInitialIncoming = function addInitialIncoming(session, tx, cb) { }; function lastTxStatus(client, session, cb) { - var sql = 'SELECT satoshis, authority FROM transactions ' + + var sql = 'SELECT satoshis, stage, authority FROM transactions ' + 'WHERE device_fingerprint=$1 AND session_id=$2 AND incoming=$3 ' + 'ORDER BY id DESC LIMIT 1'; var values = [session.fingerprint, session.id, true]; @@ -427,7 +427,7 @@ exports.dispenseStatus = function dispenseStatus(session, cb) { if (!pending) return cb(null, null); var requiredSatoshis = results[0].rows[0].requiredSatoshis; - var lastTx = results[1].rows[1]; + var lastTx = results[1].rows[0]; // TODO: handle multiple deposits var status = (lastTx.satoshis < requiredSatoshis) ? @@ -444,14 +444,14 @@ function lastDispenseCount(client, session, transactionId, cb) { 'ORDER BY id DESC LIMIT 1'; client.query(sql, [session.fingerprint], function(err, results) { if (err) return cb(err); - if (results.rows.length === 0) return cb(null, [0, 0]); + if (results.rows.length === 0) return cb(null, transactionId, [0, 0]); cb(null, transactionId, [results.rows[0].count1, results.rows[0].count2]); }); } -function insertDispense(client, tx, transactionId, counts, cb) { +function insertDispense(client, session, tx, transactionId, counts, cb) { var fields = [ - 'transaction_id', + 'device_fingerprint', 'transaction_id', 'dispense1', 'reject1', 'count1', 'dispense2', 'reject2', 'count2', 'refill', 'error' @@ -466,10 +466,11 @@ function insertDispense(client, tx, transactionId, counts, cb) { var count1 = Math.max(counts[0] - (dispense1 + reject1), 0); var count2 = Math.max(counts[1] - (dispense2 + reject2), 0); var values = [ - transactionId, + session.fingerprint, transactionId, dispense1, reject1, count1, dispense2, reject2, count2, false, tx.error ]; + console.dir(values); // DEBUG client.query(sql, values, cb); } @@ -479,12 +480,12 @@ exports.addDispense = function addDispense(session, tx) { async.waterfall([ async.apply(insertIncoming, client, session, tx, 0, tx.fiat, - 'deposit', 'authorized'), + 'dispense', 'authorized'), async.apply(lastDispenseCount, client, session), - async.apply(insertDispense, client, tx) + async.apply(insertDispense, client, session, tx) ], function(_err) { done(); - if (_err) logger.error(err); + if (_err) logger.error(_err); }); }); };