MCPcopy Index your code
hub / github.com/ccxt/ccxt / getValidSymbol

Method getValidSymbol

java/tests/src/main/java/tests/exchange/TestMain.java:725–776  ·  view source on GitHub ↗
(Exchange exchange, Object... optionalArgs)

Source from the content-addressed store, hash-verified

723 }
724
725 public Object getValidSymbol(Exchange exchange, Object... optionalArgs)
726 {
727 Object spot = Helpers.getArg(optionalArgs, 0, true);
728 Object currentTypeMarkets = this.getMarketsFromExchange(exchange, spot);
729 Object codes = new java.util.ArrayList<Object>(java.util.Arrays.asList("BTC", "ETH", "XRP", "LTC", "BNB", "DASH", "DOGE", "ETC", "TRX", "USDT", "USDC", "USD", "GUSD", "EUR", "TUSD", "CNY", "JPY", "BRL"));
730 Object spotSymbols = new java.util.ArrayList<Object>(java.util.Arrays.asList("BTC/USDT", "BTC/USDC", "BTC/USD", "BTC/CNY", "BTC/EUR", "BTC/AUD", "BTC/BRL", "BTC/JPY", "ETH/USDT", "ETH/USDC", "ETH/USD", "ETH/CNY", "ETH/EUR", "ETH/AUD", "ETH/BRL", "ETH/JPY", "EUR/USDT", "EUR/USD", "EUR/USDC", "USDT/EUR", "USD/EUR", "USDC/EUR", "BTC/ETH", "ETH/BTC"));
731 Object swapSymbols = new java.util.ArrayList<Object>(java.util.Arrays.asList("BTC/USDT:USDT", "BTC/USD:USDT", "BTC/USDC:USDC", "BTC/USD:USDC", "BTC/USD:USD", "ETH/USDT:USDT", "ETH/USD:USDT", "ETH/USDC:USDC", "ETH/USD:USDC", "ETH/USD:USD", "BTC/USD:BTC", "ETH/USD:ETH"));
732 Object targetSymbols = ((Helpers.isTrue(spot))) ? spotSymbols : swapSymbols;
733 Object symbol = this.getTestSymbol(exchange, spot, targetSymbols);
734 // if symbols wasn't found from above hardcoded list, then try to locate any symbol which has our target hardcoded 'base' code
735 if (Helpers.isTrue(Helpers.isEqual(symbol, null)))
736 {
737 for (var i = 0; Helpers.isLessThan(i, Helpers.getArrayLength(codes)); i++)
738 {
739 Object currentCode = Helpers.GetValue(codes, i);
740 Object marketsArrayForCurrentCode = exchange.filterBy(currentTypeMarkets, "base", currentCode);
741 Object indexedMkts = exchange.indexBy(marketsArrayForCurrentCode, "symbol");
742 Object symbolsArrayForCurrentCode = Helpers.objectKeys(indexedMkts);
743 Object symbolsLength = Helpers.getArrayLength(symbolsArrayForCurrentCode);
744 if (Helpers.isTrue(symbolsLength))
745 {
746 symbol = this.getTestSymbol(exchange, spot, symbolsArrayForCurrentCode);
747 break;
748 }
749 }
750 }
751 // if there wasn't found any symbol with our hardcoded 'base' code, then just try to find symbols that are 'active'
752 if (Helpers.isTrue(Helpers.isEqual(symbol, null)))
753 {
754 Object activeMarkets = exchange.filterBy(currentTypeMarkets, "active", true);
755 Object activeSymbols = new java.util.ArrayList<Object>(java.util.Arrays.asList());
756 for (var i = 0; Helpers.isLessThan(i, Helpers.getArrayLength(activeMarkets)); i++)
757 {
758 ((java.util.List<Object>)activeSymbols).add(Helpers.GetValue(Helpers.GetValue(activeMarkets, i), "symbol"));
759 }
760 symbol = this.getTestSymbol(exchange, spot, activeSymbols);
761 }
762 if (Helpers.isTrue(Helpers.isEqual(symbol, null)))
763 {
764 Object values = Helpers.objectValues(currentTypeMarkets);
765 Object valuesLength = Helpers.getArrayLength(values);
766 if (Helpers.isTrue(Helpers.isGreaterThan(valuesLength, 0)))
767 {
768 Object first = Helpers.GetValue(values, 0);
769 if (Helpers.isTrue(first))
770 {
771 symbol = Helpers.GetValue(first, "symbol");
772 }
773 }
774 }
775 return symbol;
776 }
777
778 public java.util.concurrent.CompletableFuture<Object> testExchange(Exchange exchange, Object... optionalArgs)
779 {

Callers 1

testExchangeMethod · 0.95

Calls 14

getArgMethod · 0.95
isTrueMethod · 0.95
getTestSymbolMethod · 0.95
isEqualMethod · 0.95
isLessThanMethod · 0.95
getArrayLengthMethod · 0.95
GetValueMethod · 0.95
objectKeysMethod · 0.95
objectValuesMethod · 0.95
isGreaterThanMethod · 0.95
filterByMethod · 0.45

Tested by

no test coverage detected