@pear-protocol/hyperliquid-sdk 0.1.10 → 0.1.12
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/hooks/useAllUserBalances.d.ts +2 -1
- package/dist/index.d.ts +4 -1
- package/dist/index.js +13 -3
- package/dist/store/userDataStore.d.ts +3 -1
- package/dist/types.d.ts +2 -0
- package/package.json +1 -1
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { AvailableToTrades, SpotBalances, CollateralToken } from '../types';
|
|
1
|
+
import { AvailableToTrades, SpotBalances, CollateralToken, UserAbstraction } from '../types';
|
|
2
2
|
export interface MarginRequiredPerCollateral {
|
|
3
3
|
collateral: CollateralToken;
|
|
4
4
|
marginRequired: number;
|
|
@@ -16,6 +16,7 @@ interface AllUserBalancesResult {
|
|
|
16
16
|
spotBalances: SpotBalances;
|
|
17
17
|
availableToTrades: AvailableToTrades;
|
|
18
18
|
isLoading: boolean;
|
|
19
|
+
abstractionMode: UserAbstraction | null;
|
|
19
20
|
getMarginRequired: (assetsLeverage: Record<string, number>, size: number) => MarginRequiredResult;
|
|
20
21
|
getMaxSize: (assetsLeverage: Record<string, number>) => number;
|
|
21
22
|
}
|
package/dist/index.d.ts
CHANGED
|
@@ -591,6 +591,7 @@ interface HLChannelDataMap {
|
|
|
591
591
|
allDexsAssetCtxs: AllDexsAssetCtxsData;
|
|
592
592
|
userFills: any;
|
|
593
593
|
}
|
|
594
|
+
type UserAbstraction = 'dexAbstraction' | 'disabled' | 'unifiedAccount';
|
|
594
595
|
interface WebData3UserState {
|
|
595
596
|
agentAddress?: string;
|
|
596
597
|
agentValidUntil?: number;
|
|
@@ -599,6 +600,7 @@ interface WebData3UserState {
|
|
|
599
600
|
isVault: boolean;
|
|
600
601
|
user: string;
|
|
601
602
|
dexAbstractionEnabled?: boolean;
|
|
603
|
+
abstraction: UserAbstraction;
|
|
602
604
|
}
|
|
603
605
|
interface WebData3AssetCtx {
|
|
604
606
|
funding: string;
|
|
@@ -1446,6 +1448,7 @@ interface AllUserBalancesResult {
|
|
|
1446
1448
|
spotBalances: SpotBalances;
|
|
1447
1449
|
availableToTrades: AvailableToTrades;
|
|
1448
1450
|
isLoading: boolean;
|
|
1451
|
+
abstractionMode: UserAbstraction | null;
|
|
1449
1452
|
getMarginRequired: (assetsLeverage: Record<string, number>, size: number) => MarginRequiredResult;
|
|
1450
1453
|
getMaxSize: (assetsLeverage: Record<string, number>) => number;
|
|
1451
1454
|
}
|
|
@@ -1743,4 +1746,4 @@ interface MarketDataState {
|
|
|
1743
1746
|
declare const useMarketData: zustand.UseBoundStore<zustand.StoreApi<MarketDataState>>;
|
|
1744
1747
|
|
|
1745
1748
|
export { ConflictDetector, MAX_ASSETS_PER_LEG, MINIMUM_ASSET_USD_VALUE, MaxAssetsPerLegError, MinimumPositionSizeError, PearHyperliquidProvider, ReadyState, adjustAdvancePosition, adjustOrder, adjustPosition, calculateMinimumPositionValue, calculateWeightedRatio, cancelOrder, cancelTwap, cancelTwapOrder, closeAllPositions, closePosition, computeBasketCandles, createCandleLookups, createPosition, executeSpotOrder, getCompleteTimestamps, getKalshiMarkets, getOrderDirection, getOrderLadderConfig, getOrderLeverage, getOrderReduceOnly, getOrderTpSlTriggerType, getOrderTrailingInfo, getOrderTriggerType, getOrderTriggerValue, getOrderTwapDuration, getOrderUsdValue, getPortfolio, isBtcDomOrder, mapCandleIntervalToTradingViewInterval, mapTradingViewIntervalToCandleInterval, markNotificationReadById, markNotificationsRead, toggleWatchlist, updateLeverage, updateRiskParameters, useAccountSummary, useAgentWallet, useAllUserBalances, useAuth, useBasketCandles, useHistoricalPriceData, useHistoricalPriceDataStore, useHyperliquidUserFills, useMarket, useMarketData, useMarketDataHook, useNotifications, useOpenOrders, useOrders, usePearHyperliquid, usePerformanceOverlays, usePortfolio, usePosition, useSpotOrder, useTokenSelectionMetadata, useTradeHistories, useTwap, useUserSelection, useWatchlist, validateMaxAssetsPerLeg, validateMinimumAssetSize, validatePositionSize };
|
|
1746
|
-
export type { AccountSummaryResponseDto, ActiveAssetData, ActiveAssetGroupItem, ActiveAssetsAllResponse, ActiveAssetsResponse, AddressState, AdjustAdvanceAssetInput, AdjustAdvanceItemInput, AdjustAdvanceResponseDto, AdjustExecutionType, AdjustOrderRequestInput, AdjustOrderResponseDto, AdjustPositionRequestInput, AdjustPositionResponseDto, AgentWalletDto, AgentWalletState, AgentWalletStatus, AllDexsAssetCtxsData, AllDexsClearinghouseStateData, AllPerpMetasItem, AllPerpMetasResponse, ApiErrorResponse, ApiResponse, AssetCtx, AssetInformationDetail, AssetMarketData, AssetPosition, AuthenticateRequest, AuthenticateResponse, AvailableToTrades, BalanceSummaryDto, BaseTriggerOrderNotificationParams, BtcDomTriggerParams, CancelOrderResponseDto, CancelTwapResponseDto, CandleChartData, CandleData, CandleInterval, CandleSnapshotRequest, ChunkFillDto, ClearinghouseState, CloseAllPositionsResponseDto, CloseAllPositionsResultDto, CloseExecutionType, ClosePositionRequestInput, ClosePositionResponseDto, CollateralToken, CreateAgentWalletResponseDto, CreatePositionRequestInput, CreatePositionResponseDto, CrossAssetPriceTriggerParams, CrossMarginSummaryDto, CumFundingDto, EIP712AuthDetails, ExecutionType, ExternalFillDto, ExternalLiquidationDto, ExtraAgent, GetAgentWalletResponseDto, GetEIP712MessageResponse, GetKalshiMarketsParams, HLChannel, HLChannelDataMap, HLWebSocketResponse, HistoricalRange, KalshiMarket, KalshiMarketsResponse, KalshiMveLeg, KalshiPriceRange, LadderConfigInput, LadderOrderParameters, LeverageInfo, LogoutRequest, LogoutResponse, MarginRequiredPerCollateral, MarginRequiredResult, MarginSummaryDto, MarginTableDef, MarginTablesEntry, MarginTier, MarketOrderParameters, NotificationCategory, NotificationDto, OpenLimitOrderDto, OpenPositionDto, OrderAssetDto, OrderDirection, OrderParameters, OrderStatus, OrderType, PairAssetDto, PairAssetInput, PerformanceOverlay, PerpDex, PerpDexsResponse, PerpMetaAsset, PlatformAccountSummaryResponseDto, PortfolioBucketDto, PortfolioInterval, PortfolioIntervalsDto, PortfolioOverallDto, PortfolioResponseDto, PositionAdjustmentType, PositionAssetDetailDto, PredictionMarketOutcomeTriggerParams, PriceRatioTriggerParams, PriceTriggerParams, PrivyAuthDetails, RawAssetDto, RawPositionDto, RealtimeBar, RealtimeBarsCallback, RefreshTokenRequest, RefreshTokenResponse, SpotBalance, SpotBalances, SpotOrderFilledStatus, SpotOrderHyperliquidData, SpotOrderHyperliquidResult, SpotOrderRequestInput, SpotOrderResponseDto, SpotState, SyncFillsRequestDto, SyncFillsResponseDto, ToggleWatchlistResponseDto, TokenConflict, TokenEntry, TokenHistoricalPriceData, TokenMetadata, TokenSelection, TokenSelectorConfig, TpSlOrderParameters, TpSlThreshold, TpSlThresholdInput, TpSlThresholdType, TpSlTriggerType, TradeHistoryAssetDataDto, TradeHistoryDataDto, TriggerOrderNotificationAsset, TriggerOrderNotificationParams, TriggerOrderNotificationType, TriggerOrderParameters, TriggerType, TwapChunkStatus, TwapChunkStatusDto, TwapMonitoringDto, TwapOrderOverallStatus, TwapOrderParameters, TwapSliceFillResponseItem, UniverseAsset, UpdateLeverageRequestInput, UpdateLeverageResponseDto, UpdateRiskParametersRequestInput, UpdateRiskParametersResponseDto, UseAuthOptions, UseBasketCandlesReturn, UseHistoricalPriceDataReturn, UseHyperliquidUserFillsOptions, UseHyperliquidUserFillsState, UseNotificationsResult, UsePerformanceOverlaysReturn, UsePortfolioResult, UseSpotOrderResult, UseTokenSelectionMetadataReturn, UserProfile, UserSelectionState, WatchlistAssetDto, WatchlistItemDto, WebData3AssetCtx, WebData3PerpDexState, WebData3Response, WebData3UserState, WebSocketAckResponse, WebSocketChannel, WebSocketConnectionState, WebSocketDataMessage, WebSocketMessage, WebSocketSubscribeMessage, WsAllMidsData };
|
|
1749
|
+
export type { AccountSummaryResponseDto, ActiveAssetData, ActiveAssetGroupItem, ActiveAssetsAllResponse, ActiveAssetsResponse, AddressState, AdjustAdvanceAssetInput, AdjustAdvanceItemInput, AdjustAdvanceResponseDto, AdjustExecutionType, AdjustOrderRequestInput, AdjustOrderResponseDto, AdjustPositionRequestInput, AdjustPositionResponseDto, AgentWalletDto, AgentWalletState, AgentWalletStatus, AllDexsAssetCtxsData, AllDexsClearinghouseStateData, AllPerpMetasItem, AllPerpMetasResponse, ApiErrorResponse, ApiResponse, AssetCtx, AssetInformationDetail, AssetMarketData, AssetPosition, AuthenticateRequest, AuthenticateResponse, AvailableToTrades, BalanceSummaryDto, BaseTriggerOrderNotificationParams, BtcDomTriggerParams, CancelOrderResponseDto, CancelTwapResponseDto, CandleChartData, CandleData, CandleInterval, CandleSnapshotRequest, ChunkFillDto, ClearinghouseState, CloseAllPositionsResponseDto, CloseAllPositionsResultDto, CloseExecutionType, ClosePositionRequestInput, ClosePositionResponseDto, CollateralToken, CreateAgentWalletResponseDto, CreatePositionRequestInput, CreatePositionResponseDto, CrossAssetPriceTriggerParams, CrossMarginSummaryDto, CumFundingDto, EIP712AuthDetails, ExecutionType, ExternalFillDto, ExternalLiquidationDto, ExtraAgent, GetAgentWalletResponseDto, GetEIP712MessageResponse, GetKalshiMarketsParams, HLChannel, HLChannelDataMap, HLWebSocketResponse, HistoricalRange, KalshiMarket, KalshiMarketsResponse, KalshiMveLeg, KalshiPriceRange, LadderConfigInput, LadderOrderParameters, LeverageInfo, LogoutRequest, LogoutResponse, MarginRequiredPerCollateral, MarginRequiredResult, MarginSummaryDto, MarginTableDef, MarginTablesEntry, MarginTier, MarketOrderParameters, NotificationCategory, NotificationDto, OpenLimitOrderDto, OpenPositionDto, OrderAssetDto, OrderDirection, OrderParameters, OrderStatus, OrderType, PairAssetDto, PairAssetInput, PerformanceOverlay, PerpDex, PerpDexsResponse, PerpMetaAsset, PlatformAccountSummaryResponseDto, PortfolioBucketDto, PortfolioInterval, PortfolioIntervalsDto, PortfolioOverallDto, PortfolioResponseDto, PositionAdjustmentType, PositionAssetDetailDto, PredictionMarketOutcomeTriggerParams, PriceRatioTriggerParams, PriceTriggerParams, PrivyAuthDetails, RawAssetDto, RawPositionDto, RealtimeBar, RealtimeBarsCallback, RefreshTokenRequest, RefreshTokenResponse, SpotBalance, SpotBalances, SpotOrderFilledStatus, SpotOrderHyperliquidData, SpotOrderHyperliquidResult, SpotOrderRequestInput, SpotOrderResponseDto, SpotState, SyncFillsRequestDto, SyncFillsResponseDto, ToggleWatchlistResponseDto, TokenConflict, TokenEntry, TokenHistoricalPriceData, TokenMetadata, TokenSelection, TokenSelectorConfig, TpSlOrderParameters, TpSlThreshold, TpSlThresholdInput, TpSlThresholdType, TpSlTriggerType, TradeHistoryAssetDataDto, TradeHistoryDataDto, TriggerOrderNotificationAsset, TriggerOrderNotificationParams, TriggerOrderNotificationType, TriggerOrderParameters, TriggerType, TwapChunkStatus, TwapChunkStatusDto, TwapMonitoringDto, TwapOrderOverallStatus, TwapOrderParameters, TwapSliceFillResponseItem, UniverseAsset, UpdateLeverageRequestInput, UpdateLeverageResponseDto, UpdateRiskParametersRequestInput, UpdateRiskParametersResponseDto, UseAuthOptions, UseBasketCandlesReturn, UseHistoricalPriceDataReturn, UseHyperliquidUserFillsOptions, UseHyperliquidUserFillsState, UseNotificationsResult, UsePerformanceOverlaysReturn, UsePortfolioResult, UseSpotOrderResult, UseTokenSelectionMetadataReturn, UserAbstraction, UserProfile, UserSelectionState, WatchlistAssetDto, WatchlistItemDto, WebData3AssetCtx, WebData3PerpDexState, WebData3Response, WebData3UserState, WebSocketAckResponse, WebSocketChannel, WebSocketConnectionState, WebSocketDataMessage, WebSocketMessage, WebSocketSubscribeMessage, WsAllMidsData };
|
package/dist/index.js
CHANGED
|
@@ -64,6 +64,8 @@ const useUserData = create((set) => ({
|
|
|
64
64
|
notifications: null,
|
|
65
65
|
userExtraAgents: null,
|
|
66
66
|
spotState: null,
|
|
67
|
+
userAbstractionMode: null,
|
|
68
|
+
setUserAbstractionMode: (value) => set({ userAbstractionMode: value }),
|
|
67
69
|
setAccessToken: (token) => set({ accessToken: token }),
|
|
68
70
|
setRefreshToken: (token) => set({ refreshToken: token }),
|
|
69
71
|
setIsAuthenticated: (value) => set({ isAuthenticated: value }),
|
|
@@ -887,7 +889,7 @@ const useUserSelection$1 = create((set, get) => ({
|
|
|
887
889
|
|
|
888
890
|
const useHyperliquidNativeWebSocket = ({ address, enabled = true, onUserFills, }) => {
|
|
889
891
|
const { setAllMids, setActiveAssetData, upsertActiveAssetData, setCandleData, deleteCandleSymbol, deleteActiveAssetData, addCandleData, setFinalAtOICaps, setAggregatedClearingHouseState, setRawClearinghouseStates, setAssetContextsByDex, } = useHyperliquidData();
|
|
890
|
-
const { setSpotState } = useUserData();
|
|
892
|
+
const { setSpotState, setUserAbstractionMode } = useUserData();
|
|
891
893
|
const { candleInterval } = useUserSelection$1();
|
|
892
894
|
const userSummary = useUserData((state) => state.accountSummary);
|
|
893
895
|
const longTokens = useUserSelection$1((s) => s.longTokens);
|
|
@@ -941,6 +943,7 @@ const useHyperliquidNativeWebSocket = ({ address, enabled = true, onUserFills, }
|
|
|
941
943
|
// finalAssetContexts now sourced from allDexsAssetCtxs channel
|
|
942
944
|
const finalAtOICaps = webData3.perpDexStates.flatMap((dex) => dex.perpsAtOpenInterestCap);
|
|
943
945
|
setFinalAtOICaps(finalAtOICaps);
|
|
946
|
+
setUserAbstractionMode(webData3.userState.abstraction || null);
|
|
944
947
|
break;
|
|
945
948
|
case 'allDexsAssetCtxs':
|
|
946
949
|
{
|
|
@@ -6910,7 +6913,9 @@ const calculatePositionAsset = (asset, currentPrice, totalInitialPositionSize, l
|
|
|
6910
6913
|
var _a;
|
|
6911
6914
|
const entryNotional = asset.entryPrice * asset.size;
|
|
6912
6915
|
const currentNotional = currentPrice * asset.size;
|
|
6913
|
-
const
|
|
6916
|
+
const effectiveLeverage = leverage || 1;
|
|
6917
|
+
const marginUsed = currentNotional / effectiveLeverage;
|
|
6918
|
+
const entryMarginUsed = entryNotional / effectiveLeverage;
|
|
6914
6919
|
const unrealizedPnl = isLong
|
|
6915
6920
|
? currentNotional - entryNotional
|
|
6916
6921
|
: entryNotional - currentNotional;
|
|
@@ -6920,6 +6925,7 @@ const calculatePositionAsset = (asset, currentPrice, totalInitialPositionSize, l
|
|
|
6920
6925
|
actualSize: asset.size,
|
|
6921
6926
|
leverage: leverage,
|
|
6922
6927
|
marginUsed: marginUsed,
|
|
6928
|
+
entryMarginUsed: entryMarginUsed,
|
|
6923
6929
|
positionValue: currentNotional,
|
|
6924
6930
|
unrealizedPnl: unrealizedPnl,
|
|
6925
6931
|
entryPositionValue: entryNotional,
|
|
@@ -6945,6 +6951,7 @@ const buildPositionValue = (rawPositions, clearinghouseState, getAssetByName) =>
|
|
|
6945
6951
|
takeProfit: position.takeProfit,
|
|
6946
6952
|
stopLoss: position.stopLoss,
|
|
6947
6953
|
};
|
|
6954
|
+
let entryMarginUsed = 0;
|
|
6948
6955
|
const totalInitialPositionSize = position.longAssets.reduce((acc, asset) => acc + asset.entryPrice * asset.size, 0) +
|
|
6949
6956
|
position.shortAssets.reduce((acc, asset) => acc + asset.entryPrice * asset.size, 0);
|
|
6950
6957
|
mappedPosition.longAssets = position.longAssets.map((longAsset) => {
|
|
@@ -6959,6 +6966,7 @@ const buildPositionValue = (rawPositions, clearinghouseState, getAssetByName) =>
|
|
|
6959
6966
|
mappedPosition.unrealizedPnl += mappedPositionAssets.unrealizedPnl;
|
|
6960
6967
|
mappedPosition.positionValue += mappedPositionAssets.positionValue;
|
|
6961
6968
|
mappedPosition.marginUsed += mappedPositionAssets.marginUsed;
|
|
6969
|
+
entryMarginUsed += mappedPositionAssets.entryMarginUsed;
|
|
6962
6970
|
mappedPosition.entryRatio *= Math.pow(longAsset.entryPrice, mappedPositionAssets.initialWeight);
|
|
6963
6971
|
mappedPosition.markRatio *= Math.pow(currentPrice, mappedPositionAssets.initialWeight);
|
|
6964
6972
|
return mappedPositionAssets;
|
|
@@ -6975,6 +6983,7 @@ const buildPositionValue = (rawPositions, clearinghouseState, getAssetByName) =>
|
|
|
6975
6983
|
mappedPosition.unrealizedPnl += mappedPositionAssets.unrealizedPnl;
|
|
6976
6984
|
mappedPosition.positionValue += mappedPositionAssets.positionValue;
|
|
6977
6985
|
mappedPosition.marginUsed += mappedPositionAssets.marginUsed;
|
|
6986
|
+
entryMarginUsed += mappedPositionAssets.entryMarginUsed;
|
|
6978
6987
|
mappedPosition.entryRatio *= Math.pow(shortAsset.entryPrice, -mappedPositionAssets.initialWeight);
|
|
6979
6988
|
mappedPosition.markRatio *= Math.pow(currentPrice, -mappedPositionAssets.initialWeight);
|
|
6980
6989
|
return mappedPositionAssets;
|
|
@@ -7012,7 +7021,7 @@ const buildPositionValue = (rawPositions, clearinghouseState, getAssetByName) =>
|
|
|
7012
7021
|
mappedPosition.markPriceRatio = shortMark;
|
|
7013
7022
|
}
|
|
7014
7023
|
mappedPosition.unrealizedPnlPercentage =
|
|
7015
|
-
mappedPosition.unrealizedPnl /
|
|
7024
|
+
entryMarginUsed > 0 ? mappedPosition.unrealizedPnl / entryMarginUsed : 0;
|
|
7016
7025
|
return mappedPosition;
|
|
7017
7026
|
});
|
|
7018
7027
|
};
|
|
@@ -7855,6 +7864,7 @@ const useAllUserBalances = () => {
|
|
|
7855
7864
|
availableToTrades,
|
|
7856
7865
|
]);
|
|
7857
7866
|
return {
|
|
7867
|
+
abstractionMode: useUserData((state) => state.userAbstractionMode),
|
|
7858
7868
|
spotBalances,
|
|
7859
7869
|
availableToTrades,
|
|
7860
7870
|
isLoading,
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { PlatformAccountSummaryResponseDto, OpenLimitOrderDto, RawPositionDto, TradeHistoryDataDto, TwapMonitoringDto, NotificationDto, ExtraAgent, SpotState } from "../types";
|
|
1
|
+
import { PlatformAccountSummaryResponseDto, OpenLimitOrderDto, RawPositionDto, TradeHistoryDataDto, TwapMonitoringDto, NotificationDto, ExtraAgent, SpotState, UserAbstraction } from "../types";
|
|
2
2
|
interface UserDataState {
|
|
3
3
|
accessToken: string | null;
|
|
4
4
|
refreshToken: string | null;
|
|
@@ -12,6 +12,7 @@ interface UserDataState {
|
|
|
12
12
|
notifications: NotificationDto[] | null;
|
|
13
13
|
userExtraAgents: ExtraAgent[] | null;
|
|
14
14
|
spotState: SpotState | null;
|
|
15
|
+
userAbstractionMode: UserAbstraction | null;
|
|
15
16
|
setAccessToken: (token: string | null) => void;
|
|
16
17
|
setRefreshToken: (token: string | null) => void;
|
|
17
18
|
setIsAuthenticated: (value: boolean) => void;
|
|
@@ -24,6 +25,7 @@ interface UserDataState {
|
|
|
24
25
|
setTwapDetails: (value: TwapMonitoringDto[] | null) => void;
|
|
25
26
|
setNotifications: (value: NotificationDto[] | null) => void;
|
|
26
27
|
setSpotState: (value: SpotState | null) => void;
|
|
28
|
+
setUserAbstractionMode: (value: UserAbstraction | null) => void;
|
|
27
29
|
clean: () => void;
|
|
28
30
|
}
|
|
29
31
|
export declare const useUserData: import("zustand").UseBoundStore<import("zustand").StoreApi<UserDataState>>;
|
package/dist/types.d.ts
CHANGED
|
@@ -563,6 +563,7 @@ export interface HLChannelDataMap {
|
|
|
563
563
|
allDexsAssetCtxs: AllDexsAssetCtxsData;
|
|
564
564
|
userFills: any;
|
|
565
565
|
}
|
|
566
|
+
export type UserAbstraction = 'dexAbstraction' | 'disabled' | 'unifiedAccount';
|
|
566
567
|
export interface WebData3UserState {
|
|
567
568
|
agentAddress?: string;
|
|
568
569
|
agentValidUntil?: number;
|
|
@@ -571,6 +572,7 @@ export interface WebData3UserState {
|
|
|
571
572
|
isVault: boolean;
|
|
572
573
|
user: string;
|
|
573
574
|
dexAbstractionEnabled?: boolean;
|
|
575
|
+
abstraction: UserAbstraction;
|
|
574
576
|
}
|
|
575
577
|
export interface WebData3AssetCtx {
|
|
576
578
|
funding: string;
|