ccxt 4.3.17 → 4.3.19

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.
Files changed (174) hide show
  1. package/README.md +7 -5
  2. package/dist/cjs/ccxt.js +6 -1
  3. package/dist/cjs/src/abstract/woofipro.js +9 -0
  4. package/dist/cjs/src/ascendex.js +3 -4
  5. package/dist/cjs/src/base/Exchange.js +43 -3
  6. package/dist/cjs/src/base/functions/crypto.js +10 -3
  7. package/dist/cjs/src/base/functions/encode.js +6 -3
  8. package/dist/cjs/src/base/functions/number.js +8 -5
  9. package/dist/cjs/src/base/functions/rsa.js +5 -5
  10. package/dist/cjs/src/bigone.js +1 -1
  11. package/dist/cjs/src/binance.js +32 -8
  12. package/dist/cjs/src/bitfinex.js +25 -1
  13. package/dist/cjs/src/bitfinex2.js +59 -51
  14. package/dist/cjs/src/bitget.js +1 -5
  15. package/dist/cjs/src/bitmart.js +3 -3
  16. package/dist/cjs/src/bitstamp.js +1 -3
  17. package/dist/cjs/src/bybit.js +1 -0
  18. package/dist/cjs/src/coinex.js +321 -537
  19. package/dist/cjs/src/coinlist.js +1 -2
  20. package/dist/cjs/src/deribit.js +1 -1
  21. package/dist/cjs/src/hollaex.js +3 -3
  22. package/dist/cjs/src/htx.js +1 -1
  23. package/dist/cjs/src/indodax.js +1 -1
  24. package/dist/cjs/src/latoken.js +1 -1
  25. package/dist/cjs/src/mexc.js +1 -1
  26. package/dist/cjs/src/novadax.js +0 -1
  27. package/dist/cjs/src/okx.js +17 -0
  28. package/dist/cjs/src/poloniex.js +1 -2
  29. package/dist/cjs/src/pro/bitget.js +136 -192
  30. package/dist/cjs/src/pro/bybit.js +4 -2
  31. package/dist/cjs/src/pro/coinbaseinternational.js +9 -1
  32. package/dist/cjs/src/pro/okx.js +85 -0
  33. package/dist/cjs/src/pro/woofipro.js +1263 -0
  34. package/dist/cjs/src/wavesexchange.js +2 -2
  35. package/dist/cjs/src/woo.js +17 -3
  36. package/dist/cjs/src/woofipro.js +2698 -0
  37. package/js/ccxt.d.ts +8 -2
  38. package/js/ccxt.js +6 -2
  39. package/js/src/abstract/bybit.d.ts +1 -0
  40. package/js/src/abstract/okx.d.ts +1 -0
  41. package/js/src/abstract/woofipro.d.ts +122 -0
  42. package/js/src/abstract/woofipro.js +11 -0
  43. package/js/src/ace.d.ts +2 -2
  44. package/js/src/ascendex.d.ts +5 -15
  45. package/js/src/ascendex.js +3 -4
  46. package/js/src/base/Exchange.d.ts +27 -18
  47. package/js/src/base/Exchange.js +43 -3
  48. package/js/src/base/functions/crypto.d.ts +1 -1
  49. package/js/src/base/functions/crypto.js +10 -3
  50. package/js/src/base/functions/encode.d.ts +1 -1
  51. package/js/src/base/functions/encode.js +6 -3
  52. package/js/src/base/functions/number.d.ts +1 -1
  53. package/js/src/base/functions/number.js +8 -5
  54. package/js/src/base/functions/rsa.js +6 -6
  55. package/js/src/base/types.d.ts +4 -0
  56. package/js/src/bigone.d.ts +4 -14
  57. package/js/src/bigone.js +1 -1
  58. package/js/src/binance.d.ts +13 -71
  59. package/js/src/binance.js +32 -8
  60. package/js/src/binancecoinm.d.ts +2 -22
  61. package/js/src/binanceusdm.d.ts +2 -22
  62. package/js/src/bingx.d.ts +4 -14
  63. package/js/src/bit2c.d.ts +2 -2
  64. package/js/src/bitbank.d.ts +2 -2
  65. package/js/src/bitbns.d.ts +2 -2
  66. package/js/src/bitfinex.d.ts +6 -16
  67. package/js/src/bitfinex.js +25 -1
  68. package/js/src/bitfinex2.d.ts +6 -16
  69. package/js/src/bitfinex2.js +59 -51
  70. package/js/src/bitflyer.d.ts +2 -2
  71. package/js/src/bitget.d.ts +7 -17
  72. package/js/src/bitget.js +1 -5
  73. package/js/src/bithumb.d.ts +3 -3
  74. package/js/src/bitmart.d.ts +5 -14
  75. package/js/src/bitmart.js +3 -3
  76. package/js/src/bitmex.d.ts +4 -4
  77. package/js/src/bitopro.d.ts +2 -2
  78. package/js/src/bitrue.d.ts +5 -5
  79. package/js/src/bitso.d.ts +2 -2
  80. package/js/src/bitstamp.d.ts +3 -3
  81. package/js/src/bitstamp.js +1 -3
  82. package/js/src/bitteam.d.ts +2 -2
  83. package/js/src/bitvavo.d.ts +5 -5
  84. package/js/src/bl3p.d.ts +2 -2
  85. package/js/src/blockchaincom.d.ts +2 -2
  86. package/js/src/blofin.d.ts +4 -14
  87. package/js/src/btcalpha.d.ts +2 -2
  88. package/js/src/btcbox.d.ts +2 -2
  89. package/js/src/btcmarkets.d.ts +2 -2
  90. package/js/src/btcturk.d.ts +2 -2
  91. package/js/src/bybit.d.ts +8 -56
  92. package/js/src/bybit.js +1 -0
  93. package/js/src/cex.d.ts +2 -2
  94. package/js/src/coinbase.d.ts +4 -4
  95. package/js/src/coinbasepro.d.ts +3 -3
  96. package/js/src/coincheck.d.ts +2 -2
  97. package/js/src/coinex.d.ts +6 -16
  98. package/js/src/coinex.js +321 -537
  99. package/js/src/coinlist.d.ts +5 -15
  100. package/js/src/coinlist.js +1 -2
  101. package/js/src/coinmate.d.ts +2 -2
  102. package/js/src/coinmetro.d.ts +3 -3
  103. package/js/src/coinone.d.ts +2 -2
  104. package/js/src/coinsph.d.ts +2 -2
  105. package/js/src/coinspot.d.ts +2 -2
  106. package/js/src/cryptocom.d.ts +2 -2
  107. package/js/src/currencycom.d.ts +3 -3
  108. package/js/src/delta.d.ts +5 -43
  109. package/js/src/deribit.d.ts +7 -55
  110. package/js/src/deribit.js +1 -1
  111. package/js/src/digifinex.d.ts +5 -15
  112. package/js/src/exmo.d.ts +2 -2
  113. package/js/src/gate.d.ts +6 -54
  114. package/js/src/gemini.d.ts +2 -2
  115. package/js/src/hitbtc.d.ts +4 -14
  116. package/js/src/hollaex.d.ts +3 -3
  117. package/js/src/hollaex.js +3 -3
  118. package/js/src/htx.d.ts +6 -16
  119. package/js/src/htx.js +1 -1
  120. package/js/src/huobijp.d.ts +4 -4
  121. package/js/src/hyperliquid.d.ts +1 -1
  122. package/js/src/idex.d.ts +3 -3
  123. package/js/src/independentreserve.d.ts +2 -2
  124. package/js/src/indodax.d.ts +2 -2
  125. package/js/src/indodax.js +1 -1
  126. package/js/src/kraken.d.ts +4 -14
  127. package/js/src/krakenfutures.d.ts +4 -14
  128. package/js/src/kucoin.d.ts +5 -15
  129. package/js/src/kucoinfutures.d.ts +4 -14
  130. package/js/src/kuna.d.ts +2 -2
  131. package/js/src/latoken.d.ts +5 -15
  132. package/js/src/latoken.js +1 -1
  133. package/js/src/lbank.d.ts +2 -2
  134. package/js/src/luno.d.ts +2 -2
  135. package/js/src/lykke.d.ts +2 -2
  136. package/js/src/mercado.d.ts +2 -2
  137. package/js/src/mexc.d.ts +8 -28
  138. package/js/src/mexc.js +1 -1
  139. package/js/src/ndax.d.ts +2 -2
  140. package/js/src/novadax.d.ts +4 -15
  141. package/js/src/novadax.js +0 -1
  142. package/js/src/okcoin.d.ts +4 -14
  143. package/js/src/okx.d.ts +10 -68
  144. package/js/src/okx.js +17 -0
  145. package/js/src/onetrading.d.ts +2 -2
  146. package/js/src/paymium.d.ts +4 -14
  147. package/js/src/phemex.d.ts +5 -15
  148. package/js/src/poloniex.d.ts +3 -13
  149. package/js/src/poloniex.js +1 -2
  150. package/js/src/poloniexfutures.d.ts +2 -2
  151. package/js/src/pro/bitget.js +137 -193
  152. package/js/src/pro/bybit.js +4 -2
  153. package/js/src/pro/coinbaseinternational.d.ts +3 -3
  154. package/js/src/pro/coinbaseinternational.js +9 -1
  155. package/js/src/pro/okx.d.ts +4 -1
  156. package/js/src/pro/okx.js +85 -0
  157. package/js/src/pro/woofipro.d.ts +47 -0
  158. package/js/src/pro/woofipro.js +1264 -0
  159. package/js/src/probit.d.ts +3 -3
  160. package/js/src/timex.d.ts +2 -2
  161. package/js/src/tokocrypto.d.ts +3 -3
  162. package/js/src/upbit.d.ts +2 -2
  163. package/js/src/wavesexchange.d.ts +3 -3
  164. package/js/src/wavesexchange.js +2 -2
  165. package/js/src/wazirx.d.ts +2 -2
  166. package/js/src/whitebit.d.ts +3 -13
  167. package/js/src/woo.d.ts +7 -17
  168. package/js/src/woo.js +17 -3
  169. package/js/src/woofipro.d.ts +131 -0
  170. package/js/src/woofipro.js +2699 -0
  171. package/js/src/yobit.d.ts +2 -2
  172. package/js/src/zaif.d.ts +2 -2
  173. package/js/src/zonda.d.ts +4 -14
  174. package/package.json +1 -1
