Releases: MetaMask/core
Releases · MetaMask/core
828.0.0
@metamask/transaction-controller 62.18.0
Added
- Add
predictRelayDepositandperpsRelayDeposittoTransactionTypeenum (#7947)
@metamask/transaction-pay-controller 16.0.0
Added
- BREAKING: Add live on-chain balance validation for pay transactions (#7935)
- Refresh payment token balance via chain before each quote update.
- Validate source token balance via chain before submitting Relay deposits.
- Requires
NetworkController:getNetworkClientByIdmessenger action permission inTransactionControllerpublish hook.
Changed
827.0.0
@metamask/assets-controllers 100.0.2
Changed
- Blockaid token filtering in
MultichainAssetsControllernow only removes tokens flagged asMalicious(#8003)Spam,Warning, andBenigntokens are no longer filtered out
@metamask/compliance-controller 1.0.0
Added
- Initial release (#7945)
- Add
ComplianceControllerfor managing OFAC compliance state for wallet addresses. - Add
ComplianceServicefor fetching compliance data from the Compliance API.
- Add
Changed
- Bump
@metamask/controller-utilsfrom^11.18.0to^11.19.0(#7995)
826.0.0
@metamask/ramps-controller 9.0.0
Added
- Add
getOrderandgetOrderFromCallbackmethods toRampsServiceandRampsControllerfor V2 unified order polling, along with newRampsOrder,RampsOrderFiatCurrency,RampsOrderCryptoCurrency,RampsOrderPaymentMethod, andRampsOrderStatustypes (#7934)
Changed
825.0.0
@metamask/accounts-controller 36.0.1
Changed
- Bump
@metamask/network-controllerfrom^29.0.0to^30.0.0(#7996)
@metamask/assets-controller 2.0.2
Changed
- Bump
@metamask/assets-controllersfrom^100.0.0to^100.0.1(#7996) - Bump
@metamask/network-controllerfrom^29.0.0to^30.0.0(#7996) - Bump
@metamask/network-enablement-controllerfrom^4.1.1to^4.1.2(#7996) - Bump
@metamask/polling-controllerfrom^16.0.2to^16.0.3(#7996) - Bump
@metamask/transaction-controllerfrom^62.17.0to^62.17.1(#7996)
@metamask/assets-controllers 100.0.1
Changed
- Bump
@metamask/accounts-controllerfrom^36.0.0to^36.0.1(#7996) - Bump
@metamask/network-controllerfrom^29.0.0to^30.0.0(#7996) - Bump
@metamask/network-enablement-controllerfrom^4.1.1to^4.1.2(#7996) - Bump
@metamask/polling-controllerfrom^16.0.2to^16.0.3(#7996) - Bump
@metamask/transaction-controllerfrom^62.17.0to^62.17.1(#7996)
@metamask/bridge-controller 67.1.1
Changed
- Bump
@metamask/accounts-controllerfrom^36.0.0to^36.0.1(#7996) - Bump
@metamask/assets-controllersfrom^100.0.0to^100.0.1(#7996) - Bump
@metamask/gas-fee-controllerfrom^26.0.2to^26.0.3(#7996) - Bump
@metamask/multichain-network-controllerfrom^3.0.3to^3.0.4(#7996) - Bump
@metamask/network-controllerfrom^29.0.0to^30.0.0(#7996) - Bump
@metamask/polling-controllerfrom^16.0.2to^16.0.3(#7996) - Bump
@metamask/transaction-controllerfrom^62.17.0to^62.17.1(#7996)
@metamask/bridge-status-controller 67.0.1
Changed
- Bump
@metamask/accounts-controllerfrom^36.0.0to^36.0.1(#7996) - Bump
@metamask/gas-fee-controllerfrom^26.0.2to^26.0.3(#7996) - Bump
@metamask/network-controllerfrom^29.0.0to^30.0.0(#7996) - Bump
@metamask/polling-controllerfrom^16.0.2to^16.0.3(#7996) - Bump
@metamask/transaction-controllerfrom^62.17.0to^62.17.1(#7996) - Bump
@metamask/controller-utilsfrom^11.18.0to^11.19.0(#7995) - Bump
@metamask/bridge-controllerfrom^67.0.0to^67.1.1(#7995, #7996)
@metamask/earn-controller 11.1.1
Changed
- Bump
@metamask/network-controllerfrom^29.0.0to^30.0.0(#7996) - Bump
@metamask/keyring-apifrom^21.0.0to^21.5.0(#7857) - Bump
@metamask/account-tree-controllerfrom^4.0.0to^4.1.1(#7869), (#7897) - Bump
@metamask/controller-utilsfrom^11.18.0to^11.19.0(#7995)
@metamask/ens-controller 19.0.3
Changed
- Bump
@metamask/network-controllerfrom^29.0.0to^30.0.0(#7996) - Bump
@metamask/controller-utilsfrom^11.18.0to^11.19.0(#7995)
@metamask/gas-fee-controller 26.0.3
Changed
- Bump
@metamask/network-controllerfrom^29.0.0to^30.0.0(#7996) - Bump
@metamask/polling-controllerfrom^16.0.2to^16.0.3(#7996) - Bump
@metamask/controller-utilsfrom^11.18.0to^11.19.0(#7995)
@metamask/multichain-api-middleware 1.2.7
Changed
- Bump
@metamask/network-controllerfrom^29.0.0to^30.0.0(#7996) - Bump
@metamask/json-rpc-enginefrom^10.2.1to^10.2.2(#7856) - Bump
@metamask/multichain-transactions-controllerfrom7.0.0to7.0.1(#7897) - Bump
@metamask/controller-utilsfrom^11.18.0to^11.19.0(#7995)
@metamask/multichain-network-controller 3.0.4
Changed
- Bump
@metamask/accounts-controllerfrom^36.0.0to^36.0.1(#7996) - Bump
@metamask/network-controllerfrom^29.0.0to^30.0.0(#7996) - Bump
@metamask/controller-utilsfrom^11.18.0to^11.19.0(#7995)
@metamask/network-controller 30.0.0
Added
- Add
rpcMethodNametoNetworkController:rpcEndpointDegradedandNetworkController:rpcEndpointChainDegradedevent payloads (#7954)- This field contains the JSON-RPC method name (e.g.
eth_blockNumber) that was being processed when the event fired, enabling identification of which methods produce the most slow requests or retry exhaustions.
- This field contains the JSON-RPC method name (e.g.
- Add
typeandretryReasontoNetworkController:rpcEndpointDegradedandNetworkController:rpcEndpointChainDegradedevent payloads (#7988)type(DegradedEventType) is'slow_success'when the request succeeded but was slow, or'retries_exhausted'when retries ran out.retryReason(RetryReason, only present whentypeis'retries_exhausted') classifies the error that was retried (e.g.'non_successful_http_status','timed_out','connection_failed').
Changed
- BREAKING: The
RpcServiceRequestabletype'sonDegradedlistener now receivesrpcMethodName: stringin its data parameter (#7954)- Implementors of this interface will need to accept the new field in their
onDegradedcallback signature.
- Implementors of this interface will need to accept the new field in their
- Bump
@metamask/eth-json-rpc-middlewarefrom^23.0.0to^23.1.0(#7810) - Bump
@metamask/json-rpc-enginefrom^10.2.1to^10.2.2(#7856) - Bump
@metamask/controller-utilsfrom^11.18.0to^11.19.0(#7995)
@metamask/network-enablement-controller 4.1.2
Changed
- Bump
@metamask/multichain-network-controllerfrom^3.0.3to^3.0.4(#7996) - Bump
@metamask/network-controllerfrom^29.0.0to^30.0.0(#7996) - Bump
@metamask/transaction-controllerfrom^62.17.0to^62.17.1(#7996) - Bump
@metamask/controller-utilsfrom^11.18.0to^11.19.0(#7995)
@metamask/polling-controller 16.0.3
Changed
- Bump
@metamask/network-controllerfrom^29.0.0to^30.0.0(#7996) - Bump
@metamask/controller-utilsfrom^11.18.0to^11.19.0(#7995)
@metamask/sample-controllers 4.0.3
Changed
- Bump
@metamask/network-controllerfrom^29.0.0to^30.0.0(#7996) - Bump
@metamask/controller-utilsfrom^11.18.0to^11.19.0(#7995)
@metamask/selected-network-controller 26.0.3
Changed
- Bump
@metamask/network-controllerfrom^29.0.0to^30.0.0(#7996) - Bump
@metamask/json-rpc-enginefrom^10.2.1to^10.2.2(#7856)
@metamask/signature-controller 39.0.4
Changed
- Bump
@metamask/accounts-controllerfrom^36.0.0to^36.0.1(#7996) - Bump
@metamask/network-controllerfrom^29.0.0to^30.0.0(#7996) - Bump
@metamask/controller-utilsfrom^11.18.0to^11.19.0(#7995)
@metamask/transaction-controller 62.17.1
Changed
- Bump
@metamask/accounts-controllerfrom^36.0.0to^36.0.1(#7996) - Bump
@metamask/gas-fee-controllerfrom^26.0.2to^26.0.3(#7996) - Bump
@metamask/network-controllerfrom^29.0.0to^30.0.0(#7996) - Bump
@metamask/core-backendfrom5.0.0to^6.0.0(#7993) - Bump
@metamask/controller-utilsfrom^11.18.0to^11.19.0(#7995)
@metamask/transaction-pay-controller 15.1.2
Changed
- Bump
@metamask/assets-controllersfrom^100.0.0to^100.0.1(#7996) - Bump `@metamask/...
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