import Assets from "./Assets.js"; import TradingPair from "./TradingPair.js"; export default class TradingPairs { static BTCUSDT = new TradingPair(Assets.BTC, Assets.USDT); static ETHUSDT = new TradingPair(Assets.ETH, Assets.USDT); static GALAUSDT = new TradingPair(Assets.GALA, Assets.USDT); static ETHBTC = new TradingPair(Assets.ETH, Assets.BTC); static TRADING_PAIRS = [ this.BTCUSDT, this.ETHUSDT, this.GALAUSDT, this.ETHBTC, ]; /** * @returns {TradingPair[]} all known trading pairs */ static getAll() { return this.TRADING_PAIRS } /** * @param {string} symbol * @returns {TradingPair} tradingpair with given symbol or null if it is unknown */ static fromString(symbol) { if(typeof symbol !== 'string'){ return null; } for (const pair of this.TRADING_PAIRS) { if (pair.getKey().toLowerCase() === symbol.toLowerCase()) { return pair; } } return null; } /** * Returns filtered list of TradingPair objects. * All keywords must be included in the TradingPair to be included * * @param {...string} keywords * @returns {TradingPair[]} matching trading pairs */ static getFiltered(...keywords) { const result = []; for (let pair of this.TRADING_PAIRS) { let found = true; for (let keyword of keywords) { found &= (pair.getFirstCurrency().getSymbol().includes(keyword) || pair.getSecondCurrency().getSymbol().includes(keyword)); } if (found) { result.push(pair); } } return result; } }