@@ -946,7 +946,7 @@ class bitfinex2 extends bitfinex2$1 {
946
946
  this.throwExactlyMatchedException(this.exceptions['exact'], message, this.id + ' ' + message);
947
947
  throw new errors.ExchangeError(this.id + ' ' + message);
948
948
  }
949
- return this.parseTransfer(response, currency);
949
+ return this.parseTransfer({ 'result': response }, currency);
950
950
  }
951
951
  parseTransfer(transfer, currency = undefined) {
952
952
  //
@@ -972,12 +972,13 @@ class bitfinex2 extends bitfinex2$1 {
972
972
  // "1.0 Tether USDt transfered from Exchange to Margin"
973
973
  // ]
974
974
  //
975
- const timestamp = this.safeInteger(transfer, 0);
976
- const info = this.safeValue(transfer, 4);
975
+ const result = this.safeList(transfer, 'result');
976
+ const timestamp = this.safeInteger(result, 0);
977
+ const info = this.safeValue(result, 4);
977
978
  const fromAccount = this.safeString(info, 1);
978
979
  const toAccount = this.safeString(info, 2);
979
980
  const currencyId = this.safeString(info, 5);
980
- const status = this.safeString(transfer, 6);
981
+ const status = this.safeString(result, 6);
981
982
  return {
982
983
  'id': undefined,
983
984
  'timestamp': timestamp,
@@ -987,7 +988,7 @@ class bitfinex2 extends bitfinex2$1 {
987
988
  'currency': this.safeCurrencyCode(currencyId, currency),
988
989
  'fromAccount': fromAccount,
989
990
  'toAccount': toAccount,
990
- 'info': transfer,
991
+ 'info': result,
991
992
  };
992
993
  }
993
994
  parseTransferStatus(status) {
@@ -1073,67 +1074,73 @@ class bitfinex2 extends bitfinex2$1 {
1073
1074
  //
1074
1075
  // on trading pairs (ex. tBTCUSD)
1075
1076
  //
1076
- // [
1077
- // SYMBOL,
1078
- // BID,
1079
- // BID_SIZE,
1080
- // ASK,
1081
- // ASK_SIZE,
1082
- // DAILY_CHANGE,
1083
- // DAILY_CHANGE_RELATIVE,
1084
- // LAST_PRICE,
1085
- // VOLUME,
1086
- // HIGH,
1087
- // LOW
1088
- // ]
1077
+ // {
1078
+ // 'result': [
1079
+ // SYMBOL,
1080
+ // BID,
1081
+ // BID_SIZE,
1082
+ // ASK,
1083
+ // ASK_SIZE,
1084
+ // DAILY_CHANGE,
1085
+ // DAILY_CHANGE_RELATIVE,
1086
+ // LAST_PRICE,
1087
+ // VOLUME,
1088
+ // HIGH,
1089
+ // LOW
1090
+ // ]
1091
+ // }
1092
+ //
1089
1093
  //
1090
1094
  // on funding currencies (ex. fUSD)
1091
1095
  //
1092
- // [
1093
- // SYMBOL,
1094
- // FRR,
1095
- // BID,
1096
- // BID_PERIOD,
1097
- // BID_SIZE,
1098
- // ASK,
1099
- // ASK_PERIOD,
1100
- // ASK_SIZE,
1101
- // DAILY_CHANGE,
1102
- // DAILY_CHANGE_RELATIVE,
1103
- // LAST_PRICE,
1104
- // VOLUME,
1105
- // HIGH,
1106
- // LOW,
1107
- // _PLACEHOLDER,
1108
- // _PLACEHOLDER,
1109
- // FRR_AMOUNT_AVAILABLE
1110
- // ]
1096
+ // {
1097
+ // 'result': [
1098
+ // SYMBOL,
1099
+ // FRR,
1100
+ // BID,
1101
+ // BID_PERIOD,
1102
+ // BID_SIZE,
1103
+ // ASK,
1104
+ // ASK_PERIOD,
1105
+ // ASK_SIZE,
1106
+ // DAILY_CHANGE,
1107
+ // DAILY_CHANGE_RELATIVE,
1108
+ // LAST_PRICE,
1109
+ // VOLUME,
1110
+ // HIGH,
1111
+ // LOW,
1112
+ // _PLACEHOLDER,
1113
+ // _PLACEHOLDER,
1114
+ // FRR_AMOUNT_AVAILABLE
1115
+ // ]
1116
+ // }
1111
1117
  //
1118
+ const result = this.safeList(ticker, 'result');
1112
1119
  const symbol = this.safeSymbol(undefined, market);
1113
- const length = ticker.length;
1114
- const last = this.safeString(ticker, length - 4);
1115
- const percentage = this.safeString(ticker, length - 5);
1120
+ const length = result.length;
1121
+ const last = this.safeString(result, length - 4);
1122
+ const percentage = this.safeString(result, length - 5);
1116
1123
  return this.safeTicker({
1117
1124
  'symbol': symbol,
1118
1125
  'timestamp': undefined,
1119
1126
  'datetime': undefined,
1120
- 'high': this.safeString(ticker, length - 2),
1121
- 'low': this.safeString(ticker, length - 1),
1122
- 'bid': this.safeString(ticker, length - 10),
1123
- 'bidVolume': this.safeString(ticker, length - 9),
1124
- 'ask': this.safeString(ticker, length - 8),
1125
- 'askVolume': this.safeString(ticker, length - 7),
1127
+ 'high': this.safeString(result, length - 2),
1128
+ 'low': this.safeString(result, length - 1),
1129
+ 'bid': this.safeString(result, length - 10),
1130
+ 'bidVolume': this.safeString(result, length - 9),
1131
+ 'ask': this.safeString(result, length - 8),
1132
+ 'askVolume': this.safeString(result, length - 7),
1126
1133
  'vwap': undefined,
1127
1134
  'open': undefined,
1128
1135
  'close': last,
1129
1136
  'last': last,
1130
1137
  'previousClose': undefined,
1131
- 'change': this.safeString(ticker, length - 6),
1138
+ 'change': this.safeString(result, length - 6),
1132
1139
  'percentage': Precise["default"].stringMul(percentage, '100'),
1133
1140
  'average': undefined,
1134
- 'baseVolume': this.safeString(ticker, length - 3),
1141
+ 'baseVolume': this.safeString(result, length - 3),
1135
1142
  'quoteVolume': undefined,
1136
- 'info': ticker,
1143
+ 'info': result,
1137
1144
  }, market);
1138
1145
  }
1139
1146
  async fetchTickers(symbols = undefined, params = {}) {
@@ -1202,7 +1209,7 @@ class bitfinex2 extends bitfinex2$1 {
1202
1209
  const marketId = this.safeString(ticker, 0);
1203
1210
  const market = this.safeMarket(marketId);
1204
1211
  const symbol = market['symbol'];
1205
- result[symbol] = this.parseTicker(ticker, market);
1212
+ result[symbol] = this.parseTicker({ 'result': ticker }, market);
1206
1213
  }
1207
1214
  return this.filterByArrayTickers(result, 'symbol', symbols);
1208
1215
  }
@@ -1222,7 +1229,8 @@ class bitfinex2 extends bitfinex2$1 {
1222
1229
  'symbol': market['id'],
1223
1230
  };
1224
1231
  const ticker = await this.publicGetTickerSymbol(this.extend(request, params));
1225
- return this.parseTicker(ticker, market);
1232
+ const result = { 'result': ticker };
1233
+ return this.parseTicker(result, market);
1226
1234
  }
1227
1235
  parseTrade(trade, market = undefined) {
1228
1236
  //
@@ -2632,11 +2632,7 @@ class bitget extends bitget$1 {
2632
2632
  //
2633
2633
  const marketId = this.safeString(ticker, 'symbol');
2634
2634
  const close = this.safeString(ticker, 'lastPr');
2635
- const timestampString = this.omitZero(this.safeString(ticker, 'ts')); // exchange sometimes provided 0
2636
- let timestamp = undefined;
2637
- if (timestampString !== undefined) {
2638
- timestamp = this.parseToInt(timestampString);
2639
- }
2635
+ const timestamp = this.safeIntegerOmitZero(ticker, 'ts'); // exchange bitget provided 0
2640
2636
  const change = this.safeString(ticker, 'change24h');
2641
2637
  const open24 = this.safeString(ticker, 'open24');
2642
2638
  const open = this.safeString(ticker, 'open');
@@ -2549,7 +2549,7 @@ class bitmart extends bitmart$1 {
2549
2549
  else if (isMarketOrder) {
2550
2550
  // for market buy it requires the amount of quote currency to spend
2551
2551
  if (side === 'buy') {
2552
- let notional = this.safeNumber2(params, 'cost', 'notional');
2552
+ let notional = this.safeString2(params, 'cost', 'notional');
2553
2553
  params = this.omit(params, 'cost');
2554
2554
  let createMarketBuyOrderRequiresPrice = true;
2555
2555
  [createMarketBuyOrderRequiresPrice, params] = this.handleOptionAndParams(params, 'createOrder', 'createMarketBuyOrderRequiresPrice', true);
@@ -2560,11 +2560,11 @@ class bitmart extends bitmart$1 {
2560
2560
  else {
2561
2561
  const amountString = this.numberToString(amount);
2562
2562
  const priceString = this.numberToString(price);
2563
- notional = this.parseNumber(Precise["default"].stringMul(amountString, priceString));
2563
+ notional = Precise["default"].stringMul(amountString, priceString);
2564
2564
  }
2565
2565
  }
2566
2566
  else {
2567
- notional = (notional === undefined) ? amount : notional;
2567
+ notional = (notional === undefined) ? this.numberToString(amount) : notional;
2568
2568
  }
2569
2569
  request['notional'] = this.decimalToPrecision(notional, number.TRUNCATE, market['precision']['price'], this.precisionMode);
2570
2570
  }
@@ -2151,10 +2151,8 @@ class bitstamp extends bitstamp$1 {
2151
2151
  */
2152
2152
  await this.loadMarkets();
2153
2153
  const currency = this.currency(code);
2154
- amount = this.currencyToPrecision(code, amount);
2155
- amount = this.parseToNumeric(amount);
2156
2154
  const request = {
2157
- 'amount': amount,
2155
+ 'amount': this.parseToNumeric(this.currencyToPrecision(code, amount)),
2158
2156
  'currency': currency['id'].toUpperCase(),
2159
2157
  };
2160
2158
  let response = undefined;
@@ -346,6 +346,7 @@ class bybit extends bybit$1 {
346
346
  'v5/asset/coin/query-info': 28,
347
347
  'v5/asset/withdraw/query-record': 10,
348
348
  'v5/asset/withdraw/withdrawable-amount': 5,
349
+ 'v5/asset/withdraw/vasp/list': 5,
349
350
  // user
350
351
  'v5/user/query-sub-members': 5,
351
352
  'v5/user/query-api': 5,