ccxt 4.1.17 → 4.1.18

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -8051,6 +8051,87 @@ class Exchange {
8051
8051
  },
8052
8052
  }, currency);
8053
8053
  }
8054
+ safeMarketStructure(market = undefined) {
8055
+ const cleanStructure = {
8056
+ 'id': undefined,
8057
+ 'lowercaseId': undefined,
8058
+ 'symbol': undefined,
8059
+ 'base': undefined,
8060
+ 'quote': undefined,
8061
+ 'settle': undefined,
8062
+ 'baseId': undefined,
8063
+ 'quoteId': undefined,
8064
+ 'settleId': undefined,
8065
+ 'type': undefined,
8066
+ 'spot': undefined,
8067
+ 'margin': undefined,
8068
+ 'swap': undefined,
8069
+ 'future': undefined,
8070
+ 'option': undefined,
8071
+ 'index': undefined,
8072
+ 'active': undefined,
8073
+ 'contract': undefined,
8074
+ 'linear': undefined,
8075
+ 'inverse': undefined,
8076
+ 'taker': undefined,
8077
+ 'maker': undefined,
8078
+ 'contractSize': undefined,
8079
+ 'expiry': undefined,
8080
+ 'expiryDatetime': undefined,
8081
+ 'strike': undefined,
8082
+ 'optionType': undefined,
8083
+ 'precision': {
8084
+ 'amount': undefined,
8085
+ 'price': undefined,
8086
+ 'cost': undefined,
8087
+ 'base': undefined,
8088
+ 'quote': undefined,
8089
+ },
8090
+ 'limits': {
8091
+ 'leverage': {
8092
+ 'min': undefined,
8093
+ 'max': undefined,
8094
+ },
8095
+ 'amount': {
8096
+ 'min': undefined,
8097
+ 'max': undefined,
8098
+ },
8099
+ 'price': {
8100
+ 'min': undefined,
8101
+ 'max': undefined,
8102
+ },
8103
+ 'cost': {
8104
+ 'min': undefined,
8105
+ 'max': undefined,
8106
+ },
8107
+ },
8108
+ 'created': undefined,
8109
+ 'info': undefined,
8110
+ };
8111
+ if (market !== undefined) {
8112
+ const result = this.extend(cleanStructure, market);
8113
+ // set undefined swap/future/etc
8114
+ if (result['spot']) {
8115
+ if (result['contract'] === undefined) {
8116
+ result['contract'] = false;
8117
+ }
8118
+ if (result['swap'] === undefined) {
8119
+ result['swap'] = false;
8120
+ }
8121
+ if (result['future'] === undefined) {
8122
+ result['future'] = false;
8123
+ }
8124
+ if (result['option'] === undefined) {
8125
+ result['option'] = false;
8126
+ }
8127
+ if (result['index'] === undefined) {
8128
+ result['index'] = false;
8129
+ }
8130
+ }
8131
+ return result;
8132
+ }
8133
+ return cleanStructure;
8134
+ }
8054
8135
  setMarkets(markets, currencies = undefined) {
8055
8136
  const values = [];
8056
8137
  this.markets_by_id = {};
@@ -12910,7 +12991,7 @@ const safeInteger = (o, k, $default) => {
12910
12991
  return isNumber(n) ? n : $default;
12911
12992
  };
12912
12993
  const safeIntegerProduct = (o, k, $factor, $default) => {
12913
- const n = asInteger(prop(o, k));
12994
+ const n = asFloat(prop(o, k));
12914
12995
  return isNumber(n) ? parseInt(n * $factor) : $default;
12915
12996
  };
12916
12997
  const safeTimestamp = (o, k, $default) => {
@@ -28941,10 +29022,10 @@ class bit2c extends _abstract_bit2c_js__WEBPACK_IMPORTED_MODULE_0__/* ["default"
28941
29022
  },
28942
29023
  },
28943
29024
  'markets': {
28944
- 'BTC/NIS': { 'id': 'BtcNis', 'symbol': 'BTC/NIS', 'base': 'BTC', 'quote': 'NIS', 'baseId': 'Btc', 'quoteId': 'Nis', 'type': 'spot', 'spot': true },
28945
- 'ETH/NIS': { 'id': 'EthNis', 'symbol': 'ETH/NIS', 'base': 'ETH', 'quote': 'NIS', 'baseId': 'Eth', 'quoteId': 'Nis', 'type': 'spot', 'spot': true },
28946
- 'LTC/NIS': { 'id': 'LtcNis', 'symbol': 'LTC/NIS', 'base': 'LTC', 'quote': 'NIS', 'baseId': 'Ltc', 'quoteId': 'Nis', 'type': 'spot', 'spot': true },
28947
- 'USDC/NIS': { 'id': 'UsdcNis', 'symbol': 'USDC/NIS', 'base': 'USDC', 'quote': 'NIS', 'baseId': 'Usdc', 'quoteId': 'Nis', 'type': 'spot', 'spot': true },
29025
+ 'BTC/NIS': this.safeMarketStructure({ 'id': 'BtcNis', 'symbol': 'BTC/NIS', 'base': 'BTC', 'quote': 'NIS', 'baseId': 'Btc', 'quoteId': 'Nis', 'type': 'spot', 'spot': true }),
29026
+ 'ETH/NIS': this.safeMarketStructure({ 'id': 'EthNis', 'symbol': 'ETH/NIS', 'base': 'ETH', 'quote': 'NIS', 'baseId': 'Eth', 'quoteId': 'Nis', 'type': 'spot', 'spot': true }),
29027
+ 'LTC/NIS': this.safeMarketStructure({ 'id': 'LtcNis', 'symbol': 'LTC/NIS', 'base': 'LTC', 'quote': 'NIS', 'baseId': 'Ltc', 'quoteId': 'Nis', 'type': 'spot', 'spot': true }),
29028
+ 'USDC/NIS': this.safeMarketStructure({ 'id': 'UsdcNis', 'symbol': 'USDC/NIS', 'base': 'USDC', 'quote': 'NIS', 'baseId': 'Usdc', 'quoteId': 'Nis', 'type': 'spot', 'spot': true }),
28948
29029
  },
28949
29030
  'fees': {
28950
29031
  'trading': {
@@ -41515,10 +41596,26 @@ class bitget extends _abstract_bitget_js__WEBPACK_IMPORTED_MODULE_0__/* ["defaul
41515
41596
  // "cTime": "1652745674488"
41516
41597
  // }
41517
41598
  //
41599
+ // swap, isolated and cross margin: cancelOrder
41600
+ //
41601
+ // {
41602
+ // "orderId": "1098749943604719616",
41603
+ // "clientOid": "0ec8d262b3d2436aa651095a745b9b8d"
41604
+ // }
41605
+ //
41606
+ // spot: cancelOrder
41607
+ //
41608
+ // {
41609
+ // "code": "00000",
41610
+ // "msg": "success",
41611
+ // "requestTime": 1697689270716,
41612
+ // "data": "1098753830701928448"
41613
+ // }
41614
+ //
41518
41615
  const marketId = this.safeString(order, 'symbol');
41519
41616
  market = this.safeMarket(marketId, market);
41520
41617
  const symbol = market['symbol'];
41521
- const id = this.safeString(order, 'orderId');
41618
+ const id = this.safeString2(order, 'orderId', 'data');
41522
41619
  const price = this.safeString2(order, 'price', 'executePrice');
41523
41620
  const amount = this.safeString2(order, 'quantity', 'size');
41524
41621
  const filled = this.safeString2(order, 'fillQuantity', 'filledQty');
@@ -41937,44 +42034,130 @@ class bitget extends _abstract_bitget_js__WEBPACK_IMPORTED_MODULE_0__/* ["defaul
41937
42034
  * @see https://bitgetlimited.github.io/apidoc/en/spot/#cancel-plan-order
41938
42035
  * @see https://bitgetlimited.github.io/apidoc/en/mix/#cancel-order
41939
42036
  * @see https://bitgetlimited.github.io/apidoc/en/mix/#cancel-plan-order-tpsl
42037
+ * @see https://bitgetlimited.github.io/apidoc/en/margin/#isolated-cancel-order
42038
+ * @see https://bitgetlimited.github.io/apidoc/en/margin/#cross-cancel-order
41940
42039
  * @param {string} id order id
41941
42040
  * @param {string} symbol unified symbol of the market the order was made in
41942
42041
  * @param {object} [params] extra parameters specific to the bitget api endpoint
42042
+ * @param {string} [params.marginMode] 'isolated' or 'cross' for spot margin trading
41943
42043
  * @returns {object} An [order structure]{@link https://github.com/ccxt/ccxt/wiki/Manual#order-structure}
41944
42044
  */
41945
42045
  this.checkRequiredSymbol('cancelOrder', symbol);
41946
42046
  await this.loadMarkets();
41947
42047
  const market = this.market(symbol);
41948
- const [marketType, query] = this.handleMarketTypeAndParams('cancelOrder', market, params);
41949
- let method = this.getSupportedMapping(marketType, {
41950
- 'spot': 'privateSpotPostTradeCancelOrder',
41951
- 'swap': 'privateMixPostOrderCancelOrder',
41952
- 'future': 'privateMixPostOrderCancelOrder',
41953
- });
42048
+ let marketType = undefined;
42049
+ let marginMode = undefined;
42050
+ let response = undefined;
42051
+ [marketType, params] = this.handleMarketTypeAndParams('cancelOrder', market, params);
42052
+ [marginMode, params] = this.handleMarginModeAndParams('cancelOrder', params);
42053
+ const symbolRequest = (marginMode !== undefined) ? (market['info']['symbolName']) : (market['id']);
41954
42054
  const request = {
41955
- 'symbol': market['id'],
42055
+ 'symbol': symbolRequest,
41956
42056
  'orderId': id,
41957
42057
  };
41958
- const stop = this.safeValue(query, 'stop');
41959
- if (stop) {
41960
- if (marketType === 'spot') {
41961
- method = 'privateSpotPostPlanCancelPlan';
41962
- }
41963
- else {
41964
- const planType = this.safeString(params, 'planType');
42058
+ const stop = this.safeValue(params, 'stop');
42059
+ const planType = this.safeString(params, 'planType');
42060
+ params = this.omit(params, ['stop', 'planType']);
42061
+ if ((marketType === 'swap') || (marketType === 'future')) {
42062
+ request['marginCoin'] = market['settleId'];
42063
+ if (stop) {
41965
42064
  if (planType === undefined) {
41966
42065
  throw new _base_errors_js__WEBPACK_IMPORTED_MODULE_1__.ArgumentsRequired(this.id + ' cancelOrder() requires a planType parameter for stop orders, either normal_plan, profit_plan or loss_plan');
41967
42066
  }
41968
42067
  request['planType'] = planType;
41969
- method = 'privateMixPostPlanCancelPlan';
42068
+ response = await this.privateMixPostPlanCancelPlan(this.extend(request, params));
42069
+ }
42070
+ else {
42071
+ response = await this.privateMixPostOrderCancelOrder(this.extend(request, params));
41970
42072
  }
41971
42073
  }
41972
- if (marketType === 'swap') {
41973
- request['marginCoin'] = market['settleId'];
42074
+ else if (marketType === 'spot') {
42075
+ if (marginMode !== undefined) {
42076
+ if (marginMode === 'isolated') {
42077
+ response = await this.privateMarginPostIsolatedOrderCancelOrder(this.extend(request, params));
42078
+ }
42079
+ else if (marginMode === 'cross') {
42080
+ response = await this.privateMarginPostCrossOrderCancelOrder(this.extend(request, params));
42081
+ }
42082
+ }
42083
+ else {
42084
+ if (stop) {
42085
+ response = await this.privateSpotPostPlanCancelPlan(this.extend(request, params));
42086
+ }
42087
+ else {
42088
+ response = await this.privateSpotPostTradeCancelOrder(this.extend(request, params));
42089
+ }
42090
+ }
41974
42091
  }
41975
- const ommitted = this.omit(query, ['stop', 'planType']);
41976
- const response = await this[method](this.extend(request, ommitted));
41977
- return this.parseOrder(response, market);
42092
+ else {
42093
+ throw new _base_errors_js__WEBPACK_IMPORTED_MODULE_1__.NotSupported(this.id + ' cancelOrder() does not support ' + marketType + ' orders');
42094
+ }
42095
+ //
42096
+ // spot
42097
+ //
42098
+ // {
42099
+ // "code": "00000",
42100
+ // "msg": "success",
42101
+ // "requestTime": 1697689270716,
42102
+ // "data": "1098753830701928448"
42103
+ // }
42104
+ //
42105
+ // isolated margin
42106
+ //
42107
+ // {
42108
+ // "code": "00000",
42109
+ // "msg": "success",
42110
+ // "requestTime": 1697688367859,
42111
+ // "data": {
42112
+ // "resultList": [
42113
+ // {
42114
+ // "orderId": "1098749943604719616",
42115
+ // "clientOid": "0ec8d262b3d2436aa651095a745b9b8d"
42116
+ // }
42117
+ // ],
42118
+ // "failure": []
42119
+ // }
42120
+ // }
42121
+ //
42122
+ // cross margin
42123
+ //
42124
+ // {
42125
+ // "code": "00000",
42126
+ // "msg": "success",
42127
+ // "requestTime": :1697689028972,
42128
+ // "data": {
42129
+ // "resultList": [
42130
+ // {
42131
+ // "orderId": "1098751730051067906",
42132
+ // "clientOid": "ecb50ca373374c5bb814bc724e36b0eb"
42133
+ // }
42134
+ // ],
42135
+ // "failure": []
42136
+ // }
42137
+ // }
42138
+ //
42139
+ // swap
42140
+ //
42141
+ // {
42142
+ // "code": "00000",
42143
+ // "msg": "success",
42144
+ // "requestTime": 1697690413177,
42145
+ // "data": {
42146
+ // "orderId": "1098758604547850241",
42147
+ // "clientOid": "1098758604585598977"
42148
+ // }
42149
+ // }
42150
+ //
42151
+ let order = response;
42152
+ if ((marketType === 'swap') || (marketType === 'future')) {
42153
+ order = this.safeValue(response, 'data', {});
42154
+ }
42155
+ else if (marginMode !== undefined) {
42156
+ const data = this.safeValue(response, 'data', {});
42157
+ const resultList = this.safeValue(data, 'resultList', []);
42158
+ order = resultList[0];
42159
+ }
42160
+ return this.parseOrder(order, market);
41978
42161
  }
41979
42162
  async cancelOrders(ids, symbol = undefined, params = {}) {
41980
42163
  /**
@@ -41983,30 +42166,44 @@ class bitget extends _abstract_bitget_js__WEBPACK_IMPORTED_MODULE_0__/* ["defaul
41983
42166
  * @description cancel multiple orders
41984
42167
  * @see https://bitgetlimited.github.io/apidoc/en/spot/#cancel-order-in-batch-v2-single-instruments
41985
42168
  * @see https://bitgetlimited.github.io/apidoc/en/mix/#batch-cancel-order
42169
+ * @see https://bitgetlimited.github.io/apidoc/en/margin/#isolated-batch-cancel-orders
42170
+ * @see https://bitgetlimited.github.io/apidoc/en/margin/#cross-batch-cancel-order
41986
42171
  * @param {string[]} ids order ids
41987
42172
  * @param {string} symbol unified market symbol, default is undefined
41988
42173
  * @param {object} [params] extra parameters specific to the bitget api endpoint
42174
+ * @param {string} [params.marginMode] 'isolated' or 'cross' for spot margin trading
41989
42175
  * @returns {object} an list of [order structures]{@link https://github.com/ccxt/ccxt/wiki/Manual#order-structure}
41990
42176
  */
41991
42177
  this.checkRequiredSymbol('cancelOrders', symbol);
41992
42178
  await this.loadMarkets();
41993
42179
  const market = this.market(symbol);
41994
42180
  let type = undefined;
42181
+ let marginMode = undefined;
42182
+ [marginMode, params] = this.handleMarginModeAndParams('cancelOrders', params);
41995
42183
  [type, params] = this.handleMarketTypeAndParams('cancelOrders', market, params);
41996
42184
  const request = {};
41997
- let method = undefined;
42185
+ let response = undefined;
41998
42186
  if (type === 'spot') {
41999
- method = 'privateSpotPostTradeCancelBatchOrdersV2';
42000
- request['symbol'] = market['id'];
42187
+ request['symbol'] = market['info']['symbolName']; // regular id like LTCUSDT_SPBL does not work here
42001
42188
  request['orderIds'] = ids;
42189
+ if (marginMode !== undefined) {
42190
+ if (marginMode === 'cross') {
42191
+ response = await this.privateMarginPostCrossOrderBatchCancelOrder(this.extend(request, params));
42192
+ }
42193
+ else {
42194
+ response = await this.privateMarginPostIsolatedOrderBatchCancelOrder(this.extend(request, params));
42195
+ }
42196
+ }
42197
+ else {
42198
+ response = await this.privateSpotPostTradeCancelBatchOrdersV2(this.extend(request, params));
42199
+ }
42002
42200
  }
42003
42201
  else {
42004
- method = 'privateMixPostOrderCancelBatchOrders';
42005
42202
  request['symbol'] = market['id'];
42006
42203
  request['marginCoin'] = market['quote'];
42007
42204
  request['orderIds'] = ids;
42205
+ response = await this.privateMixPostOrderCancelBatchOrders(this.extend(request, params));
42008
42206
  }
42009
- const response = await this[method](this.extend(request, params));
42010
42207
  //
42011
42208
  // spot
42012
42209
  //
@@ -42052,8 +42249,11 @@ class bitget extends _abstract_bitget_js__WEBPACK_IMPORTED_MODULE_0__/* ["defaul
42052
42249
  * @description cancel all open orders
42053
42250
  * @see https://bitgetlimited.github.io/apidoc/en/mix/#cancel-all-order
42054
42251
  * @see https://bitgetlimited.github.io/apidoc/en/mix/#cancel-all-trigger-order-tpsl
42252
+ * @see https://bitgetlimited.github.io/apidoc/en/margin/#isolated-batch-cancel-orders
42253
+ * @see https://bitgetlimited.github.io/apidoc/en/margin/#cross-batch-cancel-order
42055
42254
  * @param {string} symbol unified market symbol
42056
42255
  * @param {object} [params] extra parameters specific to the bitget api endpoint
42256
+ * @param {string} [params.marginMode] 'isolated' or 'cross' for spot margin trading
42057
42257
  * @returns {object[]} a list of [order structures]{@link https://github.com/ccxt/ccxt/wiki/Manual#order-structure}
42058
42258
  */
42059
42259
  const sandboxMode = this.safeValue(this.options, 'sandboxMode', false);
@@ -42070,8 +42270,22 @@ class bitget extends _abstract_bitget_js__WEBPACK_IMPORTED_MODULE_0__/* ["defaul
42070
42270
  }
42071
42271
  let marketType = undefined;
42072
42272
  [marketType, params] = this.handleMarketTypeAndParams('cancelAllOrders', market, params);
42273
+ let marginMode = undefined;
42274
+ [marginMode, params] = this.handleMarginModeAndParams('cancelAllOrders', params);
42073
42275
  if (marketType === 'spot') {
42074
- throw new _base_errors_js__WEBPACK_IMPORTED_MODULE_1__.NotSupported(this.id + ' cancelAllOrders () does not support spot markets');
42276
+ if (marginMode === undefined) {
42277
+ throw new _base_errors_js__WEBPACK_IMPORTED_MODULE_1__.NotSupported(this.id + ' cancelAllOrders () does not support spot markets, only spot-margin');
42278
+ }
42279
+ this.checkRequiredSymbol('cancelAllOrders', symbol);
42280
+ const spotMarginRequest = {
42281
+ 'symbol': market['info']['symbolName'], // regular id like LTCUSDT_SPBL does not work here
42282
+ };
42283
+ if (marginMode === 'cross') {
42284
+ return await this.privateMarginPostCrossOrderBatchCancelOrder(this.extend(spotMarginRequest, params));
42285
+ }
42286
+ else {
42287
+ return await this.privateMarginPostIsolatedOrderBatchCancelOrder(this.extend(spotMarginRequest, params));
42288
+ }
42075
42289
  }
42076
42290
  const request = {
42077
42291
  'productType': productType,
@@ -62066,18 +62280,18 @@ class bitstamp1 extends _abstract_bitstamp1_js__WEBPACK_IMPORTED_MODULE_0__/* ["
62066
62280
  },
62067
62281
  'precisionMode': _base_functions_number_js__WEBPACK_IMPORTED_MODULE_1__/* .TICK_SIZE */ .sh,
62068
62282
  'markets': {
62069
- 'BTC/USD': { 'id': 'btcusd', 'symbol': 'BTC/USD', 'base': 'BTC', 'quote': 'USD', 'baseId': 'btc', 'quoteId': 'usd', 'maker': 0.005, 'taker': 0.005, 'type': 'spot', 'spot': true },
62070
- 'BTC/EUR': { 'id': 'btceur', 'symbol': 'BTC/EUR', 'base': 'BTC', 'quote': 'EUR', 'baseId': 'btc', 'quoteId': 'eur', 'maker': 0.005, 'taker': 0.005, 'type': 'spot', 'spot': true },
62071
- 'EUR/USD': { 'id': 'eurusd', 'symbol': 'EUR/USD', 'base': 'EUR', 'quote': 'USD', 'baseId': 'eur', 'quoteId': 'usd', 'maker': 0.005, 'taker': 0.005, 'type': 'spot', 'spot': true },
62072
- 'XRP/USD': { 'id': 'xrpusd', 'symbol': 'XRP/USD', 'base': 'XRP', 'quote': 'USD', 'baseId': 'xrp', 'quoteId': 'usd', 'maker': 0.005, 'taker': 0.005, 'type': 'spot', 'spot': true },
62073
- 'XRP/EUR': { 'id': 'xrpeur', 'symbol': 'XRP/EUR', 'base': 'XRP', 'quote': 'EUR', 'baseId': 'xrp', 'quoteId': 'eur', 'maker': 0.005, 'taker': 0.005, 'type': 'spot', 'spot': true },
62074
- 'XRP/BTC': { 'id': 'xrpbtc', 'symbol': 'XRP/BTC', 'base': 'XRP', 'quote': 'BTC', 'baseId': 'xrp', 'quoteId': 'btc', 'maker': 0.005, 'taker': 0.005, 'type': 'spot', 'spot': true },
62075
- 'LTC/USD': { 'id': 'ltcusd', 'symbol': 'LTC/USD', 'base': 'LTC', 'quote': 'USD', 'baseId': 'ltc', 'quoteId': 'usd', 'maker': 0.005, 'taker': 0.005, 'type': 'spot', 'spot': true },
62076
- 'LTC/EUR': { 'id': 'ltceur', 'symbol': 'LTC/EUR', 'base': 'LTC', 'quote': 'EUR', 'baseId': 'ltc', 'quoteId': 'eur', 'maker': 0.005, 'taker': 0.005, 'type': 'spot', 'spot': true },
62077
- 'LTC/BTC': { 'id': 'ltcbtc', 'symbol': 'LTC/BTC', 'base': 'LTC', 'quote': 'BTC', 'baseId': 'ltc', 'quoteId': 'btc', 'maker': 0.005, 'taker': 0.005, 'type': 'spot', 'spot': true },
62078
- 'ETH/USD': { 'id': 'ethusd', 'symbol': 'ETH/USD', 'base': 'ETH', 'quote': 'USD', 'baseId': 'eth', 'quoteId': 'usd', 'maker': 0.005, 'taker': 0.005, 'type': 'spot', 'spot': true },
62079
- 'ETH/EUR': { 'id': 'etheur', 'symbol': 'ETH/EUR', 'base': 'ETH', 'quote': 'EUR', 'baseId': 'eth', 'quoteId': 'eur', 'maker': 0.005, 'taker': 0.005, 'type': 'spot', 'spot': true },
62080
- 'ETH/BTC': { 'id': 'ethbtc', 'symbol': 'ETH/BTC', 'base': 'ETH', 'quote': 'BTC', 'baseId': 'eth', 'quoteId': 'btc', 'maker': 0.005, 'taker': 0.005, 'type': 'spot', 'spot': true },
62283
+ 'BTC/USD': this.safeMarketStructure({ 'id': 'btcusd', 'symbol': 'BTC/USD', 'base': 'BTC', 'quote': 'USD', 'baseId': 'btc', 'quoteId': 'usd', 'maker': 0.005, 'taker': 0.005, 'type': 'spot', 'spot': true }),
62284
+ 'BTC/EUR': this.safeMarketStructure({ 'id': 'btceur', 'symbol': 'BTC/EUR', 'base': 'BTC', 'quote': 'EUR', 'baseId': 'btc', 'quoteId': 'eur', 'maker': 0.005, 'taker': 0.005, 'type': 'spot', 'spot': true }),
62285
+ 'EUR/USD': this.safeMarketStructure({ 'id': 'eurusd', 'symbol': 'EUR/USD', 'base': 'EUR', 'quote': 'USD', 'baseId': 'eur', 'quoteId': 'usd', 'maker': 0.005, 'taker': 0.005, 'type': 'spot', 'spot': true }),
62286
+ 'XRP/USD': this.safeMarketStructure({ 'id': 'xrpusd', 'symbol': 'XRP/USD', 'base': 'XRP', 'quote': 'USD', 'baseId': 'xrp', 'quoteId': 'usd', 'maker': 0.005, 'taker': 0.005, 'type': 'spot', 'spot': true }),
62287
+ 'XRP/EUR': this.safeMarketStructure({ 'id': 'xrpeur', 'symbol': 'XRP/EUR', 'base': 'XRP', 'quote': 'EUR', 'baseId': 'xrp', 'quoteId': 'eur', 'maker': 0.005, 'taker': 0.005, 'type': 'spot', 'spot': true }),
62288
+ 'XRP/BTC': this.safeMarketStructure({ 'id': 'xrpbtc', 'symbol': 'XRP/BTC', 'base': 'XRP', 'quote': 'BTC', 'baseId': 'xrp', 'quoteId': 'btc', 'maker': 0.005, 'taker': 0.005, 'type': 'spot', 'spot': true }),
62289
+ 'LTC/USD': this.safeMarketStructure({ 'id': 'ltcusd', 'symbol': 'LTC/USD', 'base': 'LTC', 'quote': 'USD', 'baseId': 'ltc', 'quoteId': 'usd', 'maker': 0.005, 'taker': 0.005, 'type': 'spot', 'spot': true }),
62290
+ 'LTC/EUR': this.safeMarketStructure({ 'id': 'ltceur', 'symbol': 'LTC/EUR', 'base': 'LTC', 'quote': 'EUR', 'baseId': 'ltc', 'quoteId': 'eur', 'maker': 0.005, 'taker': 0.005, 'type': 'spot', 'spot': true }),
62291
+ 'LTC/BTC': this.safeMarketStructure({ 'id': 'ltcbtc', 'symbol': 'LTC/BTC', 'base': 'LTC', 'quote': 'BTC', 'baseId': 'ltc', 'quoteId': 'btc', 'maker': 0.005, 'taker': 0.005, 'type': 'spot', 'spot': true }),
62292
+ 'ETH/USD': this.safeMarketStructure({ 'id': 'ethusd', 'symbol': 'ETH/USD', 'base': 'ETH', 'quote': 'USD', 'baseId': 'eth', 'quoteId': 'usd', 'maker': 0.005, 'taker': 0.005, 'type': 'spot', 'spot': true }),
62293
+ 'ETH/EUR': this.safeMarketStructure({ 'id': 'etheur', 'symbol': 'ETH/EUR', 'base': 'ETH', 'quote': 'EUR', 'baseId': 'eth', 'quoteId': 'eur', 'maker': 0.005, 'taker': 0.005, 'type': 'spot', 'spot': true }),
62294
+ 'ETH/BTC': this.safeMarketStructure({ 'id': 'ethbtc', 'symbol': 'ETH/BTC', 'base': 'ETH', 'quote': 'BTC', 'baseId': 'eth', 'quoteId': 'btc', 'maker': 0.005, 'taker': 0.005, 'type': 'spot', 'spot': true }),
62081
62295
  },
62082
62296
  });
62083
62297
  }
@@ -66708,7 +66922,7 @@ class bl3p extends _abstract_bl3p_js__WEBPACK_IMPORTED_MODULE_0__/* ["default"]
66708
66922
  },
66709
66923
  },
66710
66924
  'markets': {
66711
- 'BTC/EUR': { 'id': 'BTCEUR', 'symbol': 'BTC/EUR', 'base': 'BTC', 'quote': 'EUR', 'baseId': 'BTC', 'quoteId': 'EUR', 'maker': 0.0025, 'taker': 0.0025, 'type': 'spot', 'spot': true },
66925
+ 'BTC/EUR': this.safeMarketStructure({ 'id': 'BTCEUR', 'symbol': 'BTC/EUR', 'base': 'BTC', 'quote': 'EUR', 'baseId': 'BTC', 'quoteId': 'EUR', 'maker': 0.0025, 'taker': 0.0025, 'type': 'spot', 'spot': true }),
66712
66926
  },
66713
66927
  'precisionMode': _base_functions_number_js__WEBPACK_IMPORTED_MODULE_1__/* .TICK_SIZE */ .sh,
66714
66928
  });
