ccxt 4.2.31 → 4.2.34

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 (298) hide show
  1. package/.gitattributes +1 -0
  2. package/CONTRIBUTING.md +20 -1
  3. package/README.md +8 -7
  4. package/build.sh +9 -2
  5. package/cleanup.sh +3 -0
  6. package/dist/ccxt.browser.js +639 -483
  7. package/dist/ccxt.browser.min.js +3 -3
  8. package/dist/cjs/ccxt.js +1 -1
  9. package/dist/cjs/src/ace.js +3 -2
  10. package/dist/cjs/src/ascendex.js +1 -1
  11. package/dist/cjs/src/base/Exchange.js +54 -20
  12. package/dist/cjs/src/bigone.js +21 -1
  13. package/dist/cjs/src/binance.js +5 -4
  14. package/dist/cjs/src/bingx.js +4 -3
  15. package/dist/cjs/src/bit2c.js +12 -0
  16. package/dist/cjs/src/bitget.js +3 -3
  17. package/dist/cjs/src/bitmart.js +1 -1
  18. package/dist/cjs/src/bitrue.js +3 -3
  19. package/dist/cjs/src/blockchaincom.js +1 -1
  20. package/dist/cjs/src/bybit.js +1 -1
  21. package/dist/cjs/src/coinbase.js +2 -2
  22. package/dist/cjs/src/coinex.js +1 -1
  23. package/dist/cjs/src/cryptocom.js +10 -10
  24. package/dist/cjs/src/gate.js +34 -29
  25. package/dist/cjs/src/kraken.js +39 -0
  26. package/dist/cjs/src/kucoin.js +1 -1
  27. package/dist/cjs/src/mexc.js +2 -1
  28. package/dist/cjs/src/okx.js +4 -3
  29. package/dist/cjs/src/phemex.js +8 -8
  30. package/dist/cjs/src/pro/alpaca.js +8 -4
  31. package/dist/cjs/src/pro/ascendex.js +1 -2
  32. package/dist/cjs/src/pro/binance.js +14 -10
  33. package/dist/cjs/src/pro/bingx.js +1 -1
  34. package/dist/cjs/src/pro/bitfinex.js +21 -24
  35. package/dist/cjs/src/pro/bitfinex2.js +13 -17
  36. package/dist/cjs/src/pro/bitget.js +3 -1
  37. package/dist/cjs/src/pro/bitmart.js +3 -8
  38. package/dist/cjs/src/pro/bitmex.js +4 -7
  39. package/dist/cjs/src/pro/bitopro.js +2 -5
  40. package/dist/cjs/src/pro/bitrue.js +1 -1
  41. package/dist/cjs/src/pro/bitstamp.js +2 -3
  42. package/dist/cjs/src/pro/bitvavo.js +12 -5
  43. package/dist/cjs/src/pro/blockchaincom.js +22 -23
  44. package/dist/cjs/src/pro/bybit.js +5 -5
  45. package/dist/cjs/src/pro/cex.js +7 -7
  46. package/dist/cjs/src/pro/coinbase.js +3 -2
  47. package/dist/cjs/src/pro/coinbasepro.js +1 -1
  48. package/dist/cjs/src/pro/coinex.js +15 -13
  49. package/dist/cjs/src/pro/currencycom.js +5 -7
  50. package/dist/cjs/src/pro/deribit.js +4 -4
  51. package/dist/cjs/src/pro/exmo.js +15 -13
  52. package/dist/cjs/src/pro/gate.js +1 -1
  53. package/dist/cjs/src/pro/gemini.js +4 -2
  54. package/dist/cjs/src/pro/hitbtc.js +9 -8
  55. package/dist/cjs/src/pro/hollaex.js +2 -2
  56. package/dist/cjs/src/pro/htx.js +6 -7
  57. package/dist/cjs/src/pro/huobijp.js +3 -5
  58. package/dist/cjs/src/pro/idex.js +1 -1
  59. package/dist/cjs/src/pro/independentreserve.js +14 -13
  60. package/dist/cjs/src/pro/kraken.js +10 -16
  61. package/dist/cjs/src/pro/krakenfutures.js +10 -6
  62. package/dist/cjs/src/pro/kucoin.js +10 -11
  63. package/dist/cjs/src/pro/kucoinfutures.js +12 -11
  64. package/dist/cjs/src/pro/lbank.js +10 -10
  65. package/dist/cjs/src/pro/luno.js +12 -14
  66. package/dist/cjs/src/pro/mexc.js +3 -2
  67. package/dist/cjs/src/pro/ndax.js +7 -13
  68. package/dist/cjs/src/pro/okcoin.js +7 -12
  69. package/dist/cjs/src/pro/okx.js +6 -11
  70. package/dist/cjs/src/pro/onetrading.js +16 -15
  71. package/dist/cjs/src/pro/p2b.js +5 -3
  72. package/dist/cjs/src/pro/phemex.js +16 -11
  73. package/dist/cjs/src/pro/poloniex.js +6 -4
  74. package/dist/cjs/src/pro/poloniexfutures.js +14 -9
  75. package/dist/cjs/src/pro/probit.js +15 -11
  76. package/dist/cjs/src/pro/upbit.js +8 -8
  77. package/dist/cjs/src/pro/wazirx.js +6 -3
  78. package/dist/cjs/src/pro/woo.js +8 -6
  79. package/dist/cjs/src/probit.js +3 -3
  80. package/dist/cjs/src/tokocrypto.js +2 -2
  81. package/dist/cjs/src/wavesexchange.js +2 -1
  82. package/dist/cjs/src/woo.js +1 -1
  83. package/dist/cjs/src/yobit.js +39 -0
  84. package/js/ccxt.d.ts +1 -1
  85. package/js/ccxt.js +1 -1
  86. package/js/src/ace.d.ts +1 -1
  87. package/js/src/ace.js +3 -2
  88. package/js/src/alpaca.d.ts +1 -1
  89. package/js/src/ascendex.d.ts +5 -15
  90. package/js/src/ascendex.js +1 -1
  91. package/js/src/base/Exchange.d.ts +87 -78
  92. package/js/src/base/Exchange.js +54 -20
  93. package/js/src/base/types.d.ts +90 -6
  94. package/js/src/bigone.d.ts +5 -15
  95. package/js/src/bigone.js +21 -1
  96. package/js/src/binance.d.ts +13 -23
  97. package/js/src/binance.js +5 -4
  98. package/js/src/bingx.d.ts +6 -16
  99. package/js/src/bingx.js +4 -3
  100. package/js/src/bit2c.d.ts +1 -1
  101. package/js/src/bit2c.js +12 -0
  102. package/js/src/bitbank.d.ts +2 -2
  103. package/js/src/bitbns.d.ts +1 -1
  104. package/js/src/bitfinex.d.ts +5 -5
  105. package/js/src/bitfinex2.d.ts +7 -17
  106. package/js/src/bitflyer.d.ts +5 -5
  107. package/js/src/bitforex.d.ts +1 -1
  108. package/js/src/bitget.d.ts +8 -38
  109. package/js/src/bitget.js +3 -3
  110. package/js/src/bithumb.d.ts +2 -2
  111. package/js/src/bitmart.d.ts +10 -21
  112. package/js/src/bitmart.js +1 -1
  113. package/js/src/bitmex.d.ts +3 -3
  114. package/js/src/bitopro.d.ts +2 -2
  115. package/js/src/bitrue.d.ts +5 -15
  116. package/js/src/bitrue.js +3 -3
  117. package/js/src/bitso.d.ts +4 -4
  118. package/js/src/bitstamp.d.ts +2 -2
  119. package/js/src/bitteam.d.ts +1 -1
  120. package/js/src/bitvavo.d.ts +3 -3
  121. package/js/src/bl3p.d.ts +1 -1
  122. package/js/src/blockchaincom.d.ts +2 -2
  123. package/js/src/blockchaincom.js +1 -1
  124. package/js/src/btcalpha.d.ts +1 -1
  125. package/js/src/btcbox.d.ts +1 -1
  126. package/js/src/btcmarkets.d.ts +3 -3
  127. package/js/src/btcturk.d.ts +1 -1
  128. package/js/src/bybit.d.ts +8 -8
  129. package/js/src/bybit.js +1 -1
  130. package/js/src/cex.d.ts +1 -1
  131. package/js/src/coinbase.d.ts +6 -50
  132. package/js/src/coinbase.js +2 -2
  133. package/js/src/coinbasepro.d.ts +2 -2
  134. package/js/src/coincheck.d.ts +1 -1
  135. package/js/src/coinex.d.ts +8 -8
  136. package/js/src/coinex.js +1 -1
  137. package/js/src/coinlist.d.ts +4 -14
  138. package/js/src/coinmate.d.ts +2 -2
  139. package/js/src/coinmetro.d.ts +2 -2
  140. package/js/src/coinone.d.ts +1 -1
  141. package/js/src/coinsph.d.ts +2 -2
  142. package/js/src/coinspot.d.ts +1 -1
  143. package/js/src/cryptocom.d.ts +4 -4
  144. package/js/src/cryptocom.js +10 -10
  145. package/js/src/currencycom.d.ts +2 -2
  146. package/js/src/delta.d.ts +2 -2
  147. package/js/src/deribit.d.ts +4 -14
  148. package/js/src/digifinex.d.ts +10 -38
  149. package/js/src/exmo.d.ts +2 -2
  150. package/js/src/gate.d.ts +8 -18
  151. package/js/src/gate.js +34 -29
  152. package/js/src/gemini.d.ts +2 -2
  153. package/js/src/hitbtc.d.ts +6 -16
  154. package/js/src/hollaex.d.ts +2 -2
  155. package/js/src/htx.d.ts +11 -21
  156. package/js/src/huobijp.d.ts +4 -4
  157. package/js/src/idex.d.ts +3 -3
  158. package/js/src/independentreserve.d.ts +2 -2
  159. package/js/src/indodax.d.ts +2 -2
  160. package/js/src/kraken.d.ts +5 -5
  161. package/js/src/kraken.js +39 -0
  162. package/js/src/krakenfutures.d.ts +7 -7
  163. package/js/src/kucoin.d.ts +8 -29
  164. package/js/src/kucoin.js +1 -1
  165. package/js/src/kucoinfutures.d.ts +4 -4
  166. package/js/src/kuna.d.ts +2 -2
  167. package/js/src/latoken.d.ts +4 -14
  168. package/js/src/lbank.d.ts +2 -5
  169. package/js/src/luno.d.ts +1 -1
  170. package/js/src/lykke.d.ts +2 -2
  171. package/js/src/mercado.d.ts +2 -2
  172. package/js/src/mexc.d.ts +6 -6
  173. package/js/src/mexc.js +2 -1
  174. package/js/src/ndax.d.ts +2 -2
  175. package/js/src/novadax.d.ts +4 -15
  176. package/js/src/oceanex.d.ts +1 -1
  177. package/js/src/okcoin.d.ts +5 -15
  178. package/js/src/okx.d.ts +8 -18
  179. package/js/src/okx.js +4 -3
  180. package/js/src/onetrading.d.ts +2 -2
  181. package/js/src/p2b.d.ts +1 -1
  182. package/js/src/paymium.d.ts +3 -13
  183. package/js/src/phemex.d.ts +5 -5
  184. package/js/src/phemex.js +8 -8
  185. package/js/src/poloniex.d.ts +4 -14
  186. package/js/src/poloniexfutures.d.ts +1 -1
  187. package/js/src/pro/alpaca.d.ts +2 -2
  188. package/js/src/pro/alpaca.js +8 -4
  189. package/js/src/pro/ascendex.d.ts +2 -2
  190. package/js/src/pro/ascendex.js +1 -2
  191. package/js/src/pro/binance.d.ts +3 -3
  192. package/js/src/pro/binance.js +14 -10
  193. package/js/src/pro/bingx.d.ts +1 -1
  194. package/js/src/pro/bingx.js +1 -1
  195. package/js/src/pro/bitfinex.d.ts +2 -2
  196. package/js/src/pro/bitfinex.js +21 -24
  197. package/js/src/pro/bitfinex2.d.ts +2 -2
  198. package/js/src/pro/bitfinex2.js +13 -17
  199. package/js/src/pro/bitget.js +3 -1
  200. package/js/src/pro/bitmart.d.ts +3 -3
  201. package/js/src/pro/bitmart.js +3 -8
  202. package/js/src/pro/bitmex.d.ts +1 -1
  203. package/js/src/pro/bitmex.js +4 -7
  204. package/js/src/pro/bitopro.d.ts +1 -1
  205. package/js/src/pro/bitopro.js +2 -5
  206. package/js/src/pro/bitrue.js +1 -1
  207. package/js/src/pro/bitstamp.d.ts +1 -1
  208. package/js/src/pro/bitstamp.js +2 -3
  209. package/js/src/pro/bitvavo.d.ts +3 -3
  210. package/js/src/pro/bitvavo.js +12 -5
  211. package/js/src/pro/blockchaincom.d.ts +8 -8
  212. package/js/src/pro/blockchaincom.js +22 -23
  213. package/js/src/pro/bybit.d.ts +2 -2
  214. package/js/src/pro/bybit.js +5 -5
  215. package/js/src/pro/cex.d.ts +1 -1
  216. package/js/src/pro/cex.js +7 -7
  217. package/js/src/pro/coinbase.d.ts +1 -1
  218. package/js/src/pro/coinbase.js +3 -2
  219. package/js/src/pro/coinbasepro.d.ts +1 -1
  220. package/js/src/pro/coinbasepro.js +1 -1
  221. package/js/src/pro/coinex.d.ts +2 -2
  222. package/js/src/pro/coinex.js +15 -13
  223. package/js/src/pro/currencycom.d.ts +1 -1
  224. package/js/src/pro/currencycom.js +5 -7
  225. package/js/src/pro/deribit.d.ts +2 -2
  226. package/js/src/pro/deribit.js +4 -4
  227. package/js/src/pro/exmo.d.ts +2 -2
  228. package/js/src/pro/exmo.js +15 -13
  229. package/js/src/pro/gate.js +1 -1
  230. package/js/src/pro/gemini.d.ts +1 -1
  231. package/js/src/pro/gemini.js +4 -2
  232. package/js/src/pro/hitbtc.d.ts +2 -2
  233. package/js/src/pro/hitbtc.js +9 -8
  234. package/js/src/pro/hollaex.d.ts +2 -2
  235. package/js/src/pro/hollaex.js +2 -2
  236. package/js/src/pro/htx.d.ts +2 -2
  237. package/js/src/pro/htx.js +6 -7
  238. package/js/src/pro/huobijp.d.ts +1 -1
  239. package/js/src/pro/huobijp.js +3 -5
  240. package/js/src/pro/idex.js +1 -1
  241. package/js/src/pro/independentreserve.d.ts +1 -1
  242. package/js/src/pro/independentreserve.js +14 -13
  243. package/js/src/pro/kraken.d.ts +2 -2
  244. package/js/src/pro/kraken.js +10 -16
  245. package/js/src/pro/krakenfutures.d.ts +1 -1
  246. package/js/src/pro/krakenfutures.js +10 -6
  247. package/js/src/pro/kucoin.d.ts +3 -3
  248. package/js/src/pro/kucoin.js +10 -11
  249. package/js/src/pro/kucoinfutures.d.ts +3 -3
  250. package/js/src/pro/kucoinfutures.js +12 -11
  251. package/js/src/pro/lbank.d.ts +1 -1
  252. package/js/src/pro/lbank.js +10 -10
  253. package/js/src/pro/luno.d.ts +2 -2
  254. package/js/src/pro/luno.js +12 -14
  255. package/js/src/pro/mexc.d.ts +2 -2
  256. package/js/src/pro/mexc.js +3 -2
  257. package/js/src/pro/ndax.d.ts +3 -3
  258. package/js/src/pro/ndax.js +7 -13
  259. package/js/src/pro/okcoin.d.ts +1 -1
  260. package/js/src/pro/okcoin.js +7 -12
  261. package/js/src/pro/okx.d.ts +1 -1
  262. package/js/src/pro/okx.js +6 -11
  263. package/js/src/pro/onetrading.d.ts +1 -1
  264. package/js/src/pro/onetrading.js +16 -15
  265. package/js/src/pro/p2b.d.ts +1 -1
  266. package/js/src/pro/p2b.js +5 -3
  267. package/js/src/pro/phemex.d.ts +3 -3
  268. package/js/src/pro/phemex.js +16 -11
  269. package/js/src/pro/poloniex.d.ts +1 -1
  270. package/js/src/pro/poloniex.js +6 -4
  271. package/js/src/pro/poloniexfutures.d.ts +4 -4
  272. package/js/src/pro/poloniexfutures.js +13 -10
  273. package/js/src/pro/probit.d.ts +1 -1
  274. package/js/src/pro/probit.js +14 -12
  275. package/js/src/pro/upbit.js +8 -8
  276. package/js/src/pro/wazirx.d.ts +1 -1
  277. package/js/src/pro/wazirx.js +6 -3
  278. package/js/src/pro/woo.d.ts +3 -3
  279. package/js/src/pro/woo.js +8 -6
  280. package/js/src/probit.d.ts +3 -3
  281. package/js/src/probit.js +3 -3
  282. package/js/src/timex.d.ts +1 -1
  283. package/js/src/tokocrypto.d.ts +3 -3
  284. package/js/src/tokocrypto.js +2 -2
  285. package/js/src/upbit.d.ts +2 -2
  286. package/js/src/wavesexchange.d.ts +3 -4
  287. package/js/src/wavesexchange.js +2 -1
  288. package/js/src/wazirx.d.ts +1 -1
  289. package/js/src/whitebit.d.ts +5 -15
  290. package/js/src/woo.d.ts +5 -15
  291. package/js/src/woo.js +1 -1
  292. package/js/src/yobit.d.ts +21 -6
  293. package/js/src/yobit.js +39 -0
  294. package/js/src/zaif.d.ts +2 -2
  295. package/js/src/zonda.d.ts +4 -14
  296. package/package.json +22 -8
  297. package/skip-tests.json +9 -1
  298. package/tests-manager.sh +1 -2
package/js/src/pro/woo.js CHANGED
@@ -413,7 +413,7 @@ export default class woo extends wooRest {
413
413
  }
414
414
  return true;
415
415
  }
416
- authenticate(params = {}) {
416
+ async authenticate(params = {}) {
417
417
  this.checkRequiredCredentials();
418
418
  const url = this.urls['api']['ws']['private'] + '/' + this.uid;
419
419
  const client = this.client(url);
@@ -819,13 +819,15 @@ export default class woo extends wooRest {
819
819
  const event = this.safeString(message, 'event');
820
820
  let method = this.safeValue(methods, event);
821
821
  if (method !== undefined) {
822
- return method.call(this, client, message);
822
+ method.call(this, client, message);
823
+ return;
823
824
  }
824
825
  const topic = this.safeString(message, 'topic');
825
826
  if (topic !== undefined) {
826
827
  method = this.safeValue(methods, topic);
827
828
  if (method !== undefined) {
828
- return method.call(this, client, message);
829
+ method.call(this, client, message);
830
+ return;
829
831
  }
830
832
  const splitTopic = topic.split('@');
831
833
  const splitLength = splitTopic.length;
@@ -833,19 +835,19 @@ export default class woo extends wooRest {
833
835
  const name = this.safeString(splitTopic, 1);
834
836
  method = this.safeValue(methods, name);
835
837
  if (method !== undefined) {
836
- return method.call(this, client, message);
838
+ method.call(this, client, message);
839
+ return;
837
840
  }
838
841
  const splitName = name.split('_');
839
842
  const splitNameLength = splitTopic.length;
840
843
  if (splitNameLength === 2) {
841
844
  method = this.safeValue(methods, this.safeString(splitName, 0));
842
845
  if (method !== undefined) {
843
- return method.call(this, client, message);
846
+ method.call(this, client, message);
844
847
  }
845
848
  }
846
849
  }
847
850
  }
848
- return message;
849
851
  }
850
852
  ping(client) {
851
853
  return { 'event': 'ping' };
@@ -28,7 +28,7 @@ export default class probit extends Exchange {
28
28
  parseOrderStatus(status: any): string;
29
29
  parseOrder(order: any, market?: Market): Order;
30
30
  costToPrecision(symbol: any, cost: any): any;
31
- createOrder(symbol: string, type: OrderType, side: OrderSide, amount: any, price?: any, params?: {}): Promise<Order>;
31
+ createOrder(symbol: string, type: OrderType, side: OrderSide, amount: number, price?: number, params?: {}): Promise<Order>;
32
32
  cancelOrder(id: string, symbol?: Str, params?: {}): Promise<Order>;
33
33
  parseDepositAddress(depositAddress: any, currency?: Currency): {
34
34
  currency: string;
@@ -45,10 +45,10 @@ export default class probit extends Exchange {
45
45
  info: any;
46
46
  }>;
47
47
  fetchDepositAddresses(codes?: any, params?: {}): Promise<{}>;
48
- withdraw(code: string, amount: any, address: any, tag?: any, params?: {}): Promise<Transaction>;
48
+ withdraw(code: string, amount: number, address: any, tag?: any, params?: {}): Promise<Transaction>;
49
49
  fetchDeposits(code?: Str, since?: Int, limit?: Int, params?: {}): Promise<Transaction[]>;
50
50
  fetchWithdrawals(code?: Str, since?: Int, limit?: Int, params?: {}): Promise<Transaction[]>;
51
- fetchTransactions(code?: Str, since?: Int, limit?: Int, params?: {}): Promise<any>;
51
+ fetchTransactions(code?: Str, since?: Int, limit?: Int, params?: {}): Promise<Transaction[]>;
52
52
  parseTransaction(transaction: any, currency?: Currency): Transaction;
53
53
  parseTransactionStatus(status: any): string;
54
54
  fetchDepositWithdrawFees(codes?: Strings, params?: {}): Promise<any>;
package/js/src/probit.js CHANGED
@@ -425,8 +425,8 @@ export default class probit extends Exchange {
425
425
  const networkList = {};
426
426
  for (let j = 0; j < platformsByPriority.length; j++) {
427
427
  const network = platformsByPriority[j];
428
- const networkId = this.safeString(network, 'id');
429
- const networkCode = this.networkIdToCode(networkId);
428
+ const idInner = this.safeString(network, 'id');
429
+ const networkCode = this.networkIdToCode(idInner);
430
430
  const currentDepositSuspended = this.safeValue(network, 'deposit_suspended');
431
431
  const currentWithdrawalSuspended = this.safeValue(network, 'withdrawal_suspended');
432
432
  const currentDeposit = !currentDepositSuspended;
@@ -447,7 +447,7 @@ export default class probit extends Exchange {
447
447
  }
448
448
  }
449
449
  networkList[networkCode] = {
450
- 'id': networkId,
450
+ 'id': idInner,
451
451
  'network': networkCode,
452
452
  'active': currentActive,
453
453
  'deposit': currentDeposit,
package/js/src/timex.d.ts CHANGED
@@ -19,7 +19,7 @@ export default class timex extends Exchange {
19
19
  fetchOHLCV(symbol: string, timeframe?: string, since?: Int, limit?: Int, params?: {}): Promise<OHLCV[]>;
20
20
  parseBalance(response: any): Balances;
21
21
  fetchBalance(params?: {}): Promise<Balances>;
22
- createOrder(symbol: string, type: OrderType, side: OrderSide, amount: any, price?: any, params?: {}): Promise<Order>;
22
+ createOrder(symbol: string, type: OrderType, side: OrderSide, amount: number, price?: number, params?: {}): Promise<Order>;
23
23
  editOrder(id: string, symbol: any, type: any, side: any, amount?: any, price?: any, params?: {}): Promise<Order>;
24
24
  cancelOrder(id: string, symbol?: Str, params?: {}): Promise<any>;
25
25
  cancelOrders(ids: any, symbol?: Str, params?: {}): Promise<any>;
@@ -20,11 +20,11 @@ export default class tokocrypto extends Exchange {
20
20
  parseOHLCV(ohlcv: any, market?: Market): OHLCV;
21
21
  fetchOHLCV(symbol: string, timeframe?: string, since?: Int, limit?: Int, params?: {}): Promise<OHLCV[]>;
22
22
  fetchBalance(params?: {}): Promise<Balances>;
23
- parseBalance(response: any, type?: any, marginMode?: any): Balances;
23
+ parseBalanceCustom(response: any, type?: any, marginMode?: any): Balances;
24
24
  parseOrderStatus(status: any): string;
25
25
  parseOrder(order: any, market?: Market): Order;
26
26
  parseOrderType(status: any): string;
27
- createOrder(symbol: string, type: OrderType, side: OrderSide, amount: any, price?: any, params?: {}): Promise<Order>;
27
+ createOrder(symbol: string, type: OrderType, side: OrderSide, amount: number, price?: number, params?: {}): Promise<Order>;
28
28
  fetchOrder(id: string, symbol?: Str, params?: {}): Promise<Order>;
29
29
  fetchOrders(symbol?: Str, since?: Int, limit?: Int, params?: {}): Promise<Order[]>;
30
30
  fetchOpenOrders(symbol?: Str, since?: Int, limit?: Int, params?: {}): Promise<Order[]>;
@@ -42,7 +42,7 @@ export default class tokocrypto extends Exchange {
42
42
  fetchWithdrawals(code?: Str, since?: Int, limit?: Int, params?: {}): Promise<Transaction[]>;
43
43
  parseTransactionStatusByType(status: any, type?: any): string;
44
44
  parseTransaction(transaction: any, currency?: Currency): Transaction;
45
- withdraw(code: string, amount: any, address: any, tag?: any, params?: {}): Promise<Transaction>;
45
+ withdraw(code: string, amount: number, address: any, tag?: any, params?: {}): Promise<Transaction>;
46
46
  sign(path: any, api?: string, method?: string, params?: {}, headers?: any, body?: any): {
47
47
  url: any;
48
48
  method: string;
@@ -1365,9 +1365,9 @@ export default class tokocrypto extends Exchange {
1365
1365
  // "timestamp":1659666786943
1366
1366
  // }
1367
1367
  //
1368
- return this.parseBalance(response, type, marginMode);
1368
+ return this.parseBalanceCustom(response, type, marginMode);
1369
1369
  }
1370
- parseBalance(response, type = undefined, marginMode = undefined) {
1370
+ parseBalanceCustom(response, type = undefined, marginMode = undefined) {
1371
1371
  const timestamp = this.safeInteger(response, 'updateTime');
1372
1372
  const result = {
1373
1373
  'info': response,
package/js/src/upbit.d.ts CHANGED
@@ -59,7 +59,7 @@ export default class upbit extends Exchange {
59
59
  }>;
60
60
  parseOHLCV(ohlcv: any, market?: Market): OHLCV;
61
61
  fetchOHLCV(symbol: string, timeframe?: string, since?: Int, limit?: Int, params?: {}): Promise<OHLCV[]>;
62
- createOrder(symbol: string, type: OrderType, side: OrderSide, amount: any, price?: any, params?: {}): Promise<Order>;
62
+ createOrder(symbol: string, type: OrderType, side: OrderSide, amount: number, price?: number, params?: {}): Promise<Order>;
63
63
  cancelOrder(id: string, symbol?: Str, params?: {}): Promise<Order>;
64
64
  fetchDeposits(code?: Str, since?: Int, limit?: Int, params?: {}): Promise<Transaction[]>;
65
65
  fetchWithdrawals(code?: Str, since?: Int, limit?: Int, params?: {}): Promise<Transaction[]>;
@@ -94,7 +94,7 @@ export default class upbit extends Exchange {
94
94
  network: string;
95
95
  info: any;
96
96
  }>;
97
- withdraw(code: string, amount: any, address: any, tag?: any, params?: {}): Promise<Transaction>;
97
+ withdraw(code: string, amount: number, address: any, tag?: any, params?: {}): Promise<Transaction>;
98
98
  nonce(): number;
99
99
  sign(path: any, api?: string, method?: string, params?: {}, headers?: any, body?: any): {
100
100
  url: any;
@@ -1,5 +1,4 @@
1
1
  import Exchange from './abstract/wavesexchange.js';
2
- import { Precise } from './base/Precise.js';
3
2
  import type { Balances, Currency, Int, Market, OHLCV, Order, OrderBook, OrderSide, OrderType, Str, Strings, Ticker, Tickers, Trade, Transaction } from './base/types.js';
4
3
  /**
5
4
  * @class wavesexchange
@@ -48,12 +47,12 @@ export default class wavesexchange extends Exchange {
48
47
  customAmountToPrecision(symbol: any, amount: any): number;
49
48
  currencyToPrecision(code: any, amount: any, networkCode?: any): number;
50
49
  fromPrecision(amount: any, scale: any): string;
51
- toPrecision(amount: any, scale: any): Precise;
50
+ toPrecision(amount: any, scale: any): string;
52
51
  currencyFromPrecision(currency: any, amount: any): string;
53
52
  priceFromPrecision(symbol: any, price: any): string;
54
53
  safeGetDynamic(settings: any): any;
55
54
  safeGetRates(dynamic: any): any;
56
- createOrder(symbol: string, type: OrderType, side: OrderSide, amount: any, price?: any, params?: {}): Promise<Order>;
55
+ createOrder(symbol: string, type: OrderType, side: OrderSide, amount: number, price?: number, params?: {}): Promise<Order>;
57
56
  cancelOrder(id: string, symbol?: Str, params?: {}): Promise<{
58
57
  info: any;
59
58
  id: string;
@@ -89,6 +88,6 @@ export default class wavesexchange extends Exchange {
89
88
  parseDepositWithdrawFees(response: any, codes?: Strings, currencyIdKey?: any): any;
90
89
  fetchDepositWithdrawFees(codes?: Strings, params?: {}): Promise<any>;
91
90
  handleErrors(code: any, reason: any, url: any, method: any, headers: any, body: any, response: any, requestHeaders: any, requestBody: any): any;
92
- withdraw(code: string, amount: any, address: any, tag?: any, params?: {}): Promise<Transaction>;
91
+ withdraw(code: string, amount: number, address: any, tag?: any, params?: {}): Promise<Transaction>;
93
92
  parseTransaction(transaction: any, currency?: Currency): Transaction;
94
93
  }
@@ -1256,7 +1256,8 @@ export default class wavesexchange extends Exchange {
1256
1256
  // precise.decimals should be integer
1257
1257
  precise.decimals = this.parseToInt(Precise.stringSub(this.numberToString(precise.decimals), this.numberToString(scale)));
1258
1258
  precise.reduce();
1259
- return precise;
1259
+ const stringValue = precise.toString();
1260
+ return stringValue;
1260
1261
  }
1261
1262
  currencyFromPrecision(currency, amount) {
1262
1263
  const scale = this.currencies[currency]['precision'];
@@ -30,7 +30,7 @@ export default class wazirx extends Exchange {
30
30
  fetchOpenOrders(symbol?: Str, since?: Int, limit?: Int, params?: {}): Promise<Order[]>;
31
31
  cancelAllOrders(symbol?: Str, params?: {}): Promise<any>;
32
32
  cancelOrder(id: string, symbol?: Str, params?: {}): Promise<Order>;
33
- createOrder(symbol: string, type: OrderType, side: OrderSide, amount: any, price?: any, params?: {}): Promise<Order>;
33
+ createOrder(symbol: string, type: OrderType, side: OrderSide, amount: number, price?: number, params?: {}): Promise<Order>;
34
34
  parseOrder(order: any, market?: Market): Order;
35
35
  parseOrderStatus(status: any): string;
36
36
  sign(path: any, api?: string, method?: string, params?: {}, headers?: any, body?: any): {
@@ -1,5 +1,5 @@
1
1
  import Exchange from './abstract/whitebit.js';
2
- import type { Balances, Currency, Int, Market, OHLCV, Order, OrderBook, OrderSide, OrderType, Str, Strings, Ticker, Tickers, Trade, Transaction } from './base/types.js';
2
+ import type { TransferEntry, Balances, Currency, Int, Market, OHLCV, Order, OrderBook, OrderSide, OrderType, Str, Strings, Ticker, Tickers, Trade, Transaction } from './base/types.js';
3
3
  /**
4
4
  * @class whitebit
5
5
  * @augments Exchange
@@ -34,7 +34,7 @@ export default class whitebit extends Exchange {
34
34
  info: any;
35
35
  }>;
36
36
  fetchTime(params?: {}): Promise<number>;
37
- createOrder(symbol: string, type: OrderType, side: OrderSide, amount: any, price?: any, params?: {}): Promise<Order>;
37
+ createOrder(symbol: string, type: OrderType, side: OrderSide, amount: number, price?: number, params?: {}): Promise<Order>;
38
38
  cancelOrder(id: string, symbol?: Str, params?: {}): Promise<any>;
39
39
  parseBalance(response: any): Balances;
40
40
  fetchBalance(params?: {}): Promise<Balances>;
@@ -50,18 +50,8 @@ export default class whitebit extends Exchange {
50
50
  network: any;
51
51
  info: any;
52
52
  }>;
53
- setLeverage(leverage: any, symbol?: Str, params?: {}): Promise<any>;
54
- transfer(code: string, amount: any, fromAccount: any, toAccount: any, params?: {}): Promise<{
55
- info: any;
56
- id: any;
57
- timestamp: any;
58
- datetime: any;
59
- currency: string;
60
- amount: any;
61
- fromAccount: any;
62
- toAccount: any;
63
- status: any;
64
- }>;
53
+ setLeverage(leverage: Int, symbol?: Str, params?: {}): Promise<any>;
54
+ transfer(code: string, amount: number, fromAccount: any, toAccount: any, params?: {}): Promise<TransferEntry>;
65
55
  parseTransfer(transfer: any, currency?: Currency): {
66
56
  info: any;
67
57
  id: any;
@@ -73,7 +63,7 @@ export default class whitebit extends Exchange {
73
63
  toAccount: any;
74
64
  status: any;
75
65
  };
76
- withdraw(code: string, amount: any, address: any, tag?: any, params?: {}): Promise<any>;
66
+ withdraw(code: string, amount: number, address: any, tag?: any, params?: {}): Promise<any>;
77
67
  parseTransaction(transaction: any, currency?: Currency): Transaction;
78
68
  parseTransactionStatus(status: any): string;
79
69
  fetchDeposit(id: string, code?: Str, params?: {}): Promise<Transaction>;
package/js/src/woo.d.ts CHANGED
@@ -1,5 +1,5 @@
1
1
  import Exchange from './abstract/woo.js';
2
- import type { Balances, Currency, FundingRateHistory, Int, Market, OHLCV, Order, OrderBook, OrderSide, OrderType, Str, Strings, Trade, Transaction } from './base/types.js';
2
+ import type { TransferEntry, Balances, Currency, FundingRateHistory, Int, Market, OHLCV, Order, OrderBook, OrderSide, OrderType, Str, Strings, Trade, Transaction } from './base/types.js';
3
3
  /**
4
4
  * @class woo
5
5
  * @augments Exchange
@@ -16,7 +16,7 @@ export default class woo extends Exchange {
16
16
  createMarketBuyOrderWithCost(symbol: string, cost: any, params?: {}): Promise<Order>;
17
17
  createTrailingAmountOrder(symbol: string, type: OrderType, side: OrderSide, amount: any, price?: any, trailingAmount?: any, trailingTriggerPrice?: any, params?: {}): Promise<Order>;
18
18
  createTrailingPercentOrder(symbol: string, type: OrderType, side: OrderSide, amount: any, price?: any, trailingPercent?: any, trailingTriggerPrice?: any, params?: {}): Promise<Order>;
19
- createOrder(symbol: string, type: OrderType, side: OrderSide, amount: any, price?: any, params?: {}): Promise<Order>;
19
+ createOrder(symbol: string, type: OrderType, side: OrderSide, amount: number, price?: number, params?: {}): Promise<Order>;
20
20
  editOrder(id: string, symbol: any, type: any, side: any, amount?: any, price?: any, params?: {}): Promise<Order>;
21
21
  cancelOrder(id: string, symbol?: Str, params?: {}): Promise<any>;
22
22
  cancelAllOrders(symbol?: Str, params?: {}): Promise<any>;
@@ -73,17 +73,7 @@ export default class woo extends Exchange {
73
73
  fetchDepositsWithdrawals(code?: Str, since?: Int, limit?: Int, params?: {}): Promise<Transaction[]>;
74
74
  parseTransaction(transaction: any, currency?: Currency): Transaction;
75
75
  parseTransactionStatus(status: any): string;
76
- transfer(code: string, amount: any, fromAccount: any, toAccount: any, params?: {}): Promise<{
77
- id: string;
78
- timestamp: number;
79
- datetime: string;
80
- currency: any;
81
- amount: number;
82
- fromAccount: string;
83
- toAccount: string;
84
- status: string;
85
- info: any;
86
- }>;
76
+ transfer(code: string, amount: number, fromAccount: any, toAccount: any, params?: {}): Promise<TransferEntry>;
87
77
  fetchTransfers(code?: Str, since?: Int, limit?: Int, params?: {}): Promise<any>;
88
78
  parseTransfer(transfer: any, currency?: Currency): {
89
79
  id: string;
@@ -97,7 +87,7 @@ export default class woo extends Exchange {
97
87
  info: any;
98
88
  };
99
89
  parseTransferStatus(status: any): string;
100
- withdraw(code: string, amount: any, address: any, tag?: any, params?: {}): Promise<Transaction>;
90
+ withdraw(code: string, amount: number, address: any, tag?: any, params?: {}): Promise<Transaction>;
101
91
  repayMargin(code: string, amount: any, symbol?: Str, params?: {}): Promise<any>;
102
92
  parseMarginLoan(info: any, currency?: Currency): {
103
93
  id: any;
@@ -171,7 +161,7 @@ export default class woo extends Exchange {
171
161
  info: any;
172
162
  leverage: number;
173
163
  }>;
174
- setLeverage(leverage: any, symbol?: Str, params?: {}): Promise<any>;
164
+ setLeverage(leverage: Int, symbol?: Str, params?: {}): Promise<any>;
175
165
  fetchPosition(symbol?: Str, params?: {}): Promise<import("./base/types.js").Position>;
176
166
  fetchPositions(symbols?: Strings, params?: {}): Promise<import("./base/types.js").Position[]>;
177
167
  parsePosition(position: any, market?: Market): import("./base/types.js").Position;
package/js/src/woo.js CHANGED
@@ -859,7 +859,7 @@ export default class woo extends Exchange {
859
859
  const stopLoss = this.safeValue(params, 'stopLoss');
860
860
  const takeProfit = this.safeValue(params, 'takeProfit');
861
861
  const algoType = this.safeString(params, 'algoType');
862
- const trailingTriggerPrice = this.safeString2(params, 'trailingTriggerPrice', 'activatedPrice', price);
862
+ const trailingTriggerPrice = this.safeString2(params, 'trailingTriggerPrice', 'activatedPrice', this.numberToString(price));
863
863
  const trailingAmount = this.safeString2(params, 'trailingAmount', 'callbackValue');
864
864
  const trailingPercent = this.safeString2(params, 'trailingPercent', 'callbackRate');
865
865
  const isTrailingAmountOrder = trailingAmount !== undefined;
package/js/src/yobit.d.ts CHANGED
@@ -1,5 +1,5 @@
1
1
  import Exchange from './abstract/yobit.js';
2
- import type { Balances, Dictionary, Int, Market, Order, OrderBook, OrderSide, OrderType, Str, Strings, Ticker, Tickers, Trade } from './base/types.js';
2
+ import type { Transaction, Balances, Dictionary, Int, Market, Order, OrderBook, OrderSide, OrderType, Str, Strings, Ticker, Tickers, Trade } from './base/types.js';
3
3
  /**
4
4
  * @class yobit
5
5
  * @augments Exchange
@@ -17,7 +17,7 @@ export default class yobit extends Exchange {
17
17
  parseTrade(trade: any, market?: Market): Trade;
18
18
  fetchTrades(symbol: string, since?: Int, limit?: Int, params?: {}): Promise<Trade[]>;
19
19
  fetchTradingFees(params?: {}): Promise<{}>;
20
- createOrder(symbol: string, type: OrderType, side: OrderSide, amount: any, price?: any, params?: {}): Promise<Order>;
20
+ createOrder(symbol: string, type: OrderType, side: OrderSide, amount: number, price?: number, params?: {}): Promise<Order>;
21
21
  cancelOrder(id: string, symbol?: Str, params?: {}): Promise<Order>;
22
22
  parseOrderStatus(status: any): string;
23
23
  parseOrder(order: any, market?: Market): Order;
@@ -31,16 +31,31 @@ export default class yobit extends Exchange {
31
31
  info: any;
32
32
  }>;
33
33
  fetchDepositAddress(code: string, params?: {}): Promise<{
34
+ id: any;
34
35
  currency: string;
35
36
  address: string;
36
37
  tag: any;
37
38
  network: any;
38
39
  info: any;
40
+ txid: any;
41
+ type: any;
42
+ amount: any;
43
+ status: any;
44
+ timestamp: any;
45
+ datetime: any;
46
+ addressFrom: any;
47
+ addressTo: any;
48
+ tagFrom: any;
49
+ tagTo: any;
50
+ updated: any;
51
+ comment: any;
52
+ fee: {
53
+ currency: any;
54
+ cost: any;
55
+ rate: any;
56
+ };
39
57
  }>;
40
- withdraw(code: string, amount: any, address: any, tag?: any, params?: {}): Promise<{
41
- info: any;
42
- id: any;
43
- }>;
58
+ withdraw(code: string, amount: number, address: any, tag?: any, params?: {}): Promise<Transaction>;
44
59
  sign(path: any, api?: string, method?: string, params?: {}, headers?: any, body?: any): {
45
60
  url: any;
46
61
  method: string;
package/js/src/yobit.js CHANGED
@@ -1180,11 +1180,29 @@ export default class yobit extends Exchange {
1180
1180
  const address = this.safeString(response['return'], 'address');
1181
1181
  this.checkAddress(address);
1182
1182
  return {
1183
+ 'id': undefined,
1183
1184
  'currency': code,
1184
1185
  'address': address,
1185
1186
  'tag': undefined,
1186
1187
  'network': undefined,
1187
1188
  'info': response,
1189
+ 'txid': undefined,
1190
+ 'type': undefined,
1191
+ 'amount': undefined,
1192
+ 'status': undefined,
1193
+ 'timestamp': undefined,
1194
+ 'datetime': undefined,
1195
+ 'addressFrom': undefined,
1196
+ 'addressTo': undefined,
1197
+ 'tagFrom': undefined,
1198
+ 'tagTo': undefined,
1199
+ 'updated': undefined,
1200
+ 'comment': undefined,
1201
+ 'fee': {
1202
+ 'currency': undefined,
1203
+ 'cost': undefined,
1204
+ 'rate': undefined,
1205
+ },
1188
1206
  };
1189
1207
  }
1190
1208
  async withdraw(code, amount, address, tag = undefined, params = {}) {
@@ -1217,6 +1235,27 @@ export default class yobit extends Exchange {
1217
1235
  return {
1218
1236
  'info': response,
1219
1237
  'id': undefined,
1238
+ 'txid': undefined,
1239
+ 'type': undefined,
1240
+ 'currency': undefined,
1241
+ 'network': undefined,
1242
+ 'amount': undefined,
1243
+ 'status': undefined,
1244
+ 'timestamp': undefined,
1245
+ 'datetime': undefined,
1246
+ 'address': undefined,
1247
+ 'addressFrom': undefined,
1248
+ 'addressTo': undefined,
1249
+ 'tag': undefined,
1250
+ 'tagFrom': undefined,
1251
+ 'tagTo': undefined,
1252
+ 'updated': undefined,
1253
+ 'comment': undefined,
1254
+ 'fee': {
1255
+ 'currency': undefined,
1256
+ 'cost': undefined,
1257
+ 'rate': undefined,
1258
+ },
1220
1259
  };
1221
1260
  }
1222
1261
  sign(path, api = 'public', method = 'GET', params = {}, headers = undefined, body = undefined) {
package/js/src/zaif.d.ts CHANGED
@@ -15,12 +15,12 @@ export default class zaif extends Exchange {
15
15
  fetchTicker(symbol: string, params?: {}): Promise<Ticker>;
16
16
  parseTrade(trade: any, market?: Market): Trade;
17
17
  fetchTrades(symbol: string, since?: Int, limit?: Int, params?: {}): Promise<Trade[]>;
18
- createOrder(symbol: string, type: OrderType, side: OrderSide, amount: any, price?: any, params?: {}): Promise<Order>;
18
+ createOrder(symbol: string, type: OrderType, side: OrderSide, amount: number, price?: number, params?: {}): Promise<Order>;
19
19
  cancelOrder(id: string, symbol?: Str, params?: {}): Promise<any>;
20
20
  parseOrder(order: any, market?: Market): Order;
21
21
  fetchOpenOrders(symbol?: Str, since?: Int, limit?: Int, params?: {}): Promise<Order[]>;
22
22
  fetchClosedOrders(symbol?: Str, since?: Int, limit?: Int, params?: {}): Promise<Order[]>;
23
- withdraw(code: string, amount: any, address: any, tag?: any, params?: {}): Promise<Transaction>;
23
+ withdraw(code: string, amount: number, address: any, tag?: any, params?: {}): Promise<Transaction>;
24
24
  parseTransaction(transaction: any, currency?: Currency): Transaction;
25
25
  customNonce(): string;
26
26
  sign(path: any, api?: string, method?: string, params?: {}, headers?: any, body?: any): {
package/js/src/zonda.d.ts CHANGED
@@ -1,5 +1,5 @@
1
1
  import Exchange from './abstract/zonda.js';
2
- import type { Balances, Currency, Int, Market, OHLCV, Order, OrderBook, OrderSide, OrderType, Str, Strings, Ticker, Tickers, Trade, Transaction } from './base/types.js';
2
+ import type { TransferEntry, Balances, Currency, Int, Market, OHLCV, Order, OrderBook, OrderSide, OrderType, Str, Strings, Ticker, Tickers, Trade, Transaction } from './base/types.js';
3
3
  /**
4
4
  * @class zonda
5
5
  * @augments Exchange
@@ -40,7 +40,7 @@ export default class zonda extends Exchange {
40
40
  fetchOHLCV(symbol: string, timeframe?: string, since?: Int, limit?: Int, params?: {}): Promise<OHLCV[]>;
41
41
  parseTrade(trade: any, market?: Market): Trade;
42
42
  fetchTrades(symbol: string, since?: Int, limit?: Int, params?: {}): Promise<Trade[]>;
43
- createOrder(symbol: string, type: OrderType, side: OrderSide, amount: any, price?: any, params?: {}): Promise<Order>;
43
+ createOrder(symbol: string, type: OrderType, side: OrderSide, amount: number, price?: number, params?: {}): Promise<Order>;
44
44
  cancelOrder(id: string, symbol?: Str, params?: {}): Promise<any>;
45
45
  isFiat(currency: any): boolean;
46
46
  parseDepositAddress(depositAddress: any, currency?: Currency): {
@@ -58,17 +58,7 @@ export default class zonda extends Exchange {
58
58
  info: any;
59
59
  }>;
60
60
  fetchDepositAddresses(codes?: any, params?: {}): Promise<{}>;
61
- transfer(code: string, amount: any, fromAccount: any, toAccount: any, params?: {}): Promise<{
62
- info: any;
63
- id: any;
64
- timestamp: any;
65
- datetime: any;
66
- currency: string;
67
- amount: any;
68
- fromAccount: string;
69
- toAccount: string;
70
- status: string;
71
- }>;
61
+ transfer(code: string, amount: number, fromAccount: any, toAccount: any, params?: {}): Promise<TransferEntry>;
72
62
  parseTransfer(transfer: any, currency?: Currency): {
73
63
  info: any;
74
64
  id: any;
@@ -81,7 +71,7 @@ export default class zonda extends Exchange {
81
71
  status: string;
82
72
  };
83
73
  parseTransferStatus(status: any): string;
84
- withdraw(code: string, amount: any, address: any, tag?: any, params?: {}): Promise<Transaction>;
74
+ withdraw(code: string, amount: number, address: any, tag?: any, params?: {}): Promise<Transaction>;
85
75
  parseTransaction(transaction: any, currency?: Currency): Transaction;
86
76
  sign(path: any, api?: string, method?: string, params?: {}, headers?: any, body?: any): {
87
77
  url: any;
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "ccxt",
3
- "version": "4.2.31",
3
+ "version": "4.2.34",
4
4
  "description": "A JavaScript / TypeScript / Python / C# / PHP cryptocurrency trading library with support for 100+ exchanges",
5
5
  "unpkg": "dist/ccxt.browser.js",
6
6
  "type": "module",
@@ -27,13 +27,18 @@
27
27
  "coverage-js": "npm run instrument && npm run nyc-coverage && rm -rf jsInstrumented",
28
28
  "docker": "docker-compose run --rm ccxt",
29
29
  "fixTSBug": "node build/fixTSBug",
30
+ "transpileCS": "node --no-warnings --loader ts-node/esm build/csharpTranspiler.ts --multi",
31
+ "transpileCSWs": "node --no-warnings --loader ts-node/esm build/csharpTranspiler.ts --ws",
32
+ "buildCS": "dotnet build cs/ccxt.sln",
33
+ "buildCSRelease": "dotnet build cs --configuration Release",
34
+ "csharp": "npm run transpileCS && npm run transpileCSWs && npm run buildCS",
35
+ "force-build": "npm run pre-transpile && npm run force-transpile-fast && npm run csharp && npm run post-transpile && npm run update-badges",
30
36
  "build-docs": "node jsdoc2md.js && node examples2md.js",
31
37
  "serve-docs": "docsify serve ./wiki",
32
38
  "tsBuild": "tsc || true",
33
39
  "tsBuildExamples": "tsc -p ./examples/tsconfig.json",
34
40
  "emitAPI": "node build/generateImplicitAPI.js",
35
41
  "build": "npm run pre-transpile && npm run transpile && npm run post-transpile && npm run update-badges && npm run build-docs",
36
- "force-build": "npm run pre-transpile && npm run force-transpile-fast && npm run post-transpile && npm run update-badges",
37
42
  "force-build-slow": "npm run pre-transpile && npm run force-transpile && npm run post-transpile && npm run update-badges",
38
43
  "pre-transpile": "npm run export-exchanges && npm run vss && npm run tsBuild && npm run emitAPI && npm run validate-types && npm run tsBuildExamples && npm run copy-python-files && npm run check-js-syntax && npm run bundle",
39
44
  "pre-transpile-pr": "npm run export-exchanges && npm run tsBuild && npm run emitAPI && npm run check-js-syntax",
@@ -42,25 +47,28 @@
42
47
  "test": "npm run build && npm run commonjs-test && npm run static-tests && node run-tests --useProxy",
43
48
  "fast-test": "npm run commonjs-test && node run-tests --js --useProxy",
44
49
  "commonjs-test": "node test-commonjs.cjs",
45
- "fast-test-ws": "node run-tests --ws --js --useProxy",
50
+ "fast-test-ws": "node run-tests --ws --js",
51
+ "test-base": "npm run test-js-base && npm run test-python-base && npm run test-php-base && npm run test-cs-base && npm run id-tests && npm run static-tests",
52
+ "test-base-ws": "npm run test-js-base-ws && npm run test-python-base-ws && npm run test-php-base-ws && npm run test-cs-base-ws",
46
53
  "test-js": "npm run commonjs-test && node run-tests --js --useProxy",
47
54
  "test-js-ws": "node run-tests --ws --js --useProxy",
48
55
  "test-py": "node run-tests --python --useProxy",
49
56
  "test-py-ws": "node run-tests --ws --python --useProxy",
50
57
  "test-php": "node run-tests --php --useProxy",
51
58
  "test-php-ws": "node run-tests --ws --php --useProxy",
52
- "test-base": "npm run test-js-base && npm run test-python-base && npm run test-php-base && npm run id-tests && npm run static-tests",
53
- "test-base-ws": "npm run test-js-base-ws && npm run test-python-base-ws && npm run test-php-base-ws",
54
59
  "test-js-base": "node ./js/src/test/base/test.base.js",
55
60
  "test-js-base-ws": "npm run test-js-cache && npm run test-js-orderbook",
56
61
  "test-python-base": "python3 python/ccxt/test/base/test_number.py && python3 python/ccxt/test/base/test_crypto.py",
57
62
  "test-python-base-ws": "npm run test-python-cache && npm run test-python-orderbook",
58
63
  "test-php-base": "php -f php/test/base/test_number.php && php -f php/test/base/test_crypto.php",
59
64
  "test-php-base-ws": "npm run test-php-cache && npm run test-php-orderbook",
65
+ "test-cs-base": "dotnet run --project cs/tests/tests.csproj --base",
66
+ "test-cs-base-ws": "dotnet run --project cs/tests/tests.csproj --cache && dotnet run --project cs/tests/tests.csproj --orderbook",
60
67
  "cli.js": "node ./examples/js/cli.js",
61
68
  "cli.py": "python3 ./examples/py/cli.py",
62
69
  "cli.php": "php ./examples/php/cli.php",
63
70
  "cli.ts": "node --loader ts-node/esm examples/ts/cli.ts",
71
+ "cli.cs": "dotnet run --project \"./cs/cli/cli.csproj\"",
64
72
  "export-exchanges": "node build/export-exchanges",
65
73
  "capabilities": "node ./examples/js/exchange-capabilities.js",
66
74
  "git-ignore-generated-files": "node build/git-ignore-generated-files.cjs",
@@ -81,9 +89,12 @@
81
89
  "test-js-orderbook": "node js/src/pro/test/base/test.OrderBook.js",
82
90
  "test-python-cache": "python python/ccxt/pro/test/base/test_cache.py",
83
91
  "test-python-orderbook": "python python/ccxt/pro/test/base/test_order_book.py",
92
+ "test-cs-cache": "dotnet run --project cs/tests/tests.csproj --cache",
84
93
  "test-ws-php-base": "npm run test-php-cache && npm run test-php-orderbook",
85
94
  "test-php-cache": "php -f php/pro/test/base/test_cache.php",
86
95
  "test-php-orderbook": "php -f php/pro/test/base/test_order_book.php",
96
+ "test-cs-orderbook": "dotnet run --project cs/tests/tests.csproj --orderbook",
97
+ "test-ws-cs-base": "npm run test-cs-cache && npm run test-cs-orderbook",
87
98
  "vss": "node build/vss",
88
99
  "lint": "eslint \"ts/src/*.ts\" \"ts/src/base/Exchange.ts\" \"ts/src/pro/*.ts\" --cache --cache-location .cache/eslintcache --cache-strategy metadata",
89
100
  "check-syntax": "npm run transpile && npm run check-js-syntax && npm run check-python-syntax && npm run check-php-syntax",
@@ -108,15 +119,18 @@
108
119
  "request-js": "node js/src/test/test.js --requestTests",
109
120
  "request-py": "python3 python/ccxt/test/test_async.py --requestTests",
110
121
  "response-py": "python3 python/ccxt/test/test_async.py --responseTests",
122
+ "request-cs": "dotnet run --project cs/tests/tests.csproj --requestTests",
123
+ "response-cs": "dotnet run --project cs/tests/tests.csproj --responseTests",
111
124
  "request-php": "php php/test/test_async.php --requestTests",
112
125
  "response-php": "php php/test/test_async.php --responseTests",
113
- "request-tests": "npm run request-js && npm run request-py && npm run request-php",
114
- "response-tests": "npm run response-js && npm run response-py && npm run response-php",
126
+ "request-tests": "npm run request-js && npm run request-py && npm run request-php && npm run request-cs",
127
+ "response-tests": "npm run response-js && npm run response-py && npm run response-php && npm run response-cs",
115
128
  "static-tests": "npm run request-tests && npm run response-tests",
116
129
  "id-tests-js": "node js/src/test/test.js --idTests",
117
130
  "id-tests-py": "python python/ccxt/test/test_async.py --idTests",
118
131
  "id-tests-php": "php php/test/test_async.php --idTests",
119
- "id-tests": "npm run id-tests-js && npm run id-tests-py && npm run id-tests-php"
132
+ "id-tests-cs": "dotnet run --project cs/tests/tests.csproj --idTests",
133
+ "id-tests": "npm run id-tests-js && npm run id-tests-py && npm run id-tests-php && npm run id-tests-cs"
120
134
  },
121
135
  "types": "./js/ccxt.d.ts",
122
136
  "devDependencies": {
package/skip-tests.json CHANGED
@@ -393,6 +393,7 @@
393
393
  }
394
394
  },
395
395
  "bitstamp": {
396
+ "skipWs": true,
396
397
  "skipMethods": {
397
398
  "fetchOrderBook": "bid/ask might be 0",
398
399
  "fetchL2OrderBook": "same",
@@ -746,6 +747,7 @@
746
747
  }
747
748
  },
748
749
  "coinmate": {
750
+ "skip": "clourderror error",
749
751
  "skipMethods": {
750
752
  "loadMarkets": {
751
753
  "active":"is undefined"
@@ -1181,6 +1183,7 @@
1181
1183
  }
1182
1184
  },
1183
1185
  "kucoinfutures": {
1186
+ "skipCSharp": true,
1184
1187
  "skipMethods":{
1185
1188
  "loadMarkets": {
1186
1189
  "currencyIdAndCode": "messed"
@@ -1441,7 +1444,11 @@
1441
1444
  }
1442
1445
  }
1443
1446
  },
1447
+ "poloniexfutures": {
1448
+ "skipCSharp": "too flaky, check the reason later"
1449
+ },
1444
1450
  "okx": {
1451
+ "skipCSharp": true,
1445
1452
  "skipMethods": {
1446
1453
  "loadMarkets": "linear & inverse must not be same",
1447
1454
  "fetchCurrencies": {
@@ -1599,7 +1606,8 @@
1599
1606
  "loadMarkets":{
1600
1607
  "currencyIdAndCode": "messed"
1601
1608
  },
1602
- "fetchTickers": "all tickers request exceedes max url length"
1609
+ "fetchTickers": "all tickers request exceedes max url length",
1610
+ "fetchOHLCV": "does not exist"
1603
1611
  }
1604
1612
  },
1605
1613
  "zaif": {