Releases: MetaMask/core
Releases · MetaMask/core
1029.0.0
1028.0.0
@metamask/bridge-controller 75.0.0
Added
- Add
QUICK_BUY_FOLLOW_TRADING,QUICK_BUY_TOKEN_DETAILS,BATCH_SELLandUNIFIED_SWAP_BRIDGEto FeatureId enum (#8964) - Update metrics schema with
batch_idproperty (#8964) - Add
ARCnetwork support (#9007)- Add
ARCinto constantsALLOWED_BRIDGE_CHAIN_IDS,SWAPS_TOKEN_OBJECTandNETWORK_TO_NAME_MAP
- Add
Changed
- BREAKING: require all events to have the
feature_idproperty (#8964) - BREAKING: require FeatureId argument when calling
BridgeController:fetchQuotes(#8964) - Rename FeatureIds to match segment property conventions (#8964)
quickBuytoquick_buy_follow_tradingandquick_buy_token_detailsdappSwaptodapp_swap
- Bump
@metamask/accounts-controllerfrom^39.0.0to^39.0.1(#9058) - Bump
@metamask/assets-controllerfrom^8.3.2to^8.3.3(#9058) - Bump
@metamask/assets-controllersfrom^108.5.0to^108.6.0(#9058) - Bump
@metamask/controller-utilsfrom^12.1.0to^12.1.1(#9058) - Bump
@metamask/transaction-controllerfrom^67.0.0to^67.1.0(#9066)
1027.0.0
@metamask/account-tree-controller 7.5.2
Changed
- Bump
@metamask/accounts-controllerfrom^39.0.0to^39.0.1(#9058) - Bump
@metamask/keyring-controllerfrom^26.0.0to^27.0.0(#9058) - Bump
@metamask/multichain-account-servicefrom^10.0.2to^10.0.3(#9058)
@metamask/accounts-controller 39.0.1
Changed
- Bump
@metamask/keyring-controllerfrom^26.0.0to^27.0.0(#9058)
@metamask/approval-controller 9.0.2
Changed
- Bump
@metamask/messengerfrom^1.0.0to^1.2.0(#8364, #8373, #8632) - Bump
@metamask/base-controllerfrom^9.0.1to^9.1.0(#8457)
@metamask/assets-controller 8.3.3
Changed
- Bump
@metamask/network-enablement-controllerfrom^5.2.0to^5.3.0(#9003) - Bump
@metamask/transaction-controllerfrom^66.0.1to^67.0.0(#9021) - Bump
@metamask/account-tree-controllerfrom^7.5.1to^7.5.2(#9058) - Bump
@metamask/accounts-controllerfrom^39.0.0to^39.0.1(#9058) - Bump
@metamask/assets-controllersfrom^108.5.0to^108.6.0(#9058) - Bump
@metamask/controller-utilsfrom^12.1.0to^12.1.1(#9058) - Bump
@metamask/core-backendfrom^6.3.2to^6.3.3(#9058) - Bump
@metamask/keyring-controllerfrom^26.0.0to^27.0.0(#9058)
@metamask/assets-controllers 108.6.0
Added
- Add
isDeprecatedoption toTokenRatesControllerconstructor (#9033)- When
isDeprecated()returnstrue, no network requests are sent andmarketDatais reset to{}at construction and at every entry point (updateExchangeRates,_executePoll,TokensController:stateChange, andNetworkController:stateChange), so no stale rates remain in state. - The function is re-evaluated on each entry point so it can be toggled at runtime without reconstructing the controller.
- When
- Add
isDeprecatedoption toTokenBalancesControllerconstructor (#9033)- When
isDeprecated()returnstrue, no network requests are sent andtokenBalancesis reset to{}at construction and at every entry point (updateBalances,_executePoll,TokensController:stateChange,NetworkController:stateChange,KeyringController:accountRemoved,AccountsController:selectedEvmAccountChange, and theAccountActivityServiceevents), so no stale balances remain in state. - The function is re-evaluated on each entry point so it can be toggled at runtime without reconstructing the controller.
- When
- Add
isDeprecatedoption toAccountTrackerControllerconstructor (#9033)- When
isDeprecated()returnstrue, no network requests are sent andaccountsByChainIdis reset to{}at construction and at every entry point (refresh,refreshAddresses,_executePoll,syncBalanceWithAddresses,updateNativeBalances, andupdateStakedBalances), so no stale balances remain in state. - The function is re-evaluated on each entry point so it can be toggled at runtime without reconstructing the controller.
- When
Changed
- Bump
@metamask/network-enablement-controllerfrom^5.2.0to^5.3.0(#9003) - Bump
@metamask/transaction-controllerfrom^66.0.1to^67.0.0(#9021) - Bump
@metamask/account-tree-controllerfrom^7.5.1to^7.5.2(#9058) - Bump
@metamask/accounts-controllerfrom^39.0.0to^39.0.1(#9058) - Bump
@metamask/approval-controllerfrom^9.0.1to^9.0.2(#9058) - Bump
@metamask/controller-utilsfrom^12.1.0to^12.1.1(#9058) - Bump
@metamask/core-backendfrom^6.3.2to^6.3.3(#9058) - Bump
@metamask/keyring-controllerfrom^26.0.0to^27.0.0(#9058) - Bump
@metamask/multichain-account-servicefrom^10.0.2to^10.0.3(#9058) - Bump
@metamask/storage-servicefrom^1.0.1to^1.0.2(#9058)
@metamask/bridge-status-controller 72.0.3
Changed
- Bump
@metamask/transaction-controllerfrom^66.0.1to^67.0.0(#9021) - Bump
@metamask/bridge-controllerfrom^73.2.1to^74.0.0(#9045) - Bump
@metamask/accounts-controllerfrom^39.0.0to^39.0.1(#9058) - Bump
@metamask/controller-utilsfrom^12.1.0to^12.1.1(#9058) - Bump
@metamask/keyring-controllerfrom^26.0.0to^27.0.0(#9058)
@metamask/claims-controller 0.5.3
Changed
- Bump
@metamask/controller-utilsfrom^12.1.0to^12.1.1(#9058) - Bump
@metamask/keyring-controllerfrom^26.0.0to^27.0.0(#9058)
@metamask/config-registry-controller 0.4.1
Changed
- Bump
@metamask/remote-feature-flag-controllerfrom^4.2.1to^4.2.2(#8986) - Bump
@metamask/controller-utilsfrom^12.1.0to^12.1.1(#9058) - Bump
@metamask/keyring-controllerfrom^26.0.0to^27.0.0(#9058)
@metamask/controller-utils 12.1.1
Changed
- Update
NetworkNicknameto match latest client overrides (#9005)
@metamask/core-backend 6.3.3
Changed
- Bump
@metamask/accounts-controllerfrom^39.0.0to^39.0.1(#9058) - Bump
@metamask/controller-utilsfrom^12.1.0to^12.1.1(#9058) - Bump
@metamask/keyring-controllerfrom^26.0.0to^27.0.0(#9058)
@metamask/delegation-controller 3.0.2
Changed
- Bump
@metamask/keyring-controllerfrom^26.0.0to^27.0.0(#9058)
@metamask/keyring-controller 27.0.0
Changed
- BREAKING:
exportSeedPhraseandexportAccountnow takeCredentials({ password }|{ encryptionKey, encryptionSalt? }) instead of a bare password string (#8996)
Fixed
- Automatically remove and destroy non-primary keyrings whose last account is removed during a
withKeyringorwithKeyringV2callback (#8951)- Previously, draining a keyring of all its accounts via these APIs left an empty keyring entry in
state.keyringsand persisted it in the vault. - Pre-existing empty keyrings (e.g. those created intentionally via
addNewKeyringwithout subsequent account creation) are still preserved, matching the behavior ofremoveAccount. - The primary keyring is never auto-removed, even if drained; this preserves the existing
removeAccountinvariant against losing the primary keyring.
- Previously, draining a keyring of all its accounts via these APIs left an empty keyring entry in
@metamask/money-account-controller 0.3.3
Changed
- Bump
@metamask/accounts-controllerfrom^39.0.0to^39.0.1(#9058) - Bump
@metamask/keyring-controllerfrom^26.0.0to^27.0.0(#9058)
@metamask/money-account-upgrade-controller 2.0.4
Changed
- Bump
@metamask/delegation-controllerfrom^3.0.1to^3.0.2(#9058) - Bump
@metamask/keyring-controllerfrom^26.0.0to^27.0.0(#9058)
@metamask/multichain-account-service 10.0.3
Changed
- Bump
@metamask/accounts-controllerfrom^39.0.0to^39.0.1(#9058) - Bump
@metamask/keyring-controllerfrom^26.0.0to^27.0.0(#9058) - Bump
@metamask/snap-account-servicefrom^0.3.0to^0.3.1(#9058)
@metamask/notification-services-controller 24.1.3
Changed
- Bump
@metamask/controller-utilsfrom^12.1.0to^12.1.1(#9058) - Bump
@metamask/keyring-controllerfrom^26.0.0to^27.0.0(#9058)
@metamask/profile-metrics-controller 3.2.0
Added
- Add proof of ownership API wiring pre-requisites (#8974)
- Add
ProfileMetricsService:fetchNoncesmessenger action wrappingPOST /api/v2/nonce/batch. - Add optional
prooffield on accounts submitted viaProfileMetricsService:submitMetricsso that the auth API can use it to mark accounts asverified: true.
- Add
Changed
- Bump
@metamask/transaction-controllerfrom^66.0.1to^67.0.0([#9021](https://github.com/...
1026.0.0
@metamask/bridge-controller 74.0.0
Added
- BREAKING: Add required
stxEnabledparameter toupdateBatchSellTrades,fetchBatchSellTrades, andformatBatchSellTradesRequest. The flag is sent to the obtainGaslessBatch API so the backend can estimate gas costs more precisely when Smart Transactions are enabled. (#9036)
Changed
- Bump
@metamask/transaction-controllerfrom^66.0.1to^67.0.0(#9021)
1025.0.0
@metamask/perps-controller 8.0.0
Added
- Centralise market category classification so consumers share one model instead of re-deriving it per client (#9009)
- Export
getMarketTypeFilter(resolves a market to its UI category filter with singular values aligned toMarketCategory) andisHip3Market.getMarketTypeFilterandmatchesCategorytreat amarketSourceDEX id as a HIP-3 signal consistently, so partial (route-param) markets classify the same way in both. - Export the pure
matchesCategoryandapplyMarketFiltershelpers (moved fromMarketDataService).
- Export
Changed
- BREAKING: Align
MarketTypeFilterandMARKET_CATEGORIESvalues withMarketCategorysingular values (#9009)- Replace
stockswithstock,indiceswithindex,etfswithetf, andcommoditieswithcommodity.
- Replace
- Reclassify
xyz:CBRS(Cerebras) fromstocktopre-ipoand addxyz:IPOP(Quantinuum) aspre-ipoinHIP3_ASSET_MARKET_TYPES, so all three Pre-IPO Perpetual markets on trade.xyz (CBRS, SPCX, IPOP) display under the Pre-IPO category (#9038)
@metamask/transaction-pay-controller 23.3.0
Changed
- Fix fiat
moneyAccountDepositfailing after on-ramp settlement by addinggetAmountDatacallback for calldata re-encoding, correcting wallet address, quote amount, slippage validation, and switching to a three-phase relay flow with fee-as-buffer strategy; simple deposits (Perps, Predict) skip to a single EXACT_INPUT relay quote for cheaper fees (#8987)
1024.0.0
1023.0.0
1022.0.0
@metamask/transaction-controller 67.0.0
Changed
- BREAKING: Remove deprecated
TransactionControllerconstructor options and unused hooks, and replace them with direct messenger calls (#8983)- Removed options:
disableHistory,disableSendFlowHistory,getCurrentAccountEIP1559Compatibility,getCurrentNetworkEIP1559Compatibility,getExternalPendingTransactions,getGasFeeEstimates,getNetworkClientRegistry,getNetworkState,pendingTransactions,securityProviderRequest,sign,transactionHistoryLimit - Removed hooks:
afterSign,afterSimulate,getAdditionalSignArguments - Moved hook:
isTimeoutEnabledis now a root constructor option instead of a hook - Removed types:
AfterSimulateHook,PendingTransactionOptions,SecurityProviderRequest;AfterAddHookparameterskipSimulationremoved - Added required
AllowedActions:GasFeeController:fetchGasFeeEstimates,KeyringController:signTransaction,NetworkController:getEIP1559Compatibility,NetworkController:getNetworkClientRegistry,NetworkController:getState - Removed resubmit logic from
PendingTransactionTracker
- Removed options:
@metamask/transaction-pay-controller 23.2.0
Added
- Adding processing for postQuote transactions with paymentOverride defined (#8967)
- Add
@metamask/keyring-controller^26.0.0as a dependency (#8972)- The package was already imported at runtime by
src/strategy/relay/hyperliquid-withdraw.tsbut wasn't declared inpackage.json; this PR fixes the omission.
- The package was already imported at runtime by
Changed
- Fiat quote submission now treats the provider code (e.g.
transak-native) as the canonical form when resolving the provider from a ramps quote, while continuing to accept the legacy path form (e.g./providers/transak-native) for backwards compatibility (#9004) - Live token balance queries now respect the
confirmations_pay_extended.excludeChainIdsFromInfurafeature flag, skipping the Infura endpoint preference for excluded chains (#8992) - Bump
@metamask/assets-controllersfrom^108.3.0to^108.5.0(#8981, #8999) - Bump
@metamask/assets-controllerfrom^8.0.2to^8.3.2(#8981, #8985, #8999) - Bump
@metamask/remote-feature-flag-controllerfrom^4.2.1to^4.2.2(#8986) - Bump
@metamask/ramps-controllerfrom^14.1.0to^14.1.1(#8989) - Bump
@metamask/bridge-status-controllerfrom^72.0.0to^72.0.2(#8990, #8999) - Bump
@metamask/bridge-controllerfrom^73.2.0to^73.2.1(#8999) - Bump
@metamask/transaction-controllerfrom^66.0.0to^67.0.0(#8999, #9021, #9027)
1021.0.0
1020.0.0
@metamask/account-tree-controller 7.5.1
Changed
- Bump
@metamask/accounts-controllerfrom^38.1.2to^39.0.0(#8999) - Bump
@metamask/multichain-account-servicefrom^10.0.1to^10.0.2(#8999)
@metamask/accounts-controller 39.0.0
Changed
- BREAKING: Re-publish
SnapAccountService:account{AssetList,Balances,Transactions}Updatedevents asAccountsController:account{AssetList,Balances,Transactions}Updatedevents (#8978)- Now requires
SnapAccountService:account{AssetList,Balances,Transactions}Updatedevents to be registered on the messenger. - No longer requires
SnapKeyring:account{AssetList,Balances,Transactions}Updatedevents to be registered on the messenger.
- Now requires
@metamask/assets-controller 8.3.2
Changed
- Bump
@metamask/account-tree-controllerfrom^7.5.0to^7.5.1(#8999) - Bump
@metamask/accounts-controllerfrom^38.1.2to^39.0.0(#8999) - Bump
@metamask/assets-controllersfrom^108.4.0to^108.5.0(#8999) - Bump
@metamask/core-backendfrom^6.3.1to^6.3.2(#8999) - Bump
@metamask/transaction-controllerfrom^66.0.0to^66.0.1(#8999)
@metamask/assets-controllers 108.5.0
Added
- Add
isDeprecatedoption toTokenListControllerconstructor, a function that returns whether the controller should be disabled (#8945)- When
isDeprecated()returnstrue, every fetching entry point (initialize(),start(),restart(),_executePoll(), andfetchTokenList()) resetstokensChainsCacheto{}, cancels any pending debounced persist (so a stale entry can't write old data after the in-memory reset), and overwrites every persistedtokensChainsCache:*entry inStorageServicewith{ data: {}, timestamp: 0 }. No HTTP calls are issued to the token API. - The function is re-evaluated on each entry point so it can be toggled at runtime without reconstructing the controller — including from inside any deprecated
setIntervalalready running from a priorstart().
- When
Changed
- Bump
@metamask/account-tree-controllerfrom^7.5.0to^7.5.1(#8999) - Bump
@metamask/accounts-controllerfrom^38.1.2to^39.0.0(#8999) - Bump
@metamask/core-backendfrom^6.3.1to^6.3.2(#8999) - Bump
@metamask/multichain-account-servicefrom^10.0.1to^10.0.2(#8999) - Bump
@metamask/transaction-controllerfrom^66.0.0to^66.0.1(#8999)
@metamask/bridge-controller 73.2.1
Changed
- Bump
@metamask/assets-controllersfrom^108.2.0to^108.5.0(#8941, #8981, #8999) - Bump
@metamask/assets-controllerfrom^8.1.0to^8.3.2(#8943, #8981, #8985, #8999) - Bump
@metamask/remote-feature-flag-controllerfrom^4.2.1to^4.2.2(#8986) - Bump
@metamask/accounts-controllerfrom^38.1.2to^39.0.0(#8999) - Bump
@metamask/multichain-network-controllerfrom^3.1.2to^3.1.3(#8999) - Bump
@metamask/transaction-controllerfrom^66.0.0to^66.0.1(#8999)
@metamask/bridge-status-controller 72.0.2
Changed
- Bump
@metamask/accounts-controllerfrom^38.1.2to^39.0.0(#8999) - Bump
@metamask/bridge-controllerfrom^73.2.0to^73.2.1(#8999) - Bump
@metamask/transaction-controllerfrom^66.0.0to^66.0.1(#8999)
@metamask/core-backend 6.3.2
Changed
- Bump
@metamask/accounts-controllerfrom^38.1.2to^39.0.0(#8999)
@metamask/money-account-controller 0.3.2
Changed
- Bump
@metamask/accounts-controllerfrom^38.1.2to^39.0.0(#8999)
@metamask/multichain-account-service 10.0.2
Changed
- Bump
@metamask/accounts-controllerfrom^38.1.2to^39.0.0(#8999) - Bump
@metamask/snap-account-servicefrom^0.2.1to^0.3.0(#8999)
@metamask/multichain-api-middleware 3.1.3
Changed
@metamask/multichain-network-controller 3.1.3
Changed
@metamask/multichain-transactions-controller 7.1.1
Changed
- Bump
@metamask/accounts-controllerfrom^38.0.0to^39.0.0(#8755, #8774, #8912, #8999) - Bump
@metamask/polling-controllerfrom^16.0.4to^16.0.6(#8755, #8834)
@metamask/profile-metrics-controller 3.1.6
Changed
- Bump
@metamask/accounts-controllerfrom^38.1.2to^39.0.0(#8999) - Bump
@metamask/transaction-controllerfrom^66.0.0to^66.0.1(#8999)
@metamask/signature-controller 39.2.4
Changed
- Bump
@metamask/accounts-controllerfrom^38.1.2to^39.0.0(#8999)
@metamask/snap-account-service 0.3.0
Added
- Add
SnapAccountService:account{AssetList,Balances,Transactions}Updatedevents (#8916)
Changed
- Faster
:getLegacySnapKeyring(#8865)- We now check if the keyring exists with
:withKeyringUnsafeand returns it right away. - If the keyring does not exist yet, we do create it with
:withController(next calls will then be faster thanks to:withKeyringUnsafepre-check).
- We now check if the keyring exists with
- Bump
@metamask/account-tree-controllerfrom^7.5.0to^7.5.1(#8999)
Fixed
- Re-publish account-data update events from
:handleKeyringSnapMessagewithout requiring the legacy Snap keyring. - Prevent double-lock in
:handleKeyringSnapMessagefor some events/methods (#8860)- The service messenger now requires the
KeyringController:withKeyringUnsafeaction. - We now check if the keyring is available before delegating those messages.
- We still auto-create the keyring in some specific calls (e.g
notify:accountCreated).
- The service messenger now requires the
Removed
- Removed
initin favor of synchronous initialization when constructing the service (#8877)
@metamask/transaction-controller 66.0.1
Changed
- Bump
@metamask/accounts-controllerfrom^38.1.1to^39.0.0(#8912, #8999) - Bump
@metamask/core-backendfrom^6.3.0to^6.3.2(#8912, #8999) - Bump
@metamask/remote-feature-flag-controllerfrom^4.2.1to^4.2.2(#8986)
Fixed
- Include Mantle operator fee in the displayed L1 gas estimate when simulated
gasUsedis unavailable, by falling back to the transaction's gas limit (#8837)- Adds a
protected getOperatorFeeGashook onOracleLayer1GasFeeFlowthat subclasses can override to supply a fallback value. The default behaviour is unchanged (returnstransactionMeta.gasUsed). MantleLayer1GasFeeFlowoverrides the hook withgasUsed ?? txParams.gas ?? txParams.gasLimit, so the operator-fee oracle is called with the gas limit whengasUsedis missing. Gas limit is an upper bound on actual gas used, so the operator fee is over-estimated rather than under-reported.
- Adds a
- Fix
ExtraTransactionsPublishHooknot passingisInternal: truewhen callingaddTransactionBatch, causing the duplicate-batch-ID guard to incorrectly throwDuplicateBundleId(error 5720) for nested ERC-20 gas-fee-token transfers that share abatchIdwith their parent batch (#8884)