ccxt 4.2.18 → 4.2.19

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 (426) hide show
  1. package/README.md +8 -8
  2. package/dist/ccxt.browser.js +34202 -33193
  3. package/dist/ccxt.browser.min.js +2 -2
  4. package/dist/cjs/ccxt.js +12 -1
  5. package/dist/cjs/src/alpaca.js +18 -18
  6. package/dist/cjs/src/ascendex.js +13 -6
  7. package/dist/cjs/src/base/Exchange.js +266 -27
  8. package/dist/cjs/src/bigone.js +434 -168
  9. package/dist/cjs/src/binance.js +163 -34
  10. package/dist/cjs/src/binanceus.js +8 -0
  11. package/dist/cjs/src/bingx.js +183 -41
  12. package/dist/cjs/src/bitfinex.js +2 -3
  13. package/dist/cjs/src/bitget.js +59 -16
  14. package/dist/cjs/src/bitmart.js +5 -5
  15. package/dist/cjs/src/bitmex.js +4 -6
  16. package/dist/cjs/src/bitpanda.js +5 -1991
  17. package/dist/cjs/src/bitstamp.js +8 -0
  18. package/dist/cjs/src/bybit.js +27 -47
  19. package/dist/cjs/src/coinbase.js +176 -26
  20. package/dist/cjs/src/coincheck.js +1 -0
  21. package/dist/cjs/src/coinex.js +3 -0
  22. package/dist/cjs/src/coinlist.js +13 -6
  23. package/dist/cjs/src/coinone.js +2 -2
  24. package/dist/cjs/src/coinsph.js +4 -5
  25. package/dist/cjs/src/delta.js +7 -1
  26. package/dist/cjs/src/deribit.js +17 -4
  27. package/dist/cjs/src/gate.js +151 -169
  28. package/dist/cjs/src/gemini.js +1 -1
  29. package/dist/cjs/src/hitbtc.js +2 -3
  30. package/dist/cjs/src/htx.js +157 -7
  31. package/dist/cjs/src/huobijp.js +2 -3
  32. package/dist/cjs/src/independentreserve.js +7 -5
  33. package/dist/cjs/src/kraken.js +86 -54
  34. package/dist/cjs/src/kucoin.js +5 -0
  35. package/dist/cjs/src/kucoinfutures.js +131 -77
  36. package/dist/cjs/src/lbank.js +60 -33
  37. package/dist/cjs/src/luno.js +84 -2
  38. package/dist/cjs/src/mexc.js +3 -3
  39. package/dist/cjs/src/oceanex.js +1 -1
  40. package/dist/cjs/src/okx.js +23 -11
  41. package/dist/cjs/{js/src/bitpanda.js → src/onetrading.js} +39 -39
  42. package/dist/cjs/src/phemex.js +37 -27
  43. package/dist/cjs/src/poloniexfutures.js +1 -0
  44. package/dist/cjs/src/pro/binance.js +66 -25
  45. package/dist/cjs/src/pro/bitget.js +1 -1
  46. package/dist/cjs/src/pro/bitpanda.js +5 -1330
  47. package/dist/cjs/src/pro/coinbase.js +4 -1
  48. package/dist/cjs/src/pro/hitbtc.js +5 -4
  49. package/dist/cjs/src/pro/htx.js +6 -1
  50. package/dist/cjs/src/pro/kraken.js +1 -1
  51. package/dist/cjs/src/pro/krakenfutures.js +7 -1
  52. package/dist/cjs/src/pro/kucoin.js +46 -36
  53. package/dist/cjs/src/pro/kucoinfutures.js +45 -37
  54. package/dist/cjs/src/pro/lbank.js +881 -0
  55. package/dist/cjs/src/pro/okx.js +52 -2
  56. package/dist/cjs/{js/src/pro/bitpanda.js → src/pro/onetrading.js} +4 -7
  57. package/dist/cjs/src/pro/poloniex.js +2 -2
  58. package/dist/cjs/src/pro/poloniexfutures.js +43 -35
  59. package/dist/cjs/src/pro/woo.js +126 -0
  60. package/dist/cjs/src/probit.js +4 -2
  61. package/dist/cjs/src/upbit.js +12 -12
  62. package/dist/cjs/src/wavesexchange.js +1 -1
  63. package/dist/cjs/src/whitebit.js +1 -0
  64. package/dist/cjs/src/woo.js +56 -0
  65. package/js/ccxt.d.ts +11 -2
  66. package/js/ccxt.js +8 -2
  67. package/js/src/abstract/bitpanda.d.ts +4 -4
  68. package/js/src/abstract/bitstamp.d.ts +8 -0
  69. package/js/src/abstract/gate.d.ts +1 -0
  70. package/js/src/abstract/gateio.d.ts +1 -0
  71. package/js/src/abstract/htx.d.ts +3 -0
  72. package/js/src/abstract/huobi.d.ts +3 -0
  73. package/js/src/abstract/luno.d.ts +1 -0
  74. package/js/src/abstract/onetrading.d.ts +38 -0
  75. package/js/src/ascendex.js +2 -0
  76. package/js/src/bingx.js +1 -1
  77. package/js/src/bitget.js +22 -3
  78. package/js/src/bitpanda.d.ts +2 -72
  79. package/js/src/bitpanda.js +5 -1991
  80. package/js/src/bitstamp.js +8 -0
  81. package/js/src/deribit.js +11 -3
  82. package/js/src/gate.d.ts +1 -0
  83. package/js/src/gate.js +50 -110
  84. package/js/src/htx.js +3 -0
  85. package/js/src/kraken.d.ts +1 -0
  86. package/js/src/kraken.js +39 -38
  87. package/js/src/lbank.js +1 -0
  88. package/js/src/luno.d.ts +3 -1
  89. package/js/src/luno.js +84 -2
  90. package/js/src/mexc.js +1 -2
  91. package/js/src/onetrading.d.ts +74 -0
  92. package/js/src/onetrading.js +2003 -0
  93. package/js/src/poloniexfutures.js +1 -0
  94. package/js/src/pro/binance.js +6 -1
  95. package/js/src/pro/bitpanda.d.ts +2 -34
  96. package/js/src/pro/bitpanda.js +5 -1330
  97. package/js/src/pro/lbank.d.ts +29 -0
  98. package/js/src/pro/lbank.js +882 -0
  99. package/js/src/pro/onetrading.d.ts +36 -0
  100. package/js/src/pro/onetrading.js +1339 -0
  101. package/package.json +2 -2
  102. package/rollup.config.js +2 -0
  103. package/skip-tests.json +2 -1
  104. package/test-commonjs.cjs +25 -1
  105. package/dist/cjs/js/ccxt.js +0 -478
  106. package/dist/cjs/js/src/abstract/alpaca.js +0 -9
  107. package/dist/cjs/js/src/abstract/ascendex.js +0 -9
  108. package/dist/cjs/js/src/abstract/bigone.js +0 -9
  109. package/dist/cjs/js/src/abstract/binance.js +0 -9
  110. package/dist/cjs/js/src/abstract/bingx.js +0 -9
  111. package/dist/cjs/js/src/abstract/bit2c.js +0 -9
  112. package/dist/cjs/js/src/abstract/bitbank.js +0 -9
  113. package/dist/cjs/js/src/abstract/bitbns.js +0 -9
  114. package/dist/cjs/js/src/abstract/bitfinex.js +0 -9
  115. package/dist/cjs/js/src/abstract/bitfinex2.js +0 -9
  116. package/dist/cjs/js/src/abstract/bitflyer.js +0 -9
  117. package/dist/cjs/js/src/abstract/bitforex.js +0 -9
  118. package/dist/cjs/js/src/abstract/bitget.js +0 -9
  119. package/dist/cjs/js/src/abstract/bithumb.js +0 -9
  120. package/dist/cjs/js/src/abstract/bitmart.js +0 -9
  121. package/dist/cjs/js/src/abstract/bitmex.js +0 -9
  122. package/dist/cjs/js/src/abstract/bitopro.js +0 -9
  123. package/dist/cjs/js/src/abstract/bitpanda.js +0 -9
  124. package/dist/cjs/js/src/abstract/bitrue.js +0 -9
  125. package/dist/cjs/js/src/abstract/bitso.js +0 -9
  126. package/dist/cjs/js/src/abstract/bitstamp.js +0 -9
  127. package/dist/cjs/js/src/abstract/bitteam.js +0 -9
  128. package/dist/cjs/js/src/abstract/bitvavo.js +0 -9
  129. package/dist/cjs/js/src/abstract/bl3p.js +0 -9
  130. package/dist/cjs/js/src/abstract/blockchaincom.js +0 -9
  131. package/dist/cjs/js/src/abstract/btcalpha.js +0 -9
  132. package/dist/cjs/js/src/abstract/btcbox.js +0 -9
  133. package/dist/cjs/js/src/abstract/btcmarkets.js +0 -9
  134. package/dist/cjs/js/src/abstract/btcturk.js +0 -9
  135. package/dist/cjs/js/src/abstract/bybit.js +0 -9
  136. package/dist/cjs/js/src/abstract/cex.js +0 -9
  137. package/dist/cjs/js/src/abstract/coinbase.js +0 -9
  138. package/dist/cjs/js/src/abstract/coinbasepro.js +0 -9
  139. package/dist/cjs/js/src/abstract/coincheck.js +0 -9
  140. package/dist/cjs/js/src/abstract/coinex.js +0 -9
  141. package/dist/cjs/js/src/abstract/coinlist.js +0 -9
  142. package/dist/cjs/js/src/abstract/coinmate.js +0 -9
  143. package/dist/cjs/js/src/abstract/coinone.js +0 -9
  144. package/dist/cjs/js/src/abstract/coinsph.js +0 -9
  145. package/dist/cjs/js/src/abstract/coinspot.js +0 -9
  146. package/dist/cjs/js/src/abstract/cryptocom.js +0 -9
  147. package/dist/cjs/js/src/abstract/currencycom.js +0 -9
  148. package/dist/cjs/js/src/abstract/delta.js +0 -9
  149. package/dist/cjs/js/src/abstract/deribit.js +0 -9
  150. package/dist/cjs/js/src/abstract/digifinex.js +0 -9
  151. package/dist/cjs/js/src/abstract/exmo.js +0 -9
  152. package/dist/cjs/js/src/abstract/gate.js +0 -9
  153. package/dist/cjs/js/src/abstract/gemini.js +0 -9
  154. package/dist/cjs/js/src/abstract/hitbtc.js +0 -9
  155. package/dist/cjs/js/src/abstract/hollaex.js +0 -9
  156. package/dist/cjs/js/src/abstract/htx.js +0 -9
  157. package/dist/cjs/js/src/abstract/huobijp.js +0 -9
  158. package/dist/cjs/js/src/abstract/idex.js +0 -9
  159. package/dist/cjs/js/src/abstract/independentreserve.js +0 -9
  160. package/dist/cjs/js/src/abstract/indodax.js +0 -9
  161. package/dist/cjs/js/src/abstract/kraken.js +0 -9
  162. package/dist/cjs/js/src/abstract/krakenfutures.js +0 -9
  163. package/dist/cjs/js/src/abstract/kucoin.js +0 -9
  164. package/dist/cjs/js/src/abstract/kucoinfutures.js +0 -9
  165. package/dist/cjs/js/src/abstract/kuna.js +0 -9
  166. package/dist/cjs/js/src/abstract/latoken.js +0 -9
  167. package/dist/cjs/js/src/abstract/lbank.js +0 -9
  168. package/dist/cjs/js/src/abstract/luno.js +0 -9
  169. package/dist/cjs/js/src/abstract/lykke.js +0 -9
  170. package/dist/cjs/js/src/abstract/mercado.js +0 -9
  171. package/dist/cjs/js/src/abstract/mexc.js +0 -9
  172. package/dist/cjs/js/src/abstract/ndax.js +0 -9
  173. package/dist/cjs/js/src/abstract/novadax.js +0 -9
  174. package/dist/cjs/js/src/abstract/oceanex.js +0 -9
  175. package/dist/cjs/js/src/abstract/okcoin.js +0 -9
  176. package/dist/cjs/js/src/abstract/okx.js +0 -9
  177. package/dist/cjs/js/src/abstract/p2b.js +0 -9
  178. package/dist/cjs/js/src/abstract/paymium.js +0 -9
  179. package/dist/cjs/js/src/abstract/phemex.js +0 -9
  180. package/dist/cjs/js/src/abstract/poloniex.js +0 -9
  181. package/dist/cjs/js/src/abstract/poloniexfutures.js +0 -9
  182. package/dist/cjs/js/src/abstract/probit.js +0 -9
  183. package/dist/cjs/js/src/abstract/timex.js +0 -9
  184. package/dist/cjs/js/src/abstract/tokocrypto.js +0 -9
  185. package/dist/cjs/js/src/abstract/upbit.js +0 -9
  186. package/dist/cjs/js/src/abstract/wavesexchange.js +0 -9
  187. package/dist/cjs/js/src/abstract/wazirx.js +0 -9
  188. package/dist/cjs/js/src/abstract/whitebit.js +0 -9
  189. package/dist/cjs/js/src/abstract/woo.js +0 -9
  190. package/dist/cjs/js/src/abstract/yobit.js +0 -9
  191. package/dist/cjs/js/src/abstract/zaif.js +0 -9
  192. package/dist/cjs/js/src/abstract/zonda.js +0 -9
  193. package/dist/cjs/js/src/ace.js +0 -1058
  194. package/dist/cjs/js/src/alpaca.js +0 -1125
  195. package/dist/cjs/js/src/ascendex.js +0 -3365
  196. package/dist/cjs/js/src/base/Exchange.js +0 -5260
  197. package/dist/cjs/js/src/base/Precise.js +0 -263
  198. package/dist/cjs/js/src/base/errors.js +0 -299
  199. package/dist/cjs/js/src/base/functions/crypto.js +0 -78
  200. package/dist/cjs/js/src/base/functions/encode.js +0 -44
  201. package/dist/cjs/js/src/base/functions/generic.js +0 -193
  202. package/dist/cjs/js/src/base/functions/misc.js +0 -96
  203. package/dist/cjs/js/src/base/functions/number.js +0 -297
  204. package/dist/cjs/js/src/base/functions/platform.js +0 -28
  205. package/dist/cjs/js/src/base/functions/rsa.js +0 -34
  206. package/dist/cjs/js/src/base/functions/string.js +0 -48
  207. package/dist/cjs/js/src/base/functions/throttle.js +0 -66
  208. package/dist/cjs/js/src/base/functions/time.js +0 -187
  209. package/dist/cjs/js/src/base/functions/totp.js +0 -24
  210. package/dist/cjs/js/src/base/functions/type.js +0 -162
  211. package/dist/cjs/js/src/base/functions.js +0 -157
  212. package/dist/cjs/js/src/base/ws/Cache.js +0 -254
  213. package/dist/cjs/js/src/base/ws/Client.js +0 -299
  214. package/dist/cjs/js/src/base/ws/Future.js +0 -34
  215. package/dist/cjs/js/src/base/ws/OrderBook.js +0 -107
  216. package/dist/cjs/js/src/base/ws/OrderBookSide.js +0 -281
  217. package/dist/cjs/js/src/base/ws/WsClient.js +0 -69
  218. package/dist/cjs/js/src/bequant.js +0 -33
  219. package/dist/cjs/js/src/bigone.js +0 -2213
  220. package/dist/cjs/js/src/binance.js +0 -9851
  221. package/dist/cjs/js/src/binancecoinm.js +0 -45
  222. package/dist/cjs/js/src/binanceus.js +0 -92
  223. package/dist/cjs/js/src/binanceusdm.js +0 -58
  224. package/dist/cjs/js/src/bingx.js +0 -3872
  225. package/dist/cjs/js/src/bit2c.js +0 -916
  226. package/dist/cjs/js/src/bitbank.js +0 -1000
  227. package/dist/cjs/js/src/bitbay.js +0 -17
  228. package/dist/cjs/js/src/bitbns.js +0 -1220
  229. package/dist/cjs/js/src/bitcoincom.js +0 -17
  230. package/dist/cjs/js/src/bitfinex.js +0 -1670
  231. package/dist/cjs/js/src/bitfinex2.js +0 -2990
  232. package/dist/cjs/js/src/bitflyer.js +0 -1045
  233. package/dist/cjs/js/src/bitforex.js +0 -852
  234. package/dist/cjs/js/src/bitget.js +0 -8295
  235. package/dist/cjs/js/src/bithumb.js +0 -1090
  236. package/dist/cjs/js/src/bitmart.js +0 -4454
  237. package/dist/cjs/js/src/bitmex.js +0 -2881
  238. package/dist/cjs/js/src/bitopro.js +0 -1724
  239. package/dist/cjs/js/src/bitrue.js +0 -3253
  240. package/dist/cjs/js/src/bitso.js +0 -1753
  241. package/dist/cjs/js/src/bitstamp.js +0 -2188
  242. package/dist/cjs/js/src/bitteam.js +0 -2309
  243. package/dist/cjs/js/src/bitvavo.js +0 -1968
  244. package/dist/cjs/js/src/bl3p.js +0 -447
  245. package/dist/cjs/js/src/blockchaincom.js +0 -1160
  246. package/dist/cjs/js/src/btcalpha.js +0 -929
  247. package/dist/cjs/js/src/btcbox.js +0 -565
  248. package/dist/cjs/js/src/btcmarkets.js +0 -1237
  249. package/dist/cjs/js/src/btcturk.js +0 -929
  250. package/dist/cjs/js/src/bybit.js +0 -7624
  251. package/dist/cjs/js/src/cex.js +0 -1693
  252. package/dist/cjs/js/src/coinbase.js +0 -3424
  253. package/dist/cjs/js/src/coinbasepro.js +0 -1866
  254. package/dist/cjs/js/src/coincheck.js +0 -844
  255. package/dist/cjs/js/src/coinex.js +0 -5417
  256. package/dist/cjs/js/src/coinlist.js +0 -2337
  257. package/dist/cjs/js/src/coinmate.js +0 -989
  258. package/dist/cjs/js/src/coinone.js +0 -1185
  259. package/dist/cjs/js/src/coinsph.js +0 -1933
  260. package/dist/cjs/js/src/coinspot.js +0 -548
  261. package/dist/cjs/js/src/cryptocom.js +0 -3007
  262. package/dist/cjs/js/src/currencycom.js +0 -2015
  263. package/dist/cjs/js/src/delta.js +0 -3262
  264. package/dist/cjs/js/src/deribit.js +0 -3310
  265. package/dist/cjs/js/src/digifinex.js +0 -4307
  266. package/dist/cjs/js/src/exmo.js +0 -2645
  267. package/dist/cjs/js/src/fmfwio.js +0 -34
  268. package/dist/cjs/js/src/gate.js +0 -7077
  269. package/dist/cjs/js/src/gateio.js +0 -16
  270. package/dist/cjs/js/src/gemini.js +0 -1801
  271. package/dist/cjs/js/src/hitbtc.js +0 -3660
  272. package/dist/cjs/js/src/hitbtc3.js +0 -19
  273. package/dist/cjs/js/src/hollaex.js +0 -1882
  274. package/dist/cjs/js/src/htx.js +0 -9174
  275. package/dist/cjs/js/src/huobi.js +0 -16
  276. package/dist/cjs/js/src/huobijp.js +0 -1918
  277. package/dist/cjs/js/src/idex.js +0 -1770
  278. package/dist/cjs/js/src/independentreserve.js +0 -761
  279. package/dist/cjs/js/src/indodax.js +0 -1069
  280. package/dist/cjs/js/src/kraken.js +0 -2891
  281. package/dist/cjs/js/src/krakenfutures.js +0 -2407
  282. package/dist/cjs/js/src/kucoin.js +0 -4494
  283. package/dist/cjs/js/src/kucoinfutures.js +0 -2529
  284. package/dist/cjs/js/src/kuna.js +0 -1949
  285. package/dist/cjs/js/src/latoken.js +0 -1729
  286. package/dist/cjs/js/src/lbank.js +0 -2851
  287. package/dist/cjs/js/src/luno.js +0 -1044
  288. package/dist/cjs/js/src/lykke.js +0 -1303
  289. package/dist/cjs/js/src/mercado.js +0 -897
  290. package/dist/cjs/js/src/mexc.js +0 -5407
  291. package/dist/cjs/js/src/ndax.js +0 -2450
  292. package/dist/cjs/js/src/novadax.js +0 -1556
  293. package/dist/cjs/js/src/oceanex.js +0 -964
  294. package/dist/cjs/js/src/okcoin.js +0 -3115
  295. package/dist/cjs/js/src/okx.js +0 -7331
  296. package/dist/cjs/js/src/p2b.js +0 -1243
  297. package/dist/cjs/js/src/paymium.js +0 -597
  298. package/dist/cjs/js/src/phemex.js +0 -4725
  299. package/dist/cjs/js/src/poloniex.js +0 -2356
  300. package/dist/cjs/js/src/poloniexfutures.js +0 -1794
  301. package/dist/cjs/js/src/pro/alpaca.js +0 -714
  302. package/dist/cjs/js/src/pro/ascendex.js +0 -957
  303. package/dist/cjs/js/src/pro/bequant.js +0 -33
  304. package/dist/cjs/js/src/pro/binance.js +0 -2796
  305. package/dist/cjs/js/src/pro/binancecoinm.js +0 -23
  306. package/dist/cjs/js/src/pro/binanceus.js +0 -51
  307. package/dist/cjs/js/src/pro/binanceusdm.js +0 -32
  308. package/dist/cjs/js/src/pro/bingx.js +0 -944
  309. package/dist/cjs/js/src/pro/bitcoincom.js +0 -29
  310. package/dist/cjs/js/src/pro/bitfinex.js +0 -672
  311. package/dist/cjs/js/src/pro/bitfinex2.js +0 -1159
  312. package/dist/cjs/js/src/pro/bitget.js +0 -1733
  313. package/dist/cjs/js/src/pro/bitmart.js +0 -1486
  314. package/dist/cjs/js/src/pro/bitmex.js +0 -1576
  315. package/dist/cjs/js/src/pro/bitopro.js +0 -327
  316. package/dist/cjs/js/src/pro/bitrue.js +0 -462
  317. package/dist/cjs/js/src/pro/bitstamp.js +0 -547
  318. package/dist/cjs/js/src/pro/bitvavo.js +0 -704
  319. package/dist/cjs/js/src/pro/blockchaincom.js +0 -794
  320. package/dist/cjs/js/src/pro/bybit.js +0 -1843
  321. package/dist/cjs/js/src/pro/cex.js +0 -1510
  322. package/dist/cjs/js/src/pro/coinbase.js +0 -561
  323. package/dist/cjs/js/src/pro/coinbasepro.js +0 -968
  324. package/dist/cjs/js/src/pro/coinex.js +0 -1095
  325. package/dist/cjs/js/src/pro/cryptocom.js +0 -1020
  326. package/dist/cjs/js/src/pro/currencycom.js +0 -563
  327. package/dist/cjs/js/src/pro/deribit.js +0 -825
  328. package/dist/cjs/js/src/pro/exmo.js +0 -658
  329. package/dist/cjs/js/src/pro/gate.js +0 -1316
  330. package/dist/cjs/js/src/pro/gateio.js +0 -16
  331. package/dist/cjs/js/src/pro/gemini.js +0 -649
  332. package/dist/cjs/js/src/pro/hitbtc.js +0 -1294
  333. package/dist/cjs/js/src/pro/hollaex.js +0 -597
  334. package/dist/cjs/js/src/pro/htx.js +0 -2388
  335. package/dist/cjs/js/src/pro/huobi.js +0 -16
  336. package/dist/cjs/js/src/pro/huobijp.js +0 -606
  337. package/dist/cjs/js/src/pro/idex.js +0 -714
  338. package/dist/cjs/js/src/pro/independentreserve.js +0 -280
  339. package/dist/cjs/js/src/pro/kraken.js +0 -1364
  340. package/dist/cjs/js/src/pro/krakenfutures.js +0 -1506
  341. package/dist/cjs/js/src/pro/kucoin.js +0 -1062
  342. package/dist/cjs/js/src/pro/kucoinfutures.js +0 -989
  343. package/dist/cjs/js/src/pro/luno.js +0 -322
  344. package/dist/cjs/js/src/pro/mexc.js +0 -1170
  345. package/dist/cjs/js/src/pro/ndax.js +0 -545
  346. package/dist/cjs/js/src/pro/okcoin.js +0 -760
  347. package/dist/cjs/js/src/pro/okx.js +0 -1608
  348. package/dist/cjs/js/src/pro/phemex.js +0 -1511
  349. package/dist/cjs/js/src/pro/poloniex.js +0 -1253
  350. package/dist/cjs/js/src/pro/poloniexfutures.js +0 -1022
  351. package/dist/cjs/js/src/pro/probit.js +0 -586
  352. package/dist/cjs/js/src/pro/upbit.js +0 -234
  353. package/dist/cjs/js/src/pro/wazirx.js +0 -776
  354. package/dist/cjs/js/src/pro/whitebit.js +0 -927
  355. package/dist/cjs/js/src/pro/woo.js +0 -895
  356. package/dist/cjs/js/src/probit.js +0 -1867
  357. package/dist/cjs/js/src/static_dependencies/fflake/browser.js +0 -401
  358. package/dist/cjs/js/src/static_dependencies/jsencrypt/JSEncrypt.js +0 -195
  359. package/dist/cjs/js/src/static_dependencies/jsencrypt/JSEncryptRSAKey.js +0 -308
  360. package/dist/cjs/js/src/static_dependencies/jsencrypt/lib/asn1js/asn1.js +0 -554
  361. package/dist/cjs/js/src/static_dependencies/jsencrypt/lib/asn1js/base64.js +0 -94
  362. package/dist/cjs/js/src/static_dependencies/jsencrypt/lib/asn1js/hex.js +0 -70
  363. package/dist/cjs/js/src/static_dependencies/jsencrypt/lib/asn1js/int10.js +0 -91
  364. package/dist/cjs/js/src/static_dependencies/jsencrypt/lib/jsbn/base64.js +0 -16
  365. package/dist/cjs/js/src/static_dependencies/jsencrypt/lib/jsbn/jsbn.js +0 -1760
  366. package/dist/cjs/js/src/static_dependencies/jsencrypt/lib/jsbn/prng4.js +0 -52
  367. package/dist/cjs/js/src/static_dependencies/jsencrypt/lib/jsbn/rng.js +0 -81
  368. package/dist/cjs/js/src/static_dependencies/jsencrypt/lib/jsbn/rsa.js +0 -376
  369. package/dist/cjs/js/src/static_dependencies/jsencrypt/lib/jsbn/util.js +0 -70
  370. package/dist/cjs/js/src/static_dependencies/jsencrypt/lib/jsrsasign/asn1-1.0.js +0 -1580
  371. package/dist/cjs/js/src/static_dependencies/jsencrypt/lib/jsrsasign/yahoo.js +0 -74
  372. package/dist/cjs/js/src/static_dependencies/noble-curves/_shortw_utils.js +0 -24
  373. package/dist/cjs/js/src/static_dependencies/noble-curves/abstract/curve.js +0 -158
  374. package/dist/cjs/js/src/static_dependencies/noble-curves/abstract/edwards.js +0 -429
  375. package/dist/cjs/js/src/static_dependencies/noble-curves/abstract/hash-to-curve.js +0 -176
  376. package/dist/cjs/js/src/static_dependencies/noble-curves/abstract/modular.js +0 -324
  377. package/dist/cjs/js/src/static_dependencies/noble-curves/abstract/montgomery.js +0 -163
  378. package/dist/cjs/js/src/static_dependencies/noble-curves/abstract/utils.js +0 -245
  379. package/dist/cjs/js/src/static_dependencies/noble-curves/abstract/weierstrass.js +0 -1018
  380. package/dist/cjs/js/src/static_dependencies/noble-curves/ed25519.js +0 -383
  381. package/dist/cjs/js/src/static_dependencies/noble-curves/secp256k1.js +0 -258
  382. package/dist/cjs/js/src/static_dependencies/noble-hashes/_assert.js +0 -53
  383. package/dist/cjs/js/src/static_dependencies/noble-hashes/_sha2.js +0 -120
  384. package/dist/cjs/js/src/static_dependencies/noble-hashes/_u64.js +0 -69
  385. package/dist/cjs/js/src/static_dependencies/noble-hashes/crypto.js +0 -7
  386. package/dist/cjs/js/src/static_dependencies/noble-hashes/hmac.js +0 -83
  387. package/dist/cjs/js/src/static_dependencies/noble-hashes/md5.js +0 -240
  388. package/dist/cjs/js/src/static_dependencies/noble-hashes/sha1.js +0 -91
  389. package/dist/cjs/js/src/static_dependencies/noble-hashes/sha256.js +0 -130
  390. package/dist/cjs/js/src/static_dependencies/noble-hashes/sha3.js +0 -214
  391. package/dist/cjs/js/src/static_dependencies/noble-hashes/sha512.js +0 -239
  392. package/dist/cjs/js/src/static_dependencies/noble-hashes/utils.js +0 -93
  393. package/dist/cjs/js/src/static_dependencies/node-fetch/body.js +0 -354
  394. package/dist/cjs/js/src/static_dependencies/node-fetch/errors/abort-error.js +0 -16
  395. package/dist/cjs/js/src/static_dependencies/node-fetch/errors/base.js +0 -20
  396. package/dist/cjs/js/src/static_dependencies/node-fetch/errors/fetch-error.js +0 -30
  397. package/dist/cjs/js/src/static_dependencies/node-fetch/headers.js +0 -239
  398. package/dist/cjs/js/src/static_dependencies/node-fetch/index.js +0 -372
  399. package/dist/cjs/js/src/static_dependencies/node-fetch/request.js +0 -273
  400. package/dist/cjs/js/src/static_dependencies/node-fetch/response.js +0 -139
  401. package/dist/cjs/js/src/static_dependencies/node-fetch/utils/get-search.js +0 -14
  402. package/dist/cjs/js/src/static_dependencies/node-fetch/utils/is-redirect.js +0 -16
  403. package/dist/cjs/js/src/static_dependencies/node-fetch/utils/is.js +0 -81
  404. package/dist/cjs/js/src/static_dependencies/node-fetch/utils/referrer.js +0 -292
  405. package/dist/cjs/js/src/static_dependencies/proxies/agent-base/index.js +0 -103
  406. package/dist/cjs/js/src/static_dependencies/proxies/http-proxy-agent/index.js +0 -140
  407. package/dist/cjs/js/src/static_dependencies/proxies/https-proxy-agent/index.js +0 -175
  408. package/dist/cjs/js/src/static_dependencies/proxies/https-proxy-agent/parse-proxy-response.js +0 -95
  409. package/dist/cjs/js/src/static_dependencies/qs/index.cjs.js +0 -7
  410. package/dist/cjs/js/src/static_dependencies/scure-base/index.js +0 -383
  411. package/dist/cjs/js/src/timex.js +0 -1562
  412. package/dist/cjs/js/src/tokocrypto.js +0 -2542
  413. package/dist/cjs/js/src/upbit.js +0 -1844
  414. package/dist/cjs/js/src/wavesexchange.js +0 -2607
  415. package/dist/cjs/js/src/wazirx.js +0 -953
  416. package/dist/cjs/js/src/whitebit.js +0 -2310
  417. package/dist/cjs/js/src/woo.js +0 -2769
  418. package/dist/cjs/js/src/yobit.js +0 -1314
  419. package/dist/cjs/js/src/zaif.js +0 -736
  420. package/dist/cjs/js/src/zonda.js +0 -1883
  421. package/dist/cjs/src/abstract/bitpanda.js +0 -9
  422. package/test.ts +0 -0
  423. /package/dist/cjs/{js/src/abstract/ace.js → src/abstract/onetrading.js} +0 -0
  424. /package/dist/cjs/{js/src → src}/pro/coincheck.js +0 -0
  425. /package/dist/cjs/{js/src → src}/pro/coinone.js +0 -0
  426. /package/js/src/abstract/{bitpanda.js → onetrading.js} +0 -0
@@ -1,1160 +0,0 @@
1
- 'use strict';
2
-
3
- var blockchaincom$1 = require('./abstract/blockchaincom.js');
4
- var errors = require('./base/errors.js');
5
- var Precise = require('./base/Precise.js');
6
- var number = require('./base/functions/number.js');
7
-
8
- // ---------------------------------------------------------------------------
9
- // ---------------------------------------------------------------------------
10
- /**
11
- * @class blockchaincom
12
- * @augments Exchange
13
- */
14
- class blockchaincom extends blockchaincom$1 {
15
- describe() {
16
- return this.deepExtend(super.describe(), {
17
- 'id': 'blockchaincom',
18
- 'secret': undefined,
19
- 'name': 'Blockchain.com',
20
- 'countries': ['LX'],
21
- 'rateLimit': 500,
22
- 'version': 'v3',
23
- 'pro': true,
24
- 'has': {
25
- 'CORS': false,
26
- 'spot': true,
27
- 'margin': undefined,
28
- 'swap': false,
29
- 'future': false,
30
- 'option': false,
31
- 'cancelAllOrders': true,
32
- 'cancelOrder': true,
33
- 'createOrder': true,
34
- 'createStopLimitOrder': true,
35
- 'createStopMarketOrder': true,
36
- 'createStopOrder': true,
37
- 'fetchBalance': true,
38
- 'fetchCanceledOrders': true,
39
- 'fetchClosedOrders': true,
40
- 'fetchDeposit': true,
41
- 'fetchDepositAddress': true,
42
- 'fetchDeposits': true,
43
- 'fetchFundingHistory': false,
44
- 'fetchFundingRate': false,
45
- 'fetchFundingRateHistory': false,
46
- 'fetchFundingRates': false,
47
- 'fetchIndexOHLCV': false,
48
- 'fetchL2OrderBook': true,
49
- 'fetchL3OrderBook': true,
50
- 'fetchLedger': false,
51
- 'fetchMarginMode': false,
52
- 'fetchMarkets': true,
53
- 'fetchMarkOHLCV': false,
54
- 'fetchMyTrades': true,
55
- 'fetchOHLCV': false,
56
- 'fetchOpenInterestHistory': false,
57
- 'fetchOpenOrders': true,
58
- 'fetchOrder': true,
59
- 'fetchOrderBook': true,
60
- 'fetchPositionMode': false,
61
- 'fetchPremiumIndexOHLCV': false,
62
- 'fetchTicker': true,
63
- 'fetchTickers': true,
64
- 'fetchTrades': false,
65
- 'fetchTradingFee': false,
66
- 'fetchTradingFees': true,
67
- 'fetchTransfer': false,
68
- 'fetchTransfers': false,
69
- 'fetchWithdrawal': true,
70
- 'fetchWithdrawals': true,
71
- 'fetchWithdrawalWhitelist': true,
72
- 'transfer': false,
73
- 'withdraw': true,
74
- },
75
- 'timeframes': undefined,
76
- 'urls': {
77
- 'logo': 'https://user-images.githubusercontent.com/1294454/147515585-1296e91b-7398-45e5-9d32-f6121538533f.jpeg',
78
- 'test': {
79
- 'public': 'https://testnet-api.delta.exchange',
80
- 'private': 'https://testnet-api.delta.exchange',
81
- },
82
- 'api': {
83
- 'public': 'https://api.blockchain.com/v3/exchange',
84
- 'private': 'https://api.blockchain.com/v3/exchange',
85
- },
86
- 'www': 'https://blockchain.com',
87
- 'doc': [
88
- 'https://api.blockchain.com/v3',
89
- ],
90
- 'fees': 'https://exchange.blockchain.com/fees',
91
- },
92
- 'api': {
93
- 'public': {
94
- 'get': {
95
- 'tickers': 1,
96
- 'tickers/{symbol}': 1,
97
- 'symbols': 1,
98
- 'symbols/{symbol}': 1,
99
- 'l2/{symbol}': 1,
100
- 'l3/{symbol}': 1, // fetchL3OrderBook
101
- },
102
- },
103
- 'private': {
104
- 'get': {
105
- 'fees': 1,
106
- 'orders': 1,
107
- 'orders/{orderId}': 1,
108
- 'trades': 1,
109
- 'fills': 1,
110
- 'deposits': 1,
111
- 'deposits/{depositId}': 1,
112
- 'accounts': 1,
113
- 'accounts/{account}/{currency}': 1,
114
- 'whitelist': 1,
115
- 'whitelist/{currency}': 1,
116
- 'withdrawals': 1,
117
- 'withdrawals/{withdrawalId}': 1, // fetchWithdrawalById
118
- },
119
- 'post': {
120
- 'orders': 1,
121
- 'deposits/{currency}': 1,
122
- 'withdrawals': 1, // withdraw
123
- },
124
- 'delete': {
125
- 'orders': 1,
126
- 'orders/{orderId}': 1, // cancelOrder
127
- },
128
- },
129
- },
130
- 'fees': {
131
- 'trading': {
132
- 'feeSide': 'get',
133
- 'tierBased': true,
134
- 'percentage': true,
135
- 'tiers': {
136
- 'taker': [
137
- [this.parseNumber('0'), this.parseNumber('0.004')],
138
- [this.parseNumber('10000'), this.parseNumber('0.0022')],
139
- [this.parseNumber('50000'), this.parseNumber('0.002')],
140
- [this.parseNumber('100000'), this.parseNumber('0.0018')],
141
- [this.parseNumber('500000'), this.parseNumber('0.0018')],
142
- [this.parseNumber('1000000'), this.parseNumber('0.0018')],
143
- [this.parseNumber('2500000'), this.parseNumber('0.0018')],
144
- [this.parseNumber('5000000'), this.parseNumber('0.0016')],
145
- [this.parseNumber('25000000'), this.parseNumber('0.0014')],
146
- [this.parseNumber('100000000'), this.parseNumber('0.0011')],
147
- [this.parseNumber('500000000'), this.parseNumber('0.0008')],
148
- [this.parseNumber('1000000000'), this.parseNumber('0.0006')],
149
- ],
150
- 'maker': [
151
- [this.parseNumber('0'), this.parseNumber('0.002')],
152
- [this.parseNumber('10000'), this.parseNumber('0.0012')],
153
- [this.parseNumber('50000'), this.parseNumber('0.001')],
154
- [this.parseNumber('100000'), this.parseNumber('0.0008')],
155
- [this.parseNumber('500000'), this.parseNumber('0.0007000000000000001')],
156
- [this.parseNumber('1000000'), this.parseNumber('0.0006')],
157
- [this.parseNumber('2500000'), this.parseNumber('0.0005')],
158
- [this.parseNumber('5000000'), this.parseNumber('0.0004')],
159
- [this.parseNumber('25000000'), this.parseNumber('0.0003')],
160
- [this.parseNumber('100000000'), this.parseNumber('0.0002')],
161
- [this.parseNumber('500000000'), this.parseNumber('0.0001')],
162
- [this.parseNumber('1000000000'), this.parseNumber('0')],
163
- ],
164
- },
165
- },
166
- },
167
- 'requiredCredentials': {
168
- 'apiKey': false,
169
- 'secret': true,
170
- },
171
- 'options': {
172
- 'networks': {
173
- 'ERC20': 'ETH',
174
- 'TRC20': 'TRX',
175
- 'ALGO': 'ALGO',
176
- 'ADA': 'ADA',
177
- 'AR': 'AR',
178
- 'ATOM': 'ATOM',
179
- 'AVAXC': 'AVAX',
180
- 'BCH': 'BCH',
181
- 'BSV': 'BSV',
182
- 'BTC': 'BTC',
183
- // 'BEP20': 'BNB', // todo
184
- 'DCR': 'DCR',
185
- 'DESO': 'DESO',
186
- 'DASH': 'DASH',
187
- 'CELO': 'CELO',
188
- 'CHZ': 'CHZ',
189
- 'MATIC': 'MATIC',
190
- 'SOL': 'SOL',
191
- 'DOGE': 'DOGE',
192
- 'DOT': 'DOT',
193
- 'EOS': 'EOS',
194
- 'ETC': 'ETC',
195
- 'FIL': 'FIL',
196
- 'KAVA': 'KAVA',
197
- 'LTC': 'LTC',
198
- 'IOTA': 'MIOTA',
199
- 'NEAR': 'NEAR',
200
- 'STX': 'STX',
201
- 'XLM': 'XLM',
202
- 'XMR': 'XMR',
203
- 'XRP': 'XRP',
204
- 'XTZ': 'XTZ',
205
- 'ZEC': 'ZEC',
206
- 'ZIL': 'ZIL',
207
- // 'THETA': 'THETA', // todo: possible TFUEL THETA FUEL is also same, but API might have a mistake
208
- // todo: uncomment below after consensus
209
- // 'MOBILECOIN': 'MOB',
210
- // 'KIN': 'KIN',
211
- // 'DIGITALGOLD': 'DGLD',
212
- },
213
- },
214
- 'precisionMode': number.TICK_SIZE,
215
- 'exceptions': {
216
- 'exact': {
217
- '401': errors.AuthenticationError,
218
- '404': errors.OrderNotFound,
219
- },
220
- 'broad': {},
221
- },
222
- });
223
- }
224
- async fetchMarkets(params = {}) {
225
- /**
226
- * @method
227
- * @name blockchaincom#fetchMarkets
228
- * @description retrieves data on all markets for blockchaincom
229
- * @param {object} [params] extra parameters specific to the exchange API endpoint
230
- * @returns {object[]} an array of objects representing market data
231
- */
232
- //
233
- // "USDC-GBP": {
234
- // "base_currency": "USDC",
235
- // "base_currency_scale": 6,
236
- // "counter_currency": "GBP",
237
- // "counter_currency_scale": 2,
238
- // "min_price_increment": 10000,
239
- // "min_price_increment_scale": 8,
240
- // "min_order_size": 500000000,
241
- // "min_order_size_scale": 8,
242
- // "max_order_size": 0,
243
- // "max_order_size_scale": 8,
244
- // "lot_size": 10000,
245
- // "lot_size_scale": 8,
246
- // "status": "open",
247
- // "id": 68,
248
- // "auction_price": 0,
249
- // "auction_size": 0,
250
- // "auction_time": "",
251
- // "imbalance": 0
252
- // }
253
- //
254
- const markets = await this.publicGetSymbols(params);
255
- const marketIds = Object.keys(markets);
256
- const result = [];
257
- for (let i = 0; i < marketIds.length; i++) {
258
- const marketId = marketIds[i];
259
- const market = this.safeValue(markets, marketId);
260
- const baseId = this.safeString(market, 'base_currency');
261
- const quoteId = this.safeString(market, 'counter_currency');
262
- const base = this.safeCurrencyCode(baseId);
263
- const quote = this.safeCurrencyCode(quoteId);
264
- const numericId = this.safeNumber(market, 'id');
265
- let active = undefined;
266
- const marketState = this.safeString(market, 'status');
267
- if (marketState === 'open') {
268
- active = true;
269
- }
270
- else {
271
- active = false;
272
- }
273
- // price precision
274
- const minPriceIncrementString = this.safeString(market, 'min_price_increment');
275
- const minPriceIncrementScaleString = this.safeString(market, 'min_price_increment_scale');
276
- const minPriceScalePrecisionString = this.parsePrecision(minPriceIncrementScaleString);
277
- const pricePrecisionString = Precise["default"].stringMul(minPriceIncrementString, minPriceScalePrecisionString);
278
- // amount precision
279
- const lotSizeString = this.safeString(market, 'lot_size');
280
- const lotSizeScaleString = this.safeString(market, 'lot_size_scale');
281
- const lotSizeScalePrecisionString = this.parsePrecision(lotSizeScaleString);
282
- const amountPrecisionString = Precise["default"].stringMul(lotSizeString, lotSizeScalePrecisionString);
283
- // minimum order size
284
- const minOrderSizeString = this.safeString(market, 'min_order_size');
285
- const minOrderSizeScaleString = this.safeString(market, 'min_order_size_scale');
286
- const minOrderSizeScalePrecisionString = this.parsePrecision(minOrderSizeScaleString);
287
- const minOrderSizePreciseString = Precise["default"].stringMul(minOrderSizeString, minOrderSizeScalePrecisionString);
288
- const minOrderSize = this.parseNumber(minOrderSizePreciseString);
289
- // maximum order size
290
- let maxOrderSize = undefined;
291
- maxOrderSize = this.safeString(market, 'max_order_size');
292
- if (maxOrderSize !== '0') {
293
- const maxOrderSizeScaleString = this.safeString(market, 'max_order_size_scale');
294
- const maxOrderSizeScalePrecisionString = this.parsePrecision(maxOrderSizeScaleString);
295
- const maxOrderSizeString = Precise["default"].stringMul(maxOrderSize, maxOrderSizeScalePrecisionString);
296
- maxOrderSize = this.parseNumber(maxOrderSizeString);
297
- }
298
- else {
299
- maxOrderSize = undefined;
300
- }
301
- result.push({
302
- 'info': market,
303
- 'id': marketId,
304
- 'numericId': numericId,
305
- 'symbol': base + '/' + quote,
306
- 'base': base,
307
- 'quote': quote,
308
- 'settle': undefined,
309
- 'baseId': baseId,
310
- 'quoteId': quoteId,
311
- 'settleId': undefined,
312
- 'type': 'spot',
313
- 'spot': true,
314
- 'margin': false,
315
- 'swap': false,
316
- 'future': false,
317
- 'option': false,
318
- 'active': active,
319
- 'contract': false,
320
- 'linear': undefined,
321
- 'inverse': undefined,
322
- 'contractSize': undefined,
323
- 'expiry': undefined,
324
- 'expiryDatetime': undefined,
325
- 'strike': undefined,
326
- 'optionType': undefined,
327
- 'precision': {
328
- 'amount': this.parseNumber(amountPrecisionString),
329
- 'price': this.parseNumber(pricePrecisionString),
330
- },
331
- 'limits': {
332
- 'leverage': {
333
- 'min': undefined,
334
- 'max': undefined,
335
- },
336
- 'amount': {
337
- 'min': minOrderSize,
338
- 'max': maxOrderSize,
339
- },
340
- 'price': {
341
- 'min': undefined,
342
- 'max': undefined,
343
- },
344
- 'cost': {
345
- 'min': undefined,
346
- 'max': undefined,
347
- },
348
- },
349
- 'created': undefined,
350
- });
351
- }
352
- return result;
353
- }
354
- async fetchOrderBook(symbol, limit = undefined, params = {}) {
355
- /**
356
- * @method
357
- * @name blockchaincom#fetchOrderBook
358
- * @description fetches information on open orders with bid (buy) and ask (sell) prices, volumes and other data
359
- * @param {string} symbol unified symbol of the market to fetch the order book for
360
- * @param {int} [limit] the maximum amount of order book entries to return
361
- * @param {object} [params] extra parameters specific to the exchange API endpoint
362
- * @returns {object} A dictionary of [order book structures]{@link https://docs.ccxt.com/#/?id=order-book-structure} indexed by market symbols
363
- */
364
- return await this.fetchL3OrderBook(symbol, limit, params);
365
- }
366
- async fetchL3OrderBook(symbol, limit = undefined, params = {}) {
367
- /**
368
- * @method
369
- * @name blockchaincom#fetchL3OrderBook
370
- * @description fetches level 3 information on open orders with bid (buy) and ask (sell) prices, volumes and other data
371
- * @param {string} symbol unified market symbol
372
- * @param {int} [limit] max number of orders to return, default is undefined
373
- * @param {object} [params] extra parameters specific to the exchange API endpoint
374
- * @returns {object} an [order book structure]{@link https://docs.ccxt.com/#/?id=order-book-structure}
375
- */
376
- await this.loadMarkets();
377
- const market = this.market(symbol);
378
- const request = {
379
- 'symbol': market['id'],
380
- };
381
- if (limit !== undefined) {
382
- request['depth'] = limit;
383
- }
384
- const response = await this.publicGetL3Symbol(this.extend(request, params));
385
- return this.parseOrderBook(response, market['symbol'], undefined, 'bids', 'asks', 'px', 'qty');
386
- }
387
- async fetchL2OrderBook(symbol, limit = undefined, params = {}) {
388
- await this.loadMarkets();
389
- const market = this.market(symbol);
390
- const request = {
391
- 'symbol': market['id'],
392
- };
393
- if (limit !== undefined) {
394
- request['depth'] = limit;
395
- }
396
- const response = await this.publicGetL2Symbol(this.extend(request, params));
397
- return this.parseOrderBook(response, market['symbol'], undefined, 'bids', 'asks', 'px', 'qty');
398
- }
399
- parseTicker(ticker, market = undefined) {
400
- //
401
- // {
402
- // "symbol": "BTC-USD",
403
- // "price_24h": 47791.86,
404
- // "volume_24h": 362.88635738,
405
- // "last_trade_price": 47587.75
406
- // }
407
- //
408
- const marketId = this.safeString(ticker, 'symbol');
409
- const symbol = this.safeSymbol(marketId, market, '-');
410
- const last = this.safeString(ticker, 'last_trade_price');
411
- const baseVolume = this.safeString(ticker, 'volume_24h');
412
- const open = this.safeString(ticker, 'price_24h');
413
- return this.safeTicker({
414
- 'symbol': symbol,
415
- 'timestamp': undefined,
416
- 'datetime': undefined,
417
- 'high': undefined,
418
- 'low': undefined,
419
- 'bid': undefined,
420
- 'bidVolume': undefined,
421
- 'ask': undefined,
422
- 'askVolume': undefined,
423
- 'vwap': undefined,
424
- 'open': open,
425
- 'close': undefined,
426
- 'last': last,
427
- 'previousClose': undefined,
428
- 'change': undefined,
429
- 'percentage': undefined,
430
- 'average': undefined,
431
- 'baseVolume': baseVolume,
432
- 'quoteVolume': undefined,
433
- 'info': ticker,
434
- }, market);
435
- }
436
- async fetchTicker(symbol, params = {}) {
437
- /**
438
- * @method
439
- * @name blockchaincom#fetchTicker
440
- * @description fetches a price ticker, a statistical calculation with the information calculated over the past 24 hours for a specific market
441
- * @param {string} symbol unified symbol of the market to fetch the ticker for
442
- * @param {object} [params] extra parameters specific to the exchange API endpoint
443
- * @returns {object} a [ticker structure]{@link https://docs.ccxt.com/#/?id=ticker-structure}
444
- */
445
- await this.loadMarkets();
446
- const market = this.market(symbol);
447
- const request = {
448
- 'symbol': market['id'],
449
- };
450
- const response = await this.publicGetTickersSymbol(this.extend(request, params));
451
- return this.parseTicker(response, market);
452
- }
453
- async fetchTickers(symbols = undefined, params = {}) {
454
- /**
455
- * @method
456
- * @name blockchaincom#fetchTickers
457
- * @description fetches price tickers for multiple markets, statistical information calculated over the past 24 hours for each market
458
- * @param {string[]|undefined} symbols unified symbols of the markets to fetch the ticker for, all market tickers are returned if not assigned
459
- * @param {object} [params] extra parameters specific to the exchange API endpoint
460
- * @returns {object} a dictionary of [ticker structures]{@link https://docs.ccxt.com/#/?id=ticker-structure}
461
- */
462
- await this.loadMarkets();
463
- const tickers = await this.publicGetTickers(params);
464
- return this.parseTickers(tickers, symbols);
465
- }
466
- parseOrderState(state) {
467
- const states = {
468
- 'OPEN': 'open',
469
- 'REJECTED': 'rejected',
470
- 'FILLED': 'closed',
471
- 'CANCELED': 'canceled',
472
- 'PART_FILLED': 'open',
473
- 'EXPIRED': 'expired',
474
- };
475
- return this.safeString(states, state, state);
476
- }
477
- parseOrder(order, market = undefined) {
478
- //
479
- // {
480
- // "clOrdId": "00001",
481
- // "ordType": "MARKET",
482
- // "ordStatus": "FILLED",
483
- // "side": "BUY",
484
- // "symbol": "USDC-USDT",
485
- // "exOrdId": "281775861306290",
486
- // "price": null,
487
- // "text": "Fill",
488
- // "lastShares": "30.0",
489
- // "lastPx": "0.9999",
490
- // "leavesQty": "0.0",
491
- // "cumQty": "30.0",
492
- // "avgPx": "0.9999",
493
- // "timestamp": "1633940339619"
494
- // }
495
- //
496
- const clientOrderId = this.safeString(order, 'clOrdId');
497
- const type = this.safeStringLower(order, 'ordType');
498
- const statusId = this.safeString(order, 'ordStatus');
499
- const state = this.parseOrderState(statusId);
500
- const side = this.safeStringLower(order, 'side');
501
- const marketId = this.safeString(order, 'symbol');
502
- const symbol = this.safeSymbol(marketId, market, '-');
503
- const exchangeOrderId = this.safeString(order, 'exOrdId');
504
- const price = (type !== 'market') ? this.safeString(order, 'price') : undefined;
505
- const average = this.safeNumber(order, 'avgPx');
506
- const timestamp = this.safeInteger(order, 'timestamp');
507
- const datetime = this.iso8601(timestamp);
508
- const filled = this.safeString(order, 'cumQty');
509
- const remaining = this.safeString(order, 'leavesQty');
510
- const result = this.safeOrder({
511
- 'id': exchangeOrderId,
512
- 'clientOrderId': clientOrderId,
513
- 'datetime': datetime,
514
- 'timestamp': timestamp,
515
- 'lastTradeTimestamp': undefined,
516
- 'status': state,
517
- 'symbol': symbol,
518
- 'type': type,
519
- 'timeInForce': undefined,
520
- 'side': side,
521
- 'price': price,
522
- 'average': average,
523
- 'amount': undefined,
524
- 'filled': filled,
525
- 'remaining': remaining,
526
- 'cost': undefined,
527
- 'trades': [],
528
- 'fees': {},
529
- 'info': order,
530
- });
531
- return result;
532
- }
533
- async createOrder(symbol, type, side, amount, price = undefined, params = {}) {
534
- /**
535
- * @method
536
- * @name blockchaincom#createOrder
537
- * @description create a trade order
538
- * @param {string} symbol unified symbol of the market to create an order in
539
- * @param {string} type 'market' or 'limit'
540
- * @param {string} side 'buy' or 'sell'
541
- * @param {float} amount how much of currency you want to trade in units of base currency
542
- * @param {float} [price] the price at which the order is to be fullfilled, in units of the quote currency, ignored in market orders
543
- * @param {object} [params] extra parameters specific to the exchange API endpoint
544
- * @returns {object} an [order structure]{@link https://docs.ccxt.com/#/?id=order-structure}
545
- */
546
- await this.loadMarkets();
547
- const market = this.market(symbol);
548
- const orderType = this.safeString(params, 'ordType', type);
549
- const uppercaseOrderType = orderType.toUpperCase();
550
- const clientOrderId = this.safeString2(params, 'clientOrderId', 'clOrdId', this.uuid16());
551
- params = this.omit(params, ['ordType', 'clientOrderId', 'clOrdId']);
552
- const request = {
553
- // 'stopPx' : limit price
554
- // 'timeInForce' : "GTC" for Good Till Cancel, "IOC" for Immediate or Cancel, "FOK" for Fill or Kill, "GTD" Good Till Date
555
- // 'expireDate' : expiry date in the format YYYYMMDD
556
- // 'minQty' : The minimum quantity required for an IOC fill
557
- 'ordType': uppercaseOrderType,
558
- 'symbol': market['id'],
559
- 'side': side.toUpperCase(),
560
- 'orderQty': this.amountToPrecision(symbol, amount),
561
- 'clOrdId': clientOrderId,
562
- };
563
- const stopPrice = this.safeValue2(params, 'stopPx', 'stopPrice');
564
- params = this.omit(params, ['stopPx', 'stopPrice']);
565
- if (uppercaseOrderType === 'STOP' || uppercaseOrderType === 'STOPLIMIT') {
566
- if (stopPrice === undefined) {
567
- throw new errors.ArgumentsRequired(this.id + ' createOrder() requires a stopPx or stopPrice param for a ' + uppercaseOrderType + ' order');
568
- }
569
- }
570
- if (stopPrice !== undefined) {
571
- if (uppercaseOrderType === 'MARKET') {
572
- request['ordType'] = 'STOP';
573
- }
574
- else if (uppercaseOrderType === 'LIMIT') {
575
- request['ordType'] = 'STOPLIMIT';
576
- }
577
- }
578
- let priceRequired = false;
579
- let stopPriceRequired = false;
580
- if (request['ordType'] === 'LIMIT' || request['ordType'] === 'STOPLIMIT') {
581
- priceRequired = true;
582
- }
583
- if (request['ordType'] === 'STOP' || request['ordType'] === 'STOPLIMIT') {
584
- stopPriceRequired = true;
585
- }
586
- if (priceRequired) {
587
- request['price'] = this.priceToPrecision(symbol, price);
588
- }
589
- if (stopPriceRequired) {
590
- request['stopPx'] = this.priceToPrecision(symbol, stopPrice);
591
- }
592
- const response = await this.privatePostOrders(this.extend(request, params));
593
- return this.parseOrder(response, market);
594
- }
595
- async cancelOrder(id, symbol = undefined, params = {}) {
596
- /**
597
- * @method
598
- * @name blockchaincom#cancelOrder
599
- * @description cancels an open order
600
- * @param {string} id order id
601
- * @param {string} symbol unified symbol of the market the order was made in
602
- * @param {object} [params] extra parameters specific to the exchange API endpoint
603
- * @returns {object} An [order structure]{@link https://docs.ccxt.com/#/?id=order-structure}
604
- */
605
- const request = {
606
- 'orderId': id,
607
- };
608
- const response = await this.privateDeleteOrdersOrderId(this.extend(request, params));
609
- return {
610
- 'id': id,
611
- 'info': response,
612
- };
613
- }
614
- async cancelAllOrders(symbol = undefined, params = {}) {
615
- /**
616
- * @method
617
- * @name blockchaincom#cancelAllOrders
618
- * @description cancel all open orders
619
- * @param {string} symbol unified market symbol of the market to cancel orders in, all markets are used if undefined, default is undefined
620
- * @param {object} [params] extra parameters specific to the exchange API endpoint
621
- * @returns {object} an list of [order structures]{@link https://docs.ccxt.com/#/?id=order-structure}
622
- */
623
- // cancels all open orders if no symbol specified
624
- // cancels all open orders of specified symbol, if symbol is specified
625
- await this.loadMarkets();
626
- const request = {
627
- // 'symbol': marketId,
628
- };
629
- if (symbol !== undefined) {
630
- const marketId = this.marketId(symbol);
631
- request['symbol'] = marketId;
632
- }
633
- const response = await this.privateDeleteOrders(this.extend(request, params));
634
- return {
635
- 'symbol': symbol,
636
- 'info': response,
637
- };
638
- }
639
- async fetchTradingFees(params = {}) {
640
- /**
641
- * @method
642
- * @name blockchaincom#fetchTradingFees
643
- * @description fetch the trading fees for multiple markets
644
- * @param {object} [params] extra parameters specific to the exchange API endpoint
645
- * @returns {object} a dictionary of [fee structures]{@link https://docs.ccxt.com/#/?id=fee-structure} indexed by market symbols
646
- */
647
- await this.loadMarkets();
648
- const response = await this.privateGetFees(params);
649
- //
650
- // {
651
- // "makerRate": "0.002",
652
- // "takerRate": "0.004",
653
- // "volumeInUSD": "0.0"
654
- // }
655
- //
656
- const makerFee = this.safeNumber(response, 'makerRate');
657
- const takerFee = this.safeNumber(response, 'takerRate');
658
- const result = {};
659
- for (let i = 0; i < this.symbols.length; i++) {
660
- const symbol = this.symbols[i];
661
- result[symbol] = {
662
- 'info': response,
663
- 'symbol': symbol,
664
- 'maker': makerFee,
665
- 'taker': takerFee,
666
- };
667
- }
668
- return result;
669
- }
670
- async fetchCanceledOrders(symbol = undefined, since = undefined, limit = undefined, params = {}) {
671
- /**
672
- * @method
673
- * @name blockchaincom#fetchCanceledOrders
674
- * @description fetches information on multiple canceled orders made by the user
675
- * @param {string} symbol unified market symbol of the market orders were made in
676
- * @param {int} [since] timestamp in ms of the earliest order, default is undefined
677
- * @param {int} [limit] max number of orders to return, default is undefined
678
- * @param {object} [params] extra parameters specific to the exchange API endpoint
679
- * @returns {object} a list of [order structures]{@link https://docs.ccxt.com/#/?id=order-structure}
680
- */
681
- const state = 'CANCELED';
682
- return await this.fetchOrdersByState(state, symbol, since, limit, params);
683
- }
684
- async fetchClosedOrders(symbol = undefined, since = undefined, limit = undefined, params = {}) {
685
- /**
686
- * @method
687
- * @name blockchaincom#fetchClosedOrders
688
- * @description fetches information on multiple closed orders made by the user
689
- * @param {string} symbol unified market symbol of the market orders were made in
690
- * @param {int} [since] the earliest time in ms to fetch orders for
691
- * @param {int} [limit] the maximum number of order structures to retrieve
692
- * @param {object} [params] extra parameters specific to the exchange API endpoint
693
- * @returns {Order[]} a list of [order structures]{@link https://docs.ccxt.com/#/?id=order-structure}
694
- */
695
- const state = 'FILLED';
696
- return await this.fetchOrdersByState(state, symbol, since, limit, params);
697
- }
698
- async fetchOpenOrders(symbol = undefined, since = undefined, limit = undefined, params = {}) {
699
- /**
700
- * @method
701
- * @name blockchaincom#fetchOpenOrders
702
- * @description fetch all unfilled currently open orders
703
- * @param {string} symbol unified market symbol
704
- * @param {int} [since] the earliest time in ms to fetch open orders for
705
- * @param {int} [limit] the maximum number of open orders structures to retrieve
706
- * @param {object} [params] extra parameters specific to the exchange API endpoint
707
- * @returns {Order[]} a list of [order structures]{@link https://docs.ccxt.com/#/?id=order-structure}
708
- */
709
- const state = 'OPEN';
710
- return await this.fetchOrdersByState(state, symbol, since, limit, params);
711
- }
712
- async fetchOrdersByState(state, symbol = undefined, since = undefined, limit = undefined, params = {}) {
713
- await this.loadMarkets();
714
- const request = {
715
- // 'to': unix epoch ms
716
- // 'from': unix epoch ms
717
- 'status': state,
718
- 'limit': 100,
719
- };
720
- let market = undefined;
721
- if (symbol !== undefined) {
722
- market = this.market(symbol);
723
- request['symbol'] = market['id'];
724
- }
725
- const response = await this.privateGetOrders(this.extend(request, params));
726
- return this.parseOrders(response, market, since, limit);
727
- }
728
- parseTrade(trade, market = undefined) {
729
- //
730
- // {
731
- // "exOrdId":281685751028507,
732
- // "tradeId":281685434947633,
733
- // "execId":8847494003,
734
- // "side":"BUY",
735
- // "symbol":"AAVE-USDT",
736
- // "price":405.34,
737
- // "qty":0.1,
738
- // "fee":0.162136,
739
- // "timestamp":1634559249687
740
- // }
741
- //
742
- const orderId = this.safeString(trade, 'exOrdId');
743
- const tradeId = this.safeString(trade, 'tradeId');
744
- const side = this.safeString(trade, 'side').toLowerCase();
745
- const marketId = this.safeString(trade, 'symbol');
746
- const priceString = this.safeString(trade, 'price');
747
- const amountString = this.safeString(trade, 'qty');
748
- const timestamp = this.safeInteger(trade, 'timestamp');
749
- const datetime = this.iso8601(timestamp);
750
- market = this.safeMarket(marketId, market, '-');
751
- const symbol = market['symbol'];
752
- let fee = undefined;
753
- const feeCostString = this.safeString(trade, 'fee');
754
- if (feeCostString !== undefined) {
755
- const feeCurrency = market['quote'];
756
- fee = { 'cost': feeCostString, 'currency': feeCurrency };
757
- }
758
- return this.safeTrade({
759
- 'id': tradeId,
760
- 'timestamp': timestamp,
761
- 'datetime': datetime,
762
- 'symbol': symbol,
763
- 'order': orderId,
764
- 'type': undefined,
765
- 'side': side,
766
- 'takerOrMaker': undefined,
767
- 'price': priceString,
768
- 'amount': amountString,
769
- 'cost': undefined,
770
- 'fee': fee,
771
- 'info': trade,
772
- }, market);
773
- }
774
- async fetchMyTrades(symbol = undefined, since = undefined, limit = undefined, params = {}) {
775
- /**
776
- * @method
777
- * @name blockchaincom#fetchMyTrades
778
- * @description fetch all trades made by the user
779
- * @param {string} symbol unified market symbol
780
- * @param {int} [since] the earliest time in ms to fetch trades for
781
- * @param {int} [limit] the maximum number of trades structures to retrieve
782
- * @param {object} [params] extra parameters specific to the exchange API endpoint
783
- * @returns {Trade[]} a list of [trade structures]{@link https://docs.ccxt.com/#/?id=trade-structure}
784
- */
785
- await this.loadMarkets();
786
- const request = {};
787
- if (limit !== undefined) {
788
- request['limit'] = limit;
789
- }
790
- let market = undefined;
791
- if (symbol !== undefined) {
792
- request['symbol'] = this.marketId(symbol);
793
- market = this.market(symbol);
794
- }
795
- const trades = await this.privateGetFills(this.extend(request, params));
796
- return this.parseTrades(trades, market, since, limit, params); // need to define
797
- }
798
- async fetchDepositAddress(code, params = {}) {
799
- /**
800
- * @method
801
- * @name blockchaincom#fetchDepositAddress
802
- * @description fetch the deposit address for a currency associated with this account
803
- * @param {string} code unified currency code
804
- * @param {object} [params] extra parameters specific to the exchange API endpoint
805
- * @returns {object} an [address structure]{@link https://docs.ccxt.com/#/?id=address-structure}
806
- */
807
- await this.loadMarkets();
808
- const currency = this.currency(code);
809
- const request = {
810
- 'currency': currency['id'],
811
- };
812
- const response = await this.privatePostDepositsCurrency(this.extend(request, params));
813
- const rawAddress = this.safeString(response, 'address');
814
- let tag = undefined;
815
- let address = undefined;
816
- if (rawAddress !== undefined) {
817
- // if a tag or memo is used it is separated by a colon in the 'address' value
818
- [address, tag] = rawAddress.split(':');
819
- }
820
- const result = { 'info': response };
821
- result['currency'] = currency['code'];
822
- result['address'] = address;
823
- if (tag !== undefined) {
824
- result['tag'] = tag;
825
- }
826
- return result;
827
- }
828
- parseTransactionState(state) {
829
- const states = {
830
- 'COMPLETED': 'ok',
831
- 'REJECTED': 'failed',
832
- 'PENDING': 'pending',
833
- 'FAILED': 'failed',
834
- 'REFUNDED': 'refunded',
835
- };
836
- return this.safeString(states, state, state);
837
- }
838
- parseTransaction(transaction, currency = undefined) {
839
- //
840
- // deposit
841
- //
842
- // {
843
- // "depositId":"748e9180-be0d-4a80-e175-0156150efc95",
844
- // "amount":0.009,
845
- // "currency":"ETH",
846
- // "address":"0xEC6B5929D454C8D9546d4221ace969E1810Fa92c",
847
- // "state":"COMPLETED",
848
- // "txHash":"582114562140e51a80b481c2dfebaf62b4ab9769b8ff54820bb67e34d4a3ab0c",
849
- // "timestamp":1633697196241
850
- // }
851
- //
852
- // withdrawal
853
- //
854
- // {
855
- // "amount":30.0,
856
- // "currency":"USDT",
857
- // "beneficiary":"cab00d11-6e7f-46b7-b453-2e8ef6f101fa", // blockchain specific id
858
- // "withdrawalId":"99df5ef7-eab6-4033-be49-312930fbd1ea",
859
- // "fee":34.005078,
860
- // "state":"COMPLETED",
861
- // "timestamp":1634218452549
862
- // }
863
- //
864
- let type = undefined;
865
- let id = undefined;
866
- const amount = this.safeNumber(transaction, 'amount');
867
- const timestamp = this.safeInteger(transaction, 'timestamp');
868
- const currencyId = this.safeString(transaction, 'currency');
869
- const code = this.safeCurrencyCode(currencyId, currency);
870
- const state = this.safeString(transaction, 'state');
871
- if ('depositId' in transaction) {
872
- type = 'deposit';
873
- id = this.safeString(transaction, 'depositId');
874
- }
875
- else if ('withdrawalId' in transaction) {
876
- type = 'withdrawal';
877
- id = this.safeString(transaction, 'withdrawalId');
878
- }
879
- const feeCost = (type === 'withdrawal') ? this.safeNumber(transaction, 'fee') : undefined;
880
- let fee = undefined;
881
- if (feeCost !== undefined) {
882
- fee = { 'currency': code, 'cost': feeCost };
883
- }
884
- const address = this.safeString(transaction, 'address');
885
- const txid = this.safeString(transaction, 'txhash');
886
- return {
887
- 'info': transaction,
888
- 'id': id,
889
- 'txid': txid,
890
- 'timestamp': timestamp,
891
- 'datetime': this.iso8601(timestamp),
892
- 'network': undefined,
893
- 'addressFrom': undefined,
894
- 'address': address,
895
- 'addressTo': address,
896
- 'tagFrom': undefined,
897
- 'tag': undefined,
898
- 'tagTo': undefined,
899
- 'type': type,
900
- 'amount': amount,
901
- 'currency': code,
902
- 'status': this.parseTransactionState(state),
903
- 'updated': undefined,
904
- 'comment': undefined,
905
- 'internal': undefined,
906
- 'fee': fee,
907
- };
908
- }
909
- async withdraw(code, amount, address, tag = undefined, params = {}) {
910
- /**
911
- * @method
912
- * @name blockchaincom#withdraw
913
- * @description make a withdrawal
914
- * @param {string} code unified currency code
915
- * @param {float} amount the amount to withdraw
916
- * @param {string} address the address to withdraw to
917
- * @param {string} tag
918
- * @param {object} [params] extra parameters specific to the exchange API endpoint
919
- * @returns {object} a [transaction structure]{@link https://docs.ccxt.com/#/?id=transaction-structure}
920
- */
921
- await this.loadMarkets();
922
- const currency = this.currency(code);
923
- const request = {
924
- 'amount': amount,
925
- 'currency': currency['id'],
926
- 'beneficiary': address,
927
- 'sendMax': false,
928
- };
929
- const response = await this.privatePostWithdrawals(this.extend(request, params));
930
- //
931
- // {
932
- // "amount": "30.0",
933
- // "currency": "USDT",
934
- // "beneficiary": "adcd43fb-9ba6-41f7-8c0d-7013482cb88f",
935
- // "withdrawalId": "99df5ef7-eab6-4033-be49-312930fbd1ea",
936
- // "fee": "34.005078",
937
- // "state": "PENDING",
938
- // "timestamp": "1634218452595"
939
- // },
940
- //
941
- return this.parseTransaction(response, currency);
942
- }
943
- async fetchWithdrawals(code = undefined, since = undefined, limit = undefined, params = {}) {
944
- /**
945
- * @method
946
- * @name blockchaincom#fetchWithdrawals
947
- * @description fetch all withdrawals made from an account
948
- * @param {string} code unified currency code
949
- * @param {int} [since] the earliest time in ms to fetch withdrawals for
950
- * @param {int} [limit] the maximum number of withdrawals structures to retrieve
951
- * @param {object} [params] extra parameters specific to the exchange API endpoint
952
- * @returns {object[]} a list of [transaction structures]{@link https://docs.ccxt.com/#/?id=transaction-structure}
953
- */
954
- await this.loadMarkets();
955
- const request = {
956
- // 'from' : integer timestamp in ms
957
- // 'to' : integer timestamp in ms
958
- };
959
- if (since !== undefined) {
960
- request['from'] = since;
961
- }
962
- let currency = undefined;
963
- if (code !== undefined) {
964
- currency = this.currency(code);
965
- }
966
- const response = await this.privateGetWithdrawals(this.extend(request, params));
967
- return this.parseTransactions(response, currency, since, limit);
968
- }
969
- async fetchWithdrawal(id, code = undefined, params = {}) {
970
- /**
971
- * @method
972
- * @name blockchaincom#fetchWithdrawal
973
- * @description fetch data on a currency withdrawal via the withdrawal id
974
- * @param {string} id withdrawal id
975
- * @param {string} code not used by blockchaincom.fetchWithdrawal
976
- * @param {object} [params] extra parameters specific to the exchange API endpoint
977
- * @returns {object} a [transaction structure]{@link https://docs.ccxt.com/#/?id=transaction-structure}
978
- */
979
- await this.loadMarkets();
980
- const request = {
981
- 'withdrawalId': id,
982
- };
983
- const response = await this.privateGetWithdrawalsWithdrawalId(this.extend(request, params));
984
- return this.parseTransaction(response);
985
- }
986
- async fetchDeposits(code = undefined, since = undefined, limit = undefined, params = {}) {
987
- /**
988
- * @method
989
- * @name blockchaincom#fetchDeposits
990
- * @description fetch all deposits made to an account
991
- * @param {string} code unified currency code
992
- * @param {int} [since] the earliest time in ms to fetch deposits for
993
- * @param {int} [limit] the maximum number of deposits structures to retrieve
994
- * @param {object} [params] extra parameters specific to the exchange API endpoint
995
- * @returns {object[]} a list of [transaction structures]{@link https://docs.ccxt.com/#/?id=transaction-structure}
996
- */
997
- await this.loadMarkets();
998
- const request = {
999
- // 'from' : integer timestamp in ms
1000
- // 'to' : integer timestap in ms
1001
- };
1002
- if (since !== undefined) {
1003
- request['from'] = since;
1004
- }
1005
- let currency = undefined;
1006
- if (code !== undefined) {
1007
- currency = this.currency(code);
1008
- }
1009
- const response = await this.privateGetDeposits(this.extend(request, params));
1010
- return this.parseTransactions(response, currency, since, limit);
1011
- }
1012
- async fetchDeposit(id, code = undefined, params = {}) {
1013
- /**
1014
- * @method
1015
- * @name blockchaincom#fetchDeposit
1016
- * @description fetch information on a deposit
1017
- * @param {string} id deposit id
1018
- * @param {string} code not used by blockchaincom fetchDeposit ()
1019
- * @param {object} [params] extra parameters specific to the exchange API endpoint
1020
- * @returns {object} a [transaction structure]{@link https://docs.ccxt.com/#/?id=transaction-structure}
1021
- */
1022
- await this.loadMarkets();
1023
- const depositId = this.safeString(params, 'depositId', id);
1024
- const request = {
1025
- 'depositId': depositId,
1026
- };
1027
- const deposit = await this.privateGetDepositsDepositId(this.extend(request, params));
1028
- return this.parseTransaction(deposit);
1029
- }
1030
- async fetchBalance(params = {}) {
1031
- /**
1032
- * @method
1033
- * @name blockchaincom#fetchBalance
1034
- * @description query for balance and get the amount of funds available for trading or funds locked in orders
1035
- * @param {object} [params] extra parameters specific to the exchange API endpoint
1036
- * @returns {object} a [balance structure]{@link https://docs.ccxt.com/#/?id=balance-structure}
1037
- */
1038
- await this.loadMarkets();
1039
- const accountName = this.safeString(params, 'account', 'primary');
1040
- params = this.omit(params, 'account');
1041
- const request = {
1042
- 'account': accountName,
1043
- };
1044
- const response = await this.privateGetAccounts(this.extend(request, params));
1045
- //
1046
- // {
1047
- // "primary": [
1048
- // {
1049
- // "currency":"ETH",
1050
- // "balance":0.009,
1051
- // "available":0.009,
1052
- // "balance_local":30.82869,
1053
- // "available_local":30.82869,
1054
- // "rate":3425.41
1055
- // },
1056
- // ...
1057
- // ]
1058
- // }
1059
- //
1060
- const balances = this.safeValue(response, accountName);
1061
- if (balances === undefined) {
1062
- throw new errors.ExchangeError(this.id + ' fetchBalance() could not find the "' + accountName + '" account');
1063
- }
1064
- const result = { 'info': response };
1065
- for (let i = 0; i < balances.length; i++) {
1066
- const entry = balances[i];
1067
- const currencyId = this.safeString(entry, 'currency');
1068
- const code = this.safeCurrencyCode(currencyId);
1069
- const account = this.account();
1070
- account['free'] = this.safeString(entry, 'available');
1071
- account['total'] = this.safeString(entry, 'balance');
1072
- result[code] = account;
1073
- }
1074
- return this.safeBalance(result);
1075
- }
1076
- async fetchOrder(id, symbol = undefined, params = {}) {
1077
- /**
1078
- * @method
1079
- * @name blockchaincom#fetchOrder
1080
- * @description fetches information on an order made by the user
1081
- * @param {string} symbol not used by blockchaincom fetchOrder
1082
- * @param {object} [params] extra parameters specific to the exchange API endpoint
1083
- * @returns {object} An [order structure]{@link https://docs.ccxt.com/#/?id=order-structure}
1084
- */
1085
- // note: only works with exchange-order-id
1086
- // does not work with clientOrderId
1087
- await this.loadMarkets();
1088
- const request = {
1089
- 'orderId': id,
1090
- };
1091
- const response = await this.privateGetOrdersOrderId(this.extend(request, params));
1092
- //
1093
- // {
1094
- // "exOrdId": 11111111,
1095
- // "clOrdId": "ABC",
1096
- // "ordType": "MARKET",
1097
- // "ordStatus": "FILLED",
1098
- // "side": "BUY",
1099
- // "price": 0.12345,
1100
- // "text": "string",
1101
- // "symbol": "BTC-USD",
1102
- // "lastShares": 0.5678,
1103
- // "lastPx": 3500.12,
1104
- // "leavesQty": 10,
1105
- // "cumQty": 0.123345,
1106
- // "avgPx": 345.33,
1107
- // "timestamp": 1592830770594
1108
- // }
1109
- //
1110
- return this.parseOrder(response);
1111
- }
1112
- sign(path, api = 'public', method = 'GET', params = {}, headers = undefined, body = undefined) {
1113
- const requestPath = '/' + this.implodeParams(path, params);
1114
- let url = this.urls['api'][api] + requestPath;
1115
- const query = this.omit(params, this.extractParams(path));
1116
- if (api === 'public') {
1117
- if (Object.keys(query).length) {
1118
- url += '?' + this.urlencode(query);
1119
- }
1120
- }
1121
- else if (api === 'private') {
1122
- this.checkRequiredCredentials();
1123
- headers = {
1124
- 'X-API-Token': this.secret,
1125
- };
1126
- if ((method === 'GET')) {
1127
- if (Object.keys(query).length) {
1128
- url += '?' + this.urlencode(query);
1129
- }
1130
- }
1131
- else {
1132
- body = this.json(query);
1133
- headers['Content-Type'] = 'application/json';
1134
- }
1135
- }
1136
- return { 'url': url, 'method': method, 'body': body, 'headers': headers };
1137
- }
1138
- handleErrors(code, reason, url, method, headers, body, response, requestHeaders, requestBody) {
1139
- // {"timestamp":"2021-10-21T15:13:58.837+00:00","status":404,"error":"Not Found","message":"","path":"/orders/505050"
1140
- if (response === undefined) {
1141
- return undefined;
1142
- }
1143
- const text = this.safeString(response, 'text');
1144
- if (text !== undefined) { // if trade currency account is empty returns 200 with rejected order
1145
- if (text === 'Insufficient Balance') {
1146
- throw new errors.InsufficientFunds(this.id + ' ' + body);
1147
- }
1148
- }
1149
- const errorCode = this.safeString(response, 'status');
1150
- const errorMessage = this.safeString(response, 'error');
1151
- if (code !== undefined) {
1152
- const feedback = this.id + ' ' + this.json(response);
1153
- this.throwExactlyMatchedException(this.exceptions['exact'], errorCode, feedback);
1154
- this.throwBroadlyMatchedException(this.exceptions['broad'], errorMessage, feedback);
1155
- }
1156
- return undefined;
1157
- }
1158
- }
1159
-
1160
- module.exports = blockchaincom;