bitget-api 2.3.6 → 3.0.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 +272 -18
- package/{lib → dist/cjs}/broker-client.d.ts +3 -2
- package/{lib → dist/cjs}/broker-client.js +4 -4
- package/dist/cjs/broker-client.js.map +1 -0
- package/{lib → dist/cjs}/constants/enum.d.ts +3 -0
- package/{lib → dist/cjs}/constants/enum.js +3 -0
- package/dist/cjs/constants/enum.js.map +1 -0
- package/{lib → dist/cjs}/futures-client.d.ts +5 -2
- package/{lib → dist/cjs}/futures-client.js +18 -9
- package/dist/cjs/futures-client.js.map +1 -0
- package/dist/cjs/index.d.ts +50 -0
- package/dist/cjs/index.js +67 -0
- package/dist/cjs/index.js.map +1 -0
- package/dist/cjs/package.json +3 -0
- package/{lib → dist/cjs}/rest-client-v2.d.ts +17 -2
- package/{lib → dist/cjs}/rest-client-v2.js +62 -74
- package/dist/cjs/rest-client-v2.js.map +1 -0
- package/dist/cjs/rest-client-v3.d.ts +440 -0
- package/dist/cjs/rest-client-v3.js +573 -0
- package/dist/cjs/rest-client-v3.js.map +1 -0
- package/{lib → dist/cjs}/spot-client.d.ts +5 -2
- package/{lib → dist/cjs}/spot-client.js +21 -23
- package/dist/cjs/spot-client.js.map +1 -0
- package/{lib → dist/cjs}/types/request/shared.d.ts +4 -4
- package/dist/cjs/types/request/shared.js.map +1 -0
- package/{lib → dist/cjs}/types/request/v1/brokerV1.d.ts +1 -1
- package/dist/cjs/types/request/v1/brokerV1.js.map +1 -0
- package/{lib → dist/cjs}/types/request/v1/futuresV1.d.ts +10 -10
- package/dist/cjs/types/request/v1/futuresV1.js.map +1 -0
- package/{lib → dist/cjs}/types/request/v1/spotV1.d.ts +4 -4
- package/dist/cjs/types/request/v1/spotV1.js.map +1 -0
- package/{lib → dist/cjs}/types/request/v2/broker.d.ts +3 -3
- package/dist/cjs/types/request/v2/broker.js.map +1 -0
- package/{lib → dist/cjs}/types/request/v2/common.d.ts +1 -1
- package/dist/cjs/types/request/v2/common.js.map +1 -0
- package/{lib → dist/cjs}/types/request/v2/copytrading.d.ts +5 -5
- package/dist/cjs/types/request/v2/copytrading.js.map +1 -0
- package/dist/cjs/types/request/v2/earn.js.map +1 -0
- package/{lib → dist/cjs}/types/request/v2/futures.d.ts +9 -9
- package/dist/cjs/types/request/v2/futures.js.map +1 -0
- package/{lib → dist/cjs}/types/request/v2/margin.d.ts +5 -5
- package/dist/cjs/types/request/v2/margin.js.map +1 -0
- package/{lib → dist/cjs}/types/request/v2/spot.d.ts +12 -12
- package/dist/cjs/types/request/v2/spot.js.map +1 -0
- package/dist/cjs/types/request/v3/account.d.ts +162 -0
- package/dist/cjs/types/request/v3/account.js +4 -0
- package/dist/cjs/types/request/v3/account.js.map +1 -0
- package/dist/cjs/types/request/v3/loan.d.ts +31 -0
- package/dist/cjs/types/request/v3/loan.js +3 -0
- package/dist/cjs/types/request/v3/loan.js.map +1 -0
- package/dist/cjs/types/request/v3/public.d.ts +65 -0
- package/dist/cjs/types/request/v3/public.js +3 -0
- package/dist/cjs/types/request/v3/public.js.map +1 -0
- package/dist/cjs/types/request/v3/strategy.d.ts +46 -0
- package/dist/cjs/types/request/v3/strategy.js +3 -0
- package/dist/cjs/types/request/v3/strategy.js.map +1 -0
- package/dist/cjs/types/request/v3/trade.d.ts +112 -0
- package/dist/cjs/types/request/v3/trade.js +3 -0
- package/dist/cjs/types/request/v3/trade.js.map +1 -0
- package/{lib → dist/cjs}/types/response/v1/futures.d.ts +1 -1
- package/dist/cjs/types/response/v1/futures.js.map +1 -0
- package/dist/cjs/types/response/v1/shared.js.map +1 -0
- package/dist/cjs/types/response/v1/spot.js.map +1 -0
- package/dist/cjs/types/response/v2/broker.js.map +1 -0
- package/dist/cjs/types/response/v2/common.js.map +1 -0
- package/dist/cjs/types/response/v2/copy-trading.js.map +1 -0
- package/dist/cjs/types/response/v2/earn.js.map +1 -0
- package/{lib → dist/cjs}/types/response/v2/futures.d.ts +1 -1
- package/dist/cjs/types/response/v2/futures.js.map +1 -0
- package/dist/cjs/types/response/v2/margin.js.map +1 -0
- package/{lib → dist/cjs}/types/response/v2/spot.d.ts +1 -1
- package/dist/cjs/types/response/v2/spot.js.map +1 -0
- package/dist/cjs/types/response/v3/account.d.ts +197 -0
- package/dist/cjs/types/response/v3/account.js +3 -0
- package/dist/cjs/types/response/v3/account.js.map +1 -0
- package/dist/cjs/types/response/v3/loan.d.ts +85 -0
- package/dist/cjs/types/response/v3/loan.js +3 -0
- package/dist/cjs/types/response/v3/loan.js.map +1 -0
- package/dist/cjs/types/response/v3/public.d.ts +142 -0
- package/dist/cjs/types/response/v3/public.js +3 -0
- package/dist/cjs/types/response/v3/public.js.map +1 -0
- package/dist/cjs/types/response/v3/strategy.d.ts +26 -0
- package/dist/cjs/types/response/v3/strategy.js +3 -0
- package/dist/cjs/types/response/v3/strategy.js.map +1 -0
- package/dist/cjs/types/response/v3/trade.d.ts +193 -0
- package/dist/cjs/types/response/v3/trade.js +3 -0
- package/dist/cjs/types/response/v3/trade.js.map +1 -0
- package/dist/cjs/types/shared.d.ts +8 -0
- package/{lib → dist/cjs}/types/shared.js.map +1 -1
- package/dist/cjs/types/websockets/ws-api-request.d.ts +20 -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 +6 -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 +91 -0
- package/dist/cjs/types/websockets/ws-api.js +11 -0
- package/dist/cjs/types/websockets/ws-api.js.map +1 -0
- package/{lib/types/websockets/events.d.ts → dist/cjs/types/websockets/ws-events.d.ts} +6 -0
- 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 +112 -0
- package/dist/cjs/types/websockets/ws-general.js +3 -0
- package/dist/cjs/types/websockets/ws-general.js.map +1 -0
- package/{lib → dist/cjs}/util/BaseRestClient.d.ts +3 -2
- package/dist/cjs/util/BaseRestClient.js +274 -0
- package/dist/cjs/util/BaseRestClient.js.map +1 -0
- package/dist/cjs/util/BaseWSClient.d.ts +197 -0
- package/dist/cjs/util/BaseWSClient.js +759 -0
- package/dist/cjs/util/BaseWSClient.js.map +1 -0
- package/dist/cjs/util/WsStore.d.ts +74 -0
- package/dist/cjs/util/WsStore.js +287 -0
- package/dist/cjs/util/WsStore.js.map +1 -0
- package/{lib → dist/cjs}/util/WsStore.types.d.ts +27 -1
- package/{lib → dist/cjs}/util/WsStore.types.js +3 -2
- 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 +2 -10
- package/dist/cjs/util/logger.js.map +1 -0
- package/{lib → dist/cjs}/util/requestUtils.d.ts +18 -1
- package/{lib → dist/cjs}/util/requestUtils.js +6 -5
- package/dist/cjs/util/requestUtils.js.map +1 -0
- package/{lib → dist/cjs}/util/type-guards.d.ts +4 -1
- package/{lib → dist/cjs}/util/type-guards.js +20 -10
- package/dist/cjs/util/type-guards.js.map +1 -0
- package/dist/cjs/util/webCryptoAPI.d.ts +14 -0
- package/dist/cjs/util/webCryptoAPI.js +80 -0
- package/dist/cjs/util/webCryptoAPI.js.map +1 -0
- package/dist/cjs/util/websocket-util.d.ts +88 -0
- package/dist/cjs/util/websocket-util.js +241 -0
- package/dist/cjs/util/websocket-util.js.map +1 -0
- package/dist/cjs/websocket-api-client.d.ts +89 -0
- package/dist/cjs/websocket-api-client.js +122 -0
- package/dist/cjs/websocket-api-client.js.map +1 -0
- package/{lib/websocket-client.d.ts → dist/cjs/websocket-client-legacy-v1.d.ts} +6 -6
- package/{lib/websocket-client.js → dist/cjs/websocket-client-legacy-v1.js} +211 -156
- package/dist/cjs/websocket-client-legacy-v1.js.map +1 -0
- package/dist/cjs/websocket-client-v2.d.ts +79 -0
- package/dist/cjs/websocket-client-v2.js +339 -0
- package/dist/cjs/websocket-client-v2.js.map +1 -0
- package/dist/cjs/websocket-client-v3.d.ts +84 -0
- package/dist/cjs/websocket-client-v3.js +408 -0
- package/dist/cjs/websocket-client-v3.js.map +1 -0
- package/dist/mjs/broker-client.d.ts +127 -0
- package/dist/mjs/broker-client.js +158 -0
- package/dist/mjs/broker-client.js.map +1 -0
- package/dist/mjs/constants/enum.d.ts +31 -0
- package/dist/mjs/constants/enum.js +32 -0
- package/dist/mjs/constants/enum.js.map +1 -0
- package/dist/mjs/futures-client.d.ts +184 -0
- package/dist/mjs/futures-client.js +473 -0
- package/dist/mjs/futures-client.js.map +1 -0
- package/dist/mjs/index.d.ts +50 -0
- package/dist/mjs/index.js +51 -0
- package/dist/mjs/index.js.map +1 -0
- package/dist/mjs/package.json +3 -0
- package/dist/mjs/rest-client-v2.d.ts +1098 -0
- package/dist/mjs/rest-client-v2.js +1092 -0
- package/dist/mjs/rest-client-v2.js.map +1 -0
- package/dist/mjs/rest-client-v3.d.ts +440 -0
- package/dist/mjs/rest-client-v3.js +566 -0
- package/dist/mjs/rest-client-v3.js.map +1 -0
- package/dist/mjs/spot-client.d.ts +154 -0
- package/dist/mjs/spot-client.js +273 -0
- package/dist/mjs/spot-client.js.map +1 -0
- package/dist/mjs/types/request/shared.d.ts +23 -0
- package/dist/mjs/types/request/shared.js +2 -0
- package/dist/mjs/types/request/shared.js.map +1 -0
- package/dist/mjs/types/request/v1/brokerV1.d.ts +23 -0
- package/dist/mjs/types/request/v1/brokerV1.js +2 -0
- package/dist/mjs/types/request/v1/brokerV1.js.map +1 -0
- package/dist/mjs/types/request/v1/futuresV1.d.ts +168 -0
- package/dist/mjs/types/request/v1/futuresV1.js +2 -0
- package/dist/mjs/types/request/v1/futuresV1.js.map +1 -0
- package/dist/mjs/types/request/v1/spotV1.d.ts +105 -0
- package/dist/mjs/types/request/v1/spotV1.js +2 -0
- package/dist/mjs/types/request/v1/spotV1.js.map +1 -0
- package/dist/mjs/types/request/v2/broker.d.ts +69 -0
- package/dist/mjs/types/request/v2/broker.js +7 -0
- package/dist/mjs/types/request/v2/broker.js.map +1 -0
- package/dist/mjs/types/request/v2/common.d.ts +163 -0
- package/dist/mjs/types/request/v2/common.js +2 -0
- package/dist/mjs/types/request/v2/common.js.map +1 -0
- package/dist/mjs/types/request/v2/copytrading.d.ts +196 -0
- package/dist/mjs/types/request/v2/copytrading.js +9 -0
- package/dist/mjs/types/request/v2/copytrading.js.map +1 -0
- package/dist/mjs/types/request/v2/earn.d.ts +121 -0
- package/dist/mjs/types/request/v2/earn.js +9 -0
- package/dist/mjs/types/request/v2/earn.js.map +1 -0
- package/dist/mjs/types/request/v2/futures.d.ts +363 -0
- package/dist/mjs/types/request/v2/futures.js +2 -0
- package/dist/mjs/types/request/v2/futures.js.map +1 -0
- package/dist/mjs/types/request/v2/margin.d.ts +121 -0
- package/dist/mjs/types/request/v2/margin.js +7 -0
- package/dist/mjs/types/request/v2/margin.js.map +1 -0
- package/dist/mjs/types/request/v2/spot.d.ts +265 -0
- package/dist/mjs/types/request/v2/spot.js +2 -0
- package/dist/mjs/types/request/v2/spot.js.map +1 -0
- package/dist/mjs/types/request/v3/account.d.ts +162 -0
- package/dist/mjs/types/request/v3/account.js +3 -0
- package/dist/mjs/types/request/v3/account.js.map +1 -0
- package/dist/mjs/types/request/v3/loan.d.ts +31 -0
- package/dist/mjs/types/request/v3/loan.js +2 -0
- package/dist/mjs/types/request/v3/loan.js.map +1 -0
- package/dist/mjs/types/request/v3/public.d.ts +65 -0
- package/dist/mjs/types/request/v3/public.js +2 -0
- package/dist/mjs/types/request/v3/public.js.map +1 -0
- package/dist/mjs/types/request/v3/strategy.d.ts +46 -0
- package/dist/mjs/types/request/v3/strategy.js +2 -0
- package/dist/mjs/types/request/v3/strategy.js.map +1 -0
- package/dist/mjs/types/request/v3/trade.d.ts +112 -0
- package/dist/mjs/types/request/v3/trade.js +2 -0
- package/dist/mjs/types/request/v3/trade.js.map +1 -0
- package/dist/mjs/types/response/v1/futures.d.ts +72 -0
- package/dist/mjs/types/response/v1/futures.js +2 -0
- package/dist/mjs/types/response/v1/futures.js.map +1 -0
- package/dist/mjs/types/response/v1/shared.d.ts +15 -0
- package/dist/mjs/types/response/v1/shared.js +2 -0
- package/dist/mjs/types/response/v1/shared.js.map +1 -0
- package/dist/mjs/types/response/v1/spot.d.ts +65 -0
- package/dist/mjs/types/response/v1/spot.js +2 -0
- package/dist/mjs/types/response/v1/spot.js.map +1 -0
- package/dist/mjs/types/response/v2/broker.d.ts +135 -0
- package/dist/mjs/types/response/v2/broker.js +7 -0
- package/dist/mjs/types/response/v2/broker.js.map +1 -0
- package/dist/mjs/types/response/v2/common.d.ts +384 -0
- package/dist/mjs/types/response/v2/common.js +7 -0
- package/dist/mjs/types/response/v2/common.js.map +1 -0
- package/dist/mjs/types/response/v2/copy-trading.d.ts +385 -0
- package/dist/mjs/types/response/v2/copy-trading.js +9 -0
- package/dist/mjs/types/response/v2/copy-trading.js.map +1 -0
- package/dist/mjs/types/response/v2/earn.d.ts +294 -0
- package/dist/mjs/types/response/v2/earn.js +9 -0
- package/dist/mjs/types/response/v2/earn.js.map +1 -0
- package/dist/mjs/types/response/v2/futures.d.ts +546 -0
- package/dist/mjs/types/response/v2/futures.js +7 -0
- package/dist/mjs/types/response/v2/futures.js.map +1 -0
- package/dist/mjs/types/response/v2/margin.d.ts +277 -0
- package/dist/mjs/types/response/v2/margin.js +7 -0
- package/dist/mjs/types/response/v2/margin.js.map +1 -0
- package/dist/mjs/types/response/v2/spot.d.ts +385 -0
- package/dist/mjs/types/response/v2/spot.js +7 -0
- package/dist/mjs/types/response/v2/spot.js.map +1 -0
- package/dist/mjs/types/response/v3/account.d.ts +197 -0
- package/dist/mjs/types/response/v3/account.js +2 -0
- package/dist/mjs/types/response/v3/account.js.map +1 -0
- package/dist/mjs/types/response/v3/loan.d.ts +85 -0
- package/dist/mjs/types/response/v3/loan.js +2 -0
- package/dist/mjs/types/response/v3/loan.js.map +1 -0
- package/dist/mjs/types/response/v3/public.d.ts +142 -0
- package/dist/mjs/types/response/v3/public.js +2 -0
- package/dist/mjs/types/response/v3/public.js.map +1 -0
- package/dist/mjs/types/response/v3/strategy.d.ts +26 -0
- package/dist/mjs/types/response/v3/strategy.js +2 -0
- package/dist/mjs/types/response/v3/strategy.js.map +1 -0
- package/dist/mjs/types/response/v3/trade.d.ts +193 -0
- package/dist/mjs/types/response/v3/trade.js +2 -0
- package/dist/mjs/types/response/v3/trade.js.map +1 -0
- package/dist/mjs/types/shared.d.ts +8 -0
- package/dist/mjs/types/shared.js +2 -0
- package/{lib/types/request → dist/mjs/types}/shared.js.map +1 -1
- package/dist/mjs/types/websockets/ws-api-request.d.ts +20 -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 +6 -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 +91 -0
- package/dist/mjs/types/websockets/ws-api.js +8 -0
- package/dist/mjs/types/websockets/ws-api.js.map +1 -0
- package/dist/mjs/types/websockets/ws-events.d.ts +81 -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 +112 -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/util/BaseRestClient.d.ts +40 -0
- package/dist/mjs/util/BaseRestClient.js +268 -0
- package/dist/mjs/util/BaseRestClient.js.map +1 -0
- package/dist/mjs/util/BaseWSClient.d.ts +197 -0
- package/dist/mjs/util/BaseWSClient.js +752 -0
- package/dist/mjs/util/BaseWSClient.js.map +1 -0
- package/dist/mjs/util/WsStore.d.ts +74 -0
- package/dist/mjs/util/WsStore.js +282 -0
- package/dist/mjs/util/WsStore.js.map +1 -0
- package/dist/mjs/util/WsStore.types.d.ts +52 -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 +61 -0
- package/dist/mjs/util/requestUtils.js +50 -0
- package/dist/mjs/util/requestUtils.js.map +1 -0
- package/dist/mjs/util/type-guards.d.ts +16 -0
- package/dist/mjs/util/type-guards.js +62 -0
- package/dist/mjs/util/type-guards.js.map +1 -0
- package/dist/mjs/util/webCryptoAPI.d.ts +14 -0
- package/dist/mjs/util/webCryptoAPI.js +76 -0
- package/dist/mjs/util/webCryptoAPI.js.map +1 -0
- package/dist/mjs/util/websocket-util.d.ts +88 -0
- package/dist/mjs/util/websocket-util.js +227 -0
- package/dist/mjs/util/websocket-util.js.map +1 -0
- package/dist/mjs/websocket-api-client.d.ts +89 -0
- package/dist/mjs/websocket-api-client.js +118 -0
- package/dist/mjs/websocket-api-client.js.map +1 -0
- package/{lib/util/BaseWSClient.d.ts → dist/mjs/websocket-client-legacy-v1.d.ts} +44 -27
- package/dist/mjs/websocket-client-legacy-v1.js +502 -0
- package/dist/mjs/websocket-client-legacy-v1.js.map +1 -0
- package/dist/mjs/websocket-client-v2.d.ts +79 -0
- package/dist/mjs/websocket-client-v2.js +335 -0
- package/dist/mjs/websocket-client-v2.js.map +1 -0
- package/dist/mjs/websocket-client-v3.d.ts +84 -0
- package/dist/mjs/websocket-client-v3.js +404 -0
- package/dist/mjs/websocket-client-v3.js.map +1 -0
- package/package.json +33 -15
- package/index.js +0 -1
- package/lib/broker-client.js.map +0 -1
- package/lib/constants/enum.js.map +0 -1
- package/lib/futures-client.js.map +0 -1
- package/lib/index.d.ts +0 -10
- package/lib/index.js +0 -27
- package/lib/index.js.map +0 -1
- package/lib/rest-client-v2.js.map +0 -1
- package/lib/spot-client.js.map +0 -1
- package/lib/types/index.d.ts +0 -4
- package/lib/types/index.js +0 -21
- package/lib/types/index.js.map +0 -1
- package/lib/types/request/index.d.ts +0 -11
- package/lib/types/request/index.js +0 -28
- package/lib/types/request/index.js.map +0 -1
- package/lib/types/request/v1/brokerV1.js.map +0 -1
- package/lib/types/request/v1/futuresV1.js.map +0 -1
- package/lib/types/request/v1/spotV1.js.map +0 -1
- package/lib/types/request/v2/broker.js.map +0 -1
- package/lib/types/request/v2/common.js.map +0 -1
- package/lib/types/request/v2/copytrading.js.map +0 -1
- package/lib/types/request/v2/earn.js.map +0 -1
- package/lib/types/request/v2/futures.js.map +0 -1
- package/lib/types/request/v2/margin.js.map +0 -1
- package/lib/types/request/v2/spot.js.map +0 -1
- package/lib/types/response/index.d.ts +0 -10
- package/lib/types/response/index.js +0 -27
- package/lib/types/response/index.js.map +0 -1
- package/lib/types/response/v1/futures.js.map +0 -1
- package/lib/types/response/v1/shared.js.map +0 -1
- package/lib/types/response/v1/spot.js.map +0 -1
- package/lib/types/response/v2/broker.js.map +0 -1
- package/lib/types/response/v2/common.js.map +0 -1
- package/lib/types/response/v2/copy-trading.js.map +0 -1
- package/lib/types/response/v2/earn.js.map +0 -1
- package/lib/types/response/v2/futures.js.map +0 -1
- package/lib/types/response/v2/margin.js.map +0 -1
- package/lib/types/response/v2/spot.js.map +0 -1
- package/lib/types/shared.d.ts +0 -8
- package/lib/types/websockets/client.d.ts +0 -76
- package/lib/types/websockets/client.js +0 -3
- package/lib/types/websockets/client.js.map +0 -1
- package/lib/types/websockets/events.js +0 -3
- package/lib/types/websockets/events.js.map +0 -1
- package/lib/types/websockets/index.d.ts +0 -2
- package/lib/types/websockets/index.js +0 -19
- package/lib/types/websockets/index.js.map +0 -1
- package/lib/util/BaseRestClient.js +0 -221
- package/lib/util/BaseRestClient.js.map +0 -1
- package/lib/util/BaseWSClient.js +0 -395
- package/lib/util/BaseWSClient.js.map +0 -1
- package/lib/util/WsStore.d.ts +0 -26
- package/lib/util/WsStore.js +0 -126
- package/lib/util/WsStore.js.map +0 -1
- package/lib/util/WsStore.types.js.map +0 -1
- package/lib/util/browser-support.d.ts +0 -1
- package/lib/util/browser-support.js +0 -45
- package/lib/util/browser-support.js.map +0 -1
- package/lib/util/index.d.ts +0 -6
- package/lib/util/index.js +0 -23
- 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 -2
- package/lib/util/node-support.js +0 -34
- package/lib/util/node-support.js.map +0 -1
- package/lib/util/requestUtils.js.map +0 -1
- package/lib/util/type-guards.js.map +0 -1
- package/lib/util/websocket-util.d.ts +0 -47
- package/lib/util/websocket-util.js +0 -154
- package/lib/util/websocket-util.js.map +0 -1
- package/lib/websocket-client-v2.d.ts +0 -33
- package/lib/websocket-client-v2.js +0 -104
- package/lib/websocket-client-v2.js.map +0 -1
- package/lib/websocket-client.js.map +0 -1
- /package/{lib → dist/cjs}/types/request/shared.js +0 -0
- /package/{lib → dist/cjs}/types/request/v1/brokerV1.js +0 -0
- /package/{lib → dist/cjs}/types/request/v1/futuresV1.js +0 -0
- /package/{lib → dist/cjs}/types/request/v1/spotV1.js +0 -0
- /package/{lib → dist/cjs}/types/request/v2/broker.js +0 -0
- /package/{lib → dist/cjs}/types/request/v2/common.js +0 -0
- /package/{lib → dist/cjs}/types/request/v2/copytrading.js +0 -0
- /package/{lib → dist/cjs}/types/request/v2/earn.d.ts +0 -0
- /package/{lib → dist/cjs}/types/request/v2/earn.js +0 -0
- /package/{lib → dist/cjs}/types/request/v2/futures.js +0 -0
- /package/{lib → dist/cjs}/types/request/v2/margin.js +0 -0
- /package/{lib → dist/cjs}/types/request/v2/spot.js +0 -0
- /package/{lib → dist/cjs}/types/response/v1/futures.js +0 -0
- /package/{lib → dist/cjs}/types/response/v1/shared.d.ts +0 -0
- /package/{lib → dist/cjs}/types/response/v1/shared.js +0 -0
- /package/{lib → dist/cjs}/types/response/v1/spot.d.ts +0 -0
- /package/{lib → dist/cjs}/types/response/v1/spot.js +0 -0
- /package/{lib → dist/cjs}/types/response/v2/broker.d.ts +0 -0
- /package/{lib → dist/cjs}/types/response/v2/broker.js +0 -0
- /package/{lib → dist/cjs}/types/response/v2/common.d.ts +0 -0
- /package/{lib → dist/cjs}/types/response/v2/common.js +0 -0
- /package/{lib → dist/cjs}/types/response/v2/copy-trading.d.ts +0 -0
- /package/{lib → dist/cjs}/types/response/v2/copy-trading.js +0 -0
- /package/{lib → dist/cjs}/types/response/v2/earn.d.ts +0 -0
- /package/{lib → dist/cjs}/types/response/v2/earn.js +0 -0
- /package/{lib → dist/cjs}/types/response/v2/futures.js +0 -0
- /package/{lib → dist/cjs}/types/response/v2/margin.d.ts +0 -0
- /package/{lib → dist/cjs}/types/response/v2/margin.js +0 -0
- /package/{lib → dist/cjs}/types/response/v2/spot.js +0 -0
- /package/{lib → dist/cjs}/types/shared.js +0 -0
|
@@ -0,0 +1,335 @@
|
|
|
1
|
+
import { BaseWebsocketClient, } from './util/BaseWSClient.js';
|
|
2
|
+
import { isWsPong } from './util/requestUtils.js';
|
|
3
|
+
import { signMessage, } from './util/webCryptoAPI.js';
|
|
4
|
+
import { getMaxTopicsPerSubscribeEvent, getNormalisedTopicRequests, getWsUrl, isPrivateChannel, WS_AUTH_ON_CONNECT_KEYS, WS_KEY_MAP, } from './util/websocket-util.js';
|
|
5
|
+
const WS_LOGGER_CATEGORY = { category: 'bitget-ws' };
|
|
6
|
+
const COIN_CHANNELS = [
|
|
7
|
+
'account',
|
|
8
|
+
'account-crossed',
|
|
9
|
+
'account-isolated',
|
|
10
|
+
];
|
|
11
|
+
export class WebsocketClientV2 extends BaseWebsocketClient {
|
|
12
|
+
/**
|
|
13
|
+
* Request connection of all dependent (public & private) websockets, instead of waiting for automatic connection by library
|
|
14
|
+
*/
|
|
15
|
+
connectAll() {
|
|
16
|
+
return [
|
|
17
|
+
this.connect(WS_KEY_MAP.v2Private),
|
|
18
|
+
this.connect(WS_KEY_MAP.v2Public),
|
|
19
|
+
];
|
|
20
|
+
}
|
|
21
|
+
/** Some private channels use `coin` instead of `instId`. This method handles building the sub/unsub request */
|
|
22
|
+
getSubRequest(instType, topic, coin = 'default') {
|
|
23
|
+
if (isPrivateChannel(topic)) {
|
|
24
|
+
if (COIN_CHANNELS.includes(topic)) {
|
|
25
|
+
const subscribeRequest = {
|
|
26
|
+
topic,
|
|
27
|
+
payload: {
|
|
28
|
+
instType,
|
|
29
|
+
coin,
|
|
30
|
+
},
|
|
31
|
+
};
|
|
32
|
+
return subscribeRequest;
|
|
33
|
+
}
|
|
34
|
+
const subscribeRequest = {
|
|
35
|
+
topic,
|
|
36
|
+
payload: {
|
|
37
|
+
instType,
|
|
38
|
+
instId: coin,
|
|
39
|
+
},
|
|
40
|
+
};
|
|
41
|
+
return subscribeRequest;
|
|
42
|
+
}
|
|
43
|
+
const subscribeRequest = {
|
|
44
|
+
topic,
|
|
45
|
+
payload: {
|
|
46
|
+
instType,
|
|
47
|
+
instId: coin,
|
|
48
|
+
},
|
|
49
|
+
};
|
|
50
|
+
return subscribeRequest;
|
|
51
|
+
}
|
|
52
|
+
/**
|
|
53
|
+
* Subscribe to a topic
|
|
54
|
+
* @param instType instrument type (refer to API docs).
|
|
55
|
+
* @param topic topic name (e.g. "ticker").
|
|
56
|
+
* @param instId instrument ID (e.g. "BTCUSDT"). Use "default" for private topics.
|
|
57
|
+
*/
|
|
58
|
+
subscribeTopic(instType, topic, coin = 'default') {
|
|
59
|
+
const subRequest = this.getSubRequest(instType, topic, coin);
|
|
60
|
+
const isPrivateTopic = isPrivateChannel(topic);
|
|
61
|
+
const wsKey = isPrivateTopic ? WS_KEY_MAP.v2Private : WS_KEY_MAP.v2Public;
|
|
62
|
+
return this.subscribe(subRequest, wsKey);
|
|
63
|
+
}
|
|
64
|
+
/**
|
|
65
|
+
* Unsubscribe from a topic
|
|
66
|
+
* @param instType instrument type (refer to API docs).
|
|
67
|
+
* @param topic topic name (e.g. "ticker").
|
|
68
|
+
* @param instId instrument ID (e.g. "BTCUSDT"). Use "default" for private topics to get all symbols.
|
|
69
|
+
*/
|
|
70
|
+
unsubscribeTopic(instType, topic, coin = 'default') {
|
|
71
|
+
const subRequest = this.getSubRequest(instType, topic, coin);
|
|
72
|
+
const isPrivateTopic = isPrivateChannel(topic);
|
|
73
|
+
const wsKey = isPrivateTopic ? WS_KEY_MAP.v2Private : WS_KEY_MAP.v2Public;
|
|
74
|
+
return this.unsubscribe(subRequest, wsKey);
|
|
75
|
+
}
|
|
76
|
+
/**
|
|
77
|
+
* Request subscription to one or more topics. Pass topics as either an array of strings,
|
|
78
|
+
* or array of objects (if the topic has parameters).
|
|
79
|
+
*
|
|
80
|
+
* Objects should be formatted as {topic: string, params: object, category: CategoryV5}.
|
|
81
|
+
*
|
|
82
|
+
* - Subscriptions are automatically routed to the correct websocket connection.
|
|
83
|
+
* - Authentication/connection is automatic.
|
|
84
|
+
* - Resubscribe after network issues is automatic.
|
|
85
|
+
*
|
|
86
|
+
* Call `unsubscribe(topics)` to remove topics
|
|
87
|
+
*/
|
|
88
|
+
subscribe(requests, wsKey) {
|
|
89
|
+
const topicRequests = Array.isArray(requests) ? requests : [requests];
|
|
90
|
+
const normalisedTopicRequests = getNormalisedTopicRequests(topicRequests);
|
|
91
|
+
return this.subscribeTopicsForWsKey(normalisedTopicRequests, wsKey);
|
|
92
|
+
}
|
|
93
|
+
/**
|
|
94
|
+
* Unsubscribe from one or more topics. Similar to subscribe() but in reverse.
|
|
95
|
+
*
|
|
96
|
+
* - Requests are automatically routed to the correct websocket connection.
|
|
97
|
+
* - These topics will be removed from the topic cache, so they won't be subscribed to again.
|
|
98
|
+
*/
|
|
99
|
+
unsubscribe(requests, wsKey) {
|
|
100
|
+
const topicRequests = Array.isArray(requests) ? requests : [requests];
|
|
101
|
+
const normalisedTopicRequests = getNormalisedTopicRequests(topicRequests);
|
|
102
|
+
return this.unsubscribeTopicsForWsKey(normalisedTopicRequests, wsKey);
|
|
103
|
+
}
|
|
104
|
+
/**
|
|
105
|
+
*
|
|
106
|
+
*
|
|
107
|
+
* Internal methods required to integrate with the BaseWSClient
|
|
108
|
+
*
|
|
109
|
+
*
|
|
110
|
+
*/
|
|
111
|
+
sendPingEvent(wsKey) {
|
|
112
|
+
this.tryWsSend(wsKey, 'ping');
|
|
113
|
+
}
|
|
114
|
+
sendPongEvent(wsKey) {
|
|
115
|
+
this.tryWsSend(wsKey, 'pong');
|
|
116
|
+
}
|
|
117
|
+
isWsPing(data) {
|
|
118
|
+
if (data?.data === 'ping') {
|
|
119
|
+
return true;
|
|
120
|
+
}
|
|
121
|
+
return false;
|
|
122
|
+
}
|
|
123
|
+
isWsPong(data) {
|
|
124
|
+
return isWsPong(data);
|
|
125
|
+
}
|
|
126
|
+
isPrivateTopicRequest(_request, wsKey) {
|
|
127
|
+
return WS_AUTH_ON_CONNECT_KEYS.includes(wsKey);
|
|
128
|
+
}
|
|
129
|
+
getPrivateWSKeys() {
|
|
130
|
+
return WS_AUTH_ON_CONNECT_KEYS;
|
|
131
|
+
}
|
|
132
|
+
isAuthOnConnectWsKey(wsKey) {
|
|
133
|
+
return WS_AUTH_ON_CONNECT_KEYS.includes(wsKey);
|
|
134
|
+
}
|
|
135
|
+
async getWsUrl(wsKey) {
|
|
136
|
+
return getWsUrl(wsKey, this.options, this.logger);
|
|
137
|
+
}
|
|
138
|
+
getMaxTopicsPerSubscribeEvent(wsKey) {
|
|
139
|
+
return getMaxTopicsPerSubscribeEvent(wsKey);
|
|
140
|
+
}
|
|
141
|
+
/**
|
|
142
|
+
* @returns one or more correctly structured request events for performing a operations over WS. This can vary per exchange spec.
|
|
143
|
+
*/
|
|
144
|
+
async getWsRequestEvents(operation, requests) {
|
|
145
|
+
const wsRequestBuildingErrors = [];
|
|
146
|
+
const topics = requests.map((r) => r.topic + ',' + Object.values(r.payload || {}).join(','));
|
|
147
|
+
// Previously used to track topics in a request. Keeping this for subscribe/unsubscribe requests, no need for incremental values
|
|
148
|
+
const req_id = ['subscribe', 'unsubscribe'].includes(operation) && topics.length
|
|
149
|
+
? topics.join(',')
|
|
150
|
+
: this.getNewRequestId().toFixed();
|
|
151
|
+
/**
|
|
152
|
+
{
|
|
153
|
+
"op":"subscribe",
|
|
154
|
+
"args":[
|
|
155
|
+
{
|
|
156
|
+
"instType":"SPOT",
|
|
157
|
+
"channel":"ticker",
|
|
158
|
+
"instId":"BTCUSDT"
|
|
159
|
+
},
|
|
160
|
+
{
|
|
161
|
+
"instType":"SPOT",
|
|
162
|
+
"channel":"candle5m",
|
|
163
|
+
"instId":"BTCUSDT"
|
|
164
|
+
}
|
|
165
|
+
]
|
|
166
|
+
}
|
|
167
|
+
*/
|
|
168
|
+
const wsEvent = {
|
|
169
|
+
op: operation,
|
|
170
|
+
args: requests.map((request) => {
|
|
171
|
+
// const request = {
|
|
172
|
+
// topic: 'ticker',
|
|
173
|
+
// payload: { instType: 'SPOT', instId: 'BTCUSDT' },
|
|
174
|
+
// };
|
|
175
|
+
// becomes:
|
|
176
|
+
// const request = {
|
|
177
|
+
// channel: 'ticker',
|
|
178
|
+
// instType: 'SPOT',
|
|
179
|
+
// instId: 'BTCUSDT',
|
|
180
|
+
// };
|
|
181
|
+
return {
|
|
182
|
+
channel: request.topic,
|
|
183
|
+
...request.payload,
|
|
184
|
+
};
|
|
185
|
+
}),
|
|
186
|
+
};
|
|
187
|
+
const midflightWsEvent = {
|
|
188
|
+
requestKey: req_id,
|
|
189
|
+
requestEvent: wsEvent,
|
|
190
|
+
};
|
|
191
|
+
if (wsRequestBuildingErrors.length) {
|
|
192
|
+
const label = wsRequestBuildingErrors.length === requests.length ? 'all' : 'some';
|
|
193
|
+
this.logger.error(`Failed to build/send ${wsRequestBuildingErrors.length} event(s) for ${label} WS requests due to exceptions`, {
|
|
194
|
+
...WS_LOGGER_CATEGORY,
|
|
195
|
+
wsRequestBuildingErrors,
|
|
196
|
+
wsRequestBuildingErrorsStringified: JSON.stringify(wsRequestBuildingErrors, null, 2),
|
|
197
|
+
});
|
|
198
|
+
}
|
|
199
|
+
return [midflightWsEvent];
|
|
200
|
+
}
|
|
201
|
+
async getWsAuthSignature(wsKey) {
|
|
202
|
+
const { apiKey, apiSecret, apiPass, recvWindow } = this.options;
|
|
203
|
+
if (!apiKey || !apiSecret || !apiPass) {
|
|
204
|
+
this.logger.error('Cannot authenticate websocket, either api key, secret or passphrase missing.', { ...WS_LOGGER_CATEGORY, wsKey });
|
|
205
|
+
throw new Error('Cannot auth - missing api or secret or pass in config');
|
|
206
|
+
}
|
|
207
|
+
this.logger.trace("Getting auth'd request params", {
|
|
208
|
+
...WS_LOGGER_CATEGORY,
|
|
209
|
+
wsKey,
|
|
210
|
+
});
|
|
211
|
+
const signatureExpiresAt = ((Date.now() + recvWindow) / 1000).toFixed(0);
|
|
212
|
+
const signature = await this.signMessage(signatureExpiresAt + 'GET' + '/user/verify', apiSecret, 'base64', 'SHA-256');
|
|
213
|
+
return {
|
|
214
|
+
expiresAt: +signatureExpiresAt,
|
|
215
|
+
signature,
|
|
216
|
+
};
|
|
217
|
+
}
|
|
218
|
+
async signMessage(paramsStr, secret, method, algorithm) {
|
|
219
|
+
if (typeof this.options.customSignMessageFn === 'function') {
|
|
220
|
+
return this.options.customSignMessageFn(paramsStr, secret);
|
|
221
|
+
}
|
|
222
|
+
return await signMessage(paramsStr, secret, method, algorithm);
|
|
223
|
+
}
|
|
224
|
+
async getWsAuthRequestEvent(wsKey) {
|
|
225
|
+
try {
|
|
226
|
+
const { apiKey, apiSecret, apiPass } = this.options;
|
|
227
|
+
const { signature, expiresAt } = await this.getWsAuthSignature(wsKey);
|
|
228
|
+
if (!apiKey || !apiSecret || !apiPass) {
|
|
229
|
+
this.logger.error('Cannot authenticate websocket, either api key, secret or passphrase missing.', { ...WS_LOGGER_CATEGORY, wsKey });
|
|
230
|
+
throw new Error('Cannot auth - missing api or secret or pass in config');
|
|
231
|
+
}
|
|
232
|
+
const request = {
|
|
233
|
+
op: 'login',
|
|
234
|
+
args: [
|
|
235
|
+
{
|
|
236
|
+
apiKey,
|
|
237
|
+
passphrase: apiPass,
|
|
238
|
+
timestamp: expiresAt,
|
|
239
|
+
sign: signature,
|
|
240
|
+
},
|
|
241
|
+
],
|
|
242
|
+
};
|
|
243
|
+
return request;
|
|
244
|
+
}
|
|
245
|
+
catch (e) {
|
|
246
|
+
this.logger.error(e, { ...WS_LOGGER_CATEGORY, wsKey });
|
|
247
|
+
throw e;
|
|
248
|
+
}
|
|
249
|
+
}
|
|
250
|
+
/**
|
|
251
|
+
* Abstraction called to sort ws events into emittable event types (response to a request, data update, etc)
|
|
252
|
+
*/
|
|
253
|
+
resolveEmittableEvents(wsKey, event) {
|
|
254
|
+
const results = [];
|
|
255
|
+
try {
|
|
256
|
+
const msg = JSON.parse(event.data);
|
|
257
|
+
const emittableEvent = { ...msg, wsKey };
|
|
258
|
+
// v2 event processing
|
|
259
|
+
if (typeof msg === 'object') {
|
|
260
|
+
if (typeof msg['code'] === 'number') {
|
|
261
|
+
// v2 authentication event
|
|
262
|
+
if (msg.event === 'login' && msg.code === 0) {
|
|
263
|
+
results.push({
|
|
264
|
+
eventType: 'response',
|
|
265
|
+
event: emittableEvent,
|
|
266
|
+
});
|
|
267
|
+
results.push({
|
|
268
|
+
eventType: 'authenticated',
|
|
269
|
+
event: emittableEvent,
|
|
270
|
+
});
|
|
271
|
+
return results;
|
|
272
|
+
}
|
|
273
|
+
}
|
|
274
|
+
if (msg['event']) {
|
|
275
|
+
results.push({
|
|
276
|
+
eventType: 'response',
|
|
277
|
+
event: emittableEvent,
|
|
278
|
+
});
|
|
279
|
+
if (msg.event === 'error') {
|
|
280
|
+
this.logger.error('WS Error received', {
|
|
281
|
+
...WS_LOGGER_CATEGORY,
|
|
282
|
+
wsKey,
|
|
283
|
+
message: msg || 'no message',
|
|
284
|
+
// messageType: typeof msg,
|
|
285
|
+
// messageString: JSON.stringify(msg),
|
|
286
|
+
event,
|
|
287
|
+
});
|
|
288
|
+
results.push({
|
|
289
|
+
eventType: 'exception',
|
|
290
|
+
event: emittableEvent,
|
|
291
|
+
});
|
|
292
|
+
}
|
|
293
|
+
return results;
|
|
294
|
+
}
|
|
295
|
+
if (msg['arg']) {
|
|
296
|
+
results.push({
|
|
297
|
+
eventType: 'update',
|
|
298
|
+
event: emittableEvent,
|
|
299
|
+
});
|
|
300
|
+
return results;
|
|
301
|
+
}
|
|
302
|
+
}
|
|
303
|
+
this.logger.info('Unhandled/unrecognised ws event message', {
|
|
304
|
+
...WS_LOGGER_CATEGORY,
|
|
305
|
+
message: msg || 'no message',
|
|
306
|
+
// messageType: typeof msg,
|
|
307
|
+
// messageString: JSON.stringify(msg),
|
|
308
|
+
event,
|
|
309
|
+
wsKey,
|
|
310
|
+
});
|
|
311
|
+
// fallback emit anyway
|
|
312
|
+
results.push({
|
|
313
|
+
eventType: 'update',
|
|
314
|
+
event: emittableEvent,
|
|
315
|
+
});
|
|
316
|
+
return results;
|
|
317
|
+
}
|
|
318
|
+
catch (e) {
|
|
319
|
+
this.logger.error('Failed to parse ws event message', {
|
|
320
|
+
...WS_LOGGER_CATEGORY,
|
|
321
|
+
error: e,
|
|
322
|
+
event,
|
|
323
|
+
wsKey,
|
|
324
|
+
});
|
|
325
|
+
}
|
|
326
|
+
return results;
|
|
327
|
+
}
|
|
328
|
+
/**
|
|
329
|
+
* @deprecrated not supported by Bitget's V2 API offering
|
|
330
|
+
*/
|
|
331
|
+
async sendWSAPIRequest() {
|
|
332
|
+
return;
|
|
333
|
+
}
|
|
334
|
+
}
|
|
335
|
+
//# sourceMappingURL=websocket-client-v2.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"websocket-client-v2.js","sourceRoot":"","sources":["../../src/websocket-client-v2.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,84 @@
|
|
|
1
|
+
import { WsAPIOperationResponseMap, WSAPIRequestFlags, WsAPITopicRequestParamMap, WsAPIWsKeyTopicMap, WSOperation, WSOperationLoginParams, WsRequestOperationBitget } from './types/websockets/ws-api.js';
|
|
2
|
+
import { MessageEventLike } from './types/websockets/ws-events.js';
|
|
3
|
+
import { BitgetInstTypeV3, WsKey, WsTopicV3 } from './types/websockets/ws-general.js';
|
|
4
|
+
import { BaseWebsocketClient, EmittableEvent, MidflightWsRequestEvent } from './util/BaseWSClient.js';
|
|
5
|
+
import { WsTopicRequest } from './util/websocket-util.js';
|
|
6
|
+
import { WSConnectedResult } from './util/WsStore.types.js';
|
|
7
|
+
/**
|
|
8
|
+
* WebSocket client dedicated to the unified account (V3) WebSockets.
|
|
9
|
+
*
|
|
10
|
+
* Your Bitget account needs to be upgraded to unified account mode, to use the account-level WebSocket topics.
|
|
11
|
+
*/
|
|
12
|
+
export declare class WebsocketClientV3 extends BaseWebsocketClient<WsKey, WsRequestOperationBitget<object>> {
|
|
13
|
+
/**
|
|
14
|
+
* Request connection of all dependent (public & private) websockets, instead of waiting for automatic connection by library
|
|
15
|
+
*/
|
|
16
|
+
connectAll(): Promise<WSConnectedResult | undefined>[];
|
|
17
|
+
/**
|
|
18
|
+
* Ensures the WS API connection is active and ready.
|
|
19
|
+
*
|
|
20
|
+
* You do not need to call this, but if you call this before making any WS API requests,
|
|
21
|
+
* it can accelerate the first request (by preparing the connection in advance).
|
|
22
|
+
*/
|
|
23
|
+
connectWSAPI(): Promise<unknown>;
|
|
24
|
+
/**
|
|
25
|
+
* Request subscription to one or more topics. Pass topics as either an array of strings,
|
|
26
|
+
* or array of objects (if the topic has parameters).
|
|
27
|
+
*
|
|
28
|
+
* Objects should be formatted as {topic: string, params: object, category: CategoryV5}.
|
|
29
|
+
*
|
|
30
|
+
* - Subscriptions are automatically routed to the correct websocket connection.
|
|
31
|
+
* - Authentication/connection is automatic.
|
|
32
|
+
* - Resubscribe after network issues is automatic.
|
|
33
|
+
*
|
|
34
|
+
* Call `unsubscribe(topics)` to remove topics
|
|
35
|
+
*/
|
|
36
|
+
subscribe<TWSPayload extends {
|
|
37
|
+
instType?: BitgetInstTypeV3;
|
|
38
|
+
}>(requests: (WsTopicRequest<WsTopicV3, TWSPayload> | WsTopicV3) | (WsTopicRequest<WsTopicV3, TWSPayload> | WsTopicV3)[], wsKey: WsKey): Promise<unknown>;
|
|
39
|
+
/**
|
|
40
|
+
* Unsubscribe from one or more topics. Similar to subscribe() but in reverse.
|
|
41
|
+
*
|
|
42
|
+
* - Requests are automatically routed to the correct websocket connection.
|
|
43
|
+
* - These topics will be removed from the topic cache, so they won't be subscribed to again.
|
|
44
|
+
*/
|
|
45
|
+
unsubscribe<TWSPayload extends {
|
|
46
|
+
instType?: BitgetInstTypeV3;
|
|
47
|
+
}>(requests: (WsTopicRequest<WsTopicV3, TWSPayload> | WsTopicV3) | (WsTopicRequest<WsTopicV3, TWSPayload> | WsTopicV3)[], wsKey: WsKey): Promise<unknown>;
|
|
48
|
+
/**
|
|
49
|
+
*
|
|
50
|
+
*
|
|
51
|
+
* Internal methods required to integrate with the BaseWSClient
|
|
52
|
+
*
|
|
53
|
+
*
|
|
54
|
+
*/
|
|
55
|
+
protected sendPingEvent(wsKey: WsKey): void;
|
|
56
|
+
protected sendPongEvent(wsKey: WsKey): void;
|
|
57
|
+
protected isWsPing(data: any): boolean;
|
|
58
|
+
protected isWsPong(data: any): boolean;
|
|
59
|
+
protected isPrivateTopicRequest(_request: WsTopicRequest<string>, wsKey: WsKey): boolean;
|
|
60
|
+
protected getPrivateWSKeys(): WsKey[];
|
|
61
|
+
protected isAuthOnConnectWsKey(wsKey: WsKey): boolean;
|
|
62
|
+
protected getWsUrl(wsKey: WsKey): Promise<string>;
|
|
63
|
+
protected getMaxTopicsPerSubscribeEvent(wsKey: WsKey): number | null;
|
|
64
|
+
/**
|
|
65
|
+
* @returns one or more correctly structured request events for performing a operations over WS. This can vary per exchange spec.
|
|
66
|
+
*/
|
|
67
|
+
protected getWsRequestEvents(operation: WSOperation, requests: WsTopicRequest<string, object>[]): Promise<MidflightWsRequestEvent<WsRequestOperationBitget<object>>[]>;
|
|
68
|
+
private getWsAuthSignature;
|
|
69
|
+
private signMessage;
|
|
70
|
+
protected getWsAuthRequestEvent(wsKey: WsKey): Promise<WsRequestOperationBitget<WSOperationLoginParams>>;
|
|
71
|
+
/**
|
|
72
|
+
* Abstraction called to sort ws events into emittable event types (response to a request, data update, etc)
|
|
73
|
+
*/
|
|
74
|
+
protected resolveEmittableEvents(wsKey: WsKey, event: MessageEventLike): EmittableEvent[];
|
|
75
|
+
/**
|
|
76
|
+
* V3/UTA supports order placement via WebSockets. This is the WS API:
|
|
77
|
+
* https://www.bitget.com/api-doc/uta/websocket/private/Place-Order-Channel
|
|
78
|
+
*
|
|
79
|
+
* @returns a promise that resolves/rejects when a matching response arrives
|
|
80
|
+
*/
|
|
81
|
+
sendWSAPIRequest<TWSKey extends keyof WsAPIWsKeyTopicMap, TWSOperation extends WsAPIWsKeyTopicMap[TWSKey], TWSParams extends WsAPITopicRequestParamMap[TWSOperation], TWSAPIResponse extends WsAPIOperationResponseMap[TWSOperation] = WsAPIOperationResponseMap[TWSOperation]>(wsKey: WsKey, operation: TWSOperation, category: BitgetInstTypeV3, params: TWSParams & {
|
|
82
|
+
signRequest?: boolean;
|
|
83
|
+
}, requestFlags?: WSAPIRequestFlags): Promise<TWSAPIResponse>;
|
|
84
|
+
}
|