Skip to content

[pull] main from MetaMask:main#332

Merged
pull[bot] merged 2 commits into
Reality2byte:mainfrom
MetaMask:main
Nov 18, 2025
Merged

[pull] main from MetaMask:main#332
pull[bot] merged 2 commits into
Reality2byte:mainfrom
MetaMask:main

Conversation

@pull
Copy link
Copy Markdown

@pull pull Bot commented Nov 18, 2025

See Commits and Changes for more details.


Created by pull[bot] (v2.0.0-alpha.4)

Can you help keep this open source service alive? 💖 Please sponsor : )

ieow added 2 commits November 18, 2025 05:13
<!--
Please submit this PR as a draft initially.
Do not mark it as "Ready for review" until the template has been
completely filled out, and PR status checks have passed at least once.
-->

## **Description**
app is using revoked tokens to refresh token.
That should not be the case, as we only revoke token after successful
renew refresh token.
We are speculating that user might closed the app before the redux state
are persisted on the files

This PR add a delay of 15 seconds after successful renew refresh token
before call revoke token

Jira Link
https://consensyssoftware.atlassian.net/browse/SL-297
<!--
Write a short description of the changes included in this pull request,
also include relevant motivation and context. Have in mind the following
questions:
1. What is the reason for the change?
2. What is the improvement/solution?
-->

## **Changelog**

<!--
If this PR is not End-User-Facing and should not show up in the
CHANGELOG, you can choose to either:
1. Write `CHANGELOG entry: null`
2. Label with `no-changelog`

If this PR is End-User-Facing, please write a short User-Facing
description in the past tense like:
`CHANGELOG entry: Added a new tab for users to see their NFTs`
`CHANGELOG entry: Fixed a bug that was causing some NFTs to flicker`

(This helps the Release Engineer do their job more quickly and
accurately)
-->

CHANGELOG entry: null

## **Related issues**

Fixes:


## **Manual testing steps**

```gherkin
Feature: my feature name

  Scenario: user [verb for user action]
    Given [describe expected initial app state]

    When user [verb for user action]
    Then [describe expected outcome]
```

## **Screenshots/Recordings**

<!-- If applicable, add screenshots and/or recordings to visualize the
before and after of your change. -->

### **Before**

<!-- [screenshots/recordings] -->

### **After**

<!-- [screenshots/recordings] -->

## **Pre-merge author checklist**

