ccxt 4.5.82 → 4.5.83

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 (446) hide show
  1. package/README.md +5 -4
  2. package/dist/ccxt.browser.min.js +2 -2
  3. package/dist/cjs/ccxt.js +3 -1
  4. package/dist/cjs/src/abstract/prediction/sxbet.js +11 -0
  5. package/dist/cjs/src/apex.js +1 -0
  6. package/dist/cjs/src/aster.js +2 -2
  7. package/dist/cjs/src/base/Exchange.js +1 -1
  8. package/dist/cjs/src/bigone.js +2 -2
  9. package/dist/cjs/src/binance.js +10 -10
  10. package/dist/cjs/src/bingx.js +3 -3
  11. package/dist/cjs/src/bit2c.js +4 -4
  12. package/dist/cjs/src/bitbank.js +15 -15
  13. package/dist/cjs/src/bitfinex.js +15 -15
  14. package/dist/cjs/src/bitget.js +109 -73
  15. package/dist/cjs/src/bitmex.js +7 -7
  16. package/dist/cjs/src/bitopro.js +2 -2
  17. package/dist/cjs/src/bitrue.js +6 -6
  18. package/dist/cjs/src/bitso.js +18 -18
  19. package/dist/cjs/src/bitstamp.js +5 -5
  20. package/dist/cjs/src/bitteam.js +32 -32
  21. package/dist/cjs/src/bittrade.js +10 -10
  22. package/dist/cjs/src/bitvavo.js +9 -9
  23. package/dist/cjs/src/blockchaincom.js +2 -2
  24. package/dist/cjs/src/btcbox.js +2 -2
  25. package/dist/cjs/src/btcmarkets.js +2 -2
  26. package/dist/cjs/src/btcturk.js +2 -2
  27. package/dist/cjs/src/btse.js +2 -2
  28. package/dist/cjs/src/bybitid.js +4 -0
  29. package/dist/cjs/src/coinbase.js +1 -1
  30. package/dist/cjs/src/coinbaseexchange.js +13 -13
  31. package/dist/cjs/src/coincheck.js +4 -4
  32. package/dist/cjs/src/coinex.js +10 -10
  33. package/dist/cjs/src/coinmate.js +4 -4
  34. package/dist/cjs/src/coinone.js +4 -4
  35. package/dist/cjs/src/coinsph.js +5 -5
  36. package/dist/cjs/src/cryptocom.js +5 -5
  37. package/dist/cjs/src/deribit.js +31 -31
  38. package/dist/cjs/src/derive.js +1 -1
  39. package/dist/cjs/src/digifinex.js +31 -31
  40. package/dist/cjs/src/gate.js +25 -25
  41. package/dist/cjs/src/gemini.js +5 -5
  42. package/dist/cjs/src/grvt.js +1 -1
  43. package/dist/cjs/src/hibachi.js +5 -5
  44. package/dist/cjs/src/hitbtc.js +15 -15
  45. package/dist/cjs/src/hollaex.js +15 -15
  46. package/dist/cjs/src/htx.js +52 -52
  47. package/dist/cjs/src/hyperliquid.js +2 -2
  48. package/dist/cjs/src/independentreserve.js +2 -2
  49. package/dist/cjs/src/indodax.js +8 -8
  50. package/dist/cjs/src/kraken.js +29 -29
  51. package/dist/cjs/src/krakenfutures.js +16 -16
  52. package/dist/cjs/src/kucoin.js +15 -15
  53. package/dist/cjs/src/latoken.js +8 -8
  54. package/dist/cjs/src/lbank.js +31 -31
  55. package/dist/cjs/src/lighter.js +2 -2
  56. package/dist/cjs/src/luno.js +2 -2
  57. package/dist/cjs/src/mercado.js +12 -12
  58. package/dist/cjs/src/mexc.js +27 -27
  59. package/dist/cjs/src/modetrade.js +10 -10
  60. package/dist/cjs/src/ndax.js +4 -4
  61. package/dist/cjs/src/okx.js +19 -20
  62. package/dist/cjs/src/onetrading.js +7 -7
  63. package/dist/cjs/src/p2b.js +8 -8
  64. package/dist/cjs/src/pacifica.js +9 -3
  65. package/dist/cjs/src/paymium.js +2 -2
  66. package/dist/cjs/src/phemex.js +37 -37
  67. package/dist/cjs/src/poloniex.js +14 -14
  68. package/dist/cjs/src/prediction/sxbet.js +2710 -0
  69. package/dist/cjs/src/pro/alpaca.js +5 -5
  70. package/dist/cjs/src/pro/apex.js +6 -6
  71. package/dist/cjs/src/pro/aster.js +8 -8
  72. package/dist/cjs/src/pro/backpack.js +1 -1
  73. package/dist/cjs/src/pro/binance.js +26 -26
  74. package/dist/cjs/src/pro/bingx.js +11 -11
  75. package/dist/cjs/src/pro/bitfinex.js +11 -11
  76. package/dist/cjs/src/pro/bitget.js +20 -20
  77. package/dist/cjs/src/pro/bithumb.js +1 -1
  78. package/dist/cjs/src/pro/bitmex.js +12 -12
  79. package/dist/cjs/src/pro/bitopro.js +5 -5
  80. package/dist/cjs/src/pro/bitrue.js +7 -7
  81. package/dist/cjs/src/pro/bitstamp.js +5 -5
  82. package/dist/cjs/src/pro/bittrade.js +11 -11
  83. package/dist/cjs/src/pro/bitvavo.js +16 -16
  84. package/dist/cjs/src/pro/blockchaincom.js +5 -5
  85. package/dist/cjs/src/pro/blofin.js +2 -2
  86. package/dist/cjs/src/pro/bybit.js +21 -21
  87. package/dist/cjs/src/pro/bydfi.js +2 -2
  88. package/dist/cjs/src/pro/cex.js +19 -19
  89. package/dist/cjs/src/pro/coinbase.js +2 -2
  90. package/dist/cjs/src/pro/coinbaseexchange.js +9 -9
  91. package/dist/cjs/src/pro/coinbaseinternational.js +2 -2
  92. package/dist/cjs/src/pro/coincheck.js +2 -2
  93. package/dist/cjs/src/pro/coinex.js +3 -3
  94. package/dist/cjs/src/pro/coinone.js +6 -6
  95. package/dist/cjs/src/pro/cryptocom.js +10 -10
  96. package/dist/cjs/src/pro/deribit.js +13 -13
  97. package/dist/cjs/src/pro/derive.js +4 -4
  98. package/dist/cjs/src/pro/dydx.js +1 -1
  99. package/dist/cjs/src/pro/extended.js +16 -10
  100. package/dist/cjs/src/pro/gate.js +10 -10
  101. package/dist/cjs/src/pro/gemini.js +3 -3
  102. package/dist/cjs/src/pro/grvt.js +2 -2
  103. package/dist/cjs/src/pro/hashkey.js +2 -2
  104. package/dist/cjs/src/pro/hitbtc.js +6 -6
  105. package/dist/cjs/src/pro/hollaex.js +3 -3
  106. package/dist/cjs/src/pro/htx.js +28 -28
  107. package/dist/cjs/src/pro/hyperliquid.js +1 -1
  108. package/dist/cjs/src/pro/independentreserve.js +2 -2
  109. package/dist/cjs/src/pro/kraken.js +7 -7
  110. package/dist/cjs/src/pro/krakenfutures.js +12 -12
  111. package/dist/cjs/src/pro/kucoin.js +12 -12
  112. package/dist/cjs/src/pro/lbank.js +16 -16
  113. package/dist/cjs/src/pro/luno.js +2 -2
  114. package/dist/cjs/src/pro/mexc.js +8 -8
  115. package/dist/cjs/src/pro/modetrade.js +3 -3
  116. package/dist/cjs/src/pro/mudrex.js +2 -2
  117. package/dist/cjs/src/pro/nado.js +3 -3
  118. package/dist/cjs/src/pro/ndax.js +6 -6
  119. package/dist/cjs/src/pro/okx.js +20 -20
  120. package/dist/cjs/src/pro/onetrading.js +14 -14
  121. package/dist/cjs/src/pro/p2b.js +5 -5
  122. package/dist/cjs/src/pro/pacifica.js +1 -1
  123. package/dist/cjs/src/pro/paradex.js +1 -1
  124. package/dist/cjs/src/pro/phemex.js +13 -13
  125. package/dist/cjs/src/pro/poloniex.js +17 -17
  126. package/dist/cjs/src/pro/toobit.js +2 -2
  127. package/dist/cjs/src/pro/upbit.js +4 -4
  128. package/dist/cjs/src/pro/weex.js +2 -2
  129. package/dist/cjs/src/pro/whitebit.js +12 -12
  130. package/dist/cjs/src/pro/woo.js +13 -13
  131. package/dist/cjs/src/pro/woofipro.js +3 -3
  132. package/dist/cjs/src/pro/xt.js +3 -3
  133. package/dist/cjs/src/tokocrypto.js +20 -20
  134. package/dist/cjs/src/upbit.js +12 -12
  135. package/dist/cjs/src/whitebit.js +15 -15
  136. package/dist/cjs/src/woo.js +3 -3
  137. package/dist/cjs/src/woofipro.js +14 -14
  138. package/dist/cjs/src/zaif.js +9 -3
  139. package/dist/cjs/src/zebpay.js +1 -1
  140. package/js/ccxt.d.ts +4 -1
  141. package/js/ccxt.js +3 -1
  142. package/js/src/abstract/prediction/sxbet.d.ts +41 -0
  143. package/js/src/abstract/prediction/sxbet.js +11 -0
  144. package/js/src/alpaca.d.ts +28 -33
  145. package/js/src/apex.d.ts +28 -42
  146. package/js/src/apex.js +1 -0
  147. package/js/src/aster.d.ts +58 -108
  148. package/js/src/aster.js +2 -2
  149. package/js/src/backpack.d.ts +34 -48
  150. package/js/src/base/Exchange.d.ts +304 -320
  151. package/js/src/base/Exchange.js +1 -1
  152. package/js/src/bigone.d.ts +24 -29
  153. package/js/src/bigone.js +2 -2
  154. package/js/src/binance.d.ts +112 -138
  155. package/js/src/binance.js +10 -10
  156. package/js/src/binancecoinm.d.ts +3 -2
  157. package/js/src/binanceusdm.d.ts +3 -2
  158. package/js/src/bingx.d.ts +65 -84
  159. package/js/src/bingx.js +3 -3
  160. package/js/src/bit2c.d.ts +13 -18
  161. package/js/src/bit2c.js +4 -4
  162. package/js/src/bitbank.d.ts +16 -21
  163. package/js/src/bitbank.js +15 -15
  164. package/js/src/bitbns.d.ts +15 -20
  165. package/js/src/bitfinex.d.ts +46 -51
  166. package/js/src/bitfinex.js +15 -15
  167. package/js/src/bitflyer.d.ts +20 -25
  168. package/js/src/bitget.d.ts +105 -93
  169. package/js/src/bitget.js +109 -73
  170. package/js/src/bithumb.d.ts +26 -31
  171. package/js/src/bitmex.d.ts +48 -65
  172. package/js/src/bitmex.js +7 -7
  173. package/js/src/bitopro.d.ts +25 -41
  174. package/js/src/bitopro.js +2 -2
  175. package/js/src/bitrue.d.ts +30 -45
  176. package/js/src/bitrue.js +6 -6
  177. package/js/src/bitso.d.ts +24 -29
  178. package/js/src/bitso.js +18 -18
  179. package/js/src/bitstamp.d.ts +36 -47
  180. package/js/src/bitstamp.js +5 -5
  181. package/js/src/bitteam.d.ts +22 -27
  182. package/js/src/bitteam.js +32 -32
  183. package/js/src/bittrade.d.ts +35 -46
  184. package/js/src/bittrade.js +10 -10
  185. package/js/src/bitvavo.d.ts +43 -48
  186. package/js/src/bitvavo.js +9 -9
  187. package/js/src/blockchaincom.d.ts +26 -31
  188. package/js/src/blockchaincom.js +2 -2
  189. package/js/src/blofin.d.ts +38 -43
  190. package/js/src/btcbox.d.ts +14 -19
  191. package/js/src/btcbox.js +2 -2
  192. package/js/src/btcmarkets.d.ts +25 -30
  193. package/js/src/btcmarkets.js +2 -2
  194. package/js/src/btcturk.d.ts +13 -18
  195. package/js/src/btcturk.js +2 -2
  196. package/js/src/btse.d.ts +44 -50
  197. package/js/src/btse.js +2 -2
  198. package/js/src/bullish.d.ts +35 -57
  199. package/js/src/bybit.d.ts +95 -106
  200. package/js/src/bybitid.js +4 -0
  201. package/js/src/bydfi.d.ts +37 -48
  202. package/js/src/cex.d.ts +29 -34
  203. package/js/src/coinbase.d.ts +66 -82
  204. package/js/src/coinbase.js +1 -1
  205. package/js/src/coinbaseexchange.d.ts +33 -43
  206. package/js/src/coinbaseexchange.js +13 -13
  207. package/js/src/coinbaseinternational.d.ts +34 -73
  208. package/js/src/coincheck.d.ts +13 -18
  209. package/js/src/coincheck.js +4 -4
  210. package/js/src/coinex.d.ts +63 -68
  211. package/js/src/coinex.js +10 -10
  212. package/js/src/coinmate.d.ts +15 -20
  213. package/js/src/coinmate.js +4 -4
  214. package/js/src/coinone.d.ts +14 -19
  215. package/js/src/coinone.js +4 -4
  216. package/js/src/coinsph.d.ts +32 -37
  217. package/js/src/coinsph.js +5 -5
  218. package/js/src/coinspot.d.ts +10 -15
  219. package/js/src/cryptocom.d.ts +48 -64
  220. package/js/src/cryptocom.js +5 -5
  221. package/js/src/cryptomus.d.ts +15 -23
  222. package/js/src/deepcoin.d.ts +43 -48
  223. package/js/src/delta.d.ts +43 -54
  224. package/js/src/deribit.d.ts +48 -69
  225. package/js/src/deribit.js +31 -31
  226. package/js/src/derive.d.ts +28 -42
  227. package/js/src/derive.js +1 -1
  228. package/js/src/digifinex.d.ts +54 -67
  229. package/js/src/digifinex.js +31 -31
  230. package/js/src/dydx.d.ts +26 -31
  231. package/js/src/extended.d.ts +51 -56
  232. package/js/src/foxbit.d.ts +34 -64
  233. package/js/src/gate.d.ts +94 -162
  234. package/js/src/gate.js +25 -25
  235. package/js/src/gemini.d.ts +33 -43
  236. package/js/src/gemini.js +5 -5
  237. package/js/src/grvt.d.ts +36 -47
  238. package/js/src/grvt.js +1 -1
  239. package/js/src/hashkey.d.ts +58 -78
  240. package/js/src/hibachi.d.ts +42 -52
  241. package/js/src/hibachi.js +5 -5
  242. package/js/src/hitbtc.d.ts +49 -56
  243. package/js/src/hitbtc.js +15 -15
  244. package/js/src/hollaex.d.ts +26 -31
  245. package/js/src/hollaex.js +15 -15
  246. package/js/src/htx.d.ts +80 -121
  247. package/js/src/htx.js +52 -52
  248. package/js/src/hyperliquid.d.ts +77 -127
  249. package/js/src/hyperliquid.js +2 -2
  250. package/js/src/independentreserve.d.ts +15 -20
  251. package/js/src/independentreserve.js +2 -2
  252. package/js/src/indodax.d.ts +19 -24
  253. package/js/src/indodax.js +8 -8
  254. package/js/src/kraken.d.ts +43 -55
  255. package/js/src/kraken.js +29 -29
  256. package/js/src/krakenfutures.d.ts +34 -39
  257. package/js/src/krakenfutures.js +16 -16
  258. package/js/src/kucoin.d.ts +121 -132
  259. package/js/src/kucoin.js +15 -15
  260. package/js/src/kucoinfutures.d.ts +4 -4
  261. package/js/src/latoken.d.ts +24 -29
  262. package/js/src/latoken.js +8 -8
  263. package/js/src/lbank.d.ts +40 -53
  264. package/js/src/lbank.js +31 -31
  265. package/js/src/lighter.d.ts +40 -45
  266. package/js/src/lighter.js +2 -2
  267. package/js/src/luno.d.ts +25 -30
  268. package/js/src/luno.js +2 -2
  269. package/js/src/mercado.d.ts +15 -20
  270. package/js/src/mercado.js +12 -12
  271. package/js/src/mexc.d.ts +70 -83
  272. package/js/src/mexc.js +27 -27
  273. package/js/src/modetrade.d.ts +43 -57
  274. package/js/src/modetrade.js +10 -10
  275. package/js/src/mudrex.d.ts +25 -35
  276. package/js/src/nado.d.ts +45 -50
  277. package/js/src/ndax.d.ts +27 -32
  278. package/js/src/ndax.js +4 -4
  279. package/js/src/okx.d.ts +97 -108
  280. package/js/src/okx.js +19 -20
  281. package/js/src/onetrading.d.ts +23 -31
  282. package/js/src/onetrading.js +7 -7
  283. package/js/src/p2b.d.ts +17 -22
  284. package/js/src/p2b.js +8 -8
  285. package/js/src/pacifica.d.ts +55 -73
  286. package/js/src/pacifica.js +9 -3
  287. package/js/src/paradex.d.ts +47 -68
  288. package/js/src/paymium.d.ts +12 -17
  289. package/js/src/paymium.js +2 -2
  290. package/js/src/phemex.d.ts +47 -52
  291. package/js/src/phemex.js +37 -37
  292. package/js/src/poloniex.d.ts +45 -50
  293. package/js/src/poloniex.js +14 -14
  294. package/js/src/prediction/sxbet.d.ts +595 -0
  295. package/js/src/prediction/sxbet.js +2708 -0
  296. package/js/src/pro/alpaca.d.ts +23 -23
  297. package/js/src/pro/alpaca.js +5 -5
  298. package/js/src/pro/apex.d.ts +28 -28
  299. package/js/src/pro/apex.js +6 -6
  300. package/js/src/pro/aster.d.ts +33 -33
  301. package/js/src/pro/aster.js +8 -8
  302. package/js/src/pro/backpack.d.ts +28 -28
  303. package/js/src/pro/backpack.js +1 -1
  304. package/js/src/pro/binance.d.ts +57 -57
  305. package/js/src/pro/binance.js +26 -26
  306. package/js/src/pro/bingx.d.ts +26 -26
  307. package/js/src/pro/bingx.js +11 -11
  308. package/js/src/pro/bitfinex.d.ts +25 -25
  309. package/js/src/pro/bitfinex.js +11 -11
  310. package/js/src/pro/bitget.d.ts +41 -41
  311. package/js/src/pro/bitget.js +20 -20
  312. package/js/src/pro/bithumb.d.ts +15 -15
  313. package/js/src/pro/bithumb.js +1 -1
  314. package/js/src/pro/bitmex.d.ts +29 -29
  315. package/js/src/pro/bitmex.js +12 -12
  316. package/js/src/pro/bitopro.d.ts +13 -13
  317. package/js/src/pro/bitopro.js +5 -5
  318. package/js/src/pro/bitrue.d.ts +25 -25
  319. package/js/src/pro/bitrue.js +7 -7
  320. package/js/src/pro/bitstamp.d.ts +21 -21
  321. package/js/src/pro/bitstamp.js +5 -5
  322. package/js/src/pro/bittrade.d.ts +19 -19
  323. package/js/src/pro/bittrade.js +11 -11
  324. package/js/src/pro/bitvavo.d.ts +62 -62
  325. package/js/src/pro/bitvavo.js +16 -16
  326. package/js/src/pro/blockchaincom.d.ts +19 -19
  327. package/js/src/pro/blockchaincom.js +5 -5
  328. package/js/src/pro/blofin.d.ts +23 -23
  329. package/js/src/pro/blofin.js +2 -2
  330. package/js/src/pro/bullish.d.ts +19 -25
  331. package/js/src/pro/bybit.d.ts +42 -45
  332. package/js/src/pro/bybit.js +21 -21
  333. package/js/src/pro/bydfi.d.ts +24 -24
  334. package/js/src/pro/bydfi.js +2 -2
  335. package/js/src/pro/cex.d.ts +37 -37
  336. package/js/src/pro/cex.js +19 -19
  337. package/js/src/pro/coinbase.d.ts +19 -19
  338. package/js/src/pro/coinbase.js +2 -2
  339. package/js/src/pro/coinbaseexchange.d.ts +25 -25
  340. package/js/src/pro/coinbaseexchange.js +9 -9
  341. package/js/src/pro/coinbaseinternational.d.ts +20 -20
  342. package/js/src/pro/coinbaseinternational.js +2 -2
  343. package/js/src/pro/coincheck.d.ts +5 -5
  344. package/js/src/pro/coincheck.js +2 -2
  345. package/js/src/pro/coinex.d.ts +24 -24
  346. package/js/src/pro/coinex.js +3 -3
  347. package/js/src/pro/coinone.d.ts +9 -11
  348. package/js/src/pro/coinone.js +6 -6
  349. package/js/src/pro/cryptocom.d.ts +40 -40
  350. package/js/src/pro/cryptocom.js +10 -10
  351. package/js/src/pro/deepcoin.d.ts +24 -32
  352. package/js/src/pro/deribit.d.ts +24 -24
  353. package/js/src/pro/deribit.js +13 -13
  354. package/js/src/pro/derive.d.ts +22 -22
  355. package/js/src/pro/derive.js +4 -4
  356. package/js/src/pro/dydx.d.ts +9 -9
  357. package/js/src/pro/dydx.js +1 -1
  358. package/js/src/pro/extended.d.ts +22 -22
  359. package/js/src/pro/extended.js +16 -10
  360. package/js/src/pro/gate.d.ts +50 -50
  361. package/js/src/pro/gate.js +10 -10
  362. package/js/src/pro/gemini.d.ts +26 -26
  363. package/js/src/pro/gemini.js +3 -3
  364. package/js/src/pro/grvt.d.ts +22 -22
  365. package/js/src/pro/grvt.js +2 -2
  366. package/js/src/pro/hashkey.d.ts +19 -19
  367. package/js/src/pro/hashkey.js +2 -2
  368. package/js/src/pro/hitbtc.d.ts +32 -32
  369. package/js/src/pro/hitbtc.js +6 -6
  370. package/js/src/pro/hollaex.d.ts +15 -17
  371. package/js/src/pro/hollaex.js +3 -3
  372. package/js/src/pro/htx.d.ts +36 -36
  373. package/js/src/pro/htx.js +28 -28
  374. package/js/src/pro/hyperliquid.d.ts +29 -31
  375. package/js/src/pro/hyperliquid.js +1 -1
  376. package/js/src/pro/independentreserve.d.ts +10 -10
  377. package/js/src/pro/independentreserve.js +2 -2
  378. package/js/src/pro/kraken.d.ts +41 -55
  379. package/js/src/pro/kraken.js +7 -7
  380. package/js/src/pro/krakenfutures.d.ts +32 -32
  381. package/js/src/pro/krakenfutures.js +12 -12
  382. package/js/src/pro/kucoin.d.ts +69 -72
  383. package/js/src/pro/kucoin.js +12 -12
  384. package/js/src/pro/kucoinfutures.d.ts +4 -4
  385. package/js/src/pro/lbank.d.ts +22 -22
  386. package/js/src/pro/lbank.js +16 -16
  387. package/js/src/pro/lighter.d.ts +27 -27
  388. package/js/src/pro/luno.d.ts +8 -8
  389. package/js/src/pro/luno.js +2 -2
  390. package/js/src/pro/mexc.d.ts +33 -33
  391. package/js/src/pro/mexc.js +8 -8
  392. package/js/src/pro/modetrade.d.ts +37 -39
  393. package/js/src/pro/modetrade.js +3 -3
  394. package/js/src/pro/mudrex.d.ts +8 -8
  395. package/js/src/pro/mudrex.js +2 -2
  396. package/js/src/pro/nado.d.ts +42 -46
  397. package/js/src/pro/nado.js +3 -3
  398. package/js/src/pro/ndax.d.ts +12 -12
  399. package/js/src/pro/ndax.js +6 -6
  400. package/js/src/pro/okx.d.ts +49 -49
  401. package/js/src/pro/okx.js +20 -20
  402. package/js/src/pro/onetrading.d.ts +28 -28
  403. package/js/src/pro/onetrading.js +14 -14
  404. package/js/src/pro/p2b.d.ts +15 -19
  405. package/js/src/pro/p2b.js +5 -5
  406. package/js/src/pro/pacifica.d.ts +22 -22
  407. package/js/src/pro/pacifica.js +1 -1
  408. package/js/src/pro/paradex.d.ts +18 -18
  409. package/js/src/pro/paradex.js +1 -1
  410. package/js/src/pro/phemex.d.ts +25 -25
  411. package/js/src/pro/phemex.js +13 -13
  412. package/js/src/pro/poloniex.d.ts +30 -32
  413. package/js/src/pro/poloniex.js +17 -17
  414. package/js/src/pro/toobit.d.ts +31 -31
  415. package/js/src/pro/toobit.js +2 -2
  416. package/js/src/pro/upbit.d.ts +24 -24
  417. package/js/src/pro/upbit.js +4 -4
  418. package/js/src/pro/weex.d.ts +39 -39
  419. package/js/src/pro/weex.js +2 -2
  420. package/js/src/pro/whitebit.d.ts +26 -30
  421. package/js/src/pro/whitebit.js +12 -12
  422. package/js/src/pro/woo.d.ts +44 -46
  423. package/js/src/pro/woo.js +13 -13
  424. package/js/src/pro/woofipro.d.ts +39 -41
  425. package/js/src/pro/woofipro.js +3 -3
  426. package/js/src/pro/xt.d.ts +20 -20
  427. package/js/src/pro/xt.js +3 -3
  428. package/js/src/revolutx.d.ts +17 -17
  429. package/js/src/tokocrypto.d.ts +25 -30
  430. package/js/src/tokocrypto.js +20 -20
  431. package/js/src/toobit.d.ts +45 -79
  432. package/js/src/upbit.d.ts +28 -61
  433. package/js/src/upbit.js +12 -12
  434. package/js/src/weex.d.ts +57 -68
  435. package/js/src/whitebit.d.ts +53 -64
  436. package/js/src/whitebit.js +15 -15
  437. package/js/src/woo.d.ts +61 -75
  438. package/js/src/woo.js +3 -3
  439. package/js/src/woofipro.d.ts +53 -67
  440. package/js/src/woofipro.js +14 -14
  441. package/js/src/xt.d.ts +57 -67
  442. package/js/src/zaif.d.ts +11 -16
  443. package/js/src/zaif.js +9 -3
  444. package/js/src/zebpay.d.ts +32 -37
  445. package/js/src/zebpay.js +1 -1
  446. package/package.json +2 -2
