Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

cherry-pick 29968: fix: handle null STX status containing pre-enabled state #30010

Merged
merged 2 commits into from
Jan 30, 2025

Conversation

httpJunkie
Copy link
Contributor

@httpJunkie httpJunkie commented Jan 30, 2025

cherry-picks #29968

Description

Only remaining QA issue for feature: [EXT] STX Banner Alert & STX x Default Migration

Update migration to treat null preference value as an existing enabled state, preventing unneeded banner display for v12.6.0-12.7.2 migrations.

The update removes the null check in the migration's transformState function (near line 46 of 135.ts)

  if (
    currentOptInStatus === undefined ||
    currentOptInStatus === null ||  // remove this line
    (currentOptInStatus === false && !hasExistingSmartTransactions(state))
  ) {

And let the condition fall through to the else block. This will ensure that smartTransactionsMigrationApplied: false and ensure that we don't see a banner on Transaction Confirmation.

Open in GitHub Codespaces

Related issues

Fixes: #29970

Description
Migration fails when the origin extension is version 12.7.x (tested 1 and 2)
In this cases, the alert banner is displayed in the confirmation screen (e.g: send and swaps) when the parameter STX in settings was enabled in the older extension.

Expected behavior
The behaviour should be:
extension 12.11.0 < with STX activated -> update to 12.11.0 and no banner is displayed in the confirmation screen

Manual testing steps for fix

  1. Migrate from any version 12.6.* to 12.7.* to 12.10.1 (or 12.11.0 depending)
  2. Ensure that STX is ON in the old version (before migrating to the newer version)
  3. After migration try to Swap or Send on Ethereum Mainnet & Sepolia and ensure there is no STX Banner Alert shown

Screenshots/Recordings

For users with STX ON before and after Migration:

Before

after-fix

After

after-fix

Pre-merge author checklist

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.

## **Description**

Only remaining QA issue for feature: [[EXT] STX Banner Alert & STX x
Default
Migration](#28854)

Update migration to treat null preference value as an existing enabled
state, preventing unneeded banner display for v12.6.0-12.7.2 migrations.

The update removes the `null` check in the migration's `transformState`
function (near line 46 of `135.ts`)

```ts
  if (
    currentOptInStatus === undefined ||
    currentOptInStatus === null ||  // remove this line
    (currentOptInStatus === false && !hasExistingSmartTransactions(state))
  ) {
  ```

And let the condition fall through to the else block. This will ensure that `smartTransactionsMigrationApplied: false` and ensure that we don't see a banner on Transaction Confirmation.

[![Open in GitHub Codespaces](https://github.com/codespaces/badge.svg)](https://codespaces.new/MetaMask/metamask-extension/pull/29968?quickstart=1)

## **Related issues**

Fixes: #29970  

**Description**
Migration fails when the origin extension is version 12.7.x (tested 1 and 2)
In this cases, the alert banner is displayed in the confirmation screen (e.g: send and swaps) when the parameter STX in settings was enabled in the older extension.

**Expected behavior**
The behaviour should be:
extension 12.11.0 < with STX activated -> update to 12.11.0 and no banner is displayed in the confirmation screen

## **Manual testing steps for fix**

1. Migrate from any version 12.6.* to 12.7.* to 12.10.1 (or 12.11.0 depending) 
2. Ensure that STX is ON in the old version (before migrating to the newer version)
3. After migration try to Swap or Send on Ethereum Mainnet  & Sepolia and ensure there is no STX Banner Alert shown

## **Screenshots/Recordings**

For users with STX ON before and after Migration:

### **Before**

<img width="150" alt="after-fix" src="https://github.com/user-attachments/assets/fe33da33-7828-45e2-b7a1-8b7d60b12de5" />

### **After**

<img width="150" alt="after-fix" src="https://github.com/user-attachments/assets/fe33da33-7828-45e2-b7a1-8b7d60b12de5" />

## **Pre-merge author checklist**

- [x] I've followed [MetaMask Contributor Docs](https://github.com/MetaMask/contributor-docs) and [MetaMask Extension Coding Standards](https://github.com/MetaMask/metamask-extension/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-extension/blob/main/.github/guidelines/LABELING_GUIDELINES.md)). Not required for external contributors.

## **Pre-merge reviewer checklist**

- [x] I've manually tested the PR (e.g. pull and build branch, run the app, test code being changed).
- [x] 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.
@httpJunkie httpJunkie added type-bug Something isn't working Sev1-high High severity; partial loss of service with severe impact upon users, with no workaround. needs-qa Label will automate into QA workspace team-transactions Transactions team release-12.11.0 Issue or pull request that will be included in release 12.11.0 labels Jan 30, 2025
@httpJunkie httpJunkie self-assigned this Jan 30, 2025
Copy link
Contributor

CLA Signature Action: All authors have signed the CLA. You may need to manually re-run the blocking PR check if it doesn't pass in a few minutes.

@metamaskbot metamaskbot added the INVALID-PR-TEMPLATE PR's body doesn't match template label Jan 30, 2025
@httpJunkie httpJunkie requested a review from dbrans January 30, 2025 15:36
@metamaskbot
Copy link
Collaborator

Builds ready [2bcd14b]
Page Load Metrics (2027 ± 133 ms)
PlatformPageMetricMin (ms)Max (ms)Average (ms)StandardDeviation (ms)MarginOfError (ms)
ChromeHomefirstPaint30728631768664319
domContentLoaded164428471985281135
load166728672027277133
domInteractive28166623818
backgroundConnect167740199
firstReactRender18100602713
getState797242311
initialActions01000
loadScripts120021831510237114
setupStore6191031
uiStartup191933422358356171

@dbrans dbrans changed the title fix: handle null STX status containing pre-enabled state cherry-pick 29968: fix: handle null STX status containing pre-enabled state Jan 30, 2025
@dbrans dbrans linked an issue Jan 30, 2025 that may be closed by this pull request
@dbrans dbrans merged commit d7f31d9 into Version-v12.11.0 Jan 30, 2025
71 of 72 checks passed
@dbrans dbrans deleted the fix/handle-null-stx-enabled-state branch January 30, 2025 18:47
@github-actions github-actions bot removed the needs-qa Label will automate into QA workspace label Jan 30, 2025
@github-actions github-actions bot locked and limited conversation to collaborators Jan 30, 2025
Sign up for free to subscribe to this conversation on GitHub. Already have an account? Sign in.
Labels
INVALID-PR-TEMPLATE PR's body doesn't match template release-12.11.0 Issue or pull request that will be included in release 12.11.0 Sev1-high High severity; partial loss of service with severe impact upon users, with no workaround. team-transactions Transactions team type-bug Something isn't working
Projects
None yet
Development

Successfully merging this pull request may close these issues.

[Bug]: Migration fails with extension version 12.7.x
3 participants