ccxt 4.5.6 → 4.5.8

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 (930) hide show
  1. package/README.md +4 -4
  2. package/dist/ccxt.browser.min.js +3 -3
  3. package/dist/cjs/ccxt.js +2 -7
  4. package/dist/cjs/src/abstract/alpaca.js +1 -1
  5. package/dist/cjs/src/abstract/apex.js +1 -1
  6. package/dist/cjs/src/abstract/ascendex.js +1 -1
  7. package/dist/cjs/src/abstract/backpack.js +1 -1
  8. package/dist/cjs/src/abstract/bigone.js +1 -1
  9. package/dist/cjs/src/abstract/binance.js +1 -1
  10. package/dist/cjs/src/abstract/bingx.js +1 -1
  11. package/dist/cjs/src/abstract/bit2c.js +1 -1
  12. package/dist/cjs/src/abstract/bitbank.js +1 -1
  13. package/dist/cjs/src/abstract/bitbns.js +1 -1
  14. package/dist/cjs/src/abstract/bitfinex.js +1 -1
  15. package/dist/cjs/src/abstract/bitflyer.js +1 -1
  16. package/dist/cjs/src/abstract/bitget.js +1 -1
  17. package/dist/cjs/src/abstract/bithumb.js +1 -1
  18. package/dist/cjs/src/abstract/bitmart.js +1 -1
  19. package/dist/cjs/src/abstract/bitmex.js +1 -1
  20. package/dist/cjs/src/abstract/bitopro.js +1 -1
  21. package/dist/cjs/src/abstract/bitrue.js +1 -1
  22. package/dist/cjs/src/abstract/bitso.js +1 -1
  23. package/dist/cjs/src/abstract/bitstamp.js +1 -1
  24. package/dist/cjs/src/abstract/bitteam.js +1 -1
  25. package/dist/cjs/src/abstract/bittrade.js +1 -1
  26. package/dist/cjs/src/abstract/bitvavo.js +1 -1
  27. package/dist/cjs/src/abstract/blockchaincom.js +1 -1
  28. package/dist/cjs/src/abstract/blofin.js +1 -1
  29. package/dist/cjs/src/abstract/btcalpha.js +1 -1
  30. package/dist/cjs/src/abstract/btcbox.js +1 -1
  31. package/dist/cjs/src/abstract/btcmarkets.js +1 -1
  32. package/dist/cjs/src/abstract/btcturk.js +1 -1
  33. package/dist/cjs/src/abstract/bybit.js +1 -1
  34. package/dist/cjs/src/abstract/cex.js +1 -1
  35. package/dist/cjs/src/abstract/coinbase.js +1 -1
  36. package/dist/cjs/src/abstract/coinbaseexchange.js +1 -1
  37. package/dist/cjs/src/abstract/coinbaseinternational.js +1 -1
  38. package/dist/cjs/src/abstract/coincatch.js +1 -1
  39. package/dist/cjs/src/abstract/coincheck.js +1 -1
  40. package/dist/cjs/src/abstract/coinex.js +1 -1
  41. package/dist/cjs/src/abstract/coinmate.js +1 -1
  42. package/dist/cjs/src/abstract/coinmetro.js +1 -1
  43. package/dist/cjs/src/abstract/coinone.js +1 -1
  44. package/dist/cjs/src/abstract/coinsph.js +1 -1
  45. package/dist/cjs/src/abstract/coinspot.js +1 -1
  46. package/dist/cjs/src/abstract/cryptocom.js +1 -1
  47. package/dist/cjs/src/abstract/cryptomus.js +1 -1
  48. package/dist/cjs/src/abstract/defx.js +1 -1
  49. package/dist/cjs/src/abstract/delta.js +1 -1
  50. package/dist/cjs/src/abstract/deribit.js +1 -1
  51. package/dist/cjs/src/abstract/derive.js +1 -1
  52. package/dist/cjs/src/abstract/digifinex.js +1 -1
  53. package/dist/cjs/src/abstract/exmo.js +1 -1
  54. package/dist/cjs/src/abstract/foxbit.js +1 -1
  55. package/dist/cjs/src/abstract/gate.js +1 -1
  56. package/dist/cjs/src/abstract/gemini.js +1 -1
  57. package/dist/cjs/src/abstract/hashkey.js +1 -1
  58. package/dist/cjs/src/abstract/hibachi.js +1 -1
  59. package/dist/cjs/src/abstract/hitbtc.js +1 -1
  60. package/dist/cjs/src/abstract/hollaex.js +1 -1
  61. package/dist/cjs/src/abstract/htx.js +1 -1
  62. package/dist/cjs/src/abstract/hyperliquid.js +1 -1
  63. package/dist/cjs/src/abstract/independentreserve.js +1 -1
  64. package/dist/cjs/src/abstract/indodax.js +1 -1
  65. package/dist/cjs/src/abstract/kraken.js +1 -1
  66. package/dist/cjs/src/abstract/krakenfutures.js +1 -1
  67. package/dist/cjs/src/abstract/kucoin.js +1 -1
  68. package/dist/cjs/src/abstract/kucoinfutures.js +1 -1
  69. package/dist/cjs/src/abstract/latoken.js +1 -1
  70. package/dist/cjs/src/abstract/lbank.js +1 -1
  71. package/dist/cjs/src/abstract/luno.js +1 -1
  72. package/dist/cjs/src/abstract/mercado.js +1 -1
  73. package/dist/cjs/src/abstract/mexc.js +1 -1
  74. package/dist/cjs/src/abstract/modetrade.js +1 -1
  75. package/dist/cjs/src/abstract/ndax.js +1 -1
  76. package/dist/cjs/src/abstract/novadax.js +1 -1
  77. package/dist/cjs/src/abstract/oceanex.js +1 -1
  78. package/dist/cjs/src/abstract/okcoin.js +1 -1
  79. package/dist/cjs/src/abstract/okx.js +1 -1
  80. package/dist/cjs/src/abstract/onetrading.js +1 -1
  81. package/dist/cjs/src/abstract/oxfun.js +1 -1
  82. package/dist/cjs/src/abstract/p2b.js +1 -1
  83. package/dist/cjs/src/abstract/paradex.js +1 -1
  84. package/dist/cjs/src/abstract/paymium.js +1 -1
  85. package/dist/cjs/src/abstract/phemex.js +1 -1
  86. package/dist/cjs/src/abstract/poloniex.js +1 -1
  87. package/dist/cjs/src/abstract/probit.js +1 -1
  88. package/dist/cjs/src/abstract/timex.js +1 -1
  89. package/dist/cjs/src/abstract/tokocrypto.js +1 -1
  90. package/dist/cjs/src/abstract/toobit.js +1 -1
  91. package/dist/cjs/src/abstract/upbit.js +1 -1
  92. package/dist/cjs/src/abstract/wavesexchange.js +1 -1
  93. package/dist/cjs/src/abstract/whitebit.js +1 -1
  94. package/dist/cjs/src/abstract/woo.js +1 -1
  95. package/dist/cjs/src/abstract/woofipro.js +1 -1
  96. package/dist/cjs/src/abstract/xt.js +1 -1
  97. package/dist/cjs/src/abstract/yobit.js +1 -1
  98. package/dist/cjs/src/abstract/zaif.js +1 -1
  99. package/dist/cjs/src/abstract/zonda.js +1 -1
  100. package/dist/cjs/src/alpaca.js +1 -1
  101. package/dist/cjs/src/apex.js +3 -3
  102. package/dist/cjs/src/ascendex.js +1 -1
  103. package/dist/cjs/src/backpack.js +22 -4
  104. package/dist/cjs/src/base/Exchange.js +33 -11
  105. package/dist/cjs/src/base/Precise.js +6 -0
  106. package/dist/cjs/src/base/errors.js +6 -0
  107. package/dist/cjs/src/base/functions/crypto.js +1 -1
  108. package/dist/cjs/src/base/functions/encode.js +2 -2
  109. package/dist/cjs/src/base/functions/misc.js +1 -0
  110. package/dist/cjs/src/base/functions/number.js +6 -0
  111. package/dist/cjs/src/base/functions/platform.js +6 -0
  112. package/dist/cjs/src/base/functions/rsa.js +1 -0
  113. package/dist/cjs/src/base/functions/string.js +6 -0
  114. package/dist/cjs/src/base/functions/throttle.js +1 -1
  115. package/dist/cjs/src/base/functions/time.js +6 -0
  116. package/dist/cjs/src/base/functions/totp.js +1 -0
  117. package/dist/cjs/src/base/functions/type.js +6 -0
  118. package/dist/cjs/src/base/functions.js +1 -1
  119. package/dist/cjs/src/base/ws/Cache.js +6 -0
  120. package/dist/cjs/src/base/ws/Client.js +1 -0
  121. package/dist/cjs/src/base/ws/Future.js +1 -1
  122. package/dist/cjs/src/base/ws/OrderBook.js +1 -1
  123. package/dist/cjs/src/base/ws/OrderBookSide.js +6 -0
  124. package/dist/cjs/src/base/ws/WsClient.js +1 -1
  125. package/dist/cjs/src/bequant.js +1 -1
  126. package/dist/cjs/src/bigone.js +1 -1
  127. package/dist/cjs/src/binance.js +13 -9
  128. package/dist/cjs/src/binancecoinm.js +1 -1
  129. package/dist/cjs/src/binanceus.js +1 -1
  130. package/dist/cjs/src/binanceusdm.js +1 -1
  131. package/dist/cjs/src/bingx.js +1 -1
  132. package/dist/cjs/src/bit2c.js +1 -1
  133. package/dist/cjs/src/bitbank.js +2 -1
  134. package/dist/cjs/src/bitbns.js +2 -1
  135. package/dist/cjs/src/bitfinex.js +1 -1
  136. package/dist/cjs/src/bitflyer.js +2 -1
  137. package/dist/cjs/src/bitget.js +1 -1
  138. package/dist/cjs/src/bithumb.js +10 -1
  139. package/dist/cjs/src/bitmart.js +1 -1
  140. package/dist/cjs/src/bitmex.js +1 -1
  141. package/dist/cjs/src/bitopro.js +1 -1
  142. package/dist/cjs/src/bitrue.js +1 -1
  143. package/dist/cjs/src/bitso.js +2 -1
  144. package/dist/cjs/src/bitstamp.js +1 -1
  145. package/dist/cjs/src/bitteam.js +1 -1
  146. package/dist/cjs/src/bittrade.js +1 -1
  147. package/dist/cjs/src/bitvavo.js +43 -42
  148. package/dist/cjs/src/blockchaincom.js +2 -1
  149. package/dist/cjs/src/blofin.js +1 -1
  150. package/dist/cjs/src/btcalpha.js +2 -1
  151. package/dist/cjs/src/btcbox.js +2 -1
  152. package/dist/cjs/src/btcmarkets.js +2 -1
  153. package/dist/cjs/src/btcturk.js +2 -1
  154. package/dist/cjs/src/bybit.js +1 -1
  155. package/dist/cjs/src/cex.js +1 -1
  156. package/dist/cjs/src/coinbase.js +1 -1
  157. package/dist/cjs/src/coinbaseadvanced.js +1 -1
  158. package/dist/cjs/src/coincatch.js +1 -1
  159. package/dist/cjs/src/coincheck.js +1 -1
  160. package/dist/cjs/src/coinex.js +1 -1
  161. package/dist/cjs/src/coinmate.js +1 -1
  162. package/dist/cjs/src/coinmetro.js +1 -1
  163. package/dist/cjs/src/coinone.js +1 -1
  164. package/dist/cjs/src/coinsph.js +1 -0
  165. package/dist/cjs/src/coinspot.js +1 -1
  166. package/dist/cjs/src/cryptocom.js +1 -1
  167. package/dist/cjs/src/cryptomus.js +1 -1
  168. package/dist/cjs/src/defx.js +1 -1
  169. package/dist/cjs/src/delta.js +1 -1
  170. package/dist/cjs/src/deribit.js +4 -3
  171. package/dist/cjs/src/derive.js +1 -1
  172. package/dist/cjs/src/digifinex.js +2 -2
  173. package/dist/cjs/src/exmo.js +1 -1
  174. package/dist/cjs/src/fmfwio.js +1 -1
  175. package/dist/cjs/src/foxbit.js +1 -1
  176. package/dist/cjs/src/gate.js +9 -13
  177. package/dist/cjs/src/gateio.js +1 -1
  178. package/dist/cjs/src/gemini.js +4 -4
  179. package/dist/cjs/src/hashkey.js +1 -1
  180. package/dist/cjs/src/hibachi.js +4 -11
  181. package/dist/cjs/src/hitbtc.js +1 -0
  182. package/dist/cjs/src/hollaex.js +1 -1
  183. package/dist/cjs/src/htx.js +12 -2
  184. package/dist/cjs/src/huobi.js +1 -1
  185. package/dist/cjs/src/hyperliquid.js +39 -3
  186. package/dist/cjs/src/independentreserve.js +2 -1
  187. package/dist/cjs/src/indodax.js +18 -7
  188. package/dist/cjs/src/kraken.js +26 -7
  189. package/dist/cjs/src/krakenfutures.js +2 -1
  190. package/dist/cjs/src/kucoin.js +1 -1
  191. package/dist/cjs/src/kucoinfutures.js +1 -1
  192. package/dist/cjs/src/latoken.js +1 -1
  193. package/dist/cjs/src/lbank.js +5 -2
  194. package/dist/cjs/src/luno.js +1 -1
  195. package/dist/cjs/src/mercado.js +2 -1
  196. package/dist/cjs/src/mexc.js +81 -37
  197. package/dist/cjs/src/modetrade.js +1 -1
  198. package/dist/cjs/src/myokx.js +1 -1
  199. package/dist/cjs/src/ndax.js +1 -1
  200. package/dist/cjs/src/novadax.js +2 -1
  201. package/dist/cjs/src/oceanex.js +2 -1
  202. package/dist/cjs/src/okcoin.js +1 -1
  203. package/dist/cjs/src/okx.js +20 -7
  204. package/dist/cjs/src/okxus.js +1 -1
  205. package/dist/cjs/src/onetrading.js +1 -1
  206. package/dist/cjs/src/oxfun.js +14 -4
  207. package/dist/cjs/src/p2b.js +1 -1
  208. package/dist/cjs/src/paradex.js +1 -1
  209. package/dist/cjs/src/paymium.js +1 -1
  210. package/dist/cjs/src/poloniex.js +1 -1
  211. package/dist/cjs/src/pro/alpaca.js +1 -1
  212. package/dist/cjs/src/pro/apex.js +8 -5
  213. package/dist/cjs/src/pro/ascendex.js +1 -1
  214. package/dist/cjs/src/pro/backpack.js +9 -7
  215. package/dist/cjs/src/pro/bequant.js +1 -1
  216. package/dist/cjs/src/pro/binancecoinm.js +1 -1
  217. package/dist/cjs/src/pro/binanceus.js +1 -1
  218. package/dist/cjs/src/pro/binanceusdm.js +1 -1
  219. package/dist/cjs/src/pro/bingx.js +207 -221
  220. package/dist/cjs/src/pro/bitfinex.js +1 -1
  221. package/dist/cjs/src/pro/bitget.js +1 -1
  222. package/dist/cjs/src/pro/bithumb.js +1 -1
  223. package/dist/cjs/src/pro/bitmart.js +1 -1
  224. package/dist/cjs/src/pro/bitmex.js +1 -1
  225. package/dist/cjs/src/pro/bitrue.js +1 -1
  226. package/dist/cjs/src/pro/bitstamp.js +1 -1
  227. package/dist/cjs/src/pro/bitvavo.js +1 -1
  228. package/dist/cjs/src/pro/blockchaincom.js +1 -1
  229. package/dist/cjs/src/pro/blofin.js +1 -1
  230. package/dist/cjs/src/pro/bybit.js +1 -1
  231. package/dist/cjs/src/pro/cex.js +1 -1
  232. package/dist/cjs/src/pro/coinbase.js +1 -1
  233. package/dist/cjs/src/pro/coinbaseadvanced.js +1 -1
  234. package/dist/cjs/src/pro/coinbaseexchange.js +1 -1
  235. package/dist/cjs/src/pro/coinbaseinternational.js +1 -1
  236. package/dist/cjs/src/pro/coincatch.js +1 -1
  237. package/dist/cjs/src/pro/coincheck.js +1 -1
  238. package/dist/cjs/src/pro/coinex.js +7 -6
  239. package/dist/cjs/src/pro/coinone.js +1 -1
  240. package/dist/cjs/src/pro/cryptocom.js +1 -1
  241. package/dist/cjs/src/pro/defx.js +1 -1
  242. package/dist/cjs/src/pro/deribit.js +1 -1
  243. package/dist/cjs/src/pro/exmo.js +1 -1
  244. package/dist/cjs/src/pro/gate.js +1 -1
  245. package/dist/cjs/src/pro/gateio.js +1 -1
  246. package/dist/cjs/src/pro/gemini.js +1 -1
  247. package/dist/cjs/src/pro/hashkey.js +1 -1
  248. package/dist/cjs/src/pro/hitbtc.js +1 -1
  249. package/dist/cjs/src/pro/hollaex.js +1 -1
  250. package/dist/cjs/src/pro/htx.js +153 -10
  251. package/dist/cjs/src/pro/huobi.js +1 -1
  252. package/dist/cjs/src/pro/hyperliquid.js +1 -1
  253. package/dist/cjs/src/pro/independentreserve.js +1 -1
  254. package/dist/cjs/src/pro/kraken.js +1 -1
  255. package/dist/cjs/src/pro/krakenfutures.js +1 -1
  256. package/dist/cjs/src/pro/kucoin.js +1 -1
  257. package/dist/cjs/src/pro/kucoinfutures.js +1 -1
  258. package/dist/cjs/src/pro/lbank.js +1 -0
  259. package/dist/cjs/src/pro/luno.js +1 -1
  260. package/dist/cjs/src/pro/mexc.js +1 -1
  261. package/dist/cjs/src/pro/myokx.js +1 -1
  262. package/dist/cjs/src/pro/ndax.js +1 -1
  263. package/dist/cjs/src/pro/okcoin.js +1 -1
  264. package/dist/cjs/src/pro/okx.js +1 -1
  265. package/dist/cjs/src/pro/okxus.js +1 -1
  266. package/dist/cjs/src/pro/onetrading.js +1 -1
  267. package/dist/cjs/src/pro/oxfun.js +1 -1
  268. package/dist/cjs/src/pro/p2b.js +1 -1
  269. package/dist/cjs/src/pro/paradex.js +1 -1
  270. package/dist/cjs/src/pro/phemex.js +9 -7
  271. package/dist/cjs/src/pro/poloniex.js +1 -1
  272. package/dist/cjs/src/pro/probit.js +1 -1
  273. package/dist/cjs/src/pro/toobit.js +1 -1
  274. package/dist/cjs/src/pro/upbit.js +1 -1
  275. package/dist/cjs/src/pro/whitebit.js +1 -1
  276. package/dist/cjs/src/pro/woo.js +167 -5
  277. package/dist/cjs/src/pro/xt.js +1 -1
  278. package/dist/cjs/src/probit.js +1 -1
  279. package/dist/cjs/src/protobuf/mexc/compiled.cjs.js +0 -2
  280. package/dist/cjs/src/static_dependencies/ethers/abi-coder.js +6 -0
  281. package/dist/cjs/src/static_dependencies/ethers/address/address.js +1 -1
  282. package/dist/cjs/src/static_dependencies/ethers/coders/abstract-coder.js +6 -0
  283. package/dist/cjs/src/static_dependencies/ethers/coders/address.js +1 -0
  284. package/dist/cjs/src/static_dependencies/ethers/coders/anonymous.js +1 -0
  285. package/dist/cjs/src/static_dependencies/ethers/coders/array.js +1 -0
  286. package/dist/cjs/src/static_dependencies/ethers/coders/boolean.js +1 -0
  287. package/dist/cjs/src/static_dependencies/ethers/coders/bytes.js +1 -0
  288. package/dist/cjs/src/static_dependencies/ethers/coders/fixed-bytes.js +1 -0
  289. package/dist/cjs/src/static_dependencies/ethers/coders/null.js +1 -0
  290. package/dist/cjs/src/static_dependencies/ethers/coders/number.js +1 -0
  291. package/dist/cjs/src/static_dependencies/ethers/coders/string.js +1 -0
  292. package/dist/cjs/src/static_dependencies/ethers/coders/tuple.js +1 -0
  293. package/dist/cjs/src/static_dependencies/ethers/fragments.js +6 -0
  294. package/dist/cjs/src/static_dependencies/ethers/hash/typed-data.js +6 -0
  295. package/dist/cjs/src/static_dependencies/ethers/index.js +1 -10
  296. package/dist/cjs/src/static_dependencies/ethers/interface.js +6 -0
  297. package/dist/cjs/src/static_dependencies/ethers/typed.js +6 -0
  298. package/dist/cjs/src/static_dependencies/ethers/utils/base58.js +1 -13
  299. package/dist/cjs/src/static_dependencies/ethers/utils/data.js +1 -6
  300. package/dist/cjs/src/static_dependencies/ethers/utils/errors.js +1 -9
  301. package/dist/cjs/src/static_dependencies/ethers/utils/events.js +6 -0
  302. package/dist/cjs/src/static_dependencies/ethers/utils/fixednumber.js +6 -0
  303. package/dist/cjs/src/static_dependencies/ethers/utils/index.js +1 -7
  304. package/dist/cjs/src/static_dependencies/ethers/utils/maths.js +1 -5
  305. package/dist/cjs/src/static_dependencies/ethers/utils/properties.js +6 -0
  306. package/dist/cjs/src/static_dependencies/ethers/utils/utf8.js +1 -8
  307. package/dist/cjs/src/static_dependencies/fflake/browser.js +1 -1
  308. package/dist/cjs/src/static_dependencies/jsencrypt/JSEncrypt.js +1 -0
  309. package/dist/cjs/src/static_dependencies/jsencrypt/JSEncryptRSAKey.js +1 -0
  310. package/dist/cjs/src/static_dependencies/jsencrypt/lib/asn1js/asn1.js +1 -1
  311. package/dist/cjs/src/static_dependencies/jsencrypt/lib/asn1js/base64.js +6 -0
  312. package/dist/cjs/src/static_dependencies/jsencrypt/lib/asn1js/hex.js +6 -0
  313. package/dist/cjs/src/static_dependencies/jsencrypt/lib/asn1js/int10.js +6 -0
  314. package/dist/cjs/src/static_dependencies/jsencrypt/lib/jsbn/base64.js +1 -0
  315. package/dist/cjs/src/static_dependencies/jsencrypt/lib/jsbn/jsbn.js +1 -1
  316. package/dist/cjs/src/static_dependencies/jsencrypt/lib/jsbn/prng4.js +6 -0
  317. package/dist/cjs/src/static_dependencies/jsencrypt/lib/jsbn/rng.js +1 -1
  318. package/dist/cjs/src/static_dependencies/jsencrypt/lib/jsbn/rsa.js +1 -1
  319. package/dist/cjs/src/static_dependencies/jsencrypt/lib/jsbn/util.js +6 -0
  320. package/dist/cjs/src/static_dependencies/jsencrypt/lib/jsrsasign/asn1-1.0.js +1 -1
  321. package/dist/cjs/src/static_dependencies/jsencrypt/lib/jsrsasign/yahoo.js +6 -0
  322. package/dist/cjs/src/static_dependencies/messagepack/msgpack.js +6 -0
  323. package/dist/cjs/src/static_dependencies/noble-curves/_shortw_utils.js +1 -1
  324. package/dist/cjs/src/static_dependencies/noble-curves/abstract/curve.js +1 -1
  325. package/dist/cjs/src/static_dependencies/noble-curves/abstract/edwards.js +1 -1
  326. package/dist/cjs/src/static_dependencies/noble-curves/abstract/hash-to-curve.js +1 -0
  327. package/dist/cjs/src/static_dependencies/noble-curves/abstract/modular.js +1 -1
  328. package/dist/cjs/src/static_dependencies/noble-curves/abstract/montgomery.js +1 -1
  329. package/dist/cjs/src/static_dependencies/noble-curves/abstract/poseidon.js +1 -1
  330. package/dist/cjs/src/static_dependencies/noble-curves/abstract/utils.js +6 -0
  331. package/dist/cjs/src/static_dependencies/noble-curves/abstract/weierstrass.js +1 -1
  332. package/dist/cjs/src/static_dependencies/noble-curves/ed25519.js +1 -1
  333. package/dist/cjs/src/static_dependencies/noble-curves/p256.js +1 -1
  334. package/dist/cjs/src/static_dependencies/noble-curves/secp256k1.js +1 -1
  335. package/dist/cjs/src/static_dependencies/noble-hashes/_assert.js +6 -0
  336. package/dist/cjs/src/static_dependencies/noble-hashes/_sha2.js +1 -0
  337. package/dist/cjs/src/static_dependencies/noble-hashes/_u64.js +6 -0
  338. package/dist/cjs/src/static_dependencies/noble-hashes/crypto.js +6 -0
  339. package/dist/cjs/src/static_dependencies/noble-hashes/hmac.js +1 -0
  340. package/dist/cjs/src/static_dependencies/noble-hashes/md5.js +1 -0
  341. package/dist/cjs/src/static_dependencies/noble-hashes/sha1.js +1 -0
  342. package/dist/cjs/src/static_dependencies/noble-hashes/sha256.js +1 -0
  343. package/dist/cjs/src/static_dependencies/noble-hashes/sha3.js +1 -0
  344. package/dist/cjs/src/static_dependencies/noble-hashes/sha512.js +1 -0
  345. package/dist/cjs/src/static_dependencies/noble-hashes/utils.js +1 -1
  346. package/dist/cjs/src/static_dependencies/node-fetch/body.js +1 -5
  347. package/dist/cjs/src/static_dependencies/node-fetch/errors/abort-error.js +1 -0
  348. package/dist/cjs/src/static_dependencies/node-fetch/errors/base.js +6 -0
  349. package/dist/cjs/src/static_dependencies/node-fetch/errors/fetch-error.js +1 -0
  350. package/dist/cjs/src/static_dependencies/node-fetch/headers.js +1 -5
  351. package/dist/cjs/src/static_dependencies/node-fetch/index.js +1 -7
  352. package/dist/cjs/src/static_dependencies/node-fetch/request.js +1 -7
  353. package/dist/cjs/src/static_dependencies/node-fetch/response.js +1 -5
  354. package/dist/cjs/src/static_dependencies/node-fetch/utils/get-search.js +6 -0
  355. package/dist/cjs/src/static_dependencies/node-fetch/utils/is-redirect.js +6 -0
  356. package/dist/cjs/src/static_dependencies/node-fetch/utils/is.js +6 -0
  357. package/dist/cjs/src/static_dependencies/node-fetch/utils/referrer.js +1 -0
  358. package/dist/cjs/src/static_dependencies/proxies/agent-base/index.js +1 -0
  359. package/dist/cjs/src/static_dependencies/proxies/http-proxy-agent/index.js +1 -0
  360. package/dist/cjs/src/static_dependencies/proxies/https-proxy-agent/index.js +1 -0
  361. package/dist/cjs/src/static_dependencies/proxies/https-proxy-agent/parse-proxy-response.js +6 -0
  362. package/dist/cjs/src/static_dependencies/qs/formats.js +28 -0
  363. package/dist/cjs/src/static_dependencies/qs/index.js +25 -0
  364. package/{js/src/static_dependencies/qs/parse.cjs → dist/cjs/src/static_dependencies/qs/parse.js} +10 -3
  365. package/{js/src/static_dependencies/qs/stringify.cjs → dist/cjs/src/static_dependencies/qs/stringify.js} +13 -6
  366. package/dist/cjs/src/static_dependencies/qs/utils.js +197 -0
  367. package/dist/cjs/src/static_dependencies/scure-base/index.js +6 -0
  368. package/dist/cjs/src/static_dependencies/scure-starknet/index.js +1 -1
  369. package/dist/cjs/src/static_dependencies/starknet/constants.js +1 -1
  370. package/dist/cjs/src/static_dependencies/starknet/types/calldata.js +6 -0
  371. package/dist/cjs/src/static_dependencies/starknet/types/lib/contract/abi.js +6 -0
  372. package/dist/cjs/src/static_dependencies/starknet/types/lib/contract/index.js +6 -0
  373. package/dist/cjs/src/static_dependencies/starknet/types/lib/index.js +6 -0
  374. package/dist/cjs/src/static_dependencies/starknet/types/typedData.js +6 -0
  375. package/dist/cjs/src/static_dependencies/starknet/utils/assert.js +6 -0
  376. package/dist/cjs/src/static_dependencies/starknet/utils/cairoDataTypes/felt.js +1 -1
  377. package/dist/cjs/src/static_dependencies/starknet/utils/cairoDataTypes/uint256.js +1 -1
  378. package/dist/cjs/src/static_dependencies/starknet/utils/cairoDataTypes/uint512.js +1 -1
  379. package/dist/cjs/src/static_dependencies/starknet/utils/calldata/byteArray.js +1 -0
  380. package/dist/cjs/src/static_dependencies/starknet/utils/calldata/cairo.js +1 -0
  381. package/dist/cjs/src/static_dependencies/starknet/utils/calldata/enum/CairoCustomEnum.js +6 -0
  382. package/dist/cjs/src/static_dependencies/starknet/utils/calldata/enum/CairoOption.js +6 -0
  383. package/dist/cjs/src/static_dependencies/starknet/utils/calldata/enum/CairoResult.js +6 -0
  384. package/dist/cjs/src/static_dependencies/starknet/utils/calldata/formatter.js +1 -0
  385. package/dist/cjs/src/static_dependencies/starknet/utils/calldata/index.js +1 -1
  386. package/dist/cjs/src/static_dependencies/starknet/utils/calldata/parser/index.js +1 -0
  387. package/dist/cjs/src/static_dependencies/starknet/utils/calldata/parser/parser-0-1.1.0.js +1 -0
  388. package/dist/cjs/src/static_dependencies/starknet/utils/calldata/parser/parser-2.0.0.js +6 -0
  389. package/dist/cjs/src/static_dependencies/starknet/utils/calldata/propertyOrder.js +1 -0
  390. package/dist/cjs/src/static_dependencies/starknet/utils/calldata/requestParser.js +1 -0
  391. package/dist/cjs/src/static_dependencies/starknet/utils/calldata/responseParser.js +1 -0
  392. package/dist/cjs/src/static_dependencies/starknet/utils/calldata/tuple.js +1 -1
  393. package/dist/cjs/src/static_dependencies/starknet/utils/calldata/validate.js +1 -4
  394. package/dist/cjs/src/static_dependencies/starknet/utils/encode.js +1 -0
  395. package/dist/cjs/src/static_dependencies/starknet/utils/hash/classHash.js +1 -3
  396. package/dist/cjs/src/static_dependencies/starknet/utils/merkle.js +1 -0
  397. package/dist/cjs/src/static_dependencies/starknet/utils/num.js +1 -0
  398. package/dist/cjs/src/static_dependencies/starknet/utils/selector.js +1 -0
  399. package/dist/cjs/src/static_dependencies/starknet/utils/shortString.js +1 -0
  400. package/dist/cjs/src/static_dependencies/starknet/utils/typedData.js +1 -1
  401. package/dist/cjs/src/static_dependencies/watchable/src/unpromise.js +6 -0
  402. package/dist/cjs/src/static_dependencies/zklink/zklink-sdk-web.js +5 -1
  403. package/dist/cjs/src/timex.js +1 -0
  404. package/dist/cjs/src/tokocrypto.js +1 -1
  405. package/dist/cjs/src/toobit.js +1 -1
  406. package/dist/cjs/src/upbit.js +87 -71
  407. package/dist/cjs/src/wavesexchange.js +2 -1
  408. package/dist/cjs/src/whitebit.js +576 -33
  409. package/dist/cjs/src/woo.js +1 -1
  410. package/dist/cjs/src/woofipro.js +1 -1
  411. package/dist/cjs/src/xt.js +1 -1
  412. package/dist/cjs/src/yobit.js +2 -1
  413. package/dist/cjs/src/zaif.js +2 -1
  414. package/dist/cjs/src/zonda.js +2 -1
  415. package/js/ccxt.d.ts +1 -1
  416. package/js/ccxt.js +7 -1
  417. package/js/src/abstract/alpaca.js +6 -0
  418. package/js/src/abstract/apex.js +6 -0
  419. package/js/src/abstract/ascendex.js +6 -0
  420. package/js/src/abstract/backpack.js +6 -0
  421. package/js/src/abstract/bequant.js +6 -0
  422. package/js/src/abstract/bigone.js +6 -0
  423. package/js/src/abstract/binance.js +6 -0
  424. package/js/src/abstract/binancecoinm.js +6 -0
  425. package/js/src/abstract/binanceus.js +6 -0
  426. package/js/src/abstract/binanceusdm.js +6 -0
  427. package/js/src/abstract/bingx.js +6 -0
  428. package/js/src/abstract/bit2c.js +6 -0
  429. package/js/src/abstract/bitbank.js +6 -0
  430. package/js/src/abstract/bitbns.js +6 -0
  431. package/js/src/abstract/bitfinex.js +6 -0
  432. package/js/src/abstract/bitflyer.js +6 -0
  433. package/js/src/abstract/bitget.js +6 -0
  434. package/js/src/abstract/bithumb.js +6 -0
  435. package/js/src/abstract/bitmart.js +6 -0
  436. package/js/src/abstract/bitmex.js +6 -0
  437. package/js/src/abstract/bitopro.js +6 -0
  438. package/js/src/abstract/bitrue.js +6 -0
  439. package/js/src/abstract/bitso.js +6 -0
  440. package/js/src/abstract/bitstamp.js +6 -0
  441. package/js/src/abstract/bitteam.js +6 -0
  442. package/js/src/abstract/bittrade.js +6 -0
  443. package/js/src/abstract/bitvavo.js +6 -0
  444. package/js/src/abstract/blockchaincom.js +6 -0
  445. package/js/src/abstract/blofin.js +6 -0
  446. package/js/src/abstract/btcalpha.js +6 -0
  447. package/js/src/abstract/btcbox.js +6 -0
  448. package/js/src/abstract/btcmarkets.js +6 -0
  449. package/js/src/abstract/btcturk.js +6 -0
  450. package/js/src/abstract/bybit.js +6 -0
  451. package/js/src/abstract/cex.js +6 -0
  452. package/js/src/abstract/coinbase.js +6 -0
  453. package/js/src/abstract/coinbaseadvanced.js +6 -0
  454. package/js/src/abstract/coinbaseexchange.js +6 -0
  455. package/js/src/abstract/coinbaseinternational.js +6 -0
  456. package/js/src/abstract/coincatch.js +6 -0
  457. package/js/src/abstract/coincheck.js +6 -0
  458. package/js/src/abstract/coinex.js +6 -0
  459. package/js/src/abstract/coinmate.js +6 -0
  460. package/js/src/abstract/coinmetro.js +6 -0
  461. package/js/src/abstract/coinone.js +6 -0
  462. package/js/src/abstract/coinsph.js +6 -0
  463. package/js/src/abstract/coinspot.js +6 -0
  464. package/js/src/abstract/cryptocom.js +6 -0
  465. package/js/src/abstract/cryptomus.js +6 -0
  466. package/js/src/abstract/defx.js +6 -0
  467. package/js/src/abstract/delta.js +6 -0
  468. package/js/src/abstract/deribit.js +6 -0
  469. package/js/src/abstract/derive.js +6 -0
  470. package/js/src/abstract/digifinex.js +6 -0
  471. package/js/src/abstract/exmo.js +6 -0
  472. package/js/src/abstract/fmfwio.js +6 -0
  473. package/js/src/abstract/foxbit.js +6 -0
  474. package/js/src/abstract/gate.js +6 -0
  475. package/js/src/abstract/gateio.js +6 -0
  476. package/js/src/abstract/gemini.js +6 -0
  477. package/js/src/abstract/hashkey.js +6 -0
  478. package/js/src/abstract/hibachi.js +6 -0
  479. package/js/src/abstract/hitbtc.js +6 -0
  480. package/js/src/abstract/hollaex.js +6 -0
  481. package/js/src/abstract/htx.js +6 -0
  482. package/js/src/abstract/huobi.js +6 -0
  483. package/js/src/abstract/hyperliquid.js +6 -0
  484. package/js/src/abstract/independentreserve.js +6 -0
  485. package/js/src/abstract/indodax.js +6 -0
  486. package/js/src/abstract/kraken.js +6 -0
  487. package/js/src/abstract/krakenfutures.js +6 -0
  488. package/js/src/abstract/kucoin.js +6 -0
  489. package/js/src/abstract/kucoinfutures.js +6 -0
  490. package/js/src/abstract/latoken.js +6 -0
  491. package/js/src/abstract/lbank.js +6 -0
  492. package/js/src/abstract/luno.js +6 -0
  493. package/js/src/abstract/mercado.js +6 -0
  494. package/js/src/abstract/mexc.d.ts +1 -0
  495. package/js/src/abstract/mexc.js +6 -0
  496. package/js/src/abstract/modetrade.js +6 -0
  497. package/js/src/abstract/myokx.js +6 -0
  498. package/js/src/abstract/ndax.js +6 -0
  499. package/js/src/abstract/novadax.js +6 -0
  500. package/js/src/abstract/oceanex.js +6 -0
  501. package/js/src/abstract/okcoin.js +6 -0
  502. package/js/src/abstract/okx.js +6 -0
  503. package/js/src/abstract/okxus.js +6 -0
  504. package/js/src/abstract/onetrading.js +6 -0
  505. package/js/src/abstract/oxfun.js +6 -0
  506. package/js/src/abstract/p2b.js +6 -0
  507. package/js/src/abstract/paradex.js +6 -0
  508. package/js/src/abstract/paymium.js +6 -0
  509. package/js/src/abstract/phemex.js +6 -0
  510. package/js/src/abstract/poloniex.js +6 -0
  511. package/js/src/abstract/probit.js +6 -0
  512. package/js/src/abstract/timex.js +6 -0
  513. package/js/src/abstract/tokocrypto.js +6 -0
  514. package/js/src/abstract/toobit.js +6 -0
  515. package/js/src/abstract/upbit.d.ts +1 -0
  516. package/js/src/abstract/upbit.js +6 -0
  517. package/js/src/abstract/wavesexchange.js +6 -0
  518. package/js/src/abstract/whitebit.d.ts +1 -1
  519. package/js/src/abstract/whitebit.js +6 -0
  520. package/js/src/abstract/woo.js +6 -0
  521. package/js/src/abstract/woofipro.js +6 -0
  522. package/js/src/abstract/xt.js +6 -0
  523. package/js/src/abstract/yobit.js +6 -0
  524. package/js/src/abstract/zaif.js +6 -0
  525. package/js/src/abstract/zonda.js +6 -0
  526. package/js/src/alpaca.js +6 -0
  527. package/js/src/apex.js +8 -2
  528. package/js/src/ascendex.js +6 -0
  529. package/js/src/backpack.d.ts +1 -1
  530. package/js/src/backpack.js +27 -3
  531. package/js/src/base/Exchange.js +39 -11
  532. package/js/src/base/Precise.js +6 -0
  533. package/js/src/base/errorHierarchy.js +6 -0
  534. package/js/src/base/errors.js +6 -0
  535. package/js/src/base/functions/crypto.js +6 -0
  536. package/js/src/base/functions/encode.js +7 -1
  537. package/js/src/base/functions/generic.js +6 -0
  538. package/js/src/base/functions/misc.js +6 -0
  539. package/js/src/base/functions/number.js +6 -0
  540. package/js/src/base/functions/platform.js +6 -0
  541. package/js/src/base/functions/rsa.js +6 -0
  542. package/js/src/base/functions/string.js +6 -0
  543. package/js/src/base/functions/throttle.js +6 -0
  544. package/js/src/base/functions/time.js +6 -0
  545. package/js/src/base/functions/totp.js +6 -0
  546. package/js/src/base/functions/type.js +6 -0
  547. package/js/src/base/functions.js +6 -0
  548. package/js/src/base/types.js +6 -0
  549. package/js/src/base/ws/Cache.js +6 -0
  550. package/js/src/base/ws/Client.js +6 -0
  551. package/js/src/base/ws/Future.js +6 -0
  552. package/js/src/base/ws/OrderBook.js +6 -0
  553. package/js/src/base/ws/OrderBookSide.js +6 -0
  554. package/js/src/base/ws/WsClient.js +6 -0
  555. package/js/src/base/ws/functions.js +6 -0
  556. package/js/src/bequant.js +6 -0
  557. package/js/src/bigone.js +6 -0
  558. package/js/src/binance.d.ts +1 -1
  559. package/js/src/binance.js +18 -8
  560. package/js/src/binancecoinm.js +6 -0
  561. package/js/src/binanceus.js +6 -0
  562. package/js/src/binanceusdm.js +6 -0
  563. package/js/src/bingx.js +6 -0
  564. package/js/src/bit2c.js +6 -0
  565. package/js/src/bitbank.js +7 -0
  566. package/js/src/bitbns.js +7 -0
  567. package/js/src/bitfinex.js +6 -0
  568. package/js/src/bitflyer.js +7 -0
  569. package/js/src/bitget.js +6 -0
  570. package/js/src/bithumb.js +15 -0
  571. package/js/src/bitmart.js +6 -0
  572. package/js/src/bitmex.js +6 -0
  573. package/js/src/bitopro.js +6 -0
  574. package/js/src/bitrue.js +6 -0
  575. package/js/src/bitso.js +7 -0
  576. package/js/src/bitstamp.js +6 -0
  577. package/js/src/bitteam.js +6 -0
  578. package/js/src/bittrade.js +6 -0
  579. package/js/src/bitvavo.d.ts +1 -3
  580. package/js/src/bitvavo.js +50 -43
  581. package/js/src/blockchaincom.js +7 -0
  582. package/js/src/blofin.js +6 -0
  583. package/js/src/btcalpha.js +7 -0
  584. package/js/src/btcbox.js +7 -0
  585. package/js/src/btcmarkets.js +7 -0
  586. package/js/src/btcturk.js +7 -0
  587. package/js/src/bybit.js +6 -0
  588. package/js/src/cex.js +6 -0
  589. package/js/src/coinbase.js +7 -1
  590. package/js/src/coinbaseadvanced.js +6 -0
  591. package/js/src/coinbaseexchange.js +6 -0
  592. package/js/src/coinbaseinternational.js +6 -0
  593. package/js/src/coincatch.js +6 -0
  594. package/js/src/coincheck.js +6 -0
  595. package/js/src/coinex.js +6 -0
  596. package/js/src/coinmate.js +6 -0
  597. package/js/src/coinmetro.js +6 -0
  598. package/js/src/coinone.js +6 -0
  599. package/js/src/coinsph.js +6 -0
  600. package/js/src/coinspot.js +6 -0
  601. package/js/src/cryptocom.js +6 -0
  602. package/js/src/cryptomus.js +6 -0
  603. package/js/src/defx.js +6 -0
  604. package/js/src/delta.js +6 -0
  605. package/js/src/deribit.js +9 -2
  606. package/js/src/derive.js +6 -0
  607. package/js/src/digifinex.js +7 -1
  608. package/js/src/exmo.js +6 -0
  609. package/js/src/fmfwio.js +6 -0
  610. package/js/src/foxbit.js +6 -0
  611. package/js/src/gate.d.ts +2 -2
  612. package/js/src/gate.js +14 -12
  613. package/js/src/gateio.js +6 -0
  614. package/js/src/gemini.js +9 -3
  615. package/js/src/hashkey.js +6 -0
  616. package/js/src/hibachi.d.ts +1 -9
  617. package/js/src/hibachi.js +9 -10
  618. package/js/src/hitbtc.js +6 -0
  619. package/js/src/hollaex.js +6 -0
  620. package/js/src/htx.js +17 -1
  621. package/js/src/huobi.js +6 -0
  622. package/js/src/hyperliquid.d.ts +2 -0
  623. package/js/src/hyperliquid.js +44 -2
  624. package/js/src/independentreserve.js +7 -0
  625. package/js/src/indodax.js +23 -6
  626. package/js/src/kraken.d.ts +1 -1
  627. package/js/src/kraken.js +31 -6
  628. package/js/src/krakenfutures.js +7 -0
  629. package/js/src/kucoin.js +6 -0
  630. package/js/src/kucoinfutures.js +6 -0
  631. package/js/src/latoken.js +6 -0
  632. package/js/src/lbank.js +10 -1
  633. package/js/src/luno.js +6 -0
  634. package/js/src/mercado.js +7 -0
  635. package/js/src/mexc.d.ts +4 -1
  636. package/js/src/mexc.js +86 -36
  637. package/js/src/modetrade.js +6 -0
  638. package/js/src/myokx.js +6 -0
  639. package/js/src/ndax.js +6 -0
  640. package/js/src/novadax.js +7 -0
  641. package/js/src/oceanex.js +7 -0
  642. package/js/src/okcoin.js +6 -0
  643. package/js/src/okx.js +25 -6
  644. package/js/src/okxus.js +6 -0
  645. package/js/src/onetrading.js +6 -0
  646. package/js/src/oxfun.d.ts +1 -1
  647. package/js/src/oxfun.js +19 -3
  648. package/js/src/p2b.js +6 -0
  649. package/js/src/paradex.js +6 -0
  650. package/js/src/paymium.js +6 -0
  651. package/js/src/phemex.js +6 -0
  652. package/js/src/poloniex.js +6 -0
  653. package/js/src/pro/alpaca.js +6 -0
  654. package/js/src/pro/apex.js +13 -4
  655. package/js/src/pro/ascendex.js +6 -0
  656. package/js/src/pro/backpack.js +14 -6
  657. package/js/src/pro/bequant.js +6 -0
  658. package/js/src/pro/binance.js +6 -0
  659. package/js/src/pro/binancecoinm.js +6 -0
  660. package/js/src/pro/binanceus.js +6 -0
  661. package/js/src/pro/binanceusdm.js +6 -0
  662. package/js/src/pro/bingx.d.ts +53 -33
  663. package/js/src/pro/bingx.js +213 -221
  664. package/js/src/pro/bitfinex.js +6 -0
  665. package/js/src/pro/bitget.js +6 -0
  666. package/js/src/pro/bithumb.js +6 -0
  667. package/js/src/pro/bitmart.js +6 -0
  668. package/js/src/pro/bitmex.js +6 -0
  669. package/js/src/pro/bitopro.js +6 -0
  670. package/js/src/pro/bitrue.js +6 -0
  671. package/js/src/pro/bitstamp.js +6 -0
  672. package/js/src/pro/bittrade.js +6 -0
  673. package/js/src/pro/bitvavo.js +6 -0
  674. package/js/src/pro/blockchaincom.js +6 -0
  675. package/js/src/pro/blofin.js +6 -0
  676. package/js/src/pro/bybit.js +6 -0
  677. package/js/src/pro/cex.js +6 -0
  678. package/js/src/pro/coinbase.js +6 -0
  679. package/js/src/pro/coinbaseadvanced.js +6 -0
  680. package/js/src/pro/coinbaseexchange.js +6 -0
  681. package/js/src/pro/coinbaseinternational.js +6 -0
  682. package/js/src/pro/coincatch.js +6 -0
  683. package/js/src/pro/coincheck.js +6 -0
  684. package/js/src/pro/coinex.js +12 -5
  685. package/js/src/pro/coinone.js +6 -0
  686. package/js/src/pro/cryptocom.js +6 -0
  687. package/js/src/pro/defx.js +6 -0
  688. package/js/src/pro/deribit.js +6 -0
  689. package/js/src/pro/derive.js +6 -0
  690. package/js/src/pro/exmo.js +6 -0
  691. package/js/src/pro/gate.js +6 -0
  692. package/js/src/pro/gateio.js +6 -0
  693. package/js/src/pro/gemini.js +6 -0
  694. package/js/src/pro/hashkey.js +6 -0
  695. package/js/src/pro/hitbtc.js +6 -0
  696. package/js/src/pro/hollaex.js +6 -0
  697. package/js/src/pro/htx.d.ts +53 -1
  698. package/js/src/pro/htx.js +158 -9
  699. package/js/src/pro/huobi.js +6 -0
  700. package/js/src/pro/hyperliquid.js +6 -0
  701. package/js/src/pro/independentreserve.js +6 -0
  702. package/js/src/pro/kraken.js +6 -0
  703. package/js/src/pro/krakenfutures.js +6 -0
  704. package/js/src/pro/kucoin.js +6 -0
  705. package/js/src/pro/kucoinfutures.js +6 -0
  706. package/js/src/pro/lbank.js +6 -0
  707. package/js/src/pro/luno.js +6 -0
  708. package/js/src/pro/mexc.js +6 -0
  709. package/js/src/pro/modetrade.js +6 -0
  710. package/js/src/pro/myokx.js +6 -0
  711. package/js/src/pro/ndax.js +6 -0
  712. package/js/src/pro/okcoin.js +6 -0
  713. package/js/src/pro/okx.js +6 -0
  714. package/js/src/pro/okxus.js +6 -0
  715. package/js/src/pro/onetrading.js +6 -0
  716. package/js/src/pro/oxfun.js +6 -0
  717. package/js/src/pro/p2b.js +6 -0
  718. package/js/src/pro/paradex.js +6 -0
  719. package/js/src/pro/phemex.d.ts +3 -3
  720. package/js/src/pro/phemex.js +14 -6
  721. package/js/src/pro/poloniex.js +6 -0
  722. package/js/src/pro/probit.js +6 -0
  723. package/js/src/pro/toobit.js +6 -0
  724. package/js/src/pro/upbit.js +6 -0
  725. package/js/src/pro/whitebit.js +6 -0
  726. package/js/src/pro/woo.d.ts +65 -1
  727. package/js/src/pro/woo.js +174 -6
  728. package/js/src/pro/woofipro.js +6 -0
  729. package/js/src/pro/xt.js +6 -0
  730. package/js/src/probit.js +6 -0
  731. package/js/src/protobuf/mexc/compiled.cjs +6 -0
  732. package/js/src/static_dependencies/ethers/abi-coder.js +6 -0
  733. package/js/src/static_dependencies/ethers/address/address.js +6 -0
  734. package/js/src/static_dependencies/ethers/address/checks.js +6 -0
  735. package/js/src/static_dependencies/ethers/address/contract-address.js +6 -0
  736. package/js/src/static_dependencies/ethers/address/index.js +6 -0
  737. package/js/src/static_dependencies/ethers/bytes32.js +6 -0
  738. package/js/src/static_dependencies/ethers/coders/abstract-coder.js +6 -0
  739. package/js/src/static_dependencies/ethers/coders/address.js +6 -0
  740. package/js/src/static_dependencies/ethers/coders/anonymous.js +6 -0
  741. package/js/src/static_dependencies/ethers/coders/array.js +6 -0
  742. package/js/src/static_dependencies/ethers/coders/boolean.js +6 -0
  743. package/js/src/static_dependencies/ethers/coders/bytes.js +6 -0
  744. package/js/src/static_dependencies/ethers/coders/fixed-bytes.js +6 -0
  745. package/js/src/static_dependencies/ethers/coders/null.js +6 -0
  746. package/js/src/static_dependencies/ethers/coders/number.js +6 -0
  747. package/js/src/static_dependencies/ethers/coders/string.js +6 -0
  748. package/js/src/static_dependencies/ethers/coders/tuple.js +6 -0
  749. package/js/src/static_dependencies/ethers/fragments.js +6 -0
  750. package/js/src/static_dependencies/ethers/hash/index.js +6 -0
  751. package/js/src/static_dependencies/ethers/hash/solidity.js +6 -0
  752. package/js/src/static_dependencies/ethers/hash/typed-data.js +6 -0
  753. package/js/src/static_dependencies/ethers/index.js +6 -0
  754. package/js/src/static_dependencies/ethers/interface.js +6 -0
  755. package/js/src/static_dependencies/ethers/typed.js +6 -0
  756. package/js/src/static_dependencies/ethers/utils/base58.js +6 -0
  757. package/js/src/static_dependencies/ethers/utils/base64-browser.js +6 -0
  758. package/js/src/static_dependencies/ethers/utils/base64.js +6 -0
  759. package/js/src/static_dependencies/ethers/utils/data.js +6 -0
  760. package/js/src/static_dependencies/ethers/utils/errors.js +6 -0
  761. package/js/src/static_dependencies/ethers/utils/events.js +6 -0
  762. package/js/src/static_dependencies/ethers/utils/fixednumber.js +6 -0
  763. package/js/src/static_dependencies/ethers/utils/index.js +6 -0
  764. package/js/src/static_dependencies/ethers/utils/maths.js +6 -0
  765. package/js/src/static_dependencies/ethers/utils/properties.js +6 -0
  766. package/js/src/static_dependencies/ethers/utils/rlp-decode.js +6 -0
  767. package/js/src/static_dependencies/ethers/utils/rlp-encode.js +6 -0
  768. package/js/src/static_dependencies/ethers/utils/rlp.js +6 -0
  769. package/js/src/static_dependencies/ethers/utils/units.js +6 -0
  770. package/js/src/static_dependencies/ethers/utils/utf8.js +6 -0
  771. package/js/src/static_dependencies/ethers/utils/uuid.js +6 -0
  772. package/js/src/static_dependencies/fflake/browser.js +6 -0
  773. package/js/src/static_dependencies/jsencrypt/JSEncrypt.js +6 -0
  774. package/js/src/static_dependencies/jsencrypt/JSEncryptRSAKey.js +6 -0
  775. package/js/src/static_dependencies/jsencrypt/index.js +6 -0
  776. package/js/src/static_dependencies/jsencrypt/lib/asn1js/asn1.js +6 -0
  777. package/js/src/static_dependencies/jsencrypt/lib/asn1js/base64.js +6 -0
  778. package/js/src/static_dependencies/jsencrypt/lib/asn1js/hex.js +6 -0
  779. package/js/src/static_dependencies/jsencrypt/lib/asn1js/int10.js +6 -0
  780. package/js/src/static_dependencies/jsencrypt/lib/asn1js/oids.js +6 -0
  781. package/js/src/static_dependencies/jsencrypt/lib/jsbn/base64.js +6 -0
  782. package/js/src/static_dependencies/jsencrypt/lib/jsbn/jsbn.js +6 -0
  783. package/js/src/static_dependencies/jsencrypt/lib/jsbn/prng4.js +6 -0
  784. package/js/src/static_dependencies/jsencrypt/lib/jsbn/rng.js +6 -0
  785. package/js/src/static_dependencies/jsencrypt/lib/jsbn/rsa.js +6 -0
  786. package/js/src/static_dependencies/jsencrypt/lib/jsbn/util.js +6 -0
  787. package/js/src/static_dependencies/jsencrypt/lib/jsrsasign/asn1-1.0.js +6 -0
  788. package/js/src/static_dependencies/jsencrypt/lib/jsrsasign/yahoo.js +6 -0
  789. package/js/src/static_dependencies/messagepack/msgpack.js +6 -0
  790. package/js/src/static_dependencies/noble-curves/_shortw_utils.js +6 -0
  791. package/js/src/static_dependencies/noble-curves/abstract/curve.js +6 -0
  792. package/js/src/static_dependencies/noble-curves/abstract/edwards.js +6 -0
  793. package/js/src/static_dependencies/noble-curves/abstract/hash-to-curve.js +6 -0
  794. package/js/src/static_dependencies/noble-curves/abstract/modular.js +6 -0
  795. package/js/src/static_dependencies/noble-curves/abstract/montgomery.js +6 -0
  796. package/js/src/static_dependencies/noble-curves/abstract/poseidon.js +6 -0
  797. package/js/src/static_dependencies/noble-curves/abstract/utils.js +6 -0
  798. package/js/src/static_dependencies/noble-curves/abstract/weierstrass.js +6 -0
  799. package/js/src/static_dependencies/noble-curves/bn.js +6 -0
  800. package/js/src/static_dependencies/noble-curves/ed25519.js +6 -0
  801. package/js/src/static_dependencies/noble-curves/ed448.js +6 -0
  802. package/js/src/static_dependencies/noble-curves/index.js +6 -0
  803. package/js/src/static_dependencies/noble-curves/jubjub.js +6 -0
  804. package/js/src/static_dependencies/noble-curves/p256.js +6 -0
  805. package/js/src/static_dependencies/noble-curves/p384.js +6 -0
  806. package/js/src/static_dependencies/noble-curves/p521.js +6 -0
  807. package/js/src/static_dependencies/noble-curves/pasta.js +6 -0
  808. package/js/src/static_dependencies/noble-curves/secp256k1.js +6 -0
  809. package/js/src/static_dependencies/noble-hashes/_assert.js +6 -0
  810. package/js/src/static_dependencies/noble-hashes/_blake2.js +6 -0
  811. package/js/src/static_dependencies/noble-hashes/_sha2.js +6 -0
  812. package/js/src/static_dependencies/noble-hashes/_u64.js +6 -0
  813. package/js/src/static_dependencies/noble-hashes/argon2.js +6 -0
  814. package/js/src/static_dependencies/noble-hashes/blake2b.js +6 -0
  815. package/js/src/static_dependencies/noble-hashes/blake2s.js +6 -0
  816. package/js/src/static_dependencies/noble-hashes/blake3.js +6 -0
  817. package/js/src/static_dependencies/noble-hashes/crypto.js +6 -0
  818. package/js/src/static_dependencies/noble-hashes/cryptoNode.js +6 -0
  819. package/js/src/static_dependencies/noble-hashes/eskdf.js +6 -0
  820. package/js/src/static_dependencies/noble-hashes/hkdf.js +6 -0
  821. package/js/src/static_dependencies/noble-hashes/hmac.js +6 -0
  822. package/js/src/static_dependencies/noble-hashes/index.js +6 -0
  823. package/js/src/static_dependencies/noble-hashes/md5.js +6 -0
  824. package/js/src/static_dependencies/noble-hashes/pbkdf2.js +6 -0
  825. package/js/src/static_dependencies/noble-hashes/ripemd160.js +6 -0
  826. package/js/src/static_dependencies/noble-hashes/scrypt.js +6 -0
  827. package/js/src/static_dependencies/noble-hashes/sha1.js +6 -0
  828. package/js/src/static_dependencies/noble-hashes/sha256.js +6 -0
  829. package/js/src/static_dependencies/noble-hashes/sha3-addons.js +6 -0
  830. package/js/src/static_dependencies/noble-hashes/sha3.js +6 -0
  831. package/js/src/static_dependencies/noble-hashes/sha512.js +6 -0
  832. package/js/src/static_dependencies/noble-hashes/utils.js +6 -0
  833. package/js/src/static_dependencies/node-fetch/body.js +6 -0
  834. package/js/src/static_dependencies/node-fetch/errors/abort-error.js +6 -0
  835. package/js/src/static_dependencies/node-fetch/errors/base.js +6 -0
  836. package/js/src/static_dependencies/node-fetch/errors/fetch-error.js +6 -0
  837. package/js/src/static_dependencies/node-fetch/headers.js +6 -0
  838. package/js/src/static_dependencies/node-fetch/index.js +6 -0
  839. package/js/src/static_dependencies/node-fetch/request.js +6 -0
  840. package/js/src/static_dependencies/node-fetch/response.js +6 -0
  841. package/js/src/static_dependencies/node-fetch/utils/get-search.js +6 -0
  842. package/js/src/static_dependencies/node-fetch/utils/is-redirect.js +6 -0
  843. package/js/src/static_dependencies/node-fetch/utils/is.js +6 -0
  844. package/js/src/static_dependencies/node-fetch/utils/referrer.js +6 -0
  845. package/js/src/static_dependencies/proxies/agent-base/helpers.js +6 -0
  846. package/js/src/static_dependencies/proxies/agent-base/index.js +6 -0
  847. package/js/src/static_dependencies/proxies/http-proxy-agent/index.js +6 -0
  848. package/js/src/static_dependencies/proxies/https-proxy-agent/index.js +6 -0
  849. package/js/src/static_dependencies/proxies/https-proxy-agent/parse-proxy-response.js +6 -0
  850. package/js/src/static_dependencies/qs/formats.d.ts +8 -0
  851. package/js/src/static_dependencies/qs/formats.js +21 -0
  852. package/js/src/static_dependencies/qs/index.d.ts +19 -0
  853. package/js/src/static_dependencies/qs/index.js +21 -0
  854. package/js/src/static_dependencies/qs/parse.d.ts +1 -0
  855. package/js/src/static_dependencies/qs/parse.js +207 -0
  856. package/js/src/static_dependencies/qs/stringify.d.ts +1 -0
  857. package/js/src/static_dependencies/qs/stringify.js +191 -0
  858. package/js/src/static_dependencies/qs/{utils.cjs → utils.js} +7 -12
  859. package/js/src/static_dependencies/scure-base/index.js +6 -0
  860. package/js/src/static_dependencies/scure-starknet/index.js +6 -0
  861. package/js/src/static_dependencies/starknet/constants.js +6 -0
  862. package/js/src/static_dependencies/starknet/index.js +6 -0
  863. package/js/src/static_dependencies/starknet/types/cairoEnum.js +6 -0
  864. package/js/src/static_dependencies/starknet/types/calldata.js +6 -0
  865. package/js/src/static_dependencies/starknet/types/index.js +6 -0
  866. package/js/src/static_dependencies/starknet/types/lib/contract/abi.js +6 -0
  867. package/js/src/static_dependencies/starknet/types/lib/contract/index.js +6 -0
  868. package/js/src/static_dependencies/starknet/types/lib/contract/legacy.js +6 -0
  869. package/js/src/static_dependencies/starknet/types/lib/contract/sierra.js +6 -0
  870. package/js/src/static_dependencies/starknet/types/lib/index.js +6 -0
  871. package/js/src/static_dependencies/starknet/types/typedData.js +6 -0
  872. package/js/src/static_dependencies/starknet/utils/address.js +6 -0
  873. package/js/src/static_dependencies/starknet/utils/assert.js +6 -0
  874. package/js/src/static_dependencies/starknet/utils/cairoDataTypes/felt.js +6 -0
  875. package/js/src/static_dependencies/starknet/utils/cairoDataTypes/uint256.js +6 -0
  876. package/js/src/static_dependencies/starknet/utils/cairoDataTypes/uint512.js +6 -0
  877. package/js/src/static_dependencies/starknet/utils/calldata/byteArray.js +6 -0
  878. package/js/src/static_dependencies/starknet/utils/calldata/cairo.js +6 -0
  879. package/js/src/static_dependencies/starknet/utils/calldata/enum/CairoCustomEnum.js +6 -0
  880. package/js/src/static_dependencies/starknet/utils/calldata/enum/CairoOption.js +6 -0
  881. package/js/src/static_dependencies/starknet/utils/calldata/enum/CairoResult.js +6 -0
  882. package/js/src/static_dependencies/starknet/utils/calldata/enum/index.js +6 -0
  883. package/js/src/static_dependencies/starknet/utils/calldata/formatter.js +6 -0
  884. package/js/src/static_dependencies/starknet/utils/calldata/index.js +6 -0
  885. package/js/src/static_dependencies/starknet/utils/calldata/parser/index.js +6 -0
  886. package/js/src/static_dependencies/starknet/utils/calldata/parser/interface.js +6 -0
  887. package/js/src/static_dependencies/starknet/utils/calldata/parser/parser-0-1.1.0.js +6 -0
  888. package/js/src/static_dependencies/starknet/utils/calldata/parser/parser-2.0.0.js +6 -0
  889. package/js/src/static_dependencies/starknet/utils/calldata/propertyOrder.js +6 -0
  890. package/js/src/static_dependencies/starknet/utils/calldata/requestParser.js +6 -0
  891. package/js/src/static_dependencies/starknet/utils/calldata/responseParser.js +6 -0
  892. package/js/src/static_dependencies/starknet/utils/calldata/tuple.js +6 -0
  893. package/js/src/static_dependencies/starknet/utils/calldata/validate.js +6 -0
  894. package/js/src/static_dependencies/starknet/utils/encode.js +6 -0
  895. package/js/src/static_dependencies/starknet/utils/hash/classHash.js +6 -0
  896. package/js/src/static_dependencies/starknet/utils/hash/index.js +6 -0
  897. package/js/src/static_dependencies/starknet/utils/merkle.js +6 -0
  898. package/js/src/static_dependencies/starknet/utils/num.js +6 -0
  899. package/js/src/static_dependencies/starknet/utils/selector.js +6 -0
  900. package/js/src/static_dependencies/starknet/utils/shortString.js +6 -0
  901. package/js/src/static_dependencies/starknet/utils/starknetId.js +6 -0
  902. package/js/src/static_dependencies/starknet/utils/typedData.js +6 -0
  903. package/js/src/static_dependencies/starknet/utils/uint256.js +6 -0
  904. package/js/src/static_dependencies/starknet/utils/url.js +6 -0
  905. package/js/src/static_dependencies/watchable/src/index.js +6 -0
  906. package/js/src/static_dependencies/watchable/src/types.js +6 -0
  907. package/js/src/static_dependencies/watchable/src/unpromise.js +6 -0
  908. package/js/src/static_dependencies/zklink/zklink-sdk-web.js +6 -0
  909. package/js/src/timex.js +6 -0
  910. package/js/src/tokocrypto.js +6 -0
  911. package/js/src/toobit.js +6 -0
  912. package/js/src/upbit.d.ts +5 -3
  913. package/js/src/upbit.js +92 -70
  914. package/js/src/wavesexchange.js +7 -0
  915. package/js/src/whitebit.d.ts +84 -1
  916. package/js/src/whitebit.js +581 -32
  917. package/js/src/woo.js +6 -0
  918. package/js/src/woofipro.js +6 -0
  919. package/js/src/xt.js +6 -0
  920. package/js/src/yobit.js +7 -0
  921. package/js/src/zaif.js +7 -0
  922. package/js/src/zonda.js +7 -0
  923. package/package.json +1 -1
  924. package/js/src/static_dependencies/qs/formats.cjs +0 -16
  925. package/js/src/static_dependencies/qs/formats.d.cts +0 -8
  926. package/js/src/static_dependencies/qs/index.cjs +0 -9
  927. package/js/src/static_dependencies/qs/index.d.cts +0 -4
  928. package/js/src/static_dependencies/qs/parse.d.cts +0 -2
  929. package/js/src/static_dependencies/qs/stringify.d.cts +0 -2
  930. /package/js/src/static_dependencies/qs/{utils.d.cts → utils.d.ts} +0 -0
