OpenPond
1Branch0Tags
GL
glucryptoMerge commit 'refs/tmp/prod-master'
typescript
import { extractHyperliquidDex, fetchHyperliquidPerpMarketInfo, fetchHyperliquidSpotMarketInfo, fetchHyperliquidSpotTickSize, fetchHyperliquidTickSize, normalizeHyperliquidBaseSymbol, resolveHyperliquidChainConfig, resolveHyperliquidPair, type HyperliquidEnvironment, type HyperliquidPerpMarketInfo, type HyperliquidSpotMarketInfo, type HyperliquidTickSize, } from "opentool/adapters/hyperliquid"; export type PerpMarketInfo = HyperliquidPerpMarketInfo; export type SpotMarketInfo = HyperliquidSpotMarketInfo; export type TickSize = HyperliquidTickSize; export function resolveChainConfig(environment: HyperliquidEnvironment): { chain: string; rpcUrl?: string; } { return resolveHyperliquidChainConfig(environment); } export function resolvePerpSymbol(asset: string): string { const raw = asset.trim(); if (!raw) return raw; const dex = extractHyperliquidDex(raw); const base = normalizeHyperliquidBaseSymbol(raw) ?? raw.toUpperCase(); return dex ? `${dex}:${base}` : base; } export function resolveSpotSymbol(asset: string): { symbol: string; base: string; quote: string; } { const raw = asset.trim().toUpperCase(); if (!raw) { return { symbol: raw, base: raw, quote: "USDC" }; } const pair = resolveHyperliquidPair(raw); if (pair) { const [base, quote] = pair.split("/"); return { symbol: pair, base: base?.trim() ?? raw, quote: quote?.trim() ?? "USDC", }; } const base = normalizeHyperliquidBaseSymbol(raw) ?? raw; return { symbol: `${base}/USDC`, base, quote: "USDC" }; } export async function fetchPerpMarketInfo(params: { environment: HyperliquidEnvironment; symbol: string; }): Promise<PerpMarketInfo> { return fetchHyperliquidPerpMarketInfo(params); } export async function fetchSpotMarketInfo(params: { environment: HyperliquidEnvironment; base: string; quote: string; }): Promise<SpotMarketInfo> { return fetchHyperliquidSpotMarketInfo(params); } export { fetchHyperliquidTickSize, fetchHyperliquidSpotTickSize };