@lifi/perps-sdk-provider-hyperliquid 0.0.0-preview-c903f1e
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/LICENSE +201 -0
- package/README.md +29 -0
- package/dist/cjs/HyperliquidProvider.d.ts +15 -0
- package/dist/cjs/HyperliquidProvider.d.ts.map +1 -0
- package/dist/cjs/HyperliquidProvider.js +135 -0
- package/dist/cjs/HyperliquidProvider.js.map +1 -0
- package/dist/cjs/accountConfig.d.ts +3 -0
- package/dist/cjs/accountConfig.d.ts.map +1 -0
- package/dist/cjs/accountConfig.js +45 -0
- package/dist/cjs/accountConfig.js.map +1 -0
- package/dist/cjs/accountSummary.d.ts +3 -0
- package/dist/cjs/accountSummary.d.ts.map +1 -0
- package/dist/cjs/accountSummary.js +12 -0
- package/dist/cjs/accountSummary.js.map +1 -0
- package/dist/cjs/constants.d.ts +11 -0
- package/dist/cjs/constants.d.ts.map +1 -0
- package/dist/cjs/constants.js +16 -0
- package/dist/cjs/constants.js.map +1 -0
- package/dist/cjs/context.d.ts +13 -0
- package/dist/cjs/context.d.ts.map +1 -0
- package/dist/cjs/context.js +24 -0
- package/dist/cjs/context.js.map +1 -0
- package/dist/cjs/index.d.ts +22 -0
- package/dist/cjs/index.d.ts.map +1 -0
- package/dist/cjs/index.js +47 -0
- package/dist/cjs/index.js.map +1 -0
- package/dist/cjs/package.json +1 -0
- package/dist/cjs/services/getAccount.d.ts +6 -0
- package/dist/cjs/services/getAccount.d.ts.map +1 -0
- package/dist/cjs/services/getAccount.js +109 -0
- package/dist/cjs/services/getAccount.js.map +1 -0
- package/dist/cjs/services/getActivity.d.ts +15 -0
- package/dist/cjs/services/getActivity.d.ts.map +1 -0
- package/dist/cjs/services/getActivity.js +65 -0
- package/dist/cjs/services/getActivity.js.map +1 -0
- package/dist/cjs/services/getFills.d.ts +13 -0
- package/dist/cjs/services/getFills.d.ts.map +1 -0
- package/dist/cjs/services/getFills.js +40 -0
- package/dist/cjs/services/getFills.js.map +1 -0
- package/dist/cjs/services/getOrder.d.ts +6 -0
- package/dist/cjs/services/getOrder.d.ts.map +1 -0
- package/dist/cjs/services/getOrder.js +27 -0
- package/dist/cjs/services/getOrder.js.map +1 -0
- 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 +51 -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 +33 -0
- package/dist/cjs/services/getPositions.js.map +1 -0
- package/dist/cjs/signers/HyperliquidAgentStore.d.ts +19 -0
- package/dist/cjs/signers/HyperliquidAgentStore.d.ts.map +1 -0
- package/dist/cjs/signers/HyperliquidAgentStore.js +110 -0
- package/dist/cjs/signers/HyperliquidAgentStore.js.map +1 -0
- package/dist/cjs/signers/index.d.ts +4 -0
- package/dist/cjs/signers/index.d.ts.map +1 -0
- package/dist/cjs/signers/index.js +8 -0
- package/dist/cjs/signers/index.js.map +1 -0
- package/dist/cjs/signers/signActions.d.ts +7 -0
- package/dist/cjs/signers/signActions.d.ts.map +1 -0
- package/dist/cjs/signers/signActions.js +33 -0
- package/dist/cjs/signers/signActions.js.map +1 -0
- package/dist/cjs/types/account.d.ts +51 -0
- package/dist/cjs/types/account.d.ts.map +1 -0
- package/dist/cjs/types/account.js +10 -0
- package/dist/cjs/types/account.js.map +1 -0
- package/dist/cjs/types/action.d.ts +51 -0
- package/dist/cjs/types/action.d.ts.map +1 -0
- package/dist/cjs/types/action.js +11 -0
- package/dist/cjs/types/action.js.map +1 -0
- package/dist/cjs/types/asset.d.ts +66 -0
- package/dist/cjs/types/asset.d.ts.map +1 -0
- package/dist/cjs/types/asset.js +3 -0
- package/dist/cjs/types/asset.js.map +1 -0
- package/dist/cjs/types/fill.d.ts +18 -0
- package/dist/cjs/types/fill.d.ts.map +1 -0
- package/dist/cjs/types/fill.js +3 -0
- package/dist/cjs/types/fill.js.map +1 -0
- package/dist/cjs/types/index.d.ts +8 -0
- package/dist/cjs/types/index.d.ts.map +1 -0
- package/dist/cjs/types/index.js +24 -0
- package/dist/cjs/types/index.js.map +1 -0
- package/dist/cjs/types/ledger.d.ts +53 -0
- package/dist/cjs/types/ledger.d.ts.map +1 -0
- package/dist/cjs/types/ledger.js +8 -0
- package/dist/cjs/types/ledger.js.map +1 -0
- package/dist/cjs/types/order.d.ts +46 -0
- package/dist/cjs/types/order.d.ts.map +1 -0
- package/dist/cjs/types/order.js +3 -0
- package/dist/cjs/types/order.js.map +1 -0
- package/dist/cjs/types/ws.d.ts +36 -0
- package/dist/cjs/types/ws.d.ts.map +1 -0
- package/dist/cjs/types/ws.js +3 -0
- package/dist/cjs/types/ws.js.map +1 -0
- package/dist/cjs/utils/assetId.d.ts +4 -0
- package/dist/cjs/utils/assetId.d.ts.map +1 -0
- package/dist/cjs/utils/assetId.js +21 -0
- package/dist/cjs/utils/assetId.js.map +1 -0
- package/dist/cjs/utils/index.d.ts +15 -0
- package/dist/cjs/utils/index.d.ts.map +1 -0
- package/dist/cjs/utils/index.js +49 -0
- package/dist/cjs/utils/index.js.map +1 -0
- package/dist/cjs/utils/infoClient.d.ts +10 -0
- package/dist/cjs/utils/infoClient.d.ts.map +1 -0
- package/dist/cjs/utils/infoClient.js +58 -0
- package/dist/cjs/utils/infoClient.js.map +1 -0
- package/dist/cjs/utils/liquidation.d.ts +3 -0
- package/dist/cjs/utils/liquidation.d.ts.map +1 -0
- package/dist/cjs/utils/liquidation.js +24 -0
- package/dist/cjs/utils/liquidation.js.map +1 -0
- package/dist/cjs/utils/mapActivity.d.ts +5 -0
- package/dist/cjs/utils/mapActivity.d.ts.map +1 -0
- package/dist/cjs/utils/mapActivity.js +133 -0
- package/dist/cjs/utils/mapActivity.js.map +1 -0
- package/dist/cjs/utils/mapFill.d.ts +6 -0
- package/dist/cjs/utils/mapFill.d.ts.map +1 -0
- package/dist/cjs/utils/mapFill.js +33 -0
- package/dist/cjs/utils/mapFill.js.map +1 -0
- package/dist/cjs/utils/mapMarket.d.ts +4 -0
- package/dist/cjs/utils/mapMarket.d.ts.map +1 -0
- package/dist/cjs/utils/mapMarket.js +22 -0
- package/dist/cjs/utils/mapMarket.js.map +1 -0
- package/dist/cjs/utils/mapMarketPrice.d.ts +4 -0
- package/dist/cjs/utils/mapMarketPrice.d.ts.map +1 -0
- package/dist/cjs/utils/mapMarketPrice.js +22 -0
- package/dist/cjs/utils/mapMarketPrice.js.map +1 -0
- package/dist/cjs/utils/mapOrder.d.ts +12 -0
- package/dist/cjs/utils/mapOrder.d.ts.map +1 -0
- package/dist/cjs/utils/mapOrder.js +156 -0
- package/dist/cjs/utils/mapOrder.js.map +1 -0
- package/dist/cjs/utils/mapPosition.d.ts +5 -0
- package/dist/cjs/utils/mapPosition.d.ts.map +1 -0
- package/dist/cjs/utils/mapPosition.js +28 -0
- package/dist/cjs/utils/mapPosition.js.map +1 -0
- package/dist/cjs/utils/marketDisplay.d.ts +4 -0
- package/dist/cjs/utils/marketDisplay.d.ts.map +1 -0
- package/dist/cjs/utils/marketDisplay.js +23 -0
- package/dist/cjs/utils/marketDisplay.js.map +1 -0
- package/dist/cjs/utils/orderFormatting.d.ts +4 -0
- package/dist/cjs/utils/orderFormatting.d.ts.map +1 -0
- package/dist/cjs/utils/orderFormatting.js +30 -0
- package/dist/cjs/utils/orderFormatting.js.map +1 -0
- package/dist/cjs/utils/priceStepToAggregation.d.ts +5 -0
- package/dist/cjs/utils/priceStepToAggregation.d.ts.map +1 -0
- package/dist/cjs/utils/priceStepToAggregation.js +36 -0
- package/dist/cjs/utils/priceStepToAggregation.js.map +1 -0
- package/dist/cjs/utils/spotBalance.d.ts +6 -0
- package/dist/cjs/utils/spotBalance.d.ts.map +1 -0
- package/dist/cjs/utils/spotBalance.js +34 -0
- package/dist/cjs/utils/spotBalance.js.map +1 -0
- package/dist/cjs/websocket/HyperliquidWsProvider.d.ts +29 -0
- package/dist/cjs/websocket/HyperliquidWsProvider.d.ts.map +1 -0
- package/dist/cjs/websocket/HyperliquidWsProvider.js +359 -0
- package/dist/cjs/websocket/HyperliquidWsProvider.js.map +1 -0
- package/dist/cjs/websocket/index.d.ts +2 -0
- package/dist/cjs/websocket/index.d.ts.map +1 -0
- package/dist/cjs/websocket/index.js +6 -0
- package/dist/cjs/websocket/index.js.map +1 -0
- package/dist/esm/HyperliquidProvider.d.ts +64 -0
- package/dist/esm/HyperliquidProvider.d.ts.map +1 -0
- package/dist/esm/HyperliquidProvider.js +162 -0
- package/dist/esm/HyperliquidProvider.js.map +1 -0
- package/dist/esm/accountConfig.d.ts +10 -0
- package/dist/esm/accountConfig.d.ts.map +1 -0
- package/dist/esm/accountConfig.js +65 -0
- package/dist/esm/accountConfig.js.map +1 -0
- package/dist/esm/accountSummary.d.ts +10 -0
- package/dist/esm/accountSummary.d.ts.map +1 -0
- package/dist/esm/accountSummary.js +22 -0
- package/dist/esm/accountSummary.js.map +1 -0
- package/dist/esm/constants.d.ts +40 -0
- package/dist/esm/constants.d.ts.map +1 -0
- package/dist/esm/constants.js +42 -0
- package/dist/esm/constants.js.map +1 -0
- package/dist/esm/context.d.ts +26 -0
- package/dist/esm/context.d.ts.map +1 -0
- package/dist/esm/context.js +25 -0
- package/dist/esm/context.js.map +1 -0
- package/dist/esm/index.d.ts +31 -0
- package/dist/esm/index.d.ts.map +1 -0
- package/dist/esm/index.js +26 -0
- package/dist/esm/index.js.map +1 -0
- package/dist/esm/package.json +1 -0
- package/dist/esm/services/getAccount.d.ts +28 -0
- package/dist/esm/services/getAccount.d.ts.map +1 -0
- package/dist/esm/services/getAccount.js +134 -0
- package/dist/esm/services/getAccount.js.map +1 -0
- package/dist/esm/services/getActivity.d.ts +33 -0
- package/dist/esm/services/getActivity.d.ts.map +1 -0
- package/dist/esm/services/getActivity.js +75 -0
- package/dist/esm/services/getActivity.js.map +1 -0
- package/dist/esm/services/getFills.d.ts +34 -0
- package/dist/esm/services/getFills.d.ts.map +1 -0
- package/dist/esm/services/getFills.js +49 -0
- package/dist/esm/services/getFills.js.map +1 -0
- package/dist/esm/services/getOrder.d.ts +17 -0
- package/dist/esm/services/getOrder.d.ts.map +1 -0
- package/dist/esm/services/getOrder.js +29 -0
- package/dist/esm/services/getOrder.js.map +1 -0
- 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 +57 -0
- package/dist/esm/services/getOrders.js.map +1 -0
- package/dist/esm/services/getPositions.d.ts +26 -0
- package/dist/esm/services/getPositions.d.ts.map +1 -0
- package/dist/esm/services/getPositions.js +37 -0
- package/dist/esm/services/getPositions.js.map +1 -0
- package/dist/esm/signers/HyperliquidAgentStore.d.ts +54 -0
- package/dist/esm/signers/HyperliquidAgentStore.d.ts.map +1 -0
- package/dist/esm/signers/HyperliquidAgentStore.js +134 -0
- package/dist/esm/signers/HyperliquidAgentStore.js.map +1 -0
- package/dist/esm/signers/index.d.ts +4 -0
- package/dist/esm/signers/index.d.ts.map +1 -0
- package/dist/esm/signers/index.js +4 -0
- package/dist/esm/signers/index.js.map +1 -0
- package/dist/esm/signers/signActions.d.ts +15 -0
- package/dist/esm/signers/signActions.d.ts.map +1 -0
- package/dist/esm/signers/signActions.js +38 -0
- package/dist/esm/signers/signActions.js.map +1 -0
- package/dist/esm/types/account.d.ts +64 -0
- package/dist/esm/types/account.d.ts.map +1 -0
- package/dist/esm/types/account.js +13 -0
- package/dist/esm/types/account.js.map +1 -0
- package/dist/esm/types/action.d.ts +61 -0
- package/dist/esm/types/action.d.ts.map +1 -0
- package/dist/esm/types/action.js +16 -0
- package/dist/esm/types/action.js.map +1 -0
- package/dist/esm/types/asset.d.ts +82 -0
- package/dist/esm/types/asset.d.ts.map +1 -0
- package/dist/esm/types/asset.js +3 -0
- package/dist/esm/types/asset.js.map +1 -0
- package/dist/esm/types/fill.d.ts +21 -0
- package/dist/esm/types/fill.d.ts.map +1 -0
- package/dist/esm/types/fill.js +3 -0
- package/dist/esm/types/fill.js.map +1 -0
- package/dist/esm/types/index.d.ts +8 -0
- package/dist/esm/types/index.d.ts.map +1 -0
- package/dist/esm/types/index.js +11 -0
- package/dist/esm/types/index.js.map +1 -0
- package/dist/esm/types/ledger.d.ts +93 -0
- package/dist/esm/types/ledger.d.ts.map +1 -0
- package/dist/esm/types/ledger.js +16 -0
- package/dist/esm/types/ledger.js.map +1 -0
- package/dist/esm/types/order.d.ts +51 -0
- package/dist/esm/types/order.d.ts.map +1 -0
- package/dist/esm/types/order.js +3 -0
- package/dist/esm/types/order.js.map +1 -0
- package/dist/esm/types/ws.d.ts +43 -0
- package/dist/esm/types/ws.d.ts.map +1 -0
- package/dist/esm/types/ws.js +3 -0
- package/dist/esm/types/ws.js.map +1 -0
- package/dist/esm/utils/assetId.d.ts +20 -0
- package/dist/esm/utils/assetId.d.ts.map +1 -0
- package/dist/esm/utils/assetId.js +31 -0
- package/dist/esm/utils/assetId.js.map +1 -0
- package/dist/esm/utils/index.d.ts +15 -0
- package/dist/esm/utils/index.d.ts.map +1 -0
- package/dist/esm/utils/index.js +17 -0
- package/dist/esm/utils/index.js.map +1 -0
- package/dist/esm/utils/infoClient.d.ts +28 -0
- package/dist/esm/utils/infoClient.d.ts.map +1 -0
- package/dist/esm/utils/infoClient.js +70 -0
- package/dist/esm/utils/infoClient.js.map +1 -0
- package/dist/esm/utils/liquidation.d.ts +48 -0
- package/dist/esm/utils/liquidation.d.ts.map +1 -0
- package/dist/esm/utils/liquidation.js +65 -0
- package/dist/esm/utils/liquidation.js.map +1 -0
- package/dist/esm/utils/mapActivity.d.ts +15 -0
- package/dist/esm/utils/mapActivity.d.ts.map +1 -0
- package/dist/esm/utils/mapActivity.js +148 -0
- package/dist/esm/utils/mapActivity.js.map +1 -0
- package/dist/esm/utils/mapFill.d.ts +11 -0
- package/dist/esm/utils/mapFill.d.ts.map +1 -0
- package/dist/esm/utils/mapFill.js +34 -0
- package/dist/esm/utils/mapFill.js.map +1 -0
- package/dist/esm/utils/mapMarket.d.ts +12 -0
- package/dist/esm/utils/mapMarket.d.ts.map +1 -0
- package/dist/esm/utils/mapMarket.js +27 -0
- package/dist/esm/utils/mapMarket.js.map +1 -0
- package/dist/esm/utils/mapMarketPrice.d.ts +10 -0
- package/dist/esm/utils/mapMarketPrice.d.ts.map +1 -0
- package/dist/esm/utils/mapMarketPrice.js +24 -0
- package/dist/esm/utils/mapMarketPrice.js.map +1 -0
- package/dist/esm/utils/mapOrder.d.ts +49 -0
- package/dist/esm/utils/mapOrder.d.ts.map +1 -0
- package/dist/esm/utils/mapOrder.js +182 -0
- package/dist/esm/utils/mapOrder.js.map +1 -0
- package/dist/esm/utils/mapPosition.d.ts +12 -0
- package/dist/esm/utils/mapPosition.d.ts.map +1 -0
- package/dist/esm/utils/mapPosition.js +30 -0
- package/dist/esm/utils/mapPosition.js.map +1 -0
- package/dist/esm/utils/marketDisplay.d.ts +17 -0
- package/dist/esm/utils/marketDisplay.d.ts.map +1 -0
- package/dist/esm/utils/marketDisplay.js +31 -0
- package/dist/esm/utils/marketDisplay.js.map +1 -0
- package/dist/esm/utils/orderFormatting.d.ts +50 -0
- package/dist/esm/utils/orderFormatting.d.ts.map +1 -0
- package/dist/esm/utils/orderFormatting.js +78 -0
- package/dist/esm/utils/orderFormatting.js.map +1 -0
- package/dist/esm/utils/priceStepToAggregation.d.ts +20 -0
- package/dist/esm/utils/priceStepToAggregation.d.ts.map +1 -0
- package/dist/esm/utils/priceStepToAggregation.js +51 -0
- package/dist/esm/utils/priceStepToAggregation.js.map +1 -0
- package/dist/esm/utils/spotBalance.d.ts +18 -0
- package/dist/esm/utils/spotBalance.d.ts.map +1 -0
- package/dist/esm/utils/spotBalance.js +40 -0
- package/dist/esm/utils/spotBalance.js.map +1 -0
- package/dist/esm/websocket/HyperliquidWsProvider.d.ts +61 -0
- package/dist/esm/websocket/HyperliquidWsProvider.d.ts.map +1 -0
- package/dist/esm/websocket/HyperliquidWsProvider.js +406 -0
- package/dist/esm/websocket/HyperliquidWsProvider.js.map +1 -0
- package/dist/esm/websocket/index.d.ts +2 -0
- package/dist/esm/websocket/index.d.ts.map +1 -0
- package/dist/esm/websocket/index.js +3 -0
- package/dist/esm/websocket/index.js.map +1 -0
- package/dist/types/HyperliquidProvider.d.ts +64 -0
- package/dist/types/HyperliquidProvider.d.ts.map +1 -0
- package/dist/types/accountConfig.d.ts +10 -0
- package/dist/types/accountConfig.d.ts.map +1 -0
- package/dist/types/accountSummary.d.ts +10 -0
- package/dist/types/accountSummary.d.ts.map +1 -0
- package/dist/types/constants.d.ts +40 -0
- package/dist/types/constants.d.ts.map +1 -0
- package/dist/types/context.d.ts +26 -0
- package/dist/types/context.d.ts.map +1 -0
- package/dist/types/index.d.ts +31 -0
- package/dist/types/index.d.ts.map +1 -0
- package/dist/types/services/getAccount.d.ts +28 -0
- package/dist/types/services/getAccount.d.ts.map +1 -0
- package/dist/types/services/getActivity.d.ts +33 -0
- package/dist/types/services/getActivity.d.ts.map +1 -0
- package/dist/types/services/getFills.d.ts +34 -0
- package/dist/types/services/getFills.d.ts.map +1 -0
- package/dist/types/services/getOrder.d.ts +17 -0
- package/dist/types/services/getOrder.d.ts.map +1 -0
- 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 +26 -0
- package/dist/types/services/getPositions.d.ts.map +1 -0
- package/dist/types/signers/HyperliquidAgentStore.d.ts +54 -0
- package/dist/types/signers/HyperliquidAgentStore.d.ts.map +1 -0
- package/dist/types/signers/index.d.ts +4 -0
- package/dist/types/signers/index.d.ts.map +1 -0
- package/dist/types/signers/signActions.d.ts +15 -0
- package/dist/types/signers/signActions.d.ts.map +1 -0
- package/dist/types/types/account.d.ts +64 -0
- package/dist/types/types/account.d.ts.map +1 -0
- package/dist/types/types/action.d.ts +61 -0
- package/dist/types/types/action.d.ts.map +1 -0
- package/dist/types/types/asset.d.ts +82 -0
- package/dist/types/types/asset.d.ts.map +1 -0
- package/dist/types/types/fill.d.ts +21 -0
- package/dist/types/types/fill.d.ts.map +1 -0
- package/dist/types/types/index.d.ts +8 -0
- package/dist/types/types/index.d.ts.map +1 -0
- package/dist/types/types/ledger.d.ts +93 -0
- package/dist/types/types/ledger.d.ts.map +1 -0
- package/dist/types/types/order.d.ts +51 -0
- package/dist/types/types/order.d.ts.map +1 -0
- package/dist/types/types/ws.d.ts +43 -0
- package/dist/types/types/ws.d.ts.map +1 -0
- package/dist/types/utils/assetId.d.ts +20 -0
- package/dist/types/utils/assetId.d.ts.map +1 -0
- package/dist/types/utils/index.d.ts +15 -0
- package/dist/types/utils/index.d.ts.map +1 -0
- package/dist/types/utils/infoClient.d.ts +28 -0
- package/dist/types/utils/infoClient.d.ts.map +1 -0
- package/dist/types/utils/liquidation.d.ts +48 -0
- package/dist/types/utils/liquidation.d.ts.map +1 -0
- package/dist/types/utils/mapActivity.d.ts +15 -0
- package/dist/types/utils/mapActivity.d.ts.map +1 -0
- package/dist/types/utils/mapFill.d.ts +11 -0
- package/dist/types/utils/mapFill.d.ts.map +1 -0
- package/dist/types/utils/mapMarket.d.ts +12 -0
- package/dist/types/utils/mapMarket.d.ts.map +1 -0
- package/dist/types/utils/mapMarketPrice.d.ts +10 -0
- package/dist/types/utils/mapMarketPrice.d.ts.map +1 -0
- package/dist/types/utils/mapOrder.d.ts +49 -0
- package/dist/types/utils/mapOrder.d.ts.map +1 -0
- package/dist/types/utils/mapPosition.d.ts +12 -0
- package/dist/types/utils/mapPosition.d.ts.map +1 -0
- package/dist/types/utils/marketDisplay.d.ts +17 -0
- package/dist/types/utils/marketDisplay.d.ts.map +1 -0
- package/dist/types/utils/orderFormatting.d.ts +50 -0
- package/dist/types/utils/orderFormatting.d.ts.map +1 -0
- package/dist/types/utils/priceStepToAggregation.d.ts +20 -0
- package/dist/types/utils/priceStepToAggregation.d.ts.map +1 -0
- package/dist/types/utils/spotBalance.d.ts +18 -0
- package/dist/types/utils/spotBalance.d.ts.map +1 -0
- package/dist/types/websocket/HyperliquidWsProvider.d.ts +61 -0
- package/dist/types/websocket/HyperliquidWsProvider.d.ts.map +1 -0
- package/dist/types/websocket/index.d.ts +2 -0
- package/dist/types/websocket/index.d.ts.map +1 -0
- package/package.json +68 -0
- package/src/HyperliquidProvider.ts +381 -0
- package/src/accountConfig.ts +89 -0
- package/src/accountSummary.ts +32 -0
- package/src/constants.ts +47 -0
- package/src/context.ts +41 -0
- package/src/index.ts +45 -0
- package/src/services/getAccount.ts +263 -0
- package/src/services/getActivity.ts +162 -0
- package/src/services/getFills.ts +96 -0
- package/src/services/getOrder.ts +61 -0
- package/src/services/getOrders.ts +101 -0
- package/src/services/getPositions.ts +76 -0
- package/src/signers/HyperliquidAgentStore.ts +176 -0
- package/src/signers/index.ts +5 -0
- package/src/signers/signActions.ts +78 -0
- package/src/types/account.ts +74 -0
- package/src/types/action.ts +66 -0
- package/src/types/asset.ts +96 -0
- package/src/types/fill.ts +24 -0
- package/src/types/index.ts +11 -0
- package/src/types/ledger.ts +111 -0
- package/src/types/order.ts +56 -0
- package/src/types/ws.ts +47 -0
- package/src/utils/assetId.ts +38 -0
- package/src/utils/index.ts +38 -0
- package/src/utils/infoClient.ts +111 -0
- package/src/utils/liquidation.ts +74 -0
- package/src/utils/mapActivity.ts +182 -0
- package/src/utils/mapFill.ts +48 -0
- package/src/utils/mapMarket.ts +33 -0
- package/src/utils/mapMarketPrice.ts +33 -0
- package/src/utils/mapOrder.ts +218 -0
- package/src/utils/mapPosition.ts +40 -0
- package/src/utils/marketDisplay.ts +38 -0
- package/src/utils/orderFormatting.ts +93 -0
- package/src/utils/priceStepToAggregation.ts +58 -0
- package/src/utils/spotBalance.ts +51 -0
- package/src/websocket/HyperliquidWsProvider.ts +533 -0
- package/src/websocket/index.ts +3 -0
|
@@ -0,0 +1,93 @@
|
|
|
1
|
+
import type { Address } from 'viem';
|
|
2
|
+
/**
|
|
3
|
+
* Hyperliquid `spotTransfer` ledger delta. Emitted for transfers of spot
|
|
4
|
+
* tokens between Hyperliquid accounts. `user` is the sender, `destination`
|
|
5
|
+
* the recipient; direction is derived at the call site from the queried
|
|
6
|
+
* address.
|
|
7
|
+
* @public
|
|
8
|
+
*/
|
|
9
|
+
export type HlSpotTransferDelta = {
|
|
10
|
+
type: 'spotTransfer';
|
|
11
|
+
token: string;
|
|
12
|
+
amount: string;
|
|
13
|
+
usdcValue: string;
|
|
14
|
+
user: Address;
|
|
15
|
+
destination: Address;
|
|
16
|
+
fee?: string;
|
|
17
|
+
nativeTokenFee?: string;
|
|
18
|
+
nonce?: number;
|
|
19
|
+
};
|
|
20
|
+
/**
|
|
21
|
+
* Hyperliquid ledger delta emitted for the `sendAsset` exchange action. The
|
|
22
|
+
* wire `type` literal is `'send'` (NOT `'sendAsset'`); the TS name retains
|
|
23
|
+
* the `SendAsset` prefix to match `HL_PRIMARY_TYPE_SEND_ASSET`.
|
|
24
|
+
*
|
|
25
|
+
* - `user` is the sender, `destination` the recipient. For same-user dex
|
|
26
|
+
* moves both equal the queried address.
|
|
27
|
+
* - `sourceDex` / `destinationDex` use `""` for the main USDC perp DEX,
|
|
28
|
+
* `"spot"` for spot, or the perp DEX name otherwise.
|
|
29
|
+
* - `token` is a wire token identifier (e.g. `"USDC"` or `"TOKEN:0x..."`).
|
|
30
|
+
* - `nonce` is the wire nonce (ms timestamp); always present on `send`
|
|
31
|
+
* deltas, unlike `spotTransfer` where it may be null.
|
|
32
|
+
* @public
|
|
33
|
+
*/
|
|
34
|
+
export type HlSendAssetDelta = {
|
|
35
|
+
type: 'send';
|
|
36
|
+
user: Address;
|
|
37
|
+
destination: Address;
|
|
38
|
+
sourceDex: string;
|
|
39
|
+
destinationDex: string;
|
|
40
|
+
token: string;
|
|
41
|
+
amount: string;
|
|
42
|
+
usdcValue: string;
|
|
43
|
+
fee: string;
|
|
44
|
+
nativeTokenFee: string;
|
|
45
|
+
nonce: number;
|
|
46
|
+
feeToken: string;
|
|
47
|
+
};
|
|
48
|
+
/** @public */
|
|
49
|
+
export type HlLedgerDelta = HlSpotTransferDelta | HlSendAssetDelta | {
|
|
50
|
+
type: string;
|
|
51
|
+
usdc?: string;
|
|
52
|
+
[key: string]: unknown;
|
|
53
|
+
};
|
|
54
|
+
/**
|
|
55
|
+
* Type guard for `HlSpotTransferDelta` — TypeScript cannot narrow off the
|
|
56
|
+
* `type` discriminant alone because the catch-all arm of `HlLedgerDelta` has
|
|
57
|
+
* `type: string` (a supertype of the literal `'spotTransfer'`). Use this at
|
|
58
|
+
* call sites that need the strongly-typed shape.
|
|
59
|
+
* @public
|
|
60
|
+
*/
|
|
61
|
+
export declare const isSpotTransferDelta: (delta: HlLedgerDelta) => delta is HlSpotTransferDelta;
|
|
62
|
+
/**
|
|
63
|
+
* Type guard for `HlSendAssetDelta`. The wire `type` literal is `'send'`;
|
|
64
|
+
* see `HlSendAssetDelta` for the naming-vs-wire-format rationale. Same
|
|
65
|
+
* catch-all-arm caveat as `isSpotTransferDelta`.
|
|
66
|
+
* @public
|
|
67
|
+
*/
|
|
68
|
+
export declare const isSendAssetDelta: (delta: HlLedgerDelta) => delta is HlSendAssetDelta;
|
|
69
|
+
/** @public */
|
|
70
|
+
export type HlLedgerUpdate = {
|
|
71
|
+
time: number;
|
|
72
|
+
hash: string;
|
|
73
|
+
delta: HlLedgerDelta;
|
|
74
|
+
};
|
|
75
|
+
/** @public */
|
|
76
|
+
export type HlUserNonFundingLedgerUpdates = HlLedgerUpdate[];
|
|
77
|
+
/** @public */
|
|
78
|
+
export type HlFundingDelta = {
|
|
79
|
+
type: 'funding';
|
|
80
|
+
coin: string;
|
|
81
|
+
usdc: string;
|
|
82
|
+
szi: string;
|
|
83
|
+
fundingRate: string;
|
|
84
|
+
};
|
|
85
|
+
/** @public */
|
|
86
|
+
export type HlFundingUpdate = {
|
|
87
|
+
time: number;
|
|
88
|
+
hash: string;
|
|
89
|
+
delta: HlFundingDelta;
|
|
90
|
+
};
|
|
91
|
+
/** @public */
|
|
92
|
+
export type HlUserFunding = HlFundingUpdate[];
|
|
93
|
+
//# sourceMappingURL=ledger.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"ledger.d.ts","sourceRoot":"","sources":["../../../src/types/ledger.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,MAAM,CAAA;AAInC;;;;;;GAMG;AACH,MAAM,MAAM,mBAAmB,GAAG;IAChC,IAAI,EAAE,cAAc,CAAA;IACpB,KAAK,EAAE,MAAM,CAAA;IACb,MAAM,EAAE,MAAM,CAAA;IACd,SAAS,EAAE,MAAM,CAAA;IACjB,IAAI,EAAE,OAAO,CAAA;IACb,WAAW,EAAE,OAAO,CAAA;IACpB,GAAG,CAAC,EAAE,MAAM,CAAA;IACZ,cAAc,CAAC,EAAE,MAAM,CAAA;IACvB,KAAK,CAAC,EAAE,MAAM,CAAA;CACf,CAAA;AAED;;;;;;;;;;;;;GAaG;AACH,MAAM,MAAM,gBAAgB,GAAG;IAC7B,IAAI,EAAE,MAAM,CAAA;IACZ,IAAI,EAAE,OAAO,CAAA;IACb,WAAW,EAAE,OAAO,CAAA;IACpB,SAAS,EAAE,MAAM,CAAA;IACjB,cAAc,EAAE,MAAM,CAAA;IACtB,KAAK,EAAE,MAAM,CAAA;IACb,MAAM,EAAE,MAAM,CAAA;IACd,SAAS,EAAE,MAAM,CAAA;IACjB,GAAG,EAAE,MAAM,CAAA;IACX,cAAc,EAAE,MAAM,CAAA;IACtB,KAAK,EAAE,MAAM,CAAA;IACb,QAAQ,EAAE,MAAM,CAAA;CACjB,CAAA;AAED,cAAc;AACd,MAAM,MAAM,aAAa,GACrB,mBAAmB,GACnB,gBAAgB,GAChB;IACE,IAAI,EAAE,MAAM,CAAA;IACZ,IAAI,CAAC,EAAE,MAAM,CAAA;IACb,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAA;CACvB,CAAA;AAEL;;;;;;GAMG;AACH,eAAO,MAAM,mBAAmB,GAC9B,OAAO,aAAa,KACnB,KAAK,IAAI,mBAAoD,CAAA;AAEhE;;;;;GAKG;AACH,eAAO,MAAM,gBAAgB,GAC3B,OAAO,aAAa,KACnB,KAAK,IAAI,gBAAyC,CAAA;AAErD,cAAc;AACd,MAAM,MAAM,cAAc,GAAG;IAC3B,IAAI,EAAE,MAAM,CAAA;IACZ,IAAI,EAAE,MAAM,CAAA;IACZ,KAAK,EAAE,aAAa,CAAA;CACrB,CAAA;AAED,cAAc;AACd,MAAM,MAAM,6BAA6B,GAAG,cAAc,EAAE,CAAA;AAE5D,cAAc;AACd,MAAM,MAAM,cAAc,GAAG;IAC3B,IAAI,EAAE,SAAS,CAAA;IACf,IAAI,EAAE,MAAM,CAAA;IACZ,IAAI,EAAE,MAAM,CAAA;IACZ,GAAG,EAAE,MAAM,CAAA;IACX,WAAW,EAAE,MAAM,CAAA;CACpB,CAAA;AAED,cAAc;AACd,MAAM,MAAM,eAAe,GAAG;IAC5B,IAAI,EAAE,MAAM,CAAA;IACZ,IAAI,EAAE,MAAM,CAAA;IACZ,KAAK,EAAE,cAAc,CAAA;CACtB,CAAA;AAED,cAAc;AACd,MAAM,MAAM,aAAa,GAAG,eAAe,EAAE,CAAA"}
|
|
@@ -0,0 +1,51 @@
|
|
|
1
|
+
/** @public */
|
|
2
|
+
export type HlFrontendOpenOrder = {
|
|
3
|
+
oid: number;
|
|
4
|
+
coin: string;
|
|
5
|
+
side: string;
|
|
6
|
+
sz: string;
|
|
7
|
+
limitPx: string;
|
|
8
|
+
orderType: string;
|
|
9
|
+
origSz: string;
|
|
10
|
+
reduceOnly: boolean;
|
|
11
|
+
timestamp: number;
|
|
12
|
+
isTrigger: boolean;
|
|
13
|
+
isPositionTpsl: boolean;
|
|
14
|
+
triggerCondition: string;
|
|
15
|
+
triggerPx: string;
|
|
16
|
+
children: HlFrontendOpenOrder[];
|
|
17
|
+
tif: string | null;
|
|
18
|
+
cloid: string | null;
|
|
19
|
+
};
|
|
20
|
+
/** @public */
|
|
21
|
+
export type HlFrontendOpenOrders = HlFrontendOpenOrder[];
|
|
22
|
+
/** @public */
|
|
23
|
+
export type HlOrderDetail = {
|
|
24
|
+
order: {
|
|
25
|
+
oid: number;
|
|
26
|
+
coin: string;
|
|
27
|
+
side: string;
|
|
28
|
+
sz: string;
|
|
29
|
+
limitPx: string;
|
|
30
|
+
orderType: string;
|
|
31
|
+
origSz: string;
|
|
32
|
+
reduceOnly: boolean;
|
|
33
|
+
timestamp: number;
|
|
34
|
+
tif: string | null;
|
|
35
|
+
cloid: string | null;
|
|
36
|
+
triggerCondition: string;
|
|
37
|
+
triggerPx: string | null;
|
|
38
|
+
};
|
|
39
|
+
status: string;
|
|
40
|
+
statusTimestamp: number;
|
|
41
|
+
};
|
|
42
|
+
/** @public */
|
|
43
|
+
export type HlOrderStatusFound = {
|
|
44
|
+
status: 'order';
|
|
45
|
+
order: HlOrderDetail;
|
|
46
|
+
};
|
|
47
|
+
/** @public */
|
|
48
|
+
export type HlOrderStatusResponse = HlOrderStatusFound | {
|
|
49
|
+
status: 'unknownOid';
|
|
50
|
+
};
|
|
51
|
+
//# sourceMappingURL=order.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"order.d.ts","sourceRoot":"","sources":["../../../src/types/order.ts"],"names":[],"mappings":"AAEA,cAAc;AACd,MAAM,MAAM,mBAAmB,GAAG;IAChC,GAAG,EAAE,MAAM,CAAA;IACX,IAAI,EAAE,MAAM,CAAA;IACZ,IAAI,EAAE,MAAM,CAAA;IACZ,EAAE,EAAE,MAAM,CAAA;IACV,OAAO,EAAE,MAAM,CAAA;IACf,SAAS,EAAE,MAAM,CAAA;IACjB,MAAM,EAAE,MAAM,CAAA;IACd,UAAU,EAAE,OAAO,CAAA;IACnB,SAAS,EAAE,MAAM,CAAA;IACjB,SAAS,EAAE,OAAO,CAAA;IAClB,cAAc,EAAE,OAAO,CAAA;IACvB,gBAAgB,EAAE,MAAM,CAAA;IACxB,SAAS,EAAE,MAAM,CAAA;IACjB,QAAQ,EAAE,mBAAmB,EAAE,CAAA;IAC/B,GAAG,EAAE,MAAM,GAAG,IAAI,CAAA;IAClB,KAAK,EAAE,MAAM,GAAG,IAAI,CAAA;CACrB,CAAA;AAED,cAAc;AACd,MAAM,MAAM,oBAAoB,GAAG,mBAAmB,EAAE,CAAA;AAExD,cAAc;AACd,MAAM,MAAM,aAAa,GAAG;IAC1B,KAAK,EAAE;QACL,GAAG,EAAE,MAAM,CAAA;QACX,IAAI,EAAE,MAAM,CAAA;QACZ,IAAI,EAAE,MAAM,CAAA;QACZ,EAAE,EAAE,MAAM,CAAA;QACV,OAAO,EAAE,MAAM,CAAA;QACf,SAAS,EAAE,MAAM,CAAA;QACjB,MAAM,EAAE,MAAM,CAAA;QACd,UAAU,EAAE,OAAO,CAAA;QACnB,SAAS,EAAE,MAAM,CAAA;QACjB,GAAG,EAAE,MAAM,GAAG,IAAI,CAAA;QAClB,KAAK,EAAE,MAAM,GAAG,IAAI,CAAA;QACpB,gBAAgB,EAAE,MAAM,CAAA;QACxB,SAAS,EAAE,MAAM,GAAG,IAAI,CAAA;KACzB,CAAA;IACD,MAAM,EAAE,MAAM,CAAA;IACd,eAAe,EAAE,MAAM,CAAA;CACxB,CAAA;AAED,cAAc;AACd,MAAM,MAAM,kBAAkB,GAAG;IAC/B,MAAM,EAAE,OAAO,CAAA;IACf,KAAK,EAAE,aAAa,CAAA;CACrB,CAAA;AAED,cAAc;AACd,MAAM,MAAM,qBAAqB,GAC7B,kBAAkB,GAClB;IAAE,MAAM,EAAE,YAAY,CAAA;CAAE,CAAA"}
|
|
@@ -0,0 +1,43 @@
|
|
|
1
|
+
import type { HlClearinghouseState, HlSpotBalance } from './account.js';
|
|
2
|
+
import type { HlAllMids, HlCandle, HlL2Book } from './asset.js';
|
|
3
|
+
import type { HlUserFill } from './fill.js';
|
|
4
|
+
/** @public */
|
|
5
|
+
export type HlWsMessage = {
|
|
6
|
+
channel: string;
|
|
7
|
+
data: unknown;
|
|
8
|
+
};
|
|
9
|
+
/** @public */
|
|
10
|
+
export type HlWsAllMidsData = {
|
|
11
|
+
mids: HlAllMids;
|
|
12
|
+
dex?: string;
|
|
13
|
+
};
|
|
14
|
+
/** @public */
|
|
15
|
+
export type HlWsL2BookData = HlL2Book & {
|
|
16
|
+
coin: string;
|
|
17
|
+
};
|
|
18
|
+
/** @public */
|
|
19
|
+
export type HlWsCandleData = HlCandle & {
|
|
20
|
+
T: number;
|
|
21
|
+
s: string;
|
|
22
|
+
i: string;
|
|
23
|
+
n: number;
|
|
24
|
+
};
|
|
25
|
+
/** @public */
|
|
26
|
+
export type HlWsUserFillsData = {
|
|
27
|
+
isSnapshot: boolean;
|
|
28
|
+
user: string;
|
|
29
|
+
fills: HlUserFill[];
|
|
30
|
+
};
|
|
31
|
+
/** @public */
|
|
32
|
+
export type HlWsAllDexsClearinghouseStateData = {
|
|
33
|
+
user: string;
|
|
34
|
+
clearinghouseStates: [string, Pick<HlClearinghouseState, 'assetPositions'>][];
|
|
35
|
+
};
|
|
36
|
+
/** @public */
|
|
37
|
+
export type HlWsSpotStateData = {
|
|
38
|
+
user: string;
|
|
39
|
+
spotState: {
|
|
40
|
+
balances: HlSpotBalance[];
|
|
41
|
+
};
|
|
42
|
+
};
|
|
43
|
+
//# sourceMappingURL=ws.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"ws.d.ts","sourceRoot":"","sources":["../../../src/types/ws.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,oBAAoB,EAAE,aAAa,EAAE,MAAM,cAAc,CAAA;AACvE,OAAO,KAAK,EAAE,SAAS,EAAE,QAAQ,EAAE,QAAQ,EAAE,MAAM,YAAY,CAAA;AAC/D,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,WAAW,CAAA;AAE3C,cAAc;AACd,MAAM,MAAM,WAAW,GAAG;IACxB,OAAO,EAAE,MAAM,CAAA;IACf,IAAI,EAAE,OAAO,CAAA;CACd,CAAA;AAED,cAAc;AACd,MAAM,MAAM,eAAe,GAAG;IAC5B,IAAI,EAAE,SAAS,CAAA;IACf,GAAG,CAAC,EAAE,MAAM,CAAA;CACb,CAAA;AAED,cAAc;AACd,MAAM,MAAM,cAAc,GAAG,QAAQ,GAAG;IAAE,IAAI,EAAE,MAAM,CAAA;CAAE,CAAA;AAExD,cAAc;AACd,MAAM,MAAM,cAAc,GAAG,QAAQ,GAAG;IACtC,CAAC,EAAE,MAAM,CAAA;IACT,CAAC,EAAE,MAAM,CAAA;IACT,CAAC,EAAE,MAAM,CAAA;IACT,CAAC,EAAE,MAAM,CAAA;CACV,CAAA;AAED,cAAc;AACd,MAAM,MAAM,iBAAiB,GAAG;IAC9B,UAAU,EAAE,OAAO,CAAA;IACnB,IAAI,EAAE,MAAM,CAAA;IACZ,KAAK,EAAE,UAAU,EAAE,CAAA;CACpB,CAAA;AAED,cAAc;AACd,MAAM,MAAM,iCAAiC,GAAG;IAC9C,IAAI,EAAE,MAAM,CAAA;IACZ,mBAAmB,EAAE,CAAC,MAAM,EAAE,IAAI,CAAC,oBAAoB,EAAE,gBAAgB,CAAC,CAAC,EAAE,CAAA;CAC9E,CAAA;AAED,cAAc;AACd,MAAM,MAAM,iBAAiB,GAAG;IAC9B,IAAI,EAAE,MAAM,CAAA;IACZ,SAAS,EAAE;QAAE,QAAQ,EAAE,aAAa,EAAE,CAAA;KAAE,CAAA;CACzC,CAAA"}
|
|
@@ -0,0 +1,20 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Spot asset IDs use the @pairIndex format (e.g. "@230").
|
|
3
|
+
*
|
|
4
|
+
* @public
|
|
5
|
+
*/
|
|
6
|
+
export declare const assetIsSpot: (assetId: string) => boolean;
|
|
7
|
+
/**
|
|
8
|
+
* Calculate the asset ID for a given provider index and asset index.
|
|
9
|
+
*
|
|
10
|
+
* Main provider (provider = ''): assetId = indexInProvider
|
|
11
|
+
* HIP-3 providers (provider = 'xyz'): assetId = 100_000 + perpDexIndex * 10_000 + indexInProvider
|
|
12
|
+
* @public
|
|
13
|
+
*/
|
|
14
|
+
export declare const calculateAssetId: (providerIndex: number, indexInProvider: number) => number;
|
|
15
|
+
/**
|
|
16
|
+
* Get the provider index from the given list of provider names.
|
|
17
|
+
* @public
|
|
18
|
+
*/
|
|
19
|
+
export declare const getProviderIndex: (provider: string, providerNames: string[]) => number;
|
|
20
|
+
//# sourceMappingURL=assetId.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"assetId.d.ts","sourceRoot":"","sources":["../../../src/utils/assetId.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AACH,eAAO,MAAM,WAAW,GAAI,SAAS,MAAM,KAAG,OAAkC,CAAA;AAEhF;;;;;;GAMG;AACH,eAAO,MAAM,gBAAgB,GAC3B,eAAe,MAAM,EACrB,iBAAiB,MAAM,KACtB,MAKF,CAAA;AAED;;;GAGG;AACH,eAAO,MAAM,gBAAgB,GAC3B,UAAU,MAAM,EAChB,eAAe,MAAM,EAAE,KACtB,MAMF,CAAA"}
|
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
export { assetIsSpot, calculateAssetId, getProviderIndex } from './assetId.js';
|
|
2
|
+
export type { InfoRequestOptions } from './infoClient.js';
|
|
3
|
+
export { hlInfoOptions, infoRequest } from './infoClient.js';
|
|
4
|
+
export { calculateLiquidationPrice, calculateMaintenanceMarginRate, } from './liquidation.js';
|
|
5
|
+
export { mapFundingActivity, mapLedgerEntry } from './mapActivity.js';
|
|
6
|
+
export { classifyFillFromPosition, mapFill } from './mapFill.js';
|
|
7
|
+
export { mapMarket } from './mapMarket.js';
|
|
8
|
+
export { mapMarketPrice } from './mapMarketPrice.js';
|
|
9
|
+
export { isTriggerOrder, isTriggerType, mapOpenOrder, mapOrder, mapOrderStatus, mapOrderType, mapStatusReason, mapTriggerOrder, } from './mapOrder.js';
|
|
10
|
+
export { isOpenAssetPosition, mapPosition } from './mapPosition.js';
|
|
11
|
+
export { coinAsset, perpsDexNames } from './marketDisplay.js';
|
|
12
|
+
export { formatOrderPrice, formatOrderSize, getMaxPriceDecimals, } from './orderFormatting.js';
|
|
13
|
+
export { priceStepToAggregation } from './priceStepToAggregation.js';
|
|
14
|
+
export { spotAssetFromToken, spotBalance, spotPriceById, } from './spotBalance.js';
|
|
15
|
+
//# sourceMappingURL=index.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/utils/index.ts"],"names":[],"mappings":"AAIA,OAAO,EAAE,WAAW,EAAE,gBAAgB,EAAE,gBAAgB,EAAE,MAAM,cAAc,CAAA;AAC9E,YAAY,EAAE,kBAAkB,EAAE,MAAM,iBAAiB,CAAA;AACzD,OAAO,EAAE,aAAa,EAAE,WAAW,EAAE,MAAM,iBAAiB,CAAA;AAC5D,OAAO,EACL,yBAAyB,EACzB,8BAA8B,GAC/B,MAAM,kBAAkB,CAAA;AACzB,OAAO,EAAE,kBAAkB,EAAE,cAAc,EAAE,MAAM,kBAAkB,CAAA;AACrE,OAAO,EAAE,wBAAwB,EAAE,OAAO,EAAE,MAAM,cAAc,CAAA;AAChE,OAAO,EAAE,SAAS,EAAE,MAAM,gBAAgB,CAAA;AAC1C,OAAO,EAAE,cAAc,EAAE,MAAM,qBAAqB,CAAA;AACpD,OAAO,EACL,cAAc,EACd,aAAa,EACb,YAAY,EACZ,QAAQ,EACR,cAAc,EACd,YAAY,EACZ,eAAe,EACf,eAAe,GAChB,MAAM,eAAe,CAAA;AACtB,OAAO,EAAE,mBAAmB,EAAE,WAAW,EAAE,MAAM,kBAAkB,CAAA;AACnE,OAAO,EAAE,SAAS,EAAE,aAAa,EAAE,MAAM,oBAAoB,CAAA;AAC7D,OAAO,EACL,gBAAgB,EAChB,eAAe,EACf,mBAAmB,GACpB,MAAM,sBAAsB,CAAA;AAC7B,OAAO,EAAE,sBAAsB,EAAE,MAAM,6BAA6B,CAAA;AACpE,OAAO,EACL,kBAAkB,EAClB,WAAW,EACX,aAAa,GACd,MAAM,kBAAkB,CAAA"}
|
|
@@ -0,0 +1,28 @@
|
|
|
1
|
+
import { type PerpsSDKClient, type ResolvedRetryPolicy, type SDKRequestOptions } from '@lifi/perps-sdk';
|
|
2
|
+
/** @internal */
|
|
3
|
+
export declare const HYPERLIQUID_RETRY_DEFAULTS: ResolvedRetryPolicy;
|
|
4
|
+
/** @public */
|
|
5
|
+
export interface InfoRequestOptions {
|
|
6
|
+
signal?: AbortSignal;
|
|
7
|
+
policy?: ResolvedRetryPolicy;
|
|
8
|
+
fetchImpl?: typeof fetch;
|
|
9
|
+
}
|
|
10
|
+
/**
|
|
11
|
+
* Resolve the client's retry/fetch config into options for {@link infoRequest}.
|
|
12
|
+
*
|
|
13
|
+
* @public
|
|
14
|
+
*/
|
|
15
|
+
export declare const hlInfoOptions: (client: PerpsSDKClient, options?: SDKRequestOptions) => InfoRequestOptions;
|
|
16
|
+
/**
|
|
17
|
+
* POST to the Hyperliquid `/info` endpoint and return the parsed JSON body.
|
|
18
|
+
*
|
|
19
|
+
* Direct-to-venue: no proxy, no AJV validation, no cache. The caller's type
|
|
20
|
+
* parameter is trusted; consumers should treat the response shape as
|
|
21
|
+
* upstream-controlled and normalise into `@lifi/perps-types` shapes before
|
|
22
|
+
* surfacing.
|
|
23
|
+
*
|
|
24
|
+
* Non-2xx responses raise a {@link PerpsError} with the Hyperliquid provider key.
|
|
25
|
+
* @public
|
|
26
|
+
*/
|
|
27
|
+
export declare function infoRequest<T>(apiUrl: string, body: Record<string, unknown>, options?: InfoRequestOptions): Promise<T>;
|
|
28
|
+
//# sourceMappingURL=infoClient.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"infoClient.d.ts","sourceRoot":"","sources":["../../../src/utils/infoClient.ts"],"names":[],"mappings":"AAAA,OAAO,EAGL,KAAK,cAAc,EACnB,KAAK,mBAAmB,EAExB,KAAK,iBAAiB,EACvB,MAAM,iBAAiB,CAAA;AAIxB,gBAAgB;AAChB,eAAO,MAAM,0BAA0B,EAAE,mBAmBxC,CAAA;AAED,cAAc;AACd,MAAM,WAAW,kBAAkB;IACjC,MAAM,CAAC,EAAE,WAAW,CAAA;IACpB,MAAM,CAAC,EAAE,mBAAmB,CAAA;IAC5B,SAAS,CAAC,EAAE,OAAO,KAAK,CAAA;CACzB;AAED;;;;GAIG;AACH,eAAO,MAAM,aAAa,GACxB,QAAQ,cAAc,EACtB,UAAU,iBAAiB,KAC1B,kBAQD,CAAA;AAEF;;;;;;;;;;GAUG;AACH,wBAAsB,WAAW,CAAC,CAAC,EACjC,MAAM,EAAE,MAAM,EACd,IAAI,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EAC7B,OAAO,CAAC,EAAE,kBAAkB,GAC3B,OAAO,CAAC,CAAC,CAAC,CAqCZ"}
|
|
@@ -0,0 +1,48 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Hyperliquid-specific liquidation price calculation.
|
|
3
|
+
*
|
|
4
|
+
* Uses the exact formula from Hyperliquid docs:
|
|
5
|
+
* https://hyperliquid.gitbook.io/hyperliquid-docs/trading/liquidations
|
|
6
|
+
*
|
|
7
|
+
* liq_price = price - side * margin_available / position_size / (1 - l * side)
|
|
8
|
+
*
|
|
9
|
+
* Where:
|
|
10
|
+
* - l = 1 / (2 * maxLeverage) (maintenance margin fraction)
|
|
11
|
+
* - side = 1 (long) or -1 (short)
|
|
12
|
+
* - margin_available = isolated_margin - maintenance_margin_required
|
|
13
|
+
*/
|
|
14
|
+
/**
|
|
15
|
+
* Calculate the maintenance margin fraction for a Hyperliquid asset.
|
|
16
|
+
*
|
|
17
|
+
* Maintenance margin is half of the initial margin at max leverage.
|
|
18
|
+
*
|
|
19
|
+
* @param maxLeverage - Maximum leverage for the asset (e.g., 50 for BTC)
|
|
20
|
+
* @returns Maintenance margin fraction (e.g., 0.01 for 50x max leverage),
|
|
21
|
+
* or undefined if maxLeverage is zero
|
|
22
|
+
* @public
|
|
23
|
+
*/
|
|
24
|
+
export declare function calculateMaintenanceMarginRate(maxLeverage: number): number | undefined;
|
|
25
|
+
/**
|
|
26
|
+
* Calculate liquidation price using the exact Hyperliquid formula.
|
|
27
|
+
*
|
|
28
|
+
* For isolated margin, new position prediction. For existing positions,
|
|
29
|
+
* prefer Position.liquidationPrice from the API.
|
|
30
|
+
*
|
|
31
|
+
* Formula derivation (isolated margin, single position):
|
|
32
|
+
* margin_per_unit = entryPrice / leverage
|
|
33
|
+
* maintenance_per_unit = entryPrice * mmr
|
|
34
|
+
* margin_available = margin_per_unit - maintenance_per_unit
|
|
35
|
+
* liq_price = entryPrice - side * margin_available / (1 - mmr * side)
|
|
36
|
+
*
|
|
37
|
+
* Where mmr = 1 / (2 * maxLeverage).
|
|
38
|
+
*
|
|
39
|
+
* @param entryPrice - Position entry price
|
|
40
|
+
* @param leverage - User-selected leverage (e.g., 10)
|
|
41
|
+
* @param isLong - True if long position, false if short
|
|
42
|
+
* @param maxLeverage - Asset's maximum leverage (e.g., 50 for BTC). Determines
|
|
43
|
+
* the maintenance margin rate: mmr = 1 / (2 * maxLeverage)
|
|
44
|
+
* @returns Estimated liquidation price, or undefined if inputs are invalid
|
|
45
|
+
* @public
|
|
46
|
+
*/
|
|
47
|
+
export declare function calculateLiquidationPrice(entryPrice: number, leverage: number, isLong: boolean, maxLeverage: number): number | undefined;
|
|
48
|
+
//# sourceMappingURL=liquidation.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"liquidation.d.ts","sourceRoot":"","sources":["../../../src/utils/liquidation.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;GAYG;AAIH;;;;;;;;;GASG;AACH,wBAAgB,8BAA8B,CAC5C,WAAW,EAAE,MAAM,GAClB,MAAM,GAAG,SAAS,CAKpB;AAED;;;;;;;;;;;;;;;;;;;;;GAqBG;AACH,wBAAgB,yBAAyB,CACvC,UAAU,EAAE,MAAM,EAClB,QAAQ,EAAE,MAAM,EAChB,MAAM,EAAE,OAAO,EACf,WAAW,EAAE,MAAM,GAClB,MAAM,GAAG,SAAS,CAWpB"}
|
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
import type { ActivityItem, FundingActivity, MarketDisplay } from '@lifi/perps-types';
|
|
2
|
+
import type { HlFundingUpdate, HlLedgerUpdate } from '../types/index.js';
|
|
3
|
+
/**
|
|
4
|
+
* Map a Hyperliquid non-funding ledger entry to an ActivityItem.
|
|
5
|
+
*
|
|
6
|
+
* Direction for `spotTransfer` and `sendAsset` is derived from
|
|
7
|
+
* `queriedAddress` matching the delta's `user` (OUT) or `destination` (IN).
|
|
8
|
+
* Returns null for unsupported delta types and for same-user `sendAsset`
|
|
9
|
+
* dex moves (where `user === destination === queriedAddress`).
|
|
10
|
+
* @public
|
|
11
|
+
*/
|
|
12
|
+
export declare const mapLedgerEntry: (entry: HlLedgerUpdate, providerKey: string, queriedAddress: string, resolveMarket: (coin: string) => MarketDisplay) => ActivityItem | null;
|
|
13
|
+
/** @public */
|
|
14
|
+
export declare const mapFundingActivity: (entry: HlFundingUpdate, providerKey: string, resolveMarket: (coin: string) => MarketDisplay) => FundingActivity;
|
|
15
|
+
//# sourceMappingURL=mapActivity.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"mapActivity.d.ts","sourceRoot":"","sources":["../../../src/utils/mapActivity.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EACV,YAAY,EAEZ,eAAe,EAEf,aAAa,EAGd,MAAM,mBAAmB,CAAA;AAE1B,OAAO,KAAK,EAAE,eAAe,EAAE,cAAc,EAAE,MAAM,mBAAmB,CAAA;AAGxE;;;;;;;;GAQG;AACH,eAAO,MAAM,cAAc,GACzB,OAAO,cAAc,EACrB,aAAa,MAAM,EACnB,gBAAgB,MAAM,EACtB,eAAe,CAAC,IAAI,EAAE,MAAM,KAAK,aAAa,KAC7C,YAAY,GAAG,IA0IjB,CAAA;AAED,cAAc;AACd,eAAO,MAAM,kBAAkB,GAC7B,OAAO,eAAe,EACtB,aAAa,MAAM,EACnB,eAAe,CAAC,IAAI,EAAE,MAAM,KAAK,aAAa,KAC7C,eASD,CAAA"}
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
import { classifyFillFromPosition } from '@lifi/perps-sdk';
|
|
2
|
+
import type { Fill, MarketDisplay } from '@lifi/perps-types';
|
|
3
|
+
import type { HlUserFill } from '../types/index.js';
|
|
4
|
+
export { classifyFillFromPosition };
|
|
5
|
+
/**
|
|
6
|
+
* Spot-ness comes from the resolved market's category, not the coin string —
|
|
7
|
+
* HL's canonical spot pair 0 is addressed as `PURR/USDC`, not `@0`.
|
|
8
|
+
* @public
|
|
9
|
+
*/
|
|
10
|
+
export declare const mapFill: (fill: HlUserFill, market: MarketDisplay) => Fill;
|
|
11
|
+
//# sourceMappingURL=mapFill.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"mapFill.d.ts","sourceRoot":"","sources":["../../../src/utils/mapFill.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,wBAAwB,EAGzB,MAAM,iBAAiB,CAAA;AACxB,OAAO,KAAK,EAAE,IAAI,EAAE,aAAa,EAAE,MAAM,mBAAmB,CAAA;AAS5D,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,mBAAmB,CAAA;AAEnD,OAAO,EAAE,wBAAwB,EAAE,CAAA;AAEnC;;;;GAIG;AACH,eAAO,MAAM,OAAO,GAAI,MAAM,UAAU,EAAE,QAAQ,aAAa,KAAG,IAwBhE,CAAA"}
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
import type { PerpsMarket } from '@lifi/perps-types';
|
|
2
|
+
import type { HlUniverseItem } from '../types/index.js';
|
|
3
|
+
/**
|
|
4
|
+
* Map a Hyperliquid universe entry to a {@link PerpsMarket}'s static instrument
|
|
5
|
+
* metadata. Live mark/stats fields live on the `/prices` item — see
|
|
6
|
+
* {@link mapMarketPrice}. `categoryId` is the `Provider.categories[].id` of the
|
|
7
|
+
* dex the entry was fetched from — known to the caller at fetch time, never
|
|
8
|
+
* re-derived from the coin string.
|
|
9
|
+
* @public
|
|
10
|
+
*/
|
|
11
|
+
export declare const mapMarket: (universe: HlUniverseItem, categoryId: string) => PerpsMarket;
|
|
12
|
+
//# sourceMappingURL=mapMarket.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"mapMarket.d.ts","sourceRoot":"","sources":["../../../src/utils/mapMarket.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,mBAAmB,CAAA;AAEpD,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,mBAAmB,CAAA;AAQvD;;;;;;;GAOG;AACH,eAAO,MAAM,SAAS,GACpB,UAAU,cAAc,EACxB,YAAY,MAAM,KACjB,WAWD,CAAA"}
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
import type { MarketPrice } from '@lifi/perps-types';
|
|
2
|
+
import type { HlAssetCtx } from '../types/index.js';
|
|
3
|
+
/**
|
|
4
|
+
* Map a Hyperliquid asset context plus its mid to a {@link MarketPrice} — the
|
|
5
|
+
* live mark/stats data for the `/prices` item. `mid` is the market mid from
|
|
6
|
+
* `allMids`, known to the caller; `HlAssetCtx` carries no mid of its own.
|
|
7
|
+
* @public
|
|
8
|
+
*/
|
|
9
|
+
export declare const mapMarketPrice: (marketId: string, assetCtx: HlAssetCtx, mid: string) => MarketPrice;
|
|
10
|
+
//# sourceMappingURL=mapMarketPrice.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"mapMarketPrice.d.ts","sourceRoot":"","sources":["../../../src/utils/mapMarketPrice.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,mBAAmB,CAAA;AACpD,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,mBAAmB,CAAA;AAInD;;;;;GAKG;AACH,eAAO,MAAM,cAAc,GACzB,UAAU,MAAM,EAChB,UAAU,UAAU,EACpB,KAAK,MAAM,KACV,WAiBF,CAAA"}
|
|
@@ -0,0 +1,49 @@
|
|
|
1
|
+
import type { MarketDisplay, OpenOrder, Order, TriggerOrder } from '@lifi/perps-types';
|
|
2
|
+
import { OrderStatus, OrderType } from '@lifi/perps-types';
|
|
3
|
+
import type { HlFrontendOpenOrder, HlOrderDetail } from '../types/index.js';
|
|
4
|
+
/**
|
|
5
|
+
* Map a Hyperliquid orderType string to the OrderType enum.
|
|
6
|
+
*
|
|
7
|
+
* @public
|
|
8
|
+
*/
|
|
9
|
+
export declare const mapOrderType: (orderType: string) => OrderType;
|
|
10
|
+
/** @public */
|
|
11
|
+
export declare const isTriggerType: (type: OrderType) => boolean;
|
|
12
|
+
/**
|
|
13
|
+
* Decide whether a raw Hyperliquid order belongs in the cross-provider
|
|
14
|
+
* `triggerOrders` bucket. Single source of truth for both the REST
|
|
15
|
+
* `getOrders` path (`HlFrontendOpenOrder` payload) and the `orderUpdates`
|
|
16
|
+
* WS handler (`HlOrderDetail.order`, a strict subset).
|
|
17
|
+
*
|
|
18
|
+
* Authoritative signals, in order:
|
|
19
|
+
* 1. `isTrigger` — REST-only boolean Hyperliquid sets on
|
|
20
|
+
* `frontendOpenOrders`. Definitive when present.
|
|
21
|
+
* 2. `isPositionTpsl` — REST-only flag for TP/SL legs attached to a
|
|
22
|
+
* position.
|
|
23
|
+
* 3. `triggerCondition !== 'N/A'` — present on both REST and WS payloads.
|
|
24
|
+
* Non-trigger orders carry the literal `'N/A'`.
|
|
25
|
+
* 4. `triggerPx` non-null and non-zero — present on both. The reliable
|
|
26
|
+
* trigger signal on the WS wire when `orderType` lies (HL pushes
|
|
27
|
+
* `'Limit'` for a freshly-placed TP/SL until REST refetch lands the
|
|
28
|
+
* corrected type).
|
|
29
|
+
* 5. `orderType` — final fall-back via `isTriggerType`.
|
|
30
|
+
* @public
|
|
31
|
+
*/
|
|
32
|
+
export declare const isTriggerOrder: (o: HlFrontendOpenOrder | HlOrderDetail["order"]) => boolean;
|
|
33
|
+
/** @public */
|
|
34
|
+
export declare const mapOpenOrder: (o: HlFrontendOpenOrder, market: MarketDisplay) => OpenOrder;
|
|
35
|
+
/** @public */
|
|
36
|
+
export declare const mapTriggerOrder: (o: HlFrontendOpenOrder, market: MarketDisplay) => TriggerOrder;
|
|
37
|
+
/** @public */
|
|
38
|
+
export declare const mapOrderStatus: (status: string) => OrderStatus;
|
|
39
|
+
/**
|
|
40
|
+
* Map a raw Hyperliquid order status to a short English sentence
|
|
41
|
+
* describing *why* the order ended in a terminal non-FILLED state. Bare
|
|
42
|
+
* `canceled`/`cancelled`/`rejected` carry no actionable detail and
|
|
43
|
+
* return `undefined`; so do non-terminal and unknown values.
|
|
44
|
+
* @public
|
|
45
|
+
*/
|
|
46
|
+
export declare const mapStatusReason: (status: string) => string | undefined;
|
|
47
|
+
/** @public */
|
|
48
|
+
export declare const mapOrder: (detail: HlOrderDetail, market: MarketDisplay) => Order;
|
|
49
|
+
//# sourceMappingURL=mapOrder.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"mapOrder.d.ts","sourceRoot":"","sources":["../../../src/utils/mapOrder.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EACV,aAAa,EACb,SAAS,EACT,KAAK,EACL,YAAY,EACb,MAAM,mBAAmB,CAAA;AAC1B,OAAO,EAEL,WAAW,EACX,SAAS,EAEV,MAAM,mBAAmB,CAAA;AAC1B,OAAO,KAAK,EAAE,mBAAmB,EAAE,aAAa,EAAE,MAAM,mBAAmB,CAAA;AAE3E;;;;GAIG;AACH,eAAO,MAAM,YAAY,GAAI,WAAW,MAAM,KAAG,SAehD,CAAA;AAED,cAAc;AACd,eAAO,MAAM,aAAa,GAAI,MAAM,SAAS,KAAG,OAIjB,CAAA;AAE/B;;;;;;;;;;;;;;;;;;;GAmBG;AACH,eAAO,MAAM,cAAc,GACzB,GAAG,mBAAmB,GAAG,aAAa,CAAC,OAAO,CAAC,KAC9C,OAkBF,CAAA;AAED,cAAc;AACd,eAAO,MAAM,YAAY,GACvB,GAAG,mBAAmB,EACtB,QAAQ,aAAa,KACpB,SAaD,CAAA;AAEF,cAAc;AACd,eAAO,MAAM,eAAe,GAC1B,GAAG,mBAAmB,EACtB,QAAQ,aAAa,KACpB,YAcF,CAAA;AAED,cAAc;AACd,eAAO,MAAM,cAAc,GAAI,QAAQ,MAAM,KAAG,WAmB/C,CAAA;AAED;;;;;;GAMG;AACH,eAAO,MAAM,eAAe,GAAI,QAAQ,MAAM,KAAG,MAAM,GAAG,SAuBzD,CAAA;AAeD,cAAc;AACd,eAAO,MAAM,QAAQ,GACnB,QAAQ,aAAa,EACrB,QAAQ,aAAa,KACpB,KAsBF,CAAA"}
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
import type { MarketDisplay, Position } from '@lifi/perps-types';
|
|
2
|
+
import type { HlAssetPosition } from '../types/index.js';
|
|
3
|
+
/**
|
|
4
|
+
* True when the assetPosition has non-zero size. Hyperliquid keeps zero-size
|
|
5
|
+
* rows in clearinghouse states after a close; both the REST and WS positions
|
|
6
|
+
* paths drop them so a close surfaces as absence from the open set.
|
|
7
|
+
* @public
|
|
8
|
+
*/
|
|
9
|
+
export declare const isOpenAssetPosition: (ap: HlAssetPosition) => boolean;
|
|
10
|
+
/** @public */
|
|
11
|
+
export declare const mapPosition: (ap: HlAssetPosition, market: MarketDisplay) => Position;
|
|
12
|
+
//# sourceMappingURL=mapPosition.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"mapPosition.d.ts","sourceRoot":"","sources":["../../../src/utils/mapPosition.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,aAAa,EAAE,QAAQ,EAAE,MAAM,mBAAmB,CAAA;AAEhE,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,mBAAmB,CAAA;AAExD;;;;;GAKG;AACH,eAAO,MAAM,mBAAmB,GAAI,IAAI,eAAe,KAAG,OAChB,CAAA;AAE1C,cAAc;AACd,eAAO,MAAM,WAAW,GACtB,IAAI,eAAe,EACnB,QAAQ,aAAa,KACpB,QAsBF,CAAA"}
|
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
import type { Asset, Market } from '@lifi/perps-types';
|
|
2
|
+
/**
|
|
3
|
+
* Synthesise the {@link Asset} for a Hyperliquid wire coin. `id` and `logoURI`
|
|
4
|
+
* keep the raw coin — the logo CDN is keyed by it, HIP-3 `dex:` prefix
|
|
5
|
+
* included. `displaySymbol` drops the prefix: the category is carried by
|
|
6
|
+
* `categoryId`, never by the display string.
|
|
7
|
+
* @public
|
|
8
|
+
*/
|
|
9
|
+
export declare const coinAsset: (coin: string) => Asset;
|
|
10
|
+
/**
|
|
11
|
+
* Distinct wire `dex` names to fan `clearinghouseState` / `frontendOpenOrders`
|
|
12
|
+
* reads across, derived from the backend market list. Spot is excluded (it has
|
|
13
|
+
* no clearinghouseState); the main perp dex maps to the empty string.
|
|
14
|
+
* @public
|
|
15
|
+
*/
|
|
16
|
+
export declare const perpsDexNames: (markets: readonly Market[]) => string[];
|
|
17
|
+
//# sourceMappingURL=marketDisplay.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"marketDisplay.d.ts","sourceRoot":"","sources":["../../../src/utils/marketDisplay.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,EAAE,MAAM,mBAAmB,CAAA;AAQtD;;;;;;GAMG;AACH,eAAO,MAAM,SAAS,GAAI,MAAM,MAAM,KAAG,KAKvC,CAAA;AAEF;;;;;GAKG;AACH,eAAO,MAAM,aAAa,GAAI,SAAS,SAAS,MAAM,EAAE,KAAG,MAAM,EAShE,CAAA"}
|
|
@@ -0,0 +1,50 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Hyperliquid order size and price formatting for exchange submission.
|
|
3
|
+
*
|
|
4
|
+
* These encode Hyperliquid-specific order submission rules. Getting size/price
|
|
5
|
+
* formatting wrong causes rejected orders.
|
|
6
|
+
*
|
|
7
|
+
* @see https://hyperliquid.gitbook.io/hyperliquid-docs/for-developers/api/tick-and-lot-size
|
|
8
|
+
*/
|
|
9
|
+
/**
|
|
10
|
+
* Derive the maximum number of price decimal places for a given asset.
|
|
11
|
+
*
|
|
12
|
+
* @param szDecimals - The asset's szDecimals (from market meta)
|
|
13
|
+
* @param market - Optional market type (e.g. 'spot'). Defaults to perps rules.
|
|
14
|
+
* @returns Maximum allowed price decimals
|
|
15
|
+
* @public
|
|
16
|
+
*/
|
|
17
|
+
export declare function getMaxPriceDecimals(szDecimals: number, market?: string): number;
|
|
18
|
+
/**
|
|
19
|
+
* Format a size value for order submission.
|
|
20
|
+
*
|
|
21
|
+
* Per Hyperliquid docs (tick-and-lot-size):
|
|
22
|
+
* - Size must be rounded to the asset's szDecimals
|
|
23
|
+
* - Trailing zeroes must be removed for signing
|
|
24
|
+
*
|
|
25
|
+
* @param size - The size value to format
|
|
26
|
+
* @param szDecimals - Number of decimal places allowed for this asset (from meta)
|
|
27
|
+
* @returns Size as a string with correct precision, no trailing zeros
|
|
28
|
+
* @public
|
|
29
|
+
*/
|
|
30
|
+
export declare function formatOrderSize(size: number, szDecimals: number): string;
|
|
31
|
+
/**
|
|
32
|
+
* Format a price value for order submission.
|
|
33
|
+
*
|
|
34
|
+
* Per Hyperliquid docs (tick-and-lot-size):
|
|
35
|
+
* - Maximum 5 significant figures
|
|
36
|
+
* - Max decimals = MAX_DECIMALS - szDecimals (6 for perps, 8 for spot)
|
|
37
|
+
* - Integer prices always allowed regardless of significant figures
|
|
38
|
+
* - Trailing zeroes must be removed for signing
|
|
39
|
+
*
|
|
40
|
+
* Rounding is half-up (away from zero at exact halfway) on the true decimal
|
|
41
|
+
* value, not on the binary float — (1.005).toFixed(2) would give '1.00'.
|
|
42
|
+
*
|
|
43
|
+
* @param price - The price value to format
|
|
44
|
+
* @param szDecimals - The asset's szDecimals (affects max price decimals)
|
|
45
|
+
* @param market - Optional market type (e.g. 'spot'). Defaults to perps rules.
|
|
46
|
+
* @returns Price as a string with correct precision, no trailing zeros
|
|
47
|
+
* @public
|
|
48
|
+
*/
|
|
49
|
+
export declare function formatOrderPrice(price: number, szDecimals: number, market?: string): string;
|
|
50
|
+
//# sourceMappingURL=orderFormatting.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"orderFormatting.d.ts","sourceRoot":"","sources":["../../../src/utils/orderFormatting.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAeH;;;;;;;GAOG;AACH,wBAAgB,mBAAmB,CACjC,UAAU,EAAE,MAAM,EAClB,MAAM,CAAC,EAAE,MAAM,GACd,MAAM,CAER;AAED;;;;;;;;;;;GAWG;AACH,wBAAgB,eAAe,CAAC,IAAI,EAAE,MAAM,EAAE,UAAU,EAAE,MAAM,GAAG,MAAM,CAOxE;AAED;;;;;;;;;;;;;;;;;GAiBG;AACH,wBAAgB,gBAAgB,CAC9B,KAAK,EAAE,MAAM,EACb,UAAU,EAAE,MAAM,EAClB,MAAM,CAAC,EAAE,MAAM,GACd,MAAM,CAYR"}
|
|
@@ -0,0 +1,20 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Map a desired price `step` to Hyperliquid's server-side aggregation hint
|
|
3
|
+
* `(nSigFigs, mantissa)` against the order of magnitude of `referencePrice`
|
|
4
|
+
* (the market's mark price gives the digit count). HL buckets the book to
|
|
5
|
+
* `nSigFigs` significant figures, so the figures resolving a price to `step`
|
|
6
|
+
* granularity are `floor(log10(referencePrice)) - floor(log10(step)) + 1`.
|
|
7
|
+
*
|
|
8
|
+
* Returns `{}` (full precision) when the step is finer than HL's 5-sig-fig
|
|
9
|
+
* grid or the inputs are unusable; clamps to {@link HL_MIN_SIG_FIGS} when the
|
|
10
|
+
* step is coarser than HL's lowest granularity. `mantissa` is emitted only for
|
|
11
|
+
* a non-power-of-ten step that lands on the 5-sig-fig grid, since HL ignores
|
|
12
|
+
* it below `nSigFigs === 5`.
|
|
13
|
+
*
|
|
14
|
+
* @public
|
|
15
|
+
*/
|
|
16
|
+
export declare function priceStepToAggregation(step: number, referencePrice: number): {
|
|
17
|
+
nSigFigs?: number;
|
|
18
|
+
mantissa?: number;
|
|
19
|
+
};
|
|
20
|
+
//# sourceMappingURL=priceStepToAggregation.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"priceStepToAggregation.d.ts","sourceRoot":"","sources":["../../../src/utils/priceStepToAggregation.ts"],"names":[],"mappings":"AAiBA;;;;;;;;;;;;;;GAcG;AACH,wBAAgB,sBAAsB,CACpC,IAAI,EAAE,MAAM,EACZ,cAAc,EAAE,MAAM,GACrB;IAAE,QAAQ,CAAC,EAAE,MAAM,CAAC;IAAC,QAAQ,CAAC,EAAE,MAAM,CAAA;CAAE,CAsB1C"}
|
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
import type { Asset, Balance, Market } from '@lifi/perps-types';
|
|
2
|
+
import type { HlSpotBalance } from '../types/index.js';
|
|
3
|
+
/**
|
|
4
|
+
* USD price keyed by spot token index: each spot market's live USD price
|
|
5
|
+
* (from `priceByMarketId`, keyed by `Market.id`) under its base-asset id, and
|
|
6
|
+
* every market's quote-asset id at $1. A spot market absent from
|
|
7
|
+
* `priceByMarketId` values its token at 0.
|
|
8
|
+
*/
|
|
9
|
+
export declare const spotPriceById: (markets: readonly Market[], priceByMarketId: ReadonlyMap<string, number>) => Map<string, number>;
|
|
10
|
+
/**
|
|
11
|
+
* The held spot {@link Asset} for an HL balance: the venue token index
|
|
12
|
+
* (`b.token`) as `Asset.id` — equal to that token's spot `Market.baseAsset.id`
|
|
13
|
+
* — with display fields derived from the coin.
|
|
14
|
+
*/
|
|
15
|
+
export declare const spotAssetFromToken: (b: HlSpotBalance) => Asset;
|
|
16
|
+
/** Assemble a typed spot {@link Balance} from its resolved asset and raw size. */
|
|
17
|
+
export declare const spotBalance: (asset: Asset, total: string, priceById: Map<string, number>) => Balance;
|
|
18
|
+
//# sourceMappingURL=spotBalance.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"spotBalance.d.ts","sourceRoot":"","sources":["../../../src/utils/spotBalance.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,KAAK,EAAE,OAAO,EAAE,MAAM,EAAE,MAAM,mBAAmB,CAAA;AAE/D,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,mBAAmB,CAAA;AAGtD;;;;;GAKG;AACH,eAAO,MAAM,aAAa,GACxB,SAAS,SAAS,MAAM,EAAE,EAC1B,iBAAiB,WAAW,CAAC,MAAM,EAAE,MAAM,CAAC,KAC3C,GAAG,CAAC,MAAM,EAAE,MAAM,CAapB,CAAA;AAED;;;;GAIG;AACH,eAAO,MAAM,kBAAkB,GAAI,GAAG,aAAa,KAAG,KAGpD,CAAA;AAEF,kFAAkF;AAClF,eAAO,MAAM,WAAW,GACtB,OAAO,KAAK,EACZ,OAAO,MAAM,EACb,WAAW,GAAG,CAAC,MAAM,EAAE,MAAM,CAAC,KAC7B,OAKD,CAAA"}
|