ccxt 4.5.4 → 4.5.6

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 +7 -6
  2. package/dist/ccxt.browser.min.js +15 -15
  3. package/dist/cjs/ccxt.js +11 -6
  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 +11 -0
  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 +11 -0
  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 +1 -1
  102. package/dist/cjs/src/ascendex.js +1 -1
  103. package/dist/cjs/src/backpack.js +2280 -0
  104. package/dist/cjs/src/base/Exchange.js +226 -62
  105. package/dist/cjs/src/base/Precise.js +0 -6
  106. package/dist/cjs/src/base/errors.js +0 -6
  107. package/dist/cjs/src/base/functions/crypto.js +1 -1
  108. package/dist/cjs/src/base/functions/encode.js +1 -1
  109. package/dist/cjs/src/base/functions/misc.js +0 -1
  110. package/dist/cjs/src/base/functions/number.js +0 -6
  111. package/dist/cjs/src/base/functions/platform.js +0 -6
  112. package/dist/cjs/src/base/functions/rsa.js +0 -1
  113. package/dist/cjs/src/base/functions/string.js +0 -6
  114. package/dist/cjs/src/base/functions/throttle.js +1 -1
  115. package/dist/cjs/src/base/functions/time.js +0 -6
  116. package/dist/cjs/src/base/functions/totp.js +0 -1
  117. package/dist/cjs/src/base/functions/type.js +0 -6
  118. package/dist/cjs/src/base/functions.js +1 -1
  119. package/dist/cjs/src/base/ws/Cache.js +0 -6
  120. package/dist/cjs/src/base/ws/Client.js +0 -1
  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 +0 -6
  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 +5 -5
  127. package/dist/cjs/src/binance.js +80 -21
  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 +6 -3
  132. package/dist/cjs/src/bit2c.js +1 -1
  133. package/dist/cjs/src/bitbank.js +2 -2
  134. package/dist/cjs/src/bitbns.js +1 -1
  135. package/dist/cjs/src/bitfinex.js +1 -1
  136. package/dist/cjs/src/bitflyer.js +1 -1
  137. package/dist/cjs/src/bitget.js +73 -19
  138. package/dist/cjs/src/bithumb.js +1 -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 +1 -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/blockchaincom.js +1 -1
  148. package/dist/cjs/src/blofin.js +1 -1
  149. package/dist/cjs/src/btcalpha.js +1 -1
  150. package/dist/cjs/src/btcbox.js +1 -1
  151. package/dist/cjs/src/btcmarkets.js +1 -1
  152. package/dist/cjs/src/btcturk.js +1 -1
  153. package/dist/cjs/src/bybit.js +187 -128
  154. package/dist/cjs/src/cex.js +1 -1
  155. package/dist/cjs/src/coinbaseadvanced.js +1 -1
  156. package/dist/cjs/src/coincatch.js +2 -2
  157. package/dist/cjs/src/coincheck.js +1 -1
  158. package/dist/cjs/src/coinex.js +1 -1
  159. package/dist/cjs/src/coinmate.js +1 -1
  160. package/dist/cjs/src/coinmetro.js +12 -1
  161. package/dist/cjs/src/coinone.js +1 -1
  162. package/dist/cjs/src/coinsph.js +4 -2
  163. package/dist/cjs/src/coinspot.js +1 -1
  164. package/dist/cjs/src/cryptocom.js +7 -4
  165. package/dist/cjs/src/cryptomus.js +1 -1
  166. package/dist/cjs/src/defx.js +1 -1
  167. package/dist/cjs/src/delta.js +1 -1
  168. package/dist/cjs/src/deribit.js +1 -1
  169. package/dist/cjs/src/derive.js +1 -1
  170. package/dist/cjs/src/digifinex.js +1 -1
  171. package/dist/cjs/src/exmo.js +1 -1
  172. package/dist/cjs/src/fmfwio.js +1 -1
  173. package/dist/cjs/src/foxbit.js +1 -1
  174. package/dist/cjs/src/gate.js +9 -3
  175. package/dist/cjs/src/gateio.js +1 -1
  176. package/dist/cjs/src/gemini.js +13 -8
  177. package/dist/cjs/src/hashkey.js +1 -1
  178. package/dist/cjs/src/hibachi.js +1 -1
  179. package/dist/cjs/src/hitbtc.js +0 -1
  180. package/dist/cjs/src/hollaex.js +1 -1
  181. package/dist/cjs/src/htx.js +1 -1
  182. package/dist/cjs/src/huobi.js +1 -1
  183. package/dist/cjs/src/hyperliquid.js +4 -1
  184. package/dist/cjs/src/independentreserve.js +1 -1
  185. package/dist/cjs/src/indodax.js +1 -1
  186. package/dist/cjs/src/kraken.js +7 -3
  187. package/dist/cjs/src/krakenfutures.js +2 -2
  188. package/dist/cjs/src/kucoin.js +2 -3
  189. package/dist/cjs/src/kucoinfutures.js +52 -4
  190. package/dist/cjs/src/latoken.js +1 -1
  191. package/dist/cjs/src/lbank.js +1 -1
  192. package/dist/cjs/src/luno.js +5 -2
  193. package/dist/cjs/src/mercado.js +1 -1
  194. package/dist/cjs/src/mexc.js +5 -2
  195. package/dist/cjs/src/modetrade.js +1 -1
  196. package/dist/cjs/src/myokx.js +1 -1
  197. package/dist/cjs/src/ndax.js +1 -1
  198. package/dist/cjs/src/novadax.js +1 -1
  199. package/dist/cjs/src/oceanex.js +1 -1
  200. package/dist/cjs/src/okcoin.js +5 -2
  201. package/dist/cjs/src/okx.js +59 -18
  202. package/dist/cjs/src/okxus.js +1 -1
  203. package/dist/cjs/src/onetrading.js +161 -66
  204. package/dist/cjs/src/oxfun.js +1 -1
  205. package/dist/cjs/src/p2b.js +1 -1
  206. package/dist/cjs/src/paradex.js +1 -1
  207. package/dist/cjs/src/paymium.js +1 -1
  208. package/dist/cjs/src/phemex.js +16 -10
  209. package/dist/cjs/src/poloniex.js +1 -1
  210. package/dist/cjs/src/pro/alpaca.js +1 -1
  211. package/dist/cjs/src/pro/apex.js +2 -1
  212. package/dist/cjs/src/pro/ascendex.js +1 -1
  213. package/dist/cjs/src/pro/backpack.js +1325 -0
  214. package/dist/cjs/src/pro/bequant.js +1 -1
  215. package/dist/cjs/src/pro/binance.js +159 -19
  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 +1 -1
  220. package/dist/cjs/src/pro/bitfinex.js +1 -1
  221. package/dist/cjs/src/pro/bitget.js +373 -88
  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 +4 -1
  231. package/dist/cjs/src/pro/cex.js +2 -1
  232. package/dist/cjs/src/pro/coinbase.js +227 -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 +1 -1
  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 +1 -1
  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 +2 -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 +0 -1
  259. package/dist/cjs/src/pro/luno.js +1 -1
  260. package/dist/cjs/src/pro/mexc.js +24 -24
  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 +47 -11
  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 +1 -1
  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 +1163 -0
  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/xt.js +1 -1
  277. package/dist/cjs/src/probit.js +1 -1
  278. package/dist/cjs/src/protobuf/mexc/compiled.cjs.js +1 -0
  279. package/dist/cjs/src/static_dependencies/ethers/abi-coder.js +0 -6
  280. package/dist/cjs/src/static_dependencies/ethers/address/address.js +1 -1
  281. package/dist/cjs/src/static_dependencies/ethers/coders/abstract-coder.js +0 -6
  282. package/dist/cjs/src/static_dependencies/ethers/coders/address.js +0 -1
  283. package/dist/cjs/src/static_dependencies/ethers/coders/anonymous.js +0 -1
  284. package/dist/cjs/src/static_dependencies/ethers/coders/array.js +0 -1
  285. package/dist/cjs/src/static_dependencies/ethers/coders/boolean.js +0 -1
  286. package/dist/cjs/src/static_dependencies/ethers/coders/bytes.js +0 -1
  287. package/dist/cjs/src/static_dependencies/ethers/coders/fixed-bytes.js +0 -1
  288. package/dist/cjs/src/static_dependencies/ethers/coders/null.js +0 -1
  289. package/dist/cjs/src/static_dependencies/ethers/coders/number.js +0 -1
  290. package/dist/cjs/src/static_dependencies/ethers/coders/string.js +0 -1
  291. package/dist/cjs/src/static_dependencies/ethers/coders/tuple.js +0 -1
  292. package/dist/cjs/src/static_dependencies/ethers/fragments.js +0 -6
  293. package/dist/cjs/src/static_dependencies/ethers/hash/typed-data.js +0 -6
  294. package/dist/cjs/src/static_dependencies/ethers/index.js +10 -1
  295. package/dist/cjs/src/static_dependencies/ethers/interface.js +0 -6
  296. package/dist/cjs/src/static_dependencies/ethers/typed.js +0 -6
  297. package/dist/cjs/src/static_dependencies/ethers/utils/base58.js +13 -1
  298. package/dist/cjs/src/static_dependencies/ethers/utils/data.js +6 -1
  299. package/dist/cjs/src/static_dependencies/ethers/utils/errors.js +9 -1
  300. package/dist/cjs/src/static_dependencies/ethers/utils/events.js +0 -6
  301. package/dist/cjs/src/static_dependencies/ethers/utils/fixednumber.js +0 -6
  302. package/dist/cjs/src/static_dependencies/ethers/utils/index.js +7 -1
  303. package/dist/cjs/src/static_dependencies/ethers/utils/maths.js +5 -1
  304. package/dist/cjs/src/static_dependencies/ethers/utils/properties.js +0 -6
  305. package/dist/cjs/src/static_dependencies/ethers/utils/utf8.js +8 -1
  306. package/dist/cjs/src/static_dependencies/fflake/browser.js +1 -1
  307. package/dist/cjs/src/static_dependencies/jsencrypt/JSEncrypt.js +0 -1
  308. package/dist/cjs/src/static_dependencies/jsencrypt/JSEncryptRSAKey.js +0 -1
  309. package/dist/cjs/src/static_dependencies/jsencrypt/lib/asn1js/asn1.js +1 -1
  310. package/dist/cjs/src/static_dependencies/jsencrypt/lib/asn1js/base64.js +0 -6
  311. package/dist/cjs/src/static_dependencies/jsencrypt/lib/asn1js/hex.js +0 -6
  312. package/dist/cjs/src/static_dependencies/jsencrypt/lib/asn1js/int10.js +0 -6
  313. package/dist/cjs/src/static_dependencies/jsencrypt/lib/jsbn/base64.js +0 -1
  314. package/dist/cjs/src/static_dependencies/jsencrypt/lib/jsbn/jsbn.js +1 -1
  315. package/dist/cjs/src/static_dependencies/jsencrypt/lib/jsbn/prng4.js +0 -6
  316. package/dist/cjs/src/static_dependencies/jsencrypt/lib/jsbn/rng.js +1 -1
  317. package/dist/cjs/src/static_dependencies/jsencrypt/lib/jsbn/rsa.js +1 -1
  318. package/dist/cjs/src/static_dependencies/jsencrypt/lib/jsbn/util.js +0 -6
  319. package/dist/cjs/src/static_dependencies/jsencrypt/lib/jsrsasign/asn1-1.0.js +1 -1
  320. package/dist/cjs/src/static_dependencies/jsencrypt/lib/jsrsasign/yahoo.js +0 -6
  321. package/dist/cjs/src/static_dependencies/messagepack/msgpack.js +0 -6
  322. package/dist/cjs/src/static_dependencies/noble-curves/_shortw_utils.js +1 -1
  323. package/dist/cjs/src/static_dependencies/noble-curves/abstract/curve.js +1 -1
  324. package/dist/cjs/src/static_dependencies/noble-curves/abstract/edwards.js +1 -1
  325. package/dist/cjs/src/static_dependencies/noble-curves/abstract/hash-to-curve.js +0 -1
  326. package/dist/cjs/src/static_dependencies/noble-curves/abstract/modular.js +1 -1
  327. package/dist/cjs/src/static_dependencies/noble-curves/abstract/montgomery.js +1 -1
  328. package/dist/cjs/src/static_dependencies/noble-curves/abstract/poseidon.js +1 -1
  329. package/dist/cjs/src/static_dependencies/noble-curves/abstract/utils.js +0 -6
  330. package/dist/cjs/src/static_dependencies/noble-curves/abstract/weierstrass.js +1 -1
  331. package/dist/cjs/src/static_dependencies/noble-curves/ed25519.js +1 -1
  332. package/dist/cjs/src/static_dependencies/noble-curves/p256.js +1 -1
  333. package/dist/cjs/src/static_dependencies/noble-curves/secp256k1.js +1 -1
  334. package/dist/cjs/src/static_dependencies/noble-hashes/_assert.js +0 -6
  335. package/dist/cjs/src/static_dependencies/noble-hashes/_sha2.js +0 -1
  336. package/dist/cjs/src/static_dependencies/noble-hashes/_u64.js +0 -6
  337. package/dist/cjs/src/static_dependencies/noble-hashes/crypto.js +0 -6
  338. package/dist/cjs/src/static_dependencies/noble-hashes/hmac.js +0 -1
  339. package/dist/cjs/src/static_dependencies/noble-hashes/md5.js +0 -1
  340. package/dist/cjs/src/static_dependencies/noble-hashes/sha1.js +0 -1
  341. package/dist/cjs/src/static_dependencies/noble-hashes/sha256.js +0 -1
  342. package/dist/cjs/src/static_dependencies/noble-hashes/sha3.js +0 -1
  343. package/dist/cjs/src/static_dependencies/noble-hashes/sha512.js +0 -1
  344. package/dist/cjs/src/static_dependencies/noble-hashes/utils.js +1 -1
  345. package/dist/cjs/src/static_dependencies/node-fetch/body.js +5 -1
  346. package/dist/cjs/src/static_dependencies/node-fetch/errors/abort-error.js +0 -1
  347. package/dist/cjs/src/static_dependencies/node-fetch/errors/base.js +0 -6
  348. package/dist/cjs/src/static_dependencies/node-fetch/errors/fetch-error.js +0 -1
  349. package/dist/cjs/src/static_dependencies/node-fetch/headers.js +5 -1
  350. package/dist/cjs/src/static_dependencies/node-fetch/index.js +7 -1
  351. package/dist/cjs/src/static_dependencies/node-fetch/request.js +7 -1
  352. package/dist/cjs/src/static_dependencies/node-fetch/response.js +5 -1
  353. package/dist/cjs/src/static_dependencies/node-fetch/utils/get-search.js +0 -6
  354. package/dist/cjs/src/static_dependencies/node-fetch/utils/is-redirect.js +0 -6
  355. package/dist/cjs/src/static_dependencies/node-fetch/utils/is.js +0 -6
  356. package/dist/cjs/src/static_dependencies/node-fetch/utils/referrer.js +0 -1
  357. package/dist/cjs/src/static_dependencies/proxies/agent-base/index.js +0 -1
  358. package/dist/cjs/src/static_dependencies/proxies/http-proxy-agent/index.js +0 -1
  359. package/dist/cjs/src/static_dependencies/proxies/https-proxy-agent/index.js +0 -1
  360. package/dist/cjs/src/static_dependencies/proxies/https-proxy-agent/parse-proxy-response.js +0 -6
  361. package/dist/cjs/src/static_dependencies/scure-base/index.js +0 -6
  362. package/dist/cjs/src/static_dependencies/scure-starknet/index.js +1 -1
  363. package/dist/cjs/src/static_dependencies/starknet/constants.js +1 -1
  364. package/dist/cjs/src/static_dependencies/starknet/types/calldata.js +0 -6
  365. package/dist/cjs/src/static_dependencies/starknet/types/lib/contract/abi.js +0 -6
  366. package/dist/cjs/src/static_dependencies/starknet/types/lib/contract/index.js +0 -6
  367. package/dist/cjs/src/static_dependencies/starknet/types/lib/index.js +0 -6
  368. package/dist/cjs/src/static_dependencies/starknet/types/typedData.js +0 -6
  369. package/dist/cjs/src/static_dependencies/starknet/utils/assert.js +0 -6
  370. package/dist/cjs/src/static_dependencies/starknet/utils/cairoDataTypes/felt.js +1 -1
  371. package/dist/cjs/src/static_dependencies/starknet/utils/cairoDataTypes/uint256.js +1 -1
  372. package/dist/cjs/src/static_dependencies/starknet/utils/cairoDataTypes/uint512.js +1 -1
  373. package/dist/cjs/src/static_dependencies/starknet/utils/calldata/byteArray.js +0 -1
  374. package/dist/cjs/src/static_dependencies/starknet/utils/calldata/cairo.js +0 -1
  375. package/dist/cjs/src/static_dependencies/starknet/utils/calldata/enum/CairoCustomEnum.js +0 -6
  376. package/dist/cjs/src/static_dependencies/starknet/utils/calldata/enum/CairoOption.js +0 -6
  377. package/dist/cjs/src/static_dependencies/starknet/utils/calldata/enum/CairoResult.js +0 -6
  378. package/dist/cjs/src/static_dependencies/starknet/utils/calldata/formatter.js +0 -1
  379. package/dist/cjs/src/static_dependencies/starknet/utils/calldata/index.js +1 -1
  380. package/dist/cjs/src/static_dependencies/starknet/utils/calldata/parser/index.js +0 -1
  381. package/dist/cjs/src/static_dependencies/starknet/utils/calldata/parser/parser-0-1.1.0.js +0 -1
  382. package/dist/cjs/src/static_dependencies/starknet/utils/calldata/parser/parser-2.0.0.js +0 -6
  383. package/dist/cjs/src/static_dependencies/starknet/utils/calldata/propertyOrder.js +0 -1
  384. package/dist/cjs/src/static_dependencies/starknet/utils/calldata/requestParser.js +0 -1
  385. package/dist/cjs/src/static_dependencies/starknet/utils/calldata/responseParser.js +0 -1
  386. package/dist/cjs/src/static_dependencies/starknet/utils/calldata/tuple.js +1 -1
  387. package/dist/cjs/src/static_dependencies/starknet/utils/calldata/validate.js +4 -1
  388. package/dist/cjs/src/static_dependencies/starknet/utils/encode.js +0 -1
  389. package/dist/cjs/src/static_dependencies/starknet/utils/hash/classHash.js +3 -1
  390. package/dist/cjs/src/static_dependencies/starknet/utils/merkle.js +0 -1
  391. package/dist/cjs/src/static_dependencies/starknet/utils/num.js +0 -1
  392. package/dist/cjs/src/static_dependencies/starknet/utils/selector.js +0 -1
  393. package/dist/cjs/src/static_dependencies/starknet/utils/shortString.js +0 -1
  394. package/dist/cjs/src/static_dependencies/starknet/utils/typedData.js +1 -1
  395. package/dist/cjs/src/static_dependencies/watchable/src/unpromise.js +0 -6
  396. package/dist/cjs/src/static_dependencies/zklink/zklink-sdk-web.js +0 -6
  397. package/dist/cjs/src/timex.js +0 -1
  398. package/dist/cjs/src/tokocrypto.js +1 -1
  399. package/dist/cjs/src/toobit.js +2999 -0
  400. package/dist/cjs/src/upbit.js +1 -1
  401. package/dist/cjs/src/wavesexchange.js +1 -1
  402. package/dist/cjs/src/whitebit.js +1 -1
  403. package/dist/cjs/src/woo.js +1 -1
  404. package/dist/cjs/src/woofipro.js +1 -1
  405. package/dist/cjs/src/xt.js +10 -1
  406. package/dist/cjs/src/yobit.js +10 -1
  407. package/dist/cjs/src/zaif.js +1 -1
  408. package/dist/cjs/src/zonda.js +1 -1
  409. package/js/ccxt.d.ts +14 -8
  410. package/js/ccxt.js +10 -12
  411. package/js/src/abstract/alpaca.js +0 -6
  412. package/js/src/abstract/apex.js +0 -6
  413. package/js/src/abstract/ascendex.js +0 -6
  414. package/js/src/abstract/backpack.d.ts +63 -0
  415. package/js/src/abstract/backpack.js +5 -0
  416. package/js/src/abstract/bequant.js +0 -6
  417. package/js/src/abstract/bigone.js +0 -6
  418. package/js/src/abstract/binance.js +0 -6
  419. package/js/src/abstract/binancecoinm.js +0 -6
  420. package/js/src/abstract/binanceus.js +0 -6
  421. package/js/src/abstract/binanceusdm.js +0 -6
  422. package/js/src/abstract/bingx.js +0 -6
  423. package/js/src/abstract/bit2c.js +0 -6
  424. package/js/src/abstract/bitbank.js +0 -6
  425. package/js/src/abstract/bitbns.js +0 -6
  426. package/js/src/abstract/bitfinex.js +0 -6
  427. package/js/src/abstract/bitflyer.js +0 -6
  428. package/js/src/abstract/bitget.js +0 -6
  429. package/js/src/abstract/bithumb.js +0 -6
  430. package/js/src/abstract/bitmart.js +0 -6
  431. package/js/src/abstract/bitmex.js +0 -6
  432. package/js/src/abstract/bitopro.js +0 -6
  433. package/js/src/abstract/bitrue.js +0 -6
  434. package/js/src/abstract/bitso.js +0 -6
  435. package/js/src/abstract/bitstamp.js +0 -6
  436. package/js/src/abstract/bitteam.js +0 -6
  437. package/js/src/abstract/bittrade.js +0 -6
  438. package/js/src/abstract/bitvavo.js +0 -6
  439. package/js/src/abstract/blockchaincom.js +0 -6
  440. package/js/src/abstract/blofin.js +0 -6
  441. package/js/src/abstract/btcalpha.js +0 -6
  442. package/js/src/abstract/btcbox.js +0 -6
  443. package/js/src/abstract/btcmarkets.js +0 -6
  444. package/js/src/abstract/btcturk.js +0 -6
  445. package/js/src/abstract/bybit.js +0 -6
  446. package/js/src/abstract/cex.js +0 -6
  447. package/js/src/abstract/coinbase.js +0 -6
  448. package/js/src/abstract/coinbaseadvanced.js +0 -6
  449. package/js/src/abstract/coinbaseexchange.js +0 -6
  450. package/js/src/abstract/coinbaseinternational.js +0 -6
  451. package/js/src/abstract/coincatch.js +0 -6
  452. package/js/src/abstract/coincheck.js +0 -6
  453. package/js/src/abstract/coinex.js +0 -6
  454. package/js/src/abstract/coinmate.js +0 -6
  455. package/js/src/abstract/coinmetro.js +0 -6
  456. package/js/src/abstract/coinone.js +0 -6
  457. package/js/src/abstract/coinsph.js +0 -6
  458. package/js/src/abstract/coinspot.js +0 -6
  459. package/js/src/abstract/cryptocom.js +0 -6
  460. package/js/src/abstract/cryptomus.js +0 -6
  461. package/js/src/abstract/defx.js +0 -6
  462. package/js/src/abstract/delta.js +0 -6
  463. package/js/src/abstract/deribit.js +0 -6
  464. package/js/src/abstract/derive.js +0 -6
  465. package/js/src/abstract/digifinex.js +0 -6
  466. package/js/src/abstract/exmo.js +0 -6
  467. package/js/src/abstract/fmfwio.js +0 -6
  468. package/js/src/abstract/foxbit.js +0 -6
  469. package/js/src/abstract/gate.js +0 -6
  470. package/js/src/abstract/gateio.js +0 -6
  471. package/js/src/abstract/gemini.js +0 -6
  472. package/js/src/abstract/hashkey.js +0 -6
  473. package/js/src/abstract/hibachi.js +0 -6
  474. package/js/src/abstract/hitbtc.js +0 -6
  475. package/js/src/abstract/hollaex.js +0 -6
  476. package/js/src/abstract/htx.js +0 -6
  477. package/js/src/abstract/huobi.js +0 -6
  478. package/js/src/abstract/hyperliquid.js +0 -6
  479. package/js/src/abstract/independentreserve.js +0 -6
  480. package/js/src/abstract/indodax.js +0 -6
  481. package/js/src/abstract/kraken.js +0 -6
  482. package/js/src/abstract/krakenfutures.js +0 -6
  483. package/js/src/abstract/kucoin.js +0 -6
  484. package/js/src/abstract/kucoinfutures.d.ts +1 -0
  485. package/js/src/abstract/kucoinfutures.js +0 -6
  486. package/js/src/abstract/latoken.js +0 -6
  487. package/js/src/abstract/lbank.js +0 -6
  488. package/js/src/abstract/luno.js +0 -6
  489. package/js/src/abstract/mercado.js +0 -6
  490. package/js/src/abstract/mexc.js +0 -6
  491. package/js/src/abstract/modetrade.js +0 -6
  492. package/js/src/abstract/myokx.d.ts +1 -0
  493. package/js/src/abstract/myokx.js +0 -6
  494. package/js/src/abstract/ndax.js +0 -6
  495. package/js/src/abstract/novadax.js +0 -6
  496. package/js/src/abstract/oceanex.js +0 -6
  497. package/js/src/abstract/okcoin.js +0 -6
  498. package/js/src/abstract/okx.d.ts +1 -0
  499. package/js/src/abstract/okx.js +0 -6
  500. package/js/src/abstract/okxus.d.ts +1 -0
  501. package/js/src/abstract/okxus.js +0 -6
  502. package/js/src/abstract/onetrading.js +0 -6
  503. package/js/src/abstract/oxfun.js +0 -6
  504. package/js/src/abstract/p2b.js +0 -6
  505. package/js/src/abstract/paradex.js +0 -6
  506. package/js/src/abstract/paymium.js +0 -6
  507. package/js/src/abstract/phemex.d.ts +1 -1
  508. package/js/src/abstract/phemex.js +0 -6
  509. package/js/src/abstract/poloniex.js +0 -6
  510. package/js/src/abstract/probit.js +0 -6
  511. package/js/src/abstract/timex.js +0 -6
  512. package/js/src/abstract/tokocrypto.js +0 -6
  513. package/js/src/abstract/toobit.d.ts +66 -0
  514. package/js/src/abstract/toobit.js +5 -0
  515. package/js/src/abstract/upbit.js +0 -6
  516. package/js/src/abstract/wavesexchange.js +0 -6
  517. package/js/src/abstract/whitebit.js +0 -6
  518. package/js/src/abstract/woo.js +0 -6
  519. package/js/src/abstract/woofipro.js +0 -6
  520. package/js/src/abstract/xt.js +0 -6
  521. package/js/src/abstract/yobit.js +0 -6
  522. package/js/src/abstract/zaif.js +0 -6
  523. package/js/src/abstract/zonda.js +0 -6
  524. package/js/src/alpaca.js +0 -6
  525. package/js/src/apex.js +0 -6
  526. package/js/src/ascendex.js +0 -6
  527. package/js/src/backpack.d.ts +371 -0
  528. package/js/src/backpack.js +2273 -0
  529. package/js/src/base/Exchange.d.ts +48 -40
  530. package/js/src/base/Exchange.js +231 -72
  531. package/js/src/base/Precise.js +0 -6
  532. package/js/src/base/errorHierarchy.js +0 -6
  533. package/js/src/base/errors.js +0 -6
  534. package/js/src/base/functions/crypto.js +0 -6
  535. package/js/src/base/functions/encode.js +0 -6
  536. package/js/src/base/functions/generic.js +0 -6
  537. package/js/src/base/functions/misc.js +0 -6
  538. package/js/src/base/functions/number.js +0 -6
  539. package/js/src/base/functions/platform.js +0 -6
  540. package/js/src/base/functions/rsa.js +0 -6
  541. package/js/src/base/functions/string.js +0 -6
  542. package/js/src/base/functions/throttle.js +0 -6
  543. package/js/src/base/functions/time.js +0 -6
  544. package/js/src/base/functions/totp.js +0 -6
  545. package/js/src/base/functions/type.js +0 -6
  546. package/js/src/base/functions.js +0 -6
  547. package/js/src/base/types.d.ts +1 -3
  548. package/js/src/base/types.js +0 -6
  549. package/js/src/base/ws/Cache.js +0 -6
  550. package/js/src/base/ws/Client.js +0 -6
  551. package/js/src/base/ws/Future.js +0 -6
  552. package/js/src/base/ws/OrderBook.js +0 -6
  553. package/js/src/base/ws/OrderBookSide.js +0 -6
  554. package/js/src/base/ws/WsClient.js +0 -6
  555. package/js/src/base/ws/functions.js +0 -6
  556. package/js/src/bequant.js +0 -6
  557. package/js/src/bigone.js +4 -10
  558. package/js/src/binance.d.ts +10 -1
  559. package/js/src/binance.js +79 -26
  560. package/js/src/binancecoinm.js +0 -6
  561. package/js/src/binanceus.js +0 -6
  562. package/js/src/binanceusdm.js +0 -6
  563. package/js/src/bingx.js +5 -8
  564. package/js/src/bit2c.js +0 -6
  565. package/js/src/bitbank.js +1 -7
  566. package/js/src/bitbns.js +0 -6
  567. package/js/src/bitfinex.js +0 -6
  568. package/js/src/bitflyer.js +0 -6
  569. package/js/src/bitget.d.ts +3 -1
  570. package/js/src/bitget.js +72 -24
  571. package/js/src/bithumb.js +0 -6
  572. package/js/src/bitmart.js +0 -6
  573. package/js/src/bitmex.js +0 -6
  574. package/js/src/bitopro.js +0 -6
  575. package/js/src/bitrue.js +0 -6
  576. package/js/src/bitso.js +0 -6
  577. package/js/src/bitstamp.js +0 -6
  578. package/js/src/bitteam.js +0 -6
  579. package/js/src/bittrade.js +0 -6
  580. package/js/src/bitvavo.js +0 -6
  581. package/js/src/blockchaincom.js +0 -6
  582. package/js/src/blofin.js +0 -6
  583. package/js/src/btcalpha.js +0 -6
  584. package/js/src/btcbox.js +0 -6
  585. package/js/src/btcmarkets.js +0 -6
  586. package/js/src/btcturk.js +0 -6
  587. package/js/src/bybit.d.ts +8 -0
  588. package/js/src/bybit.js +186 -133
  589. package/js/src/cex.js +0 -6
  590. package/js/src/coinbase.d.ts +1 -1
  591. package/js/src/coinbase.js +0 -6
  592. package/js/src/coinbaseadvanced.js +0 -6
  593. package/js/src/coinbaseexchange.js +0 -6
  594. package/js/src/coinbaseinternational.js +0 -6
  595. package/js/src/coincatch.js +1 -7
  596. package/js/src/coincheck.js +0 -6
  597. package/js/src/coinex.js +0 -6
  598. package/js/src/coinmate.js +0 -6
  599. package/js/src/coinmetro.js +11 -6
  600. package/js/src/coinone.js +0 -6
  601. package/js/src/coinsph.js +4 -7
  602. package/js/src/coinspot.js +0 -6
  603. package/js/src/cryptocom.js +6 -9
  604. package/js/src/cryptomus.js +0 -6
  605. package/js/src/defx.js +0 -6
  606. package/js/src/delta.js +0 -6
  607. package/js/src/deribit.js +0 -6
  608. package/js/src/derive.js +0 -6
  609. package/js/src/digifinex.js +0 -6
  610. package/js/src/exmo.js +0 -6
  611. package/js/src/fmfwio.js +0 -6
  612. package/js/src/foxbit.js +0 -6
  613. package/js/src/gate.d.ts +6 -0
  614. package/js/src/gate.js +8 -8
  615. package/js/src/gateio.js +0 -6
  616. package/js/src/gemini.js +12 -13
  617. package/js/src/hashkey.js +0 -6
  618. package/js/src/hibachi.js +0 -6
  619. package/js/src/hitbtc.js +0 -6
  620. package/js/src/hollaex.js +0 -6
  621. package/js/src/htx.js +0 -6
  622. package/js/src/huobi.js +0 -6
  623. package/js/src/hyperliquid.js +3 -6
  624. package/js/src/independentreserve.js +0 -6
  625. package/js/src/indodax.js +0 -6
  626. package/js/src/kraken.d.ts +1 -1
  627. package/js/src/kraken.js +6 -8
  628. package/js/src/krakenfutures.js +1 -7
  629. package/js/src/kucoin.js +1 -8
  630. package/js/src/kucoinfutures.d.ts +14 -1
  631. package/js/src/kucoinfutures.js +51 -9
  632. package/js/src/latoken.js +0 -6
  633. package/js/src/lbank.js +0 -6
  634. package/js/src/luno.js +4 -7
  635. package/js/src/mercado.js +0 -6
  636. package/js/src/mexc.js +4 -7
  637. package/js/src/modetrade.js +0 -6
  638. package/js/src/myokx.js +0 -6
  639. package/js/src/ndax.js +0 -6
  640. package/js/src/novadax.js +0 -6
  641. package/js/src/oceanex.js +0 -6
  642. package/js/src/okcoin.js +4 -7
  643. package/js/src/okx.js +58 -23
  644. package/js/src/okxus.js +0 -6
  645. package/js/src/onetrading.d.ts +1 -0
  646. package/js/src/onetrading.js +160 -71
  647. package/js/src/oxfun.js +0 -6
  648. package/js/src/p2b.js +0 -6
  649. package/js/src/paradex.js +0 -6
  650. package/js/src/paymium.js +0 -6
  651. package/js/src/phemex.d.ts +3 -3
  652. package/js/src/phemex.js +16 -16
  653. package/js/src/poloniex.js +0 -6
  654. package/js/src/pro/alpaca.js +0 -6
  655. package/js/src/pro/apex.js +1 -6
  656. package/js/src/pro/ascendex.js +0 -6
  657. package/js/src/pro/backpack.d.ts +264 -0
  658. package/js/src/pro/backpack.js +1318 -0
  659. package/js/src/pro/bequant.js +0 -6
  660. package/js/src/pro/binance.d.ts +24 -0
  661. package/js/src/pro/binance.js +159 -25
  662. package/js/src/pro/binancecoinm.js +0 -6
  663. package/js/src/pro/binanceus.js +0 -6
  664. package/js/src/pro/binanceusdm.js +0 -6
  665. package/js/src/pro/bingx.js +0 -6
  666. package/js/src/pro/bitfinex.js +0 -6
  667. package/js/src/pro/bitget.d.ts +12 -0
  668. package/js/src/pro/bitget.js +372 -93
  669. package/js/src/pro/bithumb.js +0 -6
  670. package/js/src/pro/bitmart.js +0 -6
  671. package/js/src/pro/bitmex.js +0 -6
  672. package/js/src/pro/bitopro.js +0 -6
  673. package/js/src/pro/bitrue.js +0 -6
  674. package/js/src/pro/bitstamp.js +0 -6
  675. package/js/src/pro/bittrade.js +0 -6
  676. package/js/src/pro/bitvavo.js +0 -6
  677. package/js/src/pro/blockchaincom.js +0 -6
  678. package/js/src/pro/blofin.js +0 -6
  679. package/js/src/pro/bybit.js +3 -6
  680. package/js/src/pro/cex.js +1 -6
  681. package/js/src/pro/coinbase.d.ts +85 -0
  682. package/js/src/pro/coinbase.js +226 -6
  683. package/js/src/pro/coinbaseadvanced.js +0 -6
  684. package/js/src/pro/coinbaseexchange.js +0 -6
  685. package/js/src/pro/coinbaseinternational.js +0 -6
  686. package/js/src/pro/coincatch.js +0 -6
  687. package/js/src/pro/coincheck.js +0 -6
  688. package/js/src/pro/coinex.js +0 -6
  689. package/js/src/pro/coinone.js +0 -6
  690. package/js/src/pro/cryptocom.js +0 -6
  691. package/js/src/pro/defx.js +0 -6
  692. package/js/src/pro/deribit.js +0 -6
  693. package/js/src/pro/derive.js +0 -6
  694. package/js/src/pro/exmo.js +0 -6
  695. package/js/src/pro/gate.js +0 -6
  696. package/js/src/pro/gateio.js +0 -6
  697. package/js/src/pro/gemini.js +0 -6
  698. package/js/src/pro/hashkey.js +0 -6
  699. package/js/src/pro/hitbtc.js +0 -6
  700. package/js/src/pro/hollaex.js +0 -6
  701. package/js/src/pro/htx.js +0 -6
  702. package/js/src/pro/huobi.js +0 -6
  703. package/js/src/pro/hyperliquid.js +0 -6
  704. package/js/src/pro/independentreserve.js +1 -6
  705. package/js/src/pro/kraken.js +0 -6
  706. package/js/src/pro/krakenfutures.js +0 -6
  707. package/js/src/pro/kucoin.js +0 -6
  708. package/js/src/pro/kucoinfutures.js +0 -6
  709. package/js/src/pro/lbank.js +0 -6
  710. package/js/src/pro/luno.js +0 -6
  711. package/js/src/pro/mexc.js +23 -29
  712. package/js/src/pro/modetrade.js +0 -6
  713. package/js/src/pro/myokx.js +0 -6
  714. package/js/src/pro/ndax.js +0 -6
  715. package/js/src/pro/okcoin.js +0 -6
  716. package/js/src/pro/okx.d.ts +7 -1
  717. package/js/src/pro/okx.js +46 -16
  718. package/js/src/pro/okxus.js +0 -6
  719. package/js/src/pro/onetrading.js +0 -6
  720. package/js/src/pro/oxfun.js +0 -6
  721. package/js/src/pro/p2b.js +0 -6
  722. package/js/src/pro/paradex.js +0 -6
  723. package/js/src/pro/phemex.js +0 -6
  724. package/js/src/pro/poloniex.js +0 -6
  725. package/js/src/pro/probit.js +0 -6
  726. package/js/src/pro/toobit.d.ts +174 -0
  727. package/js/src/pro/toobit.js +1162 -0
  728. package/js/src/pro/upbit.js +0 -6
  729. package/js/src/pro/whitebit.js +0 -6
  730. package/js/src/pro/woo.js +0 -6
  731. package/js/src/pro/woofipro.js +0 -6
  732. package/js/src/pro/xt.js +0 -6
  733. package/js/src/probit.js +0 -6
  734. package/js/src/protobuf/mexc/compiled.cjs +0 -6
  735. package/js/src/static_dependencies/ethers/abi-coder.js +0 -6
  736. package/js/src/static_dependencies/ethers/address/address.js +0 -6
  737. package/js/src/static_dependencies/ethers/address/checks.js +0 -6
  738. package/js/src/static_dependencies/ethers/address/contract-address.js +0 -6
  739. package/js/src/static_dependencies/ethers/address/index.js +0 -6
  740. package/js/src/static_dependencies/ethers/bytes32.js +0 -6
  741. package/js/src/static_dependencies/ethers/coders/abstract-coder.js +0 -6
  742. package/js/src/static_dependencies/ethers/coders/address.js +0 -6
  743. package/js/src/static_dependencies/ethers/coders/anonymous.js +0 -6
  744. package/js/src/static_dependencies/ethers/coders/array.js +0 -6
  745. package/js/src/static_dependencies/ethers/coders/boolean.js +0 -6
  746. package/js/src/static_dependencies/ethers/coders/bytes.js +0 -6
  747. package/js/src/static_dependencies/ethers/coders/fixed-bytes.js +0 -6
  748. package/js/src/static_dependencies/ethers/coders/null.js +0 -6
  749. package/js/src/static_dependencies/ethers/coders/number.js +0 -6
  750. package/js/src/static_dependencies/ethers/coders/string.js +0 -6
  751. package/js/src/static_dependencies/ethers/coders/tuple.js +0 -6
  752. package/js/src/static_dependencies/ethers/fragments.js +0 -6
  753. package/js/src/static_dependencies/ethers/hash/index.js +0 -6
  754. package/js/src/static_dependencies/ethers/hash/solidity.js +0 -6
  755. package/js/src/static_dependencies/ethers/hash/typed-data.js +0 -6
  756. package/js/src/static_dependencies/ethers/index.js +0 -6
  757. package/js/src/static_dependencies/ethers/interface.js +0 -6
  758. package/js/src/static_dependencies/ethers/typed.js +0 -6
  759. package/js/src/static_dependencies/ethers/utils/base58.js +0 -6
  760. package/js/src/static_dependencies/ethers/utils/base64-browser.js +0 -6
  761. package/js/src/static_dependencies/ethers/utils/base64.js +0 -6
  762. package/js/src/static_dependencies/ethers/utils/data.js +0 -6
  763. package/js/src/static_dependencies/ethers/utils/errors.js +0 -6
  764. package/js/src/static_dependencies/ethers/utils/events.js +0 -6
  765. package/js/src/static_dependencies/ethers/utils/fixednumber.js +0 -6
  766. package/js/src/static_dependencies/ethers/utils/index.js +0 -6
  767. package/js/src/static_dependencies/ethers/utils/maths.js +0 -6
  768. package/js/src/static_dependencies/ethers/utils/properties.js +0 -6
  769. package/js/src/static_dependencies/ethers/utils/rlp-decode.js +0 -6
  770. package/js/src/static_dependencies/ethers/utils/rlp-encode.js +0 -6
  771. package/js/src/static_dependencies/ethers/utils/rlp.js +0 -6
  772. package/js/src/static_dependencies/ethers/utils/units.js +0 -6
  773. package/js/src/static_dependencies/ethers/utils/utf8.js +0 -6
  774. package/js/src/static_dependencies/ethers/utils/uuid.js +0 -6
  775. package/js/src/static_dependencies/fflake/browser.js +0 -6
  776. package/js/src/static_dependencies/jsencrypt/JSEncrypt.js +0 -6
  777. package/js/src/static_dependencies/jsencrypt/JSEncryptRSAKey.js +0 -6
  778. package/js/src/static_dependencies/jsencrypt/index.js +0 -6
  779. package/js/src/static_dependencies/jsencrypt/lib/asn1js/asn1.js +0 -6
  780. package/js/src/static_dependencies/jsencrypt/lib/asn1js/base64.js +0 -6
  781. package/js/src/static_dependencies/jsencrypt/lib/asn1js/hex.js +0 -6
  782. package/js/src/static_dependencies/jsencrypt/lib/asn1js/int10.js +0 -6
  783. package/js/src/static_dependencies/jsencrypt/lib/asn1js/oids.js +0 -6
  784. package/js/src/static_dependencies/jsencrypt/lib/jsbn/base64.js +0 -6
  785. package/js/src/static_dependencies/jsencrypt/lib/jsbn/jsbn.js +0 -6
  786. package/js/src/static_dependencies/jsencrypt/lib/jsbn/prng4.js +0 -6
  787. package/js/src/static_dependencies/jsencrypt/lib/jsbn/rng.js +0 -6
  788. package/js/src/static_dependencies/jsencrypt/lib/jsbn/rsa.js +0 -6
  789. package/js/src/static_dependencies/jsencrypt/lib/jsbn/util.js +0 -6
  790. package/js/src/static_dependencies/jsencrypt/lib/jsrsasign/asn1-1.0.js +0 -6
  791. package/js/src/static_dependencies/jsencrypt/lib/jsrsasign/yahoo.js +0 -6
  792. package/js/src/static_dependencies/messagepack/msgpack.js +0 -6
  793. package/js/src/static_dependencies/noble-curves/_shortw_utils.js +0 -6
  794. package/js/src/static_dependencies/noble-curves/abstract/curve.js +0 -6
  795. package/js/src/static_dependencies/noble-curves/abstract/edwards.js +0 -6
  796. package/js/src/static_dependencies/noble-curves/abstract/hash-to-curve.js +0 -6
  797. package/js/src/static_dependencies/noble-curves/abstract/modular.js +0 -6
  798. package/js/src/static_dependencies/noble-curves/abstract/montgomery.js +0 -6
  799. package/js/src/static_dependencies/noble-curves/abstract/poseidon.js +0 -6
  800. package/js/src/static_dependencies/noble-curves/abstract/utils.js +0 -6
  801. package/js/src/static_dependencies/noble-curves/abstract/weierstrass.js +0 -6
  802. package/js/src/static_dependencies/noble-curves/bn.js +0 -6
  803. package/js/src/static_dependencies/noble-curves/ed25519.js +0 -6
  804. package/js/src/static_dependencies/noble-curves/ed448.js +0 -6
  805. package/js/src/static_dependencies/noble-curves/index.js +0 -6
  806. package/js/src/static_dependencies/noble-curves/jubjub.js +0 -6
  807. package/js/src/static_dependencies/noble-curves/p256.js +0 -6
  808. package/js/src/static_dependencies/noble-curves/p384.js +0 -6
  809. package/js/src/static_dependencies/noble-curves/p521.js +0 -6
  810. package/js/src/static_dependencies/noble-curves/pasta.js +0 -6
  811. package/js/src/static_dependencies/noble-curves/secp256k1.js +0 -6
  812. package/js/src/static_dependencies/noble-hashes/_assert.js +0 -6
  813. package/js/src/static_dependencies/noble-hashes/_blake2.js +0 -6
  814. package/js/src/static_dependencies/noble-hashes/_sha2.js +0 -6
  815. package/js/src/static_dependencies/noble-hashes/_u64.js +0 -6
  816. package/js/src/static_dependencies/noble-hashes/argon2.js +0 -6
  817. package/js/src/static_dependencies/noble-hashes/blake2b.js +0 -6
  818. package/js/src/static_dependencies/noble-hashes/blake2s.js +0 -6
  819. package/js/src/static_dependencies/noble-hashes/blake3.js +0 -6
  820. package/js/src/static_dependencies/noble-hashes/crypto.js +0 -6
  821. package/js/src/static_dependencies/noble-hashes/cryptoNode.js +0 -6
  822. package/js/src/static_dependencies/noble-hashes/eskdf.js +0 -6
  823. package/js/src/static_dependencies/noble-hashes/hkdf.js +0 -6
  824. package/js/src/static_dependencies/noble-hashes/hmac.js +0 -6
  825. package/js/src/static_dependencies/noble-hashes/index.js +0 -6
  826. package/js/src/static_dependencies/noble-hashes/md5.js +0 -6
  827. package/js/src/static_dependencies/noble-hashes/pbkdf2.js +0 -6
  828. package/js/src/static_dependencies/noble-hashes/ripemd160.js +0 -6
  829. package/js/src/static_dependencies/noble-hashes/scrypt.js +0 -6
  830. package/js/src/static_dependencies/noble-hashes/sha1.js +0 -6
  831. package/js/src/static_dependencies/noble-hashes/sha256.js +0 -6
  832. package/js/src/static_dependencies/noble-hashes/sha3-addons.js +0 -6
  833. package/js/src/static_dependencies/noble-hashes/sha3.js +0 -6
  834. package/js/src/static_dependencies/noble-hashes/sha512.js +0 -6
  835. package/js/src/static_dependencies/noble-hashes/utils.js +0 -6
  836. package/js/src/static_dependencies/node-fetch/body.js +0 -6
  837. package/js/src/static_dependencies/node-fetch/errors/abort-error.js +0 -6
  838. package/js/src/static_dependencies/node-fetch/errors/base.js +0 -6
  839. package/js/src/static_dependencies/node-fetch/errors/fetch-error.js +0 -6
  840. package/js/src/static_dependencies/node-fetch/headers.js +0 -6
  841. package/js/src/static_dependencies/node-fetch/index.js +0 -6
  842. package/js/src/static_dependencies/node-fetch/request.js +0 -6
  843. package/js/src/static_dependencies/node-fetch/response.js +0 -6
  844. package/js/src/static_dependencies/node-fetch/utils/get-search.js +0 -6
  845. package/js/src/static_dependencies/node-fetch/utils/is-redirect.js +0 -6
  846. package/js/src/static_dependencies/node-fetch/utils/is.js +0 -6
  847. package/js/src/static_dependencies/node-fetch/utils/referrer.js +0 -6
  848. package/js/src/static_dependencies/proxies/agent-base/helpers.js +0 -6
  849. package/js/src/static_dependencies/proxies/agent-base/index.js +0 -6
  850. package/js/src/static_dependencies/proxies/http-proxy-agent/index.js +0 -6
  851. package/js/src/static_dependencies/proxies/https-proxy-agent/index.js +0 -6
  852. package/js/src/static_dependencies/proxies/https-proxy-agent/parse-proxy-response.js +0 -6
  853. package/js/src/static_dependencies/qs/formats.cjs +0 -6
  854. package/js/src/static_dependencies/qs/index.cjs +0 -6
  855. package/js/src/static_dependencies/qs/parse.cjs +0 -6
  856. package/js/src/static_dependencies/qs/stringify.cjs +0 -6
  857. package/js/src/static_dependencies/qs/utils.cjs +0 -6
  858. package/js/src/static_dependencies/scure-base/index.js +0 -6
  859. package/js/src/static_dependencies/scure-starknet/index.js +0 -6
  860. package/js/src/static_dependencies/starknet/constants.js +0 -6
  861. package/js/src/static_dependencies/starknet/index.js +0 -6
  862. package/js/src/static_dependencies/starknet/types/cairoEnum.js +0 -6
  863. package/js/src/static_dependencies/starknet/types/calldata.js +0 -6
  864. package/js/src/static_dependencies/starknet/types/index.js +0 -6
  865. package/js/src/static_dependencies/starknet/types/lib/contract/abi.js +0 -6
  866. package/js/src/static_dependencies/starknet/types/lib/contract/index.js +0 -6
  867. package/js/src/static_dependencies/starknet/types/lib/contract/legacy.js +0 -6
  868. package/js/src/static_dependencies/starknet/types/lib/contract/sierra.js +0 -6
  869. package/js/src/static_dependencies/starknet/types/lib/index.js +0 -6
  870. package/js/src/static_dependencies/starknet/types/typedData.js +0 -6
  871. package/js/src/static_dependencies/starknet/utils/address.js +0 -6
  872. package/js/src/static_dependencies/starknet/utils/assert.js +0 -6
  873. package/js/src/static_dependencies/starknet/utils/cairoDataTypes/felt.js +0 -6
  874. package/js/src/static_dependencies/starknet/utils/cairoDataTypes/uint256.js +0 -6
  875. package/js/src/static_dependencies/starknet/utils/cairoDataTypes/uint512.js +0 -6
  876. package/js/src/static_dependencies/starknet/utils/calldata/byteArray.js +0 -6
  877. package/js/src/static_dependencies/starknet/utils/calldata/cairo.js +0 -6
  878. package/js/src/static_dependencies/starknet/utils/calldata/enum/CairoCustomEnum.js +0 -6
  879. package/js/src/static_dependencies/starknet/utils/calldata/enum/CairoOption.js +0 -6
  880. package/js/src/static_dependencies/starknet/utils/calldata/enum/CairoResult.js +0 -6
  881. package/js/src/static_dependencies/starknet/utils/calldata/enum/index.js +0 -6
  882. package/js/src/static_dependencies/starknet/utils/calldata/formatter.js +0 -6
  883. package/js/src/static_dependencies/starknet/utils/calldata/index.js +0 -6
  884. package/js/src/static_dependencies/starknet/utils/calldata/parser/index.js +0 -6
  885. package/js/src/static_dependencies/starknet/utils/calldata/parser/interface.js +0 -6
  886. package/js/src/static_dependencies/starknet/utils/calldata/parser/parser-0-1.1.0.js +0 -6
  887. package/js/src/static_dependencies/starknet/utils/calldata/parser/parser-2.0.0.js +0 -6
  888. package/js/src/static_dependencies/starknet/utils/calldata/propertyOrder.js +0 -6
  889. package/js/src/static_dependencies/starknet/utils/calldata/requestParser.js +0 -6
  890. package/js/src/static_dependencies/starknet/utils/calldata/responseParser.js +0 -6
  891. package/js/src/static_dependencies/starknet/utils/calldata/tuple.js +0 -6
  892. package/js/src/static_dependencies/starknet/utils/calldata/validate.js +0 -6
  893. package/js/src/static_dependencies/starknet/utils/encode.js +0 -6
  894. package/js/src/static_dependencies/starknet/utils/hash/classHash.js +0 -6
  895. package/js/src/static_dependencies/starknet/utils/hash/index.js +0 -6
  896. package/js/src/static_dependencies/starknet/utils/merkle.js +0 -6
  897. package/js/src/static_dependencies/starknet/utils/num.js +0 -6
  898. package/js/src/static_dependencies/starknet/utils/selector.js +0 -6
  899. package/js/src/static_dependencies/starknet/utils/shortString.js +0 -6
  900. package/js/src/static_dependencies/starknet/utils/starknetId.js +0 -6
  901. package/js/src/static_dependencies/starknet/utils/typedData.js +0 -6
  902. package/js/src/static_dependencies/starknet/utils/uint256.js +0 -6
  903. package/js/src/static_dependencies/starknet/utils/url.js +0 -6
  904. package/js/src/static_dependencies/watchable/src/index.js +0 -6
  905. package/js/src/static_dependencies/watchable/src/types.js +0 -6
  906. package/js/src/static_dependencies/watchable/src/unpromise.js +0 -6
  907. package/js/src/static_dependencies/zklink/zklink-sdk-web.js +0 -6
  908. package/js/src/timex.js +0 -6
  909. package/js/src/tokocrypto.js +0 -6
  910. package/js/src/toobit.d.ts +456 -0
  911. package/js/src/toobit.js +2992 -0
  912. package/js/src/upbit.js +0 -6
  913. package/js/src/wavesexchange.js +0 -6
  914. package/js/src/whitebit.js +0 -6
  915. package/js/src/woo.js +0 -6
  916. package/js/src/woofipro.js +0 -6
  917. package/js/src/xt.d.ts +1 -0
  918. package/js/src/xt.js +9 -6
  919. package/js/src/yobit.js +9 -6
  920. package/js/src/zaif.js +0 -6
  921. package/js/src/zonda.js +0 -6
  922. package/package.json +1 -1
  923. package/dist/373.ccxt.browser.js +0 -7630
  924. package/dist/373.ccxt.browser.min.js +0 -1
  925. package/js/src/abstract/tradeogre.d.ts +0 -21
  926. package/js/src/abstract/tradeogre.js +0 -11
  927. package/js/src/pro/tradeogre.d.ts +0 -49
  928. package/js/src/pro/tradeogre.js +0 -284
  929. package/js/src/tradeogre.d.ts +0 -149
  930. package/js/src/tradeogre.js +0 -878
