All notable changes to this project will be documented in this file.
The format is based on Keep a Changelog, and this project adheres to Semantic Versioning.
- BREAKING: Bump
@metamask/subscription-controllerfrom^7.0.0to^8.0.0(#9903)- Exported
DefaultActionsand root-messengerSubscriptionController:*actions pick up the 8.0.0 renames:SubscriptionController:startShieldSubscriptionWithCardis nowSubscriptionController:startSubscriptionWithCard, andSubscriptionController:submitShieldSubscriptionCryptoApprovalis nowSubscriptionController:submitSubscriptionCryptoApproval. submitSubscriptionCryptoApprovalandcacheLastSelectedPaymentMethodnow take a single request object instead of positional arguments.- Exported
DefaultState['SubscriptionController']changes:lastSelectedPaymentMethodisPartial,PricingPaymentMethodandTokenPaymentInfoare discriminated unions, andTokenPaymentInfo.conversionRateis optional. Narrow withtype === 'crypto'/isVaultShare === truebefore reading crypto- or vault-only fields.
- Exported
- Bump
@metamask/transaction-controllerfrom^69.5.1to^69.5.2(#9823)
- BREAKING: Wire
ClaimsServiceandClaimsControllerinto the default wallet initialization (#9588)- Adds an optional
claimsServiceslot toinstanceOptionsfor optionalenv(defaults to production),captureException,queryClientConfig, andpolicyOptions.fetchFunctiondefaults toglobalThis.fetchviaClaimsService. ClaimsServicedelegatesAuthenticationController:getBearerTokenandAuthenticationController:getSessionProfile; hosts must registerAuthenticationControlleron the supplied root messenger before authenticated Claims API calls succeed.- Consumers that pass their own root messenger and already wire
ClaimsService/ClaimsControllermust remove their own before upgrading, or the duplicate registration will collide.
- Adds an optional
- BREAKING: Wire
ShieldControllerandShieldApiServiceinto the default wallet initialization (#9616)- Adds an optional
shieldApiServiceslot toinstanceOptionsfor optionalenv(defaults to production), polling, and policy configuration.fetchFunctiondefaults toglobalThis.fetchviaShieldApiService. shieldControllerinstance options are now controller-only (transactionHistoryLimit,coverageHistoryLimit,normalizeSignatureRequest).ShieldApiServicedelegatesAuthenticationController:getBearerToken;ShieldControllerdelegatesShieldApiService:*actions plusTransactionController:stateChangeandSignatureController:stateChange.- Hosts must register
AuthenticationControllerandSignatureControlleron the wallet root messenger and explicitly callShieldController:startafter wiring. - Consumers that pass their own root messenger and already wire
ShieldApiService/ShieldControllermust remove their own before upgrading, or the duplicate registration will collide.
- Adds an optional
- BREAKING: Wire
SubscriptionControllerandSubscriptionServiceinto the default wallet initialization (#9598)- Adds an optional
subscriptionServiceslot toinstanceOptionsfor optionalenv(defaults to production),captureException,queryClientConfig, andpolicyOptions.fetchFunctiondefaults toglobalThis.fetchviaSubscriptionService. - Adds an optional
subscriptionControllerslot toinstanceOptionsfor an optionalpollingInterval. SubscriptionServicedelegatesAuthenticationController:getBearerTokenandAuthenticationController:getSessionProfilefrom the wallet root messenger; hosts must registerAuthenticationControlleron the root messenger for authenticated subscription API calls.
- Adds an optional
- Add optional
instanceOptions.remoteFeatureFlagController.defaultFeatureFlagsto pass client-side default feature flags through toRemoteFeatureFlagController(#9747)
- Bump
@metamask/claims-controllerfrom^0.5.4to^0.6.0(#9809) - Bump
@metamask/shield-controllerfrom^5.1.3to^6.0.0(#9809) - Bump
@metamask/subscription-controllerfrom^6.2.2to^7.0.0(#9809) - Bump
@metamask/transaction-controllerfrom^69.4.0to^69.5.1(#9780, #9798) - Bump
@metamask/network-controllerfrom^35.0.0to^35.0.1(#9758) - Bump
@metamask/seedless-onboarding-controllerfrom^10.1.0to^10.1.1(#9779) - Bump
@metamask/accounts-controllerfrom^39.0.6to^39.1.0(#9791, #9807) - Bump
@metamask/keyring-controllerfrom^27.1.0to^27.1.1(#9791)
- BREAKING: Wire analytics into the default
NetworkControllerinitialization (#9270)- Adds an optional
instanceOptions.networkController.analyticsOptionsoption (isRpcEndpointUrlPublicandrpcServiceEventsSampleRate, both optional) that the controller uses to emitRPC Service UnavailableandRPC Service Degradedevents. - The
Walletroot messenger now requires theAnalyticsController:getStateandAnalyticsController:trackEventactions. Consumers must register handlers for them on the root messenger; a consumer that does not use analytics can register handlers that do nothing.
- Adds an optional
- Bump
@metamask/transaction-controllerfrom^69.2.1to^69.4.0(#9693, #9735) - Bump
@metamask/accounts-controllerfrom^39.0.5to^39.0.6(#9735) - Bump
@metamask/gas-fee-controllerfrom^26.3.0to^26.3.1(#9735) - Bump
@metamask/network-controllerfrom^34.0.0to^35.0.0(#9735) - Bump
@metamask/remote-feature-flag-controllerfrom^4.2.2to^5.0.0(#9735)
- Bump
@metamask/gas-fee-controllerfrom^26.2.4to^26.3.0(#9629)
- BREAKING: Wire
GasFeeControllerinto the default wallet initialization (#9527)- Adds a required
instanceOptions.gasFeeControlleroption whoseclientId(sent asX-Client-Idto the gas API) is required, so every client identifies itself; all other fields are optional and fall back to platform-agnostic defaults.
- Adds a required
- BREAKING Wire
SeedlessOnboardingControllerandPasskeyControllerinto the default wallet initialization (#9533)
- Bump
@metamask/transaction-controllerfrom^69.0.0to^69.2.1(#9568, #9589, #9593) - Bump
@metamask/seedless-onboarding-controllerfrom^10.0.3to^10.1.0(#9600)
- Bump
@metamask/transaction-controllerfrom^68.2.2to^69.0.0(#9421, #9456, #9470) - Bump
@metamask/connectivity-controllerfrom^0.2.0to^0.3.0(#9435) - Bump
@metamask/accounts-controllerfrom^39.0.4to^39.0.5(#9470)
- BREAKING: Wire
TransactionControllerinto the default wallet initialization (#8975)
- Bump
@metamask/messengerfrom^1.2.0to^2.0.0(#9392)
- BREAKING: Wire
AddressBookControllerinto the default wallet initialization (#9291)
- Bump
@metamask/accounts-controllerfrom^39.0.3to^39.0.4(#9349) - Bump
@metamask/network-controllerfrom^33.0.0to^34.0.0(#9349)
- BREAKING: Add
NetworkControllerinitialization (#9001)- Passing
instanceOptions.networkController.infuraProjectIdis now required.
- Passing
- Add the
Wallet.initfunction which callsiniton required instances (#9001)
- Bump
@metamask/accounts-controllerfrom^39.0.2to^39.0.3(#9231)
- BREAKING: Add
AccountsControllerandConnectivityControlleras default initialized controllers (#8924)- Passing
instanceOptions.connectivityController.connectivityAdapteris now required. - Export
AlwaysOnlineAdapterfrom the package root for environments without a platform-specific network API (e.g. Node/tests).
- Passing
- BREAKING: Wire
RemoteFeatureFlagControllerinto the default wallet initialization (#8969)- The default
Walletnow constructs aRemoteFeatureFlagControllerand registers itsRemoteFeatureFlagController:*messenger actions. Consumers that pass their ownmessengerand already wire aRemoteFeatureFlagControllermust remove their own before upgrading, or the duplicate registration will collide. - Adds a required
remoteFeatureFlagControllerslot toinstanceOptions.clientConfigApiServiceis required (each client injects aClientConfigApiServiceconfigured for its own client type, distribution, and environment);getMetaMetricsId,clientVersion,prevClientVersion,fetchInterval, anddisabledare optional.prevClientVersionlets consumers trigger feature-flag cache invalidation when the client version changes between sessions.
- The default
- Bump
@metamask/utilsfrom^11.9.0to^11.11.0(#9074) - Bump
@metamask/controller-utilsfrom^12.1.1to^12.3.0(#9083, #9218) - Bump
@metamask/keyring-controllerfrom^27.0.0to^27.1.0(#9129) - Bump
@metamask/accounts-controllerfrom^39.0.1to^39.0.2(#9218)
- BREAKING: Wire
ApprovalControllerinto the default wallet initialization (#8953)- The default
Walletnow constructs anApprovalControllerand registers itsApprovalController:*messenger actions. Consumers that pass their ownmessengerand already wire anApprovalControllermust remove their own before upgrading, or the duplicate registration will collide. - Adds an
approvalControllerslot toinstanceOptionswithshowApprovalRequest(the callback that surfaces pending approval requests to the user; defaults to a no-op) andtypesExcludedFromRateLimiting(the approval types exempt from per-origin rate limiting; defaults to a baseline of EVM approval types). Both let consumers (extension, mobile, wallet-cli) inject their platform-specific values.
- The default
- Bump
@metamask/approval-controllerfrom^9.0.1to^9.0.2(#9058) - Bump
@metamask/controller-utilsfrom^12.1.0to^12.1.1(#9058) - Bump
@metamask/keyring-controllerfrom^26.0.0to^27.0.0(#9058) - Bump
@metamask/storage-servicefrom^1.0.1to^1.0.2(#9058)
- Add
keyringV2Buildersto thekeyringControllerinstance options, forwarded to theKeyringControllerconstructor (#8956) - BREAKING: Add
StorageServiceinitialization (#8946)- Passing
instanceOptions.storageService.storageis now required.
- Passing
- Export
importSecretRecoveryPhrasefrom the package root (#8952)
- Bump
@metamask/keyring-controllerfrom^25.5.0to^26.0.0(#8912)
- Initial release (#8838)