@pear-protocol/hyperliquid-sdk 0.0.60-beta-usdh-1 → 0.0.60-beta-usdh-2

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.
@@ -22,3 +22,44 @@ export interface CancelTwapResponseDto {
22
22
  cancelledAt: string;
23
23
  }
24
24
  export declare function cancelTwapOrder(baseUrl: string, orderId: string): Promise<ApiResponse<CancelTwapResponseDto>>;
25
+ export interface SpotOrderRequestInput {
26
+ /** Asset to buy/sell (e.g., "USDH") */
27
+ asset: string;
28
+ /** Whether to buy (true) or sell (false) the asset */
29
+ isBuy: boolean;
30
+ /** Amount of asset to buy/sell (minimum: 11) */
31
+ amount: number;
32
+ }
33
+ /** Filled order status from Hyperliquid */
34
+ export interface SpotOrderFilledStatus {
35
+ filled: {
36
+ totalSz: string;
37
+ avgPx: string;
38
+ oid: number;
39
+ cloid: string;
40
+ };
41
+ }
42
+ /** Hyperliquid order response data */
43
+ export interface SpotOrderHyperliquidData {
44
+ statuses: SpotOrderFilledStatus[];
45
+ }
46
+ /** Hyperliquid result from spot order execution */
47
+ export interface SpotOrderHyperliquidResult {
48
+ status: 'ok' | 'error';
49
+ response: {
50
+ type: 'order';
51
+ data: SpotOrderHyperliquidData;
52
+ };
53
+ }
54
+ export interface SpotOrderResponseDto {
55
+ orderId: string;
56
+ status: 'EXECUTED' | 'FAILED' | 'PENDING';
57
+ asset: string;
58
+ createdAt: string;
59
+ hyperliquidResult?: SpotOrderHyperliquidResult;
60
+ }
61
+ /**
62
+ * Execute a spot order (swap) using Pear Hyperliquid service
63
+ * POST /orders/spot
64
+ */
65
+ export declare function executeSpotOrder(baseUrl: string, payload: SpotOrderRequestInput): Promise<ApiResponse<SpotOrderResponseDto>>;
@@ -10,6 +10,7 @@ export * from './useAgentWallet';
10
10
  export * from './useAutoSyncFills';
11
11
  export * from './usePosition';
12
12
  export * from './useOrders';
13
+ export * from './useSpotOrder';
13
14
  export * from './useTwap';
14
15
  export * from './useNotifications';
15
16
  export * from './useMarketData';
@@ -0,0 +1,13 @@
1
+ import type { ApiResponse, ApiErrorResponse } from '../types';
2
+ import { type SpotOrderRequestInput, type SpotOrderResponseDto } from '../clients/orders';
3
+ export interface UseSpotOrderResult {
4
+ executeSpotOrder: (payload: SpotOrderRequestInput) => Promise<ApiResponse<SpotOrderResponseDto>>;
5
+ isLoading: boolean;
6
+ error: ApiErrorResponse | null;
7
+ resetError: () => void;
8
+ }
9
+ /**
10
+ * Hook for executing spot orders (swaps) on Hyperliquid
11
+ * Use this to swap between USDC and USDH or other spot assets
12
+ */
13
+ export declare function useSpotOrder(): UseSpotOrderResult;
package/dist/index.d.ts CHANGED
@@ -922,6 +922,47 @@ interface CancelTwapResponseDto {
922
922
  cancelledAt: string;
923
923
  }
924
924
  declare function cancelTwapOrder(baseUrl: string, orderId: string): Promise<ApiResponse<CancelTwapResponseDto>>;
925
+ interface SpotOrderRequestInput {
926
+ /** Asset to buy/sell (e.g., "USDH") */
927
+ asset: string;
928
+ /** Whether to buy (true) or sell (false) the asset */
929
+ isBuy: boolean;
930
+ /** Amount of asset to buy/sell (minimum: 11) */
931
+ amount: number;
932
+ }
933
+ /** Filled order status from Hyperliquid */
934
+ interface SpotOrderFilledStatus {
935
+ filled: {
936
+ totalSz: string;
937
+ avgPx: string;
938
+ oid: number;
939
+ cloid: string;
940
+ };
941
+ }
942
+ /** Hyperliquid order response data */
943
+ interface SpotOrderHyperliquidData {
944
+ statuses: SpotOrderFilledStatus[];
945
+ }
946
+ /** Hyperliquid result from spot order execution */
947
+ interface SpotOrderHyperliquidResult {
948
+ status: 'ok' | 'error';
949
+ response: {
950
+ type: 'order';
951
+ data: SpotOrderHyperliquidData;
952
+ };
953
+ }
954
+ interface SpotOrderResponseDto {
955
+ orderId: string;
956
+ status: 'EXECUTED' | 'FAILED' | 'PENDING';
957
+ asset: string;
958
+ createdAt: string;
959
+ hyperliquidResult?: SpotOrderHyperliquidResult;
960
+ }
961
+ /**
962
+ * Execute a spot order (swap) using Pear Hyperliquid service
963
+ * POST /orders/spot
964
+ */
965
+ declare function executeSpotOrder(baseUrl: string, payload: SpotOrderRequestInput): Promise<ApiResponse<SpotOrderResponseDto>>;
925
966
 
