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

Method setMarkets

java/lib/src/main/java/io/github/ccxt/Exchange.java:6265–6379  ·  view source on GitHub ↗
(Object markets, Object... optionalArgs)

Source from the content-addressed store, hash-verified

6263 }
6264
6265 public Object setMarkets(Object markets, Object... optionalArgs)
6266 {
6267 Object currencies = Helpers.getArg(optionalArgs, 0, null);
6268 Object values = new java.util.ArrayList<Object>(java.util.Arrays.asList());
6269 this.markets_by_id = this.createSafeDictionary();
6270 // handle marketId conflicts
6271 // we insert spot markets first
6272 Object marketValues = this.sortBy(this.toArray(markets), "spot", true, true);
6273 for (var i = 0; Helpers.isLessThan(i, Helpers.getArrayLength(marketValues)); i++)
6274 {
6275 Object value = Helpers.GetValue(marketValues, i);
6276 if (Helpers.isTrue(Helpers.inOp(this.markets_by_id, Helpers.GetValue(value, "id"))))
6277 {
6278 Object marketsByIdArray = ((Object)Helpers.GetValue(this.markets_by_id, Helpers.GetValue(value, "id")));
6279 ((java.util.List<Object>)marketsByIdArray).add(value);
6280 Helpers.addElementToObject(this.markets_by_id, Helpers.GetValue(value, "id"), marketsByIdArray);
6281 } else
6282 {
6283 Helpers.addElementToObject(this.markets_by_id, Helpers.GetValue(value, "id"), ((Object)new java.util.ArrayList<Object>(java.util.Arrays.asList(value))));
6284 }
6285 Object market = this.deepExtend(this.safeMarketStructure(), new java.util.HashMap<String, Object>() {{
6286 put( "precision", Exchange.this.precision );
6287 put( "limits", Exchange.this.limits );
6288 }}, Helpers.GetValue(this.fees, "trading"), value);
6289 if (Helpers.isTrue(Helpers.GetValue(market, "linear")))
6290 {
6291 Helpers.addElementToObject(market, "subType", "linear");
6292 } else if (Helpers.isTrue(Helpers.GetValue(market, "inverse")))
6293 {
6294 Helpers.addElementToObject(market, "subType", "inverse");
6295 } else
6296 {
6297 Helpers.addElementToObject(market, "subType", null);
6298 }
6299 ((java.util.List<Object>)values).add(market);
6300 }
6301 this.markets = this.mapToSafeMap(((Object)this.indexBy(values, "symbol")));
6302 Object marketsSortedBySymbol = this.keysort(this.markets);
6303 Object marketsSortedById = this.keysort(this.markets_by_id);
6304 this.symbols = Helpers.objectKeys(marketsSortedBySymbol);
6305 this.ids = Helpers.objectKeys(marketsSortedById);
6306 Object numCurrencies = 0;
6307 if (Helpers.isTrue(!Helpers.isEqual(currencies, null)))
6308 {
6309 Object keys = Helpers.objectKeys(currencies);
6310 numCurrencies = Helpers.getArrayLength(keys);
6311 }
6312 if (Helpers.isTrue(Helpers.isGreaterThan(numCurrencies, 0)))
6313 {
6314 // currencies is always undefined when called in constructor but not when called from loadMarkets
6315 this.currencies = this.mapToSafeMap(this.deepExtend(this.currencies, currencies));
6316 } else
6317 {
6318 Object baseCurrencies = new java.util.ArrayList<Object>(java.util.Arrays.asList());
6319 Object quoteCurrencies = new java.util.ArrayList<Object>(java.util.Arrays.asList());
6320 for (var i = 0; Helpers.isLessThan(i, Helpers.getArrayLength(values)); i++)
6321 {
6322 Object market = Helpers.GetValue(values, i);

Callers 2

loadMarketsHelperMethod · 0.95
afterConstructMethod · 0.95

Calls 15

getArgMethod · 0.95
createSafeDictionaryMethod · 0.95
sortByMethod · 0.95
toArrayMethod · 0.95
isLessThanMethod · 0.95
getArrayLengthMethod · 0.95
GetValueMethod · 0.95
isTrueMethod · 0.95
inOpMethod · 0.95
addElementToObjectMethod · 0.95
deepExtendMethod · 0.95
safeMarketStructureMethod · 0.95

Tested by

no test coverage detected