• Home
  • Features
  • Pricing
  • Docs
  • Announcements
  • Sign In

nktkas / hyperliquid / 29445874293

15 Jul 2026 07:47PM UTC coverage: 96.203% (+0.7%) from 95.46%
29445874293

push

github

web-flow
build(deps): bump actions/setup-node from 6 to 7 (#166)

Bumps [actions/setup-node](https://github.com/actions/setup-node) from 6 to 7.
- [Release notes](https://github.com/actions/setup-node/releases)
- [Commits](https://github.com/actions/setup-node/compare/v6...v7)

---
updated-dependencies:
- dependency-name: actions/setup-node
  dependency-version: '7'
  dependency-type: direct:production
  update-type: version-update:semver-major
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>

1065 of 1238 branches covered (86.03%)

Branch coverage included in aggregate %.

8944 of 9166 relevant lines covered (97.58%)

435.59 hits per line

Source File
Press 'n' to go to next uncovered line, 'b' for previous

81.25
/src/api/subscription/_methods/outcomeMetaUpdates.ts
1
import * as v from "@valibot/valibot";
168✔
2

3
// ============================================================
4
// API Schemas
5
// ============================================================
6

7
/**
8
 * Subscription to prediction market outcome metadata updates.
9
 * @see https://hyperliquid.gitbook.io/hyperliquid-docs/for-developers/api/websocket/subscriptions
10
 */
11
export const OutcomeMetaUpdatesRequest = /* @__PURE__ */ (() => {
168✔
12
  return v.object({
168✔
13
    /** Type of subscription. */
14
    type: v.literal("outcomeMetaUpdates"),
168✔
15
  });
168✔
16
})();
168✔
17
export type OutcomeMetaUpdatesRequest = v.InferOutput<typeof OutcomeMetaUpdatesRequest>;
18

19
/**
20
 * Event of prediction market outcome/question metadata updates.
21
 * @see https://hyperliquid.gitbook.io/hyperliquid-docs/for-developers/api/websocket/subscriptions
22
 */
23
export type OutcomeMetaUpdatesEvent = {
24
  /** Array of metadata update events. */
25
  updates: (
26
    | {
27
      /** Outcome created event. */
28
      outcomeCreated: {
29
        /** Outcome identifier. */
30
        outcome: number;
31
        /** Name of the outcome. */
32
        name: string;
33
        /** Description of the outcome. */
34
        description: string;
35
        /** Array of side specifications for this outcome. */
36
        sideSpecs: {
37
          /** Name of the side. */
38
          name: string;
39
          /** Token identifier for this side. */
40
          token?: number;
41
        }[];
42
        /** Quote token for this outcome. */
43
        quoteToken: string;
44
      };
45
    }
46
    | {
47
      /** Outcome settled event. */
48
      outcomeSettled: {
49
        /** Outcome identifier. */
50
        outcome: number;
51
      };
52
    }
53
    | {
54
      /** Question updated event. */
55
      questionUpdated: {
56
        /** Question identifier. */
57
        question: number;
58
        /** Name of the question. */
59
        name: string;
60
        /** Description of the question. */
61
        description: string;
62
        /** Fallback outcome identifier. */
63
        fallbackOutcome: number;
64
        /** Array of named outcome identifiers. */
65
        namedOutcomes: number[];
66
        /** Array of settled named outcome identifiers. */
67
        settledNamedOutcomes: number[];
68
      };
69
    }
70
    | {
71
      /** Question settled event. */
72
      questionSettled: {
73
        /** Question identifier. */
74
        question: number;
75
      };
76
    }
77
  )[];
78
};
79

80
// ============================================================
81
// Execution Logic
82
// ============================================================
83

84
import { parse } from "../../../_base.ts";
168✔
85
import type { ISubscription } from "../../../transport/mod.ts";
86
import type { SubscriptionConfig, SubscriptionOptions } from "./_base/mod.ts";
87

88
/**
89
 * Subscribe to prediction market outcome/question metadata updates.
90
 *
91
 * @param config General configuration for Subscription API subscriptions.
92
 * @param listener A callback function to be called when the event is received.
93
 * @param options Options to control the subscription lifecycle.
94
 * @return A request-promise that resolves with a {@link ISubscription} object to manage the subscription lifecycle.
95
 *
96
 * @throws {ValidationError} When the request parameters fail validation (before sending).
97
 * @throws {TransportError} When the transport layer throws an error.
98
 *
99
 * @example
100
 * ```ts
101
 * import { WebSocketTransport } from "@nktkas/hyperliquid";
102
 * import { outcomeMetaUpdates } from "@nktkas/hyperliquid/api/subscription";
103
 *
104
 * const transport = new WebSocketTransport();
105
 *
106
 * const sub = await outcomeMetaUpdates(
107
 *   { transport },
108
 *   (data) => console.log(data),
109
 * );
110
 * ```
111
 *
112
 * @see https://hyperliquid.gitbook.io/hyperliquid-docs/for-developers/api/websocket/subscriptions
113
 */
114
export function outcomeMetaUpdates(
168✔
115
  config: SubscriptionConfig,
168✔
116
  listener: (data: OutcomeMetaUpdatesEvent) => void,
168✔
117
  options?: SubscriptionOptions,
168✔
118
): Promise<ISubscription> {
119
  const payload = parse(OutcomeMetaUpdatesRequest, { type: "outcomeMetaUpdates" });
1✔
120
  return config.transport.subscribe<OutcomeMetaUpdatesEvent>(payload.type, payload, (e) => {
×
121
    listener(e.detail);
×
122
  }, options);
×
123
}
1✔
STATUS · Troubleshooting · Open an Issue · Sales · Support · CAREERS · ENTERPRISE · START FREE TRIAL · SCHEDULE DEMO
ANNOUNCEMENTS · TWITTER · TOS & SLA · Supported CI Services · What's a CI service? · Automated Testing

© 2026 Coveralls, Inc