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
@@ -8,7 +8,7 @@ var Precise = require('./base/Precise.js');
8
8
  var number = require('./base/functions/number.js');
9
9
  var sha512 = require('./static_dependencies/noble-hashes/sha512.js');
10
10
 
11
- // ---------------------------------------------------------------------------
11
+ // ----------------------------------------------------------------------------
12
12
  // ---------------------------------------------------------------------------
13
13
  /**
14
14
  * @class whitebit
@@ -45,7 +45,8 @@ class whitebit extends whitebit$1["default"] {
45
45
  'createStopMarketOrder': true,
46
46
  'createStopOrder': true,
47
47
  'createTriggerOrder': true,
48
- 'editOrder': false,
48
+ 'editOrder': true,
49
+ 'fetchAccounts': true,
49
50
  'fetchBalance': true,
50
51
  'fetchBorrowRateHistories': false,
51
52
  'fetchBorrowRateHistory': false,
@@ -65,12 +66,14 @@ class whitebit extends whitebit$1["default"] {
65
66
  'fetchDepositWithdrawFee': 'emulated',
66
67
  'fetchDepositWithdrawFees': true,
67
68
  'fetchFundingHistory': true,
69
+ 'fetchFundingLimits': true,
68
70
  'fetchFundingRate': true,
69
71
  'fetchFundingRateHistory': false,
70
72
  'fetchFundingRates': true,
71
73
  'fetchIndexOHLCV': false,
72
74
  'fetchIsolatedBorrowRate': false,
73
75
  'fetchIsolatedBorrowRates': false,
76
+ 'fetchLedger': false,
74
77
  'fetchMarginMode': false,
75
78
  'fetchMarkets': true,
76
79
  'fetchMarkOHLCV': false,
@@ -78,7 +81,9 @@ class whitebit extends whitebit$1["default"] {
78
81
  'fetchOHLCV': true,
79
82
  'fetchOpenInterestHistory': false,
80
83
  'fetchOpenOrders': true,
84
+ 'fetchOrder': true,
81
85
  'fetchOrderBook': true,
86
+ 'fetchOrders': true,
82
87
  'fetchOrderTrades': true,
83
88
  'fetchPosition': true,
84
89
  'fetchPositionHistory': true,
@@ -92,7 +97,10 @@ class whitebit extends whitebit$1["default"] {
92
97
  'fetchTrades': true,
93
98
  'fetchTradingFee': false,
94
99
  'fetchTradingFees': true,
100
+ 'fetchTradingLimits': true,
95
101
  'fetchTransactionFees': true,
102
+ 'fetchTransactions': true,
103
+ 'fetchWithdrawals': true,
96
104
  'repayCrossMargin': false,
97
105
  'repayIsolatedMargin': false,
98
106
  'setLeverage': true,
@@ -226,8 +234,8 @@ class whitebit extends whitebit$1["default"] {
226
234
  'main-account/smart/interest-payment-history',
227
235
  'trade-account/balance',
228
236
  'trade-account/executed-history',
229
- 'trade-account/order',
230
237
  'trade-account/order/history',
238
+ 'trade-account/order',
231
239
  'order/collateral/limit',
232
240
  'order/collateral/market',
233
241
  'order/collateral/stop-limit',
@@ -339,7 +347,14 @@ class whitebit extends whitebit$1["default"] {
339
347
  'untilDays': undefined,
340
348
  'symbolRequired': false,
341
349
  },
342
- 'fetchOrder': undefined,
350
+ 'fetchOrder': {
351
+ 'checkActive': true,
352
+ 'checkExecuted': true,
353
+ 'symbolRequired': false,
354
+ 'marginMode': false,
355
+ 'trigger': false,
356
+ 'trailing': false,
357
+ },
343
358
  'fetchOpenOrders': {
344
359
  'marginMode': false,
345
360
  'limit': 100,
@@ -347,7 +362,15 @@ class whitebit extends whitebit$1["default"] {
347
362
  'trailing': false,
348
363
  'symbolRequired': false,
349
364
  },
350
- 'fetchOrders': undefined,
365
+ 'fetchOrders': {
366
+ 'marginMode': false,
367
+ 'limit': 100,
368
+ 'daysBack': undefined,
369
+ 'untilDays': undefined,
370
+ 'trigger': false,
371
+ 'trailing': false,
372
+ 'symbolRequired': false,
373
+ },
351
374
  'fetchClosedOrders': {
352
375
  'marginMode': false,
353
376
  'limit': 100,
@@ -361,6 +384,13 @@ class whitebit extends whitebit$1["default"] {
361
384
  'fetchOHLCV': {
362
385
  'limit': 1440,
363
386
  },
387
+ 'fetchWithdrawals': {
388
+ 'marginMode': false,
389
+ 'limit': 100,
390
+ 'daysBack': undefined,
391
+ 'untilDays': undefined,
392
+ 'symbolRequired': false,
393
+ },
364
394
  },
365
395
  'spot': {
366
396
  'extends': 'default',
@@ -932,6 +962,265 @@ class whitebit extends whitebit$1["default"] {
932
962
  }
933
963
  return result;
934
964
  }
965
+ /**
966
+ * @method
967
+ * @name whitebit#fetchTradingLimits
968
+ * @description fetch the trading limits for a market
969
+ * @see https://docs.whitebit.com/public/http-v4/#market-info
970
+ * @param {string[]|undefined} symbols unified market symbol
971
+ * @param {object} [params] extra parameters specific to the exchange API endpoint
972
+ * @returns {object} a [trading limits structure]{@link https://docs.ccxt.com/#/?id=trading-limits-structure}
973
+ */
974
+ async fetchTradingLimits(symbols = undefined, params = {}) {
975
+ await this.loadMarkets();
976
+ //
977
+ // Trading limits are derived from market information already loaded by loadMarkets()
978
+ // Market structure includes:
979
+ // {
980
+ // "id": "BTC_USDT", // Market ID
981
+ // "symbol": "BTC/USDT", // Unified symbol
982
+ // "base": "BTC", // Base currency
983
+ // "quote": "USDT", // Quote currency
984
+ // "active": true, // Market active status
985
+ // "type": "spot", // Market type
986
+ // "spot": true, // Spot trading enabled
987
+ // "margin": false, // Margin trading enabled
988
+ // "future": false, // Futures trading enabled
989
+ // "option": false, // Options trading enabled
990
+ // "contract": false, // Contract trading enabled
991
+ // "settle": undefined, // Settlement currency
992
+ // "settleId": undefined, // Settlement currency ID
993
+ // "contractSize": undefined, // Contract size
994
+ // "linear": undefined, // Linear contract
995
+ // "inverse": undefined, // Inverse contract
996
+ // "limits": { // Trading limits
997
+ // "amount": { // Amount limits
998
+ // "min": 0.00001, // Minimum amount
999
+ // "max": 1000000 // Maximum amount
1000
+ // },
1001
+ // "price": { // Price limits
1002
+ // "min": 0.01, // Minimum price
1003
+ // "max": 1000000 // Maximum price
1004
+ // },
1005
+ // "cost": { // Cost limits
1006
+ // "min": 5.0, // Minimum cost
1007
+ // "max": 10000000 // Maximum cost
1008
+ // }
1009
+ // },
1010
+ // "precision": { // Precision settings
1011
+ // "amount": 5, // Amount precision
1012
+ // "price": 2 // Price precision
1013
+ // },
1014
+ // "taker": 0.001, // Taker fee
1015
+ // "maker": 0.001, // Maker fee
1016
+ // "percentage": true, // Fee percentage
1017
+ // "tierBased": false // Tier-based fees
1018
+ // }
1019
+ //
1020
+ const result = {};
1021
+ // Process all markets from the loaded markets cache
1022
+ const marketIds = Object.keys(this.markets);
1023
+ for (let i = 0; i < marketIds.length; i++) {
1024
+ const marketId = marketIds[i];
1025
+ const market = this.markets[marketId];
1026
+ if (!market || !market['symbol']) {
1027
+ continue; // Skip invalid markets silently
1028
+ }
1029
+ const symbol = market['symbol'];
1030
+ // Filter by symbols if specified
1031
+ if (symbols) {
1032
+ let symbolFound = false;
1033
+ for (let j = 0; j < symbols.length; j++) {
1034
+ if (symbols[j] === symbol) {
1035
+ symbolFound = true;
1036
+ break;
1037
+ }
1038
+ }
1039
+ if (!symbolFound) {
1040
+ continue; // Skip symbols not in requested list
1041
+ }
1042
+ }
1043
+ // Extract trading limits
1044
+ const limits = this.safeDict(market, 'limits');
1045
+ const amountLimits = this.safeDict(limits, 'amount');
1046
+ const priceLimits = this.safeDict(limits, 'price');
1047
+ const costLimits = this.safeDict(limits, 'cost');
1048
+ // Validate that all required limits exist and are valid numbers
1049
+ const hasAmountLimits = amountLimits && this.safeNumber(amountLimits, 'min') !== undefined && this.safeNumber(amountLimits, 'max') !== undefined;
1050
+ const hasPriceLimits = priceLimits && this.safeNumber(priceLimits, 'min') !== undefined && this.safeNumber(priceLimits, 'max') !== undefined;
1051
+ const hasCostLimits = costLimits && this.safeNumber(costLimits, 'min') !== undefined && this.safeNumber(costLimits, 'max') !== undefined;
1052
+ if (hasAmountLimits && hasPriceLimits && hasCostLimits) {
1053
+ result[symbol] = {
1054
+ 'info': market,
1055
+ 'limits': {
1056
+ 'amount': {
1057
+ 'min': this.safeNumber(amountLimits, 'min'),
1058
+ 'max': this.safeNumber(amountLimits, 'max'),
1059
+ },
1060
+ 'price': {
1061
+ 'min': this.safeNumber(priceLimits, 'min'),
1062
+ 'max': this.safeNumber(priceLimits, 'max'),
1063
+ },
1064
+ 'cost': {
1065
+ 'min': this.safeNumber(costLimits, 'min'),
1066
+ 'max': this.safeNumber(costLimits, 'max'),
1067
+ },
1068
+ },
1069
+ };
1070
+ }
1071
+ }
1072
+ return result;
1073
+ }
1074
+ /**
1075
+ * @method
1076
+ * @name whitebit#fetchFundingLimits
1077
+ * @description fetch the deposit and withdrawal limits for a currency
1078
+ * @see https://docs.whitebit.com/public/http-v4/#asset-status-list
1079
+ * @see https://docs.whitebit.com/public/http-v4/#fee
1080
+ * @param {string[]|undefined} codes unified currency codes
1081
+ * @param {object} [params] extra parameters specific to the exchange API endpoint
1082
+ * @returns {object} a [funding limits structure]{@link https://docs.ccxt.com/#/?id=funding-limits-structure}
1083
+ */
1084
+ async fetchFundingLimits(codes = undefined, params = {}) {
1085
+ await this.loadMarkets();
1086
+ // Fetch both currencies and fees data for comprehensive funding limits
1087
+ const [currenciesData, feesData] = await Promise.all([
1088
+ this.fetchCurrencies(),
1089
+ this.v4PublicGetFee(params),
1090
+ ]);
1091
+ //
1092
+ // Currencies response structure (from fetchCurrencies):
1093
+ // {
1094
+ // "BTC": {
1095
+ // "id": "BTC", // Currency ID
1096
+ // "code": "BTC", // Currency code
1097
+ // "name": "Bitcoin", // Currency name
1098
+ // "active": true, // Currency active status
1099
+ // "type": "crypto", // Currency type
1100
+ // "precision": 8, // Currency precision
1101
+ // "limits": { // Currency limits
1102
+ // "deposit": { // Deposit limits
1103
+ // "min": 0.00001, // Minimum deposit
1104
+ // "max": 1000000 // Maximum deposit
1105
+ // },
1106
+ // "withdraw": { // Withdrawal limits
1107
+ // "min": 0.00001, // Minimum withdrawal
1108
+ // "max": 1000000 // Maximum withdrawal
1109
+ // }
1110
+ // },
1111
+ // "networks": { // Network-specific limits
1112
+ // "BTC": {
1113
+ // "limits": {
1114
+ // "deposit": { "min": "0.001" },
1115
+ // "withdraw": { "min": "0.002" }
1116
+ // }
1117
+ // }
1118
+ // },
1119
+ // "info": { ... } // Original API response
1120
+ // }
1121
+ // }
1122
+ //
1123
+ // Fees response structure (from /api/v4/public/fee):
1124
+ // {
1125
+ // "USDT (ERC20)": {
1126
+ // "ticker": "USDT",
1127
+ // "name": "Tether US",
1128
+ // "deposit": {
1129
+ // "min_amount": "0.0005",
1130
+ // "max_amount": "0.1",
1131
+ // "fixed": "0.0005",
1132
+ // "flex": {
1133
+ // "min_fee": "100",
1134
+ // "max_fee": "1000",
1135
+ // "percent": "10"
1136
+ // }
1137
+ // },
1138
+ // "withdraw": {
1139
+ // "min_amount": "0.001",
1140
+ // "max_amount": "0",
1141
+ // "fixed": null,
1142
+ // "flex": null
1143
+ // }
1144
+ // }
1145
+ // }
1146
+ //
1147
+ const result = {};
1148
+ const currencyKeys = Object.keys(currenciesData);
1149
+ for (let i = 0; i < currencyKeys.length; i++) {
1150
+ const code = currencyKeys[i];
1151
+ const currency = currenciesData[code];
1152
+ if (!currency) {
1153
+ // Skip invalid currency silently
1154
+ continue;
1155
+ }
1156
+ if (codes !== undefined && !this.inArray(code, codes)) {
1157
+ // Skip currency not in requested list silently
1158
+ continue;
1159
+ }
1160
+ // Find corresponding fee data for this currency
1161
+ let feeData = undefined;
1162
+ const feeKeys = Object.keys(feesData);
1163
+ for (let j = 0; j < feeKeys.length; j++) {
1164
+ const feeKey = feeKeys[j];
1165
+ const fee = feesData[feeKey];
1166
+ if (fee && fee['ticker'] === code) {
1167
+ feeData = fee;
1168
+ break;
1169
+ }
1170
+ }
1171
+ // Build comprehensive funding limits
1172
+ const limits = {
1173
+ 'deposit': {
1174
+ 'min': currency['limits']['deposit']['min'],
1175
+ 'max': currency['limits']['deposit']['max'],
1176
+ },
1177
+ 'withdraw': {
1178
+ 'min': currency['limits']['withdraw']['min'],
1179
+ 'max': currency['limits']['withdraw']['max'],
1180
+ },
1181
+ };
1182
+ // Add fee information if available
1183
+ if (feeData) {
1184
+ const depositFee = feeData['deposit'];
1185
+ const withdrawFee = feeData['withdraw'];
1186
+ if (depositFee) {
1187
+ const depositFeeData = {
1188
+ 'fixed': this.safeNumber(depositFee, 'fixed'),
1189
+ };
1190
+ if (depositFee['flex']) {
1191
+ depositFeeData['flex'] = {
1192
+ 'min': this.safeNumber(depositFee['flex'], 'min_fee'),
1193
+ 'max': this.safeNumber(depositFee['flex'], 'max_fee'),
1194
+ 'percent': this.safeNumber(depositFee['flex'], 'percent'),
1195
+ };
1196
+ }
1197
+ limits['deposit']['fee'] = depositFeeData;
1198
+ }
1199
+ if (withdrawFee) {
1200
+ const withdrawFeeData = {
1201
+ 'fixed': this.safeNumber(withdrawFee, 'fixed'),
1202
+ };
1203
+ if (withdrawFee['flex']) {
1204
+ withdrawFeeData['flex'] = {
1205
+ 'min': this.safeNumber(withdrawFee['flex'], 'min_fee'),
1206
+ 'max': this.safeNumber(withdrawFee['flex'], 'max_fee'),
1207
+ 'percent': this.safeNumber(withdrawFee['flex'], 'percent'),
1208
+ };
1209
+ }
1210
+ limits['withdraw']['fee'] = withdrawFeeData;
1211
+ }
1212
+ }
1213
+ // Add network-specific limits if available
1214
+ if (currency['networks']) {
1215
+ limits['networks'] = currency['networks'];
1216
+ }
1217
+ result[code] = {
1218
+ 'info': currency,
1219
+ 'limits': limits,
1220
+ };
1221
+ }
1222
+ return result;
1223
+ }
935
1224
  /**
936
1225
  * @method
937
1226
  * @name whitebit#fetchTicker
@@ -1049,6 +1338,81 @@ class whitebit extends whitebit$1["default"] {
1049
1338
  'info': ticker,
1050
1339
  }, market);
1051
1340
  }
1341
+ /**
1342
+ * @method
1343
+ * @name whitebit#fetchOrder
1344
+ * @description fetches information on an order by the id
1345
+ * @see https://docs.whitebit.com/private/http-trade-v4/#query-unexecutedactive-orders
1346
+ * @see https://docs.whitebit.com/private/http-trade-v4/#query-executed-orders
1347
+ * @param {string} id order id
1348
+ * @param {string} symbol unified symbol of the market the order was made in
1349
+ * @param {object} [params] extra parameters specific to the exchange API endpoint
1350
+ * @param {boolean} [params.checkActive] whether to check active orders (default: true)
1351
+ * @param {boolean} [params.checkExecuted] whether to check executed orders (default: true)
1352
+ * @returns {object} an [order structure]{@link https://docs.ccxt.com/#/?id=order-structure}
1353
+ */
1354
+ async fetchOrder(id, symbol = undefined, params = {}) {
1355
+ await this.loadMarkets();
1356
+ // Extract control parameters from params
1357
+ const checkActive = this.safeBool(params, 'checkActive', true);
1358
+ const checkExecuted = this.safeBool(params, 'checkExecuted', true);
1359
+ const request = {
1360
+ 'orderId': id,
1361
+ };
1362
+ let market = undefined;
1363
+ if (symbol !== undefined) {
1364
+ market = this.market(symbol);
1365
+ request['market'] = market['id'];
1366
+ }
1367
+ // Try active orders first (if enabled)
1368
+ if (checkActive) {
1369
+ try {
1370
+ const response = await this.v4PrivatePostOrders(this.extend(request, params));
1371
+ // Search for order in active orders response (array format)
1372
+ for (let i = 0; i < response.length; i++) {
1373
+ const order = response[i];
1374
+ const orderId = this.safeString(order, 'orderId');
1375
+ if (orderId === id) {
1376
+ const marketId = this.safeString(order, 'market');
1377
+ const marketNew = this.safeMarket(marketId, undefined, '_');
1378
+ return this.parseOrder(order, marketNew);
1379
+ }
1380
+ }
1381
+ }
1382
+ catch (error) {
1383
+ if (!(error instanceof errors.OrderNotFound)) {
1384
+ throw error;
1385
+ }
1386
+ }
1387
+ }
1388
+ // Try executed orders (if enabled)
1389
+ if (checkExecuted) {
1390
+ try {
1391
+ const response = await this.v4PrivatePostTradeAccountOrderHistory(this.extend(request, params));
1392
+ // Search for order in executed orders response (object format)
1393
+ const marketIds = Object.keys(response);
1394
+ for (let i = 0; i < marketIds.length; i++) {
1395
+ const marketId = marketIds[i];
1396
+ const marketNew = this.safeMarket(marketId, undefined, '_');
1397
+ const orders = response[marketId];
1398
+ for (let j = 0; j < orders.length; j++) {
1399
+ const order = orders[j];
1400
+ const orderId = this.safeString(order, 'id');
1401
+ if (orderId === id) {
1402
+ return this.parseOrder(order, marketNew);
1403
+ }
1404
+ }
1405
+ }
1406
+ }
1407
+ catch (error) {
1408
+ if (!(error instanceof errors.OrderNotFound)) {
1409
+ throw error;
1410
+ }
1411
+ }
1412
+ }
1413
+ // If both checks failed or were disabled, throw OrderNotFound
1414
+ throw new errors.OrderNotFound(this.id + ' fetchOrder() order not found: ' + id);
1415
+ }
1052
1416
  /**
1053
1417
  * @method
1054
1418
  * @name whitebit#fetchTickers
@@ -1591,52 +1955,55 @@ class whitebit extends whitebit$1["default"] {
1591
1955
  * @returns {object} an [order structure]{@link https://docs.ccxt.com/#/?id=order-structure}
1592
1956
  */
