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.
- package/README.md +336 -11
- package/dist/cjs/constants/funding.js.map +1 -0
- package/dist/cjs/index.d.ts +43 -0
- package/dist/cjs/index.js +64 -0
- package/dist/cjs/index.js.map +1 -0
- package/dist/cjs/package.json +3 -0
- package/{lib → dist/cjs}/rest-client.d.ts +28 -15
- package/{lib → dist/cjs}/rest-client.js +41 -68
- package/dist/cjs/rest-client.js.map +1 -0
- package/dist/cjs/types/rest/client.d.ts +36 -0
- package/{lib → dist/cjs}/types/rest/client.js.map +1 -1
- package/{lib → dist/cjs}/types/rest/request/account.d.ts +1 -1
- package/dist/cjs/types/rest/request/account.js.map +1 -0
- package/{lib → dist/cjs}/types/rest/request/block-trading.d.ts +1 -1
- package/dist/cjs/types/rest/request/block-trading.js.map +1 -0
- package/dist/cjs/types/rest/request/convert.js.map +1 -0
- package/dist/cjs/types/rest/request/copy-trading.js.map +1 -0
- package/dist/cjs/types/rest/request/funding.js.map +1 -0
- package/dist/cjs/types/rest/request/grid-trading.js.map +1 -0
- package/dist/cjs/types/rest/request/public.js.map +1 -0
- package/dist/cjs/types/rest/request/recurring-buy.js.map +1 -0
- package/{lib → dist/cjs}/types/rest/request/shared.d.ts +1 -1
- package/dist/cjs/types/rest/request/shared.js.map +1 -0
- package/dist/cjs/types/rest/request/signal-bot.js.map +1 -0
- package/dist/cjs/types/rest/request/simple-earn.js.map +1 -0
- package/dist/cjs/types/rest/request/spread-trading.js.map +1 -0
- package/dist/cjs/types/rest/request/subaccount.js.map +1 -0
- package/{lib → dist/cjs}/types/rest/request/trade.d.ts +1 -1
- package/dist/cjs/types/rest/request/trade.js.map +1 -0
- package/{lib → dist/cjs}/types/rest/response/private-account.d.ts +1 -1
- package/dist/cjs/types/rest/response/private-account.js.map +1 -0
- package/{lib → dist/cjs}/types/rest/response/private-block-trading.d.ts +1 -1
- package/dist/cjs/types/rest/response/private-block-trading.js.map +1 -0
- package/dist/cjs/types/rest/response/private-copy-trading.js.map +1 -0
- package/dist/cjs/types/rest/response/private-flexible-loan.js.map +1 -0
- package/{lib → dist/cjs}/types/rest/response/private-funding.d.ts +1 -1
- package/dist/cjs/types/rest/response/private-funding.js.map +1 -0
- package/dist/cjs/types/rest/response/private-recurring-buy.js.map +1 -0
- package/dist/cjs/types/rest/response/private-signal-bot.js.map +1 -0
- package/dist/cjs/types/rest/response/private-spread-trading.js.map +1 -0
- package/dist/cjs/types/rest/response/private-subaccount.js.map +1 -0
- package/{lib → dist/cjs}/types/rest/response/private-trade.d.ts +1 -1
- package/dist/cjs/types/rest/response/private-trade.js.map +1 -0
- package/{lib → dist/cjs}/types/rest/response/public-data.d.ts +1 -1
- package/dist/cjs/types/rest/response/public-data.js.map +1 -0
- package/{lib → dist/cjs}/types/rest/shared.d.ts +2 -2
- package/dist/cjs/types/rest/shared.js.map +1 -0
- package/dist/cjs/types/shared.d.ts +13 -0
- package/{lib → dist/cjs}/types/shared.js.map +1 -1
- package/dist/cjs/types/websockets/ws-api-request.d.ts +61 -0
- package/dist/cjs/types/websockets/ws-api-request.js +3 -0
- package/dist/cjs/types/websockets/ws-api-request.js.map +1 -0
- package/dist/cjs/types/websockets/ws-api-response.d.ts +28 -0
- package/dist/cjs/types/websockets/ws-api-response.js +3 -0
- package/dist/cjs/types/websockets/ws-api-response.js.map +1 -0
- package/dist/cjs/types/websockets/ws-api.d.ts +139 -0
- package/dist/cjs/types/websockets/ws-api.js +38 -0
- package/dist/cjs/types/websockets/ws-api.js.map +1 -0
- package/{lib/types/websockets/event.d.ts → dist/cjs/types/websockets/ws-events.d.ts} +7 -1
- package/dist/cjs/types/websockets/ws-events.js +11 -0
- package/dist/cjs/types/websockets/ws-events.js.map +1 -0
- package/dist/cjs/types/websockets/ws-general.d.ts +48 -0
- package/dist/cjs/types/websockets/ws-general.js +3 -0
- package/dist/cjs/types/websockets/ws-general.js.map +1 -0
- package/{lib/types/websockets/request.d.ts → dist/cjs/types/websockets/ws-request.d.ts} +0 -22
- package/dist/cjs/types/websockets/ws-request.js +3 -0
- package/dist/cjs/types/websockets/ws-request.js.map +1 -0
- package/{lib → dist/cjs}/util/BaseRestClient.d.ts +1 -1
- package/dist/cjs/util/BaseRestClient.js +237 -0
- package/dist/cjs/util/BaseRestClient.js.map +1 -0
- package/dist/cjs/util/BaseWSClient.d.ts +198 -0
- package/dist/cjs/util/BaseWSClient.js +770 -0
- package/dist/cjs/util/BaseWSClient.js.map +1 -0
- package/dist/cjs/util/WsStore.d.ts +75 -0
- package/dist/cjs/util/WsStore.js +303 -0
- package/dist/cjs/util/WsStore.js.map +1 -0
- package/dist/cjs/util/WsStore.types.d.ts +51 -0
- package/dist/cjs/util/WsStore.types.js +14 -0
- package/dist/cjs/util/WsStore.types.js.map +1 -0
- package/dist/cjs/util/logger.d.ts +8 -0
- package/{lib → dist/cjs}/util/logger.js +3 -11
- package/dist/cjs/util/logger.js.map +1 -0
- package/{lib → dist/cjs}/util/requestUtils.d.ts +2 -1
- package/{lib → dist/cjs}/util/requestUtils.js +9 -1
- package/dist/cjs/util/requestUtils.js.map +1 -0
- package/{lib → dist/cjs}/util/typeGuards.d.ts +4 -2
- package/{lib → dist/cjs}/util/typeGuards.js +34 -0
- package/dist/cjs/util/typeGuards.js.map +1 -0
- package/dist/cjs/util/webCryptoAPI.d.ts +15 -0
- package/dist/cjs/util/webCryptoAPI.js +82 -0
- package/dist/cjs/util/webCryptoAPI.js.map +1 -0
- package/dist/cjs/util/websocket-util.d.ts +142 -0
- package/dist/cjs/util/websocket-util.js +533 -0
- package/dist/cjs/util/websocket-util.js.map +1 -0
- package/dist/cjs/websocket-api-client.d.ts +135 -0
- package/dist/cjs/websocket-api-client.js +171 -0
- package/dist/cjs/websocket-api-client.js.map +1 -0
- package/{lib/websocket-client.d.ts → dist/cjs/websocket-client-legacy.d.ts} +16 -38
- package/dist/cjs/websocket-client-legacy.js +524 -0
- package/dist/cjs/websocket-client-legacy.js.map +1 -0
- package/dist/cjs/websocket-client.d.ts +81 -0
- package/dist/cjs/websocket-client.js +548 -0
- package/dist/cjs/websocket-client.js.map +1 -0
- package/dist/mjs/constants/funding.d.ts +139 -0
- package/dist/mjs/constants/funding.js +140 -0
- package/dist/mjs/constants/funding.js.map +1 -0
- package/dist/mjs/index.d.ts +43 -0
- package/dist/mjs/index.js +48 -0
- package/dist/mjs/index.js.map +1 -0
- package/dist/mjs/package.json +3 -0
- package/dist/mjs/rest-client.d.ts +1173 -0
- package/dist/mjs/rest-client.js +1271 -0
- package/dist/mjs/rest-client.js.map +1 -0
- package/dist/mjs/types/rest/client.d.ts +36 -0
- package/dist/mjs/types/rest/client.js +2 -0
- package/{lib/types/websockets → dist/mjs/types/rest}/client.js.map +1 -1
- package/dist/mjs/types/rest/request/account.d.ts +144 -0
- package/dist/mjs/types/rest/request/account.js +2 -0
- package/dist/mjs/types/rest/request/account.js.map +1 -0
- package/dist/mjs/types/rest/request/block-trading.d.ts +76 -0
- package/dist/mjs/types/rest/request/block-trading.js +2 -0
- package/dist/mjs/types/rest/request/block-trading.js.map +1 -0
- package/dist/mjs/types/rest/request/convert.d.ts +19 -0
- package/dist/mjs/types/rest/request/convert.js +2 -0
- package/dist/mjs/types/rest/request/convert.js.map +1 -0
- package/dist/mjs/types/rest/request/copy-trading.d.ts +117 -0
- package/dist/mjs/types/rest/request/copy-trading.js +2 -0
- package/dist/mjs/types/rest/request/copy-trading.js.map +1 -0
- package/dist/mjs/types/rest/request/funding.d.ts +43 -0
- package/dist/mjs/types/rest/request/funding.js +2 -0
- package/dist/mjs/types/rest/request/funding.js.map +1 -0
- package/dist/mjs/types/rest/request/grid-trading.d.ts +66 -0
- package/dist/mjs/types/rest/request/grid-trading.js +2 -0
- package/dist/mjs/types/rest/request/grid-trading.js.map +1 -0
- package/dist/mjs/types/rest/request/public.d.ts +55 -0
- package/dist/mjs/types/rest/request/public.js +2 -0
- package/dist/mjs/types/rest/request/public.js.map +1 -0
- package/dist/mjs/types/rest/request/recurring-buy.d.ts +28 -0
- package/dist/mjs/types/rest/request/recurring-buy.js +2 -0
- package/dist/mjs/types/rest/request/recurring-buy.js.map +1 -0
- package/dist/mjs/types/rest/request/shared.d.ts +7 -0
- package/dist/mjs/types/rest/request/shared.js +2 -0
- package/dist/mjs/types/rest/request/shared.js.map +1 -0
- package/dist/mjs/types/rest/request/signal-bot.d.ts +97 -0
- package/dist/mjs/types/rest/request/signal-bot.js +2 -0
- package/dist/mjs/types/rest/request/signal-bot.js.map +1 -0
- package/dist/mjs/types/rest/request/simple-earn.d.ts +23 -0
- package/dist/mjs/types/rest/request/simple-earn.js +2 -0
- package/dist/mjs/types/rest/request/simple-earn.js.map +1 -0
- package/dist/mjs/types/rest/request/spread-trading.d.ts +69 -0
- package/dist/mjs/types/rest/request/spread-trading.js +2 -0
- package/dist/mjs/types/rest/request/spread-trading.js.map +1 -0
- package/dist/mjs/types/rest/request/subaccount.d.ts +33 -0
- package/dist/mjs/types/rest/request/subaccount.js +2 -0
- package/dist/mjs/types/rest/request/subaccount.js.map +1 -0
- package/dist/mjs/types/rest/request/trade.d.ts +194 -0
- package/dist/mjs/types/rest/request/trade.js +2 -0
- package/dist/mjs/types/rest/request/trade.js.map +1 -0
- package/dist/mjs/types/rest/response/private-account.d.ts +448 -0
- package/dist/mjs/types/rest/response/private-account.js +2 -0
- package/dist/mjs/types/rest/response/private-account.js.map +1 -0
- package/dist/mjs/types/rest/response/private-block-trading.d.ts +124 -0
- package/dist/mjs/types/rest/response/private-block-trading.js +2 -0
- package/dist/mjs/types/rest/response/private-block-trading.js.map +1 -0
- package/dist/mjs/types/rest/response/private-copy-trading.d.ts +259 -0
- package/dist/mjs/types/rest/response/private-copy-trading.js +2 -0
- package/dist/mjs/types/rest/response/private-copy-trading.js.map +1 -0
- package/dist/mjs/types/rest/response/private-flexible-loan.d.ts +72 -0
- package/dist/mjs/types/rest/response/private-flexible-loan.js +2 -0
- package/dist/mjs/types/rest/response/private-flexible-loan.js.map +1 -0
- package/dist/mjs/types/rest/response/private-funding.d.ts +102 -0
- package/dist/mjs/types/rest/response/private-funding.js +2 -0
- package/dist/mjs/types/rest/response/private-funding.js.map +1 -0
- package/dist/mjs/types/rest/response/private-recurring-buy.d.ts +63 -0
- package/dist/mjs/types/rest/response/private-recurring-buy.js +2 -0
- package/dist/mjs/types/rest/response/private-recurring-buy.js.map +1 -0
- package/dist/mjs/types/rest/response/private-signal-bot.d.ts +22 -0
- package/dist/mjs/types/rest/response/private-signal-bot.js +2 -0
- package/dist/mjs/types/rest/response/private-signal-bot.js.map +1 -0
- package/dist/mjs/types/rest/response/private-spread-trading.d.ts +126 -0
- package/dist/mjs/types/rest/response/private-spread-trading.js +2 -0
- package/dist/mjs/types/rest/response/private-spread-trading.js.map +1 -0
- package/dist/mjs/types/rest/response/private-subaccount.d.ts +80 -0
- package/dist/mjs/types/rest/response/private-subaccount.js +2 -0
- package/dist/mjs/types/rest/response/private-subaccount.js.map +1 -0
- package/dist/mjs/types/rest/response/private-trade.d.ts +355 -0
- package/dist/mjs/types/rest/response/private-trade.js +2 -0
- package/dist/mjs/types/rest/response/private-trade.js.map +1 -0
- package/dist/mjs/types/rest/response/public-data.d.ts +174 -0
- package/dist/mjs/types/rest/response/public-data.js +2 -0
- package/dist/mjs/types/rest/response/public-data.js.map +1 -0
- package/dist/mjs/types/rest/shared.d.ts +45 -0
- package/dist/mjs/types/rest/shared.js +2 -0
- package/dist/mjs/types/rest/shared.js.map +1 -0
- package/dist/mjs/types/shared.d.ts +13 -0
- package/dist/mjs/types/shared.js +2 -0
- package/{lib/types/rest → dist/mjs/types}/shared.js.map +1 -1
- package/dist/mjs/types/websockets/ws-api-request.d.ts +61 -0
- package/dist/mjs/types/websockets/ws-api-request.js +2 -0
- package/dist/mjs/types/websockets/ws-api-request.js.map +1 -0
- package/dist/mjs/types/websockets/ws-api-response.d.ts +28 -0
- package/dist/mjs/types/websockets/ws-api-response.js +2 -0
- package/dist/mjs/types/websockets/ws-api-response.js.map +1 -0
- package/dist/mjs/types/websockets/ws-api.d.ts +139 -0
- package/dist/mjs/types/websockets/ws-api.js +35 -0
- package/dist/mjs/types/websockets/ws-api.js.map +1 -0
- package/dist/mjs/types/websockets/ws-events.d.ts +33 -0
- package/dist/mjs/types/websockets/ws-events.js +8 -0
- package/dist/mjs/types/websockets/ws-events.js.map +1 -0
- package/dist/mjs/types/websockets/ws-general.d.ts +48 -0
- package/dist/mjs/types/websockets/ws-general.js +2 -0
- package/dist/mjs/types/websockets/ws-general.js.map +1 -0
- package/dist/mjs/types/websockets/ws-request.d.ts +93 -0
- package/dist/mjs/types/websockets/ws-request.js +2 -0
- package/dist/mjs/types/websockets/ws-request.js.map +1 -0
- package/dist/mjs/util/BaseRestClient.d.ts +29 -0
- package/dist/mjs/util/BaseRestClient.js +230 -0
- package/dist/mjs/util/BaseRestClient.js.map +1 -0
- package/dist/mjs/util/BaseWSClient.d.ts +198 -0
- package/dist/mjs/util/BaseWSClient.js +763 -0
- package/dist/mjs/util/BaseWSClient.js.map +1 -0
- package/dist/mjs/util/WsStore.d.ts +75 -0
- package/dist/mjs/util/WsStore.js +298 -0
- package/dist/mjs/util/WsStore.js.map +1 -0
- package/dist/mjs/util/WsStore.types.d.ts +51 -0
- package/dist/mjs/util/WsStore.types.js +11 -0
- package/dist/mjs/util/WsStore.types.js.map +1 -0
- package/dist/mjs/util/logger.d.ts +8 -0
- package/dist/mjs/util/logger.js +14 -0
- package/dist/mjs/util/logger.js.map +1 -0
- package/dist/mjs/util/requestUtils.d.ts +8 -0
- package/dist/mjs/util/requestUtils.js +51 -0
- package/dist/mjs/util/requestUtils.js.map +1 -0
- package/dist/mjs/util/typeGuards.d.ts +19 -0
- package/dist/mjs/util/typeGuards.js +85 -0
- package/dist/mjs/util/typeGuards.js.map +1 -0
- package/dist/mjs/util/webCryptoAPI.d.ts +15 -0
- package/dist/mjs/util/webCryptoAPI.js +77 -0
- package/dist/mjs/util/webCryptoAPI.js.map +1 -0
- package/dist/mjs/util/websocket-util.d.ts +142 -0
- package/dist/mjs/util/websocket-util.js +517 -0
- package/dist/mjs/util/websocket-util.js.map +1 -0
- package/dist/mjs/websocket-api-client.d.ts +135 -0
- package/dist/mjs/websocket-api-client.js +167 -0
- package/dist/mjs/websocket-api-client.js.map +1 -0
- package/dist/mjs/websocket-client-legacy.d.ts +76 -0
- package/dist/mjs/websocket-client-legacy.js +517 -0
- package/dist/mjs/websocket-client-legacy.js.map +1 -0
- package/dist/mjs/websocket-client.d.ts +81 -0
- package/dist/mjs/websocket-client.js +544 -0
- package/dist/mjs/websocket-client.js.map +1 -0
- package/llms.txt +5604 -3719
- package/package.json +28 -13
- package/index.js +0 -1
- package/lib/constants/funding.js.map +0 -1
- package/lib/constants/index.d.ts +0 -1
- package/lib/constants/index.js +0 -18
- package/lib/constants/index.js.map +0 -1
- package/lib/index.d.ts +0 -5
- package/lib/index.js +0 -22
- package/lib/index.js.map +0 -1
- package/lib/rest-client.js.map +0 -1
- package/lib/types/index.d.ts +0 -3
- package/lib/types/index.js +0 -20
- package/lib/types/index.js.map +0 -1
- package/lib/types/rest/client.d.ts +0 -20
- package/lib/types/rest/index.d.ts +0 -4
- package/lib/types/rest/index.js +0 -21
- package/lib/types/rest/index.js.map +0 -1
- package/lib/types/rest/request/account.js.map +0 -1
- package/lib/types/rest/request/announement.d.ts +0 -0
- package/lib/types/rest/request/announement.js +0 -1
- package/lib/types/rest/request/announement.js.map +0 -1
- package/lib/types/rest/request/block-trading.js.map +0 -1
- package/lib/types/rest/request/convert.js.map +0 -1
- package/lib/types/rest/request/copy-trading.js.map +0 -1
- package/lib/types/rest/request/funding.js.map +0 -1
- package/lib/types/rest/request/grid-trading.js.map +0 -1
- package/lib/types/rest/request/index.d.ts +0 -14
- package/lib/types/rest/request/index.js +0 -31
- package/lib/types/rest/request/index.js.map +0 -1
- package/lib/types/rest/request/public.js.map +0 -1
- package/lib/types/rest/request/recurring-buy.js.map +0 -1
- package/lib/types/rest/request/shared.js.map +0 -1
- package/lib/types/rest/request/signal-bot.js.map +0 -1
- package/lib/types/rest/request/simple-earn.js.map +0 -1
- package/lib/types/rest/request/spread-trading.js.map +0 -1
- package/lib/types/rest/request/subaccount.js.map +0 -1
- package/lib/types/rest/request/trade.js.map +0 -1
- package/lib/types/rest/response/index.d.ts +0 -11
- package/lib/types/rest/response/index.js +0 -28
- package/lib/types/rest/response/index.js.map +0 -1
- package/lib/types/rest/response/private-account.js.map +0 -1
- package/lib/types/rest/response/private-block-trading.js.map +0 -1
- package/lib/types/rest/response/private-copy-trading.js.map +0 -1
- package/lib/types/rest/response/private-flexible-loan.js.map +0 -1
- package/lib/types/rest/response/private-funding.js.map +0 -1
- package/lib/types/rest/response/private-recurring-buy.js.map +0 -1
- package/lib/types/rest/response/private-signal-bot.js.map +0 -1
- package/lib/types/rest/response/private-spread-trading.js.map +0 -1
- package/lib/types/rest/response/private-subaccount.js.map +0 -1
- package/lib/types/rest/response/private-trade.js.map +0 -1
- package/lib/types/rest/response/public-data.js.map +0 -1
- package/lib/types/shared.d.ts +0 -6
- package/lib/types/websockets/client.d.ts +0 -22
- package/lib/types/websockets/client.js +0 -3
- package/lib/types/websockets/event.js +0 -3
- package/lib/types/websockets/event.js.map +0 -1
- package/lib/types/websockets/index.d.ts +0 -3
- package/lib/types/websockets/index.js +0 -20
- package/lib/types/websockets/index.js.map +0 -1
- package/lib/types/websockets/request.js +0 -3
- package/lib/types/websockets/request.js.map +0 -1
- package/lib/util/BaseRestClient.js +0 -217
- package/lib/util/BaseRestClient.js.map +0 -1
- package/lib/util/WsStore.d.ts +0 -66
- package/lib/util/WsStore.js +0 -168
- package/lib/util/WsStore.js.map +0 -1
- package/lib/util/browser-support.d.ts +0 -6
- package/lib/util/browser-support.js +0 -48
- package/lib/util/browser-support.js.map +0 -1
- package/lib/util/index.d.ts +0 -4
- package/lib/util/index.js +0 -21
- package/lib/util/index.js.map +0 -1
- package/lib/util/logger.d.ts +0 -9
- package/lib/util/logger.js.map +0 -1
- package/lib/util/node-support.d.ts +0 -1
- package/lib/util/node-support.js +0 -8
- package/lib/util/node-support.js.map +0 -1
- package/lib/util/requestUtils.js.map +0 -1
- package/lib/util/typeGuards.js.map +0 -1
- package/lib/util/websocket-util.d.ts +0 -35
- package/lib/util/websocket-util.js +0 -282
- package/lib/util/websocket-util.js.map +0 -1
- package/lib/websocket-client.js +0 -472
- package/lib/websocket-client.js.map +0 -1
- /package/{lib → dist/cjs}/constants/funding.d.ts +0 -0
- /package/{lib → dist/cjs}/constants/funding.js +0 -0
- /package/{lib → dist/cjs}/types/rest/client.js +0 -0
- /package/{lib → dist/cjs}/types/rest/request/account.js +0 -0
- /package/{lib → dist/cjs}/types/rest/request/block-trading.js +0 -0
- /package/{lib → dist/cjs}/types/rest/request/convert.d.ts +0 -0
- /package/{lib → dist/cjs}/types/rest/request/convert.js +0 -0
- /package/{lib → dist/cjs}/types/rest/request/copy-trading.d.ts +0 -0
- /package/{lib → dist/cjs}/types/rest/request/copy-trading.js +0 -0
- /package/{lib → dist/cjs}/types/rest/request/funding.d.ts +0 -0
- /package/{lib → dist/cjs}/types/rest/request/funding.js +0 -0
- /package/{lib → dist/cjs}/types/rest/request/grid-trading.d.ts +0 -0
- /package/{lib → dist/cjs}/types/rest/request/grid-trading.js +0 -0
- /package/{lib → dist/cjs}/types/rest/request/public.d.ts +0 -0
- /package/{lib → dist/cjs}/types/rest/request/public.js +0 -0
- /package/{lib → dist/cjs}/types/rest/request/recurring-buy.d.ts +0 -0
- /package/{lib → dist/cjs}/types/rest/request/recurring-buy.js +0 -0
- /package/{lib → dist/cjs}/types/rest/request/shared.js +0 -0
- /package/{lib → dist/cjs}/types/rest/request/signal-bot.d.ts +0 -0
- /package/{lib → dist/cjs}/types/rest/request/signal-bot.js +0 -0
- /package/{lib → dist/cjs}/types/rest/request/simple-earn.d.ts +0 -0
- /package/{lib → dist/cjs}/types/rest/request/simple-earn.js +0 -0
- /package/{lib → dist/cjs}/types/rest/request/spread-trading.d.ts +0 -0
- /package/{lib → dist/cjs}/types/rest/request/spread-trading.js +0 -0
- /package/{lib → dist/cjs}/types/rest/request/subaccount.d.ts +0 -0
- /package/{lib → dist/cjs}/types/rest/request/subaccount.js +0 -0
- /package/{lib → dist/cjs}/types/rest/request/trade.js +0 -0
- /package/{lib → dist/cjs}/types/rest/response/private-account.js +0 -0
- /package/{lib → dist/cjs}/types/rest/response/private-block-trading.js +0 -0
- /package/{lib → dist/cjs}/types/rest/response/private-copy-trading.d.ts +0 -0
- /package/{lib → dist/cjs}/types/rest/response/private-copy-trading.js +0 -0
- /package/{lib → dist/cjs}/types/rest/response/private-flexible-loan.d.ts +0 -0
- /package/{lib → dist/cjs}/types/rest/response/private-flexible-loan.js +0 -0
- /package/{lib → dist/cjs}/types/rest/response/private-funding.js +0 -0
- /package/{lib → dist/cjs}/types/rest/response/private-recurring-buy.d.ts +0 -0
- /package/{lib → dist/cjs}/types/rest/response/private-recurring-buy.js +0 -0
- /package/{lib → dist/cjs}/types/rest/response/private-signal-bot.d.ts +0 -0
- /package/{lib → dist/cjs}/types/rest/response/private-signal-bot.js +0 -0
- /package/{lib → dist/cjs}/types/rest/response/private-spread-trading.d.ts +0 -0
- /package/{lib → dist/cjs}/types/rest/response/private-spread-trading.js +0 -0
- /package/{lib → dist/cjs}/types/rest/response/private-subaccount.d.ts +0 -0
- /package/{lib → dist/cjs}/types/rest/response/private-subaccount.js +0 -0
- /package/{lib → dist/cjs}/types/rest/response/private-trade.js +0 -0
- /package/{lib → dist/cjs}/types/rest/response/public-data.js +0 -0
- /package/{lib → dist/cjs}/types/rest/shared.js +0 -0
- /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
|
+
}
|