@metamask-previews/perps-controller 9.3.0-preview-2721cb096 → 9.3.0-preview-7193a79ea
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/CHANGELOG.md +0 -25
- package/dist/constants/hyperLiquidConfig.cjs +18 -2
- package/dist/constants/hyperLiquidConfig.cjs.map +1 -1
- package/dist/constants/hyperLiquidConfig.d.cts +16 -0
- package/dist/constants/hyperLiquidConfig.d.cts.map +1 -1
- package/dist/constants/hyperLiquidConfig.d.mts +16 -0
- package/dist/constants/hyperLiquidConfig.d.mts.map +1 -1
- package/dist/constants/hyperLiquidConfig.mjs +16 -0
- package/dist/constants/hyperLiquidConfig.mjs.map +1 -1
- package/dist/index.cjs +5 -4
- package/dist/index.cjs.map +1 -1
- package/dist/index.d.cts +1 -1
- package/dist/index.d.cts.map +1 -1
- package/dist/index.d.mts +1 -1
- package/dist/index.d.mts.map +1 -1
- package/dist/index.mjs +1 -1
- package/dist/index.mjs.map +1 -1
- package/dist/perpsErrorCodes.cjs +0 -2
- package/dist/perpsErrorCodes.cjs.map +1 -1
- package/dist/perpsErrorCodes.d.cts +0 -1
- package/dist/perpsErrorCodes.d.cts.map +1 -1
- package/dist/perpsErrorCodes.d.mts +0 -1
- package/dist/perpsErrorCodes.d.mts.map +1 -1
- package/dist/perpsErrorCodes.mjs +0 -2
- package/dist/perpsErrorCodes.mjs.map +1 -1
- package/dist/providers/HyperLiquidProvider.cjs +294 -96
- package/dist/providers/HyperLiquidProvider.cjs.map +1 -1
- package/dist/providers/HyperLiquidProvider.d.cts.map +1 -1
- package/dist/providers/HyperLiquidProvider.d.mts.map +1 -1
- package/dist/providers/HyperLiquidProvider.mjs +295 -97
- package/dist/providers/HyperLiquidProvider.mjs.map +1 -1
- package/dist/services/HyperLiquidSubscriptionService.cjs +19 -171
- package/dist/services/HyperLiquidSubscriptionService.cjs.map +1 -1
- package/dist/services/HyperLiquidSubscriptionService.d.cts.map +1 -1
- package/dist/services/HyperLiquidSubscriptionService.d.mts.map +1 -1
- package/dist/services/HyperLiquidSubscriptionService.mjs +19 -171
- package/dist/services/HyperLiquidSubscriptionService.mjs.map +1 -1
- package/package.json +1 -1
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"HyperLiquidProvider.d.cts","sourceRoot":"","sources":["../../src/providers/HyperLiquidProvider.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,aAAa,EAAe,wBAAwB;AAE7D,OAAO,KAAK,EACV,cAAc,EAEf,4BAA4B;AAG7B,OAAO,KAAK,EAAE,YAAY,EAAE,qCAAiC;
|
|
1
|
+
{"version":3,"file":"HyperLiquidProvider.d.cts","sourceRoot":"","sources":["../../src/providers/HyperLiquidProvider.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"HyperLiquidProvider.d.mts","sourceRoot":"","sources":["../../src/providers/HyperLiquidProvider.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,aAAa,EAAe,wBAAwB;AAE7D,OAAO,KAAK,EACV,cAAc,EAEf,4BAA4B;AAG7B,OAAO,KAAK,EAAE,YAAY,EAAE,qCAAiC;
|
|
1
|
+
{"version":3,"file":"HyperLiquidProvider.d.mts","sourceRoot":"","sources":["../../src/providers/HyperLiquidProvider.ts"],"names":[],"mappings":"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"}
|
|
@@ -9,11 +9,11 @@ var __classPrivateFieldGet = (this && this.__classPrivateFieldGet) || function (
|
|
|
9
9
|
if (typeof state === "function" ? receiver !== state || !f : !state.has(receiver)) throw new TypeError("Cannot read private member from an object whose class did not declare it");
|
|
10
10
|
return kind === "m" ? f : kind === "a" ? f.call(receiver) : f ? f.value : state.get(receiver);
|
|
11
11
|
};
|
|
12
|
-
var _HyperLiquidProvider_instances, _HyperLiquidProvider_deps, _HyperLiquidProvider_clientService, _HyperLiquidProvider_walletService, _HyperLiquidProvider_subscriptionService, _HyperLiquidProvider_symbolToAssetId, _HyperLiquidProvider_userFeeCache, _HyperLiquidProvider_maxLeverageCache, _HyperLiquidProvider_cachedMetaByDex, _HyperLiquidProvider_cachedMarketDataWithPrices, _HyperLiquidProvider_cachedSpotMeta, _HyperLiquidProvider_dexDiscoveryCache, _HyperLiquidProvider_referralCheckCache, _HyperLiquidProvider_builderFeeCheckCache, _HyperLiquidProvider_ensureReadyPromise, _HyperLiquidProvider_pendingBuilderFeeApprovals, _HyperLiquidProvider_compiledAllowlistPatterns, _HyperLiquidProvider_compiledBlocklistPatterns, _HyperLiquidProvider_userFeeDiscountBips, _HyperLiquidProvider_hip3Enabled, _HyperLiquidProvider_allowlistMarkets, _HyperLiquidProvider_blocklistMarkets, _HyperLiquidProvider_useUnifiedAccount, _HyperLiquidProvider_dexDiscoveryComplete, _HyperLiquidProvider_unifiedAccountSetupNeedsRetry, _HyperLiquidProvider_pendingValidatedDexsPromise, _HyperLiquidProvider_cachedUsdcTokenId, _HyperLiquidProvider_errorMappings, _HyperLiquidProvider_clientsInitialized, _HyperLiquidProvider_initializationPromise, _HyperLiquidProvider_messenger, _HyperLiquidProvider_builderAddressTestnet, _HyperLiquidProvider_builderAddressMainnet, _HyperLiquidProvider_priceDeviationLimit, _HyperLiquidProvider_compilePatternsSafely, _HyperLiquidProvider_ensureClientsInitialized, _HyperLiquidProvider_isWalletOnHyperliquid, _HyperLiquidProvider_ensureUnifiedAccountEnabled, _HyperLiquidProvider_ensureReady, _HyperLiquidProvider_tradingSetupPromise, _HyperLiquidProvider_tradingSetupComplete, _HyperLiquidProvider_ensureReadyForTrading, _HyperLiquidProvider_getOrFetchPrice, _HyperLiquidProvider_filterFills, _HyperLiquidProvider_getAllAvailableDexs, _HyperLiquidProvider_getValidatedDexs, _HyperLiquidProvider_fetchValidatedDexsInternal, _HyperLiquidProvider_getCachedMeta, _HyperLiquidProvider_backfillAssetMapForDex, _HyperLiquidProvider_getAssetIdWithRepair, _HyperLiquidProvider_getCachedSpotMeta, _HyperLiquidProvider_getCachedPerpDexs, _HyperLiquidProvider_calculateHip3FeeMultiplier, _HyperLiquidProvider_getCacheKey, _HyperLiquidProvider_fetchMarketsForDex, _HyperLiquidProvider_getUsdcTokenId,
|
|
12
|
+
var _HyperLiquidProvider_instances, _HyperLiquidProvider_deps, _HyperLiquidProvider_clientService, _HyperLiquidProvider_walletService, _HyperLiquidProvider_subscriptionService, _HyperLiquidProvider_symbolToAssetId, _HyperLiquidProvider_userFeeCache, _HyperLiquidProvider_maxLeverageCache, _HyperLiquidProvider_cachedMetaByDex, _HyperLiquidProvider_cachedMarketDataWithPrices, _HyperLiquidProvider_cachedSpotMeta, _HyperLiquidProvider_dexDiscoveryCache, _HyperLiquidProvider_referralCheckCache, _HyperLiquidProvider_builderFeeCheckCache, _HyperLiquidProvider_ensureReadyPromise, _HyperLiquidProvider_pendingBuilderFeeApprovals, _HyperLiquidProvider_compiledAllowlistPatterns, _HyperLiquidProvider_compiledBlocklistPatterns, _HyperLiquidProvider_userFeeDiscountBips, _HyperLiquidProvider_hip3Enabled, _HyperLiquidProvider_allowlistMarkets, _HyperLiquidProvider_blocklistMarkets, _HyperLiquidProvider_useUnifiedAccount, _HyperLiquidProvider_dexDiscoveryComplete, _HyperLiquidProvider_unifiedAccountSetupNeedsRetry, _HyperLiquidProvider_pendingValidatedDexsPromise, _HyperLiquidProvider_cachedUsdcTokenId, _HyperLiquidProvider_errorMappings, _HyperLiquidProvider_clientsInitialized, _HyperLiquidProvider_initializationPromise, _HyperLiquidProvider_messenger, _HyperLiquidProvider_builderAddressTestnet, _HyperLiquidProvider_builderAddressMainnet, _HyperLiquidProvider_priceDeviationLimit, _HyperLiquidProvider_compilePatternsSafely, _HyperLiquidProvider_ensureClientsInitialized, _HyperLiquidProvider_isWalletOnHyperliquid, _HyperLiquidProvider_ensureUnifiedAccountEnabled, _HyperLiquidProvider_ensureReady, _HyperLiquidProvider_tradingSetupPromise, _HyperLiquidProvider_tradingSetupComplete, _HyperLiquidProvider_ensureReadyForTrading, _HyperLiquidProvider_getOrFetchPrice, _HyperLiquidProvider_filterFills, _HyperLiquidProvider_getAllAvailableDexs, _HyperLiquidProvider_getValidatedDexs, _HyperLiquidProvider_fetchValidatedDexsInternal, _HyperLiquidProvider_getCachedMeta, _HyperLiquidProvider_backfillAssetMapForDex, _HyperLiquidProvider_getAssetIdWithRepair, _HyperLiquidProvider_getCachedSpotMeta, _HyperLiquidProvider_getCachedPerpDexs, _HyperLiquidProvider_calculateHip3FeeMultiplier, _HyperLiquidProvider_getCacheKey, _HyperLiquidProvider_fetchMarketsForDex, _HyperLiquidProvider_getUsdcTokenId, _HyperLiquidProvider_isUsdhCollateralDex, _HyperLiquidProvider_getSpotUsdhBalance, _HyperLiquidProvider_getSpotUsdcBalance, _HyperLiquidProvider_transferUsdcToSpot, _HyperLiquidProvider_swapUsdcToUsdh, _HyperLiquidProvider_ensureUsdhCollateralForOrder, _HyperLiquidProvider_buildAssetMapping, _HyperLiquidProvider_queryUserDataAcrossDexs, _HyperLiquidProvider_mapError, _HyperLiquidProvider_getErrorContext, _HyperLiquidProvider_checkBuilderFeeApproval, _HyperLiquidProvider_ensureBuilderFeeApproval, _HyperLiquidProvider_checkBuilderFeeStatus, _HyperLiquidProvider_getBalanceForDex, _HyperLiquidProvider_findSourceDexWithBalance, _HyperLiquidProvider_autoTransferForHip3Order, _HyperLiquidProvider_autoTransferBackAfterClose, _HyperLiquidProvider_calculateHip3RequiredMargin, _HyperLiquidProvider_handleHip3PostOrderRebalance, _HyperLiquidProvider_handleHip3OrderRollback, _HyperLiquidProvider_validateOrderBeforePlacement, _HyperLiquidProvider_getAssetInfo, _HyperLiquidProvider_prepareAssetForTrading, _HyperLiquidProvider_handleHip3PreOrder, _HyperLiquidProvider_submitOrderWithRollback, _HyperLiquidProvider_handleOrderError, _HyperLiquidProvider_getStandaloneValidatedDexs, _HyperLiquidProvider_getAllMids, _HyperLiquidProvider_fetchSingleDexFresh, _HyperLiquidProvider_mergeDexResultsInto, _HyperLiquidProvider_cacheFreshMarketDataSnapshot, _HyperLiquidProvider_getStaleMarketDataSnapshot, _HyperLiquidProvider_isFeeCacheValid, _HyperLiquidProvider_getBuilderAddress, _HyperLiquidProvider_getReferralCode, _HyperLiquidProvider_ensureReferralSet, _HyperLiquidProvider_isReferralCodeReady, _HyperLiquidProvider_checkReferralSet, _HyperLiquidProvider_setReferralCode;
|
|
13
13
|
import { hasProperty } from "@metamask/utils";
|
|
14
14
|
import { v4 as uuidv4 } from "uuid";
|
|
15
15
|
import { PERPS_EVENT_PROPERTY, PERPS_EVENT_VALUE } from "../constants/eventNames.mjs";
|
|
16
|
-
import { BASIS_POINTS_DIVISOR, BUILDER_FEE_CONFIG, FEE_RATES, getBridgeInfo, getChainId, HIP3_ASSET_MARKET_TYPES, HIP3_FEE_CONFIG, HIP3_MARGIN_CONFIG, HYPERLIQUID_ASSET_NAMES, HYPERLIQUID_CONFIG, HYPERLIQUID_WITHDRAWAL_MINUTES, REFERRAL_CONFIG, TRADING_DEFAULTS, USDC_DECIMALS,
|
|
16
|
+
import { BASIS_POINTS_DIVISOR, BUILDER_FEE_CONFIG, FEE_RATES, getBridgeInfo, getChainId, HIP3_ASSET_MARKET_TYPES, HIP3_FEE_CONFIG, HIP3_MARGIN_CONFIG, HYPERLIQUID_ASSET_NAMES, HYPERLIQUID_CONFIG, HYPERLIQUID_WITHDRAWAL_MINUTES, REFERRAL_CONFIG, SPOT_ASSET_ID_OFFSET, TRADING_DEFAULTS, USDC_DECIMALS, USDH_CONFIG } from "../constants/hyperLiquidConfig.mjs";
|
|
17
17
|
import { ORDER_SLIPPAGE_CONFIG, PERFORMANCE_CONFIG, PERPS_CONSTANTS, TP_SL_CONFIG, WITHDRAWAL_CONSTANTS } from "../constants/perpsConfig.mjs";
|
|
18
18
|
import { PERPS_TRANSACTIONS_HISTORY_CONSTANTS } from "../constants/transactionsHistoryConfig.mjs";
|
|
19
19
|
import { PERPS_ERROR_CODES } from "../perpsErrorCodes.mjs";
|
|
@@ -74,7 +74,7 @@ export class HyperLiquidProvider {
|
|
|
74
74
|
_HyperLiquidProvider_cachedMetaByDex.set(this, new Map());
|
|
75
75
|
// Last known-good market list for stale fallback when every enabled DEX fails in one fetch window.
|
|
76
76
|
_HyperLiquidProvider_cachedMarketDataWithPrices.set(this, null);
|
|
77
|
-
// Session cache for spot metadata (contains token info for HIP-3 collateral checks)
|
|
77
|
+
// Session cache for spot metadata (contains USDC/USDH token info for HIP-3 collateral checks)
|
|
78
78
|
// Pre-fetched in ensureReadyForTrading() to avoid API failures during order placement
|
|
79
79
|
_HyperLiquidProvider_cachedSpotMeta.set(this, null);
|
|
80
80
|
// Unified DEX discovery cache — single source of truth for all perpDexs() derivatives.
|
|
@@ -2352,17 +2352,12 @@ export class HyperLiquidProvider {
|
|
|
2352
2352
|
errorMessage,
|
|
2353
2353
|
};
|
|
2354
2354
|
}));
|
|
2355
|
-
// TAT-3304: Exclude non-USDC-collateral HIP-3 DEXs before merging, so
|
|
2356
|
-
// getMarketDataWithPrices (and the stale snapshot #cacheFreshMarketDataSnapshot
|
|
2357
|
-
// derives from it) enforces the same USDC-only policy as market discovery
|
|
2358
|
-
// and order placement.
|
|
2359
|
-
const usdcFilteredDexDataResults = await __classPrivateFieldGet(this, _HyperLiquidProvider_instances, "m", _HyperLiquidProvider_excludeNonUsdcCollateralResults).call(this, dexDataResults);
|
|
2360
2355
|
// Combine universe, assetCtxs, and allMids from all DEXs
|
|
2361
2356
|
const combinedUniverse = [];
|
|
2362
2357
|
const combinedAssetCtxs = [];
|
|
2363
2358
|
const combinedAllMids = {};
|
|
2364
|
-
let latestDexResults =
|
|
2365
|
-
__classPrivateFieldGet(this, _HyperLiquidProvider_instances, "m", _HyperLiquidProvider_mergeDexResultsInto).call(this,
|
|
2359
|
+
let latestDexResults = dexDataResults;
|
|
2360
|
+
__classPrivateFieldGet(this, _HyperLiquidProvider_instances, "m", _HyperLiquidProvider_mergeDexResultsInto).call(this, dexDataResults, combinedUniverse, combinedAssetCtxs, combinedAllMids);
|
|
2366
2361
|
if (combinedUniverse.length === 0) {
|
|
2367
2362
|
combinedUniverse.length = 0;
|
|
2368
2363
|
combinedAssetCtxs.length = 0;
|
|
@@ -2373,9 +2368,8 @@ export class HyperLiquidProvider {
|
|
|
2373
2368
|
__classPrivateFieldGet(this, _HyperLiquidProvider_deps, "f").debugLogger.log(`[getMarketDataWithPrices] All DEXs returned empty, retrying in ${retryDelayMs}ms`);
|
|
2374
2369
|
await new Promise((resolve) => setTimeout(resolve, retryDelayMs));
|
|
2375
2370
|
const retryResults = await Promise.all(enabledDexs.map((dex) => __classPrivateFieldGet(this, _HyperLiquidProvider_instances, "m", _HyperLiquidProvider_fetchSingleDexFresh).call(this, infoClient, dex)));
|
|
2376
|
-
|
|
2377
|
-
|
|
2378
|
-
latestDexResults = usdcFilteredRetryResults;
|
|
2371
|
+
__classPrivateFieldGet(this, _HyperLiquidProvider_instances, "m", _HyperLiquidProvider_mergeDexResultsInto).call(this, retryResults, combinedUniverse, combinedAssetCtxs, combinedAllMids);
|
|
2372
|
+
latestDexResults = retryResults;
|
|
2379
2373
|
if (combinedUniverse.length === 0) {
|
|
2380
2374
|
const failedDexs = retryResults
|
|
2381
2375
|
.filter((result) => !result.success)
|
|
@@ -4239,7 +4233,7 @@ async function _HyperLiquidProvider_ensureReady() {
|
|
|
4239
4233
|
__classPrivateFieldGet(this, _HyperLiquidProvider_deps, "f").debugLogger.log('[ensureReadyForTrading] Starting trading setup (may require signatures)');
|
|
4240
4234
|
__classPrivateFieldSet(this, _HyperLiquidProvider_tradingSetupPromise, (async () => {
|
|
4241
4235
|
// Pre-fetch spotMeta for HIP-3 operations (non-blocking if it fails)
|
|
4242
|
-
// This ensures token info (
|
|
4236
|
+
// This ensures token info (USDC/USDH indices) is available during order placement
|
|
4243
4237
|
if (__classPrivateFieldGet(this, _HyperLiquidProvider_hip3Enabled, "f")) {
|
|
4244
4238
|
try {
|
|
4245
4239
|
await __classPrivateFieldGet(this, _HyperLiquidProvider_instances, "m", _HyperLiquidProvider_getCachedSpotMeta).call(this);
|
|
@@ -4579,7 +4573,7 @@ async function _HyperLiquidProvider_getAssetIdWithRepair(params) {
|
|
|
4579
4573
|
}, _HyperLiquidProvider_getCachedSpotMeta =
|
|
4580
4574
|
/**
|
|
4581
4575
|
* Fetch spot metadata with session-based caching
|
|
4582
|
-
* Contains token info (
|
|
4576
|
+
* Contains token info (USDC, USDH indices) needed for HIP-3 collateral checks
|
|
4583
4577
|
* Pre-fetched in ensureReadyForTrading() to ensure availability during order placement
|
|
4584
4578
|
*
|
|
4585
4579
|
* @returns SpotMetaResponse with tokens and universe data
|
|
@@ -4716,14 +4710,6 @@ async function _HyperLiquidProvider_fetchMarketsForDex(params) {
|
|
|
4716
4710
|
__classPrivateFieldGet(this, _HyperLiquidProvider_deps, "f").debugLogger.log(`HyperLiquidProvider: Invalid universe data for DEX ${dex ?? 'main'}`);
|
|
4717
4711
|
return [];
|
|
4718
4712
|
}
|
|
4719
|
-
// TAT-3304: Following the USDH sunset, only USDC-collateral HIP-3 DEXs
|
|
4720
|
-
// are supported for trading. Gate non-USDC-collateral DEXs out of market
|
|
4721
|
-
// discovery entirely (regardless of skipFilters) so their markets can
|
|
4722
|
-
// never be surfaced to trade, even via an allowlist entry naming the DEX.
|
|
4723
|
-
if (dex !== null && !(await __classPrivateFieldGet(this, _HyperLiquidProvider_instances, "m", _HyperLiquidProvider_isUsdcCollateralDex).call(this, dex))) {
|
|
4724
|
-
__classPrivateFieldGet(this, _HyperLiquidProvider_deps, "f").debugLogger.log('HyperLiquidProvider: Filtering out non-USDC-collateral HIP-3 DEX from market discovery', { dex });
|
|
4725
|
-
return [];
|
|
4726
|
-
}
|
|
4727
4713
|
// Transform to MarketInfo format
|
|
4728
4714
|
const markets = meta.universe.map((asset) => adaptMarketFromSDK(asset));
|
|
4729
4715
|
// Apply HIP-3 filtering on-demand (cheap array operation)
|
|
@@ -4760,37 +4746,288 @@ async function _HyperLiquidProvider_getUsdcTokenId() {
|
|
|
4760
4746
|
tokenId: __classPrivateFieldGet(this, _HyperLiquidProvider_cachedUsdcTokenId, "f"),
|
|
4761
4747
|
});
|
|
4762
4748
|
return __classPrivateFieldGet(this, _HyperLiquidProvider_cachedUsdcTokenId, "f");
|
|
4763
|
-
},
|
|
4749
|
+
}, _HyperLiquidProvider_isUsdhCollateralDex =
|
|
4764
4750
|
/**
|
|
4765
|
-
* Check if a HIP-3 DEX uses
|
|
4766
|
-
*
|
|
4767
|
-
* TAT-3304: Following the USDH sunset, only USDC-collateral DEXs are
|
|
4768
|
-
* supported for trading. This gate filters non-USDC-collateral DEXs
|
|
4769
|
-
* (e.g. the now-sunset USDH) out of market discovery and blocks order
|
|
4770
|
-
* placement, replacing the previous USDH-specific auto-swap path.
|
|
4771
|
-
*
|
|
4772
|
-
* Fails closed: only returns true when the collateral token index
|
|
4773
|
-
* positively resolves to USDC against spot metadata. If the token can't
|
|
4774
|
-
* be resolved (e.g. missing/stale spot metadata), the DEX is treated as
|
|
4775
|
-
* non-USDC and gated out, since we can't otherwise verify the USDC-only
|
|
4776
|
-
* requirement. This only affects HIP-3 DEXs — main-DEX trading (dex ===
|
|
4777
|
-
* null) never calls this gate.
|
|
4751
|
+
* Check if a HIP-3 DEX uses USDH as collateral (vs USDC)
|
|
4752
|
+
* Per HyperLiquid docs: USDH DEXs pull collateral from spot balance automatically
|
|
4778
4753
|
*
|
|
4779
4754
|
* @param dexName - The DEX identifier (empty string for main DEX).
|
|
4780
4755
|
* @returns A promise that resolves to the boolean result.
|
|
4781
4756
|
*/
|
|
4782
|
-
async function
|
|
4757
|
+
async function _HyperLiquidProvider_isUsdhCollateralDex(dexName) {
|
|
4783
4758
|
const meta = await __classPrivateFieldGet(this, _HyperLiquidProvider_instances, "m", _HyperLiquidProvider_getCachedMeta).call(this, { dexName });
|
|
4784
4759
|
const spotMeta = await __classPrivateFieldGet(this, _HyperLiquidProvider_instances, "m", _HyperLiquidProvider_getCachedSpotMeta).call(this);
|
|
4785
4760
|
const collateralToken = spotMeta.tokens.find((tok) => tok.index === meta.collateralToken);
|
|
4786
|
-
const
|
|
4761
|
+
const isUsdh = collateralToken?.name === USDH_CONFIG.TokenName;
|
|
4787
4762
|
__classPrivateFieldGet(this, _HyperLiquidProvider_deps, "f").debugLogger.log('HyperLiquidProvider: Checked DEX collateral type', {
|
|
4788
4763
|
dexName,
|
|
4789
4764
|
collateralTokenIndex: meta.collateralToken,
|
|
4790
4765
|
collateralTokenName: collateralToken?.name,
|
|
4791
|
-
|
|
4766
|
+
isUsdh,
|
|
4767
|
+
});
|
|
4768
|
+
return isUsdh;
|
|
4769
|
+
}, _HyperLiquidProvider_getSpotUsdhBalance =
|
|
4770
|
+
/**
|
|
4771
|
+
* Get user's USDH balance in spot wallet
|
|
4772
|
+
*
|
|
4773
|
+
* @returns A promise that resolves to the numeric result.
|
|
4774
|
+
*/
|
|
4775
|
+
async function _HyperLiquidProvider_getSpotUsdhBalance() {
|
|
4776
|
+
const infoClient = __classPrivateFieldGet(this, _HyperLiquidProvider_clientService, "f").getInfoClient();
|
|
4777
|
+
const userAddress = await __classPrivateFieldGet(this, _HyperLiquidProvider_walletService, "f").getUserAddressWithDefault();
|
|
4778
|
+
const spotState = await infoClient.spotClearinghouseState({
|
|
4779
|
+
user: userAddress,
|
|
4780
|
+
});
|
|
4781
|
+
const usdhBalance = spotState.balances.find((b) => b.coin === USDH_CONFIG.TokenName);
|
|
4782
|
+
const balance = usdhBalance ? parseFloat(usdhBalance.total) : 0;
|
|
4783
|
+
__classPrivateFieldGet(this, _HyperLiquidProvider_deps, "f").debugLogger.log('HyperLiquidProvider: Spot USDH balance', {
|
|
4784
|
+
balance,
|
|
4785
|
+
userAddress,
|
|
4786
|
+
});
|
|
4787
|
+
return balance;
|
|
4788
|
+
}, _HyperLiquidProvider_getSpotUsdcBalance =
|
|
4789
|
+
/**
|
|
4790
|
+
* Get user's USDC balance in spot wallet
|
|
4791
|
+
* Required for USDH DEX orders - need USDC in spot to swap to USDH
|
|
4792
|
+
*
|
|
4793
|
+
* @returns A promise that resolves to the numeric result.
|
|
4794
|
+
*/
|
|
4795
|
+
async function _HyperLiquidProvider_getSpotUsdcBalance() {
|
|
4796
|
+
const infoClient = __classPrivateFieldGet(this, _HyperLiquidProvider_clientService, "f").getInfoClient();
|
|
4797
|
+
const userAddress = await __classPrivateFieldGet(this, _HyperLiquidProvider_walletService, "f").getUserAddressWithDefault();
|
|
4798
|
+
const spotState = await infoClient.spotClearinghouseState({
|
|
4799
|
+
user: userAddress,
|
|
4800
|
+
});
|
|
4801
|
+
const usdcBalance = spotState.balances.find((b) => b.coin === 'USDC');
|
|
4802
|
+
const balance = usdcBalance ? parseFloat(usdcBalance.total) : 0;
|
|
4803
|
+
__classPrivateFieldGet(this, _HyperLiquidProvider_deps, "f").debugLogger.log('HyperLiquidProvider: Spot USDC balance', {
|
|
4804
|
+
balance,
|
|
4805
|
+
userAddress,
|
|
4806
|
+
});
|
|
4807
|
+
return balance;
|
|
4808
|
+
}, _HyperLiquidProvider_transferUsdcToSpot =
|
|
4809
|
+
/**
|
|
4810
|
+
* Transfer USDC from main perps wallet to spot wallet
|
|
4811
|
+
* Required before swapping USDC→USDH for USDH DEX orders
|
|
4812
|
+
*
|
|
4813
|
+
* @param amount - The amount value.
|
|
4814
|
+
* @returns A promise that resolves to the result.
|
|
4815
|
+
*/
|
|
4816
|
+
async function _HyperLiquidProvider_transferUsdcToSpot(amount) {
|
|
4817
|
+
const exchangeClient = __classPrivateFieldGet(this, _HyperLiquidProvider_clientService, "f").getExchangeClient();
|
|
4818
|
+
const userAddress = await __classPrivateFieldGet(this, _HyperLiquidProvider_walletService, "f").getUserAddressWithDefault();
|
|
4819
|
+
__classPrivateFieldGet(this, _HyperLiquidProvider_deps, "f").debugLogger.log('HyperLiquidProvider: Transferring USDC to spot', {
|
|
4820
|
+
amount,
|
|
4821
|
+
userAddress,
|
|
4822
|
+
});
|
|
4823
|
+
try {
|
|
4824
|
+
const result = await exchangeClient.sendAsset({
|
|
4825
|
+
destination: userAddress,
|
|
4826
|
+
sourceDex: '', // Main perps DEX (empty string)
|
|
4827
|
+
destinationDex: 'spot',
|
|
4828
|
+
token: await __classPrivateFieldGet(this, _HyperLiquidProvider_instances, "m", _HyperLiquidProvider_getUsdcTokenId).call(this),
|
|
4829
|
+
amount: amount.toString(),
|
|
4830
|
+
});
|
|
4831
|
+
if (result.status === 'ok') {
|
|
4832
|
+
__classPrivateFieldGet(this, _HyperLiquidProvider_deps, "f").debugLogger.log('HyperLiquidProvider: USDC transferred to spot', {
|
|
4833
|
+
amount,
|
|
4834
|
+
});
|
|
4835
|
+
return { success: true };
|
|
4836
|
+
}
|
|
4837
|
+
return { success: false, error: PERPS_ERROR_CODES.TRANSFER_FAILED };
|
|
4838
|
+
}
|
|
4839
|
+
catch (error) {
|
|
4840
|
+
const errorMsg = ensureError(error, 'HyperLiquidProvider.transferUSDCToPerps').message;
|
|
4841
|
+
__classPrivateFieldGet(this, _HyperLiquidProvider_deps, "f").debugLogger.log('HyperLiquidProvider: USDC transfer to spot failed', {
|
|
4842
|
+
error: errorMsg,
|
|
4843
|
+
});
|
|
4844
|
+
return { success: false, error: errorMsg };
|
|
4845
|
+
}
|
|
4846
|
+
}, _HyperLiquidProvider_swapUsdcToUsdh =
|
|
4847
|
+
/**
|
|
4848
|
+
* Swap USDC to USDH on spot market
|
|
4849
|
+
* Returns the result of the swap including filled size
|
|
4850
|
+
*
|
|
4851
|
+
* @param amount - The amount value.
|
|
4852
|
+
* @returns A promise that resolves to the result.
|
|
4853
|
+
*/
|
|
4854
|
+
async function _HyperLiquidProvider_swapUsdcToUsdh(amount) {
|
|
4855
|
+
const spotMeta = await __classPrivateFieldGet(this, _HyperLiquidProvider_instances, "m", _HyperLiquidProvider_getCachedSpotMeta).call(this);
|
|
4856
|
+
// Find USDH and USDC tokens by name
|
|
4857
|
+
const usdhToken = spotMeta.tokens.find((tok) => tok.name === USDH_CONFIG.TokenName);
|
|
4858
|
+
const usdcToken = spotMeta.tokens.find((tok) => tok.name === 'USDC');
|
|
4859
|
+
if (!usdhToken || !usdcToken) {
|
|
4860
|
+
return {
|
|
4861
|
+
success: false,
|
|
4862
|
+
error: PERPS_ERROR_CODES.SPOT_PAIR_NOT_FOUND,
|
|
4863
|
+
};
|
|
4864
|
+
}
|
|
4865
|
+
// Find USDH/USDC pair by token indices (NOT by name - name is @230)
|
|
4866
|
+
const usdhUsdcPair = spotMeta.universe.find((univ) => univ.tokens.includes(usdhToken.index) &&
|
|
4867
|
+
univ.tokens.includes(usdcToken.index));
|
|
4868
|
+
if (!usdhUsdcPair) {
|
|
4869
|
+
return { success: false, error: PERPS_ERROR_CODES.SPOT_PAIR_NOT_FOUND };
|
|
4870
|
+
}
|
|
4871
|
+
const spotAssetId = SPOT_ASSET_ID_OFFSET + usdhUsdcPair.index;
|
|
4872
|
+
__classPrivateFieldGet(this, _HyperLiquidProvider_deps, "f").debugLogger.log('HyperLiquidProvider: Found USDH/USDC spot pair', {
|
|
4873
|
+
pairIndex: usdhUsdcPair.index,
|
|
4874
|
+
pairName: usdhUsdcPair.name,
|
|
4875
|
+
spotAssetId,
|
|
4876
|
+
usdhTokenIndex: usdhToken.index,
|
|
4877
|
+
usdcTokenIndex: usdcToken.index,
|
|
4878
|
+
});
|
|
4879
|
+
// Get current mid price
|
|
4880
|
+
const infoClient = __classPrivateFieldGet(this, _HyperLiquidProvider_clientService, "f").getInfoClient();
|
|
4881
|
+
const allMids = await infoClient.allMids();
|
|
4882
|
+
const pairKey = `@${usdhUsdcPair.index}`;
|
|
4883
|
+
const usdhPrice = parseFloat(allMids[pairKey] || '1');
|
|
4884
|
+
if (usdhPrice === 0) {
|
|
4885
|
+
return {
|
|
4886
|
+
success: false,
|
|
4887
|
+
error: PERPS_ERROR_CODES.PRICE_UNAVAILABLE,
|
|
4888
|
+
};
|
|
4889
|
+
}
|
|
4890
|
+
// Calculate order parameters
|
|
4891
|
+
// USDH is pegged 1:1 to USDC, add small slippage buffer
|
|
4892
|
+
const slippageMultiplier = 1 + USDH_CONFIG.SwapSlippageBps / BASIS_POINTS_DIVISOR;
|
|
4893
|
+
const maxPrice = usdhPrice * slippageMultiplier;
|
|
4894
|
+
// Size in USDH = amount / price (since we're buying USDH with USDC)
|
|
4895
|
+
let sizeInUsdh = amount / usdhPrice;
|
|
4896
|
+
// Format size according to HyperLiquid requirements
|
|
4897
|
+
let formattedSize = sizeInUsdh.toFixed(usdhToken.szDecimals);
|
|
4898
|
+
// CRITICAL: Ensure USDC cost meets $10 minimum after rounding
|
|
4899
|
+
// At price ~0.999995, buying 10.00 USDH costs 9.99995 USDC (under minimum)
|
|
4900
|
+
// Bump up by one increment if needed to meet minimum
|
|
4901
|
+
const minSpotOrderValue = TRADING_DEFAULTS.amount.mainnet;
|
|
4902
|
+
const estimatedCost = parseFloat(formattedSize) * usdhPrice;
|
|
4903
|
+
if (estimatedCost < minSpotOrderValue) {
|
|
4904
|
+
const increment = Math.pow(10, -usdhToken.szDecimals); // 0.01 for szDecimals=2
|
|
4905
|
+
sizeInUsdh = parseFloat(formattedSize) + increment;
|
|
4906
|
+
formattedSize = sizeInUsdh.toFixed(usdhToken.szDecimals);
|
|
4907
|
+
}
|
|
4908
|
+
// Format price according to HyperLiquid requirements
|
|
4909
|
+
const formattedPrice = formatHyperLiquidPrice({
|
|
4910
|
+
price: maxPrice,
|
|
4911
|
+
szDecimals: usdhToken.szDecimals,
|
|
4912
|
+
});
|
|
4913
|
+
__classPrivateFieldGet(this, _HyperLiquidProvider_deps, "f").debugLogger.log('HyperLiquidProvider: Placing USDC→USDH swap order', {
|
|
4914
|
+
usdcAmount: amount,
|
|
4915
|
+
usdhPrice,
|
|
4916
|
+
maxPrice: formattedPrice,
|
|
4917
|
+
size: formattedSize,
|
|
4918
|
+
szDecimals: usdhToken.szDecimals,
|
|
4919
|
+
});
|
|
4920
|
+
try {
|
|
4921
|
+
const exchangeClient = __classPrivateFieldGet(this, _HyperLiquidProvider_clientService, "f").getExchangeClient();
|
|
4922
|
+
const result = await exchangeClient.order({
|
|
4923
|
+
orders: [
|
|
4924
|
+
{
|
|
4925
|
+
a: spotAssetId,
|
|
4926
|
+
b: true, // Buy USDH
|
|
4927
|
+
p: formattedPrice,
|
|
4928
|
+
s: formattedSize,
|
|
4929
|
+
r: false, // Not reduce-only
|
|
4930
|
+
t: { limit: { tif: 'Ioc' } }, // Immediate-or-cancel
|
|
4931
|
+
},
|
|
4932
|
+
],
|
|
4933
|
+
grouping: 'na',
|
|
4934
|
+
});
|
|
4935
|
+
if (result.status !== 'ok') {
|
|
4936
|
+
return {
|
|
4937
|
+
success: false,
|
|
4938
|
+
error: PERPS_ERROR_CODES.SWAP_FAILED,
|
|
4939
|
+
};
|
|
4940
|
+
}
|
|
4941
|
+
// Check order status
|
|
4942
|
+
const status = result.response?.data?.statuses?.[0];
|
|
4943
|
+
if (isStatusObject(status) && hasProperty(status, 'error')) {
|
|
4944
|
+
return { success: false, error: String(status.error) };
|
|
4945
|
+
}
|
|
4946
|
+
// Note: `in` narrows the HyperLiquid SDK discriminated union to the
|
|
4947
|
+
// branch that has `filled`; `hasProperty` only narrows the key and
|
|
4948
|
+
// types `status.filled` as `unknown`, which loses access to `.totalSz`.
|
|
4949
|
+
/* eslint-disable no-restricted-syntax */
|
|
4950
|
+
const filledSize = isStatusObject(status) && 'filled' in status
|
|
4951
|
+
? parseFloat(status.filled?.totalSz ?? '0')
|
|
4952
|
+
: 0;
|
|
4953
|
+
/* eslint-enable no-restricted-syntax */
|
|
4954
|
+
__classPrivateFieldGet(this, _HyperLiquidProvider_deps, "f").debugLogger.log('HyperLiquidProvider: USDC→USDH swap completed', {
|
|
4955
|
+
success: true,
|
|
4956
|
+
filledSize,
|
|
4957
|
+
requestedSize: formattedSize,
|
|
4958
|
+
});
|
|
4959
|
+
return { success: true, filledSize };
|
|
4960
|
+
}
|
|
4961
|
+
catch (error) {
|
|
4962
|
+
const errorMsg = ensureError(error, 'HyperLiquidProvider.swapUSDCToUSDH').message;
|
|
4963
|
+
__classPrivateFieldGet(this, _HyperLiquidProvider_deps, "f").debugLogger.log('HyperLiquidProvider: USDC→USDH swap error', {
|
|
4964
|
+
error: errorMsg,
|
|
4965
|
+
});
|
|
4966
|
+
return { success: false, error: errorMsg };
|
|
4967
|
+
}
|
|
4968
|
+
}, _HyperLiquidProvider_ensureUsdhCollateralForOrder =
|
|
4969
|
+
/**
|
|
4970
|
+
* Ensure sufficient USDH collateral in spot for HIP-3 DEX order
|
|
4971
|
+
* If user lacks USDH, auto-swap from USDC
|
|
4972
|
+
*
|
|
4973
|
+
* @param dexName - The DEX identifier (empty string for main DEX).
|
|
4974
|
+
* @param requiredMargin - The required margin amount.
|
|
4975
|
+
*/
|
|
4976
|
+
async function _HyperLiquidProvider_ensureUsdhCollateralForOrder(dexName, requiredMargin) {
|
|
4977
|
+
const spotUsdhBalance = await __classPrivateFieldGet(this, _HyperLiquidProvider_instances, "m", _HyperLiquidProvider_getSpotUsdhBalance).call(this);
|
|
4978
|
+
__classPrivateFieldGet(this, _HyperLiquidProvider_deps, "f").debugLogger.log('HyperLiquidProvider: Checking USDH collateral', {
|
|
4979
|
+
dexName,
|
|
4980
|
+
requiredMargin,
|
|
4981
|
+
spotUsdhBalance,
|
|
4982
|
+
});
|
|
4983
|
+
if (spotUsdhBalance >= requiredMargin) {
|
|
4984
|
+
__classPrivateFieldGet(this, _HyperLiquidProvider_deps, "f").debugLogger.log('HyperLiquidProvider: Sufficient USDH in spot');
|
|
4985
|
+
return;
|
|
4986
|
+
}
|
|
4987
|
+
const shortfall = requiredMargin - spotUsdhBalance;
|
|
4988
|
+
// HyperLiquid spot has $10 minimum order value
|
|
4989
|
+
const minSpotOrderValue = TRADING_DEFAULTS.amount.mainnet;
|
|
4990
|
+
// If user has some USDH already, we can swap just the shortfall (if >= $10)
|
|
4991
|
+
// If user has zero USDH, they need at least $10 for first swap
|
|
4992
|
+
const swapAmount = spotUsdhBalance > 0 && shortfall >= minSpotOrderValue
|
|
4993
|
+
? shortfall
|
|
4994
|
+
: Math.max(shortfall, minSpotOrderValue);
|
|
4995
|
+
// Step 1: Check spot USDC balance
|
|
4996
|
+
const spotUsdcBalance = await __classPrivateFieldGet(this, _HyperLiquidProvider_instances, "m", _HyperLiquidProvider_getSpotUsdcBalance).call(this);
|
|
4997
|
+
// Calculate total available USDC (spot + what we can transfer from perps)
|
|
4998
|
+
// For now, check if we have enough in spot first
|
|
4999
|
+
const totalUsdcNeeded = swapAmount - spotUsdcBalance;
|
|
5000
|
+
// Step 2: If insufficient USDC in spot, transfer from main perps
|
|
5001
|
+
if (spotUsdcBalance < swapAmount) {
|
|
5002
|
+
const transferAmount = totalUsdcNeeded;
|
|
5003
|
+
__classPrivateFieldGet(this, _HyperLiquidProvider_deps, "f").debugLogger.log('HyperLiquidProvider: Transferring USDC to spot for swap', {
|
|
5004
|
+
spotUsdcBalance,
|
|
5005
|
+
swapAmount,
|
|
5006
|
+
transferAmount,
|
|
5007
|
+
});
|
|
5008
|
+
const transferResult = await __classPrivateFieldGet(this, _HyperLiquidProvider_instances, "m", _HyperLiquidProvider_transferUsdcToSpot).call(this, transferAmount);
|
|
5009
|
+
if (!transferResult.success) {
|
|
5010
|
+
// Provide user-friendly error for insufficient funds
|
|
5011
|
+
if (transferResult.error?.includes('Insufficient balance')) {
|
|
5012
|
+
throw new Error(`Insufficient USDC balance. Need $${swapAmount.toFixed(2)} for USDH swap but transfer failed. Please deposit more USDC to your HyperLiquid account.`);
|
|
5013
|
+
}
|
|
5014
|
+
throw new Error(`Failed to transfer USDC to spot: ${transferResult.error}`);
|
|
5015
|
+
}
|
|
5016
|
+
}
|
|
5017
|
+
// Step 3: Swap USDC → USDH
|
|
5018
|
+
__classPrivateFieldGet(this, _HyperLiquidProvider_deps, "f").debugLogger.log('HyperLiquidProvider: Swapping USDC→USDH for collateral', {
|
|
5019
|
+
shortfall,
|
|
5020
|
+
swapAmount,
|
|
5021
|
+
minOrderValue: minSpotOrderValue,
|
|
5022
|
+
});
|
|
5023
|
+
const swapResult = await __classPrivateFieldGet(this, _HyperLiquidProvider_instances, "m", _HyperLiquidProvider_swapUsdcToUsdh).call(this, swapAmount);
|
|
5024
|
+
if (!swapResult.success) {
|
|
5025
|
+
throw new Error(`Failed to acquire USDH collateral for ${dexName}: ${swapResult.error}`);
|
|
5026
|
+
}
|
|
5027
|
+
__classPrivateFieldGet(this, _HyperLiquidProvider_deps, "f").debugLogger.log('HyperLiquidProvider: USDH collateral acquired', {
|
|
5028
|
+
dexName,
|
|
5029
|
+
filledSize: swapResult.filledSize,
|
|
4792
5030
|
});
|
|
4793
|
-
return isUsdc;
|
|
4794
5031
|
}, _HyperLiquidProvider_buildAssetMapping =
|
|
4795
5032
|
/**
|
|
4796
5033
|
* Build asset ID mapping from market metadata
|
|
@@ -5610,19 +5847,26 @@ async function _HyperLiquidProvider_prepareAssetForTrading(params) {
|
|
|
5610
5847
|
*/
|
|
5611
5848
|
async function _HyperLiquidProvider_handleHip3PreOrder(params) {
|
|
5612
5849
|
const { dexName, symbol, orderPrice, positionSize, leverage, isBuy } = params;
|
|
5613
|
-
//
|
|
5614
|
-
//
|
|
5615
|
-
|
|
5616
|
-
|
|
5617
|
-
|
|
5618
|
-
// misconfigured allowlist entry.
|
|
5619
|
-
const isUsdcDex = await __classPrivateFieldGet(this, _HyperLiquidProvider_instances, "m", _HyperLiquidProvider_isUsdcCollateralDex).call(this, dexName);
|
|
5620
|
-
if (!isUsdcDex) {
|
|
5621
|
-
__classPrivateFieldGet(this, _HyperLiquidProvider_deps, "f").debugLogger.log('HyperLiquidProvider: Rejecting order for non-USDC-collateral DEX', {
|
|
5850
|
+
// Check if this DEX uses USDH collateral (vs USDC)
|
|
5851
|
+
// For USDH DEXs, HyperLiquid automatically pulls from spot balance
|
|
5852
|
+
const isUsdhDex = await __classPrivateFieldGet(this, _HyperLiquidProvider_instances, "m", _HyperLiquidProvider_isUsdhCollateralDex).call(this, dexName);
|
|
5853
|
+
if (isUsdhDex) {
|
|
5854
|
+
__classPrivateFieldGet(this, _HyperLiquidProvider_deps, "f").debugLogger.log('HyperLiquidProvider: USDH-collateralized DEX detected', {
|
|
5622
5855
|
dexName,
|
|
5623
5856
|
symbol,
|
|
5624
5857
|
});
|
|
5625
|
-
|
|
5858
|
+
// Calculate required margin and ensure USDH is in spot
|
|
5859
|
+
const requiredMargin = await __classPrivateFieldGet(this, _HyperLiquidProvider_instances, "m", _HyperLiquidProvider_calculateHip3RequiredMargin).call(this, {
|
|
5860
|
+
symbol,
|
|
5861
|
+
dexName,
|
|
5862
|
+
positionSize,
|
|
5863
|
+
orderPrice,
|
|
5864
|
+
leverage,
|
|
5865
|
+
isBuy,
|
|
5866
|
+
});
|
|
5867
|
+
await __classPrivateFieldGet(this, _HyperLiquidProvider_instances, "m", _HyperLiquidProvider_ensureUsdhCollateralForOrder).call(this, dexName, requiredMargin);
|
|
5868
|
+
// Unified Account will pull USDH from spot automatically
|
|
5869
|
+
return { transferInfo: null };
|
|
5626
5870
|
}
|
|
5627
5871
|
if (__classPrivateFieldGet(this, _HyperLiquidProvider_useUnifiedAccount, "f")) {
|
|
5628
5872
|
__classPrivateFieldGet(this, _HyperLiquidProvider_deps, "f").debugLogger.log('Using Unified Account (no manual transfer)', {
|
|
@@ -5839,52 +6083,6 @@ async function _HyperLiquidProvider_getAllMids(infoClient, dexParam) {
|
|
|
5839
6083
|
failedStep: allMidsErrorMessage ? 'allMids' : undefined,
|
|
5840
6084
|
errorMessage: allMidsErrorMessage,
|
|
5841
6085
|
};
|
|
5842
|
-
}, _HyperLiquidProvider_excludeNonUsdcCollateralResults =
|
|
5843
|
-
/**
|
|
5844
|
-
* Filter out successful HIP-3 DexFetchResults whose collateral token is
|
|
5845
|
-
* not USDC, so getMarketDataWithPrices enforces the same USDC-only policy
|
|
5846
|
-
* as market discovery (#fetchMarketsForDex) and order placement
|
|
5847
|
-
* (#handleHip3PreOrder) — otherwise a non-USDC HIP-3 market could appear
|
|
5848
|
-
* in overview data (and the cached stale snapshot derived from it) while
|
|
5849
|
-
* order placement rejects it (TAT-3304).
|
|
5850
|
-
*
|
|
5851
|
-
* Main-DEX results (dex === null) and already-failed results pass through
|
|
5852
|
-
* unchanged. #isUsdcCollateralDex fails closed, and on an unexpected
|
|
5853
|
-
* error checking it (e.g. a spotMeta fetch failure) this also fails
|
|
5854
|
-
* closed by dropping the DEX's result, rather than failing the whole
|
|
5855
|
-
* method and losing main-DEX overview data.
|
|
5856
|
-
*
|
|
5857
|
-
* @param results - The DEX fetch results to filter.
|
|
5858
|
-
* @returns A promise that resolves to the filtered results.
|
|
5859
|
-
*/
|
|
5860
|
-
async function _HyperLiquidProvider_excludeNonUsdcCollateralResults(results) {
|
|
5861
|
-
return Promise.all(results.map(async (result) => {
|
|
5862
|
-
if (result.dex === null || !result.success) {
|
|
5863
|
-
return result;
|
|
5864
|
-
}
|
|
5865
|
-
let isUsdcDex;
|
|
5866
|
-
try {
|
|
5867
|
-
isUsdcDex = await __classPrivateFieldGet(this, _HyperLiquidProvider_instances, "m", _HyperLiquidProvider_isUsdcCollateralDex).call(this, result.dex);
|
|
5868
|
-
}
|
|
5869
|
-
catch (error) {
|
|
5870
|
-
__classPrivateFieldGet(this, _HyperLiquidProvider_deps, "f").debugLogger.log('HyperLiquidProvider: Failed to check collateral type for HIP-3 DEX; excluding from market data', {
|
|
5871
|
-
dex: result.dex,
|
|
5872
|
-
error: ensureError(error, 'HyperLiquidProvider.excludeNonUsdcCollateralResults').message,
|
|
5873
|
-
});
|
|
5874
|
-
isUsdcDex = false;
|
|
5875
|
-
}
|
|
5876
|
-
if (isUsdcDex) {
|
|
5877
|
-
return result;
|
|
5878
|
-
}
|
|
5879
|
-
__classPrivateFieldGet(this, _HyperLiquidProvider_deps, "f").debugLogger.log('HyperLiquidProvider: Excluding non-USDC-collateral HIP-3 DEX from market data', { dex: result.dex });
|
|
5880
|
-
return {
|
|
5881
|
-
...result,
|
|
5882
|
-
meta: null,
|
|
5883
|
-
assetCtxs: [],
|
|
5884
|
-
allMids: {},
|
|
5885
|
-
success: false,
|
|
5886
|
-
};
|
|
5887
|
-
}));
|
|
5888
6086
|
}, _HyperLiquidProvider_mergeDexResultsInto = function _HyperLiquidProvider_mergeDexResultsInto(results, combinedUniverse, combinedAssetCtxs, combinedAllMids) {
|
|
5889
6087
|
results.forEach((result) => {
|
|
5890
6088
|
if (result.success && result.meta?.universe) {
|