@nktkas/hyperliquid
Version:
Hyperliquid API SDK for all major JS runtimes, written in TypeScript.
32 lines (31 loc) • 1.28 kB
JavaScript
import * as v from "valibot";
/**
* Subscription to context events for all perpetual assets.
* @see https://hyperliquid.gitbook.io/hyperliquid-docs/for-developers/api/websocket/subscriptions
*/ export const AssetCtxsRequest = /* @__PURE__ */ (()=>{
return v.object({
/** Type of subscription. */ type: v.literal("assetCtxs"),
/** DEX name (empty string for main dex). */ dex: v.optional(v.string())
});
})();
// ============================================================
// Execution Logic
// ============================================================
import { parse } from "../../../_base.js";
export function assetCtxs(config, paramsOrListener, listenerOrOptions, maybeOptions) {
const isListenerFirst = typeof paramsOrListener === "function";
const params = isListenerFirst ? {} : paramsOrListener;
const listener = isListenerFirst ? paramsOrListener : listenerOrOptions;
const options = isListenerFirst ? listenerOrOptions : maybeOptions;
const payload = parse(AssetCtxsRequest, {
type: "assetCtxs",
...params,
dex: params.dex ?? ""
});
return config.transport.subscribe(payload.type, payload, (e)=>{
if (e.detail.dex === payload.dex) {
listener(e.detail);
}
}, options);
}
//# sourceMappingURL=assetCtxs.js.map