WIP
This commit is contained in:
parent
184d30209a
commit
14497d81c6
1 changed files with 12 additions and 8 deletions
|
|
@ -3,6 +3,7 @@
|
|||
|
||||
// TODO: Consider using serializable transactions for true ACID
|
||||
|
||||
var BigNumber = require('bignumber.js')
|
||||
var pg = require('pg');
|
||||
var async = require('async');
|
||||
var _ = require('lodash');
|
||||
|
|
@ -173,27 +174,30 @@ function billsAndTxs(client, session, cb) {
|
|||
// we need to parse, since we know these won't be huge numbers.
|
||||
cb(null, {
|
||||
billsFiat: parseInt(results[0].rows[0].fiat),
|
||||
billsSatoshis: parseInt(results[0].rows[0].satoshis),
|
||||
billsSatoshis: new BigNumber(results[0].rows[0].satoshis),
|
||||
txFiat: parseInt(results[1].rows[0].fiat),
|
||||
txSatoshis: parseInt(results[1].rows[0].satoshis)
|
||||
txSatoshis: new BigNumber(results[1].rows[0].satoshis)
|
||||
});
|
||||
});
|
||||
}
|
||||
|
||||
function computeSendAmount(tx, totals) {
|
||||
var fiatRemaining = (tx.fiat || totals.billsFiat) - totals.txFiat;
|
||||
var satoshisRemaining = (tx.satoshis || totals.billsSatoshis) -
|
||||
totals.txSatoshis;
|
||||
|
||||
var satoshisRemaining = tx.satoshis.eq(0)
|
||||
? totals.billsSatoshis.minus(totals.txSatoshis)
|
||||
: tx.satoshis.minus(totals.txSatoshis)
|
||||
|
||||
var result = {
|
||||
fiat: fiatRemaining,
|
||||
satoshis: satoshisRemaining
|
||||
};
|
||||
if (result.fiat < 0 || result.satoshis < 0) {
|
||||
if (result.fiat < 0 || result.satoshis.lt(0)) {
|
||||
logger.warn({tx: tx, totals: totals, result: result},
|
||||
'computeSendAmount result < 0, this shouldn\'t happen. ' +
|
||||
'Maybe timeout arrived after machineSend.');
|
||||
result.fiat = 0;
|
||||
result.satoshis = 0;
|
||||
result.satoshis = new BigNumber(0);
|
||||
}
|
||||
return result;
|
||||
}
|
||||
|
|
@ -240,7 +244,7 @@ function insertOutgoingTx(client, session, tx, totals, cb) {
|
|||
var authority = tx.fiat ? 'machine' : 'timeout';
|
||||
var satoshis = sendAmount.satoshis;
|
||||
var fiat = sendAmount.fiat;
|
||||
if (satoshis === 0) return cb(null, {satoshis: 0, fiat: 0});
|
||||
if (satoshis.eq(0)) return cb(null, {satoshis: new BigNumber(0), fiat: 0});
|
||||
|
||||
insertOutgoing(client, session, tx, satoshis, fiat, stage, authority,
|
||||
function(err) {
|
||||
|
|
@ -264,7 +268,7 @@ function insertOutgoingCompleteTx(client, session, tx, cb) {
|
|||
|
||||
function insertIncoming(client, session, tx, satoshis, fiat, stage, authority,
|
||||
cb) {
|
||||
var realSatoshis = satoshis || 0;
|
||||
var realSatoshis = satoshis || new BigNumber(0);
|
||||
insertTx(client, session, true, tx, realSatoshis, fiat, stage, authority, cb);
|
||||
}
|
||||
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue