@lifi/perps-sdk-provider-hyperliquid 15.0.0 → 17.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/HyperliquidProvider.d.ts.map +1 -1
- package/dist/cjs/HyperliquidProvider.js +5 -1
- package/dist/cjs/HyperliquidProvider.js.map +1 -1
- package/dist/cjs/accountSummary.d.ts.map +1 -1
- package/dist/cjs/accountSummary.js +34 -7
- package/dist/cjs/accountSummary.js.map +1 -1
- package/dist/cjs/index.d.ts +2 -0
- package/dist/cjs/index.d.ts.map +1 -1
- package/dist/cjs/index.js +3 -1
- package/dist/cjs/index.js.map +1 -1
- package/dist/cjs/services/activeAssetData.d.ts +6 -0
- package/dist/cjs/services/activeAssetData.d.ts.map +1 -0
- package/dist/cjs/services/activeAssetData.js +7 -0
- package/dist/cjs/services/activeAssetData.js.map +1 -0
- package/dist/cjs/services/getAccount.d.ts.map +1 -1
- package/dist/cjs/services/getAccount.js +23 -35
- package/dist/cjs/services/getAccount.js.map +1 -1
- package/dist/cjs/services/getAvailableToTrade.d.ts +10 -0
- package/dist/cjs/services/getAvailableToTrade.d.ts.map +1 -0
- package/dist/cjs/services/getAvailableToTrade.js +32 -0
- package/dist/cjs/services/getAvailableToTrade.js.map +1 -0
- package/dist/cjs/services/getMarketSettings.d.ts +1 -1
- package/dist/cjs/services/getMarketSettings.d.ts.map +1 -1
- package/dist/cjs/services/getMarketSettings.js +3 -7
- 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 +7 -3
- 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 +4 -23
- package/dist/cjs/services/getOrders.js.map +1 -1
- package/dist/cjs/services/getWithdrawableBalances.d.ts +5 -0
- package/dist/cjs/services/getWithdrawableBalances.d.ts.map +1 -0
- package/dist/cjs/services/getWithdrawableBalances.js +29 -0
- package/dist/cjs/services/getWithdrawableBalances.js.map +1 -0
- package/dist/cjs/types/account.d.ts +11 -8
- package/dist/cjs/types/account.d.ts.map +1 -1
- package/dist/cjs/types/account.js.map +1 -1
- package/dist/cjs/types/ws.d.ts +3 -4
- package/dist/cjs/types/ws.d.ts.map +1 -1
- package/dist/cjs/utils/abstractionMode.d.ts +1 -1
- package/dist/cjs/utils/abstractionMode.d.ts.map +1 -1
- package/dist/cjs/utils/abstractionMode.js.map +1 -1
- package/dist/cjs/utils/explorer.d.ts +2 -1
- package/dist/cjs/utils/explorer.d.ts.map +1 -1
- package/dist/cjs/utils/explorer.js +24 -1
- package/dist/cjs/utils/explorer.js.map +1 -1
- package/dist/cjs/utils/index.d.ts +3 -1
- package/dist/cjs/utils/index.d.ts.map +1 -1
- package/dist/cjs/utils/index.js +7 -2
- package/dist/cjs/utils/index.js.map +1 -1
- package/dist/cjs/utils/mapPosition.d.ts.map +1 -1
- package/dist/cjs/utils/mapPosition.js +1 -4
- package/dist/cjs/utils/mapPosition.js.map +1 -1
- package/dist/cjs/utils/spotCollateral.d.ts +1 -1
- package/dist/cjs/utils/spotCollateral.d.ts.map +1 -1
- package/dist/cjs/utils/spotCollateral.js +1 -12
- package/dist/cjs/utils/spotCollateral.js.map +1 -1
- package/dist/cjs/utils/transferMargin.d.ts +2 -2
- package/dist/cjs/utils/transferMargin.d.ts.map +1 -1
- package/dist/cjs/utils/transferMargin.js +20 -12
- package/dist/cjs/utils/transferMargin.js.map +1 -1
- package/dist/cjs/utils/venueTotals.d.ts +11 -0
- package/dist/cjs/utils/venueTotals.d.ts.map +1 -0
- package/dist/cjs/utils/venueTotals.js +24 -0
- package/dist/cjs/utils/venueTotals.js.map +1 -0
- package/dist/cjs/utils/withdrawableBalances.d.ts +4 -0
- package/dist/cjs/utils/withdrawableBalances.d.ts.map +1 -0
- package/dist/cjs/utils/withdrawableBalances.js +42 -0
- package/dist/cjs/utils/withdrawableBalances.js.map +1 -0
- package/dist/cjs/websocket/HyperliquidWsProvider.d.ts +3 -1
- package/dist/cjs/websocket/HyperliquidWsProvider.d.ts.map +1 -1
- package/dist/cjs/websocket/HyperliquidWsProvider.js +102 -36
- package/dist/cjs/websocket/HyperliquidWsProvider.js.map +1 -1
- package/dist/esm/HyperliquidProvider.d.ts.map +1 -1
- package/dist/esm/HyperliquidProvider.js +6 -2
- package/dist/esm/HyperliquidProvider.js.map +1 -1
- package/dist/esm/accountSummary.d.ts +4 -3
- package/dist/esm/accountSummary.d.ts.map +1 -1
- package/dist/esm/accountSummary.js +36 -18
- package/dist/esm/accountSummary.js.map +1 -1
- package/dist/esm/index.d.ts +2 -0
- package/dist/esm/index.d.ts.map +1 -1
- package/dist/esm/index.js +1 -0
- package/dist/esm/index.js.map +1 -1
- package/dist/esm/services/activeAssetData.d.ts +13 -0
- package/dist/esm/services/activeAssetData.d.ts.map +1 -0
- package/dist/esm/services/activeAssetData.js +10 -0
- package/dist/esm/services/activeAssetData.js.map +1 -0
- package/dist/esm/services/getAccount.d.ts.map +1 -1
- package/dist/esm/services/getAccount.js +19 -29
- package/dist/esm/services/getAccount.js.map +1 -1
- package/dist/esm/services/getAvailableToTrade.d.ts +26 -0
- package/dist/esm/services/getAvailableToTrade.d.ts.map +1 -0
- package/dist/esm/services/getAvailableToTrade.js +42 -0
- package/dist/esm/services/getAvailableToTrade.js.map +1 -0
- package/dist/esm/services/getMarketSettings.d.ts +1 -1
- package/dist/esm/services/getMarketSettings.d.ts.map +1 -1
- package/dist/esm/services/getMarketSettings.js +3 -7
- 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 +7 -3
- 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 +6 -34
- package/dist/esm/services/getOrders.js.map +1 -1
- package/dist/esm/services/getWithdrawableBalances.d.ts +24 -0
- package/dist/esm/services/getWithdrawableBalances.d.ts.map +1 -0
- package/dist/esm/services/getWithdrawableBalances.js +39 -0
- package/dist/esm/services/getWithdrawableBalances.js.map +1 -0
- package/dist/esm/types/account.d.ts +21 -8
- package/dist/esm/types/account.d.ts.map +1 -1
- package/dist/esm/types/account.js.map +1 -1
- package/dist/esm/types/ws.d.ts +10 -4
- package/dist/esm/types/ws.d.ts.map +1 -1
- package/dist/esm/utils/abstractionMode.d.ts +1 -1
- package/dist/esm/utils/abstractionMode.d.ts.map +1 -1
- package/dist/esm/utils/abstractionMode.js.map +1 -1
- package/dist/esm/utils/explorer.d.ts +9 -1
- package/dist/esm/utils/explorer.d.ts.map +1 -1
- package/dist/esm/utils/explorer.js +34 -1
- package/dist/esm/utils/explorer.js.map +1 -1
- package/dist/esm/utils/index.d.ts +3 -1
- package/dist/esm/utils/index.d.ts.map +1 -1
- package/dist/esm/utils/index.js +3 -1
- package/dist/esm/utils/index.js.map +1 -1
- package/dist/esm/utils/mapPosition.d.ts.map +1 -1
- package/dist/esm/utils/mapPosition.js +1 -4
- package/dist/esm/utils/mapPosition.js.map +1 -1
- package/dist/esm/utils/spotCollateral.d.ts +4 -4
- package/dist/esm/utils/spotCollateral.d.ts.map +1 -1
- package/dist/esm/utils/spotCollateral.js +4 -23
- package/dist/esm/utils/spotCollateral.js.map +1 -1
- package/dist/esm/utils/transferMargin.d.ts +12 -8
- package/dist/esm/utils/transferMargin.d.ts.map +1 -1
- package/dist/esm/utils/transferMargin.js +30 -18
- package/dist/esm/utils/transferMargin.js.map +1 -1
- package/dist/esm/utils/venueTotals.d.ts +26 -0
- package/dist/esm/utils/venueTotals.d.ts.map +1 -0
- package/dist/esm/utils/venueTotals.js +26 -0
- package/dist/esm/utils/venueTotals.js.map +1 -0
- package/dist/esm/utils/withdrawableBalances.d.ts +16 -0
- package/dist/esm/utils/withdrawableBalances.d.ts.map +1 -0
- package/dist/esm/utils/withdrawableBalances.js +50 -0
- package/dist/esm/utils/withdrawableBalances.js.map +1 -0
- package/dist/esm/websocket/HyperliquidWsProvider.d.ts +4 -1
- package/dist/esm/websocket/HyperliquidWsProvider.d.ts.map +1 -1
- package/dist/esm/websocket/HyperliquidWsProvider.js +101 -35
- package/dist/esm/websocket/HyperliquidWsProvider.js.map +1 -1
- package/dist/types/HyperliquidProvider.d.ts.map +1 -1
- package/dist/types/accountSummary.d.ts +4 -3
- package/dist/types/accountSummary.d.ts.map +1 -1
- package/dist/types/index.d.ts +2 -0
- package/dist/types/index.d.ts.map +1 -1
- package/dist/types/services/activeAssetData.d.ts +13 -0
- package/dist/types/services/activeAssetData.d.ts.map +1 -0
- package/dist/types/services/getAccount.d.ts.map +1 -1
- package/dist/types/services/getAvailableToTrade.d.ts +26 -0
- package/dist/types/services/getAvailableToTrade.d.ts.map +1 -0
- package/dist/types/services/getMarketSettings.d.ts +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/getWithdrawableBalances.d.ts +24 -0
- package/dist/types/services/getWithdrawableBalances.d.ts.map +1 -0
- package/dist/types/types/account.d.ts +21 -8
- package/dist/types/types/account.d.ts.map +1 -1
- package/dist/types/types/ws.d.ts +10 -4
- package/dist/types/types/ws.d.ts.map +1 -1
- package/dist/types/utils/abstractionMode.d.ts +1 -1
- package/dist/types/utils/abstractionMode.d.ts.map +1 -1
- package/dist/types/utils/explorer.d.ts +9 -1
- package/dist/types/utils/explorer.d.ts.map +1 -1
- package/dist/types/utils/index.d.ts +3 -1
- package/dist/types/utils/index.d.ts.map +1 -1
- package/dist/types/utils/mapPosition.d.ts.map +1 -1
- package/dist/types/utils/spotCollateral.d.ts +4 -4
- package/dist/types/utils/spotCollateral.d.ts.map +1 -1
- package/dist/types/utils/transferMargin.d.ts +12 -8
- package/dist/types/utils/transferMargin.d.ts.map +1 -1
- package/dist/types/utils/venueTotals.d.ts +26 -0
- package/dist/types/utils/venueTotals.d.ts.map +1 -0
- package/dist/types/utils/withdrawableBalances.d.ts +16 -0
- package/dist/types/utils/withdrawableBalances.d.ts.map +1 -0
- package/dist/types/websocket/HyperliquidWsProvider.d.ts +4 -1
- package/dist/types/websocket/HyperliquidWsProvider.d.ts.map +1 -1
- package/package.json +3 -3
- package/src/HyperliquidProvider.ts +28 -2
- package/src/accountSummary.ts +64 -19
- package/src/index.ts +2 -0
- package/src/services/activeAssetData.ts +24 -0
- package/src/services/getAccount.ts +37 -52
- package/src/services/getAvailableToTrade.ts +72 -0
- package/src/services/getMarketSettings.ts +7 -11
- package/src/services/getOrder.ts +10 -3
- package/src/services/getOrders.ts +5 -56
- package/src/services/getWithdrawableBalances.ts +94 -0
- package/src/types/account.ts +22 -8
- package/src/types/ws.ts +18 -5
- package/src/utils/abstractionMode.ts +1 -1
- package/src/utils/explorer.ts +51 -2
- package/src/utils/index.ts +7 -1
- package/src/utils/mapPosition.ts +1 -5
- package/src/utils/spotCollateral.ts +4 -25
- package/src/utils/transferMargin.ts +31 -20
- package/src/utils/venueTotals.ts +48 -0
- package/src/utils/withdrawableBalances.ts +69 -0
- package/src/websocket/HyperliquidWsProvider.ts +149 -42
- package/dist/cjs/websocket/decodeChain.d.ts +0 -11
- package/dist/cjs/websocket/decodeChain.d.ts.map +0 -1
- package/dist/cjs/websocket/decodeChain.js +0 -37
- package/dist/cjs/websocket/decodeChain.js.map +0 -1
- package/dist/esm/websocket/decodeChain.d.ts +0 -30
- package/dist/esm/websocket/decodeChain.d.ts.map +0 -1
- package/dist/esm/websocket/decodeChain.js +0 -44
- package/dist/esm/websocket/decodeChain.js.map +0 -1
- package/dist/types/websocket/decodeChain.d.ts +0 -30
- package/dist/types/websocket/decodeChain.d.ts.map +0 -1
- package/src/websocket/decodeChain.ts +0 -54
package/dist/esm/index.d.ts
CHANGED
|
@@ -27,6 +27,8 @@ export type { GetPortfolioHistoryParams } from './services/getPortfolioHistory.j
|
|
|
27
27
|
export { getPortfolioHistory } from './services/getPortfolioHistory.js';
|
|
28
28
|
export type { GetPositionsParams } from './services/getPositions.js';
|
|
29
29
|
export { getPositions } from './services/getPositions.js';
|
|
30
|
+
export type { GetWithdrawableBalancesParams } from './services/getWithdrawableBalances.js';
|
|
31
|
+
export { getWithdrawableBalances } from './services/getWithdrawableBalances.js';
|
|
30
32
|
export type { HyperliquidAgent } from './signers/HyperliquidAgentStore.js';
|
|
31
33
|
export { HyperliquidAgentStore } from './signers/HyperliquidAgentStore.js';
|
|
32
34
|
export * from './types/index.js';
|
package/dist/esm/index.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":"AAGA;;;;;;;;GAQG;AAEH,OAAO,EAAE,gCAAgC,EAAE,MAAM,oBAAoB,CAAA;AACrE,OAAO,EAAE,iBAAiB,EAAE,MAAM,qBAAqB,CAAA;AACvD,OAAO,EACL,2BAA2B,EAC3B,4BAA4B,EAC5B,6BAA6B,EAC7B,YAAY,IAAI,wBAAwB,GACzC,MAAM,gBAAgB,CAAA;AACvB,OAAO,EACL,KAAK,wBAAwB,EAC7B,KAAK,0BAA0B,EAC/B,mBAAmB,GACpB,MAAM,0BAA0B,CAAA;AACjC,YAAY,EAAE,gBAAgB,EAAE,MAAM,0BAA0B,CAAA;AAChE,OAAO,EAAE,UAAU,EAAE,MAAM,0BAA0B,CAAA;AACrD,YAAY,EAAE,sBAAsB,EAAE,MAAM,gCAAgC,CAAA;AAC5E,OAAO,EAAE,gBAAgB,EAAE,MAAM,gCAAgC,CAAA;AACjE,YAAY,EAAE,iBAAiB,EAAE,MAAM,2BAA2B,CAAA;AAClE,OAAO,EAAE,WAAW,EAAE,MAAM,2BAA2B,CAAA;AACvD,YAAY,EAAE,cAAc,EAAE,MAAM,wBAAwB,CAAA;AAC5D,OAAO,EAAE,QAAQ,EAAE,MAAM,wBAAwB,CAAA;AACjD,YAAY,EAAE,cAAc,EAAE,MAAM,wBAAwB,CAAA;AAC5D,OAAO,EAAE,QAAQ,EAAE,MAAM,wBAAwB,CAAA;AACjD,YAAY,EAAE,eAAe,EAAE,MAAM,yBAAyB,CAAA;AAC9D,OAAO,EAAE,SAAS,EAAE,MAAM,yBAAyB,CAAA;AACnD,YAAY,EAAE,yBAAyB,EAAE,MAAM,mCAAmC,CAAA;AAClF,OAAO,EAAE,mBAAmB,EAAE,MAAM,mCAAmC,CAAA;AACvE,YAAY,EAAE,kBAAkB,EAAE,MAAM,4BAA4B,CAAA;AACpE,OAAO,EAAE,YAAY,EAAE,MAAM,4BAA4B,CAAA;AACzD,YAAY,EAAE,gBAAgB,EAAE,MAAM,oCAAoC,CAAA;AAC1E,OAAO,EAAE,qBAAqB,EAAE,MAAM,oCAAoC,CAAA;AAC1E,cAAc,kBAAkB,CAAA;AAChC,cAAc,kBAAkB,CAAA;AAChC,OAAO,EACL,qBAAqB,EACrB,qBAAqB,GACtB,MAAM,sCAAsC,CAAA"}
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":"AAGA;;;;;;;;GAQG;AAEH,OAAO,EAAE,gCAAgC,EAAE,MAAM,oBAAoB,CAAA;AACrE,OAAO,EAAE,iBAAiB,EAAE,MAAM,qBAAqB,CAAA;AACvD,OAAO,EACL,2BAA2B,EAC3B,4BAA4B,EAC5B,6BAA6B,EAC7B,YAAY,IAAI,wBAAwB,GACzC,MAAM,gBAAgB,CAAA;AACvB,OAAO,EACL,KAAK,wBAAwB,EAC7B,KAAK,0BAA0B,EAC/B,mBAAmB,GACpB,MAAM,0BAA0B,CAAA;AACjC,YAAY,EAAE,gBAAgB,EAAE,MAAM,0BAA0B,CAAA;AAChE,OAAO,EAAE,UAAU,EAAE,MAAM,0BAA0B,CAAA;AACrD,YAAY,EAAE,sBAAsB,EAAE,MAAM,gCAAgC,CAAA;AAC5E,OAAO,EAAE,gBAAgB,EAAE,MAAM,gCAAgC,CAAA;AACjE,YAAY,EAAE,iBAAiB,EAAE,MAAM,2BAA2B,CAAA;AAClE,OAAO,EAAE,WAAW,EAAE,MAAM,2BAA2B,CAAA;AACvD,YAAY,EAAE,cAAc,EAAE,MAAM,wBAAwB,CAAA;AAC5D,OAAO,EAAE,QAAQ,EAAE,MAAM,wBAAwB,CAAA;AACjD,YAAY,EAAE,cAAc,EAAE,MAAM,wBAAwB,CAAA;AAC5D,OAAO,EAAE,QAAQ,EAAE,MAAM,wBAAwB,CAAA;AACjD,YAAY,EAAE,eAAe,EAAE,MAAM,yBAAyB,CAAA;AAC9D,OAAO,EAAE,SAAS,EAAE,MAAM,yBAAyB,CAAA;AACnD,YAAY,EAAE,yBAAyB,EAAE,MAAM,mCAAmC,CAAA;AAClF,OAAO,EAAE,mBAAmB,EAAE,MAAM,mCAAmC,CAAA;AACvE,YAAY,EAAE,kBAAkB,EAAE,MAAM,4BAA4B,CAAA;AACpE,OAAO,EAAE,YAAY,EAAE,MAAM,4BAA4B,CAAA;AACzD,YAAY,EAAE,6BAA6B,EAAE,MAAM,uCAAuC,CAAA;AAC1F,OAAO,EAAE,uBAAuB,EAAE,MAAM,uCAAuC,CAAA;AAC/E,YAAY,EAAE,gBAAgB,EAAE,MAAM,oCAAoC,CAAA;AAC1E,OAAO,EAAE,qBAAqB,EAAE,MAAM,oCAAoC,CAAA;AAC1E,cAAc,kBAAkB,CAAA;AAChC,cAAc,kBAAkB,CAAA;AAChC,OAAO,EACL,qBAAqB,EACrB,qBAAqB,GACtB,MAAM,sCAAsC,CAAA"}
|
package/dist/esm/index.js
CHANGED
|
@@ -21,6 +21,7 @@ export { getOrder } from './services/getOrder.js';
|
|
|
21
21
|
export { getOrders } from './services/getOrders.js';
|
|
22
22
|
export { getPortfolioHistory } from './services/getPortfolioHistory.js';
|
|
23
23
|
export { getPositions } from './services/getPositions.js';
|
|
24
|
+
export { getWithdrawableBalances } from './services/getWithdrawableBalances.js';
|
|
24
25
|
export { HyperliquidAgentStore } from './signers/HyperliquidAgentStore.js';
|
|
25
26
|
export * from './types/index.js';
|
|
26
27
|
export * from './utils/index.js';
|
package/dist/esm/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":"AAAA,8EAA8E;AAC9E,+EAA+E;AAE/E;;;;;;;;GAQG;AAEH,OAAO,EAAE,gCAAgC,EAAE,MAAM,oBAAoB,CAAA;AACrE,OAAO,EAAE,iBAAiB,EAAE,MAAM,qBAAqB,CAAA;AACvD,OAAO,EACL,2BAA2B,EAC3B,4BAA4B,EAC5B,6BAA6B,EAC7B,YAAY,IAAI,wBAAwB,GACzC,MAAM,gBAAgB,CAAA;AACvB,OAAO,EAGL,mBAAmB,GACpB,MAAM,0BAA0B,CAAA;AAEjC,OAAO,EAAE,UAAU,EAAE,MAAM,0BAA0B,CAAA;AAErD,OAAO,EAAE,gBAAgB,EAAE,MAAM,gCAAgC,CAAA;AAEjE,OAAO,EAAE,WAAW,EAAE,MAAM,2BAA2B,CAAA;AAEvD,OAAO,EAAE,QAAQ,EAAE,MAAM,wBAAwB,CAAA;AAEjD,OAAO,EAAE,QAAQ,EAAE,MAAM,wBAAwB,CAAA;AAEjD,OAAO,EAAE,SAAS,EAAE,MAAM,yBAAyB,CAAA;AAEnD,OAAO,EAAE,mBAAmB,EAAE,MAAM,mCAAmC,CAAA;AAEvE,OAAO,EAAE,YAAY,EAAE,MAAM,4BAA4B,CAAA;AAEzD,OAAO,EAAE,qBAAqB,EAAE,MAAM,oCAAoC,CAAA;AAC1E,cAAc,kBAAkB,CAAA;AAChC,cAAc,kBAAkB,CAAA;AAChC,OAAO,EACL,qBAAqB,EACrB,qBAAqB,GACtB,MAAM,sCAAsC,CAAA"}
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":"AAAA,8EAA8E;AAC9E,+EAA+E;AAE/E;;;;;;;;GAQG;AAEH,OAAO,EAAE,gCAAgC,EAAE,MAAM,oBAAoB,CAAA;AACrE,OAAO,EAAE,iBAAiB,EAAE,MAAM,qBAAqB,CAAA;AACvD,OAAO,EACL,2BAA2B,EAC3B,4BAA4B,EAC5B,6BAA6B,EAC7B,YAAY,IAAI,wBAAwB,GACzC,MAAM,gBAAgB,CAAA;AACvB,OAAO,EAGL,mBAAmB,GACpB,MAAM,0BAA0B,CAAA;AAEjC,OAAO,EAAE,UAAU,EAAE,MAAM,0BAA0B,CAAA;AAErD,OAAO,EAAE,gBAAgB,EAAE,MAAM,gCAAgC,CAAA;AAEjE,OAAO,EAAE,WAAW,EAAE,MAAM,2BAA2B,CAAA;AAEvD,OAAO,EAAE,QAAQ,EAAE,MAAM,wBAAwB,CAAA;AAEjD,OAAO,EAAE,QAAQ,EAAE,MAAM,wBAAwB,CAAA;AAEjD,OAAO,EAAE,SAAS,EAAE,MAAM,yBAAyB,CAAA;AAEnD,OAAO,EAAE,mBAAmB,EAAE,MAAM,mCAAmC,CAAA;AAEvE,OAAO,EAAE,YAAY,EAAE,MAAM,4BAA4B,CAAA;AAEzD,OAAO,EAAE,uBAAuB,EAAE,MAAM,uCAAuC,CAAA;AAE/E,OAAO,EAAE,qBAAqB,EAAE,MAAM,oCAAoC,CAAA;AAC1E,cAAc,kBAAkB,CAAA;AAChC,cAAc,kBAAkB,CAAA;AAChC,OAAO,EACL,qBAAqB,EACrB,qBAAqB,GACtB,MAAM,sCAAsC,CAAA"}
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
import type { SDKRequestOptions } from '@lifi/perps-sdk';
|
|
2
|
+
import type { Address } from 'viem';
|
|
3
|
+
import type { HyperliquidContext } from '../context.js';
|
|
4
|
+
import type { HlActiveAssetData } from '../types/index.js';
|
|
5
|
+
/**
|
|
6
|
+
* The venue's per-account, per-market state for one perps market: margin
|
|
7
|
+
* mode, leverage, maximum sizes and the amounts still tradable on each side.
|
|
8
|
+
* Present whether or not a position is open.
|
|
9
|
+
*
|
|
10
|
+
* @throws {PerpsError} On Hyperliquid REST error, network, or parsing failures.
|
|
11
|
+
*/
|
|
12
|
+
export declare const fetchActiveAssetData: ({ client, apiUrl }: HyperliquidContext, address: Address, marketId: string, options?: SDKRequestOptions) => Promise<HlActiveAssetData>;
|
|
13
|
+
//# sourceMappingURL=activeAssetData.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"activeAssetData.d.ts","sourceRoot":"","sources":["../../../src/services/activeAssetData.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,iBAAiB,CAAA;AACxD,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,MAAM,CAAA;AACnC,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,eAAe,CAAA;AACvD,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,mBAAmB,CAAA;AAG1D;;;;;;GAMG;AACH,eAAO,MAAM,oBAAoB,GAC/B,oBAAoB,kBAAkB,EACtC,SAAS,OAAO,EAChB,UAAU,MAAM,EAChB,UAAU,iBAAiB,KAC1B,OAAO,CAAC,iBAAiB,CAKzB,CAAA"}
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
import { hlInfoOptions, infoRequest } from '../utils/infoClient.js';
|
|
2
|
+
/**
|
|
3
|
+
* The venue's per-account, per-market state for one perps market: margin
|
|
4
|
+
* mode, leverage, maximum sizes and the amounts still tradable on each side.
|
|
5
|
+
* Present whether or not a position is open.
|
|
6
|
+
*
|
|
7
|
+
* @throws {PerpsError} On Hyperliquid REST error, network, or parsing failures.
|
|
8
|
+
*/
|
|
9
|
+
export const fetchActiveAssetData = ({ client, apiUrl }, address, marketId, options) => infoRequest(apiUrl, { type: 'activeAssetData', user: address, coin: marketId }, hlInfoOptions(client, options));
|
|
10
|
+
//# sourceMappingURL=activeAssetData.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"activeAssetData.js","sourceRoot":"","sources":["../../../src/services/activeAssetData.ts"],"names":[],"mappings":"AAIA,OAAO,EAAE,aAAa,EAAE,WAAW,EAAE,MAAM,wBAAwB,CAAA;AAEnE;;;;;;GAMG;AACH,MAAM,CAAC,MAAM,oBAAoB,GAAG,CAClC,EAAE,MAAM,EAAE,MAAM,EAAsB,EACtC,OAAgB,EAChB,QAAgB,EAChB,OAA2B,EACC,EAAE,CAC9B,WAAW,CACT,MAAM,EACN,EAAE,IAAI,EAAE,iBAAiB,EAAE,IAAI,EAAE,OAAO,EAAE,IAAI,EAAE,QAAQ,EAAE,EAC1D,aAAa,CAAC,MAAM,EAAE,OAAO,CAAC,CAC/B,CAAA"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"getAccount.d.ts","sourceRoot":"","sources":["../../../src/services/getAccount.ts"],"names":[],"mappings":"AAAA,OAAO,EAGL,KAAK,wBAAwB,EAC7B,KAAK,iBAAiB,EAGvB,MAAM,iBAAiB,CAAA;AACxB,OAAO,KAAK,EACV,eAAe,
|
|
1
|
+
{"version":3,"file":"getAccount.d.ts","sourceRoot":"","sources":["../../../src/services/getAccount.ts"],"names":[],"mappings":"AAAA,OAAO,EAGL,KAAK,wBAAwB,EAC7B,KAAK,iBAAiB,EAGvB,MAAM,iBAAiB,CAAA;AACxB,OAAO,KAAK,EACV,eAAe,EAMhB,MAAM,mBAAmB,CAAA;AAG1B,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,eAAe,CAAA;AAuBvD;;;;GAIG;AACH,MAAM,MAAM,gBAAgB,GAAG,wBAAwB,CAAA;AA+DvD;;;;;;;;;;;;;;;;;GAiBG;AACH,eAAO,MAAM,UAAU,GACrB,oBAAoB,kBAAkB,EACtC,QAAQ,gBAAgB,EACxB,UAAU,iBAAiB,KAC1B,OAAO,CAAC,eAAe,CAgIzB,CAAA"}
|
|
@@ -1,42 +1,20 @@
|
|
|
1
1
|
import { getMarketRegistry, getMarketsContext, stringToFloat, toPerpsMarketDisplay, } from '@lifi/perps-sdk';
|
|
2
|
-
import Big from 'big.js';
|
|
3
2
|
import { PROVIDER_KEY } from '../constants.js';
|
|
4
|
-
import { HlAbstractionMode, } from '../types/index.js';
|
|
5
3
|
import { isUnifiedAbstraction } from '../utils/abstractionMode.js';
|
|
6
4
|
import { toWireBig } from '../utils/decimal.js';
|
|
7
|
-
import { assetIsOutcome, partitionSpotBalances, perpsDexNames, spotAssetFromToken, spotBalance, spotPriceById, } from '../utils/index.js';
|
|
5
|
+
import { assetIsOutcome, partitionSpotBalances, perpsDexNames, perpsTotals, spotAssetFromToken, spotBalance, spotPriceById, sumUnrealizedPnl, } from '../utils/index.js';
|
|
8
6
|
import { hlInfoOptions, infoRequest } from '../utils/infoClient.js';
|
|
9
7
|
import { isOpenAssetPosition, mapPosition } from '../utils/mapPosition.js';
|
|
10
8
|
// `marginSummary` covers the whole account (cross AND isolated positions);
|
|
11
9
|
// `crossMarginSummary` is the cross-only subset and would drop isolated
|
|
12
10
|
// equity/margin.
|
|
13
11
|
const getAccountValue = (state) => toWireBig(state.marginSummary.accountValue, 'marginSummary.accountValue');
|
|
14
|
-
|
|
15
|
-
const
|
|
16
|
-
if (abstraction === HlAbstractionMode.UNIFIED_ACCOUNT ||
|
|
17
|
-
abstraction === HlAbstractionMode.PORTFOLIO_MARGIN) {
|
|
18
|
-
// Per HL docs, individual per-dex states are not meaningful for these
|
|
19
|
-
// modes; derive total margin from the already-mapped positions.
|
|
20
|
-
const total = positions.reduce((sum, position) => sum.plus(toWireBig(position.marginUsed, 'positions.marginUsed')), new Big(0));
|
|
21
|
-
return total.toFixed();
|
|
22
|
-
}
|
|
23
|
-
if (abstraction === HlAbstractionMode.DEX_ABSTRACTION) {
|
|
24
|
-
let total = new Big(0);
|
|
25
|
-
for (const [, state] of stateByDex) {
|
|
26
|
-
total = total.plus(getTotalMarginUsed(state));
|
|
27
|
-
}
|
|
28
|
-
return total.toFixed();
|
|
29
|
-
}
|
|
30
|
-
const mainState = stateByDex.get('');
|
|
31
|
-
if (!mainState) {
|
|
32
|
-
return '0';
|
|
33
|
-
}
|
|
34
|
-
return getTotalMarginUsed(mainState).toFixed();
|
|
35
|
-
};
|
|
12
|
+
/** Venue buying power for the quote asset the perps dex settles in. */
|
|
13
|
+
const getAvailableAfterMaintenance = (spotState, quoteAssetId) => spotState.tokenToAvailableAfterMaintenance.find(([token]) => String(token) === quoteAssetId)?.[1];
|
|
36
14
|
const buildBalances = (abstraction, spotState, stateByDex, quoteAssetIds, priceById, quoteAssetByCategory) => {
|
|
37
15
|
const { balances, collateralBalances } = partitionSpotBalances(spotState.balances
|
|
38
16
|
.filter((b) => !assetIsOutcome(b.coin))
|
|
39
|
-
.map((b) => spotBalance(spotAssetFromToken(b), b.total, priceById)), quoteAssetIds
|
|
17
|
+
.map((b) => spotBalance(spotAssetFromToken(b), b.total, priceById)), quoteAssetIds);
|
|
40
18
|
// Unified/portfolio modes hold everything in spot — per-dex equity would
|
|
41
19
|
// double-count. Only disabled/dexAbstraction carry separate venue collateral.
|
|
42
20
|
// `accountValue` is the dex's TOTAL equity: locked margin and unrealized
|
|
@@ -109,11 +87,23 @@ export const getAccount = async ({ client, apiUrl }, params, options) => {
|
|
|
109
87
|
stateResults.forEach((state, i) => {
|
|
110
88
|
stateByDex.set(dexNames[i], state);
|
|
111
89
|
});
|
|
112
|
-
const
|
|
90
|
+
const dexStates = stateResults.map((state, i) => ({
|
|
91
|
+
dex: dexNames[i],
|
|
92
|
+
marginSummary: state.marginSummary,
|
|
93
|
+
crossMarginSummary: state.crossMarginSummary,
|
|
94
|
+
crossMaintenanceMarginUsed: state.crossMaintenanceMarginUsed,
|
|
95
|
+
withdrawable: state.withdrawable,
|
|
96
|
+
}));
|
|
113
97
|
const config = {
|
|
114
98
|
provider: PROVIDER_KEY,
|
|
115
99
|
abstractionMode: abstractionResult,
|
|
116
100
|
agents: agentsResult,
|
|
101
|
+
dexStates,
|
|
102
|
+
...(isUnifiedAbstraction(abstractionResult)
|
|
103
|
+
? {
|
|
104
|
+
availableAfterMaintenance: getAvailableAfterMaintenance(spotState, quoteAssetByCategory.get(PROVIDER_KEY)?.id),
|
|
105
|
+
}
|
|
106
|
+
: {}),
|
|
117
107
|
};
|
|
118
108
|
const { balances, collateralBalances } = buildBalances(abstractionResult, spotState, stateByDex, quoteAssetIds, priceById, quoteAssetByCategory);
|
|
119
109
|
return {
|
|
@@ -122,8 +112,8 @@ export const getAccount = async ({ client, apiUrl }, params, options) => {
|
|
|
122
112
|
balances,
|
|
123
113
|
collateralBalances,
|
|
124
114
|
positions,
|
|
125
|
-
marginUsed:
|
|
126
|
-
unrealizedPnl:
|
|
115
|
+
marginUsed: perpsTotals(dexStates).marginUsed.toFixed(),
|
|
116
|
+
unrealizedPnl: sumUnrealizedPnl(positions).toFixed(),
|
|
127
117
|
feeTier: {
|
|
128
118
|
maker: feesResult.userAddRate ?? '0',
|
|
129
119
|
taker: feesResult.userCrossRate ?? '0',
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"getAccount.js","sourceRoot":"","sources":["../../../src/services/getAccount.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,iBAAiB,EACjB,iBAAiB,EAGjB,aAAa,EACb,oBAAoB,GACrB,MAAM,iBAAiB,CAAA;
|
|
1
|
+
{"version":3,"file":"getAccount.js","sourceRoot":"","sources":["../../../src/services/getAccount.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,26 @@
|
|
|
1
|
+
import { type SDKRequestOptions } from '@lifi/perps-sdk';
|
|
2
|
+
import type { AvailableToTrade } from '@lifi/perps-types';
|
|
3
|
+
import type { Address } from 'viem';
|
|
4
|
+
import type { HyperliquidContext } from '../context.js';
|
|
5
|
+
/**
|
|
6
|
+
* Parameters for {@link getAvailableToTrade}.
|
|
7
|
+
*
|
|
8
|
+
* @public
|
|
9
|
+
*/
|
|
10
|
+
export interface GetAvailableToTradeParams {
|
|
11
|
+
address: Address;
|
|
12
|
+
marketId: string;
|
|
13
|
+
}
|
|
14
|
+
/**
|
|
15
|
+
* The amounts the account can still buy and sell on one perps market, read
|
|
16
|
+
* from `activeAssetData`. The amounts are denominated in the market's margin
|
|
17
|
+
* asset: USDC on the main dex, and the dex margin asset on a builder-deployed
|
|
18
|
+
* dex. Resolves `undefined` for a spot market, which carries no such state.
|
|
19
|
+
*
|
|
20
|
+
* @throws {PerpsError} On an unknown market, an `availableToTrade` payload
|
|
21
|
+
* that is not a buy/sell pair, Hyperliquid REST error, network, or parsing
|
|
22
|
+
* failures.
|
|
23
|
+
* @public
|
|
24
|
+
*/
|
|
25
|
+
export declare const getAvailableToTrade: (context: HyperliquidContext, params: GetAvailableToTradeParams, options?: SDKRequestOptions) => Promise<AvailableToTrade | undefined>;
|
|
26
|
+
//# sourceMappingURL=getAvailableToTrade.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"getAvailableToTrade.d.ts","sourceRoot":"","sources":["../../../src/services/getAvailableToTrade.ts"],"names":[],"mappings":"AAAA,OAAO,EAGL,KAAK,iBAAiB,EAEvB,MAAM,iBAAiB,CAAA;AACxB,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,mBAAmB,CAAA;AAEzD,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,MAAM,CAAA;AAEnC,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,eAAe,CAAA;AAGvD;;;;GAIG;AACH,MAAM,WAAW,yBAAyB;IACxC,OAAO,EAAE,OAAO,CAAA;IAChB,QAAQ,EAAE,MAAM,CAAA;CACjB;AAED;;;;;;;;;;GAUG;AACH,eAAO,MAAM,mBAAmB,GAC9B,SAAS,kBAAkB,EAC3B,QAAQ,yBAAyB,EACjC,UAAU,iBAAiB,KAC1B,OAAO,CAAC,gBAAgB,GAAG,SAAS,CAiCtC,CAAA"}
|
|
@@ -0,0 +1,42 @@
|
|
|
1
|
+
import { getMarketRegistry, PerpsError, toAssetDisplay, } from '@lifi/perps-sdk';
|
|
2
|
+
import { PerpsErrorCode } from '@lifi/perps-types';
|
|
3
|
+
import { PROVIDER_KEY, SPOT_MARKET_ID } from '../constants.js';
|
|
4
|
+
import { fetchActiveAssetData } from './activeAssetData.js';
|
|
5
|
+
/**
|
|
6
|
+
* The amounts the account can still buy and sell on one perps market, read
|
|
7
|
+
* from `activeAssetData`. The amounts are denominated in the market's margin
|
|
8
|
+
* asset: USDC on the main dex, and the dex margin asset on a builder-deployed
|
|
9
|
+
* dex. Resolves `undefined` for a spot market, which carries no such state.
|
|
10
|
+
*
|
|
11
|
+
* @throws {PerpsError} On an unknown market, an `availableToTrade` payload
|
|
12
|
+
* that is not a buy/sell pair, Hyperliquid REST error, network, or parsing
|
|
13
|
+
* failures.
|
|
14
|
+
* @public
|
|
15
|
+
*/
|
|
16
|
+
export const getAvailableToTrade = async (context, params, options) => {
|
|
17
|
+
const registry = getMarketRegistry(context.client, PROVIDER_KEY);
|
|
18
|
+
await registry.sync();
|
|
19
|
+
const market = registry.require(params.marketId);
|
|
20
|
+
if (market.categoryId === SPOT_MARKET_ID) {
|
|
21
|
+
return undefined;
|
|
22
|
+
}
|
|
23
|
+
const data = await fetchActiveAssetData(context, params.address, params.marketId, options);
|
|
24
|
+
// The wire type states the pair; nothing verifies the response, so read it
|
|
25
|
+
// as a plain list to keep the length check in reach of the type checker.
|
|
26
|
+
const amounts = data.availableToTrade;
|
|
27
|
+
if (amounts.length !== 2) {
|
|
28
|
+
const err = new PerpsError(PerpsErrorCode.ValidationError, `Hyperliquid returned ${amounts.length} availableToTrade amounts for market '${params.marketId}'. Expected a buy amount and a sell amount.`);
|
|
29
|
+
err.tool = PROVIDER_KEY;
|
|
30
|
+
throw err;
|
|
31
|
+
}
|
|
32
|
+
// Hyperliquid orders the pair buy-side first, sell-side second.
|
|
33
|
+
const [buy, sell] = amounts;
|
|
34
|
+
return {
|
|
35
|
+
providerId: market.providerId,
|
|
36
|
+
marketId: market.id,
|
|
37
|
+
asset: toAssetDisplay(market.quoteAsset),
|
|
38
|
+
buy,
|
|
39
|
+
sell,
|
|
40
|
+
};
|
|
41
|
+
};
|
|
42
|
+
//# sourceMappingURL=getAvailableToTrade.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"getAvailableToTrade.js","sourceRoot":"","sources":["../../../src/services/getAvailableToTrade.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,iBAAiB,EACjB,UAAU,EAEV,cAAc,GACf,MAAM,iBAAiB,CAAA;AAExB,OAAO,EAAE,cAAc,EAAE,MAAM,mBAAmB,CAAA;AAElD,OAAO,EAAE,YAAY,EAAE,cAAc,EAAE,MAAM,iBAAiB,CAAA;AAE9D,OAAO,EAAE,oBAAoB,EAAE,MAAM,sBAAsB,CAAA;AAY3D;;;;;;;;;;GAUG;AACH,MAAM,CAAC,MAAM,mBAAmB,GAAG,KAAK,EACtC,OAA2B,EAC3B,MAAiC,EACjC,OAA2B,EACY,EAAE;IACzC,MAAM,QAAQ,GAAG,iBAAiB,CAAC,OAAO,CAAC,MAAM,EAAE,YAAY,CAAC,CAAA;IAChE,MAAM,QAAQ,CAAC,IAAI,EAAE,CAAA;IACrB,MAAM,MAAM,GAAG,QAAQ,CAAC,OAAO,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAA;IAChD,IAAI,MAAM,CAAC,UAAU,KAAK,cAAc,EAAE,CAAC;QACzC,OAAO,SAAS,CAAA;IAClB,CAAC;IACD,MAAM,IAAI,GAAG,MAAM,oBAAoB,CACrC,OAAO,EACP,MAAM,CAAC,OAAO,EACd,MAAM,CAAC,QAAQ,EACf,OAAO,CACR,CAAA;IACD,2EAA2E;IAC3E,yEAAyE;IACzE,MAAM,OAAO,GAAsB,IAAI,CAAC,gBAAgB,CAAA;IACxD,IAAI,OAAO,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;QACzB,MAAM,GAAG,GAAG,IAAI,UAAU,CACxB,cAAc,CAAC,eAAe,EAC9B,wBAAwB,OAAO,CAAC,MAAM,yCAAyC,MAAM,CAAC,QAAQ,6CAA6C,CAC5I,CAAA;QACD,GAAG,CAAC,IAAI,GAAG,YAAY,CAAA;QACvB,MAAM,GAAG,CAAA;IACX,CAAC;IACD,gEAAgE;IAChE,MAAM,CAAC,GAAG,EAAE,IAAI,CAAC,GAAG,OAAO,CAAA;IAC3B,OAAO;QACL,UAAU,EAAE,MAAM,CAAC,UAAU;QAC7B,QAAQ,EAAE,MAAM,CAAC,EAAE;QACnB,KAAK,EAAE,cAAc,CAAC,MAAM,CAAC,UAAU,CAAC;QACxC,GAAG;QACH,IAAI;KACL,CAAA;AACH,CAAC,CAAA"}
|
|
@@ -17,5 +17,5 @@ export interface GetMarketSettingsParams {
|
|
|
17
17
|
* @throws {PerpsError} On Hyperliquid REST error, network, or parsing failures.
|
|
18
18
|
* @public
|
|
19
19
|
*/
|
|
20
|
-
export declare const getMarketSettings: (
|
|
20
|
+
export declare const getMarketSettings: (context: HyperliquidContext, params: GetMarketSettingsParams, options?: SDKRequestOptions) => Promise<MarketSettings | undefined>;
|
|
21
21
|
//# sourceMappingURL=getMarketSettings.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"getMarketSettings.d.ts","sourceRoot":"","sources":["../../../src/services/getMarketSettings.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,iBAAiB,CAAA;AACxD,OAAO,EAEL,KAAK,SAAS,EACd,KAAK,cAAc,EACpB,MAAM,mBAAmB,CAAA;AAC1B,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,MAAM,CAAA;AAEnC,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,eAAe,CAAA;
|
|
1
|
+
{"version":3,"file":"getMarketSettings.d.ts","sourceRoot":"","sources":["../../../src/services/getMarketSettings.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,iBAAiB,CAAA;AACxD,OAAO,EAEL,KAAK,SAAS,EACd,KAAK,cAAc,EACpB,MAAM,mBAAmB,CAAA;AAC1B,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,MAAM,CAAA;AAEnC,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,eAAe,CAAA;AAGvD;;;;GAIG;AACH,MAAM,WAAW,uBAAuB;IACtC,OAAO,EAAE,OAAO,CAAA;IAChB,MAAM,EAAE,SAAS,CAAA;CAClB;AAED;;;;;GAKG;AACH,eAAO,MAAM,iBAAiB,GAC5B,SAAS,kBAAkB,EAC3B,QAAQ,uBAAuB,EAC/B,UAAU,iBAAiB,KAC1B,OAAO,CAAC,cAAc,GAAG,SAAS,CAoBpC,CAAA"}
|
|
@@ -1,22 +1,18 @@
|
|
|
1
1
|
import { MarginMode, } from '@lifi/perps-types';
|
|
2
2
|
import { SPOT_MARKET_ID } from '../constants.js';
|
|
3
|
-
import {
|
|
3
|
+
import { fetchActiveAssetData } from './activeAssetData.js';
|
|
4
4
|
/**
|
|
5
5
|
* The user's venue-stored margin mode and leverage for one perps market,
|
|
6
6
|
* read from `activeAssetData` — present whether or not a position is open.
|
|
7
7
|
* @throws {PerpsError} On Hyperliquid REST error, network, or parsing failures.
|
|
8
8
|
* @public
|
|
9
9
|
*/
|
|
10
|
-
export const getMarketSettings = async (
|
|
10
|
+
export const getMarketSettings = async (context, params, options) => {
|
|
11
11
|
// Spot markets carry no leverage state on the venue.
|
|
12
12
|
if (params.market.categoryId === SPOT_MARKET_ID) {
|
|
13
13
|
return undefined;
|
|
14
14
|
}
|
|
15
|
-
const data = await
|
|
16
|
-
type: 'activeAssetData',
|
|
17
|
-
user: params.address,
|
|
18
|
-
coin: params.market.marketId,
|
|
19
|
-
}, hlInfoOptions(client, options));
|
|
15
|
+
const data = await fetchActiveAssetData(context, params.address, params.market.marketId, options);
|
|
20
16
|
const leverage = data.leverage;
|
|
21
17
|
if (!leverage) {
|
|
22
18
|
return undefined;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"getMarketSettings.js","sourceRoot":"","sources":["../../../src/services/getMarketSettings.ts"],"names":[],"mappings":"AACA,OAAO,EACL,UAAU,GAGX,MAAM,mBAAmB,CAAA;AAE1B,OAAO,EAAE,cAAc,EAAE,MAAM,iBAAiB,CAAA;
|
|
1
|
+
{"version":3,"file":"getMarketSettings.js","sourceRoot":"","sources":["../../../src/services/getMarketSettings.ts"],"names":[],"mappings":"AACA,OAAO,EACL,UAAU,GAGX,MAAM,mBAAmB,CAAA;AAE1B,OAAO,EAAE,cAAc,EAAE,MAAM,iBAAiB,CAAA;AAEhD,OAAO,EAAE,oBAAoB,EAAE,MAAM,sBAAsB,CAAA;AAY3D;;;;;GAKG;AACH,MAAM,CAAC,MAAM,iBAAiB,GAAG,KAAK,EACpC,OAA2B,EAC3B,MAA+B,EAC/B,OAA2B,EACU,EAAE;IACvC,qDAAqD;IACrD,IAAI,MAAM,CAAC,MAAM,CAAC,UAAU,KAAK,cAAc,EAAE,CAAC;QAChD,OAAO,SAAS,CAAA;IAClB,CAAC;IACD,MAAM,IAAI,GAAG,MAAM,oBAAoB,CACrC,OAAO,EACP,MAAM,CAAC,OAAO,EACd,MAAM,CAAC,MAAM,CAAC,QAAQ,EACtB,OAAO,CACR,CAAA;IACD,MAAM,QAAQ,GAAG,IAAI,CAAC,QAAQ,CAAA;IAC9B,IAAI,CAAC,QAAQ,EAAE,CAAC;QACd,OAAO,SAAS,CAAA;IAClB,CAAC;IACD,OAAO;QACL,UAAU,EACR,QAAQ,CAAC,IAAI,KAAK,UAAU,CAAC,CAAC,CAAC,UAAU,CAAC,QAAQ,CAAC,CAAC,CAAC,UAAU,CAAC,KAAK;QACvE,QAAQ,EAAE,QAAQ,CAAC,KAAK;KACzB,CAAA;AACH,CAAC,CAAA"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"getOrder.d.ts","sourceRoot":"","sources":["../../../src/services/getOrder.ts"],"names":[],"mappings":"AAAA,OAAO,EAGL,KAAK,sBAAsB,EAC3B,KAAK,iBAAiB,EACvB,MAAM,iBAAiB,CAAA;AACxB,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,mBAAmB,CAAA;AAG9C,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,eAAe,CAAA;
|
|
1
|
+
{"version":3,"file":"getOrder.d.ts","sourceRoot":"","sources":["../../../src/services/getOrder.ts"],"names":[],"mappings":"AAAA,OAAO,EAGL,KAAK,sBAAsB,EAC3B,KAAK,iBAAiB,EACvB,MAAM,iBAAiB,CAAA;AACxB,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,mBAAmB,CAAA;AAG9C,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,eAAe,CAAA;AASvD;;;;GAIG;AACH,MAAM,MAAM,cAAc,GAAG,sBAAsB,CAAA;AAEnD;;;;;GAKG;AACH,eAAO,MAAM,QAAQ,GACnB,oBAAoB,kBAAkB,EACtC,QAAQ,cAAc,EACtB,UAAU,iBAAiB,KAC1B,OAAO,CAAC,KAAK,CAwDf,CAAA"}
|
|
@@ -1,6 +1,7 @@
|
|
|
1
1
|
import { getMarketRegistry, PerpsError, } from '@lifi/perps-sdk';
|
|
2
2
|
import { PerpsErrorCode } from '@lifi/perps-types';
|
|
3
3
|
import { PROVIDER_KEY } from '../constants.js';
|
|
4
|
+
import { withExplorerLinks } from '../utils/explorer.js';
|
|
4
5
|
import { assetIsOutcome, mapOrder } from '../utils/index.js';
|
|
5
6
|
import { hlInfoOptions, infoRequest } from '../utils/infoClient.js';
|
|
6
7
|
/**
|
|
@@ -18,9 +19,10 @@ export const getOrder = async ({ client, apiUrl }, params, options) => {
|
|
|
18
19
|
err.tool = PROVIDER_KEY;
|
|
19
20
|
throw err;
|
|
20
21
|
}
|
|
21
|
-
const
|
|
22
|
+
const infoOpts = hlInfoOptions(client, options);
|
|
23
|
+
const status = await infoRequest(apiUrl, { type: 'orderStatus', user: params.address, oid }, infoOpts);
|
|
22
24
|
if (status.status !== 'order') {
|
|
23
|
-
const history = await infoRequest(apiUrl, { type: 'twapHistory', user: params.address },
|
|
25
|
+
const history = await infoRequest(apiUrl, { type: 'twapHistory', user: params.address }, infoOpts);
|
|
24
26
|
const twap = history.find((entry) => String(entry.twapId) === params.id && !assetIsOutcome(entry.state.coin));
|
|
25
27
|
if (twap !== undefined) {
|
|
26
28
|
const registry = getMarketRegistry(client, PROVIDER_KEY);
|
|
@@ -35,6 +37,8 @@ export const getOrder = async ({ client, apiUrl }, params, options) => {
|
|
|
35
37
|
}
|
|
36
38
|
const registry = getMarketRegistry(client, PROVIDER_KEY);
|
|
37
39
|
await registry.sync();
|
|
38
|
-
|
|
40
|
+
const order = mapOrder(status.order, registry.require(status.order.order.coin));
|
|
41
|
+
const [linked] = await withExplorerLinks([order], params.address, infoOpts);
|
|
42
|
+
return linked;
|
|
39
43
|
};
|
|
40
44
|
//# sourceMappingURL=getOrder.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"getOrder.js","sourceRoot":"","sources":["../../../src/services/getOrder.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,iBAAiB,EACjB,UAAU,GAGX,MAAM,iBAAiB,CAAA;AAExB,OAAO,EAAE,cAAc,EAAE,MAAM,mBAAmB,CAAA;AAClD,OAAO,EAAE,YAAY,EAAE,MAAM,iBAAiB,CAAA;AAM9C,OAAO,EAAE,cAAc,EAAE,QAAQ,EAAE,MAAM,mBAAmB,CAAA;AAC5D,OAAO,EAAE,aAAa,EAAE,WAAW,EAAE,MAAM,wBAAwB,CAAA;AASnE;;;;;GAKG;AACH,MAAM,CAAC,MAAM,QAAQ,GAAG,KAAK,EAC3B,EAAE,MAAM,EAAE,MAAM,EAAsB,EACtC,MAAsB,EACtB,OAA2B,EACX,EAAE;IAClB,MAAM,UAAU,GAAG,qBAAqB,CAAC,IAAI,CAAC,MAAM,CAAC,EAAE,CAAC,CAAA;IACxD,MAAM,GAAG,GAAG,UAAU,CAAC,CAAC,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC,CAAC,MAAM,CAAC,MAAM,CAAC,EAAE,CAAC,CAAA;IACtD,IACE,CAAC,UAAU;QACX,CAAC,CAAC,UAAU,CAAC,IAAI,CAAC,MAAM,CAAC,EAAE,CAAC,IAAI,CAAC,MAAM,CAAC,aAAa,CAAC,GAAG,CAAC,CAAC,EAC3D,CAAC;QACD,MAAM,GAAG,GAAG,IAAI,UAAU,CACxB,cAAc,CAAC,eAAe,EAC9B,qBAAqB,MAAM,CAAC,EAAE,8CAA8C,CAC7E,CAAA;QACD,GAAG,CAAC,IAAI,GAAG,YAAY,CAAA;QACvB,MAAM,GAAG,CAAA;IACX,CAAC;IAED,MAAM,MAAM,GAAG,MAAM,WAAW,CAC9B,MAAM,EACN,EAAE,IAAI,EAAE,aAAa,EAAE,IAAI,EAAE,MAAM,CAAC,OAAO,EAAE,GAAG,EAAE,EAClD,
|
|
1
|
+
{"version":3,"file":"getOrder.js","sourceRoot":"","sources":["../../../src/services/getOrder.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"getOrders.d.ts","sourceRoot":"","sources":["../../../src/services/getOrders.ts"],"names":[],"mappings":"AAAA,OAAO,
|
|
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;AAUvD,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,CAoGxB,CAAA"}
|
|
@@ -1,10 +1,11 @@
|
|
|
1
|
-
import { ACTIVE_ORDER_STATUSES, createWarnOnce,
|
|
1
|
+
import { ACTIVE_ORDER_STATUSES, createWarnOnce, getMarketRegistry, isActiveOrderStatus, PerpsError, } from '@lifi/perps-sdk';
|
|
2
2
|
import { PROVIDER_KEY } from '../constants.js';
|
|
3
|
-
import {
|
|
4
|
-
import {
|
|
3
|
+
import { withExplorerLinks } from '../utils/explorer.js';
|
|
4
|
+
import { assetIsOutcome, mapOrder, perpsDexNames } from '../utils/index.js';
|
|
5
|
+
import { hlInfoOptions, infoRequest } from '../utils/infoClient.js';
|
|
5
6
|
const warn = createWarnOnce();
|
|
6
|
-
const warnOnce = (key
|
|
7
|
-
warn(key, `[${PROVIDER_KEY}] ${
|
|
7
|
+
const warnOnce = (key) => {
|
|
8
|
+
warn(key, `[${PROVIDER_KEY}] ${key}`);
|
|
8
9
|
};
|
|
9
10
|
/**
|
|
10
11
|
* Map one venue row, or drop it. An outcome market identity, a coin the backend
|
|
@@ -31,35 +32,6 @@ const mapRow = (coin, registry, map) => {
|
|
|
31
32
|
return undefined;
|
|
32
33
|
}
|
|
33
34
|
};
|
|
34
|
-
/**
|
|
35
|
-
* Set `explorerLink` on each row whose placement transaction the explorer
|
|
36
|
-
* window still holds. One explorer read serves the whole page, and it is
|
|
37
|
-
* skipped when no row carries a client order id to match on. The link is
|
|
38
|
-
* supplementary, so an explorer failure warns and leaves the rows unlinked
|
|
39
|
-
* instead of failing the order read.
|
|
40
|
-
*/
|
|
41
|
-
const withExplorerLinks = async (orders, address, options) => {
|
|
42
|
-
if (!orders.some((order) => order.clientOrderId !== undefined)) {
|
|
43
|
-
return orders;
|
|
44
|
-
}
|
|
45
|
-
let txs;
|
|
46
|
-
try {
|
|
47
|
-
txs = await fetchUserTransactions(address, options);
|
|
48
|
-
}
|
|
49
|
-
catch (error) {
|
|
50
|
-
if (!(error instanceof PerpsError)) {
|
|
51
|
-
throw error;
|
|
52
|
-
}
|
|
53
|
-
// The message stays out of the key: a transport failure names hosts and
|
|
54
|
-
// ports, so keying on it would let the dedupe set grow without bound.
|
|
55
|
-
warnOnce('explorer link lookup failed', error.message);
|
|
56
|
-
return orders;
|
|
57
|
-
}
|
|
58
|
-
return orders.map((order) => {
|
|
59
|
-
const explorerLink = explorerTxUrl(ExplorerChainId.HYPERLIQUID, matchOrderActionHash(txs, order));
|
|
60
|
-
return explorerLink === undefined ? order : { ...order, explorerLink };
|
|
61
|
-
});
|
|
62
|
-
};
|
|
63
35
|
/** Read regular, trigger, and TWAP orders from the requested lifecycle feeds. */
|
|
64
36
|
export const getOrders = async ({ client, apiUrl }, params, options) => {
|
|
65
37
|
const statuses = params.statuses ?? [...ACTIVE_ORDER_STATUSES];
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"getOrders.js","sourceRoot":"","sources":["../../../src/services/getOrders.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,qBAAqB,EACrB,cAAc,EACd,
|
|
1
|
+
{"version":3,"file":"getOrders.js","sourceRoot":"","sources":["../../../src/services/getOrders.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,24 @@
|
|
|
1
|
+
import { type ProviderGetWithdrawableBalancesParams, type ProviderWithdrawableBalance, type SDKRequestOptions } from '@lifi/perps-sdk';
|
|
2
|
+
import type { HyperliquidContext } from '../context.js';
|
|
3
|
+
/**
|
|
4
|
+
* Parameters for {@link getWithdrawableBalances}.
|
|
5
|
+
*
|
|
6
|
+
* @public
|
|
7
|
+
*/
|
|
8
|
+
export type GetWithdrawableBalancesParams = ProviderGetWithdrawableBalancesParams;
|
|
9
|
+
/**
|
|
10
|
+
* The `(asset, route)` pairs `params.address` can withdraw from Hyperliquid,
|
|
11
|
+
* read from the venue's own `withdrawable` and spot `total`/`hold` figures.
|
|
12
|
+
* Hyperliquid charges its flat withdrawal fee in USDC, so the backend's
|
|
13
|
+
* `withdrawalFeeUsd` is the fee in quote-asset units on every USDC row.
|
|
14
|
+
*
|
|
15
|
+
* Only the main perps dex is read: a withdrawal to L1 draws on that account,
|
|
16
|
+
* and a sub-dex balance reaches it through a transfer first.
|
|
17
|
+
*
|
|
18
|
+
* @throws {PerpsError} On Hyperliquid REST or backend `/providers` error,
|
|
19
|
+
* network, or parsing failures, and `SDKError` when the market registry
|
|
20
|
+
* carries no main perps market to name the quote asset.
|
|
21
|
+
* @public
|
|
22
|
+
*/
|
|
23
|
+
export declare const getWithdrawableBalances: ({ client, apiUrl }: HyperliquidContext, params: GetWithdrawableBalancesParams, options?: SDKRequestOptions) => Promise<ProviderWithdrawableBalance[]>;
|
|
24
|
+
//# sourceMappingURL=getWithdrawableBalances.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"getWithdrawableBalances.d.ts","sourceRoot":"","sources":["../../../src/services/getWithdrawableBalances.ts"],"names":[],"mappings":"AAAA,OAAO,EAIL,KAAK,qCAAqC,EAC1C,KAAK,2BAA2B,EAChC,KAAK,iBAAiB,EACvB,MAAM,iBAAiB,CAAA;AAGxB,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,eAAe,CAAA;AASvD;;;;GAIG;AACH,MAAM,MAAM,6BAA6B,GACvC,qCAAqC,CAAA;AAEvC;;;;;;;;;;;;;GAaG;AACH,eAAO,MAAM,uBAAuB,GAClC,oBAAoB,kBAAkB,EACtC,QAAQ,6BAA6B,EACrC,UAAU,iBAAiB,KAC1B,OAAO,CAAC,2BAA2B,EAAE,CAgDvC,CAAA"}
|
|
@@ -0,0 +1,39 @@
|
|
|
1
|
+
import { getMarketRegistry, getProviders, PerpsError, } from '@lifi/perps-sdk';
|
|
2
|
+
import { PerpsErrorCode } from '@lifi/perps-types';
|
|
3
|
+
import { MAIN_MARKET_ID, PROVIDER_KEY } from '../constants.js';
|
|
4
|
+
import { hlInfoOptions, infoRequest } from '../utils/infoClient.js';
|
|
5
|
+
import { hyperliquidWithdrawableBalances } from '../utils/withdrawableBalances.js';
|
|
6
|
+
/**
|
|
7
|
+
* The `(asset, route)` pairs `params.address` can withdraw from Hyperliquid,
|
|
8
|
+
* read from the venue's own `withdrawable` and spot `total`/`hold` figures.
|
|
9
|
+
* Hyperliquid charges its flat withdrawal fee in USDC, so the backend's
|
|
10
|
+
* `withdrawalFeeUsd` is the fee in quote-asset units on every USDC row.
|
|
11
|
+
*
|
|
12
|
+
* Only the main perps dex is read: a withdrawal to L1 draws on that account,
|
|
13
|
+
* and a sub-dex balance reaches it through a transfer first.
|
|
14
|
+
*
|
|
15
|
+
* @throws {PerpsError} On Hyperliquid REST or backend `/providers` error,
|
|
16
|
+
* network, or parsing failures, and `SDKError` when the market registry
|
|
17
|
+
* carries no main perps market to name the quote asset.
|
|
18
|
+
* @public
|
|
19
|
+
*/
|
|
20
|
+
export const getWithdrawableBalances = async ({ client, apiUrl }, params, options) => {
|
|
21
|
+
const registry = getMarketRegistry(client, PROVIDER_KEY);
|
|
22
|
+
const infoOpts = hlInfoOptions(client, options);
|
|
23
|
+
const [{ providers }, markets, abstraction, state, spotState] = await Promise.all([
|
|
24
|
+
getProviders(client, options),
|
|
25
|
+
registry.sync(),
|
|
26
|
+
infoRequest(apiUrl, { type: 'userAbstraction', user: params.address }, infoOpts),
|
|
27
|
+
infoRequest(apiUrl, { type: 'clearinghouseState', user: params.address }, infoOpts),
|
|
28
|
+
infoRequest(apiUrl, { type: 'spotClearinghouseState', user: params.address }, infoOpts),
|
|
29
|
+
]);
|
|
30
|
+
const quoteAsset = markets.find((market) => market.categoryId === MAIN_MARKET_ID)?.quoteAsset;
|
|
31
|
+
if (quoteAsset === undefined) {
|
|
32
|
+
const error = new PerpsError(PerpsErrorCode.SDKError, `Hyperliquid market registry carries no '${MAIN_MARKET_ID}' market to name the withdrawal quote asset`);
|
|
33
|
+
error.tool = PROVIDER_KEY;
|
|
34
|
+
throw error;
|
|
35
|
+
}
|
|
36
|
+
const feeUsd = providers.find((provider) => provider.key === PROVIDER_KEY)?.withdrawalFeeUsd;
|
|
37
|
+
return hyperliquidWithdrawableBalances(abstraction, state, spotState, quoteAsset.id, feeUsd === undefined ? undefined : String(feeUsd));
|
|
38
|
+
};
|
|
39
|
+
//# sourceMappingURL=getWithdrawableBalances.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"getWithdrawableBalances.js","sourceRoot":"","sources":["../../../src/services/getWithdrawableBalances.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,iBAAiB,EACjB,YAAY,EACZ,UAAU,GAIX,MAAM,iBAAiB,CAAA;AACxB,OAAO,EAAE,cAAc,EAAE,MAAM,mBAAmB,CAAA;AAClD,OAAO,EAAE,cAAc,EAAE,YAAY,EAAE,MAAM,iBAAiB,CAAA;AAO9D,OAAO,EAAE,aAAa,EAAE,WAAW,EAAE,MAAM,wBAAwB,CAAA;AACnE,OAAO,EAAE,+BAA+B,EAAE,MAAM,kCAAkC,CAAA;AAUlF;;;;;;;;;;;;;GAaG;AACH,MAAM,CAAC,MAAM,uBAAuB,GAAG,KAAK,EAC1C,EAAE,MAAM,EAAE,MAAM,EAAsB,EACtC,MAAqC,EACrC,OAA2B,EACa,EAAE;IAC1C,MAAM,QAAQ,GAAG,iBAAiB,CAAC,MAAM,EAAE,YAAY,CAAC,CAAA;IACxD,MAAM,QAAQ,GAAG,aAAa,CAAC,MAAM,EAAE,OAAO,CAAC,CAAA;IAE/C,MAAM,CAAC,EAAE,SAAS,EAAE,EAAE,OAAO,EAAE,WAAW,EAAE,KAAK,EAAE,SAAS,CAAC,GAC3D,MAAM,OAAO,CAAC,GAAG,CAAC;QAChB,YAAY,CAAC,MAAM,EAAE,OAAO,CAAC;QAC7B,QAAQ,CAAC,IAAI,EAAE;QACf,WAAW,CACT,MAAM,EACN,EAAE,IAAI,EAAE,iBAAiB,EAAE,IAAI,EAAE,MAAM,CAAC,OAAO,EAAE,EACjD,QAAQ,CACT;QACD,WAAW,CACT,MAAM,EACN,EAAE,IAAI,EAAE,oBAAoB,EAAE,IAAI,EAAE,MAAM,CAAC,OAAO,EAAE,EACpD,QAAQ,CACT;QACD,WAAW,CACT,MAAM,EACN,EAAE,IAAI,EAAE,wBAAwB,EAAE,IAAI,EAAE,MAAM,CAAC,OAAO,EAAE,EACxD,QAAQ,CACT;KACF,CAAC,CAAA;IAEJ,MAAM,UAAU,GAAG,OAAO,CAAC,IAAI,CAC7B,CAAC,MAAM,EAAE,EAAE,CAAC,MAAM,CAAC,UAAU,KAAK,cAAc,CACjD,EAAE,UAAU,CAAA;IACb,IAAI,UAAU,KAAK,SAAS,EAAE,CAAC;QAC7B,MAAM,KAAK,GAAG,IAAI,UAAU,CAC1B,cAAc,CAAC,QAAQ,EACvB,2CAA2C,cAAc,6CAA6C,CACvG,CAAA;QACD,KAAK,CAAC,IAAI,GAAG,YAAY,CAAA;QACzB,MAAM,KAAK,CAAA;IACb,CAAC;IAED,MAAM,MAAM,GAAG,SAAS,CAAC,IAAI,CAC3B,CAAC,QAAQ,EAAE,EAAE,CAAC,QAAQ,CAAC,GAAG,KAAK,YAAY,CAC5C,EAAE,gBAAgB,CAAA;IAEnB,OAAO,+BAA+B,CACpC,WAAW,EACX,KAAK,EACL,SAAS,EACT,UAAU,CAAC,EAAE,EACb,MAAM,KAAK,SAAS,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,MAAM,CAAC,MAAM,CAAC,CAClD,CAAA;AACH,CAAC,CAAA"}
|
|
@@ -47,6 +47,18 @@ export type HlPosition = {
|
|
|
47
47
|
export type HlAssetPosition = {
|
|
48
48
|
position: HlPosition;
|
|
49
49
|
};
|
|
50
|
+
/**
|
|
51
|
+
* Margin totals block of a Hyperliquid clearinghouse state. Monetary fields
|
|
52
|
+
* are decimal strings in the account's quote asset.
|
|
53
|
+
* @public
|
|
54
|
+
*/
|
|
55
|
+
export type HlMarginSummary = {
|
|
56
|
+
/** Total equity: locked margin and unrealized PnL included. */
|
|
57
|
+
accountValue: string;
|
|
58
|
+
totalNtlPos: string;
|
|
59
|
+
totalRawUsd: string;
|
|
60
|
+
totalMarginUsed: string;
|
|
61
|
+
};
|
|
50
62
|
/**
|
|
51
63
|
* Perpetual clearinghouse account state returned by Hyperliquid `/info`.
|
|
52
64
|
* `assetPositions` includes zero-size rows that callers may discard. Monetary
|
|
@@ -56,14 +68,10 @@ export type HlAssetPosition = {
|
|
|
56
68
|
*/
|
|
57
69
|
export type HlClearinghouseState = {
|
|
58
70
|
assetPositions: HlAssetPosition[];
|
|
59
|
-
marginSummary:
|
|
60
|
-
|
|
61
|
-
|
|
62
|
-
|
|
63
|
-
crossMarginSummary: {
|
|
64
|
-
accountValue: string;
|
|
65
|
-
totalMarginUsed: string;
|
|
66
|
-
};
|
|
71
|
+
marginSummary: HlMarginSummary;
|
|
72
|
+
crossMarginSummary: HlMarginSummary;
|
|
73
|
+
crossMaintenanceMarginUsed: string;
|
|
74
|
+
withdrawable: string;
|
|
67
75
|
};
|
|
68
76
|
/**
|
|
69
77
|
* One spot balance from Hyperliquid `spotClearinghouseState`.
|
|
@@ -84,6 +92,11 @@ export type HlSpotBalance = {
|
|
|
84
92
|
*/
|
|
85
93
|
export type HlSpotClearinghouseState = {
|
|
86
94
|
balances: HlSpotBalance[];
|
|
95
|
+
/**
|
|
96
|
+
* Venue buying power per spot token, as `[token index, amount]` pairs.
|
|
97
|
+
* The venue reports the amount after maintenance margin.
|
|
98
|
+
*/
|
|
99
|
+
tokenToAvailableAfterMaintenance: [number, string][];
|
|
87
100
|
};
|
|
88
101
|
/**
|
|
89
102
|
* User fee rates returned by Hyperliquid `userFees`.
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"account.d.ts","sourceRoot":"","sources":["../../../src/types/account.ts"],"names":[],"mappings":"AAEA;;;;;;;;GAQG;AACH,MAAM,MAAM,UAAU,GAAG;IACvB,0CAA0C;IAC1C,IAAI,EAAE,MAAM,CAAA;IACZ,oEAAoE;IACpE,GAAG,EAAE,MAAM,CAAA;IACX,+CAA+C;IAC/C,OAAO,EAAE,MAAM,CAAA;IACf,mDAAmD;IACnD,aAAa,EAAE,MAAM,CAAA;IACrB,4EAA4E;IAC5E,aAAa,EAAE,MAAM,CAAA;IACrB,2CAA2C;IAC3C,aAAa,EAAE,MAAM,CAAA;IACrB,kDAAkD;IAClD,UAAU,EAAE,MAAM,CAAA;IAClB,qDAAqD;IACrD,QAAQ,EAAE;QACR,IAAI,EAAE,MAAM,CAAA;QACZ,KAAK,EAAE,MAAM,CAAA;KACd,CAAA;IACD;;;;;OAKG;IACH,UAAU,EAAE;QACV,OAAO,EAAE,MAAM,CAAA;QACf,SAAS,EAAE,MAAM,CAAA;QACjB,WAAW,EAAE,MAAM,CAAA;KACpB,CAAA;CACF,CAAA;AAED;;;;GAIG;AACH,MAAM,MAAM,eAAe,GAAG;IAC5B,QAAQ,EAAE,UAAU,CAAA;CACrB,CAAA;AAED
|
|
1
|
+
{"version":3,"file":"account.d.ts","sourceRoot":"","sources":["../../../src/types/account.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"account.js","sourceRoot":"","sources":["../../../src/types/account.ts"],"names":[],"mappings":"AAAA,uDAAuD;
|
|
1
|
+
{"version":3,"file":"account.js","sourceRoot":"","sources":["../../../src/types/account.ts"],"names":[],"mappings":"AAAA,uDAAuD;AAwJvD;;;;;GAKG;AACH,MAAM,CAAC,MAAM,iBAAiB,GAAG;IAC/B,OAAO,EAAE,SAAS;IAClB,QAAQ,EAAE,UAAU;IACpB,eAAe,EAAE,gBAAgB;IACjC,gBAAgB,EAAE,iBAAiB;IACnC,eAAe,EAAE,gBAAgB;CACzB,CAAA"}
|