Releases: MetaMask/core
Releases · MetaMask/core
824.0.0
@metamask/assets-controller 2.0.1
Changed
- Refactor data source tests to use shared
MockAssetControllerMessengerfixture (#7958)- Export
STAKING_INTERFACEfrom the staked balance fetcher for use with the staking contract ABI. StakedBalanceDataSourceteardown now uses the messenger'sclearEventSubscriptions; custom messenger implementations must support it for correct cleanup.
- Export
- Bump
@metamask/network-enablement-controllerfrom^4.1.0to^4.1.1(#7984) - Bump
@metamask/core-backendfrom^5.1.1to^6.0.0(#7993) - Bump
@metamask/assets-controllersfrom^99.4.0to^100.0.0(#7995) - Bump
@metamask/controller-utilsfrom^11.18.0to^11.19.0(#7995)
@metamask/assets-controllers 100.0.0
Added
- BREAKING:
MultichainAssetsControllerMessengernow requires thePhishingController:bulkScanTokensaction to be allowed (#7923)- Consumers constructing the messenger must include this action in the allowed actions list
- Add Blockaid token security scanning to
MultichainAssetsControllerto filter out spam, malicious, and warning tokens during automatic asset detection (#7923)- Tokens with
assetNamespaceof "token" (e.g. SPL tokens) are scanned via thePhishingController:bulkScanTokensmessenger action - Only tokens with a
Benignresult are kept; native assets (e.g.slip44) are not scanned - The filter fails open: if the scan is unreachable or returns an error, all tokens are kept
- Filtering applies to account-added and asset-list-updated events;
addAssets(curated list) is not filtered - Token addresses are batched into groups of 100 to stay within the
bulkScanTokensper-request limit
- Tokens with
Changed
- Bump
@metamask/phishing-controllerfrom^16.2.0to^16.3.0(#7979) - Bump
@metamask/network-enablement-controllerfrom^4.1.0to^4.1.1(#7984) - Bump
@metamask/core-backendfrom^5.0.0to^6.0.0(#7993) - Change MegaETH mainnet occurences filtering for getTokensURL (#7994)
- Bump
@metamask/controller-utilsfrom^11.18.0to^11.19.0(#7995)
@metamask/bridge-controller 67.1.0
Added
- Added optional
input_amount_presetproperty to theInputChangedevent inRequiredEventContextFromClient(#7987)
Changed
- Bump
@metamask/assets-controllersfrom^99.4.0to^100.0.0(#7995) - Bump
@metamask/controller-utilsfrom^11.18.0to^11.19.0(#7995)
@metamask/controller-utils 11.19.0
Added
- Add
megaeth-mainnettoBUILT_IN_NETWORKS(#7994)
@metamask/transaction-pay-controller 15.1.1
Changed
823.0.0
@metamask/core-backend 6.0.0
Added
- Add
ApiPlatformClientServiceto exposeApiPlatformClientvia the messenger without a controller (#7928)- Consumers call
messenger.call('ApiPlatformClientService:getApiPlatformClient')to obtain the shared client for accounts, prices, token, and tokens APIs
- Consumers call
- Export TanStack Query options for all API endpoints via
get*QueryOptionshelpers (#7928)- Each fetch method (e.g.
fetchV5MultiAccountBalances) has a correspondingget*QueryOptions(e.g.getV5MultiAccountBalancesQueryOptions) returning the same options object used internally - Enables reuse with
useQuery,useInfiniteQuery,useSuspenseQuery, and other TanStack Query APIs
- Each fetch method (e.g.
- Extend
FetchOptionsto allow TanStack Query options (e.g.select,initialPageParam,retry,initialData) to be passed through toget*QueryOptionsand merged into the returned query options- Export
getQueryOptionsOverrideshelper for strippingqueryKey/queryFnfrom options when merging - All API clients (accounts, prices, token, tokens) merge user overrides first, then apply
staleTime/gcTimedefaults so cache timing is consistent and extra options (e.g.select) are preserved
- Export
Changed
- BREAKING: Merge
fetchV2BalancesWithOptionsintofetchV2Balances(#7928)fetchV2Balances(address, queryOptions?, options?)now accepts the full query options:networks,filterSupportedTokens,includeTokenAddresses,includeStakedAssetsgetV2BalancesQueryOptionsaccepts the same full query options for use with TanStack QueryfetchV2BalancesWithOptionsandgetV2BalancesWithOptionsQueryOptionshave been removed; usefetchV2BalancesandgetV2BalancesQueryOptionswith the desired options instead
- BREAKING: Align v4 multi-account transactions with API (#7928)
- First parameter renamed from
accountIdstoaccountAddressesinfetchV4MultiAccountTransactionsandgetV4MultiAccountTransactionsQueryOptions - Query options now include:
startTimestamp,endTimestamp,limit,after,before,maxLogsPerTx,langin addition tonetworks,cursor,sortDirection,includeLogs,includeTxMetadata includeValueTransfershas been removed from the options (not in API spec)
- First parameter renamed from
- Accounts, prices, and tokens clients:
fetch*andget*QueryOptionsnow short-circuit on empty required inputs (e.g. empty address, empty account IDs or asset lists) and return empty results without calling the API (#7928)
822.0.0
@metamask/network-enablement-controller 4.1.1
Changed
- Bump
@metamask/keyring-apifrom^21.0.0to^21.5.0(#7857) - Bump
@metamask/transaction-controllerfrom^62.9.2to^62.17.0(#7737, #7760, #7775, #7802, #7832, #7854, #7872), (#7897) - Bump
@metamask/multichain-network-controllerfrom3.0.2to3.0.3(#7897)
Fixed
- Override SLIP-44 for HyperEVM (chain ID 999) to 2457 so native asset identifier is
eip155:999/slip44:2457instead of the incorrect value from chainid.network (chain collision with Wanchain) (#7975)
821.0.0
@metamask/ai-controllers 0.1.0
Added
- Initial release (#7693)
- Add
AiDigestControllerfor fetching and caching AI-generated asset digests (#7746) - Add Market Insights support to
AiDigestControllerwithfetchMarketInsightsaction (#7930) - Add
searchDigestmethod toAiDigestServicefor calling the GET endpoint (currently mocked) (#7930)
Changed
- Validate
searchDigestAPI responses and throw when the payload does not match the expectedMarketInsightsReportshape. - Normalize
searchDigestresponses from either direct report payloads ordigestenvelope payloads.
Removed
- Remove legacy digest APIs and digest cache from
AiDigestControllerandAiDigestService; only market insights APIs remain.- Removes
fetchDigest,clearDigest, andclearAllDigestsactions from the controller action surface. - Removes
DigestData/DigestEntrytypes and thedigestsstate branch.
- Removes
820.0.0
@metamask/phishing-controller 16.3.0
Added
- Add support for Solana (
solana) as a chain identifier inbulkScanTokens(#7923)- Non-EVM chain names (e.g.
'solana') can now be passed aschainIdin addition to hex EVM chain IDs - Token address casing is preserved for non-EVM chains (EVM addresses continue to be lowercased)
- Non-EVM chain names (e.g.
- Export
TokenScanResultTypeas a runtime value (previously type-only) (#7923) - Export
BulkTokenScanResponsetype (#7923)
Changed
- Bump
@metamask/transaction-controllerfrom62.16.0to62.17.0(#7897)
819.0.0
@metamask/client-controller 1.0.0
Added
- Initial release of
@metamask/client-controller(#7808)ClientControllerfor managing client (UI) open/closed stateClientController:setUiOpenmessenger action for platform code to callClientController:stateChangeevent for controllers to subscribe to lifecycle changesisUiOpenstate property (not persisted - always starts asfalse)clientControllerSelectors.selectIsUiOpenselector for derived state access- Full TypeScript support with exported types
818.0.0
@metamask/ramps-controller 8.1.0
Added
- Add
widgetUrlresource state that automatically fetches and stores the buy widget URL whenever the selected quote changes (#7920) - Add
TransakServicefor native Transak deposit flow with OTP auth, KYC, quoting, order lifecycle, and payment widget URL generation (#7922) - Add
nativeProviders.transakstate slice and controller convenience methods for driving the Transak native deposit flow (#7922)
Changed
- Refactor: Consolidate reset logic with a shared resetResource helper and fix abort handling for dependent resources (#7818)
817.0.0
@metamask/bridge-controller 67.0.0
Added
- BREAKING: Retrieve JWT token from the ProfileSyncController and include it in bridge request headers (#7955)
@metamask/bridge-status-controller 67.0.0
Added
- BREAKING: Retrieve JWT token from the ProfileSyncController and include it in bridge request headers (#7955)
- Bump
@metamask/bridge-controllerfrom^66.2.0to^67.0.0(#7961)
@metamask/transaction-pay-controller 15.1.0
Changed
816.0.0
@metamask/bridge-controller 66.2.0
Added
- Added
TrendingExplorevalue toMetaMetricsSwapsEventSourceenum for attributing swaps to the trending explore flow (#7931) - Added
locationas a required property on all Unified SwapBridge events inRequiredEventContextFromClient(#7931) - Added
setLocation()method toBridgeControllerfor clients to set the entry point when the flow starts (#7931) - Exported
MetaMetricsSwapsEventSourcefrom the package index (#7931)
Changed
- Updated
#getEventPropertiesto fall back to stored#locationwhenlocationis not provided by the client (#7931) - Replaced
@deprecatedtag onMetaMetricsSwapsEventSourcewith proper JSDoc description (#7931) - Bump
@metamask/assets-controllersfrom^99.3.2to^99.4.0(#7944)
Fixed
- Fix
usd_amount_source,usd_quoted_gas, andusd_quoted_returnmetrics fields being empty for non-EVM chains by deriving USD exchange rates from multichain asset rates (#7899)
@metamask/bridge-status-controller 66.1.0
Added
- Added
locationproperty toBridgeHistoryItemto persist the entry point across the transaction lifecycle (#7931) - Added
locationparameter toStartPollingForBridgeTxStatusArgs(#7931) - Added optional
locationparameter tosubmitTxmethod (#7931)
Changed
- All post-submission events (
Submitted,Completed,Failed,PollingStatusUpdated,StatusValidationFailed) now include thelocationproperty fromBridgeHistoryItem(#7931)
Fixed
- Fix
usd_amount_sourcedefault value in EVM transaction metrics properties from100to0(#7899)
815.0.0
@metamask/assets-controller 2.0.0
Added
- Add
StakedBalanceDataSourcethat polls supported staking contracts on enabled chains and merges staked balances intoassetsBalance. Configurable viastakedBalanceDataSourceConfig(enabled,pollInterval); the controller subscribes to it when enabled and cleans up on destroy (#7936) - Add optional
trackMetaMetricsEventcallback to measure and report first init/fetch historical time (duration in ms) to MetaMetrics when the initial asset fetch completes after unlock or app open (#7871) - Add
AccountsApiDataSourceConfigandPriceDataSourceConfigtypes; addaccountsApiDataSourceConfigandpriceDataSourceConfigoptions toAssetsControllerOptionsfor per-data-source configuration (pollInterval, tokenDetectionEnabled, etc.). WhentokenDetectionEnabledis false,AccountsApiDataSourceonly returns balances for tokens already in state and does not add new tokens (#7926) - Add
useExternalServiceoption toTokenDetector,TokenDetectionOptions,RpcDataSourceConfig, andRpcDataSourceOptions. Token detection runs only when bothtokenDetectionEnabledanduseExternalServiceare true and stops when either is false (#7924) - Add basic functionality toggle:
isBasicFunctionality(getter() => boolean); no value is stored in the controller. When the getter returns true (matches UI "Basic functionality" ON), token and price APIs are used; when false, only RPC is used. OptionalsubscribeToBasicFunctionalityChange(onChange)lets the consumer register for toggle changes (e.g. extension subscribes to PreferencesController:stateChange, mobile uses its own mechanism); may return an unsubscribe function for controller destroy (#7904)
Changed
- Refactor
AssetsControllerMessengertype safety: removeas unknown ascasts, import types instead of locally defining them, and add missing allowed actions/events (#7952) - BREAKING:
AccountsApiDataSourceConfig.tokenDetectionEnabledis now a getter() => boolean(wasboolean) so the Accounts API data source reacts when the user toggles token detection at runtime, consistent withRpcDataSourceConfig.tokenDetectionEnabled. Pass a function, e.g.tokenDetectionEnabled: () => preferenceController.state.useTokenDetection. - BREAKING: Rename state and
DataResponseproperty fromassetsMetadatatoassetsInfo. Update consumers that readstate.assetsMetadataor setresponse.assetsMetadatato useassetsInfoinstead (#7902) - Bump
@metamask/keyring-apifrom^21.0.0to^21.5.0(#7857) - Bump
@metamask/keyring-internal-apifrom^9.0.0to^10.0.0(#7857) - Bump
@metamask/keyring-snap-clientfrom^8.0.0to^8.2.0(#7857) - Bump
@metamask/account-tree-controllerfrom4.1.0to4.1.1(#7897) - Bump
@metamask/core-backendfrom5.1.0to5.1.1(#7897)