@lifi/perps-sdk 0.1.1-alpha.4 → 0.1.1-alpha.40
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 +38 -15
- package/dist/cjs/agent/AgentManager.d.ts +5 -5
- package/dist/cjs/agent/AgentManager.d.ts.map +1 -1
- package/dist/cjs/agent/AgentManager.js +16 -14
- package/dist/cjs/agent/AgentManager.js.map +1 -1
- package/dist/cjs/client/PerpsClient.d.ts +70 -21
- package/dist/cjs/client/PerpsClient.d.ts.map +1 -1
- package/dist/cjs/client/PerpsClient.js +323 -175
- package/dist/cjs/client/PerpsClient.js.map +1 -1
- package/dist/cjs/client/createPerpsClient.d.ts +12 -2
- package/dist/cjs/client/createPerpsClient.d.ts.map +1 -1
- package/dist/cjs/client/createPerpsClient.js +6 -5
- package/dist/cjs/client/createPerpsClient.js.map +1 -1
- package/dist/cjs/client/types.d.ts +42 -25
- package/dist/cjs/client/types.d.ts.map +1 -1
- package/dist/cjs/client/types.js +6 -0
- package/dist/cjs/client/types.js.map +1 -1
- package/dist/cjs/errors/PerpsError.d.ts +2 -3
- package/dist/cjs/errors/PerpsError.d.ts.map +1 -1
- package/dist/cjs/errors/PerpsError.js +3 -15
- package/dist/cjs/errors/PerpsError.js.map +1 -1
- package/dist/cjs/errors/constants.d.ts +0 -10
- package/dist/cjs/errors/constants.d.ts.map +1 -1
- package/dist/cjs/errors/constants.js +1 -12
- package/dist/cjs/errors/constants.js.map +1 -1
- package/dist/cjs/index.d.ts +31 -32
- package/dist/cjs/index.d.ts.map +1 -1
- package/dist/cjs/index.js +58 -42
- package/dist/cjs/index.js.map +1 -1
- package/dist/cjs/realtime/PerpsWsClient.d.ts +1 -0
- package/dist/cjs/realtime/PerpsWsClient.d.ts.map +1 -1
- package/dist/cjs/realtime/PerpsWsClient.js +28 -23
- package/dist/cjs/realtime/PerpsWsClient.js.map +1 -1
- package/dist/cjs/realtime/hyperliquid/HyperliquidWsProvider.d.ts +9 -5
- package/dist/cjs/realtime/hyperliquid/HyperliquidWsProvider.d.ts.map +1 -1
- package/dist/cjs/realtime/hyperliquid/HyperliquidWsProvider.js +162 -52
- package/dist/cjs/realtime/hyperliquid/HyperliquidWsProvider.js.map +1 -1
- package/dist/cjs/realtime/hyperliquid/types.d.ts +11 -9
- package/dist/cjs/realtime/hyperliquid/types.d.ts.map +1 -1
- package/dist/cjs/services/createAction.d.ts +11 -0
- package/dist/cjs/services/createAction.d.ts.map +1 -0
- package/dist/cjs/services/{submitAuthorization.js → createAction.js} +7 -6
- package/dist/cjs/services/createAction.js.map +1 -0
- package/dist/cjs/services/executeAction.d.ts +11 -0
- package/dist/cjs/services/executeAction.d.ts.map +1 -0
- package/dist/cjs/services/{submitOrder.js → executeAction.js} +6 -5
- package/dist/cjs/services/executeAction.js.map +1 -0
- package/dist/cjs/services/getAccount.d.ts +1 -1
- package/dist/cjs/services/getAccount.d.ts.map +1 -1
- package/dist/cjs/services/getAccount.js +1 -1
- package/dist/cjs/services/getAccount.js.map +1 -1
- package/dist/cjs/services/getActivity.d.ts +13 -0
- package/dist/cjs/services/getActivity.d.ts.map +1 -0
- package/dist/cjs/services/getActivity.js +21 -0
- package/dist/cjs/services/getActivity.js.map +1 -0
- package/dist/cjs/services/getAsset.d.ts +8 -0
- package/dist/cjs/services/getAsset.d.ts.map +1 -0
- package/dist/cjs/services/{getMarkets.js → getAsset.js} +6 -4
- package/dist/cjs/services/getAsset.js.map +1 -0
- package/dist/cjs/services/getAssets.d.ts +7 -0
- package/dist/cjs/services/getAssets.d.ts.map +1 -0
- package/dist/cjs/services/{getMarket.js → getAssets.js} +5 -5
- package/dist/cjs/services/getAssets.js.map +1 -0
- package/dist/cjs/services/getFills.d.ts +12 -0
- package/dist/cjs/services/getFills.d.ts.map +1 -0
- package/dist/cjs/services/{getHistory.js → getFills.js} +7 -5
- package/dist/cjs/services/getFills.js.map +1 -0
- package/dist/cjs/services/getOhlcv.d.ts +1 -1
- package/dist/cjs/services/getOhlcv.d.ts.map +1 -1
- package/dist/cjs/services/getOhlcv.js +1 -1
- package/dist/cjs/services/getOhlcv.js.map +1 -1
- package/dist/cjs/services/getOrder.d.ts +1 -1
- package/dist/cjs/services/getOrder.d.ts.map +1 -1
- package/dist/cjs/services/getOrder.js +1 -1
- package/dist/cjs/services/getOrder.js.map +1 -1
- package/dist/cjs/services/getOrderbook.d.ts +1 -1
- package/dist/cjs/services/getOrderbook.d.ts.map +1 -1
- package/dist/cjs/services/getOrderbook.js +1 -1
- package/dist/cjs/services/getOrderbook.js.map +1 -1
- package/dist/cjs/services/getOrders.d.ts +11 -0
- package/dist/cjs/services/getOrders.d.ts.map +1 -0
- package/dist/cjs/services/getOrders.js +15 -0
- package/dist/cjs/services/getOrders.js.map +1 -0
- package/dist/cjs/services/getPositions.d.ts +11 -0
- package/dist/cjs/services/getPositions.d.ts.map +1 -0
- package/dist/cjs/services/getPositions.js +15 -0
- package/dist/cjs/services/getPositions.js.map +1 -0
- package/dist/cjs/services/getPrices.d.ts +1 -1
- package/dist/cjs/services/getPrices.d.ts.map +1 -1
- package/dist/cjs/services/getPrices.js +1 -1
- package/dist/cjs/services/getPrices.js.map +1 -1
- package/dist/cjs/services/getProviders.d.ts +4 -0
- package/dist/cjs/services/getProviders.d.ts.map +1 -0
- package/dist/cjs/services/{getDexes.js → getProviders.js} +4 -4
- package/dist/cjs/services/getProviders.js.map +1 -0
- package/dist/cjs/utils/accountSummary.d.ts +9 -0
- package/dist/cjs/utils/accountSummary.d.ts.map +1 -0
- package/dist/cjs/utils/accountSummary.js +81 -0
- package/dist/cjs/utils/accountSummary.js.map +1 -0
- package/dist/cjs/utils/calculations.d.ts +16 -0
- package/dist/cjs/utils/calculations.d.ts.map +1 -0
- package/dist/cjs/utils/calculations.js +71 -0
- package/dist/cjs/utils/calculations.js.map +1 -0
- package/dist/cjs/utils/hyperliquid/index.d.ts +3 -0
- package/dist/cjs/utils/hyperliquid/index.d.ts.map +1 -0
- package/dist/cjs/utils/hyperliquid/index.js +11 -0
- package/dist/cjs/utils/hyperliquid/index.js.map +1 -0
- package/dist/cjs/utils/hyperliquid/liquidation.d.ts +3 -0
- package/dist/cjs/utils/hyperliquid/liquidation.d.ts.map +1 -0
- package/dist/cjs/utils/hyperliquid/liquidation.js +24 -0
- package/dist/cjs/utils/hyperliquid/liquidation.js.map +1 -0
- package/dist/cjs/utils/hyperliquid/orderFormatting.d.ts +4 -0
- package/dist/cjs/utils/hyperliquid/orderFormatting.d.ts.map +1 -0
- package/dist/cjs/utils/hyperliquid/orderFormatting.js +33 -0
- package/dist/cjs/utils/hyperliquid/orderFormatting.js.map +1 -0
- package/dist/cjs/utils/orderClassification.d.ts +8 -0
- package/dist/cjs/utils/orderClassification.d.ts.map +1 -0
- package/dist/cjs/utils/orderClassification.js +39 -0
- package/dist/cjs/utils/orderClassification.js.map +1 -0
- package/dist/cjs/utils/parse.d.ts +2 -0
- package/dist/cjs/utils/parse.d.ts.map +1 -0
- package/dist/cjs/utils/parse.js +14 -0
- package/dist/cjs/utils/parse.js.map +1 -0
- package/dist/cjs/utils/request.d.ts.map +1 -1
- package/dist/cjs/utils/request.js +16 -4
- package/dist/cjs/utils/request.js.map +1 -1
- package/dist/cjs/utils/units.d.ts +3 -0
- package/dist/cjs/utils/units.d.ts.map +1 -0
- package/dist/cjs/utils/units.js +18 -0
- package/dist/cjs/utils/units.js.map +1 -0
- package/dist/cjs/utils/validation.d.ts +2 -0
- package/dist/cjs/utils/validation.d.ts.map +1 -0
- package/dist/cjs/utils/validation.js +16 -0
- package/dist/cjs/utils/validation.js.map +1 -0
- package/dist/cjs/version.d.ts +1 -1
- package/dist/cjs/version.d.ts.map +1 -1
- package/dist/cjs/version.js +1 -1
- package/dist/cjs/version.js.map +1 -1
- package/dist/esm/agent/AgentManager.d.ts +9 -9
- package/dist/esm/agent/AgentManager.d.ts.map +1 -1
- package/dist/esm/agent/AgentManager.js +20 -18
- package/dist/esm/agent/AgentManager.js.map +1 -1
- package/dist/esm/agent/storage.d.ts +1 -1
- package/dist/esm/agent/storage.js +1 -1
- package/dist/esm/client/PerpsClient.d.ts +70 -189
- package/dist/esm/client/PerpsClient.d.ts.map +1 -1
- package/dist/esm/client/PerpsClient.js +355 -361
- package/dist/esm/client/PerpsClient.js.map +1 -1
- package/dist/esm/client/createPerpsClient.d.ts +30 -7
- package/dist/esm/client/createPerpsClient.d.ts.map +1 -1
- package/dist/esm/client/createPerpsClient.js +6 -6
- package/dist/esm/client/createPerpsClient.js.map +1 -1
- package/dist/esm/client/types.d.ts +75 -48
- package/dist/esm/client/types.d.ts.map +1 -1
- package/dist/esm/client/types.js +11 -1
- package/dist/esm/client/types.js.map +1 -1
- package/dist/esm/errors/PerpsError.d.ts +2 -3
- package/dist/esm/errors/PerpsError.d.ts.map +1 -1
- package/dist/esm/errors/PerpsError.js +3 -15
- package/dist/esm/errors/PerpsError.js.map +1 -1
- package/dist/esm/errors/constants.d.ts +0 -10
- package/dist/esm/errors/constants.d.ts.map +1 -1
- package/dist/esm/errors/constants.js +0 -11
- package/dist/esm/errors/constants.js.map +1 -1
- package/dist/esm/index.d.ts +31 -32
- package/dist/esm/index.d.ts.map +1 -1
- package/dist/esm/index.js +22 -23
- package/dist/esm/index.js.map +1 -1
- package/dist/esm/realtime/PerpsWsClient.d.ts +1 -0
- package/dist/esm/realtime/PerpsWsClient.d.ts.map +1 -1
- package/dist/esm/realtime/PerpsWsClient.js +30 -23
- package/dist/esm/realtime/PerpsWsClient.js.map +1 -1
- package/dist/esm/realtime/hyperliquid/HyperliquidWsProvider.d.ts +11 -5
- package/dist/esm/realtime/hyperliquid/HyperliquidWsProvider.d.ts.map +1 -1
- package/dist/esm/realtime/hyperliquid/HyperliquidWsProvider.js +174 -53
- package/dist/esm/realtime/hyperliquid/HyperliquidWsProvider.js.map +1 -1
- package/dist/esm/realtime/hyperliquid/types.d.ts +11 -9
- package/dist/esm/realtime/hyperliquid/types.d.ts.map +1 -1
- package/dist/esm/services/createAction.d.ts +11 -0
- package/dist/esm/services/createAction.d.ts.map +1 -0
- package/dist/esm/services/createAction.js +14 -0
- package/dist/esm/services/createAction.js.map +1 -0
- package/dist/esm/services/executeAction.d.ts +11 -0
- package/dist/esm/services/executeAction.d.ts.map +1 -0
- package/dist/esm/services/executeAction.js +14 -0
- package/dist/esm/services/executeAction.js.map +1 -0
- package/dist/esm/services/getAccount.d.ts +7 -7
- package/dist/esm/services/getAccount.d.ts.map +1 -1
- package/dist/esm/services/getAccount.js +6 -6
- package/dist/esm/services/getAccount.js.map +1 -1
- package/dist/esm/services/getActivity.d.ts +49 -0
- package/dist/esm/services/getActivity.d.ts.map +1 -0
- package/dist/esm/services/getActivity.js +47 -0
- package/dist/esm/services/getActivity.js.map +1 -0
- package/dist/esm/services/getAsset.d.ts +20 -0
- package/dist/esm/services/getAsset.d.ts.map +1 -0
- package/dist/esm/services/getAsset.js +18 -0
- package/dist/esm/services/getAsset.js.map +1 -0
- package/dist/esm/services/getAssets.d.ts +18 -0
- package/dist/esm/services/getAssets.d.ts.map +1 -0
- package/dist/esm/services/getAssets.js +18 -0
- package/dist/esm/services/getAssets.js.map +1 -0
- package/dist/{types/services/getHistory.d.ts → esm/services/getFills.d.ts} +17 -13
- package/dist/esm/services/getFills.d.ts.map +1 -0
- package/dist/esm/services/{getHistory.js → getFills.js} +13 -11
- package/dist/esm/services/getFills.js.map +1 -0
- package/dist/esm/services/getOhlcv.d.ts +4 -4
- package/dist/esm/services/getOhlcv.d.ts.map +1 -1
- package/dist/esm/services/getOhlcv.js +3 -3
- package/dist/esm/services/getOhlcv.js.map +1 -1
- package/dist/esm/services/getOrder.d.ts +4 -4
- package/dist/esm/services/getOrder.d.ts.map +1 -1
- package/dist/esm/services/getOrder.js +3 -3
- package/dist/esm/services/getOrder.js.map +1 -1
- package/dist/esm/services/getOrderbook.d.ts +4 -4
- package/dist/esm/services/getOrderbook.d.ts.map +1 -1
- package/dist/esm/services/getOrderbook.js +3 -3
- package/dist/esm/services/getOrderbook.js.map +1 -1
- package/dist/esm/services/getOrders.d.ts +27 -0
- package/dist/esm/services/getOrders.d.ts.map +1 -0
- package/dist/esm/services/getOrders.js +23 -0
- package/dist/esm/services/getOrders.js.map +1 -0
- package/dist/esm/services/getPositions.d.ts +27 -0
- package/dist/esm/services/getPositions.d.ts.map +1 -0
- package/dist/esm/services/getPositions.js +23 -0
- package/dist/esm/services/getPositions.js.map +1 -0
- package/dist/esm/services/getPrices.d.ts +5 -5
- package/dist/esm/services/getPrices.d.ts.map +1 -1
- package/dist/esm/services/getPrices.js +4 -4
- package/dist/esm/services/getPrices.js.map +1 -1
- package/dist/esm/services/getProviders.d.ts +20 -0
- package/dist/esm/services/getProviders.d.ts.map +1 -0
- package/dist/esm/services/getProviders.js +21 -0
- package/dist/esm/services/getProviders.js.map +1 -0
- package/dist/esm/utils/accountSummary.d.ts +13 -0
- package/dist/esm/utils/accountSummary.d.ts.map +1 -0
- package/dist/esm/utils/accountSummary.js +92 -0
- package/dist/esm/utils/accountSummary.js.map +1 -0
- package/dist/esm/utils/calculations.d.ts +109 -0
- package/dist/esm/utils/calculations.d.ts.map +1 -0
- package/dist/esm/utils/calculations.js +154 -0
- package/dist/esm/utils/calculations.js.map +1 -0
- package/dist/esm/utils/hyperliquid/index.d.ts +3 -0
- package/dist/esm/utils/hyperliquid/index.d.ts.map +1 -0
- package/dist/esm/utils/hyperliquid/index.js +3 -0
- package/dist/esm/utils/hyperliquid/index.js.map +1 -0
- package/dist/esm/utils/hyperliquid/liquidation.d.ts +46 -0
- package/dist/esm/utils/hyperliquid/liquidation.d.ts.map +1 -0
- package/dist/esm/utils/hyperliquid/liquidation.js +63 -0
- package/dist/esm/utils/hyperliquid/liquidation.js.map +1 -0
- package/dist/esm/utils/hyperliquid/orderFormatting.d.ts +44 -0
- package/dist/esm/utils/hyperliquid/orderFormatting.d.ts.map +1 -0
- package/dist/esm/utils/hyperliquid/orderFormatting.js +79 -0
- package/dist/esm/utils/hyperliquid/orderFormatting.js.map +1 -0
- package/dist/esm/utils/orderClassification.d.ts +29 -0
- package/dist/esm/utils/orderClassification.d.ts.map +1 -0
- package/dist/esm/utils/orderClassification.js +53 -0
- package/dist/esm/utils/orderClassification.js.map +1 -0
- package/dist/esm/utils/parse.d.ts +18 -0
- package/dist/esm/utils/parse.d.ts.map +1 -0
- package/dist/esm/utils/parse.js +28 -0
- package/dist/esm/utils/parse.js.map +1 -0
- package/dist/esm/utils/request.d.ts +1 -2
- package/dist/esm/utils/request.d.ts.map +1 -1
- package/dist/esm/utils/request.js +20 -7
- package/dist/esm/utils/request.js.map +1 -1
- package/dist/esm/utils/units.d.ts +20 -0
- package/dist/esm/utils/units.d.ts.map +1 -0
- package/dist/esm/utils/units.js +31 -0
- package/dist/esm/utils/units.js.map +1 -0
- package/dist/esm/utils/validation.d.ts +15 -0
- package/dist/esm/utils/validation.d.ts.map +1 -0
- package/dist/esm/utils/validation.js +26 -0
- package/dist/esm/utils/validation.js.map +1 -0
- package/dist/esm/version.d.ts +1 -1
- package/dist/esm/version.d.ts.map +1 -1
- package/dist/esm/version.js +1 -1
- package/dist/esm/version.js.map +1 -1
- package/dist/types/agent/AgentManager.d.ts +9 -9
- package/dist/types/agent/AgentManager.d.ts.map +1 -1
- package/dist/types/agent/storage.d.ts +1 -1
- package/dist/types/client/PerpsClient.d.ts +70 -189
- package/dist/types/client/PerpsClient.d.ts.map +1 -1
- package/dist/types/client/createPerpsClient.d.ts +30 -7
- package/dist/types/client/createPerpsClient.d.ts.map +1 -1
- package/dist/types/client/types.d.ts +75 -48
- package/dist/types/client/types.d.ts.map +1 -1
- package/dist/types/errors/PerpsError.d.ts +2 -3
- package/dist/types/errors/PerpsError.d.ts.map +1 -1
- package/dist/types/errors/constants.d.ts +0 -10
- package/dist/types/errors/constants.d.ts.map +1 -1
- package/dist/types/index.d.ts +31 -32
- package/dist/types/index.d.ts.map +1 -1
- package/dist/types/realtime/PerpsWsClient.d.ts +1 -0
- package/dist/types/realtime/PerpsWsClient.d.ts.map +1 -1
- package/dist/types/realtime/hyperliquid/HyperliquidWsProvider.d.ts +11 -5
- package/dist/types/realtime/hyperliquid/HyperliquidWsProvider.d.ts.map +1 -1
- package/dist/types/realtime/hyperliquid/types.d.ts +11 -9
- package/dist/types/realtime/hyperliquid/types.d.ts.map +1 -1
- package/dist/types/services/createAction.d.ts +11 -0
- package/dist/types/services/createAction.d.ts.map +1 -0
- package/dist/types/services/executeAction.d.ts +11 -0
- package/dist/types/services/executeAction.d.ts.map +1 -0
- package/dist/types/services/getAccount.d.ts +7 -7
- package/dist/types/services/getAccount.d.ts.map +1 -1
- package/dist/types/services/getActivity.d.ts +49 -0
- package/dist/types/services/getActivity.d.ts.map +1 -0
- package/dist/types/services/getAsset.d.ts +20 -0
- package/dist/types/services/getAsset.d.ts.map +1 -0
- package/dist/types/services/getAssets.d.ts +18 -0
- package/dist/types/services/getAssets.d.ts.map +1 -0
- package/dist/{esm/services/getHistory.d.ts → types/services/getFills.d.ts} +17 -13
- package/dist/types/services/getFills.d.ts.map +1 -0
- package/dist/types/services/getOhlcv.d.ts +4 -4
- package/dist/types/services/getOhlcv.d.ts.map +1 -1
- package/dist/types/services/getOrder.d.ts +4 -4
- package/dist/types/services/getOrder.d.ts.map +1 -1
- package/dist/types/services/getOrderbook.d.ts +4 -4
- package/dist/types/services/getOrderbook.d.ts.map +1 -1
- package/dist/types/services/getOrders.d.ts +27 -0
- package/dist/types/services/getOrders.d.ts.map +1 -0
- package/dist/types/services/getPositions.d.ts +27 -0
- package/dist/types/services/getPositions.d.ts.map +1 -0
- package/dist/types/services/getPrices.d.ts +5 -5
- package/dist/types/services/getPrices.d.ts.map +1 -1
- package/dist/types/services/getProviders.d.ts +20 -0
- package/dist/types/services/getProviders.d.ts.map +1 -0
- package/dist/types/utils/accountSummary.d.ts +13 -0
- package/dist/types/utils/accountSummary.d.ts.map +1 -0
- package/dist/types/utils/calculations.d.ts +109 -0
- package/dist/types/utils/calculations.d.ts.map +1 -0
- package/dist/types/utils/hyperliquid/index.d.ts +3 -0
- package/dist/types/utils/hyperliquid/index.d.ts.map +1 -0
- package/dist/types/utils/hyperliquid/liquidation.d.ts +46 -0
- package/dist/types/utils/hyperliquid/liquidation.d.ts.map +1 -0
- package/dist/types/utils/hyperliquid/orderFormatting.d.ts +44 -0
- package/dist/types/utils/hyperliquid/orderFormatting.d.ts.map +1 -0
- package/dist/types/utils/orderClassification.d.ts +29 -0
- package/dist/types/utils/orderClassification.d.ts.map +1 -0
- package/dist/types/utils/parse.d.ts +18 -0
- package/dist/types/utils/parse.d.ts.map +1 -0
- package/dist/types/utils/request.d.ts +1 -2
- package/dist/types/utils/request.d.ts.map +1 -1
- package/dist/types/utils/units.d.ts +20 -0
- package/dist/types/utils/units.d.ts.map +1 -0
- package/dist/types/utils/validation.d.ts +15 -0
- package/dist/types/utils/validation.d.ts.map +1 -0
- package/dist/types/version.d.ts +1 -1
- package/dist/types/version.d.ts.map +1 -1
- package/package.json +8 -4
- package/src/agent/AgentManager.ts +21 -19
- package/src/agent/storage.ts +1 -1
- package/src/client/PerpsClient.ts +569 -446
- package/src/client/createPerpsClient.ts +36 -11
- package/src/client/types.ts +84 -51
- package/src/errors/PerpsError.ts +3 -22
- package/src/errors/constants.ts +0 -11
- package/src/index.ts +70 -47
- package/src/realtime/PerpsWsClient.ts +47 -31
- package/src/realtime/hyperliquid/HyperliquidWsProvider.ts +203 -64
- package/src/realtime/hyperliquid/types.ts +8 -10
- package/src/services/createAction.ts +41 -0
- package/src/services/executeAction.ts +41 -0
- package/src/services/getAccount.ts +8 -8
- package/src/services/getActivity.ts +77 -0
- package/src/services/getAsset.ts +34 -0
- package/src/services/getAssets.ts +32 -0
- package/src/services/{getHistory.ts → getFills.ts} +23 -17
- package/src/services/getOhlcv.ts +5 -5
- package/src/services/getOrder.ts +5 -5
- package/src/services/getOrderbook.ts +5 -5
- package/src/services/getOrders.ts +45 -0
- package/src/services/getPositions.ts +45 -0
- package/src/services/getPrices.ts +6 -6
- package/src/services/{getDexes.ts → getProviders.ts} +10 -10
- package/src/utils/accountSummary.ts +124 -0
- package/src/utils/calculations.ts +209 -0
- package/src/utils/hyperliquid/index.ts +9 -0
- package/src/utils/hyperliquid/liquidation.ts +71 -0
- package/src/utils/hyperliquid/orderFormatting.ts +96 -0
- package/src/utils/orderClassification.ts +64 -0
- package/src/utils/parse.ts +28 -0
- package/src/utils/request.ts +22 -7
- package/src/utils/units.ts +32 -0
- package/src/utils/validation.ts +35 -0
- package/src/version.ts +1 -1
- package/dist/cjs/dex/hyperliquid.d.ts +0 -3
- package/dist/cjs/dex/hyperliquid.d.ts.map +0 -1
- package/dist/cjs/dex/hyperliquid.js +0 -21
- package/dist/cjs/dex/hyperliquid.js.map +0 -1
- package/dist/cjs/dex/registry.d.ts +0 -3
- package/dist/cjs/dex/registry.d.ts.map +0 -1
- package/dist/cjs/dex/registry.js +0 -16
- package/dist/cjs/dex/registry.js.map +0 -1
- package/dist/cjs/dex/types.d.ts +0 -13
- package/dist/cjs/dex/types.d.ts.map +0 -1
- package/dist/cjs/dex/types.js +0 -3
- package/dist/cjs/dex/types.js.map +0 -1
- package/dist/cjs/errors/AgentError.d.ts +0 -10
- package/dist/cjs/errors/AgentError.d.ts.map +0 -1
- package/dist/cjs/errors/AgentError.js +0 -23
- package/dist/cjs/errors/AgentError.js.map +0 -1
- package/dist/cjs/errors/HTTPError.d.ts +0 -11
- package/dist/cjs/errors/HTTPError.d.ts.map +0 -1
- package/dist/cjs/errors/HTTPError.js +0 -62
- package/dist/cjs/errors/HTTPError.js.map +0 -1
- package/dist/cjs/errors/PerpsSDKError.d.ts +0 -9
- package/dist/cjs/errors/PerpsSDKError.d.ts.map +0 -1
- package/dist/cjs/errors/PerpsSDKError.js +0 -36
- package/dist/cjs/errors/PerpsSDKError.js.map +0 -1
- package/dist/cjs/errors/ServerError.d.ts +0 -10
- package/dist/cjs/errors/ServerError.d.ts.map +0 -1
- package/dist/cjs/errors/ServerError.js +0 -24
- package/dist/cjs/errors/ServerError.js.map +0 -1
- package/dist/cjs/errors/ValidationError.d.ts +0 -9
- package/dist/cjs/errors/ValidationError.d.ts.map +0 -1
- package/dist/cjs/errors/ValidationError.js +0 -23
- package/dist/cjs/errors/ValidationError.js.map +0 -1
- package/dist/cjs/errors/utils/rootCause.d.ts +0 -6
- package/dist/cjs/errors/utils/rootCause.d.ts.map +0 -1
- package/dist/cjs/errors/utils/rootCause.js +0 -41
- package/dist/cjs/errors/utils/rootCause.js.map +0 -1
- package/dist/cjs/services/cancelOrder.d.ts +0 -10
- package/dist/cjs/services/cancelOrder.d.ts.map +0 -1
- package/dist/cjs/services/cancelOrder.js +0 -16
- package/dist/cjs/services/cancelOrder.js.map +0 -1
- package/dist/cjs/services/createAuthorization.d.ts +0 -10
- package/dist/cjs/services/createAuthorization.d.ts.map +0 -1
- package/dist/cjs/services/createAuthorization.js +0 -16
- package/dist/cjs/services/createAuthorization.js.map +0 -1
- package/dist/cjs/services/createOrder.d.ts +0 -21
- package/dist/cjs/services/createOrder.d.ts.map +0 -1
- package/dist/cjs/services/createOrder.js +0 -27
- package/dist/cjs/services/createOrder.js.map +0 -1
- package/dist/cjs/services/createWithdrawal.d.ts +0 -9
- package/dist/cjs/services/createWithdrawal.d.ts.map +0 -1
- package/dist/cjs/services/createWithdrawal.js +0 -15
- package/dist/cjs/services/createWithdrawal.js.map +0 -1
- package/dist/cjs/services/getDexes.d.ts +0 -4
- package/dist/cjs/services/getDexes.d.ts.map +0 -1
- package/dist/cjs/services/getDexes.js.map +0 -1
- package/dist/cjs/services/getHistory.d.ts +0 -10
- package/dist/cjs/services/getHistory.d.ts.map +0 -1
- package/dist/cjs/services/getHistory.js.map +0 -1
- package/dist/cjs/services/getMarket.d.ts +0 -8
- package/dist/cjs/services/getMarket.d.ts.map +0 -1
- package/dist/cjs/services/getMarket.js.map +0 -1
- package/dist/cjs/services/getMarkets.d.ts +0 -7
- package/dist/cjs/services/getMarkets.d.ts.map +0 -1
- package/dist/cjs/services/getMarkets.js.map +0 -1
- package/dist/cjs/services/submitAuthorization.d.ts +0 -10
- package/dist/cjs/services/submitAuthorization.d.ts.map +0 -1
- package/dist/cjs/services/submitAuthorization.js.map +0 -1
- package/dist/cjs/services/submitOrder.d.ts +0 -10
- package/dist/cjs/services/submitOrder.d.ts.map +0 -1
- package/dist/cjs/services/submitOrder.js.map +0 -1
- package/dist/cjs/services/submitWithdrawal.d.ts +0 -9
- package/dist/cjs/services/submitWithdrawal.d.ts.map +0 -1
- package/dist/cjs/services/submitWithdrawal.js +0 -15
- package/dist/cjs/services/submitWithdrawal.js.map +0 -1
- package/dist/esm/dex/hyperliquid.d.ts +0 -3
- package/dist/esm/dex/hyperliquid.d.ts.map +0 -1
- package/dist/esm/dex/hyperliquid.js +0 -19
- package/dist/esm/dex/hyperliquid.js.map +0 -1
- package/dist/esm/dex/registry.d.ts +0 -3
- package/dist/esm/dex/registry.d.ts.map +0 -1
- package/dist/esm/dex/registry.js +0 -13
- package/dist/esm/dex/registry.js.map +0 -1
- package/dist/esm/dex/types.d.ts +0 -15
- package/dist/esm/dex/types.d.ts.map +0 -1
- package/dist/esm/dex/types.js +0 -2
- package/dist/esm/dex/types.js.map +0 -1
- package/dist/esm/errors/AgentError.d.ts +0 -25
- package/dist/esm/errors/AgentError.d.ts.map +0 -1
- package/dist/esm/errors/AgentError.js +0 -35
- package/dist/esm/errors/AgentError.js.map +0 -1
- package/dist/esm/errors/HTTPError.d.ts +0 -11
- package/dist/esm/errors/HTTPError.d.ts.map +0 -1
- package/dist/esm/errors/HTTPError.js +0 -61
- package/dist/esm/errors/HTTPError.js.map +0 -1
- package/dist/esm/errors/PerpsSDKError.d.ts +0 -40
- package/dist/esm/errors/PerpsSDKError.d.ts.map +0 -1
- package/dist/esm/errors/PerpsSDKError.js +0 -67
- package/dist/esm/errors/PerpsSDKError.js.map +0 -1
- package/dist/esm/errors/ServerError.d.ts +0 -23
- package/dist/esm/errors/ServerError.d.ts.map +0 -1
- package/dist/esm/errors/ServerError.js +0 -34
- package/dist/esm/errors/ServerError.js.map +0 -1
- package/dist/esm/errors/ValidationError.d.ts +0 -23
- package/dist/esm/errors/ValidationError.d.ts.map +0 -1
- package/dist/esm/errors/ValidationError.js +0 -34
- package/dist/esm/errors/ValidationError.js.map +0 -1
- package/dist/esm/errors/utils/rootCause.d.ts +0 -71
- package/dist/esm/errors/utils/rootCause.d.ts.map +0 -1
- package/dist/esm/errors/utils/rootCause.js +0 -99
- package/dist/esm/errors/utils/rootCause.js.map +0 -1
- package/dist/esm/services/cancelOrder.d.ts +0 -51
- package/dist/esm/services/cancelOrder.d.ts.map +0 -1
- package/dist/esm/services/cancelOrder.js +0 -50
- package/dist/esm/services/cancelOrder.js.map +0 -1
- package/dist/esm/services/createAuthorization.d.ts +0 -51
- package/dist/esm/services/createAuthorization.d.ts.map +0 -1
- package/dist/esm/services/createAuthorization.js +0 -50
- package/dist/esm/services/createAuthorization.js.map +0 -1
- package/dist/esm/services/createOrder.d.ts +0 -74
- package/dist/esm/services/createOrder.d.ts.map +0 -1
- package/dist/esm/services/createOrder.js +0 -62
- package/dist/esm/services/createOrder.js.map +0 -1
- package/dist/esm/services/createWithdrawal.d.ts +0 -49
- package/dist/esm/services/createWithdrawal.d.ts.map +0 -1
- package/dist/esm/services/createWithdrawal.js +0 -49
- package/dist/esm/services/createWithdrawal.js.map +0 -1
- package/dist/esm/services/getDexes.d.ts +0 -20
- package/dist/esm/services/getDexes.d.ts.map +0 -1
- package/dist/esm/services/getDexes.js +0 -21
- package/dist/esm/services/getDexes.js.map +0 -1
- package/dist/esm/services/getHistory.d.ts.map +0 -1
- package/dist/esm/services/getHistory.js.map +0 -1
- package/dist/esm/services/getMarket.d.ts +0 -27
- package/dist/esm/services/getMarket.d.ts.map +0 -1
- package/dist/esm/services/getMarket.js +0 -25
- package/dist/esm/services/getMarket.js.map +0 -1
- package/dist/esm/services/getMarkets.d.ts +0 -25
- package/dist/esm/services/getMarkets.d.ts.map +0 -1
- package/dist/esm/services/getMarkets.js +0 -23
- package/dist/esm/services/getMarkets.js.map +0 -1
- package/dist/esm/services/submitAuthorization.d.ts +0 -42
- package/dist/esm/services/submitAuthorization.d.ts.map +0 -1
- package/dist/esm/services/submitAuthorization.js +0 -41
- package/dist/esm/services/submitAuthorization.js.map +0 -1
- package/dist/esm/services/submitOrder.d.ts +0 -44
- package/dist/esm/services/submitOrder.d.ts.map +0 -1
- package/dist/esm/services/submitOrder.js +0 -43
- package/dist/esm/services/submitOrder.js.map +0 -1
- package/dist/esm/services/submitWithdrawal.d.ts +0 -40
- package/dist/esm/services/submitWithdrawal.d.ts.map +0 -1
- package/dist/esm/services/submitWithdrawal.js +0 -40
- package/dist/esm/services/submitWithdrawal.js.map +0 -1
- package/dist/types/dex/hyperliquid.d.ts +0 -3
- package/dist/types/dex/hyperliquid.d.ts.map +0 -1
- package/dist/types/dex/registry.d.ts +0 -3
- package/dist/types/dex/registry.d.ts.map +0 -1
- package/dist/types/dex/types.d.ts +0 -15
- package/dist/types/dex/types.d.ts.map +0 -1
- package/dist/types/errors/AgentError.d.ts +0 -25
- package/dist/types/errors/AgentError.d.ts.map +0 -1
- package/dist/types/errors/HTTPError.d.ts +0 -11
- package/dist/types/errors/HTTPError.d.ts.map +0 -1
- package/dist/types/errors/PerpsSDKError.d.ts +0 -40
- package/dist/types/errors/PerpsSDKError.d.ts.map +0 -1
- package/dist/types/errors/ServerError.d.ts +0 -23
- package/dist/types/errors/ServerError.d.ts.map +0 -1
- package/dist/types/errors/ValidationError.d.ts +0 -23
- package/dist/types/errors/ValidationError.d.ts.map +0 -1
- package/dist/types/errors/utils/rootCause.d.ts +0 -71
- package/dist/types/errors/utils/rootCause.d.ts.map +0 -1
- package/dist/types/services/cancelOrder.d.ts +0 -51
- package/dist/types/services/cancelOrder.d.ts.map +0 -1
- package/dist/types/services/createAuthorization.d.ts +0 -51
- package/dist/types/services/createAuthorization.d.ts.map +0 -1
- package/dist/types/services/createOrder.d.ts +0 -74
- package/dist/types/services/createOrder.d.ts.map +0 -1
- package/dist/types/services/createWithdrawal.d.ts +0 -49
- package/dist/types/services/createWithdrawal.d.ts.map +0 -1
- package/dist/types/services/getDexes.d.ts +0 -20
- package/dist/types/services/getDexes.d.ts.map +0 -1
- package/dist/types/services/getHistory.d.ts.map +0 -1
- package/dist/types/services/getMarket.d.ts +0 -27
- package/dist/types/services/getMarket.d.ts.map +0 -1
- package/dist/types/services/getMarkets.d.ts +0 -25
- package/dist/types/services/getMarkets.d.ts.map +0 -1
- package/dist/types/services/submitAuthorization.d.ts +0 -42
- package/dist/types/services/submitAuthorization.d.ts.map +0 -1
- package/dist/types/services/submitOrder.d.ts +0 -44
- package/dist/types/services/submitOrder.d.ts.map +0 -1
- package/dist/types/services/submitWithdrawal.d.ts +0 -40
- package/dist/types/services/submitWithdrawal.d.ts.map +0 -1
- package/src/dex/hyperliquid.ts +0 -20
- package/src/dex/registry.ts +0 -15
- package/src/dex/types.ts +0 -16
- package/src/errors/AgentError.ts +0 -43
- package/src/errors/HTTPError.ts +0 -72
- package/src/errors/PerpsSDKError.ts +0 -79
- package/src/errors/ServerError.ts +0 -41
- package/src/errors/ValidationError.ts +0 -38
- package/src/errors/utils/rootCause.ts +0 -112
- package/src/services/cancelOrder.ts +0 -75
- package/src/services/createAuthorization.ts +0 -79
- package/src/services/createOrder.ts +0 -116
- package/src/services/createWithdrawal.ts +0 -76
- package/src/services/getMarket.ts +0 -41
- package/src/services/getMarkets.ts +0 -37
- package/src/services/submitAuthorization.ts +0 -70
- package/src/services/submitOrder.ts +0 -72
- package/src/services/submitWithdrawal.ts +0 -67
|
@@ -1,36 +1,40 @@
|
|
|
1
|
-
import type { Address,
|
|
1
|
+
import type { Address, FillsResponse } from '@lifi/perps-types'
|
|
2
2
|
import type {
|
|
3
3
|
PerpsSDKClient,
|
|
4
4
|
SDKRequestOptions,
|
|
5
5
|
} from '../client/createPerpsClient.js'
|
|
6
6
|
import { buildUrl, request } from '../utils/request.js'
|
|
7
7
|
|
|
8
|
-
export interface
|
|
9
|
-
/**
|
|
10
|
-
|
|
8
|
+
export interface GetFillsParams {
|
|
9
|
+
/** Provider to get fills from (e.g., 'hyperliquid') */
|
|
10
|
+
provider: string
|
|
11
11
|
/** Wallet address */
|
|
12
12
|
address: Address
|
|
13
13
|
/** Maximum number of items to return */
|
|
14
14
|
limit?: number
|
|
15
15
|
/** Cursor for pagination */
|
|
16
16
|
cursor?: string
|
|
17
|
+
/** Filter: orders after this timestamp (ms) */
|
|
18
|
+
startTime?: number
|
|
19
|
+
/** Filter: orders before this timestamp (ms) */
|
|
20
|
+
endTime?: number
|
|
17
21
|
}
|
|
18
22
|
|
|
19
23
|
/**
|
|
20
|
-
* Get order
|
|
24
|
+
* Get order fills for an account.
|
|
21
25
|
*
|
|
22
26
|
* @param client - The SDK client instance
|
|
23
27
|
* @param params - Request parameters
|
|
24
28
|
* @param options - Request options (e.g., AbortSignal)
|
|
25
|
-
* @returns Order
|
|
26
|
-
* @throws {
|
|
29
|
+
* @returns Order fills with pagination
|
|
30
|
+
* @throws {PerpsError} On API error responses
|
|
27
31
|
* @throws {PerpsError} On network or parsing errors
|
|
28
32
|
*
|
|
29
33
|
* @example
|
|
30
34
|
* ```ts
|
|
31
35
|
* const client = createPerpsClient({ integrator: 'my-app' })
|
|
32
|
-
* const { items, pagination } = await
|
|
33
|
-
*
|
|
36
|
+
* const { items, pagination } = await getFills(client, {
|
|
37
|
+
* provider: 'hyperliquid',
|
|
34
38
|
* address: '0x1234...',
|
|
35
39
|
* limit: 50
|
|
36
40
|
* })
|
|
@@ -39,24 +43,26 @@ export interface GetHistoryParams {
|
|
|
39
43
|
*
|
|
40
44
|
* // Fetch next page
|
|
41
45
|
* if (pagination.hasMore) {
|
|
42
|
-
* const nextPage = await
|
|
43
|
-
*
|
|
46
|
+
* const nextPage = await getFills(client, {
|
|
47
|
+
* provider: 'hyperliquid',
|
|
44
48
|
* address: '0x1234...',
|
|
45
49
|
* cursor: pagination.cursor
|
|
46
50
|
* })
|
|
47
51
|
* }
|
|
48
52
|
* ```
|
|
49
53
|
*/
|
|
50
|
-
export async function
|
|
54
|
+
export async function getFills(
|
|
51
55
|
client: PerpsSDKClient,
|
|
52
|
-
params:
|
|
56
|
+
params: GetFillsParams,
|
|
53
57
|
options?: SDKRequestOptions
|
|
54
|
-
): Promise<
|
|
55
|
-
const url = buildUrl(`${client.config.apiUrl}/
|
|
56
|
-
|
|
58
|
+
): Promise<FillsResponse> {
|
|
59
|
+
const url = buildUrl(`${client.config.apiUrl}/fills`, {
|
|
60
|
+
provider: params.provider,
|
|
57
61
|
address: params.address,
|
|
58
62
|
limit: params.limit,
|
|
59
63
|
cursor: params.cursor,
|
|
64
|
+
startTime: params.startTime,
|
|
65
|
+
endTime: params.endTime,
|
|
60
66
|
})
|
|
61
|
-
return request<
|
|
67
|
+
return request<FillsResponse>(client.config, url, {}, options)
|
|
62
68
|
}
|
package/src/services/getOhlcv.ts
CHANGED
|
@@ -6,8 +6,8 @@ import type {
|
|
|
6
6
|
import { buildUrl, request } from '../utils/request.js'
|
|
7
7
|
|
|
8
8
|
export interface GetOhlcvParams {
|
|
9
|
-
/**
|
|
10
|
-
|
|
9
|
+
/** Provider to get OHLCV from (e.g., 'hyperliquid') */
|
|
10
|
+
provider: string
|
|
11
11
|
/** Market symbol (e.g., 'BTC') */
|
|
12
12
|
symbol: string
|
|
13
13
|
/** Candle interval */
|
|
@@ -27,14 +27,14 @@ export interface GetOhlcvParams {
|
|
|
27
27
|
* @param params - Request parameters
|
|
28
28
|
* @param options - Request options (e.g., AbortSignal)
|
|
29
29
|
* @returns OHLCV candle data
|
|
30
|
-
* @throws {
|
|
30
|
+
* @throws {PerpsError} On API error responses
|
|
31
31
|
* @throws {PerpsError} On network or parsing errors
|
|
32
32
|
*
|
|
33
33
|
* @example
|
|
34
34
|
* ```ts
|
|
35
35
|
* const client = createPerpsClient({ integrator: 'my-app' })
|
|
36
36
|
* const { candles } = await getOhlcv(client, {
|
|
37
|
-
*
|
|
37
|
+
* provider: 'hyperliquid',
|
|
38
38
|
* symbol: 'BTC',
|
|
39
39
|
* interval: '1h',
|
|
40
40
|
* limit: 100
|
|
@@ -48,7 +48,7 @@ export async function getOhlcv(
|
|
|
48
48
|
options?: SDKRequestOptions
|
|
49
49
|
): Promise<OhlcvResponse> {
|
|
50
50
|
const url = buildUrl(`${client.config.apiUrl}/ohlcv/${params.symbol}`, {
|
|
51
|
-
|
|
51
|
+
provider: params.provider,
|
|
52
52
|
interval: params.interval,
|
|
53
53
|
startTime: params.startTime,
|
|
54
54
|
endTime: params.endTime,
|
package/src/services/getOrder.ts
CHANGED
|
@@ -6,8 +6,8 @@ import type {
|
|
|
6
6
|
import { buildUrl, request } from '../utils/request.js'
|
|
7
7
|
|
|
8
8
|
export interface GetOrderParams {
|
|
9
|
-
/**
|
|
10
|
-
|
|
9
|
+
/** Provider to get order from (e.g., 'hyperliquid') */
|
|
10
|
+
provider: string
|
|
11
11
|
/** Wallet address */
|
|
12
12
|
address: Address
|
|
13
13
|
/** Order ID */
|
|
@@ -21,14 +21,14 @@ export interface GetOrderParams {
|
|
|
21
21
|
* @param params - Request parameters
|
|
22
22
|
* @param options - Request options (e.g., AbortSignal)
|
|
23
23
|
* @returns Order details
|
|
24
|
-
* @throws {
|
|
24
|
+
* @throws {PerpsError} On API error responses (e.g., 404 if order not found)
|
|
25
25
|
* @throws {PerpsError} On network or parsing errors
|
|
26
26
|
*
|
|
27
27
|
* @example
|
|
28
28
|
* ```ts
|
|
29
29
|
* const client = createPerpsClient({ integrator: 'my-app' })
|
|
30
30
|
* const order = await getOrder(client, {
|
|
31
|
-
*
|
|
31
|
+
* provider: 'hyperliquid',
|
|
32
32
|
* address: '0x1234...',
|
|
33
33
|
* id: '123456'
|
|
34
34
|
* })
|
|
@@ -41,7 +41,7 @@ export async function getOrder(
|
|
|
41
41
|
options?: SDKRequestOptions
|
|
42
42
|
): Promise<Order> {
|
|
43
43
|
const url = buildUrl(`${client.config.apiUrl}/order/${params.id}`, {
|
|
44
|
-
|
|
44
|
+
provider: params.provider,
|
|
45
45
|
address: params.address,
|
|
46
46
|
})
|
|
47
47
|
return request<Order>(client.config, url, {}, options)
|
|
@@ -6,8 +6,8 @@ import type {
|
|
|
6
6
|
import { buildUrl, request } from '../utils/request.js'
|
|
7
7
|
|
|
8
8
|
export interface GetOrderbookParams {
|
|
9
|
-
/**
|
|
10
|
-
|
|
9
|
+
/** Provider to get orderbook from (e.g., 'hyperliquid') */
|
|
10
|
+
provider: string
|
|
11
11
|
/** Market symbol (e.g., 'BTC') */
|
|
12
12
|
symbol: string
|
|
13
13
|
/** Number of levels to return (default varies by DEX) */
|
|
@@ -21,14 +21,14 @@ export interface GetOrderbookParams {
|
|
|
21
21
|
* @param params - Request parameters
|
|
22
22
|
* @param options - Request options (e.g., AbortSignal)
|
|
23
23
|
* @returns Orderbook with bids and asks
|
|
24
|
-
* @throws {
|
|
24
|
+
* @throws {PerpsError} On API error responses
|
|
25
25
|
* @throws {PerpsError} On network or parsing errors
|
|
26
26
|
*
|
|
27
27
|
* @example
|
|
28
28
|
* ```ts
|
|
29
29
|
* const client = createPerpsClient({ integrator: 'my-app' })
|
|
30
30
|
* const { bids, asks } = await getOrderbook(client, {
|
|
31
|
-
*
|
|
31
|
+
* provider: 'hyperliquid',
|
|
32
32
|
* symbol: 'BTC',
|
|
33
33
|
* depth: 20
|
|
34
34
|
* })
|
|
@@ -42,7 +42,7 @@ export async function getOrderbook(
|
|
|
42
42
|
options?: SDKRequestOptions
|
|
43
43
|
): Promise<OrderbookResponse> {
|
|
44
44
|
const url = buildUrl(`${client.config.apiUrl}/orderbook/${params.symbol}`, {
|
|
45
|
-
|
|
45
|
+
provider: params.provider,
|
|
46
46
|
depth: params.depth,
|
|
47
47
|
})
|
|
48
48
|
return request<OrderbookResponse>(client.config, url, {}, options)
|
|
@@ -0,0 +1,45 @@
|
|
|
1
|
+
import type { Address, OrdersResponse } 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 GetOrdersParams {
|
|
9
|
+
/** Provider (e.g., 'hyperliquid') */
|
|
10
|
+
provider: string
|
|
11
|
+
/** Wallet address */
|
|
12
|
+
address: Address
|
|
13
|
+
/** Optional symbol to filter orders by market */
|
|
14
|
+
symbol?: string
|
|
15
|
+
/** Maximum number of results */
|
|
16
|
+
limit?: number
|
|
17
|
+
/** Pagination cursor */
|
|
18
|
+
cursor?: string
|
|
19
|
+
}
|
|
20
|
+
|
|
21
|
+
/**
|
|
22
|
+
* Get open orders and trigger orders for an account.
|
|
23
|
+
*
|
|
24
|
+
* @example
|
|
25
|
+
* ```ts
|
|
26
|
+
* const { openOrders, triggerOrders } = await getOrders(client, {
|
|
27
|
+
* provider: 'hyperliquid',
|
|
28
|
+
* address: '0x1234...',
|
|
29
|
+
* })
|
|
30
|
+
* ```
|
|
31
|
+
*/
|
|
32
|
+
export async function getOrders(
|
|
33
|
+
client: PerpsSDKClient,
|
|
34
|
+
params: GetOrdersParams,
|
|
35
|
+
options?: SDKRequestOptions
|
|
36
|
+
): Promise<OrdersResponse> {
|
|
37
|
+
const url = buildUrl(`${client.config.apiUrl}/orders`, {
|
|
38
|
+
provider: params.provider,
|
|
39
|
+
address: params.address,
|
|
40
|
+
...(params.symbol ? { symbol: params.symbol } : {}),
|
|
41
|
+
...(params.limit ? { limit: String(params.limit) } : {}),
|
|
42
|
+
...(params.cursor ? { cursor: params.cursor } : {}),
|
|
43
|
+
})
|
|
44
|
+
return request<OrdersResponse>(client.config, url, {}, options)
|
|
45
|
+
}
|
|
@@ -0,0 +1,45 @@
|
|
|
1
|
+
import type { Address, PositionsResponse } 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 GetPositionsParams {
|
|
9
|
+
/** Provider (e.g., 'hyperliquid') */
|
|
10
|
+
provider: string
|
|
11
|
+
/** Wallet address */
|
|
12
|
+
address: Address
|
|
13
|
+
/** Optional symbol to filter to a single position */
|
|
14
|
+
symbol?: string
|
|
15
|
+
/** Maximum number of results */
|
|
16
|
+
limit?: number
|
|
17
|
+
/** Pagination cursor */
|
|
18
|
+
cursor?: string
|
|
19
|
+
}
|
|
20
|
+
|
|
21
|
+
/**
|
|
22
|
+
* Get open positions for an account.
|
|
23
|
+
*
|
|
24
|
+
* @example
|
|
25
|
+
* ```ts
|
|
26
|
+
* const { positions } = await getPositions(client, {
|
|
27
|
+
* provider: 'hyperliquid',
|
|
28
|
+
* address: '0x1234...',
|
|
29
|
+
* })
|
|
30
|
+
* ```
|
|
31
|
+
*/
|
|
32
|
+
export async function getPositions(
|
|
33
|
+
client: PerpsSDKClient,
|
|
34
|
+
params: GetPositionsParams,
|
|
35
|
+
options?: SDKRequestOptions
|
|
36
|
+
): Promise<PositionsResponse> {
|
|
37
|
+
const url = buildUrl(`${client.config.apiUrl}/positions`, {
|
|
38
|
+
provider: params.provider,
|
|
39
|
+
address: params.address,
|
|
40
|
+
...(params.symbol ? { symbol: params.symbol } : {}),
|
|
41
|
+
...(params.limit ? { limit: String(params.limit) } : {}),
|
|
42
|
+
...(params.cursor ? { cursor: params.cursor } : {}),
|
|
43
|
+
})
|
|
44
|
+
return request<PositionsResponse>(client.config, url, {}, options)
|
|
45
|
+
}
|
|
@@ -6,8 +6,8 @@ import type {
|
|
|
6
6
|
import { buildUrl, request } from '../utils/request.js'
|
|
7
7
|
|
|
8
8
|
export interface GetPricesParams {
|
|
9
|
-
/**
|
|
10
|
-
|
|
9
|
+
/** Provider to get prices from (e.g., 'hyperliquid') */
|
|
10
|
+
provider: string
|
|
11
11
|
/** Optional list of symbols to filter (e.g., ['BTC', 'ETH']) */
|
|
12
12
|
symbols?: string[]
|
|
13
13
|
}
|
|
@@ -19,18 +19,18 @@ export interface GetPricesParams {
|
|
|
19
19
|
* @param params - Request parameters
|
|
20
20
|
* @param options - Request options (e.g., AbortSignal)
|
|
21
21
|
* @returns Map of symbol to price
|
|
22
|
-
* @throws {
|
|
22
|
+
* @throws {PerpsError} On API error responses
|
|
23
23
|
* @throws {PerpsError} On network or parsing errors
|
|
24
24
|
*
|
|
25
25
|
* @example
|
|
26
26
|
* ```ts
|
|
27
27
|
* const client = createPerpsClient({ integrator: 'my-app' })
|
|
28
|
-
* const { prices } = await getPrices(client, {
|
|
28
|
+
* const { prices } = await getPrices(client, { provider: 'hyperliquid' })
|
|
29
29
|
* console.log(prices) // { BTC: '95000.00', ETH: '3400.00', ... }
|
|
30
30
|
*
|
|
31
31
|
* // Filter by symbols
|
|
32
32
|
* const { prices } = await getPrices(client, {
|
|
33
|
-
*
|
|
33
|
+
* provider: 'hyperliquid',
|
|
34
34
|
* symbols: ['BTC', 'ETH']
|
|
35
35
|
* })
|
|
36
36
|
* ```
|
|
@@ -41,7 +41,7 @@ export async function getPrices(
|
|
|
41
41
|
options?: SDKRequestOptions
|
|
42
42
|
): Promise<PricesResponse> {
|
|
43
43
|
const url = buildUrl(`${client.config.apiUrl}/prices`, {
|
|
44
|
-
|
|
44
|
+
provider: params.provider,
|
|
45
45
|
symbols: params.symbols?.join(','),
|
|
46
46
|
})
|
|
47
47
|
return request<PricesResponse>(client.config, url, {}, options)
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import type {
|
|
1
|
+
import type { ProvidersResponse } from '@lifi/perps-types'
|
|
2
2
|
import type {
|
|
3
3
|
PerpsSDKClient,
|
|
4
4
|
SDKRequestOptions,
|
|
@@ -6,28 +6,28 @@ import type {
|
|
|
6
6
|
import { request } from '../utils/request.js'
|
|
7
7
|
|
|
8
8
|
/**
|
|
9
|
-
* Get all available
|
|
9
|
+
* Get all available providers.
|
|
10
10
|
*
|
|
11
11
|
* @param client - The SDK client instance
|
|
12
12
|
* @param options - Request options (e.g., AbortSignal)
|
|
13
|
-
* @returns List of supported
|
|
14
|
-
* @throws {
|
|
13
|
+
* @returns List of supported providers with their authorization requirements
|
|
14
|
+
* @throws {PerpsError} On API error responses
|
|
15
15
|
* @throws {PerpsError} On network or parsing errors
|
|
16
16
|
*
|
|
17
17
|
* @example
|
|
18
18
|
* ```ts
|
|
19
19
|
* const client = createPerpsClient({ integrator: 'my-app' })
|
|
20
|
-
* const {
|
|
21
|
-
* console.log(
|
|
20
|
+
* const { providers } = await getProviders(client)
|
|
21
|
+
* console.log(providers) // [{ key: 'hyperliquid', name: 'Hyperliquid', ... }]
|
|
22
22
|
* ```
|
|
23
23
|
*/
|
|
24
|
-
export async function
|
|
24
|
+
export async function getProviders(
|
|
25
25
|
client: PerpsSDKClient,
|
|
26
26
|
options?: SDKRequestOptions
|
|
27
|
-
): Promise<
|
|
28
|
-
return request<
|
|
27
|
+
): Promise<ProvidersResponse> {
|
|
28
|
+
return request<ProvidersResponse>(
|
|
29
29
|
client.config,
|
|
30
|
-
`${client.config.apiUrl}/
|
|
30
|
+
`${client.config.apiUrl}/providers`,
|
|
31
31
|
{},
|
|
32
32
|
options
|
|
33
33
|
)
|
|
@@ -0,0 +1,124 @@
|
|
|
1
|
+
import type { AccountResponse, Asset, Position } from '@lifi/perps-types'
|
|
2
|
+
import { HlAbstractionMode } from '@lifi/perps-types/providers/hyperliquid'
|
|
3
|
+
import { stringToFloat } from './parse.js'
|
|
4
|
+
|
|
5
|
+
export interface AccountSummary {
|
|
6
|
+
/** Total portfolio value in USD */
|
|
7
|
+
portfolioValue: number
|
|
8
|
+
/** Collateral available for new positions */
|
|
9
|
+
availableMargin: number
|
|
10
|
+
/** Margin locked in open positions */
|
|
11
|
+
marginUsed: number
|
|
12
|
+
/** Unrealized PnL across all positions */
|
|
13
|
+
unrealizedPnl: number
|
|
14
|
+
}
|
|
15
|
+
|
|
16
|
+
/**
|
|
17
|
+
* Build a map of coin name → USD price from spot assets and allMids.
|
|
18
|
+
* Spot assets have displaySymbol "BASE/QUOTE" and assetId "@N" which keys into prices.
|
|
19
|
+
*/
|
|
20
|
+
function buildSpotCoinPrices(
|
|
21
|
+
assets: Asset[],
|
|
22
|
+
prices: Record<string, string>
|
|
23
|
+
): Map<string, number> {
|
|
24
|
+
const map = new Map<string, number>()
|
|
25
|
+
for (const asset of assets) {
|
|
26
|
+
if (asset.market !== 'spot') {
|
|
27
|
+
continue
|
|
28
|
+
}
|
|
29
|
+
const price = prices[asset.assetId]
|
|
30
|
+
if (!price) {
|
|
31
|
+
continue
|
|
32
|
+
}
|
|
33
|
+
const slashIdx = asset.displaySymbol.indexOf('/')
|
|
34
|
+
if (slashIdx < 0) {
|
|
35
|
+
continue
|
|
36
|
+
}
|
|
37
|
+
const base = asset.displaySymbol.slice(0, slashIdx)
|
|
38
|
+
map.set(base, stringToFloat(price))
|
|
39
|
+
}
|
|
40
|
+
return map
|
|
41
|
+
}
|
|
42
|
+
|
|
43
|
+
/**
|
|
44
|
+
* Resolve the USD price of a spot balance currency.
|
|
45
|
+
*
|
|
46
|
+
* Looks up the coin in the spot mid prices map first, then tries an exact
|
|
47
|
+
* match in allMids (e.g. a perps-listed stablecoin). Falls back to $1 for
|
|
48
|
+
* stablecoins with no market price entry.
|
|
49
|
+
*/
|
|
50
|
+
function getSpotPrice(
|
|
51
|
+
currency: string,
|
|
52
|
+
prices: Record<string, string>,
|
|
53
|
+
spotCoinPrices: Map<string, number>
|
|
54
|
+
): number {
|
|
55
|
+
const spotPrice = spotCoinPrices.get(currency)
|
|
56
|
+
if (spotPrice !== undefined) {
|
|
57
|
+
return spotPrice
|
|
58
|
+
}
|
|
59
|
+
if (prices[currency] !== undefined) {
|
|
60
|
+
return stringToFloat(prices[currency])
|
|
61
|
+
}
|
|
62
|
+
return 1
|
|
63
|
+
}
|
|
64
|
+
|
|
65
|
+
const UNIFIED_STATUSES: ReadonlySet<string> = new Set([
|
|
66
|
+
HlAbstractionMode.UNIFIED_ACCOUNT,
|
|
67
|
+
HlAbstractionMode.PORTFOLIO_MARGIN,
|
|
68
|
+
])
|
|
69
|
+
|
|
70
|
+
export function calculateAccountSummary(
|
|
71
|
+
account: AccountResponse,
|
|
72
|
+
positions: Position[],
|
|
73
|
+
prices: Record<string, string>,
|
|
74
|
+
assets?: Asset[],
|
|
75
|
+
collateralCurrencies?: ReadonlySet<string>
|
|
76
|
+
): AccountSummary {
|
|
77
|
+
let marginUsed = 0
|
|
78
|
+
let unrealizedPnl = 0
|
|
79
|
+
for (const p of positions) {
|
|
80
|
+
marginUsed += stringToFloat(p.marginUsed)
|
|
81
|
+
unrealizedPnl += stringToFloat(p.unrealizedPnl)
|
|
82
|
+
}
|
|
83
|
+
|
|
84
|
+
const spotCoinPrices = buildSpotCoinPrices(assets ?? [], prices)
|
|
85
|
+
|
|
86
|
+
// Split spot into margin-eligible (quote assets) and non-margin (HYPE, PURR etc.)
|
|
87
|
+
let spotMarginValue = 0
|
|
88
|
+
let spotNonMarginValue = 0
|
|
89
|
+
let perpsBalance = 0
|
|
90
|
+
for (const [key, entries] of Object.entries(account.balances)) {
|
|
91
|
+
if (key === 'spot') {
|
|
92
|
+
for (const b of entries) {
|
|
93
|
+
const value =
|
|
94
|
+
stringToFloat(b.amount) *
|
|
95
|
+
getSpotPrice(b.currency, prices, spotCoinPrices)
|
|
96
|
+
if (!collateralCurrencies || collateralCurrencies.has(b.currency)) {
|
|
97
|
+
spotMarginValue += value
|
|
98
|
+
} else {
|
|
99
|
+
spotNonMarginValue += value
|
|
100
|
+
}
|
|
101
|
+
}
|
|
102
|
+
} else {
|
|
103
|
+
for (const b of entries) {
|
|
104
|
+
perpsBalance += stringToFloat(b.amount)
|
|
105
|
+
}
|
|
106
|
+
}
|
|
107
|
+
}
|
|
108
|
+
|
|
109
|
+
const status = account.config?.abstractionStatus as string | undefined
|
|
110
|
+
const isUnified = UNIFIED_STATUSES.has(status ?? '')
|
|
111
|
+
|
|
112
|
+
// Unified: spot balances are total token holdings (margin is NOT subtracted).
|
|
113
|
+
// Disabled: perps venue balances are free margin (margin IS already subtracted).
|
|
114
|
+
const marginCollateral = isUnified
|
|
115
|
+
? spotMarginValue + perpsBalance
|
|
116
|
+
: spotMarginValue + perpsBalance + marginUsed
|
|
117
|
+
|
|
118
|
+
return {
|
|
119
|
+
portfolioValue: marginCollateral + spotNonMarginValue + unrealizedPnl,
|
|
120
|
+
availableMargin: marginCollateral - marginUsed,
|
|
121
|
+
marginUsed,
|
|
122
|
+
unrealizedPnl,
|
|
123
|
+
}
|
|
124
|
+
}
|