@nktkas/hyperliquid
Version:
Hyperliquid API SDK for all major JS runtimes, written in TypeScript.
62 lines • 3.4 kB
JavaScript
import * as v from "valibot";
// ============================================================
// API Schemas
// ============================================================
import { Decimal, UnsignedDecimal } from "../../_schemas.js";
import { MetaResponse } from "./meta.js";
/**
* Request metadata and asset contexts.
* @see https://hyperliquid.gitbook.io/hyperliquid-docs/for-developers/api/info-endpoint/perpetuals#retrieve-perpetuals-asset-contexts-includes-mark-price-current-funding-open-interest-etc
*/
export const MetaAndAssetCtxsRequest = /* @__PURE__ */ (() => {
return v.pipe(v.object({
/** Type of request. */
type: v.pipe(v.literal("metaAndAssetCtxs"), v.description("Type of request.")),
/** DEX name (empty string for main dex). */
dex: v.pipe(v.optional(v.string()), v.description("DEX name (empty string for main dex).")),
}), v.description("Request metadata and asset contexts."));
})();
/**
* Metadata and context for perpetual assets.
* @see https://hyperliquid.gitbook.io/hyperliquid-docs/for-developers/api/info-endpoint/perpetuals#retrieve-perpetuals-asset-contexts-includes-mark-price-current-funding-open-interest-etc
*/
export const MetaAndAssetCtxsResponse = /* @__PURE__ */ (() => {
return v.pipe(v.tuple([
MetaResponse,
/** Array of contexts for each perpetual asset. */
v.pipe(v.array(
/** Context for a specific perpetual asset. */
v.pipe(v.object({
/** Previous day's closing price. */
prevDayPx: v.pipe(UnsignedDecimal, v.description("Previous day's closing price.")),
/** Daily notional volume. */
dayNtlVlm: v.pipe(UnsignedDecimal, v.description("Daily notional volume.")),
/** Mark price. */
markPx: v.pipe(UnsignedDecimal, v.description("Mark price.")),
/** Mid price. */
midPx: v.pipe(v.nullable(UnsignedDecimal), v.description("Mid price.")),
/** Funding rate. */
funding: v.pipe(Decimal, v.description("Funding rate.")),
/** Total open interest. */
openInterest: v.pipe(UnsignedDecimal, v.description("Total open interest.")),
/** Premium price. */
premium: v.pipe(v.nullable(Decimal), v.description("Premium price.")),
/** Oracle price. */
oraclePx: v.pipe(UnsignedDecimal, v.description("Oracle price.")),
/** Array of impact prices. */
impactPxs: v.pipe(v.nullable(v.array(v.string())), v.description("Array of impact prices.")),
/** Daily volume in base currency. */
dayBaseVlm: v.pipe(UnsignedDecimal, v.description("Daily volume in base currency.")),
}), v.description("Context for a specific perpetual asset."))), v.description("Array of contexts for each perpetual asset.")),
]), v.description("Metadata and context for perpetual assets."));
})();
export function metaAndAssetCtxs(config, paramsOrSignal, maybeSignal) {
const params = paramsOrSignal instanceof AbortSignal ? {} : paramsOrSignal;
const signal = paramsOrSignal instanceof AbortSignal ? paramsOrSignal : maybeSignal;
const request = v.parse(MetaAndAssetCtxsRequest, {
type: "metaAndAssetCtxs",
...params,
});
return config.transport.request("info", request, signal);
}
//# sourceMappingURL=metaAndAssetCtxs.js.map