diff --git a/lib/plugins/common/ccxt.js b/lib/plugins/common/ccxt.js index b822bb70..1acdaa95 100644 --- a/lib/plugins/common/ccxt.js +++ b/lib/plugins/common/ccxt.js @@ -29,13 +29,12 @@ const ALL = { bitfinex: bitfinex } -function buildMarket (_fiatCode, cryptoCode, serviceName) { +function buildMarket (fiatCode, cryptoCode, serviceName) { if (!_.includes(cryptoCode, ALL[serviceName].CRYPTO)) { throw new Error('Unsupported crypto: ' + cryptoCode) } - if (_.isNil(_fiatCode)) logger.debug('Missing fiat code information, defaulting to EUR markets') - const fiatCode = _fiatCode ?? 'EUR' + if (_.isNil(fiatCode)) throw new Error('Market pair building failed: Missing fiat code') return cryptoCode + '/' + fiatCode } diff --git a/lib/plugins/exchange/binance.js b/lib/plugins/exchange/binance.js index 97c90c26..47c498e7 100644 --- a/lib/plugins/exchange/binance.js +++ b/lib/plugins/exchange/binance.js @@ -7,6 +7,7 @@ const ORDER_TYPE = ORDER_TYPES.MARKET const { BTC, BCH, XMR, ETH, LTC, ZEC, LN } = COINS const CRYPTO = [BTC, ETH, LTC, ZEC, BCH, XMR, LN] const FIAT = ['USD', 'EUR'] +const DEFAULT_FIAT_MARKET = 'EUR' const REQUIRED_CONFIG_FIELDS = ['apiKey', 'privateKey', 'currencyMarket'] const loadConfig = (account) => { @@ -17,4 +18,4 @@ const loadConfig = (account) => { 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 } diff --git a/lib/plugins/exchange/binanceus.js b/lib/plugins/exchange/binanceus.js index 59290fc6..e8f0c371 100644 --- a/lib/plugins/exchange/binanceus.js +++ b/lib/plugins/exchange/binanceus.js @@ -7,6 +7,7 @@ const ORDER_TYPE = ORDER_TYPES.MARKET 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 FIAT = ['USD'] +const DEFAULT_FIAT_MARKET = 'USD' const REQUIRED_CONFIG_FIELDS = ['apiKey', 'privateKey', 'currencyMarket'] const loadConfig = (account) => { @@ -17,4 +18,4 @@ const loadConfig = (account) => { 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 } diff --git a/lib/plugins/exchange/bitfinex.js b/lib/plugins/exchange/bitfinex.js index 4feccb0c..4e4d85ce 100644 --- a/lib/plugins/exchange/bitfinex.js +++ b/lib/plugins/exchange/bitfinex.js @@ -7,6 +7,7 @@ const ORDER_TYPE = ORDER_TYPES.MARKET const { BTC, ETH, LTC, BCH, USDT, LN } = COINS const CRYPTO = [BTC, ETH, LTC, BCH, USDT, LN] const FIAT = ['USD', 'EUR'] +const DEFAULT_FIAT_MARKET = 'EUR' const AMOUNT_PRECISION = 8 const REQUIRED_CONFIG_FIELDS = ['key', 'secret'] @@ -18,4 +19,4 @@ const loadConfig = (account) => { 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 } diff --git a/lib/plugins/exchange/bitstamp.js b/lib/plugins/exchange/bitstamp.js index 859ca743..bd745d49 100644 --- a/lib/plugins/exchange/bitstamp.js +++ b/lib/plugins/exchange/bitstamp.js @@ -7,6 +7,7 @@ const ORDER_TYPE = ORDER_TYPES.MARKET const { BTC, ETH, LTC, BCH, USDT, LN } = COINS const CRYPTO = [BTC, ETH, LTC, BCH, USDT, LN] const FIAT = ['USD', 'EUR'] +const DEFAULT_FIAT_MARKET = 'EUR' const AMOUNT_PRECISION = 8 const REQUIRED_CONFIG_FIELDS = ['key', 'secret', 'clientId', 'currencyMarket'] @@ -19,4 +20,4 @@ const loadConfig = (account) => { 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 } diff --git a/lib/plugins/exchange/cex.js b/lib/plugins/exchange/cex.js index 94a17811..b9687e15 100644 --- a/lib/plugins/exchange/cex.js +++ b/lib/plugins/exchange/cex.js @@ -7,6 +7,7 @@ const ORDER_TYPE = ORDER_TYPES.MARKET 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 FIAT = ['USD', 'EUR'] +const DEFAULT_FIAT_MARKET = 'EUR' const REQUIRED_CONFIG_FIELDS = ['apiKey', 'privateKey', 'currencyMarket'] const loadConfig = (account) => { @@ -17,4 +18,4 @@ const loadConfig = (account) => { 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 } diff --git a/lib/plugins/exchange/itbit.js b/lib/plugins/exchange/itbit.js index 8bf4ada5..d80268e1 100644 --- a/lib/plugins/exchange/itbit.js +++ b/lib/plugins/exchange/itbit.js @@ -7,6 +7,7 @@ const ORDER_TYPE = ORDER_TYPES.LIMIT const { BTC, ETH, USDT, LN } = COINS const CRYPTO = [BTC, ETH, USDT, LN] const FIAT = ['USD'] +const DEFAULT_FIAT_MARKET = 'USD' const AMOUNT_PRECISION = 4 const REQUIRED_CONFIG_FIELDS = ['clientKey', 'clientSecret', 'userId', 'walletId', 'currencyMarket'] @@ -21,4 +22,4 @@ const loadConfig = (account) => { } 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 } diff --git a/lib/plugins/exchange/kraken.js b/lib/plugins/exchange/kraken.js index f14408bb..0f050ccf 100644 --- a/lib/plugins/exchange/kraken.js +++ b/lib/plugins/exchange/kraken.js @@ -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 CRYPTO = [BTC, ETH, LTC, DASH, ZEC, BCH, XMR, USDT, TRX, USDT_TRON, LN] const FIAT = ['USD', 'EUR'] +const DEFAULT_FIAT_MARKET = 'EUR' const AMOUNT_PRECISION = 6 const REQUIRED_CONFIG_FIELDS = ['apiKey', 'privateKey', 'currencyMarket'] const USER_REF = 'userref' @@ -26,4 +27,4 @@ const loadConfig = (account) => { 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 } diff --git a/migrations/1732874039534-market-currency.js b/migrations/1732874039534-market-currency.js index 5f0b7135..359db4bd 100644 --- a/migrations/1732874039534-market-currency.js +++ b/migrations/1732874039534-market-currency.js @@ -5,16 +5,15 @@ const { ALL } = require('../lib/plugins/common/ccxt') exports.up = function (next) { return loadLatest() - .then(({ config, accounts }) => { + .then(({ accounts }) => { const allExchanges = _.map(it => it.code)(_.filter(it => it.class === 'exchange', ACCOUNT_LIST)) const configuredExchanges = _.intersection(allExchanges, _.keys(accounts)) - const localeCurrency = config.locale_fiatCurrency const newAccounts = _.reduce( (acc, value) => { if (!_.isNil(accounts[value].currencyMarket)) return acc - if (_.includes(localeCurrency, ALL[value].FIAT)) return { ...acc, [value]: { currencyMarket: localeCurrency } } - return { ...acc, [value]: { currencyMarket: _.head(ALL[value].FIAT) } } + if (_.includes('EUR', ALL[value].FIAT)) return { ...acc, [value]: { currencyMarket: 'EUR' } } + return { ...acc, [value]: { currencyMarket: ALL[value].DEFAULT_FIAT_CURRENCY } } }, {}, configuredExchanges diff --git a/new-lamassu-admin/src/pages/Services/schemas/helper.js b/new-lamassu-admin/src/pages/Services/schemas/helper.js index 7d71e79f..c1c97870 100644 --- a/new-lamassu-admin/src/pages/Services/schemas/helper.js +++ b/new-lamassu-admin/src/pages/Services/schemas/helper.js @@ -1,7 +1,11 @@ import { ALL_CRYPTOS } from '@lamassu/coins' 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) => ({ name: 'secret-test', diff --git a/new-lamassu-admin/src/utils/constants.js b/new-lamassu-admin/src/utils/constants.js index f5516b99..9d829d3c 100644 --- a/new-lamassu-admin/src/utils/constants.js +++ b/new-lamassu-admin/src/utils/constants.js @@ -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 SWEEPABLE_CRYPTOS = ['ETH'] -const WARNING_LEVELS = { - CLEAN: 'clean', - PARTIAL: 'partial', - IMPORTANT: 'important' -} export { CURRENCY_MAX, @@ -23,6 +18,5 @@ export { MANUAL, WALLET_SCORING_DEFAULT_THRESHOLD, IP_CHECK_REGEX, - SWEEPABLE_CRYPTOS, - WARNING_LEVELS + SWEEPABLE_CRYPTOS }