@pear-protocol/hyperliquid-sdk 0.0.43 → 0.0.44

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.
@@ -0,0 +1,2 @@
1
+ import type { ApiResponse, ToggleWatchlistResponseDto, WatchlistAssetDto } from '../types';
2
+ export declare function toggleWatchlist(baseUrl: string, accessToken: string, longAssets: WatchlistAssetDto[], shortAssets: WatchlistAssetDto[]): Promise<ApiResponse<ToggleWatchlistResponseDto>>;
@@ -14,3 +14,4 @@ export * from './useOrders';
14
14
  export * from './useTwap';
15
15
  export * from './useNotifications';
16
16
  export * from './useMarketData';
17
+ export * from './useWatchlist';
@@ -4,4 +4,5 @@ export declare const useActiveBaskets: () => ActiveAssetGroupItem[];
4
4
  export declare const useTopGainers: (limit?: number) => ActiveAssetGroupItem[];
5
5
  export declare const useTopLosers: (limit?: number) => ActiveAssetGroupItem[];
6
6
  export declare const useHighlightedBaskets: () => ActiveAssetGroupItem[];
7
+ export declare const useWatchlistBaskets: () => ActiveAssetGroupItem[];
7
8
  export declare const useFindBasket: (longs: string[], shorts: string[]) => ActiveAssetGroupItem | undefined;
@@ -0,0 +1,6 @@
1
+ import type { ApiResponse, ToggleWatchlistResponseDto, WatchlistAssetDto, ActiveAssetGroupItem } from '../types';
2
+ export declare function useWatchlist(): {
3
+ readonly watchlists: ActiveAssetGroupItem[] | null;
4
+ readonly isLoading: boolean;
5
+ readonly toggle: (longAssets: WatchlistAssetDto[], shortAssets: WatchlistAssetDto[]) => Promise<ApiResponse<ToggleWatchlistResponseDto>>;
6
+ };
package/dist/index.d.ts CHANGED
@@ -53,6 +53,18 @@ interface WebSocketDataMessage<T = unknown> {
53
53
  channel: WebSocketChannel;
54
54
  data: T;
55
55
  }
56
+ interface WatchlistAssetDto {
57
+ asset: string;
58
+ weight: number;
59
+ }
60
+ interface WatchlistItemDto {
61
+ id: string;
62
+ longAssets: WatchlistAssetDto[];
63
+ shortAssets: WatchlistAssetDto[];
64
+ }
65
+ interface ToggleWatchlistResponseDto {
66
+ items: WatchlistItemDto[];
67
+ }
56
68
  type NotificationCategory = 'TRADE_OPENED_OUTSIDE_PEAR' | 'TRADE_CLOSED_OUTSIDE_PEAR' | 'POSITION_LIQUIDATED' | 'LIMIT_ORDER_FILLED' | 'LIMIT_ORDER_FAILED' | 'TP_ORDER_FILLED' | 'TP_ORDER_FAILED' | 'SL_ORDER_FILLED' | 'SL_ORDER_FAILED';
