Skip to content

Releases: MetaMask/core

1325.0.0

Choose a tag to compare

@github-actions github-actions released this 09 Oct 20:51
d407021

@metamask/kyc-controller 0.8.0

Added

  • Added exported KYC_STATUSES and TERMINAL_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.hasCompletedSessionDisclaimers now reports completion from session consentStatus === '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-controller from ^34.0.2 to ^34.0.3 (#10761)

1324.0.0

Choose a tag to compare

@github-actions github-actions released this 09 Oct 15:07
b6e51e2

@metamask/social-controllers 3.7.0

Added

  • Add optional mutuals flag to fetchFollowers (FetchFollowersOptions). When true, calls bearer-authenticated GET /traders/:addressOrId/followers?mutuals=true (social-api #386); count is the mutual total. Omitted or false keeps the full follower list (#10770)
  • Add fetchMyFollowing method to SocialService (and the SocialService:fetchMyFollowing messenger action) as an alias of fetchFollowing. Both call GET /users/me/following. Prefer fetchMyFollowing in new code so it pairs with fetchMyFollowers; fetchFollowing is unchanged (#10701)
  • Add fetchTraderFollowing method to SocialService (and the SocialService:fetchTraderFollowing messenger action) for another trader's outbound follows. Calls bearer-authenticated GET /traders/:addressOrId/following (social-api #380) and returns FollowingResponse (following profile summaries plus total count). Distinct from fetchFollowing, which loads the current user's list via GET /users/me/following. fetchFollowers uses the same auth model for GET /traders/:addressOrId/followers (#10689)
  • Add fetchMyFollowers method to SocialService (and the SocialService:fetchMyFollowers messenger action) for the authenticated user's inbound followers. Calls GET /users/me/followers and returns FollowersResponse (followers profile summaries plus total count) (#10649)

Changed

  • Allow boughtUsd, soldUsd, realizedPnl, and costBasis to be null on Position / feed items, matching incomplete Clicker metrics the social-api may serialize as JSON null (#10753)
  • Drop individual fetchFeed, fetchTraderFeed, and fetchTokenFeed items that fail validation instead of rejecting the whole page (#10753)
  • Update SocialRealtimeService to subscribe to the trending Social feed channel and forward every valid event from batched notifications (#10751)
  • Bump @metamask/profile-sync-controller from ^34.0.0 to ^34.0.3 (#10752, #10756, #10761)

1323.0.0

Choose a tag to compare

@github-actions github-actions released this 09 Oct 14:13
6c33efe

@metamask/transaction-controller 72.2.0

Added

  • Add isTransactionTrusted to TransactionControllerOptions to limit future-block re-simulation to untrusted transactions (#10747)

Changed

  • Bump @metamask/network-controller from ^37.0.0 to ^37.0.1 (#10658)
  • Bump @metamask/core-backend from ^12.0.0 to ^12.0.1 (#10662)
  • Bump @metamask/nonce-tracker from ^6.0.0 to ^6.1.0 (#10735)
  • Bump ethereum-cryptography from ^2.2.1 to ^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

Choose a tag to compare

@github-actions github-actions released this 09 Oct 13:34
183e071

@metamask/ramps-controller 27.0.1

Changed

  • Bump @metamask/profile-sync-controller from ^34.0.2 to ^34.0.3 (#10761)

Fixed

  • hydrateVbaOnboarding returns needs_wallet_registration or needs_source_currency only when the MoonPay customer status is Active. SigningsRequired, IdentificationRequired, and any other status return not_ready. A failed customer lookup returns retryable_failure (#10766)
  • registerMoneyAccountWallet refuses to sign or post a self-hosted wallet unless that customer status is Active (#10766)

@metamask/transaction-pay-controller 30.0.3

Changed

  • Bump @metamask/ramps-controller from ^27.0.0 to ^27.0.1 (#10767)

1321.0.0

Choose a tag to compare

@github-actions github-actions released this 08 Oct 19:44
891f992

@metamask/cryptography 1.1.2

Fixed

  • Only pass additionalData to AES-GCM encrypt and decrypt when it is provided, as browsers such as Chrome reject additionalData: undefined (#10757)

@metamask/profile-sync-controller 34.0.3

Changed

  • Bump @metamask/cryptography from ^1.1.1 to ^1.1.2 (#10761)

1320.0.0

Choose a tag to compare

@github-actions github-actions released this 08 Oct 19:11
5df0aa8

@metamask/kyc-controller 0.7.0

Added

  • Add KycController.readSessionStatus, which returns state.sessionStatus and does not start polling, and KycController.fetchSessionStatusOnce, which calls getSessionStatus once, writes the result onto state, and does not start the session-status timer. Both are messenger actions (#10749)
  • Add optional aal2Token parameter to KycController.startSession and the KycController:startSession messenger action (#10632)

Changed

  • BREAKING: KycService.createUkycSession and the KycService:createUkycSession messenger action now require an aal2Token parameter, which is sent as the Authorization bearer value for POST /sessions instead of the wallet bearer token from AuthenticationController:getBearerToken (#10632)
    • Other KycService requests continue to use the wallet bearer token
  • BREAKING: KycController.startSession now throws if no existing session is found and aal2Token is not provided (#10632)
    • Pass aal2Token whenever startSession may need to create a new UKYC session
    • Reusing the session already in state, or the latest vendor session, does not require aal2Token
  • Increase the UKYC capability token lifetime from 4 hours to 72 hours (#10679)
  • Bump @noble/curves from ^1.9.2 to ^1.9.7 (#10720)
  • Bump @metamask/profile-sync-controller from ^34.0.0 to ^34.0.2 (#10752, #10756)

@metamask/ramps-controller 27.0.0

Added

  • Add needs_source_currency to VBA_AUTORAMP_STATUSES for 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. buildBrazilMusdAutorampRequest remains the BRL wrapper (#10743)
  • Add persisted moneyAccountWalletRegistrations (walletAddress, status of active or disabled, updatedAt) and vbaAutorampListFetchedAt on RampsController state (#10749)
  • Add needs_wallet_registration to VbaOnboardingSnapshot.autorampStatus for an approved session with no persisted registration row and no usable autoramp (#10749)

Changed

  • BREAKING: hydrateVbaOnboarding is 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. Optional refreshKyc performs one GET /sessions/{id}/status when a non-terminal session is already stored. Optional refreshAutoramps replaces the autoramp cursor from GET /neobank/autoramps unless that wallet already has a usable (not Rejected or Cancelled) route. An approved session with no registration row returns needs_wallet_registration. needs_source_currency now means an approved session whose persisted registration is active or disabled and which has no usable autoramp. vbaAutorampListFetchedAt is set only when the autoramp list GET succeeds. A persisted KYC session owned by a different profile is discarded together with moneyAccountWalletRegistrations, the autoramps cursor, and vbaAutorampListFetchedAt (#10749)
    • The sourceCurrencyCode argument is removed. To create an autoramp, call createAutoramp(buildMusdAutorampRequest(walletAddress, code)) instead of passing a code to hydrateVbaOnboarding
    • 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
  • BREAKING: RampsControllerMessenger now requires KycController:readSessionStatus and KycController:fetchSessionStatusOnce instead of KycController:refreshSessionStatus and KycController:getSessionStatusForVendor (#10749)
  • registerMoneyAccountWallet writes a moneyAccountWalletRegistrations row after alreadyRegistered, registered, or registeredDisabled. The stored address is trimmed and lowercased. A lookup failure or a thrown signature writes nothing (#10749)
  • createAutoramp derives its idempotency key from the caller-supplied source fiat (brl-musd-monad versus usd-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-controller from ^34.0.0 to ^34.0.2 (#10752, #10756)

@metamask/transaction-pay-controller 30.0.2

Changed

  • Bump @metamask/transaction-controller from ^72.0.1 to ^72.1.0 (#10652)
  • Bump @metamask/assets-controller from ^18.0.0 to ^18.0.1 (#10658)
  • Bump @metamask/network-controller from ^37.0.0 to ^37.0.1 (#10658)
  • Bump @metamask/ramps-controller from ^26.3.0 to ^27.0.0 (#10759)
  • Bump @metamask/ramps-controller from ^26.2.0 to ^26.3.0 (#10741)
  • Bump @metamask/ramps-controller from ^26.1.0 to ^26.2.0 (#10662)
  • Bump @metamask/sentinel-api-service from ^2.0.0 to ^2.1.0 (#10746)

Fixed

  • Always set excludeNativeTokenForFee when 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 TransactionController re-checked the native balance at publish time and silently dropped the gas fee token, billing the user in native token instead.

1319.0.0

Choose a tag to compare

@github-actions github-actions released this 08 Oct 18:46
691f7cf

@metamask/profile-sync-controller 34.0.2

Changed

  • Bump @metamask/seedless-onboarding-controller from ^11.0.1 to ^12.0.0 (#10756)

@metamask/seedless-onboarding-controller 12.0.0

Added

  • Expose SeedlessOnboardingController:identifyIncompleteMetadataBackup so clients can identify incomplete primary SRP metadata backups after unlocking (#10568)

Changed

  • BREAKING: Grant SeedlessOnboardingController access to AnalyticsController:trackEvent and KeyringController:exportSeedPhrase (#10568)
    • The SeedlessOnboardingControllerMessenger must allow and delegate these actions.
  • Bump @noble/curves from ^1.9.2 to ^1.9.7 (#10720)

@metamask/subscription-controller 13.0.0

Added

  • Add optional isEligibleForRefund on StartSubscriptionRequest and StartCryptoSubscriptionRequest (#10674)
    • When the caller provides it, SubscriptionController sends that value and skips the geolocation check.
    • When omitted, the controller sets it from geolocation (EU 27 + EEA), or false if the lookup fails.

Changed

  • BREAKING: SubscriptionControllerMessenger now requires GeolocationController:getGeolocationData so startSubscriptionWithCard and startSubscriptionWithCrypto can resolve refund eligibility (#10674)
    • Clients that construct this messenger must delegate GeolocationController:getGeolocationData before calling those actions.
  • Add @metamask/geolocation-controller ^2.0.0 as a dependency (#10674)
  • BREAKING: SubscriptionDelegationService:startSubscriptionWithDelegation no longer requests an approval. Callers must obtain consent and initiate funding (for example, a membershipSubscription transaction) before calling. (#10666)
    • skipApproval is removed from StartSubscriptionWithDelegationRequest.
  • Bump @metamask/profile-sync-controller from ^34.0.0 to ^34.0.2 (#10752, #10756)
  • Bump @metamask/seedless-onboarding-controller from ^11.0.1 to ^12.0.0 (#10756)

Removed

  • BREAKING: Remove the subscription delegation approval contracts. (#10666)
    • Remove SUBSCRIPTION_DELEGATION_APPROVAL_TYPE, SubscriptionFundingRequest, and SubscriptionDelegationApprovalResult.
    • Remove ApprovalResultMissing and InvalidFundingTransactionHash from SubscriptionDelegationServiceErrorMessage.
    • SubscriptionDelegationServiceMessenger no longer allows ApprovalController:addRequest. Clients that construct this messenger must stop delegating that action.
  • Remove the @metamask/approval-controller dependency. (#10666)

@metamask/wallet 17.0.0

Changed

  • BREAKING: Delegate AnalyticsController:trackEvent and KeyringController:exportSeedPhrase from the wallet root messenger to SeedlessOnboardingController. (#10568)
  • BREAKING: Grant SubscriptionController access to GeolocationController:getGeolocationData (#10674)
    • The wallet does not construct GeolocationController. Clients must register that action on the Wallet messenger.
  • Stop delegating ApprovalController:addRequest to SubscriptionDelegationService. Client that supply their own root messenger no longer need to allow that action for the delegation service. (#10666)
  • Bump @metamask/claims-controller from ^1.0.2 to ^1.0.3 (#10662)
  • Bump @metamask/shield-controller from ^7.0.3 to ^7.0.4 (#10662)
  • Bump @metamask/subscription-controller from ^12.0.0 to ^12.0.1 (#10662)
  • Bump @metamask/seedless-onboarding-controller from ^11.0.1 to ^12.0.0 (#10756)

1318.0.0

Choose a tag to compare

@github-actions github-actions released this 08 Oct 15:52
f65d62c

@metamask/cryptography 1.1.1

Fixed

  • Export AES-GCM IV length (#10654)

@metamask/profile-sync-controller 34.0.1

Changed

  • Bump @noble/curves from ^1.9.2 to ^1.9.7 (#10720)
  • Bump @metamask/cryptography from ^1.1.0 to ^1.1.1 (#10752)

1317.0.0

Choose a tag to compare

@github-actions github-actions released this 08 Oct 15:18
b8d07a5

@metamask/sentinel-api-service 2.1.0

Added

  • Add getNetwork method and SentinelApiService:getNetwork action to retrieve the configuration of a single network from the /network endpoint (#10676)
    • Responses are cached for 5 minutes per chain.
    • Throws SentinelChainNotSupportedError if the chain is not in the supported-network registry.
    • Add cubistSigners and simulationIncludeFees properties to the SentinelNetwork type.

Changed

  • Bump @metamask/utils from ^11.12.0 to ^12.0.0 (#10192)
  • Bump @tanstack/query-core from ^5.62.16 to ^5.103.2 (#9324, #10511)
  • Bump @metamask/base-data-service from ^2.0.0 to ^2.1.0 (#10502)

1316.0.0

Choose a tag to compare

@github-actions github-actions released this 08 Oct 15:08
541d74e

@metamask/ramps-controller 26.3.0

Added

  • Add getPixDepositInstructions and listAutorampTransactions so a client can show a PIX BR Code and poll autoramp transaction status (#10586)
  • Add buildBrazilMusdAutorampRequest for a standing BRL to mUSD autoramp on Monad (#10586)
  • Include createdAt on autoramp transaction summaries when MoonPay returns created_at (#10586)

Fixed

  • hydrateVbaOnboarding creates that BRL to mUSD autoramp instead of posting an empty body (#10586)
  • hydrateVbaOnboarding sends 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)
  • getAutoramps accepts MoonPay's paged { items } list, follows cursor until the list is complete, and can be scoped with customerId (#10586)
  • Fall back to MoonPay recipient.address when mapping an autoramp wallet address (#10586)