@@ -1,17 +1,11 @@
1
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
-
7
- // ----------------------------------------------------------------------------
8
- /* eslint-disable */
9
2
  import * as functions from './functions.js';
10
- const { isNode, selfIsDefined, deepExtend, extend, clone, flatten, unique, indexBy, sortBy, sortBy2, safeFloat2, groupBy, aggregate, uuid, unCamelCase, precisionFromString, Throttler, capitalize, now, decimalToPrecision, safeValue, safeValue2, safeString, safeString2, seconds, milliseconds, binaryToBase16, numberToBE, base16ToBinary, iso8601, omit, isJsonEncodedObject, safeInteger, sum, omitZero, implodeParams, extractParams, json, merge, binaryConcat, hash, ecdsa, arrayConcat, encode, urlencode, hmac, numberToString, roundTimeframe, parseTimeframe, safeInteger2, safeStringLower, parse8601, yyyymmdd, safeStringUpper, safeTimestamp, binaryConcatArray, uuidv1, numberToLE, ymdhms, stringToBase64, decode, uuid22, safeIntegerProduct2, safeIntegerProduct, safeStringLower2, yymmdd, base58ToBinary, binaryToBase58, safeTimestamp2, rawencode, keysort, sort, inArray, isEmpty, ordered, filterBy, uuid16, safeFloat, base64ToBinary, safeStringUpper2, urlencodeWithArrayRepeat, microseconds, binaryToBase64, strip, toArray, safeFloatN, safeIntegerN, safeIntegerProductN, safeTimestampN, safeValueN, safeStringN, safeStringLowerN, safeStringUpperN, urlencodeNested, urlencodeBase64, parseDate, ymd, base64ToString, crc32, packb, TRUNCATE, ROUND, DECIMAL_PLACES, NO_PADDING, TICK_SIZE, SIGNIFICANT_DIGITS, sleep } = functions;
11
- import { keys as keysFunc, values as valuesFunc, vwap as vwapFunc } from './functions.js';
3
+ import { keys as keysFunc, values as valuesFunc,
4
+ // inArray as inArrayFunc,
5
+ vwap as vwapFunc, } from './functions.js';
12
6
  // import exceptions from "./errors.js"