@@ -146,8 +146,8 @@ class deribit extends deribit$1["default"] {
146
146
  // }
147
147
  // }
148
148
  //
149
- const params = this.safeValue(message, 'params', {});
150
- const data = this.safeValue(params, 'data', {});
149
+ const params = this.safeDict(message, 'params', {});
150
+ const data = this.safeDict(params, 'data', {});
151
151
  this.balance['info'] = data;
152
152
  const currencyId = this.safeString(data, 'currency');
153
153
  const currencyCode = this.safeCurrencyCode(currencyId);
@@ -270,8 +270,8 @@ class deribit extends deribit$1["default"] {
270
270
  // }
271
271
  // }
272
272
  //
273
- const params = this.safeValue(message, 'params', {});
274
- const data = this.safeValue(params, 'data', {});
273
+ const params = this.safeDict(message, 'params', {});
274
+ const data = this.safeDict(params, 'data', {});
275
275
  const marketId = this.safeString(data, 'instrument_name');
276
276
  const symbol = this.safeSymbol(marketId);
277
277
  const ticker = this.parseTicker(data);
@@ -429,7 +429,7 @@ class deribit extends deribit$1["default"] {
429
429
  const symbol = this.safeSymbol(marketId);
430
430
  const market = this.safeMarket(marketId);
431
431
  const trades = this.safeList(params, 'data', []);
432
- if (this.safeValue(this.trades, symbol) === undefined) {
432
+ if (this.safeDict(this.trades, symbol) === undefined) {
433
433
  const limit = this.safeInteger(this.options, 'tradesLimit', 1000);
434
434
  this.trades[symbol] = new Cache.ArrayCache(limit);
435
435
  }
@@ -510,9 +510,9 @@ class deribit extends deribit$1["default"] {
510
510
  // }
511
511
  // }
512
512
  //
513
- const params = this.safeValue(message, 'params', {});
513
+ const params = this.safeDict(message, 'params', {});
514
514
  const channel = this.safeString(params, 'channel', '');
515
- const trades = this.safeValue(params, 'data', []);
515
+ const trades = this.safeList(params, 'data', []);
516
516
  let cachedTrades = this.myTrades;
517
517
  if (cachedTrades === undefined) {
518
518
  const limit = this.safeInteger(this.options, 'tradesLimit', 1000);
@@ -619,8 +619,8 @@ class deribit extends deribit$1["default"] {
619
619
  // }
620
620
  // }
621
621
  //
622
- const params = this.safeValue(message, 'params', {});
623
- const data = this.safeValue(params, 'data', {});
622
+ const params = this.safeDict(message, 'params', {});
623
+ const data = this.safeDict(params, 'data', {});
624
624
  const channel = this.safeString(params, 'channel');
625
625
  const parts = channel.split('.');
626
626
  let descriptor = '';
@@ -764,7 +764,7 @@ class deribit extends deribit$1["default"] {
764
764
  const limit = this.safeInteger(this.options, 'ordersLimit', 1000);
765
765
  this.orders = new Cache.ArrayCacheBySymbolById(limit);
766
766
  }
767
- const params = this.safeValue(message, 'params', {});
767
+ const params = this.safeDict(message, 'params', {});
768
768
  const channel = this.safeString(params, 'channel', '');
769
769
  const data = this.safeValue(params, 'data', {});
770
770
  let orders = [];
@@ -854,7 +854,7 @@ class deribit extends deribit$1["default"] {
854
854
  const timeframes = this.safeDict(wsOptions, 'timeframes', {});
855
855
  const unifiedTimeframe = this.findTimeframe(rawTimeframe, timeframes);
856
856
  this.ohlcvs[symbol] = this.safeDict(this.ohlcvs, symbol, {});
857
- if (this.safeValue(this.ohlcvs[symbol], unifiedTimeframe) === undefined) {
857
+ if (this.safeDict(this.ohlcvs[symbol], unifiedTimeframe) === undefined) {
858
858
  const limit = this.safeInteger(this.options, 'OHLCVLimit', 1000);
859
859
  this.ohlcvs[symbol][unifiedTimeframe] = new Cache.ArrayCacheByTimestamp(limit);
860
860
  }
@@ -1001,7 +1001,7 @@ class deribit extends deribit$1["default"] {
1001
1001
  if (error !== undefined) {
1002
1002
  throw new errors.ExchangeError(this.id + ' ' + this.json(error));
1003
1003
  }
1004
- const params = this.safeValue(message, 'params');
1004
+ const params = this.safeDict(message, 'params');
1005
1005
  const channel = this.safeString(params, 'channel');
1006
1006
  if (channel !== undefined) {
1007
1007
  const parts = channel.split('.');
@@ -1026,7 +1026,7 @@ class deribit extends deribit$1["default"] {
1026
1026
  }
1027
1027
  throw new errors.NotSupported(this.id + ' no handler found for this message ' + this.json(message));
1028
1028
  }
1029
- const result = this.safeValue(message, 'result', {});
1029
+ const result = this.safeDict(message, 'result', {});
1030
1030
  const accessToken = this.safeString(result, 'access_token');
1031
1031
  if (accessToken !== undefined) {
1032
1032
  this.handleAuthenticationMessage(client, message);
@@ -49,7 +49,7 @@ class derive extends derive$1["default"] {
49
49
  });
50
50
  }
51
51
  requestId(url) {
52
- const options = this.safeValue(this.options, 'requestId', {});
52
+ const options = this.safeDict(this.options, 'requestId', {});
53
53
  const previousValue = this.safeInteger(options, url, 0);
54
54
  const newValue = this.sum(previousValue, 1);
55
55
  this.options['requestId'][url] = newValue;
@@ -603,8 +603,8 @@ class derive extends derive$1["default"] {
603
603
  this.orders = new Cache.ArrayCacheBySymbolById(limit);
604
604
  }
605
605
  const cachedOrders = this.orders;
606
- const orders = this.safeValue(cachedOrders.hashmap, symbol, {});
607
- const order = (orderId === undefined) ? undefined : this.safeValue(orders, orderId);
606
+ const orders = this.safeDict(cachedOrders.hashmap, symbol, {});
607
+ const order = (orderId === undefined) ? undefined : this.safeDict(orders, orderId);
608
608
  if (order !== undefined) {
609
609
  const fee = this.safeValue(order, 'fee');
610
610
  if (fee !== undefined) {
@@ -760,7 +760,7 @@ class derive extends derive$1["default"] {
760
760
  if ('id' in message) {
761
761
  const id = this.safeString(message, 'id');
762
762
  const subscriptionsById = this.indexBy(client.subscriptions, 'id');
763
- const subscription = (id === undefined) ? {} : this.safeValue(subscriptionsById, id, {});
763
+ const subscription = (id === undefined) ? {} : this.safeDict(subscriptionsById, id, {});
764
764
  if ('method' in subscription) {
765
765
  if (subscription['method'] === 'public/login') {
766
766
  this.handleAuth(client, message);
@@ -378,7 +378,7 @@ class dydx extends dydx$1["default"] {
378
378
  const messageHash = 'ohlcv:' + symbol;
379
379
  const ohlcv = this.safeDict(candles, 0, content);
380
380
  const parsed = this.parseOHLCV(ohlcv, market);
381
- this.ohlcvs[symbol] = this.safeValue(this.ohlcvs, symbol, {});
381
+ this.ohlcvs[symbol] = this.safeDict(this.ohlcvs, symbol, {});
382
382
  let stored = this.safeValue(this.ohlcvs[symbol], timeframe);
383
383
  if (stored === undefined) {
384
384
  const limit = this.safeInteger(this.options, 'OHLCVLimit', 1000);
@@ -232,10 +232,16 @@ class extended extends extended$1["default"] {
232
232
  // "seq": 1
233
233
  // }
234
234
  //
235
+ // merge updates into the existing balance object instead of building a
236
+ // fresh one: a consumer awakened by an earlier message holds a reference
237
+ // to this.balance, and Client.resolve is a no-op while nobody is
238
+ // awaiting, so a replaced object would make updates landing in that
239
+ // window invisible to the consumer forever (issue #26773)
240
+ if (this.balance === undefined) {
241
+ this.balance = {};
242
+ }
235
243
  const data = this.safeDict(message, 'data', {});
236
- const result = {
237
- 'info': data,
238
- };
244
+ this.balance['info'] = data;
239
245
  const balance = this.safeDict(data, 'balance');
240
246
  if (balance !== undefined) {
241
247
  const currencyId = this.safeString(balance, 'collateralName');
@@ -244,7 +250,7 @@ class extended extends extended$1["default"] {
244
250
  const account = this.account();
245
251
  account['free'] = this.safeString(balance, 'availableForWithdrawal');
246
252
  account['total'] = this.safeString(balance, 'balance');
247
- result[code] = account;
253
+ this.balance[code] = account;
248
254
  }
249
255
  }
250
256
  const spotBalances = this.safeList(data, 'spotBalances', []);
@@ -256,13 +262,13 @@ class extended extends extended$1["default"] {
256
262
  const account = this.account();
257
263
  account['free'] = this.safeString(spotBalance, 'availableToWithdraw');
258
264
  account['total'] = this.safeString(spotBalance, 'balance');
259
- result[code] = account;
265
+ this.balance[code] = account;
260
266
  }
261
267
  }
262
268
  const timestamp = this.safeInteger(message, 'ts');
263
- result['timestamp'] = timestamp;
264
- result['datetime'] = this.iso8601(timestamp);
265
- this.balance = this.safeBalance(this.deepExtend(this.balance, result));
269
+ this.balance['timestamp'] = timestamp;
270
+ this.balance['datetime'] = this.iso8601(timestamp);
271
+ this.balance = this.safeBalance(this.balance);
266
272
  client.resolve(this.balance, 'balance');
267
273
  }
268
274
  /**
@@ -790,7 +796,7 @@ class extended extends extended$1["default"] {
790
796
  const candleType = this.safeString(subscription, 'candleType');
791
797
  const cacheKey = (candleType === 'trades') ? timeframe : timeframe + ':' + candleType;
792
798
  const messageHash = this.safeString(subscription, 'messageHash');
793
- this.ohlcvs[symbol] = this.safeValue(this.ohlcvs, symbol, {});
799
+ this.ohlcvs[symbol] = this.safeDict(this.ohlcvs, symbol, {});
794
800
  let stored = this.safeValue(this.ohlcvs[symbol], cacheKey);
795
801
  if (stored === undefined) {
796
802
  const defaultLimit = this.safeInteger(this.options, 'OHLCVLimit', 1000);
@@ -827,7 +833,7 @@ class extended extends extended$1["default"] {
827
833
  //
828
834
  // { "status": "ERROR", "error": { "code": 1001, "message": "Market not found." } }
829
835
  //
830
- const error = this.safeValue(message, 'error');
836
+ const error = this.safeDict(message, 'error');
831
837
  if (error === undefined) {
832
838
  return false;
833
839
  }
@@ -258,7 +258,7 @@ class gate extends gate$1["default"] {
258
258
  await this.loadMarkets();
259
259
  }
260
260
  const market = (symbol === undefined) ? undefined : this.market(symbol);
261
- const trigger = this.safeValueN(params, ['is_stop_order', 'stop', 'trigger'], false);
261
+ const trigger = this.safeBoolN(params, ['is_stop_order', 'stop', 'trigger'], false);
262
262
  params = this.omit(params, ['is_stop_order', 'stop', 'trigger']);
263
263
  const [type, query] = this.handleMarketTypeAndParams('cancelOrder', market, params);
264
264
  const [request, requestParams] = (type === 'spot' || type === 'margin') ? this.spotOrderPrepareRequest(market, trigger, query) : this.prepareRequest(market, type, query);
@@ -510,7 +510,7 @@ class gate extends gate$1["default"] {
510
510
  const messageHash = 'unsubscribe:orderbook' + ':' + symbol;
511
511
  return await this.unSubscribePublicMultiple(url, 'orderbook', [symbol], [messageHash], [subMessageHash], payload, channel, params);
512
512
  }
513
- handleOrderBookSubscription(client, message, subscription) {
513
+ handleOrderBookSubscription(client, message, subscription = undefined) {
514
514
  const symbol = this.safeString(subscription, 'symbol');
515
515
  const limit = this.safeInteger(subscription, 'limit');
516
516
  if (symbol !== undefined) {
@@ -635,7 +635,7 @@ class gate extends gate$1["default"] {
635
635
  const rawMarketType = this.safeString(channelParts, 0);
636
636
  const isSpot = rawMarketType === 'spot';
637
637
  const marketType = isSpot ? 'spot' : 'contract';
638
- const delta = this.safeValue(message, 'result');
638
+ const delta = this.safeDict(message, 'result');
639
639
  const deltaStart = this.safeInteger(delta, 'U');
640
640
  const deltaEnd = this.safeInteger(delta, 'u');
641
641
  const marketId = this.safeString(delta, 's');
@@ -711,8 +711,8 @@ class gate extends gate$1["default"] {
711
711
  orderbook['timestamp'] = timestamp;
712
712
  orderbook['datetime'] = this.iso8601(timestamp);
713
713
  orderbook['nonce'] = this.safeInteger(delta, 'u');
714
- const bids = this.safeValue(delta, 'b', []);
715
- const asks = this.safeValue(delta, 'a', []);
714
+ const bids = this.safeList(delta, 'b', []);
715
+ const asks = this.safeList(delta, 'a', []);
716
716
  const storedBids = orderbook['bids'];
717
717
  const storedAsks = orderbook['asks'];
718
718
  this.handleBidAsks(storedBids, bids);
@@ -923,7 +923,7 @@ class gate extends gate$1["default"] {
923
923
  const url = this.getUrlByMarket(market);
924
924
  const trades = await this.subscribePublicMultiple(url, messageHashes, marketIds, channel, params);
925
925
  if (this.newUpdates) {
926
- const first = this.safeValue(trades, 0);
926
+ const first = this.safeDict(trades, 0);
927
927
  const tradeSymbol = this.safeString(first, 'symbol');
928
928
  limit = trades.getLimit(tradeSymbol, limit);
929
929
  }
@@ -1616,7 +1616,7 @@ class gate extends gate$1["default"] {
1616
1616
  // ]
1617
1617
  // }
1618
1618
  //
1619
- const orders = this.safeValue(message, 'result', []);
1619
+ const orders = this.safeList(message, 'result', []);
1620
1620
  const channel = this.safeString(message, 'channel', '');
1621
1621
  const isTrigger = (channel.indexOf('autoorders') >= 0) || (channel.indexOf('priceorders') >= 0);
1622
1622
  const hashPrefix = isTrigger ? 'triggerOrders' : 'orders';
@@ -1631,7 +1631,7 @@ class gate extends gate$1["default"] {
1631
1631
  for (let i = 0; i < parsedOrders.length; i++) {
1632
1632
  const parsed = parsedOrders[i];
1633
1633
  // inject order status
1634
- const info = this.safeValue(parsed, 'info');
1634
+ const info = this.safeDict(parsed, 'info');
1635
1635
  const event = this.safeString(info, 'event');
1636
1636
  if (event === 'put' || event === 'update') {
1637
1637
  parsed['status'] = 'open';
@@ -1784,7 +1784,7 @@ class gate extends gate$1["default"] {
1784
1784
  const liquidation = this.parseWsLiquidation(rawLiquidation);
1785
1785
  cache.append(liquidation);
1786
1786
  const symbol = this.safeString(liquidation, 'symbol');
1787
- const symbolLiquidations = this.safeValue(cache, symbol, []);
1787
+ const symbolLiquidations = this.safeList(cache, symbol, []);
1788
1788
  client.resolve(symbolLiquidations, 'myLiquidations::' + symbol);
1789
1789
  }
1790
1790
  client.resolve(newLiquidations, 'myLiquidations');
@@ -2109,7 +2109,7 @@ class gate extends gate$1["default"] {
2109
2109
  return;
2110
2110
  }
2111
2111
  const channelParts = channel.split('.');
2112
- const channelType = this.safeValue(channelParts, 1);
2112
+ const channelType = this.safeString(channelParts, 1);
2113
2113
  const v4Methods = {
2114
2114
  'usertrades': this.handleMyTrades,
2115
2115
  'candlesticks': this.handleOHLCV,
@@ -220,7 +220,7 @@ class gemini extends gemini$1["default"] {
220
220
  //
221
221
  const marketId = this.safeStringLower(message, 'symbol');
222
222
  const market = this.safeMarket(marketId);
223
- const trades = this.safeValue(message, 'trades');
223
+ const trades = this.safeList(message, 'trades');
224
224
  if (trades !== undefined) {
225
225
  const symbol = market['symbol'];
226
226
  const tradesLimit = this.safeInteger(this.options, 'tradesLimit', 1000);
@@ -337,11 +337,11 @@ class gemini extends gemini$1["default"] {
337
337
  const symbol = this.safeSymbol(marketId, market);
338
338
  const changes = this.safeList(message, 'changes', []);
339
339
  const timeframe = this.findTimeframe(timeframeId);
340
- const ohlcvsBySymbol = this.safeValue(this.ohlcvs, symbol);
340
+ const ohlcvsBySymbol = this.safeDict(this.ohlcvs, symbol);
341
341
  if (ohlcvsBySymbol === undefined) {
342
342
  this.ohlcvs[symbol] = {};
343
343
  }
344
- let stored = this.safeValue(this.safeValue(this.ohlcvs, symbol), timeframe);
344
+ let stored = this.safeValue(this.safeDict(this.ohlcvs, symbol), timeframe);
345
345
  if (stored === undefined) {
346
346
  const limit = this.safeInteger(this.options, 'OHLCVLimit', 1000);
347
347
  stored = new Cache.ArrayCacheByTimestamp(limit);
@@ -322,7 +322,7 @@ class grvt extends grvt$1["default"] {
322
322
  };
323
323
  const trades = await this.subscribeMultiple(messageHashes, this.extend(params, request), rawHashes);
324
324
  if (this.newUpdates) {
325
- const first = this.safeValue(trades, 0);
325
+ const first = this.safeDict(trades, 0);
326
326
  const tradeSymbol = this.safeString(first, 'symbol');
327
327
  limit = trades.getLimit(tradeSymbol, limit);
328
328
  }
@@ -460,7 +460,7 @@ class grvt extends grvt$1["default"] {
460
460
  const timeframeId = secondPart.replace('-TRADE', '');
461
461
  const timeframe = this.findTimeframe(timeframeId);
462
462
  const messageHash = 'ohlcv::' + symbol + '::' + timeframe;
463
- this.ohlcvs[symbol] = this.safeValue(this.ohlcvs, symbol, {});
463
+ this.ohlcvs[symbol] = this.safeDict(this.ohlcvs, symbol, {});
464
464
  if (!(timeframe in this.ohlcvs[symbol])) {
465
465
  const limit = this.handleOption('watchOHLCV', 'limit', 1000);
466
466
  this.ohlcvs[symbol][timeframe] = new Cache.ArrayCacheByTimestamp(limit);
@@ -217,7 +217,7 @@ class hashkey extends hashkey$1["default"] {
217
217
  // }
218
218
  //
219
219
  const data = this.safeList(message, 'data', []);
220
- const ticker = this.parseTicker(this.safeDict(data, 0));
220
+ const ticker = this.parseTicker(this.safeDict(data, 0, {}));
221
221
  const symbol = ticker['symbol'];
222
222
  const messageHash = 'ticker:' + symbol;
223
223
  this.tickers[symbol] = ticker;
@@ -749,7 +749,7 @@ class hashkey extends hashkey$1["default"] {
749
749
  }
750
750
  async loadBalanceSnapshot(client, messageHash, type) {
751
751
  const response = await this.fetchBalance({ 'type': type });
752
- this.balance[type] = this.extend(response, this.safeValue(this.balance, type, {}));
752
+ this.balance[type] = this.extend(response, this.safeDict(this.balance, type, {}));
753
753
  // don't remove the future from the .futures cache
754
754
  if (messageHash in client.futures) {
755
755
  const future = client.futures[messageHash];
@@ -222,7 +222,7 @@ class hitbtc extends hitbtc$1["default"] {
222
222
  * @returns {object} an [order book structure]{@link https://docs.ccxt.com/?id=order-book-structure}
223
223
  */
224
224
  async watchOrderBook(symbol, limit = undefined, params = {}) {
225
- const options = this.safeValue(this.options, 'watchOrderBook');
225
+ const options = this.safeDict(this.options, 'watchOrderBook');
226
226
  const defaultMethod = this.safeString(options, 'method', 'orderbook/full');
227
227
  let name = this.safeString2(params, 'method', 'defaultMethod', defaultMethod);
228
228
  const depth = this.safeString(params, 'depth', '20');
@@ -345,7 +345,7 @@ class hitbtc extends hitbtc$1["default"] {
345
345
  await this.loadMarkets();
346
346
  }
347
347
  symbols = this.marketSymbols(symbols);
348
- const options = this.safeValue(this.options, 'watchTicker');
348
+ const options = this.safeDict(this.options, 'watchTicker');
349
349
  const defaultMethod = this.safeString(options, 'method', 'ticker/{speed}/batch');
350
350
  const method = this.safeString2(params, 'method', 'defaultMethod', defaultMethod);
351
351
  const speed = this.safeString(params, 'speed', '1s');
@@ -504,7 +504,7 @@ class hitbtc extends hitbtc$1["default"] {
504
504
  await this.loadMarkets();
505
505
  }
506
506
  symbols = this.marketSymbols(symbols, undefined, false);
507
- const options = this.safeValue(this.options, 'watchBidsAsks');
507
+ const options = this.safeDict(this.options, 'watchBidsAsks');
508
508
  const defaultMethod = this.safeString(options, 'method', 'orderbook/top/{speed}/batch');
509
509
  const method = this.safeString2(params, 'method', 'defaultMethod', defaultMethod);
510
510
  const speed = this.safeString(params, 'speed', '100ms');
@@ -778,7 +778,7 @@ class hitbtc extends hitbtc$1["default"] {
778
778
  const marketId = marketIds[i];
779
779
  const market = this.safeMarket(marketId);
780
780
  const symbol = market['symbol'];
781
- this.ohlcvs[symbol] = this.safeValue(this.ohlcvs, symbol, {});
781
+ this.ohlcvs[symbol] = this.safeDict(this.ohlcvs, symbol, {});
782
782
  let stored = this.safeValue(this.safeValue(this.ohlcvs, symbol), timeframe);
783
783
  if (stored === undefined) {
784
784
  const limit = this.safeInteger(this.options, 'OHLCVLimit', 1000);
@@ -1378,7 +1378,7 @@ class hitbtc extends hitbtc$1["default"] {
1378
1378
  // "result": true
1379
1379
  // }
1380
1380
  //
1381
- const success = this.safeValue(message, 'result');
1381
+ const success = this.safeBool(message, 'result');
1382
1382
  const messageHash = 'authenticated';
1383
1383
  if (success === true) {
1384
1384
  const future = this.safeValue(client.futures, messageHash);
@@ -1405,7 +1405,7 @@ class hitbtc extends hitbtc$1["default"] {
1405
1405
  // id: 1700228604325
1406
1406
  // }
1407
1407
  //
1408
- const error = this.safeValue(message, 'error');
1408
+ const error = this.safeDict(message, 'error');
1409
1409
  if (error !== undefined) {
1410
1410
  try {
1411
1411
  const code = this.safeValue(error, 'code');
@@ -101,7 +101,7 @@ class hollaex extends hollaex$1["default"] {
101
101
  if (symbol === undefined) {
102
102
  return;
103
103
  }
104
- const data = this.safeValue(message, 'data');
104
+ const data = this.safeDict(message, 'data');
105
105
  const timestamp = this.safeString(data, 'timestamp');
106
106
  const timestampMs = this.parse8601(timestamp);
107
107
  const snapshot = this.parseOrderBook(data, symbol, timestampMs);
@@ -170,7 +170,7 @@ class hollaex extends hollaex$1["default"] {
170
170
  stored = new Cache.ArrayCache(limit);
171
171
  this.trades[symbol] = stored;
172
172
  }
173
- const data = this.safeValue(message, 'data', []);
173
+ const data = this.safeList(message, 'data', []);
174
174
  const parsedTrades = this.parseTrades(data, market);
175
175
  for (let j = 0; j < parsedTrades.length; j++) {
176
176
  stored.append(parsedTrades[j]);
@@ -604,7 +604,7 @@ class hollaex extends hollaex$1["default"] {
604
604
  'wallet': this.handleBalance,
605
605
  'usertrade': this.handleMyTrades,
606
606
  };
607
- const topic = this.safeValue(message, 'topic');
607
+ const topic = this.safeString(message, 'topic');
608
608
  const method = this.safeValue(methods, topic);
609
609
  if (method !== undefined) {
610
610
  method.call(this, client, message);
@@ -222,7 +222,7 @@ class htx extends htx$1["default"] {
222
222
  // }
223
223
  // }
224
224
  //
225
- const tick = this.safeValue(message, 'tick', {});
225
+ const tick = this.safeDict(message, 'tick', {});
226
226
  const ch = this.safeString(message, 'ch');
227
227
  if (ch === undefined) {
228
228
  return message;
@@ -231,7 +231,7 @@ class htx extends htx$1["default"] {
231
231
  const marketId = this.safeString(parts, 1);
232
232
  const market = this.safeMarket(marketId);
233
233
  const ticker = this.parseTicker(tick, market);
234
- const timestamp = this.safeValue(message, 'ts');
234
+ const timestamp = this.safeInteger(message, 'ts');
235
235
  ticker['timestamp'] = timestamp;
236
236
  ticker['datetime'] = this.iso8601(timestamp);
237
237
  const symbol = ticker['symbol'];
@@ -311,8 +311,8 @@ class htx extends htx$1["default"] {
311
311
  // }
312
312
  // }
313
313
  //
314
- const tick = this.safeValue(message, 'tick', {});
315
- const data = this.safeValue(tick, 'data', {});
314
+ const tick = this.safeDict(message, 'tick', {});
315
+ const data = this.safeList(tick, 'data', []);
316
316
  const ch = this.safeString(message, 'ch');
317
317
  if (ch === undefined) {
318
318
  return message;
@@ -414,7 +414,7 @@ class htx extends htx$1["default"] {
414
414
  const symbol = market['symbol'];
415
415
  const interval = this.safeString(parts, 3);
416
416
  const timeframe = this.findTimeframe(interval);
417
- this.ohlcvs[symbol] = this.safeValue(this.ohlcvs, symbol, {});
417
+ this.ohlcvs[symbol] = this.safeDict(this.ohlcvs, symbol, {});
418
418
  let stored = this.safeValue(this.safeValue(this.ohlcvs, symbol), timeframe);
419
419
  if (stored === undefined) {
420
420
  const limit = this.safeInteger(this.options, 'OHLCVLimit', 1000);
@@ -538,11 +538,11 @@ class htx extends htx$1["default"] {
538
538
  const lastTimestamp = this.safeInteger(subscription, 'lastTimestamp');
539
539
  try {
540
540
  const orderbook = this.safeValue(this.orderbooks, symbol);
541
- const data = this.safeValue(message, 'data');
541
+ const data = this.safeDict(message, 'data');
542
542
  const messages = orderbook.cache;
543
- const firstMessage = this.safeValue(messages, 0, {});
543
+ const firstMessage = this.safeDict(messages, 0, {});
544
544
  const snapshot = this.parseOrderBook(data, symbol);
545
- const tick = this.safeValue(firstMessage, 'tick');
545
+ const tick = this.safeDict(firstMessage, 'tick');
546
546
  const sequence = this.safeInteger(tick, 'prevSeqNum');
547
547
  const nonce = this.safeInteger(data, 'seqNum');
548
548
  if (nonce === undefined) {
@@ -720,7 +720,7 @@ class htx extends htx$1["default"] {
720
720
  const market = this.safeMarket(marketId);
721
721
  const symbol = market['symbol'];
722
722
  const orderbook = this.orderbooks[symbol];
723
- const tick = this.safeValue(message, 'tick', {});
723
+ const tick = this.safeDict(message, 'tick', {});
724
724
  const seqNum = this.safeInteger(tick, 'seqNum');
725
725
  const prevSeqNum = this.safeInteger(tick, 'prevSeqNum');
726
726
  const event = this.safeString(tick, 'event');
@@ -740,8 +740,8 @@ class htx extends htx$1["default"] {
740
740
  const spotConditon = (market['spot'] === true) && (prevSeqNum === orderbook['nonce']);
741
741
  const nonSpotCondition = (market['contract'] === true) && (version !== undefined) && (version - 1 === orderbook['nonce']);
742
742
  if ((spotConditon === true) || (nonSpotCondition === true)) {
743
- const asks = this.safeValue(tick, 'asks', []);
744
- const bids = this.safeValue(tick, 'bids', []);
743
+ const asks = this.safeList(tick, 'asks', []);
744
+ const bids = this.safeList(tick, 'bids', []);
745
745
  this.handleDeltas(orderbook['asks'], asks);
746
746
  this.handleDeltas(orderbook['bids'], bids);
747
747
  orderbook['nonce'] = (spotConditon === true) ? seqNum : version;
@@ -890,7 +890,7 @@ class htx extends htx$1["default"] {
890
890
  const channelAndMessageHashAndParams = this.getV5LinearChannelAndMessageHash('trade', market, params);
891
891
  channel = this.safeString(channelAndMessageHashAndParams, 0);
892
892
  messageHash = this.safeString(channelAndMessageHashAndParams, 1);
893
- params = this.safeValue(channelAndMessageHashAndParams, 2, {});
893
+ params = this.safeDict(channelAndMessageHashAndParams, 2, {});
894
894
  }
895
895
  else {
896
896
  const channelAndMessageHash = this.getOrderChannelAndMessageHash(type, subType, market, params);
@@ -1021,7 +1021,7 @@ class htx extends htx$1["default"] {
1021
1021
  const channelAndMessageHashAndParams = this.getV5LinearChannelAndMessageHash('orders', market, params);
1022
1022
  channel = this.safeString(channelAndMessageHashAndParams, 0);
1023
1023
  messageHash = this.safeString(channelAndMessageHashAndParams, 1);
1024
- params = this.safeValue(channelAndMessageHashAndParams, 2, {});
1024
+ params = this.safeDict(channelAndMessageHashAndParams, 2, {});
1025
1025
  }
1026
1026
  else {
1027
1027
  const channelAndMessageHash = this.getOrderChannelAndMessageHash(type, subType, market, params);
@@ -1208,7 +1208,7 @@ class htx extends htx$1["default"] {
1208
1208
  // }
1209
1209
  //
1210
1210
  const messageHash = this.safeString2(message, 'ch', 'topic');
1211
- const data = this.safeValue(message, 'data');
1211
+ const data = this.safeDict(message, 'data');
1212
1212
  let marketId = this.safeString(message, 'contract_code');
1213
1213
  if (marketId === undefined) {
1214
1214
  marketId = this.safeString2(data, 'contract_code', 'symbol');
@@ -1552,7 +1552,7 @@ class htx extends htx$1["default"] {
1552
1552
  side = typeParts[0];
1553
1553
  type = typeParts[1];
1554
1554
  }
1555
- const aggressor = this.safeValue(trade, 'aggressor');
1555
+ const aggressor = this.safeBool(trade, 'aggressor');
1556
1556
  let takerOrMaker = undefined;
1557
1557
  if (aggressor !== undefined) {
1558
1558
  takerOrMaker = (aggressor === true) ? 'taker' : 'maker';
@@ -1627,7 +1627,7 @@ class htx extends htx$1["default"] {
1627
1627
  }
1628
1628
  const channelAndMessageHashAndParams = this.getV5LinearChannelAndMessageHash('positions', v5Market, params);
1629
1629
  channel = this.safeString(channelAndMessageHashAndParams, 0);
1630
- params = this.safeValue(channelAndMessageHashAndParams, 2, {});
1630
+ params = this.safeDict(channelAndMessageHashAndParams, 2, {});
1631
1631
  }
1632
1632
  const subscriptionParams = {
1633
1633
  'isV5': isV5Linear,
@@ -1725,7 +1725,7 @@ class htx extends htx$1["default"] {
1725
1725
  if (this.positions === undefined) {
1726
1726
  this.positions = {};
1727
1727
  }
1728
- const clientPositions = this.safeValue(this.positions, url);
1728
+ const clientPositions = this.safeDict(this.positions, url);
1729
1729
  if (clientPositions === undefined) {
1730
1730
  this.positions[url] = {};
1731
1731
  }
@@ -1756,14 +1756,14 @@ class htx extends htx$1["default"] {
1756
1756
  cache = new Cache.ArrayCacheBySymbolBySide();
1757
1757
  this.positions[url][marginMode] = cache;
1758
1758
  }
1759
- positionsByMarginMode[marginMode] = this.safeValue(positionsByMarginMode, marginMode, []);
1759
+ positionsByMarginMode[marginMode] = this.safeList(positionsByMarginMode, marginMode, []);
1760
1760
  positionsByMarginMode[marginMode].push(position);
1761
1761
  cache.append(position);
1762
1762
  }
1763
1763
  const marginModes = Object.keys(positionsByMarginMode);
1764
1764
  for (let i = 0; i < marginModes.length; i++) {
1765
1765
  const marginMode = marginModes[i];
1766
- const marginModePositions = this.safeValue(positionsByMarginMode, marginMode, []);
1766
+ const marginModePositions = this.safeList(positionsByMarginMode, marginMode, []);
1767
1767
  const messageHashes = this.findMessageHashes(client, marginMode + ':positions::');
1768
1768
  for (let j = 0; j < messageHashes.length; j++) {
1769
1769
  const messageHash = messageHashes[j];
@@ -1793,7 +1793,7 @@ class htx extends htx$1["default"] {
1793
1793
  [type, params] = this.handleMarketTypeAndParams('watchBalance', undefined, params);
1794
1794
  let subType = undefined;
1795
1795
  [subType, params] = this.handleSubTypeAndParams('watchBalance', undefined, params, 'linear');
1796
- const isUnifiedAccount = this.safeValue2(params, 'isUnifiedAccount', 'unified', false);
1796
+ const isUnifiedAccount = this.safeBool2(params, 'isUnifiedAccount', 'unified', false);
1797
1797
  params = this.omit(params, ['isUnifiedAccount', 'unified']);
1798
1798
  if (this.markets === undefined) {
1799
1799
  await this.loadMarkets();
@@ -2060,10 +2060,10 @@ class htx extends htx$1["default"] {
2060
2060
  if (dataLength === 0) {
2061
2061
  return;
2062
2062
  }
2063
- const first = this.safeValue(data, 0, {});
2063
+ const first = this.safeDict(data, 0, {});
2064
2064
  const splitTopic = topic.split('.');
2065
2065
  let messageHash = this.safeString(splitTopic, 0);
2066
- let subscription = this.safeValue2(client.subscriptions, messageHash, messageHash + '.*');
2066
+ let subscription = this.safeDict2(client.subscriptions, messageHash, messageHash + '.*');
2067
2067
  if (subscription === undefined) {
2068
2068
  // if subscription not found means that we subscribed to a specific currency/symbol
2069
2069
  // and we use the first data entry to find it
@@ -2075,7 +2075,7 @@ class htx extends htx$1["default"] {
2075
2075
  return;
2076
2076
  }
2077
2077
  messageHash += '.' + currencyId.toLowerCase();
2078
- subscription = this.safeValue(client.subscriptions, messageHash);
2078
+ subscription = this.safeDict(client.subscriptions, messageHash);
2079
2079
  }
2080
2080
  const subType = this.safeString(subscription, 'subType');
2081
2081
  if (topic === 'accounts_unify') {
@@ -2295,7 +2295,7 @@ class htx extends htx$1["default"] {
2295
2295
  // // ?
2296
2296
  // }
2297
2297
  //
2298
- const ch = this.safeValue(message, 'ch', '');
2298
+ const ch = this.safeString(message, 'ch', '');
2299
2299
  const parts = ch.split('.');
2300
2300
  const type = this.safeString(parts, 0);
2301
2301
  if (type === 'market') {
@@ -2362,7 +2362,7 @@ class htx extends htx$1["default"] {
2362
2362
  }
2363
2363
  const action = this.safeString(message, 'action');
2364
2364
  if (action === 'ping') {
2365
- const data = this.safeValue(message, 'data');
2365
+ const data = this.safeDict(message, 'data');
2366
2366
  const pingTs = this.safeInteger(data, 'ts');
2367
2367
  await client.send({ 'action': 'pong', 'data': { 'ts': pingTs } });
2368
2368
  return;
@@ -2444,7 +2444,7 @@ class htx extends htx$1["default"] {
2444
2444
  return false;
2445
2445
  }
2446
2446
  const subscriptionsById = this.indexBy(client.subscriptions, 'id');
2447
- const subscription = this.safeValue(subscriptionsById, id);
2447
+ const subscription = this.safeDict(subscriptionsById, id);
2448
2448
  if (subscription !== undefined) {
2449
2449
  const errorCode = this.safeString(message, 'err-code');
2450
2450
  try {
@@ -2707,7 +2707,7 @@ class htx extends htx$1["default"] {
2707
2707
  // this trades object is artificially created
2708
2708
  // in handleOrder
2709
2709
  const rawTrades = this.safeList(message, 'trades', []);
2710
- const marketId = this.safeValue(message, 'symbol');
2710
+ const marketId = this.safeString(message, 'symbol');
2711
2711
  const market = this.market(marketId);
2712
2712
  for (let i = 0; i < rawTrades.length; i++) {
2713
2713
  const trade = rawTrades[i];
@@ -2787,7 +2787,7 @@ class htx extends htx$1["default"] {
2787
2787
  const order = this.safeString2(trade, 'orderId', 'order_id');
2788
2788
  const timestamp = this.safeIntegerN(trade, ['tradeTime', 'updated_time', 'created_time']);
2789
2789
  const orderType = this.safeString2(trade, 'orderType', 'type');
2790
- const aggressor = this.safeValue(trade, 'aggressor');
2790
+ const aggressor = this.safeBool(trade, 'aggressor');
2791
2791
  let takerOrMaker = undefined;
2792
2792
  if (aggressor !== undefined) {
2793
2793
  takerOrMaker = (aggressor === true) ? 'taker' : 'maker';
@@ -1084,7 +1084,7 @@ class hyperliquid extends hyperliquid$1["default"] {
1084
1084
  if (this.balance === undefined) {
1085
1085
  this.balance = {};
1086
1086
  }
1087
- const topic = this.safeValue(message, 'channel');
1087
+ const topic = this.safeString(message, 'channel');
1088
1088
  const messageHash = topic + '::balance';
1089
1089
  let info = undefined;
1090
1090
  let rawBalances = [];