@lifi/perps-sdk 0.2.0-alpha.0 → 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 +138 -24
- package/dist/cjs/client/PerpsClient.d.ts +27 -48
- package/dist/cjs/client/PerpsClient.d.ts.map +1 -1
- package/dist/cjs/client/PerpsClient.js +119 -578
- 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 -38
- package/dist/cjs/client/createPerpsClient.d.ts.map +1 -1
- package/dist/cjs/client/createPerpsClient.js +25 -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.map +1 -1
- package/dist/cjs/errors/PerpsError.js.map +1 -1
- package/dist/cjs/errors/constants.d.ts +2 -2
- package/dist/cjs/errors/constants.d.ts.map +1 -1
- package/dist/cjs/errors/constants.js +2 -2
- package/dist/cjs/errors/constants.js.map +1 -1
- package/dist/cjs/index.d.ts +41 -23
- package/dist/cjs/index.d.ts.map +1 -1
- package/dist/cjs/index.js +73 -41
- 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 +4 -2
- package/dist/cjs/services/createAction.d.ts.map +1 -1
- package/dist/cjs/services/createAction.js +1 -1
- package/dist/cjs/services/createAction.js.map +1 -1
- package/dist/cjs/services/executeAction.d.ts +4 -2
- package/dist/cjs/services/executeAction.d.ts.map +1 -1
- package/dist/cjs/services/executeAction.js +2 -1
- package/dist/cjs/services/executeAction.js.map +1 -1
- package/dist/cjs/services/getAccount.d.ts +4 -2
- 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 +4 -2
- package/dist/cjs/services/getActivity.d.ts.map +1 -1
- package/dist/cjs/services/getActivity.js +4 -10
- package/dist/cjs/services/getActivity.js.map +1 -1
- package/dist/cjs/services/getAssets.d.ts +2 -1
- package/dist/cjs/services/getAssets.d.ts.map +1 -1
- package/dist/cjs/services/getAssets.js +1 -1
- package/dist/cjs/services/getAssets.js.map +1 -1
- package/dist/cjs/services/getFills.d.ts +4 -2
- package/dist/cjs/services/getFills.d.ts.map +1 -1
- package/dist/cjs/services/getFills.js +3 -5
- package/dist/cjs/services/getFills.js.map +1 -1
- package/dist/cjs/services/getMarket.d.ts +9 -0
- package/dist/cjs/services/getMarket.d.ts.map +1 -0
- package/dist/cjs/services/getMarket.js +13 -0
- package/dist/cjs/services/getMarket.js.map +1 -0
- package/dist/cjs/services/getMarkets.d.ts +9 -0
- package/dist/cjs/services/getMarkets.d.ts.map +1 -0
- package/dist/cjs/services/{getAsset.js → getMarkets.js} +6 -5
- package/dist/cjs/services/getMarkets.js.map +1 -0
- 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 +3 -2
- package/dist/cjs/services/getOhlcv.d.ts.map +1 -1
- package/dist/cjs/services/getOhlcv.js +3 -2
- package/dist/cjs/services/getOhlcv.js.map +1 -1
- package/dist/cjs/services/getOrder.d.ts +4 -2
- 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 +3 -2
- package/dist/cjs/services/getOrderbook.d.ts.map +1 -1
- package/dist/cjs/services/getOrderbook.js +3 -2
- package/dist/cjs/services/getOrderbook.js.map +1 -1
- package/dist/cjs/services/getOrders.d.ts +5 -3
- package/dist/cjs/services/getOrders.d.ts.map +1 -1
- package/dist/cjs/services/getOrders.js +6 -8
- package/dist/cjs/services/getOrders.js.map +1 -1
- package/dist/cjs/services/getPositions.d.ts +5 -3
- package/dist/cjs/services/getPositions.d.ts.map +1 -1
- package/dist/cjs/services/getPositions.js +6 -8
- package/dist/cjs/services/getPositions.js.map +1 -1
- package/dist/cjs/services/getPrices.d.ts +3 -2
- package/dist/cjs/services/getPrices.d.ts.map +1 -1
- package/dist/cjs/services/getPrices.js +2 -2
- package/dist/cjs/services/getPrices.js.map +1 -1
- package/dist/cjs/services/getProviders.d.ts +2 -1
- package/dist/cjs/services/getProviders.d.ts.map +1 -1
- package/dist/cjs/services/getProviders.js +1 -1
- package/dist/cjs/services/getProviders.js.map +1 -1
- 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/{utils → transport}/request.js +14 -14
- 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/{realtime/lighter/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/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 +2 -8
- package/dist/cjs/utils/accountSummary.d.ts.map +1 -1
- package/dist/cjs/utils/accountSummary.js +12 -70
- package/dist/cjs/utils/accountSummary.js.map +1 -1
- package/dist/cjs/utils/assertNever.d.ts.map +1 -1
- package/dist/cjs/utils/assertNever.js.map +1 -1
- package/dist/cjs/utils/calculations.d.ts +36 -0
- package/dist/cjs/utils/calculations.d.ts.map +1 -1
- package/dist/cjs/utils/calculations.js +77 -0
- package/dist/cjs/utils/calculations.js.map +1 -1
- 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 +3 -1
- package/dist/cjs/utils/orderClassification.d.ts.map +1 -1
- package/dist/cjs/utils/orderClassification.js +11 -1
- package/dist/cjs/utils/orderClassification.js.map +1 -1
- package/dist/cjs/utils/orderMath.d.ts +1 -1
- package/dist/cjs/utils/orderMath.d.ts.map +1 -1
- package/dist/cjs/utils/orderMath.js +2 -2
- package/dist/cjs/utils/orderMath.js.map +1 -1
- package/dist/cjs/utils/parse.d.ts.map +1 -1
- package/dist/cjs/utils/parse.js.map +1 -1
- package/dist/cjs/utils/positionMath.d.ts +6 -0
- package/dist/cjs/utils/positionMath.d.ts.map +1 -1
- package/dist/cjs/utils/positionMath.js +14 -0
- package/dist/cjs/utils/positionMath.js.map +1 -1
- package/dist/cjs/utils/signTypedData.d.ts +3 -3
- package/dist/cjs/utils/signTypedData.d.ts.map +1 -1
- package/dist/cjs/utils/signTypedData.js +3 -2
- 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.map +1 -1
- package/dist/cjs/utils/units.js.map +1 -1
- package/dist/cjs/utils/validation.d.ts.map +1 -1
- package/dist/cjs/utils/validation.js.map +1 -1
- 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/{types/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/{realtime → 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 +200 -195
- package/dist/esm/client/PerpsClient.d.ts.map +1 -1
- package/dist/esm/client/PerpsClient.js +305 -794
- 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 +34 -53
- package/dist/esm/client/createPerpsClient.d.ts.map +1 -1
- package/dist/esm/client/createPerpsClient.js +51 -8
- 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 +8 -0
- package/dist/esm/errors/PerpsError.d.ts.map +1 -1
- package/dist/esm/errors/PerpsError.js +8 -0
- package/dist/esm/errors/PerpsError.js.map +1 -1
- package/dist/esm/errors/constants.d.ts +8 -2
- package/dist/esm/errors/constants.d.ts.map +1 -1
- package/dist/esm/errors/constants.js +8 -2
- package/dist/esm/errors/constants.js.map +1 -1
- package/dist/esm/index.d.ts +49 -23
- package/dist/esm/index.d.ts.map +1 -1
- package/dist/esm/index.js +38 -23
- 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 +17 -2
- package/dist/esm/services/createAction.d.ts.map +1 -1
- package/dist/esm/services/createAction.js +9 -1
- package/dist/esm/services/createAction.js.map +1 -1
- package/dist/esm/services/executeAction.d.ts +17 -2
- package/dist/esm/services/executeAction.d.ts.map +1 -1
- package/dist/esm/services/executeAction.js +13 -1
- package/dist/esm/services/executeAction.js.map +1 -1
- package/dist/esm/services/getAccount.d.ts +19 -16
- package/dist/esm/services/getAccount.d.ts.map +1 -1
- package/dist/esm/services/getAccount.js +12 -18
- package/dist/esm/services/getAccount.js.map +1 -1
- package/dist/esm/services/getActivity.d.ts +15 -25
- package/dist/esm/services/getActivity.d.ts.map +1 -1
- package/dist/esm/services/getActivity.js +10 -28
- package/dist/esm/services/getActivity.js.map +1 -1
- package/dist/esm/services/getAssets.d.ts +14 -5
- package/dist/esm/services/getAssets.d.ts.map +1 -1
- package/dist/esm/services/getAssets.js +8 -4
- package/dist/esm/services/getAssets.js.map +1 -1
- package/dist/esm/services/getFills.d.ts +18 -29
- package/dist/esm/services/getFills.d.ts.map +1 -1
- package/dist/esm/services/getFills.js +10 -26
- package/dist/esm/services/getFills.js.map +1 -1
- package/dist/esm/services/getMarket.d.ts +34 -0
- package/dist/esm/services/getMarket.d.ts.map +1 -0
- package/dist/esm/services/getMarket.js +25 -0
- package/dist/esm/services/getMarket.js.map +1 -0
- package/dist/esm/services/getMarkets.d.ts +28 -0
- package/dist/esm/services/getMarkets.d.ts.map +1 -0
- package/dist/esm/services/getMarkets.js +22 -0
- package/dist/esm/services/getMarkets.js.map +1 -0
- 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 +15 -19
- package/dist/esm/services/getOhlcv.d.ts.map +1 -1
- package/dist/esm/services/getOhlcv.js +7 -13
- package/dist/esm/services/getOhlcv.js.map +1 -1
- package/dist/esm/services/getOrder.d.ts +16 -16
- package/dist/esm/services/getOrder.d.ts.map +1 -1
- package/dist/esm/services/getOrder.js +9 -17
- package/dist/esm/services/getOrder.js.map +1 -1
- package/dist/esm/services/getOrderbook.d.ts +13 -23
- package/dist/esm/services/getOrderbook.d.ts.map +1 -1
- package/dist/esm/services/getOrderbook.js +7 -21
- package/dist/esm/services/getOrderbook.js.map +1 -1
- package/dist/esm/services/getOrders.d.ts +17 -9
- package/dist/esm/services/getOrders.d.ts.map +1 -1
- package/dist/esm/services/getOrders.js +12 -9
- package/dist/esm/services/getOrders.js.map +1 -1
- package/dist/esm/services/getPositions.d.ts +17 -9
- package/dist/esm/services/getPositions.d.ts.map +1 -1
- package/dist/esm/services/getPositions.js +12 -9
- package/dist/esm/services/getPositions.js.map +1 -1
- package/dist/esm/services/getPrices.d.ts +12 -24
- package/dist/esm/services/getPrices.d.ts.map +1 -1
- package/dist/esm/services/getPrices.js +5 -22
- package/dist/esm/services/getPrices.js.map +1 -1
- package/dist/esm/services/getProviders.d.ts +3 -3
- package/dist/esm/services/getProviders.d.ts.map +1 -1
- package/dist/esm/services/getProviders.js +2 -3
- package/dist/esm/services/getProviders.js.map +1 -1
- 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/esm/{agent → 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/{utils → transport}/request.js +19 -31
- 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 +12 -12
- package/dist/esm/utils/accountSummary.d.ts.map +1 -1
- package/dist/esm/utils/accountSummary.js +18 -83
- package/dist/esm/utils/accountSummary.js.map +1 -1
- package/dist/esm/utils/assertNever.d.ts +1 -0
- package/dist/esm/utils/assertNever.d.ts.map +1 -1
- package/dist/esm/utils/assertNever.js +1 -0
- package/dist/esm/utils/assertNever.js.map +1 -1
- package/dist/esm/utils/calculations.d.ts +116 -0
- package/dist/esm/utils/calculations.d.ts.map +1 -1
- package/dist/esm/utils/calculations.js +140 -3
- package/dist/esm/utils/calculations.js.map +1 -1
- 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 +19 -1
- package/dist/esm/utils/orderClassification.d.ts.map +1 -1
- package/dist/esm/utils/orderClassification.js +26 -1
- package/dist/esm/utils/orderClassification.js.map +1 -1
- package/dist/esm/utils/orderMath.d.ts +8 -4
- package/dist/esm/utils/orderMath.d.ts.map +1 -1
- package/dist/esm/utils/orderMath.js +9 -5
- package/dist/esm/utils/orderMath.js.map +1 -1
- package/dist/esm/utils/parse.d.ts +8 -5
- package/dist/esm/utils/parse.d.ts.map +1 -1
- package/dist/esm/utils/parse.js +8 -6
- package/dist/esm/utils/parse.js.map +1 -1
- package/dist/esm/utils/positionMath.d.ts +29 -0
- package/dist/esm/utils/positionMath.d.ts.map +1 -1
- package/dist/esm/utils/positionMath.js +36 -0
- package/dist/esm/utils/positionMath.js.map +1 -1
- package/dist/esm/utils/signTypedData.d.ts +9 -4
- package/dist/esm/utils/signTypedData.d.ts.map +1 -1
- package/dist/esm/utils/signTypedData.js +9 -3
- 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 +8 -1
- package/dist/esm/utils/units.d.ts.map +1 -1
- package/dist/esm/utils/units.js +8 -1
- package/dist/esm/utils/units.js.map +1 -1
- package/dist/esm/utils/validation.d.ts +4 -1
- package/dist/esm/utils/validation.d.ts.map +1 -1
- package/dist/esm/utils/validation.js +4 -1
- package/dist/esm/utils/validation.js.map +1 -1
- 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/esm/{realtime → 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 +200 -195
- 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 +34 -53
- 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 +8 -0
- package/dist/types/errors/PerpsError.d.ts.map +1 -1
- package/dist/types/errors/constants.d.ts +8 -2
- package/dist/types/errors/constants.d.ts.map +1 -1
- package/dist/types/index.d.ts +49 -23
- 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 +17 -2
- package/dist/types/services/createAction.d.ts.map +1 -1
- package/dist/types/services/executeAction.d.ts +17 -2
- package/dist/types/services/executeAction.d.ts.map +1 -1
- package/dist/types/services/getAccount.d.ts +19 -16
- package/dist/types/services/getAccount.d.ts.map +1 -1
- package/dist/types/services/getActivity.d.ts +15 -25
- package/dist/types/services/getActivity.d.ts.map +1 -1
- package/dist/types/services/getAssets.d.ts +14 -5
- package/dist/types/services/getAssets.d.ts.map +1 -1
- package/dist/types/services/getFills.d.ts +18 -29
- package/dist/types/services/getFills.d.ts.map +1 -1
- package/dist/types/services/getMarket.d.ts +34 -0
- package/dist/types/services/getMarket.d.ts.map +1 -0
- package/dist/types/services/getMarkets.d.ts +28 -0
- package/dist/types/services/getMarkets.d.ts.map +1 -0
- 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 +15 -19
- package/dist/types/services/getOhlcv.d.ts.map +1 -1
- package/dist/types/services/getOrder.d.ts +16 -16
- package/dist/types/services/getOrder.d.ts.map +1 -1
- package/dist/types/services/getOrderbook.d.ts +13 -23
- package/dist/types/services/getOrderbook.d.ts.map +1 -1
- package/dist/types/services/getOrders.d.ts +17 -9
- package/dist/types/services/getOrders.d.ts.map +1 -1
- package/dist/types/services/getPositions.d.ts +17 -9
- package/dist/types/services/getPositions.d.ts.map +1 -1
- package/dist/types/services/getPrices.d.ts +12 -24
- package/dist/types/services/getPrices.d.ts.map +1 -1
- package/dist/types/services/getProviders.d.ts +3 -3
- package/dist/types/services/getProviders.d.ts.map +1 -1
- 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 +12 -12
- package/dist/types/utils/accountSummary.d.ts.map +1 -1
- package/dist/types/utils/assertNever.d.ts +1 -0
- package/dist/types/utils/assertNever.d.ts.map +1 -1
- package/dist/types/utils/calculations.d.ts +116 -0
- package/dist/types/utils/calculations.d.ts.map +1 -1
- 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 +19 -1
- package/dist/types/utils/orderClassification.d.ts.map +1 -1
- package/dist/types/utils/orderMath.d.ts +8 -4
- package/dist/types/utils/orderMath.d.ts.map +1 -1
- package/dist/types/utils/parse.d.ts +8 -5
- package/dist/types/utils/parse.d.ts.map +1 -1
- package/dist/types/utils/positionMath.d.ts +29 -0
- package/dist/types/utils/positionMath.d.ts.map +1 -1
- package/dist/types/utils/signTypedData.d.ts +9 -4
- 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 +8 -1
- package/dist/types/utils/units.d.ts.map +1 -1
- package/dist/types/utils/validation.d.ts +4 -1
- package/dist/types/utils/validation.d.ts.map +1 -1
- 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 +13 -60
- package/src/client/PerpsClient.ts +404 -1115
- package/src/client/bindProvider.ts +24 -0
- package/src/client/createPerpsClient.ts +68 -72
- package/src/client/requireProvider.ts +29 -0
- package/src/errors/PerpsError.ts +8 -0
- package/src/errors/constants.ts +8 -2
- package/src/index.ts +138 -82
- 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 +17 -6
- package/src/services/executeAction.ts +21 -6
- package/src/services/getAccount.ts +24 -25
- package/src/services/getActivity.ts +27 -47
- package/src/services/getAssets.ts +15 -9
- package/src/services/getFills.ts +29 -42
- package/src/services/getMarket.ts +52 -0
- package/src/services/getMarkets.ts +40 -0
- package/src/services/getMeta.ts +30 -0
- package/src/services/getOhlcv.ts +24 -33
- package/src/services/getOrder.ts +20 -27
- package/src/services/getOrderbook.ts +19 -34
- package/src/services/getOrders.ts +27 -21
- package/src/services/getPositions.ts +27 -21
- package/src/services/getPrices.ts +14 -29
- package/src/services/getProviders.ts +4 -7
- 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/{utils → transport}/request.ts +33 -45
- 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 +25 -109
- package/src/utils/assertNever.ts +1 -0
- package/src/utils/calculations.ts +204 -7
- 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 +33 -1
- package/src/utils/orderMath.ts +9 -5
- package/src/utils/parse.ts +8 -7
- package/src/utils/positionMath.ts +42 -0
- package/src/utils/signTypedData.ts +11 -5
- package/src/utils/sleep.ts +5 -0
- package/src/utils/units.ts +8 -1
- package/src/utils/validation.ts +4 -1
- 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 -82
- 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/projectAccountConfigSettings.d.ts +0 -3
- package/dist/cjs/client/projectAccountConfigSettings.d.ts.map +0 -1
- package/dist/cjs/client/projectAccountConfigSettings.js +0 -17
- package/dist/cjs/client/projectAccountConfigSettings.js.map +0 -1
- package/dist/cjs/client/types.d.ts +0 -85
- package/dist/cjs/client/types.d.ts.map +0 -1
- package/dist/cjs/client/types.js +0 -9
- package/dist/cjs/client/types.js.map +0 -1
- package/dist/cjs/providers/hyperliquid/accountConfig.d.ts +0 -3
- package/dist/cjs/providers/hyperliquid/accountConfig.d.ts.map +0 -1
- package/dist/cjs/providers/hyperliquid/accountConfig.js +0 -41
- package/dist/cjs/providers/hyperliquid/accountConfig.js.map +0 -1
- package/dist/cjs/providers/lighter/accountConfig.d.ts +0 -3
- package/dist/cjs/providers/lighter/accountConfig.d.ts.map +0 -1
- package/dist/cjs/providers/lighter/accountConfig.js +0 -45
- package/dist/cjs/providers/lighter/accountConfig.js.map +0 -1
- package/dist/cjs/realtime/PerpsWsClient.d.ts +0 -20
- package/dist/cjs/realtime/PerpsWsClient.d.ts.map +0 -1
- package/dist/cjs/realtime/PerpsWsClient.js +0 -69
- 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 -30
- package/dist/cjs/realtime/hyperliquid/HyperliquidWsProvider.d.ts.map +0 -1
- package/dist/cjs/realtime/hyperliquid/HyperliquidWsProvider.js +0 -331
- package/dist/cjs/realtime/hyperliquid/HyperliquidWsProvider.js.map +0 -1
- package/dist/cjs/realtime/hyperliquid/types.d.ts +0 -37
- 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/lighter/LighterWsProvider.d.ts +0 -48
- package/dist/cjs/realtime/lighter/LighterWsProvider.d.ts.map +0 -1
- package/dist/cjs/realtime/lighter/LighterWsProvider.js +0 -424
- package/dist/cjs/realtime/lighter/LighterWsProvider.js.map +0 -1
- package/dist/cjs/realtime/lighter/types.d.ts +0 -84
- package/dist/cjs/realtime/lighter/types.d.ts.map +0 -1
- package/dist/cjs/realtime/lighter/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/services/getAsset.d.ts +0 -8
- package/dist/cjs/services/getAsset.d.ts.map +0 -1
- package/dist/cjs/services/getAsset.js.map +0 -1
- package/dist/cjs/signers/lighter/LighterKeyStore.d.ts +0 -20
- package/dist/cjs/signers/lighter/LighterKeyStore.d.ts.map +0 -1
- package/dist/cjs/signers/lighter/LighterKeyStore.js +0 -42
- package/dist/cjs/signers/lighter/LighterKeyStore.js.map +0 -1
- package/dist/cjs/signers/lighter/LighterReadOnlyTokenManager.d.ts +0 -66
- package/dist/cjs/signers/lighter/LighterReadOnlyTokenManager.d.ts.map +0 -1
- package/dist/cjs/signers/lighter/LighterReadOnlyTokenManager.js +0 -141
- package/dist/cjs/signers/lighter/LighterReadOnlyTokenManager.js.map +0 -1
- package/dist/cjs/signers/lighter/LighterSigner.d.ts +0 -41
- package/dist/cjs/signers/lighter/LighterSigner.d.ts.map +0 -1
- package/dist/cjs/signers/lighter/LighterSigner.js +0 -176
- package/dist/cjs/signers/lighter/LighterSigner.js.map +0 -1
- package/dist/cjs/signers/lighter/index.d.ts +0 -9
- package/dist/cjs/signers/lighter/index.d.ts.map +0 -1
- package/dist/cjs/signers/lighter/index.js +0 -20
- package/dist/cjs/signers/lighter/index.js.map +0 -1
- package/dist/cjs/signers/lighter/wasmLoader.d.ts +0 -42
- package/dist/cjs/signers/lighter/wasmLoader.d.ts.map +0 -1
- package/dist/cjs/signers/lighter/wasmLoader.js +0 -166
- package/dist/cjs/signers/lighter/wasmLoader.js.map +0 -1
- package/dist/cjs/utils/hyperliquid/index.d.ts +0 -3
- package/dist/cjs/utils/hyperliquid/index.d.ts.map +0 -1
- package/dist/cjs/utils/hyperliquid/index.js +0 -11
- package/dist/cjs/utils/hyperliquid/index.js.map +0 -1
- package/dist/cjs/utils/hyperliquid/liquidation.d.ts +0 -3
- package/dist/cjs/utils/hyperliquid/liquidation.d.ts.map +0 -1
- package/dist/cjs/utils/hyperliquid/liquidation.js +0 -24
- package/dist/cjs/utils/hyperliquid/liquidation.js.map +0 -1
- package/dist/cjs/utils/hyperliquid/orderFormatting.d.ts +0 -4
- package/dist/cjs/utils/hyperliquid/orderFormatting.d.ts.map +0 -1
- package/dist/cjs/utils/hyperliquid/orderFormatting.js +0 -33
- package/dist/cjs/utils/hyperliquid/orderFormatting.js.map +0 -1
- package/dist/cjs/utils/request.d.ts.map +0 -1
- package/dist/cjs/utils/request.js.map +0 -1
- package/dist/cjs/wasm/lighter-signer.wasm +0 -0
- package/dist/cjs/wasm/wasm_exec.js +0 -575
- 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 -112
- 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/client/projectAccountConfigSettings.d.ts +0 -18
- package/dist/esm/client/projectAccountConfigSettings.d.ts.map +0 -1
- package/dist/esm/client/projectAccountConfigSettings.js +0 -29
- package/dist/esm/client/projectAccountConfigSettings.js.map +0 -1
- package/dist/esm/client/types.d.ts +0 -200
- package/dist/esm/client/types.d.ts.map +0 -1
- package/dist/esm/client/types.js +0 -12
- package/dist/esm/client/types.js.map +0 -1
- package/dist/esm/providers/hyperliquid/accountConfig.d.ts +0 -13
- package/dist/esm/providers/hyperliquid/accountConfig.d.ts.map +0 -1
- package/dist/esm/providers/hyperliquid/accountConfig.js +0 -69
- package/dist/esm/providers/hyperliquid/accountConfig.js.map +0 -1
- package/dist/esm/providers/lighter/accountConfig.d.ts +0 -13
- package/dist/esm/providers/lighter/accountConfig.d.ts.map +0 -1
- package/dist/esm/providers/lighter/accountConfig.js +0 -79
- package/dist/esm/providers/lighter/accountConfig.js.map +0 -1
- package/dist/esm/realtime/PerpsWsClient.d.ts +0 -26
- package/dist/esm/realtime/PerpsWsClient.d.ts.map +0 -1
- package/dist/esm/realtime/PerpsWsClient.js +0 -65
- package/dist/esm/realtime/PerpsWsClient.js.map +0 -1
- package/dist/esm/realtime/ReconnectingWebSocket.d.ts +0 -36
- 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 -32
- package/dist/esm/realtime/hyperliquid/HyperliquidWsProvider.d.ts.map +0 -1
- package/dist/esm/realtime/hyperliquid/HyperliquidWsProvider.js +0 -339
- package/dist/esm/realtime/hyperliquid/HyperliquidWsProvider.js.map +0 -1
- package/dist/esm/realtime/hyperliquid/types.d.ts +0 -37
- 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/lighter/LighterWsProvider.d.ts +0 -68
- package/dist/esm/realtime/lighter/LighterWsProvider.d.ts.map +0 -1
- package/dist/esm/realtime/lighter/LighterWsProvider.js +0 -474
- package/dist/esm/realtime/lighter/LighterWsProvider.js.map +0 -1
- package/dist/esm/realtime/lighter/types.d.ts +0 -108
- package/dist/esm/realtime/lighter/types.d.ts.map +0 -1
- package/dist/esm/realtime/lighter/types.js +0 -14
- package/dist/esm/realtime/lighter/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/services/getAsset.d.ts +0 -20
- package/dist/esm/services/getAsset.d.ts.map +0 -1
- package/dist/esm/services/getAsset.js +0 -18
- package/dist/esm/services/getAsset.js.map +0 -1
- package/dist/esm/signers/lighter/LighterKeyStore.d.ts +0 -29
- package/dist/esm/signers/lighter/LighterKeyStore.d.ts.map +0 -1
- package/dist/esm/signers/lighter/LighterKeyStore.js +0 -53
- package/dist/esm/signers/lighter/LighterKeyStore.js.map +0 -1
- package/dist/esm/signers/lighter/LighterReadOnlyTokenManager.d.ts +0 -174
- package/dist/esm/signers/lighter/LighterReadOnlyTokenManager.d.ts.map +0 -1
- package/dist/esm/signers/lighter/LighterReadOnlyTokenManager.js +0 -214
- package/dist/esm/signers/lighter/LighterReadOnlyTokenManager.js.map +0 -1
- package/dist/esm/signers/lighter/LighterSigner.d.ts +0 -88
- package/dist/esm/signers/lighter/LighterSigner.d.ts.map +0 -1
- package/dist/esm/signers/lighter/LighterSigner.js +0 -226
- package/dist/esm/signers/lighter/LighterSigner.js.map +0 -1
- package/dist/esm/signers/lighter/index.d.ts +0 -9
- package/dist/esm/signers/lighter/index.d.ts.map +0 -1
- package/dist/esm/signers/lighter/index.js +0 -5
- package/dist/esm/signers/lighter/index.js.map +0 -1
- package/dist/esm/signers/lighter/wasmLoader.d.ts +0 -71
- package/dist/esm/signers/lighter/wasmLoader.d.ts.map +0 -1
- package/dist/esm/signers/lighter/wasmLoader.js +0 -181
- package/dist/esm/signers/lighter/wasmLoader.js.map +0 -1
- package/dist/esm/utils/hyperliquid/index.d.ts +0 -3
- package/dist/esm/utils/hyperliquid/index.d.ts.map +0 -1
- package/dist/esm/utils/hyperliquid/index.js +0 -3
- package/dist/esm/utils/hyperliquid/index.js.map +0 -1
- package/dist/esm/utils/hyperliquid/liquidation.d.ts +0 -46
- package/dist/esm/utils/hyperliquid/liquidation.d.ts.map +0 -1
- package/dist/esm/utils/hyperliquid/liquidation.js +0 -63
- package/dist/esm/utils/hyperliquid/liquidation.js.map +0 -1
- package/dist/esm/utils/hyperliquid/orderFormatting.d.ts +0 -44
- package/dist/esm/utils/hyperliquid/orderFormatting.d.ts.map +0 -1
- package/dist/esm/utils/hyperliquid/orderFormatting.js +0 -79
- package/dist/esm/utils/hyperliquid/orderFormatting.js.map +0 -1
- package/dist/esm/utils/request.d.ts +0 -25
- package/dist/esm/utils/request.d.ts.map +0 -1
- package/dist/esm/utils/request.js.map +0 -1
- package/dist/esm/wasm/lighter-signer.wasm +0 -0
- package/dist/esm/wasm/wasm_exec.js +0 -575
- 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/projectAccountConfigSettings.d.ts +0 -18
- package/dist/types/client/projectAccountConfigSettings.d.ts.map +0 -1
- package/dist/types/client/types.d.ts +0 -200
- package/dist/types/client/types.d.ts.map +0 -1
- package/dist/types/providers/hyperliquid/accountConfig.d.ts +0 -13
- package/dist/types/providers/hyperliquid/accountConfig.d.ts.map +0 -1
- package/dist/types/providers/lighter/accountConfig.d.ts +0 -13
- package/dist/types/providers/lighter/accountConfig.d.ts.map +0 -1
- package/dist/types/realtime/PerpsWsClient.d.ts +0 -26
- package/dist/types/realtime/PerpsWsClient.d.ts.map +0 -1
- package/dist/types/realtime/ReconnectingWebSocket.d.ts.map +0 -1
- package/dist/types/realtime/hyperliquid/HyperliquidWsProvider.d.ts +0 -32
- package/dist/types/realtime/hyperliquid/HyperliquidWsProvider.d.ts.map +0 -1
- package/dist/types/realtime/hyperliquid/types.d.ts +0 -37
- package/dist/types/realtime/hyperliquid/types.d.ts.map +0 -1
- package/dist/types/realtime/lighter/LighterWsProvider.d.ts +0 -68
- package/dist/types/realtime/lighter/LighterWsProvider.d.ts.map +0 -1
- package/dist/types/realtime/lighter/types.d.ts +0 -108
- package/dist/types/realtime/lighter/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/getAsset.d.ts +0 -20
- package/dist/types/services/getAsset.d.ts.map +0 -1
- package/dist/types/signers/lighter/LighterKeyStore.d.ts +0 -29
- package/dist/types/signers/lighter/LighterKeyStore.d.ts.map +0 -1
- package/dist/types/signers/lighter/LighterReadOnlyTokenManager.d.ts +0 -174
- package/dist/types/signers/lighter/LighterReadOnlyTokenManager.d.ts.map +0 -1
- package/dist/types/signers/lighter/LighterSigner.d.ts +0 -88
- package/dist/types/signers/lighter/LighterSigner.d.ts.map +0 -1
- package/dist/types/signers/lighter/index.d.ts +0 -9
- package/dist/types/signers/lighter/index.d.ts.map +0 -1
- package/dist/types/signers/lighter/wasmLoader.d.ts +0 -71
- package/dist/types/signers/lighter/wasmLoader.d.ts.map +0 -1
- package/dist/types/utils/hyperliquid/index.d.ts +0 -3
- package/dist/types/utils/hyperliquid/index.d.ts.map +0 -1
- package/dist/types/utils/hyperliquid/liquidation.d.ts +0 -46
- package/dist/types/utils/hyperliquid/liquidation.d.ts.map +0 -1
- package/dist/types/utils/hyperliquid/orderFormatting.d.ts +0 -44
- package/dist/types/utils/hyperliquid/orderFormatting.d.ts.map +0 -1
- package/dist/types/utils/request.d.ts +0 -25
- package/dist/types/utils/request.d.ts.map +0 -1
- package/src/agent/AgentManager.ts +0 -137
- package/src/agent/types.ts +0 -24
- package/src/client/projectAccountConfigSettings.ts +0 -39
- package/src/client/types.ts +0 -240
- package/src/providers/hyperliquid/accountConfig.ts +0 -92
- package/src/providers/lighter/accountConfig.ts +0 -103
- package/src/realtime/PerpsWsClient.ts +0 -108
- package/src/realtime/ReconnectingWebSocket.ts +0 -156
- package/src/realtime/hyperliquid/HyperliquidWsProvider.ts +0 -413
- package/src/realtime/hyperliquid/types.ts +0 -46
- package/src/realtime/lighter/LighterWsProvider.ts +0 -682
- package/src/realtime/lighter/types.ts +0 -121
- package/src/realtime/types.ts +0 -16
- package/src/services/getAsset.ts +0 -37
- package/src/signers/lighter/LighterKeyStore.ts +0 -74
- package/src/signers/lighter/LighterReadOnlyTokenManager.ts +0 -358
- package/src/signers/lighter/LighterSigner.ts +0 -396
- package/src/signers/lighter/index.ts +0 -36
- package/src/signers/lighter/wasmLoader.ts +0 -291
- package/src/utils/hyperliquid/index.ts +0 -9
- package/src/utils/hyperliquid/liquidation.ts +0 -71
- package/src/utils/hyperliquid/orderFormatting.ts +0 -96
- package/wasm/lighter-signer.wasm +0 -0
- package/wasm/wasm_exec.js +0 -575
- /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/{realtime/hyperliquid → websocket}/types.js +0 -0
- /package/dist/esm/{agent → storage}/types.js +0 -0
- /package/dist/esm/{realtime → websocket}/types.js +0 -0
|
@@ -7,7 +7,12 @@
|
|
|
7
7
|
*/
|
|
8
8
|
|
|
9
9
|
import type { OpenOrder } from '@lifi/perps-types'
|
|
10
|
-
import {
|
|
10
|
+
import {
|
|
11
|
+
FillClassification,
|
|
12
|
+
OrderSide,
|
|
13
|
+
OrderStatus,
|
|
14
|
+
OrderType,
|
|
15
|
+
} from '@lifi/perps-types'
|
|
11
16
|
import { stringToFloat } from './parse.js'
|
|
12
17
|
|
|
13
18
|
export { FillClassification }
|
|
@@ -24,6 +29,7 @@ const SL_TYPES = new Set<OrderType>([
|
|
|
24
29
|
|
|
25
30
|
/**
|
|
26
31
|
* Check if an open order is a Take Profit trigger order.
|
|
32
|
+
* @public
|
|
27
33
|
*/
|
|
28
34
|
export function isTakeProfitOrder(order: Pick<OpenOrder, 'type'>): boolean {
|
|
29
35
|
return TP_TYPES.has(order.type)
|
|
@@ -31,6 +37,7 @@ export function isTakeProfitOrder(order: Pick<OpenOrder, 'type'>): boolean {
|
|
|
31
37
|
|
|
32
38
|
/**
|
|
33
39
|
* Check if an open order is a Stop Loss trigger order.
|
|
40
|
+
* @public
|
|
34
41
|
*/
|
|
35
42
|
export function isStopLossOrder(order: Pick<OpenOrder, 'type'>): boolean {
|
|
36
43
|
return SL_TYPES.has(order.type)
|
|
@@ -38,15 +45,40 @@ export function isStopLossOrder(order: Pick<OpenOrder, 'type'>): boolean {
|
|
|
38
45
|
|
|
39
46
|
/**
|
|
40
47
|
* Check if an open order is a TP or SL trigger order.
|
|
48
|
+
* @public
|
|
41
49
|
*/
|
|
42
50
|
export function isTpSlOrder(order: Pick<OpenOrder, 'type'>): boolean {
|
|
43
51
|
return TP_TYPES.has(order.type) || SL_TYPES.has(order.type)
|
|
44
52
|
}
|
|
45
53
|
|
|
54
|
+
/**
|
|
55
|
+
* Order statuses representing an order still resting on the book (visible
|
|
56
|
+
* in `openOrders` / `triggerOrders`). Anything not in this set is terminal —
|
|
57
|
+
* filled, cancelled, rejected, expired — and should be evicted from the
|
|
58
|
+
* cached orders list when seen in a WS update.
|
|
59
|
+
* @public
|
|
60
|
+
*/
|
|
61
|
+
export const ACTIVE_ORDER_STATUSES: ReadonlySet<OrderStatus> = new Set([
|
|
62
|
+
OrderStatus.OPEN,
|
|
63
|
+
OrderStatus.PENDING,
|
|
64
|
+
OrderStatus.PARTIALLY_FILLED,
|
|
65
|
+
OrderStatus.TRIGGERED,
|
|
66
|
+
])
|
|
67
|
+
|
|
68
|
+
/**
|
|
69
|
+
* Whether `status` is one of {@link ACTIVE_ORDER_STATUSES}.
|
|
70
|
+
*
|
|
71
|
+
* @public
|
|
72
|
+
*/
|
|
73
|
+
export function isActiveOrderStatus(status: OrderStatus): boolean {
|
|
74
|
+
return ACTIVE_ORDER_STATUSES.has(status)
|
|
75
|
+
}
|
|
76
|
+
|
|
46
77
|
/**
|
|
47
78
|
* Classify a fill as open or close based on realizedPnl.
|
|
48
79
|
* @deprecated Use `Fill.classification` instead — it uses startPosition
|
|
49
80
|
* for accurate open/increase/reduce/close/reverse classification.
|
|
81
|
+
* @public
|
|
50
82
|
*/
|
|
51
83
|
export function classifyFill(
|
|
52
84
|
side: OrderSide,
|
package/src/utils/orderMath.ts
CHANGED
|
@@ -8,16 +8,17 @@ import {
|
|
|
8
8
|
import { realizedPnlOnClose } from './positionMath.js'
|
|
9
9
|
|
|
10
10
|
/**
|
|
11
|
-
* Pick the matching open position for an order's
|
|
11
|
+
* Pick the matching open position for an order's market, if any.
|
|
12
12
|
*
|
|
13
|
-
* @param
|
|
14
|
-
* @param positions - Open positions list (any
|
|
13
|
+
* @param marketId - The order's `market.id`.
|
|
14
|
+
* @param positions - Open positions list (any market).
|
|
15
|
+
* @public
|
|
15
16
|
*/
|
|
16
17
|
export function findMatchingPosition(
|
|
17
|
-
|
|
18
|
+
marketId: string,
|
|
18
19
|
positions: readonly Position[]
|
|
19
20
|
): Position | undefined {
|
|
20
|
-
return positions.find((p) => p.
|
|
21
|
+
return positions.find((p) => p.market.id === marketId)
|
|
21
22
|
}
|
|
22
23
|
|
|
23
24
|
/**
|
|
@@ -28,6 +29,7 @@ export function findMatchingPosition(
|
|
|
28
29
|
* position can only close what's open.
|
|
29
30
|
*
|
|
30
31
|
* Inputs are non-negative magnitudes.
|
|
32
|
+
* @public
|
|
31
33
|
*/
|
|
32
34
|
export function resolveCloseSize(
|
|
33
35
|
orderSize: number,
|
|
@@ -47,6 +49,7 @@ export function resolveCloseSize(
|
|
|
47
49
|
*
|
|
48
50
|
* @returns Realised PnL if the order would reduce the position, otherwise
|
|
49
51
|
* `null`.
|
|
52
|
+
* @public
|
|
50
53
|
*/
|
|
51
54
|
export function expectedRealizedPnlForOpenOrder(
|
|
52
55
|
order: OpenOrder,
|
|
@@ -96,6 +99,7 @@ export function expectedRealizedPnlForOpenOrder(
|
|
|
96
99
|
* `TriggerOrder` shape) is used as the rPnL price; the optional `limitPrice`
|
|
97
100
|
* for STOP_LIMIT / TAKE_PROFIT_LIMIT is the post-trigger limit, not the rPnL
|
|
98
101
|
* price.
|
|
102
|
+
* @public
|
|
99
103
|
*/
|
|
100
104
|
export function expectedRealizedPnlForTriggerOrder(
|
|
101
105
|
order: TriggerOrder,
|
package/src/utils/parse.ts
CHANGED
|
@@ -1,7 +1,3 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* Robust string-to-number parsing utilities.
|
|
3
|
-
*/
|
|
4
|
-
|
|
5
1
|
/**
|
|
6
2
|
* Parse a string to a float, stripping common formatting artefacts.
|
|
7
3
|
*
|
|
@@ -12,14 +8,19 @@
|
|
|
12
8
|
* - Percentage suffixes (%)
|
|
13
9
|
* - Whitespace
|
|
14
10
|
*
|
|
15
|
-
* @
|
|
16
|
-
*
|
|
11
|
+
* @returns Parsed number; `0` for empty/blank input, `NaN` when a non-empty
|
|
12
|
+
* string contains no parseable number
|
|
13
|
+
* @example
|
|
14
|
+
* ```ts
|
|
15
|
+
* stringToFloat('$1,234.50') // 1234.5
|
|
16
|
+
* stringToFloat('') // 0
|
|
17
|
+
* ```
|
|
18
|
+
* @public
|
|
17
19
|
*/
|
|
18
20
|
export function stringToFloat(value: string): number {
|
|
19
21
|
if (!value) {
|
|
20
22
|
return 0
|
|
21
23
|
}
|
|
22
|
-
// Strip whitespace, currency symbols, thousands commas, and % suffix
|
|
23
24
|
const cleaned = value.trim().replace(/[$%]/g, '').replace(/,/g, '').trim()
|
|
24
25
|
if (!cleaned) {
|
|
25
26
|
return 0
|
|
@@ -11,11 +11,49 @@
|
|
|
11
11
|
*
|
|
12
12
|
* @param isLong - True for long positions, false for short.
|
|
13
13
|
* @returns +1 for long, -1 for short.
|
|
14
|
+
* @public
|
|
14
15
|
*/
|
|
15
16
|
export function directionSign(isLong: boolean): 1 | -1 {
|
|
16
17
|
return isLong ? 1 : -1
|
|
17
18
|
}
|
|
18
19
|
|
|
20
|
+
/**
|
|
21
|
+
* Estimated liquidation price for an isolated-margin position, parameterised
|
|
22
|
+
* by the venue's maintenance margin rate.
|
|
23
|
+
*
|
|
24
|
+
* Standard isolated-margin model (new position, no existing exposure):
|
|
25
|
+
* margin_per_unit = entryPrice / leverage
|
|
26
|
+
* maintenance_per_unit = entryPrice * mmr
|
|
27
|
+
* margin_available = margin_per_unit - maintenance_per_unit
|
|
28
|
+
* liq_price = entryPrice - side * margin_available / (1 - mmr * side)
|
|
29
|
+
*
|
|
30
|
+
* For existing positions, prefer `Position.liquidationPrice` from the venue.
|
|
31
|
+
*
|
|
32
|
+
* @param maintenanceMarginRate - Venue maintenance margin rate as a fraction
|
|
33
|
+
* (e.g. 0.01 = 1%).
|
|
34
|
+
* @returns Estimated liquidation price, or undefined if the inputs cannot
|
|
35
|
+
* produce one (zero leverage, degenerate denominator).
|
|
36
|
+
* @public
|
|
37
|
+
*/
|
|
38
|
+
export function estimateIsolatedLiquidationPrice(params: {
|
|
39
|
+
entryPrice: number
|
|
40
|
+
leverage: number
|
|
41
|
+
isLong: boolean
|
|
42
|
+
maintenanceMarginRate: number
|
|
43
|
+
}): number | undefined {
|
|
44
|
+
const { entryPrice, leverage, isLong, maintenanceMarginRate } = params
|
|
45
|
+
if (leverage === 0) {
|
|
46
|
+
return undefined
|
|
47
|
+
}
|
|
48
|
+
const side = directionSign(isLong)
|
|
49
|
+
const denominator = 1 - maintenanceMarginRate * side
|
|
50
|
+
if (denominator === 0) {
|
|
51
|
+
return undefined
|
|
52
|
+
}
|
|
53
|
+
const marginAvailable = entryPrice * (1 / leverage - maintenanceMarginRate)
|
|
54
|
+
return entryPrice - (side * marginAvailable) / denominator
|
|
55
|
+
}
|
|
56
|
+
|
|
19
57
|
/**
|
|
20
58
|
* Predicted average entry price after adding to an existing position.
|
|
21
59
|
*
|
|
@@ -30,6 +68,7 @@ export function directionSign(isLong: boolean): 1 | -1 {
|
|
|
30
68
|
* market, limitPrice for limit orders).
|
|
31
69
|
* @returns The new weighted-average entry price, or undefined if the inputs
|
|
32
70
|
* cannot produce a valid average (zero combined size, non-finite values).
|
|
71
|
+
* @public
|
|
33
72
|
*/
|
|
34
73
|
export function predictAverageEntryPrice(params: {
|
|
35
74
|
currentSize: number
|
|
@@ -57,6 +96,7 @@ export function predictAverageEntryPrice(params: {
|
|
|
57
96
|
*
|
|
58
97
|
* @returns The new effective leverage, or undefined if total margin is
|
|
59
98
|
* non-positive.
|
|
99
|
+
* @public
|
|
60
100
|
*/
|
|
61
101
|
export function predictNewLeverage(params: {
|
|
62
102
|
currentNotional: number
|
|
@@ -78,6 +118,7 @@ export function predictNewLeverage(params: {
|
|
|
78
118
|
* `pnl = (markPrice - entryPrice) * size * directionSign(isLong)`
|
|
79
119
|
*
|
|
80
120
|
* @param size - Position size as a non-negative magnitude.
|
|
121
|
+
* @public
|
|
81
122
|
*/
|
|
82
123
|
export function predictUnrealizedPnl(params: {
|
|
83
124
|
entryPrice: number
|
|
@@ -95,6 +136,7 @@ export function predictUnrealizedPnl(params: {
|
|
|
95
136
|
* `rPnl = (closePrice - entryPrice) * closeSize * directionSign(isLong)`
|
|
96
137
|
*
|
|
97
138
|
* @param closeSize - Size being closed as a non-negative magnitude.
|
|
139
|
+
* @public
|
|
98
140
|
*/
|
|
99
141
|
export function realizedPnlOnClose(params: {
|
|
100
142
|
entryPrice: number
|
|
@@ -1,9 +1,11 @@
|
|
|
1
|
-
import type {
|
|
2
|
-
import type { Account, WalletClient } from 'viem'
|
|
1
|
+
import type { PerpsTypedData } from '@lifi/perps-types'
|
|
2
|
+
import type { Account, Hex, WalletClient } from 'viem'
|
|
3
3
|
import { privateKeyToAccount } from 'viem/accounts'
|
|
4
4
|
|
|
5
5
|
/**
|
|
6
6
|
* Sign EIP-712 typed data with a raw private key (agent keypair).
|
|
7
|
+
*
|
|
8
|
+
* @public
|
|
7
9
|
*/
|
|
8
10
|
export async function signTypedData(
|
|
9
11
|
privateKey: Hex,
|
|
@@ -20,13 +22,17 @@ export async function signTypedData(
|
|
|
20
22
|
/**
|
|
21
23
|
* Sign EIP-712 typed data with an externally-provided WalletClient. Works
|
|
22
24
|
* with browser wallets (wagmi), private keys, mnemonics — any viem
|
|
23
|
-
* WalletClient.
|
|
25
|
+
* WalletClient. Used by provider plugins to sign the EIP712 USER arm with the
|
|
26
|
+
* end-user's wallet.
|
|
27
|
+
*
|
|
28
|
+
* @public
|
|
24
29
|
*/
|
|
25
30
|
export async function signTypedDataWithSigner(
|
|
26
|
-
|
|
31
|
+
userWallet: WalletClient<any, any, Account>,
|
|
27
32
|
typedData: PerpsTypedData
|
|
28
33
|
): Promise<Hex> {
|
|
29
|
-
return
|
|
34
|
+
return userWallet.signTypedData({
|
|
35
|
+
account: userWallet.account,
|
|
30
36
|
domain: typedData.domain,
|
|
31
37
|
types: typedData.types,
|
|
32
38
|
primaryType: typedData.primaryType,
|
package/src/utils/sleep.ts
CHANGED
package/src/utils/units.ts
CHANGED
|
@@ -9,7 +9,13 @@ import { formatUnits } from 'viem'
|
|
|
9
9
|
*
|
|
10
10
|
* @param amount - Amount in base units (e.g. "1000000" for 1 USDC)
|
|
11
11
|
* @param decimals - Token decimals (e.g. 6 for USDC)
|
|
12
|
-
* @returns Decimal string (e.g. "1.0")
|
|
12
|
+
* @returns Decimal string (e.g. "1.0"); `"0"` when `amount` is not a valid
|
|
13
|
+
* bigint
|
|
14
|
+
* @example
|
|
15
|
+
* ```ts
|
|
16
|
+
* fromBaseUnits('1000000', 6) // '1'
|
|
17
|
+
* ```
|
|
18
|
+
* @public
|
|
13
19
|
*/
|
|
14
20
|
export function fromBaseUnits(amount: string, decimals: number): string {
|
|
15
21
|
try {
|
|
@@ -25,6 +31,7 @@ export function fromBaseUnits(amount: string, decimals: number): string {
|
|
|
25
31
|
* @param amount - Amount in base units
|
|
26
32
|
* @param decimals - Token decimals
|
|
27
33
|
* @returns Numeric value, or 0 if parsing fails
|
|
34
|
+
* @public
|
|
28
35
|
*/
|
|
29
36
|
export function fromBaseUnitsNumber(amount: string, decimals: number): number {
|
|
30
37
|
const value = Number(fromBaseUnits(amount, decimals))
|
package/src/utils/validation.ts
CHANGED
|
@@ -9,8 +9,11 @@
|
|
|
9
9
|
* @param _leverage - Position leverage (reserved for future use)
|
|
10
10
|
* @param availableBalance - Available balance, or null if unknown
|
|
11
11
|
* @param _feeRate - Fee rate as decimal, or null if unknown (reserved for future use)
|
|
12
|
-
* @param minMarginUsd - Minimum margin requirement in USD (exchange-specific)
|
|
12
|
+
* @param minMarginUsd - Minimum margin requirement in USD (exchange-specific).
|
|
13
|
+
* Source this from the selected provider's `minOrderValueUsd` metadata
|
|
14
|
+
* (see `@lifi/perps-types` `Provider`) rather than a client-side constant.
|
|
13
15
|
* @returns Error code: 'insufficient' | 'below-minimum' | '' (valid)
|
|
16
|
+
* @public
|
|
14
17
|
*/
|
|
15
18
|
export function validateMargin(
|
|
16
19
|
margin: number,
|
package/src/version.ts
CHANGED
|
@@ -1,2 +1,2 @@
|
|
|
1
1
|
export const name = '@lifi/perps-sdk'
|
|
2
|
-
export const version = '
|
|
2
|
+
export const version = '1.0.0'
|
|
@@ -0,0 +1,204 @@
|
|
|
1
|
+
import { PerpsErrorCode, type Subscription } from '@lifi/perps-types'
|
|
2
|
+
import { PerpsError } from '../errors/PerpsError.js'
|
|
3
|
+
import { getProviders } from '../services/getProviders.js'
|
|
4
|
+
import type { GetQuoteParams } from '../services/getQuote.js'
|
|
5
|
+
import type { PerpsSDKClient, QuoteListener } from '../types/provider.js'
|
|
6
|
+
import { cachePromise } from './cachePromise.js'
|
|
7
|
+
import type {
|
|
8
|
+
EventForSubscription,
|
|
9
|
+
SubscriptionListener,
|
|
10
|
+
WsProvider,
|
|
11
|
+
WsStatusListener,
|
|
12
|
+
} from './types.js'
|
|
13
|
+
|
|
14
|
+
/**
|
|
15
|
+
* Factory for a per-provider WS plugin. Invoked once per provider key the
|
|
16
|
+
* first time `subscribe(...)` is called against it.
|
|
17
|
+
*
|
|
18
|
+
* @public
|
|
19
|
+
*/
|
|
20
|
+
export type WsProviderFactory = (params: {
|
|
21
|
+
/** Provider key (e.g. `'lighter'`, `'hyperliquid'`). */
|
|
22
|
+
provider: string
|
|
23
|
+
/** WS URL discovered from `/providers`. */
|
|
24
|
+
wsUrl: string
|
|
25
|
+
/**
|
|
26
|
+
* Markets visible to this provider via `/providers`, optionally filtered
|
|
27
|
+
* by the consumer's `createPerpsClient({ providers: { [key]: { markets } } })`
|
|
28
|
+
* config. Each provider interprets these its own way — Hyperliquid uses
|
|
29
|
+
* them to decide which sub-DEXes to subscribe to; Lighter ignores them.
|
|
30
|
+
*/
|
|
31
|
+
markets: string[]
|
|
32
|
+
/**
|
|
33
|
+
* The SDK client. WS providers use it to call core services (e.g.
|
|
34
|
+
* `getAssets` to source the wire-id ↔ display-symbol map) without
|
|
35
|
+
* duplicating backend orchestration in the WS layer.
|
|
36
|
+
*/
|
|
37
|
+
client: PerpsSDKClient
|
|
38
|
+
}) => WsProvider
|
|
39
|
+
|
|
40
|
+
/**
|
|
41
|
+
* Options for {@link PerpsWsClient}.
|
|
42
|
+
*
|
|
43
|
+
* @public
|
|
44
|
+
*/
|
|
45
|
+
export interface PerpsWsClientOptions {
|
|
46
|
+
/**
|
|
47
|
+
* Per-provider WS factory map. Each key (e.g. `'hyperliquid'`,
|
|
48
|
+
* `'lighter'`) maps to a factory that returns a `WsProvider`. Concrete
|
|
49
|
+
* implementations ship with the provider packages — e.g.
|
|
50
|
+
* `@lifi/perps-sdk-provider-hyperliquid` exports `HyperliquidWsProvider`,
|
|
51
|
+
* `@lifi/perps-sdk-provider-lighter` exports `LighterWsProvider`.
|
|
52
|
+
* Subscribing to a provider key without a registered factory throws.
|
|
53
|
+
*/
|
|
54
|
+
wsProviders?: Record<string, WsProviderFactory>
|
|
55
|
+
}
|
|
56
|
+
|
|
57
|
+
/**
|
|
58
|
+
* Realtime client: lazily instantiates a per-provider {@link WsProvider} on
|
|
59
|
+
* first subscription and fans subscriptions out to it.
|
|
60
|
+
*
|
|
61
|
+
* @public
|
|
62
|
+
*/
|
|
63
|
+
export class PerpsWsClient {
|
|
64
|
+
private readonly client: PerpsSDKClient
|
|
65
|
+
private readonly options: PerpsWsClientOptions
|
|
66
|
+
private providers = new Map<string, WsProvider>()
|
|
67
|
+
private initPromises = new Map<string, Promise<WsProvider>>()
|
|
68
|
+
|
|
69
|
+
constructor(client: PerpsSDKClient, options: PerpsWsClientOptions = {}) {
|
|
70
|
+
this.client = client
|
|
71
|
+
this.options = options
|
|
72
|
+
}
|
|
73
|
+
|
|
74
|
+
/**
|
|
75
|
+
* Subscribe to a realtime channel, lazily creating the provider's WS
|
|
76
|
+
* connection. Returns an unsubscribe function.
|
|
77
|
+
*
|
|
78
|
+
* @param onStatus - Optional listener for the underlying connection's
|
|
79
|
+
* health. Fires `reconnecting` on a transient drop and the terminal
|
|
80
|
+
* `disconnected` once auto-reconnect is abandoned, so consumers can
|
|
81
|
+
* surface a reconnecting/disconnected state instead of silently showing
|
|
82
|
+
* stale data.
|
|
83
|
+
* @throws {PerpsError} When no WS provider factory is registered for the
|
|
84
|
+
* subscription's `dex`.
|
|
85
|
+
* @public
|
|
86
|
+
*/
|
|
87
|
+
async subscribe<S extends Subscription>(
|
|
88
|
+
sub: S,
|
|
89
|
+
listener: (event: EventForSubscription<S>) => void,
|
|
90
|
+
onStatus?: WsStatusListener
|
|
91
|
+
): Promise<() => void> {
|
|
92
|
+
const providerKey = sub.dex
|
|
93
|
+
const provider = await this.getOrCreateProvider(providerKey)
|
|
94
|
+
provider.reconnect()
|
|
95
|
+
return provider.subscribe(sub, listener as SubscriptionListener, onStatus)
|
|
96
|
+
}
|
|
97
|
+
|
|
98
|
+
/**
|
|
99
|
+
* Stream live fill quotes for `params.symbol` on `params.provider`, lazily
|
|
100
|
+
* creating the provider's WS connection. The provider's WS plugin layers the
|
|
101
|
+
* quote on its orderbook channel, so a concurrent orderbook subscription on
|
|
102
|
+
* the same market shares one wire subscription. Returns an unsubscribe
|
|
103
|
+
* function.
|
|
104
|
+
*
|
|
105
|
+
* @throws {PerpsError} When no WS provider factory is registered for
|
|
106
|
+
* `params.provider`, or no market matches the symbol+type.
|
|
107
|
+
* @public
|
|
108
|
+
*/
|
|
109
|
+
async subscribeQuote(
|
|
110
|
+
params: GetQuoteParams,
|
|
111
|
+
onQuote: QuoteListener
|
|
112
|
+
): Promise<() => void> {
|
|
113
|
+
const provider = await this.getOrCreateProvider(params.provider)
|
|
114
|
+
return provider.subscribeQuote(
|
|
115
|
+
{
|
|
116
|
+
symbol: params.symbol,
|
|
117
|
+
side: params.side,
|
|
118
|
+
size: params.size,
|
|
119
|
+
type: params.type,
|
|
120
|
+
},
|
|
121
|
+
onQuote
|
|
122
|
+
)
|
|
123
|
+
}
|
|
124
|
+
|
|
125
|
+
/**
|
|
126
|
+
* Close every open provider WS connection and drop all cached providers.
|
|
127
|
+
*
|
|
128
|
+
* @public
|
|
129
|
+
*/
|
|
130
|
+
close() {
|
|
131
|
+
for (const p of this.providers.values()) {
|
|
132
|
+
p.close()
|
|
133
|
+
}
|
|
134
|
+
this.providers.clear()
|
|
135
|
+
this.initPromises.clear()
|
|
136
|
+
}
|
|
137
|
+
|
|
138
|
+
/**
|
|
139
|
+
* Reconnect an already-created provider when its socket reached terminal
|
|
140
|
+
* `disconnected`. Safe no-op when the provider is unknown or not terminal.
|
|
141
|
+
*
|
|
142
|
+
* @public
|
|
143
|
+
*/
|
|
144
|
+
reconnect(provider: string): void {
|
|
145
|
+
this.providers.get(provider)?.reconnect()
|
|
146
|
+
}
|
|
147
|
+
|
|
148
|
+
private async getOrCreateProvider(provider: string): Promise<WsProvider> {
|
|
149
|
+
const existing = this.providers.get(provider)
|
|
150
|
+
if (existing) {
|
|
151
|
+
return existing
|
|
152
|
+
}
|
|
153
|
+
|
|
154
|
+
return cachePromise(
|
|
155
|
+
() => this.initPromises.get(provider),
|
|
156
|
+
(p) => {
|
|
157
|
+
if (p) {
|
|
158
|
+
this.initPromises.set(provider, p)
|
|
159
|
+
} else {
|
|
160
|
+
this.initPromises.delete(provider)
|
|
161
|
+
}
|
|
162
|
+
},
|
|
163
|
+
() => this.initProvider(provider)
|
|
164
|
+
)
|
|
165
|
+
}
|
|
166
|
+
|
|
167
|
+
private async initProvider(provider: string): Promise<WsProvider> {
|
|
168
|
+
const factory = this.options.wsProviders?.[provider]
|
|
169
|
+
if (factory === undefined) {
|
|
170
|
+
throw new PerpsError(
|
|
171
|
+
PerpsErrorCode.SDKError,
|
|
172
|
+
`No WS provider factory registered for '${provider}'. Pass one via ` +
|
|
173
|
+
'new PerpsWsClient(client, { wsProviders: { [key]: factory } }).'
|
|
174
|
+
)
|
|
175
|
+
}
|
|
176
|
+
|
|
177
|
+
const { providers } = await getProviders(this.client)
|
|
178
|
+
|
|
179
|
+
const providerInfo = providers.find((d) => d.key === provider)
|
|
180
|
+
if (!providerInfo?.wsUrl) {
|
|
181
|
+
throw new Error(`No WebSocket URL found for provider: ${provider}`)
|
|
182
|
+
}
|
|
183
|
+
|
|
184
|
+
const allMarkets = (providerInfo.categories ?? []) as Array<{
|
|
185
|
+
id: string
|
|
186
|
+
}>
|
|
187
|
+
const providerConfig = this.client.config.providers?.[provider]
|
|
188
|
+
const configuredMarkets = providerConfig?.markets
|
|
189
|
+
const markets = (
|
|
190
|
+
configuredMarkets
|
|
191
|
+
? allMarkets.filter((m) => configuredMarkets.includes(m.id))
|
|
192
|
+
: allMarkets
|
|
193
|
+
).map((m) => m.id)
|
|
194
|
+
|
|
195
|
+
const wsProvider = factory({
|
|
196
|
+
provider,
|
|
197
|
+
wsUrl: providerInfo.wsUrl,
|
|
198
|
+
markets,
|
|
199
|
+
client: this.client,
|
|
200
|
+
})
|
|
201
|
+
this.providers.set(provider, wsProvider)
|
|
202
|
+
return wsProvider
|
|
203
|
+
}
|
|
204
|
+
}
|