ccxt 4.1.44 → 4.1.45

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 (206) hide show
  1. package/README.md +3 -3
  2. package/dist/ccxt.browser.js +542 -581
  3. package/dist/ccxt.browser.min.js +9 -9
  4. package/dist/cjs/ccxt.js +1 -1
  5. package/dist/cjs/src/ace.js +1 -3
  6. package/dist/cjs/src/ascendex.js +1 -3
  7. package/dist/cjs/src/bigone.js +2 -6
  8. package/dist/cjs/src/binance.js +16 -12
  9. package/dist/cjs/src/bit2c.js +2 -4
  10. package/dist/cjs/src/bitbns.js +5 -15
  11. package/dist/cjs/src/bitfinex.js +1 -3
  12. package/dist/cjs/src/bitfinex2.js +1 -3
  13. package/dist/cjs/src/bitflyer.js +4 -12
  14. package/dist/cjs/src/bitforex.js +4 -8
  15. package/dist/cjs/src/bithumb.js +4 -10
  16. package/dist/cjs/src/bitmart.js +64 -59
  17. package/dist/cjs/src/bitmex.js +2 -6
  18. package/dist/cjs/src/bitopro.js +6 -16
  19. package/dist/cjs/src/bitrue.js +6 -14
  20. package/dist/cjs/src/bitvavo.js +3 -9
  21. package/dist/cjs/src/btctradeua.js +2 -4
  22. package/dist/cjs/src/bybit.js +4 -0
  23. package/dist/cjs/src/cex.js +2 -4
  24. package/dist/cjs/src/coinbasepro.js +2 -2
  25. package/dist/cjs/src/coinex.js +7 -24
  26. package/dist/cjs/src/coinfalcon.js +1 -3
  27. package/dist/cjs/src/coinmate.js +2 -4
  28. package/dist/cjs/src/coinone.js +2 -6
  29. package/dist/cjs/src/coinsph.js +5 -13
  30. package/dist/cjs/src/currencycom.js +2 -6
  31. package/dist/cjs/src/gate.js +2 -6
  32. package/dist/cjs/src/gemini.js +1 -3
  33. package/dist/cjs/src/hitbtc.js +290 -100
  34. package/dist/cjs/src/hollaex.js +1 -3
  35. package/dist/cjs/src/huobi.js +3 -12
  36. package/dist/cjs/src/huobijp.js +1 -3
  37. package/dist/cjs/src/indodax.js +4 -10
  38. package/dist/cjs/src/kucoinfutures.js +2 -7
  39. package/dist/cjs/src/kuna.js +1 -0
  40. package/dist/cjs/src/luno.js +1 -3
  41. package/dist/cjs/src/mercado.js +7 -17
  42. package/dist/cjs/src/mexc.js +5 -15
  43. package/dist/cjs/src/oceanex.js +2 -4
  44. package/dist/cjs/src/okx.js +14 -19
  45. package/dist/cjs/src/phemex.js +12 -33
  46. package/dist/cjs/src/poloniexfutures.js +2 -6
  47. package/dist/cjs/src/pro/bitmart.js +2 -4
  48. package/dist/cjs/src/pro/bitrue.js +0 -4
  49. package/dist/cjs/src/pro/bitstamp.js +2 -4
  50. package/dist/cjs/src/pro/bitvavo.js +3 -7
  51. package/dist/cjs/src/pro/cex.js +2 -6
  52. package/dist/cjs/src/pro/whitebit.js +3 -7
  53. package/dist/cjs/src/probit.js +2 -6
  54. package/dist/cjs/src/tokocrypto.js +3 -7
  55. package/dist/cjs/src/wavesexchange.js +2 -4
  56. package/dist/cjs/src/wazirx.js +4 -10
  57. package/dist/cjs/src/whitebit.js +3 -7
  58. package/dist/cjs/src/woo.js +0 -3
  59. package/dist/cjs/src/yobit.js +3 -7
  60. package/js/ccxt.d.ts +1 -1
  61. package/js/ccxt.js +1 -1
  62. package/js/src/abstract/bequant.d.ts +37 -7
  63. package/js/src/abstract/binance.d.ts +1 -0
  64. package/js/src/abstract/binancecoinm.d.ts +1 -0
  65. package/js/src/abstract/binanceus.d.ts +1 -0
  66. package/js/src/abstract/binanceusdm.d.ts +1 -0
  67. package/js/src/abstract/bitcoincom.d.ts +37 -7
  68. package/js/src/abstract/bybit.d.ts +3 -0
  69. package/js/src/abstract/fmfwio.d.ts +37 -7
  70. package/js/src/abstract/hitbtc.d.ts +37 -7
  71. package/js/src/abstract/hitbtc3.d.ts +37 -7
  72. package/js/src/abstract/okex.d.ts +6 -1
  73. package/js/src/abstract/okex5.d.ts +6 -1
  74. package/js/src/abstract/okx.d.ts +6 -1
  75. package/js/src/ace.d.ts +2 -2
  76. package/js/src/ace.js +2 -4
  77. package/js/src/alpaca.d.ts +2 -2
  78. package/js/src/ascendex.d.ts +2 -2
  79. package/js/src/ascendex.js +1 -3
  80. package/js/src/bigone.d.ts +2 -2
  81. package/js/src/bigone.js +3 -7
  82. package/js/src/binance.d.ts +2 -2
  83. package/js/src/binance.js +16 -12
  84. package/js/src/bingx.d.ts +2 -2
  85. package/js/src/bit2c.d.ts +2 -2
  86. package/js/src/bit2c.js +3 -5
  87. package/js/src/bitbank.d.ts +2 -2
  88. package/js/src/bitbns.d.ts +2 -2
  89. package/js/src/bitbns.js +5 -15
  90. package/js/src/bitfinex.d.ts +2 -2
  91. package/js/src/bitfinex.js +1 -3
  92. package/js/src/bitfinex2.js +1 -3
  93. package/js/src/bitflyer.d.ts +2 -2
  94. package/js/src/bitflyer.js +4 -12
  95. package/js/src/bitforex.d.ts +2 -2
  96. package/js/src/bitforex.js +5 -9
  97. package/js/src/bitget.d.ts +2 -2
  98. package/js/src/bithumb.d.ts +2 -2
  99. package/js/src/bithumb.js +4 -10
  100. package/js/src/bitmart.d.ts +2 -2
  101. package/js/src/bitmart.js +64 -59
  102. package/js/src/bitmex.js +2 -6
  103. package/js/src/bitopro.d.ts +2 -2
  104. package/js/src/bitopro.js +6 -16
  105. package/js/src/bitpanda.d.ts +2 -2
  106. package/js/src/bitrue.d.ts +2 -2
  107. package/js/src/bitrue.js +6 -14
  108. package/js/src/bitso.d.ts +2 -2
  109. package/js/src/bitstamp.d.ts +2 -2
  110. package/js/src/bitstamp1.d.ts +2 -2
  111. package/js/src/bittrex.d.ts +2 -2
  112. package/js/src/bitvavo.d.ts +2 -2
  113. package/js/src/bitvavo.js +3 -9
  114. package/js/src/bl3p.d.ts +2 -2
  115. package/js/src/blockchaincom.d.ts +4 -4
  116. package/js/src/btcalpha.d.ts +2 -2
  117. package/js/src/btcbox.d.ts +2 -2
  118. package/js/src/btcmarkets.d.ts +2 -2
  119. package/js/src/btctradeua.d.ts +2 -2
  120. package/js/src/btctradeua.js +3 -5
  121. package/js/src/btcturk.d.ts +2 -2
  122. package/js/src/bybit.d.ts +2 -2
  123. package/js/src/bybit.js +4 -0
  124. package/js/src/cex.d.ts +2 -2
  125. package/js/src/cex.js +2 -4
  126. package/js/src/coinbase.d.ts +2 -2
  127. package/js/src/coinbasepro.d.ts +2 -2
  128. package/js/src/coinbasepro.js +2 -2
  129. package/js/src/coincheck.d.ts +2 -2
  130. package/js/src/coinex.js +7 -24
  131. package/js/src/coinfalcon.d.ts +2 -2
  132. package/js/src/coinfalcon.js +2 -4
  133. package/js/src/coinlist.d.ts +12 -12
  134. package/js/src/coinmate.d.ts +3 -3
  135. package/js/src/coinmate.js +3 -5
  136. package/js/src/coinone.d.ts +2 -2
  137. package/js/src/coinone.js +2 -6
  138. package/js/src/coinsph.d.ts +2 -2
  139. package/js/src/coinsph.js +5 -13
  140. package/js/src/coinspot.d.ts +2 -2
  141. package/js/src/cryptocom.d.ts +2 -2
  142. package/js/src/currencycom.d.ts +2 -2
  143. package/js/src/currencycom.js +2 -6
  144. package/js/src/delta.d.ts +2 -2
  145. package/js/src/deribit.d.ts +3 -3
  146. package/js/src/digifinex.d.ts +2 -2
  147. package/js/src/gate.d.ts +2 -2
  148. package/js/src/gate.js +2 -6
  149. package/js/src/gemini.d.ts +3 -3
  150. package/js/src/gemini.js +1 -3
  151. package/js/src/hitbtc.d.ts +3 -0
  152. package/js/src/hitbtc.js +291 -101
  153. package/js/src/hollaex.js +1 -3
  154. package/js/src/huobi.d.ts +2 -2
  155. package/js/src/huobi.js +3 -12
  156. package/js/src/huobijp.d.ts +2 -2
  157. package/js/src/huobijp.js +2 -4
  158. package/js/src/independentreserve.d.ts +2 -2
  159. package/js/src/indodax.d.ts +2 -2
  160. package/js/src/indodax.js +4 -10
  161. package/js/src/kraken.d.ts +2 -2
  162. package/js/src/krakenfutures.d.ts +2 -2
  163. package/js/src/kucoin.d.ts +2 -2
  164. package/js/src/kucoinfutures.d.ts +2 -2
  165. package/js/src/kucoinfutures.js +2 -7
  166. package/js/src/kuna.d.ts +3 -3
  167. package/js/src/kuna.js +1 -0
  168. package/js/src/latoken.d.ts +2 -2
  169. package/js/src/lbank2.d.ts +2 -2
  170. package/js/src/luno.d.ts +2 -2
  171. package/js/src/luno.js +1 -3
  172. package/js/src/lykke.d.ts +2 -2
  173. package/js/src/mercado.d.ts +2 -2
  174. package/js/src/mercado.js +7 -17
  175. package/js/src/mexc.js +5 -15
  176. package/js/src/novadax.d.ts +2 -2
  177. package/js/src/oceanex.d.ts +4 -4
  178. package/js/src/oceanex.js +2 -4
  179. package/js/src/okcoin.d.ts +2 -2
  180. package/js/src/okx.d.ts +2 -2
  181. package/js/src/okx.js +14 -19
  182. package/js/src/paymium.d.ts +2 -2
  183. package/js/src/phemex.js +12 -33
  184. package/js/src/poloniexfutures.d.ts +2 -2
  185. package/js/src/poloniexfutures.js +2 -6
  186. package/js/src/pro/bitmart.js +2 -4
  187. package/js/src/pro/bitrue.js +0 -4
  188. package/js/src/pro/bitstamp.js +3 -5
  189. package/js/src/pro/bitvavo.js +4 -8
  190. package/js/src/pro/cex.js +3 -7
  191. package/js/src/pro/whitebit.js +4 -8
  192. package/js/src/probit.d.ts +2 -2
  193. package/js/src/probit.js +3 -7
  194. package/js/src/timex.d.ts +2 -2
  195. package/js/src/tokocrypto.d.ts +2 -2
  196. package/js/src/tokocrypto.js +4 -8
  197. package/js/src/wavesexchange.js +3 -5
  198. package/js/src/wazirx.d.ts +2 -2
  199. package/js/src/wazirx.js +5 -11
  200. package/js/src/whitebit.d.ts +2 -2
  201. package/js/src/whitebit.js +3 -7
  202. package/js/src/woo.d.ts +2 -2
  203. package/js/src/woo.js +1 -4
  204. package/js/src/yobit.js +3 -7
  205. package/js/src/zaif.d.ts +2 -2
  206. package/package.json +1 -1
@@ -1,5 +1,5 @@
1
1
  import Exchange from './abstract/bitbank.js';
2
- import { Balances, Int, OHLCV, Order, OrderSide, OrderType, Ticker, Trade, Transaction } from './base/types.js';
2
+ import { Balances, Int, OHLCV, Order, OrderBook, OrderSide, OrderType, Ticker, Trade, Transaction } from './base/types.js';
3
3
  /**
4
4
  * @class bitbank
5
5
  * @extends Exchange
@@ -9,7 +9,7 @@ export default class bitbank extends Exchange {
9
9
  fetchMarkets(params?: {}): Promise<any[]>;
10
10
  parseTicker(ticker: any, market?: any): Ticker;
11
11
  fetchTicker(symbol: string, params?: {}): Promise<Ticker>;
12
- fetchOrderBook(symbol: string, limit?: Int, params?: {}): Promise<import("./base/types.js").OrderBook>;
12
+ fetchOrderBook(symbol: string, limit?: Int, params?: {}): Promise<OrderBook>;
13
13
  parseTrade(trade: any, market?: any): Trade;
14
14
  fetchTrades(symbol: string, since?: Int, limit?: Int, params?: {}): Promise<Trade[]>;
15
15
  fetchTradingFees(params?: {}): Promise<{}>;
@@ -1,5 +1,5 @@
1
1
  import Exchange from './abstract/bitbns.js';
2
- import { Balances, Int, Order, OrderSide, OrderType, Ticker, Trade, Transaction } from './base/types.js';
2
+ import { Balances, Int, Order, OrderBook, OrderSide, OrderType, Ticker, Trade, Transaction } from './base/types.js';
3
3
  /**
4
4
  * @class bitbns
5
5
  * @extends Exchange
@@ -14,7 +14,7 @@ export default class bitbns extends Exchange {
14
14
  info: any;
15
15
  }>;
16
16
  fetchMarkets(params?: {}): Promise<any[]>;
17
- fetchOrderBook(symbol: string, limit?: Int, params?: {}): Promise<import("./base/types.js").OrderBook>;
17
+ fetchOrderBook(symbol: string, limit?: Int, params?: {}): Promise<OrderBook>;
18
18
  parseTicker(ticker: any, market?: any): Ticker;
19
19
  fetchTickers(symbols?: string[], params?: {}): Promise<import("./base/types.js").Dictionary<Ticker>>;
20
20
  parseBalance(response: any): Balances;
package/js/src/bitbns.js CHANGED
@@ -654,9 +654,7 @@ export default class bitbns extends Exchange {
654
654
  * @param {boolean} [params.trigger] true if cancelling a trigger order
655
655
  * @returns {object} An [order structure]{@link https://github.com/ccxt/ccxt/wiki/Manual#order-structure}
656
656
  */
