@metamask-previews/perps-controller 3.1.0-preview-d6985be → 3.1.1-preview-9c8c0a0
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 +9 -1
- package/dist/PerpsController.cjs +5 -1
- package/dist/PerpsController.cjs.map +1 -1
- package/dist/PerpsController.d.cts.map +1 -1
- package/dist/PerpsController.d.mts.map +1 -1
- package/dist/PerpsController.mjs +5 -1
- package/dist/PerpsController.mjs.map +1 -1
- package/dist/providers/HyperLiquidProvider.cjs +63 -166
- 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 +64 -167
- package/dist/providers/HyperLiquidProvider.mjs.map +1 -1
- package/dist/services/DexDiscoveryCacheManager.cjs +147 -0
- package/dist/services/DexDiscoveryCacheManager.cjs.map +1 -0
- package/dist/services/DexDiscoveryCacheManager.d.cts +52 -0
- package/dist/services/DexDiscoveryCacheManager.d.cts.map +1 -0
- package/dist/services/DexDiscoveryCacheManager.d.mts +52 -0
- package/dist/services/DexDiscoveryCacheManager.d.mts.map +1 -0
- package/dist/services/DexDiscoveryCacheManager.mjs +143 -0
- package/dist/services/DexDiscoveryCacheManager.mjs.map +1 -0
- package/dist/services/HyperLiquidClientService.cjs +4 -3
- package/dist/services/HyperLiquidClientService.cjs.map +1 -1
- package/dist/services/HyperLiquidClientService.d.cts.map +1 -1
- package/dist/services/HyperLiquidClientService.d.mts.map +1 -1
- package/dist/services/HyperLiquidClientService.mjs +4 -3
- package/dist/services/HyperLiquidClientService.mjs.map +1 -1
- package/dist/services/HyperLiquidSubscriptionService.cjs +34 -2
- 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 +34 -2
- package/dist/services/HyperLiquidSubscriptionService.mjs.map +1 -1
- package/dist/types/perps-types.cjs.map +1 -1
- package/dist/types/perps-types.d.cts +13 -0
- package/dist/types/perps-types.d.cts.map +1 -1
- package/dist/types/perps-types.d.mts +13 -0
- package/dist/types/perps-types.d.mts.map +1 -1
- package/dist/types/perps-types.mjs.map +1 -1
- package/package.json +4 -4
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"HyperLiquidProvider.d.cts","sourceRoot":"","sources":["../../src/providers/HyperLiquidProvider.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,aAAa,EAAe,wBAAwB;AAI7D,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;AAI7D,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,13 +9,14 @@ 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,
|
|
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_useDexAbstraction, _HyperLiquidProvider_dexDiscoveryComplete, _HyperLiquidProvider_pendingValidatedDexsPromise, _HyperLiquidProvider_cachedUsdcTokenId, _HyperLiquidProvider_errorMappings, _HyperLiquidProvider_clientsInitialized, _HyperLiquidProvider_initializationPromise, _HyperLiquidProvider_messenger, _HyperLiquidProvider_builderAddressTestnet, _HyperLiquidProvider_builderAddressMainnet, _HyperLiquidProvider_compilePatternsSafely, _HyperLiquidProvider_ensureClientsInitialized, _HyperLiquidProvider_ensureDexAbstractionEnabled, _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
|
-
import { BASIS_POINTS_DIVISOR, BUILDER_FEE_CONFIG, FEE_RATES, getBridgeInfo, getChainId, HIP3_ASSET_MARKET_TYPES, HIP3_FEE_CONFIG, HIP3_MARGIN_CONFIG, HYPERLIQUID_WITHDRAWAL_MINUTES,
|
|
15
|
+
import { BASIS_POINTS_DIVISOR, BUILDER_FEE_CONFIG, FEE_RATES, getBridgeInfo, getChainId, HIP3_ASSET_MARKET_TYPES, HIP3_FEE_CONFIG, HIP3_MARGIN_CONFIG, HYPERLIQUID_WITHDRAWAL_MINUTES, REFERRAL_CONFIG, SPOT_ASSET_ID_OFFSET, TRADING_DEFAULTS, USDC_DECIMALS, USDH_CONFIG } from "../constants/hyperLiquidConfig.mjs";
|
|
16
16
|
import { ORDER_SLIPPAGE_CONFIG, PERFORMANCE_CONFIG, PERPS_CONSTANTS, TP_SL_CONFIG, WITHDRAWAL_CONSTANTS } from "../constants/perpsConfig.mjs";
|
|
17
17
|
import { PERPS_TRANSACTIONS_HISTORY_CONSTANTS } from "../constants/transactionsHistoryConfig.mjs";
|
|
18
18
|
import { PERPS_ERROR_CODES } from "../perpsErrorCodes.mjs";
|
|
19
|
+
import { DexDiscoveryCacheManager } from "../services/DexDiscoveryCacheManager.mjs";
|
|
19
20
|
import { HyperLiquidClientService, WebSocketConnectionState } from "../services/HyperLiquidClientService.mjs";
|
|
20
21
|
import { HyperLiquidSubscriptionService } from "../services/HyperLiquidSubscriptionService.mjs";
|
|
21
22
|
import { HyperLiquidWalletService } from "../services/HyperLiquidWalletService.mjs";
|
|
@@ -72,9 +73,10 @@ export class HyperLiquidProvider {
|
|
|
72
73
|
// Session cache for spot metadata (contains USDC/USDH token info for HIP-3 collateral checks)
|
|
73
74
|
// Pre-fetched in ensureReadyForTrading() to avoid API failures during order placement
|
|
74
75
|
_HyperLiquidProvider_cachedSpotMeta.set(this, null);
|
|
75
|
-
//
|
|
76
|
-
//
|
|
77
|
-
|
|
76
|
+
// Unified DEX discovery cache — single source of truth for all perpDexs() derivatives.
|
|
77
|
+
// Replaces three separate caches to eliminate desync bugs by construction.
|
|
78
|
+
// All writes go through #dexDiscoveryCache.update(); readers use .state.
|
|
79
|
+
_HyperLiquidProvider_dexDiscoveryCache.set(this, void 0);
|
|
78
80
|
// Session cache for referral state (cleared on disconnect/reconnect)
|
|
79
81
|
// Key: `network:userAddress`, Value: true if referral is set
|
|
80
82
|
_HyperLiquidProvider_referralCheckCache.set(this, new Map());
|
|
@@ -95,9 +97,6 @@ export class HyperLiquidProvider {
|
|
|
95
97
|
_HyperLiquidProvider_allowlistMarkets.set(this, void 0);
|
|
96
98
|
_HyperLiquidProvider_blocklistMarkets.set(this, void 0);
|
|
97
99
|
_HyperLiquidProvider_useDexAbstraction.set(this, void 0);
|
|
98
|
-
// Cache for validated DEXs to avoid redundant perpDexs() API calls
|
|
99
|
-
_HyperLiquidProvider_cachedValidatedDexs.set(this, null);
|
|
100
|
-
_HyperLiquidProvider_cachedAllPerpDexs.set(this, null);
|
|
101
100
|
// True once DEX discovery has succeeded with real data (not a fallback).
|
|
102
101
|
// When false, #ensureReadyPromise is reset after each init so the next
|
|
103
102
|
// caller retries DEX discovery instead of reusing a degraded mapping.
|
|
@@ -148,6 +147,11 @@ export class HyperLiquidProvider {
|
|
|
148
147
|
__classPrivateFieldSet(this, _HyperLiquidProvider_clientService, new HyperLiquidClientService(__classPrivateFieldGet(this, _HyperLiquidProvider_deps, "f"), {
|
|
149
148
|
isTestnet,
|
|
150
149
|
}), "f");
|
|
150
|
+
__classPrivateFieldSet(this, _HyperLiquidProvider_dexDiscoveryCache, new DexDiscoveryCacheManager({
|
|
151
|
+
isTestnetMode: () => __classPrivateFieldGet(this, _HyperLiquidProvider_clientService, "f").isTestnetMode(),
|
|
152
|
+
debugLogger: __classPrivateFieldGet(this, _HyperLiquidProvider_deps, "f").debugLogger,
|
|
153
|
+
getAllowlistMarkets: () => __classPrivateFieldGet(this, _HyperLiquidProvider_allowlistMarkets, "f"),
|
|
154
|
+
}), "f");
|
|
151
155
|
__classPrivateFieldSet(this, _HyperLiquidProvider_walletService, new HyperLiquidWalletService(__classPrivateFieldGet(this, _HyperLiquidProvider_deps, "f"), __classPrivateFieldGet(this, _HyperLiquidProvider_messenger, "f"), {
|
|
152
156
|
isTestnet,
|
|
153
157
|
}), "f");
|
|
@@ -3469,7 +3473,7 @@ export class HyperLiquidProvider {
|
|
|
3469
3473
|
// to prevent repeated signing requests across reconnections
|
|
3470
3474
|
__classPrivateFieldGet(this, _HyperLiquidProvider_cachedMetaByDex, "f").clear();
|
|
3471
3475
|
__classPrivateFieldSet(this, _HyperLiquidProvider_cachedSpotMeta, null, "f");
|
|
3472
|
-
|
|
3476
|
+
__classPrivateFieldGet(this, _HyperLiquidProvider_dexDiscoveryCache, "f").reset();
|
|
3473
3477
|
__classPrivateFieldSet(this, _HyperLiquidProvider_dexDiscoveryComplete, false, "f");
|
|
3474
3478
|
// Await pending initialization before clearing to prevent the IIFE from
|
|
3475
3479
|
// setting clientsInitialized = true after disconnect completes
|
|
@@ -3645,7 +3649,7 @@ export class HyperLiquidProvider {
|
|
|
3645
3649
|
return `${baseUrl}/explorer`;
|
|
3646
3650
|
}
|
|
3647
3651
|
}
|
|
3648
|
-
_HyperLiquidProvider_deps = new WeakMap(), _HyperLiquidProvider_clientService = new WeakMap(), _HyperLiquidProvider_walletService = new WeakMap(), _HyperLiquidProvider_subscriptionService = new WeakMap(), _HyperLiquidProvider_symbolToAssetId = new WeakMap(), _HyperLiquidProvider_userFeeCache = new WeakMap(), _HyperLiquidProvider_maxLeverageCache = new WeakMap(), _HyperLiquidProvider_cachedMetaByDex = new WeakMap(), _HyperLiquidProvider_cachedMarketDataWithPrices = new WeakMap(), _HyperLiquidProvider_cachedSpotMeta = new WeakMap(),
|
|
3652
|
+
_HyperLiquidProvider_deps = new WeakMap(), _HyperLiquidProvider_clientService = new WeakMap(), _HyperLiquidProvider_walletService = new WeakMap(), _HyperLiquidProvider_subscriptionService = new WeakMap(), _HyperLiquidProvider_symbolToAssetId = new WeakMap(), _HyperLiquidProvider_userFeeCache = new WeakMap(), _HyperLiquidProvider_maxLeverageCache = new WeakMap(), _HyperLiquidProvider_cachedMetaByDex = new WeakMap(), _HyperLiquidProvider_cachedMarketDataWithPrices = new WeakMap(), _HyperLiquidProvider_cachedSpotMeta = new WeakMap(), _HyperLiquidProvider_dexDiscoveryCache = new WeakMap(), _HyperLiquidProvider_referralCheckCache = new WeakMap(), _HyperLiquidProvider_builderFeeCheckCache = new WeakMap(), _HyperLiquidProvider_ensureReadyPromise = new WeakMap(), _HyperLiquidProvider_pendingBuilderFeeApprovals = new WeakMap(), _HyperLiquidProvider_compiledAllowlistPatterns = new WeakMap(), _HyperLiquidProvider_compiledBlocklistPatterns = new WeakMap(), _HyperLiquidProvider_userFeeDiscountBips = new WeakMap(), _HyperLiquidProvider_hip3Enabled = new WeakMap(), _HyperLiquidProvider_allowlistMarkets = new WeakMap(), _HyperLiquidProvider_blocklistMarkets = new WeakMap(), _HyperLiquidProvider_useDexAbstraction = new WeakMap(), _HyperLiquidProvider_dexDiscoveryComplete = new WeakMap(), _HyperLiquidProvider_pendingValidatedDexsPromise = new WeakMap(), _HyperLiquidProvider_cachedUsdcTokenId = new WeakMap(), _HyperLiquidProvider_errorMappings = new WeakMap(), _HyperLiquidProvider_clientsInitialized = new WeakMap(), _HyperLiquidProvider_initializationPromise = new WeakMap(), _HyperLiquidProvider_messenger = new WeakMap(), _HyperLiquidProvider_builderAddressTestnet = new WeakMap(), _HyperLiquidProvider_builderAddressMainnet = new WeakMap(), _HyperLiquidProvider_tradingSetupPromise = new WeakMap(), _HyperLiquidProvider_tradingSetupComplete = new WeakMap(), _HyperLiquidProvider_instances = new WeakSet(), _HyperLiquidProvider_compilePatternsSafely = function _HyperLiquidProvider_compilePatternsSafely(patterns, listName) {
|
|
3649
3653
|
const compiled = [];
|
|
3650
3654
|
for (const pattern of patterns) {
|
|
3651
3655
|
try {
|
|
@@ -3977,27 +3981,26 @@ async function _HyperLiquidProvider_getOrFetchPrice(params) {
|
|
|
3977
3981
|
* @returns Array of all DEX names (null for main DEX, strings for HIP-3 DEXs)
|
|
3978
3982
|
*/
|
|
3979
3983
|
async function _HyperLiquidProvider_getAllAvailableDexs() {
|
|
3980
|
-
//
|
|
3981
|
-
if (__classPrivateFieldGet(this,
|
|
3982
|
-
Array.isArray(__classPrivateFieldGet(this, _HyperLiquidProvider_cachedAllPerpDexs, "f"))) {
|
|
3984
|
+
// Use unified state if available
|
|
3985
|
+
if (__classPrivateFieldGet(this, _HyperLiquidProvider_dexDiscoveryCache, "f").state) {
|
|
3983
3986
|
const availableHip3Dexs = [];
|
|
3984
|
-
__classPrivateFieldGet(this,
|
|
3987
|
+
__classPrivateFieldGet(this, _HyperLiquidProvider_dexDiscoveryCache, "f").state.raw.forEach((dex) => {
|
|
3985
3988
|
if (dex !== null) {
|
|
3986
3989
|
availableHip3Dexs.push(dex.name);
|
|
3987
3990
|
}
|
|
3988
3991
|
});
|
|
3989
3992
|
return [null, ...availableHip3Dexs];
|
|
3990
3993
|
}
|
|
3991
|
-
// Fetch fresh from API
|
|
3994
|
+
// Fetch fresh from API and update unified state
|
|
3992
3995
|
const infoClient = __classPrivateFieldGet(this, _HyperLiquidProvider_clientService, "f").getInfoClient();
|
|
3993
3996
|
try {
|
|
3994
3997
|
const allDexs = await infoClient.perpDexs();
|
|
3995
3998
|
if (!allDexs || !Array.isArray(allDexs)) {
|
|
3996
3999
|
return [null]; // Fallback to main DEX only
|
|
3997
4000
|
}
|
|
3998
|
-
|
|
4001
|
+
const state = __classPrivateFieldGet(this, _HyperLiquidProvider_dexDiscoveryCache, "f").update(allDexs);
|
|
3999
4002
|
const availableHip3Dexs = [];
|
|
4000
|
-
|
|
4003
|
+
state.raw.forEach((dex) => {
|
|
4001
4004
|
if (dex !== null) {
|
|
4002
4005
|
availableHip3Dexs.push(dex.name);
|
|
4003
4006
|
}
|
|
@@ -4024,9 +4027,15 @@ async function _HyperLiquidProvider_getAllAvailableDexs() {
|
|
|
4024
4027
|
* @returns Array of DEX names to use (null = main DEX, strings = HIP-3 DEXs)
|
|
4025
4028
|
*/
|
|
4026
4029
|
async function _HyperLiquidProvider_getValidatedDexs() {
|
|
4030
|
+
// Kill switch: HIP-3 disabled, return main DEX only
|
|
4031
|
+
// Must check before cache — #getAllAvailableDexs() can populate
|
|
4032
|
+
// state.validated without the hip3Enabled gate
|
|
4033
|
+
if (!__classPrivateFieldGet(this, _HyperLiquidProvider_hip3Enabled, "f")) {
|
|
4034
|
+
return [null];
|
|
4035
|
+
}
|
|
4027
4036
|
// Return cached result if available
|
|
4028
|
-
if (__classPrivateFieldGet(this,
|
|
4029
|
-
return __classPrivateFieldGet(this,
|
|
4037
|
+
if (__classPrivateFieldGet(this, _HyperLiquidProvider_dexDiscoveryCache, "f").state?.validated) {
|
|
4038
|
+
return __classPrivateFieldGet(this, _HyperLiquidProvider_dexDiscoveryCache, "f").state.validated;
|
|
4030
4039
|
}
|
|
4031
4040
|
// If a fetch is already in progress, reuse the pending promise
|
|
4032
4041
|
// This prevents duplicate perpDexs() API calls from concurrent callers
|
|
@@ -4055,9 +4064,8 @@ async function _HyperLiquidProvider_fetchValidatedDexsInternal() {
|
|
|
4055
4064
|
// Kill switch: HIP-3 disabled, return main DEX only
|
|
4056
4065
|
if (!__classPrivateFieldGet(this, _HyperLiquidProvider_hip3Enabled, "f")) {
|
|
4057
4066
|
__classPrivateFieldGet(this, _HyperLiquidProvider_deps, "f").debugLogger.log('HyperLiquidProvider: HIP-3 disabled via hip3Enabled flag');
|
|
4058
|
-
|
|
4059
|
-
|
|
4060
|
-
return __classPrivateFieldGet(this, _HyperLiquidProvider_cachedValidatedDexs, "f");
|
|
4067
|
+
const state = __classPrivateFieldGet(this, _HyperLiquidProvider_dexDiscoveryCache, "f").update([null]);
|
|
4068
|
+
return state.validated;
|
|
4061
4069
|
}
|
|
4062
4070
|
// Fetch all available DEXs from HyperLiquid
|
|
4063
4071
|
const infoClient = __classPrivateFieldGet(this, _HyperLiquidProvider_clientService, "f").getInfoClient();
|
|
@@ -4081,110 +4089,13 @@ async function _HyperLiquidProvider_fetchValidatedDexsInternal() {
|
|
|
4081
4089
|
// Do not cache — may be transient, allow retry on next call
|
|
4082
4090
|
return [null];
|
|
4083
4091
|
}
|
|
4084
|
-
//
|
|
4085
|
-
|
|
4086
|
-
// Extract HIP-3 DEX names (filter out null which represents main DEX)
|
|
4087
|
-
const availableHip3Dexs = [];
|
|
4088
|
-
allDexs.forEach((dex) => {
|
|
4089
|
-
if (dex !== null) {
|
|
4090
|
-
availableHip3Dexs.push(dex.name);
|
|
4091
|
-
}
|
|
4092
|
-
});
|
|
4092
|
+
// Atomically update unified state (raw + validated + timestamp)
|
|
4093
|
+
const state = __classPrivateFieldGet(this, _HyperLiquidProvider_dexDiscoveryCache, "f").update(allDexs);
|
|
4093
4094
|
__classPrivateFieldGet(this, _HyperLiquidProvider_deps, "f").debugLogger.log('HyperLiquidProvider: Available DEXs (market filtering applied at data layer)', {
|
|
4094
|
-
count:
|
|
4095
|
-
dexNames:
|
|
4095
|
+
count: state.validated.filter((dex) => dex !== null).length,
|
|
4096
|
+
dexNames: state.validated.filter((dex) => dex !== null),
|
|
4096
4097
|
});
|
|
4097
|
-
|
|
4098
|
-
// On testnet, there are many HIP-3 DEXs (test deployments) that cause instability
|
|
4099
|
-
if (__classPrivateFieldGet(this, _HyperLiquidProvider_clientService, "f").isTestnetMode()) {
|
|
4100
|
-
const { EnabledDexs, AutoDiscoverAll } = TESTNET_HIP3_CONFIG;
|
|
4101
|
-
if (!AutoDiscoverAll) {
|
|
4102
|
-
if (EnabledDexs.length === 0) {
|
|
4103
|
-
// Main DEX only - no HIP-3 DEXs on testnet
|
|
4104
|
-
__classPrivateFieldGet(this, _HyperLiquidProvider_deps, "f").debugLogger.log('HyperLiquidProvider: Testnet - using main DEX only (HIP-3 DEXs filtered)', {
|
|
4105
|
-
availableHip3Dexs: availableHip3Dexs.length,
|
|
4106
|
-
reason: 'TESTNET_HIP3_CONFIG.EnabledDexs is empty',
|
|
4107
|
-
});
|
|
4108
|
-
__classPrivateFieldSet(this, _HyperLiquidProvider_cachedValidatedDexs, [null], "f");
|
|
4109
|
-
return __classPrivateFieldGet(this, _HyperLiquidProvider_cachedValidatedDexs, "f");
|
|
4110
|
-
}
|
|
4111
|
-
// Filter to specific allowed DEXs on testnet
|
|
4112
|
-
const filteredDexs = availableHip3Dexs.filter((dex) => EnabledDexs.includes(dex));
|
|
4113
|
-
__classPrivateFieldGet(this, _HyperLiquidProvider_deps, "f").debugLogger.log('HyperLiquidProvider: Testnet - filtered to allowed DEXs', {
|
|
4114
|
-
allowedDexs: EnabledDexs,
|
|
4115
|
-
filteredDexs,
|
|
4116
|
-
availableHip3Dexs: availableHip3Dexs.length,
|
|
4117
|
-
});
|
|
4118
|
-
__classPrivateFieldSet(this, _HyperLiquidProvider_cachedValidatedDexs, [null, ...filteredDexs], "f");
|
|
4119
|
-
return __classPrivateFieldGet(this, _HyperLiquidProvider_cachedValidatedDexs, "f");
|
|
4120
|
-
}
|
|
4121
|
-
// AUTO_DISCOVER_ALL is true - proceed with all DEXs (not recommended for testnet)
|
|
4122
|
-
__classPrivateFieldGet(this, _HyperLiquidProvider_deps, "f").debugLogger.log('HyperLiquidProvider: Testnet - AUTO_DISCOVER_ALL enabled, using all DEXs', { totalDexCount: availableHip3Dexs.length + 1 });
|
|
4123
|
-
}
|
|
4124
|
-
else {
|
|
4125
|
-
// Mainnet-specific filtering: Extract allowed DEXs from the allowlist patterns
|
|
4126
|
-
// This reduces WebSocket subscription overhead dynamically based on feature flags
|
|
4127
|
-
const { AutoDiscoverAll } = MAINNET_HIP3_CONFIG;
|
|
4128
|
-
if (!AutoDiscoverAll) {
|
|
4129
|
-
// Extract unique DEX names from allowlist patterns
|
|
4130
|
-
// Patterns like "xyz:*", "xyz:TSLA", or "xyz" all indicate DEX "xyz"
|
|
4131
|
-
const allowedDexsFromAllowlist = __classPrivateFieldGet(this, _HyperLiquidProvider_instances, "m", _HyperLiquidProvider_extractDexsFromAllowlist).call(this);
|
|
4132
|
-
if (allowedDexsFromAllowlist.length === 0) {
|
|
4133
|
-
// No HIP-3 DEXs in allowlist - main DEX only
|
|
4134
|
-
__classPrivateFieldGet(this, _HyperLiquidProvider_deps, "f").debugLogger.log('HyperLiquidProvider: Mainnet - using main DEX only (no HIP-3 DEXs in allowlist)', {
|
|
4135
|
-
availableHip3Dexs: availableHip3Dexs.length,
|
|
4136
|
-
allowlistMarkets: __classPrivateFieldGet(this, _HyperLiquidProvider_allowlistMarkets, "f"),
|
|
4137
|
-
});
|
|
4138
|
-
__classPrivateFieldSet(this, _HyperLiquidProvider_cachedValidatedDexs, [null], "f");
|
|
4139
|
-
return __classPrivateFieldGet(this, _HyperLiquidProvider_cachedValidatedDexs, "f");
|
|
4140
|
-
}
|
|
4141
|
-
// Filter to DEXs that are both available AND in the allowlist
|
|
4142
|
-
const filteredDexs = availableHip3Dexs.filter((dex) => allowedDexsFromAllowlist.includes(dex));
|
|
4143
|
-
__classPrivateFieldGet(this, _HyperLiquidProvider_deps, "f").debugLogger.log('HyperLiquidProvider: Mainnet - filtered to allowlist DEXs', {
|
|
4144
|
-
allowedDexsFromAllowlist,
|
|
4145
|
-
filteredDexs,
|
|
4146
|
-
availableHip3Dexs: availableHip3Dexs.length,
|
|
4147
|
-
});
|
|
4148
|
-
__classPrivateFieldSet(this, _HyperLiquidProvider_cachedValidatedDexs, [null, ...filteredDexs], "f");
|
|
4149
|
-
return __classPrivateFieldGet(this, _HyperLiquidProvider_cachedValidatedDexs, "f");
|
|
4150
|
-
}
|
|
4151
|
-
// AUTO_DISCOVER_ALL is true - proceed with all DEXs
|
|
4152
|
-
__classPrivateFieldGet(this, _HyperLiquidProvider_deps, "f").debugLogger.log('HyperLiquidProvider: Mainnet - AUTO_DISCOVER_ALL enabled, using all DEXs', { totalDexCount: availableHip3Dexs.length + 1 });
|
|
4153
|
-
}
|
|
4154
|
-
// Fallback: Return all DEXs (when AUTO_DISCOVER_ALL is true)
|
|
4155
|
-
// Market filtering is applied at subscription data layer
|
|
4156
|
-
__classPrivateFieldGet(this, _HyperLiquidProvider_deps, "f").debugLogger.log('HyperLiquidProvider: All DEXs enabled (market filtering at data layer)', {
|
|
4157
|
-
mainDex: true,
|
|
4158
|
-
hip3Dexs: availableHip3Dexs,
|
|
4159
|
-
totalDexCount: availableHip3Dexs.length + 1,
|
|
4160
|
-
});
|
|
4161
|
-
__classPrivateFieldSet(this, _HyperLiquidProvider_cachedValidatedDexs, [null, ...availableHip3Dexs], "f");
|
|
4162
|
-
return __classPrivateFieldGet(this, _HyperLiquidProvider_cachedValidatedDexs, "f");
|
|
4163
|
-
}, _HyperLiquidProvider_extractDexsFromAllowlist = function _HyperLiquidProvider_extractDexsFromAllowlist() {
|
|
4164
|
-
if (__classPrivateFieldGet(this, _HyperLiquidProvider_allowlistMarkets, "f").length === 0) {
|
|
4165
|
-
return [];
|
|
4166
|
-
}
|
|
4167
|
-
const dexNames = new Set();
|
|
4168
|
-
for (const pattern of __classPrivateFieldGet(this, _HyperLiquidProvider_allowlistMarkets, "f")) {
|
|
4169
|
-
// Pattern formats:
|
|
4170
|
-
// - "xyz:*" -> DEX "xyz" (wildcard)
|
|
4171
|
-
// - "xyz:TSLA" -> DEX "xyz" (exact match)
|
|
4172
|
-
// - "xyz" -> DEX "xyz" (shorthand)
|
|
4173
|
-
const colonIndex = pattern.indexOf(':');
|
|
4174
|
-
if (colonIndex > 0) {
|
|
4175
|
-
// Has colon - extract DEX prefix
|
|
4176
|
-
const dex = pattern.substring(0, colonIndex);
|
|
4177
|
-
dexNames.add(dex);
|
|
4178
|
-
}
|
|
4179
|
-
else if (pattern.length > 0 && !pattern.includes('*')) {
|
|
4180
|
-
// No colon and not a wildcard - could be DEX shorthand
|
|
4181
|
-
// Only add if it looks like a valid DEX name (lowercase alphanumeric)
|
|
4182
|
-
if (/^[a-z][a-z0-9]*$/iu.test(pattern)) {
|
|
4183
|
-
dexNames.add(pattern.toLowerCase());
|
|
4184
|
-
}
|
|
4185
|
-
}
|
|
4186
|
-
}
|
|
4187
|
-
return Array.from(dexNames);
|
|
4098
|
+
return state.validated;
|
|
4188
4099
|
}, _HyperLiquidProvider_getCachedMeta =
|
|
4189
4100
|
/**
|
|
4190
4101
|
* Get cached meta response for a DEX, fetching from API if not cached
|
|
@@ -4243,7 +4154,7 @@ async function _HyperLiquidProvider_backfillAssetMapForDex(dex, meta) {
|
|
|
4243
4154
|
if (!meta?.universe || !Array.isArray(meta.universe)) {
|
|
4244
4155
|
return false;
|
|
4245
4156
|
}
|
|
4246
|
-
if (!__classPrivateFieldGet(this,
|
|
4157
|
+
if (!__classPrivateFieldGet(this, _HyperLiquidProvider_dexDiscoveryCache, "f").state) {
|
|
4247
4158
|
try {
|
|
4248
4159
|
await __classPrivateFieldGet(this, _HyperLiquidProvider_instances, "m", _HyperLiquidProvider_getValidatedDexs).call(this);
|
|
4249
4160
|
}
|
|
@@ -4254,7 +4165,7 @@ async function _HyperLiquidProvider_backfillAssetMapForDex(dex, meta) {
|
|
|
4254
4165
|
});
|
|
4255
4166
|
}
|
|
4256
4167
|
}
|
|
4257
|
-
const allPerpDexs = __classPrivateFieldGet(this,
|
|
4168
|
+
const allPerpDexs = __classPrivateFieldGet(this, _HyperLiquidProvider_dexDiscoveryCache, "f").state?.raw ?? [null];
|
|
4258
4169
|
const perpDexIndex = allPerpDexs.findIndex((entry) => {
|
|
4259
4170
|
if (dex === null) {
|
|
4260
4171
|
return entry === null;
|
|
@@ -4346,22 +4257,24 @@ async function _HyperLiquidProvider_getCachedSpotMeta() {
|
|
|
4346
4257
|
*/
|
|
4347
4258
|
async function _HyperLiquidProvider_getCachedPerpDexs() {
|
|
4348
4259
|
const now = Date.now();
|
|
4349
|
-
// Return cached data if still valid
|
|
4350
|
-
if (__classPrivateFieldGet(this,
|
|
4351
|
-
now - __classPrivateFieldGet(this,
|
|
4260
|
+
// Return cached data if still valid (uses unified state timestamp for TTL)
|
|
4261
|
+
if (__classPrivateFieldGet(this, _HyperLiquidProvider_dexDiscoveryCache, "f").state &&
|
|
4262
|
+
now - __classPrivateFieldGet(this, _HyperLiquidProvider_dexDiscoveryCache, "f").state.timestamp <
|
|
4263
|
+
HIP3_FEE_CONFIG.PerpDexsCacheTtlMs) {
|
|
4264
|
+
const raw = __classPrivateFieldGet(this, _HyperLiquidProvider_dexDiscoveryCache, "f").state.raw;
|
|
4352
4265
|
__classPrivateFieldGet(this, _HyperLiquidProvider_deps, "f").debugLogger.log('[getCachedPerpDexs] Using cached perpDexs data', {
|
|
4353
|
-
age: `${Math.round((now - __classPrivateFieldGet(this,
|
|
4354
|
-
count:
|
|
4266
|
+
age: `${Math.round((now - __classPrivateFieldGet(this, _HyperLiquidProvider_dexDiscoveryCache, "f").state.timestamp) / 1000)}s`,
|
|
4267
|
+
count: raw.length,
|
|
4355
4268
|
});
|
|
4356
|
-
return
|
|
4269
|
+
return raw;
|
|
4357
4270
|
}
|
|
4358
4271
|
// Fetch fresh data from API
|
|
4359
4272
|
// Note: SDK types are incomplete, but API returns deployerFeeScale
|
|
4360
4273
|
await __classPrivateFieldGet(this, _HyperLiquidProvider_instances, "m", _HyperLiquidProvider_ensureClientsInitialized).call(this);
|
|
4361
4274
|
const infoClient = __classPrivateFieldGet(this, _HyperLiquidProvider_clientService, "f").getInfoClient();
|
|
4362
4275
|
const perpDexs = (await infoClient.perpDexs());
|
|
4363
|
-
//
|
|
4364
|
-
|
|
4276
|
+
// Atomically update unified state (raw + validated + timestamp)
|
|
4277
|
+
__classPrivateFieldGet(this, _HyperLiquidProvider_dexDiscoveryCache, "f").update(perpDexs);
|
|
4365
4278
|
__classPrivateFieldGet(this, _HyperLiquidProvider_deps, "f").debugLogger.log('[getCachedPerpDexs] Fetched and cached perpDexs data', {
|
|
4366
4279
|
count: perpDexs.length,
|
|
4367
4280
|
dexes: perpDexs
|
|
@@ -4792,15 +4705,15 @@ async function _HyperLiquidProvider_buildAssetMapping() {
|
|
|
4792
4705
|
// If getValidatedDexs fails, fall back to main DEX only to keep the provider
|
|
4793
4706
|
// functional. Without this, a transient perpDexs() failure would permanently
|
|
4794
4707
|
// brick #ensureReady via the cached rejected promise.
|
|
4795
|
-
// Do not
|
|
4708
|
+
// Do not update #dexDiscoveryCache here — leave state null
|
|
4796
4709
|
// so #getValidatedDexs retries on the next call (same as #fetchValidatedDexsInternal).
|
|
4797
4710
|
__classPrivateFieldGet(this, _HyperLiquidProvider_deps, "f").debugLogger.log('[buildAssetMapping] getValidatedDexs failed, falling back to main DEX', { error: String(dexError) });
|
|
4798
4711
|
dexsToMap = [null];
|
|
4799
4712
|
}
|
|
4800
|
-
// Local fallback only — never write [null] into #
|
|
4801
|
-
// That
|
|
4713
|
+
// Local fallback only — never write [null] into #dexDiscoveryCache here.
|
|
4714
|
+
// That state is owned exclusively by #dexDiscoveryCache.update(); writing a
|
|
4802
4715
|
// fallback here would prevent subsequent callers from retrying perpDexs().
|
|
4803
|
-
const allPerpDexs = __classPrivateFieldGet(this,
|
|
4716
|
+
const allPerpDexs = __classPrivateFieldGet(this, _HyperLiquidProvider_dexDiscoveryCache, "f").state?.raw ?? [null];
|
|
4804
4717
|
__classPrivateFieldGet(this, _HyperLiquidProvider_deps, "f").debugLogger.log('HyperLiquidProvider: Starting asset mapping rebuild', {
|
|
4805
4718
|
dexs: dexsToMap,
|
|
4806
4719
|
previousMapSize: __classPrivateFieldGet(this, _HyperLiquidProvider_symbolToAssetId, "f").size,
|
|
@@ -4853,7 +4766,7 @@ async function _HyperLiquidProvider_buildAssetMapping() {
|
|
|
4853
4766
|
}));
|
|
4854
4767
|
// Build mapping with DEX prefixes for HIP-3 DEXs using the utility function
|
|
4855
4768
|
__classPrivateFieldGet(this, _HyperLiquidProvider_symbolToAssetId, "f").clear();
|
|
4856
|
-
let dexDiscoveryComplete = __classPrivateFieldGet(this,
|
|
4769
|
+
let dexDiscoveryComplete = __classPrivateFieldGet(this, _HyperLiquidProvider_dexDiscoveryCache, "f").state !== null;
|
|
4857
4770
|
allMetas.forEach((result) => {
|
|
4858
4771
|
if (result.status === 'fulfilled' &&
|
|
4859
4772
|
result.value.success &&
|
|
@@ -5144,8 +5057,7 @@ async function _HyperLiquidProvider_findSourceDexWithBalance(params) {
|
|
|
5144
5057
|
}
|
|
5145
5058
|
// Try other HIP-3 DEXs
|
|
5146
5059
|
// Get all available DEXs from cache (includes all HIP-3 DEXs since we no longer filter)
|
|
5147
|
-
const availableDexs = __classPrivateFieldGet(this,
|
|
5148
|
-
[];
|
|
5060
|
+
const availableDexs = __classPrivateFieldGet(this, _HyperLiquidProvider_dexDiscoveryCache, "f").state?.validated?.filter((dex) => dex !== null) ?? [];
|
|
5149
5061
|
for (const dex of availableDexs) {
|
|
5150
5062
|
if (dex === targetDex) {
|
|
5151
5063
|
continue;
|
|
@@ -5729,14 +5641,14 @@ async function _HyperLiquidProvider_submitOrderWithRollback(params) {
|
|
|
5729
5641
|
* @returns A promise that resolves to the result.
|
|
5730
5642
|
*/
|
|
5731
5643
|
async function _HyperLiquidProvider_getStandaloneValidatedDexs() {
|
|
5732
|
-
// Return cached result if available
|
|
5733
|
-
if (__classPrivateFieldGet(this,
|
|
5734
|
-
return __classPrivateFieldGet(this,
|
|
5644
|
+
// Return cached result if available (unified state)
|
|
5645
|
+
if (__classPrivateFieldGet(this, _HyperLiquidProvider_dexDiscoveryCache, "f").state?.validated) {
|
|
5646
|
+
return __classPrivateFieldGet(this, _HyperLiquidProvider_dexDiscoveryCache, "f").state.validated;
|
|
5735
5647
|
}
|
|
5736
5648
|
// Kill switch: HIP-3 disabled, return main DEX only
|
|
5737
5649
|
if (!__classPrivateFieldGet(this, _HyperLiquidProvider_hip3Enabled, "f")) {
|
|
5738
|
-
|
|
5739
|
-
return
|
|
5650
|
+
const state = __classPrivateFieldGet(this, _HyperLiquidProvider_dexDiscoveryCache, "f").update([null]);
|
|
5651
|
+
return state.validated;
|
|
5740
5652
|
}
|
|
5741
5653
|
// Fetch available DEXs via standalone client
|
|
5742
5654
|
const standaloneInfoClient = createStandaloneInfoClient({
|
|
@@ -5748,33 +5660,18 @@ async function _HyperLiquidProvider_getStandaloneValidatedDexs() {
|
|
|
5748
5660
|
}
|
|
5749
5661
|
catch {
|
|
5750
5662
|
__classPrivateFieldGet(this, _HyperLiquidProvider_deps, "f").debugLogger.log('HyperLiquidProvider: standalone perpDexs() failed, falling back to main DEX only');
|
|
5663
|
+
// Do not cache — transient error, allow retry on next call
|
|
5751
5664
|
return [null];
|
|
5752
5665
|
}
|
|
5753
5666
|
// Validate response
|
|
5754
5667
|
if (!allDexs || !Array.isArray(allDexs)) {
|
|
5668
|
+
// Do not cache — may be transient, allow retry on next call
|
|
5755
5669
|
return [null];
|
|
5756
5670
|
}
|
|
5757
|
-
//
|
|
5758
|
-
//
|
|
5759
|
-
|
|
5760
|
-
|
|
5761
|
-
__classPrivateFieldSet(this, _HyperLiquidProvider_cachedAllPerpDexs, allDexs, "f");
|
|
5762
|
-
// Extract HIP-3 DEX names (filter out null which represents main DEX)
|
|
5763
|
-
const availableHip3Dexs = [];
|
|
5764
|
-
allDexs.forEach((dex) => {
|
|
5765
|
-
if (dex !== null) {
|
|
5766
|
-
availableHip3Dexs.push(dex.name);
|
|
5767
|
-
}
|
|
5768
|
-
});
|
|
5769
|
-
// Filter by allowlist patterns (same logic as fetchValidatedDexsInternal)
|
|
5770
|
-
const allowedDexsFromAllowlist = __classPrivateFieldGet(this, _HyperLiquidProvider_instances, "m", _HyperLiquidProvider_extractDexsFromAllowlist).call(this);
|
|
5771
|
-
if (allowedDexsFromAllowlist.length === 0) {
|
|
5772
|
-
__classPrivateFieldSet(this, _HyperLiquidProvider_cachedValidatedDexs, [null], "f");
|
|
5773
|
-
return __classPrivateFieldGet(this, _HyperLiquidProvider_cachedValidatedDexs, "f");
|
|
5774
|
-
}
|
|
5775
|
-
const filteredDexs = availableHip3Dexs.filter((dex) => allowedDexsFromAllowlist.includes(dex));
|
|
5776
|
-
__classPrivateFieldSet(this, _HyperLiquidProvider_cachedValidatedDexs, [null, ...filteredDexs], "f");
|
|
5777
|
-
return __classPrivateFieldGet(this, _HyperLiquidProvider_cachedValidatedDexs, "f");
|
|
5671
|
+
// Atomically update unified state (raw + validated + timestamp).
|
|
5672
|
+
// buildAssetMapping uses state.raw for perpDexIndex computation.
|
|
5673
|
+
const state = __classPrivateFieldGet(this, _HyperLiquidProvider_dexDiscoveryCache, "f").update(allDexs);
|
|
5674
|
+
return state.validated;
|
|
5778
5675
|
}, _HyperLiquidProvider_getAllMids =
|
|
5779
5676
|
/**
|
|
5780
5677
|
* Get allMids for a DEX — uses WS snapshot as primary source, REST as fallback.
|