@pear-protocol/hyperliquid-sdk 0.1.0 → 0.1.3
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/clients/hyperliquid.d.ts +8 -1
- package/dist/clients/positions.d.ts +1 -44
- package/dist/hooks/useAgentWallet.d.ts +1 -1
- package/dist/hooks/useAllUserBalances.d.ts +20 -6
- package/dist/hooks/useMarketData.d.ts +14 -8
- package/dist/hooks/usePosition.d.ts +2 -2
- package/dist/hooks/useTokenSelectionMetadata.d.ts +1 -1
- package/dist/hooks/useUserSelection.d.ts +16 -1
- package/dist/index.d.ts +204 -142
- package/dist/index.js +454 -384
- package/dist/store/hyperliquidDataStore.d.ts +8 -2
- package/dist/store/tokenSelectionMetadataStore.d.ts +2 -3
- package/dist/types.d.ts +65 -2
- package/dist/utils/position-validator.d.ts +1 -1
- package/dist/utils/token-metadata-extractor.d.ts +35 -20
- package/package.json +1 -1
|
@@ -1,5 +1,5 @@
|
|
|
1
|
-
import { ActiveAssetData, CandleChartData, CandleData, ClearinghouseState,
|
|
2
|
-
|
|
1
|
+
import { ActiveAssetData, CandleChartData, CandleData, ClearinghouseState, UniverseAsset, WebData3AssetCtx, WsAllMidsData, PerpDexsResponse } from '../types';
|
|
2
|
+
import { TokenMetadataBySymbol } from '../utils/token-metadata-extractor';
|
|
3
3
|
interface HyperliquidDataState {
|
|
4
4
|
allMids: WsAllMidsData | null;
|
|
5
5
|
activeAssetData: Record<string, ActiveAssetData> | null;
|
|
@@ -10,6 +10,9 @@ interface HyperliquidDataState {
|
|
|
10
10
|
rawClearinghouseStates: [string, ClearinghouseState][] | null;
|
|
11
11
|
perpMetaAssets: UniverseAsset[] | null;
|
|
12
12
|
tokenMetadata: TokenMetadataBySymbol;
|
|
13
|
+
perpDexs: PerpDexsResponse | null;
|
|
14
|
+
perpMetasByDex: Map<string, UniverseAsset[]> | null;
|
|
15
|
+
assetContextsByDex: Map<string, WebData3AssetCtx[]> | null;
|
|
13
16
|
setAllMids: (value: WsAllMidsData | null) => void;
|
|
14
17
|
setActiveAssetData: (value: Record<string, ActiveAssetData> | null | ((prev: Record<string, ActiveAssetData> | null) => Record<string, ActiveAssetData> | null)) => void;
|
|
15
18
|
deleteActiveAssetData: (key: string) => void;
|
|
@@ -22,6 +25,9 @@ interface HyperliquidDataState {
|
|
|
22
25
|
setAggregatedClearingHouseState: (value: ClearinghouseState | null) => void;
|
|
23
26
|
setRawClearinghouseStates: (value: [string, ClearinghouseState][] | null) => void;
|
|
24
27
|
setPerpMetaAssets: (value: UniverseAsset[] | null) => void;
|
|
28
|
+
setPerpDexs: (value: PerpDexsResponse | null) => void;
|
|
29
|
+
setPerpMetasByDex: (value: Map<string, UniverseAsset[]> | null) => void;
|
|
30
|
+
setAssetContextsByDex: (value: Map<string, WebData3AssetCtx[]> | null) => void;
|
|
25
31
|
}
|
|
26
32
|
export declare const useHyperliquidData: import("zustand").UseBoundStore<import("zustand").StoreApi<HyperliquidDataState>>;
|
|
27
33
|
export {};
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import type { TokenSelection, TokenMetadata, ActiveAssetsResponse
|
|
1
|
+
import type { TokenSelection, TokenMetadata, ActiveAssetsResponse } from "../types";
|
|
2
2
|
export interface TokenSelectionMetadataState {
|
|
3
3
|
isPriceDataReady: boolean;
|
|
4
4
|
isLoading: boolean;
|
|
@@ -12,10 +12,9 @@ export interface TokenSelectionMetadataState {
|
|
|
12
12
|
volume: string;
|
|
13
13
|
sumNetFunding: number;
|
|
14
14
|
maxLeverage: number;
|
|
15
|
-
|
|
15
|
+
minSize: Record<string, number>;
|
|
16
16
|
leverageMatched: boolean;
|
|
17
17
|
recompute: (args: {
|
|
18
|
-
perpMetaAssets: UniverseAsset[] | null;
|
|
19
18
|
tokenMetadata: Record<string, TokenMetadata | null>;
|
|
20
19
|
marketData: ActiveAssetsResponse | null;
|
|
21
20
|
longTokens: TokenSelection[];
|
package/dist/types.d.ts
CHANGED
|
@@ -628,8 +628,10 @@ export interface AssetCtx {
|
|
|
628
628
|
* Collateral token type
|
|
629
629
|
* 0 = USDC
|
|
630
630
|
* 360 = USDH
|
|
631
|
+
* 235 = USDE
|
|
632
|
+
* 268 = USDT0
|
|
631
633
|
*/
|
|
632
|
-
export type CollateralToken = 'USDC' | 'USDH';
|
|
634
|
+
export type CollateralToken = 'USDC' | 'USDH' | 'USDE' | 'USDT0';
|
|
633
635
|
/**
|
|
634
636
|
* Universe asset metadata
|
|
635
637
|
*/
|
|
@@ -804,6 +806,7 @@ export interface AssetMarketData {
|
|
|
804
806
|
export interface PairAssetDto {
|
|
805
807
|
asset: string;
|
|
806
808
|
weight: number;
|
|
809
|
+
metadata?: TokenMetadata | null;
|
|
807
810
|
}
|
|
808
811
|
export interface ActiveAssetGroupItem {
|
|
809
812
|
longAssets: PairAssetDto[];
|
|
@@ -817,7 +820,6 @@ export interface ActiveAssetGroupItem {
|
|
|
817
820
|
weightedRatio?: string;
|
|
818
821
|
weightedPrevRatio?: string;
|
|
819
822
|
weightedChange24h?: string;
|
|
820
|
-
collateralType: 'USDC' | 'USDH' | 'MIXED';
|
|
821
823
|
}
|
|
822
824
|
export interface ActiveAssetsResponse {
|
|
823
825
|
active: ActiveAssetGroupItem[];
|
|
@@ -884,3 +886,64 @@ export interface TokenEntry {
|
|
|
884
886
|
symbol: string;
|
|
885
887
|
data: AssetMarketData;
|
|
886
888
|
}
|
|
889
|
+
export interface PerpDex {
|
|
890
|
+
name: string;
|
|
891
|
+
fullName: string;
|
|
892
|
+
deployer: string;
|
|
893
|
+
oracleUpdater: string | null;
|
|
894
|
+
feeRecipient: string | null;
|
|
895
|
+
deployerFeeScale: string;
|
|
896
|
+
assetToStreamingOiCap: [string, string][];
|
|
897
|
+
assetToFundingMultiplier: [string, string][];
|
|
898
|
+
subDeployers: [string, string[]][];
|
|
899
|
+
lastDeployerFeeScaleChangeTime: string;
|
|
900
|
+
}
|
|
901
|
+
export type PerpDexsResponse = (PerpDex | null)[];
|
|
902
|
+
export interface SpotBalances {
|
|
903
|
+
[coin: string]: number;
|
|
904
|
+
}
|
|
905
|
+
export interface AvailableToTrades {
|
|
906
|
+
[collateralCoin: string]: number;
|
|
907
|
+
}
|
|
908
|
+
export type ExecutionType = "MARKET" | "TRIGGER" | "TWAP" | "LADDER" | "TP" | "SL" | "SPOT_MARKET" | "SPOT_LIMIT" | "SPOT_TWAP";
|
|
909
|
+
export type TpSlThresholdType = "PERCENTAGE" | "DOLLAR" | "POSITION_VALUE" | "PRICE" | "PRICE_RATIO" | "WEIGHTED_RATIO";
|
|
910
|
+
export interface PairAssetInput {
|
|
911
|
+
asset: string;
|
|
912
|
+
weight?: number;
|
|
913
|
+
}
|
|
914
|
+
export interface TpSlThresholdInput {
|
|
915
|
+
type: TpSlThresholdType;
|
|
916
|
+
value?: number;
|
|
917
|
+
isTrailing?: boolean;
|
|
918
|
+
trailingDeltaValue?: number;
|
|
919
|
+
trailingActivationValue?: number;
|
|
920
|
+
}
|
|
921
|
+
export interface LadderConfigInput {
|
|
922
|
+
ratioStart: number;
|
|
923
|
+
ratioEnd: number;
|
|
924
|
+
numberOfLevels: number;
|
|
925
|
+
}
|
|
926
|
+
export interface CreatePositionRequestInput {
|
|
927
|
+
slippage: number;
|
|
928
|
+
executionType: ExecutionType;
|
|
929
|
+
leverage: number;
|
|
930
|
+
usdValue: number;
|
|
931
|
+
longAssets?: PairAssetInput[];
|
|
932
|
+
shortAssets?: PairAssetInput[];
|
|
933
|
+
triggerValue?: string | number;
|
|
934
|
+
triggerType?: TriggerType;
|
|
935
|
+
direction?: "MORE_THAN" | "LESS_THAN";
|
|
936
|
+
assetName?: string;
|
|
937
|
+
marketCode?: string;
|
|
938
|
+
twapDuration?: number;
|
|
939
|
+
twapIntervalSeconds?: number;
|
|
940
|
+
randomizeExecution?: boolean;
|
|
941
|
+
referralCode?: string;
|
|
942
|
+
ladderConfig?: LadderConfigInput;
|
|
943
|
+
takeProfit?: TpSlThresholdInput | null;
|
|
944
|
+
stopLoss?: TpSlThresholdInput | null;
|
|
945
|
+
}
|
|
946
|
+
export interface CreatePositionResponseDto {
|
|
947
|
+
orderId: string;
|
|
948
|
+
fills?: ExternalFillDto[];
|
|
949
|
+
}
|
|
@@ -3,26 +3,6 @@ import type { WsAllMidsData, TokenMetadata, ActiveAssetData, UniverseAsset, WebD
|
|
|
3
3
|
* Extracts token metadata from aggregated WebData3 contexts and AllMids data
|
|
4
4
|
*/
|
|
5
5
|
export declare class TokenMetadataExtractor {
|
|
6
|
-
/**
|
|
7
|
-
* Extracts comprehensive token metadata
|
|
8
|
-
* @param symbol - Token symbol (e.g., "BTC", "TSLA")
|
|
9
|
-
* @param perpMetaAssets - Aggregated universe assets (flattened across dexes)
|
|
10
|
-
* @param finalAssetContexts - Aggregated asset contexts (flattened across dexes)
|
|
11
|
-
* @param allMids - AllMids data containing current prices
|
|
12
|
-
* @param activeAssetData - Optional active asset data containing leverage information
|
|
13
|
-
* @returns TokenMetadata or null if token not found
|
|
14
|
-
*/
|
|
15
|
-
static extractTokenMetadata(symbol: string, perpMetaAssets: UniverseAsset[] | null, finalAssetContexts: WebData3AssetCtx[] | null, allMids: WsAllMidsData | null, activeAssetData?: Record<string, ActiveAssetData> | null, finalAtOICaps?: string[] | null): TokenMetadata | null;
|
|
16
|
-
/**
|
|
17
|
-
* Extracts metadata for multiple tokens
|
|
18
|
-
* @param tokens - Array of token strings (e.g., "BTC", "TSLA")
|
|
19
|
-
* @param perpMetaAssets - Aggregated universe assets
|
|
20
|
-
* @param finalAssetContexts - Aggregated asset contexts
|
|
21
|
-
* @param allMids - AllMids data
|
|
22
|
-
* @param activeAssetData - Optional active asset data containing leverage information
|
|
23
|
-
* @returns Record of token string to TokenMetadata (keys match input tokens exactly)
|
|
24
|
-
*/
|
|
25
|
-
static extractMultipleTokensMetadata(tokens: string[], perpMetaAssets: UniverseAsset[] | null, finalAssetContexts: WebData3AssetCtx[] | null, allMids: WsAllMidsData | null, activeAssetData?: Record<string, ActiveAssetData> | null, finalAtOICaps?: string[] | null): Record<string, TokenMetadata | null>;
|
|
26
6
|
/**
|
|
27
7
|
* Checks if token data is available in aggregated universe assets
|
|
28
8
|
* @param symbol - Token symbol
|
|
@@ -30,4 +10,39 @@ export declare class TokenMetadataExtractor {
|
|
|
30
10
|
* @returns boolean indicating if token exists in universe
|
|
31
11
|
*/
|
|
32
12
|
static isTokenAvailable(symbol: string, perpMetaAssets: UniverseAsset[] | null): boolean;
|
|
13
|
+
/**
|
|
14
|
+
* Extracts token metadata using DEX-aware lookup (correctly matches perpMetas to assetContexts)
|
|
15
|
+
* @param symbol - Token symbol (e.g., "BTC", "TSLA")
|
|
16
|
+
* @param perpMetasByDex - Map of DEX name to UniverseAsset[]
|
|
17
|
+
* @param assetContextsByDex - Map of DEX name to WebData3AssetCtx[]
|
|
18
|
+
* @param allMids - AllMids data containing current prices
|
|
19
|
+
* @param activeAssetData - Optional active asset data containing leverage information
|
|
20
|
+
* @param finalAtOICaps - Optional array of symbols at OI caps
|
|
21
|
+
* @returns TokenMetadata or null if token not found
|
|
22
|
+
*/
|
|
23
|
+
static extractTokenMetadataByDex(symbol: string, perpMetasByDex: Map<string, UniverseAsset[]>, assetContextsByDex: Map<string, WebData3AssetCtx[]>, allMids: WsAllMidsData, activeAssetData?: Record<string, ActiveAssetData> | null, finalAtOICaps?: string[] | null): TokenMetadata | null;
|
|
33
24
|
}
|
|
25
|
+
export type TokenMetadataBySymbol = Record<string, TokenMetadata | null>;
|
|
26
|
+
export type TokenMetadataInputs = {
|
|
27
|
+
perpMetaAssets: UniverseAsset[] | null;
|
|
28
|
+
finalAssetContexts: WebData3AssetCtx[] | null;
|
|
29
|
+
allMids: WsAllMidsData | null;
|
|
30
|
+
activeAssetData: Record<string, ActiveAssetData> | null;
|
|
31
|
+
finalAtOICaps: string[] | null;
|
|
32
|
+
perpMetasByDex?: Map<string, UniverseAsset[]> | null;
|
|
33
|
+
assetContextsByDex?: Map<string, WebData3AssetCtx[]> | null;
|
|
34
|
+
};
|
|
35
|
+
export type RefreshTokenMetadataOptions = {
|
|
36
|
+
symbols?: string[];
|
|
37
|
+
oiCapsOnly?: boolean;
|
|
38
|
+
};
|
|
39
|
+
export declare const refreshTokenMetadata: (state: {
|
|
40
|
+
perpMetaAssets: UniverseAsset[] | null;
|
|
41
|
+
finalAssetContexts: WebData3AssetCtx[] | null;
|
|
42
|
+
allMids: WsAllMidsData | null;
|
|
43
|
+
activeAssetData: Record<string, ActiveAssetData> | null;
|
|
44
|
+
finalAtOICaps: string[] | null;
|
|
45
|
+
tokenMetadata: TokenMetadataBySymbol;
|
|
46
|
+
perpMetasByDex?: Map<string, UniverseAsset[]> | null;
|
|
47
|
+
assetContextsByDex?: Map<string, WebData3AssetCtx[]> | null;
|
|
48
|
+
}, overrides: Partial<TokenMetadataInputs>, options?: RefreshTokenMetadataOptions) => TokenMetadataBySymbol;
|