| 9109 | } |
| 9110 | |
| 9111 | public Object safeMarket(Object... optionalArgs) |
| 9112 | { |
| 9113 | Object marketId = Helpers.getArg(optionalArgs, 0, null); |
| 9114 | Object market = Helpers.getArg(optionalArgs, 1, null); |
| 9115 | Object delimiter = Helpers.getArg(optionalArgs, 2, null); |
| 9116 | Object marketType = Helpers.getArg(optionalArgs, 3, null); |
| 9117 | if (Helpers.isTrue(!Helpers.isEqual(marketId, null))) |
| 9118 | { |
| 9119 | if (Helpers.isTrue(Helpers.isTrue((!Helpers.isEqual(this.markets_by_id, null))) && Helpers.isTrue((Helpers.inOp(this.markets_by_id, marketId))))) |
| 9120 | { |
| 9121 | Object markets = Helpers.GetValue(this.markets_by_id, marketId); |
| 9122 | Object numMarkets = Helpers.getArrayLength(markets); |
| 9123 | if (Helpers.isTrue(Helpers.isEqual(numMarkets, 1))) |
| 9124 | { |
| 9125 | return Helpers.GetValue(markets, 0); |
| 9126 | } else |
| 9127 | { |
| 9128 | if (Helpers.isTrue(Helpers.isEqual(marketType, null))) |
| 9129 | { |
| 9130 | if (Helpers.isTrue(Helpers.isEqual(market, null))) |
| 9131 | { |
| 9132 | throw new ArgumentsRequired((String)Helpers.add(Helpers.add(Helpers.add(this.id, " safeMarket() requires a fourth argument for "), marketId), " to disambiguate between different markets with the same market id")) ; |
| 9133 | } else |
| 9134 | { |
| 9135 | marketType = Helpers.GetValue(market, "type"); |
| 9136 | } |
| 9137 | } |
| 9138 | for (var i = 0; Helpers.isLessThan(i, Helpers.getArrayLength(markets)); i++) |
| 9139 | { |
| 9140 | Object currentMarket = Helpers.GetValue(markets, i); |
| 9141 | if (Helpers.isTrue(Helpers.GetValue(currentMarket, marketType))) |
| 9142 | { |
| 9143 | return currentMarket; |
| 9144 | } |
| 9145 | } |
| 9146 | } |
| 9147 | } else if (Helpers.isTrue(Helpers.isTrue(!Helpers.isEqual(delimiter, null)) && Helpers.isTrue(!Helpers.isEqual(delimiter, "")))) |
| 9148 | { |
| 9149 | Object parts = Helpers.split(marketId, delimiter); |
| 9150 | Object partsLength = Helpers.getArrayLength(parts); |
| 9151 | final Object finalMarketId = marketId; |
| 9152 | Object result = this.safeMarketStructure(new java.util.HashMap<String, Object>() {{ |
| 9153 | put( "symbol", finalMarketId ); |
| 9154 | put( "marketId", finalMarketId ); |
| 9155 | }}); |
| 9156 | if (Helpers.isTrue(Helpers.isEqual(partsLength, 2))) |
| 9157 | { |
| 9158 | Helpers.addElementToObject(result, "baseId", this.safeString(parts, 0)); |
| 9159 | Helpers.addElementToObject(result, "quoteId", this.safeString(parts, 1)); |
| 9160 | Helpers.addElementToObject(result, "base", this.safeCurrencyCode(Helpers.GetValue(result, "baseId"))); |
| 9161 | Helpers.addElementToObject(result, "quote", this.safeCurrencyCode(Helpers.GetValue(result, "quoteId"))); |
| 9162 | Helpers.addElementToObject(result, "symbol", Helpers.add(Helpers.add(Helpers.GetValue(result, "base"), "/"), Helpers.GetValue(result, "quote"))); |
| 9163 | } |
| 9164 | return result; |
| 9165 | } |
| 9166 | } |
| 9167 | if (Helpers.isTrue(!Helpers.isEqual(market, null))) |
| 9168 | { |