@@ -1,3 +1,9 @@
1
+ // ----------------------------------------------------------------------------
2
+
3
+ // PLEASE DO NOT EDIT THIS FILE, IT IS GENERATED AND WILL BE OVERWRITTEN:
4
+ // https://github.com/ccxt/ccxt/blob/master/CONTRIBUTING.md#how-to-contribute-code
5
+ // EDIT THE CORRESPONDENT .ts FILE INSTEAD
6
+
1
7
  // ---------------------------------------------------------------------------
2
8
  import Exchange from './abstract/whitebit.js';
3
9
  import { ExchangeNotAvailable, ExchangeError, DDoSProtection, BadSymbol, InvalidOrder, ArgumentsRequired, AuthenticationError, OrderNotFound, PermissionDenied, InsufficientFunds, BadRequest, NotSupported } from './base/errors.js';
@@ -40,7 +46,8 @@ export default class whitebit extends Exchange {
40
46
  'createStopMarketOrder': true,
41
47
  'createStopOrder': true,
42
48
  'createTriggerOrder': true,
43
- 'editOrder': false,
49
+ 'editOrder': true,
50
+ 'fetchAccounts': true,
44
51
  'fetchBalance': true,
45
52
  'fetchBorrowRateHistories': false,
46
53
  'fetchBorrowRateHistory': false,
@@ -60,12 +67,14 @@ export default class whitebit extends Exchange {
60
67
  'fetchDepositWithdrawFee': 'emulated',
61
68
  'fetchDepositWithdrawFees': true,
62
69
  'fetchFundingHistory': true,
70
+ 'fetchFundingLimits': true,
63
71
  'fetchFundingRate': true,
64
72
  'fetchFundingRateHistory': false,
65
73
  'fetchFundingRates': true,
66
74
  'fetchIndexOHLCV': false,
67
75
  'fetchIsolatedBorrowRate': false,
68
76
  'fetchIsolatedBorrowRates': false,
77
+ 'fetchLedger': false,
69
78
  'fetchMarginMode': false,
70
79
  'fetchMarkets': true,
71
80
  'fetchMarkOHLCV': false,
@@ -73,7 +82,9 @@ export default class whitebit extends Exchange {
73
82
  'fetchOHLCV': true,
74
83
  'fetchOpenInterestHistory': false,
75
84
  'fetchOpenOrders': true,
85
+ 'fetchOrder': true,
76
86
  'fetchOrderBook': true,
87
+ 'fetchOrders': true,
77
88
  'fetchOrderTrades': true,
78
89
  'fetchPosition': true,
79
90
  'fetchPositionHistory': true,
@@ -87,7 +98,10 @@ export default class whitebit extends Exchange {
87
98
  'fetchTrades': true,
88
99
  'fetchTradingFee': false,
89
100
  'fetchTradingFees': true,
101
+ 'fetchTradingLimits': true,
90
102
  'fetchTransactionFees': true,
103
+ 'fetchTransactions': true,
104
+ 'fetchWithdrawals': true,
91
105
  'repayCrossMargin': false,
92
106
  'repayIsolatedMargin': false,
93
107
  'setLeverage': true,
@@ -221,8 +235,8 @@ export default class whitebit extends Exchange {
221
235
  'main-account/smart/interest-payment-history',
222
236
  'trade-account/balance',
223
237
  'trade-account/executed-history',
224
- 'trade-account/order',
225
238
  'trade-account/order/history',
239
+ 'trade-account/order',
226
240
  'order/collateral/limit',
227
241
  'order/collateral/market',
228
242
  'order/collateral/stop-limit',
@@ -334,7 +348,14 @@ export default class whitebit extends Exchange {
334
348
  'untilDays': undefined,
335
349
  'symbolRequired': false,
336
350
  },
337
- 'fetchOrder': undefined,
351
+ 'fetchOrder': {
352
+ 'checkActive': true,
353
+ 'checkExecuted': true,
354
+ 'symbolRequired': false,
355
+ 'marginMode': false,
356
+ 'trigger': false,
357
+ 'trailing': false,
358
+ },
338
359
  'fetchOpenOrders': {
339
360
  'marginMode': false,
340
361
  'limit': 100,
@@ -342,7 +363,15 @@ export default class whitebit extends Exchange {
342
363
  'trailing': false,
343
364
  'symbolRequired': false,
344
365
  },
345
- 'fetchOrders': undefined,
366
+ 'fetchOrders': {
367
+ 'marginMode': false,
368
+ 'limit': 100,
369
+ 'daysBack': undefined,
370
+ 'untilDays': undefined,
371
+ 'trigger': false,
372
+ 'trailing': false,
373
+ 'symbolRequired': false,
374
+ },
346
375
  'fetchClosedOrders': {
347
376
  'marginMode': false,
348
377
  'limit': 100,
@@ -356,6 +385,13 @@ export default class whitebit extends Exchange {
356
385
  'fetchOHLCV': {
357
386
  'limit': 1440,
358
387
  },
388
+ 'fetchWithdrawals': {
389
+ 'marginMode': false,
390
+ 'limit': 100,
391
+ 'daysBack': undefined,
392
+ 'untilDays': undefined,
393
+ 'symbolRequired': false,
394
+ },
359
395
  },
360
396
  'spot': {
361
397
  'extends': 'default',
@@ -928,6 +964,265 @@ export default class whitebit extends Exchange {
928
964
  }
929
965
  return result;
930
966
  }
967
+ /**
968
+ * @method
969
+ * @name whitebit#fetchTradingLimits
970
+ * @description fetch the trading limits for a market
971
+ * @see https://docs.whitebit.com/public/http-v4/#market-info
972
+ * @param {string[]|undefined} symbols unified market symbol
973
+ * @param {object} [params] extra parameters specific to the exchange API endpoint
974
+ * @returns {object} a [trading limits structure]{@link https://docs.ccxt.com/#/?id=trading-limits-structure}
975
+ */
976
+ async fetchTradingLimits(symbols = undefined, params = {}) {
977
+ await this.loadMarkets();
978
+ //
979
+ // Trading limits are derived from market information already loaded by loadMarkets()
980
+ // Market structure includes:
981
+ // {
982
+ // "id": "BTC_USDT", // Market ID
983
+ // "symbol": "BTC/USDT", // Unified symbol
984
+ // "base": "BTC", // Base currency
985
+ // "quote": "USDT", // Quote currency
986
+ // "active": true, // Market active status
987
+ // "type": "spot", // Market type
988
+ // "spot": true, // Spot trading enabled
989
+ // "margin": false, // Margin trading enabled
990
+ // "future": false, // Futures trading enabled
991
+ // "option": false, // Options trading enabled
992
+ // "contract": false, // Contract trading enabled
993
+ // "settle": undefined, // Settlement currency
994
+ // "settleId": undefined, // Settlement currency ID
995
+ // "contractSize": undefined, // Contract size
996
+ // "linear": undefined, // Linear contract
997
+ // "inverse": undefined, // Inverse contract
998
+ // "limits": { // Trading limits
999
+ // "amount": { // Amount limits
1000
+ // "min": 0.00001, // Minimum amount
1001
+ // "max": 1000000 // Maximum amount
1002
+ // },
1003
+ // "price": { // Price limits
1004
+ // "min": 0.01, // Minimum price
1005
+ // "max": 1000000 // Maximum price
1006
+ // },
1007
+ // "cost": { // Cost limits
1008
+ // "min": 5.0, // Minimum cost
1009
+ // "max": 10000000 // Maximum cost
1010
+ // }
1011
+ // },
1012
+ // "precision": { // Precision settings
1013
+ // "amount": 5, // Amount precision
1014
+ // "price": 2 // Price precision
1015
+ // },
1016
+ // "taker": 0.001, // Taker fee
1017
+ // "maker": 0.001, // Maker fee
1018
+ // "percentage": true, // Fee percentage
1019
+ // "tierBased": false // Tier-based fees
1020
+ // }
1021
+ //
1022
+ const result = {};
1023
+ // Process all markets from the loaded markets cache
1024
+ const marketIds = Object.keys(this.markets);
1025
+ for (let i = 0; i < marketIds.length; i++) {
1026
+ const marketId = marketIds[i];
1027
+ const market = this.markets[marketId];
1028
+ if (!market || !market['symbol']) {
1029
+ continue; // Skip invalid markets silently
1030
+ }
1031
+ const symbol = market['symbol'];
1032
+ // Filter by symbols if specified
1033
+ if (symbols) {
1034
+ let symbolFound = false;
1035
+ for (let j = 0; j < symbols.length; j++) {
1036
+ if (symbols[j] === symbol) {
1037
+ symbolFound = true;
1038
+ break;
1039
+ }
1040
+ }
1041
+ if (!symbolFound) {
1042
+ continue; // Skip symbols not in requested list
1043
+ }
1044
+ }
1045
+ // Extract trading limits
1046
+ const limits = this.safeDict(market, 'limits');
1047
+ const amountLimits = this.safeDict(limits, 'amount');
1048
+ const priceLimits = this.safeDict(limits, 'price');
1049
+ const costLimits = this.safeDict(limits, 'cost');
1050
+ // Validate that all required limits exist and are valid numbers
1051
+ const hasAmountLimits = amountLimits && this.safeNumber(amountLimits, 'min') !== undefined && this.safeNumber(amountLimits, 'max') !== undefined;
1052
+ const hasPriceLimits = priceLimits && this.safeNumber(priceLimits, 'min') !== undefined && this.safeNumber(priceLimits, 'max') !== undefined;
1053
+ const hasCostLimits = costLimits && this.safeNumber(costLimits, 'min') !== undefined && this.safeNumber(costLimits, 'max') !== undefined;
1054
+ if (hasAmountLimits && hasPriceLimits && hasCostLimits) {
1055
+ result[symbol] = {
1056
+ 'info': market,
1057
+ 'limits': {
1058
+ 'amount': {
1059
+ 'min': this.safeNumber(amountLimits, 'min'),
1060
+ 'max': this.safeNumber(amountLimits, 'max'),
1061
+ },
1062
+ 'price': {
1063
+ 'min': this.safeNumber(priceLimits, 'min'),
1064
+ 'max': this.safeNumber(priceLimits, 'max'),
1065
+ },
1066
+ 'cost': {
1067
+ 'min': this.safeNumber(costLimits, 'min'),
1068
+ 'max': this.safeNumber(costLimits, 'max'),
1069
+ },
1070
+ },
1071
+ };
1072
+ }
1073
+ }
1074
+ return result;
1075
+ }
1076
+ /**
1077
+ * @method
1078
+ * @name whitebit#fetchFundingLimits
1079
+ * @description fetch the deposit and withdrawal limits for a currency
1080
+ * @see https://docs.whitebit.com/public/http-v4/#asset-status-list
1081
+ * @see https://docs.whitebit.com/public/http-v4/#fee
1082
+ * @param {string[]|undefined} codes unified currency codes
1083
+ * @param {object} [params] extra parameters specific to the exchange API endpoint
1084
+ * @returns {object} a [funding limits structure]{@link https://docs.ccxt.com/#/?id=funding-limits-structure}
1085
+ */
1086
+ async fetchFundingLimits(codes = undefined, params = {}) {
1087
+ await this.loadMarkets();
1088
+ // Fetch both currencies and fees data for comprehensive funding limits
1089
+ const [currenciesData, feesData] = await Promise.all([
1090
+ this.fetchCurrencies(),
1091
+ this.v4PublicGetFee(params),
1092
+ ]);
1093
+ //
1094
+ // Currencies response structure (from fetchCurrencies):
1095
+ // {
1096
+ // "BTC": {
1097
+ // "id": "BTC", // Currency ID
1098
+ // "code": "BTC", // Currency code
1099
+ // "name": "Bitcoin", // Currency name
1100
+ // "active": true, // Currency active status
1101
+ // "type": "crypto", // Currency type
1102
+ // "precision": 8, // Currency precision
1103
+ // "limits": { // Currency limits
1104
+ // "deposit": { // Deposit limits
1105
+ // "min": 0.00001, // Minimum deposit
1106
+ // "max": 1000000 // Maximum deposit
1107
+ // },
1108
+ // "withdraw": { // Withdrawal limits
1109
+ // "min": 0.00001, // Minimum withdrawal
1110
+ // "max": 1000000 // Maximum withdrawal
1111
+ // }
1112
+ // },
1113
+ // "networks": { // Network-specific limits
1114
+ // "BTC": {
1115
+ // "limits": {
1116
+ // "deposit": { "min": "0.001" },
1117
+ // "withdraw": { "min": "0.002" }
1118
+ // }
1119
+ // }
1120
+ // },
1121
+ // "info": { ... } // Original API response
1122
+ // }
1123
+ // }
1124
+ //
1125
+ // Fees response structure (from /api/v4/public/fee):
1126
+ // {
1127
+ // "USDT (ERC20)": {
1128
+ // "ticker": "USDT",
1129
+ // "name": "Tether US",
1130
+ // "deposit": {
1131
+ // "min_amount": "0.0005",
1132
+ // "max_amount": "0.1",
1133
+ // "fixed": "0.0005",
1134
+ // "flex": {
1135
+ // "min_fee": "100",
1136
+ // "max_fee": "1000",
1137
+ // "percent": "10"
1138
+ // }
1139
+ // },
1140
+ // "withdraw": {
1141
+ // "min_amount": "0.001",
1142
+ // "max_amount": "0",
1143
+ // "fixed": null,
1144
+ // "flex": null
1145
+ // }
1146
+ // }
1147
+ // }
1148
+ //
1149
+ const result = {};
1150
+ const currencyKeys = Object.keys(currenciesData);
1151
+ for (let i = 0; i < currencyKeys.length; i++) {
1152
+ const code = currencyKeys[i];
1153
+ const currency = currenciesData[code];
1154
+ if (!currency) {
1155
+ // Skip invalid currency silently
1156
+ continue;
1157
+ }
1158
+ if (codes !== undefined && !this.inArray(code, codes)) {
1159
+ // Skip currency not in requested list silently
1160
+ continue;
1161
+ }
1162
+ // Find corresponding fee data for this currency
1163
+ let feeData = undefined;
1164
+ const feeKeys = Object.keys(feesData);
1165
+ for (let j = 0; j < feeKeys.length; j++) {
1166
+ const feeKey = feeKeys[j];
1167
+ const fee = feesData[feeKey];
1168
+ if (fee && fee['ticker'] === code) {
1169
+ feeData = fee;
1170
+ break;
1171
+ }
1172
+ }
1173
+ // Build comprehensive funding limits
1174
+ const limits = {
1175
+ 'deposit': {
1176
+ 'min': currency['limits']['deposit']['min'],
1177
+ 'max': currency['limits']['deposit']['max'],
1178
+ },
1179
+ 'withdraw': {
1180
+ 'min': currency['limits']['withdraw']['min'],
1181
+ 'max': currency['limits']['withdraw']['max'],
1182
+ },
1183
+ };
1184
+ // Add fee information if available
1185
+ if (feeData) {
1186
+ const depositFee = feeData['deposit'];
1187
+ const withdrawFee = feeData['withdraw'];
1188
+ if (depositFee) {
1189
+ const depositFeeData = {
1190
+ 'fixed': this.safeNumber(depositFee, 'fixed'),
1191
+ };
1192
+ if (depositFee['flex']) {
1193
+ depositFeeData['flex'] = {
1194
+ 'min': this.safeNumber(depositFee['flex'], 'min_fee'),
1195
+ 'max': this.safeNumber(depositFee['flex'], 'max_fee'),
1196
+ 'percent': this.safeNumber(depositFee['flex'], 'percent'),
1197
+ };
1198
+ }
1199
+ limits['deposit']['fee'] = depositFeeData;
1200
+ }
1201
+ if (withdrawFee) {
1202
+ const withdrawFeeData = {
1203
+ 'fixed': this.safeNumber(withdrawFee, 'fixed'),
1204
+ };
1205
+ if (withdrawFee['flex']) {
1206
+ withdrawFeeData['flex'] = {
1207
+ 'min': this.safeNumber(withdrawFee['flex'], 'min_fee'),
1208
+ 'max': this.safeNumber(withdrawFee['flex'], 'max_fee'),
1209
+ 'percent': this.safeNumber(withdrawFee['flex'], 'percent'),
1210
+ };
1211
+ }
1212
+ limits['withdraw']['fee'] = withdrawFeeData;
1213
+ }
1214
+ }
1215
+ // Add network-specific limits if available
1216
+ if (currency['networks']) {
1217
+ limits['networks'] = currency['networks'];
1218
+ }
1219
+ result[code] = {
1220
+ 'info': currency,
1221
+ 'limits': limits,
1222
+ };
1223
+ }
1224
+ return result;
1225
+ }
931
1226
  /**
932
1227
  * @method
933
1228
  * @name whitebit#fetchTicker
@@ -1045,6 +1340,81 @@ export default class whitebit extends Exchange {
1045
1340
  'info': ticker,
1046
1341
  }, market);
1047
1342
  }
1343
+ /**
1344
+ * @method
1345
+ * @name whitebit#fetchOrder
1346
+ * @description fetches information on an order by the id
1347
+ * @see https://docs.whitebit.com/private/http-trade-v4/#query-unexecutedactive-orders
1348
+ * @see https://docs.whitebit.com/private/http-trade-v4/#query-executed-orders
1349
+ * @param {string} id order id
1350
+ * @param {string} symbol unified symbol of the market the order was made in
1351
+ * @param {object} [params] extra parameters specific to the exchange API endpoint
1352
+ * @param {boolean} [params.checkActive] whether to check active orders (default: true)
1353
+ * @param {boolean} [params.checkExecuted] whether to check executed orders (default: true)
1354
+ * @returns {object} an [order structure]{@link https://docs.ccxt.com/#/?id=order-structure}
1355
+ */
1356
+ async fetchOrder(id, symbol = undefined, params = {}) {
1357
+ await this.loadMarkets();
1358
+ // Extract control parameters from params
1359
+ const checkActive = this.safeBool(params, 'checkActive', true);
1360
+ const checkExecuted = this.safeBool(params, 'checkExecuted', true);
1361
+ const request = {
1362
+ 'orderId': id,
1363
+ };
1364
+ let market = undefined;
1365
+ if (symbol !== undefined) {
1366
+ market = this.market(symbol);
1367
+ request['market'] = market['id'];
1368
+ }
1369
+ // Try active orders first (if enabled)
1370
+ if (checkActive) {
1371
+ try {
1372
+ const response = await this.v4PrivatePostOrders(this.extend(request, params));
1373
+ // Search for order in active orders response (array format)
1374
+ for (let i = 0; i < response.length; i++) {
1375
+ const order = response[i];
1376
+ const orderId = this.safeString(order, 'orderId');
1377
+ if (orderId === id) {
1378
+ const marketId = this.safeString(order, 'market');
1379
+ const marketNew = this.safeMarket(marketId, undefined, '_');
1380
+ return this.parseOrder(order, marketNew);
1381
+ }
1382
+ }
1383
+ }
1384
+ catch (error) {
1385
+ if (!(error instanceof OrderNotFound)) {
1386
+ throw error;
1387
+ }
1388
+ }
1389
+ }
1390
+ // Try executed orders (if enabled)
1391
+ if (checkExecuted) {
1392
+ try {
1393
+ const response = await this.v4PrivatePostTradeAccountOrderHistory(this.extend(request, params));
1394
+ // Search for order in executed orders response (object format)
1395
+ const marketIds = Object.keys(response);
1396
+ for (let i = 0; i < marketIds.length; i++) {
1397
+ const marketId = marketIds[i];
1398
+ const marketNew = this.safeMarket(marketId, undefined, '_');
1399
+ const orders = response[marketId];
1400
+ for (let j = 0; j < orders.length; j++) {
1401
+ const order = orders[j];
1402
+ const orderId = this.safeString(order, 'id');
1403
+ if (orderId === id) {
1404
+ return this.parseOrder(order, marketNew);
1405
+ }
1406
+ }
1407
+ }
1408
+ }
1409
+ catch (error) {
1410
+ if (!(error instanceof OrderNotFound)) {
1411
+ throw error;
1412
+ }
1413
+ }
1414
+ }
1415
+ // If both checks failed or were disabled, throw OrderNotFound
1416
+ throw new OrderNotFound(this.id + ' fetchOrder() order not found: ' + id);
1417
+ }
1048
1418
  /**
1049
1419
  * @method
1050
1420
  * @name whitebit#fetchTickers
@@ -1587,52 +1957,55 @@ export default class whitebit extends Exchange {
1587
1957
  * @returns {object} an [order structure]{@link https://docs.ccxt.com/#/?id=order-structure}
1588
1958
  */
1589
1959
  async editOrder(id, symbol, type, side, amount = undefined, price = undefined, params = {}) {
1590
- if (id === undefined) {
1591
- throw new ArgumentsRequired(this.id + ' editOrder() requires a id argument');
1592
- }
1593
- if (symbol === undefined) {
1594
- throw new ArgumentsRequired(this.id + ' editOrder() requires a symbol argument');
1595
- }
1596
1960
  await this.loadMarkets();
1597
1961
  const market = this.market(symbol);
1598
1962
  const request = {
1599
- 'orderId': id,
1600
1963
  'market': market['id'],
1601
1964
  };
1602
- const clientOrderId = this.safeString2(params, 'clOrdId', 'clientOrderId');
1965
+ // Handle clientOrderId vs orderId (clientOrderId takes priority)
1966
+ const clientOrderId = this.safeString(params, 'clientOrderId');
1603
1967
  if (clientOrderId !== undefined) {
1604
- // Update clientOrderId of the order
1605
1968
  request['clientOrderId'] = clientOrderId;
1606
1969
  }
1607
- const isLimitOrder = type === 'limit';
1608
- const triggerPrice = this.safeNumberN(params, ['triggerPrice', 'stopPrice', 'activation_price']);
1970
+ else {
1971
+ request['orderId'] = id;
1972
+ }
1973
+ // Handle amount vs total parameter based on order type and side
1974
+ const triggerPrice = this.safeNumberN(params, ['triggerPrice', 'stopPrice', 'activationPrice']);
1609
1975
  const isStopOrder = (triggerPrice !== undefined);
1610
- params = this.omit(params, ['clOrdId', 'clientOrderId', 'triggerPrice', 'stopPrice']);
1976
+ // Handle activation price for stop orders
1611
1977
  if (isStopOrder) {
1612
1978
  request['activation_price'] = this.priceToPrecision(symbol, triggerPrice);
1979
+ }
1980
+ const isLimitOrder = type === 'limit';
1981
+ const total = this.safeNumber(params, 'total');
1982
+ if (total !== undefined) {
1983
+ request['total'] = this.amountToPrecision(symbol, total);
1984
+ }
1985
+ else if (amount !== undefined) {
1613
1986
  if (isLimitOrder) {
1614
- // stop limit order
1987
+ // Limit orders always use amount parameter
1615
1988
  request['amount'] = this.amountToPrecision(symbol, amount);
1616
- request['price'] = this.priceToPrecision(symbol, price);
1989
+ }
1990
+ else if (type === 'market' && side === 'buy') {
1991
+ // Market buy orders use total parameter
1992
+ request['total'] = this.amountToPrecision(symbol, amount);
1617
1993
  }
1618
1994
  else {
1619
- // stop market order
1620
- if (side === 'buy') {
1621
- // Use total parameter instead of amount for modify buy stop market order
1622
- request['total'] = this.amountToPrecision(symbol, amount);
1623
- }
1624
- else {
1625
- request['amount'] = this.amountToPrecision(symbol, amount);
1626
- }
1995
+ // Market sell orders use amount parameter
1996
+ request['amount'] = this.amountToPrecision(symbol, amount);
1627
1997
  }
1628
1998
  }
1629
- else {
1630
- request['amount'] = this.amountToPrecision(symbol, amount);
1631
- if (isLimitOrder) {
1632
- // limit order
1633
- request['price'] = this.priceToPrecision(symbol, price);
1634
- }
1999
+ // Handle price parameter for limit orders
2000
+ if (price !== undefined) {
2001
+ request['price'] = this.priceToPrecision(symbol, price);
2002
+ }
2003
+ // Ensure at least one modifiable parameter is provided
2004
+ const hasModifiableParam = (amount !== undefined) || (price !== undefined) || (triggerPrice !== undefined) || (total !== undefined);
2005
+ if (!hasModifiableParam) {
2006
+ throw new ArgumentsRequired(this.id + ' editOrder() requires at least one of: amount, price, activationPrice, or total parameters');
1635
2007
  }
2008
+ params = this.omit(params, ['clientOrderId', 'triggerPrice', 'stopPrice', 'activationPrice', 'total']);
1636
2009
  const response = await this.v4PrivatePostOrderModify(this.extend(request, params));
1637
2010
  return this.parseOrder(response);
1638
2011
  }
@@ -1723,6 +2096,34 @@ export default class whitebit extends Exchange {
1723
2096
  //
1724
2097
  return this.parseOrders(response, market);
1725
2098
  }
2099
+ /**
2100
+ * @method
2101
+ * @name whitebit#fetchOrders
2102
+ * @description fetches information on multiple orders made by the user (combines open and closed orders)
2103
+ * @see https://docs.whitebit.com/private/http-trade-v4/#query-unexecutedactive-orders
2104
+ * @see https://docs.whitebit.com/private/http-trade-v4/#query-executed-orders
2105
+ * @param {string} symbol unified market symbol of the market orders were made in
2106
+ * @param {int} [since] the earliest time in ms to fetch orders for
2107
+ * @param {int} [limit] the maximum number of order structures to retrieve
2108
+ * @param {object} [params] extra parameters specific to the exchange API endpoint
2109
+ * @returns {Order[]} a list of [order structures]{@link https://docs.ccxt.com/#/?id=order-structure}
2110
+ */
2111
+ async fetchOrders(symbol = undefined, since = undefined, limit = undefined, params = {}) {
2112
+ await this.loadMarkets();
2113
+ // Fetch both open and closed orders in parallel
2114
+ const [openOrders, closedOrders] = await Promise.all([
2115
+ this.fetchOpenOrders(symbol, since, limit, params),
2116
+ this.fetchClosedOrders(symbol, since, limit, params),
2117
+ ]);
2118
+ const allOrders = this.arrayConcat(openOrders, closedOrders);
2119
+ // Sort by timestamp (most recent first)
2120
+ const sortedOrders = this.sortBy(allOrders, 'timestamp', true);
2121
+ // Apply limit if specified (since and symbol filtering already handled by individual methods)
2122
+ if (limit !== undefined && sortedOrders.length > limit) {
2123
+ return sortedOrders.slice(0, limit);
2124
+ }
2125
+ return sortedOrders;
2126
+ }
1726
2127
  /**
1727
2128
  * @method
1728
2129
  * @name whitebit#cancelAllOrdersAfter
@@ -2097,6 +2498,109 @@ export default class whitebit extends Exchange {
2097
2498
  const data = this.safeList(response, 'records', []);
2098
2499
  return this.parseTrades(data, market);
2099
2500
  }
2501
+ /**
2502
+ * @method
2503
+ * @name whitebit#fetchWithdrawals
2504
+ * @description fetch all withdrawals made from an account
2505
+ * @see https://docs.whitebit.com/private/http-main-v4/#get-depositwithdraw-history
2506
+ * @param {string} code unified currency code
2507
+ * @param {int} [since] the earliest time in ms to fetch withdrawals for
2508
+ * @param {int} [limit] the maximum number of withdrawals structures to retrieve
2509
+ * @param {object} [params] extra parameters specific to the exchange API endpoint
2510
+ * @param {string} [params.transactionMethod] transaction method (1=deposit, 2=withdrawal) - automatically set to '2' for withdrawals
2511
+ * @returns {object[]} a list of [transaction structures]{@link https://docs.ccxt.com/#/?id=transaction-structure}
2512
+ */
2513
+ async fetchWithdrawals(code = undefined, since = undefined, limit = undefined, params = {}) {
2514
+ await this.loadMarkets();
2515
+ let currency = undefined;
2516
+ const request = {};
2517
+ if (code !== undefined) {
2518
+ currency = this.currency(code);
2519
+ request['ticker'] = currency['id'];
2520
+ }
2521
+ if (since !== undefined) {
2522
+ request['startDate'] = this.parseToInt(since / 1000);
2523
+ }
2524
+ if (limit === undefined || limit > 100) {
2525
+ limit = 100;
2526
+ }
2527
+ if (limit !== undefined) {
2528
+ request['limit'] = limit;
2529
+ }
2530
+ // Use transactionMethod parameter to filter withdrawals server-side (method = 2)
2531
+ request['transactionMethod'] = '2';
2532
+ const response = await this.v4PrivatePostMainAccountHistory(this.extend(request, params));
2533
+ //
2534
+ // [
2535
+ // {
2536
+ // "id": 123456789, // Transaction ID
2537
+ // "method": "2", // Method: 1=deposit, 2=withdrawal (filtered server-side)
2538
+ // "ticker": "BTC", // Currency ticker
2539
+ // "amount": "0.001", // Transaction amount
2540
+ // "address": "1A1zP1eP5QGefi2DMPTfTL5SLmv7DivfNa", // Withdrawal address
2541
+ // "memo": "", // Memo/tag (if required)
2542
+ // "network": "BTC", // Network name
2543
+ // "fee": "0.0005", // Transaction fee
2544
+ // "status": "1", // Status: 0=pending, 1=completed, 2=failed
2545
+ // "timestamp": 1641051917, // Transaction timestamp
2546
+ // "txid": "abc123def456..." // Transaction hash
2547
+ // },
2548
+ // { ... } // More withdrawal transactions
2549
+ // ]
2550
+ //
2551
+ return this.parseTransactions(response, currency, since, limit);
2552
+ }
2553
+ /**
2554
+ * @method
2555
+ * @name whitebit#fetchTransactions
2556
+ * @description fetch history of deposits and withdrawals
2557
+ * @see https://docs.whitebit.com/private/http-main-v4/#get-depositwithdraw-history
2558
+ * @param {string} [code] unified currency code
2559
+ * @param {int} [since] the earliest time in ms to fetch transactions for
2560
+ * @param {int} [limit] the maximum number of transactions structures to retrieve
2561
+ * @param {object} [params] extra parameters specific to the exchange API endpoint
2562
+ * @param {string} [params.transactionMethod] transaction method (1=deposit, 2=withdrawal) - automatically set to '1' for deposits
2563
+ * @returns {object[]} a list of [transaction structures]{@link https://docs.ccxt.com/#/?id=transaction-structure}
2564
+ */
2565
+ async fetchTransactions(code = undefined, since = undefined, limit = undefined, params = {}) {
2566
+ await this.loadMarkets();
2567
+ let currency = undefined;
2568
+ const request = {};
2569
+ if (code !== undefined) {
2570
+ currency = this.currency(code);
2571
+ request['ticker'] = currency['id'];
2572
+ }
2573
+ if (since !== undefined) {
2574
+ request['startDate'] = this.parseToInt(since / 1000);
2575
+ }
2576
+ if (limit === undefined || limit > 100) {
2577
+ limit = 100;
2578
+ }
2579
+ if (limit !== undefined) {
2580
+ request['limit'] = limit;
2581
+ }
2582
+ // Do not filter by transactionMethod to get all transactions (deposits and withdrawals)
2583
+ const response = await this.v4PrivatePostMainAccountHistory(this.extend(request, params));
2584
+ //
2585
+ // [
2586
+ // {
2587
+ // "id": 123456789, // Transaction ID
2588
+ // "method": "1", // Method: 1=deposit, 2=withdrawal
2589
+ // "ticker": "BTC", // Currency ticker
2590
+ // "amount": "0.001", // Transaction amount
2591
+ // "address": "1A1zP1eP5QGefi2DMPTfTL5SLmv7DivfNa", // Transaction address
2592
+ // "memo": "", // Memo/tag (if required)
2593
+ // "network": "BTC", // Network name
2594
+ // "fee": "0.0005", // Transaction fee
2595
+ // "status": "1", // Status: 0=pending, 1=completed, 2=failed
2596
+ // "timestamp": 1641051917, // Transaction timestamp
2597
+ // "txid": "abc123def456..." // Transaction hash
2598
+ // },
2599
+ // { ... } // More transactions (deposits and withdrawals)
2600
+ // ]
2601
+ //
2602
+ return this.parseTransactions(response, currency, since, limit);
2603
+ }
2100
2604
  /**
2101
2605
  * @method
2102
2606
  * @name whitebit#fetchDepositAddress
@@ -2227,6 +2731,47 @@ export default class whitebit extends Exchange {
2227
2731
  'tag': this.safeString(depositAddress, 'memo'),
2228
2732
  };
2229
2733
  }
2734
+ /**
2735
+ * @method
2736
+ * @name whitebit#fetchAccounts
2737
+ * @description fetch all the accounts associated with a profile
2738
+ * @see https://docs.whitebit.com/private/http-main-v4/#sub-account-list
2739
+ * @param {object} [params] extra parameters specific to the exchange API endpoint
2740
+ * @returns {object[]} a list of [account structures]{@link https://docs.ccxt.com/#/?id=account-structure}
2741
+ */
2742
+ async fetchAccounts(params = {}) {
2743
+ await this.loadMarkets();
2744
+ const accounts = [];
2745
+ // Fetch sub-accounts
2746
+ //
2747
+ // [
2748
+ // {
2749
+ // "id": "12345",
2750
+ // "name": "SubAccount1",
2751
+ // "status": "active",
2752
+ // "permissions": ["trade", "withdraw"]
2753
+ // }
2754
+ // ]
2755
+ //
2756
+ const subAccounts = await this.v4PrivatePostSubAccountList(params);
2757
+ if (subAccounts && Array.isArray(subAccounts)) {
2758
+ for (let i = 0; i < subAccounts.length; i++) {
2759
+ const subAccount = this.safeValue(subAccounts, i);
2760
+ const accountId = this.safeString(subAccount, 'id');
2761
+ const accountName = this.safeString(subAccount, 'name');
2762
+ if (accountId) {
2763
+ accounts.push({
2764
+ 'id': accountId,
2765
+ 'type': 'subaccount',
2766
+ 'name': accountName || 'SubAccount ' + accountId,
2767
+ 'code': undefined,
2768
+ 'info': subAccount,
2769
+ });
2770
+ }
2771
+ }
2772
+ }
2773
+ return accounts;
2774
+ }
2230
2775
  /**
2231
2776
  * @method
2232
2777
  * @name whitebit#setLeverage
@@ -3362,6 +3907,10 @@ export default class whitebit extends Exchange {
3362
3907
  const query = this.omit(params, this.extractParams(path));
3363
3908
  const version = this.safeValue(api, 0);
3364
3909
  const accessibility = this.safeValue(api, 1);
3910
+ if (headers === undefined) {
3911
+ headers = {};
3912
+ }
3913
+ headers['User-Agent'] = 'ccxt/' + this.id + '-' + this.version;
3365
3914
  const pathWithParams = '/' + this.implodeParams(path, params);
3366
3915
  let url = this.urls['api'][version][accessibility] + pathWithParams;
3367
3916
  if (accessibility === 'public') {