okx-api 2.0.7 → 3.0.0-beta.0

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 (382) hide show
  1. package/README.md +336 -11
  2. package/dist/cjs/constants/funding.js.map +1 -0
  3. package/dist/cjs/index.d.ts +43 -0
  4. package/dist/cjs/index.js +64 -0
  5. package/dist/cjs/index.js.map +1 -0
  6. package/dist/cjs/package.json +3 -0
  7. package/{lib → dist/cjs}/rest-client.d.ts +28 -15
  8. package/{lib → dist/cjs}/rest-client.js +41 -68
  9. package/dist/cjs/rest-client.js.map +1 -0
  10. package/dist/cjs/types/rest/client.d.ts +36 -0
  11. package/{lib → dist/cjs}/types/rest/client.js.map +1 -1
  12. package/{lib → dist/cjs}/types/rest/request/account.d.ts +1 -1
  13. package/dist/cjs/types/rest/request/account.js.map +1 -0
  14. package/{lib → dist/cjs}/types/rest/request/block-trading.d.ts +1 -1
  15. package/dist/cjs/types/rest/request/block-trading.js.map +1 -0
  16. package/dist/cjs/types/rest/request/convert.js.map +1 -0
  17. package/dist/cjs/types/rest/request/copy-trading.js.map +1 -0
  18. package/dist/cjs/types/rest/request/funding.js.map +1 -0
  19. package/dist/cjs/types/rest/request/grid-trading.js.map +1 -0
  20. package/dist/cjs/types/rest/request/public.js.map +1 -0
  21. package/dist/cjs/types/rest/request/recurring-buy.js.map +1 -0
  22. package/{lib → dist/cjs}/types/rest/request/shared.d.ts +1 -1
  23. package/dist/cjs/types/rest/request/shared.js.map +1 -0
  24. package/dist/cjs/types/rest/request/signal-bot.js.map +1 -0
  25. package/dist/cjs/types/rest/request/simple-earn.js.map +1 -0
  26. package/dist/cjs/types/rest/request/spread-trading.js.map +1 -0
  27. package/dist/cjs/types/rest/request/subaccount.js.map +1 -0
  28. package/{lib → dist/cjs}/types/rest/request/trade.d.ts +1 -1
  29. package/dist/cjs/types/rest/request/trade.js.map +1 -0
  30. package/{lib → dist/cjs}/types/rest/response/private-account.d.ts +1 -1
  31. package/dist/cjs/types/rest/response/private-account.js.map +1 -0
  32. package/{lib → dist/cjs}/types/rest/response/private-block-trading.d.ts +1 -1
  33. package/dist/cjs/types/rest/response/private-block-trading.js.map +1 -0
  34. package/dist/cjs/types/rest/response/private-copy-trading.js.map +1 -0
  35. package/dist/cjs/types/rest/response/private-flexible-loan.js.map +1 -0
  36. package/{lib → dist/cjs}/types/rest/response/private-funding.d.ts +1 -1
  37. package/dist/cjs/types/rest/response/private-funding.js.map +1 -0
  38. package/dist/cjs/types/rest/response/private-recurring-buy.js.map +1 -0
  39. package/dist/cjs/types/rest/response/private-signal-bot.js.map +1 -0
  40. package/dist/cjs/types/rest/response/private-spread-trading.js.map +1 -0
  41. package/dist/cjs/types/rest/response/private-subaccount.js.map +1 -0
  42. package/{lib → dist/cjs}/types/rest/response/private-trade.d.ts +1 -1
  43. package/dist/cjs/types/rest/response/private-trade.js.map +1 -0
  44. package/{lib → dist/cjs}/types/rest/response/public-data.d.ts +1 -1
  45. package/dist/cjs/types/rest/response/public-data.js.map +1 -0
  46. package/{lib → dist/cjs}/types/rest/shared.d.ts +2 -2
  47. package/dist/cjs/types/rest/shared.js.map +1 -0
  48. package/dist/cjs/types/shared.d.ts +13 -0
  49. package/{lib → dist/cjs}/types/shared.js.map +1 -1
  50. package/dist/cjs/types/websockets/ws-api-request.d.ts +61 -0
  51. package/dist/cjs/types/websockets/ws-api-request.js +3 -0
  52. package/dist/cjs/types/websockets/ws-api-request.js.map +1 -0
  53. package/dist/cjs/types/websockets/ws-api-response.d.ts +28 -0
  54. package/dist/cjs/types/websockets/ws-api-response.js +3 -0
  55. package/dist/cjs/types/websockets/ws-api-response.js.map +1 -0
  56. package/dist/cjs/types/websockets/ws-api.d.ts +139 -0
  57. package/dist/cjs/types/websockets/ws-api.js +38 -0
  58. package/dist/cjs/types/websockets/ws-api.js.map +1 -0
  59. package/{lib/types/websockets/event.d.ts → dist/cjs/types/websockets/ws-events.d.ts} +7 -1
  60. package/dist/cjs/types/websockets/ws-events.js +11 -0
  61. package/dist/cjs/types/websockets/ws-events.js.map +1 -0
  62. package/dist/cjs/types/websockets/ws-general.d.ts +48 -0
  63. package/dist/cjs/types/websockets/ws-general.js +3 -0
  64. package/dist/cjs/types/websockets/ws-general.js.map +1 -0
  65. package/{lib/types/websockets/request.d.ts → dist/cjs/types/websockets/ws-request.d.ts} +0 -22
  66. package/dist/cjs/types/websockets/ws-request.js +3 -0
  67. package/dist/cjs/types/websockets/ws-request.js.map +1 -0
  68. package/{lib → dist/cjs}/util/BaseRestClient.d.ts +1 -1
  69. package/dist/cjs/util/BaseRestClient.js +237 -0
  70. package/dist/cjs/util/BaseRestClient.js.map +1 -0
  71. package/dist/cjs/util/BaseWSClient.d.ts +198 -0
  72. package/dist/cjs/util/BaseWSClient.js +770 -0
  73. package/dist/cjs/util/BaseWSClient.js.map +1 -0
  74. package/dist/cjs/util/WsStore.d.ts +75 -0
  75. package/dist/cjs/util/WsStore.js +303 -0
  76. package/dist/cjs/util/WsStore.js.map +1 -0
  77. package/dist/cjs/util/WsStore.types.d.ts +51 -0
  78. package/dist/cjs/util/WsStore.types.js +14 -0
  79. package/dist/cjs/util/WsStore.types.js.map +1 -0
  80. package/dist/cjs/util/logger.d.ts +8 -0
  81. package/{lib → dist/cjs}/util/logger.js +3 -11
  82. package/dist/cjs/util/logger.js.map +1 -0
  83. package/{lib → dist/cjs}/util/requestUtils.d.ts +2 -1
  84. package/{lib → dist/cjs}/util/requestUtils.js +9 -1
  85. package/dist/cjs/util/requestUtils.js.map +1 -0
  86. package/{lib → dist/cjs}/util/typeGuards.d.ts +4 -2
  87. package/{lib → dist/cjs}/util/typeGuards.js +34 -0
  88. package/dist/cjs/util/typeGuards.js.map +1 -0
  89. package/dist/cjs/util/webCryptoAPI.d.ts +15 -0
  90. package/dist/cjs/util/webCryptoAPI.js +82 -0
  91. package/dist/cjs/util/webCryptoAPI.js.map +1 -0
  92. package/dist/cjs/util/websocket-util.d.ts +142 -0
  93. package/dist/cjs/util/websocket-util.js +533 -0
  94. package/dist/cjs/util/websocket-util.js.map +1 -0
  95. package/dist/cjs/websocket-api-client.d.ts +135 -0
  96. package/dist/cjs/websocket-api-client.js +171 -0
  97. package/dist/cjs/websocket-api-client.js.map +1 -0
  98. package/{lib/websocket-client.d.ts → dist/cjs/websocket-client-legacy.d.ts} +16 -38
  99. package/dist/cjs/websocket-client-legacy.js +524 -0
  100. package/dist/cjs/websocket-client-legacy.js.map +1 -0
  101. package/dist/cjs/websocket-client.d.ts +81 -0
  102. package/dist/cjs/websocket-client.js +548 -0
  103. package/dist/cjs/websocket-client.js.map +1 -0
  104. package/dist/mjs/constants/funding.d.ts +139 -0
  105. package/dist/mjs/constants/funding.js +140 -0
  106. package/dist/mjs/constants/funding.js.map +1 -0
  107. package/dist/mjs/index.d.ts +43 -0
  108. package/dist/mjs/index.js +48 -0
  109. package/dist/mjs/index.js.map +1 -0
  110. package/dist/mjs/package.json +3 -0
  111. package/dist/mjs/rest-client.d.ts +1173 -0
  112. package/dist/mjs/rest-client.js +1271 -0
  113. package/dist/mjs/rest-client.js.map +1 -0
  114. package/dist/mjs/types/rest/client.d.ts +36 -0
  115. package/dist/mjs/types/rest/client.js +2 -0
  116. package/{lib/types/websockets → dist/mjs/types/rest}/client.js.map +1 -1
  117. package/dist/mjs/types/rest/request/account.d.ts +144 -0
  118. package/dist/mjs/types/rest/request/account.js +2 -0
  119. package/dist/mjs/types/rest/request/account.js.map +1 -0
  120. package/dist/mjs/types/rest/request/block-trading.d.ts +76 -0
  121. package/dist/mjs/types/rest/request/block-trading.js +2 -0
  122. package/dist/mjs/types/rest/request/block-trading.js.map +1 -0
  123. package/dist/mjs/types/rest/request/convert.d.ts +19 -0
  124. package/dist/mjs/types/rest/request/convert.js +2 -0
  125. package/dist/mjs/types/rest/request/convert.js.map +1 -0
  126. package/dist/mjs/types/rest/request/copy-trading.d.ts +117 -0
  127. package/dist/mjs/types/rest/request/copy-trading.js +2 -0
  128. package/dist/mjs/types/rest/request/copy-trading.js.map +1 -0
  129. package/dist/mjs/types/rest/request/funding.d.ts +43 -0
  130. package/dist/mjs/types/rest/request/funding.js +2 -0
  131. package/dist/mjs/types/rest/request/funding.js.map +1 -0
  132. package/dist/mjs/types/rest/request/grid-trading.d.ts +66 -0
  133. package/dist/mjs/types/rest/request/grid-trading.js +2 -0
  134. package/dist/mjs/types/rest/request/grid-trading.js.map +1 -0
  135. package/dist/mjs/types/rest/request/public.d.ts +55 -0
  136. package/dist/mjs/types/rest/request/public.js +2 -0
  137. package/dist/mjs/types/rest/request/public.js.map +1 -0
  138. package/dist/mjs/types/rest/request/recurring-buy.d.ts +28 -0
  139. package/dist/mjs/types/rest/request/recurring-buy.js +2 -0
  140. package/dist/mjs/types/rest/request/recurring-buy.js.map +1 -0
  141. package/dist/mjs/types/rest/request/shared.d.ts +7 -0
  142. package/dist/mjs/types/rest/request/shared.js +2 -0
  143. package/dist/mjs/types/rest/request/shared.js.map +1 -0
  144. package/dist/mjs/types/rest/request/signal-bot.d.ts +97 -0
  145. package/dist/mjs/types/rest/request/signal-bot.js +2 -0
  146. package/dist/mjs/types/rest/request/signal-bot.js.map +1 -0
  147. package/dist/mjs/types/rest/request/simple-earn.d.ts +23 -0
  148. package/dist/mjs/types/rest/request/simple-earn.js +2 -0
  149. package/dist/mjs/types/rest/request/simple-earn.js.map +1 -0
  150. package/dist/mjs/types/rest/request/spread-trading.d.ts +69 -0
  151. package/dist/mjs/types/rest/request/spread-trading.js +2 -0
  152. package/dist/mjs/types/rest/request/spread-trading.js.map +1 -0
  153. package/dist/mjs/types/rest/request/subaccount.d.ts +33 -0
  154. package/dist/mjs/types/rest/request/subaccount.js +2 -0
  155. package/dist/mjs/types/rest/request/subaccount.js.map +1 -0
  156. package/dist/mjs/types/rest/request/trade.d.ts +194 -0
  157. package/dist/mjs/types/rest/request/trade.js +2 -0
  158. package/dist/mjs/types/rest/request/trade.js.map +1 -0
  159. package/dist/mjs/types/rest/response/private-account.d.ts +448 -0
  160. package/dist/mjs/types/rest/response/private-account.js +2 -0
  161. package/dist/mjs/types/rest/response/private-account.js.map +1 -0
  162. package/dist/mjs/types/rest/response/private-block-trading.d.ts +124 -0
  163. package/dist/mjs/types/rest/response/private-block-trading.js +2 -0
  164. package/dist/mjs/types/rest/response/private-block-trading.js.map +1 -0
  165. package/dist/mjs/types/rest/response/private-copy-trading.d.ts +259 -0
  166. package/dist/mjs/types/rest/response/private-copy-trading.js +2 -0
  167. package/dist/mjs/types/rest/response/private-copy-trading.js.map +1 -0
  168. package/dist/mjs/types/rest/response/private-flexible-loan.d.ts +72 -0
  169. package/dist/mjs/types/rest/response/private-flexible-loan.js +2 -0
  170. package/dist/mjs/types/rest/response/private-flexible-loan.js.map +1 -0
  171. package/dist/mjs/types/rest/response/private-funding.d.ts +102 -0
  172. package/dist/mjs/types/rest/response/private-funding.js +2 -0
  173. package/dist/mjs/types/rest/response/private-funding.js.map +1 -0
  174. package/dist/mjs/types/rest/response/private-recurring-buy.d.ts +63 -0
  175. package/dist/mjs/types/rest/response/private-recurring-buy.js +2 -0
  176. package/dist/mjs/types/rest/response/private-recurring-buy.js.map +1 -0
  177. package/dist/mjs/types/rest/response/private-signal-bot.d.ts +22 -0
  178. package/dist/mjs/types/rest/response/private-signal-bot.js +2 -0
  179. package/dist/mjs/types/rest/response/private-signal-bot.js.map +1 -0
  180. package/dist/mjs/types/rest/response/private-spread-trading.d.ts +126 -0
  181. package/dist/mjs/types/rest/response/private-spread-trading.js +2 -0
  182. package/dist/mjs/types/rest/response/private-spread-trading.js.map +1 -0
  183. package/dist/mjs/types/rest/response/private-subaccount.d.ts +80 -0
  184. package/dist/mjs/types/rest/response/private-subaccount.js +2 -0
  185. package/dist/mjs/types/rest/response/private-subaccount.js.map +1 -0
  186. package/dist/mjs/types/rest/response/private-trade.d.ts +355 -0
  187. package/dist/mjs/types/rest/response/private-trade.js +2 -0
  188. package/dist/mjs/types/rest/response/private-trade.js.map +1 -0
  189. package/dist/mjs/types/rest/response/public-data.d.ts +174 -0
  190. package/dist/mjs/types/rest/response/public-data.js +2 -0
  191. package/dist/mjs/types/rest/response/public-data.js.map +1 -0
  192. package/dist/mjs/types/rest/shared.d.ts +45 -0
  193. package/dist/mjs/types/rest/shared.js +2 -0
  194. package/dist/mjs/types/rest/shared.js.map +1 -0
  195. package/dist/mjs/types/shared.d.ts +13 -0
  196. package/dist/mjs/types/shared.js +2 -0
  197. package/{lib/types/rest → dist/mjs/types}/shared.js.map +1 -1
  198. package/dist/mjs/types/websockets/ws-api-request.d.ts +61 -0
  199. package/dist/mjs/types/websockets/ws-api-request.js +2 -0
  200. package/dist/mjs/types/websockets/ws-api-request.js.map +1 -0
  201. package/dist/mjs/types/websockets/ws-api-response.d.ts +28 -0
  202. package/dist/mjs/types/websockets/ws-api-response.js +2 -0
  203. package/dist/mjs/types/websockets/ws-api-response.js.map +1 -0
  204. package/dist/mjs/types/websockets/ws-api.d.ts +139 -0
  205. package/dist/mjs/types/websockets/ws-api.js +35 -0
  206. package/dist/mjs/types/websockets/ws-api.js.map +1 -0
  207. package/dist/mjs/types/websockets/ws-events.d.ts +33 -0
  208. package/dist/mjs/types/websockets/ws-events.js +8 -0
  209. package/dist/mjs/types/websockets/ws-events.js.map +1 -0
  210. package/dist/mjs/types/websockets/ws-general.d.ts +48 -0
  211. package/dist/mjs/types/websockets/ws-general.js +2 -0
  212. package/dist/mjs/types/websockets/ws-general.js.map +1 -0
  213. package/dist/mjs/types/websockets/ws-request.d.ts +93 -0
  214. package/dist/mjs/types/websockets/ws-request.js +2 -0
  215. package/dist/mjs/types/websockets/ws-request.js.map +1 -0
  216. package/dist/mjs/util/BaseRestClient.d.ts +29 -0
  217. package/dist/mjs/util/BaseRestClient.js +230 -0
  218. package/dist/mjs/util/BaseRestClient.js.map +1 -0
  219. package/dist/mjs/util/BaseWSClient.d.ts +198 -0
  220. package/dist/mjs/util/BaseWSClient.js +763 -0
  221. package/dist/mjs/util/BaseWSClient.js.map +1 -0
  222. package/dist/mjs/util/WsStore.d.ts +75 -0
  223. package/dist/mjs/util/WsStore.js +298 -0
  224. package/dist/mjs/util/WsStore.js.map +1 -0
  225. package/dist/mjs/util/WsStore.types.d.ts +51 -0
  226. package/dist/mjs/util/WsStore.types.js +11 -0
  227. package/dist/mjs/util/WsStore.types.js.map +1 -0
  228. package/dist/mjs/util/logger.d.ts +8 -0
  229. package/dist/mjs/util/logger.js +14 -0
  230. package/dist/mjs/util/logger.js.map +1 -0
  231. package/dist/mjs/util/requestUtils.d.ts +8 -0
  232. package/dist/mjs/util/requestUtils.js +51 -0
  233. package/dist/mjs/util/requestUtils.js.map +1 -0
  234. package/dist/mjs/util/typeGuards.d.ts +19 -0
  235. package/dist/mjs/util/typeGuards.js +85 -0
  236. package/dist/mjs/util/typeGuards.js.map +1 -0
  237. package/dist/mjs/util/webCryptoAPI.d.ts +15 -0
  238. package/dist/mjs/util/webCryptoAPI.js +77 -0
  239. package/dist/mjs/util/webCryptoAPI.js.map +1 -0
  240. package/dist/mjs/util/websocket-util.d.ts +142 -0
  241. package/dist/mjs/util/websocket-util.js +517 -0
  242. package/dist/mjs/util/websocket-util.js.map +1 -0
  243. package/dist/mjs/websocket-api-client.d.ts +135 -0
  244. package/dist/mjs/websocket-api-client.js +167 -0
  245. package/dist/mjs/websocket-api-client.js.map +1 -0
  246. package/dist/mjs/websocket-client-legacy.d.ts +76 -0
  247. package/dist/mjs/websocket-client-legacy.js +517 -0
  248. package/dist/mjs/websocket-client-legacy.js.map +1 -0
  249. package/dist/mjs/websocket-client.d.ts +81 -0
  250. package/dist/mjs/websocket-client.js +544 -0
  251. package/dist/mjs/websocket-client.js.map +1 -0
  252. package/llms.txt +5604 -3719
  253. package/package.json +28 -13
  254. package/index.js +0 -1
  255. package/lib/constants/funding.js.map +0 -1
  256. package/lib/constants/index.d.ts +0 -1
  257. package/lib/constants/index.js +0 -18
  258. package/lib/constants/index.js.map +0 -1
  259. package/lib/index.d.ts +0 -5
  260. package/lib/index.js +0 -22
  261. package/lib/index.js.map +0 -1
  262. package/lib/rest-client.js.map +0 -1
  263. package/lib/types/index.d.ts +0 -3
  264. package/lib/types/index.js +0 -20
  265. package/lib/types/index.js.map +0 -1
  266. package/lib/types/rest/client.d.ts +0 -20
  267. package/lib/types/rest/index.d.ts +0 -4
  268. package/lib/types/rest/index.js +0 -21
  269. package/lib/types/rest/index.js.map +0 -1
  270. package/lib/types/rest/request/account.js.map +0 -1
  271. package/lib/types/rest/request/announement.d.ts +0 -0
  272. package/lib/types/rest/request/announement.js +0 -1
  273. package/lib/types/rest/request/announement.js.map +0 -1
  274. package/lib/types/rest/request/block-trading.js.map +0 -1
  275. package/lib/types/rest/request/convert.js.map +0 -1
  276. package/lib/types/rest/request/copy-trading.js.map +0 -1
  277. package/lib/types/rest/request/funding.js.map +0 -1
  278. package/lib/types/rest/request/grid-trading.js.map +0 -1
  279. package/lib/types/rest/request/index.d.ts +0 -14
  280. package/lib/types/rest/request/index.js +0 -31
  281. package/lib/types/rest/request/index.js.map +0 -1
  282. package/lib/types/rest/request/public.js.map +0 -1
  283. package/lib/types/rest/request/recurring-buy.js.map +0 -1
  284. package/lib/types/rest/request/shared.js.map +0 -1
  285. package/lib/types/rest/request/signal-bot.js.map +0 -1
  286. package/lib/types/rest/request/simple-earn.js.map +0 -1
  287. package/lib/types/rest/request/spread-trading.js.map +0 -1
  288. package/lib/types/rest/request/subaccount.js.map +0 -1
  289. package/lib/types/rest/request/trade.js.map +0 -1
  290. package/lib/types/rest/response/index.d.ts +0 -11
  291. package/lib/types/rest/response/index.js +0 -28
  292. package/lib/types/rest/response/index.js.map +0 -1
  293. package/lib/types/rest/response/private-account.js.map +0 -1
  294. package/lib/types/rest/response/private-block-trading.js.map +0 -1
  295. package/lib/types/rest/response/private-copy-trading.js.map +0 -1
  296. package/lib/types/rest/response/private-flexible-loan.js.map +0 -1
  297. package/lib/types/rest/response/private-funding.js.map +0 -1
  298. package/lib/types/rest/response/private-recurring-buy.js.map +0 -1
  299. package/lib/types/rest/response/private-signal-bot.js.map +0 -1
  300. package/lib/types/rest/response/private-spread-trading.js.map +0 -1
  301. package/lib/types/rest/response/private-subaccount.js.map +0 -1
  302. package/lib/types/rest/response/private-trade.js.map +0 -1
  303. package/lib/types/rest/response/public-data.js.map +0 -1
  304. package/lib/types/shared.d.ts +0 -6
  305. package/lib/types/websockets/client.d.ts +0 -22
  306. package/lib/types/websockets/client.js +0 -3
  307. package/lib/types/websockets/event.js +0 -3
  308. package/lib/types/websockets/event.js.map +0 -1
  309. package/lib/types/websockets/index.d.ts +0 -3
  310. package/lib/types/websockets/index.js +0 -20
  311. package/lib/types/websockets/index.js.map +0 -1
  312. package/lib/types/websockets/request.js +0 -3
  313. package/lib/types/websockets/request.js.map +0 -1
  314. package/lib/util/BaseRestClient.js +0 -217
  315. package/lib/util/BaseRestClient.js.map +0 -1
  316. package/lib/util/WsStore.d.ts +0 -66
  317. package/lib/util/WsStore.js +0 -168
  318. package/lib/util/WsStore.js.map +0 -1
  319. package/lib/util/browser-support.d.ts +0 -6
  320. package/lib/util/browser-support.js +0 -48
  321. package/lib/util/browser-support.js.map +0 -1
  322. package/lib/util/index.d.ts +0 -4
  323. package/lib/util/index.js +0 -21
  324. package/lib/util/index.js.map +0 -1
  325. package/lib/util/logger.d.ts +0 -9
  326. package/lib/util/logger.js.map +0 -1
  327. package/lib/util/node-support.d.ts +0 -1
  328. package/lib/util/node-support.js +0 -8
  329. package/lib/util/node-support.js.map +0 -1
  330. package/lib/util/requestUtils.js.map +0 -1
  331. package/lib/util/typeGuards.js.map +0 -1
  332. package/lib/util/websocket-util.d.ts +0 -35
  333. package/lib/util/websocket-util.js +0 -282
  334. package/lib/util/websocket-util.js.map +0 -1
  335. package/lib/websocket-client.js +0 -472
  336. package/lib/websocket-client.js.map +0 -1
  337. /package/{lib → dist/cjs}/constants/funding.d.ts +0 -0
  338. /package/{lib → dist/cjs}/constants/funding.js +0 -0
  339. /package/{lib → dist/cjs}/types/rest/client.js +0 -0
  340. /package/{lib → dist/cjs}/types/rest/request/account.js +0 -0
  341. /package/{lib → dist/cjs}/types/rest/request/block-trading.js +0 -0
  342. /package/{lib → dist/cjs}/types/rest/request/convert.d.ts +0 -0
  343. /package/{lib → dist/cjs}/types/rest/request/convert.js +0 -0
  344. /package/{lib → dist/cjs}/types/rest/request/copy-trading.d.ts +0 -0
  345. /package/{lib → dist/cjs}/types/rest/request/copy-trading.js +0 -0
  346. /package/{lib → dist/cjs}/types/rest/request/funding.d.ts +0 -0
  347. /package/{lib → dist/cjs}/types/rest/request/funding.js +0 -0
  348. /package/{lib → dist/cjs}/types/rest/request/grid-trading.d.ts +0 -0
  349. /package/{lib → dist/cjs}/types/rest/request/grid-trading.js +0 -0
  350. /package/{lib → dist/cjs}/types/rest/request/public.d.ts +0 -0
  351. /package/{lib → dist/cjs}/types/rest/request/public.js +0 -0
  352. /package/{lib → dist/cjs}/types/rest/request/recurring-buy.d.ts +0 -0
  353. /package/{lib → dist/cjs}/types/rest/request/recurring-buy.js +0 -0
  354. /package/{lib → dist/cjs}/types/rest/request/shared.js +0 -0
  355. /package/{lib → dist/cjs}/types/rest/request/signal-bot.d.ts +0 -0
  356. /package/{lib → dist/cjs}/types/rest/request/signal-bot.js +0 -0
  357. /package/{lib → dist/cjs}/types/rest/request/simple-earn.d.ts +0 -0
  358. /package/{lib → dist/cjs}/types/rest/request/simple-earn.js +0 -0
  359. /package/{lib → dist/cjs}/types/rest/request/spread-trading.d.ts +0 -0
  360. /package/{lib → dist/cjs}/types/rest/request/spread-trading.js +0 -0
  361. /package/{lib → dist/cjs}/types/rest/request/subaccount.d.ts +0 -0
  362. /package/{lib → dist/cjs}/types/rest/request/subaccount.js +0 -0
  363. /package/{lib → dist/cjs}/types/rest/request/trade.js +0 -0
  364. /package/{lib → dist/cjs}/types/rest/response/private-account.js +0 -0
  365. /package/{lib → dist/cjs}/types/rest/response/private-block-trading.js +0 -0
  366. /package/{lib → dist/cjs}/types/rest/response/private-copy-trading.d.ts +0 -0
  367. /package/{lib → dist/cjs}/types/rest/response/private-copy-trading.js +0 -0
  368. /package/{lib → dist/cjs}/types/rest/response/private-flexible-loan.d.ts +0 -0
  369. /package/{lib → dist/cjs}/types/rest/response/private-flexible-loan.js +0 -0
  370. /package/{lib → dist/cjs}/types/rest/response/private-funding.js +0 -0
  371. /package/{lib → dist/cjs}/types/rest/response/private-recurring-buy.d.ts +0 -0
  372. /package/{lib → dist/cjs}/types/rest/response/private-recurring-buy.js +0 -0
  373. /package/{lib → dist/cjs}/types/rest/response/private-signal-bot.d.ts +0 -0
  374. /package/{lib → dist/cjs}/types/rest/response/private-signal-bot.js +0 -0
  375. /package/{lib → dist/cjs}/types/rest/response/private-spread-trading.d.ts +0 -0
  376. /package/{lib → dist/cjs}/types/rest/response/private-spread-trading.js +0 -0
  377. /package/{lib → dist/cjs}/types/rest/response/private-subaccount.d.ts +0 -0
  378. /package/{lib → dist/cjs}/types/rest/response/private-subaccount.js +0 -0
  379. /package/{lib → dist/cjs}/types/rest/response/private-trade.js +0 -0
  380. /package/{lib → dist/cjs}/types/rest/response/public-data.js +0 -0
  381. /package/{lib → dist/cjs}/types/rest/shared.js +0 -0
  382. /package/{lib → dist/cjs}/types/shared.js +0 -0
