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

Method featuresGenerator

java/lib/src/main/java/io/github/ccxt/Exchange.java:5718–5767  ·  view source on GitHub ↗
()

Source from the content-addressed store, hash-verified

5716 }
5717
5718 public void featuresGenerator()
5719 {
5720 //
5721 // in the exchange-specific features can be something like this, where we support 'string' aliases too:
5722 //
5723 // {
5724 // 'my' : {
5725 // 'createOrder' : {...},
5726 // },
5727 // 'swap': {
5728 // 'linear': {
5729 // 'extends': my',
5730 // },
5731 // },
5732 // }
5733 //
5734 if (Helpers.isTrue(Helpers.isEqual(this.features, null)))
5735 {
5736 return;
5737 }
5738 // reconstruct
5739 Object initialFeatures = this.features;
5740 this.features = new java.util.HashMap<String, Object>() {{}};
5741 Object unifiedMarketTypes = new java.util.ArrayList<Object>(java.util.Arrays.asList("spot", "swap", "future", "option"));
5742 Object subTypes = new java.util.ArrayList<Object>(java.util.Arrays.asList("linear", "inverse"));
5743 // atm only support basic methods, eg: 'createOrder', 'fetchOrder', 'fetchOrders', 'fetchMyTrades'
5744 for (var i = 0; Helpers.isLessThan(i, Helpers.getArrayLength(unifiedMarketTypes)); i++)
5745 {
5746 Object marketType = Helpers.GetValue(unifiedMarketTypes, i);
5747 // if marketType is not filled for this exchange, don't add that in `features`
5748 if (!Helpers.isTrue((Helpers.inOp(initialFeatures, marketType))))
5749 {
5750 Helpers.addElementToObject(this.features, marketType, null);
5751 } else
5752 {
5753 if (Helpers.isTrue(Helpers.isEqual(marketType, "spot")))
5754 {
5755 Helpers.addElementToObject(this.features, marketType, this.featuresMapper(initialFeatures, marketType));
5756 } else
5757 {
5758 Helpers.addElementToObject(this.features, marketType, new java.util.HashMap<String, Object>() {{}});
5759 for (var j = 0; Helpers.isLessThan(j, Helpers.getArrayLength(subTypes)); j++)
5760 {
5761 Object subType = Helpers.GetValue(subTypes, j);
5762 Helpers.addElementToObject(Helpers.GetValue(this.features, marketType), subType, this.featuresMapper(initialFeatures, marketType, subType));
5763 }
5764 }
5765 }
5766 }
5767 }
5768
5769 public Object featuresMapper(Object initialFeatures, Object marketType, Object... optionalArgs)
5770 {

Callers 1

afterConstructMethod · 0.95

Calls 8

isTrueMethod · 0.95
isEqualMethod · 0.95
isLessThanMethod · 0.95
getArrayLengthMethod · 0.95
GetValueMethod · 0.95
inOpMethod · 0.95
addElementToObjectMethod · 0.95
featuresMapperMethod · 0.95

Tested by

no test coverage detected