@metamask-previews/perps-controller 1.0.1-preview-4183330c3 → 1.1.0-preview-efc1fb7
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 +8 -1
- package/dist/PerpsController.cjs +38 -6
- package/dist/PerpsController.cjs.map +1 -1
- package/dist/PerpsController.d.cts +29 -4
- package/dist/PerpsController.d.cts.map +1 -1
- package/dist/PerpsController.d.mts +29 -4
- package/dist/PerpsController.d.mts.map +1 -1
- package/dist/PerpsController.mjs +38 -6
- package/dist/PerpsController.mjs.map +1 -1
- package/package.json +1 -1
package/CHANGELOG.md
CHANGED
|
@@ -7,6 +7,12 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0
|
|
|
7
7
|
|
|
8
8
|
## [Unreleased]
|
|
9
9
|
|
|
10
|
+
## [1.1.0]
|
|
11
|
+
|
|
12
|
+
### Added
|
|
13
|
+
|
|
14
|
+
- feat: defer eligibility to allow for onboarding to proceed without le… ([#8197](https://github.com/MetaMask/core/pull/8197))
|
|
15
|
+
|
|
10
16
|
## [1.0.1]
|
|
11
17
|
|
|
12
18
|
### Changed
|
|
@@ -49,6 +55,7 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0
|
|
|
49
55
|
|
|
50
56
|
- Bump `@metamask/controller-utils` from `^11.18.0` to `^11.19.0` ([#7995](https://github.com/MetaMask/core/pull/7995))
|
|
51
57
|
|
|
52
|
-
[Unreleased]: https://github.com/MetaMask/core/compare/@metamask/perps-controller@1.0
|
|
58
|
+
[Unreleased]: https://github.com/MetaMask/core/compare/@metamask/perps-controller@1.1.0...HEAD
|
|
59
|
+
[1.1.0]: https://github.com/MetaMask/core/compare/@metamask/perps-controller@1.0.1...@metamask/perps-controller@1.1.0
|
|
53
60
|
[1.0.1]: https://github.com/MetaMask/core/compare/@metamask/perps-controller@1.0.0...@metamask/perps-controller@1.0.1
|
|
54
61
|
[1.0.0]: https://github.com/MetaMask/core/releases/tag/@metamask/perps-controller@1.0.0
|
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_blockedRegionListVersion, _PerpsController_hip3Enabled, _PerpsController_hip3AllowlistMarkets, _PerpsController_hip3BlocklistMarkets, _PerpsController_hip3ConfigSource, _PerpsController_isMYXProviderEnabled, _PerpsController_standaloneProvider, _PerpsController_standaloneProviderIsTestnet, _PerpsController_standaloneProviderHip3Version, _PerpsController_options, _PerpsController_tradingService, _PerpsController_marketDataService, _PerpsController_accountService, _PerpsController_eligibilityService, _PerpsController_dataLakeService, _PerpsController_depositService, _PerpsController_featureFlagConfigurationService, _PerpsController_rewardsIntegrationService, _PerpsController_logError, _PerpsController_debugLog, _PerpsController_getOrCreateStandaloneProvider, _PerpsController_cleanupStandaloneProvider, _PerpsController_getMetrics, _PerpsController_findNetworkClientIdForChain, _PerpsController_submitTransaction, _PerpsController_migrateRequestsIfNeeded, _PerpsController_withStreamPause, _PerpsController_performInitialization, _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_performMarketDataPreload, _PerpsController_performUserDataPreload;
|
|
13
|
+
var _PerpsController_instances, _a, _PerpsController_initializationPromise, _PerpsController_isReinitializing, _PerpsController_blockedRegionListVersion, _PerpsController_hip3Enabled, _PerpsController_hip3AllowlistMarkets, _PerpsController_hip3BlocklistMarkets, _PerpsController_hip3ConfigSource, _PerpsController_isMYXProviderEnabled, _PerpsController_standaloneProvider, _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_getOrCreateStandaloneProvider, _PerpsController_cleanupStandaloneProvider, _PerpsController_getMetrics, _PerpsController_findNetworkClientIdForChain, _PerpsController_submitTransaction, _PerpsController_migrateRequestsIfNeeded, _PerpsController_withStreamPause, _PerpsController_performInitialization, _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_performMarketDataPreload, _PerpsController_performUserDataPreload;
|
|
14
14
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
15
15
|
exports.PerpsController = exports.getDefaultPerpsControllerState = exports.InitializationState = exports.PERPS_ERROR_CODES = void 0;
|
|
16
16
|
const base_controller_1 = require("@metamask/base-controller");
|
|
@@ -347,6 +347,8 @@ const MESSENGER_EXPOSED_METHODS = [
|
|
|
347
347
|
'saveOrderBookGrouping',
|
|
348
348
|
'setSelectedPaymentToken',
|
|
349
349
|
'resetSelectedPaymentToken',
|
|
350
|
+
'startEligibilityMonitoring',
|
|
351
|
+
'stopEligibilityMonitoring',
|
|
350
352
|
];
|
|
351
353
|
/**
|
|
352
354
|
* PerpsController - Protocol-agnostic perpetuals trading controller
|
|
@@ -357,7 +359,7 @@ const MESSENGER_EXPOSED_METHODS = [
|
|
|
357
359
|
* - Live data uses direct callbacks for maximum performance
|
|
358
360
|
*/
|
|
359
361
|
class PerpsController extends base_controller_1.BaseController {
|
|
360
|
-
constructor({ messenger, state = {}, clientConfig = {}, infrastructure, }) {
|
|
362
|
+
constructor({ messenger, state = {}, clientConfig = {}, infrastructure, deferEligibilityCheck = false, }) {
|
|
361
363
|
super({
|
|
362
364
|
name: 'PerpsController',
|
|
363
365
|
metadata,
|
|
@@ -398,6 +400,7 @@ class PerpsController extends base_controller_1.BaseController {
|
|
|
398
400
|
_PerpsController_standaloneProvider.set(this, null);
|
|
399
401
|
_PerpsController_standaloneProviderIsTestnet.set(this, null);
|
|
400
402
|
_PerpsController_standaloneProviderHip3Version.set(this, null);
|
|
403
|
+
_PerpsController_eligibilityCheckDeferred.set(this, void 0);
|
|
401
404
|
// Store options for dependency injection (allows core package to inject platform-specific services)
|
|
402
405
|
_PerpsController_options.set(this, void 0);
|
|
403
406
|
// Service instances (instantiated with platform dependencies)
|
|
@@ -416,6 +419,7 @@ class PerpsController extends base_controller_1.BaseController {
|
|
|
416
419
|
_PerpsController_accountChangeUnsubscribe.set(this, null);
|
|
417
420
|
_PerpsController_previousIsTestnet.set(this, null);
|
|
418
421
|
_PerpsController_previousHip3ConfigVersion.set(this, null);
|
|
422
|
+
__classPrivateFieldSet(this, _PerpsController_eligibilityCheckDeferred, deferEligibilityCheck, "f");
|
|
419
423
|
// Store options for dependency injection
|
|
420
424
|
__classPrivateFieldSet(this, _PerpsController_options, {
|
|
421
425
|
messenger,
|
|
@@ -2084,15 +2088,43 @@ class PerpsController extends base_controller_1.BaseController {
|
|
|
2084
2088
|
* Eligibility (Geo-Blocking)
|
|
2085
2089
|
*/
|
|
2086
2090
|
/**
|
|
2087
|
-
*
|
|
2091
|
+
* Activates geo-blocking eligibility monitoring.
|
|
2092
|
+
* Call this after onboarding is complete when the controller was constructed
|
|
2093
|
+
* with `deferEligibilityCheck: true`.
|
|
2088
2094
|
*
|
|
2089
|
-
*
|
|
2090
|
-
*
|
|
2095
|
+
* Reads the current RemoteFeatureFlagController state, performs the initial
|
|
2096
|
+
* eligibility check, and unblocks the existing stateChange subscription so
|
|
2097
|
+
* future feature-flag updates flow through normally.
|
|
2098
|
+
* Safe to call multiple times; subsequent calls simply re-check eligibility.
|
|
2091
2099
|
*/
|
|
2100
|
+
startEligibilityMonitoring() {
|
|
2101
|
+
__classPrivateFieldSet(this, _PerpsController_eligibilityCheckDeferred, false, "f");
|
|
2102
|
+
try {
|
|
2103
|
+
const currentState = this.messenger.call('RemoteFeatureFlagController:getState');
|
|
2104
|
+
this.refreshEligibilityOnFeatureFlagChange(currentState);
|
|
2105
|
+
}
|
|
2106
|
+
catch (error) {
|
|
2107
|
+
__classPrivateFieldGet(this, _PerpsController_instances, "m", _PerpsController_logError).call(this, (0, errorUtils_1.ensureError)(error, 'PerpsController.startEligibilityMonitoring'), __classPrivateFieldGet(this, _PerpsController_instances, "m", _PerpsController_getErrorContext).call(this, 'startEligibilityMonitoring', {
|
|
2108
|
+
operation: 'readRemoteFeatureFlags',
|
|
2109
|
+
}));
|
|
2110
|
+
}
|
|
2111
|
+
}
|
|
2112
|
+
/**
|
|
2113
|
+
* Stops geo-blocking eligibility monitoring.
|
|
2114
|
+
* Call this when the user disables basic functionality (e.g. useExternalServices becomes false).
|
|
2115
|
+
* Prevents geolocation calls until startEligibilityMonitoring() is called again.
|
|
2116
|
+
* Safe to call multiple times.
|
|
2117
|
+
*/
|
|
2118
|
+
stopEligibilityMonitoring() {
|
|
2119
|
+
__classPrivateFieldSet(this, _PerpsController_eligibilityCheckDeferred, true, "f");
|
|
2120
|
+
}
|
|
2092
2121
|
/**
|
|
2093
2122
|
* Refresh eligibility status
|
|
2094
2123
|
*/
|
|
2095
2124
|
async refreshEligibility() {
|
|
2125
|
+
if (__classPrivateFieldGet(this, _PerpsController_eligibilityCheckDeferred, "f")) {
|
|
2126
|
+
return;
|
|
2127
|
+
}
|
|
2096
2128
|
// Capture the current version before starting the async operation.
|
|
2097
2129
|
// This prevents race conditions where stale eligibility checks
|
|
2098
2130
|
// (started with fallback config) overwrite results from newer checks
|
|
@@ -2585,7 +2617,7 @@ class PerpsController extends base_controller_1.BaseController {
|
|
|
2585
2617
|
}
|
|
2586
2618
|
}
|
|
2587
2619
|
exports.PerpsController = PerpsController;
|
|
2588
|
-
_a = PerpsController, _PerpsController_initializationPromise = new WeakMap(), _PerpsController_isReinitializing = 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_standaloneProviderIsTestnet = new WeakMap(), _PerpsController_standaloneProviderHip3Version = 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() {
|
|
2620
|
+
_a = PerpsController, _PerpsController_initializationPromise = new WeakMap(), _PerpsController_isReinitializing = 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_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() {
|
|
2589
2621
|
const getLocalFlag = () => typeof globalThis.process !== 'undefined' &&
|
|
2590
2622
|
globalThis.process.env?.MM_PERPS_MYX_PROVIDER_ENABLED === 'true';
|
|
2591
2623
|
try {
|