13
7
  import { // eslint-disable-line object-curly-newline
14
- ExchangeError, BadSymbol, NullResponse, InvalidAddress, InvalidOrder, NotSupported, OperationFailed, BadResponse, AuthenticationError, DDoSProtection, RequestTimeout, NetworkError, InvalidProxySettings, ExchangeNotAvailable, ArgumentsRequired, RateLimitExceeded, BadRequest, UnsubscribeError, ExchangeClosedByUser } from "./errors.js";
8
+ ExchangeError, BadSymbol, NullResponse, InvalidAddress, InvalidOrder, NotSupported, OperationFailed, BadResponse, AuthenticationError, DDoSProtection, RequestTimeout, NetworkError, InvalidProxySettings, ExchangeNotAvailable, ArgumentsRequired, RateLimitExceeded, BadRequest, UnsubscribeError, ExchangeClosedByUser, } from './errors.js';
15
9
  import { Precise } from './Precise.js';
16
10
  //-----------------------------------------------------------------------------
17
11
  import WsClient from './ws/WsClient.js';
@@ -23,28 +17,31 @@ import { axolotl } from './functions/crypto.js';
23
17
  import totp from './functions/totp.js';
24
18
  import ethers from '../static_dependencies/ethers/index.js';
25
19
  import { TypedDataEncoder } from '../static_dependencies/ethers/hash/index.js';
