@metamask-previews/perps-controller 12.0.0-preview-e81fe8853 → 12.1.0-preview-3c77cf4

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 (34) hide show
  1. package/CHANGELOG.md +20 -1
  2. package/dist/PerpsController.cjs +5 -7
  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 +5 -7
  7. package/dist/PerpsController.mjs.map +1 -1
  8. package/dist/providers/HyperLiquidProvider.cjs +22 -6
  9. package/dist/providers/HyperLiquidProvider.cjs.map +1 -1
  10. package/dist/providers/HyperLiquidProvider.d.cts.map +1 -1
  11. package/dist/providers/HyperLiquidProvider.d.mts.map +1 -1
  12. package/dist/providers/HyperLiquidProvider.mjs +23 -7
  13. package/dist/providers/HyperLiquidProvider.mjs.map +1 -1
  14. package/dist/services/HyperLiquidSubscriptionService.cjs +10 -2
  15. package/dist/services/HyperLiquidSubscriptionService.cjs.map +1 -1
  16. package/dist/services/HyperLiquidSubscriptionService.d.cts.map +1 -1
  17. package/dist/services/HyperLiquidSubscriptionService.d.mts.map +1 -1
  18. package/dist/services/HyperLiquidSubscriptionService.mjs +11 -3
  19. package/dist/services/HyperLiquidSubscriptionService.mjs.map +1 -1
  20. package/dist/types/index.cjs.map +1 -1
  21. package/dist/types/index.d.cts +18 -6
  22. package/dist/types/index.d.cts.map +1 -1
  23. package/dist/types/index.d.mts +18 -6
  24. package/dist/types/index.d.mts.map +1 -1
  25. package/dist/types/index.mjs.map +1 -1
  26. package/dist/utils/orderTypes.cjs +28 -1
  27. package/dist/utils/orderTypes.cjs.map +1 -1
  28. package/dist/utils/orderTypes.d.cts +23 -0
  29. package/dist/utils/orderTypes.d.cts.map +1 -1
  30. package/dist/utils/orderTypes.d.mts +23 -0
  31. package/dist/utils/orderTypes.d.mts.map +1 -1
  32. package/dist/utils/orderTypes.mjs +26 -0
  33. package/dist/utils/orderTypes.mjs.map +1 -1
  34. package/package.json +1 -1
package/CHANGELOG.md CHANGED
@@ -9,8 +9,26 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0
9
9
 
10
10
  ### Added
11
11
 
12
+ - Add `resolvePositionTriggerSummaryPrice` to `@metamask/perps-controller/utils`, which resolves the scalar TP/SL summary price a position reports for one direction from its trigger orders ([#9912](https://github.com/MetaMask/core/pull/9912))
13
+
14
+ ### Fixed
15
+
16
+ - Report the take profit (or stop loss) price on a `Position` when its only trigger for that direction is a partial, quantity-scoped one ([#9912](https://github.com/MetaMask/core/pull/9912))
17
+ - `takeProfitPrice`/`stopLossPrice` were only ever scanned from position-bound triggers, so a position whose sole take profit closed it partially reported `takeProfitCount: 1` with no price, and clients rendering the scalar showed none. Applies to the REST `getPositions`, `getUserDataSnapshot`, and WebSocket position paths alike.
18
+ - Two or more triggers in a direction still report the scanned price, because no single price describes them and clients render the count instead.
19
+
20
+ ## [12.1.0]
21
+
22
+ ### Added
23
+
24
+ - Add the optional `PerpsPerformance.onControllerConstructed` post-hydration timestamp hook ([#9906](https://github.com/MetaMask/core/pull/9906))
25
+ - Add an explicit trace ID overload to `PerpsTracer.setMeasurement`, allowing clients to target preload measurements to their named trace ([#9906](https://github.com/MetaMask/core/pull/9906))
12
26
  - Add `PERPS_EVENT_PROPERTY.PREVIOUS_LEVERAGE` (`previous_leverage`) for Perp UI Interaction `leverage_changed` events so clients can import the Segment property key from `@metamask/perps-controller` instead of a local interim constant ([#9881](https://github.com/MetaMask/core/pull/9881))
13
27
 
28
+ ### Changed
29
+
30
+ - Target market and user preload measurements to their named traces, and omit wallet addresses from user-preload trace data ([#9906](https://github.com/MetaMask/core/pull/9906))
31
+
14
32
  ## [12.0.0]
15
33
 
16
34
  ### Added
@@ -724,7 +742,8 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0
724
742
 
725
743
  - Bump `@metamask/controller-utils` from `^11.18.0` to `^11.19.0` ([#7995](https://github.com/MetaMask/core/pull/7995))
726
744
 
727
- [Unreleased]: https://github.com/MetaMask/core/compare/@metamask/perps-controller@12.0.0...HEAD
745
+ [Unreleased]: https://github.com/MetaMask/core/compare/@metamask/perps-controller@12.1.0...HEAD
746
+ [12.1.0]: https://github.com/MetaMask/core/compare/@metamask/perps-controller@12.0.0...@metamask/perps-controller@12.1.0
728
747
  [12.0.0]: https://github.com/MetaMask/core/compare/@metamask/perps-controller@11.0.0...@metamask/perps-controller@12.0.0
729
748
  [11.0.0]: https://github.com/MetaMask/core/compare/@metamask/perps-controller@10.0.0...@metamask/perps-controller@11.0.0
730
749
  [10.0.0]: https://github.com/MetaMask/core/compare/@metamask/perps-controller@9.3.0...@metamask/perps-controller@10.0.0
@@ -680,6 +680,7 @@ class PerpsController extends base_controller_1.BaseController {
680
680
  // Eagerly hydrate in-memory caches from disk so hooks see data on first render.
681
681
  // Must happen at construction time — before any React component mounts.
682
682
  __classPrivateFieldGet(this, _PerpsController_instances, "m", _PerpsController_hydrateCacheFromDiskSync).call(this);
683
+ __classPrivateFieldGet(this, _PerpsController_options, "f").infrastructure.performance.onControllerConstructed?.(__classPrivateFieldGet(this, _PerpsController_options, "f").infrastructure.performance.now());
683
684
  }
684
685
  /**
685
686
  * Read cached market data for the currently active provider (or aggregated).
@@ -4259,7 +4260,7 @@ async function _PerpsController_performMarketDataPreload() {
4259
4260
  marketCount: data.length,
4260
4261
  });
4261
4262
  traceData = { success: true, marketCount: data.length };
4262
- __classPrivateFieldGet(this, _PerpsController_options, "f").infrastructure.tracer.setMeasurement(performanceMetrics_js_1.PerpsMeasurementName.PerpsMarketDataPreload, performance.now() - preloadStart, 'millisecond');
4263
+ __classPrivateFieldGet(this, _PerpsController_options, "f").infrastructure.tracer.setMeasurement(performanceMetrics_js_1.PerpsMeasurementName.PerpsMarketDataPreload, performance.now() - preloadStart, 'millisecond', traceId);
4263
4264
  }
4264
4265
  catch (error) {
4265
4266
  traceData = {
@@ -4367,11 +4368,8 @@ async function _PerpsController_performUserDataPreload() {
4367
4368
  provider: activeProvider,
4368
4369
  isTestnet,
4369
4370
  },
4370
- data: { userAddress },
4371
- });
4372
- __classPrivateFieldGet(this, _PerpsController_instances, "m", _PerpsController_debugLog).call(this, 'PerpsController: Fetching user data in background', {
4373
- userAddress,
4374
4371
  });
4372
+ __classPrivateFieldGet(this, _PerpsController_instances, "m", _PerpsController_debugLog).call(this, 'PerpsController: Fetching user data in background');
4375
4373
  if (activeProvider === 'hyperliquid') {
4376
4374
  const snapshot = await this.getUserDataSnapshot();
4377
4375
  __classPrivateFieldGet(this, _PerpsController_instances, "m", _PerpsController_debugLog).call(this, 'PerpsController: User data preloaded', {
@@ -4384,7 +4382,7 @@ async function _PerpsController_performUserDataPreload() {
4384
4382
  positionCount: snapshot.positions.length,
4385
4383
  orderCount: snapshot.orders.length,
4386
4384
  };
4387
- __classPrivateFieldGet(this, _PerpsController_options, "f").infrastructure.tracer.setMeasurement(performanceMetrics_js_1.PerpsMeasurementName.PerpsUserDataPreload, performance.now() - preloadStart, 'millisecond');
4385
+ __classPrivateFieldGet(this, _PerpsController_options, "f").infrastructure.tracer.setMeasurement(performanceMetrics_js_1.PerpsMeasurementName.PerpsUserDataPreload, performance.now() - preloadStart, 'millisecond', traceId);
4388
4386
  return;
4389
4387
  }
4390
4388
  const [positions, orders, accountState] = await Promise.all([
@@ -4471,7 +4469,7 @@ async function _PerpsController_performUserDataPreload() {
4471
4469
  positionCount: positions.length,
4472
4470
  orderCount: orders.length,
4473
4471
  };
4474
- __classPrivateFieldGet(this, _PerpsController_options, "f").infrastructure.tracer.setMeasurement(performanceMetrics_js_1.PerpsMeasurementName.PerpsUserDataPreload, performance.now() - preloadStart, 'millisecond');
4472
+ __classPrivateFieldGet(this, _PerpsController_options, "f").infrastructure.tracer.setMeasurement(performanceMetrics_js_1.PerpsMeasurementName.PerpsUserDataPreload, performance.now() - preloadStart, 'millisecond', traceId);
4475
4473
  }
4476
4474
  catch (error) {
4477
4475
  traceData = {