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,7 +1,7 @@
1
1
  import { h as WalletFullContext } from '../../types-BaTmu0gS.js';
2
2
  import { StoreOptions, StoreResponse } from '../../store/index.js';
3
- import { k as HyperliquidEnvironment, bc as NonceSource, x as HyperliquidOrderIntent, n as HyperliquidGrouping, bd as toApiDecimal, be as createL1ActionHash, bf as splitSignature } from '../../browser-DhzKDXIg.js';
4
- 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, f as HyperliquidApproximateLiquidationParams, g as HyperliquidBar, h as HyperliquidBarResolution, i as HyperliquidBuilderApprovalError, j as HyperliquidBuilderFee, l as HyperliquidExchangeClient, m as HyperliquidExchangeResponse, o as HyperliquidGuardError, p as HyperliquidHip3Dex, q as HyperliquidIndicatorBar, r as HyperliquidInfoClient, s as HyperliquidMarketDescriptor, t as HyperliquidMarketDescriptorInput, u as HyperliquidMarketIdentityInput, v as HyperliquidMarketType, w as HyperliquidOpenOrderLike, y as HyperliquidParsedSymbol, z as HyperliquidParsedSymbolKind, A as HyperliquidPerpMarketInfo, B as HyperliquidPlaceOrderWithTpSlOptions, C as HyperliquidPlacePositionTpSlOptions, E as HyperliquidProfileAsset, F as HyperliquidProfileAssetInput, G as HyperliquidProfileChain, I as HyperliquidResolvedMarketDescriptor, J as HyperliquidSpotMarketInfo, K as HyperliquidTermsError, L as HyperliquidTickSize, M as HyperliquidTimeInForce, N as HyperliquidTpSlExecutionType, O as HyperliquidTpSlLegInput, P as HyperliquidTriggerOptions, Q as HyperliquidTriggerType, R as MarketIdentity, _ as __hyperliquidMarketDataInternals, S as batchModifyHyperliquidOrders, T as buildHyperliquidMarketDescriptor, U as buildHyperliquidMarketIdentity, V as buildHyperliquidProfileAssets, W as buildHyperliquidSpotUsdPriceMap, X as cancelAllHyperliquidOrders, Y as cancelHyperliquidOrders, Z as cancelHyperliquidOrdersByCloid, $ as cancelHyperliquidTwapOrder, a0 as computeHyperliquidMarketIocLimitPrice, a1 as createHyperliquidSubAccount, a2 as createMonotonicNonceFactory, a3 as estimateHyperliquidLiquidationPrice, a4 as extractHyperliquidDex, a5 as extractHyperliquidOrderIds, a6 as fetchHyperliquidActiveAsset, a7 as fetchHyperliquidAllMids, a8 as fetchHyperliquidAssetCtxs, a9 as fetchHyperliquidBars, aa as fetchHyperliquidDexMeta, 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, ak as fetchHyperliquidPerpMarketInfo, al as fetchHyperliquidPreTransferCheck, am as fetchHyperliquidResolvedInfoCoin, an as fetchHyperliquidResolvedMarketDescriptor, ao as fetchHyperliquidSizeDecimals, ap as fetchHyperliquidSpotAccountValue, aq as fetchHyperliquidSpotAssetCtxs, ar as fetchHyperliquidSpotClearinghouseState, as as fetchHyperliquidSpotMarketInfo, at as fetchHyperliquidSpotMeta, au as fetchHyperliquidSpotMetaAndAssetCtxs, av as fetchHyperliquidSpotTickSize, aw as fetchHyperliquidSpotUsdPriceMap, ax as fetchHyperliquidTickSize, ay as fetchHyperliquidUserFills, az as fetchHyperliquidUserFillsByTime, aA as fetchHyperliquidUserRateLimit, aB as formatHyperliquidMarketablePrice, aC as formatHyperliquidOrderSize, aD as formatHyperliquidPrice, aE as formatHyperliquidSize, aF as getKnownHyperliquidDexes, aG as isHyperliquidSpotSymbol, aH as modifyHyperliquidOrder, aI as normalizeHyperliquidBaseSymbol, aJ as normalizeHyperliquidIndicatorBars, aK as normalizeHyperliquidMetaSymbol, aL as normalizeSpotTokenName, aM as parseHyperliquidSymbol, aN as parseSpotPairSymbol, aO as placeHyperliquidOrderWithTpSl, aP as placeHyperliquidPositionTpSl, aQ as placeHyperliquidTwapOrder, aR as reserveHyperliquidRequestWeight, aS as resolveHyperliquidAbstractionFromMode, aT as resolveHyperliquidErrorDetail, aU as resolveHyperliquidLeverageMode, aV as resolveHyperliquidMarketDataCoin, aW as resolveHyperliquidOrderRef, aX as resolveHyperliquidOrderSymbol, aY as resolveHyperliquidPair, aZ as resolveHyperliquidPerpSymbol, a_ as resolveHyperliquidProfileChain, a$ as resolveHyperliquidSpotSymbol, b0 as resolveHyperliquidSymbol, b1 as resolveSpotMidCandidates, b2 as resolveSpotTokenCandidates, b3 as roundHyperliquidPriceToTick, b4 as scheduleHyperliquidCancel, b5 as sendHyperliquidSpot, b6 as setHyperliquidAccountAbstractionMode, b7 as setHyperliquidPortfolioMargin, b8 as supportsHyperliquidBuilderFee, b9 as transferHyperliquidSubAccount, ba as updateHyperliquidIsolatedMargin, bb as updateHyperliquidLeverage } from '../../browser-DhzKDXIg.js';
3
+ import { k as HyperliquidEnvironment, bh as NonceSource, x as HyperliquidOrderIntent, n as HyperliquidGrouping, bi as toApiDecimal, bj as createL1ActionHash, bk as splitSignature } from '../../browser-z97Ptt32.js';
4
+ 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, f as HyperliquidApproximateLiquidationParams, g as HyperliquidBar, h as HyperliquidBarResolution, i as HyperliquidBuilderApprovalError, j as HyperliquidBuilderFee, l as HyperliquidExchangeClient, m as HyperliquidExchangeResponse, o as HyperliquidGuardError, p as HyperliquidHip3Dex, q as HyperliquidIndicatorBar, r as HyperliquidInfoClient, s as HyperliquidMarketDescriptor, t as HyperliquidMarketDescriptorInput, u as HyperliquidMarketIdentityInput, v as HyperliquidMarketType, w as HyperliquidOpenOrderLike, y as HyperliquidOutcomeMarketIdentityInput, z as HyperliquidOutcomeSymbol, A as HyperliquidParsedSymbol, B as HyperliquidParsedSymbolKind, C as HyperliquidPerpMarketInfo, E as HyperliquidPlaceOrderWithTpSlOptions, F as HyperliquidPlacePositionTpSlOptions, G as HyperliquidProfileAsset, I as HyperliquidProfileAssetInput, J as HyperliquidProfileChain, K as HyperliquidResolvedMarketDescriptor, L as HyperliquidSpotMarketInfo, M as HyperliquidTermsError, N as HyperliquidTickSize, O as HyperliquidTimeInForce, P as HyperliquidTpSlExecutionType, Q as HyperliquidTpSlLegInput, R as HyperliquidTriggerOptions, S as HyperliquidTriggerType, T as MarketIdentity, _ as __hyperliquidMarketDataInternals, U as batchModifyHyperliquidOrders, V as buildHyperliquidMarketDescriptor, W as buildHyperliquidMarketIdentity, X as buildHyperliquidOutcomeMarketIdentity, Y as buildHyperliquidProfileAssets, Z as buildHyperliquidSpotUsdPriceMap, $ as cancelAllHyperliquidOrders, a0 as cancelHyperliquidOrders, a1 as cancelHyperliquidOrdersByCloid, a2 as cancelHyperliquidTwapOrder, a3 as computeHyperliquidMarketIocLimitPrice, a4 as createHyperliquidSubAccount, a5 as createMonotonicNonceFactory, a6 as estimateHyperliquidLiquidationPrice, a7 as extractHyperliquidDex, a8 as extractHyperliquidOrderIds, a9 as fetchHyperliquidActiveAsset, aa as fetchHyperliquidAllMids, ab as fetchHyperliquidAssetCtxs, ac as fetchHyperliquidBars, ad as fetchHyperliquidDexMeta, 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, an as fetchHyperliquidOutcomeMeta, ao as fetchHyperliquidPerpMarketInfo, ap as fetchHyperliquidPreTransferCheck, aq as fetchHyperliquidResolvedInfoCoin, ar as fetchHyperliquidResolvedMarketDescriptor, as as fetchHyperliquidSizeDecimals, at as fetchHyperliquidSpotAccountValue, au as fetchHyperliquidSpotAssetCtxs, av as fetchHyperliquidSpotClearinghouseState, aw as fetchHyperliquidSpotMarketInfo, ax as fetchHyperliquidSpotMeta, ay as fetchHyperliquidSpotMetaAndAssetCtxs, az as fetchHyperliquidSpotTickSize, aA as fetchHyperliquidSpotUsdPriceMap, aB as fetchHyperliquidTickSize, aC as fetchHyperliquidUserFills, aD as fetchHyperliquidUserFillsByTime, aE as fetchHyperliquidUserRateLimit, aF as formatHyperliquidMarketablePrice, aG as formatHyperliquidOrderSize, aH as formatHyperliquidPrice, aI as formatHyperliquidSize, aJ as getKnownHyperliquidDexes, aK as isHyperliquidSpotSymbol, aL as modifyHyperliquidOrder, aM as normalizeHyperliquidBaseSymbol, aN as normalizeHyperliquidIndicatorBars, aO as normalizeHyperliquidMetaSymbol, aP as normalizeSpotTokenName, aQ as parseHyperliquidOutcomeSymbol, aR as parseHyperliquidSymbol, aS as parseSpotPairSymbol, aT as placeHyperliquidOrderWithTpSl, aU as placeHyperliquidPositionTpSl, aV as placeHyperliquidTwapOrder, aW as reserveHyperliquidRequestWeight, aX as resolveHyperliquidAbstractionFromMode, aY as resolveHyperliquidErrorDetail, aZ as resolveHyperliquidLeverageMode, a_ as resolveHyperliquidMarketDataCoin, a$ as resolveHyperliquidOrderRef, b0 as resolveHyperliquidOrderSymbol, b1 as resolveHyperliquidPair, b2 as resolveHyperliquidPerpSymbol, b3 as resolveHyperliquidProfileChain, b4 as resolveHyperliquidSpotSymbol, b5 as resolveHyperliquidSymbol, b6 as resolveSpotMidCandidates, b7 as resolveSpotTokenCandidates, b8 as roundHyperliquidPriceToTick, b9 as scheduleHyperliquidCancel, ba as sendHyperliquidSpot, bb as setHyperliquidAccountAbstractionMode, bc as setHyperliquidPortfolioMargin, bd as supportsHyperliquidBuilderFee, be as transferHyperliquidSubAccount, bf as updateHyperliquidIsolatedMargin, bg as updateHyperliquidLeverage } from '../../browser-z97Ptt32.js';
5
5
  import 'viem';
