fix: market currency migration
This commit is contained in:
parent
7f168859d8
commit
47c548c956
11 changed files with 25 additions and 22 deletions
|
|
@ -29,13 +29,12 @@ const ALL = {
|
||||||
bitfinex: bitfinex
|
bitfinex: bitfinex
|
||||||
}
|
}
|
||||||
|
|
||||||
function buildMarket (_fiatCode, cryptoCode, serviceName) {
|
function buildMarket (fiatCode, cryptoCode, serviceName) {
|
||||||
if (!_.includes(cryptoCode, ALL[serviceName].CRYPTO)) {
|
if (!_.includes(cryptoCode, ALL[serviceName].CRYPTO)) {
|
||||||
throw new Error('Unsupported crypto: ' + cryptoCode)
|
throw new Error('Unsupported crypto: ' + cryptoCode)
|
||||||
}
|
}
|
||||||
|
|
||||||
if (_.isNil(_fiatCode)) logger.debug('Missing fiat code information, defaulting to EUR markets')
|
if (_.isNil(fiatCode)) throw new Error('Market pair building failed: Missing fiat code')
|
||||||
const fiatCode = _fiatCode ?? 'EUR'
|
|
||||||
return cryptoCode + '/' + fiatCode
|
return cryptoCode + '/' + fiatCode
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -7,6 +7,7 @@ const ORDER_TYPE = ORDER_TYPES.MARKET
|
||||||
const { BTC, BCH, XMR, ETH, LTC, ZEC, LN } = COINS
|
const { BTC, BCH, XMR, ETH, LTC, ZEC, LN } = COINS
|
||||||
const CRYPTO = [BTC, ETH, LTC, ZEC, BCH, XMR, LN]
|
const CRYPTO = [BTC, ETH, LTC, ZEC, BCH, XMR, LN]
|
||||||
const FIAT = ['USD', 'EUR']
|
const FIAT = ['USD', 'EUR']
|
||||||
|
const DEFAULT_FIAT_MARKET = 'EUR'
|
||||||
const REQUIRED_CONFIG_FIELDS = ['apiKey', 'privateKey', 'currencyMarket']
|
const REQUIRED_CONFIG_FIELDS = ['apiKey', 'privateKey', 'currencyMarket']
|
||||||
|
|
||||||
const loadConfig = (account) => {
|
const loadConfig = (account) => {
|
||||||
|
|
@ -17,4 +18,4 @@ const loadConfig = (account) => {
|
||||||
return { ...mapped, timeout: 3000 }
|
return { ...mapped, timeout: 3000 }
|
||||||
}
|
}
|
||||||
|
|
||||||
module.exports = { loadConfig, REQUIRED_CONFIG_FIELDS, CRYPTO, FIAT, ORDER_TYPE }
|
module.exports = { loadConfig, DEFAULT_FIAT_MARKET, REQUIRED_CONFIG_FIELDS, CRYPTO, FIAT, ORDER_TYPE }
|
||||||
|
|
|
||||||
|
|
@ -7,6 +7,7 @@ const ORDER_TYPE = ORDER_TYPES.MARKET
|
||||||
const { BTC, BCH, DASH, ETH, LTC, ZEC, USDT, USDT_TRON, LN } = COINS
|
const { BTC, BCH, DASH, ETH, LTC, ZEC, USDT, USDT_TRON, LN } = COINS
|
||||||
const CRYPTO = [BTC, ETH, LTC, DASH, ZEC, BCH, USDT, USDT_TRON, LN]
|
const CRYPTO = [BTC, ETH, LTC, DASH, ZEC, BCH, USDT, USDT_TRON, LN]
|
||||||
const FIAT = ['USD']
|
const FIAT = ['USD']
|
||||||
|
const DEFAULT_FIAT_MARKET = 'USD'
|
||||||
const REQUIRED_CONFIG_FIELDS = ['apiKey', 'privateKey', 'currencyMarket']
|
const REQUIRED_CONFIG_FIELDS = ['apiKey', 'privateKey', 'currencyMarket']
|
||||||
|
|
||||||
const loadConfig = (account) => {
|
const loadConfig = (account) => {
|
||||||
|
|
@ -17,4 +18,4 @@ const loadConfig = (account) => {
|
||||||
return { ...mapped, timeout: 3000 }
|
return { ...mapped, timeout: 3000 }
|
||||||
}
|
}
|
||||||
|
|
||||||
module.exports = { loadConfig, REQUIRED_CONFIG_FIELDS, CRYPTO, FIAT, ORDER_TYPE }
|
module.exports = { loadConfig, DEFAULT_FIAT_MARKET, REQUIRED_CONFIG_FIELDS, CRYPTO, FIAT, ORDER_TYPE }
|
||||||
|
|
|
||||||
|
|
@ -7,6 +7,7 @@ const ORDER_TYPE = ORDER_TYPES.MARKET
|
||||||
const { BTC, ETH, LTC, BCH, USDT, LN } = COINS
|
const { BTC, ETH, LTC, BCH, USDT, LN } = COINS
|
||||||
const CRYPTO = [BTC, ETH, LTC, BCH, USDT, LN]
|
const CRYPTO = [BTC, ETH, LTC, BCH, USDT, LN]
|
||||||
const FIAT = ['USD', 'EUR']
|
const FIAT = ['USD', 'EUR']
|
||||||
|
const DEFAULT_FIAT_MARKET = 'EUR'
|
||||||
const AMOUNT_PRECISION = 8
|
const AMOUNT_PRECISION = 8
|
||||||
const REQUIRED_CONFIG_FIELDS = ['key', 'secret']
|
const REQUIRED_CONFIG_FIELDS = ['key', 'secret']
|
||||||
|
|
||||||
|
|
@ -18,4 +19,4 @@ const loadConfig = (account) => {
|
||||||
return { ...mapped, timeout: 3000 }
|
return { ...mapped, timeout: 3000 }
|
||||||
}
|
}
|
||||||
|
|
||||||
module.exports = { loadConfig, REQUIRED_CONFIG_FIELDS, CRYPTO, FIAT, ORDER_TYPE, AMOUNT_PRECISION }
|
module.exports = { loadConfig, REQUIRED_CONFIG_FIELDS, DEFAULT_FIAT_MARKET, CRYPTO, FIAT, ORDER_TYPE, AMOUNT_PRECISION }
|
||||||
|
|
|
||||||
|
|
@ -7,6 +7,7 @@ const ORDER_TYPE = ORDER_TYPES.MARKET
|
||||||
const { BTC, ETH, LTC, BCH, USDT, LN } = COINS
|
const { BTC, ETH, LTC, BCH, USDT, LN } = COINS
|
||||||
const CRYPTO = [BTC, ETH, LTC, BCH, USDT, LN]
|
const CRYPTO = [BTC, ETH, LTC, BCH, USDT, LN]
|
||||||
const FIAT = ['USD', 'EUR']
|
const FIAT = ['USD', 'EUR']
|
||||||
|
const DEFAULT_FIAT_MARKET = 'EUR'
|
||||||
const AMOUNT_PRECISION = 8
|
const AMOUNT_PRECISION = 8
|
||||||
const REQUIRED_CONFIG_FIELDS = ['key', 'secret', 'clientId', 'currencyMarket']
|
const REQUIRED_CONFIG_FIELDS = ['key', 'secret', 'clientId', 'currencyMarket']
|
||||||
|
|
||||||
|
|
@ -19,4 +20,4 @@ const loadConfig = (account) => {
|
||||||
return { ...mapped, timeout: 3000 }
|
return { ...mapped, timeout: 3000 }
|
||||||
}
|
}
|
||||||
|
|
||||||
module.exports = { loadConfig, REQUIRED_CONFIG_FIELDS, CRYPTO, FIAT, ORDER_TYPE, AMOUNT_PRECISION }
|
module.exports = { loadConfig, DEFAULT_FIAT_MARKET, REQUIRED_CONFIG_FIELDS, CRYPTO, FIAT, ORDER_TYPE, AMOUNT_PRECISION }
|
||||||
|
|
|
||||||
|
|
@ -7,6 +7,7 @@ const ORDER_TYPE = ORDER_TYPES.MARKET
|
||||||
const { BTC, BCH, DASH, ETH, LTC, USDT, TRX, USDT_TRON, LN } = COINS
|
const { BTC, BCH, DASH, ETH, LTC, USDT, TRX, USDT_TRON, LN } = COINS
|
||||||
const CRYPTO = [BTC, ETH, LTC, DASH, BCH, USDT, TRX, USDT_TRON, LN]
|
const CRYPTO = [BTC, ETH, LTC, DASH, BCH, USDT, TRX, USDT_TRON, LN]
|
||||||
const FIAT = ['USD', 'EUR']
|
const FIAT = ['USD', 'EUR']
|
||||||
|
const DEFAULT_FIAT_MARKET = 'EUR'
|
||||||
const REQUIRED_CONFIG_FIELDS = ['apiKey', 'privateKey', 'currencyMarket']
|
const REQUIRED_CONFIG_FIELDS = ['apiKey', 'privateKey', 'currencyMarket']
|
||||||
|
|
||||||
const loadConfig = (account) => {
|
const loadConfig = (account) => {
|
||||||
|
|
@ -17,4 +18,4 @@ const loadConfig = (account) => {
|
||||||
return { ...mapped, timeout: 3000 }
|
return { ...mapped, timeout: 3000 }
|
||||||
}
|
}
|
||||||
|
|
||||||
module.exports = { loadConfig, REQUIRED_CONFIG_FIELDS, CRYPTO, FIAT, ORDER_TYPE }
|
module.exports = { loadConfig, DEFAULT_FIAT_MARKET, REQUIRED_CONFIG_FIELDS, CRYPTO, FIAT, ORDER_TYPE }
|
||||||
|
|
|
||||||
|
|
@ -7,6 +7,7 @@ const ORDER_TYPE = ORDER_TYPES.LIMIT
|
||||||
const { BTC, ETH, USDT, LN } = COINS
|
const { BTC, ETH, USDT, LN } = COINS
|
||||||
const CRYPTO = [BTC, ETH, USDT, LN]
|
const CRYPTO = [BTC, ETH, USDT, LN]
|
||||||
const FIAT = ['USD']
|
const FIAT = ['USD']
|
||||||
|
const DEFAULT_FIAT_MARKET = 'USD'
|
||||||
const AMOUNT_PRECISION = 4
|
const AMOUNT_PRECISION = 4
|
||||||
const REQUIRED_CONFIG_FIELDS = ['clientKey', 'clientSecret', 'userId', 'walletId', 'currencyMarket']
|
const REQUIRED_CONFIG_FIELDS = ['clientKey', 'clientSecret', 'userId', 'walletId', 'currencyMarket']
|
||||||
|
|
||||||
|
|
@ -21,4 +22,4 @@ const loadConfig = (account) => {
|
||||||
}
|
}
|
||||||
const loadOptions = ({ walletId }) => ({ walletId })
|
const loadOptions = ({ walletId }) => ({ walletId })
|
||||||
|
|
||||||
module.exports = { loadOptions, loadConfig, REQUIRED_CONFIG_FIELDS, CRYPTO, FIAT, ORDER_TYPE, AMOUNT_PRECISION }
|
module.exports = { loadOptions, loadConfig, DEFAULT_FIAT_MARKET, REQUIRED_CONFIG_FIELDS, CRYPTO, FIAT, ORDER_TYPE, AMOUNT_PRECISION }
|
||||||
|
|
|
||||||
|
|
@ -7,6 +7,7 @@ const ORDER_TYPE = ORDER_TYPES.MARKET
|
||||||
const { BTC, BCH, DASH, ETH, LTC, ZEC, XMR, USDT, TRX, USDT_TRON, LN } = COINS
|
const { BTC, BCH, DASH, ETH, LTC, ZEC, XMR, USDT, TRX, USDT_TRON, LN } = COINS
|
||||||
const CRYPTO = [BTC, ETH, LTC, DASH, ZEC, BCH, XMR, USDT, TRX, USDT_TRON, LN]
|
const CRYPTO = [BTC, ETH, LTC, DASH, ZEC, BCH, XMR, USDT, TRX, USDT_TRON, LN]
|
||||||
const FIAT = ['USD', 'EUR']
|
const FIAT = ['USD', 'EUR']
|
||||||
|
const DEFAULT_FIAT_MARKET = 'EUR'
|
||||||
const AMOUNT_PRECISION = 6
|
const AMOUNT_PRECISION = 6
|
||||||
const REQUIRED_CONFIG_FIELDS = ['apiKey', 'privateKey', 'currencyMarket']
|
const REQUIRED_CONFIG_FIELDS = ['apiKey', 'privateKey', 'currencyMarket']
|
||||||
const USER_REF = 'userref'
|
const USER_REF = 'userref'
|
||||||
|
|
@ -26,4 +27,4 @@ const loadConfig = (account) => {
|
||||||
|
|
||||||
const loadOptions = () => ({ expiretm: '+60' })
|
const loadOptions = () => ({ expiretm: '+60' })
|
||||||
|
|
||||||
module.exports = { USER_REF, loadOptions, loadConfig, REQUIRED_CONFIG_FIELDS, CRYPTO, FIAT, ORDER_TYPE, AMOUNT_PRECISION }
|
module.exports = { USER_REF, loadOptions, loadConfig, DEFAULT_FIAT_MARKET, REQUIRED_CONFIG_FIELDS, CRYPTO, FIAT, ORDER_TYPE, AMOUNT_PRECISION }
|
||||||
|
|
|
||||||
|
|
@ -5,16 +5,15 @@ const { ALL } = require('../lib/plugins/common/ccxt')
|
||||||
|
|
||||||
exports.up = function (next) {
|
exports.up = function (next) {
|
||||||
return loadLatest()
|
return loadLatest()
|
||||||
.then(({ config, accounts }) => {
|
.then(({ accounts }) => {
|
||||||
const allExchanges = _.map(it => it.code)(_.filter(it => it.class === 'exchange', ACCOUNT_LIST))
|
const allExchanges = _.map(it => it.code)(_.filter(it => it.class === 'exchange', ACCOUNT_LIST))
|
||||||
const configuredExchanges = _.intersection(allExchanges, _.keys(accounts))
|
const configuredExchanges = _.intersection(allExchanges, _.keys(accounts))
|
||||||
const localeCurrency = config.locale_fiatCurrency
|
|
||||||
|
|
||||||
const newAccounts = _.reduce(
|
const newAccounts = _.reduce(
|
||||||
(acc, value) => {
|
(acc, value) => {
|
||||||
if (!_.isNil(accounts[value].currencyMarket)) return acc
|
if (!_.isNil(accounts[value].currencyMarket)) return acc
|
||||||
if (_.includes(localeCurrency, ALL[value].FIAT)) return { ...acc, [value]: { currencyMarket: localeCurrency } }
|
if (_.includes('EUR', ALL[value].FIAT)) return { ...acc, [value]: { currencyMarket: 'EUR' } }
|
||||||
return { ...acc, [value]: { currencyMarket: _.head(ALL[value].FIAT) } }
|
return { ...acc, [value]: { currencyMarket: ALL[value].DEFAULT_FIAT_CURRENCY } }
|
||||||
},
|
},
|
||||||
{},
|
{},
|
||||||
configuredExchanges
|
configuredExchanges
|
||||||
|
|
|
||||||
|
|
@ -1,7 +1,11 @@
|
||||||
import { ALL_CRYPTOS } from '@lamassu/coins'
|
import { ALL_CRYPTOS } from '@lamassu/coins'
|
||||||
import * as R from 'ramda'
|
import * as R from 'ramda'
|
||||||
|
|
||||||
import { WARNING_LEVELS } from 'src/utils/constants'
|
const WARNING_LEVELS = {
|
||||||
|
CLEAN: 'clean',
|
||||||
|
PARTIAL: 'partial',
|
||||||
|
IMPORTANT: 'important'
|
||||||
|
}
|
||||||
|
|
||||||
const secretTest = (secret, message) => ({
|
const secretTest = (secret, message) => ({
|
||||||
name: 'secret-test',
|
name: 'secret-test',
|
||||||
|
|
|
||||||
|
|
@ -9,11 +9,6 @@ const MANUAL = 'manual'
|
||||||
const IP_CHECK_REGEX = /^(?:(?:25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)\.){3}(?:25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)$/
|
const IP_CHECK_REGEX = /^(?:(?:25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)\.){3}(?:25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)$/
|
||||||
|
|
||||||
const SWEEPABLE_CRYPTOS = ['ETH']
|
const SWEEPABLE_CRYPTOS = ['ETH']
|
||||||
const WARNING_LEVELS = {
|
|
||||||
CLEAN: 'clean',
|
|
||||||
PARTIAL: 'partial',
|
|
||||||
IMPORTANT: 'important'
|
|
||||||
}
|
|
||||||
|
|
||||||
export {
|
export {
|
||||||
CURRENCY_MAX,
|
CURRENCY_MAX,
|
||||||
|
|
@ -23,6 +18,5 @@ export {
|
||||||
MANUAL,
|
MANUAL,
|
||||||
WALLET_SCORING_DEFAULT_THRESHOLD,
|
WALLET_SCORING_DEFAULT_THRESHOLD,
|
||||||
IP_CHECK_REGEX,
|
IP_CHECK_REGEX,
|
||||||
SWEEPABLE_CRYPTOS,
|
SWEEPABLE_CRYPTOS
|
||||||
WARNING_LEVELS
|
|
||||||
}
|
}
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue