@metamask-previews/perps-controller 8.2.0-preview-9de9aa4 → 8.2.0-preview-b2742a2fc

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.
Files changed (72) hide show
  1. package/CHANGELOG.md +0 -17
  2. package/dist/PerpsController.cjs +9 -38
  3. package/dist/PerpsController.cjs.map +1 -1
  4. package/dist/PerpsController.d.cts.map +1 -1
  5. package/dist/PerpsController.d.mts.map +1 -1
  6. package/dist/PerpsController.mjs +9 -38
  7. package/dist/PerpsController.mjs.map +1 -1
  8. package/dist/constants/eventNames.cjs +0 -10
  9. package/dist/constants/eventNames.cjs.map +1 -1
  10. package/dist/constants/eventNames.d.cts +0 -10
  11. package/dist/constants/eventNames.d.cts.map +1 -1
  12. package/dist/constants/eventNames.d.mts +0 -10
  13. package/dist/constants/eventNames.d.mts.map +1 -1
  14. package/dist/constants/eventNames.mjs +0 -10
  15. package/dist/constants/eventNames.mjs.map +1 -1
  16. package/dist/constants/perpsConfig.cjs +1 -10
  17. package/dist/constants/perpsConfig.cjs.map +1 -1
  18. package/dist/constants/perpsConfig.d.cts +0 -9
  19. package/dist/constants/perpsConfig.d.cts.map +1 -1
  20. package/dist/constants/perpsConfig.d.mts +0 -9
  21. package/dist/constants/perpsConfig.d.mts.map +1 -1
  22. package/dist/constants/perpsConfig.mjs +0 -9
  23. package/dist/constants/perpsConfig.mjs.map +1 -1
  24. package/dist/index.cjs.map +1 -1
  25. package/dist/index.d.cts +1 -1
  26. package/dist/index.d.cts.map +1 -1
  27. package/dist/index.d.mts +1 -1
  28. package/dist/index.d.mts.map +1 -1
  29. package/dist/index.mjs.map +1 -1
  30. package/dist/services/MarketDataService.cjs +7 -100
  31. package/dist/services/MarketDataService.cjs.map +1 -1
  32. package/dist/services/MarketDataService.d.cts +1 -10
  33. package/dist/services/MarketDataService.d.cts.map +1 -1
  34. package/dist/services/MarketDataService.d.mts +1 -10
  35. package/dist/services/MarketDataService.d.mts.map +1 -1
  36. package/dist/services/MarketDataService.mjs +7 -100
  37. package/dist/services/MarketDataService.mjs.map +1 -1
  38. package/dist/services/TradingService.cjs +0 -4
  39. package/dist/services/TradingService.cjs.map +1 -1
  40. package/dist/services/TradingService.d.cts.map +1 -1
  41. package/dist/services/TradingService.d.mts.map +1 -1
  42. package/dist/services/TradingService.mjs +0 -4
  43. package/dist/services/TradingService.mjs.map +1 -1
  44. package/dist/types/index.cjs.map +1 -1
  45. package/dist/types/index.d.cts +0 -59
  46. package/dist/types/index.d.cts.map +1 -1
  47. package/dist/types/index.d.mts +0 -59
  48. package/dist/types/index.d.mts.map +1 -1
  49. package/dist/types/index.mjs.map +1 -1
  50. package/dist/utils/marketDataTransform.cjs +8 -3
  51. package/dist/utils/marketDataTransform.cjs.map +1 -1
  52. package/dist/utils/marketDataTransform.d.cts.map +1 -1
  53. package/dist/utils/marketDataTransform.d.mts.map +1 -1
  54. package/dist/utils/marketDataTransform.mjs +8 -3
  55. package/dist/utils/marketDataTransform.mjs.map +1 -1
  56. package/dist/utils/marketSearch.cjs +2 -28
  57. package/dist/utils/marketSearch.cjs.map +1 -1
  58. package/dist/utils/marketSearch.d.cts +3 -4
  59. package/dist/utils/marketSearch.d.cts.map +1 -1
  60. package/dist/utils/marketSearch.d.mts +3 -4
  61. package/dist/utils/marketSearch.d.mts.map +1 -1
  62. package/dist/utils/marketSearch.mjs +2 -28
  63. package/dist/utils/marketSearch.mjs.map +1 -1
  64. package/package.json +1 -2
  65. package/dist/services/TerminalMarketService.cjs +0 -185
  66. package/dist/services/TerminalMarketService.cjs.map +0 -1
  67. package/dist/services/TerminalMarketService.d.cts +0 -36
  68. package/dist/services/TerminalMarketService.d.cts.map +0 -1
  69. package/dist/services/TerminalMarketService.d.mts +0 -36
  70. package/dist/services/TerminalMarketService.d.mts.map +0 -1
  71. package/dist/services/TerminalMarketService.mjs +0 -181
  72. package/dist/services/TerminalMarketService.mjs.map +0 -1
package/CHANGELOG.md CHANGED
@@ -7,25 +7,8 @@ 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
- - Add Perps Advanced Chart analytics constants to `PERPS_EVENT_PROPERTY` and `PERPS_EVENT_VALUE` so mobile can import chart instrumentation keys from `@metamask/perps-controller` instead of maintaining a local mirror ([#XXXX](https://github.com/MetaMask/core/pull/XXXX))
21
- - New `PERPS_EVENT_PROPERTY` keys: `CHART_LIBRARY`, `ASSET_TYPE`
22
- - New `PERPS_EVENT_VALUE.CHART_LIBRARY` group: `lightweight`, `advanced`
23
- - New `PERPS_EVENT_VALUE.ASSET_TYPE` group: `spot`, `perp`
24
-
25
10
  ### Changed
26
11
 
27
- - Replace unsafe `as` type cast with runtime schema validation (`@metamask/superstruct`) in `TerminalMarketService` ([#9137](https://github.com/MetaMask/core/pull/9137))
28
- - Each item in the Terminal API response is now individually validated; items that fail validation are filtered out and logged instead of silently accepted.
29
12
  - Bump `@metamask/controller-utils` from `^12.2.0` to `^12.3.0` ([#9218](https://github.com/MetaMask/core/pull/9218))
30
13
 
31
14
  ## [8.2.0]
@@ -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_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;
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;
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,14 +31,11 @@ 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");
35
34
  const TradingService_1 = require("./services/TradingService.cjs");
36
35
  // PerpsStreamChannelKey removed: using string for channel keys (PerpsStreamManager.pauseChannel takes string)
37
36
  const types_1 = require("./types/index.cjs");
38
37
  const accountUtils_1 = require("./utils/accountUtils.cjs");
39
38
  const errorUtils_1 = require("./utils/errorUtils.cjs");
40
- const hyperLiquidAdapter_1 = require("./utils/hyperLiquidAdapter.cjs");
41
- const marketUtils_1 = require("./utils/marketUtils.cjs");
42
39
  const perpsDiskPersistence_1 = require("./utils/perpsDiskPersistence.cjs");
43
40
  const wait_1 = require("./utils/wait.cjs");
44
41
  /**
@@ -505,13 +502,7 @@ class PerpsController extends base_controller_1.BaseController {
505
502
  // Instantiate services with platform dependencies
506
503
  // Services that need cross-controller access receive the messenger
507
504
  __classPrivateFieldSet(this, _PerpsController_tradingService, new TradingService_1.TradingService(infrastructure), "f");
508
- __classPrivateFieldSet(this, _PerpsController_marketDataService, new MarketDataService_1.MarketDataService({
509
- ...infrastructure,
510
- terminalMarketService: infrastructure.terminalMarketService ??
511
- (infrastructure.terminalApiUrl
512
- ? new TerminalMarketService_1.TerminalMarketService(infrastructure)
513
- : undefined),
514
- }), "f");
505
+ __classPrivateFieldSet(this, _PerpsController_marketDataService, new MarketDataService_1.MarketDataService(infrastructure), "f");
515
506
  __classPrivateFieldSet(this, _PerpsController_accountService, new AccountService_1.AccountService(infrastructure, messenger), "f");
516
507
  __classPrivateFieldSet(this, _PerpsController_eligibilityService, new EligibilityService_1.EligibilityService(infrastructure), "f");
517
508
  __classPrivateFieldSet(this, _PerpsController_dataLakeService, new DataLakeService_1.DataLakeService(infrastructure, messenger), "f");
@@ -1601,22 +1592,19 @@ class PerpsController extends base_controller_1.BaseController {
1601
1592
  * @returns Array of available markets matching the filter criteria.
1602
1593
  */
1603
1594
  async getMarkets(params) {
1604
- const isMarketAllowed = __classPrivateFieldGet(this, _PerpsController_instances, "m", _PerpsController_buildMarketAllowedFilter).call(this);
1595
+ // For standalone mode, access provider directly without initialization check
1596
+ // This allows discovery use cases (checking if market exists) without full perps setup
1605
1597
  if (params?.standalone) {
1598
+ // Use activeProviderInstance if available (respects provider abstraction)
1599
+ // Fallback to cached standalone provider for pre-initialization discovery
1606
1600
  const provider = this.activeProviderInstance ?? __classPrivateFieldGet(this, _PerpsController_instances, "m", _PerpsController_getOrCreateStandaloneProvider).call(this);
1607
- return __classPrivateFieldGet(this, _PerpsController_marketDataService, "f").getMarkets({
1608
- provider,
1609
- params,
1610
- context: __classPrivateFieldGet(this, _PerpsController_instances, "m", _PerpsController_createServiceContext).call(this, 'getMarkets'),
1611
- isMarketAllowed,
1612
- });
1601
+ return provider.getMarkets(params);
1613
1602
  }
1614
1603
  const provider = this.getActiveProvider();
1615
1604
  return __classPrivateFieldGet(this, _PerpsController_marketDataService, "f").getMarkets({
1616
1605
  provider,
1617
1606
  params,
1618
1607
  context: __classPrivateFieldGet(this, _PerpsController_instances, "m", _PerpsController_createServiceContext).call(this, 'getMarkets'),
1619
- isMarketAllowed,
1620
1608
  });
1621
1609
  }
1622
1610
  /**
@@ -1636,6 +1624,8 @@ class PerpsController extends base_controller_1.BaseController {
1636
1624
  */
1637
1625
  async getMarketDataWithPrices(params) {
1638
1626
  if (params?.standalone) {
1627
+ // Use activeProviderInstance if available (respects provider abstraction)
1628
+ // Fallback to cached standalone provider for pre-initialization discovery
1639
1629
  const provider = this.activeProviderInstance ?? __classPrivateFieldGet(this, _PerpsController_instances, "m", _PerpsController_getOrCreateStandaloneProvider).call(this);
1640
1630
  return __classPrivateFieldGet(this, _PerpsController_marketDataService, "f").getMarketDataWithPrices({
1641
1631
  provider,
@@ -3408,25 +3398,6 @@ async function _PerpsController_performInitialization() {
3408
3398
  };
3409
3399
  }, _PerpsController_getControllerState = function _PerpsController_getControllerState() {
3410
3400
  return this.state;
3411
- }, _PerpsController_buildMarketAllowedFilter = function _PerpsController_buildMarketAllowedFilter() {
3412
- const hip3Enabled = __classPrivateFieldGet(this, _PerpsController_hip3Enabled, "f");
3413
- const compiledAllowlist = __classPrivateFieldGet(this, _PerpsController_instances, "m", _PerpsController_compilePatternsSafely).call(this, __classPrivateFieldGet(this, _PerpsController_hip3AllowlistMarkets, "f"));
3414
- const compiledBlocklist = __classPrivateFieldGet(this, _PerpsController_instances, "m", _PerpsController_compilePatternsSafely).call(this, __classPrivateFieldGet(this, _PerpsController_hip3BlocklistMarkets, "f"));
3415
- return (symbol) => {
3416
- const { dex } = (0, hyperLiquidAdapter_1.parseAssetName)(symbol);
3417
- return (0, marketUtils_1.shouldIncludeMarket)(symbol, dex, hip3Enabled, compiledAllowlist, compiledBlocklist);
3418
- };
3419
- }, _PerpsController_compilePatternsSafely = function _PerpsController_compilePatternsSafely(patterns) {
3420
- const compiled = [];
3421
- for (const pattern of patterns) {
3422
- try {
3423
- compiled.push({ pattern, matcher: (0, marketUtils_1.compileMarketPattern)(pattern) });
3424
- }
3425
- catch {
3426
- // Invalid patterns silently skipped — logged at provider level.
3427
- }
3428
- }
3429
- return compiled;
3430
3401
  }, _PerpsController_createServiceContext = function _PerpsController_createServiceContext(method, additionalContext) {
3431
3402
  return {
3432
3403
  tracingContext: {