@metamask-previews/perps-controller 2.0.0-preview-de55719 → 2.0.0-preview-51571fe

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 (52) hide show
  1. package/CHANGELOG.md +18 -0
  2. package/dist/PerpsController.cjs +87 -10
  3. package/dist/PerpsController.cjs.map +1 -1
  4. package/dist/PerpsController.d.cts +25 -2
  5. package/dist/PerpsController.d.cts.map +1 -1
  6. package/dist/PerpsController.d.mts +25 -2
  7. package/dist/PerpsController.d.mts.map +1 -1
  8. package/dist/PerpsController.mjs +87 -10
  9. package/dist/PerpsController.mjs.map +1 -1
  10. package/dist/constants/hyperLiquidConfig.cjs +2 -2
  11. package/dist/constants/hyperLiquidConfig.cjs.map +1 -1
  12. package/dist/constants/hyperLiquidConfig.mjs +2 -2
  13. package/dist/constants/hyperLiquidConfig.mjs.map +1 -1
  14. package/dist/constants/perpsConfig.cjs +8 -1
  15. package/dist/constants/perpsConfig.cjs.map +1 -1
  16. package/dist/constants/perpsConfig.d.cts +7 -0
  17. package/dist/constants/perpsConfig.d.cts.map +1 -1
  18. package/dist/constants/perpsConfig.d.mts +7 -0
  19. package/dist/constants/perpsConfig.d.mts.map +1 -1
  20. package/dist/constants/perpsConfig.mjs +7 -0
  21. package/dist/constants/perpsConfig.mjs.map +1 -1
  22. package/dist/providers/HyperLiquidProvider.cjs +31 -0
  23. package/dist/providers/HyperLiquidProvider.cjs.map +1 -1
  24. package/dist/providers/HyperLiquidProvider.d.cts.map +1 -1
  25. package/dist/providers/HyperLiquidProvider.d.mts.map +1 -1
  26. package/dist/providers/HyperLiquidProvider.mjs +31 -0
  27. package/dist/providers/HyperLiquidProvider.mjs.map +1 -1
  28. package/dist/services/AccountService.cjs +35 -35
  29. package/dist/services/AccountService.cjs.map +1 -1
  30. package/dist/services/AccountService.d.cts.map +1 -1
  31. package/dist/services/AccountService.d.mts.map +1 -1
  32. package/dist/services/AccountService.mjs +35 -35
  33. package/dist/services/AccountService.mjs.map +1 -1
  34. package/dist/services/HyperLiquidSubscriptionService.cjs +32 -19
  35. package/dist/services/HyperLiquidSubscriptionService.cjs.map +1 -1
  36. package/dist/services/HyperLiquidSubscriptionService.d.cts.map +1 -1
  37. package/dist/services/HyperLiquidSubscriptionService.d.mts.map +1 -1
  38. package/dist/services/HyperLiquidSubscriptionService.mjs +32 -19
  39. package/dist/services/HyperLiquidSubscriptionService.mjs.map +1 -1
  40. package/dist/services/TradingService.cjs +4 -3
  41. package/dist/services/TradingService.cjs.map +1 -1
  42. package/dist/services/TradingService.d.cts.map +1 -1
  43. package/dist/services/TradingService.d.mts.map +1 -1
  44. package/dist/services/TradingService.mjs +4 -3
  45. package/dist/services/TradingService.mjs.map +1 -1
  46. package/dist/utils/orderCalculations.cjs +4 -1
  47. package/dist/utils/orderCalculations.cjs.map +1 -1
  48. package/dist/utils/orderCalculations.d.cts.map +1 -1
  49. package/dist/utils/orderCalculations.d.mts.map +1 -1
  50. package/dist/utils/orderCalculations.mjs +5 -2
  51. package/dist/utils/orderCalculations.mjs.map +1 -1
  52. package/package.json +1 -1
@@ -1450,6 +1450,14 @@ class HyperLiquidProvider {
1450
1450
  __classPrivateFieldGet(this, _HyperLiquidProvider_deps, "f").debugLogger.log('User fills received:', {
1451
1451
  count: rawFills?.length ?? 0,
1452
1452
  });
1453
+ // Start fetching historical orders in parallel with fill transformation.
1454
+ // The fills API does not return order type, so we cross-reference
1455
+ // with historical orders to enable TP/SL pill rendering in activity.
1456
+ const historicalOrdersPromise = (infoClient.historicalOrders?.({ user: userAddress }) ??
1457
+ Promise.resolve(null)).catch((enrichError) => {
1458
+ __classPrivateFieldGet(this, _HyperLiquidProvider_deps, "f").debugLogger.log('Warning: failed to enrich fills with order types:', enrichError);
1459
+ return null;
1460
+ });
1453
1461
  // Transform HyperLiquid fills to abstract OrderFill type
1454
1462
  const fills = (rawFills || []).reduce((acc, fill) => {
1455
1463
  // Perps only, no Spots
@@ -1478,6 +1486,29 @@ class HyperLiquidProvider {
1478
1486
  }
1479
1487
  return acc;
1480
1488
  }, []);
1489
+ // Enrich fills with detailedOrderType from historical orders
1490
+ // Wrapped in its own try/catch so a malformed order never discards fetched fills
1491
+ try {
1492
+ const rawOrders = await historicalOrdersPromise;
1493
+ if (rawOrders) {
1494
+ const orderTypeByOid = new Map();
1495
+ for (const rawOrder of rawOrders) {
1496
+ const oid = rawOrder.order?.oid?.toString();
1497
+ if (oid && rawOrder.order?.orderType && !orderTypeByOid.has(oid)) {
1498
+ orderTypeByOid.set(oid, rawOrder.order.orderType);
1499
+ }
1500
+ }
1501
+ for (const fill of fills) {
1502
+ const orderType = orderTypeByOid.get(fill.orderId);
1503
+ if (orderType) {
1504
+ fill.detailedOrderType = orderType;
1505
+ }
1506
+ }
1507
+ }
1508
+ }
1509
+ catch (enrichError) {
1510
+ __classPrivateFieldGet(this, _HyperLiquidProvider_deps, "f").debugLogger.log('Error enriching fills with order types:', enrichError);
1511
+ }
1481
1512
  return fills;
1482
1513
  }
1483
1514
  catch (error) {