Releases: MetaMask/core
Releases · MetaMask/core
948.0.0
@metamask/config-registry-controller 0.3.0
Changed
- Bump
@metamask/keyring-controllerfrom^25.1.1to^25.3.0(#8363, #8634) - Bump
@metamask/profile-sync-controllerfrom^28.0.1to^28.0.2(#8325) - Bump
@metamask/controller-utilsfrom^11.19.0to^11.20.0(#8344) - Bump
@metamask/messengerfrom^1.0.0to^1.2.0(#8364, #8373, #8632) - Bump
@metamask/base-controllerfrom^9.0.1to^9.1.0(#8457)
Fixed
ConfigRegistryApiServicenow accepts chains with noassets.listUrlproperty (#8624)
947.0.0
@metamask/network-controller 30.1.0
Added
- Expose missing public
NetworkControllermethods through its messenger (#8350)- The following actions are now available:
NetworkController:enableRpcFailoverNetworkController:disableRpcFailoverNetworkController:getProviderAndBlockTrackerNetworkController:getNetworkClientRegistryNetworkController:initializeProviderNetworkController:lookupNetworkNetworkController:lookupNetworkByClientIdNetworkController:get1559CompatibilityWithNetworkClientIdNetworkController:resetConnectionNetworkController:rollbackToPreviousProviderNetworkController:loadBackup
- Corresponding action types are available as well.
- The following actions are now available:
- Add
getEthQuerymethod toNetworkController(#8350)
Changed
- Bump
@metamask/controller-utilsfrom^11.19.0to^11.20.0(#8344) - Bump
@metamask/eth-json-rpc-middlewarefrom^23.1.1to^23.1.3(#8550, #8611) - Bump
@metamask/messengerfrom^1.0.0to^1.2.0(#8364, #8373, #8632) - Bump
@metamask/base-controllerfrom^9.0.1to^9.1.0(#8457)
Deprecated
NetworkControllerGetNetworkConfigurationByNetworkClientIdtype is deprecated in favor ofNetworkControllerGetNetworkConfigurationByNetworkClientIdAction(#8350)- Deprecate
AbstractRpcServiceandRpcServiceRequestable(#8475)- There are no equivalents to these interfaces. If you need to take an "RPC-service-like" argument, it's best to declare which properties you're interested in rather than accepting the entire RPC service interface.
946.0.0
@metamask/keyring-controller 25.3.0
Added
- Expose
KeyringController:exportSeedPhrasemethod throughKeyringControllermessenger (#8587) - Expose
KeyringController:isUnlockedmethod throughKeyringControllermessenger (#8573)- Returns
truewhen the vault is unlocked,falseotherwise. Mirrorsstate.isUnlockedand theisUnlocked()instance method, allowing consumers to check lock status via the messenger without holding a controller reference.
- Returns
- Add
withControlleraction to run atomic operations on multiple keyrings (within a single transaction) (#8416)- This action uses a
RestrictedControllerobject that exposesaddNewKeyringandremoveKeyringmethods to add and remove keyring during the transaction (atomic) call.
- This action uses a
- Expose
KeyringController:signTransactionmethod throughKeyringControllermessenger (#8408) - Persist vault when keyring state changes during unlock (#8415)
- If a keyring's serialized state differs after deserialization (e.g. a migration ran, or metadata was missing), the vault is now re-persisted so the change is not lost on the next unlock.
- Added
KeyringV2support (#8390)- The controller now maintains a list of
KeyringV2instance in memory alongside previousKeyringinstance. - This new keyring interface is more generic and will become the new standard to interact with keyring (creating accounts, executing logic that involves accounts like signing, etc...).
- For now, most
KeyringV2are wrappers (read adapters) around existingKeyringinstance.
- The controller now maintains a list of
- Added
withKeyringV2Unsafemethod andKeyringController:withKeyringV2Unsafemessenger action for lock-free read-only access toKeyringV2adapters (#8390)- Mirrors
withKeyringUnsafesemantics: no mutex acquired, no persistence or rollback. - Caller is responsible for ensuring the operation is read-only and accesses only immutable keyring data.
- Mirrors
- Added
withKeyringV2method andKeyringController:withKeyringV2messenger action for atomic operations using theKeyringV2API (#8390)- Accepts a
KeyringSelectorV2to select keyrings bytype,address,id, orfilter. - Ships with default V2 builders for HD (
HdKeyringV2) and Simple (SimpleKeyringV2) keyrings; additional builders can be registered via thekeyringV2Buildersconstructor option.
- Accepts a
Changed
- Bump
@metamask/messengerfrom^1.0.0to^1.2.0(#8364, #8373, #8632) - Bump
@metamask/base-controllerfrom^9.0.1to^9.1.0(#8457) - Bump
@metamask/eth-hd-keyringfrom^13.1.1to^14.0.1(#8464) - Bump
@metamask/eth-simple-keyringfrom^11.1.2to^12.0.1(#8464) - Bump
@metamask/keyring-apifrom^21.6.0to^23.0.1(#8464) - Bump
@metamask/keyring-internal-apifrom^10.0.0to^11.0.0(#8464, #8584)
945.0.0
@metamask/messenger 1.2.0
Added
- Allow overriding action handler in subclass (#8617)
- The
Messengerclass now has a protectedgetActionmethod which returns the action handler for a given action name.
- The
- Add
subscribeOnceandwaitUntilutility methods toMessenger(#8575)
Deprecated
- Deprecate
generate-action-typesCLI tool andmessenger-generate-action-typesbinary (#8378)- The CLI has been extracted to
@metamask/messenger-cli. Usemessenger-action-typesfrom this package instead.
- The CLI has been extracted to
Fixed
- Throw different error for missing delegated actions (#8557)
944.0.0
@metamask/assets-controller 6.2.1
Changed
- Bump
@metamask/transaction-controllerfrom^64.4.0to^65.0.0(#8613) - Bump
@metamask/assets-controllersfrom^104.3.0to^105.0.0(#8622)
@metamask/assets-controllers 105.0.0
Added
- Expose missing public
CurrencyRateControllermethods through its messenger (#8561)- The following actions are now available:
CurrencyRateController:setCurrentCurrencyCurrencyRateController:updateExchangeRate
- Corresponding action types (e.g.
CurrencyRateControllerSetCurrentCurrencyAction) are available as well.
- The following actions are now available:
Changed
- BREAKING: Standardize names of
CurrencyRateControllermessenger action types (#8561)- The
GetCurrencyRateStatemessenger action has been renamed toCurrencyRateControllerGetStateActionto follow the convention. You will need to update imports appropriately. - These changes only affect the types. The action type strings themselves have not changed, so you do not need to update the list of actions you pass when initializing
CurrencyRateControllermessenger.
- The
MultichainAssetsController: Restore fail-open behavior for Blockaid spam token filter (#8580)- Uses blacklist approach: only rejects tokens explicitly marked as malicious by Blockaid
- When Blockaid bulk token scan API calls fail or return no results, tokens are allowed through
- This prevents legitimate tokens from being blocked due to API outages, network issues, or missing token data
- Malicious tokens that slip through are caught by the periodic rescan (runs daily by default)
- Bump
@metamask/transaction-controllerfrom^64.3.0to^65.0.0(#8585, #8613)
Fixed
- Fix
selectAssetsBySelectedAccountGroupcrashing when an account referenced in the account tree is missing from internal accounts (#8604)
@metamask/bridge-controller 71.0.0
Added
- BREAKING: Add
quickBuyanddappSwapFeatureIds for external swap quote consumers (#8598) - BREAKING: Add
market_closedandquote_expiredQuoteWarning (#8598) - Add
tokenSecurityTypeDestination: string | nulltoBridgeControllerState(defaultnull), set viaupdateBridgeQuoteRequestParamsand reset byresetState(#8595)
Changed
- BREAKING: Add required
token_security_type_destination: string \| nulltoRequestParams,RequiredEventContextFromClient[InputSourceDestinationSwitched], and thecontextarg ofupdateBridgeQuoteRequestParams; emitted on every analytics event that includestoken_address_destination(#8595) - BREAKING:
getRequestParamsnow takes a second positional argumenttokenSecurityTypeDestination: string \| null(#8595) - Bump
@metamask/transaction-controllerfrom^64.3.0to^65.0.0(#8585, #8613) - Bump
@metamask/assets-controllerfrom^6.1.0to^6.2.1(#8590, #8622) - Bump
@metamask/assets-controllersfrom^104.3.0to^105.0.0(#8622)
@metamask/bridge-status-controller 71.1.0
Added
- Add optional
tokenSecurityTypeDestination?: string \| nulltoBridgeHistoryItem,StartPollingForBridgeTxStatusArgs[Serialized], and thesubmitTx/submitIntentarguments; when provided, it's persisted on the history item and emitted astoken_security_type_destinationon post-submit analytics events (#8595)
Changed
- Bump
@metamask/transaction-controllerfrom^64.3.0to^65.0.0(#8585, #8613) - Bump
@metamask/bridge-controllerfrom^70.2.0to^71.0.0(#8622)
@metamask/transaction-pay-controller 20.0.1
Changed
943.0.0
@metamask/chomp-api-service 2.0.0
Changed
- BREAKING: Change
AssociateAddressParams.timestamptype fromstringtonumber. (#8610)
@metamask/money-account-upgrade-controller 1.2.0
Changed
- Bump
@metamask/chomp-api-servicefrom^1.0.0to^2.0.0(#8618)
Fixed
- Send the CHOMP authentication timestamp as a number instead of a string in the associate-address step. (#8610)
942.0.0
@metamask/transaction-controller 65.0.0
Added
- Expose
TransactionController:wipeTransactionsmethod throughTransactionControllermessenger (#8592)
Changed
estimateGasBatchnow skips the EIP-7702 path when the account's keyring does not support it, falling back to per-transaction gas estimation (#8388)doesAccountSupportEIP7702now returnsfalseinstead oftruewhen the account is not found in any keyring (#8388)- BREAKING: Add
KeyringControllerGetStateActiontoAllowedActionsto enable keyring-based EIP-7702 account compatibility checks inaddTransactionBatch(#8388)addTransactionBatchnow automatically checks whether the account's keyring supports EIP-7702 before attempting the 7702 batch path, falling back to STX/sequential when unsupported- Clients must add
KeyringController:getStateto the TransactionController messenger's allowed actions
Fixed
- Fix batch transaction signing so each transaction is signed sequentially, preventing remaining hardware wallet prompts from appearing after a rejection (#8388)
@metamask/transaction-pay-controller 20.0.0
Changed
- Rename
executeEnabledfeature flag togaslessEnabled(#8607) - Bump
@metamask/transaction-controllerfrom^64.3.0to^65.0.0(#8585, #8613) - Bump
@metamask/assets-controllerfrom^6.1.0to^6.2.0(#8590)
Fixed
- Fall back from Across to later pay strategies when Across quotes would require a first-time EIP-7702 authorization list (#8577)
- BREAKING: Fix mUSD conversion for hardware wallets on EIP-7702 chains by gating relay and Across 7702 paths on the account keyring type via
KeyringController:getState(#8388)- The
TransactionPayControllerMessengernow requiresKeyringController:getStatepermission.
- The