@metamask-previews/perps-controller 8.0.0-preview-51b287c55 → 8.1.0-preview-3af52b79c
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 +29 -1
- package/dist/constants/hyperLiquidConfig.cjs +166 -1
- package/dist/constants/hyperLiquidConfig.cjs.map +1 -1
- package/dist/constants/hyperLiquidConfig.d.cts +33 -0
- package/dist/constants/hyperLiquidConfig.d.cts.map +1 -1
- package/dist/constants/hyperLiquidConfig.d.mts +33 -0
- package/dist/constants/hyperLiquidConfig.d.mts.map +1 -1
- package/dist/constants/hyperLiquidConfig.mjs +163 -0
- package/dist/constants/hyperLiquidConfig.mjs.map +1 -1
- package/dist/constants/perpsConfig.cjs +2 -0
- package/dist/constants/perpsConfig.cjs.map +1 -1
- package/dist/constants/perpsConfig.d.cts +1 -0
- package/dist/constants/perpsConfig.d.cts.map +1 -1
- package/dist/constants/perpsConfig.d.mts +1 -0
- package/dist/constants/perpsConfig.d.mts.map +1 -1
- package/dist/constants/perpsConfig.mjs +2 -0
- package/dist/constants/perpsConfig.mjs.map +1 -1
- package/dist/index.cjs +48 -44
- package/dist/index.cjs.map +1 -1
- package/dist/index.d.cts +2 -1
- package/dist/index.d.cts.map +1 -1
- package/dist/index.d.mts +2 -1
- package/dist/index.d.mts.map +1 -1
- package/dist/index.mjs +2 -1
- package/dist/index.mjs.map +1 -1
- package/dist/providers/HyperLiquidProvider.cjs +2 -2
- package/dist/providers/HyperLiquidProvider.cjs.map +1 -1
- package/dist/providers/HyperLiquidProvider.d.cts +1 -1
- package/dist/providers/HyperLiquidProvider.d.cts.map +1 -1
- package/dist/providers/HyperLiquidProvider.d.mts +1 -1
- package/dist/providers/HyperLiquidProvider.d.mts.map +1 -1
- package/dist/providers/HyperLiquidProvider.mjs +3 -3
- package/dist/providers/HyperLiquidProvider.mjs.map +1 -1
- package/dist/services/HyperLiquidSubscriptionService.cjs +109 -185
- package/dist/services/HyperLiquidSubscriptionService.cjs.map +1 -1
- package/dist/services/HyperLiquidSubscriptionService.d.cts +3 -3
- package/dist/services/HyperLiquidSubscriptionService.d.cts.map +1 -1
- package/dist/services/HyperLiquidSubscriptionService.d.mts +3 -3
- package/dist/services/HyperLiquidSubscriptionService.d.mts.map +1 -1
- package/dist/services/HyperLiquidSubscriptionService.mjs +109 -185
- package/dist/services/HyperLiquidSubscriptionService.mjs.map +1 -1
- package/dist/services/TradingService.cjs +50 -3
- package/dist/services/TradingService.cjs.map +1 -1
- package/dist/services/TradingService.d.cts.map +1 -1
- package/dist/services/TradingService.d.mts.map +1 -1
- package/dist/services/TradingService.mjs +50 -3
- package/dist/services/TradingService.mjs.map +1 -1
- package/dist/types/index.cjs.map +1 -1
- package/dist/types/index.d.cts +1 -1
- package/dist/types/index.d.cts.map +1 -1
- package/dist/types/index.d.mts +1 -1
- package/dist/types/index.d.mts.map +1 -1
- package/dist/types/index.mjs.map +1 -1
- package/dist/utils/index.cjs +1 -0
- package/dist/utils/index.cjs.map +1 -1
- package/dist/utils/index.d.cts +1 -0
- package/dist/utils/index.d.cts.map +1 -1
- package/dist/utils/index.d.mts +1 -0
- package/dist/utils/index.d.mts.map +1 -1
- package/dist/utils/index.mjs +1 -0
- package/dist/utils/index.mjs.map +1 -1
- package/dist/utils/marketDataTransform.cjs +5 -2
- package/dist/utils/marketDataTransform.cjs.map +1 -1
- package/dist/utils/marketDataTransform.d.cts +4 -1
- package/dist/utils/marketDataTransform.d.cts.map +1 -1
- package/dist/utils/marketDataTransform.d.mts +4 -1
- package/dist/utils/marketDataTransform.d.mts.map +1 -1
- package/dist/utils/marketDataTransform.mjs +6 -3
- package/dist/utils/marketDataTransform.mjs.map +1 -1
- package/dist/utils/marketSearch.cjs +85 -0
- package/dist/utils/marketSearch.cjs.map +1 -0
- package/dist/utils/marketSearch.d.cts +47 -0
- package/dist/utils/marketSearch.d.cts.map +1 -0
- package/dist/utils/marketSearch.d.mts +47 -0
- package/dist/utils/marketSearch.d.mts.map +1 -0
- package/dist/utils/marketSearch.mjs +80 -0
- package/dist/utils/marketSearch.mjs.map +1 -0
- package/package.json +2 -2
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"TradingService.d.cts","sourceRoot":"","sources":["../../src/services/TradingService.ts"],"names":[],"mappings":"AAcA,OAAO,KAAK,EACV,aAAa,EACb,WAAW,EACX,WAAW,EACX,eAAe,EACf,iBAAiB,EACjB,iBAAiB,EACjB,kBAAkB,EAClB,kBAAkB,EAClB,mBAAmB,EACnB,oBAAoB,EACpB,oBAAoB,EACpB,QAAQ,EACR,YAAY,EACZ,wBAAwB,EAExB,yBAAyB,EAC1B,2BAAiB;AAElB,OAAO,KAAK,EAAE,yBAAyB,EAAE,wCAAoC;AAC7E,OAAO,KAAK,EAAE,cAAc,EAAE,6BAAyB;AAEvD;;;GAGG;AACH,MAAM,MAAM,4BAA4B,GAAG;IACzC,yBAAyB,EAAE,yBAAyB,CAAC;CACtD,CAAC;AAEF;;;;;;;;;GASG;AACH,qBAAa,cAAc;;IAYzB;;;;OAIG;gBACS,IAAI,EAAE,yBAAyB;IAI3C;;;;;OAKG;IACH,yBAAyB,CACvB,cAAc,EAAE,4BAA4B,GAC3C,IAAI;IA8QP;;;;;;;;;;OAUG;IACG,UAAU,CAAC,OAAO,EAAE;QACxB,QAAQ,EAAE,aAAa,CAAC;QACxB,MAAM,EAAE,WAAW,CAAC;QACpB,OAAO,EAAE,cAAc,CAAC;QACxB,qBAAqB,EAAE,CAAC,MAAM,EAAE;YAC9B,MAAM,EAAE,MAAM,GAAG,OAAO,CAAC;YACzB,MAAM,EAAE,MAAM,CAAC;YACf,OAAO,CAAC,EAAE,MAAM,CAAC;YACjB,OAAO,CAAC,EAAE,MAAM,CAAC;SAClB,KAAK,OAAO,CAAC;YAAE,OAAO,EAAE,OAAO,CAAC;YAAC,KAAK,CAAC,EAAE,MAAM,CAAA;SAAE,CAAC,CAAC;KACrD,GAAG,OAAO,CAAC,WAAW,CAAC;
|
|
1
|
+
{"version":3,"file":"TradingService.d.cts","sourceRoot":"","sources":["../../src/services/TradingService.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"TradingService.d.mts","sourceRoot":"","sources":["../../src/services/TradingService.ts"],"names":[],"mappings":"AAcA,OAAO,KAAK,EACV,aAAa,EACb,WAAW,EACX,WAAW,EACX,eAAe,EACf,iBAAiB,EACjB,iBAAiB,EACjB,kBAAkB,EAClB,kBAAkB,EAClB,mBAAmB,EACnB,oBAAoB,EACpB,oBAAoB,EACpB,QAAQ,EACR,YAAY,EACZ,wBAAwB,EAExB,yBAAyB,EAC1B,2BAAiB;AAElB,OAAO,KAAK,EAAE,yBAAyB,EAAE,wCAAoC;AAC7E,OAAO,KAAK,EAAE,cAAc,EAAE,6BAAyB;AAEvD;;;GAGG;AACH,MAAM,MAAM,4BAA4B,GAAG;IACzC,yBAAyB,EAAE,yBAAyB,CAAC;CACtD,CAAC;AAEF;;;;;;;;;GASG;AACH,qBAAa,cAAc;;IAYzB;;;;OAIG;gBACS,IAAI,EAAE,yBAAyB;IAI3C;;;;;OAKG;IACH,yBAAyB,CACvB,cAAc,EAAE,4BAA4B,GAC3C,IAAI;IA8QP;;;;;;;;;;OAUG;IACG,UAAU,CAAC,OAAO,EAAE;QACxB,QAAQ,EAAE,aAAa,CAAC;QACxB,MAAM,EAAE,WAAW,CAAC;QACpB,OAAO,EAAE,cAAc,CAAC;QACxB,qBAAqB,EAAE,CAAC,MAAM,EAAE;YAC9B,MAAM,EAAE,MAAM,GAAG,OAAO,CAAC;YACzB,MAAM,EAAE,MAAM,CAAC;YACf,OAAO,CAAC,EAAE,MAAM,CAAC;YACjB,OAAO,CAAC,EAAE,MAAM,CAAC;SAClB,KAAK,OAAO,CAAC;YAAE,OAAO,EAAE,OAAO,CAAC;YAAC,KAAK,CAAC,EAAE,MAAM,CAAA;SAAE,CAAC,CAAC;KACrD,GAAG,OAAO,CAAC,WAAW,CAAC;
|
|
1
|
+
{"version":3,"file":"TradingService.d.mts","sourceRoot":"","sources":["../../src/services/TradingService.ts"],"names":[],"mappings":"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"}
|
|
@@ -71,6 +71,8 @@ export class TradingService {
|
|
|
71
71
|
const traceId = uuidv4();
|
|
72
72
|
const startTime = __classPrivateFieldGet(this, _TradingService_deps, "f").performance.now();
|
|
73
73
|
let traceData;
|
|
74
|
+
let orderSubmissionThresholdTimeoutId;
|
|
75
|
+
let didExceedOrderSubmissionThreshold = false;
|
|
74
76
|
const paymentToken = params.trackingData?.tradeWithToken === true
|
|
75
77
|
? (params.trackingData.mmPayTokenSelected ?? 'unknown_token')
|
|
76
78
|
: 'perps_balance';
|
|
@@ -119,16 +121,47 @@ export class TradingService {
|
|
|
119
121
|
hasTP: Boolean(params.takeProfitPrice),
|
|
120
122
|
hasSL: Boolean(params.stopLossPrice),
|
|
121
123
|
});
|
|
122
|
-
//
|
|
124
|
+
// Observational threshold: when the provider round-trip exceeds
|
|
125
|
+
// PlaceOrderTimeoutMs we tag the trace and emit a breadcrumb, but we
|
|
126
|
+
// intentionally do NOT cancel the in-flight order. Cancelling client-side
|
|
127
|
+
// (e.g. Promise.race rejection) does not stop the provider request, so a
|
|
128
|
+
// race-based timeout would let the UI mark an order as failed while
|
|
129
|
+
// HyperLiquid could still accept it. Instead, we always await
|
|
130
|
+
// provider.placeOrder(params) to terminal completion and surface
|
|
131
|
+
// late completions via trace `reason: 'late_success' | 'late_error'`.
|
|
132
|
+
orderSubmissionThresholdTimeoutId = setTimeout(() => {
|
|
133
|
+
didExceedOrderSubmissionThreshold = true;
|
|
134
|
+
__classPrivateFieldGet(this, _TradingService_deps, "f").tracer.addBreadcrumb({
|
|
135
|
+
category: 'perps',
|
|
136
|
+
message: 'Order submission exceeded threshold (still pending)',
|
|
137
|
+
level: 'warning',
|
|
138
|
+
data: {
|
|
139
|
+
thresholdMs: PERPS_CONSTANTS.PlaceOrderTimeoutMs,
|
|
140
|
+
payment_token: paymentToken,
|
|
141
|
+
market: params.symbol,
|
|
142
|
+
orderType: params.orderType,
|
|
143
|
+
},
|
|
144
|
+
});
|
|
145
|
+
__classPrivateFieldGet(this, _TradingService_deps, "f").debugLogger.log('TradingService: Order submission exceeded threshold (still pending)', {
|
|
146
|
+
thresholdMs: PERPS_CONSTANTS.PlaceOrderTimeoutMs,
|
|
147
|
+
symbol: params.symbol,
|
|
148
|
+
orderType: params.orderType,
|
|
149
|
+
});
|
|
150
|
+
}, PERPS_CONSTANTS.PlaceOrderTimeoutMs);
|
|
123
151
|
const result = await __classPrivateFieldGet(this, _TradingService_instances, "m", _TradingService_withFeeDiscount).call(this, {
|
|
124
152
|
provider,
|
|
125
153
|
feeDiscountBips,
|
|
126
154
|
operation: () => provider.placeOrder(params),
|
|
127
155
|
});
|
|
156
|
+
if (orderSubmissionThresholdTimeoutId !== undefined) {
|
|
157
|
+
clearTimeout(orderSubmissionThresholdTimeoutId);
|
|
158
|
+
orderSubmissionThresholdTimeoutId = undefined;
|
|
159
|
+
}
|
|
128
160
|
__classPrivateFieldGet(this, _TradingService_deps, "f").debugLogger.log('TradingService: Provider response received', {
|
|
129
161
|
success: result.success,
|
|
130
162
|
orderId: result.orderId,
|
|
131
163
|
error: result.error,
|
|
164
|
+
didExceedOrderSubmissionThreshold,
|
|
132
165
|
});
|
|
133
166
|
// Update state and handle success/failure
|
|
134
167
|
const completionDuration = __classPrivateFieldGet(this, _TradingService_deps, "f").performance.now() - startTime;
|
|
@@ -139,13 +172,23 @@ export class TradingService {
|
|
|
139
172
|
context,
|
|
140
173
|
reportOrderToDataLake,
|
|
141
174
|
});
|
|
142
|
-
traceData = {
|
|
175
|
+
traceData = {
|
|
176
|
+
success: true,
|
|
177
|
+
orderId: result.orderId ?? '',
|
|
178
|
+
...(didExceedOrderSubmissionThreshold
|
|
179
|
+
? { reason: 'late_success' }
|
|
180
|
+
: {}),
|
|
181
|
+
};
|
|
143
182
|
// Invalidate standalone caches so external hooks (e.g., usePerpsPositionForAsset) refresh
|
|
144
183
|
__classPrivateFieldGet(this, _TradingService_deps, "f").cacheInvalidator.invalidate({ cacheType: 'positions' });
|
|
145
184
|
__classPrivateFieldGet(this, _TradingService_deps, "f").cacheInvalidator.invalidate({ cacheType: 'accountState' });
|
|
146
185
|
}
|
|
147
186
|
else {
|
|
148
|
-
traceData = {
|
|
187
|
+
traceData = {
|
|
188
|
+
success: false,
|
|
189
|
+
reason: didExceedOrderSubmissionThreshold ? 'late_error' : 'error',
|
|
190
|
+
error: result.error ?? 'Unknown error',
|
|
191
|
+
};
|
|
149
192
|
}
|
|
150
193
|
// Track analytics (success or failure)
|
|
151
194
|
__classPrivateFieldGet(this, _TradingService_instances, "m", _TradingService_trackOrderResult).call(this, {
|
|
@@ -184,11 +227,15 @@ export class TradingService {
|
|
|
184
227
|
});
|
|
185
228
|
traceData = {
|
|
186
229
|
success: false,
|
|
230
|
+
reason: didExceedOrderSubmissionThreshold ? 'late_error' : 'error',
|
|
187
231
|
error: error instanceof Error ? error.message : 'Unknown error',
|
|
188
232
|
};
|
|
189
233
|
throw error;
|
|
190
234
|
}
|
|
191
235
|
finally {
|
|
236
|
+
if (orderSubmissionThresholdTimeoutId !== undefined) {
|
|
237
|
+
clearTimeout(orderSubmissionThresholdTimeoutId);
|
|
238
|
+
}
|
|
192
239
|
// Always end trace on exit (success or failure)
|
|
193
240
|
__classPrivateFieldGet(this, _TradingService_deps, "f").tracer.endTrace({
|
|
194
241
|
name: PerpsTraceNames.PlaceOrder,
|