@metamask-previews/perps-controller 8.2.0-preview-b2742a2fc → 8.2.0-preview-ed0047684
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 +15 -0
- package/dist/PerpsController.cjs +46 -10
- 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 +46 -10
- package/dist/PerpsController.mjs.map +1 -1
- package/dist/constants/hyperLiquidConfig.cjs +7 -0
- package/dist/constants/hyperLiquidConfig.cjs.map +1 -1
- package/dist/constants/hyperLiquidConfig.d.cts +1 -0
- package/dist/constants/hyperLiquidConfig.d.cts.map +1 -1
- package/dist/constants/hyperLiquidConfig.d.mts +1 -0
- package/dist/constants/hyperLiquidConfig.d.mts.map +1 -1
- package/dist/constants/hyperLiquidConfig.mjs +7 -0
- package/dist/constants/hyperLiquidConfig.mjs.map +1 -1
- package/dist/constants/perpsConfig.cjs +11 -1
- package/dist/constants/perpsConfig.cjs.map +1 -1
- package/dist/constants/perpsConfig.d.cts +10 -0
- package/dist/constants/perpsConfig.d.cts.map +1 -1
- package/dist/constants/perpsConfig.d.mts +10 -0
- package/dist/constants/perpsConfig.d.mts.map +1 -1
- package/dist/constants/perpsConfig.mjs +10 -0
- package/dist/constants/perpsConfig.mjs.map +1 -1
- package/dist/index.cjs +4 -3
- package/dist/index.cjs.map +1 -1
- package/dist/index.d.cts +2 -2
- package/dist/index.d.cts.map +1 -1
- package/dist/index.d.mts +2 -2
- package/dist/index.d.mts.map +1 -1
- package/dist/index.mjs +1 -1
- package/dist/index.mjs.map +1 -1
- package/dist/providers/HyperLiquidProvider.cjs +6 -3
- package/dist/providers/HyperLiquidProvider.cjs.map +1 -1
- package/dist/providers/HyperLiquidProvider.d.cts +1 -0
- package/dist/providers/HyperLiquidProvider.d.cts.map +1 -1
- package/dist/providers/HyperLiquidProvider.d.mts +1 -0
- package/dist/providers/HyperLiquidProvider.d.mts.map +1 -1
- package/dist/providers/HyperLiquidProvider.mjs +7 -4
- package/dist/providers/HyperLiquidProvider.mjs.map +1 -1
- package/dist/services/HyperLiquidSubscriptionService.cjs +16 -3
- package/dist/services/HyperLiquidSubscriptionService.cjs.map +1 -1
- package/dist/services/HyperLiquidSubscriptionService.d.cts +1 -1
- package/dist/services/HyperLiquidSubscriptionService.d.cts.map +1 -1
- package/dist/services/HyperLiquidSubscriptionService.d.mts +1 -1
- package/dist/services/HyperLiquidSubscriptionService.d.mts.map +1 -1
- package/dist/services/HyperLiquidSubscriptionService.mjs +17 -4
- package/dist/services/HyperLiquidSubscriptionService.mjs.map +1 -1
- package/dist/services/MarketDataService.cjs +100 -7
- package/dist/services/MarketDataService.cjs.map +1 -1
- package/dist/services/MarketDataService.d.cts +10 -1
- package/dist/services/MarketDataService.d.cts.map +1 -1
- package/dist/services/MarketDataService.d.mts +10 -1
- package/dist/services/MarketDataService.d.mts.map +1 -1
- package/dist/services/MarketDataService.mjs +100 -7
- package/dist/services/MarketDataService.mjs.map +1 -1
- package/dist/services/TerminalMarketService.cjs +195 -0
- package/dist/services/TerminalMarketService.cjs.map +1 -0
- package/dist/services/TerminalMarketService.d.cts +36 -0
- package/dist/services/TerminalMarketService.d.cts.map +1 -0
- package/dist/services/TerminalMarketService.d.mts +36 -0
- package/dist/services/TerminalMarketService.d.mts.map +1 -0
- package/dist/services/TerminalMarketService.mjs +191 -0
- package/dist/services/TerminalMarketService.mjs.map +1 -0
- package/dist/types/index.cjs.map +1 -1
- package/dist/types/index.d.cts +82 -0
- package/dist/types/index.d.cts.map +1 -1
- package/dist/types/index.d.mts +82 -0
- package/dist/types/index.d.mts.map +1 -1
- package/dist/types/index.mjs.map +1 -1
- package/dist/utils/marketDataTransform.cjs +44 -9
- package/dist/utils/marketDataTransform.cjs.map +1 -1
- package/dist/utils/marketDataTransform.d.cts +28 -0
- package/dist/utils/marketDataTransform.d.cts.map +1 -1
- package/dist/utils/marketDataTransform.d.mts +28 -0
- package/dist/utils/marketDataTransform.d.mts.map +1 -1
- package/dist/utils/marketDataTransform.mjs +42 -8
- package/dist/utils/marketDataTransform.mjs.map +1 -1
- package/dist/utils/marketSearch.cjs +28 -2
- package/dist/utils/marketSearch.cjs.map +1 -1
- package/dist/utils/marketSearch.d.cts +4 -3
- package/dist/utils/marketSearch.d.cts.map +1 -1
- package/dist/utils/marketSearch.d.mts +4 -3
- package/dist/utils/marketSearch.d.mts.map +1 -1
- package/dist/utils/marketSearch.mjs +28 -2
- package/dist/utils/marketSearch.mjs.map +1 -1
- package/package.json +2 -1
package/CHANGELOG.md
CHANGED
|
@@ -7,6 +7,21 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0
|
|
|
7
7
|
|
|
8
8
|
## [Unreleased]
|
|
9
9
|
|
|
10
|
+
### Added
|
|
11
|
+
|
|
12
|
+
- Add Terminal API integration for market data, controlled via `useTerminalApi` parameter on `GetMarketsParams` / `GetMarketDataWithPricesParams` ([#9137](https://github.com/MetaMask/core/pull/9137))
|
|
13
|
+
- `TerminalMarketService` fetches structured market metadata from the injected `terminalApiUrl` with a 5-minute cache TTL.
|
|
14
|
+
- When enabled, `getMarkets()` attempts the Terminal API first; on failure or empty response, falls back silently to HyperLiquid. Terminal results respect the same allowlist/blocklist filtering as the provider path.
|
|
15
|
+
- `getMarketDataWithPrices()` enriches provider data with Terminal API metadata (name, keywords, tags, categories).
|
|
16
|
+
- `PerpsPlatformDependencies` gains an optional `terminalApiUrl?: string` field and an optional `terminalMarketService?: PerpsTerminalMarketService` field; clients can inject a pre-built service instance or let the controller create one from the URL.
|
|
17
|
+
- `PerpsMarketData` gains optional `keywords`, `tags`, and `categories` fields.
|
|
18
|
+
- Market search (`getMarketMatchRank`, `rankMarketsByQuery`) now indexes the `keywords` field for richer search results.
|
|
19
|
+
- `HYPERLIQUID_ASSET_NAMES` and `HIP3_ASSET_MARKET_TYPES` remain intact as fallback for assets absent from the Terminal API.
|
|
20
|
+
- Surface per-market trading availability so clients can warn before placing an order that would be rejected ([#9205](https://github.com/MetaMask/core/pull/9205))
|
|
21
|
+
- Add an `isTradable` boolean to `PriceUpdate` that defaults to `true`. It is `false` when a market's mid price has drifted past the protocol's oracle-deviation limit (HyperLiquid rejects orders more than 95% away from the reference price, which most often affects HIP-3 markets); a provider with no such rule, or that cannot yet assess tradability, reports `true`.
|
|
22
|
+
- Add an optional, protocol-agnostic `fallbackPriceDeviationLimit` to `PerpsControllerConfig` so clients can tune the deviation threshold; each provider applies its own default when omitted.
|
|
23
|
+
- Export the pure `isMarketTradable` helper and add `HYPERLIQUID_CONFIG.OraclePriceDeviationLimit` (`0.95`, the HyperLiquid default).
|
|
24
|
+
|
|
10
25
|
### Changed
|
|
11
26
|
|
|
12
27
|
- Bump `@metamask/controller-utils` from `^12.2.0` to `^12.3.0` ([#9218](https://github.com/MetaMask/core/pull/9218))
|
package/dist/PerpsController.cjs
CHANGED
|
@@ -10,7 +10,7 @@ var __classPrivateFieldSet = (this && this.__classPrivateFieldSet) || function (
|
|
|
10
10
|
if (typeof state === "function" ? receiver !== state || !f : !state.has(receiver)) throw new TypeError("Cannot write private member to an object whose class did not declare it");
|
|
11
11
|
return (kind === "a" ? f.call(receiver, value) : f ? f.value = value : state.set(receiver, value)), value;
|
|
12
12
|
};
|
|
13
|
-
var _PerpsController_instances, _a, _PerpsController_initializationPromise, _PerpsController_isReinitializing, _PerpsController_myxRegistrationPromise, _PerpsController_blockedRegionListVersion, _PerpsController_hip3Enabled, _PerpsController_hip3AllowlistMarkets, _PerpsController_hip3BlocklistMarkets, _PerpsController_hip3ConfigSource, _PerpsController_isMYXProviderEnabled, _PerpsController_standaloneProvider, _PerpsController_handlersRegistered, _PerpsController_standaloneProviderIsTestnet, _PerpsController_standaloneProviderHip3Version, _PerpsController_eligibilityCheckDeferred, _PerpsController_options, _PerpsController_tradingService, _PerpsController_marketDataService, _PerpsController_accountService, _PerpsController_eligibilityService, _PerpsController_dataLakeService, _PerpsController_depositService, _PerpsController_featureFlagConfigurationService, _PerpsController_rewardsIntegrationService, _PerpsController_logError, _PerpsController_debugLog, _PerpsController_getAggregatedCacheProviderIds, _PerpsController_getOrCreateStandaloneProvider, _PerpsController_cleanupStandaloneProvider, _PerpsController_getMetrics, _PerpsController_findNetworkClientIdForChain, _PerpsController_submitTransaction, _PerpsController_migrateRequestsIfNeeded, _PerpsController_withStreamPause, _PerpsController_performInitialization, _PerpsController_createProviders, _PerpsController_assignActiveProvider, _PerpsController_getErrorContext, _PerpsController_getControllerState, _PerpsController_createServiceContext, _PerpsController_ensureTradingServiceDeps, _PerpsController_preloadWatchedPaths, _PerpsController_preloadTimer, _PerpsController_isPreloading, _PerpsController_isPreloadingUserData, _PerpsController_preloadStateUnsubscribe, _PerpsController_accountChangeUnsubscribe, _PerpsController_previousIsTestnet, _PerpsController_previousHip3ConfigVersion, _PerpsController_preloadRefreshMs, _PerpsController_preloadGuardMs, _PerpsController_hydrateCacheFromDiskSync, _PerpsController_performMarketDataPreload, _PerpsController_performUserDataPreload;
|
|
13
|
+
var _PerpsController_instances, _a, _PerpsController_initializationPromise, _PerpsController_isReinitializing, _PerpsController_myxRegistrationPromise, _PerpsController_blockedRegionListVersion, _PerpsController_hip3Enabled, _PerpsController_hip3AllowlistMarkets, _PerpsController_hip3BlocklistMarkets, _PerpsController_hip3ConfigSource, _PerpsController_priceDeviationLimit, _PerpsController_isMYXProviderEnabled, _PerpsController_standaloneProvider, _PerpsController_handlersRegistered, _PerpsController_standaloneProviderIsTestnet, _PerpsController_standaloneProviderHip3Version, _PerpsController_eligibilityCheckDeferred, _PerpsController_options, _PerpsController_tradingService, _PerpsController_marketDataService, _PerpsController_accountService, _PerpsController_eligibilityService, _PerpsController_dataLakeService, _PerpsController_depositService, _PerpsController_featureFlagConfigurationService, _PerpsController_rewardsIntegrationService, _PerpsController_logError, _PerpsController_debugLog, _PerpsController_getAggregatedCacheProviderIds, _PerpsController_getOrCreateStandaloneProvider, _PerpsController_cleanupStandaloneProvider, _PerpsController_getMetrics, _PerpsController_findNetworkClientIdForChain, _PerpsController_submitTransaction, _PerpsController_migrateRequestsIfNeeded, _PerpsController_withStreamPause, _PerpsController_performInitialization, _PerpsController_createProviders, _PerpsController_assignActiveProvider, _PerpsController_getErrorContext, _PerpsController_getControllerState, _PerpsController_buildMarketAllowedFilter, _PerpsController_compilePatternsSafely, _PerpsController_createServiceContext, _PerpsController_ensureTradingServiceDeps, _PerpsController_preloadWatchedPaths, _PerpsController_preloadTimer, _PerpsController_isPreloading, _PerpsController_isPreloadingUserData, _PerpsController_preloadStateUnsubscribe, _PerpsController_accountChangeUnsubscribe, _PerpsController_previousIsTestnet, _PerpsController_previousHip3ConfigVersion, _PerpsController_preloadRefreshMs, _PerpsController_preloadGuardMs, _PerpsController_hydrateCacheFromDiskSync, _PerpsController_performMarketDataPreload, _PerpsController_performUserDataPreload;
|
|
14
14
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
15
15
|
exports.PerpsController = exports.getDefaultPerpsControllerState = exports.InitializationState = exports.PERPS_ERROR_CODES = exports.resolveMyxAuthConfig = exports.firstNonEmpty = void 0;
|
|
16
16
|
const base_controller_1 = require("@metamask/base-controller");
|
|
@@ -31,11 +31,14 @@ const EligibilityService_1 = require("./services/EligibilityService.cjs");
|
|
|
31
31
|
const FeatureFlagConfigurationService_1 = require("./services/FeatureFlagConfigurationService.cjs");
|
|
32
32
|
const MarketDataService_1 = require("./services/MarketDataService.cjs");
|
|
33
33
|
const RewardsIntegrationService_1 = require("./services/RewardsIntegrationService.cjs");
|
|
34
|
+
const TerminalMarketService_1 = require("./services/TerminalMarketService.cjs");
|
|
34
35
|
const TradingService_1 = require("./services/TradingService.cjs");
|
|
35
36
|
// PerpsStreamChannelKey removed: using string for channel keys (PerpsStreamManager.pauseChannel takes string)
|
|
36
37
|
const types_1 = require("./types/index.cjs");
|
|
37
38
|
const accountUtils_1 = require("./utils/accountUtils.cjs");
|
|
38
39
|
const errorUtils_1 = require("./utils/errorUtils.cjs");
|
|
40
|
+
const hyperLiquidAdapter_1 = require("./utils/hyperLiquidAdapter.cjs");
|
|
41
|
+
const marketUtils_1 = require("./utils/marketUtils.cjs");
|
|
39
42
|
const perpsDiskPersistence_1 = require("./utils/perpsDiskPersistence.cjs");
|
|
40
43
|
const wait_1 = require("./utils/wait.cjs");
|
|
41
44
|
/**
|
|
@@ -457,6 +460,10 @@ class PerpsController extends base_controller_1.BaseController {
|
|
|
457
460
|
_PerpsController_hip3AllowlistMarkets.set(this, void 0);
|
|
458
461
|
_PerpsController_hip3BlocklistMarkets.set(this, void 0);
|
|
459
462
|
_PerpsController_hip3ConfigSource.set(this, 'fallback');
|
|
463
|
+
// Optional client override for the max market-vs-oracle price deviation before a
|
|
464
|
+
// market is reported untradable (PriceUpdate.isTradable). Protocol-agnostic: passed
|
|
465
|
+
// through to each provider, which applies its own default when this is undefined.
|
|
466
|
+
_PerpsController_priceDeviationLimit.set(this, void 0);
|
|
460
467
|
/**
|
|
461
468
|
* Active provider instance for routing operations.
|
|
462
469
|
* When activeProvider is 'hyperliquid' or 'myx': points to specific provider directly
|
|
@@ -502,7 +509,13 @@ class PerpsController extends base_controller_1.BaseController {
|
|
|
502
509
|
// Instantiate services with platform dependencies
|
|
503
510
|
// Services that need cross-controller access receive the messenger
|
|
504
511
|
__classPrivateFieldSet(this, _PerpsController_tradingService, new TradingService_1.TradingService(infrastructure), "f");
|
|
505
|
-
__classPrivateFieldSet(this, _PerpsController_marketDataService, new MarketDataService_1.MarketDataService(
|
|
512
|
+
__classPrivateFieldSet(this, _PerpsController_marketDataService, new MarketDataService_1.MarketDataService({
|
|
513
|
+
...infrastructure,
|
|
514
|
+
terminalMarketService: infrastructure.terminalMarketService ??
|
|
515
|
+
(infrastructure.terminalApiUrl
|
|
516
|
+
? new TerminalMarketService_1.TerminalMarketService(infrastructure)
|
|
517
|
+
: undefined),
|
|
518
|
+
}), "f");
|
|
506
519
|
__classPrivateFieldSet(this, _PerpsController_accountService, new AccountService_1.AccountService(infrastructure, messenger), "f");
|
|
507
520
|
__classPrivateFieldSet(this, _PerpsController_eligibilityService, new EligibilityService_1.EligibilityService(infrastructure), "f");
|
|
508
521
|
__classPrivateFieldSet(this, _PerpsController_dataLakeService, new DataLakeService_1.DataLakeService(infrastructure, messenger), "f");
|
|
@@ -517,6 +530,7 @@ class PerpsController extends base_controller_1.BaseController {
|
|
|
517
530
|
__classPrivateFieldSet(this, _PerpsController_hip3BlocklistMarkets, [
|
|
518
531
|
...(clientConfig.fallbackHip3BlocklistMarkets ?? []),
|
|
519
532
|
], "f");
|
|
533
|
+
__classPrivateFieldSet(this, _PerpsController_priceDeviationLimit, clientConfig.fallbackPriceDeviationLimit, "f");
|
|
520
534
|
// Immediately set the fallback region list since RemoteFeatureFlagController is empty by default and takes a moment to populate.
|
|
521
535
|
this.setBlockedRegionList(clientConfig.fallbackBlockedRegions ?? [], 'fallback');
|
|
522
536
|
/**
|
|
@@ -1592,19 +1606,22 @@ class PerpsController extends base_controller_1.BaseController {
|
|
|
1592
1606
|
* @returns Array of available markets matching the filter criteria.
|
|
1593
1607
|
*/
|
|
1594
1608
|
async getMarkets(params) {
|
|
1595
|
-
|
|
1596
|
-
// This allows discovery use cases (checking if market exists) without full perps setup
|
|
1609
|
+
const isMarketAllowed = __classPrivateFieldGet(this, _PerpsController_instances, "m", _PerpsController_buildMarketAllowedFilter).call(this);
|
|
1597
1610
|
if (params?.standalone) {
|
|
1598
|
-
// Use activeProviderInstance if available (respects provider abstraction)
|
|
1599
|
-
// Fallback to cached standalone provider for pre-initialization discovery
|
|
1600
1611
|
const provider = this.activeProviderInstance ?? __classPrivateFieldGet(this, _PerpsController_instances, "m", _PerpsController_getOrCreateStandaloneProvider).call(this);
|
|
1601
|
-
return
|
|
1612
|
+
return __classPrivateFieldGet(this, _PerpsController_marketDataService, "f").getMarkets({
|
|
1613
|
+
provider,
|
|
1614
|
+
params,
|
|
1615
|
+
context: __classPrivateFieldGet(this, _PerpsController_instances, "m", _PerpsController_createServiceContext).call(this, 'getMarkets'),
|
|
1616
|
+
isMarketAllowed,
|
|
1617
|
+
});
|
|
1602
1618
|
}
|
|
1603
1619
|
const provider = this.getActiveProvider();
|
|
1604
1620
|
return __classPrivateFieldGet(this, _PerpsController_marketDataService, "f").getMarkets({
|
|
1605
1621
|
provider,
|
|
1606
1622
|
params,
|
|
1607
1623
|
context: __classPrivateFieldGet(this, _PerpsController_instances, "m", _PerpsController_createServiceContext).call(this, 'getMarkets'),
|
|
1624
|
+
isMarketAllowed,
|
|
1608
1625
|
});
|
|
1609
1626
|
}
|
|
1610
1627
|
/**
|
|
@@ -1624,8 +1641,6 @@ class PerpsController extends base_controller_1.BaseController {
|
|
|
1624
1641
|
*/
|
|
1625
1642
|
async getMarketDataWithPrices(params) {
|
|
1626
1643
|
if (params?.standalone) {
|
|
1627
|
-
// Use activeProviderInstance if available (respects provider abstraction)
|
|
1628
|
-
// Fallback to cached standalone provider for pre-initialization discovery
|
|
1629
1644
|
const provider = this.activeProviderInstance ?? __classPrivateFieldGet(this, _PerpsController_instances, "m", _PerpsController_getOrCreateStandaloneProvider).call(this);
|
|
1630
1645
|
return __classPrivateFieldGet(this, _PerpsController_marketDataService, "f").getMarketDataWithPrices({
|
|
1631
1646
|
provider,
|
|
@@ -3011,7 +3026,7 @@ class PerpsController extends base_controller_1.BaseController {
|
|
|
3011
3026
|
}
|
|
3012
3027
|
}
|
|
3013
3028
|
exports.PerpsController = PerpsController;
|
|
3014
|
-
_a = PerpsController, _PerpsController_initializationPromise = new WeakMap(), _PerpsController_isReinitializing = new WeakMap(), _PerpsController_myxRegistrationPromise = new WeakMap(), _PerpsController_blockedRegionListVersion = new WeakMap(), _PerpsController_hip3Enabled = new WeakMap(), _PerpsController_hip3AllowlistMarkets = new WeakMap(), _PerpsController_hip3BlocklistMarkets = new WeakMap(), _PerpsController_hip3ConfigSource = new WeakMap(), _PerpsController_standaloneProvider = new WeakMap(), _PerpsController_handlersRegistered = new WeakMap(), _PerpsController_standaloneProviderIsTestnet = new WeakMap(), _PerpsController_standaloneProviderHip3Version = new WeakMap(), _PerpsController_eligibilityCheckDeferred = new WeakMap(), _PerpsController_options = new WeakMap(), _PerpsController_tradingService = new WeakMap(), _PerpsController_marketDataService = new WeakMap(), _PerpsController_accountService = new WeakMap(), _PerpsController_eligibilityService = new WeakMap(), _PerpsController_dataLakeService = new WeakMap(), _PerpsController_depositService = new WeakMap(), _PerpsController_featureFlagConfigurationService = new WeakMap(), _PerpsController_rewardsIntegrationService = new WeakMap(), _PerpsController_preloadTimer = new WeakMap(), _PerpsController_isPreloading = new WeakMap(), _PerpsController_isPreloadingUserData = new WeakMap(), _PerpsController_preloadStateUnsubscribe = new WeakMap(), _PerpsController_accountChangeUnsubscribe = new WeakMap(), _PerpsController_previousIsTestnet = new WeakMap(), _PerpsController_previousHip3ConfigVersion = new WeakMap(), _PerpsController_instances = new WeakSet(), _PerpsController_isMYXProviderEnabled = function _PerpsController_isMYXProviderEnabled() {
|
|
3029
|
+
_a = PerpsController, _PerpsController_initializationPromise = new WeakMap(), _PerpsController_isReinitializing = new WeakMap(), _PerpsController_myxRegistrationPromise = new WeakMap(), _PerpsController_blockedRegionListVersion = new WeakMap(), _PerpsController_hip3Enabled = new WeakMap(), _PerpsController_hip3AllowlistMarkets = new WeakMap(), _PerpsController_hip3BlocklistMarkets = new WeakMap(), _PerpsController_hip3ConfigSource = new WeakMap(), _PerpsController_priceDeviationLimit = new WeakMap(), _PerpsController_standaloneProvider = new WeakMap(), _PerpsController_handlersRegistered = new WeakMap(), _PerpsController_standaloneProviderIsTestnet = new WeakMap(), _PerpsController_standaloneProviderHip3Version = new WeakMap(), _PerpsController_eligibilityCheckDeferred = new WeakMap(), _PerpsController_options = new WeakMap(), _PerpsController_tradingService = new WeakMap(), _PerpsController_marketDataService = new WeakMap(), _PerpsController_accountService = new WeakMap(), _PerpsController_eligibilityService = new WeakMap(), _PerpsController_dataLakeService = new WeakMap(), _PerpsController_depositService = new WeakMap(), _PerpsController_featureFlagConfigurationService = new WeakMap(), _PerpsController_rewardsIntegrationService = new WeakMap(), _PerpsController_preloadTimer = new WeakMap(), _PerpsController_isPreloading = new WeakMap(), _PerpsController_isPreloadingUserData = new WeakMap(), _PerpsController_preloadStateUnsubscribe = new WeakMap(), _PerpsController_accountChangeUnsubscribe = new WeakMap(), _PerpsController_previousIsTestnet = new WeakMap(), _PerpsController_previousHip3ConfigVersion = new WeakMap(), _PerpsController_instances = new WeakSet(), _PerpsController_isMYXProviderEnabled = function _PerpsController_isMYXProviderEnabled() {
|
|
3015
3030
|
const myx = __classPrivateFieldGet(this, _PerpsController_options, "f").clientConfig?.providerCredentials?.myx;
|
|
3016
3031
|
// Local env-var override (MM_PERPS_MYX_PROVIDER_ENABLED) always wins —
|
|
3017
3032
|
// matches the UI selector (resolvePerpsMyxProviderEnabled) so controller
|
|
@@ -3084,6 +3099,7 @@ _a = PerpsController, _PerpsController_initializationPromise = new WeakMap(), _P
|
|
|
3084
3099
|
hip3Enabled: __classPrivateFieldGet(this, _PerpsController_hip3Enabled, "f"),
|
|
3085
3100
|
allowlistMarkets: __classPrivateFieldGet(this, _PerpsController_hip3AllowlistMarkets, "f"),
|
|
3086
3101
|
blocklistMarkets: __classPrivateFieldGet(this, _PerpsController_hip3BlocklistMarkets, "f"),
|
|
3102
|
+
priceDeviationLimit: __classPrivateFieldGet(this, _PerpsController_priceDeviationLimit, "f"),
|
|
3087
3103
|
platformDependencies: __classPrivateFieldGet(this, _PerpsController_options, "f").infrastructure,
|
|
3088
3104
|
messenger: this.messenger,
|
|
3089
3105
|
builderAddressTestnet: __classPrivateFieldGet(this, _PerpsController_options, "f").clientConfig?.providerCredentials?.hyperliquid
|
|
@@ -3315,6 +3331,7 @@ async function _PerpsController_performInitialization() {
|
|
|
3315
3331
|
hip3Enabled: __classPrivateFieldGet(this, _PerpsController_hip3Enabled, "f"),
|
|
3316
3332
|
allowlistMarkets: __classPrivateFieldGet(this, _PerpsController_hip3AllowlistMarkets, "f"),
|
|
3317
3333
|
blocklistMarkets: __classPrivateFieldGet(this, _PerpsController_hip3BlocklistMarkets, "f"),
|
|
3334
|
+
priceDeviationLimit: __classPrivateFieldGet(this, _PerpsController_priceDeviationLimit, "f"),
|
|
3318
3335
|
platformDependencies: __classPrivateFieldGet(this, _PerpsController_options, "f").infrastructure,
|
|
3319
3336
|
messenger: this.messenger,
|
|
3320
3337
|
builderAddressTestnet: __classPrivateFieldGet(this, _PerpsController_options, "f").clientConfig?.providerCredentials?.hyperliquid
|
|
@@ -3398,6 +3415,25 @@ async function _PerpsController_performInitialization() {
|
|
|
3398
3415
|
};
|
|
3399
3416
|
}, _PerpsController_getControllerState = function _PerpsController_getControllerState() {
|
|
3400
3417
|
return this.state;
|
|
3418
|
+
}, _PerpsController_buildMarketAllowedFilter = function _PerpsController_buildMarketAllowedFilter() {
|
|
3419
|
+
const hip3Enabled = __classPrivateFieldGet(this, _PerpsController_hip3Enabled, "f");
|
|
3420
|
+
const compiledAllowlist = __classPrivateFieldGet(this, _PerpsController_instances, "m", _PerpsController_compilePatternsSafely).call(this, __classPrivateFieldGet(this, _PerpsController_hip3AllowlistMarkets, "f"));
|
|
3421
|
+
const compiledBlocklist = __classPrivateFieldGet(this, _PerpsController_instances, "m", _PerpsController_compilePatternsSafely).call(this, __classPrivateFieldGet(this, _PerpsController_hip3BlocklistMarkets, "f"));
|
|
3422
|
+
return (symbol) => {
|
|
3423
|
+
const { dex } = (0, hyperLiquidAdapter_1.parseAssetName)(symbol);
|
|
3424
|
+
return (0, marketUtils_1.shouldIncludeMarket)(symbol, dex, hip3Enabled, compiledAllowlist, compiledBlocklist);
|
|
3425
|
+
};
|
|
3426
|
+
}, _PerpsController_compilePatternsSafely = function _PerpsController_compilePatternsSafely(patterns) {
|
|
3427
|
+
const compiled = [];
|
|
3428
|
+
for (const pattern of patterns) {
|
|
3429
|
+
try {
|
|
3430
|
+
compiled.push({ pattern, matcher: (0, marketUtils_1.compileMarketPattern)(pattern) });
|
|
3431
|
+
}
|
|
3432
|
+
catch {
|
|
3433
|
+
// Invalid patterns silently skipped — logged at provider level.
|
|
3434
|
+
}
|
|
3435
|
+
}
|
|
3436
|
+
return compiled;
|
|
3401
3437
|
}, _PerpsController_createServiceContext = function _PerpsController_createServiceContext(method, additionalContext) {
|
|
3402
3438
|
return {
|
|
3403
3439
|
tracingContext: {
|