ccxt 4.5.60 → 4.5.62

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 (521) hide show
  1. package/README.md +56 -54
  2. package/dist/ccxt.browser.min.js +4 -4
  3. package/dist/cjs/ccxt.js +6 -2
  4. package/dist/cjs/src/aftermath.js +1 -1
  5. package/dist/cjs/src/apex.js +2 -2
  6. package/dist/cjs/src/ascendex.js +1 -1
  7. package/dist/cjs/src/aster.js +3 -4
  8. package/dist/cjs/src/backpack.js +1 -1
  9. package/dist/cjs/src/base/Exchange.js +6 -38
  10. package/dist/cjs/src/base/functions/crypto.js +72 -15
  11. package/dist/cjs/src/base/functions/rsa.js +25 -10
  12. package/dist/cjs/src/base/functions.js +1 -0
  13. package/dist/cjs/src/bequant.js +1 -1
  14. package/dist/cjs/src/bigone.js +1 -1
  15. package/dist/cjs/src/binance.js +1 -1
  16. package/dist/cjs/src/bingx.js +4 -4
  17. package/dist/cjs/src/bit2c.js +1 -1
  18. package/dist/cjs/src/bitbank.js +1 -1
  19. package/dist/cjs/src/bitbns.js +1 -1
  20. package/dist/cjs/src/bitfinex.js +5 -5
  21. package/dist/cjs/src/bitflyer.js +1 -1
  22. package/dist/cjs/src/bitget.js +2 -2
  23. package/dist/cjs/src/bithumb.js +1 -1
  24. package/dist/cjs/src/bitmart.js +2 -2
  25. package/dist/cjs/src/bitmex.js +3 -3
  26. package/dist/cjs/src/bitopro.js +1 -1
  27. package/dist/cjs/src/bitrue.js +1 -1
  28. package/dist/cjs/src/bitso.js +2 -2
  29. package/dist/cjs/src/bitstamp.js +1 -1
  30. package/dist/cjs/src/bittrade.js +2 -2
  31. package/dist/cjs/src/bitvavo.js +2 -2
  32. package/dist/cjs/src/blockchaincom.js +1 -1
  33. package/dist/cjs/src/blofin.js +3 -4
  34. package/dist/cjs/src/btcbox.js +1 -1
  35. package/dist/cjs/src/btcmarkets.js +1 -1
  36. package/dist/cjs/src/btcturk.js +2 -2
  37. package/dist/cjs/src/bullish.js +1 -1
  38. package/dist/cjs/src/bybit.js +1 -1
  39. package/dist/cjs/src/bydfi.js +1 -1
  40. package/dist/cjs/src/cex.js +2 -2
  41. package/dist/cjs/src/coinbase.js +1 -1
  42. package/dist/cjs/src/coinbaseexchange.js +2 -2
  43. package/dist/cjs/src/coincheck.js +2 -2
  44. package/dist/cjs/src/coinex.js +1 -1
  45. package/dist/cjs/src/coinmate.js +1 -1
  46. package/dist/cjs/src/coinmetro.js +1 -1
  47. package/dist/cjs/src/coinone.js +1 -1
  48. package/dist/cjs/src/coinsph.js +1 -1
  49. package/dist/cjs/src/coinspot.js +1 -1
  50. package/dist/cjs/src/cryptocom.js +1 -1
  51. package/dist/cjs/src/cryptomus.js +2 -2
  52. package/dist/cjs/src/deepcoin.js +1 -1
  53. package/dist/cjs/src/delta.js +1 -1
  54. package/dist/cjs/src/deribit.js +1 -1
  55. package/dist/cjs/src/derive.js +2 -3
  56. package/dist/cjs/src/digifinex.js +1 -1
  57. package/dist/cjs/src/dydx.js +2 -2
  58. package/dist/cjs/src/exmo.js +1 -1
  59. package/dist/cjs/src/extended.js +5 -5
  60. package/dist/cjs/src/foxbit.js +1 -1
  61. package/dist/cjs/src/gate.js +3 -3
  62. package/dist/cjs/src/gateeu.js +60 -0
  63. package/dist/cjs/src/gemini.js +1 -1
  64. package/dist/cjs/src/grvt.js +1 -1
  65. package/dist/cjs/src/hashkey.js +2 -2
  66. package/dist/cjs/src/hibachi.js +1 -1
  67. package/dist/cjs/src/hitbtc.js +1 -1
  68. package/dist/cjs/src/hollaex.js +1 -1
  69. package/dist/cjs/src/htx.js +1 -1
  70. package/dist/cjs/src/hyperliquid.js +1 -1
  71. package/dist/cjs/src/independentreserve.js +1 -1
  72. package/dist/cjs/src/indodax.js +1 -1
  73. package/dist/cjs/src/kraken.js +1 -1
  74. package/dist/cjs/src/kucoin.js +1 -1
  75. package/dist/cjs/src/latoken.js +1 -1
  76. package/dist/cjs/src/lbank.js +1 -1
  77. package/dist/cjs/src/lighter.js +1 -1
  78. package/dist/cjs/src/luno.js +2 -2
  79. package/dist/cjs/src/mercado.js +1 -1
  80. package/dist/cjs/src/mexc.js +1 -1
  81. package/dist/cjs/src/modetrade.js +3 -5
  82. package/dist/cjs/src/ndax.js +1 -1
  83. package/dist/cjs/src/novadax.js +1 -1
  84. package/dist/cjs/src/okx.js +1 -1
  85. package/dist/cjs/src/onetrading.js +2 -2
  86. package/dist/cjs/src/p2b.js +2 -3
  87. package/dist/cjs/src/pacifica.js +2 -2
  88. package/dist/cjs/src/paradex.js +1 -1
  89. package/dist/cjs/src/paymium.js +1 -1
  90. package/dist/cjs/src/phemex.js +1 -1
  91. package/dist/cjs/src/poloniex.js +1 -1
  92. package/dist/cjs/src/pro/aftermath.js +1 -1
  93. package/dist/cjs/src/pro/alpaca.js +1 -1
  94. package/dist/cjs/src/pro/apex.js +2 -2
  95. package/dist/cjs/src/pro/ascendex.js +1 -1
  96. package/dist/cjs/src/pro/aster.js +4 -4
  97. package/dist/cjs/src/pro/backpack.js +4 -4
  98. package/dist/cjs/src/pro/binance.js +5 -5
  99. package/dist/cjs/src/pro/bingx.js +2 -2
  100. package/dist/cjs/src/pro/bitfinex.js +1 -1
  101. package/dist/cjs/src/pro/bitget.js +4 -4
  102. package/dist/cjs/src/pro/bitmart.js +4 -4
  103. package/dist/cjs/src/pro/bitmex.js +2 -2
  104. package/dist/cjs/src/pro/bitopro.js +1 -1
  105. package/dist/cjs/src/pro/bitstamp.js +1 -1
  106. package/dist/cjs/src/pro/bittrade.js +1 -1
  107. package/dist/cjs/src/pro/bitvavo.js +1 -1
  108. package/dist/cjs/src/pro/blockchaincom.js +1 -1
  109. package/dist/cjs/src/pro/blofin.js +2 -2
  110. package/dist/cjs/src/pro/bullish.js +1 -1
  111. package/dist/cjs/src/pro/bybit.js +4 -4
  112. package/dist/cjs/src/pro/bydfi.js +4 -4
  113. package/dist/cjs/src/pro/cex.js +1 -1
  114. package/dist/cjs/src/pro/coinbase.js +3 -3
  115. package/dist/cjs/src/pro/coinbaseexchange.js +2 -2
  116. package/dist/cjs/src/pro/coinbaseinternational.js +2 -2
  117. package/dist/cjs/src/pro/coincheck.js +1 -1
  118. package/dist/cjs/src/pro/coinex.js +2 -2
  119. package/dist/cjs/src/pro/coinone.js +1 -1
  120. package/dist/cjs/src/pro/cryptocom.js +4 -4
  121. package/dist/cjs/src/pro/deepcoin.js +2 -2
  122. package/dist/cjs/src/pro/deribit.js +2 -2
  123. package/dist/cjs/src/pro/derive.js +2 -2
  124. package/dist/cjs/src/pro/dydx.js +2 -2
  125. package/dist/cjs/src/pro/exmo.js +1 -1
  126. package/dist/cjs/src/pro/extended.js +1 -1
  127. package/dist/cjs/src/pro/gate.js +46 -15
  128. package/dist/cjs/src/pro/gateeu.js +32 -0
  129. package/dist/cjs/src/pro/gemini.js +2 -3
  130. package/dist/cjs/src/pro/grvt.js +2 -2
  131. package/dist/cjs/src/pro/hashkey.js +1 -1
  132. package/dist/cjs/src/pro/hitbtc.js +1 -1
  133. package/dist/cjs/src/pro/hollaex.js +1 -1
  134. package/dist/cjs/src/pro/htx.js +440 -102
  135. package/dist/cjs/src/pro/hyperliquid.js +2 -2
  136. package/dist/cjs/src/pro/independentreserve.js +1 -1
  137. package/dist/cjs/src/pro/kraken.js +2 -2
  138. package/dist/cjs/src/pro/krakenfutures.js +2 -2
  139. package/dist/cjs/src/pro/kucoin.js +4 -4
  140. package/dist/cjs/src/pro/lighter.js +2 -2
  141. package/dist/cjs/src/pro/luno.js +1 -1
  142. package/dist/cjs/src/pro/mexc.js +2 -2
  143. package/dist/cjs/src/pro/modetrade.js +1 -1
  144. package/dist/cjs/src/pro/ndax.js +1 -1
  145. package/dist/cjs/src/pro/okx.js +4 -4
  146. package/dist/cjs/src/pro/onetrading.js +1 -1
  147. package/dist/cjs/src/pro/p2b.js +1 -1
  148. package/dist/cjs/src/pro/pacifica.js +2 -2
  149. package/dist/cjs/src/pro/paradex.js +1 -1
  150. package/dist/cjs/src/pro/phemex.js +1 -1
  151. package/dist/cjs/src/pro/poloniex.js +1 -1
  152. package/dist/cjs/src/pro/toobit.js +2 -2
  153. package/dist/cjs/src/pro/upbit.js +1 -1
  154. package/dist/cjs/src/pro/weex.js +4 -4
  155. package/dist/cjs/src/pro/whitebit.js +1 -1
  156. package/dist/cjs/src/pro/woo.js +2 -2
  157. package/dist/cjs/src/pro/woofipro.js +1 -1
  158. package/dist/cjs/src/tokocrypto.js +1 -1
  159. package/dist/cjs/src/toobit.js +2 -2
  160. package/dist/cjs/src/upbit.js +1 -1
  161. package/dist/cjs/src/weex.js +2 -2
  162. package/dist/cjs/src/whitebit.js +1 -1
  163. package/dist/cjs/src/woo.js +1 -1
  164. package/dist/cjs/src/woofipro.js +2 -4
  165. package/dist/cjs/src/xt.js +1 -1
  166. package/dist/cjs/src/zaif.js +2 -2
  167. package/dist/cjs/src/zebpay.js +2 -2
  168. package/js/ccxt.d.ts +8 -2
  169. package/js/ccxt.js +6 -3
  170. package/js/src/abstract/gateeu.d.ts +346 -0
  171. package/js/src/{static_dependencies/jsencrypt/index.js → abstract/gateeu.js} +5 -3
  172. package/js/src/aftermath.d.ts +1 -1
  173. package/js/src/aftermath.js +1 -1
  174. package/js/src/apex.d.ts +1 -1
  175. package/js/src/apex.js +2 -2
  176. package/js/src/ascendex.d.ts +1 -1
  177. package/js/src/ascendex.js +1 -1
  178. package/js/src/aster.d.ts +1 -1
  179. package/js/src/aster.js +3 -4
  180. package/js/src/backpack.js +1 -1
  181. package/js/src/base/Exchange.d.ts +1 -1
  182. package/js/src/base/Exchange.js +6 -38
  183. package/js/src/base/functions/crypto.d.ts +2 -1
  184. package/js/src/base/functions/crypto.js +72 -16
  185. package/js/src/base/functions/rsa.js +18 -7
  186. package/js/src/bequant.js +1 -1
  187. package/js/src/bigone.d.ts +1 -1
  188. package/js/src/bigone.js +1 -1
  189. package/js/src/binance.d.ts +1 -1
  190. package/js/src/binance.js +1 -1
  191. package/js/src/bingx.d.ts +1 -1
  192. package/js/src/bingx.js +4 -4
  193. package/js/src/bit2c.d.ts +1 -1
  194. package/js/src/bit2c.js +1 -1
  195. package/js/src/bitbank.d.ts +1 -1
  196. package/js/src/bitbank.js +1 -1
  197. package/js/src/bitbns.d.ts +1 -1
  198. package/js/src/bitbns.js +1 -1
  199. package/js/src/bitfinex.d.ts +1 -1
  200. package/js/src/bitfinex.js +5 -5
  201. package/js/src/bitflyer.d.ts +1 -1
  202. package/js/src/bitflyer.js +1 -1
  203. package/js/src/bitget.d.ts +1 -1
  204. package/js/src/bitget.js +2 -2
  205. package/js/src/bithumb.d.ts +1 -1
  206. package/js/src/bithumb.js +1 -1
  207. package/js/src/bitmart.d.ts +1 -1
  208. package/js/src/bitmart.js +2 -2
  209. package/js/src/bitmex.d.ts +1 -1
  210. package/js/src/bitmex.js +3 -3
  211. package/js/src/bitopro.d.ts +1 -1
  212. package/js/src/bitopro.js +1 -1
  213. package/js/src/bitrue.d.ts +1 -1
  214. package/js/src/bitrue.js +1 -1
  215. package/js/src/bitso.d.ts +1 -1
  216. package/js/src/bitso.js +2 -2
  217. package/js/src/bitstamp.d.ts +1 -1
  218. package/js/src/bitstamp.js +1 -1
  219. package/js/src/bittrade.d.ts +1 -1
  220. package/js/src/bittrade.js +2 -2
  221. package/js/src/bitvavo.d.ts +1 -1
  222. package/js/src/bitvavo.js +2 -2
  223. package/js/src/blockchaincom.d.ts +1 -1
  224. package/js/src/blockchaincom.js +1 -1
  225. package/js/src/blofin.d.ts +1 -1
  226. package/js/src/blofin.js +3 -4
  227. package/js/src/btcbox.d.ts +1 -1
  228. package/js/src/btcbox.js +1 -1
  229. package/js/src/btcmarkets.d.ts +1 -1
  230. package/js/src/btcmarkets.js +1 -1
  231. package/js/src/btcturk.d.ts +1 -1
  232. package/js/src/btcturk.js +2 -2
  233. package/js/src/bullish.d.ts +1 -1
  234. package/js/src/bullish.js +1 -1
  235. package/js/src/bybit.d.ts +1 -1
  236. package/js/src/bybit.js +1 -1
  237. package/js/src/bydfi.js +1 -1
  238. package/js/src/cex.d.ts +1 -1
  239. package/js/src/cex.js +2 -2
  240. package/js/src/coinbase.d.ts +1 -1
  241. package/js/src/coinbase.js +1 -1
  242. package/js/src/coinbaseexchange.d.ts +1 -1
  243. package/js/src/coinbaseexchange.js +2 -2
  244. package/js/src/coincheck.d.ts +1 -1
  245. package/js/src/coincheck.js +2 -2
  246. package/js/src/coinex.d.ts +1 -1
  247. package/js/src/coinex.js +1 -1
  248. package/js/src/coinmate.d.ts +1 -1
  249. package/js/src/coinmate.js +1 -1
  250. package/js/src/coinmetro.d.ts +1 -1
  251. package/js/src/coinmetro.js +1 -1
  252. package/js/src/coinone.d.ts +1 -1
  253. package/js/src/coinone.js +1 -1
  254. package/js/src/coinsph.d.ts +1 -1
  255. package/js/src/coinsph.js +1 -1
  256. package/js/src/coinspot.d.ts +1 -1
  257. package/js/src/coinspot.js +1 -1
  258. package/js/src/cryptocom.d.ts +1 -1
  259. package/js/src/cryptocom.js +1 -1
  260. package/js/src/cryptomus.d.ts +1 -1
  261. package/js/src/cryptomus.js +2 -2
  262. package/js/src/deepcoin.d.ts +1 -1
  263. package/js/src/deepcoin.js +1 -1
  264. package/js/src/delta.d.ts +1 -1
  265. package/js/src/delta.js +1 -1
  266. package/js/src/deribit.d.ts +1 -1
  267. package/js/src/deribit.js +1 -1
  268. package/js/src/derive.js +2 -3
  269. package/js/src/digifinex.d.ts +1 -1
  270. package/js/src/digifinex.js +1 -1
  271. package/js/src/dydx.d.ts +1 -1
  272. package/js/src/dydx.js +2 -2
  273. package/js/src/exmo.d.ts +1 -1
  274. package/js/src/exmo.js +1 -1
  275. package/js/src/extended.d.ts +1 -1
  276. package/js/src/extended.js +5 -5
  277. package/js/src/foxbit.d.ts +1 -1
  278. package/js/src/foxbit.js +1 -1
  279. package/js/src/gate.d.ts +1 -1
  280. package/js/src/gate.js +3 -3
  281. package/js/src/gateeu.d.ts +4 -0
  282. package/js/src/gateeu.js +59 -0
  283. package/js/src/gemini.d.ts +1 -1
  284. package/js/src/gemini.js +1 -1
  285. package/js/src/grvt.js +1 -1
  286. package/js/src/hashkey.d.ts +1 -1
  287. package/js/src/hashkey.js +2 -2
  288. package/js/src/hibachi.js +1 -1
  289. package/js/src/hitbtc.d.ts +1 -1
  290. package/js/src/hitbtc.js +1 -1
  291. package/js/src/hollaex.d.ts +1 -1
  292. package/js/src/hollaex.js +1 -1
  293. package/js/src/htx.d.ts +1 -1
  294. package/js/src/htx.js +1 -1
  295. package/js/src/hyperliquid.d.ts +1 -1
  296. package/js/src/hyperliquid.js +1 -1
  297. package/js/src/independentreserve.d.ts +1 -1
  298. package/js/src/independentreserve.js +1 -1
  299. package/js/src/indodax.d.ts +1 -1
  300. package/js/src/indodax.js +1 -1
  301. package/js/src/kraken.d.ts +1 -1
  302. package/js/src/kraken.js +1 -1
  303. package/js/src/kucoin.d.ts +1 -1
  304. package/js/src/kucoin.js +1 -1
  305. package/js/src/latoken.d.ts +1 -1
  306. package/js/src/latoken.js +1 -1
  307. package/js/src/lbank.d.ts +1 -1
  308. package/js/src/lbank.js +1 -1
  309. package/js/src/lighter.d.ts +1 -1
  310. package/js/src/lighter.js +1 -1
  311. package/js/src/luno.d.ts +1 -1
  312. package/js/src/luno.js +2 -2
  313. package/js/src/mercado.d.ts +1 -1
  314. package/js/src/mercado.js +1 -1
  315. package/js/src/mexc.d.ts +1 -1
  316. package/js/src/mexc.js +1 -1
  317. package/js/src/modetrade.d.ts +1 -1
  318. package/js/src/modetrade.js +3 -5
  319. package/js/src/ndax.d.ts +1 -1
  320. package/js/src/ndax.js +1 -1
  321. package/js/src/novadax.d.ts +1 -1
  322. package/js/src/novadax.js +1 -1
  323. package/js/src/okx.d.ts +1 -1
  324. package/js/src/okx.js +1 -1
  325. package/js/src/onetrading.d.ts +1 -1
  326. package/js/src/onetrading.js +2 -2
  327. package/js/src/p2b.d.ts +1 -1
  328. package/js/src/p2b.js +2 -3
  329. package/js/src/pacifica.d.ts +1 -1
  330. package/js/src/pacifica.js +2 -2
  331. package/js/src/paradex.d.ts +1 -1
  332. package/js/src/paradex.js +1 -1
  333. package/js/src/paymium.d.ts +1 -1
  334. package/js/src/paymium.js +1 -1
  335. package/js/src/phemex.d.ts +1 -1
  336. package/js/src/phemex.js +1 -1
  337. package/js/src/poloniex.d.ts +1 -1
  338. package/js/src/poloniex.js +1 -1
  339. package/js/src/pro/aftermath.d.ts +1 -1
  340. package/js/src/pro/aftermath.js +1 -1
  341. package/js/src/pro/alpaca.d.ts +1 -1
  342. package/js/src/pro/alpaca.js +1 -1
  343. package/js/src/pro/apex.d.ts +2 -2
  344. package/js/src/pro/apex.js +2 -2
  345. package/js/src/pro/ascendex.d.ts +1 -1
  346. package/js/src/pro/ascendex.js +1 -1
  347. package/js/src/pro/aster.d.ts +4 -4
  348. package/js/src/pro/aster.js +4 -4
  349. package/js/src/pro/backpack.d.ts +4 -4
  350. package/js/src/pro/backpack.js +4 -4
  351. package/js/src/pro/binance.d.ts +5 -5
  352. package/js/src/pro/binance.js +5 -5
  353. package/js/src/pro/bingx.d.ts +2 -2
  354. package/js/src/pro/bingx.js +2 -2
  355. package/js/src/pro/bitfinex.d.ts +1 -1
  356. package/js/src/pro/bitfinex.js +1 -1
  357. package/js/src/pro/bitget.d.ts +4 -4
  358. package/js/src/pro/bitget.js +4 -4
  359. package/js/src/pro/bitmart.d.ts +4 -4
  360. package/js/src/pro/bitmart.js +4 -4
  361. package/js/src/pro/bitmex.d.ts +2 -2
  362. package/js/src/pro/bitmex.js +2 -2
  363. package/js/src/pro/bitopro.d.ts +1 -1
  364. package/js/src/pro/bitopro.js +1 -1
  365. package/js/src/pro/bitstamp.d.ts +1 -1
  366. package/js/src/pro/bitstamp.js +1 -1
  367. package/js/src/pro/bittrade.d.ts +1 -1
  368. package/js/src/pro/bittrade.js +1 -1
  369. package/js/src/pro/bitvavo.d.ts +1 -1
  370. package/js/src/pro/bitvavo.js +1 -1
  371. package/js/src/pro/blockchaincom.d.ts +1 -1
  372. package/js/src/pro/blockchaincom.js +1 -1
  373. package/js/src/pro/blofin.d.ts +2 -2
  374. package/js/src/pro/blofin.js +2 -2
  375. package/js/src/pro/bullish.d.ts +1 -1
  376. package/js/src/pro/bullish.js +1 -1
  377. package/js/src/pro/bybit.d.ts +4 -4
  378. package/js/src/pro/bybit.js +4 -4
  379. package/js/src/pro/bydfi.d.ts +4 -4
  380. package/js/src/pro/bydfi.js +4 -4
  381. package/js/src/pro/cex.d.ts +1 -1
  382. package/js/src/pro/cex.js +1 -1
  383. package/js/src/pro/coinbase.d.ts +3 -3
  384. package/js/src/pro/coinbase.js +3 -3
  385. package/js/src/pro/coinbaseexchange.d.ts +2 -2
  386. package/js/src/pro/coinbaseexchange.js +2 -2
  387. package/js/src/pro/coinbaseinternational.d.ts +2 -2
  388. package/js/src/pro/coinbaseinternational.js +2 -2
  389. package/js/src/pro/coincheck.d.ts +1 -1
  390. package/js/src/pro/coincheck.js +1 -1
  391. package/js/src/pro/coinex.d.ts +2 -2
  392. package/js/src/pro/coinex.js +2 -2
  393. package/js/src/pro/coinone.d.ts +1 -1
  394. package/js/src/pro/coinone.js +1 -1
  395. package/js/src/pro/cryptocom.d.ts +4 -4
  396. package/js/src/pro/cryptocom.js +4 -4
  397. package/js/src/pro/deepcoin.d.ts +2 -2
  398. package/js/src/pro/deepcoin.js +2 -2
  399. package/js/src/pro/deribit.d.ts +2 -2
  400. package/js/src/pro/deribit.js +2 -2
  401. package/js/src/pro/derive.d.ts +2 -2
  402. package/js/src/pro/derive.js +2 -2
  403. package/js/src/pro/dydx.d.ts +2 -2
  404. package/js/src/pro/dydx.js +2 -2
  405. package/js/src/pro/exmo.d.ts +1 -1
  406. package/js/src/pro/exmo.js +1 -1
  407. package/js/src/pro/extended.d.ts +1 -1
  408. package/js/src/pro/extended.js +1 -1
  409. package/js/src/pro/gate.d.ts +3 -2
  410. package/js/src/pro/gate.js +46 -15
  411. package/js/src/pro/gateeu.d.ts +4 -0
  412. package/js/src/pro/gateeu.js +31 -0
  413. package/js/src/pro/gemini.d.ts +2 -2
  414. package/js/src/pro/gemini.js +2 -3
  415. package/js/src/pro/grvt.d.ts +2 -2
  416. package/js/src/pro/grvt.js +2 -2
  417. package/js/src/pro/hashkey.d.ts +1 -1
  418. package/js/src/pro/hashkey.js +1 -1
  419. package/js/src/pro/hitbtc.d.ts +1 -1
  420. package/js/src/pro/hitbtc.js +1 -1
  421. package/js/src/pro/hollaex.d.ts +1 -1
  422. package/js/src/pro/hollaex.js +1 -1
  423. package/js/src/pro/htx.d.ts +9 -8
  424. package/js/src/pro/htx.js +440 -100
  425. package/js/src/pro/hyperliquid.d.ts +2 -2
  426. package/js/src/pro/hyperliquid.js +2 -2
  427. package/js/src/pro/independentreserve.d.ts +1 -1
  428. package/js/src/pro/independentreserve.js +1 -1
  429. package/js/src/pro/kraken.d.ts +2 -2
  430. package/js/src/pro/kraken.js +2 -2
  431. package/js/src/pro/krakenfutures.d.ts +2 -2
  432. package/js/src/pro/krakenfutures.js +2 -2
  433. package/js/src/pro/kucoin.d.ts +4 -4
  434. package/js/src/pro/kucoin.js +4 -4
  435. package/js/src/pro/lighter.d.ts +2 -2
  436. package/js/src/pro/lighter.js +2 -2
  437. package/js/src/pro/luno.d.ts +1 -1
  438. package/js/src/pro/luno.js +1 -1
  439. package/js/src/pro/mexc.d.ts +2 -2
  440. package/js/src/pro/mexc.js +2 -2
  441. package/js/src/pro/modetrade.d.ts +1 -1
  442. package/js/src/pro/modetrade.js +1 -1
  443. package/js/src/pro/ndax.d.ts +1 -1
  444. package/js/src/pro/ndax.js +1 -1
  445. package/js/src/pro/okx.d.ts +4 -4
  446. package/js/src/pro/okx.js +4 -4
  447. package/js/src/pro/onetrading.d.ts +1 -1
  448. package/js/src/pro/onetrading.js +1 -1
  449. package/js/src/pro/p2b.d.ts +1 -1
  450. package/js/src/pro/p2b.js +1 -1
  451. package/js/src/pro/pacifica.d.ts +2 -2
  452. package/js/src/pro/pacifica.js +2 -2
  453. package/js/src/pro/paradex.d.ts +1 -1
  454. package/js/src/pro/paradex.js +1 -1
  455. package/js/src/pro/phemex.d.ts +1 -1
  456. package/js/src/pro/phemex.js +1 -1
  457. package/js/src/pro/poloniex.d.ts +1 -1
  458. package/js/src/pro/poloniex.js +1 -1
  459. package/js/src/pro/toobit.d.ts +2 -2
  460. package/js/src/pro/toobit.js +2 -2
  461. package/js/src/pro/upbit.d.ts +1 -1
  462. package/js/src/pro/upbit.js +1 -1
  463. package/js/src/pro/weex.d.ts +4 -4
  464. package/js/src/pro/weex.js +4 -4
  465. package/js/src/pro/whitebit.d.ts +1 -1
  466. package/js/src/pro/whitebit.js +1 -1
  467. package/js/src/pro/woo.d.ts +2 -2
  468. package/js/src/pro/woo.js +2 -2
  469. package/js/src/pro/woofipro.d.ts +1 -1
  470. package/js/src/pro/woofipro.js +1 -1
  471. package/js/src/tokocrypto.d.ts +1 -1
  472. package/js/src/tokocrypto.js +1 -1
  473. package/js/src/toobit.d.ts +1 -1
  474. package/js/src/toobit.js +2 -2
  475. package/js/src/upbit.d.ts +1 -1
  476. package/js/src/upbit.js +1 -1
  477. package/js/src/weex.d.ts +1 -1
  478. package/js/src/weex.js +2 -2
  479. package/js/src/whitebit.d.ts +1 -1
  480. package/js/src/whitebit.js +1 -1
  481. package/js/src/woo.d.ts +1 -1
  482. package/js/src/woo.js +1 -1
  483. package/js/src/woofipro.d.ts +1 -1
  484. package/js/src/woofipro.js +2 -4
  485. package/js/src/xt.js +1 -1
  486. package/js/src/zaif.d.ts +1 -1
  487. package/js/src/zaif.js +2 -2
  488. package/js/src/zebpay.d.ts +1 -1
  489. package/js/src/zebpay.js +2 -2
  490. package/package.json +18 -8
  491. package/js/src/static_dependencies/jsencrypt/JSEncrypt.d.ts +0 -116
  492. package/js/src/static_dependencies/jsencrypt/JSEncrypt.js +0 -194
  493. package/js/src/static_dependencies/jsencrypt/JSEncryptRSAKey.d.ts +0 -142
  494. package/js/src/static_dependencies/jsencrypt/JSEncryptRSAKey.js +0 -307
  495. package/js/src/static_dependencies/jsencrypt/index.d.ts +0 -3
  496. package/js/src/static_dependencies/jsencrypt/lib/asn1js/asn1.d.ts +0 -51
  497. package/js/src/static_dependencies/jsencrypt/lib/asn1js/asn1.js +0 -565
  498. package/js/src/static_dependencies/jsencrypt/lib/asn1js/base64.d.ts +0 -5
  499. package/js/src/static_dependencies/jsencrypt/lib/asn1js/base64.js +0 -94
  500. package/js/src/static_dependencies/jsencrypt/lib/asn1js/hex.d.ts +0 -3
  501. package/js/src/static_dependencies/jsencrypt/lib/asn1js/hex.js +0 -70
  502. package/js/src/static_dependencies/jsencrypt/lib/asn1js/int10.d.ts +0 -9
  503. package/js/src/static_dependencies/jsencrypt/lib/asn1js/int10.js +0 -91
  504. package/js/src/static_dependencies/jsencrypt/lib/asn1js/oids.d.ts +0 -9778
  505. package/js/src/static_dependencies/jsencrypt/lib/asn1js/oids.js +0 -1968
  506. package/js/src/static_dependencies/jsencrypt/lib/jsbn/base64.d.ts +0 -3
  507. package/js/src/static_dependencies/jsencrypt/lib/jsbn/base64.js +0 -25
  508. package/js/src/static_dependencies/jsencrypt/lib/jsbn/jsbn.d.ts +0 -101
  509. package/js/src/static_dependencies/jsencrypt/lib/jsbn/jsbn.js +0 -1757
  510. package/js/src/static_dependencies/jsencrypt/lib/jsbn/prng4.d.ts +0 -10
  511. package/js/src/static_dependencies/jsencrypt/lib/jsbn/prng4.js +0 -50
  512. package/js/src/static_dependencies/jsencrypt/lib/jsbn/rng.d.ts +0 -3
  513. package/js/src/static_dependencies/jsencrypt/lib/jsbn/rng.js +0 -80
  514. package/js/src/static_dependencies/jsencrypt/lib/jsbn/rsa.d.ts +0 -23
  515. package/js/src/static_dependencies/jsencrypt/lib/jsbn/rsa.js +0 -377
  516. package/js/src/static_dependencies/jsencrypt/lib/jsbn/util.d.ts +0 -7
  517. package/js/src/static_dependencies/jsencrypt/lib/jsbn/util.js +0 -64
  518. package/js/src/static_dependencies/jsencrypt/lib/jsrsasign/asn1-1.0.d.ts +0 -24
  519. package/js/src/static_dependencies/jsencrypt/lib/jsrsasign/asn1-1.0.js +0 -1627
  520. package/js/src/static_dependencies/jsencrypt/lib/jsrsasign/yahoo.d.ts +0 -5
  521. package/js/src/static_dependencies/jsencrypt/lib/jsrsasign/yahoo.js +0 -75
