@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
|
@@ -1,121 +0,0 @@
|
|
|
1
|
-
// ---------------------------------------------------------------------------
|
|
2
|
-
// Lighter WebSocket message types
|
|
3
|
-
//
|
|
4
|
-
// The Lighter stream server sends JSON messages of shape:
|
|
5
|
-
// { type: 'subscribed/<channel>' | 'update/<channel>' | 'ping',
|
|
6
|
-
// channel: '<channel>/<id>',
|
|
7
|
-
// ...payload }
|
|
8
|
-
//
|
|
9
|
-
// Channels we subscribe to:
|
|
10
|
-
// - market_stats/all → public prices across all markets
|
|
11
|
-
// - order_book/{market_id} → bids/asks per market (stateful with deltas)
|
|
12
|
-
// ---------------------------------------------------------------------------
|
|
13
|
-
|
|
14
|
-
export type LtWsMessage = {
|
|
15
|
-
channel?: string
|
|
16
|
-
type: string
|
|
17
|
-
}
|
|
18
|
-
|
|
19
|
-
export type LtWsPingMessage = LtWsMessage & { type: 'ping' }
|
|
20
|
-
|
|
21
|
-
export type LtWsMarketStats = {
|
|
22
|
-
market_id: number
|
|
23
|
-
index_price: string
|
|
24
|
-
mark_price: string
|
|
25
|
-
open_interest: string
|
|
26
|
-
last_trade_price: string
|
|
27
|
-
current_funding_rate: string
|
|
28
|
-
funding_rate: string
|
|
29
|
-
funding_timestamp: number
|
|
30
|
-
daily_base_token_volume: string
|
|
31
|
-
daily_quote_token_volume: string
|
|
32
|
-
daily_price_change: string
|
|
33
|
-
}
|
|
34
|
-
|
|
35
|
-
/**
|
|
36
|
-
* `market_stats/all` pushes one record per known market each tick. We
|
|
37
|
-
* aggregate them into a Record<assetId, price> before emitting `prices`.
|
|
38
|
-
*/
|
|
39
|
-
export type LtWsMarketStatsAllMessage = LtWsMessage & {
|
|
40
|
-
type: 'subscribed/market_stats' | 'update/market_stats'
|
|
41
|
-
market_stats?: Record<string, LtWsMarketStats>
|
|
42
|
-
}
|
|
43
|
-
|
|
44
|
-
export type LtWsOrderBookLevel = {
|
|
45
|
-
price: string
|
|
46
|
-
size: string
|
|
47
|
-
}
|
|
48
|
-
|
|
49
|
-
export type LtWsOrderBook = {
|
|
50
|
-
asks: LtWsOrderBookLevel[]
|
|
51
|
-
bids: LtWsOrderBookLevel[]
|
|
52
|
-
offset?: number
|
|
53
|
-
}
|
|
54
|
-
|
|
55
|
-
export type LtWsOrderBookMessage = LtWsMessage & {
|
|
56
|
-
type: 'subscribed/order_book' | 'update/order_book'
|
|
57
|
-
order_book: LtWsOrderBook
|
|
58
|
-
}
|
|
59
|
-
|
|
60
|
-
export type LtOrderBookDetail = {
|
|
61
|
-
symbol: string
|
|
62
|
-
market_id: number
|
|
63
|
-
market_type: string
|
|
64
|
-
supported_price_decimals: number
|
|
65
|
-
supported_size_decimals: number
|
|
66
|
-
}
|
|
67
|
-
|
|
68
|
-
export type LtOrderBookDetailsResponse = {
|
|
69
|
-
code: number
|
|
70
|
-
order_book_details: LtOrderBookDetail[]
|
|
71
|
-
}
|
|
72
|
-
|
|
73
|
-
/**
|
|
74
|
-
* `/api/v1/account?by=l1_address` response. The provider only consumes the
|
|
75
|
-
* `index` field — everything else is intentionally typed as unknown.
|
|
76
|
-
*/
|
|
77
|
-
export type LtWsAccountByL1Response = {
|
|
78
|
-
code: number
|
|
79
|
-
accounts?: Array<{ index: number; [k: string]: unknown }>
|
|
80
|
-
}
|
|
81
|
-
|
|
82
|
-
/**
|
|
83
|
-
* Auth-channel payloads.
|
|
84
|
-
*
|
|
85
|
-
* The response `channel` field uses `:` as separator (e.g.
|
|
86
|
-
* `account_all_orders:42`) while the subscribe payload uses `/`.
|
|
87
|
-
*
|
|
88
|
-
* Per the Lighter WS spec:
|
|
89
|
-
* - orders/trades: object indexed by market index, each value an array
|
|
90
|
-
* (`{ "0": [Order], "1": [Order] }`)
|
|
91
|
-
* - positions: object indexed by market index, each value a single object
|
|
92
|
-
* (`{ "0": Position }`)
|
|
93
|
-
* - initial `account_all_trades` snapshot may send an empty flat array
|
|
94
|
-
*
|
|
95
|
-
* The provider uses `collectAuthChannelItems` to normalise all three shapes
|
|
96
|
-
* into a flat T[].
|
|
97
|
-
*/
|
|
98
|
-
export type LtWsAccountAllOrdersMessage = LtWsMessage & {
|
|
99
|
-
type: 'subscribed/account_all_orders' | 'update/account_all_orders'
|
|
100
|
-
orders?: Record<string, unknown[]> | unknown[]
|
|
101
|
-
data?: { orders?: Record<string, unknown[]> | unknown[] }
|
|
102
|
-
}
|
|
103
|
-
|
|
104
|
-
export type LtWsAccountAllTradesMessage = LtWsMessage & {
|
|
105
|
-
type: 'subscribed/account_all_trades' | 'update/account_all_trades'
|
|
106
|
-
trades?: Record<string, unknown[]> | unknown[]
|
|
107
|
-
total_volume?: number
|
|
108
|
-
monthly_volume?: number
|
|
109
|
-
weekly_volume?: number
|
|
110
|
-
daily_volume?: number
|
|
111
|
-
data?: { trades?: Record<string, unknown[]> | unknown[] }
|
|
112
|
-
}
|
|
113
|
-
|
|
114
|
-
export type LtWsAccountAllPositionsMessage = LtWsMessage & {
|
|
115
|
-
type: 'subscribed/account_all_positions' | 'update/account_all_positions'
|
|
116
|
-
positions?: Record<string, unknown>
|
|
117
|
-
shares?: unknown[]
|
|
118
|
-
last_funding_round?: Record<string, string>
|
|
119
|
-
last_funding_discount?: Record<string, string>
|
|
120
|
-
data?: { positions?: Record<string, unknown> }
|
|
121
|
-
}
|
package/src/realtime/types.ts
DELETED
|
@@ -1,16 +0,0 @@
|
|
|
1
|
-
import type { Subscription, SubscriptionEvent } from '@lifi/perps-types'
|
|
2
|
-
|
|
3
|
-
export type EventForSubscription<S extends Subscription> = Extract<
|
|
4
|
-
SubscriptionEvent,
|
|
5
|
-
{ channel: S['channel'] }
|
|
6
|
-
>
|
|
7
|
-
|
|
8
|
-
export type SubscriptionListener = (event: SubscriptionEvent) => void
|
|
9
|
-
|
|
10
|
-
export interface WsProvider {
|
|
11
|
-
subscribe(
|
|
12
|
-
sub: Subscription,
|
|
13
|
-
listener: SubscriptionListener
|
|
14
|
-
): Promise<() => void>
|
|
15
|
-
close(): void
|
|
16
|
-
}
|
package/src/services/getAsset.ts
DELETED
|
@@ -1,37 +0,0 @@
|
|
|
1
|
-
import type { Asset } from '@lifi/perps-types'
|
|
2
|
-
import type {
|
|
3
|
-
PerpsSDKClient,
|
|
4
|
-
SDKRequestOptions,
|
|
5
|
-
} from '../client/createPerpsClient.js'
|
|
6
|
-
import { buildUrl, request } from '../utils/request.js'
|
|
7
|
-
|
|
8
|
-
export interface GetAssetParams {
|
|
9
|
-
/** Provider to get asset from (e.g., 'hyperliquid') */
|
|
10
|
-
provider: string
|
|
11
|
-
/** Asset symbol (e.g., 'BTC') */
|
|
12
|
-
symbol: string
|
|
13
|
-
}
|
|
14
|
-
|
|
15
|
-
/**
|
|
16
|
-
* Get a specific asset by symbol.
|
|
17
|
-
*
|
|
18
|
-
* @example
|
|
19
|
-
* ```ts
|
|
20
|
-
* const client = createPerpsClient({ integrator: 'my-app' })
|
|
21
|
-
* const asset = await getAsset(client, { provider: 'hyperliquid', symbol: 'BTC' })
|
|
22
|
-
* console.log(asset) // { symbol: 'BTC', markPrice: '95000.00', ... }
|
|
23
|
-
* ```
|
|
24
|
-
*/
|
|
25
|
-
export async function getAsset(
|
|
26
|
-
client: PerpsSDKClient,
|
|
27
|
-
params: GetAssetParams,
|
|
28
|
-
options?: SDKRequestOptions
|
|
29
|
-
): Promise<Asset> {
|
|
30
|
-
const url = buildUrl(
|
|
31
|
-
`${client.config.apiUrl}/assets/${encodeURIComponent(params.symbol)}`,
|
|
32
|
-
{
|
|
33
|
-
provider: params.provider,
|
|
34
|
-
}
|
|
35
|
-
)
|
|
36
|
-
return request<Asset>(client.config, url, {}, options)
|
|
37
|
-
}
|
|
@@ -1,74 +0,0 @@
|
|
|
1
|
-
import type { Address } from '@lifi/perps-types'
|
|
2
|
-
import type { StorageAdapter } from '../../agent/types.js'
|
|
3
|
-
|
|
4
|
-
// ---------------------------------------------------------------------------
|
|
5
|
-
// LighterKeyStore
|
|
6
|
-
//
|
|
7
|
-
// Persists the Lighter-native API keypair plus account/key indices per L1
|
|
8
|
-
// user address. Unlike AgentManager, the private key here is a Lighter custom
|
|
9
|
-
// keypair — generated via WASM GenerateAPIKey — not an Ethereum private key.
|
|
10
|
-
//
|
|
11
|
-
// We namespace the storage key by provider (`lighter`) so the same user can
|
|
12
|
-
// later hold credentials for other WASM-blob providers without collision.
|
|
13
|
-
// ---------------------------------------------------------------------------
|
|
14
|
-
|
|
15
|
-
const STORAGE_PREFIX = 'lifi-perps-lighter-key'
|
|
16
|
-
export const LIGHTER_PROVIDER_KEY = 'lighter'
|
|
17
|
-
|
|
18
|
-
/**
|
|
19
|
-
* Default API key slot. Reusing one slot is deliberate: Lighter allows 256
|
|
20
|
-
* slots per account but re-registering a slot overwrites the prior key, so
|
|
21
|
-
* a fixed slot keeps storage small and recovery simple.
|
|
22
|
-
*/
|
|
23
|
-
export const DEFAULT_API_KEY_INDEX = 1
|
|
24
|
-
|
|
25
|
-
export interface LighterApiKey {
|
|
26
|
-
/** Lighter account index, looked up once via accountsByL1Address. */
|
|
27
|
-
accountIndex: number
|
|
28
|
-
/** API key slot (0-255). Defaults to {@link DEFAULT_API_KEY_INDEX}. */
|
|
29
|
-
apiKeyIndex: number
|
|
30
|
-
/** Lighter-native private key (0x-prefixed hex). */
|
|
31
|
-
apiKeyPrivateKey: string
|
|
32
|
-
/** Corresponding public key, registered via ChangePubKey. */
|
|
33
|
-
apiKeyPublicKey: string
|
|
34
|
-
}
|
|
35
|
-
|
|
36
|
-
export class LighterKeyStore {
|
|
37
|
-
private readonly storage: StorageAdapter
|
|
38
|
-
private readonly cache = new Map<string, LighterApiKey>()
|
|
39
|
-
|
|
40
|
-
constructor(storage: StorageAdapter) {
|
|
41
|
-
this.storage = storage
|
|
42
|
-
}
|
|
43
|
-
|
|
44
|
-
private storageKey(address: Address): string {
|
|
45
|
-
return `${STORAGE_PREFIX}:${address.toLowerCase()}`
|
|
46
|
-
}
|
|
47
|
-
|
|
48
|
-
async get(address: Address): Promise<LighterApiKey | null> {
|
|
49
|
-
const key = this.storageKey(address)
|
|
50
|
-
const cached = this.cache.get(key)
|
|
51
|
-
if (cached) {
|
|
52
|
-
return cached
|
|
53
|
-
}
|
|
54
|
-
const stored = await this.storage.get(key)
|
|
55
|
-
if (!stored) {
|
|
56
|
-
return null
|
|
57
|
-
}
|
|
58
|
-
const parsed = JSON.parse(stored) as LighterApiKey
|
|
59
|
-
this.cache.set(key, parsed)
|
|
60
|
-
return parsed
|
|
61
|
-
}
|
|
62
|
-
|
|
63
|
-
async set(address: Address, value: LighterApiKey): Promise<void> {
|
|
64
|
-
const key = this.storageKey(address)
|
|
65
|
-
this.cache.set(key, value)
|
|
66
|
-
await this.storage.set(key, JSON.stringify(value))
|
|
67
|
-
}
|
|
68
|
-
|
|
69
|
-
async remove(address: Address): Promise<void> {
|
|
70
|
-
const key = this.storageKey(address)
|
|
71
|
-
this.cache.delete(key)
|
|
72
|
-
await this.storage.remove(key)
|
|
73
|
-
}
|
|
74
|
-
}
|
|
@@ -1,358 +0,0 @@
|
|
|
1
|
-
import type {
|
|
2
|
-
Address,
|
|
3
|
-
ApproveReadOnlyTokenParams,
|
|
4
|
-
LighterAccountConfig,
|
|
5
|
-
} from '@lifi/perps-types'
|
|
6
|
-
import { PerpsErrorCode } from '@lifi/perps-types'
|
|
7
|
-
import type { Account, WalletClient } from 'viem'
|
|
8
|
-
import { localStorageAdapter } from '../../agent/storage.js'
|
|
9
|
-
import type { StorageAdapter } from '../../agent/types.js'
|
|
10
|
-
import { PerpsError } from '../../errors/PerpsError.js'
|
|
11
|
-
|
|
12
|
-
const STORAGE_PREFIX = 'lifi:perps:lighter:rotoken'
|
|
13
|
-
|
|
14
|
-
/**
|
|
15
|
-
* Default Lighter HTTP host the SDK posts the mint request to. Callers
|
|
16
|
-
* pointing at testnet pass an override via {@link LighterReadOnlyTokenManagerOptions.lighterApiUrl}.
|
|
17
|
-
*/
|
|
18
|
-
export const DEFAULT_LIGHTER_API_URL = 'https://mainnet.zklighter.elliot.ai'
|
|
19
|
-
|
|
20
|
-
/**
|
|
21
|
-
* Default token name persisted alongside Lighter's `tokens/create` row.
|
|
22
|
-
* Lighter requires a non-empty `name` form field; the literal here is what
|
|
23
|
-
* surfaces in Lighter's UI listing under `app.lighter.xyz/read-only-tokens`.
|
|
24
|
-
*/
|
|
25
|
-
export const DEFAULT_READ_ONLY_TOKEN_NAME = 'LI.FI Perps'
|
|
26
|
-
|
|
27
|
-
/**
|
|
28
|
-
* Persisted shape of a Lighter read-only token. The `token` string is
|
|
29
|
-
* Lighter's opaque `ro:{accountIndex}:{scope}:{expiry}:{rand}` bearer; the
|
|
30
|
-
* SDK never parses it — `expiry`/`scope`/`accountIndex` are mint-time inputs
|
|
31
|
-
* we keep alongside so consumers can render expiry UX without re-fetching.
|
|
32
|
-
*/
|
|
33
|
-
export interface LighterReadOnlyToken {
|
|
34
|
-
/** Opaque bearer string — never parse client-side. */
|
|
35
|
-
token: string
|
|
36
|
-
/** Unix seconds. The SDK's source of truth for expiry. */
|
|
37
|
-
expiry: number
|
|
38
|
-
/** Lighter's `single | all` scope literal recorded at mint time. */
|
|
39
|
-
scope: 'single' | 'all'
|
|
40
|
-
/** Lighter L2 account index the token authorises. */
|
|
41
|
-
accountIndex: number
|
|
42
|
-
}
|
|
43
|
-
|
|
44
|
-
/**
|
|
45
|
-
* Lighter `POST /api/v1/tokens/create` response shape (subset). Lighter's
|
|
46
|
-
* OpenAPI documents additional fields (`token_id`, `name`, `revoked`, etc.)
|
|
47
|
-
* we don't need client-side.
|
|
48
|
-
*/
|
|
49
|
-
export interface LighterCreateTokenResponse {
|
|
50
|
-
api_token: string
|
|
51
|
-
account_index: number
|
|
52
|
-
expiry: number
|
|
53
|
-
scopes: string
|
|
54
|
-
}
|
|
55
|
-
|
|
56
|
-
/**
|
|
57
|
-
* Function injected for the HTTP boundary against Lighter's `tokens/create`
|
|
58
|
-
* endpoint. Returning a parsed {@link LighterCreateTokenResponse} keeps the
|
|
59
|
-
* mint code free of fetch/multipart plumbing and lets tests drop a fixture
|
|
60
|
-
* in without spinning a mock server.
|
|
61
|
-
*/
|
|
62
|
-
export type LighterTokenFetcher = (params: {
|
|
63
|
-
url: string
|
|
64
|
-
authorization: string
|
|
65
|
-
name: string
|
|
66
|
-
accountIndex: number
|
|
67
|
-
expiry: number
|
|
68
|
-
subAccountAccess: boolean
|
|
69
|
-
scopes: string
|
|
70
|
-
}) => Promise<LighterCreateTokenResponse>
|
|
71
|
-
|
|
72
|
-
/**
|
|
73
|
-
* Function injected for the L1 wallet signature. Signature MUST be EIP-191
|
|
74
|
-
* `personal_sign`. Returning a 0x-prefixed hex string keeps the mint path
|
|
75
|
-
* agnostic to whichever wallet abstraction the consumer wires up.
|
|
76
|
-
*/
|
|
77
|
-
export type LighterWalletSigner = (params: {
|
|
78
|
-
address: Address
|
|
79
|
-
message: string
|
|
80
|
-
}) => Promise<string>
|
|
81
|
-
|
|
82
|
-
export interface LighterReadOnlyTokenManagerOptions {
|
|
83
|
-
storage?: StorageAdapter
|
|
84
|
-
/** Lighter API host. Defaults to {@link DEFAULT_LIGHTER_API_URL}. */
|
|
85
|
-
lighterApiUrl?: string
|
|
86
|
-
/** Override the multipart POST. Defaults to a `fetch`-based implementation. */
|
|
87
|
-
fetcher?: LighterTokenFetcher
|
|
88
|
-
/** Clock injection for testing expiry logic. Defaults to `Date.now`. */
|
|
89
|
-
now?: () => number
|
|
90
|
-
}
|
|
91
|
-
|
|
92
|
-
export interface ApproveReadOnlyTokenInputs extends ApproveReadOnlyTokenParams {
|
|
93
|
-
/** L1 wallet address that signs the mint message. */
|
|
94
|
-
address: Address
|
|
95
|
-
}
|
|
96
|
-
|
|
97
|
-
export interface ApproveReadOnlyTokenResult {
|
|
98
|
-
token: LighterReadOnlyToken
|
|
99
|
-
/** Projection of the post-mint Lighter account state. */
|
|
100
|
-
config: Pick<
|
|
101
|
-
LighterAccountConfig,
|
|
102
|
-
| 'provider'
|
|
103
|
-
| 'accountIndex'
|
|
104
|
-
| 'readOnlyTokenApproved'
|
|
105
|
-
| 'readOnlyTokenExpiry'
|
|
106
|
-
| 'readOnlyTokenScope'
|
|
107
|
-
>
|
|
108
|
-
}
|
|
109
|
-
|
|
110
|
-
const SECONDS_PER_DAY = 86_400
|
|
111
|
-
|
|
112
|
-
/**
|
|
113
|
-
* Manage the per-account Lighter read-only token alongside the existing
|
|
114
|
-
* `(L1 address, account index)`-scoped storage adapter pattern. Mirrors
|
|
115
|
-
* `AgentManager`'s injection surface so the same `StorageAdapter` powers
|
|
116
|
-
* both. The token is opaque — never parsed client-side; `expiry`/`scope`
|
|
117
|
-
* recorded at mint time are the source of truth.
|
|
118
|
-
*
|
|
119
|
-
* The L1 wallet signer and the HTTP fetcher are both injectable so unit
|
|
120
|
-
* tests don't need a real wallet or network.
|
|
121
|
-
*/
|
|
122
|
-
export class LighterReadOnlyTokenManager {
|
|
123
|
-
private readonly storage: StorageAdapter
|
|
124
|
-
private readonly lighterApiUrl: string
|
|
125
|
-
private readonly fetcher: LighterTokenFetcher
|
|
126
|
-
private readonly now: () => number
|
|
127
|
-
private readonly cache = new Map<string, LighterReadOnlyToken>()
|
|
128
|
-
|
|
129
|
-
constructor(options: LighterReadOnlyTokenManagerOptions = {}) {
|
|
130
|
-
this.storage = options.storage ?? localStorageAdapter
|
|
131
|
-
this.lighterApiUrl = options.lighterApiUrl ?? DEFAULT_LIGHTER_API_URL
|
|
132
|
-
this.fetcher = options.fetcher ?? defaultLighterTokenFetcher
|
|
133
|
-
this.now = options.now ?? (() => Date.now())
|
|
134
|
-
}
|
|
135
|
-
|
|
136
|
-
private storageKey(address: Address, accountIndex: number): string {
|
|
137
|
-
return `${STORAGE_PREFIX}:${address.toLowerCase()}:${accountIndex}`
|
|
138
|
-
}
|
|
139
|
-
|
|
140
|
-
private isExpired(token: LighterReadOnlyToken): boolean {
|
|
141
|
-
return token.expiry * 1000 <= this.now()
|
|
142
|
-
}
|
|
143
|
-
|
|
144
|
-
/**
|
|
145
|
-
* Return the stored token for the `(address, accountIndex)` pair, or
|
|
146
|
-
* `undefined` if absent or past its `expiry`. Never surfaces an expired
|
|
147
|
-
* token — consumers can rely on the return value being usable as-is.
|
|
148
|
-
*/
|
|
149
|
-
async get(
|
|
150
|
-
address: Address,
|
|
151
|
-
accountIndex: number
|
|
152
|
-
): Promise<LighterReadOnlyToken | undefined> {
|
|
153
|
-
const key = this.storageKey(address, accountIndex)
|
|
154
|
-
const cached = this.cache.get(key)
|
|
155
|
-
if (cached) {
|
|
156
|
-
return this.isExpired(cached) ? undefined : cached
|
|
157
|
-
}
|
|
158
|
-
const raw = await this.storage.get(key)
|
|
159
|
-
if (!raw) {
|
|
160
|
-
return undefined
|
|
161
|
-
}
|
|
162
|
-
const parsed = JSON.parse(raw) as LighterReadOnlyToken
|
|
163
|
-
if (this.isExpired(parsed)) {
|
|
164
|
-
return undefined
|
|
165
|
-
}
|
|
166
|
-
this.cache.set(key, parsed)
|
|
167
|
-
return parsed
|
|
168
|
-
}
|
|
169
|
-
|
|
170
|
-
/**
|
|
171
|
-
* `true` when a stored token exists AND its `expiry` falls within
|
|
172
|
-
* `thresholdDays` of now. `false` when no token exists, when the token is
|
|
173
|
-
* already expired (caller should treat that as "no token"), or when it
|
|
174
|
-
* has more than `thresholdDays` of life left.
|
|
175
|
-
*/
|
|
176
|
-
async isReadOnlyTokenExpiringSoon(
|
|
177
|
-
address: Address,
|
|
178
|
-
accountIndex: number,
|
|
179
|
-
thresholdDays = 30
|
|
180
|
-
): Promise<boolean> {
|
|
181
|
-
const key = this.storageKey(address, accountIndex)
|
|
182
|
-
const raw =
|
|
183
|
-
this.cache.get(key) ??
|
|
184
|
-
(await (async () => {
|
|
185
|
-
const stored = await this.storage.get(key)
|
|
186
|
-
return stored ? (JSON.parse(stored) as LighterReadOnlyToken) : undefined
|
|
187
|
-
})())
|
|
188
|
-
if (!raw) {
|
|
189
|
-
return false
|
|
190
|
-
}
|
|
191
|
-
const remainingSeconds = raw.expiry - Math.floor(this.now() / 1000)
|
|
192
|
-
if (remainingSeconds <= 0) {
|
|
193
|
-
return false
|
|
194
|
-
}
|
|
195
|
-
return remainingSeconds <= thresholdDays * SECONDS_PER_DAY
|
|
196
|
-
}
|
|
197
|
-
|
|
198
|
-
/**
|
|
199
|
-
* Persist `token` for the `(address, accountIndex)` pair. Overwrites any
|
|
200
|
-
* prior stored token under the same key — used both by the approve flow
|
|
201
|
-
* and by the renewal flow.
|
|
202
|
-
*/
|
|
203
|
-
async set(
|
|
204
|
-
address: Address,
|
|
205
|
-
accountIndex: number,
|
|
206
|
-
token: LighterReadOnlyToken
|
|
207
|
-
): Promise<void> {
|
|
208
|
-
const key = this.storageKey(address, accountIndex)
|
|
209
|
-
this.cache.set(key, token)
|
|
210
|
-
await this.storage.set(key, JSON.stringify(token))
|
|
211
|
-
}
|
|
212
|
-
|
|
213
|
-
async remove(address: Address, accountIndex: number): Promise<void> {
|
|
214
|
-
const key = this.storageKey(address, accountIndex)
|
|
215
|
-
this.cache.delete(key)
|
|
216
|
-
await this.storage.remove(key)
|
|
217
|
-
}
|
|
218
|
-
|
|
219
|
-
/**
|
|
220
|
-
* Mint and persist a new Lighter read-only token.
|
|
221
|
-
*
|
|
222
|
-
* Asks `signer` to produce an EIP-191 `personal_sign` over the
|
|
223
|
-
* `createToken`-specific L1 message, POSTs the signed payload to Lighter's
|
|
224
|
-
* `/api/v1/tokens/create` via the injected `fetcher`, and persists the
|
|
225
|
-
* returned bearer alongside its `expiry`/`scope`/`accountIndex`.
|
|
226
|
-
*
|
|
227
|
-
* `expirySeconds` is the absolute unix-seconds expiry Lighter records on
|
|
228
|
-
* the row. Lighter enforces 1 day ≤ lifetime ≤ 10 years server-side; the
|
|
229
|
-
* SDK does NOT pre-validate and surfaces Lighter's 400 verbatim.
|
|
230
|
-
*
|
|
231
|
-
* `scope` defaults to `'all'` (token authorises read access to every
|
|
232
|
-
* account owned by the L1 signer). `'single'` is wired through so callers
|
|
233
|
-
* who need per-account scoping can opt in.
|
|
234
|
-
*
|
|
235
|
-
* @param signer EIP-191 wallet signer for the L1 message.
|
|
236
|
-
* @param inputs Token-mint parameters plus the L1 `address` that signs.
|
|
237
|
-
*/
|
|
238
|
-
async approve(
|
|
239
|
-
signer: LighterWalletSigner,
|
|
240
|
-
inputs: ApproveReadOnlyTokenInputs
|
|
241
|
-
): Promise<ApproveReadOnlyTokenResult> {
|
|
242
|
-
const { address, accountIndex, expirySeconds, scope } = inputs
|
|
243
|
-
const message = buildReadOnlyTokenMessage({
|
|
244
|
-
accountIndex,
|
|
245
|
-
expirySeconds,
|
|
246
|
-
scope,
|
|
247
|
-
})
|
|
248
|
-
const authorization = await signer({ address, message })
|
|
249
|
-
|
|
250
|
-
const response = await this.fetcher({
|
|
251
|
-
url: `${this.lighterApiUrl}/api/v1/tokens/create`,
|
|
252
|
-
authorization,
|
|
253
|
-
name: DEFAULT_READ_ONLY_TOKEN_NAME,
|
|
254
|
-
accountIndex,
|
|
255
|
-
expiry: expirySeconds,
|
|
256
|
-
subAccountAccess: scope === 'all',
|
|
257
|
-
scopes: scope,
|
|
258
|
-
})
|
|
259
|
-
|
|
260
|
-
const token: LighterReadOnlyToken = {
|
|
261
|
-
token: response.api_token,
|
|
262
|
-
expiry: response.expiry,
|
|
263
|
-
// Lighter echoes the literal we sent; we trust ours over the wire
|
|
264
|
-
// string so we never desynchronise the persisted shape from
|
|
265
|
-
// the typed `'single' | 'all'` discriminator.
|
|
266
|
-
scope,
|
|
267
|
-
accountIndex: response.account_index,
|
|
268
|
-
}
|
|
269
|
-
await this.set(address, token.accountIndex, token)
|
|
270
|
-
|
|
271
|
-
return {
|
|
272
|
-
token,
|
|
273
|
-
config: {
|
|
274
|
-
provider: 'lighter',
|
|
275
|
-
accountIndex: token.accountIndex,
|
|
276
|
-
readOnlyTokenApproved: true,
|
|
277
|
-
readOnlyTokenExpiry: token.expiry,
|
|
278
|
-
readOnlyTokenScope: token.scope,
|
|
279
|
-
},
|
|
280
|
-
}
|
|
281
|
-
}
|
|
282
|
-
}
|
|
283
|
-
|
|
284
|
-
/**
|
|
285
|
-
* Build the EIP-191 message the user's L1 wallet signs to authorise a
|
|
286
|
-
* Lighter `tokens/create` request.
|
|
287
|
-
*
|
|
288
|
-
* NOTE — Lighter's public docs do not fully specify the message template
|
|
289
|
-
* for the read-only token mint flow. The shape here is the SDK's best-fit
|
|
290
|
-
* given (a) Lighter's UI hosts the equivalent flow at
|
|
291
|
-
* `app.lighter.xyz/read-only-tokens` and (b) Lighter's `tokens/create`
|
|
292
|
-
* endpoint reads `account_index`, `expiry`, and `scopes` as form fields.
|
|
293
|
-
* If Lighter publishes a documented template that diverges, update this
|
|
294
|
-
* builder — the test fixtures will fail loudly.
|
|
295
|
-
*/
|
|
296
|
-
export function buildReadOnlyTokenMessage(params: {
|
|
297
|
-
accountIndex: number
|
|
298
|
-
expirySeconds: number
|
|
299
|
-
scope: 'single' | 'all'
|
|
300
|
-
}): string {
|
|
301
|
-
return [
|
|
302
|
-
'Lighter Read-Only Token',
|
|
303
|
-
`account_index=${params.accountIndex}`,
|
|
304
|
-
`expiry=${params.expirySeconds}`,
|
|
305
|
-
`scopes=${params.scope}`,
|
|
306
|
-
].join('\n')
|
|
307
|
-
}
|
|
308
|
-
|
|
309
|
-
/**
|
|
310
|
-
* Default fetcher: posts a multipart/form-data request to Lighter's
|
|
311
|
-
* `tokens/create` endpoint and returns the parsed response. Throws a
|
|
312
|
-
* {@link PerpsError} with the Lighter-side body when the response is
|
|
313
|
-
* non-2xx.
|
|
314
|
-
*/
|
|
315
|
-
export const defaultLighterTokenFetcher: LighterTokenFetcher = async ({
|
|
316
|
-
url,
|
|
317
|
-
authorization,
|
|
318
|
-
name,
|
|
319
|
-
accountIndex,
|
|
320
|
-
expiry,
|
|
321
|
-
subAccountAccess,
|
|
322
|
-
scopes,
|
|
323
|
-
}) => {
|
|
324
|
-
const form = new FormData()
|
|
325
|
-
form.set('name', name)
|
|
326
|
-
form.set('account_index', String(accountIndex))
|
|
327
|
-
form.set('expiry', String(expiry))
|
|
328
|
-
form.set('sub_account_access', String(subAccountAccess))
|
|
329
|
-
form.set('scopes', scopes)
|
|
330
|
-
|
|
331
|
-
const response = await fetch(url, {
|
|
332
|
-
method: 'POST',
|
|
333
|
-
headers: { authorization },
|
|
334
|
-
body: form,
|
|
335
|
-
})
|
|
336
|
-
|
|
337
|
-
if (!response.ok) {
|
|
338
|
-
const body = await response.text()
|
|
339
|
-
throw new PerpsError(
|
|
340
|
-
PerpsErrorCode.ServerError,
|
|
341
|
-
`Lighter tokens/create returned ${response.status}: ${body || '<empty>'}`
|
|
342
|
-
)
|
|
343
|
-
}
|
|
344
|
-
|
|
345
|
-
return (await response.json()) as LighterCreateTokenResponse
|
|
346
|
-
}
|
|
347
|
-
|
|
348
|
-
/**
|
|
349
|
-
* Adapter producing a {@link LighterWalletSigner} from a viem
|
|
350
|
-
* `WalletClient`. Pulled out so `PerpsClient.approveReadOnlyToken` can call
|
|
351
|
-
* into the manager without leaking viem types past the manager's boundary.
|
|
352
|
-
*/
|
|
353
|
-
export function walletClientSigner(
|
|
354
|
-
client: WalletClient<any, any, Account>
|
|
355
|
-
): LighterWalletSigner {
|
|
356
|
-
return ({ message }) =>
|
|
357
|
-
client.signMessage({ account: client.account, message })
|
|
358
|
-
}
|