Skip to content

Release 934.0.0#8564

Merged
aganglada merged 1 commit intomainfrom
release/934.0.0
Apr 23, 2026
Merged

Release 934.0.0#8564
aganglada merged 1 commit intomainfrom
release/934.0.0

Conversation

@aganglada
Copy link
Copy Markdown
Contributor

@aganglada aganglada commented Apr 23, 2026

Explanation

This release bumps `@metamask/perps-controller` from `3.2.0` to `3.3.0`.

Changes included

`@metamask/perps-controller` v3.3.0 (#8560)

Added

  • Add `coalescePerpsRestRequest` utility for deduplicating concurrent REST requests with account-scoped cache keys
  • Add `accountUtils` helpers for resolving the active perps account id and pinning it to forwarded provider params

Changed

  • Account-scope the REST cache and guard cache writes so mount load stays cacheable without cross-account bleed
  • Make `forceRefresh` provider-agnostic and align rate-limit handling with the extension
  • Regenerate `PerpsController` method action types; shrink rate-limit diff and drop verbose history logs

Removed

  • Drop the dead `spotState` parameter from `adaptAccountStateFromSDK` — spot balances are layered on by `addSpotBalanceToAccountState`, which enforces the USDC-only policy via `SPOT_COLLATERAL_COINS`, removing the dormant branch keeps one source of truth and prevents a future caller from silently getting ALL-coins behavior

Fixed

  • HyperLiquid Unified-mode live balance: subscribe to `spotState` WS and compute tradeable/total balance from on-chain math
  • Complete spot-balance parity with the extension consumer
  • Preserve integer trailing zeros when `szDecimals=0` in `perpsFormatters`
  • Preserve candle pagination cancellation and skip coalesce for explicit-`endTime` candle paging to avoid stale pages
  • Defer account resolution on the non-paginated cache path to prevent race conditions
  • Force-refresh on activity mount and evict expired coalesce entries so stale promises cannot resolve to cache
  • Normalize `event.user` to lowercase when caching the spot-state WS address so `#ensureSpotState` hits the cache instead of triggering a redundant REST `spotClearinghouseState` refetch when HyperLiquid returns a checksummed address

References

Checklist

  • I've updated the test suite for new or updated code as appropriate
  • I've updated documentation (JSDoc, Markdown, etc.) for new or updated code as appropriate
  • I've communicated my changes to consumers by updating changelogs for packages I've changed
  • I've introduced breaking changes in this PR and have prepared draft pull requests for clients and consumer packages to resolve them

@aganglada aganglada marked this pull request as ready for review April 23, 2026 11:41
@aganglada aganglada requested review from a team as code owners April 23, 2026 11:41
@aganglada aganglada added this pull request to the merge queue Apr 23, 2026
Merged via the queue into main with commit 56615a3 Apr 23, 2026
358 checks passed
@aganglada aganglada deleted the release/934.0.0 branch April 23, 2026 11:47
pull Bot pushed a commit to Reality2byte/core that referenced this pull request Apr 23, 2026
Reverts MetaMask#8564

<!-- CURSOR_SUMMARY -->
---

> [!NOTE]
> **Low Risk**
> Low risk because it only reverts package/changelog version metadata
and comparison links, with no runtime code changes.
> 
> **Overview**
> Reverts the `934.0.0` release metadata by downgrading the root
monorepo version to `933.0.0` and `@metamask/perps-controller` back to
`3.2.0`.
> 
> Updates `packages/perps-controller/CHANGELOG.md` to undo the `3.3.0`
release section/linkage, keeping the same entries under `Unreleased` and
resetting the `[Unreleased]` compare link to start from `3.2.0`.
> 
> <sup>Reviewed by [Cursor Bugbot](https://cursor.com/bugbot) for commit
1c45d66. Bugbot is set up for automated
code reviews on this repo. Configure
[here](https://www.cursor.com/dashboard/bugbot).</sup>
<!-- /CURSOR_SUMMARY -->
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants