@metamask-previews/perps-controller 18.0.1-preview-2848be6 → 19.0.0-preview-3a5622e8c

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
@@ -7,8 +7,11 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0
7
7
 
8
8
  ## [Unreleased]
9
9
 
10
+ ## [19.0.0]
11
+
10
12
  ### Added
11
13
 
14
+ - Add `TWAP_SLICE`, `VAULT_CLOSE` and `SPOT_DUST_CONVERSION` to `DETAILED_ORDER_TYPES` for the HyperLiquid order types added in `@nktkas/hyperliquid` 0.33.3 ([#10591](https://github.com/MetaMask/core/pull/10591))
12
15
  - Add `PerpsController.getMarginModeLock` (and the `PerpsController:getMarginModeLock` messenger action) plus the optional `PerpsProvider.getMarginModeLock`, reporting the margin mode an asset is locked to by an open position or resting order/TWAP so clients can keep their margin-mode picker in sync with what order placement will accept. HyperLiquid implements it; other providers report `not_implemented`. ([#10414](https://github.com/MetaMask/core/pull/10414))
13
16
  - Implement `getMarginModeLock` for Lighter, reporting the mode an open position binds to its market. ([#10414](https://github.com/MetaMask/core/pull/10414))
14
17
  - Add optional `supportedMarginModes` to ready order capabilities; HyperLiquid reports `['isolated', 'cross']` for main-DEX markets and `['isolated']` for HIP-3 or isolated-only assets, so clients stop inferring margin-mode support from the provider. ([#10414](https://github.com/MetaMask/core/pull/10414))
@@ -45,6 +48,7 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0
45
48
  - **BREAKING:** The exported `FrontendOrder.orderType` union adds `Twap Slice`, `Vault Close` and `Spot Dust Conversion`, so exhaustive handling of it must cover these values; historical orders of these types report `orderType: 'market'` ([#10591](https://github.com/MetaMask/core/pull/10591))
46
49
  - Bump `@nktkas/hyperliquid` from `^0.33.1` to `^0.33.3` ([#10591](https://github.com/MetaMask/core/pull/10591))
47
50
  - Drop the yarn patch on the SDK, which `0.33.3` no longer needs
51
+ - Bump `deepmerge` from `^4.2.2` to `^4.3.1` ([#10437](https://github.com/MetaMask/core/pull/10437))
48
52
 
49
53
  ### Removed
50
54
 
@@ -1076,7 +1080,8 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0
1076
1080
 
1077
1081
  - Bump `@metamask/controller-utils` from `^11.18.0` to `^11.19.0` ([#7995](https://github.com/MetaMask/core/pull/7995))
1078
1082
 
1079
- [Unreleased]: https://github.com/MetaMask/core/compare/@metamask/perps-controller@18.0.1...HEAD
1083
+ [Unreleased]: https://github.com/MetaMask/core/compare/@metamask/perps-controller@19.0.0...HEAD
1084
+ [19.0.0]: https://github.com/MetaMask/core/compare/@metamask/perps-controller@18.0.1...@metamask/perps-controller@19.0.0
1080
1085
  [18.0.1]: https://github.com/MetaMask/core/compare/@metamask/perps-controller@18.0.0...@metamask/perps-controller@18.0.1
1081
1086
  [18.0.0]: https://github.com/MetaMask/core/compare/@metamask/perps-controller@17.4.0...@metamask/perps-controller@18.0.0
1082
1087
  [17.4.0]: https://github.com/MetaMask/core/compare/@metamask/perps-controller@17.3.0...@metamask/perps-controller@17.4.0
@@ -8,6 +8,9 @@ export declare const DETAILED_ORDER_TYPES: {
8
8
  readonly STOP_MARKET: 'Stop Market';
9
9
  readonly TAKE_PROFIT_LIMIT: 'Take Profit Limit';
10
10
  readonly TAKE_PROFIT_MARKET: 'Take Profit Market';
11
+ readonly TWAP_SLICE: 'Twap Slice';
12
+ readonly VAULT_CLOSE: 'Vault Close';
13
+ readonly SPOT_DUST_CONVERSION: 'Spot Dust Conversion';
11
14
  };
12
15
  /**
13
16
  * Check if an order type is a TP/SL order
@@ -1 +1 @@
1
- {"version":3,"file":"orderTypes.d.ts","sourceRoot":"","sources":["../../src/constants/orderTypes.ts"],"names":[],"mappings":"AAAA;;GAEG;AACH,eAAO,MAAM,oBAAoB;aAC/B,KAAK,EAAE,OAAO;aACd,MAAM,EAAE,QAAQ;aAChB,UAAU,EAAE,YAAY;aACxB,WAAW,EAAE,aAAa;aAC1B,iBAAiB,EAAE,mBAAmB;aACtC,kBAAkB,EAAE,oBAAoB;CAChC,CAAC;AAEX;;;;;GAKG;AACH,eAAO,MAAM,WAAW,uBAAwB,MAAM,KAAG,OAUxD,CAAC"}
1
+ {"version":3,"file":"orderTypes.d.ts","sourceRoot":"","sources":["../../src/constants/orderTypes.ts"],"names":[],"mappings":"AAAA;;GAEG;AACH,eAAO,MAAM,oBAAoB;aAC/B,KAAK,EAAE,OAAO;aACd,MAAM,EAAE,QAAQ;aAChB,UAAU,EAAE,YAAY;aACxB,WAAW,EAAE,aAAa;aAC1B,iBAAiB,EAAE,mBAAmB;aACtC,kBAAkB,EAAE,oBAAoB;aACxC,UAAU,EAAE,YAAY;aACxB,WAAW,EAAE,aAAa;aAC1B,oBAAoB,EAAE,sBAAsB;CACpC,CAAC;AAEX;;;;;GAKG;AACH,eAAO,MAAM,WAAW,uBAAwB,MAAM,KAAG,OAUxD,CAAC"}
@@ -8,6 +8,9 @@ export const DETAILED_ORDER_TYPES = {
8
8
  STOP_MARKET: 'Stop Market',
9
9
  TAKE_PROFIT_LIMIT: 'Take Profit Limit',
10
10
  TAKE_PROFIT_MARKET: 'Take Profit Market',
11
+ TWAP_SLICE: 'Twap Slice',
12
+ VAULT_CLOSE: 'Vault Close',
13
+ SPOT_DUST_CONVERSION: 'Spot Dust Conversion',
11
14
  };
12
15
  /**
13
16
  * Check if an order type is a TP/SL order
@@ -1 +1 @@
1
- {"version":3,"file":"orderTypes.js","sourceRoot":"","sources":["../../src/constants/orderTypes.ts"],"names":[],"mappings":"AAAA;;GAEG;AACH,MAAM,CAAC,MAAM,oBAAoB,GAAG;IAClC,KAAK,EAAE,OAAO;IACd,MAAM,EAAE,QAAQ;IAChB,UAAU,EAAE,YAAY;IACxB,WAAW,EAAE,aAAa;IAC1B,iBAAiB,EAAE,mBAAmB;IACtC,kBAAkB,EAAE,oBAAoB;CAChC,CAAC;AAEX;;;;;GAKG;AACH,MAAM,CAAC,MAAM,WAAW,GAAG,CAAC,iBAA0B,EAAW,EAAE;IACjE,IAAI,CAAC,iBAAiB,EAAE,CAAC;QACvB,OAAO,KAAK,CAAC;IACf,CAAC;IACD,OAAO,CACL,iBAAiB,KAAK,oBAAoB,CAAC,UAAU;QACrD,iBAAiB,KAAK,oBAAoB,CAAC,WAAW;QACtD,iBAAiB,KAAK,oBAAoB,CAAC,iBAAiB;QAC5D,iBAAiB,KAAK,oBAAoB,CAAC,kBAAkB,CAC9D,CAAC;AACJ,CAAC,CAAC","sourcesContent":["/**\n * Detailed order types from HyperLiquid API\n */\nexport const DETAILED_ORDER_TYPES = {\n LIMIT: 'Limit',\n MARKET: 'Market',\n STOP_LIMIT: 'Stop Limit',\n STOP_MARKET: 'Stop Market',\n TAKE_PROFIT_LIMIT: 'Take Profit Limit',\n TAKE_PROFIT_MARKET: 'Take Profit Market',\n} as const;\n\n/**\n * Check if an order type is a TP/SL order\n *\n * @param detailedOrderType - The detailed order type string to check.\n * @returns True if the order type is a take-profit or stop-loss variant.\n */\nexport const isTPSLOrder = (detailedOrderType?: string): boolean => {\n if (!detailedOrderType) {\n return false;\n }\n return (\n detailedOrderType === DETAILED_ORDER_TYPES.STOP_LIMIT ||\n detailedOrderType === DETAILED_ORDER_TYPES.STOP_MARKET ||\n detailedOrderType === DETAILED_ORDER_TYPES.TAKE_PROFIT_LIMIT ||\n detailedOrderType === DETAILED_ORDER_TYPES.TAKE_PROFIT_MARKET\n );\n};\n"]}
1
+ {"version":3,"file":"orderTypes.js","sourceRoot":"","sources":["../../src/constants/orderTypes.ts"],"names":[],"mappings":"AAAA;;GAEG;AACH,MAAM,CAAC,MAAM,oBAAoB,GAAG;IAClC,KAAK,EAAE,OAAO;IACd,MAAM,EAAE,QAAQ;IAChB,UAAU,EAAE,YAAY;IACxB,WAAW,EAAE,aAAa;IAC1B,iBAAiB,EAAE,mBAAmB;IACtC,kBAAkB,EAAE,oBAAoB;IACxC,UAAU,EAAE,YAAY;IACxB,WAAW,EAAE,aAAa;IAC1B,oBAAoB,EAAE,sBAAsB;CACpC,CAAC;AAEX;;;;;GAKG;AACH,MAAM,CAAC,MAAM,WAAW,GAAG,CAAC,iBAA0B,EAAW,EAAE;IACjE,IAAI,CAAC,iBAAiB,EAAE,CAAC;QACvB,OAAO,KAAK,CAAC;IACf,CAAC;IACD,OAAO,CACL,iBAAiB,KAAK,oBAAoB,CAAC,UAAU;QACrD,iBAAiB,KAAK,oBAAoB,CAAC,WAAW;QACtD,iBAAiB,KAAK,oBAAoB,CAAC,iBAAiB;QAC5D,iBAAiB,KAAK,oBAAoB,CAAC,kBAAkB,CAC9D,CAAC;AACJ,CAAC,CAAC","sourcesContent":["/**\n * Detailed order types from HyperLiquid API\n */\nexport const DETAILED_ORDER_TYPES = {\n LIMIT: 'Limit',\n MARKET: 'Market',\n STOP_LIMIT: 'Stop Limit',\n STOP_MARKET: 'Stop Market',\n TAKE_PROFIT_LIMIT: 'Take Profit Limit',\n TAKE_PROFIT_MARKET: 'Take Profit Market',\n TWAP_SLICE: 'Twap Slice',\n VAULT_CLOSE: 'Vault Close',\n SPOT_DUST_CONVERSION: 'Spot Dust Conversion',\n} as const;\n\n/**\n * Check if an order type is a TP/SL order\n *\n * @param detailedOrderType - The detailed order type string to check.\n * @returns True if the order type is a take-profit or stop-loss variant.\n */\nexport const isTPSLOrder = (detailedOrderType?: string): boolean => {\n if (!detailedOrderType) {\n return false;\n }\n return (\n detailedOrderType === DETAILED_ORDER_TYPES.STOP_LIMIT ||\n detailedOrderType === DETAILED_ORDER_TYPES.STOP_MARKET ||\n detailedOrderType === DETAILED_ORDER_TYPES.TAKE_PROFIT_LIMIT ||\n detailedOrderType === DETAILED_ORDER_TYPES.TAKE_PROFIT_MARKET\n );\n};\n"]}
@@ -39,9 +39,9 @@ const HISTORICAL_ORDER_TYPE_BY_DETAILED_TYPE = {
39
39
  [DETAILED_ORDER_TYPES.STOP_MARKET]: 'market',
40
40
  [DETAILED_ORDER_TYPES.TAKE_PROFIT_LIMIT]: 'limit',
41
41
  [DETAILED_ORDER_TYPES.TAKE_PROFIT_MARKET]: 'market',
42
- 'Twap Slice': 'market',
43
- 'Vault Close': 'market',
44
- 'Spot Dust Conversion': 'market',
42
+ [DETAILED_ORDER_TYPES.TWAP_SLICE]: 'market',
43
+ [DETAILED_ORDER_TYPES.VAULT_CLOSE]: 'market',
44
+ [DETAILED_ORDER_TYPES.SPOT_DUST_CONVERSION]: 'market',
45
45
  };
46
46
  const HISTORICAL_ORDER_STATUS_BY_SDK_STATUS = {
47
47
  open: 'open',
@@ -1408,7 +1408,7 @@ export class HyperLiquidProvider {
1408
1408
  * re-probe. The probe is cheap (~100ms), non-throwing, and returns the
1409
1409
  * full deposit/withdraw history. A non-empty array means the wallet has
1410
1410
  * interacted with Hyperliquid at least once — necessary and sufficient
1411
- * for `agentSetAbstraction` / `userSetAbstraction` / `setReferrer` to
1411
+ * for `agentSetAbstraction` / `setReferrer` to
1412
1412
  * succeed.
1413
1413
  *
1414
1414
  * If the probe itself throws (transient network), returns `true` and does