WIPP
This commit is contained in:
parent
d78eefff90
commit
134a016bbd
2 changed files with 15 additions and 14 deletions
|
|
@ -1,9 +1,9 @@
|
|||
const uuid = require('uuid')
|
||||
const _ = require('lodash/fp')
|
||||
const BigNumber = require('bignumber.js')
|
||||
const argv = require('minimist')(process.argv.slice(2))
|
||||
const crypto = require('crypto')
|
||||
|
||||
const BN = require('./bn')
|
||||
const dbm = require('./postgresql_interface')
|
||||
const db = require('./db')
|
||||
const logger = require('./logger')
|
||||
|
|
@ -36,18 +36,19 @@ function plugins (settings, deviceId) {
|
|||
const cryptoCodes = config.cryptoCurrencies
|
||||
const cashOut = config.cashOutEnabled
|
||||
|
||||
const cashInCommission = new BigNumber(config.cashInCommission).div(100).plus(1)
|
||||
const cashOutCommission = cashOut && new BigNumber(config.cashOutCommission).div(100).plus(1)
|
||||
const cashInCommission = BN(1).minus(BN(config.cashInCommission).div(100))
|
||||
const cashOutCommission = cashOut && BN(1).plus(BN(config.cashOutCommission).div(100))
|
||||
|
||||
const rates = {}
|
||||
|
||||
console.log('DEBUG444: %j', tickers)
|
||||
console.log('DEBUG445: %j', [config.cashOutCommission, cashOutCommission])
|
||||
cryptoCodes.forEach((cryptoCode, i) => {
|
||||
const rateRec = tickers[i]
|
||||
if (Date.now() - rateRec.timestamp > STALE_TICKER) return logger.warn('Stale rate for ' + cryptoCode)
|
||||
const rate = rateRec.rates
|
||||
rates[cryptoCode] = {
|
||||
cashIn: rate.ask.times(cashInCommission),
|
||||
cashIn: rate.ask.div(cashInCommission),
|
||||
cashOut: cashOut ? rate.bid.div(cashOutCommission) : undefined
|
||||
}
|
||||
})
|
||||
|
|
@ -203,22 +204,22 @@ function plugins (settings, deviceId) {
|
|||
])
|
||||
.then(([rates, balanceRec]) => {
|
||||
const rawRate = rates.rates.ask
|
||||
const commission = (new BigNumber(config.cashInCommission).div(100)).plus(1)
|
||||
const cashInCommission = BN(1).minus(BN(config.cashInCommission).div(100))
|
||||
const balance = balanceRec.balance
|
||||
|
||||
if (!rawRate || !balance) return null
|
||||
|
||||
// The rate is actually our commission times real rate.
|
||||
const rate = rawRate.times(commission)
|
||||
const rate = rawRate.div(cashInCommission)
|
||||
|
||||
// `lowBalanceMargin` is our safety net. It's a number > 1, and we divide
|
||||
// all our balances by it to provide a safety margin.
|
||||
const lowBalanceMargin = (new BigNumber(config.lowBalanceMargin).div(100)).plus(1)
|
||||
const lowBalanceMargin = (BN(config.lowBalanceMargin).div(100)).plus(1)
|
||||
|
||||
const unitScale = new BigNumber(10).pow(coins[cryptoCode].unitScale)
|
||||
const fiatTransferBalance = balance.div(unitScale).times(rate).div(lowBalanceMargin)
|
||||
const unitScale = BN(10).pow(coins[cryptoCode].unitScale)
|
||||
const fiatTransferBalance = balance.mul(rate.div(unitScale)).div(lowBalanceMargin)
|
||||
|
||||
return {timestamp: balanceRec.timestamp, balance: fiatTransferBalance.round(3).toNumber()}
|
||||
console.log('DEBUG444: %s', fiatTransferBalance)
|
||||
return {timestamp: balanceRec.timestamp, balance: fiatTransferBalance.truncated().toString()}
|
||||
})
|
||||
}
|
||||
|
||||
|
|
@ -308,7 +309,7 @@ function plugins (settings, deviceId) {
|
|||
if (filtered.length === 0) return null
|
||||
|
||||
const cryptoAtoms = filtered
|
||||
.reduce((prev, current) => prev.plus(current.cryptoAtoms), new BigNumber(0))
|
||||
.reduce((prev, current) => prev.plus(current.cryptoAtoms), BN(0))
|
||||
|
||||
const timestamp = filtered.map(r => r.timestamp).reduce((acc, r) => Math.max(acc, r), 0)
|
||||
|
||||
|
|
@ -425,7 +426,7 @@ function plugins (settings, deviceId) {
|
|||
}
|
||||
|
||||
function randomCode () {
|
||||
return new BigNumber(crypto.randomBytes(3).toString('hex'), 16).shift(-6).toFixed(6).slice(-6)
|
||||
return BN(crypto.randomBytes(3).toString('hex'), 16).shift(-6).toFixed(6).slice(-6)
|
||||
}
|
||||
|
||||
function getPhoneCode (phone) {
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue