Repository navigation
Releases: MetaMask/core
Releases · MetaMask/core
Release list
1325.0.0
@metamask/kyc-controller 0.8.0
Added
- Added exported
KYC_STATUSESandTERMINAL_SESSION_STATUSES, so consumers can reuse the KYC status vocabulary and the terminal session-status set (approved,rejected,retry) from the package entry point instead of redefining them locally (#10771)
Changed
KycController.hasCompletedSessionDisclaimersnow reports completion from sessionconsentStatus === 'given'instead of fetching the session disclaimer catalog (#10760)- This no longer throws a 409 when the session is already in a terminal state
- Bump
@metamask/profile-sync-controllerfrom^34.0.2to^34.0.3(#10761)
1324.0.0
@metamask/social-controllers 3.7.0
Added
- Add optional
mutualsflag tofetchFollowers(FetchFollowersOptions). Whentrue, calls bearer-authenticatedGET /traders/:addressOrId/followers?mutuals=true(social-api #386);countis the mutual total. Omitted orfalsekeeps the full follower list (#10770) - Add
fetchMyFollowingmethod toSocialService(and theSocialService:fetchMyFollowingmessenger action) as an alias offetchFollowing. Both callGET /users/me/following. PreferfetchMyFollowingin new code so it pairs withfetchMyFollowers;fetchFollowingis unchanged (#10701) - Add
fetchTraderFollowingmethod toSocialService(and theSocialService:fetchTraderFollowingmessenger action) for another trader's outbound follows. Calls bearer-authenticatedGET /traders/:addressOrId/following(social-api #380) and returnsFollowingResponse(followingprofile summaries plus totalcount). Distinct fromfetchFollowing, which loads the current user's list viaGET /users/me/following.fetchFollowersuses the same auth model forGET /traders/:addressOrId/followers(#10689) - Add
fetchMyFollowersmethod toSocialService(and theSocialService:fetchMyFollowersmessenger action) for the authenticated user's inbound followers. CallsGET /users/me/followersand returnsFollowersResponse(followersprofile summaries plus totalcount) (#10649)
Changed
- Allow
boughtUsd,soldUsd,realizedPnl, andcostBasisto benullonPosition/ feed items, matching incomplete Clicker metrics the social-api may serialize as JSONnull(#10753) - Drop individual
fetchFeed,fetchTraderFeed, andfetchTokenFeeditems that fail validation instead of rejecting the whole page (#10753) - Update
SocialRealtimeServiceto subscribe to the trending Social feed channel and forward every valid event from batched notifications (#10751) - Bump
@metamask/profile-sync-controllerfrom^34.0.0to^34.0.3(#10752, #10756, #10761)
1323.0.0
@metamask/transaction-controller 72.2.0
Added
- Add
isTransactionTrustedtoTransactionControllerOptionsto limit future-block re-simulation to untrusted transactions (#10747)
Changed
- Bump
@metamask/network-controllerfrom^37.0.0to^37.0.1(#10658) - Bump
@metamask/core-backendfrom^12.0.0to^12.0.1(#10662) - Bump
@metamask/nonce-trackerfrom^6.0.0to^6.1.0(#10735) - Bump
ethereum-cryptographyfrom^2.2.1to^3.2.0(#10599)
Fixed
- Recognize Ink Mainnet and Ink Sepolia as OP Stack networks when estimating Layer 1 gas fees (#10707)
1322.0.0
@metamask/ramps-controller 27.0.1
Changed
- Bump
@metamask/profile-sync-controllerfrom^34.0.2to^34.0.3(#10761)
Fixed
hydrateVbaOnboardingreturnsneeds_wallet_registrationorneeds_source_currencyonly when the MoonPay customerstatusisActive.SigningsRequired,IdentificationRequired, and any other status returnnot_ready. A failed customer lookup returnsretryable_failure(#10766)registerMoneyAccountWalletrefuses to sign or post a self-hosted wallet unless that customerstatusisActive(#10766)
@metamask/transaction-pay-controller 30.0.3
Changed
- Bump
@metamask/ramps-controllerfrom^27.0.0to^27.0.1(#10767)
1321.0.0
1320.0.0
@metamask/kyc-controller 0.7.0
Added
- Add
KycController.readSessionStatus, which returnsstate.sessionStatusand does not start polling, andKycController.fetchSessionStatusOnce, which callsgetSessionStatusonce, writes the result onto state, and does not start the session-status timer. Both are messenger actions (#10749) - Add optional
aal2Tokenparameter toKycController.startSessionand theKycController:startSessionmessenger action (#10632)
Changed
- BREAKING:
KycService.createUkycSessionand theKycService:createUkycSessionmessenger action now require anaal2Tokenparameter, which is sent as theAuthorizationbearer value forPOST /sessionsinstead of the wallet bearer token fromAuthenticationController:getBearerToken(#10632)- Other
KycServicerequests continue to use the wallet bearer token
- Other
- BREAKING:
KycController.startSessionnow throws if no existing session is found andaal2Tokenis not provided (#10632)- Pass
aal2TokenwheneverstartSessionmay need to create a new UKYC session - Reusing the session already in state, or the latest vendor session, does not require
aal2Token
- Pass
- Increase the UKYC capability token lifetime from 4 hours to 72 hours (#10679)
- Bump
@noble/curvesfrom^1.9.2to^1.9.7(#10720) - Bump
@metamask/profile-sync-controllerfrom^34.0.0to^34.0.2(#10752, #10756)
@metamask/ramps-controller 27.0.0
Added
- Add
needs_source_currencytoVBA_AUTORAMP_STATUSESfor an approved, registered wallet that has no usable autoramp and was not given a source currency (#10743) - Add
buildMusdAutorampRequest, which builds the standing mUSD-on-Monad autoramp body for an explicit fiat code.buildBrazilMusdAutorampRequestremains the BRL wrapper (#10743) - Add persisted
moneyAccountWalletRegistrations(walletAddress,statusofactiveordisabled,updatedAt) andvbaAutorampListFetchedAtonRampsControllerstate (#10749) - Add
needs_wallet_registrationtoVbaOnboardingSnapshot.autorampStatusfor an approved session with no persisted registration row and no usable autoramp (#10749)
Changed
- BREAKING:
hydrateVbaOnboardingis a read. It returns KYC and autoramp facts from persisted state, and no longer signs a wallet, posts a self-hosted address, creates an autoramp, or starts the 15-second KYC poll. OptionalrefreshKycperforms oneGET /sessions/{id}/statuswhen a non-terminal session is already stored. OptionalrefreshAutorampsreplaces the autoramp cursor fromGET /neobank/autorampsunless that wallet already has a usable (not Rejected or Cancelled) route. An approved session with no registration row returnsneeds_wallet_registration.needs_source_currencynow means an approved session whose persisted registration isactiveordisabledand which has no usable autoramp.vbaAutorampListFetchedAtis set only when the autoramp list GET succeeds. A persisted KYC session owned by a different profile is discarded together withmoneyAccountWalletRegistrations, theautorampscursor, andvbaAutorampListFetchedAt(#10749)- The
sourceCurrencyCodeargument is removed. To create an autoramp, callcreateAutoramp(buildMusdAutorampRequest(walletAddress, code))instead of passing a code tohydrateVbaOnboarding - A failed one-shot KYC status GET keeps the persisted session instead of rejecting the read. A 404 clears that session and returns an empty snapshot
- The
- BREAKING:
RampsControllerMessengernow requiresKycController:readSessionStatusandKycController:fetchSessionStatusOnceinstead ofKycController:refreshSessionStatusandKycController:getSessionStatusForVendor(#10749) registerMoneyAccountWalletwrites amoneyAccountWalletRegistrationsrow afteralreadyRegistered,registered, orregisteredDisabled. The stored address is trimmed and lowercased. A lookup failure or a thrown signature writes nothing (#10749)createAutorampderives its idempotency key from the caller-supplied source fiat (brl-musd-monadversususd-musd-monad), the customer, the wallet, and rejected or cancelled autoramp ids. A caller-supplied key is used only when the body has no source fiat or recipient address (#10749)- Bump
@metamask/profile-sync-controllerfrom^34.0.0to^34.0.2(#10752, #10756)
@metamask/transaction-pay-controller 30.0.2
Changed
- Bump
@metamask/transaction-controllerfrom^72.0.1to^72.1.0(#10652) - Bump
@metamask/assets-controllerfrom^18.0.0to^18.0.1(#10658) - Bump
@metamask/network-controllerfrom^37.0.0to^37.0.1(#10658) - Bump
@metamask/ramps-controllerfrom^26.3.0to^27.0.0(#10759) - Bump
@metamask/ramps-controllerfrom^26.2.0to^26.3.0(#10741) - Bump
@metamask/ramps-controllerfrom^26.1.0to^26.2.0(#10662) - Bump
@metamask/sentinel-api-servicefrom^2.0.0to^2.1.0(#10746)
Fixed
- Always set
excludeNativeTokenForFeewhen origin gas is priced in the source token, so the fee shown in the quote is the fee the user is charged (#10404)- Previously only the across strategy opted in, so for the relay and server strategies the
TransactionControllerre-checked the native balance at publish time and silently dropped the gas fee token, billing the user in native token instead.
- Previously only the across strategy opted in, so for the relay and server strategies the
1319.0.0
@metamask/profile-sync-controller 34.0.2
Changed
- Bump
@metamask/seedless-onboarding-controllerfrom^11.0.1to^12.0.0(#10756)
@metamask/seedless-onboarding-controller 12.0.0
Added
- Expose
SeedlessOnboardingController:identifyIncompleteMetadataBackupso clients can identify incomplete primary SRP metadata backups after unlocking (#10568)
Changed
- BREAKING: Grant
SeedlessOnboardingControlleraccess toAnalyticsController:trackEventandKeyringController:exportSeedPhrase(#10568)- The
SeedlessOnboardingControllerMessengermust allow and delegate these actions.
- The
- Bump
@noble/curvesfrom^1.9.2to^1.9.7(#10720)
@metamask/subscription-controller 13.0.0
Added
- Add optional
isEligibleForRefundonStartSubscriptionRequestandStartCryptoSubscriptionRequest(#10674)- When the caller provides it,
SubscriptionControllersends that value and skips the geolocation check. - When omitted, the controller sets it from geolocation (EU 27 + EEA), or
falseif the lookup fails.
- When the caller provides it,
Changed
- BREAKING:
SubscriptionControllerMessengernow requiresGeolocationController:getGeolocationDatasostartSubscriptionWithCardandstartSubscriptionWithCryptocan resolve refund eligibility (#10674)- Clients that construct this messenger must delegate
GeolocationController:getGeolocationDatabefore calling those actions.
- Clients that construct this messenger must delegate
- Add
@metamask/geolocation-controller^2.0.0as a dependency (#10674) - BREAKING:
SubscriptionDelegationService:startSubscriptionWithDelegationno longer requests an approval. Callers must obtain consent and initiate funding (for example, amembershipSubscriptiontransaction) before calling. (#10666)skipApprovalis removed fromStartSubscriptionWithDelegationRequest.
- Bump
@metamask/profile-sync-controllerfrom^34.0.0to^34.0.2(#10752, #10756) - Bump
@metamask/seedless-onboarding-controllerfrom^11.0.1to^12.0.0(#10756)
Removed
- BREAKING: Remove the subscription delegation approval contracts. (#10666)
- Remove
SUBSCRIPTION_DELEGATION_APPROVAL_TYPE,SubscriptionFundingRequest, andSubscriptionDelegationApprovalResult. - Remove
ApprovalResultMissingandInvalidFundingTransactionHashfromSubscriptionDelegationServiceErrorMessage. SubscriptionDelegationServiceMessengerno longer allowsApprovalController:addRequest. Clients that construct this messenger must stop delegating that action.
- Remove
- Remove the
@metamask/approval-controllerdependency. (#10666)
@metamask/wallet 17.0.0
Changed
- BREAKING: Delegate
AnalyticsController:trackEventandKeyringController:exportSeedPhrasefrom the wallet root messenger toSeedlessOnboardingController. (#10568) - BREAKING: Grant
SubscriptionControlleraccess toGeolocationController:getGeolocationData(#10674)- The wallet does not construct
GeolocationController. Clients must register that action on the Wallet messenger.
- The wallet does not construct
- Stop delegating
ApprovalController:addRequesttoSubscriptionDelegationService. Client that supply their own root messenger no longer need to allow that action for the delegation service. (#10666) - Bump
@metamask/claims-controllerfrom^1.0.2to^1.0.3(#10662) - Bump
@metamask/shield-controllerfrom^7.0.3to^7.0.4(#10662) - Bump
@metamask/subscription-controllerfrom^12.0.0to^12.0.1(#10662) - Bump
@metamask/seedless-onboarding-controllerfrom^11.0.1to^12.0.0(#10756)
1318.0.0
1317.0.0
@metamask/sentinel-api-service 2.1.0
Added
- Add
getNetworkmethod andSentinelApiService:getNetworkaction to retrieve the configuration of a single network from the/networkendpoint (#10676)- Responses are cached for 5 minutes per chain.
- Throws
SentinelChainNotSupportedErrorif the chain is not in the supported-network registry. - Add
cubistSignersandsimulationIncludeFeesproperties to theSentinelNetworktype.
Changed
1316.0.0
@metamask/ramps-controller 26.3.0
Added
- Add
getPixDepositInstructionsandlistAutorampTransactionsso a client can show a PIX BR Code and poll autoramp transaction status (#10586) - Add
buildBrazilMusdAutorampRequestfor a standing BRL to mUSD autoramp on Monad (#10586) - Include
createdAton autoramp transaction summaries when MoonPay returnscreated_at(#10586)
Fixed
hydrateVbaOnboardingcreates that BRL to mUSD autoramp instead of posting an empty body (#10586)hydrateVbaOnboardingsends a stable idempotency key when creating the BRL to mUSD autoramp so a retry does not open a second route, and uses a different key when replacing a rejected or cancelled route (#10586)getAutorampsaccepts MoonPay's paged{ items }list, followscursoruntil the list is complete, and can be scoped withcustomerId(#10586)- Fall back to MoonPay
recipient.addresswhen mapping an autoramp wallet address (#10586)