@pear-protocol/hyperliquid-sdk 0.0.74 → 0.0.75

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,87 @@
1
+ import type { ApiResponse } from '../types';
2
+ export interface KalshiPriceRange {
3
+ start: string;
4
+ end: string;
5
+ step: string;
6
+ }
7
+ export interface KalshiMveLeg {
8
+ event_ticker: string;
9
+ market_ticker: string;
10
+ side: string;
11
+ }
12
+ export interface KalshiMarket {
13
+ ticker: string;
14
+ event_ticker: string;
15
+ market_type: 'binary' | string;
16
+ title: string;
17
+ subtitle: string;
18
+ yes_sub_title: string;
19
+ no_sub_title: string;
20
+ created_time: string;
21
+ open_time: string;
22
+ close_time: string;
23
+ expiration_time: string;
24
+ latest_expiration_time: string;
25
+ settlement_timer_seconds: number;
26
+ status: 'initialized' | 'open' | 'closed' | 'settled' | string;
27
+ response_price_units: 'usd_cent' | string;
28
+ yes_bid: number;
29
+ yes_bid_dollars: string;
30
+ yes_ask: number;
31
+ yes_ask_dollars: string;
32
+ no_bid: number;
33
+ no_bid_dollars: string;
34
+ no_ask: number;
35
+ no_ask_dollars: string;
36
+ last_price: number;
37
+ last_price_dollars: string;
38
+ volume: number;
39
+ volume_24h: number;
40
+ result: 'yes' | 'no' | null;
41
+ can_close_early: boolean;
42
+ open_interest: number;
43
+ notional_value: number;
44
+ notional_value_dollars: string;
45
+ previous_yes_bid: number;
46
+ previous_yes_bid_dollars: string;
47
+ previous_yes_ask: number;
48
+ previous_yes_ask_dollars: string;
49
+ previous_price: number;
50
+ previous_price_dollars: string;
51
+ liquidity: number;
52
+ liquidity_dollars: string;
53
+ expiration_value: string;
54
+ tick_size: number;
55
+ rules_primary: string;
56
+ rules_secondary: string;
57
+ price_level_structure: string;
58
+ price_ranges: KalshiPriceRange[];
59
+ expected_expiration_time: string;
60
+ settlement_value: number;
61
+ settlement_value_dollars: string;
62
+ settlement_ts: string;
63
+ fee_waiver_expiration_time: string;
64
+ early_close_condition: string;
65
+ strike_type: 'greater' | 'less' | 'between' | string;
66
+ floor_strike: number;
67
+ cap_strike: number;
68
+ functional_strike: string;
69
+ custom_strike: Record<string, unknown>;
70
+ mve_collection_ticker: string;
71
+ mve_selected_legs: KalshiMveLeg[];
72
+ primary_participant_key: string;
73
+ is_provisional: boolean;
74
+ }
75
+ export interface KalshiMarketsResponse {
76
+ markets: KalshiMarket[];
77
+ cursor: string;
78
+ }
79
+ export interface GetKalshiMarketsParams {
80
+ limit?: number;
81
+ cursor?: string;
82
+ tickers?: string[];
83
+ event_ticker?: string;
84
+ series_ticker?: string;
85
+ status?: string;
86
+ }
87
+ export declare function getKalshiMarkets(params?: GetKalshiMarketsParams): Promise<ApiResponse<KalshiMarketsResponse>>;
@@ -1,7 +1,8 @@
1
- import type { ApiResponse } from "../types";
1
+ import type { ApiResponse, ExternalFillDto } from "../types";
2
2
  import type { CancelTwapResponseDto } from "./orders";
3
- export type ExecutionType = "MARKET" | "LIMIT" | "TWAP" | "LADDER" | "LIMIT_BTCDOM";
4
- export type TpSlThresholdType = "PERCENTAGE" | "DOLLAR" | "POSITION_VALUE";
3
+ export type ExecutionType = "MARKET" | "TRIGGER" | "TWAP" | "LADDER" | "TP" | "SL" | "SPOT_MARKET" | "SPOT_LIMIT" | "SPOT_TWAP";
4
+ export type TriggerType = "PRICE" | "PRICE_RATIO" | "WEIGHTED_RATIO" | "BTC_DOM" | "CROSS_ASSET_PRICE" | "PREDICTION_MARKET_OUTCOME";
5
+ export type TpSlThresholdType = "PERCENTAGE" | "DOLLAR" | "POSITION_VALUE" | "PRICE" | "PRICE_RATIO" | "WEIGHTED_RATIO";
5
6
  export interface PairAssetInput {
6
7
  asset: string;
7
8
  weight?: number;
@@ -9,6 +10,9 @@ export interface PairAssetInput {
9
10
  export interface TpSlThresholdInput {
10
11
  type: TpSlThresholdType;
11
12
  value: number;
13
+ isTrailing?: boolean;
14
+ trailingDeltaValue?: number;
15
+ trailingActivationValue?: number;
12
16
  }
13
17
  export interface LadderConfigInput {
14
18
  ratioStart: number;
@@ -22,8 +26,11 @@ export interface CreatePositionRequestInput {
22
26
  usdValue: number;
23
27
  longAssets?: PairAssetInput[];
24
28
  shortAssets?: PairAssetInput[];
25
- triggerValue?: number;
29
+ triggerValue?: string | number;
30
+ triggerType?: TriggerType;
26
31
  direction?: "MORE_THAN" | "LESS_THAN";
32
+ assetName?: string;
33
+ marketCode?: string;
27
34
  twapDuration?: number;
28
35
  twapIntervalSeconds?: number;
29
36
  randomizeExecution?: boolean;
@@ -32,24 +39,9 @@ export interface CreatePositionRequestInput {
32
39
  takeProfit?: TpSlThresholdInput | null;
33
40
  stopLoss?: TpSlThresholdInput | null;
34
41
  }
35
- export type PositionResponseStatus = "SUCCESS" | "FAILED" | "PENDING" | "PARTIALLY_FILLED" | "OPEN";
36
- export interface PositionAssetSummaryDto {
37
- asset: string;
38
- side: "LONG" | "SHORT";
39
- size: number;
40
- entryRatio: number;
41
- usdValue: number;
42
- orderId: string;
43
- }
44
42
  export interface CreatePositionResponseDto {
45
- positionId: string | null;
46
43
  orderId: string;
47
- status: PositionResponseStatus;
48
- createdAt: string;
49
- assets?: PositionAssetSummaryDto[];
50
- stopLoss?: TpSlThresholdInput | null;
51
- takeProfit?: TpSlThresholdInput | null;
52
- hyperliquidResult?: any;
44
+ fills?: ExternalFillDto[];
53
45
  }
54
46
  /**
55
47
  * Create a position (MARKET/LIMIT/TWAP) using Pear Hyperliquid service
@@ -7,7 +7,6 @@ export * from './useHistoricalPriceData';
7
7
  export * from './useBasketCandles';
8
8
  export * from './usePerformanceOverlays';
9
9
  export * from './useAgentWallet';
10
- export * from './useAutoSyncFills';
11
10
  export * from './usePosition';
12
11
  export * from './useOrders';
13
12
  export * from './useSpotOrder';
@@ -18,3 +17,4 @@ export * from './useWatchlist';
18
17
  export * from './usePortfolio';
19
18
  export * from './useAuth';
20
19
  export * from './useAllUserBalances';
20
+ export * from './useHyperliquidUserFills';
@@ -0,0 +1,17 @@
1
+ import type { SyncFillsResponseDto } from '../types';
2
+ export interface UseHyperliquidUserFillsOptions {
3
+ baseUrl: string;
4
+ address: string | null;
5
+ aggregateByTime?: boolean;
6
+ }
7
+ export interface UseHyperliquidUserFillsState {
8
+ lastRunAt: number | null;
9
+ lastResult: SyncFillsResponseDto | null;
10
+ error: string | null;
11
+ isSyncing: boolean;
12
+ handleUserFillsEvent: () => Promise<void>;
13
+ }
14
+ /**
15
+ * Provides a callback to sync user fills whenever the native WebSocket emits a userFills event.
16
+ */
17
+ export declare function useHyperliquidUserFills(options: UseHyperliquidUserFillsOptions): UseHyperliquidUserFillsState;
@@ -2,9 +2,10 @@ export interface UseHyperliquidNativeWebSocketProps {
2
2
  address: string | null;
3
3
  tokens?: string[];
4
4
  enabled?: boolean;
5
+ onUserFills?: () => void | Promise<void>;
5
6
  }
6
7
  export interface UseHyperliquidNativeWebSocketReturn {
7
8
  isConnected: boolean;
8
9
  lastError: string | null;
9
10
  }
10
- export declare const useHyperliquidNativeWebSocket: ({ address, enabled, }: UseHyperliquidNativeWebSocketProps) => UseHyperliquidNativeWebSocketReturn;
11
+ export declare const useHyperliquidNativeWebSocket: ({ address, enabled, onUserFills, }: UseHyperliquidNativeWebSocketProps) => UseHyperliquidNativeWebSocketReturn;
package/dist/index.d.ts CHANGED
@@ -114,7 +114,52 @@ interface WatchlistItemDto {
114
114
  interface ToggleWatchlistResponseDto {
115
115
  items: WatchlistItemDto[];
116
116
  }
117
- 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';
117
+ 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' | 'TRIGGER_ORDER_FILLED' | 'TRIGGER_ORDER_FAILED';
118
+ type TriggerOrderNotificationType = 'PRICE' | 'PRICE_RATIO' | 'WEIGHTED_RATIO' | 'CROSS_ASSET_PRICE' | 'PREDICTION_MARKET_OUTCOME' | 'BTC_DOM';
119
+ interface TriggerOrderNotificationAsset {
120
+ asset: string;
121
+ side: 'LONG' | 'SHORT';
122
+ weight: number;
123
+ }
124
+ interface BaseTriggerOrderNotificationParams {
125
+ order_id: string;
126
+ client_id: string;
127
+ order_type: 'TRIGGER';
128
+ trigger_type: TriggerOrderNotificationType;
129
+ usd_value: number;
130
+ leverage: number;
131
+ assets: TriggerOrderNotificationAsset[];
132
+ error?: string;
133
+ }
134
+ interface PriceTriggerParams extends BaseTriggerOrderNotificationParams {
135
+ trigger_type: 'PRICE';
136
+ direction: 'MORE_THAN' | 'LESS_THAN' | null;
137
+ trigger_value: number | null;
138
+ }
139
+ interface PriceRatioTriggerParams extends BaseTriggerOrderNotificationParams {
140
+ trigger_type: 'PRICE_RATIO' | 'WEIGHTED_RATIO';
141
+ direction: 'MORE_THAN' | 'LESS_THAN' | null;
142
+ trigger_value: number | null;
143
+ }
144
+ interface CrossAssetPriceTriggerParams extends BaseTriggerOrderNotificationParams {
145
+ trigger_type: 'CROSS_ASSET_PRICE';
146
+ direction: 'MORE_THAN' | 'LESS_THAN' | null;
147
+ trigger_value: number | null;
148
+ asset_name: string;
149
+ }
150
+ interface PredictionMarketOutcomeTriggerParams extends BaseTriggerOrderNotificationParams {
151
+ trigger_type: 'PREDICTION_MARKET_OUTCOME';
152
+ trigger_value: string | null;
153
+ market_code: string;
154
+ result: string;
155
+ }
156
+ interface BtcDomTriggerParams extends BaseTriggerOrderNotificationParams {
157
+ trigger_type: 'BTC_DOM';
158
+ direction: 'MORE_THAN' | 'LESS_THAN' | null;
159
+ trigger_value: number | null;
160
+ current_btc_dominance: number;
161
+ }
162
+ type TriggerOrderNotificationParams = PriceTriggerParams | PriceRatioTriggerParams | CrossAssetPriceTriggerParams | PredictionMarketOutcomeTriggerParams | BtcDomTriggerParams;
118
163
  interface NotificationDto {
119
164
  id: string;
120
165
  address: string;
@@ -233,8 +278,11 @@ interface PositionAssetDetailDto {
233
278
  collateralToken?: CollateralToken;
234
279
  }
235
280
  interface TpSlThreshold {
236
- type: 'PERCENTAGE' | 'DOLLAR' | 'POSITION_VALUE';
281
+ type: 'PERCENTAGE' | 'DOLLAR' | 'POSITION_VALUE' | 'PRICE' | 'PRICE_RATIO' | 'WEIGHTED_RATIO';
237
282
  value: number;
283
+ isTrailing?: boolean;
284
+ trailingDeltaValue?: number;
285
+ trailingActivationValue?: number;
238
286
  }
239
287
  /**
240
288
  * Open position data structure
@@ -270,34 +318,91 @@ interface OrderAssetDto {
270
318
  /**
271
319
  * Order status
272
320
  */
273
- type OrderStatus = 'OPEN' | 'PARTIALLY_FILLED' | 'PROCESSING';
321
+ type OrderStatus = 'OPEN' | 'PROCESSING' | 'EXECUTED' | 'CANCELLED' | 'FAILED' | 'PARTIALLY_FILLED';
274
322
  /**
275
323
  * Order type
276
324
  */
277
- type OrderType = 'TP' | 'SL' | 'LIMIT' | 'MARKET' | 'LIMIT_BTCDOM' | 'TWAP';
325
+ type OrderType = 'SYNC' | 'MARKET' | 'TRIGGER' | 'TWAP' | 'LADDER' | 'TP' | 'SL' | 'SPOT_MARKET' | 'SPOT_LIMIT' | 'SPOT_TWAP';
278
326
  /**
279
327
  * TP/SL trigger type
280
328
  */
281
- type TpSlTriggerType = 'PERCENTAGE' | 'DOLLAR' | 'POSITION_VALUE';
282
- type OrderDirection = 'MORE_THAN' | 'LESS_THAN' | null;
329
+ type TpSlTriggerType = 'PERCENTAGE' | 'DOLLAR' | 'POSITION_VALUE' | 'PRICE' | 'PRICE_RATIO' | 'WEIGHTED_RATIO';
330
+ /**
331
+ * Trigger type for trigger orders
332
+ */
333
+ type TriggerType$1 = 'PRICE' | 'PRICE_RATIO' | 'WEIGHTED_RATIO' | 'BTC_DOM' | 'CROSS_ASSET_PRICE' | 'PREDICTION_MARKET_OUTCOME';
334
+ type OrderDirection = 'MORE_THAN' | 'LESS_THAN';
335
+ /**
336
+ * Market order parameters
337
+ */
338
+ interface MarketOrderParameters {
339
+ leverage?: number;
340
+ usdValue: number;
341
+ reduceOnly?: boolean;
342
+ }
343
+ /**
344
+ * Trigger order parameters
345
+ */
346
+ interface TriggerOrderParameters {
347
+ leverage: number;
348
+ usdValue: number;
349
+ triggerType: TriggerType$1;
350
+ triggerValue: number;
351
+ direction: OrderDirection;
352
+ reduceOnly?: boolean;
353
+ assetName?: string;
354
+ marketCode?: string;
355
+ marketName?: string;
356
+ }
357
+ /**
358
+ * TWAP order parameters
359
+ */
360
+ interface TwapOrderParameters {
361
+ leverage: number;
362
+ usdValue: number;
363
+ duration: string;
364
+ intervalSeconds?: number;
365
+ chunkUsdValue: number;
366
+ randomizeExecution?: boolean;
367
+ reduceOnly?: boolean;
368
+ }
369
+ /**
370
+ * TP/SL order parameters
371
+ */
372
+ interface TpSlOrderParameters {
373
+ triggerType: TpSlTriggerType;
374
+ triggerValue: number;
375
+ isTrailing?: boolean;
376
+ trailingDeltaValue?: number;
377
+ trailingActivationValue?: number;
378
+ reduceOnly?: boolean;
379
+ }
380
+ /**
381
+ * Ladder order parameters
382
+ */
383
+ interface LadderOrderParameters {
384
+ leverage: number;
385
+ usdValue: number;
386
+ ratioStart: number;
387
+ ratioEnd: number;
388
+ numberOfLevels: number;
389
+ reduceOnly?: boolean;
390
+ }
391
+ /**
392
+ * Union type for all order parameters
393
+ */
394
+ type OrderParameters = MarketOrderParameters | TriggerOrderParameters | TwapOrderParameters | TpSlOrderParameters | LadderOrderParameters;
283
395
  /**
284
396
  * Open limit order data structure
285
397
  */
286
398
  interface OpenLimitOrderDto {
287
399
  orderId: string;
288
400
  address: string;
289
- clientId: string | null;
401
+ clientId?: string | null;
290
402
  positionId?: string | null;
291
- leverage: number;
292
- usdValue: number;
293
- triggerValue?: number | null;
294
- twapDuration?: string | null;
295
- tpSlTriggerType?: TpSlTriggerType | null;
296
- randomizeFlag: boolean;
297
- reduceOnlyFlag: boolean;
298
- status: OrderStatus;
403
+ parameters: OrderParameters;
299
404
  orderType: OrderType;
300
- direction?: OrderDirection | null;
405
+ status: OrderStatus;
301
406
  longAssets: OrderAssetDto[];
302
407
  shortAssets: OrderAssetDto[];
303
408
  createdAt: string;
@@ -418,7 +523,7 @@ interface WebSocketMessage {
418
523
  /**
419
524
  * WebSocket response from HyperLiquid native API
420
525
  */
421
- type HLChannel = 'webData3' | 'allMids' | 'activeAssetData' | 'candle' | 'spotState' | 'allDexsClearinghouseState' | 'allDexsAssetCtxs';
526
+ type HLChannel = 'webData3' | 'allMids' | 'activeAssetData' | 'candle' | 'spotState' | 'allDexsClearinghouseState' | 'allDexsAssetCtxs' | 'userFills';
422
527
  interface HLChannelDataMap {
423
528
  webData3: WebData3Response;
424
529
  allMids: WsAllMidsData;
@@ -430,6 +535,7 @@ interface HLChannelDataMap {
430
535
  };
431
536
  allDexsClearinghouseState: AllDexsClearinghouseStateData;
432
537
  allDexsAssetCtxs: AllDexsAssetCtxsData;
538
+ userFills: any;
433
539
  }
434
540
  interface WebData3UserState {
435
541
  agentAddress?: string;
@@ -920,25 +1026,6 @@ declare function useAgentWallet(): {
920
1026
  readonly notifyAgentWalletApproved: () => Promise<void>;
921
1027
  };
922
1028
 
923
- interface AutoSyncFillsOptions {
924
- baseUrl: string;
925
- address: string | null;
926
- intervalMs?: number;
927
- aggregateByTime?: boolean;
928
- }
929
- interface AutoSyncFillsState {
930
- lastRunAt: number | null;
931
- lastResult: SyncFillsResponseDto | null;
932
- error: string | null;
933
- isSyncing: boolean;
934
- triggerSync: () => Promise<void>;
935
- }
936
- /**
937
- * Listens to address changes and periodically syncs user fills
938
- * Defaults: aggregate=true, interval=60s
939
- */
940
- declare function useAutoSyncFills(options: AutoSyncFillsOptions): AutoSyncFillsState;
941
-
942
1029
  interface AdjustOrderRequestInput {
943
1030
  limitRatio?: number;
944
1031
  usdValue?: number;
@@ -1004,8 +1091,9 @@ interface SpotOrderResponseDto {
1004
1091
  */
1005
1092
  declare function executeSpotOrder(baseUrl: string, payload: SpotOrderRequestInput): Promise<ApiResponse<SpotOrderResponseDto>>;
1006
1093
 
1007
- type ExecutionType = "MARKET" | "LIMIT" | "TWAP" | "LADDER" | "LIMIT_BTCDOM";
1008
- type TpSlThresholdType = "PERCENTAGE" | "DOLLAR" | "POSITION_VALUE";
1094
+ type ExecutionType = "MARKET" | "TRIGGER" | "TWAP" | "LADDER" | "TP" | "SL" | "SPOT_MARKET" | "SPOT_LIMIT" | "SPOT_TWAP";
1095
+ type TriggerType = "PRICE" | "PRICE_RATIO" | "WEIGHTED_RATIO" | "BTC_DOM" | "CROSS_ASSET_PRICE" | "PREDICTION_MARKET_OUTCOME";
1096
+ type TpSlThresholdType = "PERCENTAGE" | "DOLLAR" | "POSITION_VALUE" | "PRICE" | "PRICE_RATIO" | "WEIGHTED_RATIO";
1009
1097
  interface PairAssetInput {
1010
1098
  asset: string;
1011
1099
  weight?: number;
@@ -1013,6 +1101,9 @@ interface PairAssetInput {
1013
1101
  interface TpSlThresholdInput {
1014
1102
  type: TpSlThresholdType;
1015
1103
  value: number;
1104
+ isTrailing?: boolean;
1105
+ trailingDeltaValue?: number;
1106
+ trailingActivationValue?: number;
1016
1107
  }
1017
1108
  interface LadderConfigInput {
1018
1109
  ratioStart: number;
@@ -1026,8 +1117,11 @@ interface CreatePositionRequestInput {
1026
1117
  usdValue: number;
1027
1118
  longAssets?: PairAssetInput[];
1028
1119
  shortAssets?: PairAssetInput[];
1029
- triggerValue?: number;
1120
+ triggerValue?: string | number;
1121
+ triggerType?: TriggerType;
1030
1122
  direction?: "MORE_THAN" | "LESS_THAN";
1123
+ assetName?: string;
1124
+ marketCode?: string;
1031
1125
  twapDuration?: number;
1032
1126
  twapIntervalSeconds?: number;
1033
1127
  randomizeExecution?: boolean;
@@ -1036,24 +1130,9 @@ interface CreatePositionRequestInput {
1036
1130
  takeProfit?: TpSlThresholdInput | null;
1037
1131
  stopLoss?: TpSlThresholdInput | null;
1038
1132
  }
1039
- type PositionResponseStatus = "SUCCESS" | "FAILED" | "PENDING" | "PARTIALLY_FILLED" | "OPEN";
1040
- interface PositionAssetSummaryDto {
1041
- asset: string;
1042
- side: "LONG" | "SHORT";
1043
- size: number;
1044
- entryRatio: number;
1045
- usdValue: number;
1046
- orderId: string;
1047
- }
1048
1133
  interface CreatePositionResponseDto {
1049
- positionId: string | null;
1050
1134
  orderId: string;
1051
- status: PositionResponseStatus;
1052
- createdAt: string;
1053
- assets?: PositionAssetSummaryDto[];
1054
- stopLoss?: TpSlThresholdInput | null;
1055
- takeProfit?: TpSlThresholdInput | null;
1056
- hyperliquidResult?: any;
1135
+ fills?: ExternalFillDto[];
1057
1136
  }
1058
1137
  /**
1059
1138
  * Create a position (MARKET/LIMIT/TWAP) using Pear Hyperliquid service
@@ -1282,6 +1361,23 @@ interface AllUserBalances {
1282
1361
  }
1283
1362
  declare const useAllUserBalances: () => AllUserBalances;
1284
1363
 
1364
+ interface UseHyperliquidUserFillsOptions {
1365
+ baseUrl: string;
1366
+ address: string | null;
1367
+ aggregateByTime?: boolean;
1368
+ }
1369
+ interface UseHyperliquidUserFillsState {
1370
+ lastRunAt: number | null;
1371
+ lastResult: SyncFillsResponseDto | null;
1372
+ error: string | null;
1373
+ isSyncing: boolean;
1374
+ handleUserFillsEvent: () => Promise<void>;
1375
+ }
1376
+ /**
1377
+ * Provides a callback to sync user fills whenever the native WebSocket emits a userFills event.
1378
+ */
1379
+ declare function useHyperliquidUserFills(options: UseHyperliquidUserFillsOptions): UseHyperliquidUserFillsState;
1380
+
1285
1381
  interface UseHyperliquidWebSocketProps {
1286
1382
  wsUrl: string;
1287
1383
  address: string | null;
@@ -1296,12 +1392,13 @@ interface UseHyperliquidNativeWebSocketProps {
1296
1392
  address: string | null;
1297
1393
  tokens?: string[];
1298
1394
  enabled?: boolean;
1395
+ onUserFills?: () => void | Promise<void>;
1299
1396
  }
1300
1397
  interface UseHyperliquidNativeWebSocketReturn {
1301
1398
  isConnected: boolean;
1302
1399
  lastError: string | null;
1303
1400
  }
1304
- declare const useHyperliquidNativeWebSocket: ({ address, enabled, }: UseHyperliquidNativeWebSocketProps) => UseHyperliquidNativeWebSocketReturn;
1401
+ declare const useHyperliquidNativeWebSocket: ({ address, enabled, onUserFills, }: UseHyperliquidNativeWebSocketProps) => UseHyperliquidNativeWebSocketReturn;
1305
1402
 
1306
1403
  /**
1307
1404
  * Mark notifications as read up to a given timestamp (ms)
@@ -1318,6 +1415,93 @@ declare function markNotificationReadById(baseUrl: string, id: string): Promise<
1318
1415
 
1319
1416
  declare function toggleWatchlist(baseUrl: string, longAssets: WatchlistAssetDto[], shortAssets: WatchlistAssetDto[], hip3Assets: Map<string, string[]>): Promise<ApiResponse<ToggleWatchlistResponseDto>>;
1320
1417
 
1418
+ interface KalshiPriceRange {
1419
+ start: string;
1420
+ end: string;
1421
+ step: string;
1422
+ }
1423
+ interface KalshiMveLeg {
1424
+ event_ticker: string;
1425
+ market_ticker: string;
1426
+ side: string;
1427
+ }
1428
+ interface KalshiMarket {
1429
+ ticker: string;
1430
+ event_ticker: string;
1431
+ market_type: 'binary' | string;
1432
+ title: string;
1433
+ subtitle: string;
1434
+ yes_sub_title: string;
1435
+ no_sub_title: string;
1436
+ created_time: string;
1437
+ open_time: string;
1438
+ close_time: string;
1439
+ expiration_time: string;
1440
+ latest_expiration_time: string;
1441
+ settlement_timer_seconds: number;
1442
+ status: 'initialized' | 'open' | 'closed' | 'settled' | string;
1443
+ response_price_units: 'usd_cent' | string;
1444
+ yes_bid: number;
1445
+ yes_bid_dollars: string;
1446
+ yes_ask: number;
1447
+ yes_ask_dollars: string;
1448
+ no_bid: number;
1449
+ no_bid_dollars: string;
1450
+ no_ask: number;
1451
+ no_ask_dollars: string;
1452
+ last_price: number;
1453
+ last_price_dollars: string;
1454
+ volume: number;
1455
+ volume_24h: number;
1456
+ result: 'yes' | 'no' | null;
1457
+ can_close_early: boolean;
1458
+ open_interest: number;
1459
+ notional_value: number;
1460
+ notional_value_dollars: string;
1461
+ previous_yes_bid: number;
1462
+ previous_yes_bid_dollars: string;
1463
+ previous_yes_ask: number;
1464
+ previous_yes_ask_dollars: string;
1465
+ previous_price: number;
1466
+ previous_price_dollars: string;
1467
+ liquidity: number;
1468
+ liquidity_dollars: string;
1469
+ expiration_value: string;
1470
+ tick_size: number;
1471
+ rules_primary: string;
1472
+ rules_secondary: string;
1473
+ price_level_structure: string;
1474
+ price_ranges: KalshiPriceRange[];
1475
+ expected_expiration_time: string;
1476
+ settlement_value: number;
1477
+ settlement_value_dollars: string;
1478
+ settlement_ts: string;
1479
+ fee_waiver_expiration_time: string;
1480
+ early_close_condition: string;
1481
+ strike_type: 'greater' | 'less' | 'between' | string;
1482
+ floor_strike: number;
1483
+ cap_strike: number;
1484
+ functional_strike: string;
1485
+ custom_strike: Record<string, unknown>;
1486
+ mve_collection_ticker: string;
1487
+ mve_selected_legs: KalshiMveLeg[];
1488
+ primary_participant_key: string;
1489
+ is_provisional: boolean;
1490
+ }
1491
+ interface KalshiMarketsResponse {
1492
+ markets: KalshiMarket[];
1493
+ cursor: string;
1494
+ }
1495
+ interface GetKalshiMarketsParams {
1496
+ limit?: number;
1497
+ cursor?: string;
1498
+ tickers?: string[];
1499
+ event_ticker?: string;
1500
+ series_ticker?: string;
1501
+ status?: string;
1502
+ }
1503
+ declare function getKalshiMarkets(params?: GetKalshiMarketsParams): Promise<ApiResponse<KalshiMarketsResponse>>;
1504
+
1321
1505
  /**
1322
1506
  * Account summary calculation utility class
1323
1507
  */
@@ -1521,6 +1705,63 @@ declare function getMarketPrefix(fullSymbol: string): string | undefined;
1521
1705
  */
1522
1706
  declare function isHip3Market(symbol: string): boolean;
1523
1707
 
1708
+ /**
1709
+ * Helper functions to safely extract values from order parameters
1710
+ * based on the order type and parameter structure.
1711
+ */
1712
+ /**
1713
+ * Get leverage from order parameters (available for Market, Trigger, Twap, Ladder orders)
1714
+ */
1715
+ declare function getOrderLeverage(order: OpenLimitOrderDto): number | undefined;
1716
+ /**
1717
+ * Get USD value from order parameters (available for Market, Trigger, Twap, Ladder orders)
1718
+ */
1719
+ declare function getOrderUsdValue(order: OpenLimitOrderDto): number | undefined;
1720
+ /**
1721
+ * Get trigger value from order parameters (available for TP/SL and Trigger orders)
1722
+ */
1723
+ declare function getOrderTriggerValue(order: OpenLimitOrderDto): number | undefined;
1724
+ /**
1725
+ * Get TP/SL trigger type from order parameters (only for TP/SL orders)
1726
+ */
1727
+ declare function getOrderTpSlTriggerType(order: OpenLimitOrderDto): TpSlTriggerType | undefined;
1728
+ /**
1729
+ * Get trigger type from order parameters (for Trigger orders)
1730
+ */
1731
+ declare function getOrderTriggerType(order: OpenLimitOrderDto): TriggerType$1 | undefined;
1732
+ /**
1733
+ * Get order direction from order parameters (for Trigger orders)
1734
+ */
1735
+ declare function getOrderDirection(order: OpenLimitOrderDto): OrderDirection | undefined;
1736
+ /**
1737
+ * Get reduce only flag from order parameters (available for all order types)
1738
+ */
1739
+ declare function getOrderReduceOnly(order: OpenLimitOrderDto): boolean;
1740
+ /**
1741
+ * Get TWAP duration from order parameters (only for TWAP orders)
1742
+ */
1743
+ declare function getOrderTwapDuration(order: OpenLimitOrderDto): string | undefined;
1744
+ /**
1745
+ * Get ladder config from order parameters (only for Ladder orders)
1746
+ */
1747
+ declare function getOrderLadderConfig(order: OpenLimitOrderDto): {
1748
+ ratioStart: number;
1749
+ ratioEnd: number;
1750
+ numberOfLevels: number;
1751
+ } | undefined;
1752
+ /**
1753
+ * Check if the order is a BTC Dominance trigger order
1754
+ */
1755
+ declare function isBtcDomOrder(order: OpenLimitOrderDto): boolean;
1756
+ /**
1757
+ * Get trailing info from TP/SL order parameters
1758
+ */
1759
+ declare function getOrderTrailingInfo(order: OpenLimitOrderDto): {
1760
+ isTrailing: boolean;
1761
+ trailingDeltaValue?: number;
1762
+ trailingActivationValue?: number;
1763
+ } | undefined;
1764
+
1524
1765
  interface MarketDataState {
1525
1766
  marketData: ActiveAssetsResponse | null;
1526
1767
  marketDataAll: ActiveAssetsAllResponse | null;
@@ -1530,5 +1771,5 @@ interface MarketDataState {
1530
1771
  }
1531
1772
  declare const useMarketData: zustand.UseBoundStore<zustand.StoreApi<MarketDataState>>;
1532
1773
 
1533
- export { AccountSummaryCalculator, ConflictDetector, MAX_ASSETS_PER_LEG, MINIMUM_ASSET_USD_VALUE, MaxAssetsPerLegError, MinimumPositionSizeError, PearHyperliquidProvider, TokenMetadataExtractor, adjustAdvancePosition, adjustOrder, adjustPosition, calculateMinimumPositionValue, calculateWeightedRatio, cancelOrder, cancelTwap, cancelTwapOrder, closeAllPositions, closePosition, computeBasketCandles, createCandleLookups, createPosition, executeSpotOrder, getAvailableMarkets, getCompleteTimestamps, getMarketPrefix, getPortfolio, isHip3Market, mapCandleIntervalToTradingViewInterval, mapTradingViewIntervalToCandleInterval, markNotificationReadById, markNotificationsRead, toBackendSymbol, toBackendSymbolWithMarket, toDisplaySymbol, toggleWatchlist, updateLeverage, updateRiskParameters, useAccountSummary, useActiveBaskets, useAgentWallet, useAllBaskets, useAllUserBalances, useAuth, useAutoSyncFills, useBasketCandles, useFindBasket, useHighlightedBaskets, useHistoricalPriceData, useHistoricalPriceDataStore, useHyperliquidNativeWebSocket, useHyperliquidWebSocket, useMarketData, useMarketDataAllPayload, useMarketDataPayload, useNotifications, useOpenOrders, useOrders, usePearHyperliquid, usePerformanceOverlays, usePerpMetaAssets, usePortfolio, usePosition, useSpotOrder, useTokenSelectionMetadata, useTopGainers, useTopLosers, useTradeHistories, useTwap, useUserSelection, useWatchlist, useWatchlistBaskets, useWebData, validateMaxAssetsPerLeg, validateMinimumAssetSize, validatePositionSize };
1534
- export type { AccountSummaryResponseDto, ActiveAssetGroupItem, ActiveAssetsResponse, AdjustAdvanceAssetInput, AdjustAdvanceItemInput, AdjustAdvanceResponseDto, 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, CollateralFilter, CollateralToken, CreatePositionRequestInput, CreatePositionResponseDto, CrossMarginSummaryDto, CumFundingDto, ExecutionType, ExtraAgent, HLWebSocketResponse, HistoricalRange, LadderConfigInput, MarginSummaryDto, MarketDataBySymbol, NotificationCategory, NotificationDto, OpenLimitOrderDto, OpenPositionDto, OrderAssetDto, OrderStatus, PairAssetDto, PairAssetInput, PerformanceOverlay, PlatformAccountSummaryResponseDto, PortfolioBucketDto, PortfolioInterval, PortfolioIntervalsDto, PortfolioOverallDto, PortfolioResponseDto, PositionAdjustmentType, PositionAssetDetailDto, PositionAssetSummaryDto, PositionResponseStatus, RealtimeBar, RealtimeBarsCallback, SpotBalance, SpotOrderFilledStatus, SpotOrderHyperliquidData, SpotOrderHyperliquidResult, SpotOrderRequestInput, SpotOrderResponseDto, SpotState, ToggleWatchlistResponseDto, TokenConflict, TokenHistoricalPriceData, TokenMetadata, TokenSelection, TpSlThresholdInput, TpSlThresholdType, TradeHistoryAssetDataDto, TradeHistoryDataDto, TwapChunkStatusDto, TwapMonitoringDto, TwapSliceFillResponseItem, UniverseAsset, UpdateLeverageRequestInput, UpdateLeverageResponseDto, UpdateRiskParametersRequestInput, UpdateRiskParametersResponseDto, UseAuthOptions, UseBasketCandlesReturn, UseHistoricalPriceDataReturn, UseNotificationsResult, UsePerformanceOverlaysReturn, UsePortfolioResult, UseSpotOrderResult, UseTokenSelectionMetadataReturn, UserProfile, UserSelectionState, WatchlistItemDto, WebSocketAckResponse, WebSocketChannel, WebSocketConnectionState, WebSocketDataMessage, WebSocketMessage, WebSocketSubscribeMessage, WsAllMidsData };
1774
+ export { AccountSummaryCalculator, ConflictDetector, MAX_ASSETS_PER_LEG, MINIMUM_ASSET_USD_VALUE, MaxAssetsPerLegError, MinimumPositionSizeError, PearHyperliquidProvider, TokenMetadataExtractor, adjustAdvancePosition, adjustOrder, adjustPosition, calculateMinimumPositionValue, calculateWeightedRatio, cancelOrder, cancelTwap, cancelTwapOrder, closeAllPositions, closePosition, computeBasketCandles, createCandleLookups, createPosition, executeSpotOrder, getAvailableMarkets, getCompleteTimestamps, getKalshiMarkets, getMarketPrefix, getOrderDirection, getOrderLadderConfig, getOrderLeverage, getOrderReduceOnly, getOrderTpSlTriggerType, getOrderTrailingInfo, getOrderTriggerType, getOrderTriggerValue, getOrderTwapDuration, getOrderUsdValue, getPortfolio, isBtcDomOrder, isHip3Market, mapCandleIntervalToTradingViewInterval, mapTradingViewIntervalToCandleInterval, markNotificationReadById, markNotificationsRead, toBackendSymbol, toBackendSymbolWithMarket, toDisplaySymbol, toggleWatchlist, updateLeverage, updateRiskParameters, useAccountSummary, useActiveBaskets, useAgentWallet, useAllBaskets, useAllUserBalances, useAuth, useBasketCandles, useFindBasket, useHighlightedBaskets, useHistoricalPriceData, useHistoricalPriceDataStore, useHyperliquidNativeWebSocket, useHyperliquidUserFills, useHyperliquidWebSocket, useMarketData, useMarketDataAllPayload, useMarketDataPayload, useNotifications, useOpenOrders, useOrders, usePearHyperliquid, usePerformanceOverlays, usePerpMetaAssets, usePortfolio, usePosition, useSpotOrder, useTokenSelectionMetadata, useTopGainers, useTopLosers, useTradeHistories, useTwap, useUserSelection, useWatchlist, useWatchlistBaskets, useWebData, validateMaxAssetsPerLeg, validateMinimumAssetSize, validatePositionSize };
1775
+ export type { AccountSummaryResponseDto, ActiveAssetGroupItem, ActiveAssetsResponse, AdjustAdvanceAssetInput, AdjustAdvanceItemInput, AdjustAdvanceResponseDto, AdjustExecutionType, AdjustOrderRequestInput, AdjustOrderResponseDto, AdjustPositionRequestInput, AdjustPositionResponseDto, AgentWalletDto, AgentWalletState, ApiErrorResponse, ApiResponse, AssetCtx, AssetInformationDetail, AssetMarketData, AssetPosition, BalanceSummaryDto, BaseTriggerOrderNotificationParams, BtcDomTriggerParams, CancelOrderResponseDto, CancelTwapResponseDto, CandleChartData, CandleData, CandleInterval, CandleSnapshotRequest, ClearinghouseState, CloseAllPositionsResponseDto, CloseAllPositionsResultDto, CloseExecutionType, ClosePositionRequestInput, ClosePositionResponseDto, CollateralFilter, CollateralToken, CreatePositionRequestInput, CreatePositionResponseDto, CrossAssetPriceTriggerParams, CrossMarginSummaryDto, CumFundingDto, ExecutionType, ExtraAgent, GetKalshiMarketsParams, HLWebSocketResponse, HistoricalRange, KalshiMarket, KalshiMarketsResponse, KalshiMveLeg, KalshiPriceRange, LadderConfigInput, MarginSummaryDto, MarketDataBySymbol, NotificationCategory, NotificationDto, OpenLimitOrderDto, OpenPositionDto, OrderAssetDto, OrderStatus, PairAssetDto, PairAssetInput, PerformanceOverlay, PlatformAccountSummaryResponseDto, PortfolioBucketDto, PortfolioInterval, PortfolioIntervalsDto, PortfolioOverallDto, PortfolioResponseDto, PositionAdjustmentType, PositionAssetDetailDto, PredictionMarketOutcomeTriggerParams, PriceRatioTriggerParams, PriceTriggerParams, RealtimeBar, RealtimeBarsCallback, SpotBalance, SpotOrderFilledStatus, SpotOrderHyperliquidData, SpotOrderHyperliquidResult, SpotOrderRequestInput, SpotOrderResponseDto, SpotState, ToggleWatchlistResponseDto, TokenConflict, TokenHistoricalPriceData, TokenMetadata, TokenSelection, TpSlOrderParameters, TpSlThresholdInput, TpSlThresholdType, TpSlTriggerType, TradeHistoryAssetDataDto, TradeHistoryDataDto, TriggerOrderNotificationAsset, TriggerOrderNotificationParams, TriggerOrderNotificationType, TriggerOrderParameters, TriggerType, TwapChunkStatusDto, TwapMonitoringDto, TwapSliceFillResponseItem, UniverseAsset, UpdateLeverageRequestInput, UpdateLeverageResponseDto, UpdateRiskParametersRequestInput, UpdateRiskParametersResponseDto, UseAuthOptions, UseBasketCandlesReturn, UseHistoricalPriceDataReturn, UseHyperliquidUserFillsOptions, UseHyperliquidUserFillsState, UseNotificationsResult, UsePerformanceOverlaysReturn, UsePortfolioResult, UseSpotOrderResult, UseTokenSelectionMetadataReturn, UserProfile, UserSelectionState, WatchlistItemDto, WebSocketAckResponse, WebSocketChannel, WebSocketConnectionState, WebSocketDataMessage, WebSocketMessage, WebSocketSubscribeMessage, WsAllMidsData };