opentool 0.8.21 → 0.8.22

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.
@@ -4,6 +4,30 @@ import 'viem';
4
4
  import 'viem/accounts';
5
5
 
6
6
  type HyperliquidEnvironment = "mainnet" | "testnet";
7
+ type MarketIdentity = {
8
+ market_type: "perp" | "spot" | "dex";
9
+ venue: "hyperliquid";
10
+ environment: HyperliquidEnvironment;
11
+ base: string;
12
+ quote?: string | null;
13
+ dex?: string | null;
14
+ chain_id?: number | null;
15
+ pool_address?: string | null;
16
+ token0_address?: string | null;
17
+ token1_address?: string | null;
18
+ fee_tier?: number | null;
19
+ raw_symbol?: string | null;
20
+ canonical_symbol: string;
21
+ };
22
+ type HyperliquidMarketIdentityInput = {
23
+ environment: HyperliquidEnvironment;
24
+ symbol: string;
25
+ rawSymbol?: string | null;
26
+ isSpot?: boolean;
27
+ base?: string | null;
28
+ quote?: string | null;
29
+ };
30
+ declare function buildHyperliquidMarketIdentity(input: HyperliquidMarketIdentityInput): MarketIdentity | null;
7
31
  type HyperliquidTimeInForce = "Gtc" | "Ioc" | "Alo" | "FrontendMarket" | "LiquidationMarket";
8
32
  type HyperliquidGrouping = "na" | "normalTpsl" | "positionTpsl";
9
33
  type HyperliquidTriggerType = "tp" | "sl";
@@ -448,4 +472,4 @@ declare const __hyperliquidInternals: {
448
472
  splitSignature: typeof splitSignature;
449
473
  };
450
474
 
