@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
package/src/errors/HTTPError.ts
DELETED
|
@@ -1,72 +0,0 @@
|
|
|
1
|
-
import type { PerpsErrorBody } from '@lifi/perps-types'
|
|
2
|
-
import { PerpsErrorCode } from '@lifi/perps-types'
|
|
3
|
-
import { PerpsErrorName } from './constants.js'
|
|
4
|
-
import { PerpsError } from './PerpsError.js'
|
|
5
|
-
|
|
6
|
-
const statusCodeToErrorCode = new Map<number, PerpsErrorCode>([
|
|
7
|
-
[400, PerpsErrorCode.ValidationError],
|
|
8
|
-
[401, PerpsErrorCode.SignatureInvalid],
|
|
9
|
-
[403, PerpsErrorCode.AgentUnauthorized],
|
|
10
|
-
[404, PerpsErrorCode.MarketNotFound],
|
|
11
|
-
[422, PerpsErrorCode.ValidationError],
|
|
12
|
-
[424, PerpsErrorCode.ThirdPartyError],
|
|
13
|
-
[429, PerpsErrorCode.ServerError],
|
|
14
|
-
[500, PerpsErrorCode.ServerError],
|
|
15
|
-
[502, PerpsErrorCode.ServerError],
|
|
16
|
-
[503, PerpsErrorCode.ServerError],
|
|
17
|
-
[504, PerpsErrorCode.TimeoutError],
|
|
18
|
-
])
|
|
19
|
-
|
|
20
|
-
function getErrorCodeFromStatus(status: number): PerpsErrorCode {
|
|
21
|
-
return statusCodeToErrorCode.get(status) ?? PerpsErrorCode.ServerError
|
|
22
|
-
}
|
|
23
|
-
|
|
24
|
-
function createInitialMessage(response: Response): string {
|
|
25
|
-
const statusCode =
|
|
26
|
-
response.status || response.status === 0 ? response.status : ''
|
|
27
|
-
const title = response.statusText || ''
|
|
28
|
-
const status = `${statusCode} ${title}`.trim()
|
|
29
|
-
const reason = status ? `status code ${status}` : 'an unknown error'
|
|
30
|
-
return `Request failed with ${reason}`
|
|
31
|
-
}
|
|
32
|
-
|
|
33
|
-
export class HTTPError extends PerpsError {
|
|
34
|
-
response: Response
|
|
35
|
-
status: number
|
|
36
|
-
url: string
|
|
37
|
-
responseBody?: PerpsErrorBody
|
|
38
|
-
|
|
39
|
-
constructor(response: Response, url: string) {
|
|
40
|
-
const code = getErrorCodeFromStatus(response.status)
|
|
41
|
-
const message = createInitialMessage(response)
|
|
42
|
-
|
|
43
|
-
super(code, message)
|
|
44
|
-
|
|
45
|
-
this.name = PerpsErrorName.HTTPError
|
|
46
|
-
this.response = response
|
|
47
|
-
this.status = response.status
|
|
48
|
-
this.url = url
|
|
49
|
-
}
|
|
50
|
-
|
|
51
|
-
async buildAdditionalDetails(): Promise<this> {
|
|
52
|
-
try {
|
|
53
|
-
this.responseBody = (await this.response.json()) as PerpsErrorBody
|
|
54
|
-
|
|
55
|
-
if (this.responseBody) {
|
|
56
|
-
// Update code from response body if available
|
|
57
|
-
if (this.responseBody.code) {
|
|
58
|
-
this.code = this.responseBody.code
|
|
59
|
-
}
|
|
60
|
-
|
|
61
|
-
// Append server message
|
|
62
|
-
if (this.responseBody.message) {
|
|
63
|
-
this.message = `${this.message}. ${this.responseBody.message}`
|
|
64
|
-
}
|
|
65
|
-
}
|
|
66
|
-
} catch {
|
|
67
|
-
// Response body parsing failed - use defaults
|
|
68
|
-
}
|
|
69
|
-
|
|
70
|
-
return this
|
|
71
|
-
}
|
|
72
|
-
}
|
|
@@ -1,79 +0,0 @@
|
|
|
1
|
-
import { PerpsErrorCode } from '@lifi/perps-types'
|
|
2
|
-
import { version } from '../version.js'
|
|
3
|
-
import { PerpsError } from './PerpsError.js'
|
|
4
|
-
|
|
5
|
-
const PERPS_SDK_ERROR_NAME = 'PerpsSDKError'
|
|
6
|
-
|
|
7
|
-
/**
|
|
8
|
-
* Top-level SDK error that wraps all other error types.
|
|
9
|
-
* This is the public-facing error type for the SDK.
|
|
10
|
-
*
|
|
11
|
-
* PerpsSDKError always includes:
|
|
12
|
-
* - A consistent error message format with SDK version
|
|
13
|
-
* - Access to the root cause error via the `cause` property
|
|
14
|
-
* - Stack trace preservation
|
|
15
|
-
*
|
|
16
|
-
* @example
|
|
17
|
-
* ```ts
|
|
18
|
-
* try {
|
|
19
|
-
* await getDexes(client)
|
|
20
|
-
* } catch (error) {
|
|
21
|
-
* if (error instanceof PerpsSDKError) {
|
|
22
|
-
* console.log(error.message) // [PerpsSDKError] message\nSDK version: X
|
|
23
|
-
* console.log(error.cause) // Original error
|
|
24
|
-
* console.log(error.code) // Numeric error code
|
|
25
|
-
* }
|
|
26
|
-
* }
|
|
27
|
-
* ```
|
|
28
|
-
*/
|
|
29
|
-
export class PerpsSDKError extends Error {
|
|
30
|
-
override name = PERPS_SDK_ERROR_NAME
|
|
31
|
-
|
|
32
|
-
/** Numeric error code from PerpsErrorCode enum */
|
|
33
|
-
code: PerpsErrorCode
|
|
34
|
-
|
|
35
|
-
/** Original cause of the error */
|
|
36
|
-
override cause?: Error
|
|
37
|
-
|
|
38
|
-
constructor(error: Error, message?: string) {
|
|
39
|
-
// Determine the code
|
|
40
|
-
const code =
|
|
41
|
-
error instanceof PerpsError ? error.code : PerpsErrorCode.DefaultError
|
|
42
|
-
|
|
43
|
-
// Build the message
|
|
44
|
-
const errorMessage = message ?? error.message
|
|
45
|
-
const formattedMessage = `[${PERPS_SDK_ERROR_NAME}] ${errorMessage}\nLI.FI Perps SDK version: ${version}`
|
|
46
|
-
|
|
47
|
-
super(formattedMessage)
|
|
48
|
-
|
|
49
|
-
this.name = PERPS_SDK_ERROR_NAME
|
|
50
|
-
this.code = code
|
|
51
|
-
this.cause = error
|
|
52
|
-
|
|
53
|
-
// Preserve the original stack trace if available
|
|
54
|
-
if (error.stack) {
|
|
55
|
-
this.stack = `${this.stack}\nCaused by: ${error.stack}`
|
|
56
|
-
}
|
|
57
|
-
}
|
|
58
|
-
|
|
59
|
-
/**
|
|
60
|
-
* Wrap any error in a PerpsSDKError.
|
|
61
|
-
*
|
|
62
|
-
* @param error - The error to wrap
|
|
63
|
-
* @param message - Optional custom message
|
|
64
|
-
* @returns PerpsSDKError instance
|
|
65
|
-
*/
|
|
66
|
-
static wrap(error: unknown, message?: string): PerpsSDKError {
|
|
67
|
-
if (error instanceof PerpsSDKError) {
|
|
68
|
-
return error
|
|
69
|
-
}
|
|
70
|
-
|
|
71
|
-
if (error instanceof Error) {
|
|
72
|
-
return new PerpsSDKError(error, message)
|
|
73
|
-
}
|
|
74
|
-
|
|
75
|
-
// Convert non-Error to Error
|
|
76
|
-
const wrappedError = new Error(String(error))
|
|
77
|
-
return new PerpsSDKError(wrappedError, message)
|
|
78
|
-
}
|
|
79
|
-
}
|
|
@@ -1,41 +0,0 @@
|
|
|
1
|
-
import { PerpsErrorCode } from '@lifi/perps-types'
|
|
2
|
-
import { version } from '../version.js'
|
|
3
|
-
import { PerpsErrorName } from './constants.js'
|
|
4
|
-
import { PerpsError } from './PerpsError.js'
|
|
5
|
-
|
|
6
|
-
/**
|
|
7
|
-
* Error thrown when server-side operations fail (network errors, timeouts, etc.)
|
|
8
|
-
*/
|
|
9
|
-
export class ServerError extends PerpsError {
|
|
10
|
-
override name = PerpsErrorName.ServerError
|
|
11
|
-
|
|
12
|
-
constructor(message: string, code = PerpsErrorCode.ServerError) {
|
|
13
|
-
super(code, message)
|
|
14
|
-
this.name = PerpsErrorName.ServerError
|
|
15
|
-
|
|
16
|
-
// Override message format
|
|
17
|
-
this.message = `[${PerpsErrorName.ServerError}] ${message}\nLI.FI Perps SDK version: ${version}`
|
|
18
|
-
}
|
|
19
|
-
|
|
20
|
-
/**
|
|
21
|
-
* Create a ServerError for a network failure.
|
|
22
|
-
*
|
|
23
|
-
* @param cause - The original error
|
|
24
|
-
*/
|
|
25
|
-
static networkError(cause?: Error): ServerError {
|
|
26
|
-
const message = cause?.message ?? 'Network request failed'
|
|
27
|
-
return new ServerError(message)
|
|
28
|
-
}
|
|
29
|
-
|
|
30
|
-
/**
|
|
31
|
-
* Create a ServerError for a timeout.
|
|
32
|
-
*
|
|
33
|
-
* @param operation - The operation that timed out
|
|
34
|
-
*/
|
|
35
|
-
static timeout(operation: string): ServerError {
|
|
36
|
-
return new ServerError(
|
|
37
|
-
`${operation} timed out`,
|
|
38
|
-
PerpsErrorCode.TimeoutError
|
|
39
|
-
)
|
|
40
|
-
}
|
|
41
|
-
}
|
|
@@ -1,38 +0,0 @@
|
|
|
1
|
-
import { PerpsErrorCode } from '@lifi/perps-types'
|
|
2
|
-
import { version } from '../version.js'
|
|
3
|
-
import { PerpsErrorName } from './constants.js'
|
|
4
|
-
import { PerpsError } from './PerpsError.js'
|
|
5
|
-
|
|
6
|
-
/**
|
|
7
|
-
* Error thrown when validation fails (invalid parameters, missing required fields, etc.)
|
|
8
|
-
*/
|
|
9
|
-
export class ValidationError extends PerpsError {
|
|
10
|
-
override name = PerpsErrorName.ValidationError
|
|
11
|
-
|
|
12
|
-
constructor(message: string) {
|
|
13
|
-
super(PerpsErrorCode.ValidationError, message)
|
|
14
|
-
this.name = PerpsErrorName.ValidationError
|
|
15
|
-
|
|
16
|
-
// Override message format
|
|
17
|
-
this.message = `[${PerpsErrorName.ValidationError}] ${message}\nLI.FI Perps SDK version: ${version}`
|
|
18
|
-
}
|
|
19
|
-
|
|
20
|
-
/**
|
|
21
|
-
* Create a ValidationError from a validation failure.
|
|
22
|
-
*
|
|
23
|
-
* @param field - The field that failed validation
|
|
24
|
-
* @param reason - The reason for validation failure
|
|
25
|
-
*/
|
|
26
|
-
static field(field: string, reason: string): ValidationError {
|
|
27
|
-
return new ValidationError(`Invalid ${field}: ${reason}`)
|
|
28
|
-
}
|
|
29
|
-
|
|
30
|
-
/**
|
|
31
|
-
* Create a ValidationError for a missing required field.
|
|
32
|
-
*
|
|
33
|
-
* @param field - The name of the missing field
|
|
34
|
-
*/
|
|
35
|
-
static required(field: string): ValidationError {
|
|
36
|
-
return new ValidationError(`${field} is required`)
|
|
37
|
-
}
|
|
38
|
-
}
|
|
@@ -1,112 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* Get the root cause of an error by following the cause chain.
|
|
3
|
-
*
|
|
4
|
-
* @param error - The error to get the root cause of
|
|
5
|
-
* @returns The root cause error, or the original error if no cause chain
|
|
6
|
-
*
|
|
7
|
-
* @example
|
|
8
|
-
* ```ts
|
|
9
|
-
* const wrapper = new PerpsSDKError(new HTTPError(response, url))
|
|
10
|
-
* const root = getRootCause(wrapper) // Returns the HTTPError
|
|
11
|
-
* ```
|
|
12
|
-
*/
|
|
13
|
-
export function getRootCause(error: Error): Error {
|
|
14
|
-
let current: Error = error
|
|
15
|
-
let iterations = 0
|
|
16
|
-
const maxIterations = 100 // Prevent infinite loops
|
|
17
|
-
|
|
18
|
-
while (current.cause instanceof Error && iterations < maxIterations) {
|
|
19
|
-
current = current.cause
|
|
20
|
-
iterations++
|
|
21
|
-
}
|
|
22
|
-
|
|
23
|
-
return current
|
|
24
|
-
}
|
|
25
|
-
|
|
26
|
-
/**
|
|
27
|
-
* Get the message from the root cause of an error.
|
|
28
|
-
*
|
|
29
|
-
* @param error - The error to get the root cause message from
|
|
30
|
-
* @returns The root cause message
|
|
31
|
-
*
|
|
32
|
-
* @example
|
|
33
|
-
* ```ts
|
|
34
|
-
* const wrapper = new PerpsSDKError(new HTTPError(response, url))
|
|
35
|
-
* const message = getRootCauseMessage(wrapper) // Returns the HTTPError's message
|
|
36
|
-
* ```
|
|
37
|
-
*/
|
|
38
|
-
export function getRootCauseMessage(error: Error): string {
|
|
39
|
-
return getRootCause(error).message
|
|
40
|
-
}
|
|
41
|
-
|
|
42
|
-
/**
|
|
43
|
-
* Get the full error chain as an array.
|
|
44
|
-
*
|
|
45
|
-
* @param error - The error to get the chain from
|
|
46
|
-
* @returns Array of errors from outermost to root cause
|
|
47
|
-
*
|
|
48
|
-
* @example
|
|
49
|
-
* ```ts
|
|
50
|
-
* const chain = getErrorChain(sdkError)
|
|
51
|
-
* // [PerpsSDKError, HTTPError, ...]
|
|
52
|
-
* ```
|
|
53
|
-
*/
|
|
54
|
-
export function getErrorChain(error: Error): Error[] {
|
|
55
|
-
const chain: Error[] = [error]
|
|
56
|
-
let current = error
|
|
57
|
-
let iterations = 0
|
|
58
|
-
const maxIterations = 100
|
|
59
|
-
|
|
60
|
-
while (current.cause instanceof Error && iterations < maxIterations) {
|
|
61
|
-
chain.push(current.cause)
|
|
62
|
-
current = current.cause
|
|
63
|
-
iterations++
|
|
64
|
-
}
|
|
65
|
-
|
|
66
|
-
return chain
|
|
67
|
-
}
|
|
68
|
-
|
|
69
|
-
/**
|
|
70
|
-
* Check if an error chain contains an error of a specific type.
|
|
71
|
-
*
|
|
72
|
-
* @param error - The error to check
|
|
73
|
-
* @param ErrorClass - The error class to look for
|
|
74
|
-
* @returns True if the chain contains an error of the specified type
|
|
75
|
-
*
|
|
76
|
-
* @example
|
|
77
|
-
* ```ts
|
|
78
|
-
* if (hasErrorType(error, HTTPError)) {
|
|
79
|
-
* // Handle HTTP error specifically
|
|
80
|
-
* }
|
|
81
|
-
* ```
|
|
82
|
-
*/
|
|
83
|
-
export function hasErrorType<T extends Error>(
|
|
84
|
-
error: Error,
|
|
85
|
-
ErrorClass: new (...args: any[]) => T
|
|
86
|
-
): boolean {
|
|
87
|
-
const chain = getErrorChain(error)
|
|
88
|
-
return chain.some((e) => e instanceof ErrorClass)
|
|
89
|
-
}
|
|
90
|
-
|
|
91
|
-
/**
|
|
92
|
-
* Find the first error of a specific type in the error chain.
|
|
93
|
-
*
|
|
94
|
-
* @param error - The error to search
|
|
95
|
-
* @param ErrorClass - The error class to find
|
|
96
|
-
* @returns The first matching error, or undefined if not found
|
|
97
|
-
*
|
|
98
|
-
* @example
|
|
99
|
-
* ```ts
|
|
100
|
-
* const httpError = findErrorType(error, HTTPError)
|
|
101
|
-
* if (httpError) {
|
|
102
|
-
* console.log(httpError.status)
|
|
103
|
-
* }
|
|
104
|
-
* ```
|
|
105
|
-
*/
|
|
106
|
-
export function findErrorType<T extends Error>(
|
|
107
|
-
error: Error,
|
|
108
|
-
ErrorClass: new (...args: any[]) => T
|
|
109
|
-
): T | undefined {
|
|
110
|
-
const chain = getErrorChain(error)
|
|
111
|
-
return chain.find((e): e is T => e instanceof ErrorClass)
|
|
112
|
-
}
|
|
@@ -1,75 +0,0 @@
|
|
|
1
|
-
import type { Address, CancelOrderPayloadResponse } from '@lifi/perps-types'
|
|
2
|
-
import type {
|
|
3
|
-
PerpsSDKClient,
|
|
4
|
-
SDKRequestOptions,
|
|
5
|
-
} from '../client/createPerpsClient.js'
|
|
6
|
-
import { request } from '../utils/request.js'
|
|
7
|
-
|
|
8
|
-
export interface CancelOrderParams {
|
|
9
|
-
/** DEX to cancel orders on (e.g., 'hyperliquid') */
|
|
10
|
-
dex: string
|
|
11
|
-
/** Wallet address */
|
|
12
|
-
address: Address
|
|
13
|
-
/** Address of the signer (for agent mode, this is the agent address) */
|
|
14
|
-
signerAddress?: Address
|
|
15
|
-
/** Order IDs to cancel */
|
|
16
|
-
ids: string[]
|
|
17
|
-
}
|
|
18
|
-
|
|
19
|
-
/**
|
|
20
|
-
* Create cancel order payloads for signing.
|
|
21
|
-
* Returns typed data that must be signed by the user or agent.
|
|
22
|
-
*
|
|
23
|
-
* @param client - The SDK client instance
|
|
24
|
-
* @param params - Request parameters
|
|
25
|
-
* @param options - Request options (e.g., AbortSignal)
|
|
26
|
-
* @returns Cancel actions with typed data for signing
|
|
27
|
-
* @throws {HTTPError} On API error responses
|
|
28
|
-
* @throws {PerpsError} On network or parsing errors
|
|
29
|
-
*
|
|
30
|
-
* @example
|
|
31
|
-
* ```ts
|
|
32
|
-
* const client = createPerpsClient({ integrator: 'my-app' })
|
|
33
|
-
* const { actions } = await cancelOrder(client, {
|
|
34
|
-
* dex: 'hyperliquid',
|
|
35
|
-
* address: '0x1234...',
|
|
36
|
-
* ids: ['order1', 'order2']
|
|
37
|
-
* })
|
|
38
|
-
*
|
|
39
|
-
* // Sign with agent key or user wallet
|
|
40
|
-
* const signedActions = await Promise.all(
|
|
41
|
-
* actions.map(async (a) => ({
|
|
42
|
-
* action: a.action,
|
|
43
|
-
* typedData: a.typedData,
|
|
44
|
-
* signature: await signTypedData(agentPrivateKey, a.typedData)
|
|
45
|
-
* }))
|
|
46
|
-
* )
|
|
47
|
-
*
|
|
48
|
-
* // Submit the signed cancellation
|
|
49
|
-
* await submitOrder(client, {
|
|
50
|
-
* dex: 'hyperliquid',
|
|
51
|
-
* address: '0x1234...',
|
|
52
|
-
* actions: signedActions
|
|
53
|
-
* })
|
|
54
|
-
* ```
|
|
55
|
-
*/
|
|
56
|
-
export async function cancelOrder(
|
|
57
|
-
client: PerpsSDKClient,
|
|
58
|
-
params: CancelOrderParams,
|
|
59
|
-
options?: SDKRequestOptions
|
|
60
|
-
): Promise<CancelOrderPayloadResponse> {
|
|
61
|
-
return request<CancelOrderPayloadResponse>(
|
|
62
|
-
client.config,
|
|
63
|
-
`${client.config.apiUrl}/cancelOrder`,
|
|
64
|
-
{
|
|
65
|
-
method: 'POST',
|
|
66
|
-
body: JSON.stringify({
|
|
67
|
-
dex: params.dex,
|
|
68
|
-
address: params.address,
|
|
69
|
-
signerAddress: params.signerAddress,
|
|
70
|
-
ids: params.ids,
|
|
71
|
-
}),
|
|
72
|
-
},
|
|
73
|
-
options
|
|
74
|
-
)
|
|
75
|
-
}
|
|
@@ -1,79 +0,0 @@
|
|
|
1
|
-
import type {
|
|
2
|
-
Address,
|
|
3
|
-
AuthorizationInput,
|
|
4
|
-
CreateAuthorizationResponse,
|
|
5
|
-
} from '@lifi/perps-types'
|
|
6
|
-
import type {
|
|
7
|
-
PerpsSDKClient,
|
|
8
|
-
SDKRequestOptions,
|
|
9
|
-
} from '../client/createPerpsClient.js'
|
|
10
|
-
import { request } from '../utils/request.js'
|
|
11
|
-
|
|
12
|
-
export interface CreateAuthorizationParams {
|
|
13
|
-
/** DEX to authorize (e.g., 'hyperliquid') */
|
|
14
|
-
dex: string
|
|
15
|
-
/** Wallet address */
|
|
16
|
-
address: Address
|
|
17
|
-
/** Address of the signer (for agent mode, this is the agent address) */
|
|
18
|
-
signerAddress?: Address
|
|
19
|
-
/** List of authorizations to create */
|
|
20
|
-
authorizations: AuthorizationInput[]
|
|
21
|
-
}
|
|
22
|
-
|
|
23
|
-
/**
|
|
24
|
-
* Create authorization payloads for signing.
|
|
25
|
-
* Returns typed data that must be signed by the user or agent.
|
|
26
|
-
*
|
|
27
|
-
* @param client - The SDK client instance
|
|
28
|
-
* @param params - Request parameters
|
|
29
|
-
* @param options - Request options (e.g., AbortSignal)
|
|
30
|
-
* @returns Authorization actions with typed data for signing
|
|
31
|
-
* @throws {HTTPError} On API error responses
|
|
32
|
-
* @throws {PerpsError} On network or parsing errors
|
|
33
|
-
*
|
|
34
|
-
* @remarks
|
|
35
|
-
* The example below uses Hyperliquid authorization keys. Use `getDexes()` to discover
|
|
36
|
-
* available authorizations for each DEX.
|
|
37
|
-
*
|
|
38
|
-
* @example
|
|
39
|
-
* ```ts
|
|
40
|
-
* const client = createPerpsClient({ integrator: 'my-app' })
|
|
41
|
-
* const { actions } = await createAuthorization(client, {
|
|
42
|
-
* dex: 'hyperliquid',
|
|
43
|
-
* address: '0x1234...',
|
|
44
|
-
* authorizations: [
|
|
45
|
-
* { key: 'ApproveAgent', params: { agentAddress: '0xabcd...' } },
|
|
46
|
-
* { key: 'ApproveBuilderFee' }
|
|
47
|
-
* ]
|
|
48
|
-
* })
|
|
49
|
-
*
|
|
50
|
-
* // Sign each action's typedData with the user's wallet
|
|
51
|
-
* const signedActions = await Promise.all(
|
|
52
|
-
* actions.map(async (a) => ({
|
|
53
|
-
* action: a.action,
|
|
54
|
-
* typedData: a.typedData,
|
|
55
|
-
* signature: await walletClient.signTypedData(a.typedData)
|
|
56
|
-
* }))
|
|
57
|
-
* )
|
|
58
|
-
* ```
|
|
59
|
-
*/
|
|
60
|
-
export async function createAuthorization(
|
|
61
|
-
client: PerpsSDKClient,
|
|
62
|
-
params: CreateAuthorizationParams,
|
|
63
|
-
options?: SDKRequestOptions
|
|
64
|
-
): Promise<CreateAuthorizationResponse> {
|
|
65
|
-
return request<CreateAuthorizationResponse>(
|
|
66
|
-
client.config,
|
|
67
|
-
`${client.config.apiUrl}/createAuthorization`,
|
|
68
|
-
{
|
|
69
|
-
method: 'POST',
|
|
70
|
-
body: JSON.stringify({
|
|
71
|
-
dex: params.dex,
|
|
72
|
-
address: params.address,
|
|
73
|
-
signerAddress: params.signerAddress,
|
|
74
|
-
authorizations: params.authorizations,
|
|
75
|
-
}),
|
|
76
|
-
},
|
|
77
|
-
options
|
|
78
|
-
)
|
|
79
|
-
}
|
|
@@ -1,116 +0,0 @@
|
|
|
1
|
-
import type {
|
|
2
|
-
Address,
|
|
3
|
-
CreateOrderResponse,
|
|
4
|
-
OrderSide,
|
|
5
|
-
OrderType,
|
|
6
|
-
TimeInForce,
|
|
7
|
-
TriggerOrderInput,
|
|
8
|
-
} from '@lifi/perps-types'
|
|
9
|
-
import type {
|
|
10
|
-
PerpsSDKClient,
|
|
11
|
-
SDKRequestOptions,
|
|
12
|
-
} from '../client/createPerpsClient.js'
|
|
13
|
-
import { request } from '../utils/request.js'
|
|
14
|
-
|
|
15
|
-
export interface CreateOrderParams {
|
|
16
|
-
/** DEX to place order on (e.g., 'hyperliquid') */
|
|
17
|
-
dex: string
|
|
18
|
-
/** Wallet address */
|
|
19
|
-
address: Address
|
|
20
|
-
/** Address of the signer (for agent mode, this is the agent address) */
|
|
21
|
-
signerAddress?: Address
|
|
22
|
-
/** Client-provided order ID for tracking */
|
|
23
|
-
clientOrderId?: string
|
|
24
|
-
/** Market symbol (e.g., 'BTC') */
|
|
25
|
-
symbol: string
|
|
26
|
-
/** Order side */
|
|
27
|
-
side: OrderSide
|
|
28
|
-
/** Order type */
|
|
29
|
-
type: OrderType
|
|
30
|
-
/** Order size (in base asset) */
|
|
31
|
-
size: string
|
|
32
|
-
/** Order price (required for limit orders) */
|
|
33
|
-
price: string
|
|
34
|
-
/** Leverage for the position */
|
|
35
|
-
leverage?: number
|
|
36
|
-
/** Whether this order only reduces position */
|
|
37
|
-
reduceOnly?: boolean
|
|
38
|
-
/** Time in force */
|
|
39
|
-
timeInForce?: TimeInForce
|
|
40
|
-
/** Expiration time (ISO 8601) */
|
|
41
|
-
expiresAt?: string
|
|
42
|
-
/** Take profit trigger order */
|
|
43
|
-
takeProfit?: TriggerOrderInput
|
|
44
|
-
/** Stop loss trigger order */
|
|
45
|
-
stopLoss?: TriggerOrderInput
|
|
46
|
-
}
|
|
47
|
-
|
|
48
|
-
/**
|
|
49
|
-
* Create order payloads for signing.
|
|
50
|
-
* Returns typed data that must be signed by the user or agent.
|
|
51
|
-
*
|
|
52
|
-
* @param client - The SDK client instance
|
|
53
|
-
* @param params - Request parameters
|
|
54
|
-
* @param options - Request options (e.g., AbortSignal)
|
|
55
|
-
* @returns Order actions with typed data for signing
|
|
56
|
-
* @throws {HTTPError} On API error responses
|
|
57
|
-
* @throws {PerpsError} On network or parsing errors
|
|
58
|
-
*
|
|
59
|
-
* @remarks
|
|
60
|
-
* The example below uses Hyperliquid. Replace the `dex` value for other DEXes.
|
|
61
|
-
*
|
|
62
|
-
* @example
|
|
63
|
-
* ```ts
|
|
64
|
-
* const client = createPerpsClient({ integrator: 'my-app' })
|
|
65
|
-
* const { actions } = await createOrder(client, {
|
|
66
|
-
* dex: 'hyperliquid',
|
|
67
|
-
* address: '0x1234...',
|
|
68
|
-
* symbol: 'BTC',
|
|
69
|
-
* side: OrderSide.BUY,
|
|
70
|
-
* type: OrderType.LIMIT,
|
|
71
|
-
* size: '0.1',
|
|
72
|
-
* price: '94000.00',
|
|
73
|
-
* leverage: 10
|
|
74
|
-
* })
|
|
75
|
-
*
|
|
76
|
-
* // Sign each action with the user's wallet or agent key
|
|
77
|
-
* const signedActions = await Promise.all(
|
|
78
|
-
* actions.map(async (a) => ({
|
|
79
|
-
* action: a.action,
|
|
80
|
-
* typedData: a.typedData,
|
|
81
|
-
* signature: await walletClient.signTypedData(a.typedData)
|
|
82
|
-
* }))
|
|
83
|
-
* )
|
|
84
|
-
* ```
|
|
85
|
-
*/
|
|
86
|
-
export async function createOrder(
|
|
87
|
-
client: PerpsSDKClient,
|
|
88
|
-
params: CreateOrderParams,
|
|
89
|
-
options?: SDKRequestOptions
|
|
90
|
-
): Promise<CreateOrderResponse> {
|
|
91
|
-
return request<CreateOrderResponse>(
|
|
92
|
-
client.config,
|
|
93
|
-
`${client.config.apiUrl}/createOrder`,
|
|
94
|
-
{
|
|
95
|
-
method: 'POST',
|
|
96
|
-
body: JSON.stringify({
|
|
97
|
-
dex: params.dex,
|
|
98
|
-
address: params.address,
|
|
99
|
-
signerAddress: params.signerAddress,
|
|
100
|
-
clientOrderId: params.clientOrderId,
|
|
101
|
-
symbol: params.symbol,
|
|
102
|
-
side: params.side,
|
|
103
|
-
type: params.type,
|
|
104
|
-
size: params.size,
|
|
105
|
-
price: params.price,
|
|
106
|
-
leverage: params.leverage,
|
|
107
|
-
reduceOnly: params.reduceOnly,
|
|
108
|
-
timeInForce: params.timeInForce,
|
|
109
|
-
expiresAt: params.expiresAt,
|
|
110
|
-
takeProfit: params.takeProfit,
|
|
111
|
-
stopLoss: params.stopLoss,
|
|
112
|
-
}),
|
|
113
|
-
},
|
|
114
|
-
options
|
|
115
|
-
)
|
|
116
|
-
}
|
|
@@ -1,76 +0,0 @@
|
|
|
1
|
-
import type {
|
|
2
|
-
Address,
|
|
3
|
-
CreateWithdrawalResponse,
|
|
4
|
-
WithdrawalInput,
|
|
5
|
-
} from '@lifi/perps-types'
|
|
6
|
-
import type {
|
|
7
|
-
PerpsSDKClient,
|
|
8
|
-
SDKRequestOptions,
|
|
9
|
-
} from '../client/createPerpsClient.js'
|
|
10
|
-
import { request } from '../utils/request.js'
|
|
11
|
-
|
|
12
|
-
export interface CreateWithdrawalParams {
|
|
13
|
-
/** DEX to withdraw from (e.g., 'hyperliquid') */
|
|
14
|
-
dex: string
|
|
15
|
-
/** Wallet address (account owner) */
|
|
16
|
-
address: Address
|
|
17
|
-
/** Withdrawal details (destination address and amount) */
|
|
18
|
-
withdrawal: WithdrawalInput
|
|
19
|
-
}
|
|
20
|
-
|
|
21
|
-
/**
|
|
22
|
-
* Create a withdrawal payload for signing.
|
|
23
|
-
* Returns typed data that must be signed by the user's wallet.
|
|
24
|
-
*
|
|
25
|
-
* Withdrawals are user-signed only — agents cannot initiate withdrawals.
|
|
26
|
-
* This is a protocol-level security feature.
|
|
27
|
-
*
|
|
28
|
-
* @param client - The SDK client instance
|
|
29
|
-
* @param params - Request parameters
|
|
30
|
-
* @param options - Request options (e.g., AbortSignal)
|
|
31
|
-
* @returns Withdrawal action with typed data for signing
|
|
32
|
-
* @throws {HTTPError} On API error responses
|
|
33
|
-
* @throws {PerpsError} On network or parsing errors
|
|
34
|
-
*
|
|
35
|
-
* @remarks
|
|
36
|
-
* The example below uses Hyperliquid. Withdrawal mechanics vary by DEX.
|
|
37
|
-
*
|
|
38
|
-
* @example
|
|
39
|
-
* ```ts
|
|
40
|
-
* const client = createPerpsClient({ integrator: 'my-app' })
|
|
41
|
-
* const { action } = await createWithdrawal(client, {
|
|
42
|
-
* dex: 'hyperliquid',
|
|
43
|
-
* address: '0x1234...',
|
|
44
|
-
* withdrawal: {
|
|
45
|
-
* destination: '0x1234...',
|
|
46
|
-
* amount: '100.0',
|
|
47
|
-
* },
|
|
48
|
-
* })
|
|
49
|
-
*
|
|
50
|
-
* // Sign the action's typedData with the user's wallet
|
|
51
|
-
* const signedAction = {
|
|
52
|
-
* action: action.action,
|
|
53
|
-
* typedData: action.typedData,
|
|
54
|
-
* signature: await walletClient.signTypedData(action.typedData),
|
|
55
|
-
* }
|
|
56
|
-
* ```
|
|
57
|
-
*/
|
|
58
|
-
export async function createWithdrawal(
|
|
59
|
-
client: PerpsSDKClient,
|
|
60
|
-
params: CreateWithdrawalParams,
|
|
61
|
-
options?: SDKRequestOptions
|
|
62
|
-
): Promise<CreateWithdrawalResponse> {
|
|
63
|
-
return request<CreateWithdrawalResponse>(
|
|
64
|
-
client.config,
|
|
65
|
-
`${client.config.apiUrl}/createWithdrawal`,
|
|
66
|
-
{
|
|
67
|
-
method: 'POST',
|
|
68
|
-
body: JSON.stringify({
|
|
69
|
-
dex: params.dex,
|
|
70
|
-
address: params.address,
|
|
71
|
-
withdrawal: params.withdrawal,
|
|
72
|
-
}),
|
|
73
|
-
},
|
|
74
|
-
options
|
|
75
|
-
)
|
|
76
|
-
}
|