WIP
This commit is contained in:
parent
c8ba96515f
commit
ed1376fc6f
2 changed files with 52 additions and 9 deletions
|
|
@ -18,6 +18,8 @@ var DEPOSIT_TIMEOUT = 130 * 1000;
|
||||||
|
|
||||||
var db = null;
|
var db = null;
|
||||||
|
|
||||||
|
var cryptoCoins = null;
|
||||||
|
|
||||||
var tickerPlugins = {};
|
var tickerPlugins = {};
|
||||||
var traderPlugin = null;
|
var traderPlugin = null;
|
||||||
var walletPlugins = {};
|
var walletPlugins = {};
|
||||||
|
|
@ -333,7 +335,7 @@ exports.trade = function trade(session, rawTrade, cb) {
|
||||||
], cb);
|
], cb);
|
||||||
};
|
};
|
||||||
|
|
||||||
exports.sendBitcoins = function sendBitcoins(session, rawTx, cb) {
|
exports.sendCoins = function sendCoins(session, rawTx, cb) {
|
||||||
executeTx(session, rawTx, 'machine', 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
|
// `balance.transferBalance` is the balance of our transfer account (the one
|
||||||
// we use to send Bitcoins to clients) in satoshis.
|
// we use to send Bitcoins to clients) in satoshis.
|
||||||
var transferBalance = lastBalances.transferBalance;
|
var transferBalance = lastBalance.transferBalance;
|
||||||
|
|
||||||
var fiatTransferBalance = (transferBalance * rate) / lowBalanceMargin;
|
var fiatTransferBalance = (transferBalance * rate) / lowBalanceMargin;
|
||||||
|
|
||||||
|
|
@ -485,10 +487,11 @@ exports.getDeviceRate = function getDeviceRate(cryptoCoin) {
|
||||||
return lastRate[deviceCurrency];
|
return lastRate[deviceCurrency];
|
||||||
};
|
};
|
||||||
|
|
||||||
exports.getBalance = function getBalance() {
|
exports.getBalance = function getBalance(cryptoCoin) {
|
||||||
if (!lastBalances) return null;
|
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) {
|
exports.verifyTx = function verifyTx(data, cb) {
|
||||||
idVerifierPlugin.verifyTransaction(data, cb);
|
idVerifierPlugin.verifyTransaction(data, cb);
|
||||||
};
|
};
|
||||||
|
|
||||||
|
exports.getCryptoCoins = function getCryptoCoins () {
|
||||||
|
return cryptoCoins;
|
||||||
|
}
|
||||||
|
|
|
||||||
|
|
@ -20,9 +20,37 @@ var STALE_BALANCE = 180000;
|
||||||
var pids = {}
|
var pids = {}
|
||||||
var reboots = {}
|
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) {
|
function poll(req, res) {
|
||||||
var rateRec = plugins.getDeviceRate();
|
|
||||||
var balanceRec = plugins.getBalance();
|
|
||||||
var fingerprint = getFingerprint(req)
|
var fingerprint = getFingerprint(req)
|
||||||
var pid = req.query.pid
|
var pid = req.query.pid
|
||||||
|
|
||||||
|
|
@ -30,6 +58,12 @@ function poll(req, res) {
|
||||||
|
|
||||||
logger.debug('poll request from: %s', fingerprint);
|
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
|
// `rateRec` and `balanceRec` are both objects, so there's no danger
|
||||||
// of misinterpreting rate or balance === 0 as 'Server initializing'.
|
// of misinterpreting rate or balance === 0 as 'Server initializing'.
|
||||||
if (!rateRec || !balanceRec) {
|
if (!rateRec || !balanceRec) {
|
||||||
|
|
@ -81,7 +115,9 @@ function poll(req, res) {
|
||||||
twoWayMode: cartridges ? true : false,
|
twoWayMode: cartridges ? true : false,
|
||||||
zeroConfLimit: settings.zeroConfLimit,
|
zeroConfLimit: settings.zeroConfLimit,
|
||||||
fiatTxLimit: settings.fiatTxLimit,
|
fiatTxLimit: settings.fiatTxLimit,
|
||||||
reboot: reboot
|
reboot: reboot,
|
||||||
|
rates: rates,
|
||||||
|
balances: balances
|
||||||
};
|
};
|
||||||
|
|
||||||
if (response.idVerificationEnabled)
|
if (response.idVerificationEnabled)
|
||||||
|
|
@ -99,7 +135,7 @@ function trade(req, res) {
|
||||||
}
|
}
|
||||||
|
|
||||||
function send(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
|
// 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
|
// FIX: (joshm) set txHash to status.txId instead of previous status.txHash which wasn't being set
|
||||||
// Need to clean up txHash vs txId
|
// Need to clean up txHash vs txId
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue