@lifi/perps-sdk-provider-hyperliquid 25.0.0 → 26.0.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/cjs/accountSummary.d.ts.map +1 -1
- package/dist/cjs/accountSummary.js +8 -14
- package/dist/cjs/accountSummary.js.map +1 -1
- package/dist/cjs/services/getAccount.d.ts.map +1 -1
- package/dist/cjs/services/getAccount.js +19 -16
- package/dist/cjs/services/getAccount.js.map +1 -1
- package/dist/cjs/services/getFills.d.ts.map +1 -1
- package/dist/cjs/services/getFills.js +2 -1
- package/dist/cjs/services/getFills.js.map +1 -1
- package/dist/cjs/services/getMarketSettings.d.ts.map +1 -1
- package/dist/cjs/services/getMarketSettings.js +1 -1
- package/dist/cjs/services/getMarketSettings.js.map +1 -1
- package/dist/cjs/services/getOrder.d.ts.map +1 -1
- package/dist/cjs/services/getOrder.js +14 -4
- package/dist/cjs/services/getOrder.js.map +1 -1
- package/dist/cjs/services/getOrders.d.ts.map +1 -1
- package/dist/cjs/services/getOrders.js +3 -1
- package/dist/cjs/services/getOrders.js.map +1 -1
- package/dist/cjs/services/getPortfolioHistory.d.ts.map +1 -1
- package/dist/cjs/services/getPortfolioHistory.js +15 -6
- package/dist/cjs/services/getPortfolioHistory.js.map +1 -1
- package/dist/cjs/services/getPositions.d.ts.map +1 -1
- package/dist/cjs/services/getPositions.js +4 -1
- package/dist/cjs/services/getPositions.js.map +1 -1
- package/dist/cjs/types/ws.d.ts +3 -2
- package/dist/cjs/types/ws.d.ts.map +1 -1
- package/dist/cjs/utils/liquidation.d.ts +1 -1
- package/dist/cjs/utils/liquidation.d.ts.map +1 -1
- package/dist/cjs/utils/liquidation.js +3 -4
- package/dist/cjs/utils/liquidation.js.map +1 -1
- package/dist/cjs/utils/mapActivity.d.ts.map +1 -1
- package/dist/cjs/utils/mapActivity.js +32 -23
- package/dist/cjs/utils/mapActivity.js.map +1 -1
- package/dist/cjs/utils/mapFill.d.ts +1 -1
- package/dist/cjs/utils/mapFill.d.ts.map +1 -1
- package/dist/cjs/utils/mapFill.js +14 -6
- package/dist/cjs/utils/mapFill.js.map +1 -1
- package/dist/cjs/utils/mapMarket.d.ts.map +1 -1
- package/dist/cjs/utils/mapMarket.js +8 -12
- package/dist/cjs/utils/mapMarket.js.map +1 -1
- package/dist/cjs/utils/mapMarketContext.d.ts.map +1 -1
- package/dist/cjs/utils/mapMarketContext.js +3 -12
- package/dist/cjs/utils/mapMarketContext.js.map +1 -1
- package/dist/cjs/utils/mapOrder.d.ts +1 -1
- package/dist/cjs/utils/mapOrder.d.ts.map +1 -1
- package/dist/cjs/utils/mapOrder.js +60 -18
- package/dist/cjs/utils/mapOrder.js.map +1 -1
- package/dist/cjs/utils/mapPosition.d.ts +1 -1
- package/dist/cjs/utils/mapPosition.d.ts.map +1 -1
- package/dist/cjs/utils/mapPosition.js +40 -14
- package/dist/cjs/utils/mapPosition.js.map +1 -1
- package/dist/cjs/utils/rowTimestamp.d.ts +2 -0
- package/dist/cjs/utils/rowTimestamp.d.ts.map +1 -0
- package/dist/cjs/utils/rowTimestamp.js +14 -0
- package/dist/cjs/utils/rowTimestamp.js.map +1 -0
- package/dist/cjs/utils/spotBalance.d.ts +3 -3
- package/dist/cjs/utils/spotBalance.d.ts.map +1 -1
- package/dist/cjs/utils/spotBalance.js +6 -5
- package/dist/cjs/utils/spotBalance.js.map +1 -1
- package/dist/cjs/utils/spotCollateral.d.ts.map +1 -1
- package/dist/cjs/utils/spotCollateral.js +3 -2
- package/dist/cjs/utils/spotCollateral.js.map +1 -1
- package/dist/cjs/utils/transferMargin.d.ts.map +1 -1
- package/dist/cjs/utils/transferMargin.js +16 -19
- package/dist/cjs/utils/transferMargin.js.map +1 -1
- package/dist/cjs/utils/venueTotals.d.ts +5 -5
- package/dist/cjs/utils/venueTotals.d.ts.map +1 -1
- package/dist/cjs/utils/venueTotals.js +10 -11
- package/dist/cjs/utils/venueTotals.js.map +1 -1
- package/dist/cjs/utils/withdrawableBalances.d.ts.map +1 -1
- package/dist/cjs/utils/withdrawableBalances.js +10 -10
- package/dist/cjs/utils/withdrawableBalances.js.map +1 -1
- package/dist/cjs/websocket/HyperliquidWsProvider.d.ts.map +1 -1
- package/dist/cjs/websocket/HyperliquidWsProvider.js +109 -89
- package/dist/cjs/websocket/HyperliquidWsProvider.js.map +1 -1
- package/dist/esm/accountSummary.d.ts +2 -1
- package/dist/esm/accountSummary.d.ts.map +1 -1
- package/dist/esm/accountSummary.js +11 -13
- package/dist/esm/accountSummary.js.map +1 -1
- package/dist/esm/services/getAccount.d.ts.map +1 -1
- package/dist/esm/services/getAccount.js +24 -21
- package/dist/esm/services/getAccount.js.map +1 -1
- package/dist/esm/services/getFills.d.ts.map +1 -1
- package/dist/esm/services/getFills.js +2 -1
- package/dist/esm/services/getFills.js.map +1 -1
- package/dist/esm/services/getMarketSettings.d.ts.map +1 -1
- package/dist/esm/services/getMarketSettings.js +2 -2
- package/dist/esm/services/getMarketSettings.js.map +1 -1
- package/dist/esm/services/getOrder.d.ts.map +1 -1
- package/dist/esm/services/getOrder.js +14 -4
- package/dist/esm/services/getOrder.js.map +1 -1
- package/dist/esm/services/getOrders.d.ts.map +1 -1
- package/dist/esm/services/getOrders.js +5 -2
- package/dist/esm/services/getOrders.js.map +1 -1
- package/dist/esm/services/getPortfolioHistory.d.ts.map +1 -1
- package/dist/esm/services/getPortfolioHistory.js +17 -7
- package/dist/esm/services/getPortfolioHistory.js.map +1 -1
- package/dist/esm/services/getPositions.d.ts.map +1 -1
- package/dist/esm/services/getPositions.js +4 -1
- package/dist/esm/services/getPositions.js.map +1 -1
- package/dist/esm/services/getWithdrawableBalances.d.ts +1 -1
- package/dist/esm/services/getWithdrawableBalances.js +1 -1
- package/dist/esm/types/ws.d.ts +3 -2
- package/dist/esm/types/ws.d.ts.map +1 -1
- package/dist/esm/utils/liquidation.d.ts +1 -1
- package/dist/esm/utils/liquidation.d.ts.map +1 -1
- package/dist/esm/utils/liquidation.js +4 -5
- package/dist/esm/utils/liquidation.js.map +1 -1
- package/dist/esm/utils/mapActivity.d.ts +2 -1
- package/dist/esm/utils/mapActivity.d.ts.map +1 -1
- package/dist/esm/utils/mapActivity.js +35 -22
- package/dist/esm/utils/mapActivity.js.map +1 -1
- package/dist/esm/utils/mapFill.d.ts +3 -2
- package/dist/esm/utils/mapFill.d.ts.map +1 -1
- package/dist/esm/utils/mapFill.js +18 -9
- package/dist/esm/utils/mapFill.js.map +1 -1
- package/dist/esm/utils/mapMarket.d.ts +2 -2
- package/dist/esm/utils/mapMarket.d.ts.map +1 -1
- package/dist/esm/utils/mapMarket.js +10 -11
- package/dist/esm/utils/mapMarket.js.map +1 -1
- package/dist/esm/utils/mapMarketContext.d.ts.map +1 -1
- package/dist/esm/utils/mapMarketContext.js +3 -9
- package/dist/esm/utils/mapMarketContext.js.map +1 -1
- package/dist/esm/utils/mapOrder.d.ts +5 -2
- package/dist/esm/utils/mapOrder.d.ts.map +1 -1
- package/dist/esm/utils/mapOrder.js +65 -17
- package/dist/esm/utils/mapOrder.js.map +1 -1
- package/dist/esm/utils/mapPosition.d.ts +4 -2
- package/dist/esm/utils/mapPosition.d.ts.map +1 -1
- package/dist/esm/utils/mapPosition.js +43 -12
- package/dist/esm/utils/mapPosition.js.map +1 -1
- package/dist/esm/utils/rowTimestamp.d.ts +6 -0
- package/dist/esm/utils/rowTimestamp.d.ts.map +1 -0
- package/dist/esm/utils/rowTimestamp.js +14 -0
- package/dist/esm/utils/rowTimestamp.js.map +1 -0
- package/dist/esm/utils/spotBalance.d.ts +5 -5
- package/dist/esm/utils/spotBalance.d.ts.map +1 -1
- package/dist/esm/utils/spotBalance.js +9 -8
- package/dist/esm/utils/spotBalance.js.map +1 -1
- package/dist/esm/utils/spotCollateral.d.ts.map +1 -1
- package/dist/esm/utils/spotCollateral.js +3 -2
- package/dist/esm/utils/spotCollateral.js.map +1 -1
- package/dist/esm/utils/transferMargin.d.ts +2 -1
- package/dist/esm/utils/transferMargin.d.ts.map +1 -1
- package/dist/esm/utils/transferMargin.js +19 -18
- package/dist/esm/utils/transferMargin.js.map +1 -1
- package/dist/esm/utils/venueTotals.d.ts +10 -5
- package/dist/esm/utils/venueTotals.d.ts.map +1 -1
- package/dist/esm/utils/venueTotals.js +13 -7
- package/dist/esm/utils/venueTotals.js.map +1 -1
- package/dist/esm/utils/withdrawableBalances.d.ts +6 -4
- package/dist/esm/utils/withdrawableBalances.d.ts.map +1 -1
- package/dist/esm/utils/withdrawableBalances.js +17 -15
- package/dist/esm/utils/withdrawableBalances.js.map +1 -1
- package/dist/esm/websocket/HyperliquidWsProvider.d.ts +2 -0
- package/dist/esm/websocket/HyperliquidWsProvider.d.ts.map +1 -1
- package/dist/esm/websocket/HyperliquidWsProvider.js +119 -88
- package/dist/esm/websocket/HyperliquidWsProvider.js.map +1 -1
- package/dist/types/accountSummary.d.ts +2 -1
- package/dist/types/accountSummary.d.ts.map +1 -1
- package/dist/types/services/getAccount.d.ts.map +1 -1
- package/dist/types/services/getFills.d.ts.map +1 -1
- package/dist/types/services/getMarketSettings.d.ts.map +1 -1
- package/dist/types/services/getOrder.d.ts.map +1 -1
- package/dist/types/services/getOrders.d.ts.map +1 -1
- package/dist/types/services/getPortfolioHistory.d.ts.map +1 -1
- package/dist/types/services/getPositions.d.ts.map +1 -1
- package/dist/types/services/getWithdrawableBalances.d.ts +1 -1
- package/dist/types/types/ws.d.ts +3 -2
- package/dist/types/types/ws.d.ts.map +1 -1
- package/dist/types/utils/liquidation.d.ts +1 -1
- package/dist/types/utils/liquidation.d.ts.map +1 -1
- package/dist/types/utils/mapActivity.d.ts +2 -1
- package/dist/types/utils/mapActivity.d.ts.map +1 -1
- package/dist/types/utils/mapFill.d.ts +3 -2
- package/dist/types/utils/mapFill.d.ts.map +1 -1
- package/dist/types/utils/mapMarket.d.ts +2 -2
- package/dist/types/utils/mapMarket.d.ts.map +1 -1
- package/dist/types/utils/mapMarketContext.d.ts.map +1 -1
- package/dist/types/utils/mapOrder.d.ts +5 -2
- package/dist/types/utils/mapOrder.d.ts.map +1 -1
- package/dist/types/utils/mapPosition.d.ts +4 -2
- package/dist/types/utils/mapPosition.d.ts.map +1 -1
- package/dist/types/utils/rowTimestamp.d.ts +6 -0
- package/dist/types/utils/rowTimestamp.d.ts.map +1 -0
- package/dist/types/utils/spotBalance.d.ts +5 -5
- package/dist/types/utils/spotBalance.d.ts.map +1 -1
- package/dist/types/utils/spotCollateral.d.ts.map +1 -1
- package/dist/types/utils/transferMargin.d.ts +2 -1
- package/dist/types/utils/transferMargin.d.ts.map +1 -1
- package/dist/types/utils/venueTotals.d.ts +10 -5
- package/dist/types/utils/venueTotals.d.ts.map +1 -1
- package/dist/types/utils/withdrawableBalances.d.ts +6 -4
- package/dist/types/utils/withdrawableBalances.d.ts.map +1 -1
- package/dist/types/websocket/HyperliquidWsProvider.d.ts +2 -0
- package/dist/types/websocket/HyperliquidWsProvider.d.ts.map +1 -1
- package/package.json +3 -3
- package/src/HyperliquidProvider.ts +1 -1
- package/src/accountSummary.ts +35 -23
- package/src/services/getAccount.ts +50 -33
- package/src/services/getFills.ts +2 -1
- package/src/services/getMarketSettings.ts +6 -2
- package/src/services/getOrder.ts +18 -7
- package/src/services/getOrders.ts +6 -3
- package/src/services/getPortfolioHistory.ts +38 -7
- package/src/services/getPositions.ts +4 -3
- package/src/services/getWithdrawableBalances.ts +1 -1
- package/src/types/ws.ts +3 -2
- package/src/utils/liquidation.ts +14 -8
- package/src/utils/mapActivity.ts +42 -20
- package/src/utils/mapFill.ts +22 -9
- package/src/utils/mapMarket.ts +12 -10
- package/src/utils/mapMarketContext.ts +6 -8
- package/src/utils/mapOrder.ts +81 -20
- package/src/utils/mapPosition.ts +67 -13
- package/src/utils/rowTimestamp.ts +15 -0
- package/src/utils/spotBalance.ts +19 -16
- package/src/utils/spotCollateral.ts +15 -2
- package/src/utils/transferMargin.ts +40 -18
- package/src/utils/venueTotals.ts +54 -13
- package/src/utils/withdrawableBalances.ts +33 -15
- package/src/websocket/HyperliquidWsProvider.ts +169 -102
- package/dist/cjs/utils/decimal.d.ts +0 -3
- package/dist/cjs/utils/decimal.d.ts.map +0 -1
- package/dist/cjs/utils/decimal.js +0 -19
- package/dist/cjs/utils/decimal.js.map +0 -1
- package/dist/esm/utils/decimal.d.ts +0 -10
- package/dist/esm/utils/decimal.d.ts.map +0 -1
- package/dist/esm/utils/decimal.js +0 -19
- package/dist/esm/utils/decimal.js.map +0 -1
- package/dist/types/utils/decimal.d.ts +0 -10
- package/dist/types/utils/decimal.d.ts.map +0 -1
- package/src/utils/decimal.ts +0 -21
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"getOrders.d.ts","sourceRoot":"","sources":["../../../src/services/getOrders.ts"],"names":[],"mappings":"AAAA,OAAO,EAOL,KAAK,uBAAuB,EAC5B,KAAK,iBAAiB,EACvB,MAAM,iBAAiB,CAAA;AACxB,OAAO,KAAK,EAAwB,cAAc,EAAE,MAAM,mBAAmB,CAAA;AAE7E,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,eAAe,CAAA;AAWvD,kEAAkE;AAClE,MAAM,MAAM,eAAe,GAAG,uBAAuB,CAAA;AAqCrD,iFAAiF;AACjF,eAAO,MAAM,SAAS,GACpB,oBAAoB,kBAAkB,EACtC,QAAQ,eAAe,EACvB,UAAU,iBAAiB,KAC1B,OAAO,CAAC,cAAc,
|
|
1
|
+
{"version":3,"file":"getOrders.d.ts","sourceRoot":"","sources":["../../../src/services/getOrders.ts"],"names":[],"mappings":"AAAA,OAAO,EAOL,KAAK,uBAAuB,EAC5B,KAAK,iBAAiB,EACvB,MAAM,iBAAiB,CAAA;AACxB,OAAO,KAAK,EAAwB,cAAc,EAAE,MAAM,mBAAmB,CAAA;AAE7E,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,eAAe,CAAA;AAWvD,kEAAkE;AAClE,MAAM,MAAM,eAAe,GAAG,uBAAuB,CAAA;AAqCrD,iFAAiF;AACjF,eAAO,MAAM,SAAS,GACpB,oBAAoB,kBAAkB,EACtC,QAAQ,eAAe,EACvB,UAAU,iBAAiB,KAC1B,OAAO,CAAC,cAAc,CAwGxB,CAAA"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"getPortfolioHistory.d.ts","sourceRoot":"","sources":["../../../src/services/getPortfolioHistory.ts"],"names":[],"mappings":"AAAA,OAAO,
|
|
1
|
+
{"version":3,"file":"getPortfolioHistory.d.ts","sourceRoot":"","sources":["../../../src/services/getPortfolioHistory.ts"],"names":[],"mappings":"AAAA,OAAO,EAEL,KAAK,iBAAiB,EAEvB,MAAM,iBAAiB,CAAA;AACxB,OAAO,EAIL,KAAK,qBAAqB,EAC1B,KAAK,wBAAwB,EAC9B,MAAM,mBAAmB,CAAA;AAC1B,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,MAAM,CAAA;AAEnC,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,eAAe,CAAA;AAWvD,0DAA0D;AAC1D,MAAM,WAAW,yBAAyB;IACxC,OAAO,EAAE,OAAO,CAAA;IAChB,KAAK,EAAE,qBAAqB,CAAA;CAC7B;AAqED;;;;;;GAMG;AACH,wBAAsB,mBAAmB,CACvC,GAAG,EAAE,kBAAkB,EACvB,MAAM,EAAE,yBAAyB,EACjC,OAAO,CAAC,EAAE,iBAAiB,GAC1B,OAAO,CAAC,wBAAwB,CAAC,CAyCnC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"getPositions.d.ts","sourceRoot":"","sources":["../../../src/services/getPositions.ts"],"names":[],"mappings":"AAAA,OAAO,EAEL,KAAK,iBAAiB,EAEvB,MAAM,iBAAiB,CAAA;AACxB,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,mBAAmB,CAAA;AAC1D,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,MAAM,CAAA;AAEnC,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,eAAe,CAAA;AAWvD;;;;GAIG;AACH,MAAM,WAAW,kBAAkB;IACjC,OAAO,EAAE,OAAO,CAAA;IAChB,+DAA+D;IAC/D,QAAQ,CAAC,EAAE,MAAM,CAAA;IACjB,8EAA8E;IAC9E,KAAK,CAAC,EAAE,MAAM,CAAA;CACf;AAED;;;;;;;GAOG;AACH,eAAO,MAAM,YAAY,GACvB,oBAAoB,kBAAkB,EACtC,QAAQ,kBAAkB,EAC1B,UAAU,iBAAiB,KAC1B,OAAO,CAAC,iBAAiB,
|
|
1
|
+
{"version":3,"file":"getPositions.d.ts","sourceRoot":"","sources":["../../../src/services/getPositions.ts"],"names":[],"mappings":"AAAA,OAAO,EAEL,KAAK,iBAAiB,EAEvB,MAAM,iBAAiB,CAAA;AACxB,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,mBAAmB,CAAA;AAC1D,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,MAAM,CAAA;AAEnC,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,eAAe,CAAA;AAWvD;;;;GAIG;AACH,MAAM,WAAW,kBAAkB;IACjC,OAAO,EAAE,OAAO,CAAA;IAChB,+DAA+D;IAC/D,QAAQ,CAAC,EAAE,MAAM,CAAA;IACjB,8EAA8E;IAC9E,KAAK,CAAC,EAAE,MAAM,CAAA;CACf;AAED;;;;;;;GAOG;AACH,eAAO,MAAM,YAAY,GACvB,oBAAoB,kBAAkB,EACtC,QAAQ,kBAAkB,EAC1B,UAAU,iBAAiB,KAC1B,OAAO,CAAC,iBAAiB,CA8C3B,CAAA"}
|
|
@@ -7,7 +7,7 @@ import type { HyperliquidContext } from '../context.js';
|
|
|
7
7
|
*/
|
|
8
8
|
export type GetWithdrawableBalancesParams = ProviderGetWithdrawableBalancesParams;
|
|
9
9
|
/**
|
|
10
|
-
* The `(asset,
|
|
10
|
+
* The `(asset, category)` pairs `params.address` can withdraw from Hyperliquid,
|
|
11
11
|
* read from the venue's own `withdrawable` and spot `total`/`hold` figures.
|
|
12
12
|
* Hyperliquid charges its flat withdrawal fee in USDC, so the backend's
|
|
13
13
|
* `withdrawalFeeUsd` is the fee in quote-asset units on every USDC row.
|
package/dist/types/types/ws.d.ts
CHANGED
|
@@ -1,3 +1,4 @@
|
|
|
1
|
+
import type { DecimalString } from '@lifi/perps-types';
|
|
1
2
|
import type { HlClearinghouseState, HlSpotBalance } from './account.js';
|
|
2
3
|
import type { HlCandle, HlL2Book } from './asset.js';
|
|
3
4
|
import type { HlUserFill } from './fill.js';
|
|
@@ -67,8 +68,8 @@ export type HlWsMessage = {
|
|
|
67
68
|
* @public
|
|
68
69
|
*/
|
|
69
70
|
export type HlWsFastAssetCtx = {
|
|
70
|
-
markPx?:
|
|
71
|
-
midPx?:
|
|
71
|
+
markPx?: DecimalString;
|
|
72
|
+
midPx?: DecimalString | null;
|
|
72
73
|
};
|
|
73
74
|
/**
|
|
74
75
|
* Incremental spot asset context. Hyperliquid may encode numeric fields as
|
|
@@ -1 +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,QAAQ,EAAE,QAAQ,EAAE,MAAM,YAAY,CAAA;AACpD,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,WAAW,CAAA;AAE3C,KAAK,gBAAgB,GAAG,MAAM,GAAG,MAAM,CAAA;AAEvC,iFAAiF;AACjF,MAAM,WAAW,SAAS;IACxB,KAAK,EAAE;QACL,IAAI,EAAE,MAAM,CAAA;QACZ,IAAI,EAAE,MAAM,CAAA;QACZ,OAAO,EAAE,MAAM,CAAA;QACf,EAAE,EAAE,MAAM,CAAA;QACV,GAAG,EAAE,MAAM,CAAA;QACX,SAAS,EAAE,MAAM,CAAA;QACjB,MAAM,EAAE,MAAM,CAAA;QACd,KAAK,CAAC,EAAE,MAAM,CAAA;KACf,CAAA;IACD,MAAM,EAAE,MAAM,CAAA;IACd,eAAe,EAAE,MAAM,CAAA;CACxB;AAED;;;;;GAKG;AACH,MAAM,MAAM,gBAAgB,GAAG;IAC7B,IAAI,EAAE,MAAM,CAAA;IACZ,OAAO,EAAE,MAAM,CAAA;IACf,YAAY,EAAE,MAAM,CAAA;IACpB,SAAS,EAAE,MAAM,CAAA;IACjB,SAAS,EAAE,MAAM,CAAA;IACjB,MAAM,EAAE,MAAM,CAAA;IACd,KAAK,EAAE,MAAM,GAAG,IAAI,CAAA;IACpB,QAAQ,EAAE,MAAM,CAAA;CACjB,CAAA;AAED;;;;GAIG;AACH,MAAM,MAAM,uBAAuB,GAAG,OAAO,CAAC,gBAAgB,CAAC,CAAA;AAE/D;;;;GAIG;AACH,MAAM,MAAM,wBAAwB,GAAG;IACrC,SAAS,CAAC,EAAE,CAAC,MAAM,EAAE,gBAAgB,EAAE,CAAC,EAAE,CAAA;IAC1C,IAAI,CAAC,EAAE,CAAC,MAAM,EAAE,uBAAuB,EAAE,CAAC,EAAE,CAAA;CAC7C,CAAA;AAED;;;;;GAKG;AACH,MAAM,MAAM,WAAW,GAAG,CAAC,MAAM,EAAE,uBAAuB,EAAE,CAAC,EAAE,CAAA;AAE/D,qHAAqH;AACrH,MAAM,MAAM,WAAW,GAAG;IACxB,OAAO,EAAE,MAAM,CAAA;IACf,IAAI,EAAE,OAAO,CAAA;CACd,CAAA;AAED;;;;;GAKG;AACH,MAAM,MAAM,gBAAgB,GAAG;IAC7B,MAAM,CAAC,EAAE,
|
|
1
|
+
{"version":3,"file":"ws.d.ts","sourceRoot":"","sources":["../../../src/types/ws.ts"],"names":[],"mappings":"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"}
|
|
@@ -44,5 +44,5 @@ export declare function calculateMaintenanceMarginRate(maxLeverage: number): num
|
|
|
44
44
|
* @returns Estimated liquidation price, or undefined if inputs are invalid
|
|
45
45
|
* @public
|
|
46
46
|
*/
|
|
47
|
-
export declare function calculateLiquidationPrice(entryPrice:
|
|
47
|
+
export declare function calculateLiquidationPrice(entryPrice: string, leverage: string, isLong: boolean, maxLeverage: number): string | undefined;
|
|
48
48
|
//# sourceMappingURL=liquidation.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"liquidation.d.ts","sourceRoot":"","sources":["../../../src/utils/liquidation.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;GAYG;
|
|
1
|
+
{"version":3,"file":"liquidation.d.ts","sourceRoot":"","sources":["../../../src/utils/liquidation.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;GAYG;AAQH;;;;;;;;;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,CAapB"}
|
|
@@ -26,7 +26,8 @@ export declare const mapFundingActivity: (entry: HlFundingUpdate, providerKey: s
|
|
|
26
26
|
* parties, so only fills whose `liquidatedUser` is the queried address count.
|
|
27
27
|
* A fill whose hash a ledger liquidation row already carries is the same
|
|
28
28
|
* event and is skipped. The size sign follows the closed position: a sell
|
|
29
|
-
* fill closes a long. Groups whose market does not resolve are
|
|
29
|
+
* fill closes a long. Groups whose market or time does not resolve are
|
|
30
|
+
* dropped; an invalid fill size or price leaves the derived field absent.
|
|
30
31
|
* @public
|
|
31
32
|
*/
|
|
32
33
|
export declare const mapLiquidationFills: (fills: HlUserFill[], providerKey: string, queriedAddress: string, resolveMarket: (coin: string) => MarketDisplay | undefined, ledgerHashes: ReadonlySet<string>) => LiquidationActivity[];
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"mapActivity.d.ts","sourceRoot":"","sources":["../../../src/utils/mapActivity.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,KAAK,aAAa,
|
|
1
|
+
{"version":3,"file":"mapActivity.d.ts","sourceRoot":"","sources":["../../../src/utils/mapActivity.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,KAAK,aAAa,EAQnB,MAAM,iBAAiB,CAAA;AACxB,OAAO,KAAK,EACV,YAAY,EAIZ,eAAe,EACf,mBAAmB,EACnB,aAAa,EAGd,MAAM,mBAAmB,CAAA;AAG1B,OAAO,KAAK,EAEV,eAAe,EACf,cAAc,EACd,UAAU,EACX,MAAM,mBAAmB,CAAA;AA4D1B;;;;;GAKG;AACH,eAAO,MAAM,cAAc,GACzB,OAAO,cAAc,EACrB,aAAa,MAAM,EACnB,gBAAgB,MAAM,EACtB,eAAe,aAAa,EAC5B,eAAe,CAAC,IAAI,EAAE,MAAM,KAAK,aAAa,GAAG,SAAS,KACzD,YAAY,GAAG,IAwMjB,CAAA;AAED;;;;;;;;;;GAUG;AACH,eAAO,MAAM,kBAAkB,GAC7B,OAAO,eAAe,EACtB,aAAa,MAAM,EACnB,eAAe,CAAC,IAAI,EAAE,MAAM,KAAK,aAAa,GAAG,SAAS,KACzD,eAAe,GAAG,IAoBpB,CAAA;AAED;;;;;;;;;GASG;AACH,eAAO,MAAM,mBAAmB,GAC9B,OAAO,UAAU,EAAE,EACnB,aAAa,MAAM,EACnB,gBAAgB,MAAM,EACtB,eAAe,CAAC,IAAI,EAAE,MAAM,KAAK,aAAa,GAAG,SAAS,EAC1D,cAAc,WAAW,CAAC,MAAM,CAAC,KAChC,mBAAmB,EAwDrB,CAAA"}
|
|
@@ -5,8 +5,9 @@ import type { HlUserFill } from '../types/index.js';
|
|
|
5
5
|
export { classifyFillFromPosition };
|
|
6
6
|
/**
|
|
7
7
|
* Spot-ness comes from the resolved market's category, not the coin string —
|
|
8
|
-
* HL's canonical spot pair 0 is addressed as `PURR/USDC`, not `@0`.
|
|
8
|
+
* HL's canonical spot pair 0 is addressed as `PURR/USDC`, not `@0`. A fill with
|
|
9
|
+
* an invalid time gives `undefined`.
|
|
9
10
|
* @public
|
|
10
11
|
*/
|
|
11
|
-
export declare const mapFill: (fill: HlUserFill, market: MarketDisplay) => Fill;
|
|
12
|
+
export declare const mapFill: (fill: HlUserFill, market: MarketDisplay) => Fill | undefined;
|
|
12
13
|
//# sourceMappingURL=mapFill.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"mapFill.d.ts","sourceRoot":"","sources":["../../../src/utils/mapFill.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,wBAAwB,
|
|
1
|
+
{"version":3,"file":"mapFill.d.ts","sourceRoot":"","sources":["../../../src/utils/mapFill.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,wBAAwB,EAIzB,MAAM,iBAAiB,CAAA;AACxB,OAAO,KAAK,EAAE,IAAI,EAAE,aAAa,EAAE,MAAM,mBAAmB,CAAA;AAQ5D,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,mBAAmB,CAAA;AAGnD,0FAA0F;AAC1F,OAAO,EAAE,wBAAwB,EAAE,CAAA;AAEnC;;;;;GAKG;AACH,eAAO,MAAM,OAAO,GAClB,MAAM,UAAU,EAChB,QAAQ,aAAa,KACpB,IAAI,GAAG,SA+CT,CAAA"}
|
|
@@ -2,8 +2,8 @@ import type { PerpsMarket } from '@lifi/perps-types';
|
|
|
2
2
|
import type { HlMaxMarketOrderNtls, HlUniverseItem } from '../types/index.js';
|
|
3
3
|
/**
|
|
4
4
|
* Map Hyperliquid universe metadata and optional `maxMarketOrderNtls` tiers to
|
|
5
|
-
* a {@link PerpsMarket}. Missing tiers leave both order caps
|
|
6
|
-
* stay on {@link MarketContext}; callers supply the provider category id
|
|
5
|
+
* a {@link PerpsMarket}. Missing tiers or an invalid cap leave both order caps
|
|
6
|
+
* unset. Live stats stay on {@link MarketContext}; callers supply the provider category id
|
|
7
7
|
* because the coin string does not contain it.
|
|
8
8
|
* @public
|
|
9
9
|
*/
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"mapMarket.d.ts","sourceRoot":"","sources":["../../../src/utils/mapMarket.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"mapMarket.d.ts","sourceRoot":"","sources":["../../../src/utils/mapMarket.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,mBAAmB,CAAA;AAGpD,OAAO,KAAK,EAAE,oBAAoB,EAAE,cAAc,EAAE,MAAM,mBAAmB,CAAA;AAqC7E;;;;;;GAMG;AACH,eAAO,MAAM,SAAS,GACpB,UAAU,cAAc,EACxB,YAAY,MAAM,EAClB,qBAAqB,oBAAoB,KACxC,WAuBD,CAAA"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"mapMarketContext.d.ts","sourceRoot":"","sources":["../../../src/utils/mapMarketContext.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"mapMarketContext.d.ts","sourceRoot":"","sources":["../../../src/utils/mapMarketContext.ts"],"names":[],"mappings":"AAIA,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,mBAAmB,CAAA;AACtD,OAAO,KAAK,EAAE,gBAAgB,EAAE,gBAAgB,EAAE,MAAM,mBAAmB,CAAA;AAkB3E;;;;;;;;GAQG;AACH,eAAO,MAAM,gBAAgB,GAC3B,UAAU,MAAM,EAChB,KAAK,gBAAgB,EACrB,OAAO,gBAAgB,KACtB,aAmBF,CAAA"}
|
|
@@ -7,6 +7,9 @@ export type HlOrderLike = HlFrontendOpenOrder | HlOrderDetail['order'];
|
|
|
7
7
|
export declare const mapOrderType: (orderType: string) => Exclude<OrderType, OrderType.TWAP>;
|
|
8
8
|
/** Translate venue lifecycle statuses; unknown statuses are errors. */
|
|
9
9
|
export declare const mapOrderStatus: (status: string) => OrderStatus;
|
|
10
|
-
/**
|
|
11
|
-
|
|
10
|
+
/**
|
|
11
|
+
* Normalize regular, trigger, and TWAP rows through one lifecycle model. A row
|
|
12
|
+
* whose filled or remaining size or timestamp cannot be derived gives `undefined`.
|
|
13
|
+
*/
|
|
14
|
+
export declare const mapOrder: (raw: HlOrderLike | HlOrderDetail | HlTwapHistoryEntry, market: MarketDisplay, parentOrderId?: string) => Order | undefined;
|
|
12
15
|
//# sourceMappingURL=mapOrder.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"mapOrder.d.ts","sourceRoot":"","sources":["../../../src/utils/mapOrder.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"mapOrder.d.ts","sourceRoot":"","sources":["../../../src/utils/mapOrder.ts"],"names":[],"mappings":"AAYA,OAAO,KAAK,EACV,aAAa,EACb,KAAK,EAGN,MAAM,mBAAmB,CAAA;AAC1B,OAAO,EAEL,WAAW,EACX,SAAS,EAGV,MAAM,mBAAmB,CAAA;AAE1B,OAAO,KAAK,EACV,mBAAmB,EACnB,aAAa,EACb,kBAAkB,EACnB,MAAM,mBAAmB,CAAA;AAG1B,4EAA4E;AAC5E,MAAM,MAAM,WAAW,GAAG,mBAAmB,GAAG,aAAa,CAAC,OAAO,CAAC,CAAA;AAEtE,gFAAgF;AAChF,eAAO,MAAM,YAAY,GACvB,WAAW,MAAM,KAChB,OAAO,CAAC,SAAS,EAAE,SAAS,CAAC,IAAI,CAiBnC,CAAA;AAED,uEAAuE;AACvE,eAAO,MAAM,cAAc,GAAI,QAAQ,MAAM,KAAG,WAuC/C,CAAA;AAqBD;;;GAGG;AACH,eAAO,MAAM,QAAQ,GACnB,KAAK,WAAW,GAAG,aAAa,GAAG,kBAAkB,EACrD,QAAQ,aAAa,EACrB,gBAAgB,MAAM,KACrB,KAAK,GAAG,SAmKV,CAAA"}
|
|
@@ -12,8 +12,10 @@ export declare const isOpenAssetPosition: (ap: HlAssetPosition) => boolean;
|
|
|
12
12
|
* position. Signed wire size determines side; decimal strings remain strings
|
|
13
13
|
* in the normalized response. `cumFunding.sinceOpen` is negated because
|
|
14
14
|
* Hyperliquid signs funding paid as positive and `accruedFunding` signs it as
|
|
15
|
-
* negative.
|
|
15
|
+
* negative. A row with an invalid size gives `undefined`; an invalid position
|
|
16
|
+
* value, a non-positive leverage or an invalid funding leaves the derived field
|
|
17
|
+
* absent.
|
|
16
18
|
* @public
|
|
17
19
|
*/
|
|
18
|
-
export declare const mapPosition: (ap: HlAssetPosition, market: PerpsMarketDisplay) => Position;
|
|
20
|
+
export declare const mapPosition: (ap: HlAssetPosition, market: PerpsMarketDisplay) => Position | undefined;
|
|
19
21
|
//# sourceMappingURL=mapPosition.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"mapPosition.d.ts","sourceRoot":"","sources":["../../../src/utils/mapPosition.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"mapPosition.d.ts","sourceRoot":"","sources":["../../../src/utils/mapPosition.ts"],"names":[],"mappings":"AAaA,OAAO,KAAK,EAAE,kBAAkB,EAAE,QAAQ,EAAE,MAAM,mBAAmB,CAAA;AAGrE,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,mBAAmB,CAAA;AASxD;;;;;GAKG;AACH,eAAO,MAAM,mBAAmB,GAAI,IAAI,eAAe,KAAG,OACP,CAAA;AAEnD;;;;;;;;;GASG;AACH,eAAO,MAAM,WAAW,GACtB,IAAI,eAAe,EACnB,QAAQ,kBAAkB,KACzB,QAAQ,GAAG,SAsDb,CAAA"}
|
|
@@ -0,0 +1,6 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Read a venue row time as an ISO-8601 string, or `undefined` when the time is
|
|
3
|
+
* not valid. The caller logs the row skip, so this logs nothing.
|
|
4
|
+
*/
|
|
5
|
+
export declare const rowTimestampToIsoStringOrUndefined: (value: string | number) => string | undefined;
|
|
6
|
+
//# sourceMappingURL=rowTimestamp.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"rowTimestamp.d.ts","sourceRoot":"","sources":["../../../src/utils/rowTimestamp.ts"],"names":[],"mappings":"AAEA;;;GAGG;AACH,eAAO,MAAM,kCAAkC,GAC7C,OAAO,MAAM,GAAG,MAAM,KACrB,MAAM,GAAG,SAMX,CAAA"}
|
|
@@ -1,12 +1,12 @@
|
|
|
1
|
-
import type { Asset, Balance, Market } from '@lifi/perps-types';
|
|
1
|
+
import type { Asset, Balance, DecimalString, Market } from '@lifi/perps-types';
|
|
2
2
|
import type { HlSpotBalance } from '../types/index.js';
|
|
3
3
|
/**
|
|
4
4
|
* Build USD prices keyed by spot token asset ID. Base tokens use the supplied
|
|
5
|
-
* market mark price; quote tokens default to exactly `$1`; missing
|
|
6
|
-
* default to `0`.
|
|
5
|
+
* market mark price; quote tokens default to exactly `$1`; missing or invalid
|
|
6
|
+
* base prices default to `0`.
|
|
7
7
|
* @public
|
|
8
8
|
*/
|
|
9
|
-
export declare const spotPriceById: (markets: readonly Market[], priceByMarketId: ReadonlyMap<string,
|
|
9
|
+
export declare const spotPriceById: (markets: readonly Market[], priceByMarketId: ReadonlyMap<string, DecimalString>) => Map<string, DecimalString>;
|
|
10
10
|
/**
|
|
11
11
|
* Convert a Hyperliquid spot balance's numeric token index into an SDK asset.
|
|
12
12
|
* The balance payload has no `fullName`, so logo resolution uses the base
|
|
@@ -15,5 +15,5 @@ export declare const spotPriceById: (markets: readonly Market[], priceByMarketId
|
|
|
15
15
|
*/
|
|
16
16
|
export declare const spotAssetFromToken: (b: HlSpotBalance) => Asset;
|
|
17
17
|
/** Assemble a typed spot {@link Balance}; `total` is native token units and its unit price and USD value use `priceById`. @public */
|
|
18
|
-
export declare const spotBalance: (asset: Asset, total:
|
|
18
|
+
export declare const spotBalance: (asset: Asset, total: DecimalString, priceById: ReadonlyMap<string, DecimalString>) => Balance;
|
|
19
19
|
//# sourceMappingURL=spotBalance.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"spotBalance.d.ts","sourceRoot":"","sources":["../../../src/utils/spotBalance.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"spotBalance.d.ts","sourceRoot":"","sources":["../../../src/utils/spotBalance.ts"],"names":[],"mappings":"AAKA,OAAO,KAAK,EAAE,KAAK,EAAE,OAAO,EAAE,aAAa,EAAE,MAAM,EAAE,MAAM,mBAAmB,CAAA;AAE9E,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,mBAAmB,CAAA;AAItD;;;;;GAKG;AACH,eAAO,MAAM,aAAa,GACxB,SAAS,SAAS,MAAM,EAAE,EAC1B,iBAAiB,WAAW,CAAC,MAAM,EAAE,aAAa,CAAC,KAClD,GAAG,CAAC,MAAM,EAAE,aAAa,CAc3B,CAAA;AAED;;;;;GAKG;AACH,eAAO,MAAM,kBAAkB,GAAI,GAAG,aAAa,KAAG,KAIpD,CAAA;AAEF,qIAAqI;AACrI,eAAO,MAAM,WAAW,GACtB,OAAO,KAAK,EACZ,OAAO,aAAa,EACpB,WAAW,WAAW,CAAC,MAAM,EAAE,aAAa,CAAC,KAC5C,OAUF,CAAA"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"spotCollateral.d.ts","sourceRoot":"","sources":["../../../src/utils/spotCollateral.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"spotCollateral.d.ts","sourceRoot":"","sources":["../../../src/utils/spotCollateral.ts"],"names":[],"mappings":"AAIA,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,mBAAmB,CAAA;AAGhD;;;;GAIG;AACH,MAAM,WAAW,aAAa;IAC5B,kBAAkB,EAAE,OAAO,EAAE,CAAA;IAC7B,QAAQ,EAAE,OAAO,EAAE,CAAA;CACpB;AAED;;;;;GAKG;AACH,eAAO,MAAM,qBAAqB,GAChC,cAAc,SAAS,OAAO,EAAE,EAChC,eAAe,WAAW,CAAC,MAAM,CAAC,KACjC,aAuBF,CAAA"}
|
|
@@ -10,7 +10,8 @@ import { type DecimalString, type Position } from '@lifi/perps-types';
|
|
|
10
10
|
* margin adjustment; `'0'` for add-only strict-isolated markets and when
|
|
11
11
|
* nothing is removable.
|
|
12
12
|
* @throws {PerpsError} `ValidationError` when a required `Position` decimal
|
|
13
|
-
* is malformed, or when a size, price or requirement is not
|
|
13
|
+
* is absent or malformed, or when a size, price or requirement is not
|
|
14
|
+
* positive.
|
|
14
15
|
* @see https://hyperliquid.gitbook.io/hyperliquid-docs/trading/margining
|
|
15
16
|
* @public
|
|
16
17
|
*/
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"transferMargin.d.ts","sourceRoot":"","sources":["../../../src/utils/transferMargin.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"transferMargin.d.ts","sourceRoot":"","sources":["../../../src/utils/transferMargin.ts"],"names":[],"mappings":"AAUA,OAAO,EACL,KAAK,aAAa,EAElB,KAAK,QAAQ,EACd,MAAM,mBAAmB,CAAA;AAkC1B;;;;;;;;;;;;;;;GAeG;AACH,wBAAgB,uBAAuB,CACrC,QAAQ,EAAE,QAAQ,GACjB,aAAa,GAAG,SAAS,CA4B3B"}
|
|
@@ -1,5 +1,4 @@
|
|
|
1
|
-
import type { HyperliquidMarginSummary, Position } from '@lifi/perps-types';
|
|
2
|
-
import Big from 'big.js';
|
|
1
|
+
import type { DecimalString, HyperliquidMarginSummary, Position } from '@lifi/perps-types';
|
|
3
2
|
/**
|
|
4
3
|
* One perps sub-dex entry {@link perpsTotals} reads. The REST response always
|
|
5
4
|
* carries `marginSummary`; a WebSocket frame may omit it.
|
|
@@ -12,15 +11,21 @@ export interface DexMarginSummary {
|
|
|
12
11
|
* Sum the venue `marginSummary` totals over every perps sub-dex of an
|
|
13
12
|
* account. `accountValue` is total equity, so it already carries locked
|
|
14
13
|
* margin and unrealized PnL. An entry without a `marginSummary` adds nothing.
|
|
14
|
+
* @throws {PerpsError} `SDKError` when a venue figure is not a decimal.
|
|
15
15
|
* @public
|
|
16
16
|
*/
|
|
17
17
|
export declare const perpsTotals: (dexStates: readonly DexMarginSummary[]) => {
|
|
18
|
-
accountValue:
|
|
19
|
-
marginUsed:
|
|
18
|
+
accountValue: DecimalString;
|
|
19
|
+
marginUsed: DecimalString;
|
|
20
20
|
};
|
|
21
21
|
/**
|
|
22
22
|
* Sum the unrealized PnL of every position, in quote-asset units.
|
|
23
23
|
* @public
|
|
24
24
|
*/
|
|
25
|
-
export declare const sumUnrealizedPnl: (positions: readonly Position[]) =>
|
|
25
|
+
export declare const sumUnrealizedPnl: (positions: readonly Position[]) => DecimalString;
|
|
26
|
+
/**
|
|
27
|
+
* Sum every term, or `undefined` with a warning when any term is not a
|
|
28
|
+
* decimal string. A bad term never gives a partial sum.
|
|
29
|
+
*/
|
|
30
|
+
export declare const safeSumDecimalStrings: (terms: readonly string[]) => DecimalString | undefined;
|
|
26
31
|
//# sourceMappingURL=venueTotals.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"venueTotals.d.ts","sourceRoot":"","sources":["../../../src/utils/venueTotals.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"venueTotals.d.ts","sourceRoot":"","sources":["../../../src/utils/venueTotals.ts"],"names":[],"mappings":"AAKA,OAAO,KAAK,EACV,aAAa,EACb,wBAAwB,EACxB,QAAQ,EACT,MAAM,mBAAmB,CAAA;AAG1B;;;;GAIG;AACH,MAAM,WAAW,gBAAgB;IAC/B,aAAa,CAAC,EAAE,wBAAwB,CAAA;CACzC;AAED;;;;;;GAMG;AACH,eAAO,MAAM,WAAW,GACtB,WAAW,SAAS,gBAAgB,EAAE,KACrC;IAAE,YAAY,EAAE,aAAa,CAAC;IAAC,UAAU,EAAE,aAAa,CAAA;CAyB1D,CAAA;AAED;;;GAGG;AACH,eAAO,MAAM,gBAAgB,GAC3B,WAAW,SAAS,QAAQ,EAAE,KAC7B,aAYA,CAAA;AAEH;;;GAGG;AACH,eAAO,MAAM,qBAAqB,GAChC,OAAO,SAAS,MAAM,EAAE,KACvB,aAAa,GAAG,SAKhB,CAAA"}
|
|
@@ -1,16 +1,18 @@
|
|
|
1
1
|
import { type ProviderWithdrawableBalance } from '@lifi/perps-sdk';
|
|
2
2
|
import type { HlAbstractionMode, HlClearinghouseState, HlSpotClearinghouseState } from '../types/index.js';
|
|
3
3
|
/**
|
|
4
|
-
* Split a Hyperliquid account's venue figures into the
|
|
5
|
-
* draws on. A unified or portfolio-margin account holds its collateral in spot,
|
|
4
|
+
* Split a Hyperliquid account's venue figures into the categories a
|
|
5
|
+
* withdrawal draws on. A unified or portfolio-margin account holds its collateral in spot,
|
|
6
6
|
* so each spot token adds the part of `total` that no order or margin holds. A
|
|
7
|
-
*
|
|
7
|
+
* category with nothing left to draw carries no row, and the caller applies the
|
|
8
8
|
* per-asset venue minimum.
|
|
9
9
|
*
|
|
10
|
-
* @param quoteAssetId - `Asset.id` the perps-
|
|
10
|
+
* @param quoteAssetId - `Asset.id` the perps-category row is keyed by.
|
|
11
11
|
* @param withdrawalFee - Flat venue fee in quote-asset units, set on every
|
|
12
12
|
* quote-asset row. Hyperliquid deducts it from the requested amount. Absent
|
|
13
13
|
* leaves every row without a fee.
|
|
14
|
+
* @throws {PerpsError} `SDKError` when the fee or a venue figure is not a
|
|
15
|
+
* decimal.
|
|
14
16
|
* @public
|
|
15
17
|
*/
|
|
16
18
|
export declare const hyperliquidWithdrawableBalances: (abstraction: HlAbstractionMode | null, state: HlClearinghouseState, spotState: HlSpotClearinghouseState, quoteAssetId: string, withdrawalFee?: string) => ProviderWithdrawableBalance[];
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"withdrawableBalances.d.ts","sourceRoot":"","sources":["../../../src/utils/withdrawableBalances.ts"],"names":[],"mappings":"AAAA,OAAO,
|
|
1
|
+
{"version":3,"file":"withdrawableBalances.d.ts","sourceRoot":"","sources":["../../../src/utils/withdrawableBalances.ts"],"names":[],"mappings":"AAAA,OAAO,EAGL,KAAK,2BAA2B,EAGjC,MAAM,iBAAiB,CAAA;AAExB,OAAO,KAAK,EACV,iBAAiB,EACjB,oBAAoB,EACpB,wBAAwB,EACzB,MAAM,mBAAmB,CAAA;AAI1B;;;;;;;;;;;;;;GAcG;AACH,eAAO,MAAM,+BAA+B,GAC1C,aAAa,iBAAiB,GAAG,IAAI,EACrC,OAAO,oBAAoB,EAC3B,WAAW,wBAAwB,EACnC,cAAc,MAAM,EACpB,gBAAgB,MAAM,KACrB,2BAA2B,EA2D7B,CAAA"}
|
|
@@ -114,6 +114,8 @@ export declare class HyperliquidWsProvider extends WsProviderBase<object> {
|
|
|
114
114
|
private handleActiveAssetCtx;
|
|
115
115
|
private handleActiveSpotAssetCtx;
|
|
116
116
|
/** Latest mid per `Market.id` across asset-context and fast feeds. */
|
|
117
|
+
/** Latest mid per `Market.id` across asset-context and fast feeds; a mid
|
|
118
|
+
* that is not a decimal string is left out. */
|
|
117
119
|
private mergedMids;
|
|
118
120
|
private orderbookReferencePrice;
|
|
119
121
|
private handleL2Book;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"HyperliquidWsProvider.d.ts","sourceRoot":"","sources":["../../../src/websocket/HyperliquidWsProvider.ts"],"names":[],"mappings":"AAAA,OAAO,
|
|
1
|
+
{"version":3,"file":"HyperliquidWsProvider.d.ts","sourceRoot":"","sources":["../../../src/websocket/HyperliquidWsProvider.ts"],"names":[],"mappings":"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"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@lifi/perps-sdk-provider-hyperliquid",
|
|
3
|
-
"version": "
|
|
3
|
+
"version": "26.0.0",
|
|
4
4
|
"description": "Hyperliquid provider plugin for @lifi/perps-sdk",
|
|
5
5
|
"homepage": "https://github.com/lifinance/perps-sdk",
|
|
6
6
|
"bugs": {
|
|
@@ -49,10 +49,10 @@
|
|
|
49
49
|
"dependencies": {
|
|
50
50
|
"big.js": "^7.0.1",
|
|
51
51
|
"viem": "^2.55.18",
|
|
52
|
-
"@lifi/perps-types": "^
|
|
52
|
+
"@lifi/perps-types": "^21.0.0"
|
|
53
53
|
},
|
|
54
54
|
"peerDependencies": {
|
|
55
|
-
"@lifi/perps-sdk": "^
|
|
55
|
+
"@lifi/perps-sdk": "^24.0.0"
|
|
56
56
|
},
|
|
57
57
|
"publishConfig": {
|
|
58
58
|
"access": "public"
|
|
@@ -479,7 +479,7 @@ export function hyperliquidProvider(
|
|
|
479
479
|
estimateLiquidationPrice: (
|
|
480
480
|
market: PerpsMarket,
|
|
481
481
|
params: LiquidationEstimateParams
|
|
482
|
-
):
|
|
482
|
+
): string | undefined =>
|
|
483
483
|
calculateLiquidationPrice(
|
|
484
484
|
params.entryPrice,
|
|
485
485
|
params.leverage,
|
package/src/accountSummary.ts
CHANGED
|
@@ -1,21 +1,34 @@
|
|
|
1
|
-
import {
|
|
1
|
+
import {
|
|
2
|
+
addDecimalString,
|
|
3
|
+
PerpsError,
|
|
4
|
+
subtractDecimalString,
|
|
5
|
+
unknownToDecimalString,
|
|
6
|
+
} from '@lifi/perps-sdk'
|
|
2
7
|
import type {
|
|
3
8
|
AccountResponse,
|
|
4
9
|
AccountSummary,
|
|
5
10
|
Balance,
|
|
11
|
+
DecimalString,
|
|
6
12
|
HyperliquidAccountConfig,
|
|
7
13
|
Position,
|
|
8
14
|
} from '@lifi/perps-types'
|
|
9
15
|
import { PerpsErrorCode } from '@lifi/perps-types'
|
|
10
|
-
import
|
|
16
|
+
import { PROVIDER_KEY } from './constants.js'
|
|
11
17
|
import { isUnifiedAbstraction } from './utils/abstractionMode.js'
|
|
12
|
-
import { toWireBig } from './utils/decimal.js'
|
|
13
18
|
import { perpsTotals, sumUnrealizedPnl } from './utils/venueTotals.js'
|
|
14
19
|
|
|
15
|
-
const sumValueUsd = (balances: readonly Balance[]):
|
|
20
|
+
const sumValueUsd = (balances: readonly Balance[]): DecimalString =>
|
|
16
21
|
balances.reduce(
|
|
17
|
-
(sum, balance) =>
|
|
18
|
-
|
|
22
|
+
(sum, balance) =>
|
|
23
|
+
addDecimalString(
|
|
24
|
+
sum,
|
|
25
|
+
unknownToDecimalString(
|
|
26
|
+
balance.valueUsd,
|
|
27
|
+
'balance.valueUsd',
|
|
28
|
+
PROVIDER_KEY
|
|
29
|
+
)
|
|
30
|
+
),
|
|
31
|
+
'0'
|
|
19
32
|
)
|
|
20
33
|
|
|
21
34
|
const hyperliquidConfig = (
|
|
@@ -32,11 +45,11 @@ const hyperliquidConfig = (
|
|
|
32
45
|
|
|
33
46
|
const getAvailableMargin = (
|
|
34
47
|
config: HyperliquidAccountConfig,
|
|
35
|
-
accountValue:
|
|
36
|
-
marginUsed:
|
|
37
|
-
):
|
|
48
|
+
accountValue: DecimalString,
|
|
49
|
+
marginUsed: DecimalString
|
|
50
|
+
): DecimalString => {
|
|
38
51
|
if (!isUnifiedAbstraction(config.abstractionMode)) {
|
|
39
|
-
return accountValue
|
|
52
|
+
return subtractDecimalString(accountValue, marginUsed)
|
|
40
53
|
}
|
|
41
54
|
if (config.availableAfterMaintenance === undefined) {
|
|
42
55
|
throw new PerpsError(
|
|
@@ -44,9 +57,10 @@ const getAvailableMargin = (
|
|
|
44
57
|
`Hyperliquid '${config.abstractionMode}' account carries no quote-asset entry in \`tokenToAvailableAfterMaintenance\``
|
|
45
58
|
)
|
|
46
59
|
}
|
|
47
|
-
return
|
|
60
|
+
return unknownToDecimalString(
|
|
48
61
|
config.availableAfterMaintenance,
|
|
49
|
-
'tokenToAvailableAfterMaintenance'
|
|
62
|
+
'tokenToAvailableAfterMaintenance',
|
|
63
|
+
PROVIDER_KEY
|
|
50
64
|
)
|
|
51
65
|
}
|
|
52
66
|
|
|
@@ -55,7 +69,8 @@ const getAvailableMargin = (
|
|
|
55
69
|
* {@link AccountSummary}, from the venue figures the response carries.
|
|
56
70
|
*
|
|
57
71
|
* @throws {PerpsError} `SDKError` when the account is not a Hyperliquid one,
|
|
58
|
-
*
|
|
72
|
+
* when a unified/portfolio-margin account carries no venue buying power, or
|
|
73
|
+
* when a summed venue figure is not a decimal.
|
|
59
74
|
* @public
|
|
60
75
|
*/
|
|
61
76
|
export function getAccountSummary(
|
|
@@ -66,15 +81,12 @@ export function getAccountSummary(
|
|
|
66
81
|
const { accountValue, marginUsed } = perpsTotals(config.dexStates)
|
|
67
82
|
|
|
68
83
|
return {
|
|
69
|
-
portfolioValue:
|
|
70
|
-
|
|
71
|
-
.
|
|
72
|
-
|
|
73
|
-
|
|
74
|
-
|
|
75
|
-
|
|
76
|
-
).toFixed(),
|
|
77
|
-
marginUsed: marginUsed.toFixed(),
|
|
78
|
-
unrealizedPnl: sumUnrealizedPnl(positions).toFixed(),
|
|
84
|
+
portfolioValue: addDecimalString(
|
|
85
|
+
sumValueUsd(account.collateralBalances),
|
|
86
|
+
sumValueUsd(account.balances)
|
|
87
|
+
),
|
|
88
|
+
availableMargin: getAvailableMargin(config, accountValue, marginUsed),
|
|
89
|
+
marginUsed,
|
|
90
|
+
unrealizedPnl: sumUnrealizedPnl(positions),
|
|
79
91
|
}
|
|
80
92
|
}
|