This commit is contained in:
Josh Harvey 2016-03-27 18:13:09 +02:00
parent c8ba96515f
commit ed1376fc6f
2 changed files with 52 additions and 9 deletions

View file

@ -18,6 +18,8 @@ var DEPOSIT_TIMEOUT = 130 * 1000;
var db = null;
var cryptoCoins = null;
var tickerPlugins = {};
var traderPlugin = null;
var walletPlugins = {};
@ -333,7 +335,7 @@ exports.trade = function trade(session, rawTrade, cb) {
], cb);
};
exports.sendBitcoins = function sendBitcoins(session, rawTx, cb) {
exports.sendCoins = function sendCoins(session, rawTx, cb) {
executeTx(session, rawTx, 'machine', cb);
};
@ -380,7 +382,7 @@ exports.fiatBalance = function fiatBalance(cryptoCoin) {
// `balance.transferBalance` is the balance of our transfer account (the one
// we use to send Bitcoins to clients) in satoshis.
var transferBalance = lastBalances.transferBalance;
var transferBalance = lastBalance.transferBalance;
var fiatTransferBalance = (transferBalance * rate) / lowBalanceMargin;
@ -485,10 +487,11 @@ exports.getDeviceRate = function getDeviceRate(cryptoCoin) {
return lastRate[deviceCurrency];
};
exports.getBalance = function getBalance() {
if (!lastBalances) return null;
exports.getBalance = function getBalance(cryptoCoin) {
var lastBalance = lastBalances[cryptoCoin]
if (!lastBalance) return null;
return lastBalances.transferBalance;
return lastBalance.transferBalance;
};
/*
@ -548,3 +551,7 @@ exports.verifyUser = function verifyUser(data, cb) {
exports.verifyTx = function verifyTx(data, cb) {
idVerifierPlugin.verifyTransaction(data, cb);
};
exports.getCryptoCoins = function getCryptoCoins () {
return cryptoCoins;
}

View file

@ -20,9 +20,37 @@ var STALE_BALANCE = 180000;
var pids = {}
var reboots = {}
function buildRates () {
var cryptoCoins = plugins.getCryptoCoins();
var cashInCommission = settings.commission;
var cashOutCommission = settings.fiatCommission || cashInCommission;
var rates = {}
cryptoCoins.forEach(function (coin) {
var rate = plugins.getDeviceRate(coin).rates
rates[coin] = {
cashIn: rate.ask.times(cashInCommission),
cashOut: rate.bid.div(cashOutCommission)
}
})
return rates
}
function buildBalances () {
var cryptoCoins = plugins.getCryptoCoins();
var balances = {}
cryptoCoins.forEach(function (coin) {
var balance = plugins.fiatBalance(coin)
balances[coin] = balance
})
return balance
}
function poll(req, res) {
var rateRec = plugins.getDeviceRate();
var balanceRec = plugins.getBalance();
var fingerprint = getFingerprint(req)
var pid = req.query.pid
@ -30,6 +58,12 @@ function poll(req, res) {
logger.debug('poll request from: %s', fingerprint);
var rateRec = plugins.getDeviceRate();
var balanceRec = plugins.getBalance();
var rates = buildRates()
var balances = buildBalances()
// `rateRec` and `balanceRec` are both objects, so there's no danger
// of misinterpreting rate or balance === 0 as 'Server initializing'.
if (!rateRec || !balanceRec) {
@ -81,7 +115,9 @@ function poll(req, res) {
twoWayMode: cartridges ? true : false,
zeroConfLimit: settings.zeroConfLimit,
fiatTxLimit: settings.fiatTxLimit,
reboot: reboot
reboot: reboot,
rates: rates,
balances: balances
};
if (response.idVerificationEnabled)
@ -99,7 +135,7 @@ function trade(req, res) {
}
function send(req, res) {
plugins.sendBitcoins(session(req), req.body, function(err, status) {
plugins.sendCoins(session(req), req.body, function(err, status) {
// TODO: use status.statusCode here after confirming machine compatibility
// FIX: (joshm) set txHash to status.txId instead of previous status.txHash which wasn't being set
// Need to clean up txHash vs txId