26
- import { SecureRandom } from "../static_dependencies/jsencrypt/lib/jsbn/rng.js";
20
+ import { SecureRandom } from '../static_dependencies/jsencrypt/lib/jsbn/rng.js';
27
21
  import { getStarkKey, ethSigToPrivate, sign as starknetCurveSign } from '../static_dependencies/scure-starknet/index.js';
28
22
  import init, * as zklink from '../static_dependencies/zklink/zklink-sdk-web.js';
29
23
  import * as Starknet from '../static_dependencies/starknet/index.js';
30
24
  import { sha256 } from '../static_dependencies/noble-hashes/sha256.js';
25
+ const { isNode, selfIsDefined, deepExtend, extend, clone, flatten, unique, indexBy, sortBy, sortBy2, safeFloat2, groupBy, aggregate, uuid, unCamelCase, precisionFromString, Throttler, capitalize, now, decimalToPrecision, safeValue, safeValue2, safeString, safeString2, seconds, milliseconds, binaryToBase16, numberToBE, base16ToBinary, iso8601, omit, isJsonEncodedObject, safeInteger, sum, omitZero, implodeParams, extractParams, json, merge, binaryConcat, hash,
26
+ // ecdsa,
27
+ arrayConcat, encode, urlencode, hmac, numberToString, roundTimeframe, parseTimeframe, safeInteger2, safeStringLower, parse8601, yyyymmdd, safeStringUpper, safeTimestamp, binaryConcatArray, uuidv1, numberToLE, ymdhms, stringToBase64, decode, uuid22, safeIntegerProduct2, safeIntegerProduct, safeStringLower2, yymmdd, base58ToBinary, binaryToBase58, safeTimestamp2, rawencode, keysort, sort, inArray, isEmpty, ordered, filterBy, uuid16, safeFloat, base64ToBinary, safeStringUpper2, urlencodeWithArrayRepeat, microseconds, binaryToBase64, strip, toArray, safeFloatN, safeIntegerN, safeIntegerProductN, safeTimestampN, safeValueN, safeStringN, safeStringLowerN, safeStringUpperN, urlencodeNested, urlencodeBase64, parseDate, ymd, base64ToString, crc32, packb, TRUNCATE, ROUND, DECIMAL_PLACES, NO_PADDING, TICK_SIZE, SIGNIFICANT_DIGITS, sleep, } = functions;
31
28
  // ----------------------------------------------------------------------------
