ccxt 4.5.56 → 4.5.57

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 (261) hide show
  1. package/README.md +10 -9
  2. package/dist/ccxt.browser.min.js +10 -10
  3. package/dist/cjs/ccxt.js +6 -11
  4. package/dist/cjs/src/apex.js +1 -1
  5. package/dist/cjs/src/arkham.js +3 -3
  6. package/dist/cjs/src/ascendex.js +2 -2
  7. package/dist/cjs/src/aster.js +7 -4
  8. package/dist/cjs/src/backpack.js +4 -4
  9. package/dist/cjs/src/base/Exchange.js +69 -32
  10. package/dist/cjs/src/base/functions/io.js +25 -0
  11. package/dist/cjs/src/base/functions.js +1 -0
  12. package/dist/cjs/src/bigone.js +3 -3
  13. package/dist/cjs/src/binance.js +192 -194
  14. package/dist/cjs/src/bingx.js +3 -3
  15. package/dist/cjs/src/bitfinex.js +71 -58
  16. package/dist/cjs/src/bitget.js +2 -2
  17. package/dist/cjs/src/bitmart.js +13 -6
  18. package/dist/cjs/src/bitmex.js +1 -1
  19. package/dist/cjs/src/bitopro.js +1 -1
  20. package/dist/cjs/src/bitrue.js +2 -2
  21. package/dist/cjs/src/bitso.js +1 -1
  22. package/dist/cjs/src/bitstamp.js +2 -1
  23. package/dist/cjs/src/bitteam.js +1 -1
  24. package/dist/cjs/src/bittrade.js +0 -1
  25. package/dist/cjs/src/bitvavo.js +457 -34
  26. package/dist/cjs/src/blofin.js +26 -3
  27. package/dist/cjs/src/bullish.js +6 -5
  28. package/dist/cjs/src/bydfi.js +1 -1
  29. package/dist/cjs/src/cex.js +3 -3
  30. package/dist/cjs/src/coinbase.js +75 -65
  31. package/dist/cjs/src/coinbaseexchange.js +2 -2
  32. package/dist/cjs/src/coinbaseinternational.js +2 -1
  33. package/dist/cjs/src/coinex.js +74 -74
  34. package/dist/cjs/src/coinmetro.js +1 -1
  35. package/dist/cjs/src/coinsph.js +1 -1
  36. package/dist/cjs/src/cryptocom.js +46 -48
  37. package/dist/cjs/src/cryptomus.js +43 -39
  38. package/dist/cjs/src/deepcoin.js +3 -2
  39. package/dist/cjs/src/delta.js +51 -52
  40. package/dist/cjs/src/deribit.js +31 -33
  41. package/dist/cjs/src/derive.js +26 -28
  42. package/dist/cjs/src/digifinex.js +43 -44
  43. package/dist/cjs/src/exmo.js +92 -83
  44. package/dist/cjs/src/extended.js +3497 -0
  45. package/dist/cjs/src/foxbit.js +71 -75
  46. package/dist/cjs/src/gate.js +53 -53
  47. package/dist/cjs/src/gemini.js +41 -43
  48. package/dist/cjs/src/grvt.js +4 -4
  49. package/dist/cjs/src/hashkey.js +52 -54
  50. package/dist/cjs/src/hitbtc.js +3 -13
  51. package/dist/cjs/src/hollaex.js +51 -54
  52. package/dist/cjs/src/htx.js +75 -67
  53. package/dist/cjs/src/hyperliquid.js +41 -42
  54. package/dist/cjs/src/indodax.js +2 -2
  55. package/dist/cjs/src/kraken.js +57 -58
  56. package/dist/cjs/src/kucoin.js +3 -2
  57. package/dist/cjs/src/latoken.js +30 -32
  58. package/dist/cjs/src/lbank.js +56 -56
  59. package/dist/cjs/src/lighter.js +35 -37
  60. package/dist/cjs/src/luno.js +35 -43
  61. package/dist/cjs/src/mexc.js +48 -49
  62. package/dist/cjs/src/modetrade.js +50 -52
  63. package/dist/cjs/src/ndax.js +35 -37
  64. package/dist/cjs/src/okx.js +17 -2
  65. package/dist/cjs/src/onetrading.js +21 -23
  66. package/dist/cjs/src/phemex.js +43 -45
  67. package/dist/cjs/src/poloniex.js +17 -12
  68. package/dist/cjs/src/pro/alpaca.js +1 -1
  69. package/dist/cjs/src/pro/apex.js +1 -1
  70. package/dist/cjs/src/pro/arkham.js +1 -1
  71. package/dist/cjs/src/pro/backpack.js +1 -1
  72. package/dist/cjs/src/pro/binance.js +3 -3
  73. package/dist/cjs/src/pro/bitget.js +1 -1
  74. package/dist/cjs/src/pro/bithumb.js +1 -1
  75. package/dist/cjs/src/pro/bitstamp.js +1 -1
  76. package/dist/cjs/src/pro/blockchaincom.js +1 -1
  77. package/dist/cjs/src/pro/bybit.js +1 -1
  78. package/dist/cjs/src/pro/cex.js +1 -1
  79. package/dist/cjs/src/pro/coinex.js +1 -1
  80. package/dist/cjs/src/pro/coinone.js +1 -1
  81. package/dist/cjs/src/pro/cryptocom.js +3 -1
  82. package/dist/cjs/src/pro/dydx.js +1 -1
  83. package/dist/cjs/src/pro/exmo.js +1 -1
  84. package/dist/cjs/src/pro/extended.js +865 -0
  85. package/dist/cjs/src/pro/gate.js +1 -1
  86. package/dist/cjs/src/pro/independentreserve.js +1 -1
  87. package/dist/cjs/src/pro/kucoin.js +1 -1
  88. package/dist/cjs/src/pro/luno.js +3 -3
  89. package/dist/cjs/src/pro/onetrading.js +1 -1
  90. package/dist/cjs/src/pro/toobit.js +1 -1
  91. package/dist/cjs/src/pro/weex.js +1 -1
  92. package/dist/cjs/src/static_dependencies/starknet/utils/hash/classHash.js +7 -7
  93. package/dist/cjs/src/tokocrypto.js +1 -1
  94. package/dist/cjs/src/toobit.js +2 -2
  95. package/dist/cjs/src/upbit.js +3 -3
  96. package/dist/cjs/src/weex.js +57 -62
  97. package/dist/cjs/src/whitebit.js +61 -63
  98. package/dist/cjs/src/woo.js +65 -54
  99. package/dist/cjs/src/woofipro.js +53 -47
  100. package/dist/cjs/src/xt.js +1 -1
  101. package/dist/cjs/src/zebpay.js +70 -72
  102. package/js/ccxt.d.ts +8 -14
  103. package/js/ccxt.js +6 -10
  104. package/js/src/abstract/bitvavo.d.ts +15 -7
  105. package/js/src/abstract/extended.d.ts +58 -0
  106. package/js/src/apex.js +1 -1
  107. package/js/src/arkham.js +3 -3
  108. package/js/src/ascendex.js +2 -2
  109. package/js/src/aster.js +7 -4
  110. package/js/src/backpack.js +4 -4
  111. package/js/src/base/Exchange.d.ts +10 -6
  112. package/js/src/base/Exchange.js +69 -32
  113. package/js/src/base/functions/io.d.ts +7 -0
  114. package/js/src/base/functions/io.js +24 -0
  115. package/js/src/bigone.js +3 -3
  116. package/js/src/binance.d.ts +2 -0
  117. package/js/src/binance.js +196 -198
  118. package/js/src/bingx.js +3 -3
  119. package/js/src/bitfinex.d.ts +2 -0
  120. package/js/src/bitfinex.js +71 -58
  121. package/js/src/bitget.js +2 -2
  122. package/js/src/bitmart.js +13 -6
  123. package/js/src/bitmex.js +1 -1
  124. package/js/src/bitopro.js +1 -1
  125. package/js/src/bitrue.js +2 -2
  126. package/js/src/bitso.js +1 -1
  127. package/js/src/bitstamp.js +2 -1
  128. package/js/src/bitteam.js +1 -1
  129. package/js/src/bittrade.js +0 -1
  130. package/js/src/bitvavo.d.ts +114 -21
  131. package/js/src/bitvavo.js +457 -34
  132. package/js/src/blofin.d.ts +1 -0
  133. package/js/src/blofin.js +26 -3
  134. package/js/src/bullish.js +6 -5
  135. package/js/src/bydfi.js +1 -1
  136. package/js/src/cex.js +3 -3
  137. package/js/src/coinbase.d.ts +63 -56
  138. package/js/src/coinbase.js +75 -65
  139. package/js/src/coinbaseexchange.js +2 -2
  140. package/js/src/coinbaseinternational.js +2 -1
  141. package/js/src/coinex.d.ts +1 -0
  142. package/js/src/coinex.js +74 -74
  143. package/js/src/coinmetro.d.ts +1 -1
  144. package/js/src/coinmetro.js +1 -1
  145. package/js/src/coinsph.js +1 -1
  146. package/js/src/cryptocom.d.ts +1 -0
  147. package/js/src/cryptocom.js +46 -48
  148. package/js/src/cryptomus.d.ts +2 -1
  149. package/js/src/cryptomus.js +43 -39
  150. package/js/src/deepcoin.js +3 -2
  151. package/js/src/delta.d.ts +1 -0
  152. package/js/src/delta.js +51 -52
  153. package/js/src/deribit.d.ts +1 -0
  154. package/js/src/deribit.js +31 -33
  155. package/js/src/derive.d.ts +1 -0
  156. package/js/src/derive.js +26 -28
  157. package/js/src/digifinex.d.ts +1 -0
  158. package/js/src/digifinex.js +43 -44
  159. package/js/src/exmo.d.ts +1 -0
  160. package/js/src/exmo.js +92 -83
  161. package/js/src/extended.d.ts +554 -0
  162. package/js/src/extended.js +3490 -0
  163. package/js/src/foxbit.d.ts +1 -0
  164. package/js/src/foxbit.js +71 -75
  165. package/js/src/gate.d.ts +1 -0
  166. package/js/src/gate.js +53 -53
  167. package/js/src/gemini.d.ts +2 -1
  168. package/js/src/gemini.js +41 -43
  169. package/js/src/grvt.js +4 -4
  170. package/js/src/hashkey.d.ts +1 -0
  171. package/js/src/hashkey.js +52 -54
  172. package/js/src/hitbtc.d.ts +0 -1
  173. package/js/src/hitbtc.js +3 -13
  174. package/js/src/hollaex.d.ts +1 -0
  175. package/js/src/hollaex.js +51 -54
  176. package/js/src/htx.d.ts +1 -0
  177. package/js/src/htx.js +75 -67
  178. package/js/src/hyperliquid.d.ts +1 -0
  179. package/js/src/hyperliquid.js +41 -42
  180. package/js/src/indodax.js +2 -2
  181. package/js/src/kraken.d.ts +2 -1
  182. package/js/src/kraken.js +57 -58
  183. package/js/src/kucoin.js +3 -2
  184. package/js/src/latoken.d.ts +1 -0
  185. package/js/src/latoken.js +30 -32
  186. package/js/src/lbank.d.ts +1 -0
  187. package/js/src/lbank.js +56 -56
  188. package/js/src/lighter.d.ts +1 -0
  189. package/js/src/lighter.js +35 -37
  190. package/js/src/luno.d.ts +1 -0
  191. package/js/src/luno.js +35 -43
  192. package/js/src/mexc.d.ts +2 -1
  193. package/js/src/mexc.js +48 -49
  194. package/js/src/modetrade.d.ts +1 -0
  195. package/js/src/modetrade.js +50 -52
  196. package/js/src/ndax.d.ts +1 -0
  197. package/js/src/ndax.js +35 -37
  198. package/js/src/okx.js +17 -2
  199. package/js/src/onetrading.d.ts +2 -1
  200. package/js/src/onetrading.js +21 -23
  201. package/js/src/phemex.d.ts +1 -0
  202. package/js/src/phemex.js +43 -45
  203. package/js/src/poloniex.js +17 -12
  204. package/js/src/pro/alpaca.js +1 -1
  205. package/js/src/pro/apex.js +1 -1
  206. package/js/src/pro/arkham.js +1 -1
  207. package/js/src/pro/backpack.js +1 -1
  208. package/js/src/pro/binance.js +3 -3
  209. package/js/src/pro/bitget.js +1 -1
  210. package/js/src/pro/bithumb.js +1 -1
  211. package/js/src/pro/bitstamp.js +1 -1
  212. package/js/src/pro/blockchaincom.js +1 -1
  213. package/js/src/pro/bybit.js +1 -1
  214. package/js/src/pro/cex.js +1 -1
  215. package/js/src/pro/coinex.js +1 -1
  216. package/js/src/pro/coinone.js +1 -1
  217. package/js/src/pro/cryptocom.js +3 -1
  218. package/js/src/pro/dydx.js +1 -1
  219. package/js/src/pro/exmo.js +1 -1
  220. package/js/src/pro/extended.d.ts +126 -0
  221. package/js/src/pro/extended.js +858 -0
  222. package/js/src/pro/gate.js +1 -1
  223. package/js/src/pro/independentreserve.js +1 -1
  224. package/js/src/pro/kucoin.js +1 -1
  225. package/js/src/pro/luno.d.ts +1 -1
  226. package/js/src/pro/luno.js +3 -3
  227. package/js/src/pro/onetrading.js +1 -1
  228. package/js/src/pro/toobit.js +1 -1
  229. package/js/src/pro/weex.js +1 -1
  230. package/js/src/tokocrypto.js +1 -1
  231. package/js/src/toobit.js +2 -2
  232. package/js/src/upbit.js +3 -3
  233. package/js/src/weex.d.ts +1 -0
  234. package/js/src/weex.js +57 -62
  235. package/js/src/whitebit.d.ts +1 -0
  236. package/js/src/whitebit.js +61 -63
  237. package/js/src/woo.d.ts +1 -0
  238. package/js/src/woo.js +65 -54
  239. package/js/src/woofipro.d.ts +1 -0
  240. package/js/src/woofipro.js +53 -47
  241. package/js/src/xt.js +1 -1
  242. package/js/src/zebpay.d.ts +2 -1
  243. package/js/src/zebpay.js +70 -72
  244. package/package.json +7 -7
  245. package/dist/cjs/src/gateio.js +0 -18
  246. package/dist/cjs/src/oxfun.js +0 -2933
  247. package/dist/cjs/src/pro/gateio.js +0 -18
  248. package/dist/cjs/src/pro/oxfun.js +0 -1113
  249. package/js/src/abstract/gateio.d.ts +0 -346
  250. package/js/src/abstract/gateio.js +0 -5
  251. package/js/src/abstract/oxfun.d.ts +0 -37
  252. package/js/src/gateio.d.ts +0 -4
  253. package/js/src/gateio.js +0 -11
  254. package/js/src/oxfun.d.ts +0 -442
  255. package/js/src/oxfun.js +0 -2926
  256. package/js/src/pro/gateio.d.ts +0 -4
  257. package/js/src/pro/gateio.js +0 -11
  258. package/js/src/pro/oxfun.d.ts +0 -234
  259. package/js/src/pro/oxfun.js +0 -1106
  260. /package/dist/cjs/src/abstract/{oxfun.js → extended.js} +0 -0
  261. /package/js/src/abstract/{oxfun.js → extended.js} +0 -0
@@ -643,40 +643,38 @@ class deribit extends deribit$1["default"] {
643
643
  // }
644
644
  //
645
645
  const data = this.safeList(response, 'result', []);
646
- const result = {};
647
- for (let i = 0; i < data.length; i++) {
648
- const currency = data[i];
649
- const currencyId = this.safeString(currency, 'currency');
650
- const code = this.safeCurrencyCode(currencyId);
651
- result[code] = this.safeCurrencyStructure({
652
- 'info': currency,
653
- 'code': code,
654
- 'id': currencyId,
655
- 'name': this.safeString(currency, 'currency_long'),
656
- 'active': undefined,
657
- 'deposit': undefined,
658
- 'withdraw': undefined,
659
- 'type': 'crypto',
660
- 'fee': this.safeNumber(currency, 'withdrawal_fee'),
661
- 'precision': undefined,
662
- 'limits': {
663
- 'amount': {
664
- 'min': undefined,
665
- 'max': undefined,
666
- },
667
- 'withdraw': {
668
- 'min': undefined,
669
- 'max': undefined,
670
- },
671
- 'deposit': {
672
- 'min': undefined,
673
- 'max': undefined,
674
- },
646
+ return this.parseCurrencies(data);
647
+ }
648
+ parseCurrency(rawCurrency) {
649
+ const currencyId = this.safeString(rawCurrency, 'currency');
650
+ const code = this.safeCurrencyCode(currencyId);
651
+ return this.safeCurrencyStructure({
652
+ 'info': rawCurrency,
653
+ 'code': code,
654
+ 'id': currencyId,
655
+ 'name': this.safeString(rawCurrency, 'currency_long'),
656
+ 'active': undefined,
657
+ 'deposit': undefined,
658
+ 'withdraw': undefined,
659
+ 'type': 'crypto',
660
+ 'fee': this.safeNumber(rawCurrency, 'withdrawal_fee'),
661
+ 'precision': undefined,
662
+ 'limits': {
663
+ 'amount': {
664
+ 'min': undefined,
665
+ 'max': undefined,
675
666
  },
676
- 'networks': undefined,
677
- });
678
- }
679
- return result;
667
+ 'withdraw': {
668
+ 'min': undefined,
669
+ 'max': undefined,
670
+ },
671
+ 'deposit': {
672
+ 'min': undefined,
673
+ 'max': undefined,
674
+ },
675
+ },
676
+ 'networks': undefined,
677
+ });
680
678
  }
681
679
  codeFromOptions(methodName, params = {}) {
682
680
  const defaultCode = this.safeValue(this.options, 'code', 'BTC');
@@ -450,7 +450,6 @@ class derive extends derive$1["default"] {
450
450
  * @returns {object} an associative dictionary of currencies
451
451
  */
452
452
  async fetchCurrencies(params = {}) {
453
- const result = {};
454
453
  const tokenResponse = await this.publicGetGetAllCurrencies(params);
455
454
  //
456
455
  // {
@@ -501,34 +500,33 @@ class derive extends derive$1["default"] {
501
500
  // }
502
501
  //
503
502
  const currencies = this.safeList(tokenResponse, 'result', []);
504
- for (let i = 0; i < currencies.length; i++) {
505
- const currency = currencies[i];
506
- const currencyId = this.safeString(currency, 'currency');
507
- const code = this.safeCurrencyCode(currencyId);
508
- result[code] = this.safeCurrencyStructure({
509
- 'id': currencyId,
510
- 'name': undefined,
511
- 'code': code,
512
- 'precision': undefined,
513
- 'active': undefined,
514
- 'fee': undefined,
515
- 'networks': undefined,
516
- 'deposit': undefined,
517
- 'withdraw': undefined,
518
- 'limits': {
519
- 'deposit': {
520
- 'min': undefined,
521
- 'max': undefined,
522
- },
523
- 'withdraw': {
524
- 'min': undefined,
525
- 'max': undefined,
526
- },
503
+ return this.parseCurrencies(currencies);
504
+ }
505
+ parseCurrency(rawCurrency) {
506
+ const currencyId = this.safeString(rawCurrency, 'currency');
507
+ const code = this.safeCurrencyCode(currencyId);
508
+ return this.safeCurrencyStructure({
509
+ 'id': currencyId,
510
+ 'name': undefined,
511
+ 'code': code,
512
+ 'precision': undefined,
513
+ 'active': undefined,
514
+ 'fee': undefined,
515
+ 'networks': undefined,
516
+ 'deposit': undefined,
517
+ 'withdraw': undefined,
518
+ 'limits': {
519
+ 'deposit': {
520
+ 'min': undefined,
521
+ 'max': undefined,
527
522
  },
528
- 'info': currency,
529
- });
530
- }
531
- return result;
523
+ 'withdraw': {
524
+ 'min': undefined,
525
+ 'max': undefined,
526
+ },
527
+ },
528
+ 'info': rawCurrency,
529
+ });
532
530
  }
533
531
  /**
534
532
  * @method
@@ -414,7 +414,7 @@ class digifinex extends digifinex$1["default"] {
414
414
  'OTC': '3',
415
415
  },
416
416
  'networks': {
417
- 'ARBITRUM': 'Arbitrum',
417
+ 'ARBONE': 'Arbitrum',
418
418
  'AVALANCEC': 'AVAX-CCHAIN',
419
419
  'AVALANCEX': 'AVAX-XCHAIN',
420
420
  'BEP20': 'BEP20',
@@ -431,20 +431,19 @@ class digifinex extends digifinex$1["default"] {
431
431
  'ETHW': 'ETHW',
432
432
  'IOTA': 'MIOTA',
433
433
  'KLAYTN': 'KLAY',
434
- 'MATIC': 'Polygon',
435
434
  'METIS': 'MetisDAO',
436
435
  'MOONBEAM': 'GLMR',
437
436
  'MOONRIVER': 'Moonriver',
438
437
  'OPTIMISM': 'OPETH',
439
438
  'POLYGON': 'Polygon',
439
+ 'MATIC': 'Polygon',
440
440
  'RIPPLE': 'XRP',
441
- 'SOLANA': 'SOL',
442
- 'STELLAR': 'Stella',
441
+ 'SOL': 'SOL',
442
+ 'XLM': 'Stella',
443
443
  'TERRACLASSIC': 'TerraClassic',
444
444
  'TERRA': 'Terra',
445
445
  'TON': 'Ton',
446
446
  'TRC20': 'TRC20',
447
- 'TRON': 'TRC20',
448
447
  'TRX': 'TRC20',
449
448
  'VECHAIN': 'Vechain', // VET
450
449
  },
@@ -519,46 +518,46 @@ class digifinex extends digifinex$1["default"] {
519
518
  //
520
519
  const data = this.safeList(response, 'data', []);
521
520
  const groupedById = this.groupBy(data, 'currency');
522
- const keys = Object.keys(groupedById);
523
- const result = {};
524
- for (let i = 0; i < keys.length; i++) {
525
- const id = keys[i];
526
- const networkEntries = groupedById[id];
527
- const code = this.safeCurrencyCode(id);
528
- const networks = {};
529
- for (let j = 0; j < networkEntries.length; j++) {
530
- const networkEntry = networkEntries[j];
531
- const networkId = this.safeString2(networkEntry, 'chain', 'currency');
532
- const networkCode = this.networkIdToCode(networkId);
533
- networks[networkCode] = {
534
- 'id': networkId,
535
- 'network': networkCode,
536
- 'active': undefined,
537
- 'deposit': this.safeInteger(networkEntry, 'deposit_status') === 1,
538
- 'withdraw': this.safeInteger(networkEntry, 'withdraw_status') === 1,
539
- 'fee': this.safeNumber(networkEntry, 'min_withdraw_fee'),
540
- 'precision': undefined,
541
- 'limits': {
542
- 'withdraw': {
543
- 'min': this.safeNumber(networkEntry, 'min_withdraw_amount'),
544
- 'max': undefined,
545
- },
546
- 'deposit': {
547
- 'min': this.safeNumber(networkEntry, 'min_deposit_amount'),
548
- 'max': undefined,
549
- },
521
+ const values = Object.values(groupedById);
522
+ return this.parseCurrencies(values);
523
+ }
524
+ parseCurrency(rawCurrency) {
525
+ const networkEntries = rawCurrency;
526
+ const firstEntry = this.safeDict(networkEntries, 0, {}); // it must have at least one entry
527
+ const id = this.safeString(firstEntry, 'currency');
528
+ const code = this.safeCurrencyCode(id);
529
+ const networks = {};
530
+ for (let j = 0; j < networkEntries.length; j++) {
531
+ const networkEntry = networkEntries[j];
532
+ const networkId = this.safeString2(networkEntry, 'chain', 'currency');
533
+ const networkCode = this.networkIdToCode(networkId, code);
534
+ networks[networkCode] = {
535
+ 'id': networkId,
536
+ 'network': networkCode,
537
+ 'active': undefined,
538
+ 'deposit': this.safeInteger(networkEntry, 'deposit_status') === 1,
539
+ 'withdraw': this.safeInteger(networkEntry, 'withdraw_status') === 1,
540
+ 'fee': this.safeNumber(networkEntry, 'min_withdraw_fee'),
541
+ 'precision': undefined,
542
+ 'limits': {
543
+ 'withdraw': {
544
+ 'min': this.safeNumber(networkEntry, 'min_withdraw_amount'),
545
+ 'max': undefined,
550
546
  },
551
- 'info': networkEntry,
552
- };
553
- }
554
- result[code] = this.safeCurrencyStructure({
555
- 'id': id,
556
- 'code': code,
557
- 'info': networkEntries,
558
- 'networks': networks,
559
- });
547
+ 'deposit': {
548
+ 'min': this.safeNumber(networkEntry, 'min_deposit_amount'),
549
+ 'max': undefined,
550
+ },
551
+ },
552
+ 'info': networkEntry,
553
+ };
560
554
  }
561
- return result;
555
+ return this.safeCurrencyStructure({
556
+ 'id': id,
557
+ 'code': code,
558
+ 'info': networkEntries,
559
+ 'networks': networks,
560
+ });
562
561
  }
563
562
  /**
564
563
  * @method
@@ -4176,7 +4175,7 @@ class digifinex extends digifinex$1["default"] {
4176
4175
  'percentage': undefined,
4177
4176
  };
4178
4177
  if (networkId !== undefined) {
4179
- const networkCode = this.networkIdToCode(networkId);
4178
+ const networkCode = this.networkIdToCode(networkId, code);
4180
4179
  depositWithdrawFees[code]['networks'][networkCode] = {
4181
4180
  'withdraw': withdrawResult,
4182
4181
  'deposit': depositResult,
@@ -631,7 +631,10 @@ class exmo extends exmo$1["default"] {
631
631
  const provider = fee[i];
632
632
  const type = this.safeString(provider, 'type');
633
633
  const networkId = this.safeString(provider, 'name');
634
- const networkCode = this.networkIdToCode(networkId, this.safeString(currency, 'code'));
634
+ const currencyId = this.safeString(provider, 'currency_name');
635
+ currency = this.safeCurrency(currencyId, currency);
636
+ const code = this.safeString(currency, 'code');
637
+ const networkCode = this.networkIdToCode(networkId, code);
635
638
  const commissionDesc = this.safeString(provider, 'commission_desc');
636
639
  let splitCommissionDesc = [];
637
640
  let percentage = undefined;
@@ -709,97 +712,103 @@ class exmo extends exmo$1["default"] {
709
712
  const responses = await Promise.all(promises);
710
713
  const currencyList = responses[0];
711
714
  const cryptoList = responses[1];
712
- const result = {};
715
+ const newArray = [];
713
716
  for (let i = 0; i < currencyList.length; i++) {
714
717
  const currency = currencyList[i];
715
718
  const currencyId = this.safeString(currency, 'name');
716
- const code = this.safeCurrencyCode(currencyId);
717
- let type = 'crypto';
718
- const networks = {};
719
719
  const providers = this.safeList(cryptoList, currencyId);
720
- if (providers === undefined) {
721
- type = 'fiat';
722
- }
723
- else {
724
- for (let j = 0; j < providers.length; j++) {
725
- const provider = providers[j];
726
- const name = this.safeString(provider, 'name');
727
- // get network-id by removing extra things
728
- let networkId = name.replace(currencyId + ' ', '');
729
- networkId = networkId.replace('(', '');
730
- const replaceChar = ')'; // transpiler trick
731
- networkId = networkId.replace(replaceChar, '');
732
- const networkCode = this.networkIdToCode(networkId);
733
- if (!(networkCode in networks)) {
734
- networks[networkCode] = {
735
- 'id': networkId,
736
- 'network': networkCode,
737
- 'active': undefined,
738
- 'deposit': undefined,
739
- 'withdraw': undefined,
740
- 'fee': undefined,
741
- 'limits': {
742
- 'withdraw': {
743
- 'min': undefined,
744
- 'max': undefined,
745
- },
746
- 'deposit': {
747
- 'min': undefined,
748
- 'max': undefined,
749
- },
720
+ newArray.push({ 'currency': currency, 'providers': providers });
721
+ }
722
+ return this.parseCurrencies(newArray);
723
+ }
724
+ parseCurrency(rawCurrency) {
725
+ const currency = this.safeDict(rawCurrency, 'currency', {});
726
+ const providers = this.safeList(rawCurrency, 'providers', []);
727
+ const currencyId = this.safeString(currency, 'name');
728
+ const code = this.safeCurrencyCode(currencyId);
729
+ let type = 'crypto';
730
+ const networks = {};
731
+ if (providers === undefined) {
732
+ type = 'fiat';
733
+ }
734
+ else {
735
+ for (let j = 0; j < providers.length; j++) {
736
+ const provider = providers[j];
737
+ const name = this.safeString(provider, 'name');
738
+ // get network-id by removing extra things
739
+ let networkId = name.replace(currencyId + ' ', '');
740
+ networkId = networkId.replace('(', '');
741
+ const replaceChar = ')'; // transpiler trick
742
+ networkId = networkId.replace(replaceChar, '');
743
+ const networkCode = this.networkIdToCode(networkId, code);
744
+ if (!(networkCode in networks)) {
745
+ networks[networkCode] = {
746
+ 'id': networkId,
747
+ 'network': networkCode,
748
+ 'active': undefined,
749
+ 'deposit': undefined,
750
+ 'withdraw': undefined,
751
+ 'fee': undefined,
752
+ 'limits': {
753
+ 'withdraw': {
754
+ 'min': undefined,
755
+ 'max': undefined,
756
+ },
757
+ 'deposit': {
758
+ 'min': undefined,
759
+ 'max': undefined,
750
760
  },
751
- 'info': [], // set as array, because of multiple network sub-entries
752
- };
753
- }
754
- const typeInner = this.safeString(provider, 'type');
755
- const minValue = this.safeString(provider, 'min');
756
- const maxValue = this.safeString(provider, 'max');
757
- const activeProvider = this.safeBool(provider, 'enabled');
758
- const networkEntry = networks[networkCode];
759
- if (typeInner === 'deposit') {
760
- networkEntry['deposit'] = activeProvider;
761
- networkEntry['limits']['deposit']['min'] = minValue;
762
- networkEntry['limits']['deposit']['max'] = maxValue;
763
- }
764
- else if (typeInner === 'withdraw') {
765
- networkEntry['withdraw'] = activeProvider;
766
- networkEntry['limits']['withdraw']['min'] = minValue;
767
- networkEntry['limits']['withdraw']['max'] = maxValue;
768
- }
769
- const info = this.safeList(networkEntry, 'info');
770
- info.push(provider);
771
- networkEntry['info'] = info;
772
- networks[networkCode] = networkEntry;
761
+ },
762
+ 'info': [], // set as array, because of multiple network sub-entries
763
+ };
764
+ }
765
+ const typeInner = this.safeString(provider, 'type');
766
+ const minValue = this.safeString(provider, 'min');
767
+ const maxValue = this.safeString(provider, 'max');
768
+ const activeProvider = this.safeBool(provider, 'enabled');
769
+ const networkEntry = networks[networkCode];
770
+ if (typeInner === 'deposit') {
771
+ networkEntry['deposit'] = activeProvider;
772
+ networkEntry['limits']['deposit']['min'] = minValue;
773
+ networkEntry['limits']['deposit']['max'] = maxValue;
774
+ }
775
+ else if (typeInner === 'withdraw') {
776
+ networkEntry['withdraw'] = activeProvider;
777
+ networkEntry['limits']['withdraw']['min'] = minValue;
778
+ networkEntry['limits']['withdraw']['max'] = maxValue;
773
779
  }
780
+ const info = this.safeList(networkEntry, 'info');
781
+ info.push(provider);
782
+ networkEntry['info'] = info;
783
+ networks[networkCode] = networkEntry;
774
784
  }
775
- result[code] = this.safeCurrencyStructure({
776
- 'id': currencyId,
777
- 'code': code,
778
- 'name': this.safeString(currency, 'description'),
779
- 'type': type,
780
- 'active': undefined,
781
- 'deposit': undefined,
782
- 'withdraw': undefined,
783
- 'fee': undefined,
784
- 'precision': this.parseNumber('1e-8'),
785
- 'limits': {
786
- 'withdraw': {
787
- 'min': undefined,
788
- 'max': undefined,
789
- },
790
- 'deposit': {
791
- 'min': undefined,
792
- 'max': undefined,
793
- },
785
+ }
786
+ return this.safeCurrencyStructure({
787
+ 'id': currencyId,
788
+ 'code': code,
789
+ 'name': this.safeString(currency, 'description'),
790
+ 'type': type,
791
+ 'active': undefined,
792
+ 'deposit': undefined,
793
+ 'withdraw': undefined,
794
+ 'fee': undefined,
795
+ 'precision': this.parseNumber('1e-8'),
796
+ 'limits': {
797
+ 'withdraw': {
798
+ 'min': undefined,
799
+ 'max': undefined,
794
800
  },
795
- 'info': {
796
- 'currency': currency,
797
- 'providers': providers,
801
+ 'deposit': {
802
+ 'min': undefined,
803
+ 'max': undefined,
798
804
  },
799
- 'networks': networks,
800
- });
801
- }
802
- return result;
805
+ },
806
+ 'info': {
807
+ 'currency': currency,
808
+ 'providers': providers,
809
+ },
810
+ 'networks': networks,
811
+ });
803
812
  }
804
813
  /**
805
814
  * @method