opentool 0.19.6 → 0.19.8

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-Bieph3Ou.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, 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';
2
2
  import '../../types-BaTmu0gS.js';
3
3
  import 'viem';
4
4
  import 'viem/accounts';
@@ -2832,6 +2832,31 @@ var StringMath = {
2832
2832
  }
2833
2833
  return digits.join("").replace(/^0+(?=\d)/, "") || "0";
2834
2834
  },
2835
+ toPrecisionDirectional(value, precision, mode) {
2836
+ if (!Number.isInteger(precision) || precision < 1) {
2837
+ throw new RangeError("Precision must be a positive integer.");
2838
+ }
2839
+ if (/^-?0+(\.0*)?$/.test(value)) return "0";
2840
+ const negative = value.startsWith("-");
2841
+ const abs = negative ? value.slice(1) : value;
2842
+ const magnitude = StringMath.log10Floor(abs);
2843
+ const shiftAmount = precision - magnitude - 1;
2844
+ const shifted = StringMath.multiplyByPow10(abs, shiftAmount);
2845
+ const rounded = StringMath.roundInteger(shifted, mode);
2846
+ const shiftedBack = StringMath.multiplyByPow10(rounded, -shiftAmount);
2847
+ return normalizeDecimalString(negative ? `-${shiftedBack}` : shiftedBack);
2848
+ },
2849
+ toFixedDirectional(value, decimals, mode) {
2850
+ if (!Number.isInteger(decimals) || decimals < 0) {
2851
+ throw new RangeError("Decimals must be a non-negative integer.");
2852
+ }
2853
+ if (decimals === 0) {
2854
+ return normalizeDecimalString(StringMath.roundInteger(value, mode));
2855
+ }
2856
+ const shifted = StringMath.multiplyByPow10(value, decimals);
2857
+ const rounded = StringMath.roundInteger(shifted, mode);
2858
+ return normalizeDecimalString(StringMath.multiplyByPow10(rounded, -decimals));
2859
+ },
2835
2860
  toPrecisionTruncate(value, precision) {
2836
2861
  if (!Number.isInteger(precision) || precision < 1) {
2837
2862
  throw new RangeError("Precision must be a positive integer.");
@@ -2916,6 +2941,26 @@ function formatHyperliquidSize(size, szDecimals) {
2916
2941
  }
2917
2942
  return truncated;
2918
2943
  }
2944
+ function resolveSizeDecimals(value) {
2945
+ if (typeof value !== "number" || !Number.isFinite(value)) return 8;
2946
+ return Math.max(0, Math.min(8, Math.floor(value)));
2947
+ }
2948
+ function formatDirectionalHyperliquidPrice(price, params) {
2949
+ const normalized = price.toString().trim();
2950
+ assertNumberString(normalized);
2951
+ if (/^-?\d+$/.test(normalized)) {
2952
+ return normalizeDecimalString(normalized);
2953
+ }
2954
+ const szDecimals = resolveSizeDecimals(params.szDecimals);
2955
+ const maxDecimals2 = Math.max((params.marketType === "perp" ? 6 : 8) - szDecimals, 0);
2956
+ const decimalsAdjusted = StringMath.toFixedDirectional(normalized, maxDecimals2, params.mode);
2957
+ const sigFigAdjusted = StringMath.toPrecisionDirectional(
2958
+ decimalsAdjusted,
2959
+ 5,
2960
+ params.mode
2961
+ );
2962
+ return sigFigAdjusted === "0" ? null : sigFigAdjusted;
2963
+ }
2919
2964
  function roundHyperliquidPriceToTick(price, tick, side) {
2920
2965
  if (!Number.isFinite(tick.tickDecimals) || tick.tickDecimals < 0) {
2921
2966
  throw new Error("tick.tickDecimals must be a non-negative number.");
@@ -2938,13 +2983,25 @@ function roundHyperliquidPriceToTick(price, tick, side) {
2938
2983
  return formatScaledDecimal(rounded, tick.tickDecimals);
2939
2984
  }
2940
2985
  function formatHyperliquidMarketablePrice(params) {
2941
- const { mid, side, slippageBps, tick } = params;
2986
+ const { mid, side, slippageBps, tick, szDecimals, marketType = "perp" } = params;
2942
2987
  if (!Number.isFinite(mid) || mid <= 0) {
2943
2988
  throw new Error("mid must be a positive number.");
2944
2989
  }
2945
2990
  if (!Number.isFinite(slippageBps) || slippageBps < 0) {
2946
2991
  throw new Error("slippageBps must be a non-negative number.");
2947
2992
  }
2993
+ const adjustedMid = mid * (side === "buy" ? 1 + slippageBps / 1e4 : 1 - slippageBps / 1e4);
2994
+ if (typeof szDecimals === "number" && Number.isFinite(szDecimals)) {
2995
+ const formatted = formatDirectionalHyperliquidPrice(adjustedMid, {
2996
+ szDecimals,
2997
+ marketType,
2998
+ mode: side === "buy" ? "up" : "down"
2999
+ });
3000
+ if (!formatted) {
3001
+ throw new RangeError("Marketable price is too small and was truncated to 0.");
3002
+ }
3003
+ return formatted;
3004
+ }
2948
3005
  const midString = normalizeDecimalString(mid.toString());
2949
3006
  const baseDecimals = countDecimalPlaces(midString);
2950
3007
  const workDecimals = Math.max(baseDecimals + 4, tick?.tickDecimals ?? 0, 8);
@@ -2953,12 +3010,12 @@ function formatHyperliquidMarketablePrice(params) {
2953
3010
  side === "buy" ? 1e4 + slippageBps : 1e4 - slippageBps
2954
3011
  );
2955
3012
  const adjustedScaled = side === "buy" ? ceilDiv(scaledMid * slippageNumerator, 10000n) : scaledMid * slippageNumerator / 10000n;
2956
- const adjusted = formatScaledDecimal(adjustedScaled, workDecimals);
3013
+ const adjustedString = formatScaledDecimal(adjustedScaled, workDecimals);
2957
3014
  if (tick) {
2958
- return roundHyperliquidPriceToTick(adjusted, tick, side);
3015
+ return roundHyperliquidPriceToTick(adjustedString, tick, side);
2959
3016
  }
2960
3017
  const roundedScaled = scaleDecimalToInt(
2961
- adjusted,
3018
+ adjustedString,
2962
3019
  baseDecimals,
2963
3020
  side === "buy" ? "up" : "down"
2964
3021
  );
@@ -3061,7 +3118,9 @@ async function buildTpSlChildOrder(params) {
3061
3118
  mid: triggerPxNumeric,
3062
3119
  side: childSide,
3063
3120
  slippageBps: params.triggerMarketSlippageBps,
3064
- tick
3121
+ tick,
3122
+ szDecimals,
3123
+ marketType
3065
3124
  });
3066
3125
  return {
3067
3126
  symbol: params.symbol,