@@ -69303,10 +69517,10 @@ class btcbox extends _abstract_btcbox_js__WEBPACK_IMPORTED_MODULE_0__/* ["defaul
69303
69517
  },
69304
69518
  },
69305
69519
  'markets': {
69306
- 'BTC/JPY': { 'id': 'btc', 'symbol': 'BTC/JPY', 'base': 'BTC', 'quote': 'JPY', 'baseId': 'btc', 'quoteId': 'jpy', 'taker': this.parseNumber('0.0005'), 'maker': this.parseNumber('0.0005'), 'type': 'spot', 'spot': true },
69307
- 'ETH/JPY': { 'id': 'eth', 'symbol': 'ETH/JPY', 'base': 'ETH', 'quote': 'JPY', 'baseId': 'eth', 'quoteId': 'jpy', 'taker': this.parseNumber('0.0010'), 'maker': this.parseNumber('0.0010'), 'type': 'spot', 'spot': true },
69308
- 'LTC/JPY': { 'id': 'ltc', 'symbol': 'LTC/JPY', 'base': 'LTC', 'quote': 'JPY', 'baseId': 'ltc', 'quoteId': 'jpy', 'taker': this.parseNumber('0.0010'), 'maker': this.parseNumber('0.0010'), 'type': 'spot', 'spot': true },
69309
- 'BCH/JPY': { 'id': 'bch', 'symbol': 'BCH/JPY', 'base': 'BCH', 'quote': 'JPY', 'baseId': 'bch', 'quoteId': 'jpy', 'taker': this.parseNumber('0.0010'), 'maker': this.parseNumber('0.0010'), 'type': 'spot', 'spot': true },
69520
+ 'BTC/JPY': this.safeMarketStructure({ 'id': 'btc', 'symbol': 'BTC/JPY', 'base': 'BTC', 'quote': 'JPY', 'baseId': 'btc', 'quoteId': 'jpy', 'taker': this.parseNumber('0.0005'), 'maker': this.parseNumber('0.0005'), 'type': 'spot', 'spot': true }),
69521
+ 'ETH/JPY': this.safeMarketStructure({ 'id': 'eth', 'symbol': 'ETH/JPY', 'base': 'ETH', 'quote': 'JPY', 'baseId': 'eth', 'quoteId': 'jpy', 'taker': this.parseNumber('0.0010'), 'maker': this.parseNumber('0.0010'), 'type': 'spot', 'spot': true }),
69522
+ 'LTC/JPY': this.safeMarketStructure({ 'id': 'ltc', 'symbol': 'LTC/JPY', 'base': 'LTC', 'quote': 'JPY', 'baseId': 'ltc', 'quoteId': 'jpy', 'taker': this.parseNumber('0.0010'), 'maker': this.parseNumber('0.0010'), 'type': 'spot', 'spot': true }),
69523
+ 'BCH/JPY': this.safeMarketStructure({ 'id': 'bch', 'symbol': 'BCH/JPY', 'base': 'BCH', 'quote': 'JPY', 'baseId': 'bch', 'quoteId': 'jpy', 'taker': this.parseNumber('0.0010'), 'maker': this.parseNumber('0.0010'), 'type': 'spot', 'spot': true }),
69310
69524
  },
69311
69525
  'precisionMode': _base_functions_number_js__WEBPACK_IMPORTED_MODULE_1__/* .TICK_SIZE */ .sh,
69312
69526
  'exceptions': {
@@ -71120,23 +71334,23 @@ class btctradeua extends _abstract_btctradeua_js__WEBPACK_IMPORTED_MODULE_0__/*
71120
71334
  },
71121
71335
  'precisionMode': _base_functions_number_js__WEBPACK_IMPORTED_MODULE_1__/* .TICK_SIZE */ .sh,
71122
71336
  'markets': {
71123
- 'BCH/UAH': { 'id': 'bch_uah', 'symbol': 'BCH/UAH', 'base': 'BCH', 'quote': 'UAH', 'baseId': 'bch', 'quoteId': 'uah', 'type': 'spot', 'spot': true },
71124
- 'BTC/UAH': { 'id': 'btc_uah', 'symbol': 'BTC/UAH', 'base': 'BTC', 'quote': 'UAH', 'baseId': 'btc', 'quoteId': 'uah', 'precision': { 'price': this.parseNumber('1e-1') }, 'limits': { 'amount': { 'min': this.parseNumber('1e-10') } }, 'type': 'spot', 'spot': true },
71125
- 'DASH/BTC': { 'id': 'dash_btc', 'symbol': 'DASH/BTC', 'base': 'DASH', 'quote': 'BTC', 'baseId': 'dash', 'quoteId': 'btc', 'type': 'spot', 'spot': true },
71126
- 'DASH/UAH': { 'id': 'dash_uah', 'symbol': 'DASH/UAH', 'base': 'DASH', 'quote': 'UAH', 'baseId': 'dash', 'quoteId': 'uah', 'type': 'spot', 'spot': true },
71127
- 'DOGE/BTC': { 'id': 'doge_btc', 'symbol': 'DOGE/BTC', 'base': 'DOGE', 'quote': 'BTC', 'baseId': 'doge', 'quoteId': 'btc', 'type': 'spot', 'spot': true },
71128
- 'DOGE/UAH': { 'id': 'doge_uah', 'symbol': 'DOGE/UAH', 'base': 'DOGE', 'quote': 'UAH', 'baseId': 'doge', 'quoteId': 'uah', 'type': 'spot', 'spot': true },
71129
- 'ETH/UAH': { 'id': 'eth_uah', 'symbol': 'ETH/UAH', 'base': 'ETH', 'quote': 'UAH', 'baseId': 'eth', 'quoteId': 'uah', 'type': 'spot', 'spot': true },
71130
- 'ITI/UAH': { 'id': 'iti_uah', 'symbol': 'ITI/UAH', 'base': 'ITI', 'quote': 'UAH', 'baseId': 'iti', 'quoteId': 'uah', 'type': 'spot', 'spot': true },
71131
- 'KRB/UAH': { 'id': 'krb_uah', 'symbol': 'KRB/UAH', 'base': 'KRB', 'quote': 'UAH', 'baseId': 'krb', 'quoteId': 'uah', 'type': 'spot', 'spot': true },
71132
- 'LTC/BTC': { 'id': 'ltc_btc', 'symbol': 'LTC/BTC', 'base': 'LTC', 'quote': 'BTC', 'baseId': 'ltc', 'quoteId': 'btc', 'type': 'spot', 'spot': true },
71133
- 'LTC/UAH': { 'id': 'ltc_uah', 'symbol': 'LTC/UAH', 'base': 'LTC', 'quote': 'UAH', 'baseId': 'ltc', 'quoteId': 'uah', 'type': 'spot', 'spot': true },
71134
- 'NVC/BTC': { 'id': 'nvc_btc', 'symbol': 'NVC/BTC', 'base': 'NVC', 'quote': 'BTC', 'baseId': 'nvc', 'quoteId': 'btc', 'type': 'spot', 'spot': true },
71135
- 'NVC/UAH': { 'id': 'nvc_uah', 'symbol': 'NVC/UAH', 'base': 'NVC', 'quote': 'UAH', 'baseId': 'nvc', 'quoteId': 'uah', 'type': 'spot', 'spot': true },
71136
- 'PPC/BTC': { 'id': 'ppc_btc', 'symbol': 'PPC/BTC', 'base': 'PPC', 'quote': 'BTC', 'baseId': 'ppc', 'quoteId': 'btc', 'type': 'spot', 'spot': true },
71137
- 'SIB/UAH': { 'id': 'sib_uah', 'symbol': 'SIB/UAH', 'base': 'SIB', 'quote': 'UAH', 'baseId': 'sib', 'quoteId': 'uah', 'type': 'spot', 'spot': true },
71138
- 'XMR/UAH': { 'id': 'xmr_uah', 'symbol': 'XMR/UAH', 'base': 'XMR', 'quote': 'UAH', 'baseId': 'xmr', 'quoteId': 'uah', 'type': 'spot', 'spot': true },
71139
- 'ZEC/UAH': { 'id': 'zec_uah', 'symbol': 'ZEC/UAH', 'base': 'ZEC', 'quote': 'UAH', 'baseId': 'zec', 'quoteId': 'uah', 'type': 'spot', 'spot': true },
71337
+ 'BCH/UAH': this.safeMarketStructure({ 'id': 'bch_uah', 'symbol': 'BCH/UAH', 'base': 'BCH', 'quote': 'UAH', 'baseId': 'bch', 'quoteId': 'uah', 'type': 'spot', 'spot': true }),
71338
+ 'BTC/UAH': this.safeMarketStructure({ 'id': 'btc_uah', 'symbol': 'BTC/UAH', 'base': 'BTC', 'quote': 'UAH', 'baseId': 'btc', 'quoteId': 'uah', 'precision': { 'price': this.parseNumber('1e-1') }, 'limits': { 'amount': { 'min': this.parseNumber('1e-10') } }, 'type': 'spot', 'spot': true }),
71339
+ 'DASH/BTC': this.safeMarketStructure({ 'id': 'dash_btc', 'symbol': 'DASH/BTC', 'base': 'DASH', 'quote': 'BTC', 'baseId': 'dash', 'quoteId': 'btc', 'type': 'spot', 'spot': true }),
71340
+ 'DASH/UAH': this.safeMarketStructure({ 'id': 'dash_uah', 'symbol': 'DASH/UAH', 'base': 'DASH', 'quote': 'UAH', 'baseId': 'dash', 'quoteId': 'uah', 'type': 'spot', 'spot': true }),
71341
+ 'DOGE/BTC': this.safeMarketStructure({ 'id': 'doge_btc', 'symbol': 'DOGE/BTC', 'base': 'DOGE', 'quote': 'BTC', 'baseId': 'doge', 'quoteId': 'btc', 'type': 'spot', 'spot': true }),
71342
+ 'DOGE/UAH': this.safeMarketStructure({ 'id': 'doge_uah', 'symbol': 'DOGE/UAH', 'base': 'DOGE', 'quote': 'UAH', 'baseId': 'doge', 'quoteId': 'uah', 'type': 'spot', 'spot': true }),
71343
+ 'ETH/UAH': this.safeMarketStructure({ 'id': 'eth_uah', 'symbol': 'ETH/UAH', 'base': 'ETH', 'quote': 'UAH', 'baseId': 'eth', 'quoteId': 'uah', 'type': 'spot', 'spot': true }),
71344
+ 'ITI/UAH': this.safeMarketStructure({ 'id': 'iti_uah', 'symbol': 'ITI/UAH', 'base': 'ITI', 'quote': 'UAH', 'baseId': 'iti', 'quoteId': 'uah', 'type': 'spot', 'spot': true }),
71345
+ 'KRB/UAH': this.safeMarketStructure({ 'id': 'krb_uah', 'symbol': 'KRB/UAH', 'base': 'KRB', 'quote': 'UAH', 'baseId': 'krb', 'quoteId': 'uah', 'type': 'spot', 'spot': true }),
71346
+ 'LTC/BTC': this.safeMarketStructure({ 'id': 'ltc_btc', 'symbol': 'LTC/BTC', 'base': 'LTC', 'quote': 'BTC', 'baseId': 'ltc', 'quoteId': 'btc', 'type': 'spot', 'spot': true }),
71347
+ 'LTC/UAH': this.safeMarketStructure({ 'id': 'ltc_uah', 'symbol': 'LTC/UAH', 'base': 'LTC', 'quote': 'UAH', 'baseId': 'ltc', 'quoteId': 'uah', 'type': 'spot', 'spot': true }),
71348
+ 'NVC/BTC': this.safeMarketStructure({ 'id': 'nvc_btc', 'symbol': 'NVC/BTC', 'base': 'NVC', 'quote': 'BTC', 'baseId': 'nvc', 'quoteId': 'btc', 'type': 'spot', 'spot': true }),
71349
+ 'NVC/UAH': this.safeMarketStructure({ 'id': 'nvc_uah', 'symbol': 'NVC/UAH', 'base': 'NVC', 'quote': 'UAH', 'baseId': 'nvc', 'quoteId': 'uah', 'type': 'spot', 'spot': true }),
71350
+ 'PPC/BTC': this.safeMarketStructure({ 'id': 'ppc_btc', 'symbol': 'PPC/BTC', 'base': 'PPC', 'quote': 'BTC', 'baseId': 'ppc', 'quoteId': 'btc', 'type': 'spot', 'spot': true }),
71351
+ 'SIB/UAH': this.safeMarketStructure({ 'id': 'sib_uah', 'symbol': 'SIB/UAH', 'base': 'SIB', 'quote': 'UAH', 'baseId': 'sib', 'quoteId': 'uah', 'type': 'spot', 'spot': true }),
71352
+ 'XMR/UAH': this.safeMarketStructure({ 'id': 'xmr_uah', 'symbol': 'XMR/UAH', 'base': 'XMR', 'quote': 'UAH', 'baseId': 'xmr', 'quoteId': 'uah', 'type': 'spot', 'spot': true }),
71353
+ 'ZEC/UAH': this.safeMarketStructure({ 'id': 'zec_uah', 'symbol': 'ZEC/UAH', 'base': 'ZEC', 'quote': 'UAH', 'baseId': 'zec', 'quoteId': 'uah', 'type': 'spot', 'spot': true }),
71140
71354
  },
71141
71355
  'fees': {
71142
71356
  'trading': {
@@ -86801,13 +87015,13 @@ class coincheck extends _abstract_coincheck_js__WEBPACK_IMPORTED_MODULE_0__/* ["
86801
87015
  },
86802
87016
  },
86803
87017
  'markets': {
86804
- 'BTC/JPY': { 'id': 'btc_jpy', 'symbol': 'BTC/JPY', 'base': 'BTC', 'quote': 'JPY', 'baseId': 'btc', 'quoteId': 'jpy', 'type': 'spot', 'spot': true },
87018
+ 'BTC/JPY': this.safeMarketStructure({ 'id': 'btc_jpy', 'symbol': 'BTC/JPY', 'base': 'BTC', 'quote': 'JPY', 'baseId': 'btc', 'quoteId': 'jpy', 'type': 'spot', 'spot': true }),
86805
87019
  // 'ETH/JPY': { 'id': 'eth_jpy', 'symbol': 'ETH/JPY', 'base': 'ETH', 'quote': 'JPY', 'baseId': 'eth', 'quoteId': 'jpy' },
86806
- 'ETC/JPY': { 'id': 'etc_jpy', 'symbol': 'ETC/JPY', 'base': 'ETC', 'quote': 'JPY', 'baseId': 'etc', 'quoteId': 'jpy', 'type': 'spot', 'spot': true },
87020
+ 'ETC/JPY': this.safeMarketStructure({ 'id': 'etc_jpy', 'symbol': 'ETC/JPY', 'base': 'ETC', 'quote': 'JPY', 'baseId': 'etc', 'quoteId': 'jpy', 'type': 'spot', 'spot': true }),
86807
87021
  // 'DAO/JPY': { 'id': 'dao_jpy', 'symbol': 'DAO/JPY', 'base': 'DAO', 'quote': 'JPY', 'baseId': 'dao', 'quoteId': 'jpy' },
86808
87022
  // 'LSK/JPY': { 'id': 'lsk_jpy', 'symbol': 'LSK/JPY', 'base': 'LSK', 'quote': 'JPY', 'baseId': 'lsk', 'quoteId': 'jpy' },
86809
- 'FCT/JPY': { 'id': 'fct_jpy', 'symbol': 'FCT/JPY', 'base': 'FCT', 'quote': 'JPY', 'baseId': 'fct', 'quoteId': 'jpy', 'type': 'spot', 'spot': true },
86810
- 'MONA/JPY': { 'id': 'mona_jpy', 'symbol': 'MONA/JPY', 'base': 'MONA', 'quote': 'JPY', 'baseId': 'mona', 'quoteId': 'jpy', 'type': 'spot', 'spot': true },
87023
+ 'FCT/JPY': this.safeMarketStructure({ 'id': 'fct_jpy', 'symbol': 'FCT/JPY', 'base': 'FCT', 'quote': 'JPY', 'baseId': 'fct', 'quoteId': 'jpy', 'type': 'spot', 'spot': true }),
87024
+ 'MONA/JPY': this.safeMarketStructure({ 'id': 'mona_jpy', 'symbol': 'MONA/JPY', 'base': 'MONA', 'quote': 'JPY', 'baseId': 'mona', 'quoteId': 'jpy', 'type': 'spot', 'spot': true }),
86811
87025
  // 'XMR/JPY': { 'id': 'xmr_jpy', 'symbol': 'XMR/JPY', 'base': 'XMR', 'quote': 'JPY', 'baseId': 'xmr', 'quoteId': 'jpy' },
86812
87026
  // 'REP/JPY': { 'id': 'rep_jpy', 'symbol': 'REP/JPY', 'base': 'REP', 'quote': 'JPY', 'baseId': 'rep', 'quoteId': 'jpy' },
86813
87027
  // 'XRP/JPY': { 'id': 'xrp_jpy', 'symbol': 'XRP/JPY', 'base': 'XRP', 'quote': 'JPY', 'baseId': 'xrp', 'quoteId': 'jpy' },
@@ -86816,7 +87030,7 @@ class coincheck extends _abstract_coincheck_js__WEBPACK_IMPORTED_MODULE_0__/* ["
86816
87030
  // 'LTC/JPY': { 'id': 'ltc_jpy', 'symbol': 'LTC/JPY', 'base': 'LTC', 'quote': 'JPY', 'baseId': 'ltc', 'quoteId': 'jpy' },
86817
87031
  // 'DASH/JPY': { 'id': 'dash_jpy', 'symbol': 'DASH/JPY', 'base': 'DASH', 'quote': 'JPY', 'baseId': 'dash', 'quoteId': 'jpy' },
86818
87032
  // 'ETH/BTC': { 'id': 'eth_btc', 'symbol': 'ETH/BTC', 'base': 'ETH', 'quote': 'BTC', 'baseId': 'eth', 'quoteId': 'btc' },
86819
- 'ETC/BTC': { 'id': 'etc_btc', 'symbol': 'ETC/BTC', 'base': 'ETC', 'quote': 'BTC', 'baseId': 'etc', 'quoteId': 'btc', 'type': 'spot', 'spot': true },
87033
+ 'ETC/BTC': this.safeMarketStructure({ 'id': 'etc_btc', 'symbol': 'ETC/BTC', 'base': 'ETC', 'quote': 'BTC', 'baseId': 'etc', 'quoteId': 'btc', 'type': 'spot', 'spot': true }),
86820
87034
  // 'LSK/BTC': { 'id': 'lsk_btc', 'symbol': 'LSK/BTC', 'base': 'LSK', 'quote': 'BTC', 'baseId': 'lsk', 'quoteId': 'btc' },
86821
87035
  // 'FCT/BTC': { 'id': 'fct_btc', 'symbol': 'FCT/BTC', 'base': 'FCT', 'quote': 'BTC', 'baseId': 'fct', 'quoteId': 'btc' },
86822
87036
  // 'XMR/BTC': { 'id': 'xmr_btc', 'symbol': 'XMR/BTC', 'base': 'XMR', 'quote': 'BTC', 'baseId': 'xmr', 'quoteId': 'btc' },
@@ -97418,20 +97632,20 @@ class coinspot extends _abstract_coinspot_js__WEBPACK_IMPORTED_MODULE_0__/* ["de
97418
97632
  },
97419
97633
  },
97420
97634
  'markets': {
97421
- 'ADA/AUD': { 'id': 'ada', 'symbol': 'ADA/AUD', 'base': 'ADA', 'quote': 'AUD', 'baseId': 'ada', 'quoteId': 'aud', 'type': 'spot', 'spot': true },
97422
- 'BTC/AUD': { 'id': 'btc', 'symbol': 'BTC/AUD', 'base': 'BTC', 'quote': 'AUD', 'baseId': 'btc', 'quoteId': 'aud', 'type': 'spot', 'spot': true },
97423
- 'ETH/AUD': { 'id': 'eth', 'symbol': 'ETH/AUD', 'base': 'ETH', 'quote': 'AUD', 'baseId': 'eth', 'quoteId': 'aud', 'type': 'spot', 'spot': true },
97424
- 'XRP/AUD': { 'id': 'xrp', 'symbol': 'XRP/AUD', 'base': 'XRP', 'quote': 'AUD', 'baseId': 'xrp', 'quoteId': 'aud', 'type': 'spot', 'spot': true },
97425
- 'LTC/AUD': { 'id': 'ltc', 'symbol': 'LTC/AUD', 'base': 'LTC', 'quote': 'AUD', 'baseId': 'ltc', 'quoteId': 'aud', 'type': 'spot', 'spot': true },
97426
- 'DOGE/AUD': { 'id': 'doge', 'symbol': 'DOGE/AUD', 'base': 'DOGE', 'quote': 'AUD', 'baseId': 'doge', 'quoteId': 'aud', 'type': 'spot', 'spot': true },
97427
- 'RFOX/AUD': { 'id': 'rfox', 'symbol': 'RFOX/AUD', 'base': 'RFOX', 'quote': 'AUD', 'baseId': 'rfox', 'quoteId': 'aud', 'type': 'spot', 'spot': true },
97428
- 'POWR/AUD': { 'id': 'powr', 'symbol': 'POWR/AUD', 'base': 'POWR', 'quote': 'AUD', 'baseId': 'powr', 'quoteId': 'aud', 'type': 'spot', 'spot': true },
97429
- 'NEO/AUD': { 'id': 'neo', 'symbol': 'NEO/AUD', 'base': 'NEO', 'quote': 'AUD', 'baseId': 'neo', 'quoteId': 'aud', 'type': 'spot', 'spot': true },
97430
- 'TRX/AUD': { 'id': 'trx', 'symbol': 'TRX/AUD', 'base': 'TRX', 'quote': 'AUD', 'baseId': 'trx', 'quoteId': 'aud', 'type': 'spot', 'spot': true },
97431
- 'EOS/AUD': { 'id': 'eos', 'symbol': 'EOS/AUD', 'base': 'EOS', 'quote': 'AUD', 'baseId': 'eos', 'quoteId': 'aud', 'type': 'spot', 'spot': true },
97432
- 'XLM/AUD': { 'id': 'xlm', 'symbol': 'XLM/AUD', 'base': 'XLM', 'quote': 'AUD', 'baseId': 'xlm', 'quoteId': 'aud', 'type': 'spot', 'spot': true },
97433
- 'RHOC/AUD': { 'id': 'rhoc', 'symbol': 'RHOC/AUD', 'base': 'RHOC', 'quote': 'AUD', 'baseId': 'rhoc', 'quoteId': 'aud', 'type': 'spot', 'spot': true },
97434
- 'GAS/AUD': { 'id': 'gas', 'symbol': 'GAS/AUD', 'base': 'GAS', 'quote': 'AUD', 'baseId': 'gas', 'quoteId': 'aud', 'type': 'spot', 'spot': true },
97635
+ 'ADA/AUD': this.safeMarketStructure({ 'id': 'ada', 'symbol': 'ADA/AUD', 'base': 'ADA', 'quote': 'AUD', 'baseId': 'ada', 'quoteId': 'aud', 'type': 'spot', 'spot': true }),
97636
+ 'BTC/AUD': this.safeMarketStructure({ 'id': 'btc', 'symbol': 'BTC/AUD', 'base': 'BTC', 'quote': 'AUD', 'baseId': 'btc', 'quoteId': 'aud', 'type': 'spot', 'spot': true }),
97637
+ 'ETH/AUD': this.safeMarketStructure({ 'id': 'eth', 'symbol': 'ETH/AUD', 'base': 'ETH', 'quote': 'AUD', 'baseId': 'eth', 'quoteId': 'aud', 'type': 'spot', 'spot': true }),
97638
+ 'XRP/AUD': this.safeMarketStructure({ 'id': 'xrp', 'symbol': 'XRP/AUD', 'base': 'XRP', 'quote': 'AUD', 'baseId': 'xrp', 'quoteId': 'aud', 'type': 'spot', 'spot': true }),
97639
+ 'LTC/AUD': this.safeMarketStructure({ 'id': 'ltc', 'symbol': 'LTC/AUD', 'base': 'LTC', 'quote': 'AUD', 'baseId': 'ltc', 'quoteId': 'aud', 'type': 'spot', 'spot': true }),
97640
+ 'DOGE/AUD': this.safeMarketStructure({ 'id': 'doge', 'symbol': 'DOGE/AUD', 'base': 'DOGE', 'quote': 'AUD', 'baseId': 'doge', 'quoteId': 'aud', 'type': 'spot', 'spot': true }),
97641
+ 'RFOX/AUD': this.safeMarketStructure({ 'id': 'rfox', 'symbol': 'RFOX/AUD', 'base': 'RFOX', 'quote': 'AUD', 'baseId': 'rfox', 'quoteId': 'aud', 'type': 'spot', 'spot': true }),
97642
+ 'POWR/AUD': this.safeMarketStructure({ 'id': 'powr', 'symbol': 'POWR/AUD', 'base': 'POWR', 'quote': 'AUD', 'baseId': 'powr', 'quoteId': 'aud', 'type': 'spot', 'spot': true }),
97643
+ 'NEO/AUD': this.safeMarketStructure({ 'id': 'neo', 'symbol': 'NEO/AUD', 'base': 'NEO', 'quote': 'AUD', 'baseId': 'neo', 'quoteId': 'aud', 'type': 'spot', 'spot': true }),
97644
+ 'TRX/AUD': this.safeMarketStructure({ 'id': 'trx', 'symbol': 'TRX/AUD', 'base': 'TRX', 'quote': 'AUD', 'baseId': 'trx', 'quoteId': 'aud', 'type': 'spot', 'spot': true }),
97645
+ 'EOS/AUD': this.safeMarketStructure({ 'id': 'eos', 'symbol': 'EOS/AUD', 'base': 'EOS', 'quote': 'AUD', 'baseId': 'eos', 'quoteId': 'aud', 'type': 'spot', 'spot': true }),
97646
+ 'XLM/AUD': this.safeMarketStructure({ 'id': 'xlm', 'symbol': 'XLM/AUD', 'base': 'XLM', 'quote': 'AUD', 'baseId': 'xlm', 'quoteId': 'aud', 'type': 'spot', 'spot': true }),
97647
+ 'RHOC/AUD': this.safeMarketStructure({ 'id': 'rhoc', 'symbol': 'RHOC/AUD', 'base': 'RHOC', 'quote': 'AUD', 'baseId': 'rhoc', 'quoteId': 'aud', 'type': 'spot', 'spot': true }),
97648
+ 'GAS/AUD': this.safeMarketStructure({ 'id': 'gas', 'symbol': 'GAS/AUD', 'base': 'GAS', 'quote': 'AUD', 'baseId': 'gas', 'quoteId': 'aud', 'type': 'spot', 'spot': true }),
97435
97649
  },
97436
97650
  'commonCurrencies': {
97437
97651
  'DRK': 'DASH',
@@ -178749,6 +178963,7 @@ class okx extends _abstract_okx_js__WEBPACK_IMPORTED_MODULE_0__/* ["default"] */
178749
178963
  'trade/orders-history-archive': 1,
178750
178964
  'trade/fills': 1 / 3,
178751
178965
  'trade/fills-history': 2.2,
178966
+ 'trade/fills-archive': 2,
178752
178967
  'trade/order-algo': 1,
178753
178968
  'trade/orders-algo-pending': 1,
178754
178969
  'trade/orders-algo-history': 1,
@@ -178815,6 +179030,12 @@ class okx extends _abstract_okx_js__WEBPACK_IMPORTED_MODULE_0__/* ["default"] */
178815
179030
  'tradingBot/grid/orders-algo-details': 1,
178816
179031
  'tradingBot/grid/sub-orders': 1,
178817
179032
  'tradingBot/grid/positions': 1,
179033
+ 'tradingBot/grid/ai-param': 1,
179034
+ 'tradingBot/public/rsi-back-testing': 1,
179035
+ 'tradingBot/signal/orders-algo-details': 1,
179036
+ 'tradingBot/signal/positions': 1,
179037
+ 'tradingBot/signal/sub-orders': 1,
179038
+ 'tradingBot/signal/event-history': 1,
178818
179039
  'tradingBot/recurring/orders-algo-pending': 1,
178819
179040
  'tradingBot/recurring/orders-algo-history': 1,
178820
179041
  'tradingBot/recurring/orders-algo-details': 1,
@@ -178871,6 +179092,7 @@ class okx extends _abstract_okx_js__WEBPACK_IMPORTED_MODULE_0__/* ["default"] */
178871
179092
  'trade/amend-order': 1 / 3,
178872
179093
  'trade/amend-batch-orders': 1 / 150,
178873
179094
  'trade/close-position': 1,
179095
+ 'trade/fills-archive': 172800,
178874
179096
  'trade/order-algo': 1,
178875
179097
  'trade/cancel-algos': 1,
178876
179098
  'trade/amend-algos': 1,
@@ -178945,6 +179167,7 @@ class okx extends _abstract_okx_js__WEBPACK_IMPORTED_MODULE_0__/* ["default"] */
178945
179167
  'broker/nd/rebate-per-orders': 36000,
178946
179168
  'finance/sfp/dcd/quote': 10,
178947
179169
  'finance/sfp/dcd/order': 10,
179170
+ 'broker/nd/report-subaccount-ip': 0.25,
178948
179171
  'broker/fd/rebate-per-orders': 36000,
178949
179172
  },
178950
179173
  },
@@ -185511,7 +185734,7 @@ class paymium extends _abstract_paymium_js__WEBPACK_IMPORTED_MODULE_0__/* ["defa
185511
185734
  },
185512
185735
  },
185513
185736
  'markets': {
185514
- 'BTC/EUR': { 'id': 'eur', 'symbol': 'BTC/EUR', 'base': 'BTC', 'quote': 'EUR', 'baseId': 'btc', 'quoteId': 'eur', 'type': 'spot', 'spot': true },
185737
+ 'BTC/EUR': this.safeMarketStructure({ 'id': 'eur', 'symbol': 'BTC/EUR', 'base': 'BTC', 'quote': 'EUR', 'baseId': 'btc', 'quoteId': 'eur', 'type': 'spot', 'spot': true }),
185515
185738
  },
185516
185739
  'fees': {
185517
185740
  'trading': {
@@ -277947,7 +278170,7 @@ SOFTWARE.
277947
278170
 
277948
278171
  //-----------------------------------------------------------------------------
277949
278172
  // this is updated by vss.js when building
277950
- const version = '4.1.17';
278173
+ const version = '4.1.18';
277951
278174
  _src_base_Exchange_js__WEBPACK_IMPORTED_MODULE_0__/* .Exchange.ccxtVersion */ .e.ccxtVersion = version;
277952
278175
  //-----------------------------------------------------------------------------
277953
278176