451
- export { DEFAULT_HYPERLIQUID_MARKET_SLIPPAGE_BPS, type HyperliquidAbstraction, type HyperliquidAccountMode, HyperliquidApiError, type HyperliquidApproveBuilderFeeOptions, type HyperliquidApproveBuilderFeeResponse, HyperliquidBuilderApprovalError, type HyperliquidBuilderApprovalRecordInput, type HyperliquidBuilderFee, type HyperliquidClearinghouseState, type HyperliquidDepositResult, type HyperliquidEnvironment, HyperliquidExchangeClient, type HyperliquidExchangeResponse, type HyperliquidGrouping, HyperliquidGuardError, HyperliquidInfoClient, type HyperliquidOrderIntent, type HyperliquidOrderOptions, type HyperliquidOrderResponse, type HyperliquidOrderStatus, HyperliquidTermsError, type HyperliquidTermsRecordInput, type HyperliquidTimeInForce, type HyperliquidTriggerOptions, type HyperliquidTriggerType, type HyperliquidWithdrawResult, type NonceSource, __hyperliquidInternals, approveHyperliquidBuilderFee, batchModifyHyperliquidOrders, cancelAllHyperliquidOrders, cancelHyperliquidOrders, cancelHyperliquidOrdersByCloid, cancelHyperliquidTwapOrder, computeHyperliquidMarketIocLimitPrice, createHyperliquidSubAccount, createMonotonicNonceFactory, depositToHyperliquidBridge, fetchHyperliquidAssetCtxs, fetchHyperliquidClearinghouseState, fetchHyperliquidFrontendOpenOrders, fetchHyperliquidHistoricalOrders, fetchHyperliquidMeta, fetchHyperliquidMetaAndAssetCtxs, fetchHyperliquidOpenOrders, fetchHyperliquidOrderStatus, fetchHyperliquidPreTransferCheck, fetchHyperliquidSpotAssetCtxs, fetchHyperliquidSpotClearinghouseState, fetchHyperliquidSpotMeta, fetchHyperliquidSpotMetaAndAssetCtxs, fetchHyperliquidUserFills, fetchHyperliquidUserFillsByTime, fetchHyperliquidUserRateLimit, getHyperliquidMaxBuilderFee, modifyHyperliquidOrder, placeHyperliquidOrder, placeHyperliquidTwapOrder, recordHyperliquidBuilderApproval, recordHyperliquidTermsAcceptance, reserveHyperliquidRequestWeight, resolveHyperliquidAbstractionFromMode, scheduleHyperliquidCancel, sendHyperliquidSpot, setHyperliquidAccountAbstractionMode, setHyperliquidDexAbstraction, setHyperliquidPortfolioMargin, transferHyperliquidSubAccount, updateHyperliquidIsolatedMargin, updateHyperliquidLeverage, withdrawFromHyperliquid };
475
+ export { DEFAULT_HYPERLIQUID_MARKET_SLIPPAGE_BPS, type HyperliquidAbstraction, type HyperliquidAccountMode, HyperliquidApiError, type HyperliquidApproveBuilderFeeOptions, type HyperliquidApproveBuilderFeeResponse, HyperliquidBuilderApprovalError, type HyperliquidBuilderApprovalRecordInput, type HyperliquidBuilderFee, type HyperliquidClearinghouseState, type HyperliquidDepositResult, type HyperliquidEnvironment, HyperliquidExchangeClient, type HyperliquidExchangeResponse, type HyperliquidGrouping, HyperliquidGuardError, HyperliquidInfoClient, type HyperliquidMarketIdentityInput, type HyperliquidOrderIntent, type HyperliquidOrderOptions, type HyperliquidOrderResponse, type HyperliquidOrderStatus, HyperliquidTermsError, type HyperliquidTermsRecordInput, type HyperliquidTimeInForce, type HyperliquidTriggerOptions, type HyperliquidTriggerType, type HyperliquidWithdrawResult, type MarketIdentity, type NonceSource, __hyperliquidInternals, approveHyperliquidBuilderFee, batchModifyHyperliquidOrders, buildHyperliquidMarketIdentity, cancelAllHyperliquidOrders, cancelHyperliquidOrders, cancelHyperliquidOrdersByCloid, cancelHyperliquidTwapOrder, computeHyperliquidMarketIocLimitPrice, createHyperliquidSubAccount, createMonotonicNonceFactory, depositToHyperliquidBridge, fetchHyperliquidAssetCtxs, fetchHyperliquidClearinghouseState, fetchHyperliquidFrontendOpenOrders, fetchHyperliquidHistoricalOrders, fetchHyperliquidMeta, fetchHyperliquidMetaAndAssetCtxs, fetchHyperliquidOpenOrders, fetchHyperliquidOrderStatus, fetchHyperliquidPreTransferCheck, fetchHyperliquidSpotAssetCtxs, fetchHyperliquidSpotClearinghouseState, fetchHyperliquidSpotMeta, fetchHyperliquidSpotMetaAndAssetCtxs, fetchHyperliquidUserFills, fetchHyperliquidUserFillsByTime, fetchHyperliquidUserRateLimit, getHyperliquidMaxBuilderFee, modifyHyperliquidOrder, placeHyperliquidOrder, placeHyperliquidTwapOrder, recordHyperliquidBuilderApproval, recordHyperliquidTermsAcceptance, reserveHyperliquidRequestWeight, resolveHyperliquidAbstractionFromMode, scheduleHyperliquidCancel, sendHyperliquidSpot, setHyperliquidAccountAbstractionMode, setHyperliquidDexAbstraction, setHyperliquidPortfolioMargin, transferHyperliquidSubAccount, updateHyperliquidIsolatedMargin, updateHyperliquidLeverage, withdrawFromHyperliquid };
@@ -14,6 +14,14 @@ var StoreError = class extends Error {
14
14
  this.name = "StoreError";
15
15
  }
16
16
  };
