ccxt 4.5.57 → 4.5.58

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 (987) hide show
  1. package/README.md +5 -8
  2. package/dist/ccxt.browser.min.js +35 -15
  3. package/dist/cjs/ccxt.js +1 -12
  4. package/dist/cjs/src/abstract/aftermath.js +1 -1
  5. package/dist/cjs/src/abstract/alpaca.js +1 -1
  6. package/dist/cjs/src/abstract/apex.js +1 -1
  7. package/dist/cjs/src/abstract/ascendex.js +1 -1
  8. package/dist/cjs/src/abstract/aster.js +1 -1
  9. package/dist/cjs/src/abstract/backpack.js +1 -1
  10. package/dist/cjs/src/abstract/bigone.js +1 -1
  11. package/dist/cjs/src/abstract/binance.js +1 -1
  12. package/dist/cjs/src/abstract/bingx.js +1 -1
  13. package/dist/cjs/src/abstract/bit2c.js +1 -1
  14. package/dist/cjs/src/abstract/bitbank.js +1 -1
  15. package/dist/cjs/src/abstract/bitbns.js +1 -1
  16. package/dist/cjs/src/abstract/bitfinex.js +1 -1
  17. package/dist/cjs/src/abstract/bitflyer.js +1 -1
  18. package/dist/cjs/src/abstract/bitget.js +1 -1
  19. package/dist/cjs/src/abstract/bithumb.js +1 -1
  20. package/dist/cjs/src/abstract/bitmart.js +1 -1
  21. package/dist/cjs/src/abstract/bitmex.js +1 -1
  22. package/dist/cjs/src/abstract/bitopro.js +1 -1
  23. package/dist/cjs/src/abstract/bitrue.js +1 -1
  24. package/dist/cjs/src/abstract/bitso.js +1 -1
  25. package/dist/cjs/src/abstract/bitstamp.js +1 -1
  26. package/dist/cjs/src/abstract/bitteam.js +1 -1
  27. package/dist/cjs/src/abstract/bittrade.js +1 -1
  28. package/dist/cjs/src/abstract/bitvavo.js +1 -1
  29. package/dist/cjs/src/abstract/blockchaincom.js +1 -1
  30. package/dist/cjs/src/abstract/blofin.js +1 -1
  31. package/dist/cjs/src/abstract/btcbox.js +1 -1
  32. package/dist/cjs/src/abstract/btcmarkets.js +1 -1
  33. package/dist/cjs/src/abstract/btcturk.js +1 -1
  34. package/dist/cjs/src/abstract/bullish.js +1 -1
  35. package/dist/cjs/src/abstract/bybit.js +1 -1
  36. package/dist/cjs/src/abstract/bydfi.js +1 -1
  37. package/dist/cjs/src/abstract/cex.js +1 -1
  38. package/dist/cjs/src/abstract/coinbase.js +1 -1
  39. package/dist/cjs/src/abstract/coinbaseexchange.js +1 -1
  40. package/dist/cjs/src/abstract/coinbaseinternational.js +1 -1
  41. package/dist/cjs/src/abstract/coincheck.js +1 -1
  42. package/dist/cjs/src/abstract/coinex.js +1 -1
  43. package/dist/cjs/src/abstract/coinmate.js +1 -1
  44. package/dist/cjs/src/abstract/coinmetro.js +1 -1
  45. package/dist/cjs/src/abstract/coinone.js +1 -1
  46. package/dist/cjs/src/abstract/coinsph.js +1 -1
  47. package/dist/cjs/src/abstract/coinspot.js +1 -1
  48. package/dist/cjs/src/abstract/cryptocom.js +1 -1
  49. package/dist/cjs/src/abstract/cryptomus.js +1 -1
  50. package/dist/cjs/src/abstract/deepcoin.js +1 -1
  51. package/dist/cjs/src/abstract/delta.js +1 -1
  52. package/dist/cjs/src/abstract/deribit.js +1 -1
  53. package/dist/cjs/src/abstract/derive.js +1 -1
  54. package/dist/cjs/src/abstract/digifinex.js +1 -1
  55. package/dist/cjs/src/abstract/dydx.js +1 -1
  56. package/dist/cjs/src/abstract/exmo.js +1 -1
  57. package/dist/cjs/src/abstract/extended.js +1 -1
  58. package/dist/cjs/src/abstract/foxbit.js +1 -1
  59. package/dist/cjs/src/abstract/gate.js +1 -1
  60. package/dist/cjs/src/abstract/gemini.js +1 -1
  61. package/dist/cjs/src/abstract/grvt.js +1 -1
  62. package/dist/cjs/src/abstract/hashkey.js +1 -1
  63. package/dist/cjs/src/abstract/hibachi.js +1 -1
  64. package/dist/cjs/src/abstract/hitbtc.js +1 -1
  65. package/dist/cjs/src/abstract/hollaex.js +1 -1
  66. package/dist/cjs/src/abstract/htx.js +1 -1
  67. package/dist/cjs/src/abstract/hyperliquid.js +1 -1
  68. package/dist/cjs/src/abstract/independentreserve.js +1 -1
  69. package/dist/cjs/src/abstract/indodax.js +1 -1
  70. package/dist/cjs/src/abstract/kraken.js +1 -1
  71. package/dist/cjs/src/abstract/krakenfutures.js +1 -1
  72. package/dist/cjs/src/abstract/kucoin.js +1 -1
  73. package/dist/cjs/src/abstract/latoken.js +1 -1
  74. package/dist/cjs/src/abstract/lbank.js +1 -1
  75. package/dist/cjs/src/abstract/lighter.js +1 -1
  76. package/dist/cjs/src/abstract/luno.js +1 -1
  77. package/dist/cjs/src/abstract/mercado.js +1 -1
  78. package/dist/cjs/src/abstract/mexc.js +1 -1
  79. package/dist/cjs/src/abstract/modetrade.js +1 -1
  80. package/dist/cjs/src/abstract/ndax.js +1 -1
  81. package/dist/cjs/src/abstract/novadax.js +1 -1
  82. package/dist/cjs/src/abstract/okx.js +1 -1
  83. package/dist/cjs/src/abstract/onetrading.js +1 -1
  84. package/dist/cjs/src/abstract/p2b.js +1 -1
  85. package/dist/cjs/src/abstract/pacifica.js +1 -1
  86. package/dist/cjs/src/abstract/paradex.js +1 -1
  87. package/dist/cjs/src/abstract/paymium.js +1 -1
  88. package/dist/cjs/src/abstract/phemex.js +1 -1
  89. package/dist/cjs/src/abstract/poloniex.js +1 -1
  90. package/dist/cjs/src/abstract/tokocrypto.js +1 -1
  91. package/dist/cjs/src/abstract/toobit.js +1 -1
  92. package/dist/cjs/src/abstract/upbit.js +1 -1
  93. package/dist/cjs/src/abstract/weex.js +1 -1
  94. package/dist/cjs/src/abstract/whitebit.js +1 -1
  95. package/dist/cjs/src/abstract/woo.js +1 -1
  96. package/dist/cjs/src/abstract/woofipro.js +1 -1
  97. package/dist/cjs/src/abstract/xt.js +1 -1
  98. package/dist/cjs/src/abstract/zaif.js +1 -1
  99. package/dist/cjs/src/abstract/zebpay.js +1 -1
  100. package/dist/cjs/src/aftermath.js +1 -0
  101. package/dist/cjs/src/alpaca.js +1 -1
  102. package/dist/cjs/src/apex.js +1 -1
  103. package/dist/cjs/src/ascendex.js +1 -1
  104. package/dist/cjs/src/aster.js +1 -1
  105. package/dist/cjs/src/backpack.js +11 -3
  106. package/dist/cjs/src/base/Precise.js +7 -7
  107. package/dist/cjs/src/base/errors.js +6 -0
  108. package/dist/cjs/src/base/functions/crypto.js +1 -1
  109. package/dist/cjs/src/base/functions/encode.js +1 -1
  110. package/dist/cjs/src/base/functions/io.js +1 -1
  111. package/dist/cjs/src/base/functions/misc.js +1 -0
  112. package/dist/cjs/src/base/functions/number.js +6 -0
  113. package/dist/cjs/src/base/functions/platform.js +6 -0
  114. package/dist/cjs/src/base/functions/rsa.js +1 -0
  115. package/dist/cjs/src/base/functions/string.js +6 -0
  116. package/dist/cjs/src/base/functions/throttle.js +1 -1
  117. package/dist/cjs/src/base/functions/time.js +6 -0
  118. package/dist/cjs/src/base/functions/totp.js +1 -0
  119. package/dist/cjs/src/base/functions/type.js +6 -0
  120. package/dist/cjs/src/base/functions.js +1 -1
  121. package/dist/cjs/src/base/ws/Cache.js +6 -0
  122. package/dist/cjs/src/base/ws/Client.js +1 -0
  123. package/dist/cjs/src/base/ws/Future.js +3 -7
  124. package/dist/cjs/src/base/ws/OrderBook.js +1 -1
  125. package/dist/cjs/src/base/ws/OrderBookSide.js +6 -0
  126. package/dist/cjs/src/base/ws/WsClient.js +5 -1
  127. package/dist/cjs/src/bequant.js +1 -1
  128. package/dist/cjs/src/bigone.js +1 -1
  129. package/dist/cjs/src/binance.js +1 -1
  130. package/dist/cjs/src/binancecoinm.js +1 -1
  131. package/dist/cjs/src/binanceus.js +1 -1
  132. package/dist/cjs/src/binanceusdm.js +1 -1
  133. package/dist/cjs/src/bingx.js +1 -1
  134. package/dist/cjs/src/bit2c.js +1 -1
  135. package/dist/cjs/src/bitbank.js +1 -1
  136. package/dist/cjs/src/bitbns.js +1 -1
  137. package/dist/cjs/src/bitfinex.js +1 -1
  138. package/dist/cjs/src/bitflyer.js +1 -1
  139. package/dist/cjs/src/bitget.js +1 -1
  140. package/dist/cjs/src/bithumb.js +1 -1
  141. package/dist/cjs/src/bitmart.js +1 -1
  142. package/dist/cjs/src/bitmex.js +1 -1
  143. package/dist/cjs/src/bitopro.js +1 -1
  144. package/dist/cjs/src/bitrue.js +1 -1
  145. package/dist/cjs/src/bitso.js +1 -1
  146. package/dist/cjs/src/bitstamp.js +1 -1
  147. package/dist/cjs/src/bitteam.js +1 -1
  148. package/dist/cjs/src/bittrade.js +1 -1
  149. package/dist/cjs/src/blockchaincom.js +1 -1
  150. package/dist/cjs/src/blofin.js +1 -1
  151. package/dist/cjs/src/btcbox.js +2 -2
  152. package/dist/cjs/src/btcmarkets.js +1 -1
  153. package/dist/cjs/src/btcturk.js +1 -1
  154. package/dist/cjs/src/bullish.js +1 -1
  155. package/dist/cjs/src/bybit.js +1 -1
  156. package/dist/cjs/src/bybiteu.js +1 -1
  157. package/dist/cjs/src/bydfi.js +1 -1
  158. package/dist/cjs/src/cex.js +1 -1
  159. package/dist/cjs/src/coinbaseadvanced.js +1 -1
  160. package/dist/cjs/src/coincheck.js +1 -1
  161. package/dist/cjs/src/coinex.js +1 -1
  162. package/dist/cjs/src/coinmate.js +1 -1
  163. package/dist/cjs/src/coinmetro.js +1 -1
  164. package/dist/cjs/src/coinone.js +1 -1
  165. package/dist/cjs/src/coinsph.js +1 -0
  166. package/dist/cjs/src/coinspot.js +1 -1
  167. package/dist/cjs/src/cryptocom.js +2 -2
  168. package/dist/cjs/src/cryptomus.js +1 -1
  169. package/dist/cjs/src/deepcoin.js +2 -2
  170. package/dist/cjs/src/delta.js +1 -1
  171. package/dist/cjs/src/deribit.js +1 -1
  172. package/dist/cjs/src/derive.js +1 -1
  173. package/dist/cjs/src/digifinex.js +1 -1
  174. package/dist/cjs/src/dydx.js +1 -1
  175. package/dist/cjs/src/exmo.js +1 -1
  176. package/dist/cjs/src/extended.js +1 -1
  177. package/dist/cjs/src/fmfwio.js +1 -1
  178. package/dist/cjs/src/foxbit.js +1 -1
  179. package/dist/cjs/src/gate.js +1 -1
  180. package/dist/cjs/src/gemini.js +1 -1
  181. package/dist/cjs/src/grvt.js +1 -1
  182. package/dist/cjs/src/hashkey.js +1 -1
  183. package/dist/cjs/src/hibachi.js +1 -1
  184. package/dist/cjs/src/hitbtc.js +1 -0
  185. package/dist/cjs/src/hollaex.js +1 -1
  186. package/dist/cjs/src/htx.js +1 -1
  187. package/dist/cjs/src/huobi.js +1 -1
  188. package/dist/cjs/src/hyperliquid.js +1 -1
  189. package/dist/cjs/src/independentreserve.js +1 -1
  190. package/dist/cjs/src/indodax.js +1 -1
  191. package/dist/cjs/src/kraken.js +1 -1
  192. package/dist/cjs/src/krakenfutures.js +1 -1
  193. package/dist/cjs/src/kucoin.js +1 -1
  194. package/dist/cjs/src/kucoinfutures.js +1 -1
  195. package/dist/cjs/src/latoken.js +1 -1
  196. package/dist/cjs/src/lbank.js +1 -1
  197. package/dist/cjs/src/lighter.js +7 -5
  198. package/dist/cjs/src/luno.js +1 -1
  199. package/dist/cjs/src/mercado.js +1 -1
  200. package/dist/cjs/src/mexc.js +1 -1
  201. package/dist/cjs/src/modetrade.js +1 -1
  202. package/dist/cjs/src/myokx.js +1 -1
  203. package/dist/cjs/src/ndax.js +1 -1
  204. package/dist/cjs/src/novadax.js +1 -1
  205. package/dist/cjs/src/okx.js +1 -1
  206. package/dist/cjs/src/okxus.js +1 -1
  207. package/dist/cjs/src/onetrading.js +1 -1
  208. package/dist/cjs/src/p2b.js +1 -1
  209. package/dist/cjs/src/pacifica.js +1 -1
  210. package/dist/cjs/src/paradex.js +1 -1
  211. package/dist/cjs/src/paymium.js +1 -1
  212. package/dist/cjs/src/poloniex.js +1 -1
  213. package/dist/cjs/src/pro/alpaca.js +1 -1
  214. package/dist/cjs/src/pro/apex.js +1 -1
  215. package/dist/cjs/src/pro/ascendex.js +1 -1
  216. package/dist/cjs/src/pro/aster.js +1 -1
  217. package/dist/cjs/src/pro/backpack.js +1 -1
  218. package/dist/cjs/src/pro/bequant.js +1 -1
  219. package/dist/cjs/src/pro/binancecoinm.js +1 -1
  220. package/dist/cjs/src/pro/binanceus.js +1 -1
  221. package/dist/cjs/src/pro/binanceusdm.js +1 -1
  222. package/dist/cjs/src/pro/bingx.js +1 -1
  223. package/dist/cjs/src/pro/bitfinex.js +1 -1
  224. package/dist/cjs/src/pro/bitget.js +1 -1
  225. package/dist/cjs/src/pro/bithumb.js +1 -1
  226. package/dist/cjs/src/pro/bitmart.js +1 -1
  227. package/dist/cjs/src/pro/bitmex.js +1 -1
  228. package/dist/cjs/src/pro/bitrue.js +1 -1
  229. package/dist/cjs/src/pro/bitstamp.js +1 -1
  230. package/dist/cjs/src/pro/bittrade.js +1 -1
  231. package/dist/cjs/src/pro/bitvavo.js +1 -1
  232. package/dist/cjs/src/pro/blockchaincom.js +1 -1
  233. package/dist/cjs/src/pro/blofin.js +1 -1
  234. package/dist/cjs/src/pro/bullish.js +1 -1
  235. package/dist/cjs/src/pro/bybit.js +1 -1
  236. package/dist/cjs/src/pro/bybiteu.js +1 -1
  237. package/dist/cjs/src/pro/bydfi.js +1 -1
  238. package/dist/cjs/src/pro/cex.js +1 -1
  239. package/dist/cjs/src/pro/coinbase.js +1 -1
  240. package/dist/cjs/src/pro/coinbaseadvanced.js +1 -1
  241. package/dist/cjs/src/pro/coinbaseexchange.js +1 -1
  242. package/dist/cjs/src/pro/coinbaseinternational.js +1 -1
  243. package/dist/cjs/src/pro/coincheck.js +1 -1
  244. package/dist/cjs/src/pro/coinex.js +1 -1
  245. package/dist/cjs/src/pro/coinone.js +1 -1
  246. package/dist/cjs/src/pro/cryptocom.js +1 -1
  247. package/dist/cjs/src/pro/deepcoin.js +1 -1
  248. package/dist/cjs/src/pro/deribit.js +1 -1
  249. package/dist/cjs/src/pro/dydx.js +1 -1
  250. package/dist/cjs/src/pro/exmo.js +1 -1
  251. package/dist/cjs/src/pro/gate.js +1 -1
  252. package/dist/cjs/src/pro/gemini.js +1 -1
  253. package/dist/cjs/src/pro/grvt.js +1 -1
  254. package/dist/cjs/src/pro/hashkey.js +8 -7
  255. package/dist/cjs/src/pro/hitbtc.js +1 -1
  256. package/dist/cjs/src/pro/hollaex.js +2 -2
  257. package/dist/cjs/src/pro/htx.js +1 -1
  258. package/dist/cjs/src/pro/huobi.js +1 -1
  259. package/dist/cjs/src/pro/hyperliquid.js +1 -1
  260. package/dist/cjs/src/pro/independentreserve.js +1 -1
  261. package/dist/cjs/src/pro/kraken.js +1 -1
  262. package/dist/cjs/src/pro/krakenfutures.js +1 -1
  263. package/dist/cjs/src/pro/kucoin.js +1 -1
  264. package/dist/cjs/src/pro/kucoinfutures.js +1 -1
  265. package/dist/cjs/src/pro/lbank.js +1 -0
  266. package/dist/cjs/src/pro/lighter.js +1 -1
  267. package/dist/cjs/src/pro/luno.js +1 -1
  268. package/dist/cjs/src/pro/mexc.js +1 -1
  269. package/dist/cjs/src/pro/myokx.js +1 -1
  270. package/dist/cjs/src/pro/ndax.js +1 -1
  271. package/dist/cjs/src/pro/okx.js +1 -1
  272. package/dist/cjs/src/pro/okxus.js +1 -1
  273. package/dist/cjs/src/pro/onetrading.js +1 -1
  274. package/dist/cjs/src/pro/p2b.js +1 -1
  275. package/dist/cjs/src/pro/pacifica.js +1 -1
  276. package/dist/cjs/src/pro/paradex.js +1 -1
  277. package/dist/cjs/src/pro/phemex.js +1 -1
  278. package/dist/cjs/src/pro/poloniex.js +1 -1
  279. package/dist/cjs/src/pro/toobit.js +1 -1
  280. package/dist/cjs/src/pro/upbit.js +1 -1
  281. package/dist/cjs/src/pro/weex.js +1 -1
  282. package/dist/cjs/src/pro/whitebit.js +2 -2
  283. package/dist/cjs/src/pro/xt.js +1 -1
  284. package/dist/cjs/src/protobuf/mexc/compiled.cjs.js +0 -1
  285. package/dist/cjs/src/static_dependencies/dydx-v4-client/cosmos/base/v1beta1/coin.js +1 -0
  286. package/dist/cjs/src/static_dependencies/dydx-v4-client/cosmos/crypto/multisig/v1beta1/multisig.js +1 -0
  287. package/dist/cjs/src/static_dependencies/dydx-v4-client/cosmos/crypto/secp256k1/keys.js +1 -0
  288. package/dist/cjs/src/static_dependencies/dydx-v4-client/cosmos/tx/signing/v1beta1/signing.js +1 -0
  289. package/dist/cjs/src/static_dependencies/dydx-v4-client/cosmos/tx/v1beta1/tx.js +1 -0
  290. package/dist/cjs/src/static_dependencies/dydx-v4-client/dydxprotocol/accountplus/tx.js +1 -0
  291. package/dist/cjs/src/static_dependencies/dydx-v4-client/dydxprotocol/clob/clob_pair.js +1 -0
  292. package/dist/cjs/src/static_dependencies/dydx-v4-client/dydxprotocol/clob/order.js +1 -0
  293. package/dist/cjs/src/static_dependencies/dydx-v4-client/dydxprotocol/clob/order_removals.js +1 -0
  294. package/dist/cjs/src/static_dependencies/dydx-v4-client/dydxprotocol/clob/tx.js +1 -0
  295. package/dist/cjs/src/static_dependencies/dydx-v4-client/dydxprotocol/sending/transfer.js +1 -0
  296. package/dist/cjs/src/static_dependencies/dydx-v4-client/dydxprotocol/sending/tx.js +1 -0
  297. package/dist/cjs/src/static_dependencies/dydx-v4-client/dydxprotocol/subaccounts/subaccount.js +1 -0
  298. package/dist/cjs/src/static_dependencies/dydx-v4-client/google/protobuf/any.js +1 -0
  299. package/dist/cjs/src/static_dependencies/dydx-v4-client/helpers.js +6 -0
  300. package/dist/cjs/src/static_dependencies/dydx-v4-client/onboarding.js +1 -0
  301. package/dist/cjs/src/static_dependencies/dydx-v4-client/registry.js +1 -0
  302. package/dist/cjs/src/static_dependencies/ethers/abi-coder.js +6 -0
  303. package/dist/cjs/src/static_dependencies/ethers/address/address.js +1 -1
  304. package/dist/cjs/src/static_dependencies/ethers/coders/abstract-coder.js +6 -0
  305. package/dist/cjs/src/static_dependencies/ethers/coders/address.js +1 -0
  306. package/dist/cjs/src/static_dependencies/ethers/coders/anonymous.js +1 -0
  307. package/dist/cjs/src/static_dependencies/ethers/coders/array.js +1 -0
  308. package/dist/cjs/src/static_dependencies/ethers/coders/boolean.js +1 -0
  309. package/dist/cjs/src/static_dependencies/ethers/coders/bytes.js +1 -0
  310. package/dist/cjs/src/static_dependencies/ethers/coders/fixed-bytes.js +1 -0
  311. package/dist/cjs/src/static_dependencies/ethers/coders/null.js +1 -0
  312. package/dist/cjs/src/static_dependencies/ethers/coders/number.js +1 -0
  313. package/dist/cjs/src/static_dependencies/ethers/coders/string.js +1 -0
  314. package/dist/cjs/src/static_dependencies/ethers/coders/tuple.js +1 -0
  315. package/dist/cjs/src/static_dependencies/ethers/fragments.js +6 -0
  316. package/dist/cjs/src/static_dependencies/ethers/hash/typed-data.js +6 -0
  317. package/dist/cjs/src/static_dependencies/ethers/index.js +1 -10
  318. package/dist/cjs/src/static_dependencies/ethers/interface.js +6 -0
  319. package/dist/cjs/src/static_dependencies/ethers/typed.js +6 -0
  320. package/dist/cjs/src/static_dependencies/ethers/utils/base58.js +1 -13
  321. package/dist/cjs/src/static_dependencies/ethers/utils/data.js +1 -6
  322. package/dist/cjs/src/static_dependencies/ethers/utils/errors.js +1 -9
  323. package/dist/cjs/src/static_dependencies/ethers/utils/events.js +6 -0
  324. package/dist/cjs/src/static_dependencies/ethers/utils/fixednumber.js +6 -0
  325. package/dist/cjs/src/static_dependencies/ethers/utils/index.js +1 -7
  326. package/dist/cjs/src/static_dependencies/ethers/utils/maths.js +1 -5
  327. package/dist/cjs/src/static_dependencies/ethers/utils/properties.js +6 -0
  328. package/dist/cjs/src/static_dependencies/ethers/utils/utf8.js +1 -8
  329. package/dist/cjs/src/static_dependencies/fflake/browser.js +1 -1
  330. package/dist/cjs/src/static_dependencies/jsencrypt/JSEncrypt.js +1 -0
  331. package/dist/cjs/src/static_dependencies/jsencrypt/JSEncryptRSAKey.js +1 -0
  332. package/dist/cjs/src/static_dependencies/jsencrypt/lib/asn1js/asn1.js +1 -1
  333. package/dist/cjs/src/static_dependencies/jsencrypt/lib/asn1js/base64.js +6 -0
  334. package/dist/cjs/src/static_dependencies/jsencrypt/lib/asn1js/hex.js +6 -0
  335. package/dist/cjs/src/static_dependencies/jsencrypt/lib/asn1js/int10.js +6 -0
  336. package/dist/cjs/src/static_dependencies/jsencrypt/lib/jsbn/base64.js +1 -0
  337. package/dist/cjs/src/static_dependencies/jsencrypt/lib/jsbn/jsbn.js +1 -1
  338. package/dist/cjs/src/static_dependencies/jsencrypt/lib/jsbn/prng4.js +6 -0
  339. package/dist/cjs/src/static_dependencies/jsencrypt/lib/jsbn/rng.js +1 -1
  340. package/dist/cjs/src/static_dependencies/jsencrypt/lib/jsbn/rsa.js +1 -1
  341. package/dist/cjs/src/static_dependencies/jsencrypt/lib/jsbn/util.js +6 -0
  342. package/dist/cjs/src/static_dependencies/jsencrypt/lib/jsrsasign/asn1-1.0.js +1 -1
  343. package/dist/cjs/src/static_dependencies/jsencrypt/lib/jsrsasign/yahoo.js +6 -0
  344. package/dist/cjs/src/static_dependencies/messagepack/msgpack.js +6 -0
  345. package/dist/cjs/src/static_dependencies/noble-curves/_shortw_utils.js +1 -1
  346. package/dist/cjs/src/static_dependencies/noble-curves/abstract/curve.js +1 -1
  347. package/dist/cjs/src/static_dependencies/noble-curves/abstract/edwards.js +1 -1
  348. package/dist/cjs/src/static_dependencies/noble-curves/abstract/hash-to-curve.js +1 -0
  349. package/dist/cjs/src/static_dependencies/noble-curves/abstract/modular.js +1 -1
  350. package/dist/cjs/src/static_dependencies/noble-curves/abstract/montgomery.js +1 -1
  351. package/dist/cjs/src/static_dependencies/noble-curves/abstract/poseidon.js +1 -1
  352. package/dist/cjs/src/static_dependencies/noble-curves/abstract/utils.js +6 -0
  353. package/dist/cjs/src/static_dependencies/noble-curves/abstract/weierstrass.js +1 -1
  354. package/dist/cjs/src/static_dependencies/noble-curves/ed25519.js +1 -1
  355. package/dist/cjs/src/static_dependencies/noble-curves/p256.js +1 -1
  356. package/dist/cjs/src/static_dependencies/noble-curves/secp256k1.js +1 -1
  357. package/dist/cjs/src/static_dependencies/noble-hashes/_assert.js +6 -0
  358. package/dist/cjs/src/static_dependencies/noble-hashes/_sha2.js +1 -0
  359. package/dist/cjs/src/static_dependencies/noble-hashes/_u64.js +6 -0
  360. package/dist/cjs/src/static_dependencies/noble-hashes/crypto.js +6 -0
  361. package/dist/cjs/src/static_dependencies/noble-hashes/hmac.js +1 -0
  362. package/dist/cjs/src/static_dependencies/noble-hashes/md5.js +1 -0
  363. package/dist/cjs/src/static_dependencies/noble-hashes/pbkdf2.js +1 -0
  364. package/dist/cjs/src/static_dependencies/noble-hashes/ripemd160.js +1 -0
  365. package/dist/cjs/src/static_dependencies/noble-hashes/sha1.js +1 -0
  366. package/dist/cjs/src/static_dependencies/noble-hashes/sha256.js +1 -0
  367. package/dist/cjs/src/static_dependencies/noble-hashes/sha3.js +1 -0
  368. package/dist/cjs/src/static_dependencies/noble-hashes/sha512.js +1 -0
  369. package/dist/cjs/src/static_dependencies/noble-hashes/utils.js +1 -1
  370. package/dist/cjs/src/static_dependencies/node-fetch/body.js +1 -5
  371. package/dist/cjs/src/static_dependencies/node-fetch/errors/abort-error.js +1 -0
  372. package/dist/cjs/src/static_dependencies/node-fetch/errors/base.js +6 -0
  373. package/dist/cjs/src/static_dependencies/node-fetch/errors/fetch-error.js +1 -0
  374. package/dist/cjs/src/static_dependencies/node-fetch/headers.js +1 -5
  375. package/dist/cjs/src/static_dependencies/node-fetch/index.js +1 -7
  376. package/dist/cjs/src/static_dependencies/node-fetch/request.js +1 -7
  377. package/dist/cjs/src/static_dependencies/node-fetch/response.js +1 -5
  378. package/dist/cjs/src/static_dependencies/node-fetch/utils/get-search.js +6 -0
  379. package/dist/cjs/src/static_dependencies/node-fetch/utils/is-redirect.js +6 -0
  380. package/dist/cjs/src/static_dependencies/node-fetch/utils/is.js +6 -0
  381. package/dist/cjs/src/static_dependencies/node-fetch/utils/referrer.js +1 -0
  382. package/dist/cjs/src/static_dependencies/proxies/agent-base/index.js +1 -0
  383. package/dist/cjs/src/static_dependencies/proxies/http-proxy-agent/index.js +1 -0
  384. package/dist/cjs/src/static_dependencies/proxies/https-proxy-agent/index.js +1 -0
  385. package/dist/cjs/src/static_dependencies/proxies/https-proxy-agent/parse-proxy-response.js +6 -0
  386. package/dist/cjs/src/static_dependencies/qs/formats.js +6 -0
  387. package/dist/cjs/src/static_dependencies/qs/index.js +1 -0
  388. package/dist/cjs/src/static_dependencies/qs/parse.js +1 -0
  389. package/dist/cjs/src/static_dependencies/qs/stringify.js +1 -0
  390. package/dist/cjs/src/static_dependencies/qs/utils.js +6 -0
  391. package/dist/cjs/src/static_dependencies/scure-base/index.js +6 -0
  392. package/dist/cjs/src/static_dependencies/scure-bip32/index.js +1 -19
  393. package/dist/cjs/src/static_dependencies/scure-bip39/index.js +1 -1
  394. package/dist/cjs/src/static_dependencies/scure-bip39/wordlists/english.js +6 -0
  395. package/dist/cjs/src/static_dependencies/scure-starknet/index.js +1 -1
  396. package/dist/cjs/src/static_dependencies/starknet/constants.js +1 -1
  397. package/dist/cjs/src/static_dependencies/starknet/types/calldata.js +6 -0
  398. package/dist/cjs/src/static_dependencies/starknet/types/lib/contract/abi.js +6 -0
  399. package/dist/cjs/src/static_dependencies/starknet/types/lib/contract/index.js +6 -0
  400. package/dist/cjs/src/static_dependencies/starknet/types/lib/index.js +6 -0
  401. package/dist/cjs/src/static_dependencies/starknet/types/typedData.js +6 -0
  402. package/dist/cjs/src/static_dependencies/starknet/utils/assert.js +6 -0
  403. package/dist/cjs/src/static_dependencies/starknet/utils/cairoDataTypes/felt.js +1 -1
  404. package/dist/cjs/src/static_dependencies/starknet/utils/cairoDataTypes/uint256.js +1 -1
  405. package/dist/cjs/src/static_dependencies/starknet/utils/cairoDataTypes/uint512.js +1 -1
  406. package/dist/cjs/src/static_dependencies/starknet/utils/calldata/byteArray.js +1 -0
  407. package/dist/cjs/src/static_dependencies/starknet/utils/calldata/cairo.js +1 -0
  408. package/dist/cjs/src/static_dependencies/starknet/utils/calldata/enum/CairoCustomEnum.js +6 -0
  409. package/dist/cjs/src/static_dependencies/starknet/utils/calldata/enum/CairoOption.js +6 -0
  410. package/dist/cjs/src/static_dependencies/starknet/utils/calldata/enum/CairoResult.js +6 -0
  411. package/dist/cjs/src/static_dependencies/starknet/utils/calldata/formatter.js +1 -0
  412. package/dist/cjs/src/static_dependencies/starknet/utils/calldata/index.js +1 -1
  413. package/dist/cjs/src/static_dependencies/starknet/utils/calldata/parser/index.js +1 -0
  414. package/dist/cjs/src/static_dependencies/starknet/utils/calldata/parser/parser-0-1.1.0.js +1 -0
  415. package/dist/cjs/src/static_dependencies/starknet/utils/calldata/parser/parser-2.0.0.js +6 -0
  416. package/dist/cjs/src/static_dependencies/starknet/utils/calldata/propertyOrder.js +1 -0
  417. package/dist/cjs/src/static_dependencies/starknet/utils/calldata/requestParser.js +1 -0
  418. package/dist/cjs/src/static_dependencies/starknet/utils/calldata/responseParser.js +1 -0
  419. package/dist/cjs/src/static_dependencies/starknet/utils/calldata/tuple.js +1 -1
  420. package/dist/cjs/src/static_dependencies/starknet/utils/calldata/validate.js +1 -4
  421. package/dist/cjs/src/static_dependencies/starknet/utils/encode.js +1 -0
  422. package/dist/cjs/src/static_dependencies/starknet/utils/hash/classHash.js +1 -3
  423. package/dist/cjs/src/static_dependencies/starknet/utils/merkle.js +1 -0
  424. package/dist/cjs/src/static_dependencies/starknet/utils/num.js +1 -0
  425. package/dist/cjs/src/static_dependencies/starknet/utils/selector.js +1 -0
  426. package/dist/cjs/src/static_dependencies/starknet/utils/shortString.js +1 -0
  427. package/dist/cjs/src/static_dependencies/starknet/utils/typedData.js +1 -1
  428. package/dist/cjs/src/static_dependencies/watchable/src/unpromise.js +6 -0
  429. package/dist/cjs/src/static_dependencies/zklink/zklink-sdk-web.js +6 -0
  430. package/dist/cjs/src/tokocrypto.js +1 -1
  431. package/dist/cjs/src/toobit.js +1 -1
  432. package/dist/cjs/src/upbit.js +1 -1
  433. package/dist/cjs/src/weex.js +8 -1
  434. package/dist/cjs/src/whitebit.js +1 -1
  435. package/dist/cjs/src/woo.js +1 -1
  436. package/dist/cjs/src/woofipro.js +1 -1
  437. package/dist/cjs/src/xt.js +1 -2
  438. package/dist/cjs/src/zaif.js +1 -1
  439. package/dist/cjs/src/zebpay.js +1 -1
  440. package/js/ccxt.d.ts +2 -14
  441. package/js/ccxt.js +8 -10
  442. package/js/src/abstract/aftermath.js +6 -0
  443. package/js/src/abstract/alpaca.js +6 -0
  444. package/js/src/abstract/apex.js +6 -0
  445. package/js/src/abstract/ascendex.js +6 -0
  446. package/js/src/abstract/aster.js +6 -0
  447. package/js/src/abstract/backpack.js +6 -0
  448. package/js/src/abstract/bequant.js +6 -0
  449. package/js/src/abstract/bigone.js +6 -0
  450. package/js/src/abstract/binance.js +6 -0
  451. package/js/src/abstract/binancecoinm.js +6 -0
  452. package/js/src/abstract/binanceus.js +6 -0
  453. package/js/src/abstract/binanceusdm.js +6 -0
  454. package/js/src/abstract/bingx.js +6 -0
  455. package/js/src/abstract/bit2c.js +6 -0
  456. package/js/src/abstract/bitbank.js +6 -0
  457. package/js/src/abstract/bitbns.js +6 -0
  458. package/js/src/abstract/bitfinex.js +6 -0
  459. package/js/src/abstract/bitflyer.js +6 -0
  460. package/js/src/abstract/bitget.js +6 -0
  461. package/js/src/abstract/bithumb.js +6 -0
  462. package/js/src/abstract/bitmart.js +6 -0
  463. package/js/src/abstract/bitmex.js +6 -0
  464. package/js/src/abstract/bitopro.js +6 -0
  465. package/js/src/abstract/bitrue.js +6 -0
  466. package/js/src/abstract/bitso.js +6 -0
  467. package/js/src/abstract/bitstamp.js +6 -0
  468. package/js/src/abstract/bitteam.js +6 -0
  469. package/js/src/abstract/bittrade.js +6 -0
  470. package/js/src/abstract/bitvavo.js +6 -0
  471. package/js/src/abstract/blockchaincom.js +6 -0
  472. package/js/src/abstract/blofin.js +6 -0
  473. package/js/src/abstract/btcbox.js +6 -0
  474. package/js/src/abstract/btcmarkets.js +6 -0
  475. package/js/src/abstract/btcturk.js +6 -0
  476. package/js/src/abstract/bullish.js +6 -0
  477. package/js/src/abstract/bybit.js +6 -0
  478. package/js/src/abstract/bybiteu.js +6 -0
  479. package/js/src/abstract/bydfi.js +6 -0
  480. package/js/src/abstract/cex.js +6 -0
  481. package/js/src/abstract/coinbase.js +6 -0
  482. package/js/src/abstract/coinbaseadvanced.js +6 -0
  483. package/js/src/abstract/coinbaseexchange.js +6 -0
  484. package/js/src/abstract/coinbaseinternational.js +6 -0
  485. package/js/src/abstract/coincheck.js +6 -0
  486. package/js/src/abstract/coinex.js +6 -0
  487. package/js/src/abstract/coinmate.js +6 -0
  488. package/js/src/abstract/coinmetro.js +6 -0
  489. package/js/src/abstract/coinone.js +6 -0
  490. package/js/src/abstract/coinsph.js +6 -0
  491. package/js/src/abstract/coinspot.js +6 -0
  492. package/js/src/abstract/cryptocom.js +6 -0
  493. package/js/src/abstract/cryptomus.js +6 -0
  494. package/js/src/abstract/deepcoin.js +6 -0
  495. package/js/src/abstract/delta.js +6 -0
  496. package/js/src/abstract/deribit.js +6 -0
  497. package/js/src/abstract/derive.js +6 -0
  498. package/js/src/abstract/digifinex.js +6 -0
  499. package/js/src/abstract/dydx.js +6 -0
  500. package/js/src/abstract/exmo.js +6 -0
  501. package/js/src/abstract/extended.js +6 -0
  502. package/js/src/abstract/fmfwio.js +6 -0
  503. package/js/src/abstract/foxbit.js +6 -0
  504. package/js/src/abstract/gate.js +6 -0
  505. package/js/src/abstract/gemini.js +6 -0
  506. package/js/src/abstract/grvt.js +6 -0
  507. package/js/src/abstract/hashkey.js +6 -0
  508. package/js/src/abstract/hibachi.js +6 -0
  509. package/js/src/abstract/hitbtc.js +6 -0
  510. package/js/src/abstract/hollaex.js +6 -0
  511. package/js/src/abstract/htx.js +6 -0
  512. package/js/src/abstract/huobi.js +6 -0
  513. package/js/src/abstract/hyperliquid.js +6 -0
  514. package/js/src/abstract/independentreserve.js +6 -0
  515. package/js/src/abstract/indodax.js +6 -0
  516. package/js/src/abstract/kraken.js +6 -0
  517. package/js/src/abstract/krakenfutures.js +6 -0
  518. package/js/src/abstract/kucoin.js +6 -0
  519. package/js/src/abstract/kucoinfutures.js +6 -0
  520. package/js/src/abstract/latoken.js +6 -0
  521. package/js/src/abstract/lbank.js +6 -0
  522. package/js/src/abstract/lighter.js +6 -0
  523. package/js/src/abstract/luno.js +6 -0
  524. package/js/src/abstract/mercado.js +6 -0
  525. package/js/src/abstract/mexc.js +6 -0
  526. package/js/src/abstract/modetrade.js +6 -0
  527. package/js/src/abstract/myokx.js +6 -0
  528. package/js/src/abstract/ndax.js +6 -0
  529. package/js/src/abstract/novadax.js +6 -0
  530. package/js/src/abstract/okx.js +6 -0
  531. package/js/src/abstract/okxus.js +6 -0
  532. package/js/src/abstract/onetrading.js +6 -0
  533. package/js/src/abstract/p2b.js +6 -0
  534. package/js/src/abstract/pacifica.js +6 -0
  535. package/js/src/abstract/paradex.js +6 -0
  536. package/js/src/abstract/paymium.js +6 -0
  537. package/js/src/abstract/phemex.js +6 -0
  538. package/js/src/abstract/poloniex.js +6 -0
  539. package/js/src/abstract/tokocrypto.js +6 -0
  540. package/js/src/abstract/toobit.js +6 -0
  541. package/js/src/abstract/upbit.js +6 -0
  542. package/js/src/abstract/weex.js +6 -0
  543. package/js/src/abstract/whitebit.js +6 -0
  544. package/js/src/abstract/woo.js +6 -0
  545. package/js/src/abstract/woofipro.js +6 -0
  546. package/js/src/abstract/xt.js +6 -0
  547. package/js/src/abstract/zaif.js +6 -0
  548. package/js/src/abstract/zebpay.js +6 -0
  549. package/js/src/aftermath.js +6 -0
  550. package/js/src/alpaca.js +6 -0
  551. package/js/src/apex.js +6 -0
  552. package/js/src/ascendex.js +6 -0
  553. package/js/src/aster.js +6 -0
  554. package/js/src/backpack.js +16 -2
  555. package/js/src/base/Exchange.js +6 -0
  556. package/js/src/base/Precise.js +7 -7
  557. package/js/src/base/errorHierarchy.js +6 -0
  558. package/js/src/base/errors.js +6 -0
  559. package/js/src/base/functions/crypto.js +6 -0
  560. package/js/src/base/functions/encode.js +6 -0
  561. package/js/src/base/functions/generic.js +6 -0
  562. package/js/src/base/functions/io.js +6 -0
  563. package/js/src/base/functions/misc.js +6 -0
  564. package/js/src/base/functions/number.js +6 -0
  565. package/js/src/base/functions/platform.js +6 -0
  566. package/js/src/base/functions/rsa.js +6 -0
  567. package/js/src/base/functions/string.js +6 -0
  568. package/js/src/base/functions/throttle.js +6 -0
  569. package/js/src/base/functions/time.js +6 -0
  570. package/js/src/base/functions/totp.js +6 -0
  571. package/js/src/base/functions/type.js +6 -0
  572. package/js/src/base/functions.js +6 -0
  573. package/js/src/base/types.js +6 -0
  574. package/js/src/base/ws/Cache.js +6 -0
  575. package/js/src/base/ws/Client.js +6 -0
  576. package/js/src/base/ws/Future.js +8 -6
  577. package/js/src/base/ws/OrderBook.js +6 -0
  578. package/js/src/base/ws/OrderBookSide.js +6 -0
  579. package/js/src/base/ws/WsClient.js +10 -0
  580. package/js/src/base/ws/functions.js +6 -0
  581. package/js/src/bequant.js +6 -0
  582. package/js/src/bigone.js +6 -0
  583. package/js/src/binance.js +6 -0
  584. package/js/src/binancecoinm.js +6 -0
  585. package/js/src/binanceus.js +6 -0
  586. package/js/src/binanceusdm.js +6 -0
  587. package/js/src/bingx.js +6 -0
  588. package/js/src/bit2c.js +6 -0
  589. package/js/src/bitbank.js +6 -0
  590. package/js/src/bitbns.js +6 -0
  591. package/js/src/bitfinex.js +6 -0
  592. package/js/src/bitflyer.js +6 -0
  593. package/js/src/bitget.js +6 -0
  594. package/js/src/bithumb.js +6 -0
  595. package/js/src/bitmart.js +6 -0
  596. package/js/src/bitmex.js +6 -0
  597. package/js/src/bitopro.js +6 -0
  598. package/js/src/bitrue.js +6 -0
  599. package/js/src/bitso.js +6 -0
  600. package/js/src/bitstamp.js +6 -0
  601. package/js/src/bitteam.js +6 -0
  602. package/js/src/bittrade.js +6 -0
  603. package/js/src/bitvavo.js +6 -0
  604. package/js/src/blockchaincom.js +6 -0
  605. package/js/src/blofin.js +6 -0
  606. package/js/src/btcbox.js +7 -1
  607. package/js/src/btcmarkets.js +6 -0
  608. package/js/src/btcturk.js +6 -0
  609. package/js/src/bullish.js +6 -0
  610. package/js/src/bybit.js +6 -0
  611. package/js/src/bybiteu.js +6 -0
  612. package/js/src/bydfi.js +6 -0
  613. package/js/src/cex.js +6 -0
  614. package/js/src/coinbase.js +6 -0
  615. package/js/src/coinbaseadvanced.js +6 -0
  616. package/js/src/coinbaseexchange.js +6 -0
  617. package/js/src/coinbaseinternational.js +6 -0
  618. package/js/src/coincheck.js +6 -0
  619. package/js/src/coinex.js +6 -0
  620. package/js/src/coinmate.js +6 -0
  621. package/js/src/coinmetro.js +6 -0
  622. package/js/src/coinone.js +6 -0
  623. package/js/src/coinsph.js +6 -0
  624. package/js/src/coinspot.js +6 -0
  625. package/js/src/cryptocom.js +7 -1
  626. package/js/src/cryptomus.js +6 -0
  627. package/js/src/deepcoin.js +7 -1
  628. package/js/src/delta.js +6 -0
  629. package/js/src/deribit.js +6 -0
  630. package/js/src/derive.js +6 -0
  631. package/js/src/digifinex.js +6 -0
  632. package/js/src/dydx.js +6 -0
  633. package/js/src/exmo.js +6 -0
  634. package/js/src/extended.js +6 -0
  635. package/js/src/fmfwio.js +6 -0
  636. package/js/src/foxbit.js +6 -0
  637. package/js/src/gate.js +6 -0
  638. package/js/src/gemini.js +6 -0
  639. package/js/src/grvt.js +6 -0
  640. package/js/src/hashkey.js +6 -0
  641. package/js/src/hibachi.js +6 -0
  642. package/js/src/hitbtc.js +6 -0
  643. package/js/src/hollaex.js +6 -0
  644. package/js/src/htx.js +6 -0
  645. package/js/src/huobi.js +6 -0
  646. package/js/src/hyperliquid.js +6 -0
  647. package/js/src/independentreserve.js +6 -0
  648. package/js/src/indodax.js +6 -0
  649. package/js/src/kraken.js +6 -0
  650. package/js/src/krakenfutures.js +6 -0
  651. package/js/src/kucoin.js +6 -0
  652. package/js/src/kucoinfutures.js +6 -0
  653. package/js/src/latoken.js +6 -0
  654. package/js/src/lbank.js +6 -0
  655. package/js/src/lighter.js +12 -4
  656. package/js/src/luno.js +6 -0
  657. package/js/src/mercado.js +6 -0
  658. package/js/src/mexc.js +6 -0
  659. package/js/src/modetrade.js +6 -0
  660. package/js/src/myokx.js +6 -0
  661. package/js/src/ndax.js +6 -0
  662. package/js/src/novadax.js +6 -0
  663. package/js/src/okx.js +6 -0
  664. package/js/src/okxus.js +6 -0
  665. package/js/src/onetrading.js +6 -0
  666. package/js/src/p2b.js +6 -0
  667. package/js/src/pacifica.js +6 -0
  668. package/js/src/paradex.js +6 -0
  669. package/js/src/paymium.js +6 -0
  670. package/js/src/phemex.js +6 -0
  671. package/js/src/poloniex.js +6 -0
  672. package/js/src/pro/aftermath.js +6 -0
  673. package/js/src/pro/alpaca.js +6 -0
  674. package/js/src/pro/apex.js +6 -0
  675. package/js/src/pro/ascendex.js +6 -0
  676. package/js/src/pro/aster.js +6 -0
  677. package/js/src/pro/backpack.js +6 -0
  678. package/js/src/pro/bequant.js +6 -0
  679. package/js/src/pro/binance.js +6 -0
  680. package/js/src/pro/binancecoinm.js +6 -0
  681. package/js/src/pro/binanceus.js +6 -0
  682. package/js/src/pro/binanceusdm.js +6 -0
  683. package/js/src/pro/bingx.js +6 -0
  684. package/js/src/pro/bitfinex.js +6 -0
  685. package/js/src/pro/bitget.js +6 -0
  686. package/js/src/pro/bithumb.js +6 -0
  687. package/js/src/pro/bitmart.js +6 -0
  688. package/js/src/pro/bitmex.js +6 -0
  689. package/js/src/pro/bitopro.js +6 -0
  690. package/js/src/pro/bitrue.js +6 -0
  691. package/js/src/pro/bitstamp.js +6 -0
  692. package/js/src/pro/bittrade.js +7 -1
  693. package/js/src/pro/bitvavo.js +6 -0
  694. package/js/src/pro/blockchaincom.js +6 -0
  695. package/js/src/pro/blofin.js +6 -0
  696. package/js/src/pro/bullish.js +6 -0
  697. package/js/src/pro/bybit.js +6 -0
  698. package/js/src/pro/bybiteu.js +6 -0
  699. package/js/src/pro/bydfi.js +6 -0
  700. package/js/src/pro/cex.js +6 -0
  701. package/js/src/pro/coinbase.js +6 -0
  702. package/js/src/pro/coinbaseadvanced.js +6 -0
  703. package/js/src/pro/coinbaseexchange.js +6 -0
  704. package/js/src/pro/coinbaseinternational.js +6 -0
  705. package/js/src/pro/coincheck.js +6 -0
  706. package/js/src/pro/coinex.js +6 -0
  707. package/js/src/pro/coinone.js +6 -0
  708. package/js/src/pro/cryptocom.js +6 -0
  709. package/js/src/pro/deepcoin.js +6 -0
  710. package/js/src/pro/deribit.js +6 -0
  711. package/js/src/pro/derive.js +6 -0
  712. package/js/src/pro/dydx.js +6 -0
  713. package/js/src/pro/exmo.js +6 -0
  714. package/js/src/pro/extended.js +6 -0
  715. package/js/src/pro/gate.js +6 -0
  716. package/js/src/pro/gemini.js +6 -0
  717. package/js/src/pro/grvt.js +6 -0
  718. package/js/src/pro/hashkey.js +13 -6
  719. package/js/src/pro/hitbtc.js +6 -0
  720. package/js/src/pro/hollaex.js +7 -1
  721. package/js/src/pro/htx.js +6 -0
  722. package/js/src/pro/huobi.js +6 -0
  723. package/js/src/pro/hyperliquid.js +6 -0
  724. package/js/src/pro/independentreserve.js +6 -0
  725. package/js/src/pro/kraken.js +6 -0
  726. package/js/src/pro/krakenfutures.js +6 -0
  727. package/js/src/pro/kucoin.js +6 -0
  728. package/js/src/pro/kucoinfutures.js +6 -0
  729. package/js/src/pro/lbank.js +6 -0
  730. package/js/src/pro/lighter.js +6 -0
  731. package/js/src/pro/luno.js +6 -0
  732. package/js/src/pro/mexc.js +6 -0
  733. package/js/src/pro/modetrade.js +6 -0
  734. package/js/src/pro/myokx.js +6 -0
  735. package/js/src/pro/ndax.js +6 -0
  736. package/js/src/pro/okx.js +6 -0
  737. package/js/src/pro/okxus.js +6 -0
  738. package/js/src/pro/onetrading.js +6 -0
  739. package/js/src/pro/p2b.js +6 -0
  740. package/js/src/pro/pacifica.js +6 -0
  741. package/js/src/pro/paradex.js +6 -0
  742. package/js/src/pro/phemex.js +6 -0
  743. package/js/src/pro/poloniex.js +6 -0
  744. package/js/src/pro/toobit.js +6 -0
  745. package/js/src/pro/upbit.js +6 -0
  746. package/js/src/pro/weex.js +6 -0
  747. package/js/src/pro/whitebit.js +7 -1
  748. package/js/src/pro/woo.js +6 -0
  749. package/js/src/pro/woofipro.js +6 -0
  750. package/js/src/pro/xt.js +6 -0
  751. package/js/src/protobuf/mexc/compiled.cjs +6 -0
  752. package/js/src/static_dependencies/dydx-v4-client/cosmos/base/v1beta1/coin.js +6 -0
  753. package/js/src/static_dependencies/dydx-v4-client/cosmos/crypto/multisig/keys.js +6 -0
  754. package/js/src/static_dependencies/dydx-v4-client/cosmos/crypto/multisig/v1beta1/multisig.js +6 -0
  755. package/js/src/static_dependencies/dydx-v4-client/cosmos/crypto/secp256k1/keys.js +6 -0
  756. package/js/src/static_dependencies/dydx-v4-client/cosmos/tx/signing/v1beta1/signing.js +6 -0
  757. package/js/src/static_dependencies/dydx-v4-client/cosmos/tx/v1beta1/tx.js +6 -0
  758. package/js/src/static_dependencies/dydx-v4-client/dydxprotocol/accountplus/tx.js +6 -0
  759. package/js/src/static_dependencies/dydx-v4-client/dydxprotocol/clob/block_rate_limit_config.js +6 -0
  760. package/js/src/static_dependencies/dydx-v4-client/dydxprotocol/clob/clob_pair.js +6 -0
  761. package/js/src/static_dependencies/dydx-v4-client/dydxprotocol/clob/equity_tier_limit_config.js +6 -0
  762. package/js/src/static_dependencies/dydx-v4-client/dydxprotocol/clob/finalize_block.js +6 -0
  763. package/js/src/static_dependencies/dydx-v4-client/dydxprotocol/clob/liquidations.js +6 -0
  764. package/js/src/static_dependencies/dydx-v4-client/dydxprotocol/clob/liquidations_config.js +6 -0
  765. package/js/src/static_dependencies/dydx-v4-client/dydxprotocol/clob/matches.js +6 -0
  766. package/js/src/static_dependencies/dydx-v4-client/dydxprotocol/clob/order.js +6 -0
  767. package/js/src/static_dependencies/dydx-v4-client/dydxprotocol/clob/order_removals.js +6 -0
  768. package/js/src/static_dependencies/dydx-v4-client/dydxprotocol/clob/tx.js +6 -0
  769. package/js/src/static_dependencies/dydx-v4-client/dydxprotocol/sending/transfer.js +6 -0
  770. package/js/src/static_dependencies/dydx-v4-client/dydxprotocol/sending/tx.js +6 -0
  771. package/js/src/static_dependencies/dydx-v4-client/dydxprotocol/subaccounts/asset_position.js +6 -0
  772. package/js/src/static_dependencies/dydx-v4-client/dydxprotocol/subaccounts/perpetual_position.js +6 -0
  773. package/js/src/static_dependencies/dydx-v4-client/dydxprotocol/subaccounts/subaccount.js +6 -0
  774. package/js/src/static_dependencies/dydx-v4-client/google/protobuf/any.js +6 -0
  775. package/js/src/static_dependencies/dydx-v4-client/helpers.js +6 -0
  776. package/js/src/static_dependencies/dydx-v4-client/long/index.cjs +6 -0
  777. package/js/src/static_dependencies/dydx-v4-client/onboarding.js +6 -0
  778. package/js/src/static_dependencies/dydx-v4-client/registry.js +6 -0
  779. package/js/src/static_dependencies/ethers/abi-coder.js +6 -0
  780. package/js/src/static_dependencies/ethers/address/address.js +6 -0
  781. package/js/src/static_dependencies/ethers/address/checks.js +6 -0
  782. package/js/src/static_dependencies/ethers/address/contract-address.js +6 -0
  783. package/js/src/static_dependencies/ethers/address/index.js +6 -0
  784. package/js/src/static_dependencies/ethers/bytes32.js +6 -0
  785. package/js/src/static_dependencies/ethers/coders/abstract-coder.js +6 -0
  786. package/js/src/static_dependencies/ethers/coders/address.js +6 -0
  787. package/js/src/static_dependencies/ethers/coders/anonymous.js +6 -0
  788. package/js/src/static_dependencies/ethers/coders/array.js +6 -0
  789. package/js/src/static_dependencies/ethers/coders/boolean.js +6 -0
  790. package/js/src/static_dependencies/ethers/coders/bytes.js +6 -0
  791. package/js/src/static_dependencies/ethers/coders/fixed-bytes.js +6 -0
  792. package/js/src/static_dependencies/ethers/coders/null.js +6 -0
  793. package/js/src/static_dependencies/ethers/coders/number.js +6 -0
  794. package/js/src/static_dependencies/ethers/coders/string.js +6 -0
  795. package/js/src/static_dependencies/ethers/coders/tuple.js +6 -0
  796. package/js/src/static_dependencies/ethers/fragments.js +6 -0
  797. package/js/src/static_dependencies/ethers/hash/index.js +6 -0
  798. package/js/src/static_dependencies/ethers/hash/solidity.js +6 -0
  799. package/js/src/static_dependencies/ethers/hash/typed-data.js +6 -0
  800. package/js/src/static_dependencies/ethers/index.js +6 -0
  801. package/js/src/static_dependencies/ethers/interface.js +6 -0
  802. package/js/src/static_dependencies/ethers/typed.js +6 -0
  803. package/js/src/static_dependencies/ethers/utils/base58.js +6 -0
  804. package/js/src/static_dependencies/ethers/utils/base64-browser.js +6 -0
  805. package/js/src/static_dependencies/ethers/utils/base64.js +6 -0
  806. package/js/src/static_dependencies/ethers/utils/data.js +6 -0
  807. package/js/src/static_dependencies/ethers/utils/errors.js +6 -0
  808. package/js/src/static_dependencies/ethers/utils/events.js +6 -0
  809. package/js/src/static_dependencies/ethers/utils/fixednumber.js +6 -0
  810. package/js/src/static_dependencies/ethers/utils/index.js +6 -0
  811. package/js/src/static_dependencies/ethers/utils/maths.js +6 -0
  812. package/js/src/static_dependencies/ethers/utils/properties.js +6 -0
  813. package/js/src/static_dependencies/ethers/utils/rlp-decode.js +6 -0
  814. package/js/src/static_dependencies/ethers/utils/rlp-encode.js +6 -0
  815. package/js/src/static_dependencies/ethers/utils/rlp.js +6 -0
  816. package/js/src/static_dependencies/ethers/utils/units.js +6 -0
  817. package/js/src/static_dependencies/ethers/utils/utf8.js +6 -0
  818. package/js/src/static_dependencies/ethers/utils/uuid.js +6 -0
  819. package/js/src/static_dependencies/fflake/browser.js +6 -0
  820. package/js/src/static_dependencies/jsencrypt/JSEncrypt.js +6 -0
  821. package/js/src/static_dependencies/jsencrypt/JSEncryptRSAKey.js +6 -0
  822. package/js/src/static_dependencies/jsencrypt/index.js +6 -0
  823. package/js/src/static_dependencies/jsencrypt/lib/asn1js/asn1.js +6 -0
  824. package/js/src/static_dependencies/jsencrypt/lib/asn1js/base64.js +6 -0
  825. package/js/src/static_dependencies/jsencrypt/lib/asn1js/hex.js +6 -0
  826. package/js/src/static_dependencies/jsencrypt/lib/asn1js/int10.js +6 -0
  827. package/js/src/static_dependencies/jsencrypt/lib/asn1js/oids.js +6 -0
  828. package/js/src/static_dependencies/jsencrypt/lib/jsbn/base64.js +6 -0
  829. package/js/src/static_dependencies/jsencrypt/lib/jsbn/jsbn.js +6 -0
  830. package/js/src/static_dependencies/jsencrypt/lib/jsbn/prng4.js +6 -0
  831. package/js/src/static_dependencies/jsencrypt/lib/jsbn/rng.js +6 -0
  832. package/js/src/static_dependencies/jsencrypt/lib/jsbn/rsa.js +6 -0
  833. package/js/src/static_dependencies/jsencrypt/lib/jsbn/util.js +6 -0
  834. package/js/src/static_dependencies/jsencrypt/lib/jsrsasign/asn1-1.0.js +6 -0
  835. package/js/src/static_dependencies/jsencrypt/lib/jsrsasign/yahoo.js +6 -0
  836. package/js/src/static_dependencies/messagepack/msgpack.js +6 -0
  837. package/js/src/static_dependencies/noble-curves/_shortw_utils.js +6 -0
  838. package/js/src/static_dependencies/noble-curves/abstract/curve.js +6 -0
  839. package/js/src/static_dependencies/noble-curves/abstract/edwards.js +6 -0
  840. package/js/src/static_dependencies/noble-curves/abstract/hash-to-curve.js +6 -0
  841. package/js/src/static_dependencies/noble-curves/abstract/modular.js +6 -0
  842. package/js/src/static_dependencies/noble-curves/abstract/montgomery.js +6 -0
  843. package/js/src/static_dependencies/noble-curves/abstract/poseidon.js +6 -0
  844. package/js/src/static_dependencies/noble-curves/abstract/utils.js +6 -0
  845. package/js/src/static_dependencies/noble-curves/abstract/weierstrass.d.ts +1 -1
  846. package/js/src/static_dependencies/noble-curves/abstract/weierstrass.js +6 -0
  847. package/js/src/static_dependencies/noble-curves/bn.js +6 -0
  848. package/js/src/static_dependencies/noble-curves/ed25519.js +6 -0
  849. package/js/src/static_dependencies/noble-curves/ed448.js +6 -0
  850. package/js/src/static_dependencies/noble-curves/index.js +6 -0
  851. package/js/src/static_dependencies/noble-curves/jubjub.js +6 -0
  852. package/js/src/static_dependencies/noble-curves/p256.js +6 -0
  853. package/js/src/static_dependencies/noble-curves/p384.js +6 -0
  854. package/js/src/static_dependencies/noble-curves/p521.js +6 -0
  855. package/js/src/static_dependencies/noble-curves/pasta.js +6 -0
  856. package/js/src/static_dependencies/noble-curves/secp256k1.js +6 -0
  857. package/js/src/static_dependencies/noble-hashes/_assert.js +6 -0
  858. package/js/src/static_dependencies/noble-hashes/_blake2.js +6 -0
  859. package/js/src/static_dependencies/noble-hashes/_sha2.js +6 -0
  860. package/js/src/static_dependencies/noble-hashes/_u64.js +6 -0
  861. package/js/src/static_dependencies/noble-hashes/argon2.js +6 -0
  862. package/js/src/static_dependencies/noble-hashes/blake2b.js +6 -0
  863. package/js/src/static_dependencies/noble-hashes/blake2s.js +6 -0
  864. package/js/src/static_dependencies/noble-hashes/blake3.js +6 -0
  865. package/js/src/static_dependencies/noble-hashes/crypto.js +6 -0
  866. package/js/src/static_dependencies/noble-hashes/cryptoNode.js +6 -0
  867. package/js/src/static_dependencies/noble-hashes/eskdf.js +6 -0
  868. package/js/src/static_dependencies/noble-hashes/hkdf.js +6 -0
  869. package/js/src/static_dependencies/noble-hashes/hmac.js +6 -0
  870. package/js/src/static_dependencies/noble-hashes/index.js +6 -0
  871. package/js/src/static_dependencies/noble-hashes/md5.js +6 -0
  872. package/js/src/static_dependencies/noble-hashes/pbkdf2.js +6 -0
  873. package/js/src/static_dependencies/noble-hashes/ripemd160.js +6 -0
  874. package/js/src/static_dependencies/noble-hashes/scrypt.js +6 -0
  875. package/js/src/static_dependencies/noble-hashes/sha1.js +6 -0
  876. package/js/src/static_dependencies/noble-hashes/sha256.js +6 -0
  877. package/js/src/static_dependencies/noble-hashes/sha3-addons.js +6 -0
  878. package/js/src/static_dependencies/noble-hashes/sha3.js +6 -0
  879. package/js/src/static_dependencies/noble-hashes/sha512.js +6 -0
  880. package/js/src/static_dependencies/noble-hashes/utils.js +6 -0
  881. package/js/src/static_dependencies/node-fetch/body.js +6 -0
  882. package/js/src/static_dependencies/node-fetch/errors/abort-error.js +6 -0
  883. package/js/src/static_dependencies/node-fetch/errors/base.js +6 -0
  884. package/js/src/static_dependencies/node-fetch/errors/fetch-error.js +6 -0
  885. package/js/src/static_dependencies/node-fetch/headers.js +6 -0
  886. package/js/src/static_dependencies/node-fetch/index.js +6 -0
  887. package/js/src/static_dependencies/node-fetch/request.js +6 -0
  888. package/js/src/static_dependencies/node-fetch/response.js +6 -0
  889. package/js/src/static_dependencies/node-fetch/utils/get-search.js +6 -0
  890. package/js/src/static_dependencies/node-fetch/utils/is-redirect.js +6 -0
  891. package/js/src/static_dependencies/node-fetch/utils/is.js +6 -0
  892. package/js/src/static_dependencies/node-fetch/utils/referrer.js +6 -0
  893. package/js/src/static_dependencies/proxies/agent-base/helpers.js +6 -0
  894. package/js/src/static_dependencies/proxies/agent-base/index.js +6 -0
  895. package/js/src/static_dependencies/proxies/http-proxy-agent/index.js +6 -0
  896. package/js/src/static_dependencies/proxies/https-proxy-agent/index.js +6 -0
  897. package/js/src/static_dependencies/proxies/https-proxy-agent/parse-proxy-response.js +6 -0
  898. package/js/src/static_dependencies/qs/formats.js +6 -0
  899. package/js/src/static_dependencies/qs/index.js +6 -0
  900. package/js/src/static_dependencies/qs/parse.js +6 -0
  901. package/js/src/static_dependencies/qs/stringify.js +6 -0
  902. package/js/src/static_dependencies/qs/utils.js +6 -0
  903. package/js/src/static_dependencies/scure-base/index.js +6 -0
  904. package/js/src/static_dependencies/scure-bip32/index.js +6 -0
  905. package/js/src/static_dependencies/scure-bip39/index.js +6 -0
  906. package/js/src/static_dependencies/scure-bip39/wordlists/english.js +6 -0
  907. package/js/src/static_dependencies/scure-starknet/index.js +6 -0
  908. package/js/src/static_dependencies/starknet/constants.js +6 -0
  909. package/js/src/static_dependencies/starknet/index.js +6 -0
  910. package/js/src/static_dependencies/starknet/types/cairoEnum.js +6 -0
  911. package/js/src/static_dependencies/starknet/types/calldata.js +6 -0
  912. package/js/src/static_dependencies/starknet/types/index.js +6 -0
  913. package/js/src/static_dependencies/starknet/types/lib/contract/abi.js +6 -0
  914. package/js/src/static_dependencies/starknet/types/lib/contract/index.js +6 -0
  915. package/js/src/static_dependencies/starknet/types/lib/contract/legacy.js +6 -0
  916. package/js/src/static_dependencies/starknet/types/lib/contract/sierra.js +6 -0
  917. package/js/src/static_dependencies/starknet/types/lib/index.js +6 -0
  918. package/js/src/static_dependencies/starknet/types/typedData.js +6 -0
  919. package/js/src/static_dependencies/starknet/utils/address.js +6 -0
  920. package/js/src/static_dependencies/starknet/utils/assert.js +6 -0
  921. package/js/src/static_dependencies/starknet/utils/cairoDataTypes/felt.js +6 -0
  922. package/js/src/static_dependencies/starknet/utils/cairoDataTypes/uint256.js +6 -0
  923. package/js/src/static_dependencies/starknet/utils/cairoDataTypes/uint512.js +6 -0
  924. package/js/src/static_dependencies/starknet/utils/calldata/byteArray.js +6 -0
  925. package/js/src/static_dependencies/starknet/utils/calldata/cairo.js +6 -0
  926. package/js/src/static_dependencies/starknet/utils/calldata/enum/CairoCustomEnum.js +6 -0
  927. package/js/src/static_dependencies/starknet/utils/calldata/enum/CairoOption.js +6 -0
  928. package/js/src/static_dependencies/starknet/utils/calldata/enum/CairoResult.js +6 -0
  929. package/js/src/static_dependencies/starknet/utils/calldata/enum/index.js +6 -0
  930. package/js/src/static_dependencies/starknet/utils/calldata/formatter.js +6 -0
  931. package/js/src/static_dependencies/starknet/utils/calldata/index.js +6 -0
  932. package/js/src/static_dependencies/starknet/utils/calldata/parser/index.js +6 -0
  933. package/js/src/static_dependencies/starknet/utils/calldata/parser/interface.js +6 -0
  934. package/js/src/static_dependencies/starknet/utils/calldata/parser/parser-0-1.1.0.js +6 -0
  935. package/js/src/static_dependencies/starknet/utils/calldata/parser/parser-2.0.0.js +6 -0
  936. package/js/src/static_dependencies/starknet/utils/calldata/propertyOrder.js +6 -0
  937. package/js/src/static_dependencies/starknet/utils/calldata/requestParser.js +6 -0
  938. package/js/src/static_dependencies/starknet/utils/calldata/responseParser.js +6 -0
  939. package/js/src/static_dependencies/starknet/utils/calldata/tuple.js +6 -0
  940. package/js/src/static_dependencies/starknet/utils/calldata/validate.js +6 -0
  941. package/js/src/static_dependencies/starknet/utils/encode.js +6 -0
  942. package/js/src/static_dependencies/starknet/utils/hash/classHash.js +6 -0
  943. package/js/src/static_dependencies/starknet/utils/hash/index.js +6 -0
  944. package/js/src/static_dependencies/starknet/utils/merkle.js +6 -0
  945. package/js/src/static_dependencies/starknet/utils/num.js +6 -0
  946. package/js/src/static_dependencies/starknet/utils/selector.js +6 -0
  947. package/js/src/static_dependencies/starknet/utils/shortString.js +6 -0
  948. package/js/src/static_dependencies/starknet/utils/starknetId.js +6 -0
  949. package/js/src/static_dependencies/starknet/utils/typedData.js +6 -0
  950. package/js/src/static_dependencies/starknet/utils/uint256.js +6 -0
  951. package/js/src/static_dependencies/starknet/utils/url.js +6 -0
  952. package/js/src/static_dependencies/watchable/src/index.js +6 -0
  953. package/js/src/static_dependencies/watchable/src/types.js +6 -0
  954. package/js/src/static_dependencies/watchable/src/unpromise.js +6 -0
  955. package/js/src/static_dependencies/zklink/zklink-sdk-web.js +6 -0
  956. package/js/src/tokocrypto.js +6 -0
  957. package/js/src/toobit.js +6 -0
  958. package/js/src/upbit.js +6 -0
  959. package/js/src/weex.js +13 -0
  960. package/js/src/whitebit.js +6 -0
  961. package/js/src/woo.js +6 -0
  962. package/js/src/woofipro.js +6 -0
  963. package/js/src/xt.js +6 -1
  964. package/js/src/zaif.js +6 -0
  965. package/js/src/zebpay.js +6 -0
  966. package/package.json +15 -3
  967. package/dist/cjs/src/abstract/arkham.js +0 -11
  968. package/dist/cjs/src/abstract/wavesexchange.js +0 -11
  969. package/dist/cjs/src/abstract/yobit.js +0 -11
  970. package/dist/cjs/src/arkham.js +0 -2485
  971. package/dist/cjs/src/pro/arkham.js +0 -715
  972. package/dist/cjs/src/wavesexchange.js +0 -2783
  973. package/dist/cjs/src/yobit.js +0 -1466
  974. package/js/src/abstract/arkham.d.ts +0 -121
  975. package/js/src/abstract/arkham.js +0 -5
  976. package/js/src/abstract/wavesexchange.d.ts +0 -157
  977. package/js/src/abstract/wavesexchange.js +0 -5
  978. package/js/src/abstract/yobit.d.ts +0 -19
  979. package/js/src/abstract/yobit.js +0 -5
  980. package/js/src/arkham.d.ts +0 -358
  981. package/js/src/arkham.js +0 -2478
  982. package/js/src/pro/arkham.d.ts +0 -105
  983. package/js/src/pro/arkham.js +0 -708
  984. package/js/src/wavesexchange.d.ts +0 -244
  985. package/js/src/wavesexchange.js +0 -2776
  986. package/js/src/yobit.d.ts +0 -197
  987. package/js/src/yobit.js +0 -1459
package/js/src/yobit.js DELETED
@@ -1,1459 +0,0 @@
1
- // ---------------------------------------------------------------------------
2
- import Exchange from './abstract/yobit.js';
3
- import { ExchangeError, ArgumentsRequired, ExchangeNotAvailable, InvalidNonce, InsufficientFunds, OrderNotFound, DDoSProtection, InvalidOrder, AuthenticationError, RateLimitExceeded } from './base/errors.js';
4
- import { Precise } from './base/Precise.js';
5
- import { TICK_SIZE } from './base/functions/number.js';
6
- import { sha512 } from './static_dependencies/noble-hashes/sha512.js';
7
- // ---------------------------------------------------------------------------
8
- /**
9
- * @class yobit
10
- * @augments Exchange
11
- */
12
- export default class yobit extends Exchange {
13
- describe() {
14
- return this.deepExtend(super.describe(), {
15
- 'id': 'yobit',
16
- 'name': 'YoBit',
17
- 'countries': ['RU'],
18
- 'rateLimit': 2000,
19
- 'version': '3',
20
- 'pro': false,
21
- 'has': {
22
- 'CORS': undefined,
23
- 'spot': true,
24
- 'margin': false,
25
- 'swap': false,
26
- 'future': false,
27
- 'option': false,
28
- 'addMargin': false,
29
- 'borrowCrossMargin': false,
30
- 'borrowIsolatedMargin': false,
31
- 'borrowMargin': false,
32
- 'cancelOrder': true,
33
- 'closeAllPositions': false,
34
- 'closePosition': false,
35
- 'createDepositAddress': true,
36
- 'createMarketOrder': false,
37
- 'createOrder': true,
38
- 'createReduceOnlyOrder': false,
39
- 'createStopLimitOrder': false,
40
- 'createStopMarketOrder': false,
41
- 'createStopOrder': false,
42
- 'fetchAllGreeks': false,
43
- 'fetchBalance': true,
44
- 'fetchBorrowInterest': false,
45
- 'fetchBorrowRate': false,
46
- 'fetchBorrowRateHistories': false,
47
- 'fetchBorrowRateHistory': false,
48
- 'fetchBorrowRates': false,
49
- 'fetchBorrowRatesPerSymbol': false,
50
- 'fetchCrossBorrowRate': false,
51
- 'fetchCrossBorrowRates': false,
52
- 'fetchCurrencies': false,
53
- 'fetchDepositAddress': true,
54
- 'fetchDepositAddresses': false,
55
- 'fetchDepositAddressesByNetwork': false,
56
- 'fetchDeposits': false,
57
- 'fetchFundingHistory': false,
58
- 'fetchFundingInterval': false,
59
- 'fetchFundingIntervals': false,
60
- 'fetchFundingRate': false,
61
- 'fetchFundingRateHistory': false,
62
- 'fetchFundingRates': false,
63
- 'fetchGreeks': false,
64
- 'fetchIndexOHLCV': false,
65
- 'fetchIsolatedBorrowRate': false,
66
- 'fetchIsolatedBorrowRates': false,
67
- 'fetchIsolatedPositions': false,
68
- 'fetchLeverage': false,
69
- 'fetchLeverages': false,
70
- 'fetchLeverageTiers': false,
71
- 'fetchLiquidations': false,
72
- 'fetchLongShortRatio': false,
73
- 'fetchLongShortRatioHistory': false,
74
- 'fetchMarginAdjustmentHistory': false,
75
- 'fetchMarginMode': false,
76
- 'fetchMarginModes': false,
77
- 'fetchMarketLeverageTiers': false,
78
- 'fetchMarkets': true,
79
- 'fetchMarkOHLCV': false,
80
- 'fetchMarkPrice': false,
81
- 'fetchMarkPrices': false,
82
- 'fetchMyLiquidations': false,
83
- 'fetchMySettlementHistory': false,
84
- 'fetchMyTrades': true,
85
- 'fetchOpenInterest': false,
86
- 'fetchOpenInterestHistory': false,
87
- 'fetchOpenInterests': false,
88
- 'fetchOpenOrders': true,
89
- 'fetchOption': false,
90
- 'fetchOptionChain': false,
91
- 'fetchOrder': true,
92
- 'fetchOrderBook': true,
93
- 'fetchOrderBooks': true,
94
- 'fetchPosition': false,
95
- 'fetchPositionHistory': false,
96
- 'fetchPositionMode': false,
97
- 'fetchPositions': false,
98
- 'fetchPositionsForSymbol': false,
99
- 'fetchPositionsHistory': false,
100
- 'fetchPositionsRisk': false,
101
- 'fetchPremiumIndexOHLCV': false,
102
- 'fetchSettlementHistory': false,
103
- 'fetchTicker': true,
104
- 'fetchTickers': true,
105
- 'fetchTrades': true,
106
- 'fetchTradingFee': false,
107
- 'fetchTradingFees': true,
108
- 'fetchTransactions': false,
109
- 'fetchTransfer': false,
110
- 'fetchTransfers': false,
111
- 'fetchUnderlyingAssets': false,
112
- 'fetchVolatilityHistory': false,
113
- 'fetchWithdrawals': false,
114
- 'reduceMargin': false,
115
- 'repayCrossMargin': false,
116
- 'repayIsolatedMargin': false,
117
- 'repayMargin': false,
118
- 'setLeverage': false,
119
- 'setMargin': false,
120
- 'setMarginMode': false,
121
- 'setPositionMode': false,
122
- 'transfer': false,
123
- 'withdraw': true,
124
- 'ws': false,
125
- },
126
- 'urls': {
127
- 'logo': 'https://user-images.githubusercontent.com/1294454/27766910-cdcbfdae-5eea-11e7-9859-03fea873272d.jpg',
128
- 'api': {
129
- 'public': 'https://yobit.net/api',
130
- 'private': 'https://yobit.net/tapi',
131
- },
132
- 'www': 'https://www.yobit.net',
133
- 'doc': 'https://www.yobit.net/en/api/',
134
- 'fees': 'https://www.yobit.net/en/fees/',
135
- },
136
- 'api': {
137
- 'public': {
138
- 'get': {
139
- 'depth/{pair}': 1,
140
- 'info': 1,
141
- 'ticker/{pair}': 1,
142
- 'trades/{pair}': 1,
143
- },
144
- },
145
- 'private': {
146
- 'post': {
147
- 'ActiveOrders': 1,
148
- 'CancelOrder': 1,
149
- 'GetDepositAddress': 1,
150
- 'getInfo': 1,
151
- 'OrderInfo': 1,
152
- 'Trade': 1,
153
- 'TradeHistory': 1,
154
- 'WithdrawCoinsToAddress': 1,
155
- },
156
- },
157
- },
158
- 'fees': {
159
- 'trading': {
160
- 'maker': 0.002,
161
- 'taker': 0.002,
162
- },
163
- 'funding': {
164
- 'withdraw': {},
165
- },
166
- },
167
- 'commonCurrencies': {
168
- 'AIR': 'AirCoin',
169
- 'ANI': 'ANICoin',
170
- 'ANT': 'AntsCoin',
171
- 'ATMCHA': 'ATM',
172
- 'ASN': 'Ascension',
173
- 'AST': 'Astral',
174
- 'ATM': 'Autumncoin',
175
- 'AUR': 'AuroraCoin',
176
- 'BAB': 'Babel',
177
- 'BAN': 'BANcoin',
178
- 'BCC': 'BCH',
179
- 'BCS': 'BitcoinStake',
180
- 'BITS': 'Bitstar',
181
- 'BLN': 'Bulleon',
182
- 'BNS': 'Benefit Bonus Coin',
183
- 'BOT': 'BOTcoin',
184
- 'BON': 'BONES',
185
- 'BPC': 'BitcoinPremium',
186
- 'BST': 'BitStone',
187
- 'BTS': 'Bitshares2',
188
- 'CAT': 'BitClave',
189
- 'CBC': 'CryptoBossCoin',
190
- 'CMT': 'CometCoin',
191
- 'COIN': 'Coin.com',
192
- 'COV': 'Coven Coin',
193
- 'COVX': 'COV',
194
- 'CPC': 'Capricoin',
195
- 'CREDIT': 'Creditbit',
196
- 'CS': 'CryptoSpots',
197
- 'DCT': 'Discount',
198
- 'DFT': 'DraftCoin',
199
- 'DGD': 'DarkGoldCoin',
200
- 'DIRT': 'DIRTY',
201
- 'DROP': 'FaucetCoin',
202
- 'DSH': 'DASH',
203
- 'EGC': 'EverGreenCoin',
204
- 'EGG': 'EggCoin',
205
- 'EKO': 'EkoCoin',
206
- 'ENTER': 'ENTRC',
207
- 'EPC': 'ExperienceCoin',
208
- 'ESC': 'EdwardSnowden',
209
- 'EUROPE': 'EUROP',
210
- 'EXT': 'LifeExtension',
211
- 'FUND': 'FUNDChains',
212
- 'FUNK': 'FUNKCoin',
213
- 'FX': 'FCoin',
214
- 'GCC': 'GlobalCryptocurrency',
215
- 'GEN': 'Genstake',
216
- 'GENE': 'Genesiscoin',
217
- 'GMR': 'Gimmer',
218
- 'GOLD': 'GoldMint',
219
- 'GOT': 'Giotto Coin',
220
- 'GSX': 'GlowShares',
221
- 'GT': 'GTcoin',
222
- 'HTML5': 'HTML',
223
- 'HYPERX': 'HYPER',
224
- 'ICN': 'iCoin',
225
- 'INSANE': 'INSN',
226
- 'JNT': 'JointCoin',
227
- 'JPC': 'JupiterCoin',
228
- 'JWL': 'Jewels',
229
- 'KNC': 'KingN Coin',
230
- 'LBTCX': 'LiteBitcoin',
231
- 'LIZI': 'LiZi',
232
- 'LOC': 'LocoCoin',
233
- 'LOCX': 'LOC',
234
- 'LUNYR': 'LUN',
235
- 'LUN': 'LunarCoin',
236
- 'LUNA': 'Luna Coin',
237
- 'MASK': 'Yobit MASK',
238
- 'MDT': 'Midnight',
239
- 'MEME': 'Memez Token',
240
- 'MIS': 'MIScoin',
241
- 'MM': 'MasterMint',
242
- 'NAV': 'NavajoCoin',
243
- 'NBT': 'NiceBytes',
244
- 'OMG': 'OMGame',
245
- 'ONX': 'Onix',
246
- 'PAC': '$PAC',
247
- 'PLAY': 'PlayCoin',
248
- 'PIVX': 'Darknet',
249
- 'PURE': 'PurePOS',
250
- 'PUTIN': 'PutinCoin',
251
- 'SPACE': 'Spacecoin',
252
- 'STK': 'StakeCoin',
253
- 'SUB': 'Subscriptio',
254
- 'PAY': 'EPAY',
255
- 'PLC': 'Platin Coin',
256
- 'RAI': 'RaiderCoin',
257
- 'RCN': 'RCoin',
258
- 'REP': 'Republicoin',
259
- 'RUR': 'RUB',
260
- 'SBTC': 'Super Bitcoin',
261
- 'SMC': 'SmartCoin',
262
- 'SOLO': 'SoloCoin',
263
- 'SOUL': 'SoulCoin',
264
- 'STAR': 'StarCoin',
265
- 'SUPER': 'SuperCoin',
266
- 'TNS': 'Transcodium',
267
- 'TTC': 'TittieCoin',
268
- 'UNI': 'Universe',
269
- 'UST': 'Uservice',
270
- 'VOL': 'VolumeCoin',
271
- 'XIN': 'XINCoin',
272
- 'XMT': 'SummitCoin',
273
- 'XRA': 'Ratecoin',
274
- 'BCHN': 'BSV',
275
- },
276
- 'options': {
277
- 'maxUrlLength': 2048,
278
- 'fetchOrdersRequiresSymbol': true,
279
- 'networks': {
280
- 'ETH': 'ERC20',
281
- 'TRX': 'TRC20',
282
- 'BSC': 'BEP20',
283
- },
284
- },
285
- 'precisionMode': TICK_SIZE,
286
- 'exceptions': {
287
- 'exact': {
288
- '803': InvalidOrder,
289
- '804': InvalidOrder,
290
- '805': InvalidOrder,
291
- '806': InvalidOrder,
292
- '807': InvalidOrder,
293
- '831': InsufficientFunds,
294
- '832': InsufficientFunds,
295
- '833': OrderNotFound, // "Order with id X was not found." (cancelling non-existent, closed and cancelled order)
296
- },
297
- 'broad': {
298
- 'Invalid pair name': ExchangeError,
299
- 'invalid api key': AuthenticationError,
300
- 'invalid sign': AuthenticationError,
301
- 'api key dont have trade permission': AuthenticationError,
302
- 'invalid parameter': InvalidOrder,
303
- 'invalid order': InvalidOrder,
304
- 'The given order has already been cancelled': InvalidOrder,
305
- 'Requests too often': DDoSProtection,
306
- 'not available': ExchangeNotAvailable,
307
- 'data unavailable': ExchangeNotAvailable,
308
- 'external service unavailable': ExchangeNotAvailable,
309
- 'Total transaction amount': InvalidOrder,
310
- 'The given order has already been closed and cannot be cancelled': InvalidOrder,
311
- 'Insufficient funds': InsufficientFunds,
312
- 'invalid key': AuthenticationError,
313
- 'invalid nonce': InvalidNonce,
314
- 'Total order amount is less than minimal amount': InvalidOrder,
315
- 'Rate Limited': RateLimitExceeded,
316
- },
317
- },
318
- 'features': {
319
- 'spot': {
320
- 'sandbox': false,
321
- 'createOrder': {
322
- 'marginMode': false,
323
- 'triggerPrice': false,
324
- 'triggerDirection': false,
325
- 'triggerPriceType': undefined,
326
- 'stopLossPrice': false,
327
- 'takeProfitPrice': false,
328
- 'attachedStopLossTakeProfit': undefined,
329
- 'timeInForce': {
330
- 'IOC': false,
331
- 'FOK': false,
332
- 'PO': false,
333
- 'GTD': false,
334
- },
335
- 'hedged': false,
336
- 'trailing': false,
337
- 'leverage': false,
338
- 'marketBuyByCost': false,
339
- 'marketBuyRequiresPrice': false,
340
- 'selfTradePrevention': false,
341
- 'iceberg': false,
342
- },
343
- 'createOrders': undefined,
344
- 'fetchMyTrades': {
345
- 'marginMode': false,
346
- 'limit': 1000,
347
- 'daysBack': 100000,
348
- 'untilDays': 100000,
349
- 'symbolRequired': true,
350
- },
351
- 'fetchOrder': {
352
- 'marginMode': false,
353
- 'trigger': false,
354
- 'trailing': false,
355
- 'symbolRequired': false,
356
- },
357
- 'fetchOpenOrders': {
358
- 'marginMode': false,
359
- 'limit': undefined,
360
- 'trigger': false,
361
- 'trailing': false,
362
- 'symbolRequired': true,
363
- },
364
- 'fetchOrders': undefined,
365
- 'fetchClosedOrders': undefined,
366
- 'fetchOHLCV': undefined,
367
- },
368
- 'swap': {
369
- 'linear': undefined,
370
- 'inverse': undefined,
371
- },
372
- 'future': {
373
- 'linear': undefined,
374
- 'inverse': undefined,
375
- },
376
- },
377
- 'orders': {}, // orders cache / emulation
378
- });
379
- }
380
- parseBalance(response) {
381
- const balances = this.safeDict(response, 'return', {});
382
- const timestamp = this.safeInteger(balances, 'server_time');
383
- const result = {
384
- 'info': response,
385
- 'timestamp': timestamp,
386
- 'datetime': this.iso8601(timestamp),
387
- };
388
- const free = this.safeDict(balances, 'funds', {});
389
- const total = this.safeDict(balances, 'funds_incl_orders', {});
390
- const currencyIds = Object.keys(this.extend(free, total));
391
- for (let i = 0; i < currencyIds.length; i++) {
392
- const currencyId = currencyIds[i];
393
- const code = this.safeCurrencyCode(currencyId);
394
- const account = this.account();
395
- account['free'] = this.safeString(free, currencyId);
396
- account['total'] = this.safeString(total, currencyId);
397
- result[code] = account;
398
- }
399
- return this.safeBalance(result);
400
- }
401
- /**
402
- * @method
403
- * @name yobit#fetchBalance
404
- * @see https://yobit.net/en/api
405
- * @description query for balance and get the amount of funds available for trading or funds locked in orders
406
- * @param {object} [params] extra parameters specific to the exchange API endpoint
407
- * @returns {object} a [balance structure]{@link https://docs.ccxt.com/?id=balance-structure}
408
- */
409
- async fetchBalance(params = {}) {
410
- await this.loadMarkets();
411
- const response = await this.privatePostGetInfo(params);
412
- //
413
- // {
414
- // "success":1,
415
- // "return":{
416
- // "funds":{
417
- // "ltc":22,
418
- // "nvc":423.998,
419
- // "ppc":10,
420
- // },
421
- // "funds_incl_orders":{
422
- // "ltc":32,
423
- // "nvc":523.998,
424
- // "ppc":20,
425
- // },
426
- // "rights":{
427
- // "info":1,
428
- // "trade":0,
429
- // "withdraw":0
430
- // },
431
- // "transaction_count":0,
432
- // "open_orders":1,
433
- // "server_time":1418654530
434
- // }
435
- // }
436
- //
437
- return this.parseBalance(response);
438
- }
439
- /**
440
- * @method
441
- * @name yobit#fetchMarkets
442
- * @see https://yobit.net/en/api
443
- * @description retrieves data on all markets for yobit
444
- * @param {object} [params] extra parameters specific to the exchange API endpoint
445
- * @returns {object[]} an array of objects representing market data
446
- */
447
- async fetchMarkets(params = {}) {
448
- const response = await this.publicGetInfo(params);
449
- //
450
- // {
451
- // "server_time":1615856752,
452
- // "pairs":{
453
- // "ltc_btc":{
454
- // "decimal_places":8,
455
- // "min_price":0.00000001,
456
- // "max_price":10000,
457
- // "min_amount":0.0001,
458
- // "min_total":0.0001,
459
- // "hidden":0,
460
- // "fee":0.2,
461
- // "fee_buyer":0.2,
462
- // "fee_seller":0.2
463
- // },
464
- // },
465
- // }
466
- //
467
- const markets = this.safeDict(response, 'pairs', {});
468
- const keys = Object.keys(markets);
469
- const result = [];
470
- for (let i = 0; i < keys.length; i++) {
471
- const id = keys[i];
472
- const market = markets[id];
473
- const [baseId, quoteId] = id.split('_');
474
- let base = baseId.toUpperCase();
475
- let quote = quoteId.toUpperCase();
476
- base = this.safeCurrencyCode(base);
477
- quote = this.safeCurrencyCode(quote);
478
- const hidden = this.safeInteger(market, 'hidden');
479
- let feeString = this.safeString(market, 'fee');
480
- feeString = Precise.stringDiv(feeString, '100');
481
- // yobit maker = taker
482
- result.push({
483
- 'id': id,
484
- 'symbol': base + '/' + quote,
485
- 'base': base,
486
- 'quote': quote,
487
- 'settle': undefined,
488
- 'baseId': baseId,
489
- 'quoteId': quoteId,
490
- 'settleId': undefined,
491
- 'type': 'spot',
492
- 'spot': true,
493
- 'margin': false,
494
- 'swap': false,
495
- 'future': false,
496
- 'option': false,
497
- 'active': (hidden === 0),
498
- 'contract': false,
499
- 'linear': undefined,
500
- 'inverse': undefined,
501
- 'taker': this.parseNumber(feeString),
502
- 'maker': this.parseNumber(feeString),
503
- 'contractSize': undefined,
504
- 'expiry': undefined,
505
- 'expiryDatetime': undefined,
506
- 'strike': undefined,
507
- 'optionType': undefined,
508
- 'precision': {
509
- 'amount': this.parseNumber(this.parsePrecision(this.safeString(market, 'decimal_places'))),
510
- 'price': this.parseNumber(this.parsePrecision(this.safeString(market, 'decimal_places'))),
511
- },
512
- 'limits': {
513
- 'leverage': {
514
- 'min': undefined,
515
- 'max': undefined,
516
- },
517
- 'amount': {
518
- 'min': this.safeNumber(market, 'min_amount'),
519
- 'max': this.safeNumber(market, 'max_amount'),
520
- },
521
- 'price': {
522
- 'min': this.safeNumber(market, 'min_price'),
523
- 'max': this.safeNumber(market, 'max_price'),
524
- },
525
- 'cost': {
526
- 'min': this.safeNumber(market, 'min_total'),
527
- 'max': undefined,
528
- },
529
- },
530
- 'created': undefined,
531
- 'info': market,
532
- });
533
- }
534
- return result;
535
- }
536
- /**
537
- * @method
538
- * @name yobit#fetchOrderBook
539
- * @see https://yobit.net/en/api
540
- * @description fetches information on open orders with bid (buy) and ask (sell) prices, volumes and other data
541
- * @param {string} symbol unified symbol of the market to fetch the order book for
542
- * @param {int} [limit] the maximum amount of order book entries to return
543
- * @param {object} [params] extra parameters specific to the exchange API endpoint
544
- * @returns {object} A dictionary of [order book structures]{@link https://docs.ccxt.com/?id=order-book-structure} indexed by market symbols
545
- */
546
- async fetchOrderBook(symbol, limit = undefined, params = {}) {
547
- await this.loadMarkets();
548
- const market = this.market(symbol);
549
- const request = {
550
- 'pair': market['id'],
551
- };
552
- if (limit !== undefined) {
553
- request['limit'] = limit; // default = 150, max = 2000
554
- }
555
- const response = await this.publicGetDepthPair(this.extend(request, params));
556
- const market_id_in_reponse = (market['id'] in response);
557
- if (!market_id_in_reponse) {
558
- throw new ExchangeError(this.id + ' ' + market['symbol'] + ' order book is empty or not available');
559
- }
560
- const orderbook = response[market['id']];
561
- return this.parseOrderBook(orderbook, symbol);
562
- }
563
- /**
564
- * @method
565
- * @name yobit#fetchOrderBooks
566
- * @see https://yobit.net/en/api
567
- * @description fetches information on open orders with bid (buy) and ask (sell) prices, volumes and other data for multiple markets
568
- * @param {string[]|undefined} symbols list of unified market symbols, all symbols fetched if undefined, default is undefined
569
- * @param {int} [limit] max number of entries per orderbook to return, default is undefined
570
- * @param {object} [params] extra parameters specific to the exchange API endpoint
571
- * @returns {object} a dictionary of [order book structures]{@link https://docs.ccxt.com/?id=order-book-structure} indexed by market symbol
572
- */
573
- async fetchOrderBooks(symbols = undefined, limit = undefined, params = {}) {
574
- await this.loadMarkets();
575
- let ids = undefined;
576
- if (symbols === undefined) {
577
- const allIds = this.ids;
578
- ids = allIds.join('-');
579
- // max URL length is 2083 symbols, including http schema, hostname, tld, etc...
580
- if (ids.length > 2048) {
581
- const numIds = this.ids.length;
582
- throw new ExchangeError(this.id + ' fetchOrderBooks() has ' + numIds.toString() + ' symbols exceeding max URL length, you are required to specify a list of symbols in the first argument to fetchOrderBooks');
583
- }
584
- }
585
- else {
586
- ids = this.marketIds(symbols);
587
- ids = ids.join('-');
588
- }
589
- const request = {
590
- 'pair': ids,
591
- // 'ignore_invalid': true,
592
- };
593
- if (limit !== undefined) {
594
- request['limit'] = limit;
595
- }
596
- const response = await this.publicGetDepthPair(this.extend(request, params));
597
- const result = {};
598
- ids = Object.keys(response);
599
- for (let i = 0; i < ids.length; i++) {
600
- const id = ids[i];
601
- const symbol = this.safeSymbol(id);
602
- result[symbol] = this.parseOrderBook(response[id], symbol);
603
- }
604
- return result;
605
- }
606
- parseTicker(ticker, market = undefined) {
607
- //
608
- // {
609
- // "high": 0.03497582,
610
- // "low": 0.03248474,
611
- // "avg": 0.03373028,
612
- // "vol": 120.11485715062999,
613
- // "vol_cur": 3572.24914074,
614
- // "last": 0.0337611,
615
- // "buy": 0.0337442,
616
- // "sell": 0.03377798,
617
- // "updated": 1537522009
618
- // }
619
- //
620
- const timestamp = this.safeTimestamp(ticker, 'updated');
621
- const last = this.safeString(ticker, 'last');
622
- return this.safeTicker({
623
- 'symbol': this.safeSymbol(undefined, market),
624
- 'timestamp': timestamp,
625
- 'datetime': this.iso8601(timestamp),
626
- 'high': this.safeString(ticker, 'high'),
627
- 'low': this.safeString(ticker, 'low'),
628
- 'bid': this.safeString(ticker, 'buy'),
629
- 'bidVolume': undefined,
630
- 'ask': this.safeString(ticker, 'sell'),
631
- 'askVolume': undefined,
632
- 'vwap': undefined,
633
- 'open': undefined,
634
- 'close': last,
635
- 'last': last,
636
- 'previousClose': undefined,
637
- 'change': undefined,
638
- 'percentage': undefined,
639
- 'average': this.safeString(ticker, 'avg'),
640
- 'baseVolume': this.safeString(ticker, 'vol_cur'),
641
- 'quoteVolume': this.safeString(ticker, 'vol'),
642
- 'info': ticker,
643
- }, market);
644
- }
645
- async fetchTickersHelper(idsString, params = {}) {
646
- const request = {
647
- 'pair': idsString,
648
- };
649
- const tickers = await this.publicGetTickerPair(this.extend(request, params));
650
- const result = {};
651
- const keys = Object.keys(tickers);
652
- for (let k = 0; k < keys.length; k++) {
653
- const id = keys[k];
654
- const ticker = tickers[id];
655
- const market = this.safeMarket(id);
656
- const symbol = market['symbol'];
657
- result[symbol] = this.parseTicker(ticker, market);
658
- }
659
- return result;
660
- }
661
- /**
662
- * @method
663
- * @name yobit#fetchTickers
664
- * @see https://yobit.net/en/api
665
- * @description fetches price tickers for multiple markets, statistical information calculated over the past 24 hours for each market
666
- * @param {string[]|undefined} symbols unified symbols of the markets to fetch the ticker for, all market tickers are returned if not assigned
667
- * @param {object} [params] extra parameters specific to the exchange API endpoint
668
- * @param {object} [params.all] you can set to `true` for convenience to fetch all tickers from this exchange by sending multiple requests
669
- * @returns {object} a dictionary of [ticker structures]{@link https://docs.ccxt.com/?id=ticker-structure}
670
- */
671
- async fetchTickers(symbols = undefined, params = {}) {
672
- let allSymbols = undefined;
673
- [allSymbols, params] = this.handleParamBool(params, 'all', false);
674
- if (symbols === undefined && !allSymbols) {
675
- throw new ArgumentsRequired(this.id + ' fetchTickers() requires "symbols" argument or use `params["all"] = true` to send multiple requests for all markets');
676
- }
677
- await this.loadMarkets();
678
- const promises = [];
679
- const maxLength = this.safeInteger(this.options, 'maxUrlLength', 2048);
680
- // max URL length is 2048 symbols, including http schema, hostname, tld, etc...
681
- const lenghtOfBaseUrl = 40; // safe space for the url including api-base and endpoint dir is 30 chars
682
- if (allSymbols) {
683
- symbols = this.symbols;
684
- let ids = '';
685
- for (let i = 0; i < this.ids.length; i++) {
686
- const id = this.ids[i];
687
- const prefix = (ids === '') ? '' : '-';
688
- ids += prefix + id;
689
- if (ids.length > maxLength) {
690
- promises.push(this.fetchTickersHelper(ids, params));
691
- ids = '';
692
- }
693
- }
694
- if (ids !== '') {
695
- promises.push(this.fetchTickersHelper(ids, params));
696
- }
697
- }
698
- else {
699
- symbols = this.marketSymbols(symbols);
700
- const ids = this.marketIds(symbols);
701
- const idsLength = ids.length;
702
- const idsString = ids.join('-');
703
- const actualLength = idsString.length + lenghtOfBaseUrl;
704
- if (actualLength > maxLength) {
705
- throw new ArgumentsRequired(this.id + ' fetchTickers() is being requested for ' + idsLength.toString() + ' markets (which has an URL length of ' + actualLength.toString() + ' characters), but it exceedes max URL length (' + maxLength.toString() + '), please pass limisted symbols array to fetchTickers to fit in one request');
706
- }
707
- promises.push(this.fetchTickersHelper(idsString, params));
708
- }
709
- const resultAll = await Promise.all(promises);
710
- let finalResult = {};
711
- for (let i = 0; i < resultAll.length; i++) {
712
- const result = this.filterByArrayTickers(resultAll[i], 'symbol', symbols);
713
- finalResult = this.extend(finalResult, result);
714
- }
715
- return finalResult;
716
- }
717
- /**
718
- * @method
719
- * @name yobit#fetchTicker
720
- * @see https://yobit.net/en/api
721
- * @description fetches a price ticker, a statistical calculation with the information calculated over the past 24 hours for a specific market
722
- * @param {string} symbol unified symbol of the market to fetch the ticker for
723
- * @param {object} [params] extra parameters specific to the exchange API endpoint
724
- * @returns {object} a [ticker structure]{@link https://docs.ccxt.com/?id=ticker-structure}
725
- */
726
- async fetchTicker(symbol, params = {}) {
727
- const tickers = await this.fetchTickers([symbol], params);
728
- return tickers[symbol];
729
- }
730
- parseTrade(trade, market = undefined) {
731
- //
732
- // fetchTrades (public)
733
- //
734
- // {
735
- // "type":"bid",
736
- // "price":0.14046179,
737
- // "amount":0.001,
738
- // "tid":200256901,
739
- // "timestamp":1649861004
740
- // }
741
- //
742
- // fetchMyTrades (private)
743
- //
744
- // {
745
- // "pair":"doge_usdt",
746
- // "type":"sell",
747
- // "amount":139,
748
- // "rate":0.139,
749
- // "order_id":"2101103631773172",
750
- // "is_your_order":1,
751
- // "timestamp":"1649861561"
752
- // }
753
- //
754
- const timestamp = this.safeTimestamp(trade, 'timestamp');
755
- let side = this.safeString(trade, 'type');
756
- if (side === 'ask') {
757
- side = 'sell';
758
- }
759
- else if (side === 'bid') {
760
- side = 'buy';
761
- }
762
- const priceString = this.safeString2(trade, 'rate', 'price');
763
- const id = this.safeString2(trade, 'trade_id', 'tid');
764
- const order = this.safeString(trade, 'order_id');
765
- const marketId = this.safeString(trade, 'pair');
766
- const symbol = this.safeSymbol(marketId, market);
767
- const amountString = this.safeString(trade, 'amount');
768
- // arguments for calculateFee (need to be numbers)
769
- const price = this.parseNumber(priceString);
770
- const amount = this.parseNumber(amountString);
771
- const type = 'limit'; // all trades are still limit trades
772
- let fee = undefined;
773
- const feeCostString = this.safeNumber(trade, 'commission');
774
- if (feeCostString !== undefined) {
775
- const feeCurrencyId = this.safeString(trade, 'commissionCurrency');
776
- const feeCurrencyCode = this.safeCurrencyCode(feeCurrencyId);
777
- fee = {
778
- 'cost': feeCostString,
779
- 'currency': feeCurrencyCode,
780
- };
781
- }
782
- const isYourOrder = this.safeString(trade, 'is_your_order');
783
- if (isYourOrder !== undefined) {
784
- if (fee === undefined) {
785
- const feeInNumbers = this.calculateFee(symbol, type, side, amount, price, 'taker');
786
- fee = {
787
- 'currency': this.safeString(feeInNumbers, 'currency'),
788
- 'cost': this.safeString(feeInNumbers, 'cost'),
789
- 'rate': this.safeString(feeInNumbers, 'rate'),
790
- };
791
- }
792
- }
793
- return this.safeTrade({
794
- 'id': id,
795
- 'order': order,
796
- 'timestamp': timestamp,
797
- 'datetime': this.iso8601(timestamp),
798
- 'symbol': symbol,
799
- 'type': type,
800
- 'side': side,
801
- 'takerOrMaker': undefined,
802
- 'price': priceString,
803
- 'amount': amountString,
804
- 'cost': undefined,
805
- 'fee': fee,
806
- 'info': trade,
807
- }, market);
808
- }
809
- /**
810
- * @method
811
- * @name yobit#fetchTrades
812
- * @see https://yobit.net/en/api
813
- * @description get the list of most recent trades for a particular symbol
814
- * @param {string} symbol unified symbol of the market to fetch trades for
815
- * @param {int} [since] timestamp in ms of the earliest trade to fetch
816
- * @param {int} [limit] the maximum amount of trades to fetch
817
- * @param {object} [params] extra parameters specific to the exchange API endpoint
818
- * @returns {Trade[]} a list of [trade structures]{@link https://docs.ccxt.com/?id=public-trades}
819
- */
820
- async fetchTrades(symbol, since = undefined, limit = undefined, params = {}) {
821
- await this.loadMarkets();
822
- const market = this.market(symbol);
823
- const request = {
824
- 'pair': market['id'],
825
- };
826
- if (limit !== undefined) {
827
- request['limit'] = limit;
828
- }
829
- const response = await this.publicGetTradesPair(this.extend(request, params));
830
- //
831
- // {
832
- // "doge_usdt": [
833
- // {
834
- // "type":"ask",
835
- // "price":0.13956743,
836
- // "amount":0.0008,
837
- // "tid":200256900,
838
- // "timestamp":1649860521
839
- // },
840
- // ]
841
- // }
842
- //
843
- if (Array.isArray(response)) {
844
- const numElements = response.length;
845
- if (numElements === 0) {
846
- return [];
847
- }
848
- }
849
- const result = this.safeList(response, market['id'], []);
850
- return this.parseTrades(result, market, since, limit);
851
- }
852
- /**
853
- * @method
854
- * @name yobit#fetchTradingFees
855
- * @see https://yobit.net/en/api
856
- * @description fetch the trading fees for multiple markets
857
- * @param {object} [params] extra parameters specific to the exchange API endpoint
858
- * @returns {object} a dictionary of [fee structures]{@link https://docs.ccxt.com/?id=fee-structure} indexed by market symbols
859
- */
860
- async fetchTradingFees(params = {}) {
861
- await this.loadMarkets();
862
- const response = await this.publicGetInfo(params);
863
- //
864
- // {
865
- // "server_time":1615856752,
866
- // "pairs":{
867
- // "ltc_btc":{
868
- // "decimal_places":8,
869
- // "min_price":0.00000001,
870
- // "max_price":10000,
871
- // "min_amount":0.0001,
872
- // "min_total":0.0001,
873
- // "hidden":0,
874
- // "fee":0.2,
875
- // "fee_buyer":0.2,
876
- // "fee_seller":0.2
877
- // },
878
- // ...
879
- // },
880
- // }
881
- //
882
- const pairs = this.safeDict(response, 'pairs', {});
883
- const marketIds = Object.keys(pairs);
884
- const result = {};
885
- for (let i = 0; i < marketIds.length; i++) {
886
- const marketId = marketIds[i];
887
- const pair = this.safeDict(pairs, marketId, {});
888
- const symbol = this.safeSymbol(marketId, undefined, '_');
889
- const takerString = this.safeString(pair, 'fee_buyer');
890
- const makerString = this.safeString(pair, 'fee_seller');
891
- const taker = this.parseNumber(Precise.stringDiv(takerString, '100'));
892
- const maker = this.parseNumber(Precise.stringDiv(makerString, '100'));
893
- result[symbol] = {
894
- 'info': pair,
895
- 'symbol': symbol,
896
- 'taker': taker,
897
- 'maker': maker,
898
- 'percentage': true,
899
- 'tierBased': false,
900
- };
901
- }
902
- return result;
903
- }
904
- /**
905
- * @method
906
- * @name yobit#createOrder
907
- * @see https://yobit.net/en/api
908
- * @description create a trade order
909
- * @param {string} symbol unified symbol of the market to create an order in
910
- * @param {string} type must be 'limit'
911
- * @param {string} side 'buy' or 'sell'
912
- * @param {float} amount how much of currency you want to trade in units of base currency
913
- * @param {float} [price] the price at which the order is to be fulfilled, in units of the quote currency, ignored in market orders
914
- * @param {object} [params] extra parameters specific to the exchange API endpoint
915
- * @returns {object} an [order structure]{@link https://docs.ccxt.com/?id=order-structure}
916
- */
917
- async createOrder(symbol, type, side, amount, price = undefined, params = {}) {
918
- if (type === 'market') {
919
- throw new ExchangeError(this.id + ' createOrder() allows limit orders only');
920
- }
921
- await this.loadMarkets();
922
- const market = this.market(symbol);
923
- const request = {
924
- 'pair': market['id'],
925
- 'type': side,
926
- 'amount': this.amountToPrecision(symbol, amount),
927
- 'rate': this.priceToPrecision(symbol, price),
928
- };
929
- const response = await this.privatePostTrade(this.extend(request, params));
930
- //
931
- // {
932
- // "success":1,
933
- // "return": {
934
- // "received":0,
935
- // "remains":10,
936
- // "order_id":1101103635125179,
937
- // "funds": {
938
- // "usdt":27.84756553,
939
- // "usdttrc20":0,
940
- // "doge":19.98327206
941
- // },
942
- // "funds_incl_orders": {
943
- // "usdt":30.35256553,
944
- // "usdttrc20":0,
945
- // "doge":19.98327206
946
- // },
947
- // "server_time":1650114256
948
- // }
949
- // }
950
- //
951
- const result = this.safeDict(response, 'return');
952
- return this.parseOrder(result, market);
953
- }
954
- /**
955
- * @method
956
- * @name yobit#cancelOrder
957
- * @see https://yobit.net/en/api
958
- * @description cancels an open order
959
- * @param {string} id order id
960
- * @param {string} symbol not used by yobit cancelOrder ()
961
- * @param {object} [params] extra parameters specific to the exchange API endpoint
962
- * @returns {object} An [order structure]{@link https://docs.ccxt.com/?id=order-structure}
963
- */
964
- async cancelOrder(id, symbol = undefined, params = {}) {
965
- await this.loadMarkets();
966
- const request = {
967
- 'order_id': parseInt(id),
968
- };
969
- const response = await this.privatePostCancelOrder(this.extend(request, params));
970
- //
971
- // {
972
- // "success":1,
973
- // "return": {
974
- // "order_id":1101103632552304,
975
- // "funds": {
976
- // "usdt":30.71055443,
977
- // "usdttrc20":0,
978
- // "doge":9.98327206
979
- // },
980
- // "funds_incl_orders": {
981
- // "usdt":31.81275443,
982
- // "usdttrc20":0,
983
- // "doge":9.98327206
984
- // },
985
- // "server_time":1649918298
986
- // }
987
- // }
988
- //
989
- const result = this.safeDict(response, 'return', {});
990
- return this.parseOrder(result);
991
- }
992
- parseOrderStatus(status) {
993
- const statuses = {
994
- '0': 'open',
995
- '1': 'closed',
996
- '2': 'canceled',
997
- '3': 'open', // or partially-filled and canceled? https://github.com/ccxt/ccxt/issues/1594
998
- };
999
- return this.safeString(statuses, status, status);
1000
- }
1001
- parseOrder(order, market = undefined) {
1002
- //
1003
- // createOrder (private)
1004
- //
1005
- // {
1006
- // "received":0,
1007
- // "remains":10,
1008
- // "order_id":1101103635125179,
1009
- // "funds": {
1010
- // "usdt":27.84756553,
1011
- // "usdttrc20":0,
1012
- // "doge":19.98327206
1013
- // },
1014
- // "funds_incl_orders": {
1015
- // "usdt":30.35256553,
1016
- // "usdttrc20":0,
1017
- // "doge":19.98327206
1018
- // },
1019
- // "server_time":1650114256
1020
- // }
1021
- //
1022
- // fetchOrder (private)
1023
- //
1024
- // {
1025
- // "id: "1101103635103335", // id-field is manually added in fetchOrder () from exchange response id-order dictionary structure
1026
- // "pair":"doge_usdt",
1027
- // "type":"buy",
1028
- // "start_amount":10,
1029
- // "amount":10,
1030
- // "rate":0.05,
1031
- // "timestamp_created":"1650112553",
1032
- // "status":0
1033
- // }
1034
- //
1035
- // fetchOpenOrders (private)
1036
- //
1037
- // {
1038
- // "id":"1101103635103335", // id-field is manually added in fetchOpenOrders () from exchange response id-order dictionary structure
1039
- // "pair":"doge_usdt",
1040
- // "type":"buy",
1041
- // "amount":10,
1042
- // "rate":0.05,
1043
- // "timestamp_created":"1650112553",
1044
- // "status":0
1045
- // }
1046
- //
1047
- // cancelOrder (private)
1048
- //
1049
- // {
1050
- // "order_id":1101103634000197,
1051
- // "funds": {
1052
- // "usdt":31.81275443,
1053
- // "usdttrc20":0,
1054
- // "doge":9.98327206
1055
- // },
1056
- // "funds_incl_orders": {
1057
- // "usdt":31.81275443,
1058
- // "usdttrc20":0,
1059
- // "doge":9.98327206
1060
- // }
1061
- // }
1062
- //
1063
- let id = this.safeString2(order, 'id', 'order_id');
1064
- let status = this.parseOrderStatus(this.safeString(order, 'status', 'open'));
1065
- if (id === '0') {
1066
- id = this.safeString(order, 'init_order_id');
1067
- status = 'closed';
1068
- }
1069
- const timestamp = this.safeTimestamp2(order, 'timestamp_created', 'server_time');
1070
- const marketId = this.safeString(order, 'pair');
1071
- const symbol = this.safeSymbol(marketId, market);
1072
- const amount = this.safeString(order, 'start_amount');
1073
- const remaining = this.safeString2(order, 'amount', 'remains');
1074
- const filled = this.safeString(order, 'received', '0.0');
1075
- const price = this.safeString(order, 'rate');
1076
- const fee = undefined;
1077
- const type = 'limit';
1078
- const side = this.safeString(order, 'type');
1079
- return this.safeOrder({
1080
- 'info': order,
1081
- 'id': id,
1082
- 'clientOrderId': undefined,
1083
- 'symbol': symbol,
1084
- 'timestamp': timestamp,
1085
- 'datetime': this.iso8601(timestamp),
1086
- 'lastTradeTimestamp': undefined,
1087
- 'type': type,
1088
- 'timeInForce': undefined,
1089
- 'postOnly': undefined,
1090
- 'side': side,
1091
- 'price': price,
1092
- 'triggerPrice': undefined,
1093
- 'cost': undefined,
1094
- 'amount': amount,
1095
- 'remaining': remaining,
1096
- 'filled': filled,
1097
- 'status': status,
1098
- 'fee': fee,
1099
- 'average': undefined,
1100
- 'trades': undefined,
1101
- }, market);
1102
- }
1103
- /**
1104
- * @method
1105
- * @name yobit#fetchOrder
1106
- * @see https://yobit.net/en/api
1107
- * @description fetches information on an order made by the user
1108
- * @param {string} id order id
1109
- * @param {string} symbol not used by yobit fetchOrder
1110
- * @param {object} [params] extra parameters specific to the exchange API endpoint
1111
- * @returns {object} An [order structure]{@link https://docs.ccxt.com/?id=order-structure}
1112
- */
1113
- async fetchOrder(id, symbol = undefined, params = {}) {
1114
- await this.loadMarkets();
1115
- const intId = parseInt(id);
1116
- const request = {
1117
- 'order_id': intId,
1118
- };
1119
- const response = await this.privatePostOrderInfo(this.extend(request, params));
1120
- id = id.toString();
1121
- const orders = this.safeDict(response, 'return', {});
1122
- //
1123
- // {
1124
- // "success":1,
1125
- // "return": {
1126
- // "1101103635103335": {
1127
- // "pair":"doge_usdt",
1128
- // "type":"buy",
1129
- // "start_amount":10,
1130
- // "amount":10,
1131
- // "rate":0.05,
1132
- // "timestamp_created":"1650112553",
1133
- // "status":0
1134
- // }
1135
- // }
1136
- // }
1137
- //
1138
- return this.parseOrder(this.extend({ 'id': id }, orders[id]));
1139
- }
1140
- /**
1141
- * @method
1142
- * @name yobit#fetchOpenOrders
1143
- * @see https://yobit.net/en/api
1144
- * @description fetch all unfilled currently open orders
1145
- * @param {string} symbol unified market symbol
1146
- * @param {int} [since] the earliest time in ms to fetch open orders for
1147
- * @param {int} [limit] the maximum number of open order structures to retrieve
1148
- * @param {object} [params] extra parameters specific to the exchange API endpoint
1149
- * @returns {Order[]} a list of [order structures]{@link https://docs.ccxt.com/?id=order-structure}
1150
- */
1151
- async fetchOpenOrders(symbol = undefined, since = undefined, limit = undefined, params = {}) {
1152
- if (symbol === undefined) {
1153
- throw new ArgumentsRequired(this.id + ' fetchOpenOrders() requires a symbol argument');
1154
- }
1155
- await this.loadMarkets();
1156
- const request = {};
1157
- const market = undefined;
1158
- if (symbol !== undefined) {
1159
- const marketInner = this.market(symbol);
1160
- request['pair'] = marketInner['id'];
1161
- }
1162
- const response = await this.privatePostActiveOrders(this.extend(request, params));
1163
- //
1164
- // {
1165
- // "success":1,
1166
- // "return": {
1167
- // "1101103634006799": {
1168
- // "pair":"doge_usdt",
1169
- // "type":"buy",
1170
- // "amount":10,
1171
- // "rate":0.1,
1172
- // "timestamp_created":"1650034937",
1173
- // "status":0
1174
- // },
1175
- // "1101103634006738": {
1176
- // "pair":"doge_usdt",
1177
- // "type":"buy",
1178
- // "amount":10,
1179
- // "rate":0.1,
1180
- // "timestamp_created":"1650034932",
1181
- // "status":0
1182
- // }
1183
- // }
1184
- // }
1185
- //
1186
- const result = this.safeDict(response, 'return', {});
1187
- return this.parseOrders(result, market, since, limit);
1188
- }
1189
- /**
1190
- * @method
1191
- * @name yobit#fetchMyTrades
1192
- * @see https://yobit.net/en/api
1193
- * @description fetch all trades made by the user
1194
- * @param {string} symbol unified market symbol
1195
- * @param {int} [since] the earliest time in ms to fetch trades for
1196
- * @param {int} [limit] the maximum number of trades structures to retrieve
1197
- * @param {object} [params] extra parameters specific to the exchange API endpoint
1198
- * @returns {Trade[]} a list of [trade structures]{@link https://docs.ccxt.com/?id=trade-structure}
1199
- */
1200
- async fetchMyTrades(symbol = undefined, since = undefined, limit = undefined, params = {}) {
1201
- if (symbol === undefined) {
1202
- throw new ArgumentsRequired(this.id + ' fetchMyTrades() requires a symbol argument');
1203
- }
1204
- await this.loadMarkets();
1205
- const market = this.market(symbol);
1206
- // some derived classes use camelcase notation for request fields
1207
- const request = {
1208
- // 'from': 123456789, // trade ID, from which the display starts numerical 0 (test result: liqui ignores this field)
1209
- // 'count': 1000, // the number of trades for display numerical, default = 1000
1210
- // 'from_id': trade ID, from which the display starts numerical 0
1211
- // 'end_id': trade ID on which the display ends numerical ∞
1212
- // 'order': 'ASC', // sorting, default = DESC (test result: liqui ignores this field, most recent trade always goes last)
1213
- // 'since': 1234567890, // UTC start time, default = 0 (test result: liqui ignores this field)
1214
- // 'end': 1234567890, // UTC end time, default = ∞ (test result: liqui ignores this field)
1215
- 'pair': market['id'],
1216
- };
1217
- if (limit !== undefined) {
1218
- request['count'] = limit;
1219
- }
1220
- if (since !== undefined) {
1221
- request['since'] = this.parseToInt(since / 1000);
1222
- }
1223
- const response = await this.privatePostTradeHistory(this.extend(request, params));
1224
- //
1225
- // {
1226
- // "success":1,
1227
- // "return": {
1228
- // "200257004": {
1229
- // "pair":"doge_usdt",
1230
- // "type":"sell",
1231
- // "amount":139,
1232
- // "rate":0.139,
1233
- // "order_id":"2101103631773172",
1234
- // "is_your_order":1,
1235
- // "timestamp":"1649861561"
1236
- // }
1237
- // }
1238
- // }
1239
- //
1240
- const trades = this.safeDict(response, 'return', {});
1241
- const ids = Object.keys(trades);
1242
- const result = [];
1243
- for (let i = 0; i < ids.length; i++) {
1244
- const id = this.safeString(ids, i);
1245
- const trade = this.parseTrade(this.extend(trades[id], {
1246
- 'trade_id': id,
1247
- }), market);
1248
- result.push(trade);
1249
- }
1250
- return this.filterBySymbolSinceLimit(result, market['symbol'], since, limit);
1251
- }
1252
- /**
1253
- * @method
1254
- * @name yobit#createDepositAddress
1255
- * @see https://yobit.net/en/api
1256
- * @description create a currency deposit address
1257
- * @param {string} code unified currency code of the currency for the deposit address
1258
- * @param {object} [params] extra parameters specific to the exchange API endpoint
1259
- * @returns {object} an [address structure]{@link https://docs.ccxt.com/?id=address-structure}
1260
- */
1261
- async createDepositAddress(code, params = {}) {
1262
- const request = {
1263
- 'need_new': 1,
1264
- };
1265
- const response = await this.fetchDepositAddress(code, this.extend(request, params));
1266
- const address = this.safeString(response, 'address');
1267
- this.checkAddress(address);
1268
- return {
1269
- 'currency': code,
1270
- 'address': address,
1271
- 'tag': undefined,
1272
- 'network': undefined,
1273
- 'info': response['info'],
1274
- };
1275
- }
1276
- /**
1277
- * @method
1278
- * @name yobit#fetchDepositAddress
1279
- * @description fetch the deposit address for a currency associated with this account
1280
- * @see https://yobit.net/en/api
1281
- * @param {string} code unified currency code
1282
- * @param {object} [params] extra parameters specific to the exchange API endpoint
1283
- * @returns {object} an [address structure]{@link https://docs.ccxt.com/?id=address-structure}
1284
- */
1285
- async fetchDepositAddress(code, params = {}) {
1286
- await this.loadMarkets();
1287
- const currency = this.currency(code);
1288
- let currencyId = currency['id'];
1289
- const networks = this.safeDict(this.options, 'networks', {});
1290
- let network = this.safeStringUpper(params, 'network'); // this line allows the user to specify either ERC20 or ETH
1291
- network = this.safeString(networks, network, network); // handle ERC20>ETH alias
1292
- if (network !== undefined) {
1293
- if (network !== 'ERC20') {
1294
- currencyId = currencyId + network.toLowerCase();
1295
- }
1296
- params = this.omit(params, 'network');
1297
- }
1298
- const request = {
1299
- 'coinName': currencyId,
1300
- 'need_new': 0,
1301
- };
1302
- const response = await this.privatePostGetDepositAddress(this.extend(request, params));
1303
- const address = this.safeString(response['return'], 'address');
1304
- this.checkAddress(address);
1305
- return {
1306
- 'info': response,
1307
- 'currency': code,
1308
- 'network': undefined,
1309
- 'address': address,
1310
- 'tag': undefined,
1311
- };
1312
- }
1313
- /**
1314
- * @method
1315
- * @name yobit#withdraw
1316
- * @see https://yobit.net/en/api
1317
- * @description make a withdrawal
1318
- * @param {string} code unified currency code
1319
- * @param {float} amount the amount to withdraw
1320
- * @param {string} address the address to withdraw to
1321
- * @param {string} tag
1322
- * @param {object} [params] extra parameters specific to the exchange API endpoint
1323
- * @returns {object} a [transaction structure]{@link https://docs.ccxt.com/?id=transaction-structure}
1324
- */
1325
- async withdraw(code, amount, address, tag = undefined, params = {}) {
1326
- [tag, params] = this.handleWithdrawTagAndParams(tag, params);
1327
- this.checkAddress(address);
1328
- await this.loadMarkets();
1329
- const currency = this.currency(code);
1330
- const request = {
1331
- 'coinName': currency['id'],
1332
- 'amount': amount,
1333
- 'address': address,
1334
- };
1335
- // no docs on the tag, yet...
1336
- if (tag !== undefined) {
1337
- throw new ExchangeError(this.id + ' withdraw() does not support the tag argument yet due to a lack of docs on withdrawing with tag/memo on behalf of the exchange.');
1338
- }
1339
- const response = await this.privatePostWithdrawCoinsToAddress(this.extend(request, params));
1340
- return {
1341
- 'info': response,
1342
- 'id': undefined,
1343
- 'txid': undefined,
1344
- 'type': undefined,
1345
- 'currency': undefined,
1346
- 'network': undefined,
1347
- 'amount': undefined,
1348
- 'status': undefined,
1349
- 'timestamp': undefined,
1350
- 'datetime': undefined,
1351
- 'address': undefined,
1352
- 'addressFrom': undefined,
1353
- 'addressTo': undefined,
1354
- 'tag': undefined,
1355
- 'tagFrom': undefined,
1356
- 'tagTo': undefined,
1357
- 'updated': undefined,
1358
- 'comment': undefined,
1359
- 'fee': {
1360
- 'currency': undefined,
1361
- 'cost': undefined,
1362
- 'rate': undefined,
1363
- },
1364
- };
1365
- }
1366
- sign(path, api = 'public', method = 'GET', params = {}, headers = undefined, body = undefined) {
1367
- let url = this.urls['api'][api];
1368
- const query = this.omit(params, this.extractParams(path));
1369
- if (api === 'private') {
1370
- this.checkRequiredCredentials();
1371
- const nonce = this.nonce();
1372
- body = this.urlencode(this.extend({
1373
- 'nonce': nonce,
1374
- 'method': path,
1375
- }, query));
1376
- const signature = this.hmac(this.encode(body), this.encode(this.secret), sha512);
1377
- headers = {
1378
- 'Content-Type': 'application/x-www-form-urlencoded',
1379
- 'Key': this.apiKey,
1380
- 'Sign': signature,
1381
- };
1382
- }
1383
- else if (api === 'public') {
1384
- url += '/' + this.version + '/' + this.implodeParams(path, params);
1385
- if (Object.keys(query).length) {
1386
- url += '?' + this.urlencode(query);
1387
- }
1388
- }
1389
- else {
1390
- url += '/' + this.implodeParams(path, params);
1391
- if (method === 'GET') {
1392
- if (Object.keys(query).length) {
1393
- url += '?' + this.urlencode(query);
1394
- }
1395
- }
1396
- else {
1397
- if (Object.keys(query).length) {
1398
- body = this.json(query);
1399
- headers = {
1400
- 'Content-Type': 'application/json',
1401
- };
1402
- }
1403
- }
1404
- }
1405
- return { 'url': url, 'method': method, 'body': body, 'headers': headers };
1406
- }
1407
- handleErrors(httpCode, reason, url, method, headers, body, response, requestHeaders, requestBody) {
1408
- if (response === undefined) {
1409
- return undefined; // fallback to default error handler
1410
- }
1411
- if ('success' in response) {
1412
- //
1413
- // 1 - Liqui only returns the integer 'success' key from their private API
1414
- //
1415
- // { "success": 1, ... } httpCode === 200
1416
- // { "success": 0, ... } httpCode === 200
1417
- //
1418
- // 2 - However, exchanges derived from Liqui, can return non-integers
1419
- //
1420
- // It can be a numeric string
1421
- // { "sucesss": "1", ... }
1422
- // { "sucesss": "0", ... }, httpCode >= 200 (can be 403, 502, etc)
1423
- //
1424
- // Or just a string
1425
- // { "success": "true", ... }
1426
- // { "success": "false", ... }, httpCode >= 200
1427
- //
1428
- // Or a boolean
1429
- // { "success": true, ... }
1430
- // { "success": false, ... }, httpCode >= 200
1431
- //
1432
- // 3 - Oversimplified, Python PEP8 forbids comparison operator (===) of different types
1433
- //
1434
- // 4 - We do not want to copy-paste and duplicate the code of this handler to other exchanges derived from Liqui
1435
- //
1436
- // To cover points 1, 2, 3 and 4 combined this handler should work like this:
1437
- //
1438
- let success = this.safeValue(response, 'success'); // don't replace with safeBool here
1439
- if (typeof success === 'string') {
1440
- if ((success === 'true') || (success === '1')) {
1441
- success = true;
1442
- }
1443
- else {
1444
- success = false;
1445
- }
1446
- }
1447
- if (!success) {
1448
- const code = this.safeString(response, 'code');
1449
- const message = this.safeString(response, 'error');
1450
- const feedback = this.id + ' ' + body;
1451
- this.throwExactlyMatchedException(this.exceptions['exact'], code, feedback);
1452
- this.throwExactlyMatchedException(this.exceptions['exact'], message, feedback);
1453
- this.throwBroadlyMatchedException(this.exceptions['broad'], message, feedback);
1454
- throw new ExchangeError(feedback); // unknown message
1455
- }
1456
- }
1457
- return undefined;
1458
- }
1459
- }