@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
|
@@ -6,6 +6,16 @@
|
|
|
6
6
|
* values for critical financial parameters.
|
|
7
7
|
*/
|
|
8
8
|
|
|
9
|
+
import type {
|
|
10
|
+
FeeTier,
|
|
11
|
+
Market,
|
|
12
|
+
MarketPrice,
|
|
13
|
+
OrderbookLevel,
|
|
14
|
+
Quote,
|
|
15
|
+
QuoteSide,
|
|
16
|
+
TradeType,
|
|
17
|
+
} from '@lifi/perps-types'
|
|
18
|
+
|
|
9
19
|
/**
|
|
10
20
|
* Calculate position size in asset units from margin.
|
|
11
21
|
*
|
|
@@ -13,6 +23,11 @@
|
|
|
13
23
|
* @param leverage - Position leverage
|
|
14
24
|
* @param price - Current asset price
|
|
15
25
|
* @returns Position size in asset units
|
|
26
|
+
* @example
|
|
27
|
+
* ```ts
|
|
28
|
+
* calculatePositionSize(100, 10, 2000) // 0.5 (ETH at $2000)
|
|
29
|
+
* ```
|
|
30
|
+
* @public
|
|
16
31
|
*/
|
|
17
32
|
export function calculatePositionSize(
|
|
18
33
|
marginUsd: number,
|
|
@@ -28,6 +43,7 @@ export function calculatePositionSize(
|
|
|
28
43
|
* @param size - Position size in asset units
|
|
29
44
|
* @param price - Current asset price
|
|
30
45
|
* @returns Notional value in USD
|
|
46
|
+
* @public
|
|
31
47
|
*/
|
|
32
48
|
export function calculateNotionalValue(size: number, price: number): number {
|
|
33
49
|
return Math.abs(size) * price
|
|
@@ -40,6 +56,7 @@ export function calculateNotionalValue(size: number, price: number): number {
|
|
|
40
56
|
* @param currentPrice - Current market price
|
|
41
57
|
* @param size - Position size (positive for long, negative for short)
|
|
42
58
|
* @returns Unrealized PnL in USD
|
|
59
|
+
* @public
|
|
43
60
|
*/
|
|
44
61
|
export function calculateUnrealizedPnl(
|
|
45
62
|
entryPrice: number,
|
|
@@ -55,6 +72,7 @@ export function calculateUnrealizedPnl(
|
|
|
55
72
|
* @param pnl - Profit/loss in USD
|
|
56
73
|
* @param margin - Initial margin in USD
|
|
57
74
|
* @returns ROE as percentage (e.g., 10 for 10%)
|
|
75
|
+
* @public
|
|
58
76
|
*/
|
|
59
77
|
export function calculateRoe(pnl: number, margin: number): number {
|
|
60
78
|
if (margin === 0) {
|
|
@@ -69,6 +87,7 @@ export function calculateRoe(pnl: number, margin: number): number {
|
|
|
69
87
|
* @param notionalValue - Position notional value in USD
|
|
70
88
|
* @param leverage - Position leverage
|
|
71
89
|
* @returns Required margin in USD
|
|
90
|
+
* @public
|
|
72
91
|
*/
|
|
73
92
|
export function calculateRequiredMargin(
|
|
74
93
|
notionalValue: number,
|
|
@@ -83,6 +102,7 @@ export function calculateRequiredMargin(
|
|
|
83
102
|
* @param sizeUsd - Position size in USD (notional value)
|
|
84
103
|
* @param feeRate - Fee rate as decimal (e.g., 0.00035 for 0.035%)
|
|
85
104
|
* @returns Estimated fee in USD
|
|
105
|
+
* @public
|
|
86
106
|
*/
|
|
87
107
|
export function estimateFees(sizeUsd: number, feeRate: number): number {
|
|
88
108
|
return sizeUsd * feeRate
|
|
@@ -95,6 +115,7 @@ export function estimateFees(sizeUsd: number, feeRate: number): number {
|
|
|
95
115
|
* @param slippagePercent - Slippage tolerance as percentage (e.g., 0.5 for 0.5%)
|
|
96
116
|
* @param isBuy - True if buying (price goes up), false if selling (price goes down)
|
|
97
117
|
* @returns Price adjusted for slippage
|
|
118
|
+
* @public
|
|
98
119
|
*/
|
|
99
120
|
export function applySlippage(
|
|
100
121
|
price: number,
|
|
@@ -105,10 +126,80 @@ export function applySlippage(
|
|
|
105
126
|
return isBuy ? price * multiplier : price / multiplier
|
|
106
127
|
}
|
|
107
128
|
|
|
108
|
-
|
|
109
|
-
|
|
110
|
-
|
|
129
|
+
/**
|
|
130
|
+
* Distance from the current price to the liquidation price, as a percentage of
|
|
131
|
+
* the current price.
|
|
132
|
+
*
|
|
133
|
+
* @param liquidationPrice - The position's liquidation price
|
|
134
|
+
* @param currentPrice - Current market price
|
|
135
|
+
* @returns Absolute distance as a percentage, or 0 when current price is zero
|
|
136
|
+
* @public
|
|
137
|
+
*/
|
|
138
|
+
export function liquidationDistancePercent(params: {
|
|
139
|
+
liquidationPrice: number
|
|
140
|
+
currentPrice: number
|
|
141
|
+
}): number {
|
|
142
|
+
const { liquidationPrice, currentPrice } = params
|
|
143
|
+
if (currentPrice === 0) {
|
|
144
|
+
return 0
|
|
145
|
+
}
|
|
146
|
+
return Math.abs((liquidationPrice - currentPrice) / currentPrice) * 100
|
|
147
|
+
}
|
|
148
|
+
|
|
149
|
+
/**
|
|
150
|
+
* Effective leverage of an open position.
|
|
151
|
+
*
|
|
152
|
+
* leverage = positionValueUsd / marginUsd
|
|
153
|
+
*
|
|
154
|
+
* @param positionValueUsd - Position notional value in USD
|
|
155
|
+
* @param marginUsd - Margin backing the position in USD
|
|
156
|
+
* @returns Effective leverage, or 0 when margin is zero
|
|
157
|
+
* @public
|
|
158
|
+
*/
|
|
159
|
+
export function effectiveLeverage(params: {
|
|
160
|
+
positionValueUsd: number
|
|
161
|
+
marginUsd: number
|
|
162
|
+
}): number {
|
|
163
|
+
const { positionValueUsd, marginUsd } = params
|
|
164
|
+
if (marginUsd === 0) {
|
|
165
|
+
return 0
|
|
166
|
+
}
|
|
167
|
+
return positionValueUsd / marginUsd
|
|
168
|
+
}
|
|
169
|
+
|
|
170
|
+
/**
|
|
171
|
+
* Margin that can be removed from a position while keeping its leverage at or
|
|
172
|
+
* below the asset's maximum.
|
|
173
|
+
*
|
|
174
|
+
* The minimum margin to stay within `maxLeverage` is the required margin for
|
|
175
|
+
* the position's notional (see {@link calculateRequiredMargin}); anything above
|
|
176
|
+
* that is removable.
|
|
177
|
+
*
|
|
178
|
+
* @param marginUsed - Margin currently backing the position in USD
|
|
179
|
+
* @param positionValueUsd - Position notional value in USD
|
|
180
|
+
* @param maxLeverage - Maximum leverage allowed for the asset
|
|
181
|
+
* @returns Removable margin in USD (never negative); falls back to the full
|
|
182
|
+
* `marginUsed` when `maxLeverage` is zero (no constraint available)
|
|
183
|
+
* @public
|
|
184
|
+
*/
|
|
185
|
+
export function removableMargin(params: {
|
|
186
|
+
marginUsed: number
|
|
187
|
+
positionValueUsd: number
|
|
188
|
+
maxLeverage: number
|
|
189
|
+
}): number {
|
|
190
|
+
const { marginUsed, positionValueUsd, maxLeverage } = params
|
|
191
|
+
if (maxLeverage === 0) {
|
|
192
|
+
return marginUsed
|
|
193
|
+
}
|
|
194
|
+
const minMargin = calculateRequiredMargin(positionValueUsd, maxLeverage)
|
|
195
|
+
return Math.max(0, marginUsed - minMargin)
|
|
196
|
+
}
|
|
111
197
|
|
|
198
|
+
/**
|
|
199
|
+
* Signed expected PnL for a trigger price — see {@link calculateExpectedPnl}.
|
|
200
|
+
*
|
|
201
|
+
* @public
|
|
202
|
+
*/
|
|
112
203
|
export interface ExpectedPnl {
|
|
113
204
|
amount: number
|
|
114
205
|
percent: number
|
|
@@ -123,6 +214,7 @@ export interface ExpectedPnl {
|
|
|
123
214
|
* @param leverage - Position leverage multiplier
|
|
124
215
|
* @param isLong - True for long positions, false for short
|
|
125
216
|
* @param margin - Margin amount in USD
|
|
217
|
+
* @public
|
|
126
218
|
*/
|
|
127
219
|
export function calculateExpectedPnl(
|
|
128
220
|
triggerPrice: number,
|
|
@@ -149,6 +241,7 @@ export function calculateExpectedPnl(
|
|
|
149
241
|
* @param entryPrice - Position entry price
|
|
150
242
|
* @param leverage - Position leverage multiplier
|
|
151
243
|
* @param isLong - True for long positions, false for short
|
|
244
|
+
* @public
|
|
152
245
|
*/
|
|
153
246
|
export function priceFromPercent(
|
|
154
247
|
percent: number,
|
|
@@ -170,6 +263,7 @@ export function priceFromPercent(
|
|
|
170
263
|
* @param entryPrice - Position entry price
|
|
171
264
|
* @param leverage - Position leverage multiplier
|
|
172
265
|
* @param isLong - True for long positions, false for short
|
|
266
|
+
* @public
|
|
173
267
|
*/
|
|
174
268
|
export function percentFromPrice(
|
|
175
269
|
price: number,
|
|
@@ -184,10 +278,6 @@ export function percentFromPrice(
|
|
|
184
278
|
return (priceDiff / entryPrice) * leverage * 100
|
|
185
279
|
}
|
|
186
280
|
|
|
187
|
-
// ---------------------------------------------------------------------------
|
|
188
|
-
// Realized PnL percentage
|
|
189
|
-
// ---------------------------------------------------------------------------
|
|
190
|
-
|
|
191
281
|
/**
|
|
192
282
|
* Calculate realized PnL as a percentage of position value at close.
|
|
193
283
|
*
|
|
@@ -195,6 +285,7 @@ export function percentFromPrice(
|
|
|
195
285
|
* @param size - Position size in asset units at close
|
|
196
286
|
* @param price - Price at close
|
|
197
287
|
* @returns PnL as a percentage of position value
|
|
288
|
+
* @public
|
|
198
289
|
*/
|
|
199
290
|
export function calculateRealizedPnlPercent(
|
|
200
291
|
realizedPnl: number,
|
|
@@ -207,3 +298,109 @@ export function calculateRealizedPnlPercent(
|
|
|
207
298
|
}
|
|
208
299
|
return (realizedPnl / positionValue) * 100
|
|
209
300
|
}
|
|
301
|
+
|
|
302
|
+
/** Result of {@link walkOrderbook} — the fill obtained for a USD-notional walk. */
|
|
303
|
+
interface BookWalk {
|
|
304
|
+
/** Base amount filled. */
|
|
305
|
+
baseSize: number
|
|
306
|
+
/** Notional actually filled in USD (equals the requested size unless the book ran dry). */
|
|
307
|
+
filledNotional: number
|
|
308
|
+
/** Volume-weighted average fill price, or 0 when the book is empty. */
|
|
309
|
+
vwap: number
|
|
310
|
+
/** True when the levels could not absorb the requested notional. */
|
|
311
|
+
insufficientLiquidity: boolean
|
|
312
|
+
}
|
|
313
|
+
|
|
314
|
+
/**
|
|
315
|
+
* Walk one side of an orderbook to fill `sizeUsd` notional, accumulating base
|
|
316
|
+
* size and notional level-by-level to derive the VWAP fill. Levels are consumed
|
|
317
|
+
* in array order — the caller passes asks for a buy and bids for a sell, each
|
|
318
|
+
* already ordered best-price-first. When the book cannot absorb the full
|
|
319
|
+
* notional, the walk stops at the last level and flags `insufficientLiquidity`,
|
|
320
|
+
* returning the best obtainable fill.
|
|
321
|
+
*
|
|
322
|
+
* @public
|
|
323
|
+
*/
|
|
324
|
+
export function walkOrderbook(
|
|
325
|
+
levels: OrderbookLevel[],
|
|
326
|
+
sizeUsd: number
|
|
327
|
+
): BookWalk {
|
|
328
|
+
let remaining = sizeUsd
|
|
329
|
+
let baseSize = 0
|
|
330
|
+
let filledNotional = 0
|
|
331
|
+
for (const level of levels) {
|
|
332
|
+
if (remaining <= 0) {
|
|
333
|
+
break
|
|
334
|
+
}
|
|
335
|
+
const price = Number.parseFloat(level.price)
|
|
336
|
+
const levelNotional = Number.parseFloat(level.size) * price
|
|
337
|
+
const take = Math.min(remaining, levelNotional)
|
|
338
|
+
filledNotional += take
|
|
339
|
+
baseSize += take / price
|
|
340
|
+
remaining -= take
|
|
341
|
+
}
|
|
342
|
+
return {
|
|
343
|
+
baseSize,
|
|
344
|
+
filledNotional,
|
|
345
|
+
vwap: baseSize === 0 ? 0 : filledNotional / baseSize,
|
|
346
|
+
insufficientLiquidity: remaining > 0,
|
|
347
|
+
}
|
|
348
|
+
}
|
|
349
|
+
|
|
350
|
+
/** Inputs to {@link buildQuote} — the resolved market, its live price, its book, and the trade ask. */
|
|
351
|
+
interface BuildQuoteInput {
|
|
352
|
+
provider: string
|
|
353
|
+
symbol: string
|
|
354
|
+
type: TradeType
|
|
355
|
+
side: QuoteSide
|
|
356
|
+
sizeUsd: number
|
|
357
|
+
market: Market
|
|
358
|
+
price: MarketPrice
|
|
359
|
+
bids: OrderbookLevel[]
|
|
360
|
+
asks: OrderbookLevel[]
|
|
361
|
+
/** Public base-tier fees for the venue; `isDefaultFeeTier` is always set true. */
|
|
362
|
+
feeTier: FeeTier
|
|
363
|
+
timestamp: number
|
|
364
|
+
}
|
|
365
|
+
|
|
366
|
+
/**
|
|
367
|
+
* Build a {@link Quote} from a resolved market, its live {@link MarketPrice},
|
|
368
|
+
* and its orderbook snapshot. Pure: walks the relevant side (buy → asks,
|
|
369
|
+
* sell → bids) for the VWAP fill, derives the price impact in basis points
|
|
370
|
+
* versus mark, applies the base taker fee on the filled notional, and carries
|
|
371
|
+
* the market's `funding` (`null` for spot, which has none).
|
|
372
|
+
*
|
|
373
|
+
* @public
|
|
374
|
+
*/
|
|
375
|
+
export function buildQuote(input: BuildQuoteInput): Quote {
|
|
376
|
+
const { market, price, side, sizeUsd, feeTier } = input
|
|
377
|
+
const markPrice = Number.parseFloat(price.markPrice)
|
|
378
|
+
const levels = side === 'buy' ? input.asks : input.bids
|
|
379
|
+
const walk = walkOrderbook(levels, sizeUsd)
|
|
380
|
+
const priceImpactBps =
|
|
381
|
+
markPrice === 0 || walk.vwap === 0
|
|
382
|
+
? 0
|
|
383
|
+
: Math.abs((walk.vwap - markPrice) / markPrice) * 10_000
|
|
384
|
+
const feeUsd = estimateFees(
|
|
385
|
+
walk.filledNotional,
|
|
386
|
+
Number.parseFloat(feeTier.taker)
|
|
387
|
+
)
|
|
388
|
+
return {
|
|
389
|
+
provider: input.provider,
|
|
390
|
+
symbol: input.symbol,
|
|
391
|
+
marketId: market.id,
|
|
392
|
+
type: input.type,
|
|
393
|
+
side,
|
|
394
|
+
sizeUsd: sizeUsd.toString(),
|
|
395
|
+
baseSize: walk.baseSize.toString(),
|
|
396
|
+
markPrice: price.markPrice,
|
|
397
|
+
expectedFillPrice: walk.vwap.toString(),
|
|
398
|
+
priceImpactBps: priceImpactBps.toString(),
|
|
399
|
+
feeTier,
|
|
400
|
+
isDefaultFeeTier: true,
|
|
401
|
+
feeUsd: feeUsd.toString(),
|
|
402
|
+
funding: price.funding ?? null,
|
|
403
|
+
insufficientLiquidity: walk.insufficientLiquidity,
|
|
404
|
+
timestamp: input.timestamp,
|
|
405
|
+
}
|
|
406
|
+
}
|
|
@@ -0,0 +1,37 @@
|
|
|
1
|
+
import type { AccountConfig } from '@lifi/perps-types'
|
|
2
|
+
import { ChainId } from '@lifi/types'
|
|
3
|
+
|
|
4
|
+
/**
|
|
5
|
+
* Perps provider keys that have a declared LI.FI deposit-target chain.
|
|
6
|
+
*
|
|
7
|
+
* @public
|
|
8
|
+
*/
|
|
9
|
+
export type DepositProviderKey = AccountConfig['provider']
|
|
10
|
+
|
|
11
|
+
/**
|
|
12
|
+
* Declared single source of truth: perps provider key → the LI.FI chain a
|
|
13
|
+
* client opens the swap widget against to fund that provider. Values come from
|
|
14
|
+
* the `@lifi/types` `ChainId` enum; never hardcode the numeric ids.
|
|
15
|
+
*
|
|
16
|
+
* @public
|
|
17
|
+
*/
|
|
18
|
+
export const LIFI_DEPOSIT_CHAIN_BY_PROVIDER: Record<
|
|
19
|
+
DepositProviderKey,
|
|
20
|
+
ChainId
|
|
21
|
+
> = {
|
|
22
|
+
hyperliquid: ChainId.HPL,
|
|
23
|
+
lighter: ChainId.LTR,
|
|
24
|
+
}
|
|
25
|
+
|
|
26
|
+
/**
|
|
27
|
+
* Resolve the LI.FI deposit-target chain for a perps provider key.
|
|
28
|
+
*
|
|
29
|
+
* @returns The `@lifi/types` `ChainId`, or `undefined` for a provider key with
|
|
30
|
+
* no declared deposit chain (the `/providers` wire key is an open `string`).
|
|
31
|
+
* @public
|
|
32
|
+
*/
|
|
33
|
+
export function lifiDepositChainForProvider(
|
|
34
|
+
providerKey: string
|
|
35
|
+
): ChainId | undefined {
|
|
36
|
+
return LIFI_DEPOSIT_CHAIN_BY_PROVIDER[providerKey as DepositProviderKey]
|
|
37
|
+
}
|
|
@@ -0,0 +1,51 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Block-explorer URL resolution.
|
|
3
|
+
*
|
|
4
|
+
* Provider plugins resolve a tx hash to a fully-qualified explorer URL during
|
|
5
|
+
* wire→domain mapping. The explorer target is a function of the settling chain,
|
|
6
|
+
* so the map is keyed by chain id rather than by provider.
|
|
7
|
+
*/
|
|
8
|
+
|
|
9
|
+
/**
|
|
10
|
+
* Settling chains a perps tx can be observed on.
|
|
11
|
+
*
|
|
12
|
+
* @public
|
|
13
|
+
*/
|
|
14
|
+
export const ExplorerChainId = {
|
|
15
|
+
ETHEREUM: 1,
|
|
16
|
+
ARBITRUM_ONE: 42161,
|
|
17
|
+
LIGHTER: 304,
|
|
18
|
+
HYPERLIQUID: 999,
|
|
19
|
+
} as const
|
|
20
|
+
|
|
21
|
+
/**
|
|
22
|
+
* Union of {@link ExplorerChainId} values.
|
|
23
|
+
*
|
|
24
|
+
* @public
|
|
25
|
+
*/
|
|
26
|
+
export type ExplorerChainId =
|
|
27
|
+
(typeof ExplorerChainId)[keyof typeof ExplorerChainId]
|
|
28
|
+
|
|
29
|
+
const TX_BASE_URL_BY_CHAIN: Record<ExplorerChainId, string> = {
|
|
30
|
+
[ExplorerChainId.ETHEREUM]: 'https://etherscan.io/tx/',
|
|
31
|
+
[ExplorerChainId.ARBITRUM_ONE]: 'https://arbiscan.io/tx/',
|
|
32
|
+
[ExplorerChainId.LIGHTER]: 'https://app.lighter.xyz/explorer/logs/',
|
|
33
|
+
[ExplorerChainId.HYPERLIQUID]: 'https://app.hyperliquid.xyz/explorer/tx/',
|
|
34
|
+
}
|
|
35
|
+
|
|
36
|
+
/**
|
|
37
|
+
* Build a fully-resolved block-explorer URL for a tx on a known chain.
|
|
38
|
+
*
|
|
39
|
+
* @returns The explorer URL, or `undefined` when the hash is empty (no on-chain
|
|
40
|
+
* tx to link).
|
|
41
|
+
* @public
|
|
42
|
+
*/
|
|
43
|
+
export function explorerTxUrl(
|
|
44
|
+
chainId: ExplorerChainId,
|
|
45
|
+
txHash: string | undefined
|
|
46
|
+
): string | undefined {
|
|
47
|
+
if (!txHash) {
|
|
48
|
+
return undefined
|
|
49
|
+
}
|
|
50
|
+
return `${TX_BASE_URL_BY_CHAIN[chainId]}${txHash}`
|
|
51
|
+
}
|
|
@@ -0,0 +1,51 @@
|
|
|
1
|
+
import { FillClassification } from '@lifi/perps-types'
|
|
2
|
+
|
|
3
|
+
/**
|
|
4
|
+
* Classify a perpetual fill into the Open/Close/Increase/Reduce/Switch
|
|
5
|
+
* taxonomy from `FillClassification`.
|
|
6
|
+
*
|
|
7
|
+
* @param startPosition Signed position held BEFORE this fill (`> 0` long,
|
|
8
|
+
* `< 0` short, `0` flat).
|
|
9
|
+
* @param side Hyperliquid-style: `'B'` for buy, anything else for sell.
|
|
10
|
+
* @param sz Unsigned fill size, parsed with `parseFloat`.
|
|
11
|
+
* @public
|
|
12
|
+
*/
|
|
13
|
+
export function classifyFillFromPosition(
|
|
14
|
+
startPosition: string,
|
|
15
|
+
side: string,
|
|
16
|
+
sz: string
|
|
17
|
+
): FillClassification {
|
|
18
|
+
const start = parseFloat(startPosition)
|
|
19
|
+
const delta = side === 'B' ? parseFloat(sz) : -parseFloat(sz)
|
|
20
|
+
const end = start + delta
|
|
21
|
+
|
|
22
|
+
if (start === 0) {
|
|
23
|
+
return end > 0
|
|
24
|
+
? FillClassification.OPENED_LONG
|
|
25
|
+
: FillClassification.OPENED_SHORT
|
|
26
|
+
}
|
|
27
|
+
|
|
28
|
+
if (start > 0) {
|
|
29
|
+
if (end === 0) {
|
|
30
|
+
return FillClassification.CLOSED_LONG
|
|
31
|
+
}
|
|
32
|
+
if (end < 0) {
|
|
33
|
+
return FillClassification.SWITCHED_SHORT
|
|
34
|
+
}
|
|
35
|
+
if (end > start) {
|
|
36
|
+
return FillClassification.INCREASED_LONG
|
|
37
|
+
}
|
|
38
|
+
return FillClassification.REDUCED_LONG
|
|
39
|
+
}
|
|
40
|
+
|
|
41
|
+
if (end === 0) {
|
|
42
|
+
return FillClassification.CLOSED_SHORT
|
|
43
|
+
}
|
|
44
|
+
if (end > 0) {
|
|
45
|
+
return FillClassification.SWITCHED_LONG
|
|
46
|
+
}
|
|
47
|
+
if (end < start) {
|
|
48
|
+
return FillClassification.INCREASED_SHORT
|
|
49
|
+
}
|
|
50
|
+
return FillClassification.REDUCED_SHORT
|
|
51
|
+
}
|
|
@@ -0,0 +1,212 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Options shared by the human-facing display formatters.
|
|
3
|
+
*
|
|
4
|
+
* @public
|
|
5
|
+
*/
|
|
6
|
+
export interface FormatOptions {
|
|
7
|
+
/** Fixed number of decimal places. Defaults are per-formatter. */
|
|
8
|
+
decimals?: number
|
|
9
|
+
/** Rendered when the value is null/undefined/NaN/non-finite. Defaults to `'—'`. */
|
|
10
|
+
placeholder?: string
|
|
11
|
+
/** BCP 47 locale controlling digit grouping and separators (e.g. `'en-US'`). */
|
|
12
|
+
locale?: string
|
|
13
|
+
}
|
|
14
|
+
|
|
15
|
+
const DEFAULT_PLACEHOLDER = '—'
|
|
16
|
+
|
|
17
|
+
type FormatInput = number | string | null | undefined
|
|
18
|
+
|
|
19
|
+
/**
|
|
20
|
+
* Tolerantly coerce a display input to a finite number.
|
|
21
|
+
*
|
|
22
|
+
* Strips `$`, `,`, and surrounding whitespace from strings. Returns `null`
|
|
23
|
+
* when the value is null/undefined/blank or does not resolve to a finite
|
|
24
|
+
* number, so callers can render a placeholder instead of `$0.00` or `$NaN`.
|
|
25
|
+
*/
|
|
26
|
+
function toFiniteNumber(value: FormatInput): number | null {
|
|
27
|
+
let n: number
|
|
28
|
+
if (typeof value === 'string') {
|
|
29
|
+
const cleaned = value.replace(/[$,\s]/g, '')
|
|
30
|
+
if (!cleaned) {
|
|
31
|
+
return null
|
|
32
|
+
}
|
|
33
|
+
n = Number(cleaned)
|
|
34
|
+
} else if (typeof value === 'number') {
|
|
35
|
+
n = value
|
|
36
|
+
} else {
|
|
37
|
+
return null
|
|
38
|
+
}
|
|
39
|
+
return Number.isFinite(n) ? n : null
|
|
40
|
+
}
|
|
41
|
+
|
|
42
|
+
/**
|
|
43
|
+
* Round to `decimals` then split into a sign (`'-'` or `''`) and the
|
|
44
|
+
* locale-formatted absolute body. Deriving the sign from the rounded value
|
|
45
|
+
* avoids `-$0.00` for values that round to zero.
|
|
46
|
+
*/
|
|
47
|
+
function signAndBody(
|
|
48
|
+
n: number,
|
|
49
|
+
decimals: number,
|
|
50
|
+
locale: string | undefined,
|
|
51
|
+
grouping: boolean
|
|
52
|
+
): { sign: '-' | ''; body: string } {
|
|
53
|
+
const rounded = Number(n.toFixed(decimals))
|
|
54
|
+
const sign = rounded < 0 ? '-' : ''
|
|
55
|
+
const body = Math.abs(rounded).toLocaleString(locale, {
|
|
56
|
+
minimumFractionDigits: decimals,
|
|
57
|
+
maximumFractionDigits: decimals,
|
|
58
|
+
useGrouping: grouping,
|
|
59
|
+
})
|
|
60
|
+
return { sign, body }
|
|
61
|
+
}
|
|
62
|
+
|
|
63
|
+
/**
|
|
64
|
+
* Auto-detect a sensible number of decimal places from a value's magnitude:
|
|
65
|
+
* `>=1` → 2, `>=0.1` → 4, `>=0.01` → 5, otherwise 6.
|
|
66
|
+
*/
|
|
67
|
+
function autoDecimals(abs: number): number {
|
|
68
|
+
if (abs >= 1) {
|
|
69
|
+
return 2
|
|
70
|
+
}
|
|
71
|
+
if (abs >= 0.1) {
|
|
72
|
+
return 4
|
|
73
|
+
}
|
|
74
|
+
if (abs >= 0.01) {
|
|
75
|
+
return 5
|
|
76
|
+
}
|
|
77
|
+
return 6
|
|
78
|
+
}
|
|
79
|
+
|
|
80
|
+
/**
|
|
81
|
+
* Format a USD value, unsigned: `$1,234.50`, `-$1,500.00`, `$0.00`.
|
|
82
|
+
*
|
|
83
|
+
* Two decimal places with locale digit grouping. Negatives place the `-`
|
|
84
|
+
* before the `$`. Null/undefined/non-finite input renders the placeholder.
|
|
85
|
+
*
|
|
86
|
+
* @public
|
|
87
|
+
*/
|
|
88
|
+
export function formatUsd(
|
|
89
|
+
value: FormatInput,
|
|
90
|
+
options: FormatOptions = {}
|
|
91
|
+
): string {
|
|
92
|
+
const { decimals = 2, placeholder = DEFAULT_PLACEHOLDER, locale } = options
|
|
93
|
+
const n = toFiniteNumber(value)
|
|
94
|
+
if (n === null) {
|
|
95
|
+
return placeholder
|
|
96
|
+
}
|
|
97
|
+
const { sign, body } = signAndBody(n, decimals, locale, true)
|
|
98
|
+
return `${sign}$${body}`
|
|
99
|
+
}
|
|
100
|
+
|
|
101
|
+
/**
|
|
102
|
+
* Format a USD value with an explicit sign: `+$1.43`, `-$1.43`, `$0.00`.
|
|
103
|
+
*
|
|
104
|
+
* The sign is derived after rounding, so sub-cent magnitudes render `$0.00`
|
|
105
|
+
* (no spurious `+`/`-`). Null/undefined/non-finite input renders the
|
|
106
|
+
* placeholder.
|
|
107
|
+
*
|
|
108
|
+
* @public
|
|
109
|
+
*/
|
|
110
|
+
export function formatSignedUsd(
|
|
111
|
+
value: FormatInput,
|
|
112
|
+
options: FormatOptions = {}
|
|
113
|
+
): string {
|
|
114
|
+
const { decimals = 2, placeholder = DEFAULT_PLACEHOLDER, locale } = options
|
|
115
|
+
const n = toFiniteNumber(value)
|
|
116
|
+
if (n === null) {
|
|
117
|
+
return placeholder
|
|
118
|
+
}
|
|
119
|
+
const rounded = Number(n.toFixed(decimals))
|
|
120
|
+
const sign = rounded > 0 ? '+' : rounded < 0 ? '-' : ''
|
|
121
|
+
const body = Math.abs(rounded).toLocaleString(locale, {
|
|
122
|
+
minimumFractionDigits: decimals,
|
|
123
|
+
maximumFractionDigits: decimals,
|
|
124
|
+
useGrouping: true,
|
|
125
|
+
})
|
|
126
|
+
return `${sign}$${body}`
|
|
127
|
+
}
|
|
128
|
+
|
|
129
|
+
/**
|
|
130
|
+
* Format a percentage with an explicit sign and no grouping: `+1.43%`,
|
|
131
|
+
* `-1.43%`, `0.00%`.
|
|
132
|
+
*
|
|
133
|
+
* The sign is derived after rounding, so sub-threshold magnitudes render
|
|
134
|
+
* `0.00%`. Null/undefined/non-finite input renders the placeholder.
|
|
135
|
+
*
|
|
136
|
+
* @public
|
|
137
|
+
*/
|
|
138
|
+
export function formatSignedPercent(
|
|
139
|
+
value: FormatInput,
|
|
140
|
+
options: FormatOptions = {}
|
|
141
|
+
): string {
|
|
142
|
+
const { decimals = 2, placeholder = DEFAULT_PLACEHOLDER, locale } = options
|
|
143
|
+
const n = toFiniteNumber(value)
|
|
144
|
+
if (n === null) {
|
|
145
|
+
return placeholder
|
|
146
|
+
}
|
|
147
|
+
const rounded = Number(n.toFixed(decimals))
|
|
148
|
+
const sign = rounded > 0 ? '+' : rounded < 0 ? '-' : ''
|
|
149
|
+
const body = Math.abs(rounded).toLocaleString(locale, {
|
|
150
|
+
minimumFractionDigits: decimals,
|
|
151
|
+
maximumFractionDigits: decimals,
|
|
152
|
+
useGrouping: false,
|
|
153
|
+
})
|
|
154
|
+
return `${sign}${body}%`
|
|
155
|
+
}
|
|
156
|
+
|
|
157
|
+
/**
|
|
158
|
+
* Format a price, unsigned, with decimals auto-detected from magnitude:
|
|
159
|
+
* `$1,234.50`, `$0.1234`, `-$1,500.00`.
|
|
160
|
+
*
|
|
161
|
+
* Decimals follow {@link autoDecimals} unless `options.decimals` is given.
|
|
162
|
+
* Grouping applies once the absolute value reaches 1000. Negatives place the
|
|
163
|
+
* `-` before the `$`. Null/undefined/non-finite input renders the placeholder.
|
|
164
|
+
*
|
|
165
|
+
* @public
|
|
166
|
+
*/
|
|
167
|
+
export function formatPrice(
|
|
168
|
+
value: FormatInput,
|
|
169
|
+
options: FormatOptions = {}
|
|
170
|
+
): string {
|
|
171
|
+
const { placeholder = DEFAULT_PLACEHOLDER, locale } = options
|
|
172
|
+
const n = toFiniteNumber(value)
|
|
173
|
+
if (n === null) {
|
|
174
|
+
return placeholder
|
|
175
|
+
}
|
|
176
|
+
const abs = Math.abs(n)
|
|
177
|
+
const decimals = options.decimals ?? autoDecimals(abs)
|
|
178
|
+
const { sign, body } = signAndBody(n, decimals, locale, abs >= 1000)
|
|
179
|
+
return `${sign}$${body}`
|
|
180
|
+
}
|
|
181
|
+
|
|
182
|
+
/**
|
|
183
|
+
* Format a USD value compactly with a `B`/`M`/`K` suffix: `$1.23B`, `$45.6M`,
|
|
184
|
+
* `$789.0K`, `$12.34`.
|
|
185
|
+
*
|
|
186
|
+
* Negatives place the `-` before the `$`. Null/undefined/non-finite input
|
|
187
|
+
* renders the placeholder.
|
|
188
|
+
*
|
|
189
|
+
* @public
|
|
190
|
+
*/
|
|
191
|
+
export function formatCompactUsd(
|
|
192
|
+
value: FormatInput,
|
|
193
|
+
options: FormatOptions = {}
|
|
194
|
+
): string {
|
|
195
|
+
const { decimals = 2, placeholder = DEFAULT_PLACEHOLDER } = options
|
|
196
|
+
const n = toFiniteNumber(value)
|
|
197
|
+
if (n === null) {
|
|
198
|
+
return placeholder
|
|
199
|
+
}
|
|
200
|
+
const sign = n < 0 ? '-' : ''
|
|
201
|
+
const abs = Math.abs(n)
|
|
202
|
+
if (abs >= 1_000_000_000) {
|
|
203
|
+
return `${sign}$${(abs / 1_000_000_000).toFixed(decimals)}B`
|
|
204
|
+
}
|
|
205
|
+
if (abs >= 1_000_000) {
|
|
206
|
+
return `${sign}$${(abs / 1_000_000).toFixed(decimals)}M`
|
|
207
|
+
}
|
|
208
|
+
if (abs >= 1_000) {
|
|
209
|
+
return `${sign}$${(abs / 1_000).toFixed(decimals)}K`
|
|
210
|
+
}
|
|
211
|
+
return `${sign}$${abs.toFixed(decimals)}`
|
|
212
|
+
}
|