1593
1957
  async editOrder(id, symbol, type, side, amount = undefined, price = undefined, params = {}) {
1594
- if (id === undefined) {
1595
- throw new errors.ArgumentsRequired(this.id + ' editOrder() requires a id argument');
1596
- }
1597
- if (symbol === undefined) {
1598
- throw new errors.ArgumentsRequired(this.id + ' editOrder() requires a symbol argument');
1599
- }
1600
1958
  await this.loadMarkets();
1601
1959
  const market = this.market(symbol);
1602
1960
  const request = {
1603
- 'orderId': id,
1604
1961
  'market': market['id'],
1605
1962
  };
1606
- const clientOrderId = this.safeString2(params, 'clOrdId', 'clientOrderId');
1963
+ // Handle clientOrderId vs orderId (clientOrderId takes priority)
1964
+ const clientOrderId = this.safeString(params, 'clientOrderId');
1607
1965
  if (clientOrderId !== undefined) {
1608
- // Update clientOrderId of the order
1609
1966
  request['clientOrderId'] = clientOrderId;
1610
1967
  }
1611
- const isLimitOrder = type === 'limit';
1612
- const triggerPrice = this.safeNumberN(params, ['triggerPrice', 'stopPrice', 'activation_price']);
1968
+ else {
1969
+ request['orderId'] = id;
1970
+ }
1971
+ // Handle amount vs total parameter based on order type and side
1972
+ const triggerPrice = this.safeNumberN(params, ['triggerPrice', 'stopPrice', 'activationPrice']);
1613
1973
  const isStopOrder = (triggerPrice !== undefined);
1614
- params = this.omit(params, ['clOrdId', 'clientOrderId', 'triggerPrice', 'stopPrice']);
1974
+ // Handle activation price for stop orders
1615
1975
  if (isStopOrder) {
1616
1976
  request['activation_price'] = this.priceToPrecision(symbol, triggerPrice);
1977
+ }
1978
+ const isLimitOrder = type === 'limit';
1979
+ const total = this.safeNumber(params, 'total');
1980
+ if (total !== undefined) {
1981
+ request['total'] = this.amountToPrecision(symbol, total);
1982
+ }
1983
+ else if (amount !== undefined) {
1617
1984
  if (isLimitOrder) {
1618
- // stop limit order
1985
+ // Limit orders always use amount parameter
1619
1986
  request['amount'] = this.amountToPrecision(symbol, amount);
1620
- request['price'] = this.priceToPrecision(symbol, price);
1987
+ }
1988
+ else if (type === 'market' && side === 'buy') {
1989
+ // Market buy orders use total parameter
1990
+ request['total'] = this.amountToPrecision(symbol, amount);
1621
1991
  }
1622
1992
  else {
1623
- // stop market order
1624
- if (side === 'buy') {
1625
- // Use total parameter instead of amount for modify buy stop market order
1626
- request['total'] = this.amountToPrecision(symbol, amount);
1627
- }
1628
- else {
1629
- request['amount'] = this.amountToPrecision(symbol, amount);
1630
- }
1993
+ // Market sell orders use amount parameter
1994
+ request['amount'] = this.amountToPrecision(symbol, amount);
1631
1995
  }
1632
1996
  }
1633
- else {
1634
- request['amount'] = this.amountToPrecision(symbol, amount);
1635
- if (isLimitOrder) {
1636
- // limit order
1637
- request['price'] = this.priceToPrecision(symbol, price);
1638
- }
1997
+ // Handle price parameter for limit orders
1998
+ if (price !== undefined) {
1999
+ request['price'] = this.priceToPrecision(symbol, price);
2000
+ }
2001
+ // Ensure at least one modifiable parameter is provided
2002
+ const hasModifiableParam = (amount !== undefined) || (price !== undefined) || (triggerPrice !== undefined) || (total !== undefined);
2003
+ if (!hasModifiableParam) {
2004
+ throw new errors.ArgumentsRequired(this.id + ' editOrder() requires at least one of: amount, price, activationPrice, or total parameters');
1639
2005
  }
2006
+ params = this.omit(params, ['clientOrderId', 'triggerPrice', 'stopPrice', 'activationPrice', 'total']);
1640
2007
  const response = await this.v4PrivatePostOrderModify(this.extend(request, params));
1641
2008
  return this.parseOrder(response);
1642
2009
  }
@@ -1727,6 +2094,34 @@ class whitebit extends whitebit$1["default"] {
1727
2094
  //
1728
2095
  return this.parseOrders(response, market);
1729
2096
  }
2097
+ /**
2098
+ * @method
2099
+ * @name whitebit#fetchOrders
2100
+ * @description fetches information on multiple orders made by the user (combines open and closed orders)
2101
+ * @see https://docs.whitebit.com/private/http-trade-v4/#query-unexecutedactive-orders
2102
+ * @see https://docs.whitebit.com/private/http-trade-v4/#query-executed-orders
2103
+ * @param {string} symbol unified market symbol of the market orders were made in
2104
+ * @param {int} [since] the earliest time in ms to fetch orders for
2105
+ * @param {int} [limit] the maximum number of order structures to retrieve
2106
+ * @param {object} [params] extra parameters specific to the exchange API endpoint
2107
+ * @returns {Order[]} a list of [order structures]{@link https://docs.ccxt.com/#/?id=order-structure}
2108
+ */
2109
+ async fetchOrders(symbol = undefined, since = undefined, limit = undefined, params = {}) {
2110
+ await this.loadMarkets();
2111
+ // Fetch both open and closed orders in parallel
2112
+ const [openOrders, closedOrders] = await Promise.all([
2113
+ this.fetchOpenOrders(symbol, since, limit, params),
2114
+ this.fetchClosedOrders(symbol, since, limit, params),
2115
+ ]);
2116
+ const allOrders = this.arrayConcat(openOrders, closedOrders);
2117
+ // Sort by timestamp (most recent first)
2118
+ const sortedOrders = this.sortBy(allOrders, 'timestamp', true);
2119
+ // Apply limit if specified (since and symbol filtering already handled by individual methods)
2120
+ if (limit !== undefined && sortedOrders.length > limit) {
2121
+ return sortedOrders.slice(0, limit);
2122
+ }
2123
+ return sortedOrders;
2124
+ }
1730
2125
  /**
1731
2126
  * @method
1732
2127
  * @name whitebit#cancelAllOrdersAfter
@@ -2101,6 +2496,109 @@ class whitebit extends whitebit$1["default"] {
2101
2496
  const data = this.safeList(response, 'records', []);
2102
2497
  return this.parseTrades(data, market);
2103
2498
  }
2499
+ /**
2500
+ * @method
2501
+ * @name whitebit#fetchWithdrawals
2502
+ * @description fetch all withdrawals made from an account
2503
+ * @see https://docs.whitebit.com/private/http-main-v4/#get-depositwithdraw-history
2504
+ * @param {string} code unified currency code
2505
+ * @param {int} [since] the earliest time in ms to fetch withdrawals for
2506
+ * @param {int} [limit] the maximum number of withdrawals structures to retrieve
2507
+ * @param {object} [params] extra parameters specific to the exchange API endpoint
2508
+ * @param {string} [params.transactionMethod] transaction method (1=deposit, 2=withdrawal) - automatically set to '2' for withdrawals
2509
+ * @returns {object[]} a list of [transaction structures]{@link https://docs.ccxt.com/#/?id=transaction-structure}
2510
+ */
2511
+ async fetchWithdrawals(code = undefined, since = undefined, limit = undefined, params = {}) {
2512
+ await this.loadMarkets();
2513
+ let currency = undefined;
2514
+ const request = {};
2515
+ if (code !== undefined) {
2516
+ currency = this.currency(code);
2517
+ request['ticker'] = currency['id'];
2518
+ }
2519
+ if (since !== undefined) {
2520
+ request['startDate'] = this.parseToInt(since / 1000);
2521
+ }
2522
+ if (limit === undefined || limit > 100) {
2523
+ limit = 100;
2524
+ }
2525
+ if (limit !== undefined) {
2526
+ request['limit'] = limit;
2527
+ }
2528
+ // Use transactionMethod parameter to filter withdrawals server-side (method = 2)
2529
+ request['transactionMethod'] = '2';
2530
+ const response = await this.v4PrivatePostMainAccountHistory(this.extend(request, params));
2531
+ //
2532
+ // [
2533
+ // {
2534
+ // "id": 123456789, // Transaction ID
2535
+ // "method": "2", // Method: 1=deposit, 2=withdrawal (filtered server-side)
2536
+ // "ticker": "BTC", // Currency ticker
2537
+ // "amount": "0.001", // Transaction amount
2538
+ // "address": "1A1zP1eP5QGefi2DMPTfTL5SLmv7DivfNa", // Withdrawal address
2539
+ // "memo": "", // Memo/tag (if required)
2540
+ // "network": "BTC", // Network name
2541
+ // "fee": "0.0005", // Transaction fee
2542
+ // "status": "1", // Status: 0=pending, 1=completed, 2=failed
2543
+ // "timestamp": 1641051917, // Transaction timestamp
2544
+ // "txid": "abc123def456..." // Transaction hash
2545
+ // },
2546
+ // { ... } // More withdrawal transactions
2547
+ // ]
2548
+ //
2549
+ return this.parseTransactions(response, currency, since, limit);
2550
+ }
2551
+ /**
2552
+ * @method
2553
+ * @name whitebit#fetchTransactions
2554
+ * @description fetch history of deposits and withdrawals
2555
+ * @see https://docs.whitebit.com/private/http-main-v4/#get-depositwithdraw-history
2556
+ * @param {string} [code] unified currency code
2557
+ * @param {int} [since] the earliest time in ms to fetch transactions for
2558
+ * @param {int} [limit] the maximum number of transactions structures to retrieve
2559
+ * @param {object} [params] extra parameters specific to the exchange API endpoint
2560
+ * @param {string} [params.transactionMethod] transaction method (1=deposit, 2=withdrawal) - automatically set to '1' for deposits
2561
+ * @returns {object[]} a list of [transaction structures]{@link https://docs.ccxt.com/#/?id=transaction-structure}
2562
+ */
2563
+ async fetchTransactions(code = undefined, since = undefined, limit = undefined, params = {}) {
2564
+ await this.loadMarkets();
2565
+ let currency = undefined;
2566
+ const request = {};
2567
+ if (code !== undefined) {
2568
+ currency = this.currency(code);
2569
+ request['ticker'] = currency['id'];
2570
+ }
2571
+ if (since !== undefined) {
2572
+ request['startDate'] = this.parseToInt(since / 1000);
2573
+ }
2574
+ if (limit === undefined || limit > 100) {
2575
+ limit = 100;
2576
+ }
2577
+ if (limit !== undefined) {
2578
+ request['limit'] = limit;
2579
+ }
2580
+ // Do not filter by transactionMethod to get all transactions (deposits and withdrawals)
2581
+ const response = await this.v4PrivatePostMainAccountHistory(this.extend(request, params));
2582
+ //
2583
+ // [
2584
+ // {
2585
+ // "id": 123456789, // Transaction ID
2586
+ // "method": "1", // Method: 1=deposit, 2=withdrawal
2587
+ // "ticker": "BTC", // Currency ticker
2588
+ // "amount": "0.001", // Transaction amount
2589
+ // "address": "1A1zP1eP5QGefi2DMPTfTL5SLmv7DivfNa", // Transaction address
2590
+ // "memo": "", // Memo/tag (if required)
2591
+ // "network": "BTC", // Network name
2592
+ // "fee": "0.0005", // Transaction fee
2593
+ // "status": "1", // Status: 0=pending, 1=completed, 2=failed
2594
+ // "timestamp": 1641051917, // Transaction timestamp
2595
+ // "txid": "abc123def456..." // Transaction hash
2596
+ // },
2597
+ // { ... } // More transactions (deposits and withdrawals)
2598
+ // ]
2599
+ //
2600
+ return this.parseTransactions(response, currency, since, limit);
2601
+ }
2104
2602
  /**
2105
2603
  * @method
2106
2604
  * @name whitebit#fetchDepositAddress
@@ -2231,6 +2729,47 @@ class whitebit extends whitebit$1["default"] {
2231
2729
  'tag': this.safeString(depositAddress, 'memo'),
2232
2730
  };
2233
2731
  }
2732
+ /**
2733
+ * @method
2734
+ * @name whitebit#fetchAccounts
2735
+ * @description fetch all the accounts associated with a profile
2736
+ * @see https://docs.whitebit.com/private/http-main-v4/#sub-account-list
2737
+ * @param {object} [params] extra parameters specific to the exchange API endpoint
2738
+ * @returns {object[]} a list of [account structures]{@link https://docs.ccxt.com/#/?id=account-structure}
2739
+ */
2740
+ async fetchAccounts(params = {}) {
2741
+ await this.loadMarkets();
2742
+ const accounts = [];
2743
+ // Fetch sub-accounts
2744
+ //
2745
+ // [
2746
+ // {
2747
+ // "id": "12345",
2748
+ // "name": "SubAccount1",
2749
+ // "status": "active",
2750
+ // "permissions": ["trade", "withdraw"]
2751
+ // }
2752
+ // ]
2753
+ //
2754
+ const subAccounts = await this.v4PrivatePostSubAccountList(params);
2755
+ if (subAccounts && Array.isArray(subAccounts)) {
2756
+ for (let i = 0; i < subAccounts.length; i++) {
2757
+ const subAccount = this.safeValue(subAccounts, i);
2758
+ const accountId = this.safeString(subAccount, 'id');
2759
+ const accountName = this.safeString(subAccount, 'name');
2760
+ if (accountId) {
2761
+ accounts.push({
2762
+ 'id': accountId,
2763
+ 'type': 'subaccount',
2764
+ 'name': accountName || 'SubAccount ' + accountId,
2765
+ 'code': undefined,
2766
+ 'info': subAccount,
2767
+ });
2768
+ }
2769
+ }
2770
+ }
2771
+ return accounts;
2772
+ }
2234
2773
  /**
2235
2774
  * @method
2236
2775
  * @name whitebit#setLeverage
@@ -3366,6 +3905,10 @@ class whitebit extends whitebit$1["default"] {
3366
3905
  const query = this.omit(params, this.extractParams(path));
3367
3906
  const version = this.safeValue(api, 0);
3368
3907
  const accessibility = this.safeValue(api, 1);
3908
+ if (headers === undefined) {
3909
+ headers = {};
3910
+ }
3911
+ headers['User-Agent'] = 'ccxt/' + this.id + '-' + this.version;
3369
3912
  const pathWithParams = '/' + this.implodeParams(path, params);
3370
3913
  let url = this.urls['api'][version][accessibility] + pathWithParams;
3371
3914
  if (accessibility === 'public') {