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
|
@@ -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, bf as HyperliquidApproveBuilderFeeOptions, bg as HyperliquidApproveBuilderFeeResponse, f as HyperliquidApproximateLiquidationParams, i as HyperliquidBuilderApprovalError, j as HyperliquidBuilderFee, bh as HyperliquidClearinghouseState, bi 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, bj as HyperliquidOrderOptions, bk as HyperliquidOrderResponse, bl 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, bm as HyperliquidWithdrawResult, R as MarketIdentity, bn 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, bo as createHyperliquidActionHash, a1 as createHyperliquidSubAccount, a2 as createMonotonicNonceFactory, bp as depositToHyperliquidBridge, a3 as estimateHyperliquidLiquidationPrice, a4 as extractHyperliquidDex, a6 as fetchHyperliquidActiveAsset, a8 as fetchHyperliquidAssetCtxs, bq 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 fetchHyperliquidResolvedMarketDescriptor, an as fetchHyperliquidSizeDecimals, ap as fetchHyperliquidSpotAssetCtxs, aq as fetchHyperliquidSpotClearinghouseState, as as fetchHyperliquidSpotMeta, at as fetchHyperliquidSpotMetaAndAssetCtxs, aw as fetchHyperliquidTickSize, ax as fetchHyperliquidUserFills, ay as fetchHyperliquidUserFillsByTime, az as fetchHyperliquidUserRateLimit, aA as formatHyperliquidMarketablePrice, aC as formatHyperliquidPrice, aD as formatHyperliquidSize, br as getHyperliquidMaxBuilderFee, aE as getKnownHyperliquidDexes, aF as isHyperliquidSpotSymbol, aG as modifyHyperliquidOrder, aH as normalizeHyperliquidBaseSymbol, aJ as normalizeHyperliquidMetaSymbol, aK as normalizeSpotTokenName, aL as parseHyperliquidSymbol, aM as parseSpotPairSymbol, bs as placeHyperliquidOrder, aN as placeHyperliquidOrderWithTpSl, aO as placeHyperliquidPositionTpSl, aP as placeHyperliquidTwapOrder, aQ as reserveHyperliquidRequestWeight, aR as resolveHyperliquidAbstractionFromMode, aT as resolveHyperliquidLeverageMode, aU as resolveHyperliquidMarketDataCoin, aW as resolveHyperliquidOrderSymbol, aX as resolveHyperliquidPair, aY as resolveHyperliquidPerpSymbol, aZ as resolveHyperliquidProfileChain, a_ as resolveHyperliquidSpotSymbol, a$ as resolveHyperliquidSymbol, b0 as resolveSpotMidCandidates, b1 as resolveSpotTokenCandidates, b3 as scheduleHyperliquidCancel, b4 as sendHyperliquidSpot, b5 as setHyperliquidAccountAbstractionMode, b6 as setHyperliquidPortfolioMargin, b7 as supportsHyperliquidBuilderFee, b8 as transferHyperliquidSubAccount, b9 as updateHyperliquidIsolatedMargin, ba as updateHyperliquidLeverage, bt as withdrawFromHyperliquid } from '../../browser-
|
|
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, bf as HyperliquidApproveBuilderFeeOptions, bg as HyperliquidApproveBuilderFeeResponse, f as HyperliquidApproximateLiquidationParams, i as HyperliquidBuilderApprovalError, j as HyperliquidBuilderFee, bh as HyperliquidClearinghouseState, bi 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, bj as HyperliquidOrderOptions, bk as HyperliquidOrderResponse, bl 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, bm as HyperliquidWithdrawResult, R as MarketIdentity, bn 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, bo as createHyperliquidActionHash, a1 as createHyperliquidSubAccount, a2 as createMonotonicNonceFactory, bp as depositToHyperliquidBridge, a3 as estimateHyperliquidLiquidationPrice, a4 as extractHyperliquidDex, a6 as fetchHyperliquidActiveAsset, a8 as fetchHyperliquidAssetCtxs, bq 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 fetchHyperliquidResolvedMarketDescriptor, an as fetchHyperliquidSizeDecimals, ap as fetchHyperliquidSpotAssetCtxs, aq as fetchHyperliquidSpotClearinghouseState, as as fetchHyperliquidSpotMeta, at as fetchHyperliquidSpotMetaAndAssetCtxs, aw as fetchHyperliquidTickSize, ax as fetchHyperliquidUserFills, ay as fetchHyperliquidUserFillsByTime, az as fetchHyperliquidUserRateLimit, aA as formatHyperliquidMarketablePrice, aC as formatHyperliquidPrice, aD as formatHyperliquidSize, br as getHyperliquidMaxBuilderFee, aE as getKnownHyperliquidDexes, aF as isHyperliquidSpotSymbol, aG as modifyHyperliquidOrder, aH as normalizeHyperliquidBaseSymbol, aJ as normalizeHyperliquidMetaSymbol, aK as normalizeSpotTokenName, aL as parseHyperliquidSymbol, aM as parseSpotPairSymbol, bs as placeHyperliquidOrder, aN as placeHyperliquidOrderWithTpSl, aO as placeHyperliquidPositionTpSl, aP as placeHyperliquidTwapOrder, aQ as reserveHyperliquidRequestWeight, aR as resolveHyperliquidAbstractionFromMode, aT as resolveHyperliquidLeverageMode, aU as resolveHyperliquidMarketDataCoin, aW as resolveHyperliquidOrderSymbol, aX as resolveHyperliquidPair, aY as resolveHyperliquidPerpSymbol, aZ as resolveHyperliquidProfileChain, a_ as resolveHyperliquidSpotSymbol, a$ as resolveHyperliquidSymbol, b0 as resolveSpotMidCandidates, b1 as resolveSpotTokenCandidates, b3 as scheduleHyperliquidCancel, b4 as sendHyperliquidSpot, b5 as setHyperliquidAccountAbstractionMode, b6 as setHyperliquidPortfolioMargin, b7 as supportsHyperliquidBuilderFee, b8 as transferHyperliquidSubAccount, b9 as updateHyperliquidIsolatedMargin, ba as updateHyperliquidLeverage, bt as withdrawFromHyperliquid } from '../../browser-DxqvU3eA.js';
|
|
2
2
|
import '../../types-BaTmu0gS.js';
|
|
3
3
|
import 'viem';
|
|
4
4
|
import 'viem/accounts';
|
|
@@ -1050,6 +1050,16 @@ function mergeHyperliquidOpenOrders(batches) {
|
|
|
1050
1050
|
}
|
|
1051
1051
|
return [...merged.values()];
|
|
1052
1052
|
}
|
|
1053
|
+
function applyHyperliquidOpenOrderDexContext(orders, dex) {
|
|
1054
|
+
const resolvedDex = typeof dex === "string" && dex.trim().length > 0 ? dex.trim().toLowerCase() : null;
|
|
1055
|
+
return orders.map((order) => {
|
|
1056
|
+
const existingDex = typeof order.dex === "string" && order.dex.trim().length > 0 ? order.dex.trim().toLowerCase() : null;
|
|
1057
|
+
return {
|
|
1058
|
+
...order,
|
|
1059
|
+
dex: existingDex ?? resolvedDex
|
|
1060
|
+
};
|
|
1061
|
+
});
|
|
1062
|
+
}
|
|
1053
1063
|
function readNumber(value) {
|
|
1054
1064
|
if (typeof value === "number") {
|
|
1055
1065
|
return Number.isFinite(value) ? value : null;
|
|
@@ -1165,19 +1175,21 @@ async function fetchHyperliquidSpotAssetCtxs(environment = "mainnet") {
|
|
|
1165
1175
|
}
|
|
1166
1176
|
async function fetchHyperliquidOpenOrders(params) {
|
|
1167
1177
|
const env = params.environment ?? "mainnet";
|
|
1168
|
-
|
|
1178
|
+
const orders = await postInfo(env, {
|
|
1169
1179
|
type: "openOrders",
|
|
1170
1180
|
user: normalizeAddress(params.user),
|
|
1171
1181
|
...params.dex ? { dex: params.dex.trim().toLowerCase() } : {}
|
|
1172
1182
|
});
|
|
1183
|
+
return applyHyperliquidOpenOrderDexContext(orders, params.dex);
|
|
1173
1184
|
}
|
|
1174
1185
|
async function fetchHyperliquidFrontendOpenOrders(params) {
|
|
1175
1186
|
const env = params.environment ?? "mainnet";
|
|
1176
|
-
|
|
1187
|
+
const orders = await postInfo(env, {
|
|
1177
1188
|
type: "frontendOpenOrders",
|
|
1178
1189
|
user: normalizeAddress(params.user),
|
|
1179
1190
|
...params.dex ? { dex: params.dex.trim().toLowerCase() } : {}
|
|
1180
1191
|
});
|
|
1192
|
+
return applyHyperliquidOpenOrderDexContext(orders, params.dex);
|
|
1181
1193
|
}
|
|
1182
1194
|
async function fetchHyperliquidOrderStatus(params) {
|
|
1183
1195
|
const env = params.environment ?? "mainnet";
|
|
@@ -1288,6 +1300,8 @@ async function fetchHyperliquidActiveAsset(params) {
|
|
|
1288
1300
|
}
|
|
1289
1301
|
|
|
1290
1302
|
// src/adapters/hyperliquid/exchange.ts
|
|
1303
|
+
var DEFAULT_HYPERLIQUID_LEVERAGE_VERIFY_ATTEMPTS = 4;
|
|
1304
|
+
var DEFAULT_HYPERLIQUID_LEVERAGE_VERIFY_DELAY_MS = 250;
|
|
1291
1305
|
function resolveRequiredExchangeNonce(options) {
|
|
1292
1306
|
if (typeof options.nonce === "number") {
|
|
1293
1307
|
return options.nonce;
|
|
@@ -1298,6 +1312,51 @@ function resolveRequiredExchangeNonce(options) {
|
|
|
1298
1312
|
}
|
|
1299
1313
|
return resolved;
|
|
1300
1314
|
}
|
|
1315
|
+
function sleep(ms) {
|
|
1316
|
+
return new Promise((resolve) => {
|
|
1317
|
+
setTimeout(resolve, ms);
|
|
1318
|
+
});
|
|
1319
|
+
}
|
|
1320
|
+
function normalizeReportedLeverageMode(value) {
|
|
1321
|
+
if (!value) return null;
|
|
1322
|
+
const normalized = value.trim().toLowerCase();
|
|
1323
|
+
if (normalized === "cross" || normalized === "isolated") {
|
|
1324
|
+
return normalized;
|
|
1325
|
+
}
|
|
1326
|
+
return null;
|
|
1327
|
+
}
|
|
1328
|
+
function resolveLeverageVerificationUser(options) {
|
|
1329
|
+
return normalizeAddress(
|
|
1330
|
+
options.input.verifyUser ?? options.vaultAddress ?? options.wallet.address
|
|
1331
|
+
);
|
|
1332
|
+
}
|
|
1333
|
+
async function verifyAppliedHyperliquidLeverage(params) {
|
|
1334
|
+
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;
|
|
1335
|
+
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;
|
|
1336
|
+
let lastReportedLeverage = null;
|
|
1337
|
+
let lastReportedMode = null;
|
|
1338
|
+
for (let index = 0; index < attempts; index += 1) {
|
|
1339
|
+
const asset = await fetchHyperliquidActiveAsset({
|
|
1340
|
+
environment: params.environment,
|
|
1341
|
+
user: params.user,
|
|
1342
|
+
symbol: params.symbol
|
|
1343
|
+
});
|
|
1344
|
+
lastReportedLeverage = asset.leverage;
|
|
1345
|
+
lastReportedMode = normalizeReportedLeverageMode(asset.leverageType);
|
|
1346
|
+
const leverageMatches = asset.leverage === params.leverage;
|
|
1347
|
+
const modeMatches = lastReportedMode == null || lastReportedMode === params.leverageMode;
|
|
1348
|
+
if (leverageMatches && modeMatches) {
|
|
1349
|
+
return asset;
|
|
1350
|
+
}
|
|
1351
|
+
if (index < attempts - 1 && delayMs > 0) {
|
|
1352
|
+
await sleep(delayMs);
|
|
1353
|
+
}
|
|
1354
|
+
}
|
|
1355
|
+
const reportedLabel = lastReportedLeverage != null ? `${lastReportedLeverage}x${lastReportedMode ? ` ${lastReportedMode}` : ""}` : "unknown leverage";
|
|
1356
|
+
throw new Error(
|
|
1357
|
+
`Hyperliquid still reports ${reportedLabel} for ${params.symbol} after requesting ${params.leverage}x ${params.leverageMode}.`
|
|
1358
|
+
);
|
|
1359
|
+
}
|
|
1301
1360
|
var HyperliquidExchangeClient = class {
|
|
1302
1361
|
constructor(args) {
|
|
1303
1362
|
this.wallet = args.wallet;
|
|
@@ -1647,7 +1706,20 @@ async function updateHyperliquidLeverage(options) {
|
|
|
1647
1706
|
isCross: options.input.leverageMode === "cross",
|
|
1648
1707
|
leverage: options.input.leverage
|
|
1649
1708
|
};
|
|
1650
|
-
|
|
1709
|
+
const response = await submitExchangeAction(options, action);
|
|
1710
|
+
if (options.input.verifyApplied === false) {
|
|
1711
|
+
return response;
|
|
1712
|
+
}
|
|
1713
|
+
await verifyAppliedHyperliquidLeverage({
|
|
1714
|
+
environment: env,
|
|
1715
|
+
user: resolveLeverageVerificationUser(options),
|
|
1716
|
+
symbol: options.input.symbol,
|
|
1717
|
+
leverage: options.input.leverage,
|
|
1718
|
+
leverageMode: options.input.leverageMode,
|
|
1719
|
+
...typeof options.input.verifyAttempts === "number" ? { attempts: options.input.verifyAttempts } : {},
|
|
1720
|
+
...typeof options.input.verifyDelayMs === "number" ? { delayMs: options.input.verifyDelayMs } : {}
|
|
1721
|
+
});
|
|
1722
|
+
return response;
|
|
1651
1723
|
}
|
|
1652
1724
|
async function updateHyperliquidIsolatedMargin(options) {
|
|
1653
1725
|
assertSymbol(options.input.symbol);
|
|
@@ -2877,6 +2949,13 @@ function toPositiveNumber(value, label) {
|
|
|
2877
2949
|
function normalizeExecutionType(value) {
|
|
2878
2950
|
return value ?? "market";
|
|
2879
2951
|
}
|
|
2952
|
+
function assertSupportedParentOrder(parent) {
|
|
2953
|
+
if (parent.reduceOnly) {
|
|
2954
|
+
throw new Error(
|
|
2955
|
+
"Reduce-only parent orders are not supported with attached TP/SL. Use placeHyperliquidPositionTpSl for existing positions."
|
|
2956
|
+
);
|
|
2957
|
+
}
|
|
2958
|
+
}
|
|
2880
2959
|
function resolveTriggerDirection(params) {
|
|
2881
2960
|
const isLong = params.parentSide === "buy";
|
|
2882
2961
|
if (params.leg === "tp") {
|
|
@@ -2984,6 +3063,7 @@ async function buildAttachedTpSlOrders(params) {
|
|
|
2984
3063
|
return legs.filter((entry) => Boolean(entry));
|
|
2985
3064
|
}
|
|
2986
3065
|
async function placeHyperliquidOrderWithTpSl(options) {
|
|
3066
|
+
assertSupportedParentOrder(options.parent);
|
|
2987
3067
|
const env = options.environment ?? "mainnet";
|
|
2988
3068
|
const childOrders = await buildAttachedTpSlOrders({
|
|
2989
3069
|
symbol: options.parent.symbol,
|