UNPKG

@nktkas/hyperliquid

Version:

Hyperliquid API SDK for all major JS runtimes, written in TypeScript.

98 lines 4.1 kB
import type { HttpTransport } from "../transport/http/mod.js"; import type { WebSocketTransport } from "../transport/websocket/mod.js"; /** Options for creating a {@link SymbolConverter} instance. */ export interface SymbolConverterOptions { /** Transport instance to use for API requests. */ transport: HttpTransport | WebSocketTransport; /** Optional dex support: array of dex names, true for all dexs, or false/undefined to skip. */ dexs?: string[] | boolean; } /** * Utility class for converting asset symbols to their corresponding IDs and size decimals. * Supports perpetuals, spot markets, and optional builder dexs. * * @example * ```ts * import { HttpTransport } from "@nktkas/hyperliquid"; * import { SymbolConverter } from "@nktkas/hyperliquid/utils"; * * const transport = new HttpTransport(); // or `WebSocketTransport` * const converter = await SymbolConverter.create({ transport }); * * // By default, dexs are not loaded; specify them when creating an instance * // const converter = await SymbolConverter.create({ transport, dexs: ["test"] }); * * const btcId = converter.getAssetId("BTC"); // perpetual → 0 * const hypeUsdcId = converter.getAssetId("HYPE/USDC"); // spot market → 10107 * const dexAbcId = converter.getAssetId("test:ABC"); // builder dex (if enabled) → 110000 * * const btcSzDecimals = converter.getSzDecimals("BTC"); // perpetual → 5 * const hypeUsdcSzDecimals = converter.getSzDecimals("HYPE/USDC"); // spot market → 2 * const dexAbcSzDecimals = converter.getSzDecimals("test:ABC"); // builder dex (if enabled) → 0 * * const spotPairId = converter.getSpotPairId("HFUN/USDC"); // → "@2" * ``` * * @see https://hyperliquid.gitbook.io/hyperliquid-docs/for-developers/api/asset-ids */ export declare class SymbolConverter { private readonly transport; private readonly dexOption; private readonly nameToAssetId; private readonly nameToSzDecimals; private readonly nameToSpotPairId; private constructor(); /** * Create and initialize a SymbolConverter instance. * * @param options - Configuration options including transport and optional dex support. * * @returns Initialized SymbolConverter instance. * * @example * ```ts * import { HttpTransport } from "@nktkas/hyperliquid"; * import { SymbolConverter } from "@nktkas/hyperliquid/utils"; * * const transport = new HttpTransport(); // or `WebSocketTransport` * const converter = await SymbolConverter.create({ transport }); * ``` */ static create(options: SymbolConverterOptions): Promise<SymbolConverter>; /** * Reload asset mappings from the API. * Useful for refreshing data when new assets are added. */ reload(): Promise<void>; private processDefaultPerps; private processBuilderDexs; private processBuilderDexResult; private processSpotAssets; /** * Get asset ID for a coin. * - For Perpetuals, use the coin name (e.g., "BTC"). * - For Spot markets, use the "BASE/QUOTE" format (e.g., "HYPE/USDC"). * - For Builder Dex assets, use the "DEX_NAME:ASSET_NAME" format (e.g., "test:ABC"). * * @example "BTC" → 0, "HYPE/USDC" → 10107, "test:ABC" → 110000 */ getAssetId(name: string): number | undefined; /** * Get size decimals for a coin. * - For Perpetuals, use the coin name (e.g., "BTC"). * - For Spot markets, use the "BASE/QUOTE" format (e.g., "HYPE/USDC"). * - For Builder Dex assets, use the "DEX_NAME:ASSET_NAME" format (e.g., "test:ABC"). * * @example "BTC" → 5, "HYPE/USDC" → 2, "test:ABC" → 0 */ getSzDecimals(name: string): number | undefined; /** * Get spot pair ID for info endpoints and subscriptions (e.g., l2book, trades). * * Accepts spot markets in the "BASE/QUOTE" format (e.g., "HFUN/USDC"). * * @example "HFUN/USDC" → "@2", "PURR/USDC" → "PURR/USDC" */ getSpotPairId(name: string): string | undefined; } //# sourceMappingURL=symbolConverter.d.ts.map