(Exchange exchange, Object... optionalArgs)
| 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 | { |
no test coverage detected