57
69
  interface NotificationDto {
58
70
  id: string;
@@ -532,6 +544,7 @@ interface ActiveAssetsResponse {
532
544
  topGainers: ActiveAssetGroupItem[];
533
545
  topLosers: ActiveAssetGroupItem[];
534
546
  highlighted: ActiveAssetGroupItem[];
547
+ watchlist: ActiveAssetGroupItem[];
535
548
  }
536
549
  /**
537
550
  * Candle interval options
@@ -1011,8 +1024,15 @@ declare const useActiveBaskets: () => ActiveAssetGroupItem[];
1011
1024
  declare const useTopGainers: (limit?: number) => ActiveAssetGroupItem[];
1012
1025
  declare const useTopLosers: (limit?: number) => ActiveAssetGroupItem[];
1013
1026
  declare const useHighlightedBaskets: () => ActiveAssetGroupItem[];
1027
+ declare const useWatchlistBaskets: () => ActiveAssetGroupItem[];
1014
1028
  declare const useFindBasket: (longs: string[], shorts: string[]) => ActiveAssetGroupItem | undefined;
1015
1029
 
1030
+ declare function useWatchlist(): {
1031
+ readonly watchlists: ActiveAssetGroupItem[] | null;
1032
+ readonly isLoading: boolean;
1033
+ readonly toggle: (longAssets: WatchlistAssetDto[], shortAssets: WatchlistAssetDto[]) => Promise<ApiResponse<ToggleWatchlistResponseDto>>;
1034
+ };
1035
+
1016
1036
  interface UseHyperliquidWebSocketProps {
1017
1037
  wsUrl: string;
1018
1038
  address: string | null;
@@ -1047,6 +1067,8 @@ declare function markNotificationReadById(baseUrl: string, accessToken: string,
1047
1067
  updated: number;
1048
1068
  }>>;
1049
1069
 
1070
+ declare function toggleWatchlist(baseUrl: string, accessToken: string, longAssets: WatchlistAssetDto[], shortAssets: WatchlistAssetDto[]): Promise<ApiResponse<ToggleWatchlistResponseDto>>;
1071
+
1050
1072
  /**
1051
1073
  * Account summary calculation utility class
1052
1074
  */
@@ -1151,5 +1173,5 @@ declare function mapCandleIntervalToTradingViewInterval(interval: CandleInterval
1151
1173
 
1152
1174
  declare const useMarketData: any;
1153
1175
 
1154
- export { AccountSummaryCalculator, AuthStatus, ConflictDetector, PearHyperliquidProvider, TokenMetadataExtractor, adjustOrder, adjustPosition, calculateWeightedRatio, cancelOrder, cancelTwap, cancelTwapOrder, closeAllPositions, closePosition, computeBasketCandles, createCandleLookups, createPosition, getCompleteTimestamps, mapCandleIntervalToTradingViewInterval, mapTradingViewIntervalToCandleInterval, markNotificationReadById, markNotificationsRead, updateRiskParameters, useAccountSummary, useActiveBaskets, useAddress, useAgentWallet, useAuth, useAutoSyncFills, useBasketCandles, useFindBasket, useHighlightedBaskets, useHistoricalPriceData, useHistoricalPriceDataStore, useHyperliquidNativeWebSocket, useHyperliquidWebSocket, useMarketData, useMarketDataPayload, useNotifications, useOpenOrders, useOrders, usePearAgentWallet, usePearAuth, usePearHyperliquid, usePerformanceOverlays, usePosition, useTokenSelectionMetadata, useTopGainers, useTopLosers, useTradeHistories, useTwap, useUserSelection, useWebData };
1155
- export type { AccountSummaryResponseDto, ActiveAssetGroupItem, ActiveAssetsResponse, AdjustExecutionType, AdjustOrderRequestInput, AdjustOrderResponseDto, AdjustPositionRequestInput, AdjustPositionResponseDto, AgentWalletDto, AgentWalletState, ApiErrorResponse, ApiResponse, AssetCtx, AssetInformationDetail, AssetMarketData, AssetPosition, AutoSyncFillsOptions, AutoSyncFillsState, BalanceSummaryDto, CancelOrderResponseDto, CancelTwapResponseDto, CandleChartData, CandleData, CandleInterval, CandleSnapshotRequest, ClearinghouseState, CloseAllPositionsResponseDto, CloseAllPositionsResultDto, CloseExecutionType, ClosePositionRequestInput, ClosePositionResponseDto, CreatePositionRequestInput, CreatePositionResponseDto, CrossMarginSummaryDto, CumFundingDto, ExecutionType, HLWebSocketResponse, HistoricalRange, LadderConfigInput, MarginSummaryDto, NotificationCategory, NotificationDto, OpenLimitOrderDto, OpenPositionDto, OrderAssetDto, OrderStatus, PairAssetDto, PairAssetInput, PerformanceOverlay, PositionAdjustmentType, PositionAssetDetailDto, PositionAssetSummaryDto, PositionResponseStatus, RealtimeBar, RealtimeBarsCallback, TokenConflict, TokenHistoricalPriceData, TokenMetadata, TokenSelection, TpSlThresholdInput, TpSlThresholdType, TradeHistoryAssetDataDto, TradeHistoryDataDto, TwapChunkStatusDto, TwapMonitoringDto, UniverseAsset, UpdateRiskParametersRequestInput, UpdateRiskParametersResponseDto, UseAgentWalletOptions, UseAuthOptions, UseBasketCandlesReturn, UseHistoricalPriceDataReturn, UseNotificationsResult, UsePerformanceOverlaysReturn, UseTokenSelectionMetadataReturn, UserProfile, UserSelectionState, WebData2Response, WebSocketAckResponse, WebSocketChannel, WebSocketConnectionState, WebSocketDataMessage, WebSocketMessage, WebSocketSubscribeMessage, WsAllMidsData };
1176
+ export { AccountSummaryCalculator, AuthStatus, ConflictDetector, PearHyperliquidProvider, TokenMetadataExtractor, adjustOrder, adjustPosition, calculateWeightedRatio, cancelOrder, cancelTwap, cancelTwapOrder, closeAllPositions, closePosition, computeBasketCandles, createCandleLookups, createPosition, getCompleteTimestamps, mapCandleIntervalToTradingViewInterval, mapTradingViewIntervalToCandleInterval, markNotificationReadById, markNotificationsRead, toggleWatchlist, updateRiskParameters, useAccountSummary, useActiveBaskets, useAddress, useAgentWallet, useAuth, useAutoSyncFills, useBasketCandles, useFindBasket, useHighlightedBaskets, useHistoricalPriceData, useHistoricalPriceDataStore, useHyperliquidNativeWebSocket, useHyperliquidWebSocket, useMarketData, useMarketDataPayload, useNotifications, useOpenOrders, useOrders, usePearAgentWallet, usePearAuth, usePearHyperliquid, usePerformanceOverlays, usePosition, useTokenSelectionMetadata, useTopGainers, useTopLosers, useTradeHistories, useTwap, useUserSelection, useWatchlist, useWatchlistBaskets, useWebData };
1177
+ export type { AccountSummaryResponseDto, ActiveAssetGroupItem, ActiveAssetsResponse, AdjustExecutionType, AdjustOrderRequestInput, AdjustOrderResponseDto, AdjustPositionRequestInput, AdjustPositionResponseDto, AgentWalletDto, AgentWalletState, ApiErrorResponse, ApiResponse, AssetCtx, AssetInformationDetail, AssetMarketData, AssetPosition, AutoSyncFillsOptions, AutoSyncFillsState, BalanceSummaryDto, CancelOrderResponseDto, CancelTwapResponseDto, CandleChartData, CandleData, CandleInterval, CandleSnapshotRequest, ClearinghouseState, CloseAllPositionsResponseDto, CloseAllPositionsResultDto, CloseExecutionType, ClosePositionRequestInput, ClosePositionResponseDto, CreatePositionRequestInput, CreatePositionResponseDto, CrossMarginSummaryDto, CumFundingDto, ExecutionType, HLWebSocketResponse, HistoricalRange, LadderConfigInput, MarginSummaryDto, NotificationCategory, NotificationDto, OpenLimitOrderDto, OpenPositionDto, OrderAssetDto, OrderStatus, PairAssetDto, PairAssetInput, PerformanceOverlay, PositionAdjustmentType, PositionAssetDetailDto, PositionAssetSummaryDto, PositionResponseStatus, RealtimeBar, RealtimeBarsCallback, ToggleWatchlistResponseDto, TokenConflict, TokenHistoricalPriceData, TokenMetadata, TokenSelection, TpSlThresholdInput, TpSlThresholdType, TradeHistoryAssetDataDto, TradeHistoryDataDto, TwapChunkStatusDto, TwapMonitoringDto, UniverseAsset, UpdateRiskParametersRequestInput, UpdateRiskParametersResponseDto, UseAgentWalletOptions, UseAuthOptions, UseBasketCandlesReturn, UseHistoricalPriceDataReturn, UseNotificationsResult, UsePerformanceOverlaysReturn, UseTokenSelectionMetadataReturn, UserProfile, UserSelectionState, WatchlistItemDto, WebData2Response, WebSocketAckResponse, WebSocketChannel, WebSocketConnectionState, WebSocketDataMessage, WebSocketMessage, WebSocketSubscribeMessage, WsAllMidsData };
package/dist/index.js CHANGED
@@ -2459,7 +2459,7 @@ const useMarketData = create((set) => ({
2459
2459
 
2460
2460
  const useHyperliquidWebSocket = ({ wsUrl, address }) => {
2461
2461
  const { setTradeHistories, setRawOpenPositions, setOpenOrders, setAccountSummary, setTwapDetails, setNotifications, clean, } = useUserData();
2462
- const { setMarketData, clean: cleanMarketData } = useMarketData();
2462
+ const { setMarketData } = useMarketData();
2463
2463
  const [lastError, setLastError] = useState(null);
2464
2464
  const [lastSubscribedAddress, setLastSubscribedAddress] = useState(null);
2465
2465
  // WebSocket connection
@@ -8771,6 +8771,12 @@ const useHighlightedBaskets = () => {
8771
8771
  const data = useMarketDataPayload();
8772
8772
  return (_a = data === null || data === void 0 ? void 0 : data.highlighted) !== null && _a !== void 0 ? _a : [];
8773
8773
  };
8774
+ // Watchlist baskets (from market-data payload when subscribed with address)
8775
+ const useWatchlistBaskets = () => {
8776
+ var _a;
8777
+ const data = useMarketDataPayload();
8778
+ return (_a = data === null || data === void 0 ? void 0 : data.watchlist) !== null && _a !== void 0 ? _a : [];
8779
+ };
8774
8780
  // Find a basket by its exact asset composition (order-insensitive)
8775
8781
  const useFindBasket = (longs, shorts) => {
8776
8782
  const data = useMarketDataPayload();
@@ -8792,6 +8798,35 @@ const useFindBasket = (longs, shorts) => {
8792
8798
  }, [data, longs, shorts]);
8793
8799
  };
8794
8800
 
8801
+ async function toggleWatchlist(baseUrl, accessToken, longAssets, shortAssets) {
8802
+ const url = joinUrl(baseUrl, '/watchlist');
8803
+ try {
8804
+ const response = await axios$1.post(url, { longAssets, shortAssets }, { headers: { 'Content-Type': 'application/json', 'Authorization': `Bearer ${accessToken}` } });
8805
+ return { data: response.data, status: response.status, headers: response.headers };
8806
+ }
8807
+ catch (error) {
8808
+ throw toApiError(error);
8809
+ }
8810
+ }
8811
+
8812
+ function useWatchlist() {
8813
+ const context = useContext(PearHyperliquidContext);
8814
+ if (!context)
8815
+ throw new Error('useWatchlist must be used within a PearHyperliquidProvider');
8816
+ const { apiBaseUrl, accessToken, isConnected } = context;
8817
+ const marketData = useMarketDataPayload();
8818
+ const isLoading = useMemo(() => !marketData && isConnected, [marketData, isConnected]);
8819
+ const toggle = async (longAssets, shortAssets) => {
8820
+ if (!accessToken)
8821
+ throw new Error('Not authenticated');
8822
+ const resp = await toggleWatchlist(apiBaseUrl, accessToken, longAssets, shortAssets);
8823
+ // Server will push updated market-data over WS; nothing to set here
8824
+ return resp;
8825
+ };
8826
+ const watchlists = marketData === null || marketData === void 0 ? void 0 : marketData.watchlist;
8827
+ return { watchlists: watchlists !== null && watchlists !== void 0 ? watchlists : null, isLoading, toggle };
8828
+ }
8829
+
8795
8830
  const PearHyperliquidContext = createContext(undefined);
8796
8831
  /**
8797
8832
  * React Provider for PearHyperliquidClient
@@ -9090,4 +9125,4 @@ function mapCandleIntervalToTradingViewInterval(interval) {
9090
9125
  }
9091
9126
  }
9092
9127
 
9093
- export { AccountSummaryCalculator, AuthStatus, ConflictDetector, PearHyperliquidProvider, TokenMetadataExtractor, adjustOrder, adjustPosition, calculateWeightedRatio, cancelOrder, cancelTwap, cancelTwapOrder, closeAllPositions, closePosition, computeBasketCandles, createCandleLookups, createPosition, getCompleteTimestamps, mapCandleIntervalToTradingViewInterval, mapTradingViewIntervalToCandleInterval, markNotificationReadById, markNotificationsRead, updateRiskParameters, useAccountSummary, useActiveBaskets, useAddress, useAgentWallet, useAuth, useAutoSyncFills, useBasketCandles, useFindBasket, useHighlightedBaskets, useHistoricalPriceData, useHistoricalPriceDataStore, useHyperliquidNativeWebSocket, useHyperliquidWebSocket, useMarketData, useMarketDataPayload, useNotifications, useOpenOrders, useOrders, usePearAgentWallet, usePearAuth, usePearHyperliquid, usePerformanceOverlays, usePosition, useTokenSelectionMetadata, useTopGainers, useTopLosers, useTradeHistories, useTwap, useUserSelection, useWebData };
9128
+ export { AccountSummaryCalculator, AuthStatus, ConflictDetector, PearHyperliquidProvider, TokenMetadataExtractor, adjustOrder, adjustPosition, calculateWeightedRatio, cancelOrder, cancelTwap, cancelTwapOrder, closeAllPositions, closePosition, computeBasketCandles, createCandleLookups, createPosition, getCompleteTimestamps, mapCandleIntervalToTradingViewInterval, mapTradingViewIntervalToCandleInterval, markNotificationReadById, markNotificationsRead, toggleWatchlist, updateRiskParameters, useAccountSummary, useActiveBaskets, useAddress, useAgentWallet, useAuth, useAutoSyncFills, useBasketCandles, useFindBasket, useHighlightedBaskets, useHistoricalPriceData, useHistoricalPriceDataStore, useHyperliquidNativeWebSocket, useHyperliquidWebSocket, useMarketData, useMarketDataPayload, useNotifications, useOpenOrders, useOrders, usePearAgentWallet, usePearAuth, usePearHyperliquid, usePerformanceOverlays, usePosition, useTokenSelectionMetadata, useTopGainers, useTopLosers, useTradeHistories, useTwap, useUserSelection, useWatchlist, useWatchlistBaskets, useWebData };
package/dist/types.d.ts CHANGED
@@ -74,6 +74,18 @@ export interface WebSocketDataMessage<T = unknown> {
74
74
  channel: WebSocketChannel;
75
75
  data: T;
76
76
  }
77
+ export interface WatchlistAssetDto {
78
+ asset: string;
79
+ weight: number;
80
+ }
81
+ export interface WatchlistItemDto {
82
+ id: string;
83
+ longAssets: WatchlistAssetDto[];
84
+ shortAssets: WatchlistAssetDto[];
85
+ }
86
+ export interface ToggleWatchlistResponseDto {
87
+ items: WatchlistItemDto[];
88
+ }
77
89
  export type NotificationCategory = 'TRADE_OPENED_OUTSIDE_PEAR' | 'TRADE_CLOSED_OUTSIDE_PEAR' | 'POSITION_LIQUIDATED' | 'LIMIT_ORDER_FILLED' | 'LIMIT_ORDER_FAILED' | 'TP_ORDER_FILLED' | 'TP_ORDER_FAILED' | 'SL_ORDER_FILLED' | 'SL_ORDER_FAILED';
78
90
  export interface NotificationDto {
79
91
  id: string;
@@ -617,6 +629,7 @@ export interface ActiveAssetsResponse {
617
629
  topGainers: ActiveAssetGroupItem[];
618
630
  topLosers: ActiveAssetGroupItem[];
619
631
  highlighted: ActiveAssetGroupItem[];
632
+ watchlist: ActiveAssetGroupItem[];
620
633
  }
621
634
  /**
622
635
  * Candle interval options
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@pear-protocol/hyperliquid-sdk",
3
- "version": "0.0.43",
3
+ "version": "0.0.44",
4
4
  "description": "React SDK for Pear Protocol Hyperliquid API integration",
5
5
  "type": "module",
6
6
  "main": "dist/index.js",