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
|
@@ -1,12 +1,17 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.
|
|
3
|
+
exports.isWsAccountSnapshotEvent = isWsAccountSnapshotEvent;
|
|
4
|
+
exports.isWsPositionsSnapshotEvent = isWsPositionsSnapshotEvent;
|
|
5
|
+
exports.isWsFuturesAccountSnapshotEvent = isWsFuturesAccountSnapshotEvent;
|
|
6
|
+
exports.isWsFuturesPositionsSnapshotEvent = isWsFuturesPositionsSnapshotEvent;
|
|
7
|
+
exports.assertMarginType = assertMarginType;
|
|
8
|
+
exports.isWSAPIResponse = isWSAPIResponse;
|
|
4
9
|
/** TypeGuard: event has a string "action" property */
|
|
5
10
|
function isWsEvent(event) {
|
|
6
11
|
return (typeof event === 'object' &&
|
|
7
12
|
event &&
|
|
8
|
-
typeof event['action'] === 'string' &&
|
|
9
|
-
event['data']);
|
|
13
|
+
(typeof event)['action'] === 'string' &&
|
|
14
|
+
(typeof event)['data']);
|
|
10
15
|
}
|
|
11
16
|
/** TypeGuard: event has "action === snapshot" */
|
|
12
17
|
function isWsSnapshotEvent(event) {
|
|
@@ -15,8 +20,8 @@ function isWsSnapshotEvent(event) {
|
|
|
15
20
|
/** TypeGuard: event has a string channel name */
|
|
16
21
|
function isWsChannelEvent(event) {
|
|
17
22
|
if (typeof event['arg'] === 'object' &&
|
|
18
|
-
event
|
|
19
|
-
typeof (
|
|
23
|
+
event['arg'] &&
|
|
24
|
+
typeof (typeof event['arg'])['channel'] === 'string') {
|
|
20
25
|
return true;
|
|
21
26
|
}
|
|
22
27
|
return false;
|
|
@@ -28,7 +33,6 @@ function isWsAccountSnapshotEvent(event) {
|
|
|
28
33
|
event.arg.channel === 'account' &&
|
|
29
34
|
Array.isArray(event.data));
|
|
30
35
|
}
|
|
31
|
-
exports.isWsAccountSnapshotEvent = isWsAccountSnapshotEvent;
|
|
32
36
|
/** TypeGuard: event is a positions update */
|
|
33
37
|
function isWsPositionsSnapshotEvent(event) {
|
|
34
38
|
return (isWsSnapshotEvent(event) &&
|
|
@@ -36,17 +40,14 @@ function isWsPositionsSnapshotEvent(event) {
|
|
|
36
40
|
event.arg.channel === 'positions' &&
|
|
37
41
|
Array.isArray(event.data));
|
|
38
42
|
}
|
|
39
|
-
exports.isWsPositionsSnapshotEvent = isWsPositionsSnapshotEvent;
|
|
40
43
|
/** TypeGuard: event is a UMCBL account update (balance) */
|
|
41
44
|
function isWsFuturesAccountSnapshotEvent(event) {
|
|
42
45
|
return isWsAccountSnapshotEvent(event) && event.arg.instType === 'umcbl';
|
|
43
46
|
}
|
|
44
|
-
exports.isWsFuturesAccountSnapshotEvent = isWsFuturesAccountSnapshotEvent;
|
|
45
47
|
/** TypeGuard: event is a UMCBL positions update */
|
|
46
48
|
function isWsFuturesPositionsSnapshotEvent(event) {
|
|
47
49
|
return isWsPositionsSnapshotEvent(event) && event.arg.instType === 'umcbl';
|
|
48
50
|
}
|
|
49
|
-
exports.isWsFuturesPositionsSnapshotEvent = isWsFuturesPositionsSnapshotEvent;
|
|
50
51
|
/**
|
|
51
52
|
* Simple guard for non-TypeScript users, throw a runtime error if value doesn't match type
|
|
52
53
|
*/
|
|
@@ -56,5 +57,14 @@ function assertMarginType(marginType) {
|
|
|
56
57
|
}
|
|
57
58
|
return true;
|
|
58
59
|
}
|
|
59
|
-
|
|
60
|
+
function isWSAPIResponse(msg) {
|
|
61
|
+
if (typeof msg !== 'object' || !msg) {
|
|
62
|
+
return false;
|
|
63
|
+
}
|
|
64
|
+
if (typeof msg['event'] !== 'string' ||
|
|
65
|
+
typeof msg['id'] !== 'string') {
|
|
66
|
+
return false;
|
|
67
|
+
}
|
|
68
|
+
return true;
|
|
69
|
+
}
|
|
60
70
|
//# sourceMappingURL=type-guards.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"type-guards.js","sourceRoot":"","sources":["../../../src/util/type-guards.ts"],"names":[],"mappings":";;AAuCA,4DASC;AAGD,gEASC;AAGD,0EAIC;AAGD,8EAIC;AAKD,4CAKC;AAED,0CAeC;AA1FD,sDAAsD;AACtD,SAAS,SAAS,CAAC,KAAc;IAC/B,OAAO,CACL,OAAO,KAAK,KAAK,QAAQ;QACzB,KAAK;QACL,CAAC,OAAO,KAAa,CAAA,CAAC,QAAQ,CAAC,KAAK,QAAQ;QAC5C,CAAC,OAAO,KAAa,CAAA,CAAC,MAAM,CAAC,CAC9B,CAAC;AACJ,CAAC;AAED,iDAAiD;AACjD,SAAS,iBAAiB,CAAC,KAAc;IACvC,OAAO,SAAS,CAAC,KAAK,CAAC,IAAI,KAAK,CAAC,MAAM,KAAK,UAAU,CAAC;AACzD,CAAC;AAED,iDAAiD;AACjD,SAAS,gBAAgB,CAAC,KAAkB;IAC1C,IACE,OAAO,KAAK,CAAC,KAAK,CAAC,KAAK,QAAQ;QAChC,KAAK,CAAC,KAAK,CAAC;QACZ,OAAO,CAAC,OAAO,KAAK,CAAC,KAAK,CAAS,CAAA,CAAC,SAAS,CAAC,KAAK,QAAQ,EAC3D,CAAC;QACD,OAAO,IAAI,CAAC;IACd,CAAC;IACD,OAAO,KAAK,CAAC;AACf,CAAC;AAED,sDAAsD;AACtD,SAAgB,wBAAwB,CACtC,KAAc;IAEd,OAAO,CACL,iBAAiB,CAAC,KAAK,CAAC;QACxB,gBAAgB,CAAC,KAAK,CAAC;QACvB,KAAK,CAAC,GAAG,CAAC,OAAO,KAAK,SAAS;QAC/B,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,IAAI,CAAC,CAC1B,CAAC;AACJ,CAAC;AAED,6CAA6C;AAC7C,SAAgB,0BAA0B,CACxC,KAAc;IAEd,OAAO,CACL,iBAAiB,CAAC,KAAK,CAAC;QACxB,gBAAgB,CAAC,KAAK,CAAC;QACvB,KAAK,CAAC,GAAG,CAAC,OAAO,KAAK,WAAW;QACjC,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,IAAI,CAAC,CAC1B,CAAC;AACJ,CAAC;AAED,2DAA2D;AAC3D,SAAgB,+BAA+B,CAC7C,KAAc;IAEd,OAAO,wBAAwB,CAAC,KAAK,CAAC,IAAI,KAAK,CAAC,GAAG,CAAC,QAAQ,KAAK,OAAO,CAAC;AAC3E,CAAC;AAED,mDAAmD;AACnD,SAAgB,iCAAiC,CAC/C,KAAc;IAEd,OAAO,0BAA0B,CAAC,KAAK,CAAC,IAAI,KAAK,CAAC,GAAG,CAAC,QAAQ,KAAK,OAAO,CAAC;AAC7E,CAAC;AAED;;GAEG;AACH,SAAgB,gBAAgB,CAAC,UAAkB;IACjD,IAAI,UAAU,KAAK,UAAU,IAAI,UAAU,KAAK,SAAS,EAAE,CAAC;QAC1D,MAAM,IAAI,KAAK,CAAC,iDAAiD,CAAC,CAAC;IACrE,CAAC;IACD,OAAO,IAAI,CAAC;AACd,CAAC;AAED,SAAgB,eAAe,CAC7B,GAAY;IAEZ,IAAI,OAAO,GAAG,KAAK,QAAQ,IAAI,CAAC,GAAG,EAAE,CAAC;QACpC,OAAO,KAAK,CAAC;IACf,CAAC;IAED,IACE,OAAQ,GAAW,CAAC,OAAO,CAAC,KAAK,QAAQ;QACzC,OAAQ,GAAW,CAAC,IAAI,CAAC,KAAK,QAAQ,EACtC,CAAC;QACD,OAAO,KAAK,CAAC;IACf,CAAC;IAED,OAAO,IAAI,CAAC;AACd,CAAC"}
|
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
export type SignEncodeMethod = 'hex' | 'base64';
|
|
2
|
+
export type SignAlgorithm = 'SHA-256' | 'SHA-512';
|
|
3
|
+
/**
|
|
4
|
+
* Similar to node crypto's `createHash()` function
|
|
5
|
+
*/
|
|
6
|
+
type KeyType = 'HMAC' | 'RSASSA-PKCS1-v1_5' | 'Ed25519';
|
|
7
|
+
export declare function getSignKeyType(secret: string): KeyType;
|
|
8
|
+
/**
|
|
9
|
+
* Sign a message, with a secret, using the Web Crypto API
|
|
10
|
+
*
|
|
11
|
+
* Ed25519 is stable as of v23.5.0, but also not available in all browsers
|
|
12
|
+
*/
|
|
13
|
+
export declare function signMessage(message: string, secret: string, method: SignEncodeMethod, algorithm: SignAlgorithm, _pemEncodeMethod?: SignEncodeMethod): Promise<string>;
|
|
14
|
+
export {};
|
|
@@ -0,0 +1,80 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
/* eslint-disable @typescript-eslint/no-unused-vars */
|
|
3
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
4
|
+
exports.getSignKeyType = getSignKeyType;
|
|
5
|
+
exports.signMessage = signMessage;
|
|
6
|
+
const websocket_util_js_1 = require("./websocket-util.js");
|
|
7
|
+
function bufferToB64(buffer) {
|
|
8
|
+
let binary = '';
|
|
9
|
+
const bytes = new Uint8Array(buffer);
|
|
10
|
+
const len = bytes.byteLength;
|
|
11
|
+
for (let i = 0; i < len; i++) {
|
|
12
|
+
binary += String.fromCharCode(bytes[i]);
|
|
13
|
+
}
|
|
14
|
+
return globalThis.btoa(binary);
|
|
15
|
+
}
|
|
16
|
+
function getSignKeyType(secret) {
|
|
17
|
+
if (secret.includes('PRIVATE KEY')) {
|
|
18
|
+
// Sometimes, not always, RSA keys include "RSA" in the header. That's a definite RSA key.
|
|
19
|
+
if (secret.includes('RSA PRIVATE KEY')) {
|
|
20
|
+
return 'RSASSA-PKCS1-v1_5';
|
|
21
|
+
}
|
|
22
|
+
// RSA keys are significantly longer than Ed25519 keys. 150 accounts for length of header & footer
|
|
23
|
+
if (secret.length <= 150) {
|
|
24
|
+
return 'Ed25519';
|
|
25
|
+
}
|
|
26
|
+
return 'RSASSA-PKCS1-v1_5';
|
|
27
|
+
}
|
|
28
|
+
return 'HMAC';
|
|
29
|
+
}
|
|
30
|
+
async function importKey(pem, type, algorithm, encoder) {
|
|
31
|
+
switch (type) {
|
|
32
|
+
case 'Ed25519':
|
|
33
|
+
case 'RSASSA-PKCS1-v1_5': {
|
|
34
|
+
// const prefixRSA = /-----BEGIN RSA PRIVATE KEY-----/;
|
|
35
|
+
// const prefixEd25519 = /-----BEGIN PRIVATE KEY-----/;
|
|
36
|
+
// const suffixRSA = /-----END RSA PRIVATE KEY-----/;
|
|
37
|
+
// const suffixEd25519 = /-----END PRIVATE KEY-----/;
|
|
38
|
+
// const base64Key = pem
|
|
39
|
+
// .replace(prefixEd25519, '')
|
|
40
|
+
// .replace(prefixRSA, '')
|
|
41
|
+
// .replace(suffixEd25519, '')
|
|
42
|
+
// .replace(suffixRSA, '')
|
|
43
|
+
// .replace(/\s+/g, ''); // Remove spaces and newlines
|
|
44
|
+
const base64Key = pem.replace(/(?:-----BEGIN RSA PRIVATE KEY-----|-----BEGIN PRIVATE KEY-----|-----END RSA PRIVATE KEY-----|-----END PRIVATE KEY-----|\s+)/g, '');
|
|
45
|
+
const binaryKey = Uint8Array.from(atob(base64Key), (c) => c.charCodeAt(0));
|
|
46
|
+
return globalThis.crypto.subtle.importKey('pkcs8', binaryKey.buffer, { name: type, hash: { name: algorithm } }, false, ['sign']);
|
|
47
|
+
}
|
|
48
|
+
case 'HMAC': {
|
|
49
|
+
return globalThis.crypto.subtle.importKey('raw', encoder.encode(pem), { name: type, hash: algorithm }, false, ['sign']);
|
|
50
|
+
}
|
|
51
|
+
default: {
|
|
52
|
+
throw (0, websocket_util_js_1.neverGuard)(type, `Unhandled key type: "${type}"`);
|
|
53
|
+
}
|
|
54
|
+
}
|
|
55
|
+
}
|
|
56
|
+
/**
|
|
57
|
+
* Sign a message, with a secret, using the Web Crypto API
|
|
58
|
+
*
|
|
59
|
+
* Ed25519 is stable as of v23.5.0, but also not available in all browsers
|
|
60
|
+
*/
|
|
61
|
+
async function signMessage(message, secret, method, algorithm, _pemEncodeMethod = method) {
|
|
62
|
+
const encoder = new TextEncoder();
|
|
63
|
+
const signKeyType = getSignKeyType(secret);
|
|
64
|
+
const key = await importKey(secret, signKeyType, algorithm, encoder);
|
|
65
|
+
const buffer = await globalThis.crypto.subtle.sign({ name: signKeyType }, key, encoder.encode(message));
|
|
66
|
+
switch (method) {
|
|
67
|
+
case 'hex': {
|
|
68
|
+
return Array.from(new Uint8Array(buffer))
|
|
69
|
+
.map((byte) => byte.toString(16).padStart(2, '0'))
|
|
70
|
+
.join('');
|
|
71
|
+
}
|
|
72
|
+
case 'base64': {
|
|
73
|
+
return bufferToB64(buffer);
|
|
74
|
+
}
|
|
75
|
+
default: {
|
|
76
|
+
throw (0, websocket_util_js_1.neverGuard)(method, `Unhandled sign method: "${method}"`);
|
|
77
|
+
}
|
|
78
|
+
}
|
|
79
|
+
}
|
|
80
|
+
//# sourceMappingURL=webCryptoAPI.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"webCryptoAPI.js","sourceRoot":"","sources":["../../../src/util/webCryptoAPI.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,88 @@
|
|
|
1
|
+
import { WSAPIRequestBitgetV3 } from '../types/websockets/ws-api.js';
|
|
2
|
+
import { WebsocketClientOptions, WsKey, WsPrivateTopicV2, WsPrivateTopicV3, WsTopicSubscribeEventArgs, WsTopicSubscribePublicArgsV2 } from '../types/websockets/ws-general.js';
|
|
3
|
+
import { DefaultLogger } from './logger.js';
|
|
4
|
+
export declare const WS_LOGGER_CATEGORY: {
|
|
5
|
+
category: string;
|
|
6
|
+
};
|
|
7
|
+
/**
|
|
8
|
+
* Some exchanges have two livenet environments, some have test environments, some dont. This allows easy flexibility for different exchanges.
|
|
9
|
+
* Examples:
|
|
10
|
+
* - One livenet and one testnet: NetworkMap<'livenet' | 'testnet'>
|
|
11
|
+
* - One livenet, sometimes two, one testnet: NetworkMap<'livenet' | 'testnet', 'livenet2'>
|
|
12
|
+
* - Only one livenet, no other networks: NetworkMap<'livenet'>
|
|
13
|
+
*/
|
|
14
|
+
type NetworkMap<TRequiredKeys extends string, TOptionalKeys extends string | undefined = undefined> = Record<TRequiredKeys, string> & (TOptionalKeys extends string ? Record<TOptionalKeys, string | undefined> : Record<TRequiredKeys, string>);
|
|
15
|
+
export declare const WS_BASE_URL_MAP: Record<WsKey, Record<'all', NetworkMap<'livenet' | 'demo'>>>;
|
|
16
|
+
/** Should be one WS key per unique URL */
|
|
17
|
+
export declare const WS_KEY_MAP: {
|
|
18
|
+
readonly spotv1: "spotv1";
|
|
19
|
+
readonly mixv1: "mixv1";
|
|
20
|
+
readonly v2Public: "v2Public";
|
|
21
|
+
readonly v2Private: "v2Private";
|
|
22
|
+
readonly v3Public: "v3Public";
|
|
23
|
+
readonly v3Private: "v3Private";
|
|
24
|
+
};
|
|
25
|
+
/** Any WS keys in this list will trigger auth on connect, if credentials are available */
|
|
26
|
+
export declare const WS_AUTH_ON_CONNECT_KEYS: WsKey[];
|
|
27
|
+
/** Any WS keys in this list will ALWAYS skip the authentication process, even if credentials are available */
|
|
28
|
+
export declare const PUBLIC_WS_KEYS: WsKey[];
|
|
29
|
+
/**
|
|
30
|
+
* Used to automatically determine if a sub request should be to a public or private ws (when there's two separate connections).
|
|
31
|
+
* Unnecessary if there's only one connection to handle both public & private topics.
|
|
32
|
+
*/
|
|
33
|
+
export declare const PRIVATE_TOPICS: string[];
|
|
34
|
+
export declare const PRIVATE_TOPICS_V2: WsPrivateTopicV2[];
|
|
35
|
+
export declare const PRIVATE_TOPICS_V3: WsPrivateTopicV3[];
|
|
36
|
+
export declare function getWsUrl(wsKey: WsKey, options: WebsocketClientOptions, logger: DefaultLogger): Promise<string>;
|
|
37
|
+
/**
|
|
38
|
+
* Normalised internal format for a request (subscribe/unsubscribe/etc) on a topic, with optional parameters.
|
|
39
|
+
*
|
|
40
|
+
* - Topic: the topic this event is for
|
|
41
|
+
* - Payload: the parameters to include, optional. E.g. auth requires key + sign. Some topics allow configurable parameters.
|
|
42
|
+
* - Category: required for bybit, since different categories have different public endpoints
|
|
43
|
+
*/
|
|
44
|
+
export interface WsTopicRequest<TWSTopic extends string = string, TWSPayload = unknown> {
|
|
45
|
+
topic: TWSTopic;
|
|
46
|
+
payload?: TWSPayload;
|
|
47
|
+
}
|
|
48
|
+
/**
|
|
49
|
+
* Conveniently allow users to request a topic either as string topics or objects (containing string topic + params)
|
|
50
|
+
*/
|
|
51
|
+
export type WsTopicRequestOrStringTopic<TWSTopic extends string, TWSPayload = unknown> = WsTopicRequest<TWSTopic, TWSPayload> | string;
|
|
52
|
+
export declare function isPrivateChannel<TChannel extends string>(channel: TChannel): boolean;
|
|
53
|
+
export declare function getWsKeyForTopicV1(subscribeEvent: WsTopicSubscribeEventArgs, _isPrivate?: boolean): WsKey;
|
|
54
|
+
export declare function getWsKeyForTopicV2(subscribeEvent: WsTopicSubscribePublicArgsV2, isPrivate?: boolean): WsKey;
|
|
55
|
+
/** Force subscription requests to be sent in smaller batches, if a number is returned */
|
|
56
|
+
export declare function getMaxTopicsPerSubscribeEvent(wsKey: WsKey): number | null;
|
|
57
|
+
export declare const WS_ERROR_ENUM: {
|
|
58
|
+
INVALID_ACCESS_KEY: number;
|
|
59
|
+
};
|
|
60
|
+
export declare function neverGuard(x: never, msg: string): Error;
|
|
61
|
+
/**
|
|
62
|
+
* #305: ws.terminate() is undefined in browsers.
|
|
63
|
+
* This only works in node.js, not in browsers.
|
|
64
|
+
* Does nothing if `ws` is undefined. Does nothing in browsers.
|
|
65
|
+
*/
|
|
66
|
+
export declare function safeTerminateWs(ws?: WebSocket | any, fallbackToClose?: boolean): boolean;
|
|
67
|
+
/**
|
|
68
|
+
* Users can conveniently pass topics as strings or objects (object has topic name + optional params).
|
|
69
|
+
*
|
|
70
|
+
* This method normalises topics into objects (object has topic name + optional params).
|
|
71
|
+
*/
|
|
72
|
+
export declare function getNormalisedTopicRequests(wsTopicRequests: WsTopicRequestOrStringTopic<string>[]): WsTopicRequest<string>[];
|
|
73
|
+
/**
|
|
74
|
+
* WebSocket.ping() is not available in browsers. This is a simple check used to
|
|
75
|
+
* disable heartbeats in browers, for exchanges that use native WebSocket ping/pong frames.
|
|
76
|
+
*/
|
|
77
|
+
export declare function isWSPingFrameAvailable(): boolean;
|
|
78
|
+
/**
|
|
79
|
+
* WebSocket.pong() is not available in browsers. This is a simple check used to
|
|
80
|
+
* disable heartbeats in browers, for exchanges that use native WebSocket ping/pong frames.
|
|
81
|
+
*/
|
|
82
|
+
export declare function isWSPongFrameAvailable(): boolean;
|
|
83
|
+
/**
|
|
84
|
+
* WS API promises are stored using a primary key. This key is constructed using
|
|
85
|
+
* properties found in every request & reply.
|
|
86
|
+
*/
|
|
87
|
+
export declare function getPromiseRefForWSAPIRequest(requestEvent: WSAPIRequestBitgetV3<unknown>): string;
|
|
88
|
+
export {};
|
|
@@ -0,0 +1,241 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.WS_ERROR_ENUM = exports.PRIVATE_TOPICS_V3 = exports.PRIVATE_TOPICS_V2 = exports.PRIVATE_TOPICS = exports.PUBLIC_WS_KEYS = exports.WS_AUTH_ON_CONNECT_KEYS = exports.WS_KEY_MAP = exports.WS_BASE_URL_MAP = exports.WS_LOGGER_CATEGORY = void 0;
|
|
4
|
+
exports.getWsUrl = getWsUrl;
|
|
5
|
+
exports.isPrivateChannel = isPrivateChannel;
|
|
6
|
+
exports.getWsKeyForTopicV1 = getWsKeyForTopicV1;
|
|
7
|
+
exports.getWsKeyForTopicV2 = getWsKeyForTopicV2;
|
|
8
|
+
exports.getMaxTopicsPerSubscribeEvent = getMaxTopicsPerSubscribeEvent;
|
|
9
|
+
exports.neverGuard = neverGuard;
|
|
10
|
+
exports.safeTerminateWs = safeTerminateWs;
|
|
11
|
+
exports.getNormalisedTopicRequests = getNormalisedTopicRequests;
|
|
12
|
+
exports.isWSPingFrameAvailable = isWSPingFrameAvailable;
|
|
13
|
+
exports.isWSPongFrameAvailable = isWSPongFrameAvailable;
|
|
14
|
+
exports.getPromiseRefForWSAPIRequest = getPromiseRefForWSAPIRequest;
|
|
15
|
+
exports.WS_LOGGER_CATEGORY = { category: 'bitget-ws' };
|
|
16
|
+
exports.WS_BASE_URL_MAP = {
|
|
17
|
+
mixv1: {
|
|
18
|
+
all: {
|
|
19
|
+
livenet: 'wss://ws.bitget.com/mix/v1/stream',
|
|
20
|
+
demo: 'NotSupportedForV1',
|
|
21
|
+
},
|
|
22
|
+
},
|
|
23
|
+
spotv1: {
|
|
24
|
+
all: {
|
|
25
|
+
livenet: 'wss://ws.bitget.com/spot/v1/stream',
|
|
26
|
+
demo: 'NotSupportedForV1',
|
|
27
|
+
},
|
|
28
|
+
},
|
|
29
|
+
v2Public: {
|
|
30
|
+
all: {
|
|
31
|
+
livenet: 'wss://ws.bitget.com/v2/ws/public',
|
|
32
|
+
demo: 'wss://wspap.bitget.com/v2/ws/public',
|
|
33
|
+
},
|
|
34
|
+
},
|
|
35
|
+
v2Private: {
|
|
36
|
+
all: {
|
|
37
|
+
livenet: 'wss://ws.bitget.com/v2/ws/private',
|
|
38
|
+
demo: 'wss://wspap.bitget.com/v2/ws/private',
|
|
39
|
+
},
|
|
40
|
+
},
|
|
41
|
+
v3Public: {
|
|
42
|
+
all: {
|
|
43
|
+
livenet: 'wss://ws.bitget.com/v3/ws/public',
|
|
44
|
+
demo: 'wss://wspap.bitget.com/v3/ws/public',
|
|
45
|
+
},
|
|
46
|
+
},
|
|
47
|
+
v3Private: {
|
|
48
|
+
all: {
|
|
49
|
+
livenet: 'wss://ws.bitget.com/v3/ws/private',
|
|
50
|
+
demo: 'wss://wspap.bitget.com/v3/ws/private',
|
|
51
|
+
},
|
|
52
|
+
},
|
|
53
|
+
};
|
|
54
|
+
/** Should be one WS key per unique URL */
|
|
55
|
+
exports.WS_KEY_MAP = {
|
|
56
|
+
spotv1: 'spotv1',
|
|
57
|
+
mixv1: 'mixv1',
|
|
58
|
+
v2Public: 'v2Public',
|
|
59
|
+
v2Private: 'v2Private',
|
|
60
|
+
v3Public: 'v3Public',
|
|
61
|
+
v3Private: 'v3Private',
|
|
62
|
+
};
|
|
63
|
+
/** Any WS keys in this list will trigger auth on connect, if credentials are available */
|
|
64
|
+
exports.WS_AUTH_ON_CONNECT_KEYS = [
|
|
65
|
+
exports.WS_KEY_MAP.spotv1,
|
|
66
|
+
exports.WS_KEY_MAP.mixv1,
|
|
67
|
+
exports.WS_KEY_MAP.v2Private,
|
|
68
|
+
exports.WS_KEY_MAP.v3Private,
|
|
69
|
+
];
|
|
70
|
+
/** Any WS keys in this list will ALWAYS skip the authentication process, even if credentials are available */
|
|
71
|
+
exports.PUBLIC_WS_KEYS = [];
|
|
72
|
+
/**
|
|
73
|
+
* Used to automatically determine if a sub request should be to a public or private ws (when there's two separate connections).
|
|
74
|
+
* Unnecessary if there's only one connection to handle both public & private topics.
|
|
75
|
+
*/
|
|
76
|
+
exports.PRIVATE_TOPICS = ['account', 'orders', 'positions', 'ordersAlgo'];
|
|
77
|
+
exports.PRIVATE_TOPICS_V2 = [
|
|
78
|
+
'account',
|
|
79
|
+
'orders',
|
|
80
|
+
'positions',
|
|
81
|
+
'orders-algo',
|
|
82
|
+
'positions-history',
|
|
83
|
+
'orders-crossed',
|
|
84
|
+
'account-crossed',
|
|
85
|
+
'account-isolated',
|
|
86
|
+
'orders-isolated',
|
|
87
|
+
];
|
|
88
|
+
exports.PRIVATE_TOPICS_V3 = [
|
|
89
|
+
'account',
|
|
90
|
+
'position',
|
|
91
|
+
'fill',
|
|
92
|
+
'order',
|
|
93
|
+
];
|
|
94
|
+
async function getWsUrl(wsKey, options, logger) {
|
|
95
|
+
if (options.wsUrl) {
|
|
96
|
+
return options.wsUrl;
|
|
97
|
+
}
|
|
98
|
+
const isDemoTrading = options.demoTrading;
|
|
99
|
+
const networkKey = isDemoTrading ? 'demo' : 'livenet';
|
|
100
|
+
switch (wsKey) {
|
|
101
|
+
case exports.WS_KEY_MAP.spotv1:
|
|
102
|
+
case exports.WS_KEY_MAP.mixv1: {
|
|
103
|
+
throw new Error('Use the WebsocketClient instead of WebsocketClientV2 for V1 websockets');
|
|
104
|
+
}
|
|
105
|
+
case exports.WS_KEY_MAP.v2Private: {
|
|
106
|
+
return exports.WS_BASE_URL_MAP.v2Private.all[networkKey];
|
|
107
|
+
}
|
|
108
|
+
case exports.WS_KEY_MAP.v2Public: {
|
|
109
|
+
return exports.WS_BASE_URL_MAP.v2Public.all[networkKey];
|
|
110
|
+
}
|
|
111
|
+
case exports.WS_KEY_MAP.v3Private: {
|
|
112
|
+
return exports.WS_BASE_URL_MAP.v3Private.all[networkKey];
|
|
113
|
+
}
|
|
114
|
+
case exports.WS_KEY_MAP.v3Public: {
|
|
115
|
+
return exports.WS_BASE_URL_MAP.v3Public.all[networkKey];
|
|
116
|
+
}
|
|
117
|
+
default: {
|
|
118
|
+
logger.error('getWsUrl(): Unhandled wsKey: ', {
|
|
119
|
+
...exports.WS_LOGGER_CATEGORY,
|
|
120
|
+
wsKey,
|
|
121
|
+
});
|
|
122
|
+
throw neverGuard(wsKey, 'getWsUrl(): Unhandled wsKey');
|
|
123
|
+
}
|
|
124
|
+
}
|
|
125
|
+
}
|
|
126
|
+
function isPrivateChannel(channel) {
|
|
127
|
+
return (exports.PRIVATE_TOPICS.includes(channel) ||
|
|
128
|
+
exports.PRIVATE_TOPICS_V2.includes(channel) ||
|
|
129
|
+
exports.PRIVATE_TOPICS_V3.includes(channel));
|
|
130
|
+
}
|
|
131
|
+
function getWsKeyForTopicV1(subscribeEvent,
|
|
132
|
+
// eslint-disable-next-line @typescript-eslint/no-unused-vars
|
|
133
|
+
_isPrivate) {
|
|
134
|
+
const instType = subscribeEvent.instType.toUpperCase();
|
|
135
|
+
switch (instType) {
|
|
136
|
+
case 'SP':
|
|
137
|
+
case 'SPBL': {
|
|
138
|
+
return exports.WS_KEY_MAP.spotv1;
|
|
139
|
+
}
|
|
140
|
+
case 'MC':
|
|
141
|
+
case 'UMCBL':
|
|
142
|
+
case 'DMCBL': {
|
|
143
|
+
return exports.WS_KEY_MAP.mixv1;
|
|
144
|
+
}
|
|
145
|
+
default: {
|
|
146
|
+
throw neverGuard(instType, `getWsKeyForTopicV1(): Unhandled market ${'instrumentId'}`);
|
|
147
|
+
}
|
|
148
|
+
}
|
|
149
|
+
}
|
|
150
|
+
function getWsKeyForTopicV2(subscribeEvent, isPrivate) {
|
|
151
|
+
return isPrivate || isPrivateChannel(subscribeEvent.channel)
|
|
152
|
+
? exports.WS_KEY_MAP.v2Private
|
|
153
|
+
: exports.WS_KEY_MAP.v2Public;
|
|
154
|
+
}
|
|
155
|
+
/** Force subscription requests to be sent in smaller batches, if a number is returned */
|
|
156
|
+
function getMaxTopicsPerSubscribeEvent(wsKey) {
|
|
157
|
+
switch (wsKey) {
|
|
158
|
+
case 'mixv1':
|
|
159
|
+
case 'spotv1':
|
|
160
|
+
case 'v2Public':
|
|
161
|
+
case 'v2Private':
|
|
162
|
+
case 'v3Public':
|
|
163
|
+
case 'v3Private': {
|
|
164
|
+
// Technically there doesn't seem to be a documented cap, but there is a size limit per request. Doesn't hurt to batch requests.
|
|
165
|
+
return 15;
|
|
166
|
+
}
|
|
167
|
+
default: {
|
|
168
|
+
throw neverGuard(wsKey, 'getWsKeyForTopic(): Unhandled wsKey');
|
|
169
|
+
}
|
|
170
|
+
}
|
|
171
|
+
}
|
|
172
|
+
exports.WS_ERROR_ENUM = {
|
|
173
|
+
INVALID_ACCESS_KEY: 30011,
|
|
174
|
+
};
|
|
175
|
+
function neverGuard(x, msg) {
|
|
176
|
+
return new Error(`Unhandled value exception "${x}", ${msg}`);
|
|
177
|
+
}
|
|
178
|
+
/**
|
|
179
|
+
* #305: ws.terminate() is undefined in browsers.
|
|
180
|
+
* This only works in node.js, not in browsers.
|
|
181
|
+
* Does nothing if `ws` is undefined. Does nothing in browsers.
|
|
182
|
+
*/
|
|
183
|
+
function safeTerminateWs(ws, fallbackToClose) {
|
|
184
|
+
if (!ws) {
|
|
185
|
+
return false;
|
|
186
|
+
}
|
|
187
|
+
if (typeof ws['terminate'] === 'function') {
|
|
188
|
+
ws.terminate();
|
|
189
|
+
return true;
|
|
190
|
+
}
|
|
191
|
+
else if (fallbackToClose) {
|
|
192
|
+
ws.close();
|
|
193
|
+
}
|
|
194
|
+
return false;
|
|
195
|
+
}
|
|
196
|
+
/**
|
|
197
|
+
* Users can conveniently pass topics as strings or objects (object has topic name + optional params).
|
|
198
|
+
*
|
|
199
|
+
* This method normalises topics into objects (object has topic name + optional params).
|
|
200
|
+
*/
|
|
201
|
+
function getNormalisedTopicRequests(wsTopicRequests) {
|
|
202
|
+
const normalisedTopicRequests = [];
|
|
203
|
+
for (const wsTopicRequest of wsTopicRequests) {
|
|
204
|
+
// passed as string, convert to object
|
|
205
|
+
if (typeof wsTopicRequest === 'string') {
|
|
206
|
+
const topicRequest = {
|
|
207
|
+
topic: wsTopicRequest,
|
|
208
|
+
payload: undefined,
|
|
209
|
+
};
|
|
210
|
+
normalisedTopicRequests.push(topicRequest);
|
|
211
|
+
continue;
|
|
212
|
+
}
|
|
213
|
+
// already a normalised object, thanks to user
|
|
214
|
+
normalisedTopicRequests.push(wsTopicRequest);
|
|
215
|
+
}
|
|
216
|
+
return normalisedTopicRequests;
|
|
217
|
+
}
|
|
218
|
+
/**
|
|
219
|
+
* WebSocket.ping() is not available in browsers. This is a simple check used to
|
|
220
|
+
* disable heartbeats in browers, for exchanges that use native WebSocket ping/pong frames.
|
|
221
|
+
*/
|
|
222
|
+
function isWSPingFrameAvailable() {
|
|
223
|
+
return typeof WebSocket.prototype['ping'] === 'function';
|
|
224
|
+
}
|
|
225
|
+
/**
|
|
226
|
+
* WebSocket.pong() is not available in browsers. This is a simple check used to
|
|
227
|
+
* disable heartbeats in browers, for exchanges that use native WebSocket ping/pong frames.
|
|
228
|
+
*/
|
|
229
|
+
function isWSPongFrameAvailable() {
|
|
230
|
+
return typeof WebSocket.prototype['pong'] === 'function';
|
|
231
|
+
}
|
|
232
|
+
/**
|
|
233
|
+
* WS API promises are stored using a primary key. This key is constructed using
|
|
234
|
+
* properties found in every request & reply.
|
|
235
|
+
*/
|
|
236
|
+
function getPromiseRefForWSAPIRequest(requestEvent) {
|
|
237
|
+
// Responses don't have any other info we can use to connect them to the request. Just the "id" field...
|
|
238
|
+
const promiseRef = [requestEvent.id].join('_');
|
|
239
|
+
return promiseRef;
|
|
240
|
+
}
|
|
241
|
+
//# 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,89 @@
|
|
|
1
|
+
import { CancelOrderRequestV3 } from './types/request/v3/trade.js';
|
|
2
|
+
import { CancelOrderResponseV3 } from './types/response/v3/trade.js';
|
|
3
|
+
import { WSAPIResponse } from './types/websockets/ws-api.js';
|
|
4
|
+
import { WSAPIPlaceOrderRequestV3 } from './types/websockets/ws-api-request.js';
|
|
5
|
+
import { WSAPIPlaceOrderResponseV3 } from './types/websockets/ws-api-response.js';
|
|
6
|
+
import { BitgetInstTypeV3, WSClientConfigurableOptions } from './types/websockets/ws-general.js';
|
|
7
|
+
import { DefaultLogger } from './util/logger.js';
|
|
8
|
+
import { WebsocketClientV3 } from './websocket-client-v3.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.
|
|
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/bitget-api/blob/master/examples/V3/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(): WebsocketClientV3;
|
|
38
|
+
setTimeOffsetMs(newOffset: number): void;
|
|
39
|
+
/**
|
|
40
|
+
* Submit a new order
|
|
41
|
+
*
|
|
42
|
+
* https://www.bitget.com/api-doc/uta/websocket/private/Place-Order-Channel
|
|
43
|
+
*
|
|
44
|
+
* @returns
|
|
45
|
+
*/
|
|
46
|
+
submitNewOrder(category: BitgetInstTypeV3, params: WSAPIPlaceOrderRequestV3): Promise<WSAPIResponse<[WSAPIPlaceOrderResponseV3], 'place-order'>>;
|
|
47
|
+
/**
|
|
48
|
+
* Submit a new order
|
|
49
|
+
*
|
|
50
|
+
* https://www.bitget.com/api-doc/uta/websocket/private/Batch-Place-Order-Channel
|
|
51
|
+
*
|
|
52
|
+
* @returns
|
|
53
|
+
*/
|
|
54
|
+
placeBatchOrders(category: BitgetInstTypeV3, params: WSAPIPlaceOrderRequestV3[]): Promise<WSAPIResponse<WSAPIPlaceOrderResponseV3[], 'batch-place'>>;
|
|
55
|
+
/**
|
|
56
|
+
* Cancel Order
|
|
57
|
+
*
|
|
58
|
+
* https://www.bitget.com/api-doc/uta/websocket/private/Cancel-Order-Channel
|
|
59
|
+
*
|
|
60
|
+
* @returns
|
|
61
|
+
*/
|
|
62
|
+
cancelOrder(category: BitgetInstTypeV3, params: CancelOrderRequestV3): Promise<WSAPIResponse<[CancelOrderResponseV3], 'cancel-order'>>;
|
|
63
|
+
/**
|
|
64
|
+
* Batch Cancel Order
|
|
65
|
+
*
|
|
66
|
+
* https://www.bitget.com/api-doc/uta/websocket/private/Batch-Cancel-Order-Channel
|
|
67
|
+
*
|
|
68
|
+
* @returns
|
|
69
|
+
*/
|
|
70
|
+
cancelBatchOrders(category: BitgetInstTypeV3, params: CancelOrderRequestV3[]): Promise<WSAPIResponse<CancelOrderResponseV3[], 'batch-cancel'>>;
|
|
71
|
+
/**
|
|
72
|
+
*
|
|
73
|
+
*
|
|
74
|
+
*
|
|
75
|
+
*
|
|
76
|
+
*
|
|
77
|
+
*
|
|
78
|
+
*
|
|
79
|
+
* Private methods for handling some of the convenience/automation provided by the WS API Client
|
|
80
|
+
*
|
|
81
|
+
*
|
|
82
|
+
*
|
|
83
|
+
*
|
|
84
|
+
*
|
|
85
|
+
*
|
|
86
|
+
*
|
|
87
|
+
*/
|
|
88
|
+
private setupDefaultEventListeners;
|
|
89
|
+
}
|