@lifi/perps-sdk-provider-hyperliquid 14.0.0 → 16.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 +4 -0
- 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/getWithdrawableBalances.d.ts +5 -0
- package/dist/cjs/services/getWithdrawableBalances.d.ts.map +1 -0
- package/dist/cjs/services/getWithdrawableBalances.js +27 -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/index.d.ts +2 -0
- package/dist/cjs/utils/index.d.ts.map +1 -1
- package/dist/cjs/utils/index.js +6 -1
- package/dist/cjs/utils/index.js.map +1 -1
- package/dist/cjs/utils/mapActivity.d.ts.map +1 -1
- package/dist/cjs/utils/mapActivity.js +4 -12
- package/dist/cjs/utils/mapActivity.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/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 +35 -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 +4 -0
- 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/getWithdrawableBalances.d.ts +22 -0
- package/dist/esm/services/getWithdrawableBalances.d.ts.map +1 -0
- package/dist/esm/services/getWithdrawableBalances.js +35 -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/index.d.ts +2 -0
- package/dist/esm/utils/index.d.ts.map +1 -1
- package/dist/esm/utils/index.js +2 -0
- package/dist/esm/utils/index.js.map +1 -1
- package/dist/esm/utils/mapActivity.d.ts.map +1 -1
- package/dist/esm/utils/mapActivity.js +5 -13
- package/dist/esm/utils/mapActivity.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/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 +14 -0
- package/dist/esm/utils/withdrawableBalances.d.ts.map +1 -0
- package/dist/esm/utils/withdrawableBalances.js +41 -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/getWithdrawableBalances.d.ts +22 -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/index.d.ts +2 -0
- package/dist/types/utils/index.d.ts.map +1 -1
- package/dist/types/utils/mapActivity.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/venueTotals.d.ts +26 -0
- package/dist/types/utils/venueTotals.d.ts.map +1 -0
- package/dist/types/utils/withdrawableBalances.d.ts +14 -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 +26 -0
- 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/getWithdrawableBalances.ts +84 -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/index.ts +6 -0
- package/src/utils/mapActivity.ts +10 -13
- package/src/utils/mapPosition.ts +1 -5
- package/src/utils/spotCollateral.ts +4 -25
- package/src/utils/venueTotals.ts +48 -0
- package/src/utils/withdrawableBalances.ts +57 -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
|
@@ -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"}
|
|
@@ -0,0 +1,22 @@
|
|
|
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
|
+
*
|
|
13
|
+
* Only the main perps dex is read: a withdrawal to L1 draws on that account,
|
|
14
|
+
* and a sub-dex balance reaches it through a transfer first.
|
|
15
|
+
*
|
|
16
|
+
* @throws {PerpsError} On Hyperliquid REST error, network, or parsing
|
|
17
|
+
* failures, and `SDKError` when the market registry carries no main perps
|
|
18
|
+
* market to name the quote asset.
|
|
19
|
+
* @public
|
|
20
|
+
*/
|
|
21
|
+
export declare const getWithdrawableBalances: ({ client, apiUrl }: HyperliquidContext, params: GetWithdrawableBalancesParams, options?: SDKRequestOptions) => Promise<ProviderWithdrawableBalance[]>;
|
|
22
|
+
//# 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,EAGL,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;;;;;;;;;;;GAWG;AACH,eAAO,MAAM,uBAAuB,GAClC,oBAAoB,kBAAkB,EACtC,QAAQ,6BAA6B,EACrC,UAAU,iBAAiB,KAC1B,OAAO,CAAC,2BAA2B,EAAE,CAyCvC,CAAA"}
|
|
@@ -0,0 +1,35 @@
|
|
|
1
|
+
import { getMarketRegistry, 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
|
+
*
|
|
10
|
+
* Only the main perps dex is read: a withdrawal to L1 draws on that account,
|
|
11
|
+
* and a sub-dex balance reaches it through a transfer first.
|
|
12
|
+
*
|
|
13
|
+
* @throws {PerpsError} On Hyperliquid REST error, network, or parsing
|
|
14
|
+
* failures, and `SDKError` when the market registry carries no main perps
|
|
15
|
+
* market to name the quote asset.
|
|
16
|
+
* @public
|
|
17
|
+
*/
|
|
18
|
+
export const getWithdrawableBalances = async ({ client, apiUrl }, params, options) => {
|
|
19
|
+
const registry = getMarketRegistry(client, PROVIDER_KEY);
|
|
20
|
+
const infoOpts = hlInfoOptions(client, options);
|
|
21
|
+
const [markets, abstraction, state, spotState] = await Promise.all([
|
|
22
|
+
registry.sync(),
|
|
23
|
+
infoRequest(apiUrl, { type: 'userAbstraction', user: params.address }, infoOpts),
|
|
24
|
+
infoRequest(apiUrl, { type: 'clearinghouseState', user: params.address }, infoOpts),
|
|
25
|
+
infoRequest(apiUrl, { type: 'spotClearinghouseState', user: params.address }, infoOpts),
|
|
26
|
+
]);
|
|
27
|
+
const quoteAsset = markets.find((market) => market.categoryId === MAIN_MARKET_ID)?.quoteAsset;
|
|
28
|
+
if (quoteAsset === undefined) {
|
|
29
|
+
const error = new PerpsError(PerpsErrorCode.SDKError, `Hyperliquid market registry carries no '${MAIN_MARKET_ID}' market to name the withdrawal quote asset`);
|
|
30
|
+
error.tool = PROVIDER_KEY;
|
|
31
|
+
throw error;
|
|
32
|
+
}
|
|
33
|
+
return hyperliquidWithdrawableBalances(abstraction, state, spotState, quoteAsset.id);
|
|
34
|
+
};
|
|
35
|
+
//# 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,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;;;;;;;;;;;GAWG;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,OAAO,EAAE,WAAW,EAAE,KAAK,EAAE,SAAS,CAAC,GAAG,MAAM,OAAO,CAAC,GAAG,CAAC;QACjE,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;IAEF,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,OAAO,+BAA+B,CACpC,WAAW,EACX,KAAK,EACL,SAAS,EACT,UAAU,CAAC,EAAE,CACd,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"}
|
package/dist/esm/types/ws.d.ts
CHANGED
|
@@ -170,6 +170,13 @@ export type HlWsUserFillsData = {
|
|
|
170
170
|
user: string;
|
|
171
171
|
fills: HlUserFill[];
|
|
172
172
|
};
|
|
173
|
+
/**
|
|
174
|
+
* One sub-dex slice of an `allDexsClearinghouseState` frame. `marginSummary`
|
|
175
|
+
* is absent on a frame that reports positions only, so a reader must treat it
|
|
176
|
+
* as optional.
|
|
177
|
+
* @public
|
|
178
|
+
*/
|
|
179
|
+
export type HlWsDexClearinghouseState = Pick<HlClearinghouseState, 'assetPositions'> & Partial<Pick<HlClearinghouseState, 'marginSummary'>>;
|
|
173
180
|
/**
|
|
174
181
|
* Per-dex clearinghouse event for one user. Each tuple contains a wire DEX name
|
|
175
182
|
* and the perp positions/equity fields supplied by that DEX.
|
|
@@ -177,16 +184,15 @@ export type HlWsUserFillsData = {
|
|
|
177
184
|
*/
|
|
178
185
|
export type HlWsAllDexsClearinghouseStateData = {
|
|
179
186
|
user: string;
|
|
180
|
-
clearinghouseStates: [
|
|
181
|
-
string,
|
|
182
|
-
Pick<HlClearinghouseState, 'assetPositions' | 'marginSummary'>
|
|
183
|
-
][];
|
|
187
|
+
clearinghouseStates: [string, HlWsDexClearinghouseState][];
|
|
184
188
|
};
|
|
185
189
|
/** User spot clearinghouse event containing the current spot balances. @public */
|
|
186
190
|
export type HlWsSpotStateData = {
|
|
187
191
|
user: string;
|
|
188
192
|
spotState: {
|
|
189
193
|
balances: HlSpotBalance[];
|
|
194
|
+
/** Absent on some frames; the REST `spotClearinghouseState` read covers it. */
|
|
195
|
+
tokenToAvailableAfterMaintenance?: [number, string][];
|
|
190
196
|
};
|
|
191
197
|
};
|
|
192
198
|
export {};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ws.d.ts","sourceRoot":"","sources":["../../../src/types/ws.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,oBAAoB,EAAE,aAAa,EAAE,MAAM,cAAc,CAAA;AACvE,OAAO,KAAK,EAAE,QAAQ,EAAE,QAAQ,EAAE,MAAM,YAAY,CAAA;AACpD,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,WAAW,CAAA;AAE3C,KAAK,gBAAgB,GAAG,MAAM,GAAG,MAAM,CAAA;AAEvC,iFAAiF;AACjF,MAAM,WAAW,SAAS;IACxB,KAAK,EAAE;QACL,IAAI,EAAE,MAAM,CAAA;QACZ,IAAI,EAAE,MAAM,CAAA;QACZ,OAAO,EAAE,MAAM,CAAA;QACf,EAAE,EAAE,MAAM,CAAA;QACV,GAAG,EAAE,MAAM,CAAA;QACX,SAAS,EAAE,MAAM,CAAA;QACjB,MAAM,EAAE,MAAM,CAAA;QACd,KAAK,CAAC,EAAE,MAAM,CAAA;KACf,CAAA;IACD,MAAM,EAAE,MAAM,CAAA;IACd,eAAe,EAAE,MAAM,CAAA;CACxB;AAED;;;;;GAKG;AACH,MAAM,MAAM,gBAAgB,GAAG;IAC7B,IAAI,EAAE,MAAM,CAAA;IACZ,OAAO,EAAE,MAAM,CAAA;IACf,YAAY,EAAE,MAAM,CAAA;IACpB,SAAS,EAAE,MAAM,CAAA;IACjB,SAAS,EAAE,MAAM,CAAA;IACjB,MAAM,EAAE,MAAM,CAAA;IACd,KAAK,EAAE,MAAM,GAAG,IAAI,CAAA;IACpB,QAAQ,EAAE,MAAM,CAAA;CACjB,CAAA;AAED;;;;GAIG;AACH,MAAM,MAAM,uBAAuB,GAAG,OAAO,CAAC,gBAAgB,CAAC,CAAA;AAE/D;;;;GAIG;AACH,MAAM,MAAM,wBAAwB,GAAG;IACrC,SAAS,CAAC,EAAE,CAAC,MAAM,EAAE,gBAAgB,EAAE,CAAC,EAAE,CAAA;IAC1C,IAAI,CAAC,EAAE,CAAC,MAAM,EAAE,uBAAuB,EAAE,CAAC,EAAE,CAAA;CAC7C,CAAA;AAED;;;;;GAKG;AACH,MAAM,MAAM,WAAW,GAAG,CAAC,MAAM,EAAE,uBAAuB,EAAE,CAAC,EAAE,CAAA;AAE/D,qHAAqH;AACrH,MAAM,MAAM,WAAW,GAAG;IACxB,OAAO,EAAE,MAAM,CAAA;IACf,IAAI,EAAE,OAAO,CAAA;CACd,CAAA;AAED;;;;;GAKG;AACH,MAAM,MAAM,gBAAgB,GAAG;IAC7B,MAAM,CAAC,EAAE,MAAM,CAAA;IACf,KAAK,CAAC,EAAE,MAAM,GAAG,IAAI,CAAA;CACtB,CAAA;AAED;;;;;GAKG;AACH,MAAM,MAAM,gBAAgB,GAAG;IAC7B,SAAS,CAAC,EAAE,gBAAgB,CAAA;IAC5B,SAAS,CAAC,EAAE,gBAAgB,CAAA;IAC5B,MAAM,CAAC,EAAE,gBAAgB,CAAA;IACzB,KAAK,CAAC,EAAE,gBAAgB,GAAG,IAAI,CAAA;IAC/B,UAAU,CAAC,EAAE,gBAAgB,CAAA;IAC7B,iBAAiB,CAAC,EAAE,gBAAgB,CAAA;CACrC,CAAA;AAED,4EAA4E;AAC5E,MAAM,MAAM,sBAAsB,GAAG;IACnC,IAAI,EAAE,MAAM,CAAA;IACZ,GAAG,EAAE,OAAO,CAAC,MAAM,CAAC,MAAM,gBAAgB,EAAE,gBAAgB,GAAG,IAAI,CAAC,CAAC,CAAA;CACtE,CAAA;AAED,4EAA4E;AAC5E,MAAM,MAAM,0BAA0B,GAAG;IACvC,IAAI,EAAE,MAAM,CAAA;IACZ,GAAG,EAAE,gBAAgB,CAAA;CACtB,CAAA;AAED;;;;GAIG;AACH,MAAM,MAAM,WAAW,GAAG,MAAM,CAAC,MAAM,EAAE,gBAAgB,CAAC,CAAA;AAE1D,oFAAoF;AACpF,MAAM,MAAM,cAAc,GAAG,QAAQ,GAAG;IAAE,IAAI,EAAE,MAAM,CAAA;CAAE,CAAA;AAExD;;;;GAIG;AACH,MAAM,MAAM,UAAU,GAAG;IACvB,CAAC,CAAC,EAAE,QAAQ,GAAG;QAAE,IAAI,EAAE,MAAM,CAAA;KAAE,CAAA;IAC/B,CAAC,CAAC,EAAE,MAAM,CAAA;IACV,CAAC,CAAC,EAAE,oBAAoB,CAAA;CACzB,CAAA;AAED,iFAAiF;AACjF,MAAM,MAAM,qBAAqB,GAAG;IAClC,CAAC,EAAE,MAAM,CAAA;IACT,CAAC,EAAE,MAAM,CAAA;CACV,CAAA;AAED;;;;GAIG;AACH,MAAM,MAAM,oBAAoB,GAAG;IACjC,CAAC,EAAE,MAAM,CAAA;IACT,CAAC,EAAE,MAAM,CAAA;IACT,CAAC,EAAE,CAAC,qBAAqB,EAAE,EAAE,qBAAqB,EAAE,CAAC,CAAA;IACrD,CAAC,CAAC,EAAE;QACF,KAAK,CAAC,MAAM,GAAG,MAAM,GAAG;YAAE,CAAC,EAAE,MAAM,CAAA;SAAE,CAAC;QACtC,KAAK,CAAC,MAAM,GAAG,MAAM,GAAG;YAAE,CAAC,EAAE,MAAM,CAAA;SAAE,CAAC;KACvC,CAAA;CACF,CAAA;AAED;;;;GAIG;AACH,MAAM,MAAM,cAAc,GAAG,QAAQ,GAAG;IACtC,CAAC,EAAE,MAAM,CAAA;IACT,CAAC,EAAE,MAAM,CAAA;IACT,CAAC,EAAE,MAAM,CAAA;IACT,CAAC,EAAE,MAAM,CAAA;CACV,CAAA;AAED;;;;GAIG;AACH,MAAM,MAAM,SAAS,GAAG;IACtB,IAAI,EAAE,MAAM,CAAA;IACZ,IAAI,EAAE,MAAM,CAAA;IACZ,EAAE,EAAE,MAAM,CAAA;IACV,EAAE,EAAE,MAAM,CAAA;IACV,IAAI,EAAE,MAAM,CAAA;IACZ,GAAG,CAAC,EAAE,MAAM,CAAA;IACZ,IAAI,CAAC,EAAE,MAAM,CAAA;CACd,CAAA;AAED,8FAA8F;AAC9F,MAAM,MAAM,iBAAiB,GAAG;IAC9B,UAAU,EAAE,OAAO,CAAA;IACnB,IAAI,EAAE,MAAM,CAAA;IACZ,KAAK,EAAE,UAAU,EAAE,CAAA;CACpB,CAAA;AAED;;;;GAIG;AACH,MAAM,MAAM,iCAAiC,GAAG;IAC9C,IAAI,EAAE,MAAM,CAAA;IACZ,mBAAmB,EAAE
|
|
1
|
+
{"version":3,"file":"ws.d.ts","sourceRoot":"","sources":["../../../src/types/ws.ts"],"names":[],"mappings":"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"}
|
|
@@ -4,5 +4,5 @@ import { HlAbstractionMode } from '../types/account.js';
|
|
|
4
4
|
* portfolio-margin accounts do; every other mode keeps perps collateral
|
|
5
5
|
* per-dex, apart from the spot balances.
|
|
6
6
|
*/
|
|
7
|
-
export declare const isUnifiedAbstraction: (abstraction: HlAbstractionMode | null) => boolean;
|
|
7
|
+
export declare const isUnifiedAbstraction: (abstraction: HlAbstractionMode | string | null) => boolean;
|
|
8
8
|
//# sourceMappingURL=abstractionMode.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"abstractionMode.d.ts","sourceRoot":"","sources":["../../../src/utils/abstractionMode.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,iBAAiB,EAAE,MAAM,qBAAqB,CAAA;AAEvD;;;;GAIG;AACH,eAAO,MAAM,oBAAoB,GAC/B,aAAa,iBAAiB,GAAG,IAAI,
|
|
1
|
+
{"version":3,"file":"abstractionMode.d.ts","sourceRoot":"","sources":["../../../src/utils/abstractionMode.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,iBAAiB,EAAE,MAAM,qBAAqB,CAAA;AAEvD;;;;GAIG;AACH,eAAO,MAAM,oBAAoB,GAC/B,aAAa,iBAAiB,GAAG,MAAM,GAAG,IAAI,KAC7C,OAEiD,CAAA"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"abstractionMode.js","sourceRoot":"","sources":["../../../src/utils/abstractionMode.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,iBAAiB,EAAE,MAAM,qBAAqB,CAAA;AAEvD;;;;GAIG;AACH,MAAM,CAAC,MAAM,oBAAoB,GAAG,CAClC,
|
|
1
|
+
{"version":3,"file":"abstractionMode.js","sourceRoot":"","sources":["../../../src/utils/abstractionMode.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,iBAAiB,EAAE,MAAM,qBAAqB,CAAA;AAEvD;;;;GAIG;AACH,MAAM,CAAC,MAAM,oBAAoB,GAAG,CAClC,WAA8C,EACrC,EAAE,CACX,WAAW,KAAK,iBAAiB,CAAC,eAAe;IACjD,WAAW,KAAK,iBAAiB,CAAC,gBAAgB,CAAA"}
|
|
@@ -17,4 +17,6 @@ export { priceStepToAggregation } from './priceStepToAggregation.js';
|
|
|
17
17
|
export { spotAssetFromToken, spotBalance, spotPriceById, } from './spotBalance.js';
|
|
18
18
|
export { partitionSpotBalances, type SpotPartition } from './spotCollateral.js';
|
|
19
19
|
export { positionMarginConstraints } from './transferMargin.js';
|
|
20
|
+
export { type DexMarginSummary, perpsTotals, sumUnrealizedPnl, } from './venueTotals.js';
|
|
21
|
+
export { hyperliquidWithdrawableBalances } from './withdrawableBalances.js';
|
|
20
22
|
//# sourceMappingURL=index.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/utils/index.ts"],"names":[],"mappings":"AAIA,OAAO,EACL,cAAc,EACd,WAAW,EACX,gBAAgB,EAChB,gBAAgB,GACjB,MAAM,cAAc,CAAA;AACrB,OAAO,EACL,iBAAiB,EACjB,WAAW,EACX,gBAAgB,GACjB,MAAM,gBAAgB,CAAA;AACvB,OAAO,EACL,oBAAoB,EACpB,mBAAmB,GACpB,MAAM,0BAA0B,CAAA;AACjC,OAAO,EACL,qBAAqB,EACrB,iBAAiB,EACjB,oBAAoB,GACrB,MAAM,eAAe,CAAA;AACtB,YAAY,EAAE,kBAAkB,EAAE,MAAM,iBAAiB,CAAA;AACzD,OAAO,EAAE,aAAa,EAAE,WAAW,EAAE,MAAM,iBAAiB,CAAA;AAC5D,OAAO,EACL,yBAAyB,EACzB,8BAA8B,GAC/B,MAAM,kBAAkB,CAAA;AACzB,OAAO,EACL,kBAAkB,EAClB,cAAc,EACd,mBAAmB,GACpB,MAAM,kBAAkB,CAAA;AACzB,OAAO,EAAE,wBAAwB,EAAE,OAAO,EAAE,MAAM,cAAc,CAAA;AAChE,OAAO,EAAE,SAAS,EAAE,MAAM,gBAAgB,CAAA;AAC1C,OAAO,EAAE,gBAAgB,EAAE,MAAM,uBAAuB,CAAA;AACxD,OAAO,EACL,KAAK,WAAW,EAChB,QAAQ,EACR,cAAc,EACd,YAAY,GACb,MAAM,eAAe,CAAA;AACtB,OAAO,EAAE,mBAAmB,EAAE,WAAW,EAAE,MAAM,kBAAkB,CAAA;AACnE,OAAO,EAAE,SAAS,EAAE,aAAa,EAAE,MAAM,oBAAoB,CAAA;AAC7D,OAAO,EACL,gBAAgB,EAChB,eAAe,EACf,mBAAmB,GACpB,MAAM,sBAAsB,CAAA;AAC7B,OAAO,EAAE,sBAAsB,EAAE,MAAM,6BAA6B,CAAA;AACpE,OAAO,EACL,kBAAkB,EAClB,WAAW,EACX,aAAa,GACd,MAAM,kBAAkB,CAAA;AACzB,OAAO,EAAE,qBAAqB,EAAE,KAAK,aAAa,EAAE,MAAM,qBAAqB,CAAA;AAC/E,OAAO,EAAE,yBAAyB,EAAE,MAAM,qBAAqB,CAAA"}
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/utils/index.ts"],"names":[],"mappings":"AAIA,OAAO,EACL,cAAc,EACd,WAAW,EACX,gBAAgB,EAChB,gBAAgB,GACjB,MAAM,cAAc,CAAA;AACrB,OAAO,EACL,iBAAiB,EACjB,WAAW,EACX,gBAAgB,GACjB,MAAM,gBAAgB,CAAA;AACvB,OAAO,EACL,oBAAoB,EACpB,mBAAmB,GACpB,MAAM,0BAA0B,CAAA;AACjC,OAAO,EACL,qBAAqB,EACrB,iBAAiB,EACjB,oBAAoB,GACrB,MAAM,eAAe,CAAA;AACtB,YAAY,EAAE,kBAAkB,EAAE,MAAM,iBAAiB,CAAA;AACzD,OAAO,EAAE,aAAa,EAAE,WAAW,EAAE,MAAM,iBAAiB,CAAA;AAC5D,OAAO,EACL,yBAAyB,EACzB,8BAA8B,GAC/B,MAAM,kBAAkB,CAAA;AACzB,OAAO,EACL,kBAAkB,EAClB,cAAc,EACd,mBAAmB,GACpB,MAAM,kBAAkB,CAAA;AACzB,OAAO,EAAE,wBAAwB,EAAE,OAAO,EAAE,MAAM,cAAc,CAAA;AAChE,OAAO,EAAE,SAAS,EAAE,MAAM,gBAAgB,CAAA;AAC1C,OAAO,EAAE,gBAAgB,EAAE,MAAM,uBAAuB,CAAA;AACxD,OAAO,EACL,KAAK,WAAW,EAChB,QAAQ,EACR,cAAc,EACd,YAAY,GACb,MAAM,eAAe,CAAA;AACtB,OAAO,EAAE,mBAAmB,EAAE,WAAW,EAAE,MAAM,kBAAkB,CAAA;AACnE,OAAO,EAAE,SAAS,EAAE,aAAa,EAAE,MAAM,oBAAoB,CAAA;AAC7D,OAAO,EACL,gBAAgB,EAChB,eAAe,EACf,mBAAmB,GACpB,MAAM,sBAAsB,CAAA;AAC7B,OAAO,EAAE,sBAAsB,EAAE,MAAM,6BAA6B,CAAA;AACpE,OAAO,EACL,kBAAkB,EAClB,WAAW,EACX,aAAa,GACd,MAAM,kBAAkB,CAAA;AACzB,OAAO,EAAE,qBAAqB,EAAE,KAAK,aAAa,EAAE,MAAM,qBAAqB,CAAA;AAC/E,OAAO,EAAE,yBAAyB,EAAE,MAAM,qBAAqB,CAAA;AAC/D,OAAO,EACL,KAAK,gBAAgB,EACrB,WAAW,EACX,gBAAgB,GACjB,MAAM,kBAAkB,CAAA;AACzB,OAAO,EAAE,+BAA+B,EAAE,MAAM,2BAA2B,CAAA"}
|
package/dist/esm/utils/index.js
CHANGED
|
@@ -19,4 +19,6 @@ export { priceStepToAggregation } from './priceStepToAggregation.js';
|
|
|
19
19
|
export { spotAssetFromToken, spotBalance, spotPriceById, } from './spotBalance.js';
|
|
20
20
|
export { partitionSpotBalances } from './spotCollateral.js';
|
|
21
21
|
export { positionMarginConstraints } from './transferMargin.js';
|
|
22
|
+
export { perpsTotals, sumUnrealizedPnl, } from './venueTotals.js';
|
|
23
|
+
export { hyperliquidWithdrawableBalances } from './withdrawableBalances.js';
|
|
22
24
|
//# sourceMappingURL=index.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/utils/index.ts"],"names":[],"mappings":"AAAA,+EAA+E;AAC/E,4EAA4E;AAC5E,kDAAkD;AAElD,OAAO,EACL,cAAc,EACd,WAAW,EACX,gBAAgB,EAChB,gBAAgB,GACjB,MAAM,cAAc,CAAA;AACrB,OAAO,EACL,iBAAiB,EACjB,WAAW,EACX,gBAAgB,GACjB,MAAM,gBAAgB,CAAA;AACvB,OAAO,EACL,oBAAoB,EACpB,mBAAmB,GACpB,MAAM,0BAA0B,CAAA;AACjC,OAAO,EACL,qBAAqB,EACrB,iBAAiB,EACjB,oBAAoB,GACrB,MAAM,eAAe,CAAA;AAEtB,OAAO,EAAE,aAAa,EAAE,WAAW,EAAE,MAAM,iBAAiB,CAAA;AAC5D,OAAO,EACL,yBAAyB,EACzB,8BAA8B,GAC/B,MAAM,kBAAkB,CAAA;AACzB,OAAO,EACL,kBAAkB,EAClB,cAAc,EACd,mBAAmB,GACpB,MAAM,kBAAkB,CAAA;AACzB,OAAO,EAAE,wBAAwB,EAAE,OAAO,EAAE,MAAM,cAAc,CAAA;AAChE,OAAO,EAAE,SAAS,EAAE,MAAM,gBAAgB,CAAA;AAC1C,OAAO,EAAE,gBAAgB,EAAE,MAAM,uBAAuB,CAAA;AACxD,OAAO,EAEL,QAAQ,EACR,cAAc,EACd,YAAY,GACb,MAAM,eAAe,CAAA;AACtB,OAAO,EAAE,mBAAmB,EAAE,WAAW,EAAE,MAAM,kBAAkB,CAAA;AACnE,OAAO,EAAE,SAAS,EAAE,aAAa,EAAE,MAAM,oBAAoB,CAAA;AAC7D,OAAO,EACL,gBAAgB,EAChB,eAAe,EACf,mBAAmB,GACpB,MAAM,sBAAsB,CAAA;AAC7B,OAAO,EAAE,sBAAsB,EAAE,MAAM,6BAA6B,CAAA;AACpE,OAAO,EACL,kBAAkB,EAClB,WAAW,EACX,aAAa,GACd,MAAM,kBAAkB,CAAA;AACzB,OAAO,EAAE,qBAAqB,EAAsB,MAAM,qBAAqB,CAAA;AAC/E,OAAO,EAAE,yBAAyB,EAAE,MAAM,qBAAqB,CAAA"}
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/utils/index.ts"],"names":[],"mappings":"AAAA,+EAA+E;AAC/E,4EAA4E;AAC5E,kDAAkD;AAElD,OAAO,EACL,cAAc,EACd,WAAW,EACX,gBAAgB,EAChB,gBAAgB,GACjB,MAAM,cAAc,CAAA;AACrB,OAAO,EACL,iBAAiB,EACjB,WAAW,EACX,gBAAgB,GACjB,MAAM,gBAAgB,CAAA;AACvB,OAAO,EACL,oBAAoB,EACpB,mBAAmB,GACpB,MAAM,0BAA0B,CAAA;AACjC,OAAO,EACL,qBAAqB,EACrB,iBAAiB,EACjB,oBAAoB,GACrB,MAAM,eAAe,CAAA;AAEtB,OAAO,EAAE,aAAa,EAAE,WAAW,EAAE,MAAM,iBAAiB,CAAA;AAC5D,OAAO,EACL,yBAAyB,EACzB,8BAA8B,GAC/B,MAAM,kBAAkB,CAAA;AACzB,OAAO,EACL,kBAAkB,EAClB,cAAc,EACd,mBAAmB,GACpB,MAAM,kBAAkB,CAAA;AACzB,OAAO,EAAE,wBAAwB,EAAE,OAAO,EAAE,MAAM,cAAc,CAAA;AAChE,OAAO,EAAE,SAAS,EAAE,MAAM,gBAAgB,CAAA;AAC1C,OAAO,EAAE,gBAAgB,EAAE,MAAM,uBAAuB,CAAA;AACxD,OAAO,EAEL,QAAQ,EACR,cAAc,EACd,YAAY,GACb,MAAM,eAAe,CAAA;AACtB,OAAO,EAAE,mBAAmB,EAAE,WAAW,EAAE,MAAM,kBAAkB,CAAA;AACnE,OAAO,EAAE,SAAS,EAAE,aAAa,EAAE,MAAM,oBAAoB,CAAA;AAC7D,OAAO,EACL,gBAAgB,EAChB,eAAe,EACf,mBAAmB,GACpB,MAAM,sBAAsB,CAAA;AAC7B,OAAO,EAAE,sBAAsB,EAAE,MAAM,6BAA6B,CAAA;AACpE,OAAO,EACL,kBAAkB,EAClB,WAAW,EACX,aAAa,GACd,MAAM,kBAAkB,CAAA;AACzB,OAAO,EAAE,qBAAqB,EAAsB,MAAM,qBAAqB,CAAA;AAC/E,OAAO,EAAE,yBAAyB,EAAE,MAAM,qBAAqB,CAAA;AAC/D,OAAO,EAEL,WAAW,EACX,gBAAgB,GACjB,MAAM,kBAAkB,CAAA;AACzB,OAAO,EAAE,+BAA+B,EAAE,MAAM,2BAA2B,CAAA"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"mapActivity.d.ts","sourceRoot":"","sources":["../../../src/utils/mapActivity.ts"],"names":[],"mappings":"AAAA,OAAO,
|
|
1
|
+
{"version":3,"file":"mapActivity.d.ts","sourceRoot":"","sources":["../../../src/utils/mapActivity.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,KAAK,aAAa,EAInB,MAAM,iBAAiB,CAAA;AACxB,OAAO,KAAK,EACV,YAAY,EAIZ,eAAe,EACf,mBAAmB,EACnB,aAAa,EAGd,MAAM,mBAAmB,CAAA;AAG1B,OAAO,KAAK,EACV,eAAe,EACf,cAAc,EACd,UAAU,EACX,MAAM,mBAAmB,CAAA;AA8C1B;;;;GAIG;AACH,eAAO,MAAM,cAAc,GACzB,OAAO,cAAc,EACrB,aAAa,MAAM,EACnB,gBAAgB,MAAM,EACtB,eAAe,aAAa,EAC5B,eAAe,CAAC,IAAI,EAAE,MAAM,KAAK,aAAa,GAAG,SAAS,KACzD,YAAY,GAAG,IA+JjB,CAAA;AAED;;;;;;;;;;GAUG;AACH,eAAO,MAAM,kBAAkB,GAC7B,OAAO,eAAe,EACtB,aAAa,MAAM,EACnB,eAAe,CAAC,IAAI,EAAE,MAAM,KAAK,aAAa,GAAG,SAAS,KACzD,eAAe,GAAG,IAgBpB,CAAA;AAED;;;;;;;;GAQG;AACH,eAAO,MAAM,mBAAmB,GAC9B,OAAO,UAAU,EAAE,EACnB,aAAa,MAAM,EACnB,gBAAgB,MAAM,EACtB,eAAe,CAAC,IAAI,EAAE,MAAM,KAAK,aAAa,GAAG,SAAS,EAC1D,cAAc,WAAW,CAAC,MAAM,CAAC,KAChC,mBAAmB,EA4CrB,CAAA"}
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { PerpsError } from '@lifi/perps-sdk';
|
|
1
|
+
import { ExplorerChainId, explorerTxUrl, PerpsError, } from '@lifi/perps-sdk';
|
|
2
2
|
import { ActivityType, PerpsErrorCode } from '@lifi/perps-types';
|
|
3
3
|
import Big from 'big.js';
|
|
4
4
|
import { isCollateralTransferDelta, isDepositDelta, isLiquidationDelta, isSendAssetDelta, isSpotTransferDelta, isVaultTransferDelta, isWithdrawDelta, } from '../types/index.js';
|
|
@@ -89,9 +89,7 @@ export const mapLedgerEntry = (entry, providerKey, queriedAddress, assetRegistry
|
|
|
89
89
|
amount: isCollateralTransferDelta(delta) ? delta.usdc : delta.amount,
|
|
90
90
|
...(fees.length === 0 ? {} : { fees }),
|
|
91
91
|
meta,
|
|
92
|
-
explorerLink: entry.hash
|
|
93
|
-
? `https://app.hyperliquid.xyz/explorer/tx/${entry.hash}`
|
|
94
|
-
: undefined,
|
|
92
|
+
explorerLink: explorerTxUrl(ExplorerChainId.HYPERLIQUID, entry.hash),
|
|
95
93
|
};
|
|
96
94
|
}
|
|
97
95
|
if (isVaultTransferDelta(delta)) {
|
|
@@ -123,9 +121,7 @@ export const mapLedgerEntry = (entry, providerKey, queriedAddress, assetRegistry
|
|
|
123
121
|
closingCost: delta.closingCost,
|
|
124
122
|
basis: delta.basis,
|
|
125
123
|
},
|
|
126
|
-
explorerLink: entry.hash
|
|
127
|
-
? `https://app.hyperliquid.xyz/explorer/tx/${entry.hash}`
|
|
128
|
-
: undefined,
|
|
124
|
+
explorerLink: explorerTxUrl(ExplorerChainId.HYPERLIQUID, entry.hash),
|
|
129
125
|
};
|
|
130
126
|
}
|
|
131
127
|
if (isDepositDelta(delta)) {
|
|
@@ -136,9 +132,7 @@ export const mapLedgerEntry = (entry, providerKey, queriedAddress, assetRegistry
|
|
|
136
132
|
type: ActivityType.DEPOSIT,
|
|
137
133
|
asset: assetRegistry.require(HL_COLLATERAL_ASSET_ID),
|
|
138
134
|
amount: delta.usdc,
|
|
139
|
-
explorerLink: entry.hash
|
|
140
|
-
? `https://scan.li.fi/tx/${entry.hash}`
|
|
141
|
-
: undefined,
|
|
135
|
+
explorerLink: explorerTxUrl(ExplorerChainId.HYPERLIQUID, entry.hash),
|
|
142
136
|
};
|
|
143
137
|
}
|
|
144
138
|
if (isWithdrawDelta(delta)) {
|
|
@@ -150,9 +144,7 @@ export const mapLedgerEntry = (entry, providerKey, queriedAddress, assetRegistry
|
|
|
150
144
|
...(delta.fee === undefined
|
|
151
145
|
? {}
|
|
152
146
|
: { fee: { amount: delta.fee, asset: HL_COLLATERAL_SYMBOL } }),
|
|
153
|
-
explorerLink: entry.hash
|
|
154
|
-
? `https://scan.li.fi/tx/${entry.hash}`
|
|
155
|
-
: undefined,
|
|
147
|
+
explorerLink: explorerTxUrl(ExplorerChainId.HYPERLIQUID, entry.hash),
|
|
156
148
|
};
|
|
157
149
|
}
|
|
158
150
|
if (isLiquidationDelta(delta)) {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"mapActivity.js","sourceRoot":"","sources":["../../../src/utils/mapActivity.ts"],"names":[],"mappings":"AAAA,OAAO,
|
|
1
|
+
{"version":3,"file":"mapActivity.js","sourceRoot":"","sources":["../../../src/utils/mapActivity.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"mapPosition.d.ts","sourceRoot":"","sources":["../../../src/utils/mapPosition.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,kBAAkB,EAAE,QAAQ,EAAE,MAAM,mBAAmB,CAAA;AAGrE,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,mBAAmB,CAAA;AAExD;;;;;GAKG;AACH,eAAO,MAAM,mBAAmB,GAAI,IAAI,eAAe,KAAG,OAChB,CAAA;AAE1C;;;;;;;GAOG;AACH,eAAO,MAAM,WAAW,GACtB,IAAI,eAAe,EACnB,QAAQ,kBAAkB,KACzB,
|
|
1
|
+
{"version":3,"file":"mapPosition.d.ts","sourceRoot":"","sources":["../../../src/utils/mapPosition.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,kBAAkB,EAAE,QAAQ,EAAE,MAAM,mBAAmB,CAAA;AAGrE,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,mBAAmB,CAAA;AAExD;;;;;GAKG;AACH,eAAO,MAAM,mBAAmB,GAAI,IAAI,eAAe,KAAG,OAChB,CAAA;AAE1C;;;;;;;GAOG;AACH,eAAO,MAAM,WAAW,GACtB,IAAI,eAAe,EACnB,QAAQ,kBAAkB,KACzB,QAsBF,CAAA"}
|
|
@@ -21,9 +21,6 @@ export const mapPosition = (ap, market) => {
|
|
|
21
21
|
const positionValue = new Big(pos.positionValue).abs();
|
|
22
22
|
const leverage = new Big(pos.leverage.value);
|
|
23
23
|
const marginMode = pos.leverage.type === 'cross' ? MarginMode.CROSS : MarginMode.ISOLATED;
|
|
24
|
-
const marginUsed = marginMode === MarginMode.ISOLATED
|
|
25
|
-
? new Big(pos.marginUsed).minus(pos.unrealizedPnl).toFixed()
|
|
26
|
-
: pos.marginUsed;
|
|
27
24
|
return {
|
|
28
25
|
market,
|
|
29
26
|
side: szi.gte(0) ? PositionSide.LONG : PositionSide.SHORT,
|
|
@@ -34,7 +31,7 @@ export const mapPosition = (ap, market) => {
|
|
|
34
31
|
unrealizedPnl: pos.unrealizedPnl,
|
|
35
32
|
accruedFunding: new Big(pos.cumFunding.sinceOpen).neg().toFixed(),
|
|
36
33
|
leverage: ap.position.leverage.value,
|
|
37
|
-
marginUsed,
|
|
34
|
+
marginUsed: pos.marginUsed,
|
|
38
35
|
initialMarginRequirement: positionValue.div(leverage).toFixed(),
|
|
39
36
|
marginMode,
|
|
40
37
|
};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"mapPosition.js","sourceRoot":"","sources":["../../../src/utils/mapPosition.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,UAAU,EAAE,YAAY,EAAE,MAAM,mBAAmB,CAAA;AAC5D,OAAO,GAAG,MAAM,QAAQ,CAAA;AAGxB;;;;;GAKG;AACH,MAAM,CAAC,MAAM,mBAAmB,GAAG,CAAC,EAAmB,EAAW,EAAE,CAClE,MAAM,CAAC,UAAU,CAAC,EAAE,CAAC,QAAQ,CAAC,GAAG,CAAC,KAAK,CAAC,CAAA;AAE1C;;;;;;;GAOG;AACH,MAAM,CAAC,MAAM,WAAW,GAAG,CACzB,EAAmB,EACnB,MAA0B,EAChB,EAAE;IACZ,MAAM,GAAG,GAAG,EAAE,CAAC,QAAQ,CAAA;IACvB,MAAM,GAAG,GAAG,IAAI,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,CAAA;IAC5B,MAAM,aAAa,GAAG,IAAI,GAAG,CAAC,GAAG,CAAC,aAAa,CAAC,CAAC,GAAG,EAAE,CAAA;IACtD,MAAM,QAAQ,GAAG,IAAI,GAAG,CAAC,GAAG,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAA;IAC5C,MAAM,UAAU,GACd,GAAG,CAAC,QAAQ,CAAC,IAAI,KAAK,OAAO,CAAC,CAAC,CAAC,UAAU,CAAC,KAAK,CAAC,CAAC,CAAC,UAAU,CAAC,QAAQ,CAAA;
|
|
1
|
+
{"version":3,"file":"mapPosition.js","sourceRoot":"","sources":["../../../src/utils/mapPosition.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,UAAU,EAAE,YAAY,EAAE,MAAM,mBAAmB,CAAA;AAC5D,OAAO,GAAG,MAAM,QAAQ,CAAA;AAGxB;;;;;GAKG;AACH,MAAM,CAAC,MAAM,mBAAmB,GAAG,CAAC,EAAmB,EAAW,EAAE,CAClE,MAAM,CAAC,UAAU,CAAC,EAAE,CAAC,QAAQ,CAAC,GAAG,CAAC,KAAK,CAAC,CAAA;AAE1C;;;;;;;GAOG;AACH,MAAM,CAAC,MAAM,WAAW,GAAG,CACzB,EAAmB,EACnB,MAA0B,EAChB,EAAE;IACZ,MAAM,GAAG,GAAG,EAAE,CAAC,QAAQ,CAAA;IACvB,MAAM,GAAG,GAAG,IAAI,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,CAAA;IAC5B,MAAM,aAAa,GAAG,IAAI,GAAG,CAAC,GAAG,CAAC,aAAa,CAAC,CAAC,GAAG,EAAE,CAAA;IACtD,MAAM,QAAQ,GAAG,IAAI,GAAG,CAAC,GAAG,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAA;IAC5C,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,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,YAAY,CAAC,IAAI,CAAC,CAAC,CAAC,YAAY,CAAC,KAAK;QACzD,IAAI,EAAE,GAAG,CAAC,GAAG,EAAE,CAAC,OAAO,EAAE;QACzB,UAAU,EAAE,GAAG,CAAC,OAAO,IAAI,GAAG;QAC9B,SAAS,EAAE,GAAG,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,aAAa,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,EAAE,CAAC,CAAC,OAAO,EAAE;QACnE,gBAAgB,EAAE,GAAG,CAAC,aAAa,IAAI,GAAG;QAC1C,aAAa,EAAE,GAAG,CAAC,aAAa;QAChC,cAAc,EAAE,IAAI,GAAG,CAAC,GAAG,CAAC,UAAU,CAAC,SAAS,CAAC,CAAC,GAAG,EAAE,CAAC,OAAO,EAAE;QACjE,QAAQ,EAAE,EAAE,CAAC,QAAQ,CAAC,QAAQ,CAAC,KAAK;QACpC,UAAU,EAAE,GAAG,CAAC,UAAU;QAC1B,wBAAwB,EAAE,aAAa,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAC,OAAO,EAAE;QAC/D,UAAU;KACX,CAAA;AACH,CAAC,CAAA"}
|
|
@@ -9,10 +9,10 @@ export interface SpotPartition {
|
|
|
9
9
|
balances: Balance[];
|
|
10
10
|
}
|
|
11
11
|
/**
|
|
12
|
-
* Partition spot balances into collateral and ordinary holdings.
|
|
13
|
-
* are
|
|
14
|
-
*
|
|
12
|
+
* Partition spot balances into collateral and ordinary holdings. Category
|
|
13
|
+
* quote assets are collateral; every other token is an ordinary holding.
|
|
14
|
+
* Zero-unit rows are dropped from both lists.
|
|
15
15
|
* @public
|
|
16
16
|
*/
|
|
17
|
-
export declare const partitionSpotBalances: (spotBalances: readonly Balance[], quoteAssetIds: ReadonlySet<string
|
|
17
|
+
export declare const partitionSpotBalances: (spotBalances: readonly Balance[], quoteAssetIds: ReadonlySet<string>) => SpotPartition;
|
|
18
18
|
//# sourceMappingURL=spotCollateral.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"spotCollateral.d.ts","sourceRoot":"","sources":["../../../src/utils/spotCollateral.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,mBAAmB,CAAA;
|
|
1
|
+
{"version":3,"file":"spotCollateral.d.ts","sourceRoot":"","sources":["../../../src/utils/spotCollateral.ts"],"names":[],"mappings":"AAAA,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,aAcF,CAAA"}
|
|
@@ -1,23 +1,11 @@
|
|
|
1
1
|
import { toWireBig } from './decimal.js';
|
|
2
2
|
/**
|
|
3
|
-
*
|
|
4
|
-
*
|
|
5
|
-
*
|
|
6
|
-
* (USDC/USDT) are already full-value collateral via the category model, so
|
|
7
|
-
* they are not listed here.
|
|
8
|
-
* https://hyperliquid.gitbook.io/hyperliquid-docs/trading/portfolio-margin
|
|
9
|
-
*/
|
|
10
|
-
const PORTFOLIO_MARGIN_LTV = {
|
|
11
|
-
HYPE: 0.5,
|
|
12
|
-
UBTC: 0.5,
|
|
13
|
-
};
|
|
14
|
-
/**
|
|
15
|
-
* Partition spot balances into collateral and ordinary holdings. Quote assets
|
|
16
|
-
* are full-value collateral; portfolio-margin-supported assets retain their
|
|
17
|
-
* LTV as `collateralWeight`.
|
|
3
|
+
* Partition spot balances into collateral and ordinary holdings. Category
|
|
4
|
+
* quote assets are collateral; every other token is an ordinary holding.
|
|
5
|
+
* Zero-unit rows are dropped from both lists.
|
|
18
6
|
* @public
|
|
19
7
|
*/
|
|
20
|
-
export const partitionSpotBalances = (spotBalances, quoteAssetIds
|
|
8
|
+
export const partitionSpotBalances = (spotBalances, quoteAssetIds) => {
|
|
21
9
|
const collateralBalances = [];
|
|
22
10
|
const balances = [];
|
|
23
11
|
for (const balance of spotBalances) {
|
|
@@ -26,13 +14,6 @@ export const partitionSpotBalances = (spotBalances, quoteAssetIds, portfolioMarg
|
|
|
26
14
|
}
|
|
27
15
|
if (quoteAssetIds.has(balance.asset.id)) {
|
|
28
16
|
collateralBalances.push(balance);
|
|
29
|
-
continue;
|
|
30
|
-
}
|
|
31
|
-
const ltv = portfolioMargin
|
|
32
|
-
? PORTFOLIO_MARGIN_LTV[balance.asset.displaySymbol]
|
|
33
|
-
: undefined;
|
|
34
|
-
if (ltv !== undefined) {
|
|
35
|
-
collateralBalances.push({ ...balance, collateralWeight: ltv });
|
|
36
17
|
}
|
|
37
18
|
else {
|
|
38
19
|
balances.push(balance);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"spotCollateral.js","sourceRoot":"","sources":["../../../src/utils/spotCollateral.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,SAAS,EAAE,MAAM,cAAc,CAAA;
|
|
1
|
+
{"version":3,"file":"spotCollateral.js","sourceRoot":"","sources":["../../../src/utils/spotCollateral.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,SAAS,EAAE,MAAM,cAAc,CAAA;AAYxC;;;;;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,IAAI,CAAC,SAAS,CAAC,OAAO,CAAC,KAAK,EAAE,mBAAmB,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;YACzD,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"}
|
|
@@ -0,0 +1,26 @@
|
|
|
1
|
+
import type { HyperliquidMarginSummary, Position } from '@lifi/perps-types';
|
|
2
|
+
import Big from 'big.js';
|
|
3
|
+
/**
|
|
4
|
+
* One perps sub-dex entry {@link perpsTotals} reads. The REST response always
|
|
5
|
+
* carries `marginSummary`; a WebSocket frame may omit it.
|
|
6
|
+
* @public
|
|
7
|
+
*/
|
|
8
|
+
export interface DexMarginSummary {
|
|
9
|
+
marginSummary?: HyperliquidMarginSummary;
|
|
10
|
+
}
|
|
11
|
+
/**
|
|
12
|
+
* Sum the venue `marginSummary` totals over every perps sub-dex of an
|
|
13
|
+
* account. `accountValue` is total equity, so it already carries locked
|
|
14
|
+
* margin and unrealized PnL. An entry without a `marginSummary` adds nothing.
|
|
15
|
+
* @public
|
|
16
|
+
*/
|
|
17
|
+
export declare const perpsTotals: (dexStates: readonly DexMarginSummary[]) => {
|
|
18
|
+
accountValue: Big;
|
|
19
|
+
marginUsed: Big;
|
|
20
|
+
};
|
|
21
|
+
/**
|
|
22
|
+
* Sum the unrealized PnL of every position, in quote-asset units.
|
|
23
|
+
* @public
|
|
24
|
+
*/
|
|
25
|
+
export declare const sumUnrealizedPnl: (positions: readonly Position[]) => Big;
|
|
26
|
+
//# sourceMappingURL=venueTotals.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"venueTotals.d.ts","sourceRoot":"","sources":["../../../src/utils/venueTotals.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,wBAAwB,EAAE,QAAQ,EAAE,MAAM,mBAAmB,CAAA;AAC3E,OAAO,GAAG,MAAM,QAAQ,CAAA;AAGxB;;;;GAIG;AACH,MAAM,WAAW,gBAAgB;IAC/B,aAAa,CAAC,EAAE,wBAAwB,CAAA;CACzC;AAED;;;;;GAKG;AACH,eAAO,MAAM,WAAW,GACtB,WAAW,SAAS,gBAAgB,EAAE,KACrC;IAAE,YAAY,EAAE,GAAG,CAAC;IAAC,UAAU,EAAE,GAAG,CAAA;CAetC,CAAA;AAED;;;GAGG;AACH,eAAO,MAAM,gBAAgB,GAAI,WAAW,SAAS,QAAQ,EAAE,KAAG,GAK/D,CAAA"}
|