ccxt 4.1.53 → 4.1.55

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 (185) hide show
  1. package/README.md +8 -7
  2. package/dist/ccxt.browser.js +2329 -818
  3. package/dist/ccxt.browser.min.js +10 -10
  4. package/dist/cjs/ccxt.js +4 -1
  5. package/dist/cjs/src/abstract/p2b.js +9 -0
  6. package/dist/cjs/src/ace.js +2 -2
  7. package/dist/cjs/src/alpaca.js +1 -1
  8. package/dist/cjs/src/base/Exchange.js +25 -62
  9. package/dist/cjs/src/base/errors.js +1 -1
  10. package/dist/cjs/src/bigone.js +1 -6
  11. package/dist/cjs/src/binance.js +10 -3
  12. package/dist/cjs/src/bingx.js +1 -1
  13. package/dist/cjs/src/bitget.js +670 -405
  14. package/dist/cjs/src/bitmart.js +29 -62
  15. package/dist/cjs/src/bitmex.js +2 -2
  16. package/dist/cjs/src/bittrex.js +1 -3
  17. package/dist/cjs/src/coinbase.js +53 -3
  18. package/dist/cjs/src/coinex.js +23 -33
  19. package/dist/cjs/src/coinone.js +2 -2
  20. package/dist/cjs/src/digifinex.js +2 -2
  21. package/dist/cjs/src/idex.js +2 -2
  22. package/dist/cjs/src/kuna.js +6 -0
  23. package/dist/cjs/src/p2b.js +1246 -0
  24. package/dist/cjs/src/phemex.js +8 -8
  25. package/dist/cjs/src/poloniex.js +3 -2
  26. package/dist/cjs/src/poloniexfutures.js +1 -1
  27. package/dist/cjs/src/pro/hitbtc.js +1 -1
  28. package/dist/cjs/src/tidex.js +2 -2
  29. package/dist/cjs/src/timex.js +1 -1
  30. package/dist/cjs/src/whitebit.js +2 -2
  31. package/js/ccxt.d.ts +5 -2
  32. package/js/ccxt.js +4 -2
  33. package/js/src/abstract/binance.d.ts +1 -0
  34. package/js/src/abstract/binancecoinm.d.ts +1 -0
  35. package/js/src/abstract/binanceus.d.ts +1 -0
  36. package/js/src/abstract/binanceusdm.d.ts +1 -0
  37. package/js/src/abstract/bitget.d.ts +495 -254
  38. package/js/src/abstract/coinbase.d.ts +2 -0
  39. package/js/src/abstract/p2b.d.ts +25 -0
  40. package/js/src/abstract/p2b.js +11 -0
  41. package/js/src/ace.d.ts +7 -7
  42. package/js/src/ace.js +2 -2
  43. package/js/src/alpaca.d.ts +4 -4
  44. package/js/src/alpaca.js +1 -1
  45. package/js/src/ascendex.d.ts +26 -26
  46. package/js/src/base/Exchange.d.ts +48 -48
  47. package/js/src/base/Exchange.js +25 -62
  48. package/js/src/base/Precise.d.ts +13 -12
  49. package/js/src/base/errorHierarchy.d.ts +10 -9
  50. package/js/src/base/errorHierarchy.js +10 -9
  51. package/js/src/base/errors.d.ts +1 -1
  52. package/js/src/base/errors.js +1 -1
  53. package/js/src/base/functions/type.d.ts +18 -18
  54. package/js/src/base/types.d.ts +27 -23
  55. package/js/src/bigone.d.ts +9 -9
  56. package/js/src/bigone.js +1 -6
  57. package/js/src/binance.d.ts +57 -100
  58. package/js/src/binance.js +10 -3
  59. package/js/src/binancecoinm.d.ts +2 -2
  60. package/js/src/binanceusdm.d.ts +2 -2
  61. package/js/src/bingx.d.ts +22 -22
  62. package/js/src/bingx.js +1 -1
  63. package/js/src/bit2c.d.ts +7 -7
  64. package/js/src/bitbank.d.ts +7 -7
  65. package/js/src/bitbns.d.ts +6 -6
  66. package/js/src/bitfinex.d.ts +12 -12
  67. package/js/src/bitfinex2.d.ts +19 -19
  68. package/js/src/bitflyer.d.ts +8 -8
  69. package/js/src/bitforex.d.ts +5 -5
  70. package/js/src/bitget.d.ts +44 -44
  71. package/js/src/bitget.js +670 -405
  72. package/js/src/bithumb.d.ts +8 -8
  73. package/js/src/bitmart.d.ts +41 -36
  74. package/js/src/bitmart.js +29 -62
  75. package/js/src/bitmex.d.ts +21 -21
  76. package/js/src/bitmex.js +2 -2
  77. package/js/src/bitopro.d.ts +10 -10
  78. package/js/src/bitpanda.d.ts +10 -10
  79. package/js/src/bitrue.d.ts +11 -11
  80. package/js/src/bitso.d.ts +9 -9
  81. package/js/src/bitstamp.d.ts +13 -13
  82. package/js/src/bittrex.d.ts +14 -14
  83. package/js/src/bittrex.js +1 -3
  84. package/js/src/bitvavo.d.ts +9 -9
  85. package/js/src/bl3p.d.ts +3 -3
  86. package/js/src/blockchaincom.d.ts +6 -6
  87. package/js/src/btcalpha.d.ts +8 -8
  88. package/js/src/btcbox.d.ts +4 -4
  89. package/js/src/btcmarkets.d.ts +7 -7
  90. package/js/src/btcturk.d.ts +7 -7
  91. package/js/src/bybit.d.ts +36 -79
  92. package/js/src/cex.d.ts +6 -6
  93. package/js/src/coinbase.d.ts +16 -15
  94. package/js/src/coinbase.js +53 -3
  95. package/js/src/coinbasepro.d.ts +10 -10
  96. package/js/src/coincheck.d.ts +5 -5
  97. package/js/src/coinex.d.ts +52 -46
  98. package/js/src/coinex.js +23 -33
  99. package/js/src/coinlist.d.ts +14 -14
  100. package/js/src/coinmate.d.ts +5 -5
  101. package/js/src/coinone.d.ts +5 -5
  102. package/js/src/coinone.js +2 -2
  103. package/js/src/coinsph.d.ts +13 -13
  104. package/js/src/coinspot.d.ts +4 -4
  105. package/js/src/cryptocom.d.ts +19 -19
  106. package/js/src/currencycom.d.ts +14 -14
  107. package/js/src/delta.d.ts +29 -72
  108. package/js/src/deribit.d.ts +21 -21
  109. package/js/src/digifinex.d.ts +39 -39
  110. package/js/src/digifinex.js +2 -2
  111. package/js/src/exmo.d.ts +15 -15
  112. package/js/src/gate.d.ts +46 -89
  113. package/js/src/gemini.d.ts +8 -8
  114. package/js/src/hitbtc.d.ts +28 -28
  115. package/js/src/hollaex.d.ts +13 -13
  116. package/js/src/htx.d.ts +38 -38
  117. package/js/src/huobijp.d.ts +10 -10
  118. package/js/src/idex.d.ts +7 -7
  119. package/js/src/idex.js +2 -2
  120. package/js/src/independentreserve.d.ts +4 -4
  121. package/js/src/indodax.d.ts +7 -7
  122. package/js/src/kraken.d.ts +17 -17
  123. package/js/src/krakenfutures.d.ts +15 -15
  124. package/js/src/kucoin.d.ts +24 -24
  125. package/js/src/kucoinfutures.d.ts +16 -16
  126. package/js/src/kuna.d.ts +11 -11
  127. package/js/src/kuna.js +2 -2
  128. package/js/src/latoken.d.ts +11 -11
  129. package/js/src/lbank.d.ts +11 -11
  130. package/js/src/luno.d.ts +7 -7
  131. package/js/src/lykke.d.ts +6 -6
  132. package/js/src/mercado.d.ts +6 -6
  133. package/js/src/mexc.d.ts +25 -25
  134. package/js/src/ndax.d.ts +10 -10
  135. package/js/src/novadax.d.ts +13 -13
  136. package/js/src/oceanex.d.ts +8 -8
  137. package/js/src/okcoin.d.ts +16 -16
  138. package/js/src/okx.d.ts +50 -93
  139. package/js/src/p2b.d.ts +35 -0
  140. package/js/src/p2b.js +1246 -0
  141. package/js/src/paymium.d.ts +10 -10
  142. package/js/src/phemex.d.ts +34 -34
  143. package/js/src/phemex.js +8 -8
  144. package/js/src/poloniex.d.ts +14 -14
  145. package/js/src/poloniex.js +3 -2
  146. package/js/src/poloniexfutures.d.ts +10 -10
  147. package/js/src/poloniexfutures.js +1 -1
  148. package/js/src/pro/binance.d.ts +5 -5
  149. package/js/src/pro/bitget.d.ts +3 -3
  150. package/js/src/pro/bitpanda.d.ts +3 -3
  151. package/js/src/pro/bybit.d.ts +4 -4
  152. package/js/src/pro/cex.d.ts +2 -2
  153. package/js/src/pro/coinbasepro.d.ts +4 -4
  154. package/js/src/pro/coinex.d.ts +2 -2
  155. package/js/src/pro/cryptocom.d.ts +3 -3
  156. package/js/src/pro/currencycom.d.ts +1 -1
  157. package/js/src/pro/gate.d.ts +4 -4
  158. package/js/src/pro/hitbtc.d.ts +2 -2
  159. package/js/src/pro/hitbtc.js +1 -1
  160. package/js/src/pro/htx.d.ts +2 -2
  161. package/js/src/pro/kraken.d.ts +1 -1
  162. package/js/src/pro/krakenfutures.d.ts +3 -3
  163. package/js/src/pro/kucoin.d.ts +2 -2
  164. package/js/src/pro/okx.d.ts +4 -4
  165. package/js/src/pro/poloniex.d.ts +2 -2
  166. package/js/src/pro/poloniexfutures.d.ts +1 -1
  167. package/js/src/pro/wazirx.d.ts +2 -2
  168. package/js/src/pro/woo.d.ts +2 -2
  169. package/js/src/probit.d.ts +13 -13
  170. package/js/src/tidex.d.ts +7 -7
  171. package/js/src/tidex.js +2 -2
  172. package/js/src/timex.d.ts +13 -13
  173. package/js/src/timex.js +1 -1
  174. package/js/src/tokocrypto.d.ts +8 -8
  175. package/js/src/upbit.d.ts +21 -21
  176. package/js/src/wavesexchange.d.ts +10 -10
  177. package/js/src/wazirx.d.ts +7 -7
  178. package/js/src/whitebit.d.ts +17 -17
  179. package/js/src/whitebit.js +2 -2
  180. package/js/src/woo.d.ts +23 -23
  181. package/js/src/yobit.d.ts +6 -6
  182. package/js/src/zaif.d.ts +6 -6
  183. package/js/src/zonda.d.ts +16 -16
  184. package/package.json +11 -6
  185. package/skip-tests.json +7 -0
