@metamask-previews/perps-controller 1.3.0-preview-a0caca0c0 → 1.3.0-preview-afe010990

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 (158) hide show
  1. package/CHANGELOG.md +9 -0
  2. package/dist/PerpsController-method-action-types.cjs +3 -0
  3. package/dist/PerpsController-method-action-types.cjs.map +1 -0
  4. package/dist/PerpsController-method-action-types.d.cts +147 -0
  5. package/dist/PerpsController-method-action-types.d.cts.map +1 -0
  6. package/dist/PerpsController-method-action-types.d.mts +147 -0
  7. package/dist/PerpsController-method-action-types.d.mts.map +1 -0
  8. package/dist/PerpsController-method-action-types.mjs +2 -0
  9. package/dist/PerpsController-method-action-types.mjs.map +1 -0
  10. package/dist/PerpsController.cjs +488 -183
  11. package/dist/PerpsController.cjs.map +1 -1
  12. package/dist/PerpsController.d.cts +91 -131
  13. package/dist/PerpsController.d.cts.map +1 -1
  14. package/dist/PerpsController.d.mts +91 -131
  15. package/dist/PerpsController.d.mts.map +1 -1
  16. package/dist/PerpsController.mjs +485 -182
  17. package/dist/PerpsController.mjs.map +1 -1
  18. package/dist/constants/eventNames.cjs +26 -0
  19. package/dist/constants/eventNames.cjs.map +1 -1
  20. package/dist/constants/eventNames.d.cts +19 -0
  21. package/dist/constants/eventNames.d.cts.map +1 -1
  22. package/dist/constants/eventNames.d.mts +19 -0
  23. package/dist/constants/eventNames.d.mts.map +1 -1
  24. package/dist/constants/eventNames.mjs +26 -0
  25. package/dist/constants/eventNames.mjs.map +1 -1
  26. package/dist/constants/hyperLiquidConfig.cjs +24 -4
  27. package/dist/constants/hyperLiquidConfig.cjs.map +1 -1
  28. package/dist/constants/hyperLiquidConfig.d.cts +8 -3
  29. package/dist/constants/hyperLiquidConfig.d.cts.map +1 -1
  30. package/dist/constants/hyperLiquidConfig.d.mts +8 -3
  31. package/dist/constants/hyperLiquidConfig.d.mts.map +1 -1
  32. package/dist/constants/hyperLiquidConfig.mjs +23 -3
  33. package/dist/constants/hyperLiquidConfig.mjs.map +1 -1
  34. package/dist/constants/myxConfig.cjs +75 -51
  35. package/dist/constants/myxConfig.cjs.map +1 -1
  36. package/dist/constants/myxConfig.d.cts +58 -19
  37. package/dist/constants/myxConfig.d.cts.map +1 -1
  38. package/dist/constants/myxConfig.d.mts +58 -19
  39. package/dist/constants/myxConfig.d.mts.map +1 -1
  40. package/dist/constants/myxConfig.mjs +74 -50
  41. package/dist/constants/myxConfig.mjs.map +1 -1
  42. package/dist/constants/perpsConfig.cjs +6 -2
  43. package/dist/constants/perpsConfig.cjs.map +1 -1
  44. package/dist/constants/perpsConfig.d.cts +5 -1
  45. package/dist/constants/perpsConfig.d.cts.map +1 -1
  46. package/dist/constants/perpsConfig.d.mts +5 -1
  47. package/dist/constants/perpsConfig.d.mts.map +1 -1
  48. package/dist/constants/perpsConfig.mjs +5 -1
  49. package/dist/constants/perpsConfig.mjs.map +1 -1
  50. package/dist/index.cjs +243 -25
  51. package/dist/index.cjs.map +1 -1
  52. package/dist/index.d.cts +48 -5
  53. package/dist/index.d.cts.map +1 -1
  54. package/dist/index.d.mts +48 -5
  55. package/dist/index.d.mts.map +1 -1
  56. package/dist/index.mjs +36 -10
  57. package/dist/index.mjs.map +1 -1
  58. package/dist/providers/AggregatedPerpsProvider.cjs +24 -0
  59. package/dist/providers/AggregatedPerpsProvider.cjs.map +1 -1
  60. package/dist/providers/AggregatedPerpsProvider.d.cts +4 -0
  61. package/dist/providers/AggregatedPerpsProvider.d.cts.map +1 -1
  62. package/dist/providers/AggregatedPerpsProvider.d.mts +4 -0
  63. package/dist/providers/AggregatedPerpsProvider.d.mts.map +1 -1
  64. package/dist/providers/AggregatedPerpsProvider.mjs +24 -0
  65. package/dist/providers/AggregatedPerpsProvider.mjs.map +1 -1
  66. package/dist/providers/HyperLiquidProvider.cjs +470 -154
  67. package/dist/providers/HyperLiquidProvider.cjs.map +1 -1
  68. package/dist/providers/HyperLiquidProvider.d.cts +11 -2
  69. package/dist/providers/HyperLiquidProvider.d.cts.map +1 -1
  70. package/dist/providers/HyperLiquidProvider.d.mts +11 -2
  71. package/dist/providers/HyperLiquidProvider.d.mts.map +1 -1
  72. package/dist/providers/HyperLiquidProvider.mjs +471 -155
  73. package/dist/providers/HyperLiquidProvider.mjs.map +1 -1
  74. package/dist/selectors.cjs +1 -1
  75. package/dist/selectors.cjs.map +1 -1
  76. package/dist/selectors.mjs +1 -1
  77. package/dist/selectors.mjs.map +1 -1
  78. package/dist/services/AccountService.cjs +1 -1
  79. package/dist/services/AccountService.cjs.map +1 -1
  80. package/dist/services/AccountService.d.cts.map +1 -1
  81. package/dist/services/AccountService.d.mts.map +1 -1
  82. package/dist/services/AccountService.mjs +2 -2
  83. package/dist/services/AccountService.mjs.map +1 -1
  84. package/dist/services/DepositService.cjs +2 -1
  85. package/dist/services/DepositService.cjs.map +1 -1
  86. package/dist/services/DepositService.d.cts.map +1 -1
  87. package/dist/services/DepositService.d.mts.map +1 -1
  88. package/dist/services/DepositService.mjs +2 -1
  89. package/dist/services/DepositService.mjs.map +1 -1
  90. package/dist/services/EligibilityService.cjs +8 -103
  91. package/dist/services/EligibilityService.cjs.map +1 -1
  92. package/dist/services/EligibilityService.d.cts +4 -15
  93. package/dist/services/EligibilityService.d.cts.map +1 -1
  94. package/dist/services/EligibilityService.d.mts +4 -15
  95. package/dist/services/EligibilityService.d.mts.map +1 -1
  96. package/dist/services/EligibilityService.mjs +8 -103
  97. package/dist/services/EligibilityService.mjs.map +1 -1
  98. package/dist/services/HyperLiquidSubscriptionService.cjs +252 -46
  99. package/dist/services/HyperLiquidSubscriptionService.cjs.map +1 -1
  100. package/dist/services/HyperLiquidSubscriptionService.d.cts +1 -0
  101. package/dist/services/HyperLiquidSubscriptionService.d.cts.map +1 -1
  102. package/dist/services/HyperLiquidSubscriptionService.d.mts +1 -0
  103. package/dist/services/HyperLiquidSubscriptionService.d.mts.map +1 -1
  104. package/dist/services/HyperLiquidSubscriptionService.mjs +252 -46
  105. package/dist/services/HyperLiquidSubscriptionService.mjs.map +1 -1
  106. package/dist/services/MarketDataService.cjs +2 -4
  107. package/dist/services/MarketDataService.cjs.map +1 -1
  108. package/dist/services/MarketDataService.d.cts.map +1 -1
  109. package/dist/services/MarketDataService.d.mts.map +1 -1
  110. package/dist/services/MarketDataService.mjs +2 -4
  111. package/dist/services/MarketDataService.mjs.map +1 -1
  112. package/dist/services/TradingService.cjs +72 -6
  113. package/dist/services/TradingService.cjs.map +1 -1
  114. package/dist/services/TradingService.d.cts.map +1 -1
  115. package/dist/services/TradingService.d.mts.map +1 -1
  116. package/dist/services/TradingService.mjs +72 -6
  117. package/dist/services/TradingService.mjs.map +1 -1
  118. package/dist/types/index.cjs.map +1 -1
  119. package/dist/types/index.d.cts +51 -3
  120. package/dist/types/index.d.cts.map +1 -1
  121. package/dist/types/index.d.mts +51 -3
  122. package/dist/types/index.d.mts.map +1 -1
  123. package/dist/types/index.mjs.map +1 -1
  124. package/dist/types/messenger.cjs.map +1 -1
  125. package/dist/types/messenger.d.cts +2 -1
  126. package/dist/types/messenger.d.cts.map +1 -1
  127. package/dist/types/messenger.d.mts +2 -1
  128. package/dist/types/messenger.d.mts.map +1 -1
  129. package/dist/types/messenger.mjs.map +1 -1
  130. package/dist/types/myx-types.cjs +19 -3
  131. package/dist/types/myx-types.cjs.map +1 -1
  132. package/dist/types/myx-types.d.cts +33 -2
  133. package/dist/types/myx-types.d.cts.map +1 -1
  134. package/dist/types/myx-types.d.mts +33 -2
  135. package/dist/types/myx-types.d.mts.map +1 -1
  136. package/dist/types/myx-types.mjs +6 -2
  137. package/dist/types/myx-types.mjs.map +1 -1
  138. package/dist/types/perps-types.cjs +3 -0
  139. package/dist/types/perps-types.cjs.map +1 -1
  140. package/dist/types/perps-types.d.cts +3 -3
  141. package/dist/types/perps-types.d.cts.map +1 -1
  142. package/dist/types/perps-types.d.mts +3 -3
  143. package/dist/types/perps-types.d.mts.map +1 -1
  144. package/dist/types/perps-types.mjs +3 -0
  145. package/dist/types/perps-types.mjs.map +1 -1
  146. package/dist/utils/accountUtils.cjs.map +1 -1
  147. package/dist/utils/accountUtils.d.cts.map +1 -1
  148. package/dist/utils/accountUtils.d.mts.map +1 -1
  149. package/dist/utils/accountUtils.mjs.map +1 -1
  150. package/dist/utils/myxAdapter.cjs +360 -15
  151. package/dist/utils/myxAdapter.cjs.map +1 -1
  152. package/dist/utils/myxAdapter.d.cts +94 -7
  153. package/dist/utils/myxAdapter.d.cts.map +1 -1
  154. package/dist/utils/myxAdapter.d.mts +94 -7
  155. package/dist/utils/myxAdapter.d.mts.map +1 -1
  156. package/dist/utils/myxAdapter.mjs +351 -16
  157. package/dist/utils/myxAdapter.mjs.map +1 -1
  158. package/package.json +4 -2
@@ -1 +1 @@
1
- {"version":3,"file":"TradingService.d.mts","sourceRoot":"","sources":["../../src/services/TradingService.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"TradingService.d.mts","sourceRoot":"","sources":["../../src/services/TradingService.ts"],"names":[],"mappings":"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"}
@@ -12,6 +12,7 @@ var __classPrivateFieldGet = (this && this.__classPrivateFieldGet) || function (
12
12
  var _TradingService_instances, _TradingService_deps, _TradingService_controllerDeps, _TradingService_getErrorContext, _TradingService_trackOrderResult, _TradingService_handleOrderSuccess, _TradingService_withFeeDiscount, _TradingService_loadPositionData, _TradingService_calculateCloseMetrics, _TradingService_buildCloseEventProperties, _TradingService_trackPositionCloseResult, _TradingService_handleDataLakeReporting, _TradingService_calculateFeeDiscountWithMeasurement;
13
13
  import { v4 as uuidv4 } from "uuid";
14
14
  import { PERPS_EVENT_PROPERTY, PERPS_EVENT_VALUE } from "../constants/eventNames.mjs";
15
+ import { ESTIMATED_FEE_RATE } from "../constants/hyperLiquidConfig.mjs";
15
16
  import { isTPSLOrder } from "../constants/orderTypes.mjs";
16
17
  import { PerpsMeasurementName } from "../constants/performanceMetrics.mjs";
17
18
  import { PERPS_CONSTANTS } from "../constants/perpsConfig.mjs";
@@ -71,7 +72,20 @@ export class TradingService {
71
72
  const traceId = uuidv4();
72
73
  const startTime = __classPrivateFieldGet(this, _TradingService_deps, "f").performance.now();
73
74
  let traceData;
75
+ const paymentToken = params.trackingData?.tradeWithToken === true
76
+ ? (params.trackingData.mmPayTokenSelected ?? 'unknown_token')
77
+ : 'perps_balance';
74
78
  try {
79
+ __classPrivateFieldGet(this, _TradingService_deps, "f").tracer.addBreadcrumb({
80
+ category: 'perps',
81
+ message: 'Order execution started',
82
+ level: 'info',
83
+ data: {
84
+ payment_token: paymentToken,
85
+ market: params.symbol,
86
+ orderType: params.orderType,
87
+ },
88
+ });
75
89
  // Start trace for the entire operation
76
90
  __classPrivateFieldGet(this, _TradingService_deps, "f").tracer.trace({
77
91
  name: PerpsTraceNames.PlaceOrder,
@@ -83,10 +97,12 @@ export class TradingService {
83
97
  market: params.symbol,
84
98
  leverage: String(params.leverage ?? 1),
85
99
  isTestnet: String(context.tracingContext.isTestnet),
100
+ payment_token: paymentToken,
86
101
  },
87
102
  data: {
88
103
  isBuy: params.isBuy,
89
104
  orderPrice: params.price ?? '',
105
+ payment_token: paymentToken,
90
106
  },
91
107
  });
92
108
  // Calculate fee discount at execution time (fresh, secure)
@@ -851,6 +867,17 @@ export class TradingService {
851
867
  // Determine if TP/SL are set
852
868
  const hasTakeProfit = Boolean(params.takeProfitPrice);
853
869
  const hasStopLoss = Boolean(params.stopLossPrice);
870
+ // Determine TP/SL action type
871
+ let tpslAction;
872
+ if (hasTakeProfit && hasStopLoss) {
873
+ tpslAction = PERPS_EVENT_VALUE.ACTION.TPSL;
874
+ }
875
+ else if (hasTakeProfit) {
876
+ tpslAction = PERPS_EVENT_VALUE.ACTION.TP;
877
+ }
878
+ else if (hasStopLoss) {
879
+ tpslAction = PERPS_EVENT_VALUE.ACTION.SL;
880
+ }
854
881
  // Build comprehensive event properties
855
882
  const eventProperties = {
856
883
  [PERPS_EVENT_PROPERTY.STATUS]: result?.success
@@ -862,6 +889,9 @@ export class TradingService {
862
889
  [PERPS_EVENT_PROPERTY.SCREEN_TYPE]: screenType,
863
890
  [PERPS_EVENT_PROPERTY.HAS_TAKE_PROFIT]: hasTakeProfit,
864
891
  [PERPS_EVENT_PROPERTY.HAS_STOP_LOSS]: hasStopLoss,
892
+ ...(tpslAction && {
893
+ [PERPS_EVENT_PROPERTY.ACTION]: tpslAction,
894
+ }),
865
895
  ...(direction && {
866
896
  [PERPS_EVENT_PROPERTY.DIRECTION]: direction === 'long'
867
897
  ? PERPS_EVENT_VALUE.DIRECTION.LONG
@@ -1013,7 +1043,7 @@ export class TradingService {
1013
1043
  const entryPrice = parseFloat(position.entryPrice);
1014
1044
  const flipSize = positionSize * 2;
1015
1045
  const notionalValue = flipSize * entryPrice;
1016
- const estimatedFees = notionalValue * 0.0009;
1046
+ const estimatedFees = notionalValue * ESTIMATED_FEE_RATE;
1017
1047
  if (estimatedFees > availableBalance) {
1018
1048
  throw new Error(`Insufficient balance for flip fees. Need $${estimatedFees.toFixed(2)}, have $${availableBalance.toFixed(2)}`);
1019
1049
  }
@@ -1037,7 +1067,10 @@ export class TradingService {
1037
1067
  state.lastUpdateTimestamp = Date.now();
1038
1068
  });
1039
1069
  }
1040
- // Track success analytics
1070
+ // Track success analytics with direction-specific flip action
1071
+ const flipAction = isCurrentlyLong
1072
+ ? PERPS_EVENT_VALUE.ACTION.FLIP_LONG_TO_SHORT
1073
+ : PERPS_EVENT_VALUE.ACTION.FLIP_SHORT_TO_LONG;
1041
1074
  __classPrivateFieldGet(this, _TradingService_deps, "f").metrics.trackPerpsEvent(PerpsAnalyticsEvent.TradeTransaction, {
1042
1075
  [PERPS_EVENT_PROPERTY.STATUS]: PERPS_EVENT_VALUE.STATUS.EXECUTED,
1043
1076
  [PERPS_EVENT_PROPERTY.ASSET]: position.symbol,
@@ -1048,7 +1081,8 @@ export class TradingService {
1048
1081
  [PERPS_EVENT_PROPERTY.LEVERAGE]: position.leverage?.value || 1,
1049
1082
  [PERPS_EVENT_PROPERTY.ORDER_SIZE]: positionSize,
1050
1083
  [PERPS_EVENT_PROPERTY.COMPLETION_DURATION]: completionDuration,
1051
- [PERPS_EVENT_PROPERTY.ACTION]: 'flip_position',
1084
+ [PERPS_EVENT_PROPERTY.ACTION]: flipAction,
1085
+ [PERPS_EVENT_PROPERTY.ORDER_VALUE]: positionSize * parseFloat(position.entryPrice),
1052
1086
  });
1053
1087
  // Invalidate standalone caches so external hooks refresh
1054
1088
  __classPrivateFieldGet(this, _TradingService_deps, "f").cacheInvalidator.invalidate({ cacheType: 'positions' });
@@ -1065,11 +1099,15 @@ export class TradingService {
1065
1099
  const completionDuration = __classPrivateFieldGet(this, _TradingService_deps, "f").performance.now() - startTime;
1066
1100
  const errorMessage = error instanceof Error ? error.message : 'Unknown error';
1067
1101
  __classPrivateFieldGet(this, _TradingService_deps, "f").logger.error(ensureError(error, 'TradingService.flipPosition'), __classPrivateFieldGet(this, _TradingService_instances, "m", _TradingService_getErrorContext).call(this, 'flipPosition', { symbol: position.symbol }));
1068
- // Track failure analytics
1102
+ // Track failure analytics with direction-specific flip action
1103
+ const wasLong = parseFloat(position.size) > 0;
1104
+ const failFlipAction = wasLong
1105
+ ? PERPS_EVENT_VALUE.ACTION.FLIP_LONG_TO_SHORT
1106
+ : PERPS_EVENT_VALUE.ACTION.FLIP_SHORT_TO_LONG;
1069
1107
  __classPrivateFieldGet(this, _TradingService_deps, "f").metrics.trackPerpsEvent(PerpsAnalyticsEvent.TradeTransaction, {
1070
1108
  [PERPS_EVENT_PROPERTY.STATUS]: PERPS_EVENT_VALUE.STATUS.FAILED,
1071
1109
  [PERPS_EVENT_PROPERTY.ASSET]: position.symbol,
1072
- [PERPS_EVENT_PROPERTY.ACTION]: 'flip_position',
1110
+ [PERPS_EVENT_PROPERTY.ACTION]: failFlipAction,
1073
1111
  [PERPS_EVENT_PROPERTY.COMPLETION_DURATION]: completionDuration,
1074
1112
  [PERPS_EVENT_PROPERTY.ERROR_MESSAGE]: errorMessage,
1075
1113
  });
@@ -1127,7 +1165,7 @@ _TradingService_deps = new WeakMap(), _TradingService_controllerDeps = new WeakM
1127
1165
  if (params.trackingData?.tradeAction) {
1128
1166
  properties[PERPS_EVENT_PROPERTY.ACTION] = params.trackingData.tradeAction;
1129
1167
  }
1130
- // Pay with any token: trade_with_token (boolean); when true, include mm_pay_token_selected and mm_pay_network_selected
1168
+ // Pay with any token: trade_with_token (boolean); when true, include mm_pay_token_selected and mm_pay_network_selected; when false (Perps balance), include mm_pay_token_selected: "Perps Balance"
1131
1169
  properties[PERPS_EVENT_PROPERTY.TRADE_WITH_TOKEN] =
1132
1170
  params.trackingData?.tradeWithToken === true;
1133
1171
  if (params.trackingData?.tradeWithToken === true) {
@@ -1140,6 +1178,18 @@ _TradingService_deps = new WeakMap(), _TradingService_controllerDeps = new WeakM
1140
1178
  params.trackingData.mmPayNetworkSelected;
1141
1179
  }
1142
1180
  }
1181
+ else if (params.trackingData !== undefined) {
1182
+ properties[PERPS_EVENT_PROPERTY.MM_PAY_TOKEN_SELECTED] =
1183
+ PERPS_EVENT_VALUE.MM_PAY_TOKEN.PERPS_BALANCE;
1184
+ }
1185
+ // Calculate order value in USD (size * price)
1186
+ const orderSize = parseFloat(result?.filledSize ?? params.size);
1187
+ const assetPrice = result?.averagePrice
1188
+ ? parseFloat(result.averagePrice)
1189
+ : params.trackingData?.marketPrice;
1190
+ if (assetPrice && orderSize) {
1191
+ properties[PERPS_EVENT_PROPERTY.ORDER_VALUE] = orderSize * assetPrice;
1192
+ }
1143
1193
  // Add success-specific properties
1144
1194
  if (status === PERPS_EVENT_VALUE.STATUS.EXECUTED) {
1145
1195
  if (params.trackingData?.metamaskFee !== undefined) {
@@ -1345,18 +1395,34 @@ async function _TradingService_loadPositionData(options) {
1345
1395
  ...(params.trackingData?.receivedAmount !== undefined && {
1346
1396
  [PERPS_EVENT_PROPERTY.RECEIVED_AMOUNT]: params.trackingData.receivedAmount,
1347
1397
  }),
1398
+ ...(params.trackingData?.source && {
1399
+ [PERPS_EVENT_PROPERTY.SOURCE]: params.trackingData.source,
1400
+ }),
1348
1401
  };
1402
+ // Calculate and add order value in USD (size * price)
1403
+ const closeAssetPrice = result?.averagePrice
1404
+ ? parseFloat(result.averagePrice)
1405
+ : params.trackingData?.marketPrice;
1406
+ const orderValue = closeAssetPrice && metrics.requestedSize
1407
+ ? metrics.requestedSize * closeAssetPrice
1408
+ : undefined;
1349
1409
  // Add success-specific properties
1350
1410
  if (status === PERPS_EVENT_VALUE.STATUS.EXECUTED) {
1351
1411
  return {
1352
1412
  ...baseProperties,
1353
1413
  [PERPS_EVENT_PROPERTY.CLOSE_TYPE]: metrics.closeType,
1414
+ ...(orderValue !== undefined && {
1415
+ [PERPS_EVENT_PROPERTY.ORDER_VALUE]: orderValue,
1416
+ }),
1354
1417
  };
1355
1418
  }
1356
1419
  // Add error for failures
1357
1420
  return {
1358
1421
  ...baseProperties,
1359
1422
  ...(error && { [PERPS_EVENT_PROPERTY.ERROR_MESSAGE]: error }),
1423
+ ...(orderValue !== undefined && {
1424
+ [PERPS_EVENT_PROPERTY.ORDER_VALUE]: orderValue,
1425
+ }),
1360
1426
  };
1361
1427
  }, _TradingService_trackPositionCloseResult = function _TradingService_trackPositionCloseResult(options) {
1362
1428
  const { position, result, error, params, duration } = options;