Releases: MetaMask/core
Releases · MetaMask/core
904.0.0
@metamask/assets-controller 5.0.0
Changed
- BREAKING:
TokenDetectornow fetches the token list directly from the Tokens API (/v3/chains/{chain}/assets) via a newTokensApiClientinstead of reading fromTokenListController:getState(#8385)TokenDetectorMessengertype has been removed;TokenDetectorconstructor now takes aTokensApiClientinstance as its second argumentRpcDataSourceno longer requiresTokenListController:getState—GetTokenListStatehas been removed fromRpcDataSourceAllowedActionsandAssetsControllerAllowedActions- Unknown ERC-20 metadata is no longer looked up from the token list as a fallback in
RpcDataSource;TokenDataSourcehandles enrichment downstream
- Split
getAssetsfetch pipeline into a fast awaited path and a parallel fire-and-forget background path to reduce perceived latency on unlock and onboarding (#8383)- Fast pipeline: AccountsApi + StakedBalance → Detection → Token + Price (awaited, committed to state immediately)
- Background pipeline: Snap + RPC run in parallel → Detection → Token + Price when basic functionality is enabled; when disabled (RPC-only mode), Token + Price are omitted (fire-and-forget merge)
handleAssetsUpdateskips token/price enrichment and stripsmetadata/pricefrom the effective request when basic functionality is disabled (RPC-only mode)setSelectedCurrencyno longer triggers a price refresh viagetAssetswhen basic functionality is disabled
PriceDataSourcenow batches spot-price API requests in chunks of 50 usingreduceInBatchesSeriallyto avoid DynamoDB batch-limit errors (#8383)TokenDataSourcenow batches token metadata API requests in chunks of 50 usingreduceInBatchesSeriallyto avoid DynamoDB batch-limit errors (#8383)PriceDataSourcefilters out all syntheticslip44:NUMBER-*staking-position asset IDs before calling the Price API (#8383)TokenDataSourcefilters EVM ERC-20 tokens byoccurrences >= 3and treats missing occurrences as 0 (#8383)- Bump
@metamask/keyring-controllerfrom^25.1.1to^25.2.0(#8363) - Bump
@metamask/messengerfrom^1.0.0to^1.1.1(#8364, #8373)
@metamask/transaction-pay-controller 19.1.0
Added
- Support for perps deposit for Across (#8334)
Changed
- Bump
@metamask/assets-controllerfrom^4.0.0to^5.0.0(#8406)
Fixed
- Fix perps withdraw to Arbitrum USDC showing inflated transaction fee by bypassing same-token filter when
isHyperliquidSourceis set (#8387)
903.0.0
902.0.0
@metamask/ramps-controller 13.0.0
Changed
- Bump
@metamask/controller-utilsfrom^11.19.0to^11.20.0(#8344) - Bump
@metamask/messengerfrom^1.0.0to^1.1.1(#8364, #8373) - BREAKING: Removed controller-side data fetching (
fireAndForget) fromsetSelectedToken,setSelectedProvider, andsetUserRegion; ramp data fetching is now fully driven by the client (#8354)- Client migration: trigger
getTokens,getProviders, andgetPaymentMethodsfrom the client layer (for example, React Query hooks/effects) when region/provider/token changes. setSelectedProvider/setSelectedToken/setUserRegionnow focus on selection/state updates and no longer implicitly fetch dependent resources.
- Client migration: trigger
setSelectedProviderandsetSelectedPaymentMethodaccept a full object in addition to an ID string; no longer throw when data is not loaded (#8354)
Fixed
initno longer overrides a persisteduserRegionwith the geolocation endpoint response (#8354)
@metamask/transaction-pay-controller 19.0.3
Changed
901.0.0
900.0.0
@metamask/compliance-controller 2.0.0
Changed
- BREAKING: Remove proactive bulk-fetch pattern from
ComplianceControllerandComplianceService(#8365)ComplianceControllerStateno longer includesblockedWalletsorblockedWalletsLastFetched. Consumers storing persisted state must drop these fields on migration.- The
init()andupdateBlockedWallets()controller methods have been removed. Consumers should remove any calls to these methods. - The
blockedWalletsRefreshIntervalconstructor option has been removed. - The
updateBlockedWallets()service method and itsGET /v1/blocked-walletsendpoint integration have been removed. ComplianceControllerInitAction,ComplianceControllerUpdateBlockedWalletsAction, andComplianceServiceUpdateBlockedWalletsActiontypes have been removed from the public API.- The
BlockedWalletsInfotype has been removed from the public API. checkWalletComplianceandcheckWalletsCompliancenow fall back to the per-addresswalletComplianceStatusMapcache when the API is unavailable, re-throwing only if no cached result exists for a requested address.selectIsWalletBlockednow reads solely fromwalletComplianceStatusMaprather than also checking a cached full blocklist.
- Bump
@metamask/controller-utilsfrom^11.19.0to^11.20.0(#8344) - Bump
@metamask/messengerfrom^1.0.0to^1.1.0(#8364)
899.0.0
@metamask/social-controllers 0.1.0
Added
- Initial release (#8321, #8335, #8337)
- Add
SocialServicedata service wrapping social-api endpoints with superstruct response validation- Add methods
fetchLeaderboard,fetchTraderProfile,fetchOpenPositions,fetchClosedPositions,fetchFollowers,fetchFollowing,follow,unfollow
- Add methods
- Add
SocialControllerextendingBaseControllerwith messenger actions for state managementupdateLeaderboard— fetches leaderboard and persists entries to statefollowTrader— follows traders and updates following addresses in stateunfollowTrader— unfollows traders and removes addresses from stateupdateFollowing— fetches following list and replaces addresses in state
- Add
898.0.0
897.0.0
896.0.0
@metamask/accounts-controller 37.2.0
Added
- Now supports
KeyringTypes.moneyinkeyringTypeToName(#8362)- Even though this controller does not support Money accounts, this helper might be used with this new keyring type (added for completeness).
Changed
- Filter out Money accounts when replicating
KeyringControllerstate (#8362)- Those accounts are treated differently with their own "account-like" controller.
- Bump
@metamask/keyring-controllerfrom^25.1.1to^25.2.0(#8363)
@metamask/keyring-controller 25.2.0
Added
- Added
filterselector variant towithKeyring(#8348)KeyringSelectornow accepts{ filter: ({ keyring, metadata }) => boolean }, which selects the first keyring for which the predicate returnstrue.
- Add
isKeyringNotFoundError(#8351)- This function can be used when trying to access a non-existing keyring using
withKeyring.
- This function can be used when trying to access a non-existing keyring using
- Added
withKeyringUnsafeaction (#8358)- This new variant of
withKeyringallows to fetch a keyring instance the same way. - Mutations are not allowed and won't be replicated in the vault.
- Can be used to read immutable data safely.
- This new variant of
- Add
KeyringTypes.moneyenum value (#8360)
895.0.0
@metamask/assets-controller 4.0.0
Changed
- BREAKING:
TokenDataSourceconstructor now takes(messenger, options)instead of(options);messengermust be the sameAssetsControllerMessengerused byAssetsControllerso token metadata enrichment can callPhishingController:bulkScanTokens(#8329)- Clients must now provide
PhishingController:bulkScanTokenspermission when constructing the controller messenger
- Clients must now provide
TokenDataSourceremoves tokens flagged malicious by Blockaid (viaPhishingController:bulkScanTokens) before merging metadata, instead of filtering non-native tokens by a minimum occurrence count (#8329)- Bump
@metamask/assets-controllersfrom^103.1.0to^103.1.1(#8359) - Bump
@metamask/network-enablement-controllerfrom^5.0.1to^5.0.2(#8359) - Bump
@metamask/phishing-controllerfrom^17.1.0to^17.1.1(#8359) - Bump
@metamask/transaction-controllerfrom^63.3.1to^64.0.0(#8359)
@metamask/assets-controllers 103.1.1
Changed
- Bump
@metamask/network-enablement-controllerfrom^5.0.1to^5.0.2(#8359) - Bump
@metamask/phishing-controllerfrom^17.1.0to^17.1.1(#8359) - Bump
@metamask/transaction-controllerfrom^63.3.1to^64.0.0(#8359)
@metamask/bridge-controller 70.0.1
Changed
- Bump
@metamask/transaction-controllerfrom^63.3.1to^64.0.0(#8359) - Bump
@metamask/controller-utilsfrom^11.19.0to^11.20.0(#8344) - Bump
@metamask/assets-controllerfrom^3.2.1to^4.0.0(#8355, #8359) - Bump
@metamask/assets-controllersfrom^103.0.0to^103.1.1(#8355, #8359)
@metamask/bridge-status-controller 70.0.5
Changed
- Bump
@metamask/bridge-controllerfrom^70.0.0to^70.0.1(#8359) - Bump
@metamask/transaction-controllerfrom^63.3.1to^64.0.0(#8359) - Add missing
@metamask/messengerdependency (#8318) - Bump
@metamask/controller-utilsfrom^11.19.0to^11.20.0(#8344)
@metamask/eip-5792-middleware 3.0.3
Changed
- Bump
@metamask/transaction-controllerfrom^63.3.1to^64.0.0(#8359)
@metamask/gator-permissions-controller 3.0.1
Changed
- Bump
@metamask/transaction-controllerfrom^63.3.1to^64.0.0(#8359)
@metamask/network-enablement-controller 5.0.2
Changed
- Bump
@metamask/transaction-controllerfrom^63.3.1to^64.0.0(#8359) - Bump
@metamask/controller-utilsfrom^11.19.0to^11.20.0(#8344)
@metamask/phishing-controller 17.1.1
Changed
- Bump
@metamask/transaction-controllerfrom^63.3.1to^64.0.0(#8359) - Bump
@metamask/controller-utilsfrom^11.19.0to^11.20.0(#8344)
@metamask/profile-metrics-controller 3.1.3
Changed
- Bump
@metamask/transaction-controllerfrom^63.3.1to^64.0.0(#8359) - Bump
@metamask/accounts-controllerfrom^37.1.0to^37.1.1(#8325) - Bump
@metamask/profile-sync-controllerfrom^28.0.1to^28.0.2(#8325) - Bump
@metamask/controller-utilsfrom^11.19.0to^11.20.0(#8344)
@metamask/shield-controller 5.1.1
Changed
- Bump
@metamask/transaction-controllerfrom^63.3.1to^64.0.0(#8359) - Bump
@metamask/signature-controllerfrom^39.1.1to^39.1.2(#8325) - Bump
@metamask/controller-utilsfrom^11.19.0to^11.20.0(#8344)
@metamask/subscription-controller 6.1.2
Changed
- Bump
@metamask/transaction-controllerfrom^63.3.1to^64.0.0(#8359) - Bump
@metamask/profile-sync-controllerfrom^28.0.1to^28.0.2(#8325) - Bump
@metamask/controller-utilsfrom^11.19.0to^11.20.0(#8344)
@metamask/transaction-controller 64.0.0
Changed
- Add extra parameters in types and change
addTransactionbehavior (#8052)- Add optional
excludeNativeTokenForFeeinTransactionMetatype. - Add optional
excludeNativeTokenForFeeinTransactionBatchRequesttype. - Add optional
excludeNativeTokenForFeetoAddTransactionOptionstype. - Changed
isGasFeeTokenIgnoredIfBalanceto be false ifexcludeNativeTokenForFeeis passed inaddTransaction.
- Add optional
- Bump
@metamask/accounts-controllerfrom^37.1.0to^37.1.1(#8325) - Bump
@metamask/controller-utilsfrom^11.19.0to^11.20.0(#8344)
Removed
- BREAKING: Remove
@metamask/eth-querydependency and allEthQueryusage in favour of messenger-based provider utilities (#8273)- Remove
determineTransactionTypefrom exported functions.
- Remove
@metamask/transaction-pay-controller 19.0.2
Changed
- Bump
@metamask/bridge-controllerfrom^70.0.0to^70.0.1(#8359) - Bump
@metamask/bridge-status-controllerfrom^70.0.4to^70.0.5(#8359) - Bump
@metamask/transaction-controllerfrom^63.3.1to^64.0.0(#8359) - Bump
@metamask/controller-utilsfrom^11.19.0to^11.20.0(#8344) - Bump
@metamask/assets-controllerfrom^3.2.1to^4.0.0(#8355, #8359) - Bump
@metamask/assets-controllersfrom^103.0.0to^103.1.1(#8355, #8359)