32
29
  let protobufMexc = undefined;
33
30
  (async () => {
34
31
  try {
35
32
  protobufMexc = await import('../protobuf/mexc/compiled.cjs');
36
33
  }
37
- catch { }
34
+ catch {
35
+ // TODO: handle error
36
+ }
38
37
  })();
39
- //-----------------------------------------------------------------------------
38
+ // -----------------------------------------------------------------------------
40
39
  /**
41
40
  * @class Exchange
42
41
  */
43
42
  export default class Exchange {
44
43
  constructor(userConfig = {}) {
45
44
  this.isSandboxModeEnabled = false;
46
- this.throttleProp = undefined;
47
- this.sleep = sleep;
48
45
  this.api = undefined;
49
46
  this.certified = false;
50
47
  this.pro = false;
@@ -69,6 +66,7 @@ export default class Exchange {
69
66
  this.minFundingAddressLength = 1; // used in checkAddress
70
67
  this.substituteCommonCurrencyCodes = true; // reserved
71
68
  this.quoteJsonNumbers = true; // treat numbers in json as quoted precise strings
69
+ // eslint-disable-next-line no-unused-vars
72
70
  this.number = Number; // or String (a pointer to a function)
73
71
  this.handleContentTypeApplicationZip = false;
74
72
  // whether fees should be summed by currency code
@@ -134,11 +132,19 @@ export default class Exchange {
134
132
  this.name = undefined;
135
133
  this.targetAccount = undefined;
136
134
  this.stablePairs = {};
135
+ this.httpProxyAgentModule = undefined;
136
+ this.httpsProxyAgentModule = undefined;
137
+ this.socksProxyAgentModule = undefined;
138
+ this.socksProxyAgentModuleChecked = false;
139
+ this.proxyDictionaries = {};
140
+ this.proxiesModulesLoading = undefined;
141
+ this.alias = false;
137
142
  // WS/PRO options
138
143
  this.clients = {};
139
144
  this.newUpdates = true;
140
145
  this.streaming = {};
141
- this.alias = false;
146
+ // INTERNAL METHODS
147
+ this.sleep = sleep;
142
148
  this.deepExtend = deepExtend;
143
149
  this.deepExtendSafe = deepExtend;
144
150
  this.isNode = isNode;
@@ -241,12 +247,6 @@ export default class Exchange {
241
247
  this.crc32 = crc32;
242
248
  this.packb = packb;
243
249
  this.urlencodeBase64 = urlencodeBase64;
244
- this.httpProxyAgentModule = undefined;
245
- this.httpsProxyAgentModule = undefined;
246
- this.socksProxyAgentModule = undefined;
247
- this.socksProxyAgentModuleChecked = false;
248
- this.proxyDictionaries = {};
249
- this.proxiesModulesLoading = undefined;
250
250
  Object.assign(this, functions);
251
251
  //
252
252
  // if (isNode) {
@@ -368,7 +368,14 @@ export default class Exchange {
368
368
  }
369
369
  checkRequiredVersion(requiredVersion, error = true) {
370
370
  let result = true;
371
- const [major1, minor1, patch1] = requiredVersion.split('.'), [major2, minor2, patch2] = Exchange.ccxtVersion.split('.'), intMajor1 = this.parseToInt(major1), intMinor1 = this.parseToInt(minor1), intPatch1 = this.parseToInt(patch1), intMajor2 = this.parseToInt(major2), intMinor2 = this.parseToInt(minor2), intPatch2 = this.parseToInt(patch2);
371
+ const [major1, minor1, patch1] = requiredVersion.split('.');
372
+ const [major2, minor2, patch2] = Exchange.ccxtVersion.split('.');
373
+ const intMajor1 = this.parseToInt(major1);
374
+ const intMinor1 = this.parseToInt(minor1);
375
+ const intPatch1 = this.parseToInt(patch1);
376
+ const intMajor2 = this.parseToInt(major2);
377
+ const intMinor2 = this.parseToInt(minor2);
378
+ const intPatch2 = this.parseToInt(patch2);
372
379
  if (intMajor1 > intMajor2) {
373
380
  result = false;
374
381
  }
@@ -437,7 +444,7 @@ export default class Exchange {
437
444
  this.defineRestApiEndpoint(methodName, uppercaseMethod, lowercaseMethod, camelcaseMethod, path, paths, config);
438
445
  }
439
446
  else if (typeof config === 'number') {
440
- this.defineRestApiEndpoint(methodName, uppercaseMethod, lowercaseMethod, camelcaseMethod, path, paths, { cost: config });
447
+ this.defineRestApiEndpoint(methodName, uppercaseMethod, lowercaseMethod, camelcaseMethod, path, paths, { 'cost': config });
441
448
  }
442
449
  else {
443
450
  throw new NotSupported(this.id + ' defineRestApi() API format is not supported, API leafs must strings, objects or numbers');
@@ -450,6 +457,7 @@ export default class Exchange {
450
457
  }
451
458
  }
452
459
  log(...args) {
460
+ // eslint-disable-next-line no-console
453
461
  console.log(...args);
454
462
  }
455
463
  async loadProxyModules() {
@@ -470,16 +478,20 @@ export default class Exchange {
470
478
  // @ts-ignore
471
479
  this.httpProxyAgentModule = await import(/* webpackIgnore: true */ 'http-proxy-agent');
472
480
  // @ts-ignore
473
- this.httpsProxyAgentModule = await import(/* webpackIgnore: true */ 'https-proxy-agent');
481
+ this.httpsProxyAgentModule = await import(/* webpackIgnore: true */ 'https-proxy-agent'); // eslint-disable-line
482
+ }
483
+ catch (err) {
484
+ // TODO: handle error
474
485
  }
475
- catch (e) { }
476
486
  }
477
487
  if (this.socksProxyAgentModuleChecked === false) {
478
488
  try {
479
489
  // @ts-ignore
480
490
  this.socksProxyAgentModule = await import(/* webpackIgnore: true */ 'socks-proxy-agent');
481
491
  }
482
- catch (e) { }
492
+ catch (e) {
493
+ // TODO: handle error
494
+ }
483
495
  this.socksProxyAgentModuleChecked = true;
484
496
  }
485
497
  })();
@@ -579,7 +591,7 @@ export default class Exchange {
579
591
  if (!this.nodeHttpModuleLoaded) {
580
592
  this.nodeHttpModuleLoaded = true;
581
593
  const httpsModule = await import(/* webpackIgnore: true */ 'node:https');
582
- this.httpsAgent = new httpsModule.Agent({ keepAlive: true });
594
+ this.httpsAgent = new httpsModule.Agent({ 'keepAlive': true });
583
595
  }
584
596
  }
585
597
  // ##### PROXY & HEADERS #####
@@ -623,7 +635,7 @@ export default class Exchange {
623
635
  headers = this.setHeaders(headers);
624
636
  // log
625
637
  if (this.verbose) {
626
- this.log("fetch Request:\n", this.id, method, url, "\nRequestHeaders:\n", headers, "\nRequestBody:\n", body, "\n");
638
+ this.log('fetch Request:\n', this.id, method, url, '\nRequestHeaders:\n', headers, '\nRequestBody:\n', body, '\n');
627
639
  }
628
640
  // end of proxies & headers
629
641
  if (this.fetchImplementation === undefined) {
@@ -632,16 +644,16 @@ export default class Exchange {
632
644
  this.agent = this.httpsAgent;
633
645
  }
634
646
  try {
635
- const module = await import(/* webpackIgnore: true */ '../static_dependencies/node-fetch/index.js');
636
- this.AbortError = module.AbortError;
637
- this.fetchImplementation = module.default;
638
- this.FetchError = module.FetchError;
647
+ const nodeFetchModule = await import(/* webpackIgnore: true */ '../static_dependencies/node-fetch/index.js');
648
+ this.AbortError = nodeFetchModule.AbortError;
649
+ this.fetchImplementation = nodeFetchModule.default;
650
+ this.FetchError = nodeFetchModule.FetchError;
639
651
  }
640
652
  catch (e) {
641
653
  // some users having issues with dynamic imports (https://github.com/ccxt/ccxt/pull/20687)
642
654
  // so let them to fallback to node's native fetch
643
655
  if (typeof fetch === 'function') {
644
- this.fetchImplementation = fetch;
656
+ this.fetchImplementation = fetch; // eslint-disable-line
645
657
  // as it's browser-compatible implementation ( https://nodejs.org/dist/latest-v20.x/docs/api/globals.html#fetch )
646
658
  // it throws same error types
647
659
  this.AbortError = DOMException;
@@ -653,6 +665,7 @@ export default class Exchange {
653
665
  }
654
666
  }
655
667
  else {
668
+ // eslint-disable-next-line
656
669
  this.fetchImplementation = (selfIsDefined()) ? self.fetch : fetch;
657
670
  this.AbortError = DOMException;
658
671
  this.FetchError = TypeError;
@@ -661,7 +674,7 @@ export default class Exchange {
661
674
  // fetchImplementation cannot be called on this. in browsers:
662
675
  // TypeError Failed to execute 'fetch' on 'Window': Illegal invocation
663
676
  const fetchImplementation = this.fetchImplementation;
664
- const params = { method, headers, body, timeout: this.timeout };
677
+ const params = { method, headers, body, 'timeout': this.timeout };
665
678
  if (this.agent) {
666
679
  params['agent'] = this.agent;
667
680
  }
@@ -724,14 +737,14 @@ export default class Exchange {
724
737
  this.last_http_response = responseBuffer;
725
738
  }
726
739
  if (this.verbose) {
727
- this.log("handleRestResponse:\n", this.id, method, url, response.status, response.statusText, "\nResponseHeaders:\n", responseHeaders, "ZIP redacted", "\n");
740
+ this.log('handleRestResponse:\n', this.id, method, url, response.status, response.statusText, '\nResponseHeaders:\n', responseHeaders, 'ZIP redacted', '\n');
728
741
  }
729
742
  // no error handler needed, because it would not be a zip response in case of an error
730
743
  return responseBuffer;
731
744
  }
732
745
  return response.text().then((responseBody) => {
733
746
  const bodyText = this.onRestResponse(response.status, response.statusText, url, method, responseHeaders, responseBody, requestHeaders, requestBody);
734
- const json = this.parseJson(bodyText);
747
+ const parsedBody = this.parseJson(bodyText);
735
748
  if (this.enableLastResponseHeaders) {
736
749
  this.last_response_headers = responseHeaders;
737
750
  }
@@ -739,19 +752,19 @@ export default class Exchange {
739
752
  this.last_http_response = responseBody;
740
753
  }
741
754
  if (this.enableLastJsonResponse) {
742
- this.last_json_response = json;
755
+ this.last_json_response = parsedBody;
743
756
  }
744
757
  if (this.verbose) {
745
- this.log("handleRestResponse:\n", this.id, method, url, response.status, response.statusText, "\nResponseHeaders:\n", responseHeaders, "\nResponseBody:\n", responseBody, "\n");
758
+ this.log('handleRestResponse:\n', this.id, method, url, response.status, response.statusText, '\nResponseHeaders:\n', responseHeaders, '\nResponseBody:\n', responseBody, '\n');
746
759
  }
747
- const skipFurtherErrorHandling = this.handleErrors(response.status, response.statusText, url, method, responseHeaders, responseBody, json, requestHeaders, requestBody);
760
+ const skipFurtherErrorHandling = this.handleErrors(response.status, response.statusText, url, method, responseHeaders, responseBody, parsedBody, requestHeaders, requestBody);
748
761
  if (!skipFurtherErrorHandling) {
749
762
  this.handleHttpStatusCode(response.status, response.statusText, url, method, responseBody);
750
763
  }
751
- if (json && !Array.isArray(json) && this.returnResponseHeaders) {
752
- json['responseHeaders'] = responseHeaders;
764
+ if (parsedBody && !Array.isArray(parsedBody) && this.returnResponseHeaders) {
765
+ parsedBody['responseHeaders'] = responseHeaders;
753
766
  }
754
- return json || responseBody;
767
+ return parsedBody || responseBody;
755
768
  });
756
769
  }
757
770
  onRestResponse(statusCode, statusText, url, method, responseHeaders, responseBody, requestHeaders, requestBody) {
@@ -811,31 +824,38 @@ export default class Exchange {
811
824
  // currencies are returned as a dict
812
825
  // this is for historical reasons
813
826
  // and may be changed for consistency later
814
- return new Promise((resolve, reject) => resolve(this.currencies));
827
+ return new Promise((resolve, reject) => {
828
+ resolve(this.currencies);
829
+ });
815
830
  }
816
831
  async fetchCurrenciesWs(params = {}) {
817
832
  // markets are returned as a list
818
833
  // currencies are returned as a dict
819
834
  // this is for historical reasons
820
835
  // and may be changed for consistency later
821
- return new Promise((resolve, reject) => resolve(this.currencies));
836
+ return new Promise((resolve, reject) => {
837
+ resolve(this.currencies);
838
+ });
822
839
  }
823
840
  async fetchMarkets(params = {}) {
824
841
  // markets are returned as a list
825
842
  // currencies are returned as a dict
826
843
  // this is for historical reasons
827
844
  // and may be changed for consistency later
828
- return new Promise((resolve, reject) => resolve(Object.values(this.markets)));
845
+ return new Promise((resolve, reject) => {
846
+ resolve(Object.values(this.markets));
847
+ });
829
848
  }
830
849
  async fetchMarketsWs(params = {}) {
831
850
  // markets are returned as a list
832
851
  // currencies are returned as a dict
833
852
  // this is for historical reasons
834
853
  // and may be changed for consistency later
835
- return new Promise((resolve, reject) => resolve(Object.values(this.markets)));
854
+ return new Promise((resolve, reject) => {
855
+ resolve(Object.values(this.markets));
856
+ });
836
857
  }
837
858
  checkRequiredDependencies() {
838
- return;
839
859
  }
840
860
  parseNumber(value, d = undefined) {
841
861
  if (value === undefined) {
@@ -852,7 +872,7 @@ export default class Exchange {
852
872
  return this.number(numberToString(parseFloat(numberNormalized)));
853
873
  }
854
874
  const result = this.number(numberNormalized);
855
- return isNaN(result) ? d : result;
875
+ return Number.isNaN(result) ? d : result;
856
876
  }
857
877
  catch (e) {
858
878
  return d;
@@ -934,6 +954,7 @@ export default class Exchange {
934
954
  const chosenAgent = this.setProxyAgents(httpProxy, httpsProxy, socksProxy);
935
955
  // part only for node-js
936
956
  const httpProxyAgent = this.getHttpAgentIfNeeded(url);
957
+ // eslint-disable-next-line no-nested-ternary
937
958
  const finalAgent = chosenAgent ? chosenAgent : (httpProxyAgent ? httpProxyAgent : this.agent);
938
959
  //
939
960
  const options = this.deepExtend(this.streaming, {
@@ -983,10 +1004,10 @@ export default class Exchange {
983
1004
  // | |
984
1005
  // subscribe -----→ receive
985
1006
  //
986
- const future = Future.race(messageHashes.map(messageHash => client.future(messageHash)));
1007
+ const future = Future.race(messageHashes.map((messageHash) => client.future(messageHash)));
987
1008
  // read and write subscription, this is done before connecting the client
988
1009
  // to avoid race conditions when other parts of the code read or write to the client.subscriptions
989
- let missingSubscriptions = [];
1010
+ const missingSubscriptions = [];
990
1011
  if (subscribeHashes !== undefined) {
991
1012
  for (let i = 0; i < subscribeHashes.length; i++) {
992
1013
  const subscribeHash = subscribeHashes[i];
@@ -1236,18 +1257,18 @@ export default class Exchange {
1236
1257
  const privateKey = ethSigToPrivate(signature);
1237
1258
  const publicKey = getStarkKey(privateKey);
1238
1259
  const callData = Starknet.CallData.compile({
1239
- implementation: accountClassHash,
1240
- selector: Starknet.hash.getSelectorFromName('initialize'),
1241
- calldata: Starknet.CallData.compile({
1242
- signer: publicKey,
1243
- guardian: '0',
1260
+ 'implementation': accountClassHash,
1261
+ 'selector': Starknet.hash.getSelectorFromName('initialize'),
1262
+ 'calldata': Starknet.CallData.compile({
1263
+ 'signer': publicKey,
1264
+ 'guardian': '0',
1244
1265
  }),
1245
1266
  });
1246
1267
  const address = Starknet.hash.calculateContractAddressFromHash(publicKey, accountProxyClassHash, callData, 0);
1247
1268
  return {
1248
1269
  privateKey,
1249
1270
  publicKey,
1250
- address
1271
+ address,
1251
1272
  };
1252
1273
  }
1253
1274
  starknetEncodeStructuredData(domain, messageTypes, messageData, address) {
@@ -1260,9 +1281,9 @@ export default class Exchange {
1260
1281
  'primaryType': types[0],
1261
1282
  'types': this.extend({
1262
1283
  'StarkNetDomain': [
1263
- { 'name': "name", 'type': "felt" },
1264
- { 'name': "chainId", 'type': "felt" },
1265
- { 'name': "version", 'type': "felt" },
1284
+ { 'name': 'name', 'type': 'felt' },
1285
+ { 'name': 'chainId', 'type': 'felt' },
1286
+ { 'name': 'version', 'type': 'felt' },
1266
1287
  ],
1267
1288
  }, messageTypes),
1268
1289
  'message': messageData,
@@ -1270,9 +1291,9 @@ export default class Exchange {
1270
1291
  const msgHash = Starknet.typedData.getMessageHash(request, address);
1271
1292
  return msgHash;
1272
1293
  }
1273
- starknetSign(hash, pri) {
1294
+ starknetSign(msgHash, pri) {
1274
1295
  // TODO: unify to ecdsa
1275
- const signature = starknetCurveSign(hash.replace('0x', ''), pri.slice(-64));
1296
+ const signature = starknetCurveSign(msgHash.replace('0x', ''), pri.slice(-64));
1276
1297
  return this.json([signature.r.toString(), signature.s.toString()]);
1277
1298
  }
1278
1299
  async getZKContractSignatureObj(seed, params = {}) {
@@ -1286,10 +1307,10 @@ export default class Exchange {
1286
1307
  await init();
1287
1308
  const _signer = zklink.newRpcSignerWithProvider({});
1288
1309
  await _signer.initZklinkSigner(seed);
1289
- let tx_builder = new zklink.ContractBuilder(accountId, 0, slotId, nonce, this.safeInteger(params, 'pairId'), Precise.stringMul(this.safeString(params, 'size'), '1e18'), Precise.stringMul(this.safeString(params, 'price'), '1e18'), this.safeString(params, 'direction') === 'BUY', parseInt(Precise.stringMul(this.safeString(params, 'makerFeeRate'), '10000')), parseInt(Precise.stringMul(this.safeString(params, 'takerFeeRate'), '10000')), false);
1290
- let contractor = zklink.newContract(tx_builder);
1291
- //const signer = ZkLinkSigner.ethSig(seed);
1292
- //const signer = new Signer(seed);
1310
+ const tx_builder = new zklink.ContractBuilder(accountId, 0, slotId, nonce, this.safeInteger(params, 'pairId'), Precise.stringMul(this.safeString(params, 'size'), '1e18'), Precise.stringMul(this.safeString(params, 'price'), '1e18'), this.safeString(params, 'direction') === 'BUY', parseInt(Precise.stringMul(this.safeString(params, 'makerFeeRate'), '10000')), parseInt(Precise.stringMul(this.safeString(params, 'takerFeeRate'), '10000')), false);
1311
+ const contractor = zklink.newContract(tx_builder);
1312
+ // const signer = ZkLinkSigner.ethSig(seed);
1313
+ // const signer = new Signer(seed);
1293
1314
  contractor?.sign(_signer?.getZkLinkSigner());
1294
1315
  const tx = contractor.jsValue();
1295
1316
  const zkSign = tx?.signature?.signature;
@@ -1305,10 +1326,10 @@ export default class Exchange {
1305
1326
  const formattedNonce = BigInt('0x' + this.remove0xPrefix(this.hash(this.encode(nonce), sha256, 'hex'))).toString();
1306
1327
  nonce = Precise.stringMod(formattedNonce, formattedUint32);
1307
1328
  }
1308
- let tx_builder = new zklink.TransferBuilder(this.safeNumber(params, 'zkAccountId', 0), this.safeString(params, 'receiverAddress'), this.safeNumber(params, 'subAccountId', 0), this.safeNumber(params, 'receiverSubAccountId', 0), this.safeNumber(params, 'tokenId', 0), this.safeString(params, 'fee', '0'), this.safeString(params, 'amount', '0'), this.parseToInt(nonce), this.safeNumber(params, 'timestampSeconds', 0));
1309
- let contractor = zklink.newTransfer(tx_builder);
1310
- //const signer = ZkLinkSigner.ethSig(seed);
1311
- //const signer = new Signer(seed);
1329
+ const tx_builder = new zklink.TransferBuilder(this.safeNumber(params, 'zkAccountId', 0), this.safeString(params, 'receiverAddress'), this.safeNumber(params, 'subAccountId', 0), this.safeNumber(params, 'receiverSubAccountId', 0), this.safeNumber(params, 'tokenId', 0), this.safeString(params, 'fee', '0'), this.safeString(params, 'amount', '0'), this.parseToInt(nonce), this.safeNumber(params, 'timestampSeconds', 0));
1330
+ const contractor = zklink.newTransfer(tx_builder);
1331
+ // const signer = ZkLinkSigner.ethSig(seed);
1332
+ // const signer = new Signer(seed);
1312
1333
  contractor?.sign(_signer?.getZkLinkSigner());
1313
1334
  const tx = contractor.jsValue();
1314
1335
  const zkSign = tx?.signature?.signature;
@@ -1382,7 +1403,7 @@ export default class Exchange {
1382
1403
  // ########################################################################
1383
1404
  // ########################################################################
1384
1405
  // ------------------------------------------------------------------------
1385
- // METHODS BELOW THIS LINE ARE TRANSPILED FROM JAVASCRIPT TO PYTHON AND PHP
1406
+ // METHODS BELOW THIS LINE ARE TRANSPILED FROM TYPESCRIPT
1386
1407
  describe() {
1387
1408
  return {
1388
1409
  'id': undefined,
@@ -2130,6 +2151,27 @@ export default class Exchange {
2130
2151
  this.isSandboxModeEnabled = false;
2131
2152
  }
2132
2153
  }
2154
+ /**
2155
+ * @method
2156
+ * @name Exchange#enableDemoTrading
2157
+ * @description enables or disables demo trading mode
2158
+ * @param {boolean} [enable] true if demo trading should be enabled, false otherwise
2159
+ */
2160
+ enableDemoTrading(enable) {
2161
+ if (this.isSandboxModeEnabled) {
2162
+ throw new NotSupported(this.id + ' demo trading does not support in sandbox environment. Please check https://www.binance.com/en/support/faq/detail/9be58f73e5e14338809e3b705b9687dd to see the differences');
2163
+ }
2164
+ if (enable) {
2165
+ this.urls['apiBackupDemoTrading'] = this.urls['api'];
2166
+ this.urls['api'] = this.urls['demo'];
2167
+ }
2168
+ else if ('apiBackupDemoTrading' in this.urls) {
2169
+ this.urls['api'] = this.urls['apiBackupDemoTrading'];
2170
+ const newUrls = this.omit(this.urls, 'apiBackupDemoTrading');
2171
+ this.urls = newUrls;
2172
+ }
2173
+ this.options['enableDemoTrading'] = enable;
2174
+ }
2133
2175
  sign(path, api = 'public', method = 'GET', params = {}, headers = undefined, body = undefined) {
2134
2176
  return {};
2135
2177
  }
@@ -2584,6 +2626,97 @@ export default class Exchange {
2584
2626
  }
2585
2627
  return featuresObj;
2586
2628
  }
2629
+ featureValue(symbol, methodName = undefined, paramName = undefined, subParamName = undefined, defaultValue = undefined) {
2630
+ /**
2631
+ * @method
2632
+ * @name exchange#featureValue
2633
+ * @description this method is a very deterministic to help users to know what feature is supported by the exchange
2634
+ * @param {string} [symbol] unified symbol
2635
+ * @param {string} [methodName] view currently supported methods: https://docs.ccxt.com/#/README?id=features
2636
+ * @param {string} [paramName] unified param value (check docs for supported param names)
2637
+ * @param {string} [subParamName] unified sub-param value (eg. stopLoss->triggerPriceType)
2638
+ * @param {object} [defaultValue] return default value if no result found
2639
+ * @returns {object} returns feature value
2640
+ */
2641
+ const market = this.market(symbol);
2642
+ return this.featureValueByType(market['type'], market['subType'], methodName, paramName, subParamName, defaultValue);
2643
+ }
2644
+ featureValueByType(marketType, subType, methodName = undefined, paramName = undefined, subParamName = undefined, defaultValue = undefined) {
2645
+ /**
2646
+ * @method
2647
+ * @name exchange#featureValueByType
2648
+ * @description this method is a very deterministic to help users to know what feature is supported by the exchange
2649
+ * @param {string} [marketType] supported only: "spot", "swap", "future"
2650
+ * @param {string} [subType] supported only: "linear", "inverse"
2651
+ * @param {string} [methodName] view currently supported methods: https://docs.ccxt.com/#/README?id=features
2652
+ * @param {string} [paramName] unified param value (check docs for supported param names)
2653
+ * @param {string} [subParamName] unified sub-param value (eg. stopLoss->triggerPriceType)
2654
+ * @param {object} [defaultValue] return default value if no result found
2655
+ * @returns {object} returns feature value
2656
+ */
2657
+ // if exchange does not yet have features manually implemented
2658
+ if (this.features === undefined) {
2659
+ return defaultValue;
2660
+ }
2661
+ // if marketType (e.g. 'option') does not exist in features
2662
+ if (!(marketType in this.features)) {
2663
+ return defaultValue; // unsupported marketType, check "exchange.features" for details
2664
+ }
2665
+ // if marketType dict undefined
2666
+ if (this.features[marketType] === undefined) {
2667
+ return defaultValue;
2668
+ }
2669
+ let methodsContainer = this.features[marketType];
2670
+ if (subType === undefined) {
2671
+ if (marketType !== 'spot') {
2672
+ return defaultValue; // subType is required for non-spot markets
2673
+ }
2674
+ }
2675
+ else {
2676
+ if (!(subType in this.features[marketType])) {
2677
+ return defaultValue; // unsupported subType, check "exchange.features" for details
2678
+ }
2679
+ // if subType dict undefined
2680
+ if (this.features[marketType][subType] === undefined) {
2681
+ return defaultValue;
2682
+ }
2683
+ methodsContainer = this.features[marketType][subType];
2684
+ }
2685
+ // if user wanted only marketType and didn't provide methodName, eg: featureIsSupported('spot')
2686
+ if (methodName === undefined) {
2687
+ return methodsContainer;
2688
+ }
2689
+ if (!(methodName in methodsContainer)) {
2690
+ return defaultValue; // unsupported method, check "exchange.features" for details');
2691
+ }
2692
+ const methodDict = methodsContainer[methodName];
2693
+ if (methodDict === undefined) {
2694
+ return defaultValue;
2695
+ }
2696
+ // if user wanted only method and didn't provide `paramName`, eg: featureIsSupported('swap', 'linear', 'createOrder')
2697
+ if (paramName === undefined) {
2698
+ return methodDict;
2699
+ }
2700
+ if (!(paramName in methodDict)) {
2701
+ return defaultValue; // unsupported paramName, check "exchange.features" for details');
2702
+ }
2703
+ const dictionary = this.safeDict(methodDict, paramName);
2704
+ if (dictionary === undefined) {
2705
+ // if the value is not dictionary but a scalar value (or undefined), return as is
2706
+ return methodDict[paramName];
2707
+ }
2708
+ else {
2709
+ // return as is, when calling without `subParamName` eg: featureValueByType('spot', undefined, 'createOrder', 'stopLoss')
2710
+ if (subParamName === undefined) {
2711
+ return methodDict[paramName];
2712
+ }
2713
+ // throw an exception for unsupported subParamName
2714
+ if (!(subParamName in methodDict[paramName])) {
2715
+ return defaultValue; // unsupported subParamName, check "exchange.features" for details
2716
+ }
2717
+ return methodDict[paramName][subParamName];
2718
+ }
2719
+ }
2587
2720
  orderbookChecksumMessage(symbol) {
2588
2721
  return symbol + ' : ' + 'orderbook data checksum validation failed. You can reconnect by calling watchOrderBook again or you can mute the error by setting exchange.options["watchOrderBook"]["checksum"] = false';
2589
2722
  }
@@ -2888,7 +3021,12 @@ export default class Exchange {
2888
3021
  const marketsSortedById = this.keysort(this.markets_by_id);
2889
3022
  this.symbols = Object.keys(marketsSortedBySymbol);
2890
3023
  this.ids = Object.keys(marketsSortedById);
3024
+ let numCurrencies = 0;
2891
3025
  if (currencies !== undefined) {
3026
+ const keys = Object.keys(currencies);
3027
+ numCurrencies = keys.length;
3028
+ }
3029
+ if (numCurrencies > 0) {
2892
3030
  // currencies is always undefined when called in constructor but not when called from loadMarkets
2893
3031
  this.currencies = this.mapToSafeMap(this.deepExtend(this.currencies, currencies));
2894
3032
  }
@@ -2967,6 +3105,14 @@ export default class Exchange {
2967
3105
  this.baseCurrencies = sourceExchange.baseCurrencies;
2968
3106
  this.quoteCurrencies = sourceExchange.quoteCurrencies;
2969
3107
  this.codes = sourceExchange.codes;
3108
+ // check marketHelperProps
3109
+ const sourceExchangeHelpers = this.safeList(sourceExchange.options, 'marketHelperProps', []);
3110
+ for (let i = 0; i < sourceExchangeHelpers.length; i++) {
3111
+ const helper = sourceExchangeHelpers[i];
3112
+ if (sourceExchange.options[helper] !== undefined) {
3113
+ this.options[helper] = sourceExchange.options[helper];
3114
+ }
3115
+ }
2970
3116
  return this;
2971
3117
  }
2972
3118
  getDescribeForExtendedWsExchange(currentRestInstance, parentRestInstance, wsBaseDescribe) {
@@ -5708,7 +5854,9 @@ export default class Exchange {
5708
5854
  return this.safeString(this.commonCurrencies, code, code);
5709
5855
  }
5710
5856
  currency(code) {
5711
- if (this.currencies === undefined) {
5857
+ const keys = Object.keys(this.currencies);
5858
+ const numCurrencies = keys.length;
5859
+ if (numCurrencies === 0) {
5712
5860
  throw new ExchangeError(this.id + ' currencies not loaded');
5713
5861
  }
5714
5862
  if (typeof code === 'string') {
@@ -7056,6 +7204,17 @@ export default class Exchange {
7056
7204
  const values = Object.values(uniqueResult);
7057
7205
  return values;
7058
7206
  }
7207
+ removeKeysFromDict(dict, removeKeys) {
7208
+ const keys = Object.keys(dict);
7209
+ const newDict = {};
7210
+ for (let i = 0; i < keys.length; i++) {
7211
+ const key = keys[i];
7212
+ if (!this.inArray(key, removeKeys)) {
7213
+ newDict[key] = dict[key];
7214
+ }
7215
+ }
7216
+ return newDict;
7217
+ }
7059
7218
  handleUntilOption(key, request, params, multiplier = 1) {
7060
7219
  const until = this.safeInteger2(params, 'until', 'till');
7061
7220
  if (until !== undefined) {
@@ -1,9 +1,3 @@
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
-
7
1
  const zero = BigInt(0);
8
2
  const minusOne = BigInt(-1);
9
3
  const base = BigInt(10);
@@ -1,9 +1,3 @@
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
-
7
1
  const errorHierarchy = {
8
2
  'BaseError': {
9
3
  'ExchangeError': {
@@ -1,9 +1,3 @@
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
-
7
1
  /* eslint-disable max-classes-per-file */
8
2
  class BaseError extends Error {
9
3
  constructor(message) {
@@ -1,9 +1,3 @@
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
-
7
1
  /* ------------------------------------------------------------------------ */
8
2
  import { hmac as _hmac } from '../../static_dependencies/noble-hashes/hmac.js';
9
3
  import { base16, base64, base58 } from '../../static_dependencies/scure-base/index.js';
@@ -1,9 +1,3 @@
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
-
7
1
  /* eslint-disable */
8
2
  /* ------------------------------------------------------------------------ */
9
3
  import { base16, base58, base64, utf8 } from "../../static_dependencies/scure-base/index.js";