926
967
  type ExecutionType = "MARKET" | "LIMIT" | "TWAP" | "LADDER" | "LIMIT_BTCDOM";
927
968
  type TpSlThresholdType = "PERCENTAGE" | "DOLLAR" | "POSITION_VALUE";
@@ -1068,6 +1109,18 @@ declare function useOrders(): {
1068
1109
  readonly isLoading: boolean;
1069
1110
  };
1070
1111
 
1112
+ interface UseSpotOrderResult {
1113
+ executeSpotOrder: (payload: SpotOrderRequestInput) => Promise<ApiResponse<SpotOrderResponseDto>>;
1114
+ isLoading: boolean;
1115
+ error: ApiErrorResponse | null;
1116
+ resetError: () => void;
1117
+ }
1118
+ /**
1119
+ * Hook for executing spot orders (swaps) on Hyperliquid
1120
+ * Use this to swap between USDC and USDH or other spot assets
1121
+ */
1122
+ declare function useSpotOrder(): UseSpotOrderResult;
1123
+
1071
1124
  declare function useTwap(): {
1072
1125
  readonly orders: TwapMonitoringDto[];
1073
1126
  readonly cancelTwap: (orderId: string) => Promise<ApiResponse<CancelTwapResponseDto>>;
@@ -1392,5 +1445,5 @@ declare function isHip3Market(symbol: string): boolean;
1392
1445
 
1393
1446
  declare const useMarketData: any;
1394
1447
 
1395
- export { AccountSummaryCalculator, ConflictDetector, MINIMUM_ASSET_USD_VALUE, MinimumPositionSizeError, PearHyperliquidProvider, TokenMetadataExtractor, adjustAdvancePosition, adjustOrder, adjustPosition, calculateMinimumPositionValue, calculateWeightedRatio, cancelOrder, cancelTwap, cancelTwapOrder, closeAllPositions, closePosition, computeBasketCandles, createCandleLookups, createPosition, getAvailableMarkets, getCompleteTimestamps, getMarketPrefix, getPortfolio, isHip3Market, mapCandleIntervalToTradingViewInterval, mapTradingViewIntervalToCandleInterval, markNotificationReadById, markNotificationsRead, toBackendSymbol, toBackendSymbolWithMarket, toDisplaySymbol, toggleWatchlist, updateRiskParameters, useAccountSummary, useActiveBaskets, useAgentWallet, useAllBaskets, useAuth, useAutoSyncFills, useBasketCandles, useFindBasket, useHighlightedBaskets, useHistoricalPriceData, useHistoricalPriceDataStore, useHyperliquidNativeWebSocket, useHyperliquidWebSocket, useMarketData, useMarketDataAllPayload, useMarketDataPayload, useNotifications, useOpenOrders, useOrders, usePearHyperliquid, usePerformanceOverlays, usePerpMetaAssets, usePortfolio, usePosition, useTokenSelectionMetadata, useTopGainers, useTopLosers, useTradeHistories, useTwap, useUserSelection, useWatchlist, useWatchlistBaskets, useWebData, validateMinimumAssetSize, validatePositionSize };
1396
- 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, ToggleWatchlistResponseDto, TokenConflict, TokenHistoricalPriceData, TokenMetadata, TokenSelection, TpSlThresholdInput, TpSlThresholdType, TradeHistoryAssetDataDto, TradeHistoryDataDto, TwapChunkStatusDto, TwapMonitoringDto, TwapSliceFillResponseItem, UniverseAsset, UpdateRiskParametersRequestInput, UpdateRiskParametersResponseDto, UseAuthOptions, UseBasketCandlesReturn, UseHistoricalPriceDataReturn, UseNotificationsResult, UsePerformanceOverlaysReturn, UsePortfolioResult, UseTokenSelectionMetadataReturn, UserProfile, UserSelectionState, WatchlistItemDto, WebSocketAckResponse, WebSocketChannel, WebSocketConnectionState, WebSocketDataMessage, WebSocketMessage, WebSocketSubscribeMessage, WsAllMidsData };
1448
+ export { AccountSummaryCalculator, ConflictDetector, MINIMUM_ASSET_USD_VALUE, 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, updateRiskParameters, useAccountSummary, useActiveBaskets, useAgentWallet, useAllBaskets, 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, validateMinimumAssetSize, validatePositionSize };
1449
+ 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, SpotOrderFilledStatus, SpotOrderHyperliquidData, SpotOrderHyperliquidResult, SpotOrderRequestInput, SpotOrderResponseDto, ToggleWatchlistResponseDto, TokenConflict, TokenHistoricalPriceData, TokenMetadata, TokenSelection, TpSlThresholdInput, TpSlThresholdType, TradeHistoryAssetDataDto, TradeHistoryDataDto, TwapChunkStatusDto, TwapMonitoringDto, TwapSliceFillResponseItem, UniverseAsset, UpdateRiskParametersRequestInput, UpdateRiskParametersResponseDto, UseAuthOptions, UseBasketCandlesReturn, UseHistoricalPriceDataReturn, UseNotificationsResult, UsePerformanceOverlaysReturn, UsePortfolioResult, UseSpotOrderResult, UseTokenSelectionMetadataReturn, UserProfile, UserSelectionState, WatchlistItemDto, WebSocketAckResponse, WebSocketChannel, WebSocketConnectionState, WebSocketDataMessage, WebSocketMessage, WebSocketSubscribeMessage, WsAllMidsData };
package/dist/index.js CHANGED
@@ -6981,8 +6981,15 @@ function usePosition() {
6981
6981
  async function adjustOrder(baseUrl, orderId, payload) {
6982
6982
  const url = joinUrl(baseUrl, `/orders/${orderId}/adjust`);
6983
6983
  try {
6984
- const resp = await apiClient.put(url, payload, { headers: { 'Content-Type': 'application/json' }, timeout: 60000 });
6985
- return { data: resp.data, status: resp.status, headers: resp.headers };
6984
+ const resp = await apiClient.put(url, payload, {
6985
+ headers: { 'Content-Type': 'application/json' },
6986
+ timeout: 60000,
6987
+ });
6988
+ return {
6989
+ data: resp.data,
6990
+ status: resp.status,
6991
+ headers: resp.headers,
6992
+ };
6986
6993
  }
6987
6994
  catch (error) {
6988
6995
  throw toApiError(error);
@@ -6991,8 +6998,14 @@ async function adjustOrder(baseUrl, orderId, payload) {
6991
6998
  async function cancelOrder(baseUrl, orderId) {
6992
6999
  const url = joinUrl(baseUrl, `/orders/${orderId}/cancel`);
6993
7000
  try {
6994
- const resp = await apiClient.delete(url, { timeout: 60000 });
6995
- return { data: resp.data, status: resp.status, headers: resp.headers };
7001
+ const resp = await apiClient.delete(url, {
7002
+ timeout: 60000,
7003
+ });
7004
+ return {
7005
+ data: resp.data,
7006
+ status: resp.status,
7007
+ headers: resp.headers,
7008
+ };
6996
7009
  }
6997
7010
  catch (error) {
6998
7011
  throw toApiError(error);
@@ -7002,7 +7015,32 @@ async function cancelTwapOrder(baseUrl, orderId) {
7002
7015
  const url = joinUrl(baseUrl, `/orders/${orderId}/twap/cancel`);
7003
7016
  try {
7004
7017
  const resp = await apiClient.post(url, {}, { headers: { 'Content-Type': 'application/json' }, timeout: 60000 });
7005
- return { data: resp.data, status: resp.status, headers: resp.headers };
7018
+ return {
7019
+ data: resp.data,
7020
+ status: resp.status,
7021
+ headers: resp.headers,
7022
+ };
7023
+ }
7024
+ catch (error) {
7025
+ throw toApiError(error);
7026
+ }
7027
+ }
7028
+ /**
7029
+ * Execute a spot order (swap) using Pear Hyperliquid service
7030
+ * POST /orders/spot
7031
+ */
7032
+ async function executeSpotOrder(baseUrl, payload) {
7033
+ const url = joinUrl(baseUrl, '/orders/spot');
7034
+ try {
7035
+ const resp = await apiClient.post(url, payload, {
7036
+ headers: { 'Content-Type': 'application/json' },
7037
+ timeout: 60000,
7038
+ });
7039
+ return {
7040
+ data: resp.data,
7041
+ status: resp.status,
7042
+ headers: resp.headers,
7043
+ };
7006
7044
  }
7007
7045
  catch (error) {
7008
7046
  throw toApiError(error);
@@ -7058,6 +7096,45 @@ function useOrders() {
7058
7096
  return { adjustOrder: adjustOrder$1, cancelOrder: cancelOrder$1, cancelTwapOrder: cancelTwapOrder$1, openOrders: enrichedOpenOrders, isLoading };
7059
7097
  }
7060
7098
 
7099
+ /**
7100
+ * Hook for executing spot orders (swaps) on Hyperliquid
7101
+ * Use this to swap between USDC and USDH or other spot assets
7102
+ */
7103
+ function useSpotOrder() {
7104
+ const context = useContext(PearHyperliquidContext);
7105
+ if (!context) {
7106
+ throw new Error('useSpotOrder must be used within a PearHyperliquidProvider');
7107
+ }
7108
+ const { apiBaseUrl } = context;
7109
+ const [isLoading, setIsLoading] = useState(false);
7110
+ const [error, setError] = useState(null);
7111
+ const resetError = useCallback(() => {
7112
+ setError(null);
7113
+ }, []);
7114
+ const executeSpotOrder$1 = useCallback(async (payload) => {
7115
+ setIsLoading(true);
7116
+ setError(null);
7117
+ try {
7118
+ const response = await executeSpotOrder(apiBaseUrl, payload);
7119
+ return response;
7120
+ }
7121
+ catch (err) {
7122
+ const apiError = err;
7123
+ setError(apiError);
7124
+ throw apiError;
7125
+ }
7126
+ finally {
7127
+ setIsLoading(false);
7128
+ }
7129
+ }, [apiBaseUrl]);
7130
+ return {
7131
+ executeSpotOrder: executeSpotOrder$1,
7132
+ isLoading,
7133
+ error,
7134
+ resetError,
7135
+ };
7136
+ }
7137
+
7061
7138
  function useTwap() {
7062
7139
  const twapDetails = useUserData(state => state.twapDetails);
7063
7140
  const context = useContext(PearHyperliquidContext);
@@ -7816,4 +7893,4 @@ function mapCandleIntervalToTradingViewInterval(interval) {
7816
7893
  }
7817
7894
  }
7818
7895
 
7819
- export { AccountSummaryCalculator, ConflictDetector, MINIMUM_ASSET_USD_VALUE, MinimumPositionSizeError, PearHyperliquidProvider, TokenMetadataExtractor, adjustAdvancePosition, adjustOrder, adjustPosition, calculateMinimumPositionValue, calculateWeightedRatio, cancelOrder, cancelTwap, cancelTwapOrder, closeAllPositions, closePosition, computeBasketCandles, createCandleLookups, createPosition, getAvailableMarkets, getCompleteTimestamps, getMarketPrefix, getPortfolio, isHip3Market, mapCandleIntervalToTradingViewInterval, mapTradingViewIntervalToCandleInterval, markNotificationReadById, markNotificationsRead, toBackendSymbol, toBackendSymbolWithMarket, toDisplaySymbol, toggleWatchlist, updateRiskParameters, useAccountSummary, useActiveBaskets, useAgentWallet, useAllBaskets, useAuth, useAutoSyncFills, useBasketCandles, useFindBasket, useHighlightedBaskets, useHistoricalPriceData, useHistoricalPriceDataStore, useHyperliquidNativeWebSocket, useHyperliquidWebSocket, useMarketData, useMarketDataAllPayload, useMarketDataPayload, useNotifications, useOpenOrders, useOrders, usePearHyperliquid, usePerformanceOverlays, usePerpMetaAssets, usePortfolio, usePosition, useTokenSelectionMetadata, useTopGainers, useTopLosers, useTradeHistories, useTwap, useUserSelection, useWatchlist, useWatchlistBaskets, useWebData, validateMinimumAssetSize, validatePositionSize };
7896
+ export { AccountSummaryCalculator, ConflictDetector, MINIMUM_ASSET_USD_VALUE, 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, updateRiskParameters, useAccountSummary, useActiveBaskets, useAgentWallet, useAllBaskets, 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, validateMinimumAssetSize, validatePositionSize };
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@pear-protocol/hyperliquid-sdk",
3
- "version": "0.0.60-beta-usdh-1",
3
+ "version": "0.0.60-beta-usdh-2",
4
4
  "description": "React SDK for Pear Protocol Hyperliquid API integration",
5
5
  "type": "module",
6
6
  "main": "dist/index.js",