@@ -0,0 +1,517 @@
1
+ import { WS_API_TAG_OPERATIONS, } from '../types/websockets/ws-api.js';
2
+ import { programId } from './requestUtils.js';
3
+ import { neverGuard } from './typeGuards.js';
4
+ export const WS_LOGGER_CATEGORY = { category: 'okx-ws' };
5
+ export const WS_BASE_URL_MAP = {
6
+ prod: {
7
+ live: {
8
+ public: 'wss://ws.okx.com:8443/ws/v5/public',
9
+ private: 'wss://ws.okx.com:8443/ws/v5/private',
10
+ // Some channels require business suffix: https://www.okx.com/help/changes-to-v5-api-websocket-subscription-parameter-and-url
11
+ business: 'wss://ws.okx.com:8443/ws/v5/business',
12
+ },
13
+ demo: {
14
+ public: 'wss://wspap.okx.com:8443/ws/v5/public',
15
+ private: 'wss://wspap.okx.com:8443/ws/v5/private',
16
+ business: 'wss://wspap.okx.com:8443/ws/v5/business?brokerId=9999',
17
+ },
18
+ },
19
+ // Exactly the same as "prod"
20
+ // also known as "www.okx.com", the default: https://www.okx.com/docs-v5/en/#overview-production-trading-services
21
+ GLOBAL: {
22
+ live: {
23
+ public: 'wss://ws.okx.com:8443/ws/v5/public',
24
+ private: 'wss://ws.okx.com:8443/ws/v5/private',
25
+ // Some channels require business suffix: https://www.okx.com/help/changes-to-v5-api-websocket-subscription-parameter-and-url
26
+ business: 'wss://ws.okx.com:8443/ws/v5/business',
27
+ },
28
+ demo: {
29
+ public: 'wss://wspap.okx.com:8443/ws/v5/public',
30
+ private: 'wss://wspap.okx.com:8443/ws/v5/private',
31
+ business: 'wss://wspap.okx.com:8443/ws/v5/business?brokerId=9999',
32
+ },
33
+ },
34
+ // also known as "my.okx.com" https://my.okx.com/docs-v5/en/#overview-production-trading-services
35
+ EEA: {
36
+ live: {
37
+ public: 'wss://wseea.okx.com:8443/ws/v5/public',
38
+ private: 'wss://wseea.okx.com:8443/ws/v5/private',
39
+ // Some channels require business suffix: https://www.okx.com/help/changes-to-v5-api-websocket-subscription-parameter-and-url
40
+ business: 'wss://wseea.okx.com:8443/ws/v5/business',
41
+ },
42
+ demo: {
43
+ public: 'wss://wseeapap.okx.com:8443/ws/v5/public',
44
+ private: 'wss://wseeapap.okx.com:8443/ws/v5/private',
45
+ business: 'wss://wseeapap.okx.com:8443/ws/v5/business?brokerId=9999',
46
+ },
47
+ },
48
+ // also known as "app.okx.com" https://app.okx.com/docs-v5/en/#overview-production-trading-services
49
+ US: {
50
+ live: {
51
+ public: 'wss://wsus.okx.com:8443/ws/v5/public',
52
+ private: 'wss://wsus.okx.com:8443/ws/v5/private',
53
+ // Some channels require business suffix: https://www.okx.com/help/changes-to-v5-api-websocket-subscription-parameter-and-url
54
+ business: 'wss://wsus.okx.com:8443/ws/v5/business',
55
+ },
56
+ demo: {
57
+ public: 'wss://wsuspap.okx.com:8443/ws/v5/public',
58
+ private: 'wss://wsuspap.okx.com:8443/ws/v5/private',
59
+ business: 'wss://wsuspap.okx.com:8443/ws/v5/business?brokerId=9999',
60
+ },
61
+ },
62
+ };
63
+ export const WS_KEY_MAP = {
64
+ // OKX Global: https://www.okx.com/docs-v5/en/#overview-production-trading-services
65
+ /**
66
+ * Public WS connection for OKX Global (www.okx.com), does not require auth.
67
+ */
68
+ prodPublic: 'prodPublic',
69
+ /**
70
+ * Private WS connection for OKX Global (www.okx.com), requires auth.
71
+ */
72
+ prodPrivate: 'prodPrivate',
73
+ /**
74
+ * Business WS connection for OKX Global (www.okx.com), sometimes requires auth.
75
+ */
76
+ prodBusiness: 'prodBusiness',
77
+ /**
78
+ * Public DEMO WS connection for OKX Global (www.okx.com), does not require auth.
79
+ */
80
+ prodDemoPublic: 'prodDemoPublic',
81
+ /**
82
+ * Private DEMO WS connection for OKX Global (www.okx.com), requires auth.
83
+ */
84
+ prodDemoPrivate: 'prodDemoPrivate',
85
+ /**
86
+ * Business DEMO WS connection for OKX Global (www.okx.com), sometimes requires auth.
87
+ */
88
+ prodDemoBusiness: 'prodDemoBusiness',
89
+ // Also known as "my.okx.com" https://my.okx.com/docs-v5/en/#overview-production-trading-services
90
+ /**
91
+ * Public WS connection for OKX EEA (my.okx.com), does not require auth.
92
+ */
93
+ eeaLivePublic: 'eeaLivePublic',
94
+ /**
95
+ * Private WS connection for OKX EEA (my.okx.com), requires auth.
96
+ */
97
+ eeaLivePrivate: 'eeaLivePrivate',
98
+ /**
99
+ * Business WS connection for OKX EEA (my.okx.com), sometimes requires auth.
100
+ */
101
+ eeaLiveBusiness: 'eeaLiveBusiness',
102
+ /**
103
+ * Public DEMO WS connection for OKX EEA (my.okx.com), does not require auth.
104
+ */
105
+ eeaDemoPublic: 'eeaDemoPublic',
106
+ /**
107
+ * Private DEMO WS connection for OKX EEA (my.okx.com), requires auth.
108
+ */
109
+ eeaDemoPrivate: 'eeaDemoPrivate',
110
+ /**
111
+ * Business DEMO WS connection for OKX EEA (my.okx.com), sometimes requires auth.
112
+ */
113
+ eeaDemoBusiness: 'eeaDemoBusiness',
114
+ // Also known as "app.okx.com" https://app.okx.com/docs-v5/en/#overview-production-trading-services
115
+ /**
116
+ * Public WS connection for OKX US (app.okx.com), does not require auth.
117
+ */
118
+ usLivePublic: 'usLivePublic',
119
+ /**
120
+ * Private WS connection for OKX US (app.okx.com), requires auth.
121
+ */
122
+ usLivePrivate: 'usLivePrivate',
123
+ /**
124
+ * Business WS connection for OKX US (app.okx.com), sometimes requires auth.
125
+ */
126
+ usLiveBusiness: 'usLiveBusiness',
127
+ usDemoPublic: 'usDemoPublic',
128
+ usDemoPrivate: 'usDemoPrivate',
129
+ usDemoBusiness: 'usDemoBusiness',
130
+ };
131
+ export const PRIVATE_WS_KEYS = [
132
+ WS_KEY_MAP.prodPrivate,
133
+ WS_KEY_MAP.prodBusiness,
134
+ WS_KEY_MAP.prodDemoPrivate,
135
+ WS_KEY_MAP.prodDemoBusiness,
136
+ WS_KEY_MAP.eeaLivePrivate,
137
+ WS_KEY_MAP.eeaLiveBusiness,
138
+ WS_KEY_MAP.eeaDemoPrivate,
139
+ WS_KEY_MAP.eeaDemoBusiness,
140
+ WS_KEY_MAP.usLivePrivate,
141
+ WS_KEY_MAP.usLiveBusiness,
142
+ WS_KEY_MAP.usDemoPrivate,
143
+ WS_KEY_MAP.usDemoBusiness,
144
+ ];
145
+ export const PUBLIC_WS_KEYS = [
146
+ WS_KEY_MAP.prodPublic,
147
+ WS_KEY_MAP.prodDemoPublic,
148
+ WS_KEY_MAP.eeaLivePublic,
149
+ WS_KEY_MAP.eeaDemoPublic,
150
+ WS_KEY_MAP.usLivePublic,
151
+ WS_KEY_MAP.usDemoPublic,
152
+ ];
153
+ /**
154
+ * Returns the DEMO connection WsKey for the provided WsKey
155
+ */
156
+ export function getDemoWsKey(wsKey) {
157
+ switch (wsKey) {
158
+ case WS_KEY_MAP.prodDemoPublic:
159
+ case WS_KEY_MAP.prodDemoPrivate:
160
+ case WS_KEY_MAP.prodDemoBusiness:
161
+ case WS_KEY_MAP.eeaDemoPublic:
162
+ case WS_KEY_MAP.eeaDemoPrivate:
163
+ case WS_KEY_MAP.eeaDemoBusiness:
164
+ case WS_KEY_MAP.usDemoPublic:
165
+ case WS_KEY_MAP.usDemoPrivate:
166
+ case WS_KEY_MAP.usDemoBusiness: {
167
+ return wsKey;
168
+ }
169
+ case WS_KEY_MAP.prodPublic:
170
+ return WS_KEY_MAP.prodDemoPublic;
171
+ case WS_KEY_MAP.prodPrivate:
172
+ return WS_KEY_MAP.prodDemoBusiness;
173
+ case WS_KEY_MAP.prodBusiness:
174
+ return WS_KEY_MAP.prodDemoBusiness;
175
+ case WS_KEY_MAP.eeaLivePublic:
176
+ return WS_KEY_MAP.eeaDemoPublic;
177
+ case WS_KEY_MAP.eeaLivePrivate:
178
+ return WS_KEY_MAP.eeaDemoPrivate;
179
+ case WS_KEY_MAP.eeaLiveBusiness:
180
+ return WS_KEY_MAP.eeaDemoBusiness;
181
+ case WS_KEY_MAP.usLivePublic:
182
+ return WS_KEY_MAP.usDemoPublic;
183
+ case WS_KEY_MAP.usLivePrivate:
184
+ return WS_KEY_MAP.usDemoPrivate;
185
+ case WS_KEY_MAP.usLiveBusiness:
186
+ return WS_KEY_MAP.usDemoBusiness;
187
+ default:
188
+ throw neverGuard(wsKey, `Unhandled wsKey "${wsKey}"`);
189
+ }
190
+ }
191
+ /** Used to automatically determine if a sub request should be to the public or private ws (when there's two) */
192
+ const PRIVATE_CHANNELS = [
193
+ 'account',
194
+ 'positions',
195
+ 'balance_and_position',
196
+ 'orders',
197
+ 'orders-algo',
198
+ 'algo-advance',
199
+ 'liquidation-warning',
200
+ 'account-greeks',
201
+ 'grid-orders-spot',
202
+ 'grid-orders-contract',
203
+ 'grid-orders-moon',
204
+ 'grid-positions',
205
+ 'grid-sub-orders',
206
+ ];
207
+ /**
208
+ * The following channels only support the new business wss endpoint:
209
+ * https://www.okx.com/help-center/changes-to-v5-api-websocket-subscription-parameter-and-url
210
+ */
211
+ const BUSINESS_CHANNELS = [
212
+ 'orders-algo',
213
+ 'algo-advance',
214
+ 'deposit-info',
215
+ 'withdrawal-info',
216
+ 'grid-orders-spot',
217
+ 'grid-orders-contract',
218
+ 'grid-orders-moon',
219
+ 'grid-positions',
220
+ 'grid-sub-orders',
221
+ 'algo-recurring-buy',
222
+ 'candle1Y',
223
+ 'candle6M',
224
+ 'candle3M',
225
+ 'candle1M',
226
+ 'candle1W',
227
+ 'candle1D',
228
+ 'candle2D',
229
+ 'candle3D',
230
+ 'candle5D',
231
+ 'candle12H',
232
+ 'candle6H',
233
+ 'candle4H',
234
+ 'candle2H',
235
+ 'candle1H',
236
+ 'candle30m',
237
+ 'candle15m',
238
+ 'candle5m',
239
+ 'candle3m',
240
+ 'candle1m',
241
+ 'candle1s',
242
+ 'candle1Yutc',
243
+ 'candle3Mutc',
244
+ 'candle1Mutc',
245
+ 'candle1Wutc',
246
+ 'candle1Dutc',
247
+ 'candle2Dutc',
248
+ 'candle3Dutc',
249
+ 'candle5Dutc',
250
+ 'candle12Hutc',
251
+ 'candle6Hutc',
252
+ 'mark-price-candle1Y',
253
+ 'mark-price-candle6M',
254
+ 'mark-price-candle3M',
255
+ 'mark-price-candle1M',
256
+ 'mark-price-candle1W',
257
+ 'mark-price-candle1D',
258
+ 'mark-price-candle2D',
259
+ 'mark-price-candle3D',
260
+ 'mark-price-candle5D',
261
+ 'mark-price-candle12H',
262
+ 'mark-price-candle6H',
263
+ 'mark-price-candle4H',
264
+ 'mark-price-candle2H',
265
+ 'mark-price-candle1H',
266
+ 'mark-price-candle30m',
267
+ 'mark-price-candle15m',
268
+ 'mark-price-candle5m',
269
+ 'mark-price-candle3m',
270
+ 'mark-price-candle1m',
271
+ 'mark-price-candle1Yutc',
272
+ 'mark-price-candle3Mutc',
273
+ 'mark-price-candle1Mutc',
274
+ 'mark-price-candle1Wutc',
275
+ 'mark-price-candle1Dutc',
276
+ 'mark-price-candle2Dutc',
277
+ 'mark-price-candle3Dutc',
278
+ 'mark-price-candle5Dutc',
279
+ 'mark-price-candle12Hutc',
280
+ 'mark-price-candle6Hutc',
281
+ 'index-candle1Y',
282
+ 'index-candle6M',
283
+ 'index-candle3M',
284
+ 'index-candle1M',
285
+ 'index-candle1W',
286
+ 'index-candle1D',
287
+ 'index-candle2D',
288
+ 'index-candle3D',
289
+ 'index-candle5D',
290
+ 'index-candle12H',
291
+ 'index-candle6H',
292
+ 'index-candle4H index -candle2H',
293
+ 'index-candle1H',
294
+ 'index-candle30m',
295
+ 'index-candle15m',
296
+ 'index-candle5m',
297
+ 'index-candle3m',
298
+ 'index-candle1m',
299
+ 'index-candle1Yutc',
300
+ 'index-candle3Mutc',
301
+ 'index-candle1Mutc',
302
+ 'index-candle1Wutc',
303
+ 'index-candle1Dutc',
304
+ 'index-candle2Dutc',
305
+ 'index-candle3Dutc',
306
+ 'index-candle5Dutc',
307
+ 'index-candle12Hutc',
308
+ 'index-candle6Hutc',
309
+ ];
310
+ /** Determine which WsKey (ws connection) to route an event to */
311
+ export function getWsKeyForTopicChannel(market, channel, isPrivate) {
312
+ const isPrivateTopic = isPrivate === true || PRIVATE_CHANNELS.includes(channel);
313
+ const isBusinessChannel = BUSINESS_CHANNELS.includes(channel);
314
+ return getWsKeyForMarket(market, isPrivateTopic, isBusinessChannel);
315
+ }
316
+ /**
317
+ * Returns wsKey for product group. Demo resolution is handled in URL lookup function, separately.
318
+ */
319
+ export function getWsKeyForMarket(market, isPrivate, isBusinessChannel) {
320
+ switch (market) {
321
+ case 'prod':
322
+ case 'GLOBAL': {
323
+ if (isBusinessChannel) {
324
+ return WS_KEY_MAP.prodBusiness;
325
+ }
326
+ return isPrivate ? WS_KEY_MAP.prodPrivate : WS_KEY_MAP.prodPublic;
327
+ }
328
+ case 'EEA': {
329
+ if (isBusinessChannel) {
330
+ return WS_KEY_MAP.eeaLiveBusiness;
331
+ }
332
+ return isPrivate ? WS_KEY_MAP.eeaLivePrivate : WS_KEY_MAP.eeaLivePublic;
333
+ }
334
+ case 'US': {
335
+ if (isBusinessChannel) {
336
+ return WS_KEY_MAP.usLiveBusiness;
337
+ }
338
+ return isPrivate ? WS_KEY_MAP.usLivePrivate : WS_KEY_MAP.usLivePublic;
339
+ }
340
+ default: {
341
+ throw neverGuard(market, `getWsKeyForTopic(): Unhandled market "${market}"`);
342
+ }
343
+ }
344
+ }
345
+ export function requiresWSAPITag(operation, wsKey) {
346
+ switch (wsKey) {
347
+ case WS_KEY_MAP.prodPublic:
348
+ case WS_KEY_MAP.prodDemoPublic:
349
+ case WS_KEY_MAP.eeaLivePublic:
350
+ case WS_KEY_MAP.eeaDemoPublic:
351
+ case WS_KEY_MAP.usLivePublic:
352
+ case WS_KEY_MAP.usDemoPublic:
353
+ return false;
354
+ case WS_KEY_MAP.prodDemoPrivate:
355
+ case WS_KEY_MAP.prodDemoBusiness:
356
+ case WS_KEY_MAP.eeaDemoPrivate:
357
+ case WS_KEY_MAP.eeaDemoBusiness:
358
+ case WS_KEY_MAP.usDemoPrivate:
359
+ case WS_KEY_MAP.usDemoBusiness:
360
+ case WS_KEY_MAP.prodPrivate:
361
+ case WS_KEY_MAP.prodBusiness:
362
+ case WS_KEY_MAP.eeaLivePrivate:
363
+ case WS_KEY_MAP.eeaLiveBusiness:
364
+ case WS_KEY_MAP.usLivePrivate:
365
+ case WS_KEY_MAP.usLiveBusiness:
366
+ return WS_API_TAG_OPERATIONS.includes(operation);
367
+ default: {
368
+ throw neverGuard(wsKey, `Unhandled WsKey "${wsKey}"`);
369
+ }
370
+ }
371
+ }
372
+ export function validateWSAPITag(request, wsKey) {
373
+ if (!requiresWSAPITag(request.op, wsKey)) {
374
+ return;
375
+ }
376
+ for (let i = 0; i < request.args.length; i++) {
377
+ request.args[i]['tag'] = programId;
378
+ }
379
+ }
380
+ /**
381
+ * Maps a WS key back to a WS URL. Resolves to demo wsKey automatically, if configured.
382
+ */
383
+ export function getWsUrlForWsKey(wsKey, wsClientOptions, logger) {
384
+ if (wsClientOptions.wsUrl) {
385
+ return wsClientOptions.wsUrl;
386
+ }
387
+ const isDemoTrading = !!wsClientOptions?.demoTrading;
388
+ const LIVE_OR_DEMO = isDemoTrading ? 'demo' : 'live';
389
+ switch (wsKey) {
390
+ // Global (www.okx.com)
391
+ case 'prodPublic':
392
+ case 'prodDemoPublic':
393
+ return WS_BASE_URL_MAP.GLOBAL[LIVE_OR_DEMO].public;
394
+ case 'prodPrivate':
395
+ case 'prodDemoPrivate':
396
+ return WS_BASE_URL_MAP.GLOBAL[LIVE_OR_DEMO].private;
397
+ case 'prodBusiness':
398
+ case 'prodDemoBusiness':
399
+ return WS_BASE_URL_MAP.GLOBAL[LIVE_OR_DEMO].business;
400
+ // EEA (my.okx.com)
401
+ case 'eeaLivePublic':
402
+ case 'eeaDemoPublic':
403
+ return WS_BASE_URL_MAP.EEA[LIVE_OR_DEMO].public;
404
+ case 'eeaLivePrivate':
405
+ case 'eeaDemoPrivate':
406
+ return WS_BASE_URL_MAP.EEA[LIVE_OR_DEMO].private;
407
+ case 'eeaLiveBusiness':
408
+ case 'eeaDemoBusiness':
409
+ return WS_BASE_URL_MAP.EEA[LIVE_OR_DEMO].business;
410
+ // US (app.okx.com)
411
+ case 'usLivePublic':
412
+ case 'usDemoPublic':
413
+ return WS_BASE_URL_MAP.US[LIVE_OR_DEMO].public;
414
+ case 'usLivePrivate':
415
+ case 'usDemoPrivate':
416
+ return WS_BASE_URL_MAP.US[LIVE_OR_DEMO].private;
417
+ case 'usLiveBusiness':
418
+ case 'usDemoBusiness':
419
+ return WS_BASE_URL_MAP.US[LIVE_OR_DEMO].business;
420
+ default: {
421
+ const errorMessage = 'getWsUrl(): Unhandled wsKey: ';
422
+ logger.error(errorMessage, {
423
+ category: 'okx-ws',
424
+ wsKey,
425
+ });
426
+ throw neverGuard(wsKey, errorMessage);
427
+ }
428
+ }
429
+ }
430
+ export function getMaxTopicsPerSubscribeEventForMarket(market) {
431
+ switch (market) {
432
+ case 'prod':
433
+ case 'EEA':
434
+ case 'GLOBAL':
435
+ case 'US': {
436
+ return null;
437
+ }
438
+ default: {
439
+ throw neverGuard(market, 'getWsKeyForTopic(): Unhandled market');
440
+ }
441
+ }
442
+ }
443
+ export function isWsPong(event) {
444
+ return (typeof event === 'object' &&
445
+ !!event &&
446
+ 'data' in event &&
447
+ typeof event['data'] === 'string' &&
448
+ event['data'] === 'pong');
449
+ }
450
+ export const WS_EVENT_CODE_ENUM = {
451
+ OK: '0',
452
+ LOGIN_FAILED: '60009',
453
+ LOGIN_PARTIALLY_FAILED: '60022',
454
+ };
455
+ /**
456
+ * #305: ws.terminate() is undefined in browsers.
457
+ * This only works in node.js, not in browsers.
458
+ * Does nothing if `ws` is undefined. Does nothing in browsers.
459
+ */
460
+ export function safeTerminateWs(ws, fallbackToClose) {
461
+ if (!ws) {
462
+ return false;
463
+ }
464
+ if (typeof ws['terminate'] === 'function') {
465
+ ws.terminate();
466
+ return true;
467
+ }
468
+ else if (fallbackToClose) {
469
+ ws.close();
470
+ }
471
+ return false;
472
+ }
473
+ /**
474
+ * Users can conveniently pass topics as strings or objects (object has topic name + optional params).
475
+ *
476
+ * This method normalises topics into objects (object has topic name + optional params).
477
+ */
478
+ export function getNormalisedTopicRequests(wsTopicRequests) {
479
+ const normalisedTopicRequests = [];
480
+ for (const wsTopicRequest of wsTopicRequests) {
481
+ // passed as string, convert to object
482
+ if (typeof wsTopicRequest === 'string') {
483
+ const topicRequest = {
484
+ topic: wsTopicRequest,
485
+ payload: undefined,
486
+ };
487
+ normalisedTopicRequests.push(topicRequest);
488
+ continue;
489
+ }
490
+ // already a normalised object, thanks to user
491
+ normalisedTopicRequests.push(wsTopicRequest);
492
+ }
493
+ return normalisedTopicRequests;
494
+ }
495
+ /**
496
+ * WebSocket.ping() is not available in browsers. This is a simple check used to
497
+ * disable heartbeats in browers, for exchanges that use native WebSocket ping/pong frames.
498
+ */
499
+ export function isWSPingFrameAvailable() {
500
+ return typeof WebSocket.prototype['ping'] === 'function';
501
+ }
502
+ /**
503
+ * WebSocket.pong() is not available in browsers. This is a simple check used to
504
+ * disable heartbeats in browers, for exchanges that use native WebSocket ping/pong frames.
505
+ */
506
+ export function isWSPongFrameAvailable() {
507
+ return typeof WebSocket.prototype['pong'] === 'function';
508
+ }
509
+ /**
510
+ * WS API promises are stored using a primary key. This key is constructed using
511
+ * properties found in every request & reply.
512
+ */
513
+ export function getPromiseRefForWSAPIRequest(requestEvent) {
514
+ const promiseRef = [requestEvent.id, requestEvent.op].join('_');
515
+ return promiseRef;
516
+ }
517
+ //# sourceMappingURL=websocket-util.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"websocket-util.js","sourceRoot":"","sources":["../../../src/util/websocket-util.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,135 @@
1
+ import { OrderIdRequest } from './types/rest/request/trade.js';
2
+ import { OrderResult } from './types/rest/response/private-trade.js';
3
+ import { WSAPIResponse } from './types/websockets/ws-api.js';
4
+ import { WSAPIAmendOrderRequestV5, WSAPIAmendSpreadOrderRequestV5, WSAPICancelSpreadOrderRequestV5, WSAPIMassCancelOrdersRequestV5, WSAPIPlaceOrderRequestV5, WSAPIPlaceSpreadOrderRequestV5, WSAPISpreadMassCancelOrdersRequestV5 } from './types/websockets/ws-api-request.js';
5
+ import { WSAPICancelOrderResultV5, WSAPISpreadAmendOrderResultV5, WSAPISpreadCancelOrderResultV5, WSAPISpreadPlaceOrderResultV5 } from './types/websockets/ws-api-response.js';
6
+ import { WSClientConfigurableOptions } from './types/websockets/ws-general.js';
7
+ import { DefaultLogger } from './util/logger.js';
8
+ import { WebsocketClient } from './websocket-client.js';
9
+ /**
10
+ * Configurable options specific to only the REST-like WebsocketAPIClient
11
+ */
12
+ export interface WSAPIClientConfigurableOptions {
13
+ /**
14
+ * Default: true
15
+ *
16
+ * Attach default event listeners, which will console log any high level
17
+ * events (opened/reconnecting/reconnected/etc).
18
+ *
19
+ * If you disable this, you should set your own event listeners
20
+ * on the embedded WS Client `wsApiClient.getWSClient().on(....)`.
21
+ */
22
+ attachEventListeners: boolean;
23
+ }
24
+ /**
25
+ * This is a minimal Websocket API wrapper around the WebsocketClient. It allows you to use the WebSocket API in a promise-driven way, send a request and await the response.
26
+ *
27
+ * Note: You can also directly use the sendWSAPIRequest() method to make WS API calls, but some
28
+ * may find the below methods slightly more intuitive.
29
+ *
30
+ * Refer to the WS API promises example for a more detailed example on using sendWSAPIRequest() directly:
31
+ * https://github.com/tiagosiebler/okx-api/blob/master/examples/ws-api-trade-raw.ts
32
+ */
33
+ export declare class WebsocketAPIClient {
34
+ private wsClient;
35
+ private options;
36
+ constructor(options?: WSClientConfigurableOptions & Partial<WSAPIClientConfigurableOptions>, logger?: DefaultLogger);
37
+ getWSClient(): WebsocketClient;
38
+ setTimeOffsetMs(newOffset: number): void;
39
+ /**
40
+ *
41
+ *
42
+ * OKX WebSocket API Methods
43
+ *
44
+ *
45
+ */
46
+ /**
47
+ * Submit a new order
48
+ *
49
+ * https://www.okx.com/docs-v5/en/#order-book-trading-trade-ws-place-order
50
+ */
51
+ submitNewOrder(params: WSAPIPlaceOrderRequestV5): Promise<WSAPIResponse<[OrderResult], 'order'>>;
52
+ /**
53
+ * Submit multiple orders in a batch
54
+ *
55
+ * https://www.okx.com/docs-v5/en/#order-book-trading-trade-ws-place-multiple-orders
56
+ */
57
+ submitMultipleOrders(params: WSAPIPlaceOrderRequestV5[]): Promise<WSAPIResponse<OrderResult[], 'batch-orders'>>;
58
+ /**
59
+ * Cancel a single order
60
+ *
61
+ * https://www.okx.com/docs-v5/en/#order-book-trading-trade-ws-cancel-order
62
+ */
63
+ cancelOrder(params: OrderIdRequest): Promise<WSAPIResponse<[WSAPICancelOrderResultV5], 'cancel-order'>>;
64
+ /**
65
+ * Cancel multiple orders
66
+ *
67
+ * https://www.okx.com/docs-v5/en/#order-book-trading-trade-ws-cancel-multiple-orders
68
+ */
69
+ cancelMultipleOrders(params: OrderIdRequest[]): Promise<WSAPIResponse<WSAPICancelOrderResultV5[], 'batch-cancel-orders'>>;
70
+ /**
71
+ * Amend a single order
72
+ *
73
+ * https://www.okx.com/docs-v5/en/#order-book-trading-trade-ws-amend-order
74
+ */
75
+ amendOrder(params: WSAPIAmendOrderRequestV5): Promise<WSAPIResponse<[OrderResult], 'amend-order'>>;
76
+ /**
77
+ * Amend multiple orders
78
+ *
79
+ * https://www.okx.com/docs-v5/en/#order-book-trading-trade-ws-amend-multiple-orders
80
+ */
81
+ amendMultipleOrders(params: WSAPIAmendOrderRequestV5[]): Promise<WSAPIResponse<[OrderResult], 'batch-amend-orders'>>;
82
+ /**
83
+ * Mass cancel orders
84
+ *
85
+ * https://www.okx.com/docs-v5/en/#order-book-trading-trade-ws-mass-cancel-order
86
+ */
87
+ massCancelOrders(params: WSAPIMassCancelOrdersRequestV5): Promise<WSAPIResponse<[{
88
+ result: boolean;
89
+ }], 'mass-cancel'>>;
90
+ /**
91
+ * Submit a new spread order
92
+ *
93
+ * https://www.okx.com/docs-v5/en/#spread-trading-websocket-trade-api-ws-place-order
94
+ */
95
+ submitSpreadOrder(params: WSAPIPlaceSpreadOrderRequestV5): Promise<WSAPIResponse<[WSAPISpreadPlaceOrderResultV5], 'sprd-order'>>;
96
+ /**
97
+ * Amend a spread order
98
+ *
99
+ * https://www.okx.com/docs-v5/en/#spread-trading-websocket-trade-api-ws-amend-order
100
+ */
101
+ amendSpreadOrder(params: WSAPIAmendSpreadOrderRequestV5): Promise<WSAPIResponse<[WSAPISpreadAmendOrderResultV5], 'sprd-amend-order'>>;
102
+ /**
103
+ * Cancel a spread order
104
+ *
105
+ * https://www.okx.com/docs-v5/en/#spread-trading-websocket-trade-api-ws-cancel-order
106
+ */
107
+ cancelSpreadOrder(params: WSAPICancelSpreadOrderRequestV5): Promise<WSAPIResponse<[WSAPISpreadCancelOrderResultV5], 'sprd-cancel-order'>>;
108
+ /**
109
+ * Mass cancel spread orders
110
+ *
111
+ * https://www.okx.com/docs-v5/en/#spread-trading-websocket-trade-api-ws-cancel-all-orders
112
+ */
113
+ massCancelSpreadOrders(params: WSAPISpreadMassCancelOrdersRequestV5): Promise<WSAPIResponse<[{
114
+ result: boolean;
115
+ }], 'sprd-mass-cancel'>>;
116
+ /**
117
+ *
118
+ *
119
+ *
120
+ *
121
+ *
122
+ *
123
+ *
124
+ * Private methods for handling some of the convenience/automation provided by the WS API Client
125
+ *
126
+ *
127
+ *
128
+ *
129
+ *
130
+ *
131
+ *
132
+ */
133
+ connectWSAPI(): Promise<unknown[]>;
134
+ private setupDefaultEventListeners;
135
+ }