@yuants/vendor-okx 0.23.26 → 0.25.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 (194) hide show
  1. package/README.md +253 -0
  2. package/dist/account.js +24 -10
  3. package/dist/account.js.map +1 -1
  4. package/dist/accountInfos/earning.js +1 -1
  5. package/dist/accountInfos/earning.js.map +1 -1
  6. package/dist/accountInfos/funding.js +1 -1
  7. package/dist/accountInfos/funding.js.map +1 -1
  8. package/dist/accountInfos/loan.js +1 -1
  9. package/dist/accountInfos/loan.js.map +1 -1
  10. package/dist/accountInfos/strategy.js +1 -1
  11. package/dist/accountInfos/strategy.js.map +1 -1
  12. package/dist/accountInfos/trading.js +3 -3
  13. package/dist/accountInfos/trading.js.map +1 -1
  14. package/dist/{api.js → api/private-api.js} +1 -1
  15. package/dist/api/private-api.js.map +1 -0
  16. package/dist/api/public-api.js.map +1 -0
  17. package/dist/api-service.js +1 -1
  18. package/dist/api-service.js.map +1 -1
  19. package/dist/index.js +5 -4
  20. package/dist/index.js.map +1 -1
  21. package/dist/loan-account.js +4 -4
  22. package/dist/loan-account.js.map +1 -1
  23. package/dist/order-actions-with-credential.js +20 -0
  24. package/dist/order-actions-with-credential.js.map +1 -0
  25. package/dist/order-actions.js +5 -5
  26. package/dist/order-actions.js.map +1 -1
  27. package/dist/order.js +4 -7
  28. package/dist/order.js.map +1 -1
  29. package/dist/orders/cancelOrder.js +1 -1
  30. package/dist/orders/cancelOrder.js.map +1 -1
  31. package/dist/orders/modifyOrder.js +3 -3
  32. package/dist/orders/modifyOrder.js.map +1 -1
  33. package/dist/orders/submitOrder.js +4 -4
  34. package/dist/orders/submitOrder.js.map +1 -1
  35. package/dist/{interest_rate.js → public-data/interest_rate.js} +1 -1
  36. package/dist/public-data/interest_rate.js.map +1 -0
  37. package/dist/{market-order.js → public-data/market-order.js} +1 -1
  38. package/dist/public-data/market-order.js.map +1 -0
  39. package/dist/{ohlc.js → public-data/ohlc.js} +3 -4
  40. package/dist/public-data/ohlc.js.map +1 -0
  41. package/dist/{product.js → public-data/product.js} +1 -1
  42. package/dist/public-data/product.js.map +1 -0
  43. package/dist/{quote.js → public-data/quote.js} +2 -3
  44. package/dist/public-data/quote.js.map +1 -0
  45. package/dist/services.js +4 -4
  46. package/dist/services.js.map +1 -1
  47. package/dist/strategy-account.js +5 -12
  48. package/dist/strategy-account.js.map +1 -1
  49. package/dist/trade.js +6 -8
  50. package/dist/trade.js.map +1 -1
  51. package/dist/transfer.js +6 -4
  52. package/dist/transfer.js.map +1 -1
  53. package/dist/utils/provideOHLCFromTimeBackwardService.js.map +1 -0
  54. package/dist/utils/provideSeriesFromTimeBackwardService.js.map +1 -0
  55. package/dist/ws.js.map +1 -1
  56. package/lib/account.d.ts +4 -3
  57. package/lib/account.d.ts.map +1 -1
  58. package/lib/account.js +27 -11
  59. package/lib/account.js.map +1 -1
  60. package/lib/accountInfos/earning.d.ts +1 -1
  61. package/lib/accountInfos/earning.d.ts.map +1 -1
  62. package/lib/accountInfos/earning.js +2 -2
  63. package/lib/accountInfos/earning.js.map +1 -1
  64. package/lib/accountInfos/funding.d.ts +1 -1
  65. package/lib/accountInfos/funding.d.ts.map +1 -1
  66. package/lib/accountInfos/funding.js +2 -2
  67. package/lib/accountInfos/funding.js.map +1 -1
  68. package/lib/accountInfos/loan.d.ts +1 -1
  69. package/lib/accountInfos/loan.d.ts.map +1 -1
  70. package/lib/accountInfos/loan.js +2 -2
  71. package/lib/accountInfos/loan.js.map +1 -1
  72. package/lib/accountInfos/strategy.d.ts +1 -1
  73. package/lib/accountInfos/strategy.d.ts.map +1 -1
  74. package/lib/accountInfos/strategy.js +3 -3
  75. package/lib/accountInfos/strategy.js.map +1 -1
  76. package/lib/accountInfos/trading.d.ts +1 -1
  77. package/lib/accountInfos/trading.d.ts.map +1 -1
  78. package/lib/accountInfos/trading.js +5 -5
  79. package/lib/accountInfos/trading.js.map +1 -1
  80. package/lib/{api.d.ts → api/private-api.d.ts} +1 -1
  81. package/lib/api/private-api.d.ts.map +1 -0
  82. package/lib/{api.js → api/private-api.js} +1 -1
  83. package/lib/api/private-api.js.map +1 -0
  84. package/lib/api/public-api.d.ts.map +1 -0
  85. package/lib/api/public-api.js.map +1 -0
  86. package/lib/api-service.js +1 -1
  87. package/lib/api-service.js.map +1 -1
  88. package/lib/index.d.ts +5 -4
  89. package/lib/index.d.ts.map +1 -1
  90. package/lib/index.js +5 -4
  91. package/lib/index.js.map +1 -1
  92. package/lib/loan-account.js +3 -3
  93. package/lib/loan-account.js.map +1 -1
  94. package/lib/order-actions-with-credential.d.ts +2 -0
  95. package/lib/order-actions-with-credential.d.ts.map +1 -0
  96. package/lib/order-actions-with-credential.js +22 -0
  97. package/lib/order-actions-with-credential.js.map +1 -0
  98. package/lib/order-actions.js +4 -4
  99. package/lib/order-actions.js.map +1 -1
  100. package/lib/order.d.ts.map +1 -1
  101. package/lib/order.js +4 -7
  102. package/lib/order.js.map +1 -1
  103. package/lib/orders/cancelOrder.d.ts +1 -1
  104. package/lib/orders/cancelOrder.d.ts.map +1 -1
  105. package/lib/orders/cancelOrder.js +2 -2
  106. package/lib/orders/cancelOrder.js.map +1 -1
  107. package/lib/orders/modifyOrder.d.ts +1 -1
  108. package/lib/orders/modifyOrder.d.ts.map +1 -1
  109. package/lib/orders/modifyOrder.js +4 -4
  110. package/lib/orders/modifyOrder.js.map +1 -1
  111. package/lib/orders/submitOrder.d.ts +4 -2
  112. package/lib/orders/submitOrder.d.ts.map +1 -1
  113. package/lib/orders/submitOrder.js +5 -5
  114. package/lib/orders/submitOrder.js.map +1 -1
  115. package/lib/public-data/interest_rate.d.ts.map +1 -0
  116. package/lib/{interest_rate.js → public-data/interest_rate.js} +1 -1
  117. package/lib/public-data/interest_rate.js.map +1 -0
  118. package/lib/public-data/market-order.d.ts.map +1 -0
  119. package/lib/{market-order.js → public-data/market-order.js} +1 -1
  120. package/lib/public-data/market-order.js.map +1 -0
  121. package/lib/public-data/ohlc.d.ts.map +1 -0
  122. package/lib/{ohlc.js → public-data/ohlc.js} +3 -4
  123. package/lib/public-data/ohlc.js.map +1 -0
  124. package/lib/public-data/product.d.ts.map +1 -0
  125. package/lib/{product.js → public-data/product.js} +1 -1
  126. package/{dist → lib/public-data}/product.js.map +1 -1
  127. package/lib/public-data/quote.d.ts.map +1 -0
  128. package/lib/{quote.js → public-data/quote.js} +2 -3
  129. package/lib/public-data/quote.js.map +1 -0
  130. package/lib/services.js +4 -4
  131. package/lib/services.js.map +1 -1
  132. package/lib/strategy-account.d.ts +1 -28
  133. package/lib/strategy-account.d.ts.map +1 -1
  134. package/lib/strategy-account.js +6 -14
  135. package/lib/strategy-account.js.map +1 -1
  136. package/lib/trade.js +6 -8
  137. package/lib/trade.js.map +1 -1
  138. package/lib/transfer.js +17 -15
  139. package/lib/transfer.js.map +1 -1
  140. package/lib/utils/provideOHLCFromTimeBackwardService.d.ts.map +1 -0
  141. package/lib/utils/provideOHLCFromTimeBackwardService.js.map +1 -0
  142. package/lib/utils/provideSeriesFromTimeBackwardService.d.ts.map +1 -0
  143. package/lib/utils/provideSeriesFromTimeBackwardService.js.map +1 -0
  144. package/lib/ws.d.ts +1 -1
  145. package/lib/ws.d.ts.map +1 -1
  146. package/lib/ws.js.map +1 -1
  147. package/package.json +4 -3
  148. package/temp/package-deps.json +37 -36
  149. package/dist/api.js.map +0 -1
  150. package/dist/interest_rate.js.map +0 -1
  151. package/dist/market-order.js.map +0 -1
  152. package/dist/ohlc.js.map +0 -1
  153. package/dist/provideOHLCFromTimeBackwardService.js.map +0 -1
  154. package/dist/provideSeriesFromTimeBackwardService.js.map +0 -1
  155. package/dist/public-api.js.map +0 -1
  156. package/dist/quote.js.map +0 -1
  157. package/dist/websocket.js +0 -157
  158. package/dist/websocket.js.map +0 -1
  159. package/lib/api.d.ts.map +0 -1
  160. package/lib/api.js.map +0 -1
  161. package/lib/interest_rate.d.ts.map +0 -1
  162. package/lib/interest_rate.js.map +0 -1
  163. package/lib/market-order.d.ts.map +0 -1
  164. package/lib/market-order.js.map +0 -1
  165. package/lib/ohlc.d.ts.map +0 -1
  166. package/lib/ohlc.js.map +0 -1
  167. package/lib/product.d.ts.map +0 -1
  168. package/lib/product.js.map +0 -1
  169. package/lib/provideOHLCFromTimeBackwardService.d.ts.map +0 -1
  170. package/lib/provideOHLCFromTimeBackwardService.js.map +0 -1
  171. package/lib/provideSeriesFromTimeBackwardService.d.ts.map +0 -1
  172. package/lib/provideSeriesFromTimeBackwardService.js.map +0 -1
  173. package/lib/public-api.d.ts.map +0 -1
  174. package/lib/public-api.js.map +0 -1
  175. package/lib/quote.d.ts.map +0 -1
  176. package/lib/quote.js.map +0 -1
  177. package/lib/websocket.d.ts +0 -15
  178. package/lib/websocket.d.ts.map +0 -1
  179. package/lib/websocket.js +0 -163
  180. package/lib/websocket.js.map +0 -1
  181. /package/dist/{public-api.js → api/public-api.js} +0 -0
  182. /package/dist/{provideOHLCFromTimeBackwardService.js → utils/provideOHLCFromTimeBackwardService.js} +0 -0
  183. /package/dist/{provideSeriesFromTimeBackwardService.js → utils/provideSeriesFromTimeBackwardService.js} +0 -0
  184. /package/lib/{public-api.d.ts → api/public-api.d.ts} +0 -0
  185. /package/lib/{public-api.js → api/public-api.js} +0 -0
  186. /package/lib/{interest_rate.d.ts → public-data/interest_rate.d.ts} +0 -0
  187. /package/lib/{market-order.d.ts → public-data/market-order.d.ts} +0 -0
  188. /package/lib/{ohlc.d.ts → public-data/ohlc.d.ts} +0 -0
  189. /package/lib/{product.d.ts → public-data/product.d.ts} +0 -0
  190. /package/lib/{quote.d.ts → public-data/quote.d.ts} +0 -0
  191. /package/lib/{provideOHLCFromTimeBackwardService.d.ts → utils/provideOHLCFromTimeBackwardService.d.ts} +0 -0
  192. /package/lib/{provideOHLCFromTimeBackwardService.js → utils/provideOHLCFromTimeBackwardService.js} +0 -0
  193. /package/lib/{provideSeriesFromTimeBackwardService.d.ts → utils/provideSeriesFromTimeBackwardService.d.ts} +0 -0
  194. /package/lib/{provideSeriesFromTimeBackwardService.js → utils/provideSeriesFromTimeBackwardService.js} +0 -0
@@ -1 +0,0 @@
1
- {"version":3,"file":"websocket.js","sourceRoot":"","sources":["../src/websocket.ts"],"names":[],"mappings":"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","sourcesContent":["import { PromRegistry, Terminal } from '@yuants/protocol';\nimport { encodePath, formatTime } from '@yuants/utils';\nimport { catchError, defer, EMPTY, interval, Observable, Subscription, tap, timeout } from 'rxjs';\n\nconst MetricsWebSocketConnectionsGauge = PromRegistry.create(\n 'gauge',\n 'okx_websocket_connections',\n 'Number of active OKX WebSocket connections',\n);\n\nconst MetricsWebSocketChannelGauge = PromRegistry.create(\n 'gauge',\n 'okx_websocket_channel',\n 'Number of OKX WebSocket channels subscribed',\n);\n\nconst terminal = Terminal.fromNodeEnv();\n\nclass OKXWsClient {\n ws: WebSocket;\n connected: boolean = false;\n subscriptions: Set<string>;\n handlers: Record<string, Function>;\n pendingSub: string[];\n keepAlive: Subscription;\n\n baseURL: string = `wss://ws.okx.com:8443`;\n constructor(path: string) {\n // this.instId = instId;\n this.ws = new WebSocket(`${this.baseURL}/${path}`);\n\n MetricsWebSocketConnectionsGauge.inc({ path, terminal_id: terminal.terminal_id });\n\n this.pendingSub = [];\n this.keepAlive = interval(25000)\n .pipe(\n tap(() => {\n if (this.connected) {\n this.ws.send('ping');\n }\n }),\n )\n .subscribe();\n // this.ws.\n this.ws.addEventListener('open', () => {\n this.connected = true;\n console.info(formatTime(Date.now()), '✅ WS connected');\n while (this.pendingSub.length > 0) {\n const msg = this.pendingSub.shift();\n if (msg) {\n this.ws.send(msg);\n console.info(formatTime(Date.now()), `📩 Sent subscribe for ${msg}`);\n }\n }\n });\n\n this.ws.addEventListener('message', (raw) => this.handleMessage(raw));\n this.ws.addEventListener('error', (raw) => {\n console.error(formatTime(Date.now()), '❌ WS error', raw);\n });\n this.ws.addEventListener('close', (event) => {\n console.error(formatTime(Date.now()), '❌ WS closed', event);\n\n MetricsWebSocketConnectionsGauge.dec({ path });\n });\n this.subscriptions = new Set();\n this.handlers = {}; // key: channel, value: callback\n }\n\n // 处理消息\n handleMessage(raw: { data: string }) {\n if (raw.data === 'pong') {\n return;\n }\n const msg = JSON.parse(raw.data);\n if (msg.arg?.channel) {\n const channelId = encodePath(msg.arg.channel, msg.arg.instId);\n const data = msg.data?.[0];\n if (data && this.handlers[channelId]) {\n this.handlers[channelId](data, msg.arg);\n }\n } else if (msg.event) {\n console.info(formatTime(Date.now()), 'Event:', msg);\n }\n }\n\n // 调用订阅\n subscribe(channel: string, instId?: string, handler?: Function) {\n const channelId = encodePath(channel, instId);\n if (this.subscriptions.has(channelId)) {\n console.info(formatTime(Date.now()), `⚠️ Already subscribed: ${channelId}`);\n return;\n }\n\n const subMsg = {\n op: 'subscribe',\n args: [{ channel, instId }],\n };\n\n if (this.connected) {\n this.ws.send(JSON.stringify(subMsg));\n console.info(formatTime(Date.now()), `📩 Sent subscribe for ${channelId}`);\n } else {\n this.pendingSub.push(JSON.stringify(subMsg));\n console.info(formatTime(Date.now()), `📩 add subscribe for ${channelId} to pending list`);\n }\n MetricsWebSocketChannelGauge.inc({ channel, terminal_id: terminal.terminal_id });\n this.subscriptions.add(channelId);\n if (handler) {\n this.handlers[channelId] = handler;\n }\n }\n\n // 取消订阅\n unsubscribe(channel: string, instId?: string) {\n const channelId = encodePath(channel, instId);\n if (!this.subscriptions.has(channelId)) return;\n\n const unSubMsg = {\n op: 'unsubscribe',\n args: [{ channel, instId }],\n };\n\n this.ws.send(JSON.stringify(unSubMsg));\n this.subscriptions.delete(channelId);\n if (this.subscriptions.size === 0) {\n this.keepAlive.unsubscribe();\n }\n MetricsWebSocketChannelGauge.dec({ channel });\n delete this.handlers[channelId];\n console.info(formatTime(Date.now()), `📩 Sent unsubscribe for ${channelId}`);\n }\n}\n\nconst wsPool: {\n path: string;\n client: OKXWsClient;\n requests: number;\n isFull: boolean;\n}[] = [];\n\n// ISSUE: 连接限制:3 次/秒 (基于IP)\n//\n// https://www.okx.com/docs-v5/zh/#overview-websocket-connect\n//\n// 当订阅公有频道时,使用公有服务的地址;当订阅私有频道时,使用私有服务的地址\n//\n// 请求限制:\n//\n// 每个连接 对于 订阅/取消订阅/登录 请求的总次数限制为 480 次/小时\nconst getWsClient = (path: string) => {\n const existing = wsPool.find((item) => item.path === path && !item.isFull);\n if (existing) {\n existing.requests++;\n if (existing.requests >= 480) {\n existing.isFull = true;\n }\n return existing.client;\n }\n const newClient = new OKXWsClient(path);\n wsPool.push({ path, client: newClient, requests: 1, isFull: false });\n return newClient;\n};\n\nconst fromWsChannelAndInstId = <T>(path: string, channel: string, instId: string) =>\n defer(\n () =>\n new Observable<T>((subscriber) => {\n const client = getWsClient(path);\n client.subscribe(channel, instId, (data: T) => {\n subscriber.next(data);\n });\n client.ws.addEventListener('error', (err) => {\n subscriber.error(err);\n });\n client.ws.addEventListener('close', () => {\n subscriber.error('WS Connection Closed');\n });\n subscriber.add(() => {\n client.unsubscribe(channel, instId);\n });\n }),\n ).pipe(\n // 防止单个连接断开导致数据流关闭\n timeout(60_000),\n tap({\n error: (err) => {\n console.info(formatTime(Date.now()), 'WS_SUBSCRIBE_ERROR', channel, instId, err);\n },\n }),\n // 暂时不太确定是否能支持 retry\n // retry({ delay: 1000 }),\n catchError(() => EMPTY),\n );\n\nexport const useTicker = (instId: string) =>\n fromWsChannelAndInstId<{\n instId: string;\n last: string;\n askPx: string;\n bidPx: string;\n askSz: string;\n bidSz: string;\n }>('ws/v5/public', 'tickers', instId);\n\nexport const useOpenInterest = (instId: string) =>\n fromWsChannelAndInstId<{\n instId: string;\n oi: string; // open interest\n }>('ws/v5/public', 'open-interest', instId);\n\nexport const useOHLC = (candleType: string, instId: string) =>\n fromWsChannelAndInstId<string[]>('ws/v5/business', candleType, instId);\n"]}
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes