@metamask-previews/perps-controller 22.0.0-preview-4a8d4a2 → 22.0.0-preview-0f1d8eed9
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
CHANGED
|
@@ -16,6 +16,9 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0
|
|
|
16
16
|
|
|
17
17
|
- Bump `@metamask/subscription-controller` from `^15.1.0` to `^15.1.1` ([#11120](https://github.com/MetaMask/core/pull/11120))
|
|
18
18
|
- Bump `@metamask/utils` from `^12.0.0` to `^12.0.1` ([#11107](https://github.com/MetaMask/core/pull/11107))
|
|
19
|
+
- `HyperLiquidProvider.placeOrder` no longer resubmits an opening order 1.5% larger when Hyperliquid rejects it for the minimum order value; it returns a failed result with `errorCode: 'ORDER_SIZE_MIN'` instead ([#11122](https://github.com/MetaMask/core/pull/11122))
|
|
20
|
+
- The client should re-quote and ask the user to confirm a new size. No order larger than the one the user approved is submitted.
|
|
21
|
+
- Reduce-only and strategy (TWAP, scale, chase) orders are unchanged: they are submitted once and keep Hyperliquid's error message.
|
|
19
22
|
|
|
20
23
|
### Fixed
|
|
21
24
|
|
|
@@ -124,11 +124,11 @@ export declare class HyperLiquidProvider implements PerpsProvider {
|
|
|
124
124
|
* Each helper method is focused on a single responsibility.
|
|
125
125
|
*
|
|
126
126
|
* @param input - Order parameters
|
|
127
|
-
* @param
|
|
127
|
+
* @param _retryCount - Unused. Kept so `reportFailure` stays the third argument.
|
|
128
128
|
* @param reportFailure - Whether this call owns provider-level error reporting.
|
|
129
129
|
* @returns A promise that resolves to the result.
|
|
130
130
|
*/
|
|
131
|
-
placeOrder(input: OrderParams,
|
|
131
|
+
placeOrder(input: OrderParams, _retryCount?: number, reportFailure?: boolean): Promise<OrderResult>;
|
|
132
132
|
/**
|
|
133
133
|
* Read native TWAP schedules and their slice fills from the venue.
|
|
134
134
|
*
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"HyperLiquidProvider.d.ts","sourceRoot":"","sources":["../../src/providers/HyperLiquidProvider.ts"],"names":[],"mappings":"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
|
|
1
|
+
{"version":3,"file":"HyperLiquidProvider.d.ts","sourceRoot":"","sources":["../../src/providers/HyperLiquidProvider.ts"],"names":[],"mappings":"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"}
|
|
@@ -4314,11 +4314,10 @@ export class HyperLiquidProvider {
|
|
|
4314
4314
|
orderId: restingOrder?.oid?.toString() ?? filledOrder?.oid?.toString(),
|
|
4315
4315
|
filledSize: filledOrder?.totalSz,
|
|
4316
4316
|
// The main order's `s` is the final normalized size sent to the exchange
|
|
4317
|
-
// (post precision rounding
|
|
4318
|
-
//
|
|
4319
|
-
//
|
|
4320
|
-
//
|
|
4321
|
-
// shape while preserving `undefined` when no order was built.
|
|
4317
|
+
// (post precision rounding and USD recalculation). TradingService uses
|
|
4318
|
+
// it to classify partial fills. The SDK types `s` as `string | number`,
|
|
4319
|
+
// so normalize to the string OrderResult shape while preserving
|
|
4320
|
+
// `undefined` when no order was built.
|
|
4322
4321
|
submittedSize: orders[0]?.s === undefined ? undefined : String(orders[0].s),
|
|
4323
4322
|
averagePrice: filledOrder?.avgPx,
|
|
4324
4323
|
};
|
|
@@ -4376,11 +4375,11 @@ export class HyperLiquidProvider {
|
|
|
4376
4375
|
* Each helper method is focused on a single responsibility.
|
|
4377
4376
|
*
|
|
4378
4377
|
* @param input - Order parameters
|
|
4379
|
-
* @param
|
|
4378
|
+
* @param _retryCount - Unused. Kept so `reportFailure` stays the third argument.
|
|
4380
4379
|
* @param reportFailure - Whether this call owns provider-level error reporting.
|
|
4381
4380
|
* @returns A promise that resolves to the result.
|
|
4382
4381
|
*/
|
|
4383
|
-
async placeOrder(input,
|
|
4382
|
+
async placeOrder(input, _retryCount = 0, reportFailure = true) {
|
|
4384
4383
|
const deferProviderErrorReport = input.deferProviderErrorReport === true;
|
|
4385
4384
|
const params = { ...input };
|
|
4386
4385
|
delete params.deferProviderErrorReport;
|
|
@@ -4391,9 +4390,6 @@ export class HyperLiquidProvider {
|
|
|
4391
4390
|
error: PERPS_ERROR_CODES.ORDER_SCALE_PREVIEW_STALE,
|
|
4392
4391
|
};
|
|
4393
4392
|
}
|
|
4394
|
-
// Hoisted so the retry path in the catch block can use the fetched price
|
|
4395
|
-
// even when the caller (e.g. flipPosition) omits currentPrice from params.
|
|
4396
|
-
let effectivePrice;
|
|
4397
4393
|
try {
|
|
4398
4394
|
this.#deps.debugLogger.log('Placing order via HyperLiquid SDK:', params);
|
|
4399
4395
|
// Basic sync validation (backward compatibility)
|
|
@@ -4448,10 +4444,9 @@ export class HyperLiquidProvider {
|
|
|
4448
4444
|
throw new Error(precision.error);
|
|
4449
4445
|
}
|
|
4450
4446
|
// Allow override with UI-provided price (optimization to avoid API call).
|
|
4451
|
-
effectivePrice =
|
|
4452
|
-
|
|
4453
|
-
|
|
4454
|
-
: currentPrice;
|
|
4447
|
+
const effectivePrice = params.currentPrice && params.currentPrice > 0
|
|
4448
|
+
? params.currentPrice
|
|
4449
|
+
: currentPrice;
|
|
4455
4450
|
if (params.currentPrice && params.currentPrice > 0) {
|
|
4456
4451
|
this.#deps.debugLogger.log('Using provided current price:', {
|
|
4457
4452
|
coin: params.symbol,
|
|
@@ -4584,73 +4579,22 @@ export class HyperLiquidProvider {
|
|
|
4584
4579
|
});
|
|
4585
4580
|
}
|
|
4586
4581
|
catch (error) {
|
|
4587
|
-
//
|
|
4588
|
-
//
|
|
4582
|
+
// The venue can reject an order the minimum check above accepted, when
|
|
4583
|
+
// its price differs from the one the order was sized at. Growing the
|
|
4584
|
+
// order to clear the minimum would submit more than the user approved,
|
|
4585
|
+
// so an opening order fails with the typed code instead and the client
|
|
4586
|
+
// re-quotes. Reduce-only and strategy orders keep the venue's error: a
|
|
4587
|
+
// close is capped at the position, and the minimum applies to each TWAP
|
|
4588
|
+
// slice or ladder rung rather than the total.
|
|
4589
4589
|
const errorMessage = ensureError(error, 'HyperLiquidProvider.placeOrder').message;
|
|
4590
4590
|
const isMinimumOrderError = errorMessage.includes('Order must have minimum value of $10') ||
|
|
4591
4591
|
errorMessage.includes('Order 0: Order must have minimum value');
|
|
4592
|
-
// Reduce-only orders are excluded. The retry works by growing the order
|
|
4593
|
-
// 1.5%, which a close cannot do: a full close already submits the whole
|
|
4594
|
-
// position, and a partial close is capped at the size the caller asked to
|
|
4595
|
-
// close, so the retry would either be rejected as "Reduce only order would
|
|
4596
|
-
// increase position" or resubmit an identical order. Surfacing the
|
|
4597
|
-
// minimum-value error names the real problem instead.
|
|
4598
|
-
//
|
|
4599
|
-
// Strategy placements are excluded for the same reason in a different
|
|
4600
|
-
// shape: the minimum applies to each TWAP slice and each ladder rung, not
|
|
4601
|
-
// to the total, so growing the total by 1.5% does not clear it.
|
|
4602
|
-
if (isMinimumOrderError &&
|
|
4603
|
-
retryCount === 0 &&
|
|
4604
|
-
!params.reduceOnly &&
|
|
4605
|
-
!isStrategyOrderType(params.orderType)) {
|
|
4606
|
-
let adjustedUsdAmount;
|
|
4607
|
-
let originalValue;
|
|
4608
|
-
if (params.usdAmount) {
|
|
4609
|
-
// USD-based order: adjust the USD amount directly
|
|
4610
|
-
originalValue = params.usdAmount;
|
|
4611
|
-
adjustedUsdAmount = (parseFloat(params.usdAmount) * 1.015).toFixed(2);
|
|
4612
|
-
}
|
|
4613
|
-
else if (effectivePrice) {
|
|
4614
|
-
// Size-based order: calculate USD from size and adjust.
|
|
4615
|
-
// Use the hoisted effectivePrice (fetched live price) so callers that
|
|
4616
|
-
// omit currentPrice (e.g. flipPosition) can still recover from the
|
|
4617
|
-
// $10-minimum edge case.
|
|
4618
|
-
const sizeValue = parseFloat(params.size);
|
|
4619
|
-
const estimatedUsd = sizeValue * effectivePrice;
|
|
4620
|
-
originalValue = `${estimatedUsd.toFixed(2)} (calculated from size ${params.size})`;
|
|
4621
|
-
adjustedUsdAmount = (estimatedUsd * 1.015).toFixed(2);
|
|
4622
|
-
}
|
|
4623
|
-
else {
|
|
4624
|
-
// No price information available - cannot retry
|
|
4625
|
-
return await this.#handleOrderError({
|
|
4626
|
-
error,
|
|
4627
|
-
symbol: params.symbol,
|
|
4628
|
-
orderType: params.orderType,
|
|
4629
|
-
isBuy: params.isBuy,
|
|
4630
|
-
reportFailure: shouldReportFailure,
|
|
4631
|
-
});
|
|
4632
|
-
}
|
|
4633
|
-
this.#deps.debugLogger.log('Retrying order with adjusted size due to minimum value error', {
|
|
4634
|
-
originalValue,
|
|
4635
|
-
adjustedUsdAmount,
|
|
4636
|
-
retryCount,
|
|
4637
|
-
});
|
|
4638
|
-
return this.placeOrder({
|
|
4639
|
-
...params,
|
|
4640
|
-
usdAmount: adjustedUsdAmount,
|
|
4641
|
-
// This USD amount was derived from the effective price solely to
|
|
4642
|
-
// grow an exact-size order past the venue minimum. Preserve the
|
|
4643
|
-
// original exact-size semantics instead of applying its unrelated
|
|
4644
|
-
// calculation snapshot to the retry. Genuine USD-sized orders keep
|
|
4645
|
-
// their snapshot guard.
|
|
4646
|
-
priceAtCalculation: params.usdAmount
|
|
4647
|
-
? params.priceAtCalculation
|
|
4648
|
-
: undefined,
|
|
4649
|
-
}, 1, // Retry count = 1, prevents further retries
|
|
4650
|
-
shouldReportFailure);
|
|
4651
|
-
}
|
|
4652
4592
|
return await this.#handleOrderError({
|
|
4653
|
-
error
|
|
4593
|
+
error: isMinimumOrderError &&
|
|
4594
|
+
!params.reduceOnly &&
|
|
4595
|
+
!isStrategyOrderType(params.orderType)
|
|
4596
|
+
? new PerpsControllerError(PERPS_ERROR_CODES.ORDER_SIZE_MIN, PERPS_ERROR_CODES.ORDER_SIZE_MIN)
|
|
4597
|
+
: error,
|
|
4654
4598
|
symbol: params.symbol,
|
|
4655
4599
|
orderType: params.orderType,
|
|
4656
4600
|
isBuy: params.isBuy,
|