opentool 0.19.8 → 0.20.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -1,4 +1,4 @@
1
- export { D as DEFAULT_HYPERLIQUID_MARKET_SLIPPAGE_BPS, a as DEFAULT_HYPERLIQUID_TPSL_MARKET_SLIPPAGE_BPS, H as HYPERLIQUID_HIP3_DEXES, b as HyperliquidAbstraction, c as HyperliquidAccountMode, d as HyperliquidActiveAsset, e as HyperliquidApiError, bg as HyperliquidApproveBuilderFeeOptions, bh as HyperliquidApproveBuilderFeeResponse, f as HyperliquidApproximateLiquidationParams, i as HyperliquidBuilderApprovalError, j as HyperliquidBuilderFee, bi as HyperliquidClearinghouseState, bj as HyperliquidDepositResult, k as HyperliquidEnvironment, l as HyperliquidExchangeClient, m as HyperliquidExchangeResponse, n as HyperliquidGrouping, o as HyperliquidGuardError, p as HyperliquidHip3Dex, r as HyperliquidInfoClient, s as HyperliquidMarketDescriptor, t as HyperliquidMarketDescriptorInput, u as HyperliquidMarketIdentityInput, x as HyperliquidOrderIntent, bk as HyperliquidOrderOptions, bl as HyperliquidOrderResponse, bm as HyperliquidOrderStatus, y as HyperliquidParsedSymbol, z as HyperliquidParsedSymbolKind, B as HyperliquidPlaceOrderWithTpSlOptions, C as HyperliquidPlacePositionTpSlOptions, I as HyperliquidResolvedMarketDescriptor, K as HyperliquidTermsError, M as HyperliquidTimeInForce, N as HyperliquidTpSlExecutionType, O as HyperliquidTpSlLegInput, P as HyperliquidTriggerOptions, Q as HyperliquidTriggerType, bn as HyperliquidWithdrawResult, R as MarketIdentity, bo as approveHyperliquidBuilderFee, S as batchModifyHyperliquidOrders, T as buildHyperliquidMarketDescriptor, U as buildHyperliquidMarketIdentity, V as buildHyperliquidProfileAssets, X as cancelAllHyperliquidOrders, Y as cancelHyperliquidOrders, Z as cancelHyperliquidOrdersByCloid, $ as cancelHyperliquidTwapOrder, a0 as computeHyperliquidMarketIocLimitPrice, bp as createHyperliquidActionHash, a1 as createHyperliquidSubAccount, a2 as createMonotonicNonceFactory, bq as depositToHyperliquidBridge, a3 as estimateHyperliquidLiquidationPrice, a4 as extractHyperliquidDex, a6 as fetchHyperliquidActiveAsset, a8 as fetchHyperliquidAssetCtxs, br as fetchHyperliquidClearinghouseState, ab as fetchHyperliquidDexMetaAndAssetCtxs, ac as fetchHyperliquidFrontendOpenOrders, ad as fetchHyperliquidFrontendOpenOrdersAcrossDexes, ae as fetchHyperliquidHistoricalOrders, af as fetchHyperliquidMeta, ag as fetchHyperliquidMetaAndAssetCtxs, ah as fetchHyperliquidOpenOrders, ai as fetchHyperliquidOpenOrdersAcrossDexes, aj as fetchHyperliquidOrderStatus, al as fetchHyperliquidPreTransferCheck, am as fetchHyperliquidResolvedInfoCoin, an as fetchHyperliquidResolvedMarketDescriptor, ao as fetchHyperliquidSizeDecimals, aq as fetchHyperliquidSpotAssetCtxs, ar as fetchHyperliquidSpotClearinghouseState, at as fetchHyperliquidSpotMeta, au as fetchHyperliquidSpotMetaAndAssetCtxs, ax as fetchHyperliquidTickSize, ay as fetchHyperliquidUserFills, az as fetchHyperliquidUserFillsByTime, aA as fetchHyperliquidUserRateLimit, aB as formatHyperliquidMarketablePrice, aD as formatHyperliquidPrice, aE as formatHyperliquidSize, bs as getHyperliquidMaxBuilderFee, aF as getKnownHyperliquidDexes, aG as isHyperliquidSpotSymbol, aH as modifyHyperliquidOrder, aI as normalizeHyperliquidBaseSymbol, aK as normalizeHyperliquidMetaSymbol, aL as normalizeSpotTokenName, aM as parseHyperliquidSymbol, aN as parseSpotPairSymbol, bt as placeHyperliquidOrder, aO as placeHyperliquidOrderWithTpSl, aP as placeHyperliquidPositionTpSl, aQ as placeHyperliquidTwapOrder, aR as reserveHyperliquidRequestWeight, aS as resolveHyperliquidAbstractionFromMode, aU as resolveHyperliquidLeverageMode, aV as resolveHyperliquidMarketDataCoin, aX as resolveHyperliquidOrderSymbol, aY as resolveHyperliquidPair, aZ as resolveHyperliquidPerpSymbol, a_ as resolveHyperliquidProfileChain, a$ as resolveHyperliquidSpotSymbol, b0 as resolveHyperliquidSymbol, b1 as resolveSpotMidCandidates, b2 as resolveSpotTokenCandidates, b4 as scheduleHyperliquidCancel, b5 as sendHyperliquidSpot, b6 as setHyperliquidAccountAbstractionMode, b7 as setHyperliquidPortfolioMargin, b8 as supportsHyperliquidBuilderFee, b9 as transferHyperliquidSubAccount, ba as updateHyperliquidIsolatedMargin, bb as updateHyperliquidLeverage, bu as withdrawFromHyperliquid } from '../../browser-DhzKDXIg.js';
1
+ export { D as DEFAULT_HYPERLIQUID_MARKET_SLIPPAGE_BPS, a as DEFAULT_HYPERLIQUID_TPSL_MARKET_SLIPPAGE_BPS, H as HYPERLIQUID_HIP3_DEXES, b as HyperliquidAbstraction, c as HyperliquidAccountMode, d as HyperliquidActiveAsset, e as HyperliquidApiError, bl as HyperliquidApproveBuilderFeeOptions, bm as HyperliquidApproveBuilderFeeResponse, f as HyperliquidApproximateLiquidationParams, i as HyperliquidBuilderApprovalError, j as HyperliquidBuilderFee, bn as HyperliquidClearinghouseState, bo as HyperliquidDepositResult, k as HyperliquidEnvironment, l as HyperliquidExchangeClient, m as HyperliquidExchangeResponse, n as HyperliquidGrouping, o as HyperliquidGuardError, p as HyperliquidHip3Dex, r as HyperliquidInfoClient, s as HyperliquidMarketDescriptor, t as HyperliquidMarketDescriptorInput, u as HyperliquidMarketIdentityInput, x as HyperliquidOrderIntent, bp as HyperliquidOrderOptions, bq as HyperliquidOrderResponse, br as HyperliquidOrderStatus, y as HyperliquidOutcomeMarketIdentityInput, z as HyperliquidOutcomeSymbol, A as HyperliquidParsedSymbol, B as HyperliquidParsedSymbolKind, E as HyperliquidPlaceOrderWithTpSlOptions, F as HyperliquidPlacePositionTpSlOptions, K as HyperliquidResolvedMarketDescriptor, M as HyperliquidTermsError, O as HyperliquidTimeInForce, P as HyperliquidTpSlExecutionType, Q as HyperliquidTpSlLegInput, R as HyperliquidTriggerOptions, S as HyperliquidTriggerType, bs as HyperliquidWithdrawResult, T as MarketIdentity, bt as approveHyperliquidBuilderFee, U as batchModifyHyperliquidOrders, V as buildHyperliquidMarketDescriptor, W as buildHyperliquidMarketIdentity, X as buildHyperliquidOutcomeMarketIdentity, Y as buildHyperliquidProfileAssets, $ as cancelAllHyperliquidOrders, a0 as cancelHyperliquidOrders, a1 as cancelHyperliquidOrdersByCloid, a2 as cancelHyperliquidTwapOrder, a3 as computeHyperliquidMarketIocLimitPrice, bu as createHyperliquidActionHash, a4 as createHyperliquidSubAccount, a5 as createMonotonicNonceFactory, bv as depositToHyperliquidBridge, a6 as estimateHyperliquidLiquidationPrice, a7 as extractHyperliquidDex, a9 as fetchHyperliquidActiveAsset, ab as fetchHyperliquidAssetCtxs, bw as fetchHyperliquidClearinghouseState, ae as fetchHyperliquidDexMetaAndAssetCtxs, af as fetchHyperliquidFrontendOpenOrders, ag as fetchHyperliquidFrontendOpenOrdersAcrossDexes, ah as fetchHyperliquidHistoricalOrders, ai as fetchHyperliquidMeta, aj as fetchHyperliquidMetaAndAssetCtxs, ak as fetchHyperliquidOpenOrders, al as fetchHyperliquidOpenOrdersAcrossDexes, am as fetchHyperliquidOrderStatus, ap as fetchHyperliquidPreTransferCheck, aq as fetchHyperliquidResolvedInfoCoin, ar as fetchHyperliquidResolvedMarketDescriptor, as as fetchHyperliquidSizeDecimals, au as fetchHyperliquidSpotAssetCtxs, av as fetchHyperliquidSpotClearinghouseState, ax as fetchHyperliquidSpotMeta, ay as fetchHyperliquidSpotMetaAndAssetCtxs, aB as fetchHyperliquidTickSize, aC as fetchHyperliquidUserFills, aD as fetchHyperliquidUserFillsByTime, aE as fetchHyperliquidUserRateLimit, aF as formatHyperliquidMarketablePrice, aH as formatHyperliquidPrice, aI as formatHyperliquidSize, bx as getHyperliquidMaxBuilderFee, aJ as getKnownHyperliquidDexes, aK as isHyperliquidSpotSymbol, aL as modifyHyperliquidOrder, aM as normalizeHyperliquidBaseSymbol, aO as normalizeHyperliquidMetaSymbol, aP as normalizeSpotTokenName, aQ as parseHyperliquidOutcomeSymbol, aR as parseHyperliquidSymbol, aS as parseSpotPairSymbol, by as placeHyperliquidOrder, aT as placeHyperliquidOrderWithTpSl, aU as placeHyperliquidPositionTpSl, aV as placeHyperliquidTwapOrder, aW as reserveHyperliquidRequestWeight, aX as resolveHyperliquidAbstractionFromMode, aZ as resolveHyperliquidLeverageMode, a_ as resolveHyperliquidMarketDataCoin, b0 as resolveHyperliquidOrderSymbol, b1 as resolveHyperliquidPair, b2 as resolveHyperliquidPerpSymbol, b3 as resolveHyperliquidProfileChain, b4 as resolveHyperliquidSpotSymbol, b5 as resolveHyperliquidSymbol, b6 as resolveSpotMidCandidates, b7 as resolveSpotTokenCandidates, b9 as scheduleHyperliquidCancel, ba as sendHyperliquidSpot, bb as setHyperliquidAccountAbstractionMode, bc as setHyperliquidPortfolioMargin, bd as supportsHyperliquidBuilderFee, be as transferHyperliquidSubAccount, bf as updateHyperliquidIsolatedMargin, bg as updateHyperliquidLeverage, bz as withdrawFromHyperliquid } from '../../browser-z97Ptt32.js';
2
2
  import '../../types-BaTmu0gS.js';
3
3
  import 'viem';
4
4
  import 'viem/accounts';
@@ -45,6 +45,18 @@ var metaCache = /* @__PURE__ */ new Map();
45
45
  var spotMetaCache = /* @__PURE__ */ new Map();
46
46
  var perpDexsCache = /* @__PURE__ */ new Map();
47
47
  var UNKNOWN_SYMBOL = "UNKNOWN";
48
+ var OUTCOME_ORDER_ASSET_OFFSET = 1e8;
49
+ var OUTCOME_MARKET_DATA_PATTERN = /^#([0-9]+)$/;
50
+ var OUTCOME_TOKEN_PATTERN = /^\+([0-9]+)$/;
51
+ function parseHyperliquidOutcomeEncoding(value) {
52
+ const trimmed = value?.trim();
53
+ if (!trimmed) return null;
54
+ const encodedMatch = OUTCOME_MARKET_DATA_PATTERN.exec(trimmed) ?? OUTCOME_TOKEN_PATTERN.exec(trimmed);
55
+ if (!encodedMatch) return null;
56
+ const encoding = Number.parseInt(encodedMatch[1] ?? "", 10);
57
+ const side = encoding % 10;
58
+ return Number.isSafeInteger(encoding) && encoding >= 0 && side <= 1 ? encoding : null;
59
+ }
48
60
  var extractDexPrefix = (value) => {
49
61
  if (!value) return null;
50
62
  const trimmed = value.trim();
@@ -65,6 +77,22 @@ var normalizeHyperliquidBase = (value) => {
65
77
  if (!normalized || normalized === UNKNOWN_SYMBOL) return null;
66
78
  return normalized;
67
79
  };
80
+ var normalizeText = (value) => {
81
+ const trimmed = value?.trim();
82
+ return trimmed ? trimmed : null;
83
+ };
84
+ var normalizeSymbolText = (value) => {
85
+ const trimmed = value?.trim().toUpperCase();
86
+ return trimmed ? trimmed : null;
87
+ };
88
+ var normalizeOutcomeMarketDataCoin = (value) => {
89
+ const encoding = parseHyperliquidOutcomeEncoding(value);
90
+ return encoding == null ? null : `#${encoding}`;
91
+ };
92
+ var normalizeOutcomeTokenName = (value) => {
93
+ const encoding = parseHyperliquidOutcomeEncoding(value);
94
+ return encoding == null ? null : `+${encoding}`;
95
+ };
68
96
  var normalizeSpotTokenName = (value) => {
69
97
  const raw = (value ?? "").trim().toUpperCase();
70
98
  if (!raw) return "";
@@ -119,6 +147,32 @@ function buildHyperliquidMarketIdentity(input) {
119
147
  canonical_symbol: `perp:hyperliquid:${base}`
120
148
  };
121
149
  }
150
+ function buildHyperliquidOutcomeMarketIdentity(input) {
151
+ const rawSymbol = normalizeText(input.rawSymbol);
152
+ const marketDataCoin = normalizeOutcomeMarketDataCoin(input.marketDataCoin) ?? normalizeOutcomeMarketDataCoin(rawSymbol) ?? normalizeOutcomeMarketDataCoin(input.outcomeTokenName);
153
+ const outcomeTokenName = normalizeOutcomeTokenName(input.outcomeTokenName) ?? normalizeOutcomeTokenName(rawSymbol) ?? normalizeOutcomeTokenName(input.marketDataCoin);
154
+ const outcomeId = typeof input.outcomeId === "number" && Number.isSafeInteger(input.outcomeId) ? input.outcomeId : typeof input.outcomeId === "string" && input.outcomeId.trim().length > 0 ? Number.parseInt(input.outcomeId, 10) : null;
155
+ const outcomeSide = typeof input.outcomeSide === "number" && Number.isSafeInteger(input.outcomeSide) ? input.outcomeSide : typeof input.outcomeSide === "string" && input.outcomeSide.trim().length > 0 ? Number.parseInt(input.outcomeSide, 10) : null;
156
+ const derivedEncoding = outcomeId != null && outcomeId >= 0 && outcomeSide != null && outcomeSide >= 0 && outcomeSide <= 1 ? outcomeId * 10 + outcomeSide : null;
157
+ const derivedMarketDataCoin = marketDataCoin ?? (derivedEncoding != null ? `#${derivedEncoding}` : null);
158
+ const positionId = normalizeText(input.positionId) ?? derivedMarketDataCoin ?? outcomeTokenName ?? null;
159
+ const protocolMarketId = normalizeText(input.protocolMarketId) ?? normalizeText(input.roundKey) ?? normalizeText(input.seriesKey) ?? (outcomeId != null && outcomeId >= 0 ? `hip4-outcome-${outcomeId}` : null);
160
+ if (!protocolMarketId || !positionId) return null;
161
+ const sideName = normalizeSymbolText(input.sideName);
162
+ const underlying = normalizeSymbolText(input.underlying);
163
+ const base = underlying && sideName ? `${underlying}-${sideName}` : sideName ?? underlying ?? null;
164
+ return {
165
+ market_type: "prediction",
166
+ venue: "hyperliquid",
167
+ environment: input.environment,
168
+ base,
169
+ quote: "USDH",
170
+ raw_symbol: rawSymbol ?? derivedMarketDataCoin ?? outcomeTokenName,
171
+ protocol_market_id: protocolMarketId,
172
+ position_id: positionId,
173
+ canonical_symbol: `prediction:hyperliquid:${protocolMarketId}:${positionId}`
174
+ };
175
+ }
122
176
  function resolveHyperliquidAbstractionFromMode(mode) {
123
177
  switch (mode) {
124
178
  case "standard":
@@ -342,6 +396,10 @@ async function resolveHyperliquidAssetIndex(args) {
342
396
  if (!trimmed) {
343
397
  throw new Error("Hyperliquid symbol must be a non-empty string.");
344
398
  }
399
+ const outcomeEncoding = parseHyperliquidOutcomeEncoding(trimmed);
400
+ if (outcomeEncoding != null) {
401
+ return OUTCOME_ORDER_ASSET_OFFSET + outcomeEncoding;
402
+ }
345
403
  if (trimmed.startsWith("@")) {
346
404
  const rawIndex = trimmed.slice(1).trim();
347
405
  const index = Number(rawIndex);
@@ -683,6 +741,9 @@ function assertPositiveNumber(value, label) {
683
741
 
684
742
  // src/adapters/hyperliquid/symbols.ts
685
743
  var UNKNOWN_SYMBOL2 = "UNKNOWN";
744
+ var OUTCOME_ORDER_ASSET_OFFSET2 = 1e8;
745
+ var OUTCOME_MARKET_DATA_PATTERN2 = /^#([0-9]+)$/;
746
+ var OUTCOME_TOKEN_PATTERN2 = /^\+([0-9]+)$/;
686
747
  function extractHyperliquidDex(symbol) {
687
748
  const idx = symbol.indexOf(":");
688
749
  if (idx <= 0) return null;
@@ -693,6 +754,21 @@ function parseHyperliquidSymbol(value) {
693
754
  if (!value) return null;
694
755
  const trimmed = value.trim();
695
756
  if (!trimmed) return null;
757
+ const outcome = parseHyperliquidOutcomeSymbol(trimmed);
758
+ if (outcome) {
759
+ return {
760
+ raw: trimmed,
761
+ kind: "outcome",
762
+ normalized: outcome.marketDataCoin,
763
+ routeTicker: outcome.routeTicker,
764
+ displaySymbol: outcome.displaySymbol,
765
+ base: outcome.sideName,
766
+ quote: "USDH",
767
+ pair: null,
768
+ dex: null,
769
+ leverageMode: "cross"
770
+ };
771
+ }
696
772
  if (trimmed.startsWith("@")) {
697
773
  return {
698
774
  raw: trimmed,
@@ -754,6 +830,32 @@ function parseHyperliquidSymbol(value) {
754
830
  leverageMode: "cross"
755
831
  };
756
832
  }
833
+ function parseHyperliquidOutcomeSymbol(value) {
834
+ const trimmed = value?.trim();
835
+ if (!trimmed) return null;
836
+ const encodedMatch = OUTCOME_MARKET_DATA_PATTERN2.exec(trimmed) ?? OUTCOME_TOKEN_PATTERN2.exec(trimmed);
837
+ if (!encodedMatch) return null;
838
+ const encoding = Number.parseInt(encodedMatch[1] ?? "", 10);
839
+ const outcomeId = Math.floor(encoding / 10);
840
+ const side = encoding % 10;
841
+ if (outcomeId == null || side == null || encoding == null || !Number.isSafeInteger(outcomeId) || !Number.isSafeInteger(side) || !Number.isSafeInteger(encoding) || outcomeId < 0 || side < 0 || side > 1 || encoding < 0) {
842
+ return null;
843
+ }
844
+ const marketDataCoin = `#${encoding}`;
845
+ const sideName = side === 0 ? "YES" : "NO";
846
+ return {
847
+ outcomeId,
848
+ side,
849
+ encoding,
850
+ orderSymbol: marketDataCoin,
851
+ marketDataCoin,
852
+ tokenName: `+${encoding}`,
853
+ sideName,
854
+ displaySymbol: marketDataCoin,
855
+ routeTicker: marketDataCoin,
856
+ assetId: OUTCOME_ORDER_ASSET_OFFSET2 + encoding
857
+ };
858
+ }
757
859
  function normalizeHyperliquidQuoteSymbol(value) {
758
860
  if (typeof value !== "string") return null;
759
861
  const trimmed = value.trim();
@@ -834,6 +936,29 @@ function buildHyperliquidMarketDescriptor(input) {
834
936
  if (!parsed) return null;
835
937
  const explicitPair = resolveHyperliquidPair(input.pair);
836
938
  const explicitQuote = normalizeHyperliquidQuoteSymbol(input.quote);
939
+ if (parsed.kind === "outcome") {
940
+ const outcome = parseHyperliquidOutcomeSymbol(rawSymbol);
941
+ if (!outcome) return null;
942
+ const orderSymbol2 = input.orderSymbol?.trim() || outcome.orderSymbol;
943
+ const marketDataCoin2 = input.marketDataCoin?.trim() || outcome.marketDataCoin;
944
+ return {
945
+ rawSymbol,
946
+ kind: "outcome",
947
+ routeTicker: outcome.routeTicker,
948
+ displaySymbol: input.displaySymbol?.trim() || outcome.displaySymbol,
949
+ normalized: outcome.marketDataCoin,
950
+ orderSymbol: orderSymbol2,
951
+ marketDataCoin: marketDataCoin2,
952
+ base: outcome.sideName,
953
+ quote: explicitQuote || "USDH",
954
+ pair: null,
955
+ canonicalPair: null,
956
+ dex: null,
957
+ leverageMode: "cross",
958
+ spotIndex: null,
959
+ assetId: input.assetId ?? outcome.assetId
960
+ };
961
+ }
837
962
  if (parsed.kind === "spot" || parsed.kind === "spotIndex") {
838
963
  const canonicalPair2 = explicitPair ?? parsed.pair;
839
964
  const pair = canonicalPair2;
@@ -932,6 +1057,7 @@ function parseSpotPairSymbol(symbol) {
932
1057
  function isHyperliquidSpotSymbol(symbol) {
933
1058
  const trimmed = symbol.trim();
934
1059
  if (!trimmed) return false;
1060
+ if (parseHyperliquidOutcomeSymbol(trimmed)) return false;
935
1061
  if (trimmed.startsWith("@") || trimmed.includes("/")) return true;
936
1062
  if (trimmed.includes(":")) return false;
937
1063
  return resolveHyperliquidPair(trimmed) !== null;
@@ -940,6 +1066,8 @@ function resolveHyperliquidMarketDataCoin(value) {
940
1066
  if (!value) return null;
941
1067
  const trimmed = value.trim();
942
1068
  if (!trimmed) return null;
1069
+ const outcome = parseHyperliquidOutcomeSymbol(trimmed);
1070
+ if (outcome) return outcome.marketDataCoin;
943
1071
  if (trimmed.startsWith("@")) return trimmed;
944
1072
  const pair = resolveHyperliquidPair(trimmed);
945
1073
  if (pair && !extractHyperliquidDex(trimmed)) {
@@ -948,6 +1076,9 @@ function resolveHyperliquidMarketDataCoin(value) {
948
1076
  return trimmed;
949
1077
  }
950
1078
  function supportsHyperliquidBuilderFee(params) {
1079
+ if (parseHyperliquidOutcomeSymbol(params.symbol)) {
1080
+ return false;
1081
+ }
951
1082
  if (!isHyperliquidSpotSymbol(params.symbol)) {
952
1083
  return true;
953
1084
  }
@@ -975,6 +1106,8 @@ function resolveHyperliquidOrderSymbol(value) {
975
1106
  if (!value) return null;
976
1107
  const trimmed = value.trim();
977
1108
  if (!trimmed) return null;
1109
+ const outcome = parseHyperliquidOutcomeSymbol(trimmed);
1110
+ if (outcome) return outcome.orderSymbol;
978
1111
  if (trimmed.startsWith("@")) return trimmed;
979
1112
  if (trimmed.includes(":")) {
980
1113
  const [rawDex, ...restParts] = trimmed.split(":");
@@ -993,6 +1126,8 @@ function resolveHyperliquidOrderSymbol(value) {
993
1126
  function resolveHyperliquidSymbol(asset, override) {
994
1127
  const raw = override && override.trim().length > 0 ? override.trim() : asset.trim();
995
1128
  if (!raw) return raw;
1129
+ const outcome = parseHyperliquidOutcomeSymbol(raw);
1130
+ if (outcome) return outcome.orderSymbol;
996
1131
  if (raw.startsWith("@")) return raw;
997
1132
  if (raw.includes(":")) {
998
1133
  const [dexRaw, ...restParts] = raw.split(":");
@@ -1114,6 +1249,9 @@ var HyperliquidInfoClient = class {
1114
1249
  spotAssetCtxs() {
1115
1250
  return fetchHyperliquidSpotAssetCtxs(this.environment);
1116
1251
  }
1252
+ outcomeMeta() {
1253
+ return fetchHyperliquidOutcomeMeta(this.environment);
1254
+ }
1117
1255
  openOrders(user) {
1118
1256
  return fetchHyperliquidOpenOrders({ user, environment: this.environment });
1119
1257
  }
@@ -1195,6 +1333,9 @@ async function fetchHyperliquidAssetCtxs(environment = "mainnet") {
1195
1333
  async function fetchHyperliquidSpotAssetCtxs(environment = "mainnet") {
1196
1334
  return postInfo(environment, { type: "spotAssetCtxs" });
1197
1335
  }
1336
+ async function fetchHyperliquidOutcomeMeta(environment = "mainnet") {
1337
+ return postInfo(environment, { type: "outcomeMeta" });
1338
+ }
1198
1339
  async function fetchHyperliquidOpenOrders(params) {
1199
1340
  const env = params.environment ?? "mainnet";
1200
1341
  const orders = await postInfo(env, {
@@ -2666,6 +2807,15 @@ async function fetchHyperliquidResolvedMarketDescriptor(params) {
2666
2807
  if (!parsed) {
2667
2808
  throw new Error(`Unable to parse Hyperliquid symbol: ${params.symbol}`);
2668
2809
  }
2810
+ if (parsed.kind === "outcome") {
2811
+ const descriptor2 = buildHyperliquidMarketDescriptor({
2812
+ symbol: params.symbol
2813
+ });
2814
+ if (!descriptor2) {
2815
+ throw new Error(`Unable to build Hyperliquid outcome market descriptor: ${params.symbol}`);
2816
+ }
2817
+ return descriptor2;
2818
+ }
2669
2819
  if (parsed.kind === "spot" || parsed.kind === "spotIndex") {
2670
2820
  const spotInfo = parsed.kind === "spotIndex" ? await fetchHyperliquidSpotMarketInfoByIndex({
2671
2821
  environment: params.environment,
@@ -2724,6 +2874,10 @@ async function fetchHyperliquidResolvedInfoCoin(params) {
2724
2874
  }
2725
2875
  async function fetchHyperliquidSizeDecimals(params) {
2726
2876
  const { symbol, environment } = params;
2877
+ const parsed = parseHyperliquidSymbol(symbol);
2878
+ if (parsed?.kind === "outcome") {
2879
+ return 0;
2880
+ }
2727
2881
  if (isHyperliquidSpotSymbol(symbol)) {
2728
2882
  const meta2 = await fetchHyperliquidSpotMeta(environment);
2729
2883
  return resolveSpotSizeDecimals(meta2, symbol);
@@ -2737,7 +2891,6 @@ async function fetchHyperliquidSizeDecimals(params) {
2737
2891
  if (match && typeof match.szDecimals === "number") {
2738
2892
  return match.szDecimals;
2739
2893
  }
2740
- const parsed = parseHyperliquidSymbol(symbol);
2741
2894
  const dex = parsed?.dex ?? null;
2742
2895
  if (!dex) {
2743
2896
  throw new Error(`No size decimals found for ${symbol}.`);
@@ -3000,7 +3153,7 @@ function formatHyperliquidMarketablePrice(params) {
3000
3153
  if (!formatted) {
3001
3154
  throw new RangeError("Marketable price is too small and was truncated to 0.");
3002
3155
  }
3003
- return formatted;
3156
+ return tick ? roundHyperliquidPriceToTick(formatted, tick, side) : formatted;
3004
3157
  }
3005
3158
  const midString = normalizeDecimalString(mid.toString());
3006
3159
  const baseDecimals = countDecimalPlaces(midString);
@@ -3255,6 +3408,6 @@ function estimateHyperliquidLiquidationPrice(params) {
3255
3408
  return liquidationPrice;
3256
3409
  }
3257
3410
 
3258
- export { DEFAULT_HYPERLIQUID_MARKET_SLIPPAGE_BPS, DEFAULT_HYPERLIQUID_TPSL_MARKET_SLIPPAGE_BPS, HYPERLIQUID_HIP3_DEXES, HyperliquidApiError, HyperliquidBuilderApprovalError, HyperliquidExchangeClient, HyperliquidGuardError, HyperliquidInfoClient, HyperliquidTermsError, approveHyperliquidBuilderFee, batchModifyHyperliquidOrders, buildHyperliquidMarketDescriptor, buildHyperliquidMarketIdentity, buildHyperliquidProfileAssets, cancelAllHyperliquidOrders, cancelHyperliquidOrders, cancelHyperliquidOrdersByCloid, cancelHyperliquidTwapOrder, computeHyperliquidMarketIocLimitPrice, createHyperliquidActionHash, createHyperliquidSubAccount, createMonotonicNonceFactory, depositToHyperliquidBridge, estimateHyperliquidLiquidationPrice, extractHyperliquidDex, fetchHyperliquidActiveAsset, fetchHyperliquidAssetCtxs, fetchHyperliquidClearinghouseState, fetchHyperliquidDexMetaAndAssetCtxs, fetchHyperliquidFrontendOpenOrders, fetchHyperliquidFrontendOpenOrdersAcrossDexes, fetchHyperliquidHistoricalOrders, fetchHyperliquidMeta, fetchHyperliquidMetaAndAssetCtxs, fetchHyperliquidOpenOrders, fetchHyperliquidOpenOrdersAcrossDexes, fetchHyperliquidOrderStatus, fetchHyperliquidPreTransferCheck, fetchHyperliquidResolvedInfoCoin, fetchHyperliquidResolvedMarketDescriptor, fetchHyperliquidSizeDecimals, fetchHyperliquidSpotAssetCtxs, fetchHyperliquidSpotClearinghouseState, fetchHyperliquidSpotMeta, fetchHyperliquidSpotMetaAndAssetCtxs, fetchHyperliquidTickSize, fetchHyperliquidUserFills, fetchHyperliquidUserFillsByTime, fetchHyperliquidUserRateLimit, formatHyperliquidMarketablePrice, formatHyperliquidPrice, formatHyperliquidSize, getHyperliquidMaxBuilderFee, getKnownHyperliquidDexes, isHyperliquidSpotSymbol, modifyHyperliquidOrder, normalizeHyperliquidBaseSymbol, normalizeHyperliquidMetaSymbol, normalizeSpotTokenName2 as normalizeSpotTokenName, parseHyperliquidSymbol, parseSpotPairSymbol, placeHyperliquidOrder, placeHyperliquidOrderWithTpSl, placeHyperliquidPositionTpSl, placeHyperliquidTwapOrder, reserveHyperliquidRequestWeight, resolveHyperliquidAbstractionFromMode, resolveHyperliquidLeverageMode, resolveHyperliquidMarketDataCoin, resolveHyperliquidOrderSymbol, resolveHyperliquidPair, resolveHyperliquidPerpSymbol, resolveHyperliquidProfileChain, resolveHyperliquidSpotSymbol, resolveHyperliquidSymbol, resolveSpotMidCandidates, resolveSpotTokenCandidates, scheduleHyperliquidCancel, sendHyperliquidSpot, setHyperliquidAccountAbstractionMode, setHyperliquidPortfolioMargin, supportsHyperliquidBuilderFee, transferHyperliquidSubAccount, updateHyperliquidIsolatedMargin, updateHyperliquidLeverage, withdrawFromHyperliquid };
3411
+ export { DEFAULT_HYPERLIQUID_MARKET_SLIPPAGE_BPS, DEFAULT_HYPERLIQUID_TPSL_MARKET_SLIPPAGE_BPS, HYPERLIQUID_HIP3_DEXES, HyperliquidApiError, HyperliquidBuilderApprovalError, HyperliquidExchangeClient, HyperliquidGuardError, HyperliquidInfoClient, HyperliquidTermsError, approveHyperliquidBuilderFee, batchModifyHyperliquidOrders, buildHyperliquidMarketDescriptor, buildHyperliquidMarketIdentity, buildHyperliquidOutcomeMarketIdentity, buildHyperliquidProfileAssets, cancelAllHyperliquidOrders, cancelHyperliquidOrders, cancelHyperliquidOrdersByCloid, cancelHyperliquidTwapOrder, computeHyperliquidMarketIocLimitPrice, createHyperliquidActionHash, createHyperliquidSubAccount, createMonotonicNonceFactory, depositToHyperliquidBridge, estimateHyperliquidLiquidationPrice, extractHyperliquidDex, fetchHyperliquidActiveAsset, fetchHyperliquidAssetCtxs, fetchHyperliquidClearinghouseState, fetchHyperliquidDexMetaAndAssetCtxs, fetchHyperliquidFrontendOpenOrders, fetchHyperliquidFrontendOpenOrdersAcrossDexes, fetchHyperliquidHistoricalOrders, fetchHyperliquidMeta, fetchHyperliquidMetaAndAssetCtxs, fetchHyperliquidOpenOrders, fetchHyperliquidOpenOrdersAcrossDexes, fetchHyperliquidOrderStatus, fetchHyperliquidPreTransferCheck, fetchHyperliquidResolvedInfoCoin, fetchHyperliquidResolvedMarketDescriptor, fetchHyperliquidSizeDecimals, fetchHyperliquidSpotAssetCtxs, fetchHyperliquidSpotClearinghouseState, fetchHyperliquidSpotMeta, fetchHyperliquidSpotMetaAndAssetCtxs, fetchHyperliquidTickSize, fetchHyperliquidUserFills, fetchHyperliquidUserFillsByTime, fetchHyperliquidUserRateLimit, formatHyperliquidMarketablePrice, formatHyperliquidPrice, formatHyperliquidSize, getHyperliquidMaxBuilderFee, getKnownHyperliquidDexes, isHyperliquidSpotSymbol, modifyHyperliquidOrder, normalizeHyperliquidBaseSymbol, normalizeHyperliquidMetaSymbol, normalizeSpotTokenName2 as normalizeSpotTokenName, parseHyperliquidOutcomeSymbol, parseHyperliquidSymbol, parseSpotPairSymbol, placeHyperliquidOrder, placeHyperliquidOrderWithTpSl, placeHyperliquidPositionTpSl, placeHyperliquidTwapOrder, reserveHyperliquidRequestWeight, resolveHyperliquidAbstractionFromMode, resolveHyperliquidLeverageMode, resolveHyperliquidMarketDataCoin, resolveHyperliquidOrderSymbol, resolveHyperliquidPair, resolveHyperliquidPerpSymbol, resolveHyperliquidProfileChain, resolveHyperliquidSpotSymbol, resolveHyperliquidSymbol, resolveSpotMidCandidates, resolveSpotTokenCandidates, scheduleHyperliquidCancel, sendHyperliquidSpot, setHyperliquidAccountAbstractionMode, setHyperliquidPortfolioMargin, supportsHyperliquidBuilderFee, transferHyperliquidSubAccount, updateHyperliquidIsolatedMargin, updateHyperliquidLeverage, withdrawFromHyperliquid };
3259
3412
  //# sourceMappingURL=browser.js.map
3260
3413
  //# sourceMappingURL=browser.js.map