Releases: MetaMask/core
Releases · MetaMask/core
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
941.0.0
940.0.0
939.0.0
938.0.0
@metamask/passkey-controller 1.0.0
Added
- Initial
@metamask/passkey-controller(#8422):PasskeyControllerfor WebAuthn passkey vault key protection (HKDF-derived keys, AES-256-GCM wrap/unwrap), PRF oruserHandlederivation, challenge-keyedCeremonyManager, enrollment/unlock/renewal flows,verifyPasskeyAuthentication, selectors, and exported ceremony timing constants. PasskeyControllerErrorwith stablecode, optionalcause/context,toJSON, andtoString;PasskeyControllerErrorCode,PasskeyControllerErrorMessage, andcontrollerName. ReplacesPasskeyAuthenticationRejectedError—usePasskeyControllerErrorandcodefor auth failures.- BREAKING: Operational error messages are prefixed with
PasskeyController -; prefercodeorinstanceof PasskeyControllerErrorover matching raw strings. renewVaultKeyProtectionuses the samevault_key_decryption_failedcode asretrieveVaultKeyWithPasskeywhen AES-GCM decrypt fails.- Thrown failures from
verifyRegistrationResponse/verifyAuthenticationResponseare wrapped inPasskeyControllerErrorwithregistration_verification_failed/authentication_verification_failedand the underlying error ascause(aligned with theverified: falsepath). - Debug logging (via
@metamask/utils) for registration/authentication verification failures, missing ceremony state, vault decrypt failures, and vault key mismatch during renewal.
Fixed
- Registration verification requires the credential
id/rawIdto match the credential id in authenticator data; vault wrapping key derivation uses that verified credential id so enrollment keys align with the stored credential. - Registration options request attestation conveyance
'none'so clients are not asked for direct attestation formats the verifier does not implement (noneand self-attestedpackedonly).
937.0.0
@metamask/assets-controller 6.2.0
Added
- Add
CustomAssetGraduationMiddlewarethat removes an EVM asset fromcustomAssets[selectedAccount]whenAccountsApiDataSourceorBackendWebsocketDataSourcereports a balance for it (#8582)- Non-EVM custom assets (Solana, BTC, Tron) are not affected.
RpcDataSourcecontinues to be the sole balance fetcher for assets still incustomAssets.
- Add
RpcFallbackMiddlewareto the fast pipeline so chains that error inresponse.errors(network error,unprocessedNetworks, timeout) fall back toRpcDataSource(#8582)- Successful RPC results are merged into the response and recovered chains are cleared from
response.errors.
- Successful RPC results are merged into the response and recovered chains are cleared from
- Add a configurable
fetchTimeoutMsoption (default15000) toAccountsApiDataSource,PriceDataSource, andTokenDataSource(#8582)- On timeout, AccountsAPI marks every requested chain as errored so
RpcFallbackMiddlewarepicks them up; price and token enrichment degrade gracefully.
- On timeout, AccountsAPI marks every requested chain as errored so
- Add
fetchWithTimeoututility that races an async task against a timeout (#8582)
Changed
- Bump
@metamask/transaction-controllerfrom^64.3.0to^64.4.0(#8585)
Fixed
- Handle trace callback returning
undefinedwithout throwing (#8586)
936.0.0
@metamask/transaction-controller 64.4.0
Changed
- Snapshot
txParamsOriginalinupdateEditableParamswhencontainerTypesare first applied (#8546) - Add
requiresAuthorizationListtoTransactionController:estimateGasBatchresults when EIP-7702 batch gas estimation requires a first-time account upgrade (#8577)
Fixed
- Gas estimation for EIP-7702 transactions now supports any upgrade-with-data transaction, not only self-targeted ones (#8467)