@@ -9,6 +9,7 @@ export type { Market, Trade, Fee, Ticker, OHLCV, OHLCVC, Order, OrderBook, Balan
9
9
  * @class Exchange
10
10
  */
11
11
  export default class Exchange {
12
+ static ccxtVersion: string;
12
13
  options: Dict;
13
14
  isSandboxModeEnabled: boolean;
14
15
  api: Dictionary<any>;
@@ -302,7 +303,6 @@ export default class Exchange {
302
303
  loadExchangeSpecificFiles(): Promise<void>;
303
304
  uuid5(namespace: string, name: string): string;
304
305
  encodeURIComponent(...args: any[]): string;
305
- checkRequiredVersion(requiredVersion: any, error?: boolean): boolean;
306
306
  throttle(cost?: Num): any;
307
307
  initThrottler(): void;
308
308
  defineRestApiEndpoint(methodName: any, uppercaseMethod: any, lowercaseMethod: any, camelcaseMethod: any, path: any, paths: any, config?: {}): void;
@@ -27,7 +27,6 @@ import { OrderBook as WsOrderBook, IndexedOrderBook, CountedOrderBook } from './
27
27
  import { totp } from './functions/totp.js';
28
28
  import ethers from '../static_dependencies/ethers/index.js';
29
29
  import { TypedDataEncoder } from '../static_dependencies/ethers/hash/index.js';
30
- import { SecureRandom } from '../static_dependencies/jsencrypt/lib/jsbn/rng.js';
31
30
  import init, * as zklink from '../static_dependencies/zklink/zklink-sdk-web.js';
32
31
  import * as Starknet from '../static_dependencies/starknet/index.js';
33
32
  import { exportMnemonicAndPrivateKey, deriveHDKeyFromMnemonic } from '../static_dependencies/dydx-v4-client/onboarding.js';
@@ -49,6 +48,8 @@ let SignMode = undefined;
49
48
  * @class Exchange
50
49
  */
51
50
  export default class Exchange {
51
+ // this is updated by vss.js when building
52
+ static { this.ccxtVersion = '4.5.61'; }
52
53
  constructor(userConfig = {}) {
53
54
  this.isSandboxModeEnabled = false;
54
55
  this.api = undefined;
@@ -270,7 +271,7 @@ export default class Exchange {
270
271
  // if (isNode) {
271
272
  // this.nodeVersion = process.version.match (/\d+\.\d+\.\d+/)[0]
272
273
  // this.userAgent = {
273
- // 'User-Agent': 'ccxt/' + (Exchange as any).ccxtVersion +
274
+ // 'User-Agent': 'ccxt/' + Exchange.ccxtVersion +
274
275
  // ' (+https://github.com/ccxt/ccxt)' +
275
276
  // ' Node.js/' + this.nodeVersion + ' (JavaScript)'
276
277
  // }
@@ -417,37 +418,6 @@ export default class Exchange {
417
418
  // @ts-expect-error
418
419
  return encodeURIComponent(...args);
419
420
  }
420
- checkRequiredVersion(requiredVersion, error = true) {
421
- let result = true;
422
- const [major1, minor1, patch1] = requiredVersion.split('.');
423
- const [major2, minor2, patch2] = Exchange.ccxtVersion.split('.');
424
- const intMajor1 = this.parseToInt(major1);
425
- const intMinor1 = this.parseToInt(minor1);
426
- const intPatch1 = this.parseToInt(patch1);
427
- const intMajor2 = this.parseToInt(major2);
428
- const intMinor2 = this.parseToInt(minor2);
429
- const intPatch2 = this.parseToInt(patch2);
430
- if (intMajor1 > intMajor2) {
431
- result = false;
432
- }
433
- if (intMajor1 === intMajor2) {
434
- if (intMinor1 > intMinor2) {
435
- result = false;
436
- }
437
- else if (intMinor1 === intMinor2 && intPatch1 > intPatch2) {
438
- result = false;
439
- }
440
- }
441
- if (!result) {
442
- if (error) {
443
- throw new NotSupported('Your current version of CCXT is ' + Exchange.ccxtVersion + ', a newer version ' + requiredVersion + ' is required, please, upgrade your version of CCXT');
444
- }
445
- else {
446
- return error;
447
- }
448
- }
449
- return result;
450
- }
451
421
  throttle(cost = undefined) {
452
422
  return this.throttler.throttle(cost);
453
423
  }
@@ -1593,11 +1563,9 @@ export default class Exchange {
1593
1563
  return dict;
1594
1564
  }
1595
1565
  randomBytes(length) {
1596
- const rng = new SecureRandom();
1597
- const x = [];
1598
- x.length = length;
1599
- rng.nextBytes(x);
1600
- return Buffer.from(x).toString('hex');
1566
+ const x = new Uint8Array(length);
1567
+ crypto.getRandomValues(x);
1568
+ return this.binaryToBase16(x);
1601
1569
  }
1602
1570
  randNumber(size) {
1603
1571
  let number = '';
@@ -4,6 +4,7 @@ import type { EdDSA as CurveFnEDDSA } from '@noble/curves/abstract/edwards.js';
4
4
  type Input = string | Uint8Array;
5
5
  type Hex = string | Uint8Array;
6
6
  type Digest = 'binary' | 'hex' | 'base64';
7
+ declare function pemToDer(pem: string): Uint8Array;
7
8
  declare const hash: (request: Input, hash: CHash, digest?: Digest) => any;
8
9
  declare const hmac: (request: Input, secret: Input, hash: CHash, digest?: Digest) => any;
9
10
  declare function ecdsa(request: Hex, secret: Hex, curve: CurveFn, prehash?: CHash, fixedLength?: boolean): {
@@ -13,4 +14,4 @@ declare function ecdsa(request: Hex, secret: Hex, curve: CurveFn, prehash?: CHas
13
14
  };
14
15
  declare function eddsa(request: Hex, secret: Input, curve: CurveFnEDDSA): string;
15
16
  declare function crc32(str: any, signed?: boolean): number;
16
- export { hash, hmac, crc32, ecdsa, eddsa, };
17
+ export { hash, hmac, crc32, ecdsa, eddsa, pemToDer, };
@@ -8,8 +8,6 @@
8
8
  import { hmac as _hmac } from '@noble/hashes/hmac.js';
9
9
  import { hex as base16, base64 } from '@scure/base';
10
10
  import { utf8ToBytes } from '@noble/hashes/utils.js';
11
- import { Base64 } from '../../static_dependencies/jsencrypt/lib/asn1js/base64.js';
12
- import { ASN1 } from "../../static_dependencies/jsencrypt/lib/asn1js/asn1.js";
13
11
  import { secp256k1 } from '@noble/curves/secp256k1.js';
14
12
  import { p256 as P256 } from '@noble/curves/nist.js';
15
13
  import { numberToBytesLE, hexToBytes } from '@noble/curves/utils.js';
@@ -26,6 +24,62 @@ const supportedCurve = {
26
24
  '1.3.132.0.10': secp256k1,
27
25
  '1.2.840.10045.3.1.7': P256,
28
26
  };
27
+ /* ----- minimal PEM / DER helpers (replace the vendored jsencrypt asn1js) ----- */
28
+ // strip the PEM armor (-----BEGIN/END ...-----) and base64-decode the body to DER bytes
29
+ function pemToDer(pem) {
30
+ const body = pem
31
+ .replace(/-----BEGIN [^-]+-----/g, '')
32
+ .replace(/-----END [^-]+-----/g, '')
33
+ .replace(/\s+/g, '');
34
+ return base64.decode(body);
35
+ }
36
+ // read a definite-form DER length, returns [ length, nextOffset ]
37
+ function readDerLength(bytes, offset) {
38
+ let length = bytes[offset];
39
+ offset += 1;
40
+ if (length & 0x80) {
41
+ const numBytes = length & 0x7f;
42
+ length = 0;
43
+ for (let i = 0; i < numBytes; i++) {
44
+ length = (length * 256) + bytes[offset];
45
+ offset += 1;
46
+ }
47
+ }
48
+ return [length, offset];
49
+ }
50
+ // parse a DER buffer into a flat list of its top-level TLV elements
51
+ function parseDerElements(bytes) {
52
+ const elements = [];
53
+ let offset = 0;
54
+ while (offset < bytes.length) {
55
+ const tag = bytes[offset];
56
+ offset += 1;
57
+ const result = readDerLength(bytes, offset);
58
+ const length = result[0];
59
+ offset = result[1];
60
+ const content = bytes.slice(offset, offset + length);
61
+ elements.push({ 'tag': tag, 'content': content });
62
+ offset += length;
63
+ }
64
+ return elements;
65
+ }
66
+ // decode an OID's content bytes into a dotted-decimal string
67
+ function decodeOid(bytes) {
68
+ const values = [];
69
+ const first = bytes[0];
70
+ values.push(Math.floor(first / 40));
71
+ values.push(first % 40);
72
+ let value = 0;
73
+ for (let i = 1; i < bytes.length; i++) {
74
+ const b = bytes[i];
75
+ value = (value * 128) + (b & 0x7f);
76
+ if ((b & 0x80) === 0) {
77
+ values.push(value);
78
+ value = 0;
79
+ }
80
+ }
81
+ return values.join('.');
82
+ }
29
83
  /* ............................................. */
30
84
  const hash = (request, hash, digest = 'hex') => {
31
85
  const binary = hash(utf8Bytes(request));
@@ -44,22 +98,24 @@ function ecdsa(request, secret, curve, prehash = null, fixedLength = false) {
44
98
  if (typeof secret === 'string' && secret.length > 64) {
45
99
  // decode pem key
46
100
  if (secret.startsWith('-----BEGIN EC PRIVATE KEY-----')) {
47
- const der = Base64.unarmor(secret);
48
- let asn1 = ASN1.decode(der);
49
- if (asn1.sub.length === 4) {
50
- // ECPrivateKey ::= SEQUENCE {
51
- // version INTEGER { ecPrivkeyVer1(1) } (ecPrivkeyVer1),
52
- // privateKey OCTET STRING,
53
- // parameters [0] ECParameters {{ NamedCurve }} OPTIONAL,
54
- // publicKey [1] BIT STRING OPTIONAL
55
- // }
56
- if (typeof asn1.sub[2].sub !== null && asn1.sub[2].sub.length > 0) {
57
- const oid = asn1.sub[2].sub[0].content(undefined);
101
+ const der = pemToDer(secret);
102
+ const top = parseDerElements(der);
103
+ // ECPrivateKey ::= SEQUENCE {
104
+ // version INTEGER { ecPrivkeyVer1(1) } (ecPrivkeyVer1),
105
+ // privateKey OCTET STRING,
106
+ // parameters [0] ECParameters {{ NamedCurve }} OPTIONAL,
107
+ // publicKey [1] BIT STRING OPTIONAL
108
+ // }
109
+ const fields = parseDerElements(top[0].content);
110
+ if (fields.length === 4) {
111
+ const params = fields[2];
112
+ if (params !== undefined && params.tag === 0xA0 && params.content.length > 0) {
113
+ const oid = decodeOid(parseDerElements(params.content)[0].content);
58
114
  if (supportedCurve[oid] === undefined)
59
115
  throw new Error('Unsupported curve');
60
116
  curve = supportedCurve[oid];
61
117
  }
62
- secret = asn1.sub[1].getHexStringValue();
118
+ secret = base16.encode(fields[1].content);
63
119
  }
64
120
  else {
65
121
  // maybe return false
@@ -107,7 +163,7 @@ function eddsa(request, secret, curve) {
107
163
  else if (typeof secret === 'string') {
108
164
  // secret is the base64 pem encoded key
109
165
  // we get the last 32 bytes
110
- privateKey = new Uint8Array(Base64.unarmor(secret).slice(16));
166
+ privateKey = new Uint8Array(pemToDer(secret).slice(16));
111
167
  }
112
168
  const signature = curve.sign(hexBytes(request), privateKey);
113
169
  return base64.encode(signature);
@@ -134,5 +190,5 @@ function crc32(str, signed = false) {
134
190
  }
135
191
  }
136
192
  /* ------------------------------------------------------------------------ */
137
- export { hash, hmac, crc32, ecdsa, eddsa, };
193
+ export { hash, hmac, crc32, ecdsa, eddsa, pemToDer, };
138
194
  /* ------------------------------------------------------------------------ */
@@ -4,21 +4,32 @@
4
4
  // https://github.com/ccxt/ccxt/blob/master/CONTRIBUTING.md#how-to-contribute-code
5
5
  // EDIT THE CORRESPONDENT .ts FILE INSTEAD
6
6
 
7
- import { JSEncrypt } from "../../static_dependencies/jsencrypt/JSEncrypt.js";
8
- import { utf8ToBytes } from '@noble/hashes/utils.js';
9
- import { hex as base16, utf8 } from '@scure/base';
7
+ import crypto from 'crypto';
8
+ import { utf8 } from '@scure/base';
10
9
  import { urlencodeBase64, base16ToBinary, base64ToBinary, base64ToBase64Url } from './encode.js';
11
10
  import { eddsa, hmac } from './crypto.js';
12
11
  import { p256 as P256 } from '@noble/curves/nist.js';
13
12
  import { ecdsa } from '../../base/functions/crypto.js';
14
13
  import { ed25519 } from "@noble/curves/ed25519.js";
14
+ // RSASSA-PKCS1-v1_5 signing via Node's built-in `crypto` module. This is synchronous
15
+ // and works in Node.js / Bun / Deno (anything exposing node:crypto). It is NOT available
16
+ // in the browser bundle (rspack stubs the `crypto` module), so rsa throws there: RSA
17
+ // signing is currently unsupported in the browser.
15
18
  function rsa(request, secret, hash) {
16
- const RSA = new JSEncrypt();
17
- const digester = (input) => base16.encode(hash((typeof input === 'string') ? utf8ToBytes(input) : input));
18
- RSA.setPrivateKey(secret);
19
+ if (crypto === undefined || crypto.createSign === undefined) {
20
+ throw new Error('rsa is currently not supported in the browser');
21
+ }
19
22
  // @noble/hashes v2 renamed the digest classes from SHA256 to _SHA256, etc
20
23
  const name = (hash.create()).constructor.name.toLowerCase().replace('_', '');
21
- return RSA.sign(request, digester, name);
24
+ const algorithms = {
25
+ 'sha256': 'RSA-SHA256',
26
+ 'sha384': 'RSA-SHA384',
27
+ 'sha512': 'RSA-SHA512',
28
+ };
29
+ const algorithm = algorithms[name];
30
+ const signer = crypto.createSign(algorithm);
31
+ signer.update(request);
32
+ return signer.sign(secret, 'base64');
22
33
  }
23
34
  function jwt(request, secret, hash, isRSA = false, opts = {}) {
24
35
  let alg = (isRSA ? 'RS' : 'HS') + (hash.outputLen * 8);
package/js/src/bequant.js CHANGED
@@ -23,7 +23,7 @@ export default class bequant extends hitbtc {
23
23
  'option': undefined,
24
24
  },
25
25
  'urls': {
26
- 'logo': 'https://github.com/user-attachments/assets/0583ef1f-29fe-4b7c-8189-63565a0e2867',
26
+ 'logo': 'https://github.com/user-attachments/assets/01e199a6-5c65-4b03-83ab-7f9827c140f9',
27
27
  'api': {
28
28
  // v3
29
29
  'public': 'https://api.bequant.io/api/3',
@@ -62,7 +62,7 @@ export default class bigone extends Exchange {
62
62
  * @param {string} symbol unified symbol of the market to fetch the order book for
63
63
  * @param {int} [limit] the maximum amount of order book entries to return
64
64
  * @param {object} [params] extra parameters specific to the exchange API endpoint
65
- * @returns {object} A dictionary of [order book structures]{@link https://docs.ccxt.com/?id=order-book-structure} indexed by market symbols
65
+ * @returns {object} A dictionary of [order book structures]{@link https://docs.ccxt.com/?id=order-book-structure}
66
66
  */
67
67
  fetchOrderBook(symbol: string, limit?: Int, params?: {}): Promise<OrderBook>;
68
68
  parseContractBidsAsks(bidsAsks: any): any[];
package/js/src/bigone.js CHANGED
@@ -1028,7 +1028,7 @@ export default class bigone extends Exchange {
1028
1028
  * @param {string} symbol unified symbol of the market to fetch the order book for
1029
1029
  * @param {int} [limit] the maximum amount of order book entries to return
1030
1030
  * @param {object} [params] extra parameters specific to the exchange API endpoint
1031
- * @returns {object} A dictionary of [order book structures]{@link https://docs.ccxt.com/?id=order-book-structure} indexed by market symbols
1031
+ * @returns {object} A dictionary of [order book structures]{@link https://docs.ccxt.com/?id=order-book-structure}
1032
1032
  */
1033
1033
  async fetchOrderBook(symbol, limit = undefined, params = {}) {
1034
1034
  await this.loadMarkets();
@@ -97,7 +97,7 @@ export default class binance extends Exchange {
97
97
  * @param {int} [limit] the maximum amount of order book entries to return
98
98
  * @param {object} [params] extra parameters specific to the exchange API endpoint
99
99
  * @param {boolean} [params.rpi] *future only* set to true to use the RPI endpoint
100
- * @returns {object} A dictionary of [order book structures]{@link https://docs.ccxt.com/?id=order-book-structure} indexed by market symbols
100
+ * @returns {object} A dictionary of [order book structures]{@link https://docs.ccxt.com/?id=order-book-structure}
101
101
  */
102
102
  fetchOrderBook(symbol: string, limit?: Int, params?: {}): Promise<OrderBook>;
103
103
  parseTicker(ticker: Dict, market?: Market): Ticker;
package/js/src/binance.js CHANGED
@@ -4128,7 +4128,7 @@ export default class binance extends Exchange {
4128
4128
  * @param {int} [limit] the maximum amount of order book entries to return
4129
4129
  * @param {object} [params] extra parameters specific to the exchange API endpoint
4130
4130
  * @param {boolean} [params.rpi] *future only* set to true to use the RPI endpoint
4131
- * @returns {object} A dictionary of [order book structures]{@link https://docs.ccxt.com/?id=order-book-structure} indexed by market symbols
4131
+ * @returns {object} A dictionary of [order book structures]{@link https://docs.ccxt.com/?id=order-book-structure}
4132
4132
  */
4133
4133
  async fetchOrderBook(symbol, limit = undefined, params = {}) {
4134
4134
  await this.loadMarkets();
package/js/src/bingx.d.ts CHANGED
@@ -83,7 +83,7 @@ export default class bingx extends Exchange {
83
83
  * @param {string} symbol unified symbol of the market to fetch the order book for
84
84
  * @param {int} [limit] the maximum amount of order book entries to return
85
85
  * @param {object} [params] extra parameters specific to the exchange API endpoint
86
- * @returns {object} A dictionary of [order book structures]{@link https://docs.ccxt.com/?id=order-book-structure} indexed by market symbols
86
+ * @returns {object} A dictionary of [order book structures]{@link https://docs.ccxt.com/?id=order-book-structure}
87
87
  */
88
88
  fetchOrderBook(symbol: string, limit?: Int, params?: {}): Promise<OrderBook>;
89
89
  /**
package/js/src/bingx.js CHANGED
@@ -1538,7 +1538,7 @@ export default class bingx extends Exchange {
1538
1538
  * @param {string} symbol unified symbol of the market to fetch the order book for
1539
1539
  * @param {int} [limit] the maximum amount of order book entries to return
1540
1540
  * @param {object} [params] extra parameters specific to the exchange API endpoint
1541
- * @returns {object} A dictionary of [order book structures]{@link https://docs.ccxt.com/?id=order-book-structure} indexed by market symbols
1541
+ * @returns {object} A dictionary of [order book structures]{@link https://docs.ccxt.com/?id=order-book-structure}
1542
1542
  */
1543
1543
  async fetchOrderBook(symbol, limit = undefined, params = {}) {
1544
1544
  await this.loadMarkets();
@@ -6651,7 +6651,6 @@ export default class bingx extends Exchange {
6651
6651
  };
6652
6652
  let response = undefined;
6653
6653
  let commission = {};
6654
- const data = this.safeDict(response, 'data', {});
6655
6654
  if (market['spot']) {
6656
6655
  response = await this.spotV1PrivateGetUserCommissionRate(this.extend(request, params));
6657
6656
  //
@@ -6665,7 +6664,7 @@ export default class bingx extends Exchange {
6665
6664
  // }
6666
6665
  // }
6667
6666
  //
6668
- commission = data;
6667
+ commission = this.safeDict(response, 'data', {});
6669
6668
  }
6670
6669
  else {
6671
6670
  if (market['inverse']) {
@@ -6681,7 +6680,7 @@ export default class bingx extends Exchange {
6681
6680
  // }
6682
6681
  // }
6683
6682
  //
6684
- commission = data;
6683
+ commission = this.safeDict(response, 'data', {});
6685
6684
  }
6686
6685
  else {
6687
6686
  response = await this.swapV2PrivateGetUserCommissionRate(params);
@@ -6697,6 +6696,7 @@ export default class bingx extends Exchange {
6697
6696
  // }
6698
6697
  // }
6699
6698
  //
6699
+ const data = this.safeDict(response, 'data', {});
6700
6700
  commission = this.safeDict(data, 'commission', {});
6701
6701
  }
6702
6702
  }
package/js/src/bit2c.d.ts CHANGED
@@ -24,7 +24,7 @@ export default class bit2c extends Exchange {
24
24
  * @param {string} symbol unified symbol of the market to fetch the order book for
25
25
  * @param {int} [limit] the maximum amount of order book entries to return
26
26
  * @param {object} [params] extra parameters specific to the exchange API endpoint
27
- * @returns {object} A dictionary of [order book structures]{@link https://docs.ccxt.com/?id=order-book-structure} indexed by market symbols
27
+ * @returns {object} A dictionary of [order book structures]{@link https://docs.ccxt.com/?id=order-book-structure}
28
28
  */
29
29
  fetchOrderBook(symbol: string, limit?: Int, params?: {}): Promise<OrderBook>;
30
30
  parseTicker(ticker: Dict, market?: Market): Ticker;
package/js/src/bit2c.js CHANGED
@@ -367,7 +367,7 @@ export default class bit2c extends Exchange {
367
367
  * @param {string} symbol unified symbol of the market to fetch the order book for
368
368
  * @param {int} [limit] the maximum amount of order book entries to return
369
369
  * @param {object} [params] extra parameters specific to the exchange API endpoint
370
- * @returns {object} A dictionary of [order book structures]{@link https://docs.ccxt.com/?id=order-book-structure} indexed by market symbols
370
+ * @returns {object} A dictionary of [order book structures]{@link https://docs.ccxt.com/?id=order-book-structure}
371
371
  */
372
372
  async fetchOrderBook(symbol, limit = undefined, params = {}) {
373
373
  await this.loadMarkets();
@@ -35,7 +35,7 @@ export default class bitbank extends Exchange {
35
35
  * @param {string} symbol unified symbol of the market to fetch the order book for
36
36
  * @param {int} [limit] the maximum amount of order book entries to return
37
37
  * @param {object} [params] extra parameters specific to the exchange API endpoint
38
- * @returns {object} A dictionary of [order book structures]{@link https://docs.ccxt.com/?id=order-book-structure} indexed by market symbols
38
+ * @returns {object} A dictionary of [order book structures]{@link https://docs.ccxt.com/?id=order-book-structure}
39
39
  */
40
40
  fetchOrderBook(symbol: string, limit?: Int, params?: {}): Promise<OrderBook>;
41
41
  parseTrade(trade: Dict, market?: Market): Trade;
package/js/src/bitbank.js CHANGED
@@ -419,7 +419,7 @@ export default class bitbank extends Exchange {
419
419
  * @param {string} symbol unified symbol of the market to fetch the order book for
420
420
  * @param {int} [limit] the maximum amount of order book entries to return
421
421
  * @param {object} [params] extra parameters specific to the exchange API endpoint
422
- * @returns {object} A dictionary of [order book structures]{@link https://docs.ccxt.com/?id=order-book-structure} indexed by market symbols
422
+ * @returns {object} A dictionary of [order book structures]{@link https://docs.ccxt.com/?id=order-book-structure}
423
423
  */
424
424
  async fetchOrderBook(symbol, limit = undefined, params = {}) {
425
425
  await this.loadMarkets();
@@ -35,7 +35,7 @@ export default class bitbns extends Exchange {
35
35
  * @param {string} symbol unified symbol of the market to fetch the order book for
36
36
  * @param {int} [limit] the maximum amount of order book entries to return
37
37
  * @param {object} [params] extra parameters specific to the exchange API endpoint
38
- * @returns {object} A dictionary of [order book structures]{@link https://docs.ccxt.com/?id=order-book-structure} indexed by market symbols
38
+ * @returns {object} A dictionary of [order book structures]{@link https://docs.ccxt.com/?id=order-book-structure}
39
39
  */
40
40
  fetchOrderBook(symbol: string, limit?: Int, params?: {}): Promise<OrderBook>;
41
41
  parseTicker(ticker: Dict, market?: Market): Ticker;
package/js/src/bitbns.js CHANGED
@@ -360,7 +360,7 @@ export default class bitbns extends Exchange {
360
360
  * @param {string} symbol unified symbol of the market to fetch the order book for
361
361
  * @param {int} [limit] the maximum amount of order book entries to return
362
362
  * @param {object} [params] extra parameters specific to the exchange API endpoint
363
- * @returns {object} A dictionary of [order book structures]{@link https://docs.ccxt.com/?id=order-book-structure} indexed by market symbols
363
+ * @returns {object} A dictionary of [order book structures]{@link https://docs.ccxt.com/?id=order-book-structure}
364
364
  */
365
365
  async fetchOrderBook(symbol, limit = undefined, params = {}) {
366
366
  await this.loadMarkets();
@@ -78,7 +78,7 @@ export default class bitfinex extends Exchange {
78
78
  * @param {string} symbol unified symbol of the market to fetch the order book for
79
79
  * @param {int} [limit] the maximum amount of order book entries to return, bitfinex only allows 1, 25, or 100
80
80
  * @param {object} [params] extra parameters specific to the exchange API endpoint
81
- * @returns {object} A dictionary of [order book structures]{@link https://docs.ccxt.com/?id=order-book-structure} indexed by market symbols
81
+ * @returns {object} A dictionary of [order book structures]{@link https://docs.ccxt.com/?id=order-book-structure}
82
82
  */
83
83
  fetchOrderBook(symbol: string, limit?: Int, params?: {}): Promise<OrderBook>;
84
84
  parseTicker(ticker: Dict, market?: Market): Ticker;
@@ -607,13 +607,13 @@ export default class bitfinex extends Exchange {
607
607
  async fetchMarkets(params = {}) {
608
608
  const labels = [
609
609
  'pub:info:pair',
610
- // [ ['AAVE:USD', [null,null,null,"0.02","5000.0",null,null,null,null,null,null,null,] ], ... ]
610
+ // sample: 'AAVE:USD' with fields null,null,null,"0.02","5000.0",null,null,null,null,null,null,null
611
611
  'pub:info:pair:futures',
612
- // [ ['AAVEF0:USTF0', [null,null,null,"0.02","5000.0",null,null,null,0.01,0.005,] ]]
612
+ // sample: 'AAVEF0:USTF0' with fields null,null,null,"0.02","5000.0",null,null,null,0.01,0.005
613
613
  'pub:list:pair:securities',
614
- // ALT2612:USD","ALT2612:UST","BMN2:BTC","BMN2:USD","TITAN1:GBP","TITAN1:USD","TITAN2:GBP","TITAN2:USD","USTBL:USD","USTBL:UST"]]
614
+ // sample: "ALT2612:USD","ALT2612:UST","BMN2:BTC","BMN2:USD","TITAN1:GBP","TITAN1:USD","TITAN2:GBP","TITAN2:USD","USTBL:USD","USTBL:UST"
615
615
  'pub:list:pair:margin',
616
- // [ 'ADABTC', 'AVAX:BTC', ... ] // delimiter inconsistency
616
+ // sample: 'ADABTC', 'AVAX:BTC', ... // delimiter inconsistency
617
617
  ];
618
618
  const config = labels.join(',');
619
619
  const request = {
@@ -1134,7 +1134,7 @@ export default class bitfinex extends Exchange {
1134
1134
  * @param {string} symbol unified symbol of the market to fetch the order book for
1135
1135
  * @param {int} [limit] the maximum amount of order book entries to return, bitfinex only allows 1, 25, or 100
1136
1136
  * @param {object} [params] extra parameters specific to the exchange API endpoint
1137
- * @returns {object} A dictionary of [order book structures]{@link https://docs.ccxt.com/?id=order-book-structure} indexed by market symbols
1137
+ * @returns {object} A dictionary of [order book structures]{@link https://docs.ccxt.com/?id=order-book-structure}
1138
1138
  */
1139
1139
  async fetchOrderBook(symbol, limit = undefined, params = {}) {
1140
1140
  await this.loadMarkets();
@@ -35,7 +35,7 @@ export default class bitflyer extends Exchange {
35
35
  * @param {string} symbol unified symbol of the market to fetch the order book for
36
36
  * @param {int} [limit] the maximum amount of order book entries to return
37
37
  * @param {object} [params] extra parameters specific to the exchange API endpoint
38
- * @returns {object} A dictionary of [order book structures]{@link https://docs.ccxt.com/?id=order-book-structure} indexed by market symbols
38
+ * @returns {object} A dictionary of [order book structures]{@link https://docs.ccxt.com/?id=order-book-structure}
39
39
  */
40
40
  fetchOrderBook(symbol: string, limit?: Int, params?: {}): Promise<OrderBook>;
41
41
  parseTicker(ticker: Dict, market?: Market): Ticker;
@@ -462,7 +462,7 @@ export default class bitflyer extends Exchange {
462
462
  * @param {string} symbol unified symbol of the market to fetch the order book for
463
463
  * @param {int} [limit] the maximum amount of order book entries to return
464
464
  * @param {object} [params] extra parameters specific to the exchange API endpoint
465
- * @returns {object} A dictionary of [order book structures]{@link https://docs.ccxt.com/?id=order-book-structure} indexed by market symbols
465
+ * @returns {object} A dictionary of [order book structures]{@link https://docs.ccxt.com/?id=order-book-structure}
466
466
  */
467
467
  async fetchOrderBook(symbol, limit = undefined, params = {}) {
468
468
  await this.loadMarkets();
@@ -141,7 +141,7 @@ export default class bitget extends Exchange {
141
141
  * @param {int} [limit] the maximum amount of order book entries to return
142
142
  * @param {object} [params] extra parameters specific to the exchange API endpoint
143
143
  * @param {boolean} [params.uta] set to true for the unified trading account (uta), defaults to false
144
- * @returns {object} A dictionary of [order book structures]{@link https://docs.ccxt.com/?id=order-book-structure} indexed by market symbols
144
+ * @returns {object} A dictionary of [order book structures]{@link https://docs.ccxt.com/?id=order-book-structure}
145
145
  */
146
146
  fetchOrderBook(symbol: string, limit?: Int, params?: {}): Promise<OrderBook>;
147
147
  parseTicker(ticker: Dict, market?: Market): Ticker;
package/js/src/bitget.js CHANGED
@@ -163,7 +163,7 @@ export default class bitget extends Exchange {
163
163
  },
164
164
  'hostname': 'bitget.com',
165
165
  'urls': {
166
- 'logo': 'https://github.com/user-attachments/assets/fbaa10cc-a277-441d-a5b7-997dd9a87658',
166
+ 'logo': 'https://github.com/user-attachments/assets/b54bb4c2-416d-4231-8968-85a77748ba45',
167
167
  'api': {
168
168
  'spot': 'https://api.{hostname}',
169
169
  'mix': 'https://api.{hostname}',
@@ -3167,7 +3167,7 @@ export default class bitget extends Exchange {
3167
3167
  * @param {int} [limit] the maximum amount of order book entries to return
3168
3168
  * @param {object} [params] extra parameters specific to the exchange API endpoint
3169
3169
  * @param {boolean} [params.uta] set to true for the unified trading account (uta), defaults to false
3170
- * @returns {object} A dictionary of [order book structures]{@link https://docs.ccxt.com/?id=order-book-structure} indexed by market symbols
3170
+ * @returns {object} A dictionary of [order book structures]{@link https://docs.ccxt.com/?id=order-book-structure}
3171
3171
  */
3172
3172
  async fetchOrderBook(symbol, limit = undefined, params = {}) {
3173
3173
  await this.loadMarkets();
@@ -35,7 +35,7 @@ export default class bithumb extends Exchange {
35
35
  * @param {string} symbol unified symbol of the market to fetch the order book for
36
36
  * @param {int} [limit] the maximum amount of order book entries to return
37
37
  * @param {object} [params] extra parameters specific to the exchange API endpoint
38
- * @returns {object} A dictionary of [order book structures]{@link https://docs.ccxt.com/?id=order-book-structure} indexed by market symbols
38
+ * @returns {object} A dictionary of [order book structures]{@link https://docs.ccxt.com/?id=order-book-structure}
39
39
  */
40
40
  fetchOrderBook(symbol: string, limit?: Int, params?: {}): Promise<OrderBook>;
41
41
  parseTicker(ticker: Dict, market?: Market): Ticker;
package/js/src/bithumb.js CHANGED
@@ -454,7 +454,7 @@ export default class bithumb extends Exchange {
454
454
  * @param {string} symbol unified symbol of the market to fetch the order book for
455
455
  * @param {int} [limit] the maximum amount of order book entries to return
456
456
  * @param {object} [params] extra parameters specific to the exchange API endpoint
457
- * @returns {object} A dictionary of [order book structures]{@link https://docs.ccxt.com/?id=order-book-structure} indexed by market symbols
457
+ * @returns {object} A dictionary of [order book structures]{@link https://docs.ccxt.com/?id=order-book-structure}
458
458
  */
459
459
  async fetchOrderBook(symbol, limit = undefined, params = {}) {
460
460
  await this.loadMarkets();
@@ -122,7 +122,7 @@ export default class bitmart extends Exchange {
122
122
  * @param {string} symbol unified symbol of the market to fetch the order book for
123
123
  * @param {int} [limit] the maximum amount of order book entries to return
124
124
  * @param {object} [params] extra parameters specific to the exchange API endpoint
125
- * @returns {object} A dictionary of [order book structures]{@link https://docs.ccxt.com/?id=order-book-structure} indexed by market symbols
125
+ * @returns {object} A dictionary of [order book structures]{@link https://docs.ccxt.com/?id=order-book-structure}
126
126
  */
127
127
  fetchOrderBook(symbol: string, limit?: Int, params?: {}): Promise<OrderBook>;
128
128
  parseTrade(trade: Dict, market?: Market): Trade;
package/js/src/bitmart.js CHANGED
@@ -116,7 +116,7 @@ export default class bitmart extends Exchange {
116
116
  },
117
117
  'hostname': 'bitmart.com', // bitmart.info, bitmart.news for Hong Kong users
118
118
  'urls': {
119
- 'logo': 'https://github.com/user-attachments/assets/0623e9c4-f50e-48c9-82bd-65c3908c3a14',
119
+ 'logo': 'https://github.com/user-attachments/assets/3741e8c0-83a8-4504-ae68-32b00e3c27ee',
120
120
  'api': {
121
121
  'spot': 'https://api-cloud.{hostname}',
122
122
  'swap': 'https://api-cloud-v2.{hostname}', // bitmart.info for Hong Kong users
@@ -1811,7 +1811,7 @@ export default class bitmart extends Exchange {
1811
1811
  * @param {string} symbol unified symbol of the market to fetch the order book for
1812
1812
  * @param {int} [limit] the maximum amount of order book entries to return
1813
1813
  * @param {object} [params] extra parameters specific to the exchange API endpoint
1814
- * @returns {object} A dictionary of [order book structures]{@link https://docs.ccxt.com/?id=order-book-structure} indexed by market symbols
1814
+ * @returns {object} A dictionary of [order book structures]{@link https://docs.ccxt.com/?id=order-book-structure}
1815
1815
  */
1816
1816
  async fetchOrderBook(symbol, limit = undefined, params = {}) {
1817
1817
  await this.loadMarkets();
@@ -49,7 +49,7 @@ export default class bitmex extends Exchange {
49
49
  * @param {string} symbol unified symbol of the market to fetch the order book for
50
50
  * @param {int} [limit] the maximum amount of order book entries to return
51
51
  * @param {object} [params] extra parameters specific to the exchange API endpoint
52
- * @returns {object} A dictionary of [order book structures]{@link https://docs.ccxt.com/?id=order-book-structure} indexed by market symbols
52
+ * @returns {object} A dictionary of [order book structures]{@link https://docs.ccxt.com/?id=order-book-structure}
53
53
  */
54
54
  fetchOrderBook(symbol: string, limit?: Int, params?: {}): Promise<OrderBook>;
55
55
  /**
package/js/src/bitmex.js CHANGED
@@ -139,7 +139,7 @@ export default class bitmex extends Exchange {
139
139
  'public': 'https://testnet.bitmex.com',
140
140
  'private': 'https://testnet.bitmex.com',
141
141
  },
142
- 'logo': 'https://github.com/user-attachments/assets/c78425ab-78d5-49d6-bd14-db7734798f04',
142
+ 'logo': 'https://github.com/user-attachments/assets/3360333d-35a6-4503-bbba-92a6bc0c174f',
143
143
  'api': {
144
144
  'public': 'https://www.bitmex.com',
145
145
  'private': 'https://www.bitmex.com',
@@ -851,7 +851,7 @@ export default class bitmex extends Exchange {
851
851
  }
852
852
  expiryDatetime = this.safeString2(market, 'expiry', 'closingTimestamp');
853
853
  expiry = this.parse8601(expiryDatetime);
854
- if (expiry !== undefined) {
854
+ if (expiry !== undefined && future) {
855
855
  symbol = symbol + '-' + this.yymmdd(expiry);
856
856
  }
857
857
  }
@@ -1057,7 +1057,7 @@ export default class bitmex extends Exchange {
1057
1057
  * @param {string} symbol unified symbol of the market to fetch the order book for
1058
1058
  * @param {int} [limit] the maximum amount of order book entries to return
1059
1059
  * @param {object} [params] extra parameters specific to the exchange API endpoint
1060
- * @returns {object} A dictionary of [order book structures]{@link https://docs.ccxt.com/?id=order-book-structure} indexed by market symbols
1060
+ * @returns {object} A dictionary of [order book structures]{@link https://docs.ccxt.com/?id=order-book-structure}
1061
1061
  */
1062
1062
  async fetchOrderBook(symbol, limit = undefined, params = {}) {
1063
1063
  await this.loadMarkets();