@lifi/perps-sdk-provider-hyperliquid 25.0.0 → 27.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 +18 -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 +8 -28
- 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 +17 -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/index.d.ts +1 -1
- package/dist/cjs/utils/index.d.ts.map +1 -1
- package/dist/cjs/utils/index.js +3 -1
- package/dist/cjs/utils/index.js.map +1 -1
- package/dist/cjs/utils/liquidation.d.ts +5 -2
- package/dist/cjs/utils/liquidation.d.ts.map +1 -1
- package/dist/cjs/utils/liquidation.js +8 -8
- 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 +38 -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 +17 -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 +9 -13
- 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 +3 -1
- package/dist/cjs/utils/mapOrder.d.ts.map +1 -1
- package/dist/cjs/utils/mapOrder.js +73 -19
- 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 +41 -15
- 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 +4 -5
- package/dist/cjs/utils/venueTotals.d.ts.map +1 -1
- package/dist/cjs/utils/venueTotals.js +18 -10
- 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 +1 -0
- package/dist/cjs/websocket/HyperliquidWsProvider.d.ts.map +1 -1
- package/dist/cjs/websocket/HyperliquidWsProvider.js +144 -115
- 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 +23 -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 +12 -37
- 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 +19 -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/index.d.ts +1 -1
- package/dist/esm/utils/index.d.ts.map +1 -1
- package/dist/esm/utils/index.js +1 -1
- package/dist/esm/utils/index.js.map +1 -1
- package/dist/esm/utils/liquidation.d.ts +23 -24
- package/dist/esm/utils/liquidation.d.ts.map +1 -1
- package/dist/esm/utils/liquidation.js +26 -31
- 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 +41 -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 +21 -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 +12 -13
- 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 +12 -2
- package/dist/esm/utils/mapOrder.d.ts.map +1 -1
- package/dist/esm/utils/mapOrder.js +81 -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 +44 -13
- 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 +7 -6
- package/dist/esm/utils/venueTotals.d.ts.map +1 -1
- package/dist/esm/utils/venueTotals.js +21 -8
- 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 +3 -0
- package/dist/esm/websocket/HyperliquidWsProvider.d.ts.map +1 -1
- package/dist/esm/websocket/HyperliquidWsProvider.js +155 -115
- 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/index.d.ts +1 -1
- package/dist/types/utils/index.d.ts.map +1 -1
- package/dist/types/utils/liquidation.d.ts +23 -24
- 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 +12 -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 +7 -6
- 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 +3 -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 +14 -46
- package/src/services/getPortfolioHistory.ts +34 -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/index.ts +2 -0
- package/src/utils/liquidation.ts +46 -34
- package/src/utils/mapActivity.ts +48 -20
- package/src/utils/mapFill.ts +25 -9
- package/src/utils/mapMarket.ts +16 -12
- package/src/utils/mapMarketContext.ts +6 -8
- package/src/utils/mapOrder.ts +107 -20
- package/src/utils/mapPosition.ts +72 -14
- 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 +51 -17
- package/src/utils/withdrawableBalances.ts +33 -15
- package/src/websocket/HyperliquidWsProvider.ts +224 -133
- 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":"mapPosition.js","sourceRoot":"","sources":["../../../src/utils/mapPosition.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"mapPosition.js","sourceRoot":"","sources":["../../../src/utils/mapPosition.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,gBAAgB,EAChB,cAAc,EACd,eAAe,EACf,0BAA0B,EAC1B,mBAAmB,EACnB,oBAAoB,EACpB,uBAAuB,EACvB,uBAAuB,EACvB,yBAAyB,EACzB,yBAAyB,EACzB,mBAAmB,GACpB,MAAM,iBAAiB,CAAA;AAExB,OAAO,EAAE,UAAU,EAAE,YAAY,EAAE,MAAM,mBAAmB,CAAA;AAC5D,OAAO,EAAE,YAAY,EAAE,MAAM,iBAAiB,CAAA;AAG9C,MAAM,2BAA2B,GAAG,cAAc,EAAE,CAAA;AAEpD,MAAM,YAAY,GAAG,CACnB,QAAgB,EAChB,KAAa,EACb,KAAc,EACH,EAAE;IACb,mBAAmB,CAAC,YAAY,EAAE,UAAU,EAAE,KAAK,EAAE,KAAK,EAAE,EAAE,QAAQ,EAAE,CAAC,CAAA;IACzE,OAAO,SAAS,CAAA;AAClB,CAAC,CAAA;AAED;;;;;GAKG;AACH,MAAM,CAAC,MAAM,mBAAmB,GAAG,CAAC,EAAmB,EAAW,EAAE,CAClE,uBAAuB,CAAC,EAAE,CAAC,QAAQ,CAAC,GAAG,CAAC,KAAK,IAAI,CAAA;AAEnD;;;;;;;;;GASG;AACH,MAAM,CAAC,MAAM,WAAW,GAAG,CACzB,EAAmB,EACnB,MAA0B,EACJ,EAAE;IACxB,MAAM,GAAG,GAAG,EAAE,CAAC,QAAQ,CAAA;IACvB,IAAI,CAAC,eAAe,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE,CAAC;QAC9B,OAAO,YAAY,CAAC,MAAM,CAAC,EAAE,EAAE,KAAK,EAAE,GAAG,CAAC,GAAG,CAAC,CAAA;IAChD,CAAC;IACD,MAAM,IAAI,GAAG,gBAAgB,CAAC,GAAG,CAAC,GAAG,CAAC,CAAA;IACtC,MAAM,aAAa,GAAG,oBAAoB,CAAC,GAAG,CAAC,aAAa,CAAC,CAAA;IAC7D,MAAM,SAAS,GACb,aAAa,KAAK,SAAS;QACzB,CAAC,CAAC,SAAS;QACX,CAAC,CAAC,mBAAmB,CAAC,IAAI,CAAC;YACzB,CAAC,CAAC,GAAG;YACL,CAAC,CAAC,uBAAuB,CAAC,aAAa,EAAE,IAAI,CAAC,CAAA;IACpD,MAAM,cAAc,GAAG,yBAAyB,CAC9C,GAAG,EACH,GAAG,CAAC,UAAU,CAAC,SAAS,CACzB,CAAA;IACD,MAAM,aAAa,GAAG,yBAAyB,CAAC,GAAG,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAA;IACnE,MAAM,QAAQ,GACZ,aAAa,KAAK,SAAS;QAC3B,0BAA0B,CAAC,aAAa,EAAE,GAAG,CAAC;QAC5C,CAAC,CAAC,aAAa;QACf,CAAC,CAAC,SAAS,CAAA;IACf,IAAI,aAAa,KAAK,SAAS,IAAI,QAAQ,KAAK,SAAS,EAAE,CAAC;QAC1D,2BAA2B,CACzB,aAAa,EACb,IAAI,YAAY,mDAAmD,aAAa,GAAG,CACpF,CAAA;IACH,CAAC;IACD,MAAM,wBAAwB,GAC5B,aAAa,KAAK,SAAS,IAAI,QAAQ,KAAK,SAAS;QACnD,CAAC,CAAC,SAAS;QACX,CAAC,CAAC,uBAAuB,CAAC,aAAa,EAAE,QAAQ,CAAC,CAAA;IACtD,MAAM,UAAU,GACd,GAAG,CAAC,QAAQ,CAAC,IAAI,KAAK,OAAO,CAAC,CAAC,CAAC,UAAU,CAAC,KAAK,CAAC,CAAC,CAAC,UAAU,CAAC,QAAQ,CAAA;IAExE,OAAO;QACL,MAAM;QACN,IAAI,EAAE,0BAA0B,CAAC,GAAG,EAAE,GAAG,CAAC,GAAG,CAAC;YAC5C,CAAC,CAAC,YAAY,CAAC,KAAK;YACpB,CAAC,CAAC,YAAY,CAAC,IAAI;QACrB,IAAI;QACJ,UAAU,EAAE,GAAG,CAAC,OAAO,IAAI,GAAG;QAC9B,GAAG,CAAC,SAAS,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,SAAS,EAAE,CAAC;QACjD,gBAAgB,EAAE,GAAG,CAAC,aAAa,IAAI,GAAG;QAC1C,aAAa,EAAE,GAAG,CAAC,aAAa;QAChC,GAAG,CAAC,cAAc,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,cAAc,EAAE,CAAC;QAC3D,GAAG,CAAC,QAAQ,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,QAAQ,EAAE,CAAC;QAC/C,UAAU,EAAE,GAAG,CAAC,UAAU;QAC1B,GAAG,CAAC,wBAAwB,KAAK,SAAS;YACxC,CAAC,CAAC,EAAE;YACJ,CAAC,CAAC,EAAE,wBAAwB,EAAE,CAAC;QACjC,UAAU;KACX,CAAA;AACH,CAAC,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"}
|
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
import { timestampToIsoString } from '@lifi/perps-sdk';
|
|
2
|
+
/**
|
|
3
|
+
* Read a venue row time as an ISO-8601 string, or `undefined` when the time is
|
|
4
|
+
* not valid. The caller logs the row skip, so this logs nothing.
|
|
5
|
+
*/
|
|
6
|
+
export const rowTimestampToIsoStringOrUndefined = (value) => {
|
|
7
|
+
try {
|
|
8
|
+
return timestampToIsoString(value);
|
|
9
|
+
}
|
|
10
|
+
catch {
|
|
11
|
+
return undefined;
|
|
12
|
+
}
|
|
13
|
+
};
|
|
14
|
+
//# sourceMappingURL=rowTimestamp.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"rowTimestamp.js","sourceRoot":"","sources":["../../../src/utils/rowTimestamp.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,oBAAoB,EAAE,MAAM,iBAAiB,CAAA;AAEtD;;;GAGG;AACH,MAAM,CAAC,MAAM,kCAAkC,GAAG,CAChD,KAAsB,EACF,EAAE;IACtB,IAAI,CAAC;QACH,OAAO,oBAAoB,CAAC,KAAK,CAAC,CAAA;IACpC,CAAC;IAAC,MAAM,CAAC;QACP,OAAO,SAAS,CAAA;IAClB,CAAC;AACH,CAAC,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,23 +1,24 @@
|
|
|
1
|
-
import {
|
|
1
|
+
import { isDecimalString, isDecimalStringGreaterThan, multiplyDecimalString, } from '@lifi/perps-sdk';
|
|
2
2
|
import { SPOT_MARKET_ID } from '../constants.js';
|
|
3
3
|
import { spotLogoURI } from './assetLogo.js';
|
|
4
4
|
import { coinAsset } from './marketDisplay.js';
|
|
5
5
|
/**
|
|
6
6
|
* Build USD prices keyed by spot token asset ID. Base tokens use the supplied
|
|
7
|
-
* market mark price; quote tokens default to exactly `$1`; missing
|
|
8
|
-
* default to `0`.
|
|
7
|
+
* market mark price; quote tokens default to exactly `$1`; missing or invalid
|
|
8
|
+
* base prices default to `0`.
|
|
9
9
|
* @public
|
|
10
10
|
*/
|
|
11
11
|
export const spotPriceById = (markets, priceByMarketId) => {
|
|
12
12
|
const map = new Map();
|
|
13
13
|
for (const m of markets) {
|
|
14
14
|
if (m.categoryId === SPOT_MARKET_ID) {
|
|
15
|
-
|
|
15
|
+
const price = priceByMarketId.get(m.id);
|
|
16
|
+
map.set(m.baseAsset.id, isDecimalString(price) ? price : '0');
|
|
16
17
|
}
|
|
17
18
|
}
|
|
18
19
|
for (const m of markets) {
|
|
19
20
|
if (!map.has(m.quoteAsset.id)) {
|
|
20
|
-
map.set(m.quoteAsset.id, 1);
|
|
21
|
+
map.set(m.quoteAsset.id, '1');
|
|
21
22
|
}
|
|
22
23
|
}
|
|
23
24
|
return map;
|
|
@@ -35,14 +36,14 @@ export const spotAssetFromToken = (b) => ({
|
|
|
35
36
|
});
|
|
36
37
|
/** Assemble a typed spot {@link Balance}; `total` is native token units and its unit price and USD value use `priceById`. @public */
|
|
37
38
|
export const spotBalance = (asset, total, priceById) => {
|
|
38
|
-
const price = priceById.get(asset.id) ?? 0;
|
|
39
|
+
const price = priceById.get(asset.id) ?? '0';
|
|
39
40
|
return {
|
|
40
41
|
categoryId: SPOT_MARKET_ID,
|
|
41
42
|
asset,
|
|
42
43
|
units: total,
|
|
43
|
-
valueUsd:
|
|
44
|
+
valueUsd: multiplyDecimalString(total, price),
|
|
44
45
|
// A zero entry means the map holds no mark for the asset, not a free asset.
|
|
45
|
-
...(price
|
|
46
|
+
...(isDecimalStringGreaterThan(price, '0') ? { price } : {}),
|
|
46
47
|
};
|
|
47
48
|
};
|
|
48
49
|
//# sourceMappingURL=spotBalance.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"spotBalance.js","sourceRoot":"","sources":["../../../src/utils/spotBalance.ts"],"names":[],"mappings":"AAAA,OAAO,
|
|
1
|
+
{"version":3,"file":"spotBalance.js","sourceRoot":"","sources":["../../../src/utils/spotBalance.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,eAAe,EACf,0BAA0B,EAC1B,qBAAqB,GACtB,MAAM,iBAAiB,CAAA;AAExB,OAAO,EAAE,cAAc,EAAE,MAAM,iBAAiB,CAAA;AAEhD,OAAO,EAAE,WAAW,EAAE,MAAM,gBAAgB,CAAA;AAC5C,OAAO,EAAE,SAAS,EAAE,MAAM,oBAAoB,CAAA;AAE9C;;;;;GAKG;AACH,MAAM,CAAC,MAAM,aAAa,GAAG,CAC3B,OAA0B,EAC1B,eAAmD,EACvB,EAAE;IAC9B,MAAM,GAAG,GAAG,IAAI,GAAG,EAAyB,CAAA;IAC5C,KAAK,MAAM,CAAC,IAAI,OAAO,EAAE,CAAC;QACxB,IAAI,CAAC,CAAC,UAAU,KAAK,cAAc,EAAE,CAAC;YACpC,MAAM,KAAK,GAAG,eAAe,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,CAAA;YACvC,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC,SAAS,CAAC,EAAE,EAAE,eAAe,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,GAAG,CAAC,CAAA;QAC/D,CAAC;IACH,CAAC;IACD,KAAK,MAAM,CAAC,IAAI,OAAO,EAAE,CAAC;QACxB,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC,UAAU,CAAC,EAAE,CAAC,EAAE,CAAC;YAC9B,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC,UAAU,CAAC,EAAE,EAAE,GAAG,CAAC,CAAA;QAC/B,CAAC;IACH,CAAC;IACD,OAAO,GAAG,CAAA;AACZ,CAAC,CAAA;AAED;;;;;GAKG;AACH,MAAM,CAAC,MAAM,kBAAkB,GAAG,CAAC,CAAgB,EAAS,EAAE,CAAC,CAAC;IAC9D,GAAG,SAAS,CAAC,CAAC,CAAC,IAAI,CAAC;IACpB,EAAE,EAAE,MAAM,CAAC,CAAC,CAAC,KAAK,CAAC;IACnB,OAAO,EAAE,WAAW,CAAC,CAAC,CAAC,IAAI,CAAC;CAC7B,CAAC,CAAA;AAEF,qIAAqI;AACrI,MAAM,CAAC,MAAM,WAAW,GAAG,CACzB,KAAY,EACZ,KAAoB,EACpB,SAA6C,EACpC,EAAE;IACX,MAAM,KAAK,GAAG,SAAS,CAAC,GAAG,CAAC,KAAK,CAAC,EAAE,CAAC,IAAI,GAAG,CAAA;IAC5C,OAAO;QACL,UAAU,EAAE,cAAc;QAC1B,KAAK;QACL,KAAK,EAAE,KAAK;QACZ,QAAQ,EAAE,qBAAqB,CAAC,KAAK,EAAE,KAAK,CAAC;QAC7C,4EAA4E;QAC5E,GAAG,CAAC,0BAA0B,CAAC,KAAK,EAAE,GAAG,CAAC,CAAC,CAAC,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;KAC7D,CAAA;AACH,CAAC,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"}
|
|
@@ -1,4 +1,5 @@
|
|
|
1
|
-
import {
|
|
1
|
+
import { isDecimalStringGreaterThan, unknownToDecimalString, } from '@lifi/perps-sdk';
|
|
2
|
+
import { PROVIDER_KEY } from '../constants.js';
|
|
2
3
|
/**
|
|
3
4
|
* Partition spot balances into collateral and ordinary holdings. Category
|
|
4
5
|
* quote assets are collateral; every other token is an ordinary holding.
|
|
@@ -9,7 +10,7 @@ export const partitionSpotBalances = (spotBalances, quoteAssetIds) => {
|
|
|
9
10
|
const collateralBalances = [];
|
|
10
11
|
const balances = [];
|
|
11
12
|
for (const balance of spotBalances) {
|
|
12
|
-
if (!
|
|
13
|
+
if (!isDecimalStringGreaterThan(unknownToDecimalString(balance.units, 'spotBalance.units', PROVIDER_KEY), '0')) {
|
|
13
14
|
continue;
|
|
14
15
|
}
|
|
15
16
|
if (quoteAssetIds.has(balance.asset.id)) {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"spotCollateral.js","sourceRoot":"","sources":["../../../src/utils/spotCollateral.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"spotCollateral.js","sourceRoot":"","sources":["../../../src/utils/spotCollateral.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,0BAA0B,EAC1B,sBAAsB,GACvB,MAAM,iBAAiB,CAAA;AAExB,OAAO,EAAE,YAAY,EAAE,MAAM,iBAAiB,CAAA;AAY9C;;;;;GAKG;AACH,MAAM,CAAC,MAAM,qBAAqB,GAAG,CACnC,YAAgC,EAChC,aAAkC,EACnB,EAAE;IACjB,MAAM,kBAAkB,GAAc,EAAE,CAAA;IACxC,MAAM,QAAQ,GAAc,EAAE,CAAA;IAC9B,KAAK,MAAM,OAAO,IAAI,YAAY,EAAE,CAAC;QACnC,IACE,CAAC,0BAA0B,CACzB,sBAAsB,CACpB,OAAO,CAAC,KAAK,EACb,mBAAmB,EACnB,YAAY,CACb,EACD,GAAG,CACJ,EACD,CAAC;YACD,SAAQ;QACV,CAAC;QACD,IAAI,aAAa,CAAC,GAAG,CAAC,OAAO,CAAC,KAAK,CAAC,EAAE,CAAC,EAAE,CAAC;YACxC,kBAAkB,CAAC,IAAI,CAAC,OAAO,CAAC,CAAA;QAClC,CAAC;aAAM,CAAC;YACN,QAAQ,CAAC,IAAI,CAAC,OAAO,CAAC,CAAA;QACxB,CAAC;IACH,CAAC;IACD,OAAO,EAAE,kBAAkB,EAAE,QAAQ,EAAE,CAAA;AACzC,CAAC,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,17 +1,19 @@
|
|
|
1
|
-
import { PerpsError, positionSupportsMarginAdjustment, positionSupportsMarginRemoval,
|
|
1
|
+
import { isDecimalString, isDecimalStringGreaterThan, multiplyDecimalString, PerpsError, positionSupportsMarginAdjustment, positionSupportsMarginRemoval, roundDecimalString, subtractDecimalString, } from '@lifi/perps-sdk';
|
|
2
2
|
import { PerpsErrorCode, } from '@lifi/perps-types';
|
|
3
|
-
import Big from 'big.js';
|
|
4
3
|
const NOTIONAL_FLOOR_RATIO = '0.1';
|
|
5
4
|
const AMOUNT_DECIMALS = 6;
|
|
6
|
-
function
|
|
7
|
-
|
|
5
|
+
function requirePositionAmount(value, field) {
|
|
6
|
+
if (!isDecimalString(value)) {
|
|
7
|
+
throw new PerpsError(PerpsErrorCode.ValidationError, `Invalid \`Position.${field}\`: '${value}' does not match the decimal pattern.`);
|
|
8
|
+
}
|
|
9
|
+
return value;
|
|
8
10
|
}
|
|
9
|
-
function
|
|
10
|
-
|
|
11
|
-
|
|
11
|
+
function requirePositivePositionAmount(value, field) {
|
|
12
|
+
if (value === undefined ||
|
|
13
|
+
!isDecimalStringGreaterThan(requirePositionAmount(value, field), '0')) {
|
|
12
14
|
throw new PerpsError(PerpsErrorCode.ValidationError, `Position.${field} must be greater than zero.`);
|
|
13
15
|
}
|
|
14
|
-
return
|
|
16
|
+
return value;
|
|
15
17
|
}
|
|
16
18
|
/**
|
|
17
19
|
* Hyperliquid removable isolated margin:
|
|
@@ -24,7 +26,8 @@ function positivePositionAmount(value, field) {
|
|
|
24
26
|
* margin adjustment; `'0'` for add-only strict-isolated markets and when
|
|
25
27
|
* nothing is removable.
|
|
26
28
|
* @throws {PerpsError} `ValidationError` when a required `Position` decimal
|
|
27
|
-
* is malformed, or when a size, price or requirement is not
|
|
29
|
+
* is absent or malformed, or when a size, price or requirement is not
|
|
30
|
+
* positive.
|
|
28
31
|
* @see https://hyperliquid.gitbook.io/hyperliquid-docs/trading/margining
|
|
29
32
|
* @public
|
|
30
33
|
*/
|
|
@@ -35,18 +38,16 @@ export function positionRemovableMargin(position) {
|
|
|
35
38
|
if (!positionSupportsMarginRemoval(position)) {
|
|
36
39
|
return '0';
|
|
37
40
|
}
|
|
38
|
-
const marginUsed =
|
|
39
|
-
const initialMargin =
|
|
40
|
-
const notionalFloor =
|
|
41
|
-
|
|
42
|
-
.times(NOTIONAL_FLOOR_RATIO);
|
|
43
|
-
const minimumMargin = initialMargin.gt(notionalFloor)
|
|
41
|
+
const marginUsed = requirePositionAmount(position.marginUsed, 'marginUsed');
|
|
42
|
+
const initialMargin = requirePositivePositionAmount(position.initialMarginRequirement, 'initialMarginRequirement');
|
|
43
|
+
const notionalFloor = multiplyDecimalString(multiplyDecimalString(requirePositivePositionAmount(position.size, 'size'), requirePositivePositionAmount(position.markPrice, 'markPrice')), NOTIONAL_FLOOR_RATIO);
|
|
44
|
+
const minimumMargin = isDecimalStringGreaterThan(initialMargin, notionalFloor)
|
|
44
45
|
? initialMargin
|
|
45
46
|
: notionalFloor;
|
|
46
|
-
const removable = marginUsed
|
|
47
|
-
if (removable
|
|
47
|
+
const removable = subtractDecimalString(marginUsed, minimumMargin);
|
|
48
|
+
if (!isDecimalStringGreaterThan(removable, '0')) {
|
|
48
49
|
return '0';
|
|
49
50
|
}
|
|
50
|
-
return removable
|
|
51
|
+
return roundDecimalString(removable, AMOUNT_DECIMALS, 'truncate');
|
|
51
52
|
}
|
|
52
53
|
//# sourceMappingURL=transferMargin.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"transferMargin.js","sourceRoot":"","sources":["../../../src/utils/transferMargin.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,UAAU,EACV,gCAAgC,EAChC,6BAA6B,EAC7B,qBAAqB,GACtB,MAAM,iBAAiB,CAAA;AACxB,OAAO,EAEL,cAAc,GAEf,MAAM,mBAAmB,CAAA;
|
|
1
|
+
{"version":3,"file":"transferMargin.js","sourceRoot":"","sources":["../../../src/utils/transferMargin.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,eAAe,EACf,0BAA0B,EAC1B,qBAAqB,EACrB,UAAU,EACV,gCAAgC,EAChC,6BAA6B,EAC7B,kBAAkB,EAClB,qBAAqB,GACtB,MAAM,iBAAiB,CAAA;AACxB,OAAO,EAEL,cAAc,GAEf,MAAM,mBAAmB,CAAA;AAE1B,MAAM,oBAAoB,GAAG,KAAK,CAAA;AAClC,MAAM,eAAe,GAAG,CAAC,CAAA;AAEzB,SAAS,qBAAqB,CAC5B,KAAoB,EACpB,KAAa;IAEb,IAAI,CAAC,eAAe,CAAC,KAAK,CAAC,EAAE,CAAC;QAC5B,MAAM,IAAI,UAAU,CAClB,cAAc,CAAC,eAAe,EAC9B,sBAAsB,KAAK,QAAQ,KAAK,uCAAuC,CAChF,CAAA;IACH,CAAC;IACD,OAAO,KAAK,CAAA;AACd,CAAC;AAED,SAAS,6BAA6B,CACpC,KAAgC,EAChC,KAAa;IAEb,IACE,KAAK,KAAK,SAAS;QACnB,CAAC,0BAA0B,CAAC,qBAAqB,CAAC,KAAK,EAAE,KAAK,CAAC,EAAE,GAAG,CAAC,EACrE,CAAC;QACD,MAAM,IAAI,UAAU,CAClB,cAAc,CAAC,eAAe,EAC9B,YAAY,KAAK,6BAA6B,CAC/C,CAAA;IACH,CAAC;IACD,OAAO,KAAK,CAAA;AACd,CAAC;AAED;;;;;;;;;;;;;;;GAeG;AACH,MAAM,UAAU,uBAAuB,CACrC,QAAkB;IAElB,IAAI,CAAC,gCAAgC,CAAC,QAAQ,CAAC,EAAE,CAAC;QAChD,OAAO,SAAS,CAAA;IAClB,CAAC;IACD,IAAI,CAAC,6BAA6B,CAAC,QAAQ,CAAC,EAAE,CAAC;QAC7C,OAAO,GAAG,CAAA;IACZ,CAAC;IACD,MAAM,UAAU,GAAG,qBAAqB,CAAC,QAAQ,CAAC,UAAU,EAAE,YAAY,CAAC,CAAA;IAC3E,MAAM,aAAa,GAAG,6BAA6B,CACjD,QAAQ,CAAC,wBAAwB,EACjC,0BAA0B,CAC3B,CAAA;IACD,MAAM,aAAa,GAAG,qBAAqB,CACzC,qBAAqB,CACnB,6BAA6B,CAAC,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC,EACpD,6BAA6B,CAAC,QAAQ,CAAC,SAAS,EAAE,WAAW,CAAC,CAC/D,EACD,oBAAoB,CACrB,CAAA;IACD,MAAM,aAAa,GAAG,0BAA0B,CAAC,aAAa,EAAE,aAAa,CAAC;QAC5E,CAAC,CAAC,aAAa;QACf,CAAC,CAAC,aAAa,CAAA;IAEjB,MAAM,SAAS,GAAG,qBAAqB,CAAC,UAAU,EAAE,aAAa,CAAC,CAAA;IAClE,IAAI,CAAC,0BAA0B,CAAC,SAAS,EAAE,GAAG,CAAC,EAAE,CAAC;QAChD,OAAO,GAAG,CAAA;IACZ,CAAC;IACD,OAAO,kBAAkB,CAAC,SAAS,EAAE,eAAe,EAAE,UAAU,CAAC,CAAA;AACnE,CAAC"}
|
|
@@ -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,17 @@ 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
|
-
* Sum the unrealized PnL of every position, in quote-asset units.
|
|
22
|
+
* Sum the unrealized PnL of every position, in quote-asset units. A term that
|
|
23
|
+
* does not match the decimal pattern adds nothing and warns once.
|
|
23
24
|
* @public
|
|
24
25
|
*/
|
|
25
|
-
export declare const sumUnrealizedPnl: (positions: readonly Position[]) =>
|
|
26
|
+
export declare const sumUnrealizedPnl: (positions: readonly Position[]) => DecimalString;
|
|
26
27
|
//# 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":"AAOA,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;AAID;;;;GAIG;AACH,eAAO,MAAM,gBAAgB,GAC3B,WAAW,SAAS,QAAQ,EAAE,KAC7B,aAaF,CAAA"}
|
|
@@ -1,26 +1,39 @@
|
|
|
1
|
-
import
|
|
2
|
-
import {
|
|
1
|
+
import { addDecimalString, addDecimalStrings, createWarnOnce, isDecimalString, unknownToDecimalString, } from '@lifi/perps-sdk';
|
|
2
|
+
import { PROVIDER_KEY } from '../constants.js';
|
|
3
3
|
/**
|
|
4
4
|
* Sum the venue `marginSummary` totals over every perps sub-dex of an
|
|
5
5
|
* account. `accountValue` is total equity, so it already carries locked
|
|
6
6
|
* margin and unrealized PnL. An entry without a `marginSummary` adds nothing.
|
|
7
|
+
* @throws {PerpsError} `SDKError` when a venue figure is not a decimal.
|
|
7
8
|
* @public
|
|
8
9
|
*/
|
|
9
10
|
export const perpsTotals = (dexStates) => {
|
|
10
|
-
let accountValue =
|
|
11
|
-
let marginUsed =
|
|
11
|
+
let accountValue = '0';
|
|
12
|
+
let marginUsed = '0';
|
|
12
13
|
for (const { marginSummary } of dexStates) {
|
|
13
14
|
if (marginSummary === undefined) {
|
|
14
15
|
continue;
|
|
15
16
|
}
|
|
16
|
-
accountValue = accountValue
|
|
17
|
-
marginUsed = marginUsed
|
|
17
|
+
accountValue = addDecimalString(accountValue, unknownToDecimalString(marginSummary.accountValue, 'marginSummary.accountValue', PROVIDER_KEY));
|
|
18
|
+
marginUsed = addDecimalString(marginUsed, unknownToDecimalString(marginSummary.totalMarginUsed, 'marginSummary.totalMarginUsed', PROVIDER_KEY));
|
|
18
19
|
}
|
|
19
20
|
return { accountValue, marginUsed };
|
|
20
21
|
};
|
|
22
|
+
const warnSkippedTermOnce = createWarnOnce();
|
|
21
23
|
/**
|
|
22
|
-
* Sum the unrealized PnL of every position, in quote-asset units.
|
|
24
|
+
* Sum the unrealized PnL of every position, in quote-asset units. A term that
|
|
25
|
+
* does not match the decimal pattern adds nothing and warns once.
|
|
23
26
|
* @public
|
|
24
27
|
*/
|
|
25
|
-
export const sumUnrealizedPnl = (positions) =>
|
|
28
|
+
export const sumUnrealizedPnl = (positions) => {
|
|
29
|
+
const terms = [];
|
|
30
|
+
for (const { unrealizedPnl } of positions) {
|
|
31
|
+
if (isDecimalString(unrealizedPnl)) {
|
|
32
|
+
terms.push(unrealizedPnl);
|
|
33
|
+
continue;
|
|
34
|
+
}
|
|
35
|
+
warnSkippedTermOnce(`${PROVIDER_KEY}|position.unrealizedPnl`, `[${PROVIDER_KEY}] skipping a \`position.unrealizedPnl\` term that does not match the decimal pattern: '${String(unrealizedPnl).slice(0, 64)}'`);
|
|
36
|
+
}
|
|
37
|
+
return addDecimalStrings(terms);
|
|
38
|
+
};
|
|
26
39
|
//# sourceMappingURL=venueTotals.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"venueTotals.js","sourceRoot":"","sources":["../../../src/utils/venueTotals.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"venueTotals.js","sourceRoot":"","sources":["../../../src/utils/venueTotals.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,gBAAgB,EAChB,iBAAiB,EACjB,cAAc,EACd,eAAe,EACf,sBAAsB,GACvB,MAAM,iBAAiB,CAAA;AAMxB,OAAO,EAAE,YAAY,EAAE,MAAM,iBAAiB,CAAA;AAW9C;;;;;;GAMG;AACH,MAAM,CAAC,MAAM,WAAW,GAAG,CACzB,SAAsC,EACsB,EAAE;IAC9D,IAAI,YAAY,GAAG,GAAG,CAAA;IACtB,IAAI,UAAU,GAAG,GAAG,CAAA;IACpB,KAAK,MAAM,EAAE,aAAa,EAAE,IAAI,SAAS,EAAE,CAAC;QAC1C,IAAI,aAAa,KAAK,SAAS,EAAE,CAAC;YAChC,SAAQ;QACV,CAAC;QACD,YAAY,GAAG,gBAAgB,CAC7B,YAAY,EACZ,sBAAsB,CACpB,aAAa,CAAC,YAAY,EAC1B,4BAA4B,EAC5B,YAAY,CACb,CACF,CAAA;QACD,UAAU,GAAG,gBAAgB,CAC3B,UAAU,EACV,sBAAsB,CACpB,aAAa,CAAC,eAAe,EAC7B,+BAA+B,EAC/B,YAAY,CACb,CACF,CAAA;IACH,CAAC;IACD,OAAO,EAAE,YAAY,EAAE,UAAU,EAAE,CAAA;AACrC,CAAC,CAAA;AAED,MAAM,mBAAmB,GAAG,cAAc,EAAE,CAAA;AAE5C;;;;GAIG;AACH,MAAM,CAAC,MAAM,gBAAgB,GAAG,CAC9B,SAA8B,EACf,EAAE;IACjB,MAAM,KAAK,GAAoB,EAAE,CAAA;IACjC,KAAK,MAAM,EAAE,aAAa,EAAE,IAAI,SAAS,EAAE,CAAC;QAC1C,IAAI,eAAe,CAAC,aAAa,CAAC,EAAE,CAAC;YACnC,KAAK,CAAC,IAAI,CAAC,aAAa,CAAC,CAAA;YACzB,SAAQ;QACV,CAAC;QACD,mBAAmB,CACjB,GAAG,YAAY,yBAAyB,EACxC,IAAI,YAAY,0FAA0F,MAAM,CAAC,aAAa,CAAC,CAAC,KAAK,CAAC,CAAC,EAAE,EAAE,CAAC,GAAG,CAChJ,CAAA;IACH,CAAC;IACD,OAAO,iBAAiB,CAAC,KAAK,CAAC,CAAA;AACjC,CAAC,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 does not match the
|
|
15
|
+
* decimal pattern.
|
|
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"}
|
|
@@ -1,25 +1,27 @@
|
|
|
1
|
-
import { calculateWithdrawMax, } from '@lifi/perps-sdk';
|
|
1
|
+
import { calculateWithdrawMax, isDecimalStringGreaterThan, subtractDecimalString, unknownToDecimalString, } from '@lifi/perps-sdk';
|
|
2
|
+
import { PROVIDER_KEY, SPOT_MARKET_ID } from '../constants.js';
|
|
2
3
|
import { isUnifiedAbstraction } from './abstractionMode.js';
|
|
3
4
|
import { assetIsOutcome } from './assetId.js';
|
|
4
|
-
import { toWireBig } from './decimal.js';
|
|
5
5
|
/**
|
|
6
|
-
* Split a Hyperliquid account's venue figures into the
|
|
7
|
-
* draws on. A unified or portfolio-margin account holds its collateral in spot,
|
|
6
|
+
* Split a Hyperliquid account's venue figures into the categories a
|
|
7
|
+
* withdrawal draws on. A unified or portfolio-margin account holds its collateral in spot,
|
|
8
8
|
* so each spot token adds the part of `total` that no order or margin holds. A
|
|
9
|
-
*
|
|
9
|
+
* category with nothing left to draw carries no row, and the caller applies the
|
|
10
10
|
* per-asset venue minimum.
|
|
11
11
|
*
|
|
12
|
-
* @param quoteAssetId - `Asset.id` the perps-
|
|
12
|
+
* @param quoteAssetId - `Asset.id` the perps-category row is keyed by.
|
|
13
13
|
* @param withdrawalFee - Flat venue fee in quote-asset units, set on every
|
|
14
14
|
* quote-asset row. Hyperliquid deducts it from the requested amount. Absent
|
|
15
15
|
* leaves every row without a fee.
|
|
16
|
+
* @throws {PerpsError} `SDKError` when the fee or a venue figure does not match the
|
|
17
|
+
* decimal pattern.
|
|
16
18
|
* @public
|
|
17
19
|
*/
|
|
18
20
|
export const hyperliquidWithdrawableBalances = (abstraction, state, spotState, quoteAssetId, withdrawalFee) => {
|
|
19
21
|
const rows = [];
|
|
20
22
|
const fee = withdrawalFee === undefined
|
|
21
23
|
? undefined
|
|
22
|
-
:
|
|
24
|
+
: unknownToDecimalString(withdrawalFee, 'providers.withdrawalFeeUsd', PROVIDER_KEY);
|
|
23
25
|
const feeFor = (assetId) => fee === undefined || assetId !== quoteAssetId
|
|
24
26
|
? {}
|
|
25
27
|
: { withdrawalFee: fee, isFeeDeducted: true };
|
|
@@ -28,25 +30,25 @@ export const hyperliquidWithdrawableBalances = (abstraction, state, spotState, q
|
|
|
28
30
|
if (assetIsOutcome(balance.coin)) {
|
|
29
31
|
continue;
|
|
30
32
|
}
|
|
31
|
-
const spot =
|
|
32
|
-
if (spot
|
|
33
|
+
const spot = subtractDecimalString(unknownToDecimalString(balance.total, 'spotBalance.total', PROVIDER_KEY), unknownToDecimalString(balance.hold, 'spotBalance.hold', PROVIDER_KEY));
|
|
34
|
+
if (isDecimalStringGreaterThan(spot, '0')) {
|
|
33
35
|
const assetId = String(balance.token);
|
|
34
36
|
const row = {
|
|
35
37
|
assetId,
|
|
36
|
-
|
|
37
|
-
available: spot
|
|
38
|
+
categoryId: SPOT_MARKET_ID,
|
|
39
|
+
available: spot,
|
|
38
40
|
...feeFor(assetId),
|
|
39
41
|
};
|
|
40
42
|
rows.push({ ...row, max: calculateWithdrawMax(row) });
|
|
41
43
|
}
|
|
42
44
|
}
|
|
43
45
|
}
|
|
44
|
-
const perps =
|
|
45
|
-
if (perps
|
|
46
|
+
const perps = unknownToDecimalString(state.withdrawable, 'clearinghouseState.withdrawable', PROVIDER_KEY);
|
|
47
|
+
if (isDecimalStringGreaterThan(perps, '0')) {
|
|
46
48
|
const row = {
|
|
47
49
|
assetId: quoteAssetId,
|
|
48
|
-
|
|
49
|
-
available: perps
|
|
50
|
+
categoryId: PROVIDER_KEY,
|
|
51
|
+
available: perps,
|
|
50
52
|
...feeFor(quoteAssetId),
|
|
51
53
|
};
|
|
52
54
|
rows.push({ ...row, max: calculateWithdrawMax(row) });
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"withdrawableBalances.js","sourceRoot":"","sources":["../../../src/utils/withdrawableBalances.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,oBAAoB,
|
|
1
|
+
{"version":3,"file":"withdrawableBalances.js","sourceRoot":"","sources":["../../../src/utils/withdrawableBalances.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,oBAAoB,EACpB,0BAA0B,EAE1B,qBAAqB,EACrB,sBAAsB,GACvB,MAAM,iBAAiB,CAAA;AACxB,OAAO,EAAE,YAAY,EAAE,cAAc,EAAE,MAAM,iBAAiB,CAAA;AAM9D,OAAO,EAAE,oBAAoB,EAAE,MAAM,sBAAsB,CAAA;AAC3D,OAAO,EAAE,cAAc,EAAE,MAAM,cAAc,CAAA;AAE7C;;;;;;;;;;;;;;GAcG;AACH,MAAM,CAAC,MAAM,+BAA+B,GAAG,CAC7C,WAAqC,EACrC,KAA2B,EAC3B,SAAmC,EACnC,YAAoB,EACpB,aAAsB,EACS,EAAE;IACjC,MAAM,IAAI,GAAkC,EAAE,CAAA;IAC9C,MAAM,GAAG,GACP,aAAa,KAAK,SAAS;QACzB,CAAC,CAAC,SAAS;QACX,CAAC,CAAC,sBAAsB,CACpB,aAAa,EACb,4BAA4B,EAC5B,YAAY,CACb,CAAA;IACP,MAAM,MAAM,GAAG,CACb,OAAe,EACuD,EAAE,CACxE,GAAG,KAAK,SAAS,IAAI,OAAO,KAAK,YAAY;QAC3C,CAAC,CAAC,EAAE;QACJ,CAAC,CAAC,EAAE,aAAa,EAAE,GAAG,EAAE,aAAa,EAAE,IAAI,EAAE,CAAA;IAEjD,IAAI,oBAAoB,CAAC,WAAW,CAAC,EAAE,CAAC;QACtC,KAAK,MAAM,OAAO,IAAI,SAAS,CAAC,QAAQ,EAAE,CAAC;YACzC,IAAI,cAAc,CAAC,OAAO,CAAC,IAAI,CAAC,EAAE,CAAC;gBACjC,SAAQ;YACV,CAAC;YACD,MAAM,IAAI,GAAG,qBAAqB,CAChC,sBAAsB,CACpB,OAAO,CAAC,KAAK,EACb,mBAAmB,EACnB,YAAY,CACb,EACD,sBAAsB,CAAC,OAAO,CAAC,IAAI,EAAE,kBAAkB,EAAE,YAAY,CAAC,CACvE,CAAA;YACD,IAAI,0BAA0B,CAAC,IAAI,EAAE,GAAG,CAAC,EAAE,CAAC;gBAC1C,MAAM,OAAO,GAAG,MAAM,CAAC,OAAO,CAAC,KAAK,CAAC,CAAA;gBACrC,MAAM,GAAG,GAAG;oBACV,OAAO;oBACP,UAAU,EAAE,cAAc;oBAC1B,SAAS,EAAE,IAAI;oBACf,GAAG,MAAM,CAAC,OAAO,CAAC;iBACnB,CAAA;gBACD,IAAI,CAAC,IAAI,CAAC,EAAE,GAAG,GAAG,EAAE,GAAG,EAAE,oBAAoB,CAAC,GAAG,CAAC,EAAE,CAAC,CAAA;YACvD,CAAC;QACH,CAAC;IACH,CAAC;IAED,MAAM,KAAK,GAAG,sBAAsB,CAClC,KAAK,CAAC,YAAY,EAClB,iCAAiC,EACjC,YAAY,CACb,CAAA;IACD,IAAI,0BAA0B,CAAC,KAAK,EAAE,GAAG,CAAC,EAAE,CAAC;QAC3C,MAAM,GAAG,GAAG;YACV,OAAO,EAAE,YAAY;YACrB,UAAU,EAAE,YAAY;YACxB,SAAS,EAAE,KAAK;YAChB,GAAG,MAAM,CAAC,YAAY,CAAC;SACxB,CAAA;QACD,IAAI,CAAC,IAAI,CAAC,EAAE,GAAG,GAAG,EAAE,GAAG,EAAE,oBAAoB,CAAC,GAAG,CAAC,EAAE,CAAC,CAAA;IACvD,CAAC;IAED,OAAO,IAAI,CAAA;AACb,CAAC,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 does not match the decimal pattern is left out. */
|
|
117
119
|
private mergedMids;
|
|
118
120
|
private orderbookReferencePrice;
|
|
119
121
|
private handleL2Book;
|
|
@@ -123,6 +125,7 @@ export declare class HyperliquidWsProvider extends WsProviderBase<object> {
|
|
|
123
125
|
private handleCandle;
|
|
124
126
|
private handleTrades;
|
|
125
127
|
private handleOrderUpdates;
|
|
128
|
+
private readOrderDetail;
|
|
126
129
|
private handleUserFills;
|
|
127
130
|
private handleAllDexsClearinghouseState;
|
|
128
131
|
/** Whether the mode's collateral lives per-dex, making the perps-only
|
|
@@ -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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"}
|