@lifi/perps-sdk 0.1.1-alpha.9 → 1.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 +157 -20
- package/dist/cjs/client/PerpsClient.d.ts +57 -24
- package/dist/cjs/client/PerpsClient.d.ts.map +1 -1
- package/dist/cjs/client/PerpsClient.js +218 -208
- package/dist/cjs/client/PerpsClient.js.map +1 -1
- package/dist/cjs/client/bindProvider.d.ts +3 -0
- package/dist/cjs/client/bindProvider.d.ts.map +1 -0
- package/dist/cjs/client/bindProvider.js +9 -0
- package/dist/cjs/client/bindProvider.js.map +1 -0
- package/dist/cjs/client/createPerpsClient.d.ts +7 -25
- package/dist/cjs/client/createPerpsClient.d.ts.map +1 -1
- package/dist/cjs/client/createPerpsClient.js +28 -8
- package/dist/cjs/client/createPerpsClient.js.map +1 -1
- package/dist/cjs/client/requireProvider.d.ts +3 -0
- package/dist/cjs/client/requireProvider.d.ts.map +1 -0
- package/dist/cjs/client/requireProvider.js +16 -0
- package/dist/cjs/client/requireProvider.js.map +1 -0
- package/dist/cjs/errors/PerpsError.d.ts +2 -3
- package/dist/cjs/errors/PerpsError.d.ts.map +1 -1
- package/dist/cjs/errors/PerpsError.js +3 -15
- package/dist/cjs/errors/PerpsError.js.map +1 -1
- package/dist/cjs/errors/constants.d.ts +2 -12
- package/dist/cjs/errors/constants.d.ts.map +1 -1
- package/dist/cjs/errors/constants.js +3 -14
- package/dist/cjs/errors/constants.js.map +1 -1
- package/dist/cjs/index.d.ts +58 -34
- package/dist/cjs/index.d.ts.map +1 -1
- package/dist/cjs/index.js +122 -45
- package/dist/cjs/index.js.map +1 -1
- package/dist/cjs/registry/assetRegistry.d.ts +11 -0
- package/dist/cjs/registry/assetRegistry.d.ts.map +1 -0
- package/dist/cjs/registry/assetRegistry.js +39 -0
- package/dist/cjs/registry/assetRegistry.js.map +1 -0
- package/dist/cjs/registry/marketRegistry.d.ts +13 -0
- package/dist/cjs/registry/marketRegistry.d.ts.map +1 -0
- package/dist/cjs/registry/marketRegistry.js +58 -0
- package/dist/cjs/registry/marketRegistry.js.map +1 -0
- package/dist/cjs/registry/referenceDataRegistry.d.ts +20 -0
- package/dist/cjs/registry/referenceDataRegistry.d.ts.map +1 -0
- package/dist/cjs/registry/referenceDataRegistry.js +59 -0
- package/dist/cjs/registry/referenceDataRegistry.js.map +1 -0
- package/dist/cjs/services/createAction.d.ts +13 -0
- package/dist/cjs/services/createAction.d.ts.map +1 -0
- package/dist/cjs/services/createAction.js +17 -0
- package/dist/cjs/services/createAction.js.map +1 -0
- package/dist/cjs/services/executeAction.d.ts +13 -0
- package/dist/cjs/services/executeAction.d.ts.map +1 -0
- package/dist/cjs/services/{submitAuthorization.js → executeAction.js} +8 -6
- package/dist/cjs/services/executeAction.js.map +1 -0
- package/dist/cjs/services/getAccount.d.ts +5 -3
- package/dist/cjs/services/getAccount.d.ts.map +1 -1
- package/dist/cjs/services/getAccount.js +2 -6
- package/dist/cjs/services/getAccount.js.map +1 -1
- package/dist/cjs/services/getActivity.d.ts +15 -0
- package/dist/cjs/services/getActivity.d.ts.map +1 -0
- package/dist/cjs/services/getActivity.js +15 -0
- package/dist/cjs/services/getActivity.js.map +1 -0
- package/dist/cjs/services/getAssets.d.ts +8 -0
- package/dist/cjs/services/getAssets.d.ts.map +1 -0
- package/dist/cjs/services/getAssets.js +11 -0
- package/dist/cjs/services/getAssets.js.map +1 -0
- package/dist/cjs/services/getFills.d.ts +14 -0
- package/dist/cjs/services/getFills.d.ts.map +1 -0
- package/dist/cjs/services/getFills.js +14 -0
- package/dist/cjs/services/getFills.js.map +1 -0
- package/dist/cjs/services/getMarket.d.ts +4 -3
- package/dist/cjs/services/getMarket.d.ts.map +1 -1
- package/dist/cjs/services/getMarket.js +6 -4
- package/dist/cjs/services/getMarket.js.map +1 -1
- package/dist/cjs/services/getMarkets.d.ts +4 -2
- package/dist/cjs/services/getMarkets.d.ts.map +1 -1
- package/dist/cjs/services/getMarkets.js +5 -2
- package/dist/cjs/services/getMarkets.js.map +1 -1
- package/dist/cjs/services/getMeta.d.ts +5 -0
- package/dist/cjs/services/getMeta.d.ts.map +1 -0
- package/dist/cjs/services/getMeta.js +8 -0
- package/dist/cjs/services/getMeta.js.map +1 -0
- package/dist/cjs/services/getOhlcv.d.ts +4 -3
- package/dist/cjs/services/getOhlcv.d.ts.map +1 -1
- package/dist/cjs/services/getOhlcv.js +4 -3
- package/dist/cjs/services/getOhlcv.js.map +1 -1
- package/dist/cjs/services/getOrder.d.ts +5 -3
- package/dist/cjs/services/getOrder.d.ts.map +1 -1
- package/dist/cjs/services/getOrder.js +2 -6
- package/dist/cjs/services/getOrder.js.map +1 -1
- package/dist/cjs/services/getOrderbook.d.ts +4 -3
- package/dist/cjs/services/getOrderbook.d.ts.map +1 -1
- package/dist/cjs/services/getOrderbook.js +4 -3
- package/dist/cjs/services/getOrderbook.js.map +1 -1
- package/dist/cjs/services/getOrders.d.ts +13 -0
- package/dist/cjs/services/getOrders.d.ts.map +1 -0
- package/dist/cjs/services/getOrders.js +13 -0
- package/dist/cjs/services/getOrders.js.map +1 -0
- package/dist/cjs/services/getPositions.d.ts +13 -0
- package/dist/cjs/services/getPositions.d.ts.map +1 -0
- package/dist/cjs/services/getPositions.js +13 -0
- package/dist/cjs/services/getPositions.js.map +1 -0
- package/dist/cjs/services/getPrices.d.ts +4 -3
- package/dist/cjs/services/getPrices.d.ts.map +1 -1
- package/dist/cjs/services/getPrices.js +3 -3
- package/dist/cjs/services/getPrices.js.map +1 -1
- package/dist/cjs/services/getProviders.d.ts +5 -0
- package/dist/cjs/services/getProviders.d.ts.map +1 -0
- package/dist/cjs/services/getProviders.js +8 -0
- package/dist/cjs/services/getProviders.js.map +1 -0
- package/dist/cjs/services/getQuote.d.ts +12 -0
- package/dist/cjs/services/getQuote.d.ts.map +1 -0
- package/dist/cjs/services/getQuote.js +13 -0
- package/dist/cjs/services/getQuote.js.map +1 -0
- package/dist/cjs/services/getTermsAcceptance.d.ts +6 -0
- package/dist/cjs/services/getTermsAcceptance.d.ts.map +1 -0
- package/dist/cjs/services/getTermsAcceptance.js +9 -0
- package/dist/cjs/services/getTermsAcceptance.js.map +1 -0
- package/dist/cjs/services/resolveQuote.d.ts +7 -0
- package/dist/cjs/services/resolveQuote.d.ts.map +1 -0
- package/dist/cjs/services/resolveQuote.js +50 -0
- package/dist/cjs/services/resolveQuote.js.map +1 -0
- package/dist/cjs/services/resolveSubscribeQuote.d.ts +6 -0
- package/dist/cjs/services/resolveSubscribeQuote.d.ts.map +1 -0
- package/dist/cjs/services/resolveSubscribeQuote.js +65 -0
- package/dist/cjs/services/resolveSubscribeQuote.js.map +1 -0
- package/dist/cjs/storage/parseStoredRecord.d.ts +4 -0
- package/dist/cjs/storage/parseStoredRecord.d.ts.map +1 -0
- package/dist/cjs/storage/parseStoredRecord.js +26 -0
- package/dist/cjs/storage/parseStoredRecord.js.map +1 -0
- package/dist/cjs/storage/storage.d.ts.map +1 -0
- package/dist/cjs/storage/storage.js.map +1 -0
- package/dist/cjs/{agent → storage}/types.d.ts +0 -5
- package/dist/cjs/storage/types.d.ts.map +1 -0
- package/dist/cjs/{agent → storage}/types.js.map +1 -1
- package/dist/cjs/transport/fetchWithRetry.d.ts +8 -0
- package/dist/cjs/transport/fetchWithRetry.d.ts.map +1 -0
- package/dist/cjs/transport/fetchWithRetry.js +81 -0
- package/dist/cjs/transport/fetchWithRetry.js.map +1 -0
- package/dist/cjs/{utils → transport}/request.d.ts +3 -2
- package/dist/cjs/transport/request.d.ts.map +1 -0
- package/dist/cjs/transport/request.js +75 -0
- package/dist/cjs/transport/request.js.map +1 -0
- package/dist/cjs/transport/retryPolicy.d.ts +37 -0
- package/dist/cjs/transport/retryPolicy.d.ts.map +1 -0
- package/dist/cjs/transport/retryPolicy.js +79 -0
- package/dist/cjs/transport/retryPolicy.js.map +1 -0
- package/dist/cjs/types/api.d.ts +85 -0
- package/dist/cjs/types/api.d.ts.map +1 -0
- package/dist/cjs/{dex/types.js → types/api.js} +1 -1
- package/dist/cjs/types/api.js.map +1 -0
- package/dist/cjs/types/config.d.ts +26 -0
- package/dist/cjs/types/config.d.ts.map +1 -0
- package/dist/cjs/{realtime/hyperliquid/types.js → types/config.js} +1 -1
- package/dist/cjs/types/config.js.map +1 -0
- package/dist/cjs/types/provider.d.ts +84 -0
- package/dist/cjs/types/provider.d.ts.map +1 -0
- package/dist/cjs/types/provider.js +3 -0
- package/dist/cjs/types/provider.js.map +1 -0
- package/dist/cjs/utils/accountSummary.d.ts +3 -0
- package/dist/cjs/utils/accountSummary.d.ts.map +1 -0
- package/dist/cjs/utils/accountSummary.js +25 -0
- package/dist/cjs/utils/accountSummary.js.map +1 -0
- package/dist/cjs/utils/assertNever.d.ts +2 -0
- package/dist/cjs/utils/assertNever.d.ts.map +1 -0
- package/dist/cjs/utils/assertNever.js +7 -0
- package/dist/cjs/utils/assertNever.js.map +1 -0
- package/dist/cjs/utils/calculations.d.ts +52 -0
- package/dist/cjs/utils/calculations.d.ts.map +1 -0
- package/dist/cjs/utils/calculations.js +148 -0
- package/dist/cjs/utils/calculations.js.map +1 -0
- package/dist/cjs/utils/depositChain.d.ts +6 -0
- package/dist/cjs/utils/depositChain.d.ts.map +1 -0
- package/dist/cjs/utils/depositChain.js +13 -0
- package/dist/cjs/utils/depositChain.js.map +1 -0
- package/dist/cjs/utils/explorer.d.ts +9 -0
- package/dist/cjs/utils/explorer.d.ts.map +1 -0
- package/dist/cjs/utils/explorer.js +23 -0
- package/dist/cjs/utils/explorer.js.map +1 -0
- package/dist/cjs/utils/fillClassification.d.ts +3 -0
- package/dist/cjs/utils/fillClassification.d.ts.map +1 -0
- package/dist/cjs/utils/fillClassification.js +37 -0
- package/dist/cjs/utils/fillClassification.js.map +1 -0
- package/dist/cjs/utils/format.d.ts +13 -0
- package/dist/cjs/utils/format.d.ts.map +1 -0
- package/dist/cjs/utils/format.js +117 -0
- package/dist/cjs/utils/format.js.map +1 -0
- package/dist/cjs/utils/orderClassification.d.ts +10 -0
- package/dist/cjs/utils/orderClassification.d.ts.map +1 -0
- package/dist/cjs/utils/orderClassification.js +49 -0
- package/dist/cjs/utils/orderClassification.js.map +1 -0
- package/dist/cjs/utils/orderMath.d.ts +6 -0
- package/dist/cjs/utils/orderMath.d.ts.map +1 -0
- package/dist/cjs/utils/orderMath.js +71 -0
- package/dist/cjs/utils/orderMath.js.map +1 -0
- package/dist/cjs/utils/parse.d.ts +2 -0
- package/dist/cjs/utils/parse.d.ts.map +1 -0
- package/dist/cjs/utils/parse.js +14 -0
- package/dist/cjs/utils/parse.js.map +1 -0
- package/dist/cjs/utils/positionMath.d.ts +32 -0
- package/dist/cjs/utils/positionMath.d.ts.map +1 -0
- package/dist/cjs/utils/positionMath.js +52 -0
- package/dist/cjs/utils/positionMath.js.map +1 -0
- package/dist/cjs/utils/signTypedData.d.ts +3 -1
- package/dist/cjs/utils/signTypedData.d.ts.map +1 -1
- package/dist/cjs/utils/signTypedData.js +11 -3
- package/dist/cjs/utils/signTypedData.js.map +1 -1
- package/dist/cjs/utils/sleep.d.ts.map +1 -1
- package/dist/cjs/utils/sleep.js.map +1 -1
- package/dist/cjs/utils/units.d.ts +3 -0
- package/dist/cjs/utils/units.d.ts.map +1 -0
- package/dist/cjs/utils/units.js +18 -0
- package/dist/cjs/utils/units.js.map +1 -0
- package/dist/cjs/utils/validation.d.ts +2 -0
- package/dist/cjs/utils/validation.d.ts.map +1 -0
- package/dist/cjs/utils/validation.js +16 -0
- package/dist/cjs/utils/validation.js.map +1 -0
- package/dist/cjs/version.d.ts +1 -1
- package/dist/cjs/version.d.ts.map +1 -1
- package/dist/cjs/version.js +1 -1
- package/dist/cjs/version.js.map +1 -1
- package/dist/cjs/websocket/PerpsWsClient.d.ts +27 -0
- package/dist/cjs/websocket/PerpsWsClient.d.ts.map +1 -0
- package/dist/cjs/websocket/PerpsWsClient.js +84 -0
- package/dist/cjs/websocket/PerpsWsClient.js.map +1 -0
- package/dist/{esm/realtime → cjs/websocket}/ReconnectingWebSocket.d.ts +23 -7
- package/dist/cjs/websocket/ReconnectingWebSocket.d.ts.map +1 -0
- package/dist/cjs/websocket/ReconnectingWebSocket.js +213 -0
- package/dist/cjs/websocket/ReconnectingWebSocket.js.map +1 -0
- package/dist/cjs/websocket/WsProviderBase.d.ts +31 -0
- package/dist/cjs/websocket/WsProviderBase.d.ts.map +1 -0
- package/dist/cjs/websocket/WsProviderBase.js +197 -0
- package/dist/cjs/websocket/WsProviderBase.js.map +1 -0
- package/dist/cjs/websocket/cachePromise.d.ts +2 -0
- package/dist/cjs/websocket/cachePromise.d.ts.map +1 -0
- package/dist/cjs/websocket/cachePromise.js +18 -0
- package/dist/cjs/websocket/cachePromise.js.map +1 -0
- package/dist/cjs/websocket/types.d.ts +15 -0
- package/dist/cjs/websocket/types.d.ts.map +1 -0
- package/dist/cjs/{dex → websocket}/types.js.map +1 -1
- package/dist/cjs/websocket/wsLog.d.ts +10 -0
- package/dist/cjs/websocket/wsLog.d.ts.map +1 -0
- package/dist/cjs/websocket/wsLog.js +31 -0
- package/dist/cjs/websocket/wsLog.js.map +1 -0
- package/dist/esm/client/PerpsClient.d.ts +223 -136
- package/dist/esm/client/PerpsClient.d.ts.map +1 -1
- package/dist/esm/client/PerpsClient.js +399 -339
- package/dist/esm/client/PerpsClient.js.map +1 -1
- package/dist/esm/client/bindProvider.d.ts +13 -0
- package/dist/esm/client/bindProvider.d.ts.map +1 -0
- package/dist/esm/client/bindProvider.js +16 -0
- package/dist/esm/client/bindProvider.js.map +1 -0
- package/dist/esm/client/createPerpsClient.d.ts +24 -64
- package/dist/esm/client/createPerpsClient.d.ts.map +1 -1
- package/dist/esm/client/createPerpsClient.js +45 -17
- package/dist/esm/client/createPerpsClient.js.map +1 -1
- package/dist/esm/client/requireProvider.d.ts +12 -0
- package/dist/esm/client/requireProvider.d.ts.map +1 -0
- package/dist/esm/client/requireProvider.js +22 -0
- package/dist/esm/client/requireProvider.js.map +1 -0
- package/dist/esm/errors/PerpsError.d.ts +10 -3
- package/dist/esm/errors/PerpsError.d.ts.map +1 -1
- package/dist/esm/errors/PerpsError.js +11 -15
- package/dist/esm/errors/PerpsError.js.map +1 -1
- package/dist/esm/errors/constants.d.ts +8 -12
- package/dist/esm/errors/constants.d.ts.map +1 -1
- package/dist/esm/errors/constants.js +8 -13
- package/dist/esm/errors/constants.js.map +1 -1
- package/dist/esm/index.d.ts +66 -34
- package/dist/esm/index.d.ts.map +1 -1
- package/dist/esm/index.js +49 -29
- package/dist/esm/index.js.map +1 -1
- package/dist/esm/registry/assetRegistry.d.ts +25 -0
- package/dist/esm/registry/assetRegistry.d.ts.map +1 -0
- package/dist/esm/registry/assetRegistry.js +48 -0
- package/dist/esm/registry/assetRegistry.js.map +1 -0
- package/dist/esm/registry/marketRegistry.d.ts +42 -0
- package/dist/esm/registry/marketRegistry.d.ts.map +1 -0
- package/dist/esm/registry/marketRegistry.js +81 -0
- package/dist/esm/registry/marketRegistry.js.map +1 -0
- package/dist/esm/registry/referenceDataRegistry.d.ts +44 -0
- package/dist/esm/registry/referenceDataRegistry.d.ts.map +1 -0
- package/dist/esm/registry/referenceDataRegistry.js +79 -0
- package/dist/esm/registry/referenceDataRegistry.js.map +1 -0
- package/dist/esm/services/createAction.d.ts +26 -0
- package/dist/esm/services/createAction.d.ts.map +1 -0
- package/dist/esm/services/createAction.js +22 -0
- package/dist/esm/services/createAction.js.map +1 -0
- package/dist/esm/services/executeAction.d.ts +26 -0
- package/dist/esm/services/executeAction.d.ts.map +1 -0
- package/dist/esm/services/executeAction.js +26 -0
- package/dist/esm/services/executeAction.js.map +1 -0
- package/dist/esm/services/getAccount.d.ts +21 -18
- package/dist/esm/services/getAccount.d.ts.map +1 -1
- package/dist/esm/services/getAccount.js +13 -19
- package/dist/esm/services/getAccount.js.map +1 -1
- package/dist/esm/services/getActivity.d.ts +39 -0
- package/dist/esm/services/getActivity.d.ts.map +1 -0
- package/dist/esm/services/getActivity.js +29 -0
- package/dist/esm/services/getActivity.js.map +1 -0
- package/dist/esm/services/getAssets.d.ts +27 -0
- package/dist/esm/services/getAssets.d.ts.map +1 -0
- package/dist/esm/services/getAssets.js +22 -0
- package/dist/esm/services/getAssets.js.map +1 -0
- package/dist/esm/services/getFills.d.ts +38 -0
- package/dist/esm/services/getFills.d.ts.map +1 -0
- package/dist/esm/services/getFills.js +28 -0
- package/dist/esm/services/getFills.js.map +1 -0
- package/dist/esm/services/getMarket.d.ts +22 -15
- package/dist/esm/services/getMarket.d.ts.map +1 -1
- package/dist/esm/services/getMarket.js +14 -14
- package/dist/esm/services/getMarket.js.map +1 -1
- package/dist/esm/services/getMarkets.d.ts +16 -13
- package/dist/esm/services/getMarkets.d.ts.map +1 -1
- package/dist/esm/services/getMarkets.js +11 -12
- package/dist/esm/services/getMarkets.js.map +1 -1
- package/dist/esm/services/getMeta.d.ts +19 -0
- package/dist/esm/services/getMeta.d.ts.map +1 -0
- package/dist/esm/services/getMeta.js +19 -0
- package/dist/esm/services/getMeta.js.map +1 -0
- package/dist/esm/services/getOhlcv.d.ts +17 -21
- package/dist/esm/services/getOhlcv.d.ts.map +1 -1
- package/dist/esm/services/getOhlcv.js +9 -15
- package/dist/esm/services/getOhlcv.js.map +1 -1
- package/dist/esm/services/getOrder.d.ts +18 -18
- package/dist/esm/services/getOrder.d.ts.map +1 -1
- package/dist/esm/services/getOrder.js +10 -18
- package/dist/esm/services/getOrder.js.map +1 -1
- package/dist/esm/services/getOrderbook.d.ts +14 -24
- package/dist/esm/services/getOrderbook.d.ts.map +1 -1
- package/dist/esm/services/getOrderbook.js +8 -22
- package/dist/esm/services/getOrderbook.js.map +1 -1
- package/dist/esm/services/getOrders.d.ts +35 -0
- package/dist/esm/services/getOrders.d.ts.map +1 -0
- package/dist/esm/services/getOrders.js +26 -0
- package/dist/esm/services/getOrders.js.map +1 -0
- package/dist/esm/services/getPositions.d.ts +35 -0
- package/dist/esm/services/getPositions.d.ts.map +1 -0
- package/dist/esm/services/getPositions.js +26 -0
- package/dist/esm/services/getPositions.js.map +1 -0
- package/dist/esm/services/getPrices.d.ts +13 -25
- package/dist/esm/services/getPrices.d.ts.map +1 -1
- package/dist/esm/services/getPrices.js +6 -23
- package/dist/esm/services/getPrices.js.map +1 -1
- package/dist/esm/services/getProviders.d.ts +20 -0
- package/dist/esm/services/getProviders.d.ts.map +1 -0
- package/dist/esm/services/getProviders.js +20 -0
- package/dist/esm/services/getProviders.js.map +1 -0
- package/dist/esm/services/getQuote.d.ts +42 -0
- package/dist/esm/services/getQuote.d.ts.map +1 -0
- package/dist/esm/services/getQuote.js +33 -0
- package/dist/esm/services/getQuote.js.map +1 -0
- package/dist/esm/services/getTermsAcceptance.d.ts +24 -0
- package/dist/esm/services/getTermsAcceptance.d.ts.map +1 -0
- package/dist/esm/services/getTermsAcceptance.js +24 -0
- package/dist/esm/services/getTermsAcceptance.js.map +1 -0
- package/dist/esm/services/resolveQuote.d.ts +36 -0
- package/dist/esm/services/resolveQuote.d.ts.map +1 -0
- package/dist/esm/services/resolveQuote.js +74 -0
- package/dist/esm/services/resolveQuote.js.map +1 -0
- package/dist/esm/services/resolveSubscribeQuote.d.ts +31 -0
- package/dist/esm/services/resolveSubscribeQuote.d.ts.map +1 -0
- package/dist/esm/services/resolveSubscribeQuote.js +86 -0
- package/dist/esm/services/resolveSubscribeQuote.js.map +1 -0
- package/dist/esm/storage/parseStoredRecord.d.ts +29 -0
- package/dist/esm/storage/parseStoredRecord.d.ts.map +1 -0
- package/dist/esm/storage/parseStoredRecord.js +47 -0
- package/dist/esm/storage/parseStoredRecord.js.map +1 -0
- package/dist/{types/agent → esm/storage}/storage.d.ts +6 -3
- package/dist/esm/storage/storage.d.ts.map +1 -0
- package/dist/esm/{agent → storage}/storage.js +6 -4
- package/dist/esm/storage/storage.js.map +1 -0
- package/dist/esm/storage/types.d.ts +14 -0
- package/dist/esm/storage/types.d.ts.map +1 -0
- package/dist/{cjs/client → esm/storage}/types.js.map +1 -1
- package/dist/esm/transport/fetchWithRetry.d.ts +22 -0
- package/dist/esm/transport/fetchWithRetry.d.ts.map +1 -0
- package/dist/esm/transport/fetchWithRetry.js +87 -0
- package/dist/esm/transport/fetchWithRetry.js.map +1 -0
- package/dist/esm/transport/request.d.ts +25 -0
- package/dist/esm/transport/request.d.ts.map +1 -0
- package/dist/esm/transport/request.js +82 -0
- package/dist/esm/transport/request.js.map +1 -0
- package/dist/esm/transport/retryPolicy.d.ts +106 -0
- package/dist/esm/transport/retryPolicy.d.ts.map +1 -0
- package/dist/esm/transport/retryPolicy.js +99 -0
- package/dist/esm/transport/retryPolicy.js.map +1 -0
- package/dist/esm/types/api.d.ts +214 -0
- package/dist/esm/types/api.d.ts.map +1 -0
- package/dist/esm/types/api.js +2 -0
- package/dist/esm/types/api.js.map +1 -0
- package/dist/esm/types/config.d.ts +70 -0
- package/dist/esm/types/config.d.ts.map +1 -0
- package/dist/esm/types/config.js +2 -0
- package/dist/esm/types/config.js.map +1 -0
- package/dist/esm/types/provider.d.ts +330 -0
- package/dist/esm/types/provider.d.ts.map +1 -0
- package/dist/esm/types/provider.js +2 -0
- package/dist/esm/types/provider.js.map +1 -0
- package/dist/esm/utils/accountSummary.d.ts +13 -0
- package/dist/esm/utils/accountSummary.d.ts.map +1 -0
- package/dist/esm/utils/accountSummary.js +32 -0
- package/dist/esm/utils/accountSummary.js.map +1 -0
- package/dist/esm/utils/assertNever.d.ts +20 -0
- package/dist/esm/utils/assertNever.d.ts.map +1 -0
- package/dist/esm/utils/assertNever.js +22 -0
- package/dist/esm/utils/assertNever.js.map +1 -0
- package/dist/esm/utils/calculations.d.ts +225 -0
- package/dist/esm/utils/calculations.d.ts.map +1 -0
- package/dist/esm/utils/calculations.js +291 -0
- package/dist/esm/utils/calculations.js.map +1 -0
- package/dist/esm/utils/depositChain.d.ts +25 -0
- package/dist/esm/utils/depositChain.d.ts.map +1 -0
- package/dist/esm/utils/depositChain.js +23 -0
- package/dist/esm/utils/depositChain.js.map +1 -0
- package/dist/esm/utils/explorer.d.ts +33 -0
- package/dist/esm/utils/explorer.d.ts.map +1 -0
- package/dist/esm/utils/explorer.js +38 -0
- package/dist/esm/utils/explorer.js.map +1 -0
- package/dist/esm/utils/fillClassification.d.ts +13 -0
- package/dist/esm/utils/fillClassification.d.ts.map +1 -0
- package/dist/esm/utils/fillClassification.js +44 -0
- package/dist/esm/utils/fillClassification.js.map +1 -0
- package/dist/esm/utils/format.d.ts +66 -0
- package/dist/esm/utils/format.d.ts.map +1 -0
- package/dist/esm/utils/format.js +171 -0
- package/dist/esm/utils/format.js.map +1 -0
- package/dist/esm/utils/orderClassification.d.ts +47 -0
- package/dist/esm/utils/orderClassification.d.ts.map +1 -0
- package/dist/esm/utils/orderClassification.js +78 -0
- package/dist/esm/utils/orderClassification.js.map +1 -0
- package/dist/esm/utils/orderMath.d.ts +44 -0
- package/dist/esm/utils/orderMath.d.ts.map +1 -0
- package/dist/esm/utils/orderMath.js +103 -0
- package/dist/esm/utils/orderMath.js.map +1 -0
- package/dist/esm/utils/parse.d.ts +21 -0
- package/dist/esm/utils/parse.d.ts.map +1 -0
- package/dist/esm/utils/parse.js +30 -0
- package/dist/esm/utils/parse.js.map +1 -0
- package/dist/esm/utils/positionMath.d.ts +107 -0
- package/dist/esm/utils/positionMath.d.ts.map +1 -0
- package/dist/esm/utils/positionMath.js +119 -0
- package/dist/esm/utils/positionMath.js.map +1 -0
- package/dist/esm/utils/signTypedData.d.ts +13 -10
- package/dist/esm/utils/signTypedData.d.ts.map +1 -1
- package/dist/esm/utils/signTypedData.js +20 -13
- package/dist/esm/utils/signTypedData.js.map +1 -1
- package/dist/esm/utils/sleep.d.ts +5 -0
- package/dist/esm/utils/sleep.d.ts.map +1 -1
- package/dist/esm/utils/sleep.js +5 -0
- package/dist/esm/utils/sleep.js.map +1 -1
- package/dist/esm/utils/units.d.ts +27 -0
- package/dist/esm/utils/units.d.ts.map +1 -0
- package/dist/esm/utils/units.js +38 -0
- package/dist/esm/utils/units.js.map +1 -0
- package/dist/esm/utils/validation.d.ts +18 -0
- package/dist/esm/utils/validation.d.ts.map +1 -0
- package/dist/esm/utils/validation.js +29 -0
- package/dist/esm/utils/validation.js.map +1 -0
- package/dist/esm/version.d.ts +1 -1
- package/dist/esm/version.d.ts.map +1 -1
- package/dist/esm/version.js +1 -1
- package/dist/esm/version.js.map +1 -1
- package/dist/esm/websocket/PerpsWsClient.d.ts +100 -0
- package/dist/esm/websocket/PerpsWsClient.d.ts.map +1 -0
- package/dist/esm/websocket/PerpsWsClient.js +121 -0
- package/dist/esm/websocket/PerpsWsClient.js.map +1 -0
- package/dist/esm/websocket/ReconnectingWebSocket.d.ts +130 -0
- package/dist/esm/websocket/ReconnectingWebSocket.d.ts.map +1 -0
- package/dist/esm/websocket/ReconnectingWebSocket.js +288 -0
- package/dist/esm/websocket/ReconnectingWebSocket.js.map +1 -0
- package/dist/esm/websocket/WsProviderBase.d.ts +89 -0
- package/dist/esm/websocket/WsProviderBase.d.ts.map +1 -0
- package/dist/esm/websocket/WsProviderBase.js +246 -0
- package/dist/esm/websocket/WsProviderBase.js.map +1 -0
- package/dist/esm/websocket/cachePromise.d.ts +14 -0
- package/dist/esm/websocket/cachePromise.d.ts.map +1 -0
- package/dist/esm/websocket/cachePromise.js +27 -0
- package/dist/esm/websocket/cachePromise.js.map +1 -0
- package/dist/esm/websocket/types.d.ts +60 -0
- package/dist/esm/websocket/types.d.ts.map +1 -0
- package/dist/{cjs/realtime → esm/websocket}/types.js.map +1 -1
- package/dist/esm/websocket/wsLog.d.ts +50 -0
- package/dist/esm/websocket/wsLog.d.ts.map +1 -0
- package/dist/esm/websocket/wsLog.js +68 -0
- package/dist/esm/websocket/wsLog.js.map +1 -0
- package/dist/types/client/PerpsClient.d.ts +223 -136
- package/dist/types/client/PerpsClient.d.ts.map +1 -1
- package/dist/types/client/bindProvider.d.ts +13 -0
- package/dist/types/client/bindProvider.d.ts.map +1 -0
- package/dist/types/client/createPerpsClient.d.ts +24 -64
- package/dist/types/client/createPerpsClient.d.ts.map +1 -1
- package/dist/types/client/requireProvider.d.ts +12 -0
- package/dist/types/client/requireProvider.d.ts.map +1 -0
- package/dist/types/errors/PerpsError.d.ts +10 -3
- package/dist/types/errors/PerpsError.d.ts.map +1 -1
- package/dist/types/errors/constants.d.ts +8 -12
- package/dist/types/errors/constants.d.ts.map +1 -1
- package/dist/types/index.d.ts +66 -34
- package/dist/types/index.d.ts.map +1 -1
- package/dist/types/registry/assetRegistry.d.ts +25 -0
- package/dist/types/registry/assetRegistry.d.ts.map +1 -0
- package/dist/types/registry/marketRegistry.d.ts +42 -0
- package/dist/types/registry/marketRegistry.d.ts.map +1 -0
- package/dist/types/registry/referenceDataRegistry.d.ts +44 -0
- package/dist/types/registry/referenceDataRegistry.d.ts.map +1 -0
- package/dist/types/services/createAction.d.ts +26 -0
- package/dist/types/services/createAction.d.ts.map +1 -0
- package/dist/types/services/executeAction.d.ts +26 -0
- package/dist/types/services/executeAction.d.ts.map +1 -0
- package/dist/types/services/getAccount.d.ts +21 -18
- package/dist/types/services/getAccount.d.ts.map +1 -1
- package/dist/types/services/getActivity.d.ts +39 -0
- package/dist/types/services/getActivity.d.ts.map +1 -0
- package/dist/types/services/getAssets.d.ts +27 -0
- package/dist/types/services/getAssets.d.ts.map +1 -0
- package/dist/types/services/getFills.d.ts +38 -0
- package/dist/types/services/getFills.d.ts.map +1 -0
- package/dist/types/services/getMarket.d.ts +22 -15
- package/dist/types/services/getMarket.d.ts.map +1 -1
- package/dist/types/services/getMarkets.d.ts +16 -13
- package/dist/types/services/getMarkets.d.ts.map +1 -1
- package/dist/types/services/getMeta.d.ts +19 -0
- package/dist/types/services/getMeta.d.ts.map +1 -0
- package/dist/types/services/getOhlcv.d.ts +17 -21
- package/dist/types/services/getOhlcv.d.ts.map +1 -1
- package/dist/types/services/getOrder.d.ts +18 -18
- package/dist/types/services/getOrder.d.ts.map +1 -1
- package/dist/types/services/getOrderbook.d.ts +14 -24
- package/dist/types/services/getOrderbook.d.ts.map +1 -1
- package/dist/types/services/getOrders.d.ts +35 -0
- package/dist/types/services/getOrders.d.ts.map +1 -0
- package/dist/types/services/getPositions.d.ts +35 -0
- package/dist/types/services/getPositions.d.ts.map +1 -0
- package/dist/types/services/getPrices.d.ts +13 -25
- package/dist/types/services/getPrices.d.ts.map +1 -1
- package/dist/types/services/getProviders.d.ts +20 -0
- package/dist/types/services/getProviders.d.ts.map +1 -0
- package/dist/types/services/getQuote.d.ts +42 -0
- package/dist/types/services/getQuote.d.ts.map +1 -0
- package/dist/types/services/getTermsAcceptance.d.ts +24 -0
- package/dist/types/services/getTermsAcceptance.d.ts.map +1 -0
- package/dist/types/services/resolveQuote.d.ts +36 -0
- package/dist/types/services/resolveQuote.d.ts.map +1 -0
- package/dist/types/services/resolveSubscribeQuote.d.ts +31 -0
- package/dist/types/services/resolveSubscribeQuote.d.ts.map +1 -0
- package/dist/types/storage/parseStoredRecord.d.ts +29 -0
- package/dist/types/storage/parseStoredRecord.d.ts.map +1 -0
- package/dist/{esm/agent → types/storage}/storage.d.ts +6 -3
- package/dist/types/storage/storage.d.ts.map +1 -0
- package/dist/types/storage/types.d.ts +14 -0
- package/dist/types/storage/types.d.ts.map +1 -0
- package/dist/types/transport/fetchWithRetry.d.ts +22 -0
- package/dist/types/transport/fetchWithRetry.d.ts.map +1 -0
- package/dist/types/transport/request.d.ts +25 -0
- package/dist/types/transport/request.d.ts.map +1 -0
- package/dist/types/transport/retryPolicy.d.ts +106 -0
- package/dist/types/transport/retryPolicy.d.ts.map +1 -0
- package/dist/types/types/api.d.ts +214 -0
- package/dist/types/types/api.d.ts.map +1 -0
- package/dist/types/types/config.d.ts +70 -0
- package/dist/types/types/config.d.ts.map +1 -0
- package/dist/types/types/provider.d.ts +330 -0
- package/dist/types/types/provider.d.ts.map +1 -0
- package/dist/types/utils/accountSummary.d.ts +13 -0
- package/dist/types/utils/accountSummary.d.ts.map +1 -0
- package/dist/types/utils/assertNever.d.ts +20 -0
- package/dist/types/utils/assertNever.d.ts.map +1 -0
- package/dist/types/utils/calculations.d.ts +225 -0
- package/dist/types/utils/calculations.d.ts.map +1 -0
- package/dist/types/utils/depositChain.d.ts +25 -0
- package/dist/types/utils/depositChain.d.ts.map +1 -0
- package/dist/types/utils/explorer.d.ts +33 -0
- package/dist/types/utils/explorer.d.ts.map +1 -0
- package/dist/types/utils/fillClassification.d.ts +13 -0
- package/dist/types/utils/fillClassification.d.ts.map +1 -0
- package/dist/types/utils/format.d.ts +66 -0
- package/dist/types/utils/format.d.ts.map +1 -0
- package/dist/types/utils/orderClassification.d.ts +47 -0
- package/dist/types/utils/orderClassification.d.ts.map +1 -0
- package/dist/types/utils/orderMath.d.ts +44 -0
- package/dist/types/utils/orderMath.d.ts.map +1 -0
- package/dist/types/utils/parse.d.ts +21 -0
- package/dist/types/utils/parse.d.ts.map +1 -0
- package/dist/types/utils/positionMath.d.ts +107 -0
- package/dist/types/utils/positionMath.d.ts.map +1 -0
- package/dist/types/utils/signTypedData.d.ts +13 -10
- package/dist/types/utils/signTypedData.d.ts.map +1 -1
- package/dist/types/utils/sleep.d.ts +5 -0
- package/dist/types/utils/sleep.d.ts.map +1 -1
- package/dist/types/utils/units.d.ts +27 -0
- package/dist/types/utils/units.d.ts.map +1 -0
- package/dist/types/utils/validation.d.ts +18 -0
- package/dist/types/utils/validation.d.ts.map +1 -0
- package/dist/types/version.d.ts +1 -1
- package/dist/types/version.d.ts.map +1 -1
- package/dist/types/websocket/PerpsWsClient.d.ts +100 -0
- package/dist/types/websocket/PerpsWsClient.d.ts.map +1 -0
- package/dist/types/websocket/ReconnectingWebSocket.d.ts +130 -0
- package/dist/types/websocket/ReconnectingWebSocket.d.ts.map +1 -0
- package/dist/types/websocket/WsProviderBase.d.ts +89 -0
- package/dist/types/websocket/WsProviderBase.d.ts.map +1 -0
- package/dist/types/websocket/cachePromise.d.ts +14 -0
- package/dist/types/websocket/cachePromise.d.ts.map +1 -0
- package/dist/types/websocket/types.d.ts +60 -0
- package/dist/types/websocket/types.d.ts.map +1 -0
- package/dist/types/websocket/wsLog.d.ts +50 -0
- package/dist/types/websocket/wsLog.d.ts.map +1 -0
- package/package.json +12 -50
- package/src/client/PerpsClient.ts +549 -435
- package/src/client/bindProvider.ts +24 -0
- package/src/client/createPerpsClient.ts +61 -80
- package/src/client/requireProvider.ts +29 -0
- package/src/errors/PerpsError.ts +11 -22
- package/src/errors/constants.ts +8 -13
- package/src/index.ts +189 -65
- package/src/registry/assetRegistry.ts +62 -0
- package/src/registry/marketRegistry.ts +100 -0
- package/src/registry/referenceDataRegistry.ts +95 -0
- package/src/services/createAction.ts +52 -0
- package/src/services/executeAction.ts +56 -0
- package/src/services/getAccount.ts +26 -27
- package/src/services/getActivity.ts +57 -0
- package/src/services/getAssets.ts +38 -0
- package/src/services/getFills.ts +55 -0
- package/src/services/getMarket.ts +34 -23
- package/src/services/getMarkets.ts +21 -18
- package/src/services/getMeta.ts +30 -0
- package/src/services/getOhlcv.ts +21 -27
- package/src/services/getOrder.ts +23 -27
- package/src/services/getOrderbook.ts +18 -30
- package/src/services/getOrders.ts +51 -0
- package/src/services/getPositions.ts +51 -0
- package/src/services/getPrices.ts +16 -31
- package/src/services/getProviders.ts +31 -0
- package/src/services/getQuote.ts +58 -0
- package/src/services/getTermsAcceptance.ts +32 -0
- package/src/services/resolveQuote.ts +122 -0
- package/src/services/resolveSubscribeQuote.ts +109 -0
- package/src/storage/parseStoredRecord.ts +55 -0
- package/src/{agent → storage}/storage.ts +6 -4
- package/src/storage/types.ts +13 -0
- package/src/transport/fetchWithRetry.ts +116 -0
- package/src/transport/request.ts +123 -0
- package/src/transport/retryPolicy.ts +202 -0
- package/src/types/api.ts +239 -0
- package/src/types/config.ts +79 -0
- package/src/types/provider.ts +429 -0
- package/src/utils/accountSummary.ts +46 -0
- package/src/utils/assertNever.ts +23 -0
- package/src/utils/calculations.ts +406 -0
- package/src/utils/depositChain.ts +37 -0
- package/src/utils/explorer.ts +51 -0
- package/src/utils/fillClassification.ts +51 -0
- package/src/utils/format.ts +212 -0
- package/src/utils/orderClassification.ts +96 -0
- package/src/utils/orderMath.ts +134 -0
- package/src/utils/parse.ts +29 -0
- package/src/utils/positionMath.ts +149 -0
- package/src/utils/signTypedData.ts +25 -15
- package/src/utils/sleep.ts +5 -0
- package/src/utils/units.ts +39 -0
- package/src/utils/validation.ts +38 -0
- package/src/version.ts +1 -1
- package/src/websocket/PerpsWsClient.ts +204 -0
- package/src/websocket/ReconnectingWebSocket.ts +353 -0
- package/src/websocket/WsProviderBase.ts +333 -0
- package/src/websocket/cachePromise.ts +30 -0
- package/src/websocket/types.ts +75 -0
- package/src/websocket/wsLog.ts +82 -0
- package/dist/cjs/agent/AgentManager.d.ts +0 -15
- package/dist/cjs/agent/AgentManager.d.ts.map +0 -1
- package/dist/cjs/agent/AgentManager.js +0 -80
- package/dist/cjs/agent/AgentManager.js.map +0 -1
- package/dist/cjs/agent/storage.d.ts.map +0 -1
- package/dist/cjs/agent/storage.js.map +0 -1
- package/dist/cjs/agent/types.d.ts.map +0 -1
- package/dist/cjs/client/types.d.ts +0 -62
- package/dist/cjs/client/types.d.ts.map +0 -1
- package/dist/cjs/dex/hyperliquid.d.ts +0 -3
- package/dist/cjs/dex/hyperliquid.d.ts.map +0 -1
- package/dist/cjs/dex/hyperliquid.js +0 -21
- package/dist/cjs/dex/hyperliquid.js.map +0 -1
- package/dist/cjs/dex/registry.d.ts +0 -3
- package/dist/cjs/dex/registry.d.ts.map +0 -1
- package/dist/cjs/dex/registry.js +0 -16
- package/dist/cjs/dex/registry.js.map +0 -1
- package/dist/cjs/dex/types.d.ts +0 -13
- package/dist/cjs/dex/types.d.ts.map +0 -1
- package/dist/cjs/errors/AgentError.d.ts +0 -10
- package/dist/cjs/errors/AgentError.d.ts.map +0 -1
- package/dist/cjs/errors/AgentError.js +0 -23
- package/dist/cjs/errors/AgentError.js.map +0 -1
- package/dist/cjs/errors/HTTPError.d.ts +0 -11
- package/dist/cjs/errors/HTTPError.d.ts.map +0 -1
- package/dist/cjs/errors/HTTPError.js +0 -62
- package/dist/cjs/errors/HTTPError.js.map +0 -1
- package/dist/cjs/errors/PerpsSDKError.d.ts +0 -9
- package/dist/cjs/errors/PerpsSDKError.d.ts.map +0 -1
- package/dist/cjs/errors/PerpsSDKError.js +0 -36
- package/dist/cjs/errors/PerpsSDKError.js.map +0 -1
- package/dist/cjs/errors/ServerError.d.ts +0 -10
- package/dist/cjs/errors/ServerError.d.ts.map +0 -1
- package/dist/cjs/errors/ServerError.js +0 -24
- package/dist/cjs/errors/ServerError.js.map +0 -1
- package/dist/cjs/errors/ValidationError.d.ts +0 -9
- package/dist/cjs/errors/ValidationError.d.ts.map +0 -1
- package/dist/cjs/errors/ValidationError.js +0 -23
- package/dist/cjs/errors/ValidationError.js.map +0 -1
- package/dist/cjs/errors/utils/rootCause.d.ts +0 -6
- package/dist/cjs/errors/utils/rootCause.d.ts.map +0 -1
- package/dist/cjs/errors/utils/rootCause.js +0 -41
- package/dist/cjs/errors/utils/rootCause.js.map +0 -1
- package/dist/cjs/realtime/PerpsWsClient.d.ts +0 -14
- package/dist/cjs/realtime/PerpsWsClient.d.ts.map +0 -1
- package/dist/cjs/realtime/PerpsWsClient.js +0 -56
- package/dist/cjs/realtime/PerpsWsClient.js.map +0 -1
- package/dist/cjs/realtime/ReconnectingWebSocket.d.ts +0 -36
- package/dist/cjs/realtime/ReconnectingWebSocket.d.ts.map +0 -1
- package/dist/cjs/realtime/ReconnectingWebSocket.js +0 -132
- package/dist/cjs/realtime/ReconnectingWebSocket.js.map +0 -1
- package/dist/cjs/realtime/hyperliquid/HyperliquidWsProvider.d.ts +0 -26
- package/dist/cjs/realtime/hyperliquid/HyperliquidWsProvider.d.ts.map +0 -1
- package/dist/cjs/realtime/hyperliquid/HyperliquidWsProvider.js +0 -225
- package/dist/cjs/realtime/hyperliquid/HyperliquidWsProvider.js.map +0 -1
- package/dist/cjs/realtime/hyperliquid/types.d.ts +0 -35
- package/dist/cjs/realtime/hyperliquid/types.d.ts.map +0 -1
- package/dist/cjs/realtime/hyperliquid/types.js.map +0 -1
- package/dist/cjs/realtime/types.d.ts +0 -10
- package/dist/cjs/realtime/types.d.ts.map +0 -1
- package/dist/cjs/realtime/types.js +0 -3
- package/dist/cjs/services/cancelOrder.d.ts +0 -10
- package/dist/cjs/services/cancelOrder.d.ts.map +0 -1
- package/dist/cjs/services/cancelOrder.js +0 -16
- package/dist/cjs/services/cancelOrder.js.map +0 -1
- package/dist/cjs/services/createAuthorization.d.ts +0 -10
- package/dist/cjs/services/createAuthorization.d.ts.map +0 -1
- package/dist/cjs/services/createAuthorization.js +0 -16
- package/dist/cjs/services/createAuthorization.js.map +0 -1
- package/dist/cjs/services/createOrder.d.ts +0 -21
- package/dist/cjs/services/createOrder.d.ts.map +0 -1
- package/dist/cjs/services/createOrder.js +0 -27
- package/dist/cjs/services/createOrder.js.map +0 -1
- package/dist/cjs/services/createWithdrawal.d.ts +0 -9
- package/dist/cjs/services/createWithdrawal.d.ts.map +0 -1
- package/dist/cjs/services/createWithdrawal.js +0 -15
- package/dist/cjs/services/createWithdrawal.js.map +0 -1
- package/dist/cjs/services/getDexes.d.ts +0 -4
- package/dist/cjs/services/getDexes.d.ts.map +0 -1
- package/dist/cjs/services/getDexes.js +0 -8
- package/dist/cjs/services/getDexes.js.map +0 -1
- package/dist/cjs/services/getHistory.d.ts +0 -10
- package/dist/cjs/services/getHistory.d.ts.map +0 -1
- package/dist/cjs/services/getHistory.js +0 -14
- package/dist/cjs/services/getHistory.js.map +0 -1
- package/dist/cjs/services/submitAuthorization.d.ts +0 -10
- package/dist/cjs/services/submitAuthorization.d.ts.map +0 -1
- package/dist/cjs/services/submitAuthorization.js.map +0 -1
- package/dist/cjs/services/submitOrder.d.ts +0 -10
- package/dist/cjs/services/submitOrder.d.ts.map +0 -1
- package/dist/cjs/services/submitOrder.js +0 -16
- package/dist/cjs/services/submitOrder.js.map +0 -1
- package/dist/cjs/services/submitWithdrawal.d.ts +0 -9
- package/dist/cjs/services/submitWithdrawal.d.ts.map +0 -1
- package/dist/cjs/services/submitWithdrawal.js +0 -15
- package/dist/cjs/services/submitWithdrawal.js.map +0 -1
- package/dist/cjs/utils/request.d.ts.map +0 -1
- package/dist/cjs/utils/request.js +0 -60
- package/dist/cjs/utils/request.js.map +0 -1
- package/dist/esm/agent/AgentManager.d.ts +0 -45
- package/dist/esm/agent/AgentManager.d.ts.map +0 -1
- package/dist/esm/agent/AgentManager.js +0 -110
- package/dist/esm/agent/AgentManager.js.map +0 -1
- package/dist/esm/agent/storage.d.ts.map +0 -1
- package/dist/esm/agent/storage.js.map +0 -1
- package/dist/esm/agent/types.d.ts +0 -23
- package/dist/esm/agent/types.d.ts.map +0 -1
- package/dist/esm/agent/types.js.map +0 -1
- package/dist/esm/client/types.d.ts +0 -134
- package/dist/esm/client/types.d.ts.map +0 -1
- package/dist/esm/client/types.js.map +0 -1
- package/dist/esm/dex/hyperliquid.d.ts +0 -3
- package/dist/esm/dex/hyperliquid.d.ts.map +0 -1
- package/dist/esm/dex/hyperliquid.js +0 -19
- package/dist/esm/dex/hyperliquid.js.map +0 -1
- package/dist/esm/dex/registry.d.ts +0 -3
- package/dist/esm/dex/registry.d.ts.map +0 -1
- package/dist/esm/dex/registry.js +0 -13
- package/dist/esm/dex/registry.js.map +0 -1
- package/dist/esm/dex/types.d.ts +0 -15
- package/dist/esm/dex/types.d.ts.map +0 -1
- package/dist/esm/dex/types.js +0 -2
- package/dist/esm/dex/types.js.map +0 -1
- package/dist/esm/errors/AgentError.d.ts +0 -25
- package/dist/esm/errors/AgentError.d.ts.map +0 -1
- package/dist/esm/errors/AgentError.js +0 -35
- package/dist/esm/errors/AgentError.js.map +0 -1
- package/dist/esm/errors/HTTPError.d.ts +0 -11
- package/dist/esm/errors/HTTPError.d.ts.map +0 -1
- package/dist/esm/errors/HTTPError.js +0 -61
- package/dist/esm/errors/HTTPError.js.map +0 -1
- package/dist/esm/errors/PerpsSDKError.d.ts +0 -40
- package/dist/esm/errors/PerpsSDKError.d.ts.map +0 -1
- package/dist/esm/errors/PerpsSDKError.js +0 -67
- package/dist/esm/errors/PerpsSDKError.js.map +0 -1
- package/dist/esm/errors/ServerError.d.ts +0 -23
- package/dist/esm/errors/ServerError.d.ts.map +0 -1
- package/dist/esm/errors/ServerError.js +0 -34
- package/dist/esm/errors/ServerError.js.map +0 -1
- package/dist/esm/errors/ValidationError.d.ts +0 -23
- package/dist/esm/errors/ValidationError.d.ts.map +0 -1
- package/dist/esm/errors/ValidationError.js +0 -34
- package/dist/esm/errors/ValidationError.js.map +0 -1
- package/dist/esm/errors/utils/rootCause.d.ts +0 -71
- package/dist/esm/errors/utils/rootCause.d.ts.map +0 -1
- package/dist/esm/errors/utils/rootCause.js +0 -99
- package/dist/esm/errors/utils/rootCause.js.map +0 -1
- package/dist/esm/realtime/PerpsWsClient.d.ts +0 -14
- package/dist/esm/realtime/PerpsWsClient.d.ts.map +0 -1
- package/dist/esm/realtime/PerpsWsClient.js +0 -52
- package/dist/esm/realtime/PerpsWsClient.js.map +0 -1
- package/dist/esm/realtime/ReconnectingWebSocket.d.ts.map +0 -1
- package/dist/esm/realtime/ReconnectingWebSocket.js +0 -128
- package/dist/esm/realtime/ReconnectingWebSocket.js.map +0 -1
- package/dist/esm/realtime/hyperliquid/HyperliquidWsProvider.d.ts +0 -26
- package/dist/esm/realtime/hyperliquid/HyperliquidWsProvider.d.ts.map +0 -1
- package/dist/esm/realtime/hyperliquid/HyperliquidWsProvider.js +0 -222
- package/dist/esm/realtime/hyperliquid/HyperliquidWsProvider.js.map +0 -1
- package/dist/esm/realtime/hyperliquid/types.d.ts +0 -35
- package/dist/esm/realtime/hyperliquid/types.d.ts.map +0 -1
- package/dist/esm/realtime/hyperliquid/types.js +0 -4
- package/dist/esm/realtime/hyperliquid/types.js.map +0 -1
- package/dist/esm/realtime/types.d.ts +0 -10
- package/dist/esm/realtime/types.d.ts.map +0 -1
- package/dist/esm/realtime/types.js +0 -2
- package/dist/esm/realtime/types.js.map +0 -1
- package/dist/esm/services/cancelOrder.d.ts +0 -51
- package/dist/esm/services/cancelOrder.d.ts.map +0 -1
- package/dist/esm/services/cancelOrder.js +0 -50
- package/dist/esm/services/cancelOrder.js.map +0 -1
- package/dist/esm/services/createAuthorization.d.ts +0 -51
- package/dist/esm/services/createAuthorization.d.ts.map +0 -1
- package/dist/esm/services/createAuthorization.js +0 -50
- package/dist/esm/services/createAuthorization.js.map +0 -1
- package/dist/esm/services/createOrder.d.ts +0 -74
- package/dist/esm/services/createOrder.d.ts.map +0 -1
- package/dist/esm/services/createOrder.js +0 -62
- package/dist/esm/services/createOrder.js.map +0 -1
- package/dist/esm/services/createWithdrawal.d.ts +0 -49
- package/dist/esm/services/createWithdrawal.d.ts.map +0 -1
- package/dist/esm/services/createWithdrawal.js +0 -49
- package/dist/esm/services/createWithdrawal.js.map +0 -1
- package/dist/esm/services/getDexes.d.ts +0 -20
- package/dist/esm/services/getDexes.d.ts.map +0 -1
- package/dist/esm/services/getDexes.js +0 -21
- package/dist/esm/services/getDexes.js.map +0 -1
- package/dist/esm/services/getHistory.d.ts +0 -45
- package/dist/esm/services/getHistory.d.ts.map +0 -1
- package/dist/esm/services/getHistory.js +0 -42
- package/dist/esm/services/getHistory.js.map +0 -1
- package/dist/esm/services/submitAuthorization.d.ts +0 -42
- package/dist/esm/services/submitAuthorization.d.ts.map +0 -1
- package/dist/esm/services/submitAuthorization.js +0 -41
- package/dist/esm/services/submitAuthorization.js.map +0 -1
- package/dist/esm/services/submitOrder.d.ts +0 -44
- package/dist/esm/services/submitOrder.d.ts.map +0 -1
- package/dist/esm/services/submitOrder.js +0 -43
- package/dist/esm/services/submitOrder.js.map +0 -1
- package/dist/esm/services/submitWithdrawal.d.ts +0 -40
- package/dist/esm/services/submitWithdrawal.d.ts.map +0 -1
- package/dist/esm/services/submitWithdrawal.js +0 -40
- package/dist/esm/services/submitWithdrawal.js.map +0 -1
- package/dist/esm/utils/request.d.ts +0 -26
- package/dist/esm/utils/request.d.ts.map +0 -1
- package/dist/esm/utils/request.js +0 -78
- package/dist/esm/utils/request.js.map +0 -1
- package/dist/types/agent/AgentManager.d.ts +0 -45
- package/dist/types/agent/AgentManager.d.ts.map +0 -1
- package/dist/types/agent/storage.d.ts.map +0 -1
- package/dist/types/agent/types.d.ts +0 -23
- package/dist/types/agent/types.d.ts.map +0 -1
- package/dist/types/client/types.d.ts +0 -134
- package/dist/types/client/types.d.ts.map +0 -1
- package/dist/types/dex/hyperliquid.d.ts +0 -3
- package/dist/types/dex/hyperliquid.d.ts.map +0 -1
- package/dist/types/dex/registry.d.ts +0 -3
- package/dist/types/dex/registry.d.ts.map +0 -1
- package/dist/types/dex/types.d.ts +0 -15
- package/dist/types/dex/types.d.ts.map +0 -1
- package/dist/types/errors/AgentError.d.ts +0 -25
- package/dist/types/errors/AgentError.d.ts.map +0 -1
- package/dist/types/errors/HTTPError.d.ts +0 -11
- package/dist/types/errors/HTTPError.d.ts.map +0 -1
- package/dist/types/errors/PerpsSDKError.d.ts +0 -40
- package/dist/types/errors/PerpsSDKError.d.ts.map +0 -1
- package/dist/types/errors/ServerError.d.ts +0 -23
- package/dist/types/errors/ServerError.d.ts.map +0 -1
- package/dist/types/errors/ValidationError.d.ts +0 -23
- package/dist/types/errors/ValidationError.d.ts.map +0 -1
- package/dist/types/errors/utils/rootCause.d.ts +0 -71
- package/dist/types/errors/utils/rootCause.d.ts.map +0 -1
- package/dist/types/realtime/PerpsWsClient.d.ts +0 -14
- package/dist/types/realtime/PerpsWsClient.d.ts.map +0 -1
- package/dist/types/realtime/ReconnectingWebSocket.d.ts +0 -36
- package/dist/types/realtime/ReconnectingWebSocket.d.ts.map +0 -1
- package/dist/types/realtime/hyperliquid/HyperliquidWsProvider.d.ts +0 -26
- package/dist/types/realtime/hyperliquid/HyperliquidWsProvider.d.ts.map +0 -1
- package/dist/types/realtime/hyperliquid/types.d.ts +0 -35
- package/dist/types/realtime/hyperliquid/types.d.ts.map +0 -1
- package/dist/types/realtime/types.d.ts +0 -10
- package/dist/types/realtime/types.d.ts.map +0 -1
- package/dist/types/services/cancelOrder.d.ts +0 -51
- package/dist/types/services/cancelOrder.d.ts.map +0 -1
- package/dist/types/services/createAuthorization.d.ts +0 -51
- package/dist/types/services/createAuthorization.d.ts.map +0 -1
- package/dist/types/services/createOrder.d.ts +0 -74
- package/dist/types/services/createOrder.d.ts.map +0 -1
- package/dist/types/services/createWithdrawal.d.ts +0 -49
- package/dist/types/services/createWithdrawal.d.ts.map +0 -1
- package/dist/types/services/getDexes.d.ts +0 -20
- package/dist/types/services/getDexes.d.ts.map +0 -1
- package/dist/types/services/getHistory.d.ts +0 -45
- package/dist/types/services/getHistory.d.ts.map +0 -1
- package/dist/types/services/submitAuthorization.d.ts +0 -42
- package/dist/types/services/submitAuthorization.d.ts.map +0 -1
- package/dist/types/services/submitOrder.d.ts +0 -44
- package/dist/types/services/submitOrder.d.ts.map +0 -1
- package/dist/types/services/submitWithdrawal.d.ts +0 -40
- package/dist/types/services/submitWithdrawal.d.ts.map +0 -1
- package/dist/types/utils/request.d.ts +0 -26
- package/dist/types/utils/request.d.ts.map +0 -1
- package/src/agent/AgentManager.ts +0 -135
- package/src/agent/types.ts +0 -24
- package/src/client/types.ts +0 -162
- package/src/dex/hyperliquid.ts +0 -20
- package/src/dex/registry.ts +0 -15
- package/src/dex/types.ts +0 -16
- package/src/errors/AgentError.ts +0 -43
- package/src/errors/HTTPError.ts +0 -72
- package/src/errors/PerpsSDKError.ts +0 -79
- package/src/errors/ServerError.ts +0 -41
- package/src/errors/ValidationError.ts +0 -38
- package/src/errors/utils/rootCause.ts +0 -112
- package/src/realtime/PerpsWsClient.ts +0 -73
- package/src/realtime/ReconnectingWebSocket.ts +0 -156
- package/src/realtime/hyperliquid/HyperliquidWsProvider.ts +0 -278
- package/src/realtime/hyperliquid/types.ts +0 -48
- package/src/realtime/types.ts +0 -16
- package/src/services/cancelOrder.ts +0 -75
- package/src/services/createAuthorization.ts +0 -79
- package/src/services/createOrder.ts +0 -116
- package/src/services/createWithdrawal.ts +0 -76
- package/src/services/getDexes.ts +0 -34
- package/src/services/getHistory.ts +0 -62
- package/src/services/submitAuthorization.ts +0 -70
- package/src/services/submitOrder.ts +0 -72
- package/src/services/submitWithdrawal.ts +0 -67
- package/src/utils/request.ts +0 -116
- /package/dist/cjs/{agent → storage}/storage.d.ts +0 -0
- /package/dist/cjs/{agent → storage}/storage.js +0 -0
- /package/dist/cjs/{agent → storage}/types.js +0 -0
- /package/dist/cjs/{client → websocket}/types.js +0 -0
- /package/dist/esm/{agent → storage}/types.js +0 -0
- /package/dist/esm/{client → websocket}/types.js +0 -0
|
@@ -0,0 +1,119 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Pure-function helpers for predicting how a perp position changes after a
|
|
3
|
+
* fill.
|
|
4
|
+
*
|
|
5
|
+
* Sign convention: long = +1, short = -1. Sizes passed to these helpers are
|
|
6
|
+
* always non-negative magnitudes; direction is carried by `isLong`.
|
|
7
|
+
*/
|
|
8
|
+
/**
|
|
9
|
+
* Direction sign for a position.
|
|
10
|
+
*
|
|
11
|
+
* @param isLong - True for long positions, false for short.
|
|
12
|
+
* @returns +1 for long, -1 for short.
|
|
13
|
+
* @public
|
|
14
|
+
*/
|
|
15
|
+
export function directionSign(isLong) {
|
|
16
|
+
return isLong ? 1 : -1;
|
|
17
|
+
}
|
|
18
|
+
/**
|
|
19
|
+
* Estimated liquidation price for an isolated-margin position, parameterised
|
|
20
|
+
* by the venue's maintenance margin rate.
|
|
21
|
+
*
|
|
22
|
+
* Standard isolated-margin model (new position, no existing exposure):
|
|
23
|
+
* margin_per_unit = entryPrice / leverage
|
|
24
|
+
* maintenance_per_unit = entryPrice * mmr
|
|
25
|
+
* margin_available = margin_per_unit - maintenance_per_unit
|
|
26
|
+
* liq_price = entryPrice - side * margin_available / (1 - mmr * side)
|
|
27
|
+
*
|
|
28
|
+
* For existing positions, prefer `Position.liquidationPrice` from the venue.
|
|
29
|
+
*
|
|
30
|
+
* @param maintenanceMarginRate - Venue maintenance margin rate as a fraction
|
|
31
|
+
* (e.g. 0.01 = 1%).
|
|
32
|
+
* @returns Estimated liquidation price, or undefined if the inputs cannot
|
|
33
|
+
* produce one (zero leverage, degenerate denominator).
|
|
34
|
+
* @public
|
|
35
|
+
*/
|
|
36
|
+
export function estimateIsolatedLiquidationPrice(params) {
|
|
37
|
+
const { entryPrice, leverage, isLong, maintenanceMarginRate } = params;
|
|
38
|
+
if (leverage === 0) {
|
|
39
|
+
return undefined;
|
|
40
|
+
}
|
|
41
|
+
const side = directionSign(isLong);
|
|
42
|
+
const denominator = 1 - maintenanceMarginRate * side;
|
|
43
|
+
if (denominator === 0) {
|
|
44
|
+
return undefined;
|
|
45
|
+
}
|
|
46
|
+
const marginAvailable = entryPrice * (1 / leverage - maintenanceMarginRate);
|
|
47
|
+
return entryPrice - (side * marginAvailable) / denominator;
|
|
48
|
+
}
|
|
49
|
+
/**
|
|
50
|
+
* Predicted average entry price after adding to an existing position.
|
|
51
|
+
*
|
|
52
|
+
* Weighted average of the current entry and the new fill price, weighted by
|
|
53
|
+
* the size of each leg in coin units. Both legs assumed in the same direction
|
|
54
|
+
* (this helper is for adding to, not flipping, a position).
|
|
55
|
+
*
|
|
56
|
+
* @param currentSize - Existing position size in coin units (>= 0).
|
|
57
|
+
* @param currentEntry - Existing position's average entry price.
|
|
58
|
+
* @param addSize - Size being added in coin units (>= 0).
|
|
59
|
+
* @param fillPrice - Price the new size is expected to fill at (mid for
|
|
60
|
+
* market, limitPrice for limit orders).
|
|
61
|
+
* @returns The new weighted-average entry price, or undefined if the inputs
|
|
62
|
+
* cannot produce a valid average (zero combined size, non-finite values).
|
|
63
|
+
* @public
|
|
64
|
+
*/
|
|
65
|
+
export function predictAverageEntryPrice(params) {
|
|
66
|
+
const { currentSize, currentEntry, addSize, fillPrice } = params;
|
|
67
|
+
const totalSize = currentSize + addSize;
|
|
68
|
+
if (totalSize <= 0) {
|
|
69
|
+
return undefined;
|
|
70
|
+
}
|
|
71
|
+
if (!Number.isFinite(currentEntry) || !Number.isFinite(fillPrice)) {
|
|
72
|
+
return undefined;
|
|
73
|
+
}
|
|
74
|
+
return (currentSize * currentEntry + addSize * fillPrice) / totalSize;
|
|
75
|
+
}
|
|
76
|
+
/**
|
|
77
|
+
* Predicted effective leverage after adding margin and notional.
|
|
78
|
+
*
|
|
79
|
+
* leverage = totalNotional / totalMargin. The caller computes notional from
|
|
80
|
+
* size and price (`calculateNotionalValue`) and supplies the additional
|
|
81
|
+
* margin the user is about to put up.
|
|
82
|
+
*
|
|
83
|
+
* @returns The new effective leverage, or undefined if total margin is
|
|
84
|
+
* non-positive.
|
|
85
|
+
* @public
|
|
86
|
+
*/
|
|
87
|
+
export function predictNewLeverage(params) {
|
|
88
|
+
const { currentNotional, currentMargin, addNotional, addMargin } = params;
|
|
89
|
+
const totalMargin = currentMargin + addMargin;
|
|
90
|
+
if (totalMargin <= 0) {
|
|
91
|
+
return undefined;
|
|
92
|
+
}
|
|
93
|
+
return (currentNotional + addNotional) / totalMargin;
|
|
94
|
+
}
|
|
95
|
+
/**
|
|
96
|
+
* Predicted unrealised PnL at the current mark price.
|
|
97
|
+
*
|
|
98
|
+
* `pnl = (markPrice - entryPrice) * size * directionSign(isLong)`
|
|
99
|
+
*
|
|
100
|
+
* @param size - Position size as a non-negative magnitude.
|
|
101
|
+
* @public
|
|
102
|
+
*/
|
|
103
|
+
export function predictUnrealizedPnl(params) {
|
|
104
|
+
const { entryPrice, markPrice, size, isLong } = params;
|
|
105
|
+
return (markPrice - entryPrice) * size * directionSign(isLong);
|
|
106
|
+
}
|
|
107
|
+
/**
|
|
108
|
+
* Realised PnL on the portion of a position being closed.
|
|
109
|
+
*
|
|
110
|
+
* `rPnl = (closePrice - entryPrice) * closeSize * directionSign(isLong)`
|
|
111
|
+
*
|
|
112
|
+
* @param closeSize - Size being closed as a non-negative magnitude.
|
|
113
|
+
* @public
|
|
114
|
+
*/
|
|
115
|
+
export function realizedPnlOnClose(params) {
|
|
116
|
+
const { entryPrice, closePrice, closeSize, isLong } = params;
|
|
117
|
+
return (closePrice - entryPrice) * closeSize * directionSign(isLong);
|
|
118
|
+
}
|
|
119
|
+
//# sourceMappingURL=positionMath.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"positionMath.js","sourceRoot":"","sources":["../../../src/utils/positionMath.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAEH;;;;;;GAMG;AACH,MAAM,UAAU,aAAa,CAAC,MAAe;IAC3C,OAAO,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAA;AACxB,CAAC;AAED;;;;;;;;;;;;;;;;;GAiBG;AACH,MAAM,UAAU,gCAAgC,CAAC,MAKhD;IACC,MAAM,EAAE,UAAU,EAAE,QAAQ,EAAE,MAAM,EAAE,qBAAqB,EAAE,GAAG,MAAM,CAAA;IACtE,IAAI,QAAQ,KAAK,CAAC,EAAE,CAAC;QACnB,OAAO,SAAS,CAAA;IAClB,CAAC;IACD,MAAM,IAAI,GAAG,aAAa,CAAC,MAAM,CAAC,CAAA;IAClC,MAAM,WAAW,GAAG,CAAC,GAAG,qBAAqB,GAAG,IAAI,CAAA;IACpD,IAAI,WAAW,KAAK,CAAC,EAAE,CAAC;QACtB,OAAO,SAAS,CAAA;IAClB,CAAC;IACD,MAAM,eAAe,GAAG,UAAU,GAAG,CAAC,CAAC,GAAG,QAAQ,GAAG,qBAAqB,CAAC,CAAA;IAC3E,OAAO,UAAU,GAAG,CAAC,IAAI,GAAG,eAAe,CAAC,GAAG,WAAW,CAAA;AAC5D,CAAC;AAED;;;;;;;;;;;;;;;GAeG;AACH,MAAM,UAAU,wBAAwB,CAAC,MAKxC;IACC,MAAM,EAAE,WAAW,EAAE,YAAY,EAAE,OAAO,EAAE,SAAS,EAAE,GAAG,MAAM,CAAA;IAChE,MAAM,SAAS,GAAG,WAAW,GAAG,OAAO,CAAA;IACvC,IAAI,SAAS,IAAI,CAAC,EAAE,CAAC;QACnB,OAAO,SAAS,CAAA;IAClB,CAAC;IACD,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,YAAY,CAAC,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,SAAS,CAAC,EAAE,CAAC;QAClE,OAAO,SAAS,CAAA;IAClB,CAAC;IACD,OAAO,CAAC,WAAW,GAAG,YAAY,GAAG,OAAO,GAAG,SAAS,CAAC,GAAG,SAAS,CAAA;AACvE,CAAC;AAED;;;;;;;;;;GAUG;AACH,MAAM,UAAU,kBAAkB,CAAC,MAKlC;IACC,MAAM,EAAE,eAAe,EAAE,aAAa,EAAE,WAAW,EAAE,SAAS,EAAE,GAAG,MAAM,CAAA;IACzE,MAAM,WAAW,GAAG,aAAa,GAAG,SAAS,CAAA;IAC7C,IAAI,WAAW,IAAI,CAAC,EAAE,CAAC;QACrB,OAAO,SAAS,CAAA;IAClB,CAAC;IACD,OAAO,CAAC,eAAe,GAAG,WAAW,CAAC,GAAG,WAAW,CAAA;AACtD,CAAC;AAED;;;;;;;GAOG;AACH,MAAM,UAAU,oBAAoB,CAAC,MAKpC;IACC,MAAM,EAAE,UAAU,EAAE,SAAS,EAAE,IAAI,EAAE,MAAM,EAAE,GAAG,MAAM,CAAA;IACtD,OAAO,CAAC,SAAS,GAAG,UAAU,CAAC,GAAG,IAAI,GAAG,aAAa,CAAC,MAAM,CAAC,CAAA;AAChE,CAAC;AAED;;;;;;;GAOG;AACH,MAAM,UAAU,kBAAkB,CAAC,MAKlC;IACC,MAAM,EAAE,UAAU,EAAE,UAAU,EAAE,SAAS,EAAE,MAAM,EAAE,GAAG,MAAM,CAAA;IAC5D,OAAO,CAAC,UAAU,GAAG,UAAU,CAAC,GAAG,SAAS,GAAG,aAAa,CAAC,MAAM,CAAC,CAAA;AACtE,CAAC"}
|
|
@@ -1,15 +1,18 @@
|
|
|
1
|
-
import type {
|
|
1
|
+
import type { PerpsTypedData } from '@lifi/perps-types';
|
|
2
|
+
import type { Account, Hex, WalletClient } from 'viem';
|
|
2
3
|
/**
|
|
3
|
-
* Sign EIP-712 typed data with a private key.
|
|
4
|
+
* Sign EIP-712 typed data with a raw private key (agent keypair).
|
|
4
5
|
*
|
|
5
|
-
* @
|
|
6
|
-
* @param typedData - The typed data to sign
|
|
7
|
-
* @returns The signature as a hex string
|
|
8
|
-
*
|
|
9
|
-
* @example
|
|
10
|
-
* ```ts
|
|
11
|
-
* const signature = await signTypedData(agentPrivateKey, typedData)
|
|
12
|
-
* ```
|
|
6
|
+
* @public
|
|
13
7
|
*/
|
|
14
8
|
export declare function signTypedData(privateKey: Hex, typedData: PerpsTypedData): Promise<Hex>;
|
|
9
|
+
/**
|
|
10
|
+
* Sign EIP-712 typed data with an externally-provided WalletClient. Works
|
|
11
|
+
* with browser wallets (wagmi), private keys, mnemonics — any viem
|
|
12
|
+
* WalletClient. Used by provider plugins to sign the EIP712 USER arm with the
|
|
13
|
+
* end-user's wallet.
|
|
14
|
+
*
|
|
15
|
+
* @public
|
|
16
|
+
*/
|
|
17
|
+
export declare function signTypedDataWithSigner(userWallet: WalletClient<any, any, Account>, typedData: PerpsTypedData): Promise<Hex>;
|
|
15
18
|
//# sourceMappingURL=signTypedData.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"signTypedData.d.ts","sourceRoot":"","sources":["../../../src/utils/signTypedData.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,GAAG,EAAE,
|
|
1
|
+
{"version":3,"file":"signTypedData.d.ts","sourceRoot":"","sources":["../../../src/utils/signTypedData.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,mBAAmB,CAAA;AACvD,OAAO,KAAK,EAAE,OAAO,EAAE,GAAG,EAAE,YAAY,EAAE,MAAM,MAAM,CAAA;AAGtD;;;;GAIG;AACH,wBAAsB,aAAa,CACjC,UAAU,EAAE,GAAG,EACf,SAAS,EAAE,cAAc,GACxB,OAAO,CAAC,GAAG,CAAC,CAOd;AAED;;;;;;;GAOG;AACH,wBAAsB,uBAAuB,CAC3C,UAAU,EAAE,YAAY,CAAC,GAAG,EAAE,GAAG,EAAE,OAAO,CAAC,EAC3C,SAAS,EAAE,cAAc,GACxB,OAAO,CAAC,GAAG,CAAC,CAQd"}
|
|
@@ -1,25 +1,32 @@
|
|
|
1
1
|
import { privateKeyToAccount } from 'viem/accounts';
|
|
2
2
|
/**
|
|
3
|
-
* Sign EIP-712 typed data with a private key.
|
|
3
|
+
* Sign EIP-712 typed data with a raw private key (agent keypair).
|
|
4
4
|
*
|
|
5
|
-
* @
|
|
6
|
-
* @param typedData - The typed data to sign
|
|
7
|
-
* @returns The signature as a hex string
|
|
8
|
-
*
|
|
9
|
-
* @example
|
|
10
|
-
* ```ts
|
|
11
|
-
* const signature = await signTypedData(agentPrivateKey, typedData)
|
|
12
|
-
* ```
|
|
5
|
+
* @public
|
|
13
6
|
*/
|
|
14
7
|
export async function signTypedData(privateKey, typedData) {
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
8
|
+
return privateKeyToAccount(privateKey).signTypedData({
|
|
9
|
+
domain: typedData.domain,
|
|
10
|
+
types: typedData.types,
|
|
11
|
+
primaryType: typedData.primaryType,
|
|
12
|
+
message: typedData.message,
|
|
13
|
+
});
|
|
14
|
+
}
|
|
15
|
+
/**
|
|
16
|
+
* Sign EIP-712 typed data with an externally-provided WalletClient. Works
|
|
17
|
+
* with browser wallets (wagmi), private keys, mnemonics — any viem
|
|
18
|
+
* WalletClient. Used by provider plugins to sign the EIP712 USER arm with the
|
|
19
|
+
* end-user's wallet.
|
|
20
|
+
*
|
|
21
|
+
* @public
|
|
22
|
+
*/
|
|
23
|
+
export async function signTypedDataWithSigner(userWallet, typedData) {
|
|
24
|
+
return userWallet.signTypedData({
|
|
25
|
+
account: userWallet.account,
|
|
18
26
|
domain: typedData.domain,
|
|
19
27
|
types: typedData.types,
|
|
20
28
|
primaryType: typedData.primaryType,
|
|
21
29
|
message: typedData.message,
|
|
22
30
|
});
|
|
23
|
-
return signature;
|
|
24
31
|
}
|
|
25
32
|
//# sourceMappingURL=signTypedData.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"signTypedData.js","sourceRoot":"","sources":["../../../src/utils/signTypedData.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"signTypedData.js","sourceRoot":"","sources":["../../../src/utils/signTypedData.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,mBAAmB,EAAE,MAAM,eAAe,CAAA;AAEnD;;;;GAIG;AACH,MAAM,CAAC,KAAK,UAAU,aAAa,CACjC,UAAe,EACf,SAAyB;IAEzB,OAAO,mBAAmB,CAAC,UAAU,CAAC,CAAC,aAAa,CAAC;QACnD,MAAM,EAAE,SAAS,CAAC,MAAM;QACxB,KAAK,EAAE,SAAS,CAAC,KAAK;QACtB,WAAW,EAAE,SAAS,CAAC,WAAW;QAClC,OAAO,EAAE,SAAS,CAAC,OAAO;KAC3B,CAAC,CAAA;AACJ,CAAC;AAED;;;;;;;GAOG;AACH,MAAM,CAAC,KAAK,UAAU,uBAAuB,CAC3C,UAA2C,EAC3C,SAAyB;IAEzB,OAAO,UAAU,CAAC,aAAa,CAAC;QAC9B,OAAO,EAAE,UAAU,CAAC,OAAO;QAC3B,MAAM,EAAE,SAAS,CAAC,MAAM;QACxB,KAAK,EAAE,SAAS,CAAC,KAAK;QACtB,WAAW,EAAE,SAAS,CAAC,WAAW;QAClC,OAAO,EAAE,SAAS,CAAC,OAAO;KAC3B,CAAC,CAAA;AACJ,CAAC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"sleep.d.ts","sourceRoot":"","sources":["../../../src/utils/sleep.ts"],"names":[],"mappings":"AAAA,eAAO,MAAM,KAAK,GAAI,IAAI,MAAM,KAAG,OAAO,CAAC,IAAI,CACI,CAAA"}
|
|
1
|
+
{"version":3,"file":"sleep.d.ts","sourceRoot":"","sources":["../../../src/utils/sleep.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AACH,eAAO,MAAM,KAAK,GAAI,IAAI,MAAM,KAAG,OAAO,CAAC,IAAI,CACI,CAAA"}
|
package/dist/esm/utils/sleep.js
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"sleep.js","sourceRoot":"","sources":["../../../src/utils/sleep.ts"],"names":[],"mappings":"AAAA,MAAM,CAAC,MAAM,KAAK,GAAG,CAAC,EAAU,EAAiB,EAAE,CACjD,IAAI,OAAO,CAAC,CAAC,OAAO,EAAE,EAAE,CAAC,UAAU,CAAC,OAAO,EAAE,EAAE,CAAC,CAAC,CAAA"}
|
|
1
|
+
{"version":3,"file":"sleep.js","sourceRoot":"","sources":["../../../src/utils/sleep.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AACH,MAAM,CAAC,MAAM,KAAK,GAAG,CAAC,EAAU,EAAiB,EAAE,CACjD,IAAI,OAAO,CAAC,CAAC,OAAO,EAAE,EAAE,CAAC,UAAU,CAAC,OAAO,EAAE,EAAE,CAAC,CAAC,CAAA"}
|
|
@@ -0,0 +1,27 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Token unit conversion utilities.
|
|
3
|
+
*/
|
|
4
|
+
/**
|
|
5
|
+
* Convert a base-unit amount (bigint string) to a human-readable decimal string.
|
|
6
|
+
*
|
|
7
|
+
* @param amount - Amount in base units (e.g. "1000000" for 1 USDC)
|
|
8
|
+
* @param decimals - Token decimals (e.g. 6 for USDC)
|
|
9
|
+
* @returns Decimal string (e.g. "1.0"); `"0"` when `amount` is not a valid
|
|
10
|
+
* bigint
|
|
11
|
+
* @example
|
|
12
|
+
* ```ts
|
|
13
|
+
* fromBaseUnits('1000000', 6) // '1'
|
|
14
|
+
* ```
|
|
15
|
+
* @public
|
|
16
|
+
*/
|
|
17
|
+
export declare function fromBaseUnits(amount: string, decimals: number): string;
|
|
18
|
+
/**
|
|
19
|
+
* Convert a base-unit amount to a number.
|
|
20
|
+
*
|
|
21
|
+
* @param amount - Amount in base units
|
|
22
|
+
* @param decimals - Token decimals
|
|
23
|
+
* @returns Numeric value, or 0 if parsing fails
|
|
24
|
+
* @public
|
|
25
|
+
*/
|
|
26
|
+
export declare function fromBaseUnitsNumber(amount: string, decimals: number): number;
|
|
27
|
+
//# sourceMappingURL=units.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"units.d.ts","sourceRoot":"","sources":["../../../src/utils/units.ts"],"names":[],"mappings":"AAAA;;GAEG;AAIH;;;;;;;;;;;;GAYG;AACH,wBAAgB,aAAa,CAAC,MAAM,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,GAAG,MAAM,CAMtE;AAED;;;;;;;GAOG;AACH,wBAAgB,mBAAmB,CAAC,MAAM,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,GAAG,MAAM,CAG5E"}
|
|
@@ -0,0 +1,38 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Token unit conversion utilities.
|
|
3
|
+
*/
|
|
4
|
+
import { formatUnits } from 'viem';
|
|
5
|
+
/**
|
|
6
|
+
* Convert a base-unit amount (bigint string) to a human-readable decimal string.
|
|
7
|
+
*
|
|
8
|
+
* @param amount - Amount in base units (e.g. "1000000" for 1 USDC)
|
|
9
|
+
* @param decimals - Token decimals (e.g. 6 for USDC)
|
|
10
|
+
* @returns Decimal string (e.g. "1.0"); `"0"` when `amount` is not a valid
|
|
11
|
+
* bigint
|
|
12
|
+
* @example
|
|
13
|
+
* ```ts
|
|
14
|
+
* fromBaseUnits('1000000', 6) // '1'
|
|
15
|
+
* ```
|
|
16
|
+
* @public
|
|
17
|
+
*/
|
|
18
|
+
export function fromBaseUnits(amount, decimals) {
|
|
19
|
+
try {
|
|
20
|
+
return formatUnits(BigInt(amount), decimals);
|
|
21
|
+
}
|
|
22
|
+
catch {
|
|
23
|
+
return '0';
|
|
24
|
+
}
|
|
25
|
+
}
|
|
26
|
+
/**
|
|
27
|
+
* Convert a base-unit amount to a number.
|
|
28
|
+
*
|
|
29
|
+
* @param amount - Amount in base units
|
|
30
|
+
* @param decimals - Token decimals
|
|
31
|
+
* @returns Numeric value, or 0 if parsing fails
|
|
32
|
+
* @public
|
|
33
|
+
*/
|
|
34
|
+
export function fromBaseUnitsNumber(amount, decimals) {
|
|
35
|
+
const value = Number(fromBaseUnits(amount, decimals));
|
|
36
|
+
return Number.isFinite(value) ? value : 0;
|
|
37
|
+
}
|
|
38
|
+
//# sourceMappingURL=units.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"units.js","sourceRoot":"","sources":["../../../src/utils/units.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,EAAE,WAAW,EAAE,MAAM,MAAM,CAAA;AAElC;;;;;;;;;;;;GAYG;AACH,MAAM,UAAU,aAAa,CAAC,MAAc,EAAE,QAAgB;IAC5D,IAAI,CAAC;QACH,OAAO,WAAW,CAAC,MAAM,CAAC,MAAM,CAAC,EAAE,QAAQ,CAAC,CAAA;IAC9C,CAAC;IAAC,MAAM,CAAC;QACP,OAAO,GAAG,CAAA;IACZ,CAAC;AACH,CAAC;AAED;;;;;;;GAOG;AACH,MAAM,UAAU,mBAAmB,CAAC,MAAc,EAAE,QAAgB;IAClE,MAAM,KAAK,GAAG,MAAM,CAAC,aAAa,CAAC,MAAM,EAAE,QAAQ,CAAC,CAAC,CAAA;IACrD,OAAO,MAAM,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAA;AAC3C,CAAC"}
|
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Order validation utilities.
|
|
3
|
+
*/
|
|
4
|
+
/**
|
|
5
|
+
* Validate margin input against available balance and exchange minimums.
|
|
6
|
+
*
|
|
7
|
+
* @param margin - Margin amount in USD
|
|
8
|
+
* @param _leverage - Position leverage (reserved for future use)
|
|
9
|
+
* @param availableBalance - Available balance, or null if unknown
|
|
10
|
+
* @param _feeRate - Fee rate as decimal, or null if unknown (reserved for future use)
|
|
11
|
+
* @param minMarginUsd - Minimum margin requirement in USD (exchange-specific).
|
|
12
|
+
* Source this from the selected provider's `minOrderValueUsd` metadata
|
|
13
|
+
* (see `@lifi/perps-types` `Provider`) rather than a client-side constant.
|
|
14
|
+
* @returns Error code: 'insufficient' | 'below-minimum' | '' (valid)
|
|
15
|
+
* @public
|
|
16
|
+
*/
|
|
17
|
+
export declare function validateMargin(margin: number, _leverage: number, availableBalance: number | null, _feeRate: number | null, minMarginUsd: number): string;
|
|
18
|
+
//# sourceMappingURL=validation.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"validation.d.ts","sourceRoot":"","sources":["../../../src/utils/validation.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH;;;;;;;;;;;;GAYG;AACH,wBAAgB,cAAc,CAC5B,MAAM,EAAE,MAAM,EACd,SAAS,EAAE,MAAM,EACjB,gBAAgB,EAAE,MAAM,GAAG,IAAI,EAC/B,QAAQ,EAAE,MAAM,GAAG,IAAI,EACvB,YAAY,EAAE,MAAM,GACnB,MAAM,CAcR"}
|
|
@@ -0,0 +1,29 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Order validation utilities.
|
|
3
|
+
*/
|
|
4
|
+
/**
|
|
5
|
+
* Validate margin input against available balance and exchange minimums.
|
|
6
|
+
*
|
|
7
|
+
* @param margin - Margin amount in USD
|
|
8
|
+
* @param _leverage - Position leverage (reserved for future use)
|
|
9
|
+
* @param availableBalance - Available balance, or null if unknown
|
|
10
|
+
* @param _feeRate - Fee rate as decimal, or null if unknown (reserved for future use)
|
|
11
|
+
* @param minMarginUsd - Minimum margin requirement in USD (exchange-specific).
|
|
12
|
+
* Source this from the selected provider's `minOrderValueUsd` metadata
|
|
13
|
+
* (see `@lifi/perps-types` `Provider`) rather than a client-side constant.
|
|
14
|
+
* @returns Error code: 'insufficient' | 'below-minimum' | '' (valid)
|
|
15
|
+
* @public
|
|
16
|
+
*/
|
|
17
|
+
export function validateMargin(margin, _leverage, availableBalance, _feeRate, minMarginUsd) {
|
|
18
|
+
if (margin <= 0) {
|
|
19
|
+
return '';
|
|
20
|
+
}
|
|
21
|
+
if (availableBalance !== null && margin > availableBalance) {
|
|
22
|
+
return 'insufficient';
|
|
23
|
+
}
|
|
24
|
+
if (margin < minMarginUsd) {
|
|
25
|
+
return 'below-minimum';
|
|
26
|
+
}
|
|
27
|
+
return '';
|
|
28
|
+
}
|
|
29
|
+
//# sourceMappingURL=validation.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"validation.js","sourceRoot":"","sources":["../../../src/utils/validation.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH;;;;;;;;;;;;GAYG;AACH,MAAM,UAAU,cAAc,CAC5B,MAAc,EACd,SAAiB,EACjB,gBAA+B,EAC/B,QAAuB,EACvB,YAAoB;IAEpB,IAAI,MAAM,IAAI,CAAC,EAAE,CAAC;QAChB,OAAO,EAAE,CAAA;IACX,CAAC;IAED,IAAI,gBAAgB,KAAK,IAAI,IAAI,MAAM,GAAG,gBAAgB,EAAE,CAAC;QAC3D,OAAO,cAAc,CAAA;IACvB,CAAC;IAED,IAAI,MAAM,GAAG,YAAY,EAAE,CAAC;QAC1B,OAAO,eAAe,CAAA;IACxB,CAAC;IAED,OAAO,EAAE,CAAA;AACX,CAAC"}
|
package/dist/esm/version.d.ts
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"version.d.ts","sourceRoot":"","sources":["../../src/version.ts"],"names":[],"mappings":"AAAA,eAAO,MAAM,IAAI,oBAAoB,CAAA;AACrC,eAAO,MAAM,OAAO,
|
|
1
|
+
{"version":3,"file":"version.d.ts","sourceRoot":"","sources":["../../src/version.ts"],"names":[],"mappings":"AAAA,eAAO,MAAM,IAAI,oBAAoB,CAAA;AACrC,eAAO,MAAM,OAAO,UAAU,CAAA"}
|
package/dist/esm/version.js
CHANGED
package/dist/esm/version.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"version.js","sourceRoot":"","sources":["../../src/version.ts"],"names":[],"mappings":"AAAA,MAAM,CAAC,MAAM,IAAI,GAAG,iBAAiB,CAAA;AACrC,MAAM,CAAC,MAAM,OAAO,GAAG,
|
|
1
|
+
{"version":3,"file":"version.js","sourceRoot":"","sources":["../../src/version.ts"],"names":[],"mappings":"AAAA,MAAM,CAAC,MAAM,IAAI,GAAG,iBAAiB,CAAA;AACrC,MAAM,CAAC,MAAM,OAAO,GAAG,OAAO,CAAA"}
|
|
@@ -0,0 +1,100 @@
|
|
|
1
|
+
import { type Subscription } from '@lifi/perps-types';
|
|
2
|
+
import type { GetQuoteParams } from '../services/getQuote.js';
|
|
3
|
+
import type { PerpsSDKClient, QuoteListener } from '../types/provider.js';
|
|
4
|
+
import type { EventForSubscription, WsProvider, WsStatusListener } from './types.js';
|
|
5
|
+
/**
|
|
6
|
+
* Factory for a per-provider WS plugin. Invoked once per provider key the
|
|
7
|
+
* first time `subscribe(...)` is called against it.
|
|
8
|
+
*
|
|
9
|
+
* @public
|
|
10
|
+
*/
|
|
11
|
+
export type WsProviderFactory = (params: {
|
|
12
|
+
/** Provider key (e.g. `'lighter'`, `'hyperliquid'`). */
|
|
13
|
+
provider: string;
|
|
14
|
+
/** WS URL discovered from `/providers`. */
|
|
15
|
+
wsUrl: string;
|
|
16
|
+
/**
|
|
17
|
+
* Markets visible to this provider via `/providers`, optionally filtered
|
|
18
|
+
* by the consumer's `createPerpsClient({ providers: { [key]: { markets } } })`
|
|
19
|
+
* config. Each provider interprets these its own way — Hyperliquid uses
|
|
20
|
+
* them to decide which sub-DEXes to subscribe to; Lighter ignores them.
|
|
21
|
+
*/
|
|
22
|
+
markets: string[];
|
|
23
|
+
/**
|
|
24
|
+
* The SDK client. WS providers use it to call core services (e.g.
|
|
25
|
+
* `getAssets` to source the wire-id ↔ display-symbol map) without
|
|
26
|
+
* duplicating backend orchestration in the WS layer.
|
|
27
|
+
*/
|
|
28
|
+
client: PerpsSDKClient;
|
|
29
|
+
}) => WsProvider;
|
|
30
|
+
/**
|
|
31
|
+
* Options for {@link PerpsWsClient}.
|
|
32
|
+
*
|
|
33
|
+
* @public
|
|
34
|
+
*/
|
|
35
|
+
export interface PerpsWsClientOptions {
|
|
36
|
+
/**
|
|
37
|
+
* Per-provider WS factory map. Each key (e.g. `'hyperliquid'`,
|
|
38
|
+
* `'lighter'`) maps to a factory that returns a `WsProvider`. Concrete
|
|
39
|
+
* implementations ship with the provider packages — e.g.
|
|
40
|
+
* `@lifi/perps-sdk-provider-hyperliquid` exports `HyperliquidWsProvider`,
|
|
41
|
+
* `@lifi/perps-sdk-provider-lighter` exports `LighterWsProvider`.
|
|
42
|
+
* Subscribing to a provider key without a registered factory throws.
|
|
43
|
+
*/
|
|
44
|
+
wsProviders?: Record<string, WsProviderFactory>;
|
|
45
|
+
}
|
|
46
|
+
/**
|
|
47
|
+
* Realtime client: lazily instantiates a per-provider {@link WsProvider} on
|
|
48
|
+
* first subscription and fans subscriptions out to it.
|
|
49
|
+
*
|
|
50
|
+
* @public
|
|
51
|
+
*/
|
|
52
|
+
export declare class PerpsWsClient {
|
|
53
|
+
private readonly client;
|
|
54
|
+
private readonly options;
|
|
55
|
+
private providers;
|
|
56
|
+
private initPromises;
|
|
57
|
+
constructor(client: PerpsSDKClient, options?: PerpsWsClientOptions);
|
|
58
|
+
/**
|
|
59
|
+
* Subscribe to a realtime channel, lazily creating the provider's WS
|
|
60
|
+
* connection. Returns an unsubscribe function.
|
|
61
|
+
*
|
|
62
|
+
* @param onStatus - Optional listener for the underlying connection's
|
|
63
|
+
* health. Fires `reconnecting` on a transient drop and the terminal
|
|
64
|
+
* `disconnected` once auto-reconnect is abandoned, so consumers can
|
|
65
|
+
* surface a reconnecting/disconnected state instead of silently showing
|
|
66
|
+
* stale data.
|
|
67
|
+
* @throws {PerpsError} When no WS provider factory is registered for the
|
|
68
|
+
* subscription's `dex`.
|
|
69
|
+
* @public
|
|
70
|
+
*/
|
|
71
|
+
subscribe<S extends Subscription>(sub: S, listener: (event: EventForSubscription<S>) => void, onStatus?: WsStatusListener): Promise<() => void>;
|
|
72
|
+
/**
|
|
73
|
+
* Stream live fill quotes for `params.symbol` on `params.provider`, lazily
|
|
74
|
+
* creating the provider's WS connection. The provider's WS plugin layers the
|
|
75
|
+
* quote on its orderbook channel, so a concurrent orderbook subscription on
|
|
76
|
+
* the same market shares one wire subscription. Returns an unsubscribe
|
|
77
|
+
* function.
|
|
78
|
+
*
|
|
79
|
+
* @throws {PerpsError} When no WS provider factory is registered for
|
|
80
|
+
* `params.provider`, or no market matches the symbol+type.
|
|
81
|
+
* @public
|
|
82
|
+
*/
|
|
83
|
+
subscribeQuote(params: GetQuoteParams, onQuote: QuoteListener): Promise<() => void>;
|
|
84
|
+
/**
|
|
85
|
+
* Close every open provider WS connection and drop all cached providers.
|
|
86
|
+
*
|
|
87
|
+
* @public
|
|
88
|
+
*/
|
|
89
|
+
close(): void;
|
|
90
|
+
/**
|
|
91
|
+
* Reconnect an already-created provider when its socket reached terminal
|
|
92
|
+
* `disconnected`. Safe no-op when the provider is unknown or not terminal.
|
|
93
|
+
*
|
|
94
|
+
* @public
|
|
95
|
+
*/
|
|
96
|
+
reconnect(provider: string): void;
|
|
97
|
+
private getOrCreateProvider;
|
|
98
|
+
private initProvider;
|
|
99
|
+
}
|
|
100
|
+
//# sourceMappingURL=PerpsWsClient.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"PerpsWsClient.d.ts","sourceRoot":"","sources":["../../../src/websocket/PerpsWsClient.ts"],"names":[],"mappings":"AAAA,OAAO,EAAkB,KAAK,YAAY,EAAE,MAAM,mBAAmB,CAAA;AAGrE,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,yBAAyB,CAAA;AAC7D,OAAO,KAAK,EAAE,cAAc,EAAE,aAAa,EAAE,MAAM,sBAAsB,CAAA;AAEzE,OAAO,KAAK,EACV,oBAAoB,EAEpB,UAAU,EACV,gBAAgB,EACjB,MAAM,YAAY,CAAA;AAEnB;;;;;GAKG;AACH,MAAM,MAAM,iBAAiB,GAAG,CAAC,MAAM,EAAE;IACvC,wDAAwD;IACxD,QAAQ,EAAE,MAAM,CAAA;IAChB,2CAA2C;IAC3C,KAAK,EAAE,MAAM,CAAA;IACb;;;;;OAKG;IACH,OAAO,EAAE,MAAM,EAAE,CAAA;IACjB;;;;OAIG;IACH,MAAM,EAAE,cAAc,CAAA;CACvB,KAAK,UAAU,CAAA;AAEhB;;;;GAIG;AACH,MAAM,WAAW,oBAAoB;IACnC;;;;;;;OAOG;IACH,WAAW,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,iBAAiB,CAAC,CAAA;CAChD;AAED;;;;;GAKG;AACH,qBAAa,aAAa;IACxB,OAAO,CAAC,QAAQ,CAAC,MAAM,CAAgB;IACvC,OAAO,CAAC,QAAQ,CAAC,OAAO,CAAsB;IAC9C,OAAO,CAAC,SAAS,CAAgC;IACjD,OAAO,CAAC,YAAY,CAAyC;gBAEjD,MAAM,EAAE,cAAc,EAAE,OAAO,GAAE,oBAAyB;IAKtE;;;;;;;;;;;;OAYG;IACG,SAAS,CAAC,CAAC,SAAS,YAAY,EACpC,GAAG,EAAE,CAAC,EACN,QAAQ,EAAE,CAAC,KAAK,EAAE,oBAAoB,CAAC,CAAC,CAAC,KAAK,IAAI,EAClD,QAAQ,CAAC,EAAE,gBAAgB,GAC1B,OAAO,CAAC,MAAM,IAAI,CAAC;IAOtB;;;;;;;;;;OAUG;IACG,cAAc,CAClB,MAAM,EAAE,cAAc,EACtB,OAAO,EAAE,aAAa,GACrB,OAAO,CAAC,MAAM,IAAI,CAAC;IAatB;;;;OAIG;IACH,KAAK;IAQL;;;;;OAKG;IACH,SAAS,CAAC,QAAQ,EAAE,MAAM,GAAG,IAAI;YAInB,mBAAmB;YAmBnB,YAAY;CAqC3B"}
|
|
@@ -0,0 +1,121 @@
|
|
|
1
|
+
import { PerpsErrorCode } from '@lifi/perps-types';
|
|
2
|
+
import { PerpsError } from '../errors/PerpsError.js';
|
|
3
|
+
import { getProviders } from '../services/getProviders.js';
|
|
4
|
+
import { cachePromise } from './cachePromise.js';
|
|
5
|
+
/**
|
|
6
|
+
* Realtime client: lazily instantiates a per-provider {@link WsProvider} on
|
|
7
|
+
* first subscription and fans subscriptions out to it.
|
|
8
|
+
*
|
|
9
|
+
* @public
|
|
10
|
+
*/
|
|
11
|
+
export class PerpsWsClient {
|
|
12
|
+
client;
|
|
13
|
+
options;
|
|
14
|
+
providers = new Map();
|
|
15
|
+
initPromises = new Map();
|
|
16
|
+
constructor(client, options = {}) {
|
|
17
|
+
this.client = client;
|
|
18
|
+
this.options = options;
|
|
19
|
+
}
|
|
20
|
+
/**
|
|
21
|
+
* Subscribe to a realtime channel, lazily creating the provider's WS
|
|
22
|
+
* connection. Returns an unsubscribe function.
|
|
23
|
+
*
|
|
24
|
+
* @param onStatus - Optional listener for the underlying connection's
|
|
25
|
+
* health. Fires `reconnecting` on a transient drop and the terminal
|
|
26
|
+
* `disconnected` once auto-reconnect is abandoned, so consumers can
|
|
27
|
+
* surface a reconnecting/disconnected state instead of silently showing
|
|
28
|
+
* stale data.
|
|
29
|
+
* @throws {PerpsError} When no WS provider factory is registered for the
|
|
30
|
+
* subscription's `dex`.
|
|
31
|
+
* @public
|
|
32
|
+
*/
|
|
33
|
+
async subscribe(sub, listener, onStatus) {
|
|
34
|
+
const providerKey = sub.dex;
|
|
35
|
+
const provider = await this.getOrCreateProvider(providerKey);
|
|
36
|
+
provider.reconnect();
|
|
37
|
+
return provider.subscribe(sub, listener, onStatus);
|
|
38
|
+
}
|
|
39
|
+
/**
|
|
40
|
+
* Stream live fill quotes for `params.symbol` on `params.provider`, lazily
|
|
41
|
+
* creating the provider's WS connection. The provider's WS plugin layers the
|
|
42
|
+
* quote on its orderbook channel, so a concurrent orderbook subscription on
|
|
43
|
+
* the same market shares one wire subscription. Returns an unsubscribe
|
|
44
|
+
* function.
|
|
45
|
+
*
|
|
46
|
+
* @throws {PerpsError} When no WS provider factory is registered for
|
|
47
|
+
* `params.provider`, or no market matches the symbol+type.
|
|
48
|
+
* @public
|
|
49
|
+
*/
|
|
50
|
+
async subscribeQuote(params, onQuote) {
|
|
51
|
+
const provider = await this.getOrCreateProvider(params.provider);
|
|
52
|
+
return provider.subscribeQuote({
|
|
53
|
+
symbol: params.symbol,
|
|
54
|
+
side: params.side,
|
|
55
|
+
size: params.size,
|
|
56
|
+
type: params.type,
|
|
57
|
+
}, onQuote);
|
|
58
|
+
}
|
|
59
|
+
/**
|
|
60
|
+
* Close every open provider WS connection and drop all cached providers.
|
|
61
|
+
*
|
|
62
|
+
* @public
|
|
63
|
+
*/
|
|
64
|
+
close() {
|
|
65
|
+
for (const p of this.providers.values()) {
|
|
66
|
+
p.close();
|
|
67
|
+
}
|
|
68
|
+
this.providers.clear();
|
|
69
|
+
this.initPromises.clear();
|
|
70
|
+
}
|
|
71
|
+
/**
|
|
72
|
+
* Reconnect an already-created provider when its socket reached terminal
|
|
73
|
+
* `disconnected`. Safe no-op when the provider is unknown or not terminal.
|
|
74
|
+
*
|
|
75
|
+
* @public
|
|
76
|
+
*/
|
|
77
|
+
reconnect(provider) {
|
|
78
|
+
this.providers.get(provider)?.reconnect();
|
|
79
|
+
}
|
|
80
|
+
async getOrCreateProvider(provider) {
|
|
81
|
+
const existing = this.providers.get(provider);
|
|
82
|
+
if (existing) {
|
|
83
|
+
return existing;
|
|
84
|
+
}
|
|
85
|
+
return cachePromise(() => this.initPromises.get(provider), (p) => {
|
|
86
|
+
if (p) {
|
|
87
|
+
this.initPromises.set(provider, p);
|
|
88
|
+
}
|
|
89
|
+
else {
|
|
90
|
+
this.initPromises.delete(provider);
|
|
91
|
+
}
|
|
92
|
+
}, () => this.initProvider(provider));
|
|
93
|
+
}
|
|
94
|
+
async initProvider(provider) {
|
|
95
|
+
const factory = this.options.wsProviders?.[provider];
|
|
96
|
+
if (factory === undefined) {
|
|
97
|
+
throw new PerpsError(PerpsErrorCode.SDKError, `No WS provider factory registered for '${provider}'. Pass one via ` +
|
|
98
|
+
'new PerpsWsClient(client, { wsProviders: { [key]: factory } }).');
|
|
99
|
+
}
|
|
100
|
+
const { providers } = await getProviders(this.client);
|
|
101
|
+
const providerInfo = providers.find((d) => d.key === provider);
|
|
102
|
+
if (!providerInfo?.wsUrl) {
|
|
103
|
+
throw new Error(`No WebSocket URL found for provider: ${provider}`);
|
|
104
|
+
}
|
|
105
|
+
const allMarkets = (providerInfo.categories ?? []);
|
|
106
|
+
const providerConfig = this.client.config.providers?.[provider];
|
|
107
|
+
const configuredMarkets = providerConfig?.markets;
|
|
108
|
+
const markets = (configuredMarkets
|
|
109
|
+
? allMarkets.filter((m) => configuredMarkets.includes(m.id))
|
|
110
|
+
: allMarkets).map((m) => m.id);
|
|
111
|
+
const wsProvider = factory({
|
|
112
|
+
provider,
|
|
113
|
+
wsUrl: providerInfo.wsUrl,
|
|
114
|
+
markets,
|
|
115
|
+
client: this.client,
|
|
116
|
+
});
|
|
117
|
+
this.providers.set(provider, wsProvider);
|
|
118
|
+
return wsProvider;
|
|
119
|
+
}
|
|
120
|
+
}
|
|
121
|
+
//# sourceMappingURL=PerpsWsClient.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"PerpsWsClient.js","sourceRoot":"","sources":["../../../src/websocket/PerpsWsClient.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,cAAc,EAAqB,MAAM,mBAAmB,CAAA;AACrE,OAAO,EAAE,UAAU,EAAE,MAAM,yBAAyB,CAAA;AACpD,OAAO,EAAE,YAAY,EAAE,MAAM,6BAA6B,CAAA;AAG1D,OAAO,EAAE,YAAY,EAAE,MAAM,mBAAmB,CAAA;AAmDhD;;;;;GAKG;AACH,MAAM,OAAO,aAAa;IACP,MAAM,CAAgB;IACtB,OAAO,CAAsB;IACtC,SAAS,GAAG,IAAI,GAAG,EAAsB,CAAA;IACzC,YAAY,GAAG,IAAI,GAAG,EAA+B,CAAA;IAE7D,YAAY,MAAsB,EAAE,UAAgC,EAAE;QACpE,IAAI,CAAC,MAAM,GAAG,MAAM,CAAA;QACpB,IAAI,CAAC,OAAO,GAAG,OAAO,CAAA;IACxB,CAAC;IAED;;;;;;;;;;;;OAYG;IACH,KAAK,CAAC,SAAS,CACb,GAAM,EACN,QAAkD,EAClD,QAA2B;QAE3B,MAAM,WAAW,GAAG,GAAG,CAAC,GAAG,CAAA;QAC3B,MAAM,QAAQ,GAAG,MAAM,IAAI,CAAC,mBAAmB,CAAC,WAAW,CAAC,CAAA;QAC5D,QAAQ,CAAC,SAAS,EAAE,CAAA;QACpB,OAAO,QAAQ,CAAC,SAAS,CAAC,GAAG,EAAE,QAAgC,EAAE,QAAQ,CAAC,CAAA;IAC5E,CAAC;IAED;;;;;;;;;;OAUG;IACH,KAAK,CAAC,cAAc,CAClB,MAAsB,EACtB,OAAsB;QAEtB,MAAM,QAAQ,GAAG,MAAM,IAAI,CAAC,mBAAmB,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAA;QAChE,OAAO,QAAQ,CAAC,cAAc,CAC5B;YACE,MAAM,EAAE,MAAM,CAAC,MAAM;YACrB,IAAI,EAAE,MAAM,CAAC,IAAI;YACjB,IAAI,EAAE,MAAM,CAAC,IAAI;YACjB,IAAI,EAAE,MAAM,CAAC,IAAI;SAClB,EACD,OAAO,CACR,CAAA;IACH,CAAC;IAED;;;;OAIG;IACH,KAAK;QACH,KAAK,MAAM,CAAC,IAAI,IAAI,CAAC,SAAS,CAAC,MAAM,EAAE,EAAE,CAAC;YACxC,CAAC,CAAC,KAAK,EAAE,CAAA;QACX,CAAC;QACD,IAAI,CAAC,SAAS,CAAC,KAAK,EAAE,CAAA;QACtB,IAAI,CAAC,YAAY,CAAC,KAAK,EAAE,CAAA;IAC3B,CAAC;IAED;;;;;OAKG;IACH,SAAS,CAAC,QAAgB;QACxB,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,QAAQ,CAAC,EAAE,SAAS,EAAE,CAAA;IAC3C,CAAC;IAEO,KAAK,CAAC,mBAAmB,CAAC,QAAgB;QAChD,MAAM,QAAQ,GAAG,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAA;QAC7C,IAAI,QAAQ,EAAE,CAAC;YACb,OAAO,QAAQ,CAAA;QACjB,CAAC;QAED,OAAO,YAAY,CACjB,GAAG,EAAE,CAAC,IAAI,CAAC,YAAY,CAAC,GAAG,CAAC,QAAQ,CAAC,EACrC,CAAC,CAAC,EAAE,EAAE;YACJ,IAAI,CAAC,EAAE,CAAC;gBACN,IAAI,CAAC,YAAY,CAAC,GAAG,CAAC,QAAQ,EAAE,CAAC,CAAC,CAAA;YACpC,CAAC;iBAAM,CAAC;gBACN,IAAI,CAAC,YAAY,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAA;YACpC,CAAC;QACH,CAAC,EACD,GAAG,EAAE,CAAC,IAAI,CAAC,YAAY,CAAC,QAAQ,CAAC,CAClC,CAAA;IACH,CAAC;IAEO,KAAK,CAAC,YAAY,CAAC,QAAgB;QACzC,MAAM,OAAO,GAAG,IAAI,CAAC,OAAO,CAAC,WAAW,EAAE,CAAC,QAAQ,CAAC,CAAA;QACpD,IAAI,OAAO,KAAK,SAAS,EAAE,CAAC;YAC1B,MAAM,IAAI,UAAU,CAClB,cAAc,CAAC,QAAQ,EACvB,0CAA0C,QAAQ,kBAAkB;gBAClE,iEAAiE,CACpE,CAAA;QACH,CAAC;QAED,MAAM,EAAE,SAAS,EAAE,GAAG,MAAM,YAAY,CAAC,IAAI,CAAC,MAAM,CAAC,CAAA;QAErD,MAAM,YAAY,GAAG,SAAS,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,GAAG,KAAK,QAAQ,CAAC,CAAA;QAC9D,IAAI,CAAC,YAAY,EAAE,KAAK,EAAE,CAAC;YACzB,MAAM,IAAI,KAAK,CAAC,wCAAwC,QAAQ,EAAE,CAAC,CAAA;QACrE,CAAC;QAED,MAAM,UAAU,GAAG,CAAC,YAAY,CAAC,UAAU,IAAI,EAAE,CAE/C,CAAA;QACF,MAAM,cAAc,GAAG,IAAI,CAAC,MAAM,CAAC,MAAM,CAAC,SAAS,EAAE,CAAC,QAAQ,CAAC,CAAA;QAC/D,MAAM,iBAAiB,GAAG,cAAc,EAAE,OAAO,CAAA;QACjD,MAAM,OAAO,GAAG,CACd,iBAAiB;YACf,CAAC,CAAC,UAAU,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,iBAAiB,CAAC,QAAQ,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC;YAC5D,CAAC,CAAC,UAAU,CACf,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,CAAA;QAElB,MAAM,UAAU,GAAG,OAAO,CAAC;YACzB,QAAQ;YACR,KAAK,EAAE,YAAY,CAAC,KAAK;YACzB,OAAO;YACP,MAAM,EAAE,IAAI,CAAC,MAAM;SACpB,CAAC,CAAA;QACF,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,QAAQ,EAAE,UAAU,CAAC,CAAA;QACxC,OAAO,UAAU,CAAA;IACnB,CAAC;CACF"}
|