@pear-protocol/hyperliquid-sdk 0.0.74 → 0.0.76

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/types.d.ts CHANGED
@@ -97,7 +97,52 @@ export interface WatchlistItemDto {
97
97
  export interface ToggleWatchlistResponseDto {
98
98
  items: WatchlistItemDto[];
99
99
  }
100
- 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';
100
+ 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' | 'TRIGGER_ORDER_FILLED' | 'TRIGGER_ORDER_FAILED';
101
+ export type TriggerOrderNotificationType = 'PRICE' | 'PRICE_RATIO' | 'WEIGHTED_RATIO' | 'CROSS_ASSET_PRICE' | 'PREDICTION_MARKET_OUTCOME' | 'BTC_DOM';
102
+ export interface TriggerOrderNotificationAsset {
103
+ asset: string;
104
+ side: 'LONG' | 'SHORT';
105
+ weight: number;
106
+ }
107
+ export interface BaseTriggerOrderNotificationParams {
108
+ order_id: string;
109
+ client_id: string;
110
+ order_type: 'TRIGGER';
111
+ trigger_type: TriggerOrderNotificationType;
112
+ usd_value: number;
113
+ leverage: number;
114
+ assets: TriggerOrderNotificationAsset[];
115
+ error?: string;
116
+ }
117
+ export interface PriceTriggerParams extends BaseTriggerOrderNotificationParams {
118
+ trigger_type: 'PRICE';
119
+ direction: 'MORE_THAN' | 'LESS_THAN' | null;
120
+ trigger_value: number | null;
121
+ }
122
+ export interface PriceRatioTriggerParams extends BaseTriggerOrderNotificationParams {
123
+ trigger_type: 'PRICE_RATIO' | 'WEIGHTED_RATIO';
124
+ direction: 'MORE_THAN' | 'LESS_THAN' | null;
125
+ trigger_value: number | null;
126
+ }
127
+ export interface CrossAssetPriceTriggerParams extends BaseTriggerOrderNotificationParams {
128
+ trigger_type: 'CROSS_ASSET_PRICE';
129
+ direction: 'MORE_THAN' | 'LESS_THAN' | null;
130
+ trigger_value: number | null;
131
+ asset_name: string;
132
+ }
133
+ export interface PredictionMarketOutcomeTriggerParams extends BaseTriggerOrderNotificationParams {
134
+ trigger_type: 'PREDICTION_MARKET_OUTCOME';
135
+ trigger_value: string | null;
136
+ market_code: string;
137
+ result: string;
138
+ }
139
+ export interface BtcDomTriggerParams extends BaseTriggerOrderNotificationParams {
140
+ trigger_type: 'BTC_DOM';
141
+ direction: 'MORE_THAN' | 'LESS_THAN' | null;
142
+ trigger_value: number | null;
143
+ current_btc_dominance: number;
144
+ }
145
+ export type TriggerOrderNotificationParams = PriceTriggerParams | PriceRatioTriggerParams | CrossAssetPriceTriggerParams | PredictionMarketOutcomeTriggerParams | BtcDomTriggerParams;
101
146
  export interface NotificationDto {
102
147
  id: string;
103
148
  address: string;
@@ -216,8 +261,11 @@ export interface PositionAssetDetailDto {
216
261
  collateralToken?: CollateralToken;
217
262
  }
218
263
  export interface TpSlThreshold {
219
- type: 'PERCENTAGE' | 'DOLLAR' | 'POSITION_VALUE';
264
+ type: 'PERCENTAGE' | 'DOLLAR' | 'POSITION_VALUE' | 'PRICE' | 'PRICE_RATIO' | 'WEIGHTED_RATIO';
220
265
  value: number;
266
+ isTrailing?: boolean;
267
+ trailingDeltaValue?: number;
268
+ trailingActivationValue?: number;
221
269
  }
222
270
  /**
223
271
  * Open position data structure
@@ -253,34 +301,91 @@ export interface OrderAssetDto {
253
301
  /**
254
302
  * Order status
255
303
  */
256
- export type OrderStatus = 'OPEN' | 'PARTIALLY_FILLED' | 'PROCESSING';
304
+ export type OrderStatus = 'OPEN' | 'PROCESSING' | 'EXECUTED' | 'CANCELLED' | 'FAILED' | 'PARTIALLY_FILLED';
257
305
  /**
258
306
  * Order type
259
307
  */
260
- export type OrderType = 'TP' | 'SL' | 'LIMIT' | 'MARKET' | 'LIMIT_BTCDOM' | 'TWAP';
308
+ export type OrderType = 'SYNC' | 'MARKET' | 'TRIGGER' | 'TWAP' | 'LADDER' | 'TP' | 'SL' | 'SPOT_MARKET' | 'SPOT_LIMIT' | 'SPOT_TWAP';
261
309
  /**
262
310
  * TP/SL trigger type
263
311
  */
264
- export type TpSlTriggerType = 'PERCENTAGE' | 'DOLLAR' | 'POSITION_VALUE';
265
- export type OrderDirection = 'MORE_THAN' | 'LESS_THAN' | null;
312
+ export type TpSlTriggerType = 'PERCENTAGE' | 'DOLLAR' | 'POSITION_VALUE' | 'PRICE' | 'PRICE_RATIO' | 'WEIGHTED_RATIO';
313
+ /**
314
+ * Trigger type for trigger orders
315
+ */
316
+ export type TriggerType = 'PRICE' | 'PRICE_RATIO' | 'WEIGHTED_RATIO' | 'BTC_DOM' | 'CROSS_ASSET_PRICE' | 'PREDICTION_MARKET_OUTCOME';
317
+ export type OrderDirection = 'MORE_THAN' | 'LESS_THAN';
318
+ /**
319
+ * Market order parameters
320
+ */
321
+ export interface MarketOrderParameters {
322
+ leverage?: number;
323
+ usdValue: number;
324
+ reduceOnly?: boolean;
325
+ }
326
+ /**
327
+ * Trigger order parameters
328
+ */
329
+ export interface TriggerOrderParameters {
330
+ leverage: number;
331
+ usdValue: number;
332
+ triggerType: TriggerType;
333
+ triggerValue: number;
334
+ direction: OrderDirection;
335
+ reduceOnly?: boolean;
336
+ assetName?: string;
337
+ marketCode?: string;
338
+ marketName?: string;
339
+ }
340
+ /**
341
+ * TWAP order parameters
342
+ */
343
+ export interface TwapOrderParameters {
344
+ leverage: number;
345
+ usdValue: number;
346
+ duration: string;
347
+ intervalSeconds?: number;
348
+ chunkUsdValue: number;
349
+ randomizeExecution?: boolean;
350
+ reduceOnly?: boolean;
351
+ }
352
+ /**
353
+ * TP/SL order parameters
354
+ */
355
+ export interface TpSlOrderParameters {
356
+ triggerType: TpSlTriggerType;
357
+ triggerValue: number;
358
+ isTrailing?: boolean;
359
+ trailingDeltaValue?: number;
360
+ trailingActivationValue?: number;
361
+ reduceOnly?: boolean;
362
+ }
363
+ /**
364
+ * Ladder order parameters
365
+ */
366
+ export interface LadderOrderParameters {
367
+ leverage: number;
368
+ usdValue: number;
369
+ ratioStart: number;
370
+ ratioEnd: number;
371
+ numberOfLevels: number;
372
+ reduceOnly?: boolean;
373
+ }
374
+ /**
375
+ * Union type for all order parameters
376
+ */
377
+ export type OrderParameters = MarketOrderParameters | TriggerOrderParameters | TwapOrderParameters | TpSlOrderParameters | LadderOrderParameters;
266
378
  /**
267
379
  * Open limit order data structure
268
380
  */
269
381
  export interface OpenLimitOrderDto {
270
382
  orderId: string;
271
383
  address: string;
272
- clientId: string | null;
384
+ clientId?: string | null;
273
385
  positionId?: string | null;
274
- leverage: number;
275
- usdValue: number;
276
- triggerValue?: number | null;
277
- twapDuration?: string | null;
278
- tpSlTriggerType?: TpSlTriggerType | null;
279
- randomizeFlag: boolean;
280
- reduceOnlyFlag: boolean;
281
- status: OrderStatus;
386
+ parameters: OrderParameters;
282
387
  orderType: OrderType;
283
- direction?: OrderDirection | null;
388
+ status: OrderStatus;
284
389
  longAssets: OrderAssetDto[];
285
390
  shortAssets: OrderAssetDto[];
286
391
  createdAt: string;
@@ -447,7 +552,7 @@ export interface WebSocketMessage {
447
552
  /**
448
553
  * WebSocket response from HyperLiquid native API
449
554
  */
450
- export type HLChannel = 'webData3' | 'allMids' | 'activeAssetData' | 'candle' | 'spotState' | 'allDexsClearinghouseState' | 'allDexsAssetCtxs';
555
+ export type HLChannel = 'webData3' | 'allMids' | 'activeAssetData' | 'candle' | 'spotState' | 'allDexsClearinghouseState' | 'allDexsAssetCtxs' | 'userFills';
451
556
  export interface HLChannelDataMap {
452
557
  webData3: WebData3Response;
453
558
  allMids: WsAllMidsData;
@@ -459,6 +564,7 @@ export interface HLChannelDataMap {
459
564
  };
460
565
  allDexsClearinghouseState: AllDexsClearinghouseStateData;
461
566
  allDexsAssetCtxs: AllDexsAssetCtxsData;
567
+ userFills: any;
462
568
  }
463
569
  export interface WebData3UserState {
464
570
  agentAddress?: string;
@@ -0,0 +1,57 @@
1
+ import type { OpenLimitOrderDto, TpSlTriggerType, TriggerType, OrderDirection } from '../types';
2
+ /**
3
+ * Helper functions to safely extract values from order parameters
4
+ * based on the order type and parameter structure.
5
+ */
6
+ /**
7
+ * Get leverage from order parameters (available for Market, Trigger, Twap, Ladder orders)
8
+ */
9
+ export declare function getOrderLeverage(order: OpenLimitOrderDto): number | undefined;
10
+ /**
11
+ * Get USD value from order parameters (available for Market, Trigger, Twap, Ladder orders)
12
+ */
13
+ export declare function getOrderUsdValue(order: OpenLimitOrderDto): number | undefined;
14
+ /**
15
+ * Get trigger value from order parameters (available for TP/SL and Trigger orders)
16
+ */
17
+ export declare function getOrderTriggerValue(order: OpenLimitOrderDto): number | undefined;
18
+ /**
19
+ * Get TP/SL trigger type from order parameters (only for TP/SL orders)
20
+ */
21
+ export declare function getOrderTpSlTriggerType(order: OpenLimitOrderDto): TpSlTriggerType | undefined;
22
+ /**
23
+ * Get trigger type from order parameters (for Trigger orders)
24
+ */
25
+ export declare function getOrderTriggerType(order: OpenLimitOrderDto): TriggerType | undefined;
26
+ /**
27
+ * Get order direction from order parameters (for Trigger orders)
28
+ */
29
+ export declare function getOrderDirection(order: OpenLimitOrderDto): OrderDirection | undefined;
30
+ /**
31
+ * Get reduce only flag from order parameters (available for all order types)
32
+ */
33
+ export declare function getOrderReduceOnly(order: OpenLimitOrderDto): boolean;
34
+ /**
35
+ * Get TWAP duration from order parameters (only for TWAP orders)
36
+ */
37
+ export declare function getOrderTwapDuration(order: OpenLimitOrderDto): string | undefined;
38
+ /**
39
+ * Get ladder config from order parameters (only for Ladder orders)
40
+ */
41
+ export declare function getOrderLadderConfig(order: OpenLimitOrderDto): {
42
+ ratioStart: number;
43
+ ratioEnd: number;
44
+ numberOfLevels: number;
45
+ } | undefined;
46
+ /**
47
+ * Check if the order is a BTC Dominance trigger order
48
+ */
49
+ export declare function isBtcDomOrder(order: OpenLimitOrderDto): boolean;
50
+ /**
51
+ * Get trailing info from TP/SL order parameters
52
+ */
53
+ export declare function getOrderTrailingInfo(order: OpenLimitOrderDto): {
54
+ isTrailing: boolean;
55
+ trailingDeltaValue?: number;
56
+ trailingActivationValue?: number;
57
+ } | undefined;
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@pear-protocol/hyperliquid-sdk",
3
- "version": "0.0.74",
3
+ "version": "0.0.76",
4
4
  "description": "React SDK for Pear Protocol Hyperliquid API integration",
5
5
  "type": "module",
6
6
  "main": "dist/index.js",
@@ -1,19 +0,0 @@
1
- import type { SyncFillsResponseDto } from '../types';
2
- export interface AutoSyncFillsOptions {
3
- baseUrl: string;
4
- address: string | null;
5
- intervalMs?: number;
6
- aggregateByTime?: boolean;
7
- }
8
- export interface AutoSyncFillsState {
9
- lastRunAt: number | null;
10
- lastResult: SyncFillsResponseDto | null;
11
- error: string | null;
12
- isSyncing: boolean;
13
- triggerSync: () => Promise<void>;
14
- }
15
- /**
16
- * Listens to address changes and periodically syncs user fills
17
- * Defaults: aggregate=true, interval=60s
18
- */
19
- export declare function useAutoSyncFills(options: AutoSyncFillsOptions): AutoSyncFillsState;