opentool 0.10.1 → 0.10.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/index.d.ts +98 -1
- package/dist/adapters/hyperliquid/index.js +266 -2
- package/dist/adapters/hyperliquid/index.js.map +1 -1
- package/dist/cli/index.d.ts +3 -4
- package/dist/cli/index.js +93 -78
- package/dist/cli/index.js.map +1 -1
- package/dist/index.d.ts +36 -5
- package/dist/index.js +733 -398
- package/dist/index.js.map +1 -1
- package/dist/payment-orkZA9se.d.ts +96 -0
- package/dist/{validate-BgNU5laL.d.ts → validate-DbhJ_r0Z.d.ts} +1 -1
- package/dist/x402/index.d.ts +2 -96
- package/dist/x402/index.js +157 -157
- package/dist/x402/index.js.map +1 -1
- package/package.json +1 -1
- package/templates/base/package.json +1 -1
|
@@ -375,6 +375,7 @@ declare function normalizeSpotTokenName(value?: string | null): string;
|
|
|
375
375
|
declare function normalizeHyperliquidBaseSymbol(value?: string | null): string | null;
|
|
376
376
|
declare function normalizeHyperliquidMetaSymbol(symbol: string): string;
|
|
377
377
|
declare function resolveHyperliquidPair(value?: string | null): string | null;
|
|
378
|
+
declare function resolveHyperliquidLeverageMode(symbol: string): "cross" | "isolated";
|
|
378
379
|
type HyperliquidProfileChain = "hyperliquid" | "hyperliquid-testnet";
|
|
379
380
|
type HyperliquidProfileAssetInput = {
|
|
380
381
|
assetSymbols: string[];
|
|
@@ -404,6 +405,72 @@ declare function resolveSpotMidCandidates(baseSymbol: string): string[];
|
|
|
404
405
|
declare function resolveSpotTokenCandidates(value: string): string[];
|
|
405
406
|
declare function resolveHyperliquidOrderSymbol(value?: string | null): string | null;
|
|
406
407
|
declare function resolveHyperliquidSymbol(asset: string, override?: string): string;
|
|
408
|
+
declare function resolveHyperliquidPerpSymbol(asset: string): string;
|
|
409
|
+
declare function resolveHyperliquidSpotSymbol(asset: string, defaultQuote?: string): {
|
|
410
|
+
symbol: string;
|
|
411
|
+
base: string;
|
|
412
|
+
quote: string;
|
|
413
|
+
};
|
|
414
|
+
|
|
415
|
+
type HyperliquidExecutionMode = "long-only" | "long-short";
|
|
416
|
+
type HyperliquidTradeSignal = "buy" | "sell" | "hold" | "unknown";
|
|
417
|
+
type HyperliquidTradePlan = {
|
|
418
|
+
side: "buy" | "sell";
|
|
419
|
+
size: number;
|
|
420
|
+
reduceOnly: boolean;
|
|
421
|
+
targetSize: number;
|
|
422
|
+
};
|
|
423
|
+
interface HyperliquidTargetSizeConfig {
|
|
424
|
+
allocationMode: "percent_equity" | "fixed";
|
|
425
|
+
percentOfEquity: number;
|
|
426
|
+
maxPercentOfEquity: number;
|
|
427
|
+
amountUsd?: number;
|
|
428
|
+
}
|
|
429
|
+
interface HyperliquidTargetSizeExecution {
|
|
430
|
+
size?: number;
|
|
431
|
+
}
|
|
432
|
+
type HyperliquidDcaSymbolInput = {
|
|
433
|
+
symbol: string;
|
|
434
|
+
weight?: number;
|
|
435
|
+
} | string;
|
|
436
|
+
type HyperliquidDcaSymbolEntry = {
|
|
437
|
+
symbol: string;
|
|
438
|
+
weight: number;
|
|
439
|
+
};
|
|
440
|
+
type HyperliquidDcaNormalizedEntry = {
|
|
441
|
+
symbol: string;
|
|
442
|
+
weight: number;
|
|
443
|
+
normalizedWeight: number;
|
|
444
|
+
};
|
|
445
|
+
declare function resolveHyperliquidBudgetUsd(params: {
|
|
446
|
+
config: HyperliquidTargetSizeConfig;
|
|
447
|
+
accountValue: number | null;
|
|
448
|
+
}): number;
|
|
449
|
+
declare function resolveHyperliquidDcaSymbolEntries(inputs: HyperliquidDcaSymbolInput[] | undefined, fallbackSymbol: string): HyperliquidDcaSymbolEntry[];
|
|
450
|
+
declare function normalizeHyperliquidDcaEntries(params: {
|
|
451
|
+
entries: Array<{
|
|
452
|
+
symbol: string;
|
|
453
|
+
weight?: number;
|
|
454
|
+
}> | undefined;
|
|
455
|
+
fallbackSymbol: string;
|
|
456
|
+
}): HyperliquidDcaNormalizedEntry[];
|
|
457
|
+
declare function resolveHyperliquidMaxPerRunUsd(targetNotionalUsd: number, hedgeRatio: number): number;
|
|
458
|
+
declare function clampHyperliquidAbs(value: number, limit: number): number;
|
|
459
|
+
declare function resolveHyperliquidTargetSize(params: {
|
|
460
|
+
config: HyperliquidTargetSizeConfig;
|
|
461
|
+
execution: HyperliquidTargetSizeExecution;
|
|
462
|
+
accountValue: number | null;
|
|
463
|
+
currentPrice: number;
|
|
464
|
+
}): {
|
|
465
|
+
targetSize: number;
|
|
466
|
+
budgetUsd: number;
|
|
467
|
+
};
|
|
468
|
+
declare function planHyperliquidTrade(params: {
|
|
469
|
+
signal: HyperliquidTradeSignal;
|
|
470
|
+
mode: HyperliquidExecutionMode;
|
|
471
|
+
currentSize: number;
|
|
472
|
+
targetSize: number;
|
|
473
|
+
}): HyperliquidTradePlan | null;
|
|
407
474
|
|
|
408
475
|
type HyperliquidTickSize = {
|
|
409
476
|
tickSizeInt: bigint;
|
|
@@ -491,6 +558,14 @@ type HyperliquidBar = {
|
|
|
491
558
|
volume?: number;
|
|
492
559
|
[key: string]: unknown;
|
|
493
560
|
};
|
|
561
|
+
type HyperliquidIndicatorBar = {
|
|
562
|
+
time: number;
|
|
563
|
+
open: number;
|
|
564
|
+
high: number;
|
|
565
|
+
low: number;
|
|
566
|
+
close: number;
|
|
567
|
+
volume: number;
|
|
568
|
+
};
|
|
494
569
|
type HyperliquidPerpMarketInfo = {
|
|
495
570
|
symbol: string;
|
|
496
571
|
price: number;
|
|
@@ -518,6 +593,7 @@ declare function fetchHyperliquidBars(params: {
|
|
|
518
593
|
toSeconds?: number;
|
|
519
594
|
gatewayBase?: string | null;
|
|
520
595
|
}): Promise<HyperliquidBar[]>;
|
|
596
|
+
declare function normalizeHyperliquidIndicatorBars(bars: HyperliquidBar[]): HyperliquidIndicatorBar[];
|
|
521
597
|
declare function fetchHyperliquidTickSize(params: {
|
|
522
598
|
environment: HyperliquidEnvironment;
|
|
523
599
|
symbol: string;
|
|
@@ -556,6 +632,27 @@ declare const __hyperliquidMarketDataInternals: {
|
|
|
556
632
|
formatScaledInt: typeof formatScaledInt;
|
|
557
633
|
};
|
|
558
634
|
|
|
635
|
+
type HyperliquidScheduleUnit = "minutes" | "hours";
|
|
636
|
+
type HyperliquidCadence = "daily" | "hourly" | "weekly" | "twice-weekly" | "monthly";
|
|
637
|
+
type HyperliquidResolution = "1" | "5" | "15" | "30" | "60" | "240" | "1D" | "1W";
|
|
638
|
+
declare const DEFAULT_HYPERLIQUID_CADENCE_CRON: Record<HyperliquidCadence, string>;
|
|
639
|
+
declare function parseHyperliquidJson(raw: string | null): unknown | null;
|
|
640
|
+
declare function clampHyperliquidInt(value: unknown, min: number, max: number, fallback: number): number;
|
|
641
|
+
declare function clampHyperliquidFloat(value: unknown, min: number, max: number, fallback: number): number;
|
|
642
|
+
declare function resolveHyperliquidScheduleEvery(input: unknown, options?: {
|
|
643
|
+
min?: number;
|
|
644
|
+
max?: number;
|
|
645
|
+
fallback?: number;
|
|
646
|
+
}): number;
|
|
647
|
+
declare function resolveHyperliquidScheduleUnit(input: unknown, fallback?: HyperliquidScheduleUnit): HyperliquidScheduleUnit;
|
|
648
|
+
declare function resolveHyperliquidIntervalCron(every: number, unit: HyperliquidScheduleUnit): string;
|
|
649
|
+
declare function resolveHyperliquidHourlyInterval(input: unknown, fallback?: number): number;
|
|
650
|
+
declare function resolveHyperliquidCadenceCron(cadence: HyperliquidCadence, hourlyInterval: unknown, cadenceToCron?: Record<HyperliquidCadence, string>): string;
|
|
651
|
+
declare function resolveHyperliquidCadenceFromResolution(resolution: HyperliquidResolution): {
|
|
652
|
+
cadence: HyperliquidCadence;
|
|
653
|
+
hourlyInterval?: number;
|
|
654
|
+
};
|
|
655
|
+
|
|
559
656
|
interface HyperliquidOrderOptions {
|
|
560
657
|
wallet: WalletFullContext;
|
|
561
658
|
orders: HyperliquidOrderIntent[];
|
|
@@ -668,4 +765,4 @@ declare const __hyperliquidInternals: {
|
|
|
668
765
|
splitSignature: typeof splitSignature;
|
|
669
766
|
};
|
|
670
767
|
|
|
671
|
-
export { DEFAULT_HYPERLIQUID_MARKET_SLIPPAGE_BPS, type HyperliquidAbstraction, type HyperliquidAccountMode, HyperliquidApiError, type HyperliquidApproveBuilderFeeOptions, type HyperliquidApproveBuilderFeeResponse, type HyperliquidBar, type HyperliquidBarResolution, HyperliquidBuilderApprovalError, type HyperliquidBuilderApprovalRecordInput, type HyperliquidBuilderFee, type HyperliquidChain, type HyperliquidClearinghouseState, type HyperliquidDepositResult, type HyperliquidEnvironment, HyperliquidExchangeClient, type HyperliquidExchangeResponse, type HyperliquidGrouping, HyperliquidGuardError, HyperliquidInfoClient, type HyperliquidMarketIdentityInput, type HyperliquidMarketType, type HyperliquidOrderIntent, type HyperliquidOrderOptions, type HyperliquidOrderResponse, type HyperliquidOrderStatus, type HyperliquidPerpMarketInfo, type HyperliquidProfileAsset, type HyperliquidProfileAssetInput, type HyperliquidProfileChain, type HyperliquidSpotMarketInfo, type HyperliquidStoreNetwork, HyperliquidTermsError, type HyperliquidTermsRecordInput, type HyperliquidTickSize, type HyperliquidTimeInForce, type HyperliquidTriggerOptions, type HyperliquidTriggerType, type HyperliquidWithdrawResult, type MarketIdentity, type NonceSource, __hyperliquidInternals, __hyperliquidMarketDataInternals, approveHyperliquidBuilderFee, batchModifyHyperliquidOrders, buildHyperliquidMarketIdentity, buildHyperliquidProfileAssets, buildHyperliquidSpotUsdPriceMap, cancelAllHyperliquidOrders, cancelHyperliquidOrders, cancelHyperliquidOrdersByCloid, cancelHyperliquidTwapOrder, computeHyperliquidMarketIocLimitPrice, createHyperliquidSubAccount, createMonotonicNonceFactory, depositToHyperliquidBridge, extractHyperliquidDex, extractHyperliquidOrderIds, fetchHyperliquidAllMids, fetchHyperliquidAssetCtxs, fetchHyperliquidBars, fetchHyperliquidClearinghouseState, fetchHyperliquidFrontendOpenOrders, fetchHyperliquidHistoricalOrders, fetchHyperliquidMeta, fetchHyperliquidMetaAndAssetCtxs, fetchHyperliquidOpenOrders, fetchHyperliquidOrderStatus, fetchHyperliquidPerpMarketInfo, fetchHyperliquidPreTransferCheck, fetchHyperliquidSizeDecimals, fetchHyperliquidSpotAccountValue, fetchHyperliquidSpotAssetCtxs, fetchHyperliquidSpotClearinghouseState, fetchHyperliquidSpotMarketInfo, fetchHyperliquidSpotMeta, fetchHyperliquidSpotMetaAndAssetCtxs, fetchHyperliquidSpotTickSize, fetchHyperliquidSpotUsdPriceMap, fetchHyperliquidTickSize, fetchHyperliquidUserFills, fetchHyperliquidUserFillsByTime, fetchHyperliquidUserRateLimit, formatHyperliquidMarketablePrice, formatHyperliquidOrderSize, formatHyperliquidPrice, formatHyperliquidSize, getHyperliquidMaxBuilderFee, isHyperliquidSpotSymbol, modifyHyperliquidOrder, normalizeHyperliquidBaseSymbol, normalizeHyperliquidMetaSymbol, normalizeSpotTokenName, parseSpotPairSymbol, placeHyperliquidOrder, placeHyperliquidTwapOrder, readHyperliquidAccountValue, readHyperliquidNumber, readHyperliquidPerpPosition, readHyperliquidPerpPositionSize, readHyperliquidSpotAccountValue, readHyperliquidSpotBalance, readHyperliquidSpotBalanceSize, recordHyperliquidBuilderApproval, recordHyperliquidTermsAcceptance, reserveHyperliquidRequestWeight, resolveHyperliquidAbstractionFromMode, resolveHyperliquidChain, resolveHyperliquidChainConfig, resolveHyperliquidErrorDetail, resolveHyperliquidOrderRef, resolveHyperliquidOrderSymbol, resolveHyperliquidPair, resolveHyperliquidProfileChain, resolveHyperliquidRpcEnvVar, resolveHyperliquidStoreNetwork, resolveHyperliquidSymbol, resolveSpotMidCandidates, resolveSpotTokenCandidates, roundHyperliquidPriceToTick, scheduleHyperliquidCancel, sendHyperliquidSpot, setHyperliquidAccountAbstractionMode, setHyperliquidDexAbstraction, setHyperliquidPortfolioMargin, transferHyperliquidSubAccount, updateHyperliquidIsolatedMargin, updateHyperliquidLeverage, withdrawFromHyperliquid };
|
|
768
|
+
export { DEFAULT_HYPERLIQUID_CADENCE_CRON, DEFAULT_HYPERLIQUID_MARKET_SLIPPAGE_BPS, type HyperliquidAbstraction, type HyperliquidAccountMode, HyperliquidApiError, type HyperliquidApproveBuilderFeeOptions, type HyperliquidApproveBuilderFeeResponse, type HyperliquidBar, type HyperliquidBarResolution, HyperliquidBuilderApprovalError, type HyperliquidBuilderApprovalRecordInput, type HyperliquidBuilderFee, type HyperliquidCadence, type HyperliquidChain, type HyperliquidClearinghouseState, type HyperliquidDcaNormalizedEntry, type HyperliquidDcaSymbolEntry, type HyperliquidDcaSymbolInput, type HyperliquidDepositResult, type HyperliquidEnvironment, HyperliquidExchangeClient, type HyperliquidExchangeResponse, type HyperliquidExecutionMode, type HyperliquidGrouping, HyperliquidGuardError, type HyperliquidIndicatorBar, HyperliquidInfoClient, type HyperliquidMarketIdentityInput, type HyperliquidMarketType, type HyperliquidOrderIntent, type HyperliquidOrderOptions, type HyperliquidOrderResponse, type HyperliquidOrderStatus, type HyperliquidPerpMarketInfo, type HyperliquidProfileAsset, type HyperliquidProfileAssetInput, type HyperliquidProfileChain, type HyperliquidResolution, type HyperliquidScheduleUnit, type HyperliquidSpotMarketInfo, type HyperliquidStoreNetwork, type HyperliquidTargetSizeConfig, type HyperliquidTargetSizeExecution, HyperliquidTermsError, type HyperliquidTermsRecordInput, type HyperliquidTickSize, type HyperliquidTimeInForce, type HyperliquidTradePlan, type HyperliquidTradeSignal, type HyperliquidTriggerOptions, type HyperliquidTriggerType, type HyperliquidWithdrawResult, type MarketIdentity, type NonceSource, __hyperliquidInternals, __hyperliquidMarketDataInternals, approveHyperliquidBuilderFee, batchModifyHyperliquidOrders, buildHyperliquidMarketIdentity, buildHyperliquidProfileAssets, buildHyperliquidSpotUsdPriceMap, cancelAllHyperliquidOrders, cancelHyperliquidOrders, cancelHyperliquidOrdersByCloid, cancelHyperliquidTwapOrder, clampHyperliquidAbs, clampHyperliquidFloat, clampHyperliquidInt, computeHyperliquidMarketIocLimitPrice, createHyperliquidSubAccount, createMonotonicNonceFactory, depositToHyperliquidBridge, extractHyperliquidDex, extractHyperliquidOrderIds, fetchHyperliquidAllMids, fetchHyperliquidAssetCtxs, fetchHyperliquidBars, fetchHyperliquidClearinghouseState, fetchHyperliquidFrontendOpenOrders, fetchHyperliquidHistoricalOrders, fetchHyperliquidMeta, fetchHyperliquidMetaAndAssetCtxs, fetchHyperliquidOpenOrders, fetchHyperliquidOrderStatus, fetchHyperliquidPerpMarketInfo, fetchHyperliquidPreTransferCheck, fetchHyperliquidSizeDecimals, fetchHyperliquidSpotAccountValue, fetchHyperliquidSpotAssetCtxs, fetchHyperliquidSpotClearinghouseState, fetchHyperliquidSpotMarketInfo, fetchHyperliquidSpotMeta, fetchHyperliquidSpotMetaAndAssetCtxs, fetchHyperliquidSpotTickSize, fetchHyperliquidSpotUsdPriceMap, fetchHyperliquidTickSize, fetchHyperliquidUserFills, fetchHyperliquidUserFillsByTime, fetchHyperliquidUserRateLimit, formatHyperliquidMarketablePrice, formatHyperliquidOrderSize, formatHyperliquidPrice, formatHyperliquidSize, getHyperliquidMaxBuilderFee, isHyperliquidSpotSymbol, modifyHyperliquidOrder, normalizeHyperliquidBaseSymbol, normalizeHyperliquidDcaEntries, normalizeHyperliquidIndicatorBars, normalizeHyperliquidMetaSymbol, normalizeSpotTokenName, parseHyperliquidJson, parseSpotPairSymbol, placeHyperliquidOrder, placeHyperliquidTwapOrder, planHyperliquidTrade, readHyperliquidAccountValue, readHyperliquidNumber, readHyperliquidPerpPosition, readHyperliquidPerpPositionSize, readHyperliquidSpotAccountValue, readHyperliquidSpotBalance, readHyperliquidSpotBalanceSize, recordHyperliquidBuilderApproval, recordHyperliquidTermsAcceptance, reserveHyperliquidRequestWeight, resolveHyperliquidAbstractionFromMode, resolveHyperliquidBudgetUsd, resolveHyperliquidCadenceCron, resolveHyperliquidCadenceFromResolution, resolveHyperliquidChain, resolveHyperliquidChainConfig, resolveHyperliquidDcaSymbolEntries, resolveHyperliquidErrorDetail, resolveHyperliquidHourlyInterval, resolveHyperliquidIntervalCron, resolveHyperliquidLeverageMode, resolveHyperliquidMaxPerRunUsd, resolveHyperliquidOrderRef, resolveHyperliquidOrderSymbol, resolveHyperliquidPair, resolveHyperliquidPerpSymbol, resolveHyperliquidProfileChain, resolveHyperliquidRpcEnvVar, resolveHyperliquidScheduleEvery, resolveHyperliquidScheduleUnit, resolveHyperliquidSpotSymbol, resolveHyperliquidStoreNetwork, resolveHyperliquidSymbol, resolveHyperliquidTargetSize, resolveSpotMidCandidates, resolveSpotTokenCandidates, roundHyperliquidPriceToTick, scheduleHyperliquidCancel, sendHyperliquidSpot, setHyperliquidAccountAbstractionMode, setHyperliquidDexAbstraction, setHyperliquidPortfolioMargin, transferHyperliquidSubAccount, updateHyperliquidIsolatedMargin, updateHyperliquidLeverage, withdrawFromHyperliquid };
|
|
@@ -1743,6 +1743,9 @@ function resolveHyperliquidPair(value) {
|
|
|
1743
1743
|
}
|
|
1744
1744
|
return null;
|
|
1745
1745
|
}
|
|
1746
|
+
function resolveHyperliquidLeverageMode(symbol) {
|
|
1747
|
+
return symbol.includes(":") ? "isolated" : "cross";
|
|
1748
|
+
}
|
|
1746
1749
|
function resolveHyperliquidProfileChain(environment) {
|
|
1747
1750
|
return environment === "testnet" ? "hyperliquid-testnet" : "hyperliquid";
|
|
1748
1751
|
}
|
|
@@ -1843,6 +1846,175 @@ function resolveHyperliquidSymbol(asset, override) {
|
|
|
1843
1846
|
const baseNoPair = base.split("/")[0] ?? base;
|
|
1844
1847
|
return baseNoPair.trim().toUpperCase();
|
|
1845
1848
|
}
|
|
1849
|
+
function resolveHyperliquidPerpSymbol(asset) {
|
|
1850
|
+
const raw = asset.trim();
|
|
1851
|
+
if (!raw) return raw;
|
|
1852
|
+
const dex = extractHyperliquidDex(raw);
|
|
1853
|
+
const base = normalizeHyperliquidBaseSymbol(raw) ?? raw.toUpperCase();
|
|
1854
|
+
return dex ? `${dex}:${base}` : base;
|
|
1855
|
+
}
|
|
1856
|
+
function resolveHyperliquidSpotSymbol(asset, defaultQuote = "USDC") {
|
|
1857
|
+
const quote = defaultQuote.trim().toUpperCase() || "USDC";
|
|
1858
|
+
const raw = asset.trim().toUpperCase();
|
|
1859
|
+
if (!raw) {
|
|
1860
|
+
return { symbol: raw, base: raw, quote };
|
|
1861
|
+
}
|
|
1862
|
+
const pair = resolveHyperliquidPair(raw);
|
|
1863
|
+
if (pair) {
|
|
1864
|
+
const [base2, pairQuote] = pair.split("/");
|
|
1865
|
+
return {
|
|
1866
|
+
symbol: pair,
|
|
1867
|
+
base: base2?.trim() ?? raw,
|
|
1868
|
+
quote: pairQuote?.trim() ?? quote
|
|
1869
|
+
};
|
|
1870
|
+
}
|
|
1871
|
+
const base = normalizeHyperliquidBaseSymbol(raw) ?? raw;
|
|
1872
|
+
return { symbol: `${base}/${quote}`, base, quote };
|
|
1873
|
+
}
|
|
1874
|
+
|
|
1875
|
+
// src/adapters/hyperliquid/strategy.ts
|
|
1876
|
+
function clampDcaWeight(value) {
|
|
1877
|
+
if (typeof value !== "number" || !Number.isFinite(value)) return 0;
|
|
1878
|
+
return Math.min(1e6, Math.max(0, value));
|
|
1879
|
+
}
|
|
1880
|
+
function resolveHyperliquidBudgetUsd(params) {
|
|
1881
|
+
const { config, accountValue } = params;
|
|
1882
|
+
if (config.allocationMode === "fixed") {
|
|
1883
|
+
const desiredUsd = config.amountUsd ?? 0;
|
|
1884
|
+
if (!Number.isFinite(desiredUsd) || desiredUsd <= 0) {
|
|
1885
|
+
throw new Error("fixed allocation requires amountUsd");
|
|
1886
|
+
}
|
|
1887
|
+
return desiredUsd;
|
|
1888
|
+
}
|
|
1889
|
+
if (!Number.isFinite(accountValue ?? Number.NaN)) {
|
|
1890
|
+
throw new Error("percent allocation requires accountValue");
|
|
1891
|
+
}
|
|
1892
|
+
const rawUsd = accountValue * (config.percentOfEquity / 100);
|
|
1893
|
+
const maxPercentUsd = accountValue * (config.maxPercentOfEquity / 100);
|
|
1894
|
+
return Math.min(rawUsd, maxPercentUsd);
|
|
1895
|
+
}
|
|
1896
|
+
function resolveHyperliquidDcaSymbolEntries(inputs, fallbackSymbol) {
|
|
1897
|
+
const entries = [];
|
|
1898
|
+
const values = Array.isArray(inputs) ? inputs : [];
|
|
1899
|
+
for (const input of values) {
|
|
1900
|
+
if (typeof input === "string") {
|
|
1901
|
+
const trimmed = input.trim();
|
|
1902
|
+
if (!trimmed) continue;
|
|
1903
|
+
const [rawSymbol, rawWeight] = trimmed.split(":");
|
|
1904
|
+
const symbol2 = rawSymbol?.trim();
|
|
1905
|
+
if (!symbol2) continue;
|
|
1906
|
+
const parsedWeight2 = typeof rawWeight === "string" && rawWeight.trim().length > 0 ? Number.parseFloat(rawWeight.trim()) : 1;
|
|
1907
|
+
const weight2 = Number.isFinite(parsedWeight2) && parsedWeight2 > 0 ? parsedWeight2 : 1;
|
|
1908
|
+
entries.push({ symbol: symbol2, weight: weight2 });
|
|
1909
|
+
continue;
|
|
1910
|
+
}
|
|
1911
|
+
if (!input || typeof input !== "object") continue;
|
|
1912
|
+
const symbol = input.symbol?.trim();
|
|
1913
|
+
if (!symbol) continue;
|
|
1914
|
+
const parsedWeight = typeof input.weight === "number" && Number.isFinite(input.weight) ? input.weight : 1;
|
|
1915
|
+
const weight = parsedWeight > 0 ? parsedWeight : 1;
|
|
1916
|
+
entries.push({ symbol, weight });
|
|
1917
|
+
}
|
|
1918
|
+
if (entries.length > 0) {
|
|
1919
|
+
return entries;
|
|
1920
|
+
}
|
|
1921
|
+
return [{ symbol: fallbackSymbol, weight: 1 }];
|
|
1922
|
+
}
|
|
1923
|
+
function normalizeHyperliquidDcaEntries(params) {
|
|
1924
|
+
const map = /* @__PURE__ */ new Map();
|
|
1925
|
+
const entries = Array.isArray(params.entries) ? params.entries : [];
|
|
1926
|
+
for (const entry of entries) {
|
|
1927
|
+
if (!entry || typeof entry !== "object") continue;
|
|
1928
|
+
const symbol = typeof entry.symbol === "string" ? entry.symbol.trim() : "";
|
|
1929
|
+
if (!symbol) continue;
|
|
1930
|
+
const key = symbol.toUpperCase();
|
|
1931
|
+
const weight = clampDcaWeight(entry.weight);
|
|
1932
|
+
if (weight <= 0) continue;
|
|
1933
|
+
const existing = map.get(key);
|
|
1934
|
+
if (existing) {
|
|
1935
|
+
existing.weight += weight;
|
|
1936
|
+
} else {
|
|
1937
|
+
map.set(key, { symbol, weight });
|
|
1938
|
+
}
|
|
1939
|
+
}
|
|
1940
|
+
if (map.size === 0) {
|
|
1941
|
+
map.set(params.fallbackSymbol.toUpperCase(), {
|
|
1942
|
+
symbol: params.fallbackSymbol,
|
|
1943
|
+
weight: 1
|
|
1944
|
+
});
|
|
1945
|
+
}
|
|
1946
|
+
const entriesList = Array.from(map.values());
|
|
1947
|
+
const totalWeight = entriesList.reduce((sum, entry) => sum + entry.weight, 0);
|
|
1948
|
+
if (!Number.isFinite(totalWeight) || totalWeight <= 0) {
|
|
1949
|
+
return [];
|
|
1950
|
+
}
|
|
1951
|
+
return entriesList.map((entry) => ({
|
|
1952
|
+
symbol: entry.symbol,
|
|
1953
|
+
weight: entry.weight,
|
|
1954
|
+
normalizedWeight: entry.weight / totalWeight
|
|
1955
|
+
}));
|
|
1956
|
+
}
|
|
1957
|
+
function resolveHyperliquidMaxPerRunUsd(targetNotionalUsd, hedgeRatio) {
|
|
1958
|
+
if (!Number.isFinite(targetNotionalUsd) || targetNotionalUsd <= 0) return 0;
|
|
1959
|
+
const ratio = Number.isFinite(hedgeRatio) && hedgeRatio > 0 ? hedgeRatio : 1;
|
|
1960
|
+
return Math.max(targetNotionalUsd, targetNotionalUsd * ratio);
|
|
1961
|
+
}
|
|
1962
|
+
function clampHyperliquidAbs(value, limit) {
|
|
1963
|
+
if (!Number.isFinite(value) || !Number.isFinite(limit) || limit <= 0) return 0;
|
|
1964
|
+
const capped = Math.min(Math.abs(value), limit);
|
|
1965
|
+
return Math.sign(value) * capped;
|
|
1966
|
+
}
|
|
1967
|
+
function resolveHyperliquidTargetSize(params) {
|
|
1968
|
+
const { config, execution, accountValue, currentPrice } = params;
|
|
1969
|
+
if (execution.size && Number.isFinite(execution.size)) {
|
|
1970
|
+
return { targetSize: execution.size, budgetUsd: execution.size * currentPrice };
|
|
1971
|
+
}
|
|
1972
|
+
if (config.allocationMode === "fixed") {
|
|
1973
|
+
const budgetUsd2 = resolveHyperliquidBudgetUsd({
|
|
1974
|
+
config,
|
|
1975
|
+
accountValue
|
|
1976
|
+
});
|
|
1977
|
+
return { targetSize: budgetUsd2 / currentPrice, budgetUsd: budgetUsd2 };
|
|
1978
|
+
}
|
|
1979
|
+
const budgetUsd = resolveHyperliquidBudgetUsd({
|
|
1980
|
+
config,
|
|
1981
|
+
accountValue
|
|
1982
|
+
});
|
|
1983
|
+
return { targetSize: budgetUsd / currentPrice, budgetUsd };
|
|
1984
|
+
}
|
|
1985
|
+
function planHyperliquidTrade(params) {
|
|
1986
|
+
const { signal, mode, currentSize, targetSize } = params;
|
|
1987
|
+
if (signal === "hold" || signal === "unknown") return null;
|
|
1988
|
+
if (signal === "buy") {
|
|
1989
|
+
const desired2 = mode === "long-short" ? targetSize : Math.max(targetSize, 0);
|
|
1990
|
+
const delta2 = desired2 - currentSize;
|
|
1991
|
+
if (delta2 <= 0) return null;
|
|
1992
|
+
return {
|
|
1993
|
+
side: "buy",
|
|
1994
|
+
size: delta2,
|
|
1995
|
+
reduceOnly: false,
|
|
1996
|
+
targetSize: desired2
|
|
1997
|
+
};
|
|
1998
|
+
}
|
|
1999
|
+
if (mode === "long-only") {
|
|
2000
|
+
if (currentSize <= 0) return null;
|
|
2001
|
+
return {
|
|
2002
|
+
side: "sell",
|
|
2003
|
+
size: currentSize,
|
|
2004
|
+
reduceOnly: true,
|
|
2005
|
+
targetSize: 0
|
|
2006
|
+
};
|
|
2007
|
+
}
|
|
2008
|
+
const desired = -Math.abs(targetSize);
|
|
2009
|
+
const delta = currentSize - desired;
|
|
2010
|
+
if (delta <= 0) return null;
|
|
2011
|
+
return {
|
|
2012
|
+
side: "sell",
|
|
2013
|
+
size: delta,
|
|
2014
|
+
reduceOnly: false,
|
|
2015
|
+
targetSize: desired
|
|
2016
|
+
};
|
|
2017
|
+
}
|
|
1846
2018
|
|
|
1847
2019
|
// src/adapters/hyperliquid/order-utils.ts
|
|
1848
2020
|
var MAX_HYPERLIQUID_PRICE_DECIMALS = 8;
|
|
@@ -2188,9 +2360,10 @@ function readHyperliquidSpotAccountValue(params) {
|
|
|
2188
2360
|
|
|
2189
2361
|
// src/adapters/hyperliquid/market-data.ts
|
|
2190
2362
|
var META_CACHE_TTL_MS = 5 * 60 * 1e3;
|
|
2363
|
+
var DEFAULT_OPENPOND_GATEWAY_URL = "https://gateway.openpond.dev";
|
|
2191
2364
|
var allMidsCache = /* @__PURE__ */ new Map();
|
|
2192
2365
|
function resolveGatewayBase(override) {
|
|
2193
|
-
const value = override ?? process.env.OPENPOND_GATEWAY_URL ??
|
|
2366
|
+
const value = override ?? process.env.OPENPOND_GATEWAY_URL ?? DEFAULT_OPENPOND_GATEWAY_URL;
|
|
2194
2367
|
if (typeof value !== "string") {
|
|
2195
2368
|
return null;
|
|
2196
2369
|
}
|
|
@@ -2359,6 +2532,25 @@ async function fetchHyperliquidBars(params) {
|
|
|
2359
2532
|
return typeof record.close === "number" && Number.isFinite(record.close) && typeof record.time === "number" && Number.isFinite(record.time);
|
|
2360
2533
|
});
|
|
2361
2534
|
}
|
|
2535
|
+
function normalizeHyperliquidIndicatorBars(bars) {
|
|
2536
|
+
return bars.filter(
|
|
2537
|
+
(bar) => bar && typeof bar === "object" && typeof bar.time === "number" && Number.isFinite(bar.time) && typeof bar.close === "number" && Number.isFinite(bar.close)
|
|
2538
|
+
).map((bar) => {
|
|
2539
|
+
const close = bar.close;
|
|
2540
|
+
const open = typeof bar.open === "number" && Number.isFinite(bar.open) ? bar.open : close;
|
|
2541
|
+
const high = typeof bar.high === "number" && Number.isFinite(bar.high) ? bar.high : close;
|
|
2542
|
+
const low = typeof bar.low === "number" && Number.isFinite(bar.low) ? bar.low : close;
|
|
2543
|
+
const volume = typeof bar.volume === "number" && Number.isFinite(bar.volume) ? bar.volume : 0;
|
|
2544
|
+
return {
|
|
2545
|
+
time: bar.time,
|
|
2546
|
+
open,
|
|
2547
|
+
high,
|
|
2548
|
+
low,
|
|
2549
|
+
close,
|
|
2550
|
+
volume
|
|
2551
|
+
};
|
|
2552
|
+
});
|
|
2553
|
+
}
|
|
2362
2554
|
async function fetchHyperliquidTickSize(params) {
|
|
2363
2555
|
return fetchHyperliquidTickSizeForCoin(params.environment, params.symbol);
|
|
2364
2556
|
}
|
|
@@ -2568,6 +2760,78 @@ var __hyperliquidMarketDataInternals = {
|
|
|
2568
2760
|
formatScaledInt
|
|
2569
2761
|
};
|
|
2570
2762
|
|
|
2763
|
+
// src/adapters/hyperliquid/utils.ts
|
|
2764
|
+
var DEFAULT_HYPERLIQUID_CADENCE_CRON = {
|
|
2765
|
+
daily: "0 8 * * *",
|
|
2766
|
+
hourly: "0 * * * *",
|
|
2767
|
+
weekly: "0 8 * * 1",
|
|
2768
|
+
"twice-weekly": "0 8 * * 1,4",
|
|
2769
|
+
monthly: "0 8 1 * *"
|
|
2770
|
+
};
|
|
2771
|
+
function parseHyperliquidJson(raw) {
|
|
2772
|
+
if (!raw) return null;
|
|
2773
|
+
try {
|
|
2774
|
+
return JSON.parse(raw);
|
|
2775
|
+
} catch {
|
|
2776
|
+
return null;
|
|
2777
|
+
}
|
|
2778
|
+
}
|
|
2779
|
+
function clampHyperliquidInt(value, min, max, fallback) {
|
|
2780
|
+
if (value == null) return fallback;
|
|
2781
|
+
if (typeof value === "string" && value.trim().length === 0) return fallback;
|
|
2782
|
+
const parsed = Number(value);
|
|
2783
|
+
if (!Number.isFinite(parsed)) return fallback;
|
|
2784
|
+
const numeric = Math.trunc(parsed);
|
|
2785
|
+
if (!Number.isFinite(numeric)) return fallback;
|
|
2786
|
+
return Math.min(max, Math.max(min, numeric));
|
|
2787
|
+
}
|
|
2788
|
+
function clampHyperliquidFloat(value, min, max, fallback) {
|
|
2789
|
+
if (value == null) return fallback;
|
|
2790
|
+
if (typeof value === "string" && value.trim().length === 0) return fallback;
|
|
2791
|
+
const numeric = Number(value);
|
|
2792
|
+
if (!Number.isFinite(numeric)) return fallback;
|
|
2793
|
+
return Math.min(max, Math.max(min, numeric));
|
|
2794
|
+
}
|
|
2795
|
+
function resolveHyperliquidScheduleEvery(input, options) {
|
|
2796
|
+
const min = options?.min ?? 1;
|
|
2797
|
+
const max = options?.max ?? 59;
|
|
2798
|
+
const fallback = options?.fallback ?? 1;
|
|
2799
|
+
return clampHyperliquidInt(input, min, max, fallback);
|
|
2800
|
+
}
|
|
2801
|
+
function resolveHyperliquidScheduleUnit(input, fallback = "hours") {
|
|
2802
|
+
if (input === "minutes") return "minutes";
|
|
2803
|
+
if (input === "hours") return "hours";
|
|
2804
|
+
return fallback;
|
|
2805
|
+
}
|
|
2806
|
+
function resolveHyperliquidIntervalCron(every, unit) {
|
|
2807
|
+
if (unit === "minutes") {
|
|
2808
|
+
return every === 1 ? "* * * * *" : `*/${every} * * * *`;
|
|
2809
|
+
}
|
|
2810
|
+
return every === 1 ? "0 * * * *" : `0 */${every} * * *`;
|
|
2811
|
+
}
|
|
2812
|
+
function resolveHyperliquidHourlyInterval(input, fallback = 1) {
|
|
2813
|
+
return clampHyperliquidInt(input, 1, 24, fallback);
|
|
2814
|
+
}
|
|
2815
|
+
function resolveHyperliquidCadenceCron(cadence, hourlyInterval, cadenceToCron = DEFAULT_HYPERLIQUID_CADENCE_CRON) {
|
|
2816
|
+
if (cadence !== "hourly") {
|
|
2817
|
+
return cadenceToCron[cadence];
|
|
2818
|
+
}
|
|
2819
|
+
const interval = resolveHyperliquidHourlyInterval(hourlyInterval, 1);
|
|
2820
|
+
return interval === 1 ? cadenceToCron.hourly : `0 */${interval} * * *`;
|
|
2821
|
+
}
|
|
2822
|
+
function resolveHyperliquidCadenceFromResolution(resolution) {
|
|
2823
|
+
if (resolution === "60") {
|
|
2824
|
+
return { cadence: "hourly", hourlyInterval: 1 };
|
|
2825
|
+
}
|
|
2826
|
+
if (resolution === "240") {
|
|
2827
|
+
return { cadence: "hourly", hourlyInterval: 4 };
|
|
2828
|
+
}
|
|
2829
|
+
if (resolution === "1W") {
|
|
2830
|
+
return { cadence: "weekly" };
|
|
2831
|
+
}
|
|
2832
|
+
return { cadence: "daily" };
|
|
2833
|
+
}
|
|
2834
|
+
|
|
2571
2835
|
// src/adapters/hyperliquid/index.ts
|
|
2572
2836
|
function assertPositiveDecimalInput(value, label) {
|
|
2573
2837
|
if (typeof value === "number") {
|
|
@@ -2992,6 +3256,6 @@ var __hyperliquidInternals = {
|
|
|
2992
3256
|
splitSignature
|
|
2993
3257
|
};
|
|
2994
3258
|
|
|
2995
|
-
export { DEFAULT_HYPERLIQUID_MARKET_SLIPPAGE_BPS, HyperliquidApiError, HyperliquidBuilderApprovalError, HyperliquidExchangeClient, HyperliquidGuardError, HyperliquidInfoClient, HyperliquidTermsError, __hyperliquidInternals, __hyperliquidMarketDataInternals, approveHyperliquidBuilderFee, batchModifyHyperliquidOrders, buildHyperliquidMarketIdentity, buildHyperliquidProfileAssets, buildHyperliquidSpotUsdPriceMap, cancelAllHyperliquidOrders, cancelHyperliquidOrders, cancelHyperliquidOrdersByCloid, cancelHyperliquidTwapOrder, computeHyperliquidMarketIocLimitPrice, createHyperliquidSubAccount, createMonotonicNonceFactory, depositToHyperliquidBridge, extractHyperliquidDex, extractHyperliquidOrderIds, fetchHyperliquidAllMids, fetchHyperliquidAssetCtxs, fetchHyperliquidBars, fetchHyperliquidClearinghouseState, fetchHyperliquidFrontendOpenOrders, fetchHyperliquidHistoricalOrders, fetchHyperliquidMeta, fetchHyperliquidMetaAndAssetCtxs, fetchHyperliquidOpenOrders, fetchHyperliquidOrderStatus, fetchHyperliquidPerpMarketInfo, fetchHyperliquidPreTransferCheck, fetchHyperliquidSizeDecimals, fetchHyperliquidSpotAccountValue, fetchHyperliquidSpotAssetCtxs, fetchHyperliquidSpotClearinghouseState, fetchHyperliquidSpotMarketInfo, fetchHyperliquidSpotMeta, fetchHyperliquidSpotMetaAndAssetCtxs, fetchHyperliquidSpotTickSize, fetchHyperliquidSpotUsdPriceMap, fetchHyperliquidTickSize, fetchHyperliquidUserFills, fetchHyperliquidUserFillsByTime, fetchHyperliquidUserRateLimit, formatHyperliquidMarketablePrice, formatHyperliquidOrderSize, formatHyperliquidPrice, formatHyperliquidSize, getHyperliquidMaxBuilderFee, isHyperliquidSpotSymbol, modifyHyperliquidOrder, normalizeHyperliquidBaseSymbol, normalizeHyperliquidMetaSymbol, normalizeSpotTokenName2 as normalizeSpotTokenName, parseSpotPairSymbol, placeHyperliquidOrder, placeHyperliquidTwapOrder, readHyperliquidAccountValue, readHyperliquidNumber, readHyperliquidPerpPosition, readHyperliquidPerpPositionSize, readHyperliquidSpotAccountValue, readHyperliquidSpotBalance, readHyperliquidSpotBalanceSize, recordHyperliquidBuilderApproval, recordHyperliquidTermsAcceptance, reserveHyperliquidRequestWeight, resolveHyperliquidAbstractionFromMode, resolveHyperliquidChain, resolveHyperliquidChainConfig, resolveHyperliquidErrorDetail, resolveHyperliquidOrderRef, resolveHyperliquidOrderSymbol, resolveHyperliquidPair, resolveHyperliquidProfileChain, resolveHyperliquidRpcEnvVar, resolveHyperliquidStoreNetwork, resolveHyperliquidSymbol, resolveSpotMidCandidates, resolveSpotTokenCandidates, roundHyperliquidPriceToTick, scheduleHyperliquidCancel, sendHyperliquidSpot, setHyperliquidAccountAbstractionMode, setHyperliquidDexAbstraction, setHyperliquidPortfolioMargin, transferHyperliquidSubAccount, updateHyperliquidIsolatedMargin, updateHyperliquidLeverage, withdrawFromHyperliquid };
|
|
3259
|
+
export { DEFAULT_HYPERLIQUID_CADENCE_CRON, DEFAULT_HYPERLIQUID_MARKET_SLIPPAGE_BPS, HyperliquidApiError, HyperliquidBuilderApprovalError, HyperliquidExchangeClient, HyperliquidGuardError, HyperliquidInfoClient, HyperliquidTermsError, __hyperliquidInternals, __hyperliquidMarketDataInternals, approveHyperliquidBuilderFee, batchModifyHyperliquidOrders, buildHyperliquidMarketIdentity, buildHyperliquidProfileAssets, buildHyperliquidSpotUsdPriceMap, cancelAllHyperliquidOrders, cancelHyperliquidOrders, cancelHyperliquidOrdersByCloid, cancelHyperliquidTwapOrder, clampHyperliquidAbs, clampHyperliquidFloat, clampHyperliquidInt, computeHyperliquidMarketIocLimitPrice, createHyperliquidSubAccount, createMonotonicNonceFactory, depositToHyperliquidBridge, extractHyperliquidDex, extractHyperliquidOrderIds, fetchHyperliquidAllMids, fetchHyperliquidAssetCtxs, fetchHyperliquidBars, fetchHyperliquidClearinghouseState, fetchHyperliquidFrontendOpenOrders, fetchHyperliquidHistoricalOrders, fetchHyperliquidMeta, fetchHyperliquidMetaAndAssetCtxs, fetchHyperliquidOpenOrders, fetchHyperliquidOrderStatus, fetchHyperliquidPerpMarketInfo, fetchHyperliquidPreTransferCheck, fetchHyperliquidSizeDecimals, fetchHyperliquidSpotAccountValue, fetchHyperliquidSpotAssetCtxs, fetchHyperliquidSpotClearinghouseState, fetchHyperliquidSpotMarketInfo, fetchHyperliquidSpotMeta, fetchHyperliquidSpotMetaAndAssetCtxs, fetchHyperliquidSpotTickSize, fetchHyperliquidSpotUsdPriceMap, fetchHyperliquidTickSize, fetchHyperliquidUserFills, fetchHyperliquidUserFillsByTime, fetchHyperliquidUserRateLimit, formatHyperliquidMarketablePrice, formatHyperliquidOrderSize, formatHyperliquidPrice, formatHyperliquidSize, getHyperliquidMaxBuilderFee, isHyperliquidSpotSymbol, modifyHyperliquidOrder, normalizeHyperliquidBaseSymbol, normalizeHyperliquidDcaEntries, normalizeHyperliquidIndicatorBars, normalizeHyperliquidMetaSymbol, normalizeSpotTokenName2 as normalizeSpotTokenName, parseHyperliquidJson, parseSpotPairSymbol, placeHyperliquidOrder, placeHyperliquidTwapOrder, planHyperliquidTrade, readHyperliquidAccountValue, readHyperliquidNumber, readHyperliquidPerpPosition, readHyperliquidPerpPositionSize, readHyperliquidSpotAccountValue, readHyperliquidSpotBalance, readHyperliquidSpotBalanceSize, recordHyperliquidBuilderApproval, recordHyperliquidTermsAcceptance, reserveHyperliquidRequestWeight, resolveHyperliquidAbstractionFromMode, resolveHyperliquidBudgetUsd, resolveHyperliquidCadenceCron, resolveHyperliquidCadenceFromResolution, resolveHyperliquidChain, resolveHyperliquidChainConfig, resolveHyperliquidDcaSymbolEntries, resolveHyperliquidErrorDetail, resolveHyperliquidHourlyInterval, resolveHyperliquidIntervalCron, resolveHyperliquidLeverageMode, resolveHyperliquidMaxPerRunUsd, resolveHyperliquidOrderRef, resolveHyperliquidOrderSymbol, resolveHyperliquidPair, resolveHyperliquidPerpSymbol, resolveHyperliquidProfileChain, resolveHyperliquidRpcEnvVar, resolveHyperliquidScheduleEvery, resolveHyperliquidScheduleUnit, resolveHyperliquidSpotSymbol, resolveHyperliquidStoreNetwork, resolveHyperliquidSymbol, resolveHyperliquidTargetSize, resolveSpotMidCandidates, resolveSpotTokenCandidates, roundHyperliquidPriceToTick, scheduleHyperliquidCancel, sendHyperliquidSpot, setHyperliquidAccountAbstractionMode, setHyperliquidDexAbstraction, setHyperliquidPortfolioMargin, transferHyperliquidSubAccount, updateHyperliquidIsolatedMargin, updateHyperliquidLeverage, withdrawFromHyperliquid };
|
|
2996
3260
|
//# sourceMappingURL=index.js.map
|
|
2997
3261
|
//# sourceMappingURL=index.js.map
|