opentool 0.19.3 → 0.19.4
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.
- package/dist/adapters/hyperliquid/browser.d.ts +1 -1
- package/dist/adapters/hyperliquid/browser.js +83 -3
- package/dist/adapters/hyperliquid/browser.js.map +1 -1
- package/dist/adapters/hyperliquid/index.d.ts +2 -2
- package/dist/adapters/hyperliquid/index.js +83 -3
- package/dist/adapters/hyperliquid/index.js.map +1 -1
- package/dist/{browser-CnpOj35m.d.ts → browser-DxqvU3eA.d.ts} +11 -6
- package/dist/index.d.ts +1 -1
- package/dist/index.js +83 -3
- package/dist/index.js.map +1 -1
- package/package.json +1 -1
- package/templates/base/package.json +1 -1
- package/templates/polymarket-simple-trade/package.json +1 -1
|
@@ -129,6 +129,7 @@ type HyperliquidHip3Dex = (typeof HYPERLIQUID_HIP3_DEXES)[number];
|
|
|
129
129
|
type HyperliquidOpenOrderLike = {
|
|
130
130
|
oid?: number;
|
|
131
131
|
cloid?: string | null;
|
|
132
|
+
dex?: string | null;
|
|
132
133
|
[key: string]: unknown;
|
|
133
134
|
};
|
|
134
135
|
type HyperliquidActiveAsset = {
|
|
@@ -146,8 +147,8 @@ declare class HyperliquidInfoClient {
|
|
|
146
147
|
spotMetaAndAssetCtxs(): Promise<any>;
|
|
147
148
|
assetCtxs(): Promise<any>;
|
|
148
149
|
spotAssetCtxs(): Promise<any>;
|
|
149
|
-
openOrders(user: `0x${string}`): Promise<
|
|
150
|
-
frontendOpenOrders(user: `0x${string}`): Promise<
|
|
150
|
+
openOrders(user: `0x${string}`): Promise<HyperliquidOpenOrderLike[]>;
|
|
151
|
+
frontendOpenOrders(user: `0x${string}`): Promise<HyperliquidOpenOrderLike[]>;
|
|
151
152
|
orderStatus(user: `0x${string}`, oid: number | string): Promise<any>;
|
|
152
153
|
historicalOrders(user: `0x${string}`): Promise<any>;
|
|
153
154
|
userFills(user: `0x${string}`): Promise<any>;
|
|
@@ -165,16 +166,16 @@ declare function fetchHyperliquidSpotMeta(environment?: HyperliquidEnvironment):
|
|
|
165
166
|
declare function fetchHyperliquidSpotMetaAndAssetCtxs(environment?: HyperliquidEnvironment): Promise<any>;
|
|
166
167
|
declare function fetchHyperliquidAssetCtxs(environment?: HyperliquidEnvironment): Promise<any>;
|
|
167
168
|
declare function fetchHyperliquidSpotAssetCtxs(environment?: HyperliquidEnvironment): Promise<any>;
|
|
168
|
-
declare function fetchHyperliquidOpenOrders(params: {
|
|
169
|
+
declare function fetchHyperliquidOpenOrders<T extends HyperliquidOpenOrderLike = HyperliquidOpenOrderLike>(params: {
|
|
169
170
|
environment?: HyperliquidEnvironment;
|
|
170
171
|
user: `0x${string}`;
|
|
171
172
|
dex?: string | null;
|
|
172
|
-
}): Promise<
|
|
173
|
-
declare function fetchHyperliquidFrontendOpenOrders(params: {
|
|
173
|
+
}): Promise<T[]>;
|
|
174
|
+
declare function fetchHyperliquidFrontendOpenOrders<T extends HyperliquidOpenOrderLike = HyperliquidOpenOrderLike>(params: {
|
|
174
175
|
environment?: HyperliquidEnvironment;
|
|
175
176
|
user: `0x${string}`;
|
|
176
177
|
dex?: string | null;
|
|
177
|
-
}): Promise<
|
|
178
|
+
}): Promise<T[]>;
|
|
178
179
|
declare function fetchHyperliquidOrderStatus(params: {
|
|
179
180
|
environment?: HyperliquidEnvironment;
|
|
180
181
|
user: `0x${string}`;
|
|
@@ -266,6 +267,10 @@ type UpdateLeverageInput = {
|
|
|
266
267
|
symbol: string;
|
|
267
268
|
leverageMode: "cross" | "isolated";
|
|
268
269
|
leverage: number;
|
|
270
|
+
verifyApplied?: boolean;
|
|
271
|
+
verifyAttempts?: number;
|
|
272
|
+
verifyDelayMs?: number;
|
|
273
|
+
verifyUser?: `0x${string}`;
|
|
269
274
|
};
|
|
270
275
|
type UpdateIsolatedMarginInput = {
|
|
271
276
|
symbol: string;
|
package/dist/index.d.ts
CHANGED
|
@@ -11,7 +11,7 @@ export { AgentDigestRequest, MyToolsResponse, StoreAction, StoreError, StoreEven
|
|
|
11
11
|
export { BACKTEST_DECISION_MODE, BacktestDecisionRequest, BacktestDecisionSeriesInput, BacktestMode, BacktestResolution, ResolvedBacktestWindow, backtestDecisionRequestSchema, buildBacktestDecisionSeriesInput, estimateCountBack, parseTimeToSeconds, resolutionToSeconds, resolveBacktestAccountValueUsd, resolveBacktestMode, resolveBacktestWindow } from './backtest/index.js';
|
|
12
12
|
import { ZodSchema } from 'zod';
|
|
13
13
|
export { C as ChainMetadata, a as ChainReference, b as ChainTokenMap, H as Hex, c as HexAddress, N as NonceSource, R as RpcProviderOptions, d as RpcUrlResolver, T as TokenMetadata, e as TurnkeyOptions, f as TurnkeySignWith, W as WalletBaseContext, g as WalletContext, h as WalletFullContext, i as WalletOptions, j as WalletOptionsBase, k as WalletPrivateKeyOptions, l as WalletProviderType, m as WalletReadonlyContext, n as WalletReadonlyOptions, o as WalletRegistry, p as WalletSendTransactionParams, q as WalletSignerContext, r as WalletTransferParams, s as WalletTurnkeyOptions } from './types-BaTmu0gS.js';
|
|
14
|
-
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, k as HyperliquidEnvironment, l as HyperliquidExchangeClient, m as HyperliquidExchangeResponse, n as HyperliquidGrouping, 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, x as HyperliquidOrderIntent, 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 fetchHyperliquidResolvedMarketDescriptor, an as fetchHyperliquidSizeDecimals, ao as fetchHyperliquidSpotAccountValue, ap as fetchHyperliquidSpotAssetCtxs, aq as fetchHyperliquidSpotClearinghouseState, ar as fetchHyperliquidSpotMarketInfo, as as fetchHyperliquidSpotMeta, at as fetchHyperliquidSpotMetaAndAssetCtxs, au as fetchHyperliquidSpotTickSize, av as fetchHyperliquidSpotUsdPriceMap, aw as fetchHyperliquidTickSize, ax as fetchHyperliquidUserFills, ay as fetchHyperliquidUserFillsByTime, az as fetchHyperliquidUserRateLimit, aA as formatHyperliquidMarketablePrice, aB as formatHyperliquidOrderSize, aC as formatHyperliquidPrice, aD as formatHyperliquidSize, aE as getKnownHyperliquidDexes, aF as isHyperliquidSpotSymbol, aG as modifyHyperliquidOrder, aH as normalizeHyperliquidBaseSymbol, aI as normalizeHyperliquidIndicatorBars, aJ as normalizeHyperliquidMetaSymbol, aK as normalizeSpotTokenName, aL as parseHyperliquidSymbol, aM as parseSpotPairSymbol, aN as placeHyperliquidOrderWithTpSl, aO as placeHyperliquidPositionTpSl, aP as placeHyperliquidTwapOrder, aQ as reserveHyperliquidRequestWeight, aR as resolveHyperliquidAbstractionFromMode, aS as resolveHyperliquidErrorDetail, aT as resolveHyperliquidLeverageMode, aU as resolveHyperliquidMarketDataCoin, aV as resolveHyperliquidOrderRef, aW as resolveHyperliquidOrderSymbol, aX as resolveHyperliquidPair, aY as resolveHyperliquidPerpSymbol, aZ as resolveHyperliquidProfileChain, a_ as resolveHyperliquidSpotSymbol, a$ as resolveHyperliquidSymbol, b0 as resolveSpotMidCandidates, b1 as resolveSpotTokenCandidates, b2 as roundHyperliquidPriceToTick, b3 as scheduleHyperliquidCancel, b4 as sendHyperliquidSpot, b5 as setHyperliquidAccountAbstractionMode, b6 as setHyperliquidPortfolioMargin, b7 as supportsHyperliquidBuilderFee, b8 as transferHyperliquidSubAccount, b9 as updateHyperliquidIsolatedMargin, ba as updateHyperliquidLeverage } from './browser-
|
|
14
|
+
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, k as HyperliquidEnvironment, l as HyperliquidExchangeClient, m as HyperliquidExchangeResponse, n as HyperliquidGrouping, 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, x as HyperliquidOrderIntent, 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 fetchHyperliquidResolvedMarketDescriptor, an as fetchHyperliquidSizeDecimals, ao as fetchHyperliquidSpotAccountValue, ap as fetchHyperliquidSpotAssetCtxs, aq as fetchHyperliquidSpotClearinghouseState, ar as fetchHyperliquidSpotMarketInfo, as as fetchHyperliquidSpotMeta, at as fetchHyperliquidSpotMetaAndAssetCtxs, au as fetchHyperliquidSpotTickSize, av as fetchHyperliquidSpotUsdPriceMap, aw as fetchHyperliquidTickSize, ax as fetchHyperliquidUserFills, ay as fetchHyperliquidUserFillsByTime, az as fetchHyperliquidUserRateLimit, aA as formatHyperliquidMarketablePrice, aB as formatHyperliquidOrderSize, aC as formatHyperliquidPrice, aD as formatHyperliquidSize, aE as getKnownHyperliquidDexes, aF as isHyperliquidSpotSymbol, aG as modifyHyperliquidOrder, aH as normalizeHyperliquidBaseSymbol, aI as normalizeHyperliquidIndicatorBars, aJ as normalizeHyperliquidMetaSymbol, aK as normalizeSpotTokenName, aL as parseHyperliquidSymbol, aM as parseSpotPairSymbol, aN as placeHyperliquidOrderWithTpSl, aO as placeHyperliquidPositionTpSl, aP as placeHyperliquidTwapOrder, aQ as reserveHyperliquidRequestWeight, aR as resolveHyperliquidAbstractionFromMode, aS as resolveHyperliquidErrorDetail, aT as resolveHyperliquidLeverageMode, aU as resolveHyperliquidMarketDataCoin, aV as resolveHyperliquidOrderRef, aW as resolveHyperliquidOrderSymbol, aX as resolveHyperliquidPair, aY as resolveHyperliquidPerpSymbol, aZ as resolveHyperliquidProfileChain, a_ as resolveHyperliquidSpotSymbol, a$ as resolveHyperliquidSymbol, b0 as resolveSpotMidCandidates, b1 as resolveSpotTokenCandidates, b2 as roundHyperliquidPriceToTick, b3 as scheduleHyperliquidCancel, b4 as sendHyperliquidSpot, b5 as setHyperliquidAccountAbstractionMode, b6 as setHyperliquidPortfolioMargin, b7 as supportsHyperliquidBuilderFee, b8 as transferHyperliquidSubAccount, b9 as updateHyperliquidIsolatedMargin, ba as updateHyperliquidLeverage } from './browser-DxqvU3eA.js';
|
|
15
15
|
import 'viem';
|
|
16
16
|
import 'viem/accounts';
|
|
17
17
|
|
package/dist/index.js
CHANGED
|
@@ -2457,6 +2457,16 @@ function mergeHyperliquidOpenOrders(batches) {
|
|
|
2457
2457
|
}
|
|
2458
2458
|
return [...merged.values()];
|
|
2459
2459
|
}
|
|
2460
|
+
function applyHyperliquidOpenOrderDexContext(orders, dex) {
|
|
2461
|
+
const resolvedDex = typeof dex === "string" && dex.trim().length > 0 ? dex.trim().toLowerCase() : null;
|
|
2462
|
+
return orders.map((order) => {
|
|
2463
|
+
const existingDex = typeof order.dex === "string" && order.dex.trim().length > 0 ? order.dex.trim().toLowerCase() : null;
|
|
2464
|
+
return {
|
|
2465
|
+
...order,
|
|
2466
|
+
dex: existingDex ?? resolvedDex
|
|
2467
|
+
};
|
|
2468
|
+
});
|
|
2469
|
+
}
|
|
2460
2470
|
function readNumber(value) {
|
|
2461
2471
|
if (typeof value === "number") {
|
|
2462
2472
|
return Number.isFinite(value) ? value : null;
|
|
@@ -2575,19 +2585,21 @@ async function fetchHyperliquidSpotAssetCtxs(environment = "mainnet") {
|
|
|
2575
2585
|
}
|
|
2576
2586
|
async function fetchHyperliquidOpenOrders(params) {
|
|
2577
2587
|
const env = params.environment ?? "mainnet";
|
|
2578
|
-
|
|
2588
|
+
const orders = await postInfo(env, {
|
|
2579
2589
|
type: "openOrders",
|
|
2580
2590
|
user: normalizeAddress(params.user),
|
|
2581
2591
|
...params.dex ? { dex: params.dex.trim().toLowerCase() } : {}
|
|
2582
2592
|
});
|
|
2593
|
+
return applyHyperliquidOpenOrderDexContext(orders, params.dex);
|
|
2583
2594
|
}
|
|
2584
2595
|
async function fetchHyperliquidFrontendOpenOrders(params) {
|
|
2585
2596
|
const env = params.environment ?? "mainnet";
|
|
2586
|
-
|
|
2597
|
+
const orders = await postInfo(env, {
|
|
2587
2598
|
type: "frontendOpenOrders",
|
|
2588
2599
|
user: normalizeAddress(params.user),
|
|
2589
2600
|
...params.dex ? { dex: params.dex.trim().toLowerCase() } : {}
|
|
2590
2601
|
});
|
|
2602
|
+
return applyHyperliquidOpenOrderDexContext(orders, params.dex);
|
|
2591
2603
|
}
|
|
2592
2604
|
async function fetchHyperliquidOrderStatus(params) {
|
|
2593
2605
|
const env = params.environment ?? "mainnet";
|
|
@@ -2698,6 +2710,8 @@ async function fetchHyperliquidActiveAsset(params) {
|
|
|
2698
2710
|
}
|
|
2699
2711
|
|
|
2700
2712
|
// src/adapters/hyperliquid/exchange.ts
|
|
2713
|
+
var DEFAULT_HYPERLIQUID_LEVERAGE_VERIFY_ATTEMPTS = 4;
|
|
2714
|
+
var DEFAULT_HYPERLIQUID_LEVERAGE_VERIFY_DELAY_MS = 250;
|
|
2701
2715
|
function resolveRequiredExchangeNonce(options) {
|
|
2702
2716
|
if (typeof options.nonce === "number") {
|
|
2703
2717
|
return options.nonce;
|
|
@@ -2708,6 +2722,51 @@ function resolveRequiredExchangeNonce(options) {
|
|
|
2708
2722
|
}
|
|
2709
2723
|
return resolved;
|
|
2710
2724
|
}
|
|
2725
|
+
function sleep(ms) {
|
|
2726
|
+
return new Promise((resolve) => {
|
|
2727
|
+
setTimeout(resolve, ms);
|
|
2728
|
+
});
|
|
2729
|
+
}
|
|
2730
|
+
function normalizeReportedLeverageMode(value) {
|
|
2731
|
+
if (!value) return null;
|
|
2732
|
+
const normalized = value.trim().toLowerCase();
|
|
2733
|
+
if (normalized === "cross" || normalized === "isolated") {
|
|
2734
|
+
return normalized;
|
|
2735
|
+
}
|
|
2736
|
+
return null;
|
|
2737
|
+
}
|
|
2738
|
+
function resolveLeverageVerificationUser(options) {
|
|
2739
|
+
return normalizeAddress(
|
|
2740
|
+
options.input.verifyUser ?? options.vaultAddress ?? options.wallet.address
|
|
2741
|
+
);
|
|
2742
|
+
}
|
|
2743
|
+
async function verifyAppliedHyperliquidLeverage(params) {
|
|
2744
|
+
const attempts = typeof params.attempts === "number" && Number.isFinite(params.attempts) && params.attempts > 0 ? Math.max(1, Math.floor(params.attempts)) : DEFAULT_HYPERLIQUID_LEVERAGE_VERIFY_ATTEMPTS;
|
|
2745
|
+
const delayMs = typeof params.delayMs === "number" && Number.isFinite(params.delayMs) && params.delayMs >= 0 ? Math.max(0, Math.floor(params.delayMs)) : DEFAULT_HYPERLIQUID_LEVERAGE_VERIFY_DELAY_MS;
|
|
2746
|
+
let lastReportedLeverage = null;
|
|
2747
|
+
let lastReportedMode = null;
|
|
2748
|
+
for (let index = 0; index < attempts; index += 1) {
|
|
2749
|
+
const asset = await fetchHyperliquidActiveAsset({
|
|
2750
|
+
environment: params.environment,
|
|
2751
|
+
user: params.user,
|
|
2752
|
+
symbol: params.symbol
|
|
2753
|
+
});
|
|
2754
|
+
lastReportedLeverage = asset.leverage;
|
|
2755
|
+
lastReportedMode = normalizeReportedLeverageMode(asset.leverageType);
|
|
2756
|
+
const leverageMatches = asset.leverage === params.leverage;
|
|
2757
|
+
const modeMatches = lastReportedMode == null || lastReportedMode === params.leverageMode;
|
|
2758
|
+
if (leverageMatches && modeMatches) {
|
|
2759
|
+
return asset;
|
|
2760
|
+
}
|
|
2761
|
+
if (index < attempts - 1 && delayMs > 0) {
|
|
2762
|
+
await sleep(delayMs);
|
|
2763
|
+
}
|
|
2764
|
+
}
|
|
2765
|
+
const reportedLabel = lastReportedLeverage != null ? `${lastReportedLeverage}x${lastReportedMode ? ` ${lastReportedMode}` : ""}` : "unknown leverage";
|
|
2766
|
+
throw new Error(
|
|
2767
|
+
`Hyperliquid still reports ${reportedLabel} for ${params.symbol} after requesting ${params.leverage}x ${params.leverageMode}.`
|
|
2768
|
+
);
|
|
2769
|
+
}
|
|
2711
2770
|
var HyperliquidExchangeClient = class {
|
|
2712
2771
|
constructor(args) {
|
|
2713
2772
|
this.wallet = args.wallet;
|
|
@@ -3057,7 +3116,20 @@ async function updateHyperliquidLeverage(options) {
|
|
|
3057
3116
|
isCross: options.input.leverageMode === "cross",
|
|
3058
3117
|
leverage: options.input.leverage
|
|
3059
3118
|
};
|
|
3060
|
-
|
|
3119
|
+
const response = await submitExchangeAction(options, action);
|
|
3120
|
+
if (options.input.verifyApplied === false) {
|
|
3121
|
+
return response;
|
|
3122
|
+
}
|
|
3123
|
+
await verifyAppliedHyperliquidLeverage({
|
|
3124
|
+
environment: env,
|
|
3125
|
+
user: resolveLeverageVerificationUser(options),
|
|
3126
|
+
symbol: options.input.symbol,
|
|
3127
|
+
leverage: options.input.leverage,
|
|
3128
|
+
leverageMode: options.input.leverageMode,
|
|
3129
|
+
...typeof options.input.verifyAttempts === "number" ? { attempts: options.input.verifyAttempts } : {},
|
|
3130
|
+
...typeof options.input.verifyDelayMs === "number" ? { delayMs: options.input.verifyDelayMs } : {}
|
|
3131
|
+
});
|
|
3132
|
+
return response;
|
|
3061
3133
|
}
|
|
3062
3134
|
async function updateHyperliquidIsolatedMargin(options) {
|
|
3063
3135
|
assertSymbol(options.input.symbol);
|
|
@@ -4614,6 +4686,13 @@ function toPositiveNumber(value, label) {
|
|
|
4614
4686
|
function normalizeExecutionType(value) {
|
|
4615
4687
|
return value ?? "market";
|
|
4616
4688
|
}
|
|
4689
|
+
function assertSupportedParentOrder(parent) {
|
|
4690
|
+
if (parent.reduceOnly) {
|
|
4691
|
+
throw new Error(
|
|
4692
|
+
"Reduce-only parent orders are not supported with attached TP/SL. Use placeHyperliquidPositionTpSl for existing positions."
|
|
4693
|
+
);
|
|
4694
|
+
}
|
|
4695
|
+
}
|
|
4617
4696
|
function resolveTriggerDirection(params) {
|
|
4618
4697
|
const isLong = params.parentSide === "buy";
|
|
4619
4698
|
if (params.leg === "tp") {
|
|
@@ -4721,6 +4800,7 @@ async function buildAttachedTpSlOrders(params) {
|
|
|
4721
4800
|
return legs.filter((entry) => Boolean(entry));
|
|
4722
4801
|
}
|
|
4723
4802
|
async function placeHyperliquidOrderWithTpSl(options) {
|
|
4803
|
+
assertSupportedParentOrder(options.parent);
|
|
4724
4804
|
const env = options.environment ?? "mainnet";
|
|
4725
4805
|
const childOrders = await buildAttachedTpSlOrders({
|
|
4726
4806
|
symbol: options.parent.symbol,
|