This commit is contained in:
Josh Harvey 2017-03-15 22:54:40 +02:00
parent b4d8f3cd4c
commit 340b39d47d
9 changed files with 189 additions and 72 deletions

View file

@ -72,8 +72,14 @@ function plugins (settings, deviceId) {
return balances
}
function buildCartridges (cartridges, virtualCartridges, rec) {
return {
function buildCartridges () {
const config = configManager.machineScoped(deviceId, settings.config)
const cartridges = [ config.topCashOutDenomination,
config.bottomCashOutDenomination ]
const virtualCartridges = [config.virtualCashOutDenomination]
return dbm.cartridgeCounts(deviceId)
.then(rec => ({
cartridges: [
{
denomination: parseInt(cartridges[0], 10),
@ -85,7 +91,7 @@ function plugins (settings, deviceId) {
}
],
virtualCartridges
}
}))
}
function fetchCurrentConfigVersion () {
@ -102,9 +108,6 @@ function plugins (settings, deviceId) {
const config = configManager.machineScoped(deviceId, settings.config)
const fiatCode = config.fiatCurrency
const cryptoCodes = config.cryptoCurrencies
const cartridges = [ config.topCashOutDenomination,
config.bottomCashOutDenomination ]
const virtualCartridges = [config.virtualCashOutDenomination]
const tickerPromises = cryptoCodes.map(c => ticker.getRates(settings, fiatCode, c))
const balancePromises = cryptoCodes.map(c => fiatBalance(fiatCode, c))
@ -112,20 +115,20 @@ function plugins (settings, deviceId) {
const currentConfigVersionPromise = fetchCurrentConfigVersion()
const promises = [
dbm.cartridgeCounts(deviceId),
buildCartridges(),
pingPromise,
currentConfigVersionPromise
].concat(tickerPromises, balancePromises)
return Promise.all(promises)
.then(arr => {
const cartridgeCounts = arr[0]
const cartridges = arr[0]
const currentConfigVersion = arr[2]
const tickers = arr.slice(3, cryptoCodes.length + 3)
const balances = arr.slice(cryptoCodes.length + 3)
return {
cartridges: buildCartridges(cartridges, virtualCartridges, cartridgeCounts),
cartridges,
rates: buildRates(tickers),
balances: buildBalances(balances),
currentConfigVersion
@ -174,29 +177,13 @@ function plugins (settings, deviceId) {
return dbm.machineEvent(event)
}
function cashOut (tx) {
function newAddress (tx) {
const cryptoCode = tx.cryptoCode
const serialPromise = wallet.supportsHD
? dbm.nextCashOutSerialHD(tx.id, cryptoCode)
: Promise.resolve()
return serialPromise
.then(serialNumber => {
const info = {
label: 'TX ' + Date.now(),
account: 'deposit',
serialNumber
}
return wallet.newAddress(settings, cryptoCode, info)
.then(address => {
const newTx = _.set('toAddress', address, tx)
return dbm.addInitialIncoming(deviceId, newTx, address)
.then(() => address)
})
})
const info = {
label: 'TX ' + Date.now(),
account: 'deposit'
}
return wallet.newAddress(settings, cryptoCode, info)
}
function dispenseAck (tx) {
@ -486,7 +473,7 @@ function plugins (settings, deviceId) {
pollQueries,
trade,
sendCoins,
cashOut,
newAddress,
dispenseAck,
getPhoneCode,
executeTrades,
@ -498,7 +485,8 @@ function plugins (settings, deviceId) {
sweepLiveHD,
sweepOldHD,
sendMessage,
checkBalances
checkBalances,
buildCartridges
}
}