17
+ var requiresMarketIdentity = (input) => {
18
+ const action = (input.action ?? "").toLowerCase();
19
+ if (action === "order" || action === "swap" || action === "trade") return true;
20
+ return false;
21
+ };
22
+ var hasMarketIdentity = (value) => {
23
+ return Boolean(value) && typeof value === "object" && !Array.isArray(value);
24
+ };
17
25
  function resolveConfig(options) {
18
26
  const baseUrl = options?.baseUrl ?? process.env.BASE_URL ?? "https://api.openpond.ai";
19
27
  const apiKey = options?.apiKey ?? process.env.OPENPOND_API_KEY;
@@ -33,6 +41,9 @@ function resolveConfig(options) {
33
41
  return { baseUrl: normalizedBaseUrl, apiKey, fetchFn };
34
42
  }
35
43
  async function store(input, options) {
44
+ if (requiresMarketIdentity(input) && !hasMarketIdentity(input.market)) {
45
+ throw new StoreError("market is required for trade events");
46
+ }
36
47
  const { baseUrl, apiKey, fetchFn } = resolveConfig(options);
37
48
  const url = `${baseUrl}/apps/positions/tx`;
38
49
  let response;
@@ -110,6 +121,73 @@ var BUILDER_CODE = {
110
121
  };
111
122
  var metaCache = /* @__PURE__ */ new Map();
112
123
  var perpDexsCache = /* @__PURE__ */ new Map();
124
+ var UNKNOWN_SYMBOL = "UNKNOWN";
125
+ var extractDexPrefix = (value) => {
126
+ if (!value) return null;
127
+ const trimmed = value.trim();
128
+ if (!trimmed) return null;
129
+ if (!trimmed.includes(":")) return null;
130
+ if (trimmed.startsWith("@")) return null;
131
+ const [prefix] = trimmed.split(":");
132
+ const dex = prefix?.trim().toLowerCase() ?? "";
133
+ return dex || null;
134
+ };
135
+ var normalizeHyperliquidBase = (value) => {
136
+ if (!value) return null;
137
+ const trimmed = value.trim();
138
+ if (!trimmed) return null;
139
+ const withoutDex = trimmed.includes(":") ? trimmed.split(":").slice(1).join(":") : trimmed;
140
+ const base = withoutDex.split("-")[0] ?? withoutDex;
141
+ const normalized = (base.split("/")[0] ?? base).trim().toUpperCase();
142
+ if (!normalized || normalized === UNKNOWN_SYMBOL) return null;
143
+ return normalized;
144
+ };
145
+ var parseHyperliquidPair = (value) => {
146
+ if (!value) return null;
147
+ const trimmed = value.trim();
148
+ if (!trimmed) return null;
149
+ const withoutDex = trimmed.includes(":") ? trimmed.split(":").slice(1).join(":") : trimmed;
150
+ const separator = withoutDex.includes("/") ? "/" : withoutDex.includes("-") ? "-" : null;
151
+ if (!separator) return null;
152
+ const [baseRaw, ...rest] = withoutDex.split(separator);
153
+ const quoteRaw = rest.join(separator);
154
+ if (!baseRaw || !quoteRaw) return null;
155
+ const base = baseRaw.trim().toUpperCase();
156
+ const quote = quoteRaw.trim().toUpperCase();
157
+ if (!base || !quote) return null;
158
+ return { base, quote };
159
+ };
160
+ function buildHyperliquidMarketIdentity(input) {
161
+ const rawSymbol = input.rawSymbol ?? input.symbol;
162
+ const dex = extractDexPrefix(rawSymbol);
163
+ const pair = parseHyperliquidPair(rawSymbol) ?? parseHyperliquidPair(input.symbol);
164
+ const isSpot = input.isSpot ?? (Boolean(pair) || rawSymbol.startsWith("@") || input.symbol.includes("/"));
165
+ const base = (input.base ? input.base.trim().toUpperCase() : null) ?? pair?.base ?? normalizeHyperliquidBase(input.symbol) ?? normalizeHyperliquidBase(rawSymbol);
166
+ if (!base) return null;
167
+ if (isSpot) {
168
+ const quote = (input.quote ? input.quote.trim().toUpperCase() : null) ?? pair?.quote ?? null;
169
+ if (!quote) return null;
170
+ return {
171
+ market_type: "spot",
172
+ venue: "hyperliquid",
173
+ environment: input.environment,
174
+ base,
175
+ quote,
176
+ dex,
177
+ raw_symbol: rawSymbol ?? null,
178
+ canonical_symbol: `spot:hyperliquid:${base}-${quote}`
179
+ };
180
+ }
181
+ return {
182
+ market_type: "perp",
183
+ venue: "hyperliquid",
184
+ environment: input.environment,
185
+ base,
186
+ dex,
187
+ raw_symbol: rawSymbol ?? null,
188
+ canonical_symbol: `perp:hyperliquid:${base}`
189
+ };
190
+ }
113
191
  function resolveHyperliquidAbstractionFromMode(mode) {
114
192
  switch (mode) {
115
193
  case "standard":
@@ -1788,6 +1866,6 @@ var __hyperliquidInternals = {
1788
1866
  splitSignature
1789
1867
  };
1790
1868
 
1791
- export { DEFAULT_HYPERLIQUID_MARKET_SLIPPAGE_BPS, HyperliquidApiError, HyperliquidBuilderApprovalError, HyperliquidExchangeClient, HyperliquidGuardError, HyperliquidInfoClient, HyperliquidTermsError, __hyperliquidInternals, approveHyperliquidBuilderFee, batchModifyHyperliquidOrders, cancelAllHyperliquidOrders, cancelHyperliquidOrders, cancelHyperliquidOrdersByCloid, cancelHyperliquidTwapOrder, computeHyperliquidMarketIocLimitPrice, createHyperliquidSubAccount, createMonotonicNonceFactory, depositToHyperliquidBridge, fetchHyperliquidAssetCtxs, fetchHyperliquidClearinghouseState, fetchHyperliquidFrontendOpenOrders, fetchHyperliquidHistoricalOrders, fetchHyperliquidMeta, fetchHyperliquidMetaAndAssetCtxs, fetchHyperliquidOpenOrders, fetchHyperliquidOrderStatus, fetchHyperliquidPreTransferCheck, fetchHyperliquidSpotAssetCtxs, fetchHyperliquidSpotClearinghouseState, fetchHyperliquidSpotMeta, fetchHyperliquidSpotMetaAndAssetCtxs, fetchHyperliquidUserFills, fetchHyperliquidUserFillsByTime, fetchHyperliquidUserRateLimit, getHyperliquidMaxBuilderFee, modifyHyperliquidOrder, placeHyperliquidOrder, placeHyperliquidTwapOrder, recordHyperliquidBuilderApproval, recordHyperliquidTermsAcceptance, reserveHyperliquidRequestWeight, resolveHyperliquidAbstractionFromMode, scheduleHyperliquidCancel, sendHyperliquidSpot, setHyperliquidAccountAbstractionMode, setHyperliquidDexAbstraction, setHyperliquidPortfolioMargin, transferHyperliquidSubAccount, updateHyperliquidIsolatedMargin, updateHyperliquidLeverage, withdrawFromHyperliquid };
1869
+ export { DEFAULT_HYPERLIQUID_MARKET_SLIPPAGE_BPS, HyperliquidApiError, HyperliquidBuilderApprovalError, HyperliquidExchangeClient, HyperliquidGuardError, HyperliquidInfoClient, HyperliquidTermsError, __hyperliquidInternals, approveHyperliquidBuilderFee, batchModifyHyperliquidOrders, buildHyperliquidMarketIdentity, cancelAllHyperliquidOrders, cancelHyperliquidOrders, cancelHyperliquidOrdersByCloid, cancelHyperliquidTwapOrder, computeHyperliquidMarketIocLimitPrice, createHyperliquidSubAccount, createMonotonicNonceFactory, depositToHyperliquidBridge, fetchHyperliquidAssetCtxs, fetchHyperliquidClearinghouseState, fetchHyperliquidFrontendOpenOrders, fetchHyperliquidHistoricalOrders, fetchHyperliquidMeta, fetchHyperliquidMetaAndAssetCtxs, fetchHyperliquidOpenOrders, fetchHyperliquidOrderStatus, fetchHyperliquidPreTransferCheck, fetchHyperliquidSpotAssetCtxs, fetchHyperliquidSpotClearinghouseState, fetchHyperliquidSpotMeta, fetchHyperliquidSpotMetaAndAssetCtxs, fetchHyperliquidUserFills, fetchHyperliquidUserFillsByTime, fetchHyperliquidUserRateLimit, getHyperliquidMaxBuilderFee, modifyHyperliquidOrder, placeHyperliquidOrder, placeHyperliquidTwapOrder, recordHyperliquidBuilderApproval, recordHyperliquidTermsAcceptance, reserveHyperliquidRequestWeight, resolveHyperliquidAbstractionFromMode, scheduleHyperliquidCancel, sendHyperliquidSpot, setHyperliquidAccountAbstractionMode, setHyperliquidDexAbstraction, setHyperliquidPortfolioMargin, transferHyperliquidSubAccount, updateHyperliquidIsolatedMargin, updateHyperliquidLeverage, withdrawFromHyperliquid };
1792
1870
  //# sourceMappingURL=index.js.map
1793
1871
  //# sourceMappingURL=index.js.map