657
- if (symbol === undefined) {
658
- throw new ArgumentsRequired(this.id + ' cancelOrder() requires a symbol argument');
659
- }
657
+ this.checkRequiredSymbol('cancelOrder', symbol);
660
658
  await this.loadMarkets();
661
659
  const market = this.market(symbol);
662
660
  const isTrigger = this.safeValue2(params, 'trigger', 'stop');
@@ -684,9 +682,7 @@ export default class bitbns extends Exchange {
684
682
  * @param {object} [params] extra parameters specific to the bitbns api endpoint
685
683
  * @returns {object} An [order structure]{@link https://github.com/ccxt/ccxt/wiki/Manual#order-structure}
686
684
  */
687
- if (symbol === undefined) {
688
- throw new ArgumentsRequired(this.id + ' fetchOrder() requires a symbol argument');
689
- }
685
+ this.checkRequiredSymbol('fetchOrder', symbol);
690
686
  await this.loadMarkets();
691
687
  const market = this.market(symbol);
692
688
  const request = {
@@ -741,9 +737,7 @@ export default class bitbns extends Exchange {
741
737
  * @param {boolean} [params.trigger] true if fetching trigger orders
742
738
  * @returns {Order[]} a list of [order structures]{@link https://github.com/ccxt/ccxt/wiki/Manual#order-structure}
743
739
  */
744
- if (symbol === undefined) {
745
- throw new ArgumentsRequired(this.id + ' fetchOpenOrders() requires a symbol argument');
746
- }
740
+ this.checkRequiredSymbol('fetchOpenOrders', symbol);
747
741
  await this.loadMarkets();
748
742
  const market = this.market(symbol);
749
743
  const isTrigger = this.safeValue2(params, 'trigger', 'stop');
@@ -871,9 +865,7 @@ export default class bitbns extends Exchange {
871
865
  * @param {object} [params] extra parameters specific to the bitbns api endpoint
872
866
  * @returns {Trade[]} a list of [trade structures]{@link https://github.com/ccxt/ccxt/wiki/Manual#trade-structure}
873
867
  */
874
- if (symbol === undefined) {
875
- throw new ArgumentsRequired(this.id + ' fetchMyTrades() requires a symbol argument');
876
- }
868
+ this.checkRequiredSymbol('fetchMyTrades', symbol);
877
869
  await this.loadMarkets();
878
870
  const market = this.market(symbol);
879
871
  const request = {
@@ -939,9 +931,7 @@ export default class bitbns extends Exchange {
939
931
  * @param {object} [params] extra parameters specific to the bitbns api endpoint
940
932
  * @returns {Trade[]} a list of [trade structures]{@link https://github.com/ccxt/ccxt/wiki/Manual#public-trades}
941
933
  */
942
- if (symbol === undefined) {
943
- throw new ArgumentsRequired(this.id + ' fetchTrades() requires a symbol argument');
944
- }
934
+ this.checkRequiredSymbol('fetchTrades', symbol);
945
935
  await this.loadMarkets();
946
936
  const market = this.market(symbol);
947
937
  const request = {
@@ -1,5 +1,5 @@
1
1
  import Exchange from './abstract/bitfinex.js';
2
- import { Int, OHLCV, Order, OrderSide, OrderType, Ticker, Trade, Transaction } from './base/types.js';
2
+ import { Int, OHLCV, Order, OrderBook, OrderSide, OrderType, Ticker, Trade, Transaction } from './base/types.js';
3
3
  /**
4
4
  * @class bitfinex
5
5
  * @extends Exchange
@@ -39,7 +39,7 @@ export default class bitfinex extends Exchange {
39
39
  };
40
40
  parseTransferStatus(status: any): string;
41
41
  convertDerivativesId(currencyId: any, type: any): any;
42
- fetchOrderBook(symbol: string, limit?: Int, params?: {}): Promise<import("./base/types.js").OrderBook>;
42
+ fetchOrderBook(symbol: string, limit?: Int, params?: {}): Promise<OrderBook>;
43
43
  fetchTickers(symbols?: string[], params?: {}): Promise<import("./base/types.js").Dictionary<Ticker>>;
44
44
  fetchTicker(symbol: string, params?: {}): Promise<Ticker>;
45
45
  parseTicker(ticker: any, market?: any): Ticker;
@@ -1026,9 +1026,7 @@ export default class bitfinex extends Exchange {
1026
1026
  * @param {object} [params] extra parameters specific to the bitfinex api endpoint
1027
1027
  * @returns {Trade[]} a list of [trade structures]{@link https://github.com/ccxt/ccxt/wiki/Manual#trade-structure}
1028
1028
  */
1029
- if (symbol === undefined) {
1030
- throw new ArgumentsRequired(this.id + ' fetchMyTrades() requires a `symbol` argument');
1031
- }
1029
+ this.checkRequiredSymbol('fetchMyTrades', symbol);
1032
1030
  await this.loadMarkets();
1033
1031
  const market = this.market(symbol);
1034
1032
  const request = {
@@ -1901,9 +1901,7 @@ export default class bitfinex2 extends Exchange {
1901
1901
  * @param {object} [params] extra parameters specific to the bitfinex2 api endpoint
1902
1902
  * @returns {object[]} a list of [trade structures]{@link https://github.com/ccxt/ccxt/wiki/Manual#trade-structure}
1903
1903
  */
1904
- if (symbol === undefined) {
1905
- throw new ArgumentsRequired(this.id + ' fetchOrderTrades() requires a symbol argument');
1906
- }
1904
+ this.checkRequiredSymbol('fetchOrderTrades', symbol);
1907
1905
  await this.loadMarkets();
1908
1906
  const market = this.market(symbol);
1909
1907
  const orderId = parseInt(id);
@@ -1,5 +1,5 @@
1
1
  import Exchange from './abstract/bitflyer.js';
2
- import { Balances, Int, Order, OrderSide, OrderType, Ticker, Trade, Transaction } from './base/types.js';
2
+ import { Balances, Int, Order, OrderBook, OrderSide, OrderType, Ticker, Trade, Transaction } from './base/types.js';
3
3
  /**
4
4
  * @class bitflyer
5
5
  * @extends Exchange
@@ -11,7 +11,7 @@ export default class bitflyer extends Exchange {
11
11
  fetchMarkets(params?: {}): Promise<any[]>;
12
12
  parseBalance(response: any): Balances;
13
13
  fetchBalance(params?: {}): Promise<Balances>;
14
- fetchOrderBook(symbol: string, limit?: Int, params?: {}): Promise<import("./base/types.js").OrderBook>;
14
+ fetchOrderBook(symbol: string, limit?: Int, params?: {}): Promise<OrderBook>;
15
15
  parseTicker(ticker: any, market?: any): Ticker;
16
16
  fetchTicker(symbol: string, params?: {}): Promise<Ticker>;
17
17
  parseTrade(trade: any, market?: any): Trade;
@@ -580,9 +580,7 @@ export default class bitflyer extends Exchange {
580
580
  * @param {object} [params] extra parameters specific to the bitflyer api endpoint
581
581
  * @returns {object} An [order structure]{@link https://github.com/ccxt/ccxt/wiki/Manual#order-structure}
582
582
  */
583
- if (symbol === undefined) {
584
- throw new ArgumentsRequired(this.id + ' cancelOrder() requires a `symbol` argument');
585
- }
583
+ this.checkRequiredSymbol('cancelOrder', symbol);
586
584
  await this.loadMarkets();
587
585
  const request = {
588
586
  'product_code': this.marketId(symbol),
@@ -658,9 +656,7 @@ export default class bitflyer extends Exchange {
658
656
  * @param {object} [params] extra parameters specific to the bitflyer api endpoint
659
657
  * @returns {Order[]} a list of [order structures]{@link https://github.com/ccxt/ccxt/wiki/Manual#order-structure}
660
658
  */
661
- if (symbol === undefined) {
662
- throw new ArgumentsRequired(this.id + ' fetchOrders() requires a `symbol` argument');
663
- }
659
+ this.checkRequiredSymbol('fetchOrders', symbol);
664
660
  await this.loadMarkets();
665
661
  const market = this.market(symbol);
666
662
  const request = {
@@ -718,9 +714,7 @@ export default class bitflyer extends Exchange {
718
714
  * @param {object} [params] extra parameters specific to the bitflyer api endpoint
719
715
  * @returns {object} An [order structure]{@link https://github.com/ccxt/ccxt/wiki/Manual#order-structure}
720
716
  */
721
- if (symbol === undefined) {
722
- throw new ArgumentsRequired(this.id + ' fetchOrder() requires a `symbol` argument');
723
- }
717
+ this.checkRequiredSymbol('fetchOrder', symbol);
724
718
  const orders = await this.fetchOrders(symbol);
725
719
  const ordersById = this.indexBy(orders, 'id');
726
720
  if (id in ordersById) {
@@ -740,9 +734,7 @@ export default class bitflyer extends Exchange {
740
734
  * @param {object} [params] extra parameters specific to the bitflyer api endpoint
741
735
  * @returns {Trade[]} a list of [trade structures]{@link https://github.com/ccxt/ccxt/wiki/Manual#trade-structure}
742
736
  */
743
- if (symbol === undefined) {
744
- throw new ArgumentsRequired(this.id + ' fetchMyTrades() requires a `symbol` argument');
745
- }
737
+ this.checkRequiredSymbol('fetchMyTrades', symbol);
746
738
  await this.loadMarkets();
747
739
  const market = this.market(symbol);
748
740
  const request = {
@@ -1,5 +1,5 @@
1
1
  import Exchange from './abstract/bitforex.js';
2
- import { Balances, Int, OHLCV, Order, OrderSide, OrderType, Ticker, Trade } from './base/types.js';
2
+ import { Balances, Int, OHLCV, Order, OrderBook, OrderSide, OrderType, Ticker, Trade } from './base/types.js';
3
3
  /**
4
4
  * @class bitforex
5
5
  * @extends Exchange
@@ -16,7 +16,7 @@ export default class bitforex extends Exchange {
16
16
  fetchTicker(symbol: string, params?: {}): Promise<Ticker>;
17
17
  parseOHLCV(ohlcv: any, market?: any): OHLCV;
18
18
  fetchOHLCV(symbol: string, timeframe?: string, since?: Int, limit?: Int, params?: {}): Promise<OHLCV[]>;
19
- fetchOrderBook(symbol: string, limit?: Int, params?: {}): Promise<import("./base/types.js").OrderBook>;
19
+ fetchOrderBook(symbol: string, limit?: Int, params?: {}): Promise<OrderBook>;
20
20
  parseOrderStatus(status: any): any;
21
21
  parseSide(sideId: any): "buy" | "sell";
22
22
  parseOrder(order: any, market?: any): Order;
@@ -6,7 +6,7 @@
6
6
 
7
7
  // ---------------------------------------------------------------------------
8
8
  import Exchange from './abstract/bitforex.js';
9
- import { ExchangeError, ArgumentsRequired, AuthenticationError, OrderNotFound, InsufficientFunds, DDoSProtection, PermissionDenied, BadSymbol, InvalidOrder } from './base/errors.js';
9
+ import { ExchangeError, AuthenticationError, OrderNotFound, InsufficientFunds, DDoSProtection, PermissionDenied, BadSymbol, InvalidOrder } from './base/errors.js';
10
10
  import { TICK_SIZE } from './base/functions/number.js';
11
11
  import { sha256 } from './static_dependencies/noble-hashes/sha256.js';
12
12
  // ---------------------------------------------------------------------------
@@ -707,13 +707,11 @@ export default class bitforex extends Exchange {
707
707
  * @description fetch all unfilled currently open orders
708
708
  * @param {string} symbol unified market symbol
709
709
  * @param {int} [since] the earliest time in ms to fetch open orders for
710
- * @param {int} [limit] the maximum number of open orders structures to retrieve
710
+ * @param {int} [limit] the maximum number of open order structures to retrieve
711
711
  * @param {object} [params] extra parameters specific to the bitforex api endpoint
712
712
  * @returns {Order[]} a list of [order structures]{@link https://github.com/ccxt/ccxt/wiki/Manual#order-structure}
713
713
  */
714
- if (symbol === undefined) {
715
- throw new ArgumentsRequired(this.id + ' fetchMyTrades() requires a symbol argument');
716
- }
714
+ this.checkRequiredSymbol('fetchOpenOrders', symbol);
717
715
  await this.loadMarkets();
718
716
  const market = this.market(symbol);
719
717
  const request = {
@@ -730,13 +728,11 @@ export default class bitforex extends Exchange {
730
728
  * @description fetches information on multiple closed orders made by the user
731
729
  * @param {string} symbol unified market symbol of the market orders were made in
732
730
  * @param {int} [since] the earliest time in ms to fetch orders for
733
- * @param {int} [limit] the maximum number of orde structures to retrieve
731
+ * @param {int} [limit] the maximum number of order structures to retrieve
734
732
  * @param {object} [params] extra parameters specific to the bitforex api endpoint
735
733
  * @returns {Order[]} a list of [order structures]{@link https://github.com/ccxt/ccxt/wiki/Manual#order-structure}
736
734
  */
737
- if (symbol === undefined) {
738
- throw new ArgumentsRequired(this.id + ' fetchMyTrades() requires a symbol argument');
739
- }
735
+ this.checkRequiredSymbol('fetchClosedOrders', symbol);
740
736
  await this.loadMarkets();
741
737
  const market = this.market(symbol);
742
738
  const request = {
@@ -1,5 +1,5 @@
1
1
  import Exchange from './abstract/bitget.js';
2
- import { Int, OrderSide, OrderType, Trade, OHLCV, Order, FundingRateHistory, OrderRequest, FundingHistory, Balances, Transaction, Ticker } from './base/types.js';
2
+ import { Int, OrderSide, OrderType, Trade, OHLCV, Order, FundingRateHistory, OrderRequest, FundingHistory, Balances, Transaction, Ticker, OrderBook } from './base/types.js';
3
3
  /**
4
4
  * @class bitget
5
5
  * @extends Exchange
@@ -104,7 +104,7 @@ export default class bitget extends Exchange {
104
104
  network: string;
105
105
  info: any;
106
106
  };
107
- fetchOrderBook(symbol: string, limit?: Int, params?: {}): Promise<import("./base/types.js").OrderBook>;
107
+ fetchOrderBook(symbol: string, limit?: Int, params?: {}): Promise<OrderBook>;
108
108
  parseTicker(ticker: any, market?: any): Ticker;
109
109
  fetchTicker(symbol: string, params?: {}): Promise<Ticker>;
110
110
  fetchTickers(symbols?: string[], params?: {}): Promise<import("./base/types.js").Dictionary<Ticker>>;
@@ -1,5 +1,5 @@
1
1
  import Exchange from './abstract/bithumb.js';
2
- import { Balances, Int, OHLCV, Order, OrderSide, OrderType, Ticker, Trade, Transaction } from './base/types.js';
2
+ import { Balances, Int, OHLCV, Order, OrderBook, OrderSide, OrderType, Ticker, Trade, Transaction } from './base/types.js';
3
3
  /**
4
4
  * @class bithumb
5
5
  * @extends Exchange
@@ -11,7 +11,7 @@ export default class bithumb extends Exchange {
11
11
  fetchMarkets(params?: {}): Promise<any[]>;
12
12
  parseBalance(response: any): Balances;
13
13
  fetchBalance(params?: {}): Promise<Balances>;
14
- fetchOrderBook(symbol: string, limit?: Int, params?: {}): Promise<import("./base/types.js").OrderBook>;
14
+ fetchOrderBook(symbol: string, limit?: Int, params?: {}): Promise<OrderBook>;
15
15
  parseTicker(ticker: any, market?: any): Ticker;
16
16
  fetchTickers(symbols?: string[], params?: {}): Promise<import("./base/types.js").Dictionary<Ticker>>;
17
17
  fetchTicker(symbol: string, params?: {}): Promise<Ticker>;
package/js/src/bithumb.js CHANGED
@@ -719,9 +719,7 @@ export default class bithumb extends Exchange {
719
719
  * @param {object} [params] extra parameters specific to the bithumb api endpoint
720
720
  * @returns {object} An [order structure]{@link https://github.com/ccxt/ccxt/wiki/Manual#order-structure}
721
721
  */
722
- if (symbol === undefined) {
723
- throw new ArgumentsRequired(this.id + ' fetchOrder() requires a symbol argument');
724
- }
722
+ this.checkRequiredSymbol('fetchOrder', symbol);
725
723
  await this.loadMarkets();
726
724
  const market = this.market(symbol);
727
725
  const request = {
@@ -875,13 +873,11 @@ export default class bithumb extends Exchange {
875
873
  * @description fetch all unfilled currently open orders
876
874
  * @param {string} symbol unified market symbol
877
875
  * @param {int} [since] the earliest time in ms to fetch open orders for
878
- * @param {int} [limit] the maximum number of open orders structures to retrieve
876
+ * @param {int} [limit] the maximum number of open order structures to retrieve
879
877
  * @param {object} [params] extra parameters specific to the bithumb api endpoint
880
878
  * @returns {Order[]} a list of [order structures]{@link https://github.com/ccxt/ccxt/wiki/Manual#order-structure}
881
879
  */
882
- if (symbol === undefined) {
883
- throw new ArgumentsRequired(this.id + ' fetchOpenOrders() requires a symbol argument');
884
- }
880
+ this.checkRequiredSymbol('fetchOpenOrders', symbol);
885
881
  await this.loadMarkets();
886
882
  const market = this.market(symbol);
887
883
  if (limit === undefined) {
@@ -926,13 +922,11 @@ export default class bithumb extends Exchange {
926
922
  * @param {object} [params] extra parameters specific to the bithumb api endpoint
927
923
  * @returns {object} An [order structure]{@link https://github.com/ccxt/ccxt/wiki/Manual#order-structure}
928
924
  */
925
+ this.checkRequiredSymbol('cancelOrder', symbol);
929
926
  const side_in_params = ('side' in params);
930
927
  if (!side_in_params) {
931
928
  throw new ArgumentsRequired(this.id + ' cancelOrder() requires a `side` parameter (sell or buy)');
932
929
  }
933
- if (symbol === undefined) {
934
- throw new ArgumentsRequired(this.id + ' cancelOrder() requires a `symbol` argument');
935
- }
936
930
  const market = this.market(symbol);
937
931
  const side = (params['side'] === 'buy') ? 'bid' : 'ask';
938
932
  params = this.omit(params, ['side', 'currency']);
@@ -1,5 +1,5 @@
1
1
  import Exchange from './abstract/bitmart.js';
2
- import { Int, OrderSide, Balances, OrderType, OHLCV, Order, Trade, Transaction, Ticker } from './base/types.js';
2
+ import { Int, OrderSide, Balances, OrderType, OHLCV, Order, Trade, Transaction, Ticker, OrderBook } from './base/types.js';
3
3
  /**
4
4
  * @class bitmart
5
5
  * @extends Exchange
@@ -50,7 +50,7 @@ export default class bitmart extends Exchange {
50
50
  parseTicker(ticker: any, market?: any): Ticker;
51
51
  fetchTicker(symbol: string, params?: {}): Promise<Ticker>;
52
52
  fetchTickers(symbols?: string[], params?: {}): Promise<import("./base/types.js").Dictionary<Ticker>>;
53
- fetchOrderBook(symbol: string, limit?: Int, params?: {}): Promise<import("./base/types.js").OrderBook>;
53
+ fetchOrderBook(symbol: string, limit?: Int, params?: {}): Promise<OrderBook>;
54
54
  parseTrade(trade: any, market?: any): Trade;
55
55
  fetchTrades(symbol: string, since?: Int, limit?: Int, params?: {}): Promise<Trade[]>;
56
56
  parseOHLCV(ohlcv: any, market?: any): OHLCV;
package/js/src/bitmart.js CHANGED
@@ -1454,15 +1454,15 @@ export default class bitmart extends Exchange {
1454
1454
  //
1455
1455
  // spot
1456
1456
  //
1457
- // {
1458
- // "last_price":"0.034987",
1459
- // "timestamp":1598787420,
1460
- // "volume":"1.0198",
1461
- // "open":"0.035007",
1462
- // "close":"0.034987",
1463
- // "high":"0.035007",
1464
- // "low":"0.034986"
1465
- // }
1457
+ // [
1458
+ // "1699512060", // timestamp
1459
+ // "36746.49", // open
1460
+ // "36758.71", // high
1461
+ // "36736.13", // low
1462
+ // "36755.99", // close
1463
+ // "2.83965", // base volume
1464
+ // "104353.57" // quote volume
1465
+ // ]
1466
1466
  //
1467
1467
  // swap
1468
1468
  //
@@ -1479,7 +1479,7 @@ export default class bitmart extends Exchange {
1479
1479
  //
1480
1480
  // [
1481
1481
  // 1631056350, // timestamp
1482
- // "46532.83", // oopen
1482
+ // "46532.83", // open
1483
1483
  // "46555.71", // high
1484
1484
  // "46511.41", // low
1485
1485
  // "46555.71", // close
@@ -1499,10 +1499,10 @@ export default class bitmart extends Exchange {
1499
1499
  else {
1500
1500
  return [
1501
1501
  this.safeTimestamp(ohlcv, 'timestamp'),
1502
- this.safeNumber2(ohlcv, 'open', 'open_price'),
1503
- this.safeNumber2(ohlcv, 'high', 'high_price'),
1504
- this.safeNumber2(ohlcv, 'low', 'low_price'),
1505
- this.safeNumber2(ohlcv, 'close', 'close_price'),
1502
+ this.safeNumber(ohlcv, 'open_price'),
1503
+ this.safeNumber(ohlcv, 'high_price'),
1504
+ this.safeNumber(ohlcv, 'low_price'),
1505
+ this.safeNumber(ohlcv, 'close_price'),
1506
1506
  this.safeNumber(ohlcv, 'volume'),
1507
1507
  ];
1508
1508
  }
@@ -1512,21 +1512,27 @@ export default class bitmart extends Exchange {
1512
1512
  * @method
1513
1513
  * @name bitmart#fetchOHLCV
1514
1514
  * @description fetches historical candlestick data containing the open, high, low, and close price, and the volume of a market
1515
- * @see https://developer-pro.bitmart.com/en/spot/#get-k-line
1515
+ * @see https://developer-pro.bitmart.com/en/spot/#get-latest-k-line-v3
1516
1516
  * @see https://developer-pro.bitmart.com/en/futures/#get-k-line
1517
1517
  * @param {string} symbol unified symbol of the market to fetch OHLCV data for
1518
1518
  * @param {string} timeframe the length of time each candle represents
1519
1519
  * @param {int} [since] timestamp in ms of the earliest candle to fetch
1520
1520
  * @param {int} [limit] the maximum amount of candles to fetch
1521
1521
  * @param {object} [params] extra parameters specific to the bitmart api endpoint
1522
+ * @param {int} [params.until] timestamp of the latest candle in ms
1523
+ * @param {boolean} [params.paginate] *spot only* default false, when true will automatically paginate by calling this endpoint multiple times. See in the docs all the [availble parameters](https://github.com/ccxt/ccxt/wiki/Manual#pagination-params)
1522
1524
  * @returns {int[][]} A list of candles ordered as timestamp, open, high, low, close, volume
1523
1525
  */
1524
1526
  await this.loadMarkets();
1527
+ let paginate = false;
1528
+ [paginate, params] = this.handleOptionAndParams(params, 'fetchOHLCV', 'paginate', false);
1529
+ if (paginate) {
1530
+ return await this.fetchPaginatedCallDeterministic('fetchOHLCV', symbol, since, limit, timeframe, params, 200);
1531
+ }
1525
1532
  const market = this.market(symbol);
1526
- const type = market['type'];
1527
1533
  const duration = this.parseTimeframe(timeframe);
1528
1534
  const parsedTimeframe = this.safeInteger(this.timeframes, timeframe);
1529
- const request = {
1535
+ let request = {
1530
1536
  'symbol': market['id'],
1531
1537
  };
1532
1538
  if (parsedTimeframe !== undefined) {
@@ -1535,46 +1541,54 @@ export default class bitmart extends Exchange {
1535
1541
  else {
1536
1542
  request['step'] = timeframe;
1537
1543
  }
1538
- const maxLimit = 500;
1539
- if (limit === undefined) {
1540
- limit = maxLimit;
1541
- }
1542
- limit = Math.min(maxLimit, limit);
1543
- const now = this.parseToInt(this.milliseconds() / 1000);
1544
- const fromRequest = (type === 'spot') ? 'from' : 'start_time';
1545
- const toRequest = (type === 'spot') ? 'to' : 'end_time';
1546
- if (since === undefined) {
1547
- const start = now - limit * duration;
1548
- request[fromRequest] = start;
1549
- request[toRequest] = now;
1544
+ if (market['spot']) {
1545
+ [request, params] = this.handleUntilOption('before', request, params, 0.001);
1546
+ if (limit !== undefined) {
1547
+ request['limit'] = limit;
1548
+ }
1549
+ if (since !== undefined) {
1550
+ request['after'] = this.parseToInt((since / 1000)) - 1;
1551
+ }
1550
1552
  }
1551
1553
  else {
1552
- const start = this.parseToInt((since / 1000)) - 1;
1553
- const end = this.sum(start, limit * duration);
1554
- request[fromRequest] = start;
1555
- request[toRequest] = Math.min(end, now);
1554
+ const maxLimit = 1200;
1555
+ if (limit === undefined) {
1556
+ limit = maxLimit;
1557
+ }
1558
+ limit = Math.min(maxLimit, limit);
1559
+ const now = this.parseToInt(this.milliseconds() / 1000);
1560
+ if (since === undefined) {
1561
+ const start = now - limit * duration;
1562
+ request['start_time'] = start;
1563
+ request['end_time'] = now;
1564
+ }
1565
+ else {
1566
+ const start = this.parseToInt((since / 1000)) - 1;
1567
+ const end = this.sum(start, limit * duration);
1568
+ request['start_time'] = start;
1569
+ request['end_time'] = Math.min(end, now);
1570
+ }
1571
+ [request, params] = this.handleUntilOption('end_time', request, params, 0.001);
1556
1572
  }
1557
1573
  let response = undefined;
1558
- if (type === 'swap') {
1574
+ if (market['swap']) {
1559
1575
  response = await this.publicGetContractPublicKline(this.extend(request, params));
1560
1576
  }
1561
1577
  else {
1562
- response = await this.publicGetSpotQuotationV3Klines(this.extend(request, params));
1578
+ response = await this.publicGetSpotQuotationV3LiteKlines(this.extend(request, params));
1563
1579
  }
1564
1580
  //
1565
1581
  // spot
1566
1582
  //
1567
1583
  // {
1568
- // "message":"OK",
1569
- // "code":1000,
1570
- // "trace":"80d86378-ab4e-4c70-819e-b42146cf87ad",
1571
- // "data":{
1572
- // "klines":[
1573
- // {"last_price":"0.034987","timestamp":1598787420,"volume":"1.0198","open":"0.035007","close":"0.034987","high":"0.035007","low":"0.034986"},
1574
- // {"last_price":"0.034986","timestamp":1598787480,"volume":"0.3959","open":"0.034982","close":"0.034986","high":"0.034986","low":"0.034980"},
1575
- // {"last_price":"0.034978","timestamp":1598787540,"volume":"0.3259","open":"0.034987","close":"0.034978","high":"0.034987","low":"0.034977"},
1576
- // ]
1577
- // }
1584
+ // "code": 1000,
1585
+ // "message": "success",
1586
+ // "data": [
1587
+ // ["1699512060","36746.49","36758.71","36736.13","36755.99","2.83965","104353.57"],
1588
+ // ["1699512120","36756.00","36758.70","36737.14","36737.63","1.96070","72047.10"],
1589
+ // ["1699512180","36737.63","36740.45","36737.62","36740.44","0.63194","23217.62"]
1590
+ // ],
1591
+ // "trace": "6591fc7b508845359d5fa442e3b3a4fb.72.16995122398750695"
1578
1592
  // }
1579
1593
  //
1580
1594
  // swap
@@ -1596,8 +1610,7 @@ export default class bitmart extends Exchange {
1596
1610
  // "trace": "96c989db-e0f5-46f5-bba6-60cfcbde699b"
1597
1611
  // }
1598
1612
  //
1599
- const data = this.safeValue(response, 'data', {});
1600
- const ohlcv = this.safeValue(data, 'klines', data);
1613
+ const ohlcv = this.safeValue(response, 'data', []);
1601
1614
  return this.parseOHLCVs(ohlcv, market, timeframe, since, limit);
1602
1615
  }
1603
1616
  async fetchMyTrades(symbol = undefined, since = undefined, limit = undefined, params = {}) {
@@ -2356,9 +2369,7 @@ export default class bitmart extends Exchange {
2356
2369
  return response;
2357
2370
  }
2358
2371
  async fetchOrdersByStatus(status, symbol = undefined, since = undefined, limit = undefined, params = {}) {
2359
- if (symbol === undefined) {
2360
- throw new ArgumentsRequired(this.id + ' fetchOrdersByStatus() requires a symbol argument');
2361
- }
2372
+ this.checkRequiredSymbol('fetchOrdersByStatus', symbol);
2362
2373
  await this.loadMarkets();
2363
2374
  const market = this.market(symbol);
2364
2375
  if (!market['spot']) {
@@ -3046,10 +3057,8 @@ export default class bitmart extends Exchange {
3046
3057
  * @param {string} [params.marginMode] 'isolated' is the default and 'cross' is unavailable
3047
3058
  * @returns {object} a [margin loan structure]{@link https://github.com/ccxt/ccxt/wiki/Manual#margin-loan-structure}
3048
3059
  */
3060
+ this.checkRequiredSymbol('repayMargin', symbol);
3049
3061
  await this.loadMarkets();
3050
- if (symbol === undefined) {
3051
- throw new ArgumentsRequired(this.id + ' repayMargin() requires a symbol argument');
3052
- }
3053
3062
  const market = this.market(symbol);
3054
3063
  const currency = this.currency(code);
3055
3064
  const request = {
@@ -3089,10 +3098,8 @@ export default class bitmart extends Exchange {
3089
3098
  * @param {string} [params.marginMode] 'isolated' is the default and 'cross' is unavailable
3090
3099
  * @returns {object} a [margin loan structure]{@link https://github.com/ccxt/ccxt/wiki/Manual#margin-loan-structure}
3091
3100
  */
3101
+ this.checkRequiredSymbol('borrowMargin', symbol);
3092
3102
  await this.loadMarkets();
3093
- if (symbol === undefined) {
3094
- throw new ArgumentsRequired(this.id + ' borrowMargin() requires a symbol argument');
3095
- }
3096
3103
  const market = this.market(symbol);
3097
3104
  const currency = this.currency(code);
3098
3105
  const request = {
@@ -3548,9 +3555,7 @@ export default class bitmart extends Exchange {
3548
3555
  * @param {object} [params] extra parameters specific to the bitmart api endpoint
3549
3556
  * @returns {object[]} a list of [borrow interest structures]{@link https://github.com/ccxt/ccxt/wiki/Manual#borrow-interest-structure}
3550
3557
  */
3551
- if (symbol === undefined) {
3552
- throw new ArgumentsRequired(this.id + ' fetchBorrowInterest() requires a symbol argument');
3553
- }
3558
+ this.checkRequiredSymbol('fetchBorrowInterest', symbol);
3554
3559
  await this.loadMarkets();
3555
3560
  const market = this.market(symbol);
3556
3561
  const request = {
package/js/src/bitmex.js CHANGED
@@ -2447,9 +2447,7 @@ export default class bitmex extends Exchange {
2447
2447
  * @param {object} [params] extra parameters specific to the bitmex api endpoint
2448
2448
  * @returns {object} response from the exchange
2449
2449
  */
2450
- if (symbol === undefined) {
2451
- throw new ArgumentsRequired(this.id + ' setLeverage() requires a symbol argument');
2452
- }
2450
+ this.checkRequiredSymbol('setLeverage', symbol);
2453
2451
  if ((leverage < 0.01) || (leverage > 100)) {
2454
2452
  throw new BadRequest(this.id + ' leverage should be between 0.01 and 100');
2455
2453
  }
@@ -2474,9 +2472,7 @@ export default class bitmex extends Exchange {
2474
2472
  * @param {object} [params] extra parameters specific to the bitmex api endpoint
2475
2473
  * @returns {object} response from the exchange
2476
2474
  */
2477
- if (symbol === undefined) {
2478
- throw new ArgumentsRequired(this.id + ' setMarginMode() requires a symbol argument');
2479
- }
2475
+ this.checkRequiredSymbol('setMarginMode', symbol);
2480
2476
  marginMode = marginMode.toLowerCase();
2481
2477
  if (marginMode !== 'isolated' && marginMode !== 'cross') {
2482
2478
  throw new BadRequest(this.id + ' setMarginMode() marginMode argument should be isolated or cross');
@@ -1,5 +1,5 @@
1
1
  import Exchange from './abstract/bitopro.js';
2
- import { Balances, Int, OHLCV, Order, OrderSide, OrderType, Ticker, Trade, Transaction } from './base/types.js';
2
+ import { Balances, Int, OHLCV, Order, OrderBook, OrderSide, OrderType, Ticker, Trade, Transaction } from './base/types.js';
3
3
  /**
4
4
  * @class bitopro
5
5
  * @extends Exchange
@@ -11,7 +11,7 @@ export default class bitopro extends Exchange {
11
11
  parseTicker(ticker: any, market?: any): Ticker;
12
12
  fetchTicker(symbol: string, params?: {}): Promise<Ticker>;
13
13
  fetchTickers(symbols?: string[], params?: {}): Promise<import("./base/types.js").Dictionary<Ticker>>;
14
- fetchOrderBook(symbol: string, limit?: Int, params?: {}): Promise<import("./base/types.js").OrderBook>;
14
+ fetchOrderBook(symbol: string, limit?: Int, params?: {}): Promise<OrderBook>;
15
15
  parseTrade(trade: any, market?: any): Trade;
16
16
  fetchTrades(symbol: string, since?: Int, limit?: Int, params?: {}): Promise<Trade[]>;
17
17
  fetchTradingFees(params?: {}): Promise<{}>;