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 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;
|
||||
}
|
||||
|
|
|
|||
|
|
@ -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
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue