ccxt 4.1.50 → 4.1.52

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 (183) hide show
  1. package/README.md +110 -113
  2. package/dist/ccxt.browser.js +1377 -2931
  3. package/dist/ccxt.browser.min.js +7 -7
  4. package/dist/cjs/ccxt.js +1 -7
  5. package/dist/cjs/src/alpaca.js +62 -64
  6. package/dist/cjs/src/ascendex.js +3 -1
  7. package/dist/cjs/src/base/Exchange.js +10 -0
  8. package/dist/cjs/src/bigone.js +60 -77
  9. package/dist/cjs/src/binance.js +1 -0
  10. package/dist/cjs/src/bingx.js +4 -11
  11. package/dist/cjs/src/bitbank.js +58 -59
  12. package/dist/cjs/src/bitbns.js +1 -0
  13. package/dist/cjs/src/bitfinex.js +1 -0
  14. package/dist/cjs/src/bitfinex2.js +1 -0
  15. package/dist/cjs/src/bitflyer.js +1 -0
  16. package/dist/cjs/src/bitget.js +3 -8
  17. package/dist/cjs/src/bithumb.js +1 -0
  18. package/dist/cjs/src/bitmart.js +10 -1
  19. package/dist/cjs/src/bitmex.js +114 -119
  20. package/dist/cjs/src/bitopro.js +63 -65
  21. package/dist/cjs/src/bitpanda.js +60 -60
  22. package/dist/cjs/src/bitrue.js +67 -71
  23. package/dist/cjs/src/bitso.js +1 -0
  24. package/dist/cjs/src/bitstamp.js +1 -0
  25. package/dist/cjs/src/bittrex.js +57 -57
  26. package/dist/cjs/src/bitvavo.js +10 -2
  27. package/dist/cjs/src/blockchaincom.js +2 -2
  28. package/dist/cjs/src/btcalpha.js +59 -60
  29. package/dist/cjs/src/btcmarkets.js +68 -69
  30. package/dist/cjs/src/btcturk.js +72 -74
  31. package/dist/cjs/src/bybit.js +3 -1
  32. package/dist/cjs/src/coinbase.js +7 -2
  33. package/dist/cjs/src/coinbasepro.js +1 -0
  34. package/dist/cjs/src/coincheck.js +1 -0
  35. package/dist/cjs/src/coinex.js +4 -0
  36. package/dist/cjs/src/coinlist.js +60 -60
  37. package/dist/cjs/src/coinmate.js +1 -0
  38. package/dist/cjs/src/coinsph.js +2 -4
  39. package/dist/cjs/src/cryptocom.js +1 -0
  40. package/dist/cjs/src/currencycom.js +2 -2
  41. package/dist/cjs/src/deribit.js +2 -0
  42. package/dist/cjs/src/digifinex.js +5 -2
  43. package/dist/cjs/src/exmo.js +1 -0
  44. package/dist/cjs/src/gate.js +2 -0
  45. package/dist/cjs/src/gemini.js +2 -0
  46. package/dist/cjs/src/hitbtc.js +4 -0
  47. package/dist/cjs/src/hollaex.js +2 -0
  48. package/dist/cjs/src/htx.js +4 -0
  49. package/dist/cjs/src/huobijp.js +2 -0
  50. package/dist/cjs/src/idex.js +2 -0
  51. package/dist/cjs/src/indodax.js +1 -0
  52. package/dist/cjs/src/kraken.js +10 -13
  53. package/dist/cjs/src/kucoin.js +6 -5
  54. package/dist/cjs/src/kuna.js +3 -1
  55. package/dist/cjs/src/latoken.js +1 -0
  56. package/dist/cjs/src/lbank.js +1 -0
  57. package/dist/cjs/src/lykke.js +2 -0
  58. package/dist/cjs/src/mercado.js +1 -0
  59. package/dist/cjs/src/mexc.js +2 -0
  60. package/dist/cjs/src/ndax.js +2 -0
  61. package/dist/cjs/src/novadax.js +1 -0
  62. package/dist/cjs/src/okcoin.js +2 -0
  63. package/dist/cjs/src/okx.js +2 -0
  64. package/dist/cjs/src/phemex.js +2 -0
  65. package/dist/cjs/src/poloniex.js +1 -0
  66. package/dist/cjs/src/pro/binance.js +5 -3
  67. package/dist/cjs/src/pro/coinbase.js +12 -3
  68. package/dist/cjs/src/pro/cryptocom.js +17 -17
  69. package/dist/cjs/src/pro/krakenfutures.js +24 -3
  70. package/dist/cjs/src/probit.js +4 -2
  71. package/dist/cjs/src/tidex.js +1 -0
  72. package/dist/cjs/src/timex.js +2 -0
  73. package/dist/cjs/src/upbit.js +2 -0
  74. package/dist/cjs/src/wavesexchange.js +2 -1
  75. package/dist/cjs/src/whitebit.js +1 -0
  76. package/dist/cjs/src/woo.js +1 -0
  77. package/dist/cjs/src/zaif.js +1 -0
  78. package/dist/cjs/src/zonda.js +1 -0
  79. package/js/ccxt.d.ts +2 -8
  80. package/js/ccxt.js +2 -6
  81. package/js/src/abstract/kraken.d.ts +0 -5
  82. package/js/src/alpaca.d.ts +3 -2
  83. package/js/src/alpaca.js +62 -64
  84. package/js/src/ascendex.js +3 -1
  85. package/js/src/base/Exchange.d.ts +2 -0
  86. package/js/src/base/Exchange.js +10 -0
  87. package/js/src/base/types.d.ts +6 -3
  88. package/js/src/bigone.d.ts +3 -3
  89. package/js/src/bigone.js +60 -77
  90. package/js/src/binance.js +1 -0
  91. package/js/src/bingx.d.ts +2 -2
  92. package/js/src/bingx.js +4 -11
  93. package/js/src/bitbank.d.ts +3 -2
  94. package/js/src/bitbank.js +58 -59
  95. package/js/src/bitbns.js +1 -0
  96. package/js/src/bitfinex.js +1 -0
  97. package/js/src/bitfinex2.js +1 -0
  98. package/js/src/bitflyer.js +1 -0
  99. package/js/src/bitget.d.ts +1 -2
  100. package/js/src/bitget.js +3 -8
  101. package/js/src/bithumb.js +1 -0
  102. package/js/src/bitmart.js +10 -1
  103. package/js/src/bitmex.d.ts +3 -2
  104. package/js/src/bitmex.js +114 -119
  105. package/js/src/bitopro.d.ts +3 -2
  106. package/js/src/bitopro.js +63 -65
  107. package/js/src/bitpanda.d.ts +3 -2
  108. package/js/src/bitpanda.js +60 -60
  109. package/js/src/bitrue.d.ts +3 -2
  110. package/js/src/bitrue.js +67 -71
  111. package/js/src/bitso.js +1 -0
  112. package/js/src/bitstamp.js +1 -0
  113. package/js/src/bittrex.d.ts +3 -2
  114. package/js/src/bittrex.js +57 -57
  115. package/js/src/bitvavo.js +10 -2
  116. package/js/src/blockchaincom.js +2 -2
  117. package/js/src/btcalpha.d.ts +3 -2
  118. package/js/src/btcalpha.js +59 -60
  119. package/js/src/btcmarkets.d.ts +3 -2
  120. package/js/src/btcmarkets.js +68 -69
  121. package/js/src/btcturk.d.ts +3 -2
  122. package/js/src/btcturk.js +72 -74
  123. package/js/src/bybit.js +3 -1
  124. package/js/src/coinbase.js +7 -2
  125. package/js/src/coinbasepro.js +1 -0
  126. package/js/src/coincheck.js +1 -0
  127. package/js/src/coinex.js +4 -0
  128. package/js/src/coinlist.d.ts +3 -2
  129. package/js/src/coinlist.js +60 -60
  130. package/js/src/coinmate.js +1 -0
  131. package/js/src/coinsph.js +2 -4
  132. package/js/src/cryptocom.js +1 -0
  133. package/js/src/currencycom.js +2 -2
  134. package/js/src/deribit.js +2 -0
  135. package/js/src/digifinex.js +5 -2
  136. package/js/src/exmo.js +1 -0
  137. package/js/src/gate.js +2 -0
  138. package/js/src/gemini.js +2 -0
  139. package/js/src/hitbtc.js +4 -0
  140. package/js/src/hollaex.js +2 -0
  141. package/js/src/htx.js +4 -0
  142. package/js/src/huobijp.js +2 -0
  143. package/js/src/idex.js +2 -0
  144. package/js/src/indodax.js +1 -0
  145. package/js/src/kraken.js +10 -13
  146. package/js/src/kucoin.js +6 -5
  147. package/js/src/kuna.js +3 -1
  148. package/js/src/latoken.js +1 -0
  149. package/js/src/lbank.js +1 -0
  150. package/js/src/lykke.js +2 -0
  151. package/js/src/mercado.js +1 -0
  152. package/js/src/mexc.js +2 -0
  153. package/js/src/ndax.js +2 -0
  154. package/js/src/novadax.js +1 -0
  155. package/js/src/okcoin.js +2 -0
  156. package/js/src/okx.js +2 -0
  157. package/js/src/phemex.js +2 -0
  158. package/js/src/poloniex.js +1 -0
  159. package/js/src/pro/binance.js +5 -3
  160. package/js/src/pro/coinbase.js +12 -3
  161. package/js/src/pro/cryptocom.js +17 -17
  162. package/js/src/pro/krakenfutures.js +24 -3
  163. package/js/src/probit.js +4 -2
  164. package/js/src/tidex.js +1 -0
  165. package/js/src/timex.js +2 -0
  166. package/js/src/upbit.js +2 -0
  167. package/js/src/wavesexchange.js +2 -1
  168. package/js/src/whitebit.js +1 -0
  169. package/js/src/woo.js +1 -0
  170. package/js/src/zaif.js +1 -0
  171. package/js/src/zonda.js +1 -0
  172. package/package.json +1 -1
  173. package/skip-tests.json +2 -3
  174. package/dist/cjs/src/btctradeua.js +0 -571
  175. package/dist/cjs/src/coinfalcon.js +0 -1012
  176. package/js/src/abstract/btctradeua.d.ts +0 -20
  177. package/js/src/abstract/btctradeua.js +0 -11
  178. package/js/src/abstract/coinfalcon.d.ts +0 -26
  179. package/js/src/abstract/coinfalcon.js +0 -11
  180. package/js/src/btctradeua.d.ts +0 -30
  181. package/js/src/btctradeua.js +0 -572
  182. package/js/src/coinfalcon.d.ts +0 -53
  183. package/js/src/coinfalcon.js +0 -1013
@@ -635,79 +635,74 @@ class bitrue extends bitrue$1 {
635
635
  await this.loadTimeDifference();
636
636
  }
637
637
  const markets = this.safeValue(response, 'symbols', []);
638
- const result = [];
639
- for (let i = 0; i < markets.length; i++) {
640
- const market = markets[i];
641
- const id = this.safeString(market, 'symbol');
642
- const lowercaseId = this.safeStringLower(market, 'symbol');
643
- const baseId = this.safeString(market, 'baseAsset');
644
- const quoteId = this.safeString(market, 'quoteAsset');
645
- const base = this.safeCurrencyCode(baseId);
646
- const quote = this.safeCurrencyCode(quoteId);
647
- const filters = this.safeValue(market, 'filters', []);
648
- const filtersByType = this.indexBy(filters, 'filterType');
649
- const status = this.safeString(market, 'status');
650
- const priceFilter = this.safeValue(filtersByType, 'PRICE_FILTER', {});
651
- const amountFilter = this.safeValue(filtersByType, 'LOT_SIZE', {});
652
- const defaultPricePrecision = this.safeString(market, 'pricePrecision');
653
- const defaultAmountPrecision = this.safeString(market, 'quantityPrecision');
654
- const pricePrecision = this.safeString(priceFilter, 'priceScale', defaultPricePrecision);
655
- const amountPrecision = this.safeString(amountFilter, 'volumeScale', defaultAmountPrecision);
656
- const entry = {
657
- 'id': id,
658
- 'lowercaseId': lowercaseId,
659
- 'symbol': base + '/' + quote,
660
- 'base': base,
661
- 'quote': quote,
662
- 'settle': undefined,
663
- 'baseId': baseId,
664
- 'quoteId': quoteId,
665
- 'settleId': undefined,
666
- 'type': 'spot',
667
- 'spot': true,
668
- 'margin': false,
669
- 'swap': false,
670
- 'future': false,
671
- 'option': false,
672
- 'active': (status === 'TRADING'),
673
- 'contract': false,
674
- 'linear': undefined,
675
- 'inverse': undefined,
676
- 'contractSize': undefined,
677
- 'expiry': undefined,
678
- 'expiryDatetime': undefined,
679
- 'strike': undefined,
680
- 'optionType': undefined,
681
- 'precision': {
682
- 'amount': this.parseNumber(this.parsePrecision(amountPrecision)),
683
- 'price': this.parseNumber(this.parsePrecision(pricePrecision)),
684
- 'base': this.parseNumber(this.parsePrecision(this.safeString(market, 'baseAssetPrecision'))),
685
- 'quote': this.parseNumber(this.parsePrecision(this.safeString(market, 'quotePrecision'))),
638
+ return this.parseMarkets(markets);
639
+ }
640
+ parseMarket(market) {
641
+ const id = this.safeString(market, 'symbol');
642
+ const lowercaseId = this.safeStringLower(market, 'symbol');
643
+ const baseId = this.safeString(market, 'baseAsset');
644
+ const quoteId = this.safeString(market, 'quoteAsset');
645
+ const base = this.safeCurrencyCode(baseId);
646
+ const quote = this.safeCurrencyCode(quoteId);
647
+ const filters = this.safeValue(market, 'filters', []);
648
+ const filtersByType = this.indexBy(filters, 'filterType');
649
+ const status = this.safeString(market, 'status');
650
+ const priceFilter = this.safeValue(filtersByType, 'PRICE_FILTER', {});
651
+ const amountFilter = this.safeValue(filtersByType, 'LOT_SIZE', {});
652
+ const defaultPricePrecision = this.safeString(market, 'pricePrecision');
653
+ const defaultAmountPrecision = this.safeString(market, 'quantityPrecision');
654
+ const pricePrecision = this.safeString(priceFilter, 'priceScale', defaultPricePrecision);
655
+ const amountPrecision = this.safeString(amountFilter, 'volumeScale', defaultAmountPrecision);
656
+ return {
657
+ 'id': id,
658
+ 'lowercaseId': lowercaseId,
659
+ 'symbol': base + '/' + quote,
660
+ 'base': base,
661
+ 'quote': quote,
662
+ 'settle': undefined,
663
+ 'baseId': baseId,
664
+ 'quoteId': quoteId,
665
+ 'settleId': undefined,
666
+ 'type': 'spot',
667
+ 'spot': true,
668
+ 'margin': false,
669
+ 'swap': false,
670
+ 'future': false,
671
+ 'option': false,
672
+ 'active': (status === 'TRADING'),
673
+ 'contract': false,
674
+ 'linear': undefined,
675
+ 'inverse': undefined,
676
+ 'contractSize': undefined,
677
+ 'expiry': undefined,
678
+ 'expiryDatetime': undefined,
679
+ 'strike': undefined,
680
+ 'optionType': undefined,
681
+ 'precision': {
682
+ 'amount': this.parseNumber(this.parsePrecision(amountPrecision)),
683
+ 'price': this.parseNumber(this.parsePrecision(pricePrecision)),
684
+ },
685
+ 'limits': {
686
+ 'leverage': {
687
+ 'min': undefined,
688
+ 'max': undefined,
686
689
  },
687
- 'limits': {
688
- 'leverage': {
689
- 'min': undefined,
690
- 'max': undefined,
691
- },
692
- 'amount': {
693
- 'min': this.safeNumber(amountFilter, 'minQty'),
694
- 'max': this.safeNumber(amountFilter, 'maxQty'),
695
- },
696
- 'price': {
697
- 'min': this.safeNumber(priceFilter, 'minPrice'),
698
- 'max': this.safeNumber(priceFilter, 'maxPrice'),
699
- },
700
- 'cost': {
701
- 'min': this.safeNumber(amountFilter, 'minVal'),
702
- 'max': undefined,
703
- },
690
+ 'amount': {
691
+ 'min': this.safeNumber(amountFilter, 'minQty'),
692
+ 'max': this.safeNumber(amountFilter, 'maxQty'),
704
693
  },
705
- 'created': undefined,
706
- 'info': market,
707
- };
708
- result.push(entry);
709
- }
710
- return result;
694
+ 'price': {
695
+ 'min': this.safeNumber(priceFilter, 'minPrice'),
696
+ 'max': this.safeNumber(priceFilter, 'maxPrice'),
697
+ },
698
+ 'cost': {
699
+ 'min': this.safeNumber(amountFilter, 'minVal'),
700
+ 'max': undefined,
701
+ },
702
+ },
703
+ 'created': undefined,
704
+ 'info': market,
705
+ };
711
706
  }
712
707
  parseBalance(response) {
713
708
  const result = {
@@ -1830,6 +1825,7 @@ class bitrue extends bitrue$1 {
1830
1825
  'status': status,
1831
1826
  'updated': updated,
1832
1827
  'internal': false,
1828
+ 'comment': undefined,
1833
1829
  'fee': fee,
1834
1830
  };
1835
1831
  }
@@ -1670,6 +1670,7 @@ class bitso extends bitso$1 {
1670
1670
  'tag': undefined,
1671
1671
  'tagTo': undefined,
1672
1672
  'comment': undefined,
1673
+ 'internal': undefined,
1673
1674
  'fee': undefined,
1674
1675
  'info': transaction,
1675
1676
  };
@@ -1711,6 +1711,7 @@ class bitstamp extends bitstamp$1 {
1711
1711
  'tagTo': tag,
1712
1712
  'updated': undefined,
1713
1713
  'comment': undefined,
1714
+ 'internal': undefined,
1714
1715
  'fee': fee,
1715
1716
  };
1716
1717
  }
@@ -312,65 +312,63 @@ class bittrex extends bittrex$1 {
312
312
  // }
313
313
  // ]
314
314
  //
315
- const result = [];
316
- for (let i = 0; i < response.length; i++) {
317
- const market = response[i];
318
- const baseId = this.safeString(market, 'baseCurrencySymbol');
319
- const quoteId = this.safeString(market, 'quoteCurrencySymbol');
320
- const base = this.safeCurrencyCode(baseId);
321
- const quote = this.safeCurrencyCode(quoteId);
322
- const status = this.safeString(market, 'status');
323
- result.push({
324
- 'id': this.safeString(market, 'symbol'),
325
- 'symbol': base + '/' + quote,
326
- 'base': base,
327
- 'quote': quote,
328
- 'settle': undefined,
329
- 'baseId': baseId,
330
- 'quoteId': quoteId,
331
- 'settleId': undefined,
332
- 'type': 'spot',
333
- 'spot': true,
334
- 'margin': false,
335
- 'swap': false,
336
- 'future': false,
337
- 'option': false,
338
- 'active': (status === 'ONLINE'),
339
- 'contract': false,
340
- 'linear': undefined,
341
- 'inverse': undefined,
342
- 'contractSize': undefined,
343
- 'expiry': undefined,
344
- 'expiryDatetime': undefined,
345
- 'strike': undefined,
346
- 'optionType': undefined,
347
- 'precision': {
348
- 'amount': this.parseNumber('1e-8'),
349
- 'price': this.parseNumber(this.parsePrecision(this.safeString(market, 'precision'))),
315
+ return this.parseMarkets(response);
316
+ }
317
+ parseMarket(market) {
318
+ const baseId = this.safeString(market, 'baseCurrencySymbol');
319
+ const quoteId = this.safeString(market, 'quoteCurrencySymbol');
320
+ const base = this.safeCurrencyCode(baseId);
321
+ const quote = this.safeCurrencyCode(quoteId);
322
+ const status = this.safeString(market, 'status');
323
+ return {
324
+ 'id': this.safeString(market, 'symbol'),
325
+ 'symbol': base + '/' + quote,
326
+ 'base': base,
327
+ 'quote': quote,
328
+ 'settle': undefined,
329
+ 'baseId': baseId,
330
+ 'quoteId': quoteId,
331
+ 'settleId': undefined,
332
+ 'type': 'spot',
333
+ 'spot': true,
334
+ 'margin': false,
335
+ 'swap': false,
336
+ 'future': false,
337
+ 'option': false,
338
+ 'active': (status === 'ONLINE'),
339
+ 'contract': false,
340
+ 'linear': undefined,
341
+ 'inverse': undefined,
342
+ 'contractSize': undefined,
343
+ 'expiry': undefined,
344
+ 'expiryDatetime': undefined,
345
+ 'strike': undefined,
346
+ 'optionType': undefined,
347
+ 'precision': {
348
+ 'amount': this.parseNumber('1e-8'),
349
+ 'price': this.parseNumber(this.parsePrecision(this.safeString(market, 'precision'))),
350
+ },
351
+ 'limits': {
352
+ 'leverage': {
353
+ 'min': undefined,
354
+ 'max': undefined,
350
355
  },
351
- 'limits': {
352
- 'leverage': {
353
- 'min': undefined,
354
- 'max': undefined,
355
- },
356
- 'amount': {
357
- 'min': this.safeNumber(market, 'minTradeSize'),
358
- 'max': undefined,
359
- },
360
- 'price': {
361
- 'min': undefined,
362
- 'max': undefined,
363
- },
364
- 'cost': {
365
- 'min': undefined,
366
- 'max': undefined,
367
- },
356
+ 'amount': {
357
+ 'min': this.safeNumber(market, 'minTradeSize'),
358
+ 'max': undefined,
368
359
  },
369
- 'created': this.parse8601(this.safeString(market, 'createdAt')),
370
- 'info': market,
371
- });
372
- }
373
- return result;
360
+ 'price': {
361
+ 'min': undefined,
362
+ 'max': undefined,
363
+ },
364
+ 'cost': {
365
+ 'min': undefined,
366
+ 'max': undefined,
367
+ },
368
+ },
369
+ 'created': this.parse8601(this.safeString(market, 'createdAt')),
370
+ 'info': market,
371
+ };
374
372
  }
375
373
  parseBalance(response) {
376
374
  const result = { 'info': response };
@@ -1670,6 +1668,8 @@ class bittrex extends bittrex$1 {
1670
1668
  'txid': txid,
1671
1669
  'timestamp': timestamp,
1672
1670
  'datetime': this.iso8601(timestamp),
1671
+ 'comment': undefined,
1672
+ 'internal': undefined,
1673
1673
  'fee': {
1674
1674
  'currency': code,
1675
1675
  'cost': feeCost,
@@ -20,7 +20,7 @@ class bitvavo extends bitvavo$1 {
20
20
  'countries': ['NL'],
21
21
  'rateLimit': 60,
22
22
  'version': 'v2',
23
- 'certified': true,
23
+ 'certified': false,
24
24
  'pro': true,
25
25
  'has': {
26
26
  'CORS': undefined,
@@ -312,7 +312,10 @@ class bitvavo extends bitvavo$1 {
312
312
  * @returns {object[]} an array of objects representing market data
313
313
  */
314
314
  const response = await this.publicGetMarkets(params);
315
- const currencies = await this.fetchCurrencies();
315
+ let currencies = this.currencies;
316
+ if (this.currencies === undefined) {
317
+ currencies = await this.fetchCurrencies();
318
+ }
316
319
  const currenciesById = this.indexBy(currencies, 'id');
317
320
  //
318
321
  // [
@@ -329,6 +332,7 @@ class bitvavo extends bitvavo$1 {
329
332
  // ]
330
333
  //
331
334
  const result = [];
335
+ const fees = this.fees;
332
336
  for (let i = 0; i < response.length; i++) {
333
337
  const market = response[i];
334
338
  const id = this.safeString(market, 'market');
@@ -363,6 +367,8 @@ class bitvavo extends bitvavo$1 {
363
367
  'expiryDatetime': undefined,
364
368
  'strike': undefined,
365
369
  'optionType': undefined,
370
+ 'taker': fees['trading']['taker'],
371
+ 'maker': fees['trading']['maker'],
366
372
  'precision': {
367
373
  'amount': this.safeInteger(baseCurrency, 'decimals', basePrecision),
368
374
  'price': this.safeInteger(market, 'pricePrecision'),
@@ -1769,6 +1775,8 @@ class bitvavo extends bitvavo$1 {
1769
1775
  'updated': undefined,
1770
1776
  'fee': fee,
1771
1777
  'network': undefined,
1778
+ 'comment': undefined,
1779
+ 'internal': undefined,
1772
1780
  };
1773
1781
  }
1774
1782
  parseDepositWithdrawFee(fee, currency = undefined) {
@@ -883,7 +883,7 @@ class blockchaincom extends blockchaincom$1 {
883
883
  }
884
884
  const address = this.safeString(transaction, 'address');
885
885
  const txid = this.safeString(transaction, 'txhash');
886
- const result = {
886
+ return {
887
887
  'info': transaction,
888
888
  'id': id,
889
889
  'txid': txid,
@@ -902,9 +902,9 @@ class blockchaincom extends blockchaincom$1 {
902
902
  'status': this.parseTransactionState(state),
903
903
  'updated': undefined,
904
904
  'comment': undefined,
905
+ 'internal': undefined,
905
906
  'fee': fee,
906
907
  };
907
- return result;
908
908
  }
909
909
  async fetchWithdrawalWhitelist(params = {}) {
910
910
  /**
@@ -169,68 +169,66 @@ class btcalpha extends btcalpha$1 {
169
169
  // },
170
170
  // ]
171
171
  //
172
- const result = [];
173
- for (let i = 0; i < response.length; i++) {
174
- const market = response[i];
175
- const id = this.safeString(market, 'name');
176
- const baseId = this.safeString(market, 'currency1');
177
- const quoteId = this.safeString(market, 'currency2');
178
- const base = this.safeCurrencyCode(baseId);
179
- const quote = this.safeCurrencyCode(quoteId);
180
- const pricePrecision = this.safeString(market, 'price_precision');
181
- const priceLimit = this.parsePrecision(pricePrecision);
182
- const amountLimit = this.safeString(market, 'minimum_order_size');
183
- result.push({
184
- 'id': id,
185
- 'symbol': base + '/' + quote,
186
- 'base': base,
187
- 'quote': quote,
188
- 'settle': undefined,
189
- 'baseId': baseId,
190
- 'quoteId': quoteId,
191
- 'settleId': undefined,
192
- 'type': 'spot',
193
- 'spot': true,
194
- 'margin': false,
195
- 'swap': false,
196
- 'future': false,
197
- 'option': false,
198
- 'active': true,
199
- 'contract': false,
200
- 'linear': undefined,
201
- 'inverse': undefined,
202
- 'contractSize': undefined,
203
- 'expiry': undefined,
204
- 'expiryDatetime': undefined,
205
- 'strike': undefined,
206
- 'optionType': undefined,
207
- 'precision': {
208
- 'amount': this.parseNumber(this.parsePrecision(this.safeString(market, 'amount_precision'))),
209
- 'price': this.parseNumber(this.parsePrecision((pricePrecision))),
172
+ return this.parseMarkets(response);
173
+ }
174
+ parseMarket(market) {
175
+ const id = this.safeString(market, 'name');
176
+ const baseId = this.safeString(market, 'currency1');
177
+ const quoteId = this.safeString(market, 'currency2');
178
+ const base = this.safeCurrencyCode(baseId);
179
+ const quote = this.safeCurrencyCode(quoteId);
180
+ const pricePrecision = this.safeString(market, 'price_precision');
181
+ const priceLimit = this.parsePrecision(pricePrecision);
182
+ const amountLimit = this.safeString(market, 'minimum_order_size');
183
+ return {
184
+ 'id': id,
185
+ 'symbol': base + '/' + quote,
186
+ 'base': base,
187
+ 'quote': quote,
188
+ 'settle': undefined,
189
+ 'baseId': baseId,
190
+ 'quoteId': quoteId,
191
+ 'settleId': undefined,
192
+ 'type': 'spot',
193
+ 'spot': true,
194
+ 'margin': false,
195
+ 'swap': false,
196
+ 'future': false,
197
+ 'option': false,
198
+ 'active': true,
199
+ 'contract': false,
200
+ 'linear': undefined,
201
+ 'inverse': undefined,
202
+ 'contractSize': undefined,
203
+ 'expiry': undefined,
204
+ 'expiryDatetime': undefined,
205
+ 'strike': undefined,
206
+ 'optionType': undefined,
207
+ 'precision': {
208
+ 'amount': this.parseNumber(this.parsePrecision(this.safeString(market, 'amount_precision'))),
209
+ 'price': this.parseNumber(this.parsePrecision((pricePrecision))),
210
+ },
211
+ 'limits': {
212
+ 'leverage': {
213
+ 'min': undefined,
214
+ 'max': undefined,
210
215
  },
211
- 'limits': {
212
- 'leverage': {
213
- 'min': undefined,
214
- 'max': undefined,
215
- },
216
- 'amount': {
217
- 'min': this.parseNumber(amountLimit),
218
- 'max': this.safeNumber(market, 'maximum_order_size'),
219
- },
220
- 'price': {
221
- 'min': this.parseNumber(priceLimit),
222
- 'max': undefined,
223
- },
224
- 'cost': {
225
- 'min': this.parseNumber(Precise["default"].stringMul(priceLimit, amountLimit)),
226
- 'max': undefined,
227
- },
216
+ 'amount': {
217
+ 'min': this.parseNumber(amountLimit),
218
+ 'max': this.safeNumber(market, 'maximum_order_size'),
228
219
  },
229
- 'created': undefined,
230
- 'info': market,
231
- });
232
- }
233
- return result;
220
+ 'price': {
221
+ 'min': this.parseNumber(priceLimit),
222
+ 'max': undefined,
223
+ },
224
+ 'cost': {
225
+ 'min': this.parseNumber(Precise["default"].stringMul(priceLimit, amountLimit)),
226
+ 'max': undefined,
227
+ },
228
+ },
229
+ 'created': undefined,
230
+ 'info': market,
231
+ };
234
232
  }
235
233
  async fetchTickers(symbols = undefined, params = {}) {
236
234
  /**
@@ -542,6 +540,7 @@ class btcalpha extends btcalpha$1 {
542
540
  'type': undefined,
543
541
  'status': this.parseTransactionStatus(statusId),
544
542
  'comment': undefined,
543
+ 'internal': undefined,
545
544
  'fee': undefined,
546
545
  'updated': undefined,
547
546
  };