32 lines
975 B
JavaScript
32 lines
975 B
JavaScript
const _ = require('lodash/fp')
|
|
|
|
const kraken = require('../exchange/kraken')
|
|
const bitstamp = require('../exchange/bitstamp')
|
|
const itbit = require('../exchange/itbit')
|
|
const bitpay = require('../ticker/bitpay')
|
|
const { COINS } = require('../../new-admin/config/coins')
|
|
const { BTC, BCH, DASH, ETH, LTC, ZEC } = COINS
|
|
|
|
const ALL = {
|
|
kraken: kraken,
|
|
bitstamp: bitstamp,
|
|
itbit: itbit,
|
|
bitpay: bitpay,
|
|
coinbase: {
|
|
CRYPTO: [BTC, ETH, LTC, DASH, ZEC, BCH],
|
|
FIAT: 'ALL_CURRENCIES'
|
|
}
|
|
}
|
|
|
|
function buildMarket (fiatCode, cryptoCode, serviceName) {
|
|
if (!_.includes(cryptoCode, ALL[serviceName].CRYPTO)) {
|
|
throw new Error('Unsupported crypto: ' + cryptoCode)
|
|
}
|
|
const fiatSupported = ALL[serviceName].FIAT
|
|
if (fiatSupported !== 'ALL_CURRENCIES' && !_.includes(fiatCode, fiatSupported)) {
|
|
throw new Error('Unsupported fiat: ' + fiatCode)
|
|
}
|
|
return cryptoCode + '/' + fiatCode
|
|
}
|
|
|
|
module.exports = { buildMarket, ALL }
|