- [x] I’ve followed [MetaMask Contributor
Docs](https://github.com/MetaMask/contributor-docs) and [MetaMask Mobile
Coding
Standards](https://github.com/MetaMask/metamask-mobile/blob/main/.github/guidelines/CODING_GUIDELINES.md).
- [x] I've completed the PR template to the best of my ability
- [x] I’ve included tests if applicable
- [x] I’ve documented my code using [JSDoc](https://jsdoc.app/) format
if applicable
- [x] I’ve applied the right labels on the PR (see [labeling
guidelines](https://github.com/MetaMask/metamask-mobile/blob/main/.github/guidelines/LABELING_GUIDELINES.md)).
Not required for external contributors.

## **Pre-merge reviewer checklist**

- [ ] I've manually tested the PR (e.g. pull and build branch, run the
app, test code being changed).
- [ ] I confirm that this PR addresses all acceptance criteria described
in the ticket it closes and includes the necessary testing evidence such
as recordings and or screenshots.

<!-- CURSOR_SUMMARY -->
---

> [!NOTE]
> Wait 15s after renewing the Seedless refresh token before revoking
pending tokens to ensure persistence.
> 
> - **OAuth service**
(`app/core/OAuthService/SeedlessControllerHelper.ts`):
>   - Add `delay` utility.
> - Update `renewSeedlessControllerRefreshTokens` to wait 15s after
`renewRefreshToken` before calling `revokePendingRefreshTokens`.
> 
> <sup>Written by [Cursor
Bugbot](https://cursor.com/dashboard?tab=bugbot) for commit
c1effb3. This will update automatically
on new commits. Configure
[here](https://cursor.com/dashboard?tab=bugbot).</sup>
<!-- /CURSOR_SUMMARY -->
<!--
Please submit this PR as a draft initially.
Do not mark it as "Ready for review" until the template has been
completely filled out, and PR status checks have passed at least once.
-->

## **Description**
Update seedless controller to v6.1.0
Update required types checking ( throw on not matching type / undefined
)

Remove unused code in basehandler
add jsdoc to AuthTokenHandler

Jira Link

https://consensyssoftware.atlassian.net/browse/SL-253?atlOrigin=eyJpIjoiNzc2ZjgxYTRlZGEzNGFhY2I4ZWZjNDc3ZjExNzg4NzkiLCJwIjoiaiJ9

<!--
Write a short description of the changes included in this pull request,
also include relevant motivation and context. Have in mind the following
questions:
1. What is the reason for the change?
2. What is the improvement/solution?
-->

## **Changelog**

<!--
If this PR is not End-User-Facing and should not show up in the
CHANGELOG, you can choose to either:
1. Write `CHANGELOG entry: null`
2. Label with `no-changelog`

If this PR is End-User-Facing, please write a short User-Facing
description in the past tense like:
`CHANGELOG entry: Added a new tab for users to see their NFTs`
`CHANGELOG entry: Fixed a bug that was causing some NFTs to flicker`

(This helps the Release Engineer do their job more quickly and
accurately)
-->

CHANGELOG entry: update seedless controller v6

## **Related issues**

Fixes:
#21933

## **Manual testing steps**

```gherkin
Feature: my feature name

  Scenario: user [verb for user action]
    Given [describe expected initial app state]

    When user [verb for user action]
    Then [describe expected outcome]
```

## **Screenshots/Recordings**

<!-- If applicable, add screenshots and/or recordings to visualize the
before and after of your change. -->

### **Before**

<!-- [screenshots/recordings] -->

### **After**

<!-- [screenshots/recordings] -->

## **Pre-merge author checklist**

- [x] I’ve followed [MetaMask Contributor
Docs](https://github.com/MetaMask/contributor-docs) and [MetaMask Mobile
Coding
Standards](https://github.com/MetaMask/metamask-mobile/blob/main/.github/guidelines/CODING_GUIDELINES.md).
- [x] I've completed the PR template to the best of my ability
- [x] I’ve included tests if applicable
- [x] I’ve documented my code using [JSDoc](https://jsdoc.app/) format
if applicable
- [x] I’ve applied the right labels on the PR (see [labeling
guidelines](https://github.com/MetaMask/metamask-mobile/blob/main/.github/guidelines/LABELING_GUIDELINES.md)).
Not required for external contributors.

## **Pre-merge reviewer checklist**

- [ ] I've manually tested the PR (e.g. pull and build branch, run the
app, test code being changed).
- [ ] I confirm that this PR addresses all acceptance criteria described
in the ticket it closes and includes the necessary testing evidence such
as recordings and or screenshots.



<!-- CURSOR_SUMMARY -->
---

> [!NOTE]
> Upgrades seedless controller to v6.1.0 and updates OAuth services to
stricter token typing/validation, new v2 revoke/renew endpoints, and
refreshed tests.
> 
> - **OAuth services**:
>   - **AuthTokenHandler**:
> - Implements controller types; validates presence of `id_token`,
`access_token`, `metadata_access_token`.
> - Adds strict checks for `refresh_token`/`revoke_token` on renew;
throws on missing tokens.
> - Switches endpoints: `AUTH_SERVER_RENEW_PATH` and
`AUTH_SERVER_REVOKE_PATH` to `/api/v2/...`.
>   - **OAuthService**:
>     - Enforces non-empty `loginHandler.login()` result.
> - Requires `refresh_token` and `revoke_token` before `authenticate`;
throws controller errors if missing.
>   - **Base handler**:
> - Removes refresh/revoke helpers; keeps `getAuthTokens` with explicit
typing.
>   - **Interfaces**:
>     - Adds `AuthRefreshTokenResponse`; documents response types.
> - **Tests**:
> - Updates and expands unit tests for new validations, error handling,
request bodies, and handler behavior across `AuthTokenHandler`, base
handler, login handlers, and service.
> - **Dependencies**:
> - Bumps `@metamask/seedless-onboarding-controller` to `^6.1.0` and
related transitive packages.
> 
> <sup>Written by [Cursor
Bugbot](https://cursor.com/dashboard?tab=bugbot) for commit
5b82940. This will update automatically
on new commits. Configure
[here](https://cursor.com/dashboard?tab=bugbot).</sup>
<!-- /CURSOR_SUMMARY -->
@pull pull Bot locked and limited conversation to collaborators Nov 18, 2025
@pull pull Bot added the ⤵️ pull label Nov 18, 2025
@pull pull Bot merged commit ce11468 into Reality2byte:main Nov 18, 2025
5 of 14 checks passed
Sign up for free to subscribe to this conversation on GitHub. Already have an account? Sign in.

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant