Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
12 changes: 6 additions & 6 deletions packages/perps-controller/.sync-state.json
Original file line number Diff line number Diff line change
@@ -1,8 +1,8 @@
{
"lastSyncedMobileCommit": "d4c68052ccec878922a9909ee95306252a959ff8",
"lastSyncedMobileBranch": "fix/core-sync-bugbot",
"lastSyncedCoreCommit": "5ea3b550b9e52744443da89da4a929ba2a7b0df7",
"lastSyncedCoreBranch": "feat/perps/controller-apr-23rd",
"lastSyncedDate": "2026-04-23T10:22:26Z",
"sourceChecksum": "9afe08e6639a1705e1ac7b51f47d7617e1195504ec05928783e8bf0fcda44f9d"
"lastSyncedMobileCommit": "cf20fa64fa5d919c87005f35578498b37f522e2a",
"lastSyncedMobileBranch": "feat/unified-account",
"lastSyncedCoreCommit": "6f8329297fd1d61ff72d8359d32856d1bda7559f",
"lastSyncedCoreBranch": "feat/perps/controller-apr-30",
"lastSyncedDate": "2026-04-30T15:10:24Z",
"sourceChecksum": "a1ead6bd8f4bf1aae32c95aa27a3b6cddf1c4e4b74ea4761952ea313cb109c80"
}
16 changes: 16 additions & 0 deletions packages/perps-controller/CHANGELOG.md
Original file line number Diff line number Diff line change
Expand Up @@ -7,13 +7,29 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0

## [Unreleased]

### Added

- Force unified-account abstraction mode for HyperLiquid users: deferred `dexAbstraction → unifiedAccount` migration triggered from withdraw, trade, and other action entry points so first trades and withdrawals see unified collateral ([#8658](https://github.com/MetaMask/core/pull/8658))
- Mode-aware spot folding and tradeable-balance support across unified-mode flows ([#8658](https://github.com/MetaMask/core/pull/8658))

### Changed

- Bump `@nktkas/hyperliquid` from `^0.30.2` to `^0.32.2` for `userAbstraction` / `userSetAbstraction` / `agentSetAbstraction` API surface ([#8658](https://github.com/MetaMask/core/pull/8658))
- Replace `agentSetAbstraction` wire-code magic string with a typed constant ([#8658](https://github.com/MetaMask/core/pull/8658))
- Bump `@metamask/keyring-controller` from `^25.3.0` to `^25.4.0` ([#8665](https://github.com/MetaMask/core/pull/8665))
- Bump `@metamask/account-tree-controller` from `^7.1.0` to `^7.2.0` ([#8665](https://github.com/MetaMask/core/pull/8665))
- Bump `@metamask/transaction-controller` from `^64.4.0` to `^65.0.0` ([#8613](https://github.com/MetaMask/core/pull/8613))
- Bump `@metamask/messenger` from `^1.1.1` to `^1.2.0` ([#8632](https://github.com/MetaMask/core/pull/8632))

### Fixed

- Keep users on `portfolioMargin` mode and recover the resolved abstraction mode after migration instead of evicting it ([#8658](https://github.com/MetaMask/core/pull/8658))
- Retry abstraction mode after transient `userAbstraction` failures and reset the memoized readiness promise after silent migration failures ([#8658](https://github.com/MetaMask/core/pull/8658))
- Close WebSocket-vs-REST race that could fold spot for Standard users and preserve abstraction REST results across active subscribers ([#8658](https://github.com/MetaMask/core/pull/8658))
- Drop the pre-fetch generation guard so `userAbstraction` always resolves; treat `#cachedSpotStateUserAddress` as an unambiguous spot owner ([#8658](https://github.com/MetaMask/core/pull/8658))
- Restore HyperLiquid withdrawal for Unified Account Mode users and support arb USDC withdraw balance in unified mode ([#8658](https://github.com/MetaMask/core/pull/8658))
- Harden unified-account migration handling and close MM Pay `$0` + analytics gaps ([#8658](https://github.com/MetaMask/core/pull/8658))

## [4.0.0]

### Added
Expand Down
2 changes: 1 addition & 1 deletion packages/perps-controller/package.json
Original file line number Diff line number Diff line change
Expand Up @@ -61,7 +61,7 @@
"@metamask/controller-utils": "^11.20.0",
"@metamask/messenger": "^1.2.0",
"@metamask/utils": "^11.9.0",
"@nktkas/hyperliquid": "^0.30.2",
"@nktkas/hyperliquid": "^0.32.2",
"bignumber.js": "^9.1.2",
"reselect": "^5.1.1",
"uuid": "^8.3.2"
Expand Down
6 changes: 6 additions & 0 deletions packages/perps-controller/src/constants/eventNames.ts
Original file line number Diff line number Diff line change
Expand Up @@ -151,6 +151,10 @@ export const PERPS_EVENT_PROPERTY = {
// Pay-with UI (PERPS_UI_INTERACTION)
INITIAL_PAYMENT_METHOD: 'initial_payment_method',
NEW_PAYMENT_METHOD: 'new_payment_method',

// Account setup / abstraction mode (PERPS_ACCOUNT_SETUP)
ABSTRACTION_MODE: 'abstraction_mode',
PREVIOUS_ABSTRACTION_MODE: 'previous_abstraction_mode',
} as const;

/**
Expand Down Expand Up @@ -354,6 +358,8 @@ export const PERPS_EVENT_VALUE = {
PARTIALLY_FILLED: 'partially_filled',
FAILED: 'failed',
SUCCESS: 'success',
ALREADY_ENABLED: 'already_enabled',
MIGRATION_REQUIRED: 'migration_required',
},
SCREEN_TYPE: {
MARKETS: 'markets',
Expand Down
Loading
Loading