Skip to content

Releases: MetaMask/core

1048.0.0

17 Jun 15:25
b0c7eca

Choose a tag to compare

@metamask/money-account-balance-service 2.1.0

Changed

  • Fetch on-chain Money account balances at the pending block tag instead of latest, so a balance refetch triggered by TransactionController:transactionConfirmed returns the post-transaction balance immediately rather than stale data for up to ~20 seconds. (#9163)
    • Applies to getMoneyAccountBalance, getMusdBalance, getVmusdBalance, and getMusdEquivalentValue. As a result these reads now reflect pending (mempool-inclusive) state. getExchangeRate and the on-chain Accountant.base() token-address lookup intentionally remain on latest.

1047.0.0

17 Jun 10:01
6ba77fa

Choose a tag to compare

@metamask/social-controllers 2.3.1

Added

  • Add optional 7-day per-chain fields to the PerChainBreakdown type (and PerChainBreakdownStruct): perChainPnl7d (Record<string, number>), perChainRoi7d (Record<string, number | null>), and perChainVolume7d (Record<string, number>) — exposing the 7-day Hyperliquid/per-chain breakdown alongside the existing 30-day fields. The unsuffixed fields (perChainPnl, perChainRoi, perChainVolume) remain the 30-day window; the new fields are optional for backward compatibility with social-api versions that only return the 30-day breakdown (#9165)

1046.0.0

17 Jun 09:23
8b8969c

Choose a tag to compare

@metamask/transaction-pay-controller 23.8.0

Changed

  • Bump @metamask/keyring-controller from ^27.0.0 to ^27.1.0 (#9129)

Fixed

  • Mark MM Pay transactions as externally signed when quotes are available (#9145)

1045.0.0

16 Jun 10:30
94f8ee1

Choose a tag to compare

@metamask/social-controllers 2.3.0

Added

  • Add optional perp fields to the Trade type (and TradeStruct): classification ('spot' | 'perp' | 'send' | 'receive' | null), perpPositionType ('long' | 'short' | null), and perpLeverage (number | null) — exposing Hyperliquid/perp trade metadata to consumers (#9094)
  • Add optional perp fields to the Position type (and PositionStruct): perpPositionType ('long' | 'short' | null), perpLeverage (number | null), and positionAmountWithLeverage (number | null) — exposing Hyperliquid/perp position metadata to consumers (#9094)

Changed

  • Bump @metamask/controller-utils from ^12.0.0 to ^12.2.0 (#8774, #9058, #9083)
  • Bump @metamask/profile-sync-controller from ^28.0.2 to ^28.2.0 (#8783, #8912, #9119)
  • Bump @metamask/base-data-service from ^0.1.2 to ^0.1.3 (#8799)

1044.0.0

15 Jun 16:11
bc1c76a

Choose a tag to compare

@metamask/keyring-controller 27.1.0

Added

  • Add isKeyringControllerError predicate (#9095)

Changed

  • Bump @metamask/utils from ^11.9.0 to ^11.11.0 (#9074)

Fixed

  • Remove use of instanceof for isKeyringNotFoundError (#9095)
    • Using instanceof causes a lot of issue if we have 2 major @metamask/keyring-controller major versions in the dependency tree, class KeyringControllerError could be different classes and this, making the check to fail.

1043.0.0

15 Jun 14:50
be0c466

Choose a tag to compare

@metamask/transaction-pay-controller 23.7.0

Added

  • Add isQuoteRequired transaction config parameter to enforce fetching relay quotes even when source and target tokens are identical (#9117)

Changed

  • Bump @metamask/assets-controllers from ^109.0.0 to ^109.1.0 (#9110)

Fixed

  • Fix token amount in buildTokenTransferData for MM Pay post-quote Money Account transactions when source and target tokens have different decimal places (#9116)

1042.0.0

15 Jun 10:06
f7bc64e

Choose a tag to compare

@metamask/profile-sync-controller 28.2.0

Changed

  • Bump @metamask/utils from ^11.9.0 to ^11.11.0 (#9074)
  • Bump @metamask/keyring-controller from ^26.0.0 to ^27.0.0 (#9058)

Fixed

  • Deduplicate SRP profile pairing calls by payload in SRPJwtBearerAuth.pairSrpProfiles (#8984)
    • Concurrent and short-interval sequential performSignIn triggers (multiple UI surfaces, unlock-time effects, pairing retries) previously each issued their own POST /api/v2/profile/pair. A promise cache keyed by the token set now coalesces in-flight calls and reuses a successful result for a short TTL, collapsing the redundant calls into one. The key is order-insensitive (the same token set in any order dedupes), and failures are never cached so the existing needsProfilePairing retry loop still re-hits the endpoint.
  • Scope the storage-key and snap-signature caches in UserStorageController per entropySourceId (#8948)
    • In the edge case where two SRPs resolve to the same profileId (e.g. a shared canonical profile after pairing), the previously message-keyed caches could hand one SRP the other's cached key — letting it read/decrypt the other SRP's user storage (which surfaced as a second SRP inheriting the first SRP's account names) or write under its key. Scoping by entropySourceId keeps each SRP's key isolated even then; the signed metamask:${profileId} message is unchanged, so existing storage keys are preserved.

1041.0.0

12 Jun 21:35
be8dad6

Choose a tag to compare

@metamask/money-account-balance-service 2.0.0

Added

  • Add getMoneyAccountBalance method that fetches the account's mUSD wallet balance and vault shares valued in mUSD in a single Multicall3 aggregate3 request. (#9100)
  • Add optional underlyingToken field to VaultConfig (validated by VaultConfigStruct). When present, getMusdBalance reads the underlying mUSD token address from config and skips the on-chain Accountant.base() call; when absent it falls back to reading base() on-chain. (#9100)
  • Add support for configuring the balance staleTime at runtime via the moneyAccountBalanceStaletime remote feature flag. The flag is read during init() and updated on RemoteFeatureFlagController:stateChange; absent or malformed values fall back to the default of 60 seconds. (#9100)

Changed

  • BREAKING: Rename musdSHFvd to vmusd across the public API to align with the vmUSD token name: (#9100)
    • getMusdSHFvdBalance method → getVmusdBalance
    • MoneyAccountBalanceServiceGetMusdSHFvdBalanceAction type → MoneyAccountBalanceServiceGetVmusdBalanceAction
    • MoneyAccountBalanceService:getMusdSHFvdBalance messenger action string → MoneyAccountBalanceService:getVmusdBalance
    • MoneyAccountBalanceResponse.musdSHFvdValueInMusd property → vmusdValueInMusd
  • Increase the default staleTime for on-chain balance reads (getMusdBalance, getVmusdBalance, getMusdEquivalentValue, and the default for getExchangeRate) from 30 seconds to 60 seconds. This default is now overridable via the moneyAccountBalanceStaletime remote feature flag. (#9100)
  • Bump @metamask/utils from ^11.9.0 to ^11.11.0 (#9074)
  • Bump @metamask/controller-utils from ^12.1.0 to ^12.2.0 (#9058, #9083)
  • Bump @metamask/base-data-service from ^0.1.2 to ^0.1.3 (#8799)
  • Bump @metamask/remote-feature-flag-controller from ^4.2.1 to ^4.2.2 (#8986)

1040.0.0

12 Jun 13:41
0bc10b9

Choose a tag to compare

@metamask/assets-controllers 109.1.0

Added

  • Add optional includeMarketData parameter to fetchTokenContractExchangeRates (#9042)
    • When includeMarketData is true, the function returns ContractMarketData (full MarketDataDetails per token, including percentage changes, market cap, volume, etc.) instead of ContractExchangeRates (price-only). Defaults to false for backward compatibility.

Changed

  • Bump @metamask/utils from ^11.9.0 to ^11.11.0 (#9074)
  • Bump @metamask/controller-utils from ^12.1.1 to ^12.2.0 (#9083)
  • Bump @metamask/transaction-controller from ^67.1.0 to ^68.0.0 (#9089)

1039.0.0

12 Jun 10:39
40e5332

Choose a tag to compare

@metamask/transaction-pay-controller 23.6.0

Added

  • Add direct mUSD fiat injection flow for Money Account deposits behind useFiatMUSDQuoteToInjectForMoneyAccount feature flag. When enabled, probes fiat providers for mUSD on Monad availability and, if viable, purchases mUSD directly to the Money Account, skipping the ETH-to-mUSD bridge. Falls back to the existing flow when no provider supports the direct route. Also moves fiatPayment.caipAssetId assignment into fiat quote functions so the asset ID always matches the quote that succeeded. (#9080)
  • Make fiat order polling interval and timeout remotely configurable via confirmations_pay_fiat.orderPollIntervalMs and confirmations_pay_fiat.orderPollTimeoutMs feature flags (#9090)

Changed

  • Bump @metamask/utils from ^11.9.0 to ^11.11.0 (#9074)
  • Bump @metamask/assets-controller from ^9.0.0 to ^9.0.1 (#9083)
  • Bump @metamask/controller-utils from ^12.1.1 to ^12.2.0 (#9083)
  • Bump @metamask/transaction-controller from ^67.1.0 to ^68.0.0 (#9089)
  • Bump @metamask/ramps-controller from ^14.1.1 to ^14.2.0 (#9105)

Fixed

  • Clear stale fiatPayment.rampsQuote when a fiat quote fetch fails, preventing the "No quotes" alert from being silently suppressed after a prior successful fetch (#9073)