package/dist/cjs/ccxt.js CHANGED
@@ -99,6 +99,7 @@ var okcoin = require('./src/okcoin.js');
99
99
  var okex = require('./src/okex.js');
100
100
  var okex5 = require('./src/okex5.js');
101
101
  var okx = require('./src/okx.js');
102
+ var p2b = require('./src/p2b.js');
102
103
  var paymium = require('./src/paymium.js');
103
104
  var phemex = require('./src/phemex.js');
104
105
  var poloniex = require('./src/poloniex.js');
@@ -179,7 +180,7 @@ var woo$1 = require('./src/pro/woo.js');
179
180
 
180
181
  //-----------------------------------------------------------------------------
181
182
  // this is updated by vss.js when building
182
- const version = '4.1.53';
183
+ const version = '4.1.55';
183
184
  Exchange["default"].ccxtVersion = version;
184
185
  const exchanges = {
185
186
  'ace': ace,
@@ -269,6 +270,7 @@ const exchanges = {
269
270
  'okex': okex,
270
271
  'okex5': okex5,
271
272
  'okx': okx,
273
+ 'p2b': p2b,
272
274
  'paymium': paymium,
273
275
  'phemex': phemex,
274
276
  'poloniex': poloniex,
@@ -477,6 +479,7 @@ exports.okcoin = okcoin;
477
479
  exports.okex = okex;
478
480
  exports.okex5 = okex5;
479
481
  exports.okx = okx;
482
+ exports.p2b = p2b;
480
483
  exports.paymium = paymium;
481
484
  exports.phemex = phemex;
482
485
  exports.poloniex = poloniex;
@@ -0,0 +1,9 @@
1
+ 'use strict';
2
+
3
+ var Exchange$1 = require('../base/Exchange.js');
4
+
5
+ // -------------------------------------------------------------------------------
6
+ class Exchange extends Exchange$1["default"] {
7
+ }
8
+
9
+ module.exports = Exchange;
@@ -511,7 +511,7 @@ class ace extends ace$1 {
511
511
  // "type": 1
512
512
  // }
513
513
  //
514
- let id = undefined;
514
+ let id;
515
515
  let timestamp = undefined;
516
516
  let symbol = undefined;
517
517
  let price = undefined;
@@ -791,7 +791,7 @@ class ace extends ace$1 {
791
791
  symbol = baseId + '/' + quoteId;
792
792
  }
793
793
  let side = undefined;
794
- const tradeSide = this.safeNumber(trade, 'buyOrSell');
794
+ const tradeSide = this.safeInteger(trade, 'buyOrSell');
795
795
  if (tradeSide !== undefined) {
796
796
  side = (tradeSide === 1) ? 'buy' : 'sell';
797
797
  }
@@ -761,7 +761,7 @@ class alpaca extends alpaca$1 {
761
761
  const datetime = this.safeString(trade, 't');
762
762
  const timestamp = this.parse8601(datetime);
763
763
  const alpacaSide = this.safeString(trade, 'tks');
764
- let side = undefined;
764
+ let side;
765
765
  if (alpacaSide === 'B') {
766
766
  side = 'buy';
767
767
  }
@@ -1659,7 +1659,7 @@ class Exchange {
1659
1659
  else {
1660
1660
  this.markets_by_id[value['id']] = [value];
1661
1661
  }
1662
- const market = this.deepExtend(this.safeMarket(), {
1662
+ const market = this.deepExtend(this.safeMarketStructure(), {
1663
1663
  'precision': this.precision,
1664
1664
  'limits': this.limits,
1665
1665
  }, this.fees['trading'], value);
@@ -3030,53 +3030,14 @@ class Exchange {
3030
3030
  return {
3031
3031
  'id': currencyId,
3032
3032
  'code': code,
3033
+ 'precision': undefined,
3033
3034
  };
3034
3035
  }
3035
- safeMarket(marketId = undefined, market = undefined, delimiter = undefined, marketType = undefined) {
3036
- const result = {
3037
- 'id': marketId,
3036
+ safeMarket(marketId, market = undefined, delimiter = undefined, marketType = undefined) {
3037
+ const result = this.safeMarketStructure({
3038
3038
  'symbol': marketId,
3039
- 'base': undefined,
3040
- 'quote': undefined,
3041
- 'baseId': undefined,
3042
- 'quoteId': undefined,
3043
- 'active': undefined,
3044
- 'type': undefined,
3045
- 'linear': undefined,
3046
- 'inverse': undefined,
3047
- 'spot': false,
3048
- 'swap': false,
3049
- 'future': false,
3050
- 'option': false,
3051
- 'margin': false,
3052
- 'contract': false,
3053
- 'contractSize': undefined,
3054
- 'expiry': undefined,
3055
- 'expiryDatetime': undefined,
3056
- 'optionType': undefined,
3057
- 'strike': undefined,
3058
- 'settle': undefined,
3059
- 'settleId': undefined,
3060
- 'precision': {
3061
- 'amount': undefined,
3062
- 'price': undefined,
3063
- },
3064
- 'limits': {
3065
- 'amount': {
3066
- 'min': undefined,
3067
- 'max': undefined,
3068
- },
3069
- 'price': {
3070
- 'min': undefined,
3071
- 'max': undefined,
3072
- },
3073
- 'cost': {
3074
- 'min': undefined,
3075
- 'max': undefined,
3076
- },
3077
- },
3078
- 'info': undefined,
3079
- };
3039
+ 'marketId': marketId,
3040
+ });
3080
3041
  if (marketId !== undefined) {
3081
3042
  if ((this.markets_by_id !== undefined) && (marketId in this.markets_by_id)) {
3082
3043
  const markets = this.markets_by_id[marketId];
@@ -3085,13 +3046,17 @@ class Exchange {
3085
3046
  return markets[0];
3086
3047
  }
3087
3048
  else {
3088
- if ((marketType === undefined) && (market === undefined)) {
3089
- throw new errors.ArgumentsRequired(this.id + ' safeMarket() requires a fourth argument for ' + marketId + ' to disambiguate between different markets with the same market id');
3049
+ if (marketType === undefined) {
3050
+ if (market === undefined) {
3051
+ throw new errors.ArgumentsRequired(this.id + ' safeMarket() requires a fourth argument for ' + marketId + ' to disambiguate between different markets with the same market id');
3052
+ }
3053
+ else {
3054
+ marketType = market['type'];
3055
+ }
3090
3056
  }
3091
- const inferredMarketType = (marketType === undefined) ? market['type'] : marketType;
3092
3057
  for (let i = 0; i < markets.length; i++) {
3093
3058
  const currentMarket = markets[i];
3094
- if (currentMarket[inferredMarketType]) {
3059
+ if (currentMarket[marketType]) {
3095
3060
  return currentMarket;
3096
3061
  }
3097
3062
  }
@@ -3524,21 +3489,19 @@ class Exchange {
3524
3489
  if (this.markets === undefined) {
3525
3490
  throw new errors.ExchangeError(this.id + ' markets not loaded');
3526
3491
  }
3527
- if (typeof symbol === 'string') {
3528
- if (symbol in this.markets) {
3529
- return this.markets[symbol];
3530
- }
3531
- else if (symbol in this.markets_by_id) {
3532
- const markets = this.markets_by_id[symbol];
3533
- const defaultType = this.safeString2(this.options, 'defaultType', 'defaultSubType', 'spot');
3534
- for (let i = 0; i < markets.length; i++) {
3535
- const market = markets[i];
3536
- if (market[defaultType]) {
3537
- return market;
3538
- }
3492
+ if (symbol in this.markets) {
3493
+ return this.markets[symbol];
3494
+ }
3495
+ else if (symbol in this.markets_by_id) {
3496
+ const markets = this.markets_by_id[symbol];
3497
+ const defaultType = this.safeString2(this.options, 'defaultType', 'defaultSubType', 'spot');
3498
+ for (let i = 0; i < markets.length; i++) {
3499
+ const market = markets[i];
3500
+ if (market[defaultType]) {
3501
+ return market;
3539
3502
  }
3540
- return markets[0];
3541
3503
  }
3504
+ return markets[0];
3542
3505
  }
3543
3506
  throw new errors.BadSymbol(this.id + ' does not have market symbol ' + symbol);
3544
3507
  }
@@ -233,7 +233,7 @@ class RequestTimeout extends NetworkError {
233
233
  this.name = 'RequestTimeout';
234
234
  }
235
235
  }
236
- class OperationFailed extends NetworkError {
236
+ class OperationFailed extends BaseError {
237
237
  constructor(message) {
238
238
  super(message);
239
239
  this.name = 'OperationFailed';
@@ -827,12 +827,7 @@ class bigone extends bigone$1 {
827
827
  const takerOrderId = this.safeString(trade, 'taker_order_id');
828
828
  let orderId = undefined;
829
829
  if (makerOrderId !== undefined) {
830
- if (takerOrderId !== undefined) {
831
- orderId = [makerOrderId, takerOrderId];
832
- }
833
- else {
834
- orderId = makerOrderId;
835
- }
830
+ orderId = makerOrderId;
836
831
  }
837
832
  else if (takerOrderId !== undefined) {
838
833
  orderId = takerOrderId;
@@ -153,6 +153,7 @@ class binance extends binance$1 {
153
153
  'dapiPrivate': 'https://testnet.binancefuture.com/dapi/v1',
154
154
  'dapiPrivateV2': 'https://testnet.binancefuture.com/dapi/v2',
155
155
  'fapiPublic': 'https://testnet.binancefuture.com/fapi/v1',
156
+ 'fapiPublicV2': 'https://testnet.binancefuture.com/fapi/v2',
156
157
  'fapiPrivate': 'https://testnet.binancefuture.com/fapi/v1',
157
158
  'fapiPrivateV2': 'https://testnet.binancefuture.com/fapi/v2',
158
159
  'public': 'https://testnet.binance.vision/api/v3',
@@ -171,6 +172,7 @@ class binance extends binance$1 {
171
172
  'dapiPrivateV2': 'https://dapi.binance.com/dapi/v2',
172
173
  'dapiData': 'https://dapi.binance.com/futures/data',
173
174
  'fapiPublic': 'https://fapi.binance.com/fapi/v1',
175
+ 'fapiPublicV2': 'https://fapi.binance.com/fapi/v2',
174
176
  'fapiPrivate': 'https://fapi.binance.com/fapi/v1',
175
177
  'fapiData': 'https://fapi.binance.com/futures/data',
176
178
  'fapiPrivateV2': 'https://fapi.binance.com/fapi/v2',
@@ -788,6 +790,11 @@ class binance extends binance$1 {
788
790
  'listenKey': 1,
789
791
  },
790
792
  },
793
+ 'fapiPublicV2': {
794
+ 'get': {
795
+ 'ticker/price': 0,
796
+ },
797
+ },
791
798
  'fapiPrivateV2': {
792
799
  'get': {
793
800
  'account': 1,
@@ -3130,7 +3137,7 @@ class binance extends binance$1 {
3130
3137
  [type, params] = this.handleMarketTypeAndParams('fetchLastPrices', market, params);
3131
3138
  let response = undefined;
3132
3139
  if (this.isLinear(type, subType)) {
3133
- response = await this.fapiPublicGetTickerPrice(params);
3140
+ response = await this.fapiPublicV2GetTickerPrice(params);
3134
3141
  //
3135
3142
  // [
3136
3143
  // {
@@ -8907,9 +8914,9 @@ class binance extends binance$1 {
8907
8914
  // }
8908
8915
  //
8909
8916
  const timestamp = this.safeNumber(info, 'timestamp');
8910
- currency = this.safeString(info, 'asset');
8917
+ const currencyId = this.safeString(info, 'asset');
8911
8918
  return {
8912
- 'currency': this.safeCurrencyCode(currency),
8919
+ 'currency': this.safeCurrencyCode(currencyId, currency),
8913
8920
  'rate': this.safeNumber(info, 'dailyInterestRate'),
8914
8921
  'period': 86400000,
8915
8922
  'timestamp': timestamp,
@@ -57,7 +57,7 @@ class bingx extends bingx$1 {
57
57
  'fetchTransfers': true,
58
58
  'fetchWithdrawals': true,
59
59
  'setLeverage': true,
60
- 'setMagin': true,
60
+ 'setMargin': true,
61
61
  'setMarginMode': true,
62
62
  'transfer': true,
63
63
  },