ccxt 4.1.52 → 4.1.53

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 (198) hide show
  1. package/README.md +6 -8
  2. package/dist/ccxt.browser.js +1311 -2712
  3. package/dist/ccxt.browser.min.js +7 -7
  4. package/dist/cjs/ccxt.js +1 -7
  5. package/dist/cjs/src/ace.js +56 -59
  6. package/dist/cjs/src/ascendex.js +1 -2
  7. package/dist/cjs/src/base/Exchange.js +1 -11
  8. package/dist/cjs/src/bingx.js +48 -8
  9. package/dist/cjs/src/bybit.js +2 -11
  10. package/dist/cjs/src/cryptocom.js +1 -0
  11. package/dist/cjs/src/digifinex.js +9 -6
  12. package/dist/cjs/src/lbank.js +2333 -443
  13. package/dist/cjs/src/ndax.js +59 -61
  14. package/dist/cjs/src/novadax.js +57 -59
  15. package/dist/cjs/src/oceanex.js +58 -60
  16. package/dist/cjs/src/okcoin.js +1 -9
  17. package/dist/cjs/src/okx.js +0 -7
  18. package/dist/cjs/src/poloniex.js +55 -57
  19. package/dist/cjs/src/poloniexfutures.js +67 -70
  20. package/dist/cjs/src/pro/bingx.js +18 -11
  21. package/dist/cjs/src/pro/poloniexfutures.js +9 -0
  22. package/dist/cjs/src/probit.js +62 -65
  23. package/dist/cjs/src/timex.js +1 -5
  24. package/dist/cjs/src/upbit.js +56 -58
  25. package/dist/cjs/src/wazirx.js +72 -74
  26. package/dist/cjs/src/whitebit.js +88 -91
  27. package/dist/cjs/src/woo.js +75 -77
  28. package/dist/cjs/src/zaif.js +57 -71
  29. package/dist/cjs/src/zonda.js +67 -70
  30. package/js/ccxt.d.ts +2 -8
  31. package/js/ccxt.js +2 -6
  32. package/js/src/abstract/bybit.d.ts +1 -0
  33. package/js/src/abstract/lbank.d.ts +57 -15
  34. package/js/src/ace.d.ts +8 -7
  35. package/js/src/ace.js +56 -59
  36. package/js/src/alpaca.d.ts +4 -4
  37. package/js/src/ascendex.d.ts +12 -12
  38. package/js/src/ascendex.js +1 -2
  39. package/js/src/base/Exchange.js +1 -11
  40. package/js/src/base/types.d.ts +73 -71
  41. package/js/src/bigone.d.ts +10 -10
  42. package/js/src/binance.d.ts +27 -27
  43. package/js/src/bingx.d.ts +15 -15
  44. package/js/src/bingx.js +48 -8
  45. package/js/src/bit2c.d.ts +5 -5
  46. package/js/src/bitbank.d.ts +5 -5
  47. package/js/src/bitbns.d.ts +7 -7
  48. package/js/src/bitfinex.d.ts +8 -8
  49. package/js/src/bitfinex2.d.ts +12 -12
  50. package/js/src/bitflyer.d.ts +9 -9
  51. package/js/src/bitforex.d.ts +6 -6
  52. package/js/src/bitget.d.ts +24 -24
  53. package/js/src/bithumb.d.ts +4 -4
  54. package/js/src/bitmart.d.ts +21 -21
  55. package/js/src/bitmex.d.ts +14 -14
  56. package/js/src/bitopro.d.ts +12 -12
  57. package/js/src/bitpanda.d.ts +11 -11
  58. package/js/src/bitrue.d.ts +8 -8
  59. package/js/src/bitso.d.ts +11 -11
  60. package/js/src/bitstamp.d.ts +10 -10
  61. package/js/src/bitstamp1.d.ts +4 -4
  62. package/js/src/bittrex.d.ts +14 -14
  63. package/js/src/bitvavo.d.ts +9 -9
  64. package/js/src/bl3p.d.ts +2 -2
  65. package/js/src/blockchaincom.d.ts +13 -13
  66. package/js/src/btcalpha.d.ts +9 -9
  67. package/js/src/btcbox.d.ts +6 -6
  68. package/js/src/btcmarkets.d.ts +12 -12
  69. package/js/src/btcturk.d.ts +5 -5
  70. package/js/src/bybit.d.ts +28 -28
  71. package/js/src/bybit.js +2 -11
  72. package/js/src/cex.d.ts +6 -6
  73. package/js/src/coinbase.d.ts +17 -17
  74. package/js/src/coinbasepro.d.ts +13 -13
  75. package/js/src/coincheck.d.ts +6 -6
  76. package/js/src/coinex.d.ts +18 -18
  77. package/js/src/coinlist.d.ts +14 -14
  78. package/js/src/coinmate.d.ts +7 -7
  79. package/js/src/coinone.d.ts +5 -5
  80. package/js/src/coinsph.d.ts +10 -10
  81. package/js/src/coinspot.d.ts +3 -3
  82. package/js/src/cryptocom.d.ts +16 -16
  83. package/js/src/cryptocom.js +1 -0
  84. package/js/src/currencycom.d.ts +10 -10
  85. package/js/src/delta.d.ts +10 -10
  86. package/js/src/deribit.d.ts +13 -13
  87. package/js/src/digifinex.d.ts +17 -17
  88. package/js/src/digifinex.js +9 -6
  89. package/js/src/exmo.d.ts +12 -12
  90. package/js/src/gate.d.ts +20 -20
  91. package/js/src/gemini.d.ts +6 -6
  92. package/js/src/hitbtc.d.ts +15 -15
  93. package/js/src/hollaex.d.ts +12 -12
  94. package/js/src/htx.d.ts +27 -27
  95. package/js/src/huobijp.d.ts +16 -16
  96. package/js/src/idex.d.ts +13 -13
  97. package/js/src/independentreserve.d.ts +6 -6
  98. package/js/src/indodax.d.ts +6 -6
  99. package/js/src/kraken.d.ts +16 -16
  100. package/js/src/krakenfutures.d.ts +9 -9
  101. package/js/src/kucoin.d.ts +15 -15
  102. package/js/src/kucoinfutures.d.ts +11 -11
  103. package/js/src/kuna.d.ts +12 -12
  104. package/js/src/latoken.d.ts +9 -9
  105. package/js/src/lbank.d.ts +65 -12
  106. package/js/src/lbank.js +2334 -444
  107. package/js/src/lbank2.d.ts +11 -11
  108. package/js/src/luno.d.ts +10 -10
  109. package/js/src/lykke.d.ts +8 -8
  110. package/js/src/mercado.d.ts +6 -6
  111. package/js/src/mexc.d.ts +23 -23
  112. package/js/src/ndax.d.ts +13 -12
  113. package/js/src/ndax.js +59 -61
  114. package/js/src/novadax.d.ts +13 -12
  115. package/js/src/novadax.js +57 -59
  116. package/js/src/oceanex.d.ts +10 -9
  117. package/js/src/oceanex.js +58 -60
  118. package/js/src/okcoin.d.ts +12 -13
  119. package/js/src/okcoin.js +1 -9
  120. package/js/src/okx.d.ts +26 -27
  121. package/js/src/okx.js +0 -7
  122. package/js/src/paymium.d.ts +2 -2
  123. package/js/src/phemex.d.ts +16 -16
  124. package/js/src/poloniex.d.ts +15 -14
  125. package/js/src/poloniex.js +55 -57
  126. package/js/src/poloniexfutures.d.ts +11 -10
  127. package/js/src/poloniexfutures.js +67 -70
  128. package/js/src/pro/alpaca.d.ts +3 -3
  129. package/js/src/pro/ascendex.d.ts +2 -2
  130. package/js/src/pro/binance.d.ts +9 -9
  131. package/js/src/pro/bingx.d.ts +3 -3
  132. package/js/src/pro/bingx.js +19 -12
  133. package/js/src/pro/bitfinex.d.ts +3 -3
  134. package/js/src/pro/bitfinex2.d.ts +3 -3
  135. package/js/src/pro/bitget.d.ts +3 -3
  136. package/js/src/pro/bitmart.d.ts +2 -2
  137. package/js/src/pro/bitmex.d.ts +3 -3
  138. package/js/src/pro/bitpanda.d.ts +3 -3
  139. package/js/src/pro/bitrue.d.ts +2 -2
  140. package/js/src/pro/bitstamp.d.ts +2 -2
  141. package/js/src/pro/bittrex.d.ts +3 -3
  142. package/js/src/pro/bitvavo.d.ts +3 -3
  143. package/js/src/pro/blockchaincom.d.ts +2 -2
  144. package/js/src/pro/bybit.d.ts +4 -4
  145. package/js/src/pro/cex.d.ts +3 -3
  146. package/js/src/pro/coinbasepro.d.ts +3 -3
  147. package/js/src/pro/coinex.d.ts +2 -2
  148. package/js/src/pro/cryptocom.d.ts +5 -5
  149. package/js/src/pro/deribit.d.ts +3 -3
  150. package/js/src/pro/exmo.d.ts +2 -2
  151. package/js/src/pro/gate.d.ts +3 -3
  152. package/js/src/pro/gemini.d.ts +2 -2
  153. package/js/src/pro/hitbtc.d.ts +3 -3
  154. package/js/src/pro/hollaex.d.ts +3 -3
  155. package/js/src/pro/htx.d.ts +3 -3
  156. package/js/src/pro/idex.d.ts +3 -3
  157. package/js/src/pro/kraken.d.ts +7 -7
  158. package/js/src/pro/krakenfutures.d.ts +4 -4
  159. package/js/src/pro/kucoin.d.ts +3 -3
  160. package/js/src/pro/kucoinfutures.d.ts +3 -3
  161. package/js/src/pro/mexc.d.ts +3 -3
  162. package/js/src/pro/okcoin.d.ts +2 -2
  163. package/js/src/pro/okx.d.ts +6 -6
  164. package/js/src/pro/phemex.d.ts +3 -3
  165. package/js/src/pro/poloniex.d.ts +3 -3
  166. package/js/src/pro/poloniexfutures.d.ts +3 -3
  167. package/js/src/pro/poloniexfutures.js +9 -0
  168. package/js/src/pro/probit.d.ts +3 -3
  169. package/js/src/pro/wazirx.d.ts +3 -3
  170. package/js/src/pro/whitebit.d.ts +3 -3
  171. package/js/src/pro/woo.d.ts +2 -2
  172. package/js/src/probit.d.ts +11 -10
  173. package/js/src/probit.js +62 -65
  174. package/js/src/tidex.d.ts +5 -5
  175. package/js/src/timex.d.ts +10 -10
  176. package/js/src/timex.js +1 -5
  177. package/js/src/tokocrypto.d.ts +9 -9
  178. package/js/src/upbit.d.ts +11 -10
  179. package/js/src/upbit.js +56 -58
  180. package/js/src/wavesexchange.d.ts +7 -7
  181. package/js/src/wazirx.d.ts +7 -6
  182. package/js/src/wazirx.js +72 -74
  183. package/js/src/whitebit.d.ts +12 -11
  184. package/js/src/whitebit.js +88 -91
  185. package/js/src/woo.d.ts +20 -19
  186. package/js/src/woo.js +75 -77
  187. package/js/src/yobit.d.ts +5 -5
  188. package/js/src/zaif.d.ts +6 -5
  189. package/js/src/zaif.js +57 -71
  190. package/js/src/zonda.d.ts +7 -6
  191. package/js/src/zonda.js +67 -70
  192. package/package.json +1 -1
  193. package/skip-tests.json +0 -15
  194. package/test.ts +0 -0
  195. package/js/src/abstract/bitstamp1.d.ts +0 -26
  196. package/js/src/abstract/bitstamp1.js +0 -11
  197. package/js/src/abstract/lbank2.d.ts +0 -64
  198. package/js/src/abstract/lbank2.js +0 -11
package/js/src/woo.js CHANGED
@@ -332,86 +332,84 @@ export default class woo extends Exchange {
332
332
  // "success": true
333
333
  // }
334
334
  //
335
- const result = [];
336
335
  const data = this.safeValue(response, 'rows', []);
337
- for (let i = 0; i < data.length; i++) {
338
- const market = data[i];
339
- const marketId = this.safeString(market, 'symbol');
340
- const parts = marketId.split('_');
341
- let marketType = this.safeStringLower(parts, 0);
342
- const isSpot = marketType === 'spot';
343
- const isSwap = marketType === 'perp';
344
- const baseId = this.safeString(parts, 1);
345
- const quoteId = this.safeString(parts, 2);
346
- const base = this.safeCurrencyCode(baseId);
347
- const quote = this.safeCurrencyCode(quoteId);
348
- let settleId = undefined;
349
- let settle = undefined;
350
- let symbol = base + '/' + quote;
351
- let contractSize = undefined;
352
- let linear = undefined;
353
- let margin = true;
354
- const contract = isSwap;
355
- if (contract) {
356
- margin = false;
357
- settleId = this.safeString(parts, 2);
358
- settle = this.safeCurrencyCode(settleId);
359
- symbol = base + '/' + quote + ':' + settle;
360
- contractSize = this.parseNumber('1');
361
- marketType = 'swap';
362
- linear = true;
363
- }
364
- result.push({
365
- 'id': marketId,
366
- 'symbol': symbol,
367
- 'base': base,
368
- 'quote': quote,
369
- 'settle': settle,
370
- 'baseId': baseId,
371
- 'quoteId': quoteId,
372
- 'settleId': settleId,
373
- 'type': marketType,
374
- 'spot': isSpot,
375
- 'margin': margin,
376
- 'swap': isSwap,
377
- 'future': false,
378
- 'option': false,
379
- 'active': undefined,
380
- 'contract': contract,
381
- 'linear': linear,
382
- 'inverse': undefined,
383
- 'contractSize': contractSize,
384
- 'expiry': undefined,
385
- 'expiryDatetime': undefined,
386
- 'strike': undefined,
387
- 'optionType': undefined,
388
- 'precision': {
389
- 'amount': this.safeNumber(market, 'base_tick'),
390
- 'price': this.safeNumber(market, 'quote_tick'),
336
+ return this.parseMarkets(data);
337
+ }
338
+ parseMarket(market) {
339
+ const marketId = this.safeString(market, 'symbol');
340
+ const parts = marketId.split('_');
341
+ let marketType = this.safeStringLower(parts, 0);
342
+ const isSpot = marketType === 'spot';
343
+ const isSwap = marketType === 'perp';
344
+ const baseId = this.safeString(parts, 1);
345
+ const quoteId = this.safeString(parts, 2);
346
+ const base = this.safeCurrencyCode(baseId);
347
+ const quote = this.safeCurrencyCode(quoteId);
348
+ let settleId = undefined;
349
+ let settle = undefined;
350
+ let symbol = base + '/' + quote;
351
+ let contractSize = undefined;
352
+ let linear = undefined;
353
+ let margin = true;
354
+ const contract = isSwap;
355
+ if (contract) {
356
+ margin = false;
357
+ settleId = this.safeString(parts, 2);
358
+ settle = this.safeCurrencyCode(settleId);
359
+ symbol = base + '/' + quote + ':' + settle;
360
+ contractSize = this.parseNumber('1');
361
+ marketType = 'swap';
362
+ linear = true;
363
+ }
364
+ return {
365
+ 'id': marketId,
366
+ 'symbol': symbol,
367
+ 'base': base,
368
+ 'quote': quote,
369
+ 'settle': settle,
370
+ 'baseId': baseId,
371
+ 'quoteId': quoteId,
372
+ 'settleId': settleId,
373
+ 'type': marketType,
374
+ 'spot': isSpot,
375
+ 'margin': margin,
376
+ 'swap': isSwap,
377
+ 'future': false,
378
+ 'option': false,
379
+ 'active': undefined,
380
+ 'contract': contract,
381
+ 'linear': linear,
382
+ 'inverse': undefined,
383
+ 'contractSize': contractSize,
384
+ 'expiry': undefined,
385
+ 'expiryDatetime': undefined,
386
+ 'strike': undefined,
387
+ 'optionType': undefined,
388
+ 'precision': {
389
+ 'amount': this.safeNumber(market, 'base_tick'),
390
+ 'price': this.safeNumber(market, 'quote_tick'),
391
+ },
392
+ 'limits': {
393
+ 'leverage': {
394
+ 'min': undefined,
395
+ 'max': undefined,
391
396
  },
392
- 'limits': {
393
- 'leverage': {
394
- 'min': undefined,
395
- 'max': undefined,
396
- },
397
- 'amount': {
398
- 'min': this.safeNumber(market, 'base_min'),
399
- 'max': this.safeNumber(market, 'base_max'),
400
- },
401
- 'price': {
402
- 'min': this.safeNumber(market, 'quote_min'),
403
- 'max': this.safeNumber(market, 'quote_max'),
404
- },
405
- 'cost': {
406
- 'min': this.safeNumber(market, 'min_notional'),
407
- 'max': undefined,
408
- },
397
+ 'amount': {
398
+ 'min': this.safeNumber(market, 'base_min'),
399
+ 'max': this.safeNumber(market, 'base_max'),
409
400
  },
410
- 'created': this.safeTimestamp(market, 'created_time'),
411
- 'info': market,
412
- });
413
- }
414
- return result;
401
+ 'price': {
402
+ 'min': this.safeNumber(market, 'quote_min'),
403
+ 'max': this.safeNumber(market, 'quote_max'),
404
+ },
405
+ 'cost': {
406
+ 'min': this.safeNumber(market, 'min_notional'),
407
+ 'max': undefined,
408
+ },
409
+ },
410
+ 'created': this.safeTimestamp(market, 'created_time'),
411
+ 'info': market,
412
+ };
415
413
  }
416
414
  async fetchTrades(symbol, since = undefined, limit = undefined, params = {}) {
417
415
  /**
package/js/src/yobit.d.ts CHANGED
@@ -1,5 +1,5 @@
1
1
  import Exchange from './abstract/yobit.js';
2
- import { Balances, Dictionary, Int, Order, OrderBook, OrderSide, OrderType, Ticker, Tickers, Trade } from './base/types.js';
2
+ import { Balances, Dictionary, Int, Order, OrderBook, OrderSide, OrderType, Str, Ticker, Tickers, Trade } from './base/types.js';
3
3
  /**
4
4
  * @class yobit
5
5
  * @extends Exchange
@@ -18,12 +18,12 @@ export default class yobit extends Exchange {
18
18
  fetchTrades(symbol: string, since?: Int, limit?: Int, params?: {}): Promise<Trade[]>;
19
19
  fetchTradingFees(params?: {}): Promise<{}>;
20
20
  createOrder(symbol: string, type: OrderType, side: OrderSide, amount: any, price?: any, params?: {}): Promise<Order>;
21
- cancelOrder(id: string, symbol?: string, params?: {}): Promise<Order>;
21
+ cancelOrder(id: string, symbol?: Str, params?: {}): Promise<Order>;
22
22
  parseOrderStatus(status: any): string;
23
23
  parseOrder(order: any, market?: any): Order;
24
- fetchOrder(id: string, symbol?: string, params?: {}): Promise<Order>;
25
- fetchOpenOrders(symbol?: string, since?: Int, limit?: Int, params?: {}): Promise<Order[]>;
26
- fetchMyTrades(symbol?: string, since?: Int, limit?: Int, params?: {}): Promise<Trade[]>;
24
+ fetchOrder(id: string, symbol?: Str, params?: {}): Promise<Order>;
25
+ fetchOpenOrders(symbol?: Str, since?: Int, limit?: Int, params?: {}): Promise<Order[]>;
26
+ fetchMyTrades(symbol?: Str, since?: Int, limit?: Int, params?: {}): Promise<Trade[]>;
27
27
  createDepositAddress(code: string, params?: {}): Promise<{
28
28
  currency: string;
29
29
  address: string;
package/js/src/zaif.d.ts CHANGED
@@ -1,12 +1,13 @@
1
1
  import Exchange from './abstract/zaif.js';
2
- import { Balances, Int, Order, OrderBook, OrderSide, OrderType, Ticker, Trade, Transaction } from './base/types.js';
2
+ import { Balances, Int, Market, Order, OrderBook, OrderSide, OrderType, Str, Ticker, Trade, Transaction } from './base/types.js';
3
3
  /**
4
4
  * @class zaif
5
5
  * @extends Exchange
6
6
  */
7
7
  export default class zaif extends Exchange {
8
8
  describe(): any;
9
- fetchMarkets(params?: {}): Promise<any[]>;
9
+ fetchMarkets(params?: {}): Promise<Market[]>;
10
+ parseMarket(market: any): Market;
10
11
  parseBalance(response: any): Balances;
11
12
  fetchBalance(params?: {}): Promise<Balances>;
12
13
  fetchOrderBook(symbol: string, limit?: Int, params?: {}): Promise<OrderBook>;
@@ -15,10 +16,10 @@ export default class zaif extends Exchange {
15
16
  parseTrade(trade: any, market?: any): Trade;
16
17
  fetchTrades(symbol: string, since?: Int, limit?: Int, params?: {}): Promise<Trade[]>;
17
18
  createOrder(symbol: string, type: OrderType, side: OrderSide, amount: any, price?: any, params?: {}): Promise<Order>;
18
- cancelOrder(id: string, symbol?: string, params?: {}): Promise<any>;
19
+ cancelOrder(id: string, symbol?: Str, params?: {}): Promise<any>;
19
20
  parseOrder(order: any, market?: any): Order;
20
- fetchOpenOrders(symbol?: string, since?: Int, limit?: Int, params?: {}): Promise<Order[]>;
21
- fetchClosedOrders(symbol?: string, since?: Int, limit?: Int, params?: {}): Promise<Order[]>;
21
+ fetchOpenOrders(symbol?: Str, since?: Int, limit?: Int, params?: {}): Promise<Order[]>;
22
+ fetchClosedOrders(symbol?: Str, since?: Int, limit?: Int, params?: {}): Promise<Order[]>;
22
23
  withdraw(code: string, amount: any, address: any, tag?: any, params?: {}): Promise<Transaction>;
23
24
  parseTransaction(transaction: any, currency?: any): Transaction;
24
25
  customNonce(): string;
package/js/src/zaif.js CHANGED
@@ -131,16 +131,7 @@ export default class zaif extends Exchange {
131
131
  },
132
132
  },
133
133
  },
134
- 'options': {
135
- // zaif schedule defines several market-specific fees
136
- 'fees': {
137
- 'BTC/JPY': { 'maker': this.parseNumber('0'), 'taker': this.parseNumber('0.001') },
138
- 'BCH/JPY': { 'maker': this.parseNumber('0'), 'taker': this.parseNumber('0.003') },
139
- 'BCH/BTC': { 'maker': this.parseNumber('0'), 'taker': this.parseNumber('0.003') },
140
- 'PEPECASH/JPY': { 'maker': this.parseNumber('0'), 'taker': this.parseNumber('0.0001') },
141
- 'PEPECASH/BT': { 'maker': this.parseNumber('0'), 'taker': this.parseNumber('0.0001') },
142
- },
143
- },
134
+ 'options': {},
144
135
  'precisionMode': TICK_SIZE,
145
136
  'exceptions': {
146
137
  'exact': {
@@ -181,69 +172,64 @@ export default class zaif extends Exchange {
181
172
  // }
182
173
  // ]
183
174
  //
184
- const result = [];
185
- for (let i = 0; i < markets.length; i++) {
186
- const market = markets[i];
187
- const id = this.safeString(market, 'currency_pair');
188
- const name = this.safeString(market, 'name');
189
- const [baseId, quoteId] = name.split('/');
190
- const base = this.safeCurrencyCode(baseId);
191
- const quote = this.safeCurrencyCode(quoteId);
192
- const symbol = base + '/' + quote;
193
- const fees = this.safeValue(this.options['fees'], symbol, this.fees['trading']);
194
- result.push({
195
- 'id': id,
196
- 'symbol': symbol,
197
- 'base': base,
198
- 'quote': quote,
199
- 'settle': undefined,
200
- 'baseId': baseId,
201
- 'quoteId': quoteId,
202
- 'settleId': undefined,
203
- 'type': 'spot',
204
- 'spot': true,
205
- 'margin': undefined,
206
- 'swap': false,
207
- 'future': false,
208
- 'option': false,
209
- 'active': undefined,
210
- 'contract': false,
211
- 'linear': undefined,
212
- 'inverse': undefined,
213
- 'taker': fees['taker'],
214
- 'maker': fees['maker'],
215
- 'contractSize': undefined,
216
- 'expiry': undefined,
217
- 'expiryDatetime': undefined,
218
- 'strike': undefined,
219
- 'optionType': undefined,
220
- 'precision': {
221
- 'amount': this.safeNumber(market, 'item_unit_step'),
222
- 'price': this.parseNumber(this.parsePrecision(this.safeString(market, 'aux_unit_point'))),
175
+ return this.parseMarkets(markets);
176
+ }
177
+ parseMarket(market) {
178
+ const id = this.safeString(market, 'currency_pair');
179
+ const name = this.safeString(market, 'name');
180
+ const [baseId, quoteId] = name.split('/');
181
+ const base = this.safeCurrencyCode(baseId);
182
+ const quote = this.safeCurrencyCode(quoteId);
183
+ const symbol = base + '/' + quote;
184
+ return {
185
+ 'id': id,
186
+ 'symbol': symbol,
187
+ 'base': base,
188
+ 'quote': quote,
189
+ 'settle': undefined,
190
+ 'baseId': baseId,
191
+ 'quoteId': quoteId,
192
+ 'settleId': undefined,
193
+ 'type': 'spot',
194
+ 'spot': true,
195
+ 'margin': undefined,
196
+ 'swap': false,
197
+ 'future': false,
198
+ 'option': false,
199
+ 'active': undefined,
200
+ 'contract': false,
201
+ 'linear': undefined,
202
+ 'inverse': undefined,
203
+ 'contractSize': undefined,
204
+ 'expiry': undefined,
205
+ 'expiryDatetime': undefined,
206
+ 'strike': undefined,
207
+ 'optionType': undefined,
208
+ 'precision': {
209
+ 'amount': this.safeNumber(market, 'item_unit_step'),
210
+ 'price': this.parseNumber(this.parsePrecision(this.safeString(market, 'aux_unit_point'))),
211
+ },
212
+ 'limits': {
213
+ 'leverage': {
214
+ 'min': undefined,
215
+ 'max': undefined,
223
216
  },
224
- 'limits': {
225
- 'leverage': {
226
- 'min': undefined,
227
- 'max': undefined,
228
- },
229
- 'amount': {
230
- 'min': this.safeNumber(market, 'item_unit_min'),
231
- 'max': undefined,
232
- },
233
- 'price': {
234
- 'min': this.safeNumber(market, 'aux_unit_min'),
235
- 'max': undefined,
236
- },
237
- 'cost': {
238
- 'min': undefined,
239
- 'max': undefined,
240
- },
217
+ 'amount': {
218
+ 'min': this.safeNumber(market, 'item_unit_min'),
219
+ 'max': undefined,
241
220
  },
242
- 'created': undefined,
243
- 'info': market,
244
- });
245
- }
246
- return result;
221
+ 'price': {
222
+ 'min': this.safeNumber(market, 'aux_unit_min'),
223
+ 'max': undefined,
224
+ },
225
+ 'cost': {
226
+ 'min': undefined,
227
+ 'max': undefined,
228
+ },
229
+ },
230
+ 'created': undefined,
231
+ 'info': market,
232
+ };
247
233
  }
248
234
  parseBalance(response) {
249
235
  const balances = this.safeValue(response, 'return', {});
package/js/src/zonda.d.ts CHANGED
@@ -1,22 +1,23 @@
1
1
  import Exchange from './abstract/zonda.js';
2
- import { Balances, Int, OHLCV, Order, OrderBook, OrderSide, OrderType, Ticker, Tickers, Trade, Transaction } from './base/types.js';
2
+ import { Balances, Int, Market, OHLCV, Order, OrderBook, OrderSide, OrderType, Str, Ticker, Tickers, Trade, Transaction } from './base/types.js';
3
3
  /**
4
4
  * @class zonda
5
5
  * @extends Exchange
6
6
  */
7
7
  export default class zonda extends Exchange {
8
8
  describe(): any;
9
- fetchMarkets(params?: {}): Promise<any[]>;
10
- fetchOpenOrders(symbol?: string, since?: Int, limit?: Int, params?: {}): Promise<Order[]>;
9
+ fetchMarkets(params?: {}): Promise<Market[]>;
10
+ parseMarket(item: any): Market;
11
+ fetchOpenOrders(symbol?: Str, since?: Int, limit?: Int, params?: {}): Promise<Order[]>;
11
12
  parseOrder(order: any, market?: any): Order;
12
- fetchMyTrades(symbol?: string, since?: Int, limit?: Int, params?: {}): Promise<Trade[]>;
13
+ fetchMyTrades(symbol?: Str, since?: Int, limit?: Int, params?: {}): Promise<Trade[]>;
13
14
  parseBalance(response: any): Balances;
14
15
  fetchBalance(params?: {}): Promise<Balances>;
15
16
  fetchOrderBook(symbol: string, limit?: Int, params?: {}): Promise<OrderBook>;
16
17
  parseTicker(ticker: any, market?: any): Ticker;
17
18
  fetchTicker(symbol: any, params?: {}): Promise<Ticker>;
18
19
  fetchTickers(symbols?: string[], params?: {}): Promise<Tickers>;
19
- fetchLedger(code?: string, since?: Int, limit?: Int, params?: {}): Promise<any>;
20
+ fetchLedger(code?: Str, since?: Int, limit?: Int, params?: {}): Promise<any>;
20
21
  parseLedgerEntry(item: any, currency?: any): {
21
22
  info: any;
22
23
  id: string;
@@ -40,7 +41,7 @@ export default class zonda extends Exchange {
40
41
  parseTrade(trade: any, market?: any): Trade;
41
42
  fetchTrades(symbol: string, since?: Int, limit?: Int, params?: {}): Promise<Trade[]>;
42
43
  createOrder(symbol: string, type: OrderType, side: OrderSide, amount: any, price?: any, params?: {}): Promise<Order>;
43
- cancelOrder(id: string, symbol?: string, params?: {}): Promise<any>;
44
+ cancelOrder(id: string, symbol?: Str, params?: {}): Promise<any>;
44
45
  isFiat(currency: any): any;
45
46
  parseDepositAddress(depositAddress: any, currency?: any): {
46
47
  currency: any;
package/js/src/zonda.js CHANGED
@@ -307,7 +307,6 @@ export default class zonda extends Exchange {
307
307
  * @returns {object[]} an array of objects representing market data
308
308
  */
309
309
  const response = await this.v1_01PublicGetTradingTicker(params);
310
- const fiatCurrencies = this.safeValue(this.options, 'fiatCurrencies', []);
311
310
  //
312
311
  // {
313
312
  // "status": "Ok",
@@ -327,78 +326,76 @@ export default class zonda extends Exchange {
327
326
  // },
328
327
  // }
329
328
  //
330
- const result = [];
331
329
  const items = this.safeValue(response, 'items', {});
332
- const keys = Object.keys(items);
333
- for (let i = 0; i < keys.length; i++) {
334
- const id = keys[i];
335
- const item = items[id];
336
- const market = this.safeValue(item, 'market', {});
337
- const first = this.safeValue(market, 'first', {});
338
- const second = this.safeValue(market, 'second', {});
339
- const baseId = this.safeString(first, 'currency');
340
- const quoteId = this.safeString(second, 'currency');
341
- const base = this.safeCurrencyCode(baseId);
342
- const quote = this.safeCurrencyCode(quoteId);
343
- let fees = this.safeValue(this.fees, 'trading', {});
344
- if (this.inArray(base, fiatCurrencies) || this.inArray(quote, fiatCurrencies)) {
345
- fees = this.safeValue(this.fees, 'fiat', {});
346
- }
347
- // todo: check that the limits have ben interpreted correctly
348
- // todo: parse the fees page
349
- result.push({
350
- 'id': id,
351
- 'symbol': base + '/' + quote,
352
- 'base': base,
353
- 'quote': quote,
354
- 'settle': undefined,
355
- 'baseId': baseId,
356
- 'quoteId': quoteId,
357
- 'settleId': undefined,
358
- 'type': 'spot',
359
- 'spot': true,
360
- 'margin': false,
361
- 'swap': false,
362
- 'future': false,
363
- 'option': false,
364
- 'active': undefined,
365
- 'contract': false,
366
- 'linear': undefined,
367
- 'inverse': undefined,
368
- 'taker': this.safeNumber(fees, 'taker'),
369
- 'maker': this.safeNumber(fees, 'maker'),
370
- 'contractSize': undefined,
371
- 'expiry': undefined,
372
- 'expiryDatetime': undefined,
373
- 'optionType': undefined,
374
- 'strike': undefined,
375
- 'precision': {
376
- 'amount': this.parseNumber(this.parsePrecision(this.safeString(first, 'scale'))),
377
- 'price': this.parseNumber(this.parsePrecision(this.safeString(second, 'scale'))),
330
+ const markets = Object.values(items);
331
+ return this.parseMarkets(markets);
332
+ }
333
+ parseMarket(item) {
334
+ const market = this.safeValue(item, 'market', {});
335
+ const id = this.safeString(market, 'code');
336
+ const first = this.safeValue(market, 'first', {});
337
+ const second = this.safeValue(market, 'second', {});
338
+ const baseId = this.safeString(first, 'currency');
339
+ const quoteId = this.safeString(second, 'currency');
340
+ const base = this.safeCurrencyCode(baseId);
341
+ const quote = this.safeCurrencyCode(quoteId);
342
+ let fees = this.safeValue(this.fees, 'trading', {});
343
+ const fiatCurrencies = this.safeValue(this.options, 'fiatCurrencies', []);
344
+ if (this.inArray(base, fiatCurrencies) || this.inArray(quote, fiatCurrencies)) {
345
+ fees = this.safeValue(this.fees, 'fiat', {});
346
+ }
347
+ // todo: check that the limits have ben interpreted correctly
348
+ return {
349
+ 'id': id,
350
+ 'symbol': base + '/' + quote,
351
+ 'base': base,
352
+ 'quote': quote,
353
+ 'settle': undefined,
354
+ 'baseId': baseId,
355
+ 'quoteId': quoteId,
356
+ 'settleId': undefined,
357
+ 'type': 'spot',
358
+ 'spot': true,
359
+ 'margin': false,
360
+ 'swap': false,
361
+ 'future': false,
362
+ 'option': false,
363
+ 'active': undefined,
364
+ 'contract': false,
365
+ 'linear': undefined,
366
+ 'inverse': undefined,
367
+ 'taker': this.safeNumber(fees, 'taker'),
368
+ 'maker': this.safeNumber(fees, 'maker'),
369
+ 'contractSize': undefined,
370
+ 'expiry': undefined,
371
+ 'expiryDatetime': undefined,
372
+ 'optionType': undefined,
373
+ 'strike': undefined,
374
+ 'precision': {
375
+ 'amount': this.parseNumber(this.parsePrecision(this.safeString(first, 'scale'))),
376
+ 'price': this.parseNumber(this.parsePrecision(this.safeString(second, 'scale'))),
377
+ },
378
+ 'limits': {
379
+ 'leverage': {
380
+ 'min': undefined,
381
+ 'max': undefined,
378
382
  },
379
- 'limits': {
380
- 'leverage': {
381
- 'min': undefined,
382
- 'max': undefined,
383
- },
384
- 'amount': {
385
- 'min': this.safeNumber(first, 'minOffer'),
386
- 'max': undefined,
387
- },
388
- 'price': {
389
- 'min': undefined,
390
- 'max': undefined,
391
- },
392
- 'cost': {
393
- 'min': this.safeNumber(second, 'minOffer'),
394
- 'max': undefined,
395
- },
383
+ 'amount': {
384
+ 'min': this.safeNumber(first, 'minOffer'),
385
+ 'max': undefined,
396
386
  },
397
- 'created': undefined,
398
- 'info': item,
399
- });
400
- }
401
- return result;
387
+ 'price': {
388
+ 'min': undefined,
389
+ 'max': undefined,
390
+ },
391
+ 'cost': {
392
+ 'min': undefined,
393
+ 'max': undefined,
394
+ },
395
+ },
396
+ 'created': undefined,
397
+ 'info': item,
398
+ };
402
399
  }
403
400
  async fetchOpenOrders(symbol = undefined, since = undefined, limit = undefined, params = {}) {
404
401
  /**
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "ccxt",
3
- "version": "4.1.52",
3
+ "version": "4.1.53",
4
4
  "description": "A JavaScript / TypeScript / Python / C# / PHP cryptocurrency trading library with support for 130+ exchanges",
5
5
  "unpkg": "dist/ccxt.browser.js",
6
6
  "type": "module",
package/skip-tests.json CHANGED
@@ -1137,21 +1137,6 @@
1137
1137
  }
1138
1138
  },
1139
1139
  "lbank": {
1140
- "skipMethods": {
1141
- "fetchTickers": {
1142
- "quoteVolume": "quoteVolume >= baseVolume * low is failing",
1143
- "baseVolume": "quoteVolume >= baseVolume * low is failing"
1144
- },
1145
- "fetchTicker":{
1146
- "quoteVolume": "quoteVolume >= baseVolume * low is failing",
1147
- "baseVolume": "quoteVolume >= baseVolume * low is failing"
1148
- },
1149
- "fetchTrades":{
1150
- "fees": "mising"
1151
- }
1152
- }
1153
- },
1154
- "lbank2": {
1155
1140
  "skipMethods": {
1156
1141
  "loadMarkets": "settle must be defined when contract is true",
1157
1142
  "fetchTickers": {
package/test.ts ADDED
File without changes
@@ -1,26 +0,0 @@
1
- import { implicitReturnType } from '../base/types.js';
2
- import { Exchange as _Exchange } from '../base/Exchange.js';
3
- interface Exchange {
4
- publicGetTicker(params?: {}): Promise<implicitReturnType>;
5
- publicGetTickerHour(params?: {}): Promise<implicitReturnType>;
6
- publicGetOrderBook(params?: {}): Promise<implicitReturnType>;
7
- publicGetTransactions(params?: {}): Promise<implicitReturnType>;
8
- publicGetEurUsd(params?: {}): Promise<implicitReturnType>;
9
- privatePostBalance(params?: {}): Promise<implicitReturnType>;
10
- privatePostUserTransactions(params?: {}): Promise<implicitReturnType>;
11
- privatePostOpenOrders(params?: {}): Promise<implicitReturnType>;
12
- privatePostOrderStatus(params?: {}): Promise<implicitReturnType>;
13
- privatePostCancelOrder(params?: {}): Promise<implicitReturnType>;
14
- privatePostCancelAllOrders(params?: {}): Promise<implicitReturnType>;
15
- privatePostBuy(params?: {}): Promise<implicitReturnType>;
16
- privatePostSell(params?: {}): Promise<implicitReturnType>;
17
- privatePostBitcoinDepositAddress(params?: {}): Promise<implicitReturnType>;
18
- privatePostUnconfirmedBtc(params?: {}): Promise<implicitReturnType>;
19
- privatePostRippleWithdrawal(params?: {}): Promise<implicitReturnType>;
20
- privatePostRippleAddress(params?: {}): Promise<implicitReturnType>;
21
- privatePostWithdrawalRequests(params?: {}): Promise<implicitReturnType>;
22
- privatePostBitcoinWithdrawal(params?: {}): Promise<implicitReturnType>;
23
- }
24
- declare abstract class Exchange extends _Exchange {
25
- }
26
- export default Exchange;
@@ -1,11 +0,0 @@
1
- // ----------------------------------------------------------------------------
2
-
3
- // PLEASE DO NOT EDIT THIS FILE, IT IS GENERATED AND WILL BE OVERWRITTEN:
4
- // https://github.com/ccxt/ccxt/blob/master/CONTRIBUTING.md#how-to-contribute-code
5
- // EDIT THE CORRESPONDENT .ts FILE INSTEAD
6
-
7
- // -------------------------------------------------------------------------------
8
- import { Exchange as _Exchange } from '../base/Exchange.js';
9
- class Exchange extends _Exchange {
10
- }
11
- export default Exchange;