Releases: MetaMask/core
Releases · MetaMask/core
934.0.0
@metamask/bridge-controller 70.2.0
Added
- Add
AccountHardwareTypetype andgetAccountHardwareTypefunction to the package exports (#8503)AccountHardwareTypeis a union of'Ledger' | 'Trezor' | 'QR Hardware' | 'Lattice' | nullgetAccountHardwareTypemaps a keyring type string to the correspondingAccountHardwareTypevalue
- Read 'maxPendingHistoryItemAgeMs' feature flag from LaunchDarkly, which indicates when a history item can be treated as a failure (#8479)
- Add the
invalid_transaction_hashpolling reason to indicate that a history item was removed from state do to having an invalid hash (#8479)
Changed
- Add
account_hardware_typefield toRequestMetadataand all cross-chain swap analytics events (#8503)account_hardware_typecarries the specific hardware wallet brand (e.g.'Ledger') ornullfor software walletsis_hardware_walletis now derived fromaccount_hardware_type !== null, keeping both fields in syncEventPropertiesFromControllerState[PageViewed]now includesaccount_hardware_type,is_hardware_wallet,custom_slippage,slippage_limit, andswap_type(previously onlyRequestParamsfields were included)
- Bump
@metamask/assets-controllerfrom^6.0.0to^6.1.0(#8559) - Bump
@metamask/assets-controllersfrom^104.0.0to^104.3.0(#8509, #8544, #8559) - Bump
@metamask/transaction-controllerfrom^64.2.0to^64.3.0(#8482) - Bump
@metamask/keyring-apifrom^21.6.0to^23.0.1(#8464)
@metamask/bridge-status-controller 71.0.0
Added
- Remove stale bridge transactions from
txHistoryto prevent excessive polling. Once a history item exceeds the configured maximum age, the status is fetched once, then the src tx hash's receipt is retrieved. If there is no receipt, the history item's hash is presumed to be invalid and the entry is deleted from state. (#8479) - Add missing action types for public
BridgeStatusControllermethods (#8367)- The following types are now available:
BridgeStatusControllerSubmitTxActionBridgeStatusControllerSubmitIntentActionBridgeStatusControllerGetBridgeHistoryItemByTxMetaIdAction
- The following types are now available:
Changed
- BREAKING: Replace
transactionFailedandtransactionConfirmedevent subscriptions withTransactionController:transactionStatusUpdated(#8479) - BREAKING: Add
RemoteFeatureFlags:getStateto allowed actions to retrieve max history item age config (#8479) - Add
account_hardware_typefield to all cross-chain swap analytics events (#8503)account_hardware_typecarries the specific hardware wallet brand (e.g.'Ledger','QR Hardware') ornullfor software walletsis_hardware_walletis now derived fromaccount_hardware_type !== null, keeping both fields in sync
getEVMTxPropertiesFromTransactionMetanow accepts an optionalaccountparameter to populateaccount_hardware_typeforTransactionController:transactionFailedevents (#8503)- Bump
@metamask/accounts-controllerfrom^37.1.1to^37.2.0(#8363) - Bump
@metamask/keyring-controllerfrom^25.1.1to^25.2.0(#8363) - Bump
@metamask/messengerfrom^1.0.0to^1.1.1(#8364, #8373) - Bump
@metamask/transaction-controllerfrom^64.0.0to^64.3.0(#8432, #8447, #8482) - Bump
@metamask/base-controllerfrom^9.0.1to^9.1.0(#8457) - Bump
@metamask/bridge-controllerfrom^70.0.1to^70.2.0(#8466, #8474, #8571)
Fixed
- Prevent invalid src hashes from being persisted in
txHistory(#8479)- Make transaction status subscribers generic so that
txHistoryitems get updated if there are any transaction updates matching by actionId, txMetaId, hash or type - Skip saving smart transaction hashes on transaction submission. This used to make it possible for invalid src hashes to be stored in state and polled indefinitely. Instead, the txHistory item will now be updated with the confirmed tx hash when the
transactionStatusUpdatedevent is published - If there is no srcTxHash in state, attempt to set it based on the local TransactionController state
- Make transaction status subscribers generic so that
@metamask/perps-controller 4.0.0
Added
- Add
coalescePerpsRestRequestutility for deduplicating concurrent REST requests with account-scoped cache keys (#8560) - Add
accountUtilshelpers for resolving the active perps account id and pinning it to forwarded provider params (#8560)
Changed
- Account-scope the REST cache and guard cache writes so mount load stays cacheable without cross-account bleed (#8560)
- Make
forceRefreshprovider-agnostic and align rate-limit handling with the extension (#8560) - Regenerate
PerpsControllermethod action types; shrink rate-limit diff and drop verbose history logs (#8560)
Removed
- BREAKING: Drop the dead
spotStateparameter fromadaptAccountStateFromSDK. Spot balances are layered on byaddSpotBalanceToAccountState, which enforces the USDC-only policy viaSPOT_COLLATERAL_COINS; removing the dormant branch keeps one source of truth and prevents a future caller from silently getting ALL-coins behavior (#8560)
Fixed
- HyperLiquid Unified-mode live balance: subscribe to
spotStateWS and compute tradeable/total balance from on-chain math (#8560) - Complete spot-balance parity with the extension consumer (#8560)
- Preserve integer trailing zeros when
szDecimals=0inperpsFormatters(#8560) - Preserve candle pagination cancellation and skip coalesce for explicit-
endTimecandle paging to avoid stale pages (#8560) - Defer account resolution on the non-paginated cache path to prevent race conditions (#8560)
- Force-refresh on activity mount and evict expired coalesce entries so stale promises cannot resolve to cache (#8560)
- Normalize
event.userto lowercase when caching the spot-state WS address so#ensureSpotStatehits the cache instead of triggering a redundant RESTspotClearinghouseStaterefetch when HyperLiquid returns a checksummed address (#8560)
@metamask/transaction-pay-controller 19.3.0
Added
- Add support for transaction config parameter accountOverride (#8454)
Changed
933.0.0
@metamask/assets-controller 6.1.0
Added
- Add newly supported chains to multicall contract support in
MulticallClient(#8346)- Tempo Mainnet (
4217/0x1079) - Tempo Testnet Moderato (
42431/0xa5bf) - Ink Mainnet (
57073/0xdef1) - Stable mainnet (
988/0x3dc)
- Tempo Mainnet (
Changed
- Bump
@metamask/assets-controllersfrom^104.0.0to^104.3.0(#8509, #8544, #8559) - Bump
@metamask/keyring-apifrom^21.6.0to^23.0.1(#8464) - Bump
@metamask/keyring-internal-apifrom^10.0.0to^10.1.1(#8464) - Bump
@metamask/keyring-snap-clientfrom^8.2.0to^9.0.1(#8464) - Bump
@metamask/transaction-controllerfrom^64.2.0to^64.3.0(#8482)
Fixed
- Native asset detection now correctly identifies native assets across all CAIP-19 representations, not just
slip44:namespace checks (#8483)- Previously, native assets represented as ERC-20 tokens were not recognized as native, causing incorrect token type classification.
- Exempt mUSD token from EVM ERC-20 minimum-occurrence spam filter so it is no longer incorrectly hidden (#8541)
@metamask/assets-controllers 104.3.0
Added
- Export
SPOT_PRICES_SUPPORT_INFOfrom the token prices service (#8483)
932.0.0
931.0.0
@metamask/transaction-pay-controller 19.2.2
Changed
Fixed
930.0.0
929.0.0
@metamask/authenticated-user-storage 1.0.0
Added
- Initial release (#8260)
AuthenticatedUserStorageServiceclass with namespaced domain accessors:delegations(list, create, revoke) andpreferences(getNotifications, putNotifications)
Changed
- BREAKING: Rename
SocialAIPreference.traderProfileIdstomutedTraderProfileIdsin types and notification-preferences validation to match the API payload. (#8536)
928.0.0
927.0.0
@metamask/messenger-cli 0.2.0
Added
- BREAKING: Add support for formatting the generated method action type files with Prettier or Oxfmt (#8486)
- This adds a
--formatteroption to the CLI, which accepts eitheroxfmtor
prettier(default). - ESLint is no longer used to format the generated files, and is no longer a
(peer) dependency of this package.
- This adds a
926.0.0
@metamask/social-controllers 2.0.0
Changed
- BREAKING:
SocialService.follow,SocialService.unfollow, andSocialController.followTrader,SocialController.unfollowTraderno longer accept anaddressOrUidoption. The caller is identified server-side from the JWTsubclaim carried in theAuthorizationheader. (#8520) - BREAKING:
SocialService.fetchFollowingandSocialController.updateFollowingnow take no arguments (previously{ addressOrUid }). (#8520) - BREAKING: Remove
FetchFollowingOptionstype export (no longer needed). (#8520) SocialServicenow callsPUT /v1/users/me/follows,DELETE /v1/users/me/follows, andGET /v1/users/me/following(previously/v1/users/:addressOrUid/...). (#8520)
925.0.0
@metamask/perps-controller 3.2.0
Added
- Add
isAbortErrorutility export fromutilsfor distinguishing expected cancellation errors from real failures (#8515)
Changed
TradingService.flipPosition()no longer passes stale positionentryPriceascurrentPriceon reverse-position orders; providers now validate and price flips against live market data (#8515)
Removed
- Remove unused
ESTIMATED_FEE_RATEexport fromconstants/hyperLiquidConfig(dead code after reverse-position fee precheck was removed) (#8515)
Fixed
- Suppress noisy Sentry reports from expected historical-candle fetch cancellations (
AbortError) during navigation, while preserving real error reporting inHyperLiquidClientServiceandMarketDataService(#8515)