6
6
  import 'viem/accounts';
7
7
 
@@ -205,6 +205,18 @@ var metaCache = /* @__PURE__ */ new Map();
205
205
  var spotMetaCache = /* @__PURE__ */ new Map();
206
206
  var perpDexsCache = /* @__PURE__ */ new Map();
207
207
  var UNKNOWN_SYMBOL = "UNKNOWN";
208
+ var OUTCOME_ORDER_ASSET_OFFSET = 1e8;
209
+ var OUTCOME_MARKET_DATA_PATTERN = /^#([0-9]+)$/;
210
+ var OUTCOME_TOKEN_PATTERN = /^\+([0-9]+)$/;
211
+ function parseHyperliquidOutcomeEncoding(value) {
212
+ const trimmed = value?.trim();
213
+ if (!trimmed) return null;
214
+ const encodedMatch = OUTCOME_MARKET_DATA_PATTERN.exec(trimmed) ?? OUTCOME_TOKEN_PATTERN.exec(trimmed);
215
+ if (!encodedMatch) return null;
216
+ const encoding = Number.parseInt(encodedMatch[1] ?? "", 10);
217
+ const side = encoding % 10;
218
+ return Number.isSafeInteger(encoding) && encoding >= 0 && side <= 1 ? encoding : null;
219
+ }
208
220
  var extractDexPrefix = (value) => {
209
221
  if (!value) return null;
210
222
  const trimmed = value.trim();
@@ -225,6 +237,22 @@ var normalizeHyperliquidBase = (value) => {
225
237
  if (!normalized || normalized === UNKNOWN_SYMBOL) return null;
226
238
  return normalized;
227
239
  };
240
+ var normalizeText = (value) => {
241
+ const trimmed = value?.trim();
242
+ return trimmed ? trimmed : null;
243
+ };
244
+ var normalizeSymbolText = (value) => {
245
+ const trimmed = value?.trim().toUpperCase();
246
+ return trimmed ? trimmed : null;
247
+ };
248
+ var normalizeOutcomeMarketDataCoin = (value) => {
249
+ const encoding = parseHyperliquidOutcomeEncoding(value);
250
+ return encoding == null ? null : `#${encoding}`;
251
+ };
252
+ var normalizeOutcomeTokenName = (value) => {
253
+ const encoding = parseHyperliquidOutcomeEncoding(value);
254
+ return encoding == null ? null : `+${encoding}`;
255
+ };
228
256
  var normalizeSpotTokenName = (value) => {
229
257
  const raw = (value ?? "").trim().toUpperCase();
230
258
  if (!raw) return "";
@@ -279,6 +307,32 @@ function buildHyperliquidMarketIdentity(input) {
279
307
  canonical_symbol: `perp:hyperliquid:${base}`
280
308
  };
281
309
  }
310
+ function buildHyperliquidOutcomeMarketIdentity(input) {
311
+ const rawSymbol = normalizeText(input.rawSymbol);
312
+ const marketDataCoin = normalizeOutcomeMarketDataCoin(input.marketDataCoin) ?? normalizeOutcomeMarketDataCoin(rawSymbol) ?? normalizeOutcomeMarketDataCoin(input.outcomeTokenName);
313
+ const outcomeTokenName = normalizeOutcomeTokenName(input.outcomeTokenName) ?? normalizeOutcomeTokenName(rawSymbol) ?? normalizeOutcomeTokenName(input.marketDataCoin);
314
+ 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;
315
+ 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;
316
+ const derivedEncoding = outcomeId != null && outcomeId >= 0 && outcomeSide != null && outcomeSide >= 0 && outcomeSide <= 1 ? outcomeId * 10 + outcomeSide : null;
317
+ const derivedMarketDataCoin = marketDataCoin ?? (derivedEncoding != null ? `#${derivedEncoding}` : null);
318
+ const positionId = normalizeText(input.positionId) ?? derivedMarketDataCoin ?? outcomeTokenName ?? null;
319
+ const protocolMarketId = normalizeText(input.protocolMarketId) ?? normalizeText(input.roundKey) ?? normalizeText(input.seriesKey) ?? (outcomeId != null && outcomeId >= 0 ? `hip4-outcome-${outcomeId}` : null);
320
+ if (!protocolMarketId || !positionId) return null;
321
+ const sideName = normalizeSymbolText(input.sideName);
322
+ const underlying = normalizeSymbolText(input.underlying);
323
+ const base = underlying && sideName ? `${underlying}-${sideName}` : sideName ?? underlying ?? null;
324
+ return {
325
+ market_type: "prediction",
326
+ venue: "hyperliquid",
327
+ environment: input.environment,
328
+ base,
329
+ quote: "USDH",
330
+ raw_symbol: rawSymbol ?? derivedMarketDataCoin ?? outcomeTokenName,
331
+ protocol_market_id: protocolMarketId,
332
+ position_id: positionId,
333
+ canonical_symbol: `prediction:hyperliquid:${protocolMarketId}:${positionId}`
334
+ };
335
+ }
282
336
  function resolveHyperliquidAbstractionFromMode(mode) {
283
337
  switch (mode) {
284
338
  case "standard":
@@ -502,6 +556,10 @@ async function resolveHyperliquidAssetIndex(args) {
502
556
  if (!trimmed) {
503
557
  throw new Error("Hyperliquid symbol must be a non-empty string.");
504
558
  }
559
+ const outcomeEncoding = parseHyperliquidOutcomeEncoding(trimmed);
560
+ if (outcomeEncoding != null) {
561
+ return OUTCOME_ORDER_ASSET_OFFSET + outcomeEncoding;
562
+ }
505
563
  if (trimmed.startsWith("@")) {
506
564
  const rawIndex = trimmed.slice(1).trim();
507
565
  const index = Number(rawIndex);
@@ -843,6 +901,9 @@ function assertPositiveNumber(value, label) {
843
901
 
844
902
  // src/adapters/hyperliquid/symbols.ts
845
903
  var UNKNOWN_SYMBOL2 = "UNKNOWN";
904
+ var OUTCOME_ORDER_ASSET_OFFSET2 = 1e8;
905
+ var OUTCOME_MARKET_DATA_PATTERN2 = /^#([0-9]+)$/;
906
+ var OUTCOME_TOKEN_PATTERN2 = /^\+([0-9]+)$/;
846
907
  function extractHyperliquidDex(symbol) {
847
908
  const idx = symbol.indexOf(":");
848
909
  if (idx <= 0) return null;
@@ -853,6 +914,21 @@ function parseHyperliquidSymbol(value) {
853
914
  if (!value) return null;
854
915
  const trimmed = value.trim();
855
916
  if (!trimmed) return null;
917
+ const outcome = parseHyperliquidOutcomeSymbol(trimmed);
918
+ if (outcome) {
919
+ return {
920
+ raw: trimmed,
921
+ kind: "outcome",
922
+ normalized: outcome.marketDataCoin,
923
+ routeTicker: outcome.routeTicker,
924
+ displaySymbol: outcome.displaySymbol,
925
+ base: outcome.sideName,
926
+ quote: "USDH",
927
+ pair: null,
928
+ dex: null,
929
+ leverageMode: "cross"
930
+ };
931
+ }
856
932
  if (trimmed.startsWith("@")) {
857
933
  return {
858
934
  raw: trimmed,
@@ -914,6 +990,32 @@ function parseHyperliquidSymbol(value) {
914
990
  leverageMode: "cross"
915
991
  };
916
992
  }
993
+ function parseHyperliquidOutcomeSymbol(value) {
994
+ const trimmed = value?.trim();
995
+ if (!trimmed) return null;
996
+ const encodedMatch = OUTCOME_MARKET_DATA_PATTERN2.exec(trimmed) ?? OUTCOME_TOKEN_PATTERN2.exec(trimmed);
997
+ if (!encodedMatch) return null;
998
+ const encoding = Number.parseInt(encodedMatch[1] ?? "", 10);
999
+ const outcomeId = Math.floor(encoding / 10);
1000
+ const side = encoding % 10;
1001
+ if (outcomeId == null || side == null || encoding == null || !Number.isSafeInteger(outcomeId) || !Number.isSafeInteger(side) || !Number.isSafeInteger(encoding) || outcomeId < 0 || side < 0 || side > 1 || encoding < 0) {
1002
+ return null;
1003
+ }
1004
+ const marketDataCoin = `#${encoding}`;
1005
+ const sideName = side === 0 ? "YES" : "NO";
1006
+ return {
1007
+ outcomeId,
1008
+ side,
1009
+ encoding,
1010
+ orderSymbol: marketDataCoin,
1011
+ marketDataCoin,
1012
+ tokenName: `+${encoding}`,
1013
+ sideName,
1014
+ displaySymbol: marketDataCoin,
1015
+ routeTicker: marketDataCoin,
1016
+ assetId: OUTCOME_ORDER_ASSET_OFFSET2 + encoding
1017
+ };
1018
+ }
917
1019
  function normalizeHyperliquidQuoteSymbol(value) {
918
1020
  if (typeof value !== "string") return null;
919
1021
  const trimmed = value.trim();
@@ -994,6 +1096,29 @@ function buildHyperliquidMarketDescriptor(input) {
994
1096
  if (!parsed) return null;
995
1097
  const explicitPair = resolveHyperliquidPair(input.pair);
996
1098
  const explicitQuote = normalizeHyperliquidQuoteSymbol(input.quote);
1099
+ if (parsed.kind === "outcome") {
1100
+ const outcome = parseHyperliquidOutcomeSymbol(rawSymbol);
1101
+ if (!outcome) return null;
1102
+ const orderSymbol2 = input.orderSymbol?.trim() || outcome.orderSymbol;
1103
+ const marketDataCoin2 = input.marketDataCoin?.trim() || outcome.marketDataCoin;
1104
+ return {
1105
+ rawSymbol,
1106
+ kind: "outcome",
1107
+ routeTicker: outcome.routeTicker,
1108
+ displaySymbol: input.displaySymbol?.trim() || outcome.displaySymbol,
1109
+ normalized: outcome.marketDataCoin,
1110
+ orderSymbol: orderSymbol2,
1111
+ marketDataCoin: marketDataCoin2,
1112
+ base: outcome.sideName,
1113
+ quote: explicitQuote || "USDH",
1114
+ pair: null,
1115
+ canonicalPair: null,
1116
+ dex: null,
1117
+ leverageMode: "cross",
1118
+ spotIndex: null,
1119
+ assetId: input.assetId ?? outcome.assetId
1120
+ };
1121
+ }
997
1122
  if (parsed.kind === "spot" || parsed.kind === "spotIndex") {
998
1123
  const canonicalPair2 = explicitPair ?? parsed.pair;
999
1124
  const pair = canonicalPair2;
@@ -1092,6 +1217,7 @@ function parseSpotPairSymbol(symbol) {
1092
1217
  function isHyperliquidSpotSymbol(symbol) {
1093
1218
  const trimmed = symbol.trim();
1094
1219
  if (!trimmed) return false;
1220
+ if (parseHyperliquidOutcomeSymbol(trimmed)) return false;
1095
1221
  if (trimmed.startsWith("@") || trimmed.includes("/")) return true;
1096
1222
  if (trimmed.includes(":")) return false;
1097
1223
  return resolveHyperliquidPair(trimmed) !== null;
@@ -1100,6 +1226,8 @@ function resolveHyperliquidMarketDataCoin(value) {
1100
1226
  if (!value) return null;
1101
1227
  const trimmed = value.trim();
1102
1228
  if (!trimmed) return null;
1229
+ const outcome = parseHyperliquidOutcomeSymbol(trimmed);
1230
+ if (outcome) return outcome.marketDataCoin;
1103
1231
  if (trimmed.startsWith("@")) return trimmed;
1104
1232
  const pair = resolveHyperliquidPair(trimmed);
1105
1233
  if (pair && !extractHyperliquidDex(trimmed)) {
@@ -1108,6 +1236,9 @@ function resolveHyperliquidMarketDataCoin(value) {
1108
1236
  return trimmed;
1109
1237
  }
1110
1238
  function supportsHyperliquidBuilderFee(params) {
1239
+ if (parseHyperliquidOutcomeSymbol(params.symbol)) {
1240
+ return false;
1241
+ }
1111
1242
  if (!isHyperliquidSpotSymbol(params.symbol)) {
1112
1243
  return true;
1113
1244
  }
@@ -1135,6 +1266,8 @@ function resolveHyperliquidOrderSymbol(value) {
1135
1266
  if (!value) return null;
1136
1267
  const trimmed = value.trim();
1137
1268
  if (!trimmed) return null;
1269
+ const outcome = parseHyperliquidOutcomeSymbol(trimmed);
1270
+ if (outcome) return outcome.orderSymbol;
1138
1271
  if (trimmed.startsWith("@")) return trimmed;
1139
1272
  if (trimmed.includes(":")) {
1140
1273
  const [rawDex, ...restParts] = trimmed.split(":");
@@ -1153,6 +1286,8 @@ function resolveHyperliquidOrderSymbol(value) {
1153
1286
  function resolveHyperliquidSymbol(asset, override) {
1154
1287
  const raw = override && override.trim().length > 0 ? override.trim() : asset.trim();
1155
1288
  if (!raw) return raw;
1289
+ const outcome = parseHyperliquidOutcomeSymbol(raw);
1290
+ if (outcome) return outcome.orderSymbol;
1156
1291
  if (raw.startsWith("@")) return raw;
1157
1292
  if (raw.includes(":")) {
1158
1293
  const [dexRaw, ...restParts] = raw.split(":");
@@ -1274,6 +1409,9 @@ var HyperliquidInfoClient = class {
1274
1409
  spotAssetCtxs() {
1275
1410
  return fetchHyperliquidSpotAssetCtxs(this.environment);
1276
1411
  }
1412
+ outcomeMeta() {
1413
+ return fetchHyperliquidOutcomeMeta(this.environment);
1414
+ }
1277
1415
  openOrders(user) {
1278
1416
  return fetchHyperliquidOpenOrders({ user, environment: this.environment });
1279
1417
  }
@@ -1358,6 +1496,9 @@ async function fetchHyperliquidAssetCtxs(environment = "mainnet") {
1358
1496
  async function fetchHyperliquidSpotAssetCtxs(environment = "mainnet") {
1359
1497
  return postInfo(environment, { type: "spotAssetCtxs" });
1360
1498
  }
1499
+ async function fetchHyperliquidOutcomeMeta(environment = "mainnet") {
1500
+ return postInfo(environment, { type: "outcomeMeta" });
1501
+ }
1361
1502
  async function fetchHyperliquidOpenOrders(params) {
1362
1503
  const env = params.environment ?? "mainnet";
1363
1504
  const orders = await postInfo(env, {
@@ -2598,7 +2739,7 @@ function formatHyperliquidMarketablePrice(params) {
2598
2739
  if (!formatted) {
2599
2740
  throw new RangeError("Marketable price is too small and was truncated to 0.");
2600
2741
  }
2601
- return formatted;
2742
+ return tick ? roundHyperliquidPriceToTick(formatted, tick, side) : formatted;
2602
2743
  }
2603
2744
  const midString = normalizeDecimalString(mid.toString());
2604
2745
  const baseDecimals = countDecimalPlaces(midString);
@@ -3195,6 +3336,15 @@ async function fetchHyperliquidResolvedMarketDescriptor(params) {
3195
3336
  if (!parsed) {
3196
3337
  throw new Error(`Unable to parse Hyperliquid symbol: ${params.symbol}`);
3197
3338
  }
3339
+ if (parsed.kind === "outcome") {
3340
+ const descriptor2 = buildHyperliquidMarketDescriptor({
3341
+ symbol: params.symbol
3342
+ });
3343
+ if (!descriptor2) {
3344
+ throw new Error(`Unable to build Hyperliquid outcome market descriptor: ${params.symbol}`);
3345
+ }
3346
+ return descriptor2;
3347
+ }
3198
3348
  if (parsed.kind === "spot" || parsed.kind === "spotIndex") {
3199
3349
  const spotInfo = parsed.kind === "spotIndex" ? await fetchHyperliquidSpotMarketInfoByIndex({
3200
3350
  environment: params.environment,
@@ -3253,6 +3403,10 @@ async function fetchHyperliquidResolvedInfoCoin(params) {
3253
3403
  }
3254
3404
  async function fetchHyperliquidSizeDecimals(params) {
3255
3405
  const { symbol, environment } = params;
3406
+ const parsed = parseHyperliquidSymbol(symbol);
3407
+ if (parsed?.kind === "outcome") {
3408
+ return 0;
3409
+ }
3256
3410
  if (isHyperliquidSpotSymbol(symbol)) {
3257
3411
  const meta2 = await fetchHyperliquidSpotMeta(environment);
3258
3412
  return resolveSpotSizeDecimals(meta2, symbol);
@@ -3266,7 +3420,6 @@ async function fetchHyperliquidSizeDecimals(params) {
3266
3420
  if (match && typeof match.szDecimals === "number") {
3267
3421
  return match.szDecimals;
3268
3422
  }
3269
- const parsed = parseHyperliquidSymbol(symbol);
3270
3423
  const dex = parsed?.dex ?? null;
3271
3424
  if (!dex) {
3272
3425
  throw new Error(`No size decimals found for ${symbol}.`);
@@ -4265,6 +4418,6 @@ var __hyperliquidInternals = {
4265
4418
  splitSignature
4266
4419
  };
4267
4420
 
4268
- export { DEFAULT_HYPERLIQUID_CADENCE_CRON, DEFAULT_HYPERLIQUID_MARKET_SLIPPAGE_BPS, DEFAULT_HYPERLIQUID_TPSL_MARKET_SLIPPAGE_BPS, HYPERLIQUID_HIP3_DEXES, HyperliquidApiError, HyperliquidBuilderApprovalError, HyperliquidExchangeClient, HyperliquidGuardError, HyperliquidInfoClient, HyperliquidTermsError, __hyperliquidInternals, __hyperliquidMarketDataInternals, approveHyperliquidBuilderFee, batchModifyHyperliquidOrders, buildHyperliquidMarketDescriptor, buildHyperliquidMarketIdentity, buildHyperliquidProfileAssets, buildHyperliquidSpotUsdPriceMap, cancelAllHyperliquidOrders, cancelHyperliquidOrders, cancelHyperliquidOrdersByCloid, cancelHyperliquidTwapOrder, clampHyperliquidAbs, clampHyperliquidFloat, clampHyperliquidInt, computeHyperliquidMarketIocLimitPrice, createHyperliquidSubAccount, createMonotonicNonceFactory, depositToHyperliquidBridge, estimateHyperliquidLiquidationPrice, extractHyperliquidDex, extractHyperliquidOrderIds, fetchHyperliquidActiveAsset, fetchHyperliquidAllMids, fetchHyperliquidAssetCtxs, fetchHyperliquidBars, fetchHyperliquidClearinghouseState, fetchHyperliquidDexMeta, fetchHyperliquidDexMetaAndAssetCtxs, fetchHyperliquidFrontendOpenOrders, fetchHyperliquidFrontendOpenOrdersAcrossDexes, fetchHyperliquidHistoricalOrders, fetchHyperliquidMeta, fetchHyperliquidMetaAndAssetCtxs, fetchHyperliquidOpenOrders, fetchHyperliquidOpenOrdersAcrossDexes, fetchHyperliquidOrderStatus, fetchHyperliquidPerpMarketInfo, fetchHyperliquidPreTransferCheck, fetchHyperliquidResolvedInfoCoin, fetchHyperliquidResolvedMarketDescriptor, fetchHyperliquidSizeDecimals, fetchHyperliquidSpotAccountValue, fetchHyperliquidSpotAssetCtxs, fetchHyperliquidSpotClearinghouseState, fetchHyperliquidSpotMarketInfo, fetchHyperliquidSpotMeta, fetchHyperliquidSpotMetaAndAssetCtxs, fetchHyperliquidSpotTickSize, fetchHyperliquidSpotUsdPriceMap, fetchHyperliquidTickSize, fetchHyperliquidUserFills, fetchHyperliquidUserFillsByTime, fetchHyperliquidUserRateLimit, formatHyperliquidMarketablePrice, formatHyperliquidOrderSize, formatHyperliquidPrice, formatHyperliquidSize, getHyperliquidMaxBuilderFee, getKnownHyperliquidDexes, isHyperliquidSpotSymbol, modifyHyperliquidOrder, normalizeHyperliquidBaseSymbol, normalizeHyperliquidDcaEntries, normalizeHyperliquidIndicatorBars, normalizeHyperliquidMetaSymbol, normalizeSpotTokenName2 as normalizeSpotTokenName, parseHyperliquidJson, parseHyperliquidSymbol, parseSpotPairSymbol, placeHyperliquidOrder2 as placeHyperliquidOrder, placeHyperliquidOrderWithTpSl, placeHyperliquidPositionTpSl, placeHyperliquidTwapOrder, planHyperliquidTrade, readHyperliquidAccountValue, readHyperliquidNumber, readHyperliquidPerpPosition, readHyperliquidPerpPositionSize, readHyperliquidSpotAccountValue, readHyperliquidSpotBalance, readHyperliquidSpotBalanceSize, recordHyperliquidBuilderApproval, recordHyperliquidTermsAcceptance, reserveHyperliquidRequestWeight, resolveHyperliquidAbstractionFromMode, resolveHyperliquidBudgetUsd, resolveHyperliquidCadenceCron, resolveHyperliquidCadenceFromResolution, resolveHyperliquidChain, resolveHyperliquidChainConfig, resolveHyperliquidDcaSymbolEntries, resolveHyperliquidErrorDetail, resolveHyperliquidHourlyInterval, resolveHyperliquidIntervalCron, resolveHyperliquidLeverageMode, resolveHyperliquidMarketDataCoin, resolveHyperliquidMaxPerRunUsd, resolveHyperliquidOrderRef, resolveHyperliquidOrderSymbol, resolveHyperliquidPair, resolveHyperliquidPerpSymbol, resolveHyperliquidProfileChain, resolveHyperliquidRpcEnvVar, resolveHyperliquidScheduleEvery, resolveHyperliquidScheduleUnit, resolveHyperliquidSpotSymbol, resolveHyperliquidStoreNetwork, resolveHyperliquidSymbol, resolveHyperliquidTargetSize, resolveSpotMidCandidates, resolveSpotTokenCandidates, roundHyperliquidPriceToTick, scheduleHyperliquidCancel, sendHyperliquidSpot, setHyperliquidAccountAbstractionMode, setHyperliquidPortfolioMargin, supportsHyperliquidBuilderFee, transferHyperliquidSubAccount, updateHyperliquidIsolatedMargin, updateHyperliquidLeverage, withdrawFromHyperliquid };
4421
+ export { DEFAULT_HYPERLIQUID_CADENCE_CRON, DEFAULT_HYPERLIQUID_MARKET_SLIPPAGE_BPS, DEFAULT_HYPERLIQUID_TPSL_MARKET_SLIPPAGE_BPS, HYPERLIQUID_HIP3_DEXES, HyperliquidApiError, HyperliquidBuilderApprovalError, HyperliquidExchangeClient, HyperliquidGuardError, HyperliquidInfoClient, HyperliquidTermsError, __hyperliquidInternals, __hyperliquidMarketDataInternals, approveHyperliquidBuilderFee, batchModifyHyperliquidOrders, buildHyperliquidMarketDescriptor, buildHyperliquidMarketIdentity, buildHyperliquidOutcomeMarketIdentity, buildHyperliquidProfileAssets, buildHyperliquidSpotUsdPriceMap, cancelAllHyperliquidOrders, cancelHyperliquidOrders, cancelHyperliquidOrdersByCloid, cancelHyperliquidTwapOrder, clampHyperliquidAbs, clampHyperliquidFloat, clampHyperliquidInt, computeHyperliquidMarketIocLimitPrice, createHyperliquidSubAccount, createMonotonicNonceFactory, depositToHyperliquidBridge, estimateHyperliquidLiquidationPrice, extractHyperliquidDex, extractHyperliquidOrderIds, fetchHyperliquidActiveAsset, fetchHyperliquidAllMids, fetchHyperliquidAssetCtxs, fetchHyperliquidBars, fetchHyperliquidClearinghouseState, fetchHyperliquidDexMeta, fetchHyperliquidDexMetaAndAssetCtxs, fetchHyperliquidFrontendOpenOrders, fetchHyperliquidFrontendOpenOrdersAcrossDexes, fetchHyperliquidHistoricalOrders, fetchHyperliquidMeta, fetchHyperliquidMetaAndAssetCtxs, fetchHyperliquidOpenOrders, fetchHyperliquidOpenOrdersAcrossDexes, fetchHyperliquidOrderStatus, fetchHyperliquidOutcomeMeta, fetchHyperliquidPerpMarketInfo, fetchHyperliquidPreTransferCheck, fetchHyperliquidResolvedInfoCoin, fetchHyperliquidResolvedMarketDescriptor, fetchHyperliquidSizeDecimals, fetchHyperliquidSpotAccountValue, fetchHyperliquidSpotAssetCtxs, fetchHyperliquidSpotClearinghouseState, fetchHyperliquidSpotMarketInfo, fetchHyperliquidSpotMeta, fetchHyperliquidSpotMetaAndAssetCtxs, fetchHyperliquidSpotTickSize, fetchHyperliquidSpotUsdPriceMap, fetchHyperliquidTickSize, fetchHyperliquidUserFills, fetchHyperliquidUserFillsByTime, fetchHyperliquidUserRateLimit, formatHyperliquidMarketablePrice, formatHyperliquidOrderSize, formatHyperliquidPrice, formatHyperliquidSize, getHyperliquidMaxBuilderFee, getKnownHyperliquidDexes, isHyperliquidSpotSymbol, modifyHyperliquidOrder, normalizeHyperliquidBaseSymbol, normalizeHyperliquidDcaEntries, normalizeHyperliquidIndicatorBars, normalizeHyperliquidMetaSymbol, normalizeSpotTokenName2 as normalizeSpotTokenName, parseHyperliquidJson, parseHyperliquidOutcomeSymbol, parseHyperliquidSymbol, parseSpotPairSymbol, placeHyperliquidOrder2 as placeHyperliquidOrder, placeHyperliquidOrderWithTpSl, placeHyperliquidPositionTpSl, placeHyperliquidTwapOrder, planHyperliquidTrade, readHyperliquidAccountValue, readHyperliquidNumber, readHyperliquidPerpPosition, readHyperliquidPerpPositionSize, readHyperliquidSpotAccountValue, readHyperliquidSpotBalance, readHyperliquidSpotBalanceSize, recordHyperliquidBuilderApproval, recordHyperliquidTermsAcceptance, reserveHyperliquidRequestWeight, resolveHyperliquidAbstractionFromMode, resolveHyperliquidBudgetUsd, resolveHyperliquidCadenceCron, resolveHyperliquidCadenceFromResolution, resolveHyperliquidChain, resolveHyperliquidChainConfig, resolveHyperliquidDcaSymbolEntries, resolveHyperliquidErrorDetail, resolveHyperliquidHourlyInterval, resolveHyperliquidIntervalCron, resolveHyperliquidLeverageMode, resolveHyperliquidMarketDataCoin, resolveHyperliquidMaxPerRunUsd, resolveHyperliquidOrderRef, resolveHyperliquidOrderSymbol, resolveHyperliquidPair, resolveHyperliquidPerpSymbol, resolveHyperliquidProfileChain, resolveHyperliquidRpcEnvVar, resolveHyperliquidScheduleEvery, resolveHyperliquidScheduleUnit, resolveHyperliquidSpotSymbol, resolveHyperliquidStoreNetwork, resolveHyperliquidSymbol, resolveHyperliquidTargetSize, resolveSpotMidCandidates, resolveSpotTokenCandidates, roundHyperliquidPriceToTick, scheduleHyperliquidCancel, sendHyperliquidSpot, setHyperliquidAccountAbstractionMode, setHyperliquidPortfolioMargin, supportsHyperliquidBuilderFee, transferHyperliquidSubAccount, updateHyperliquidIsolatedMargin, updateHyperliquidLeverage, withdrawFromHyperliquid };
4269
4422
  //# sourceMappingURL=index.js.map
4270
4423
  //# sourceMappingURL=index.js.map