Skip to content

fix: migrate Sei explorer from Seitrace to Seiscan#42064

Merged
jeremytsng merged 9 commits into
mainfrom
fix/sei-explorer-seitrace-to-seiscan
May 6, 2026
Merged

fix: migrate Sei explorer from Seitrace to Seiscan#42064
jeremytsng merged 9 commits into
mainfrom
fix/sei-explorer-seitrace-to-seiscan

Conversation

@jeremytsng

@jeremytsng jeremytsng commented Apr 22, 2026

Copy link
Copy Markdown
Contributor

Description

Seitrace (https://seitrace.com), the current Sei Mainnet block
explorer, is being decommissioned. This PR swaps every hardcoded
reference to seiscan.io and adds migration 207 to rewrite existing
users' persisted NetworkController state on upgrade.

Hardcoded URL swaps:

  • shared/constants/common.tsSEI_DEFAULT_BLOCK_EXPLORER_URL
  • shared/constants/network.ts — Sei Mainnet blockExplorerUrls
  • app/scripts/fixtures/with-networks.js — fixture blockExplorerUrl
  • test/e2e/fixtures/fixture-builder-v2.ts — e2e fixture

Migration 207 rewrites NetworkController.networkConfigurationsByChainId['0x531'].blockExplorerUrls
from seitrace.com to seiscan.io for existing installs. It only
touches entries that still point at seitrace.com — if a user manually
customized their Sei block explorer (e.g. to seistream.app), their
setting is preserved. Registered in app/scripts/migrations/index.js
and follows the post-186 split-state pattern exemplified by migration
197.ts.

Fixture currentMigrationVersion bumped to 207 in
test/e2e/fixtures/default-fixture.json and
test/e2e/fixtures/onboarding-fixture.json.
errors-before-init-opt-in-ui-state.json uses "number" as the schema
placeholder for currentMigrationVersion, so no change is needed there.

The @metamask/controller-utils bump is deliberately deferred until
the sibling PR in MetaMask/core releases; this PR stands alone.

Changelog

CHANGELOG entry: Fixed Sei Mainnet: replaced deprecated Seitrace explorer with Seiscan (https://seiscan.io). Existing installs are migrated via migration 207.

Related issues

Fixes:

Companion PRs:

Manual testing steps

  1. Install the built extension on a fresh profile.
  2. Add Sei Mainnet from the networks picker.
  3. Confirm the "View on block explorer" link on any Sei Mainnet transaction opens https://seiscan.io/tx/<hash> (not seitrace.com).
  4. Upgrade path: starting from a prior build with Sei Mainnet configured and blockExplorerUrls: ['https://seitrace.com'] in state, upgrade to this build. Confirm migration 207 runs and the explorer link has updated.
  5. Negative case: set blockExplorerUrls to a custom value like ['https://seistream.app'] before upgrading, then upgrade. Confirm the custom value is preserved (migration should be a no-op for non-Seitrace URLs).

Screenshots/Recordings

Before

After

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.

Note

Medium Risk
Adds a new state migration that rewrites persisted NetworkController data for Sei mainnet; while narrowly scoped, migrations can impact upgrade behavior and user network settings if edge cases are missed.

Overview
Updates Sei Mainnet’s default block explorer URL from https://seitrace.com/ to https://seiscan.io/ across shared constants and test/fixture network definitions.

Introduces migration 207 (registered in the migrator) to update existing installs by rewriting Sei (0x531) NetworkController.networkConfigurationsByChainId[].blockExplorerUrls entries only when the URL hostname is exactly seitrace.com, leaving custom/invalid/lookalike URLs unchanged; adds targeted unit tests and bumps e2e fixture migration/state versions to 207.

Reviewed by Cursor Bugbot for commit 9623a08. Bugbot is set up for automated code reviews on this repo. Configure here.

@jeremytsng jeremytsng requested review from a team as code owners April 22, 2026 21:34
@github-actions

Copy link
Copy Markdown
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.

@metamaskbotv2

metamaskbotv2 Bot commented Apr 22, 2026

Copy link
Copy Markdown
Contributor

✨ Files requiring CODEOWNER review ✨

👨‍🔧 @MetaMask/extension-platform (1 files, +2 -2)
  • 📁 test/
    • 📁 e2e/
      • 📁 fixtures/
        • 📄 onboarding-fixture.json +2 -2

🧪 @MetaMask/qa (1 files, +2 -2)
  • 📁 test/
    • 📁 e2e/
      • 📁 fixtures/
        • 📄 onboarding-fixture.json +2 -2

Comment thread app/scripts/migrations/207.ts Fixed
@metamaskbotv2

metamaskbotv2 Bot commented Apr 22, 2026

Copy link
Copy Markdown
Contributor
Builds ready [054bf99]
⚡ Performance Benchmarks (Total: 🟢 7 pass · 🟡 8 warn · 🔴 0 fail)

Baseline (latest main): 71bd826 | Date: 10/14/58243 | Pipeline: 24803871023 | Baseline logs

Interaction Benchmarks · Samples: 5
Benchmarkchrome-browserify
loadNewAccount🟡 [Show logs]
confirmTx🟡 [Show logs]
bridgeUserActions🟡 [Show logs]

📈 Results compared to the previous 5 runs on main

  • loadNewAccount/load_new_account: -76%
  • loadNewAccount/total: -76%
  • bridgeUserActions/bridge_load_page: -19%
  • bridgeUserActions/bridge_load_asset_picker: -25%
  • bridgeUserActions/bridge_search_token: -28%
  • bridgeUserActions/total: -27%

🌐 Core Web Vitals — 🟢 good · 🟡 needs improvement · 🔴 poor (web.dev thresholds)

  • 🟡 loadNewAccount/FCP: p75 2.6s
  • 🟡 loadNewAccount/LCP: p75 2.5s
  • 🟡 confirmTx/FCP: p75 2.6s
  • 🟡 bridgeUserActions/FCP: p75 2.5s
Startup Benchmarks · Samples: 100
Benchmarkchrome-browserifychrome-webpackfirefox-browserifyfirefox-webpack
startupStandardHome🟢 [Show logs]🟢 [Show logs]🟢 [Show logs]🟢 [Show logs]

📈 Results compared to the previous 5 runs on main

  • startupStandardHome/uiStartup: -23%
  • startupStandardHome/load: -11%
  • startupStandardHome/domContentLoaded: -14%
  • startupStandardHome/backgroundConnect: +11%
  • startupStandardHome/initialActions: -33%
  • startupStandardHome/loadScripts: -17%
  • startupStandardHome/setupStore: +21%
  • startupStandardHome/numNetworkReqs: -37%
  • startupStandardHome/uiStartup: -17%
  • startupStandardHome/load: -12%
  • startupStandardHome/domContentLoaded: -12%
  • startupStandardHome/firstPaint: +34%
  • startupStandardHome/backgroundConnect: -35%
  • startupStandardHome/firstReactRender: -30%
  • startupStandardHome/loadScripts: -12%
  • startupStandardHome/setupStore: -13%
  • startupStandardHome/numNetworkReqs: -44%
  • startupStandardHome/uiStartup: -16%
  • startupStandardHome/domInteractive: -63%
  • startupStandardHome/initialActions: -33%
  • startupStandardHome/setupStore: -17%
  • startupStandardHome/numNetworkReqs: -34%
  • startupStandardHome/uiStartup: -19%
  • startupStandardHome/load: -11%
  • startupStandardHome/domContentLoaded: -11%
  • startupStandardHome/domInteractive: -59%
  • startupStandardHome/backgroundConnect: -11%
  • startupStandardHome/initialActions: -43%
  • startupStandardHome/loadScripts: -11%
  • startupStandardHome/setupStore: -64%
  • startupStandardHome/numNetworkReqs: -29%
User Journey Benchmarks · Samples: 5 · mock API
Benchmarkchrome-browserify
onboardingImportWallet🟢 [Show logs]
onboardingNewWallet🟢 [Show logs]
assetDetails🟡 [Show logs]
solanaAssetDetails🟡 [Show logs]
importSrpHome🟡 [Show logs]
sendTransactions🟡 [Show logs]
swap🟡 [Show logs]

📈 Results compared to the previous 5 runs on main

  • onboardingImportWallet/srpButtonToSrpForm: -85%
  • onboardingImportWallet/metricsToWalletReadyScreen: -35%
  • onboardingImportWallet/doneButtonToHomeScreen: -74%
  • onboardingImportWallet/openAccountMenuToAccountListLoaded: +27%
  • onboardingImportWallet/total: -41%
  • onboardingNewWallet/srpButtonToPwForm: -79%
  • onboardingNewWallet/skipBackupToMetricsScreen: -66%
  • onboardingNewWallet/doneButtonToAssetList: -24%
  • onboardingNewWallet/total: -25%
  • assetDetails/assetClickToPriceChart: -37%
  • assetDetails/total: -37%
  • solanaAssetDetails/assetClickToPriceChart: -60%
  • solanaAssetDetails/total: -60%
  • importSrpHome/loginToHomeScreen: -11%
  • importSrpHome/openAccountMenuAfterLogin: -63%
  • importSrpHome/homeAfterImportWithNewWallet: -68%
  • importSrpHome/total: -61%
  • sendTransactions/openSendPageFromHome: -39%
  • sendTransactions/selectTokenToSendFormLoaded: -20%
  • sendTransactions/reviewTransactionToConfirmationPage: +35%
  • sendTransactions/total: +32%
  • swap/openSwapPageFromHome: -97%
  • swap/fetchAndDisplaySwapQuotes: +31%
  • swap/total: +10%

🌐 Core Web Vitals — 🟢 good · 🟡 needs improvement · 🔴 poor (web.dev thresholds)

  • 🟡 assetDetails/FCP: p75 2.6s
  • 🟡 solanaAssetDetails/FCP: p75 2.9s
  • 🟡 importSrpHome/FCP: p75 2.5s
  • 🟡 sendTransactions/INP: p75 208ms
  • 🟡 sendTransactions/FCP: p75 2.4s
  • 🟡 swap/FCP: p75 2.4s
Dapp Page Load Benchmarks · Samples: 100
Benchmarkchrome-browserify
dappPageLoad🟢 [Show logs]
Bundle size diffs [🚨 Warning! Bundle size has increased!]
  • background: 1.54 KiB (0.03%)
  • ui: 2.51 KiB (0.03%)
  • common: 1.12 KiB (0.01%)

@jeremytsng jeremytsng force-pushed the fix/sei-explorer-seitrace-to-seiscan branch from 054bf99 to 55b9a07 Compare April 28, 2026 12:28
@metamaskbotv2

metamaskbotv2 Bot commented Apr 28, 2026

Copy link
Copy Markdown
Contributor
Builds ready [55b9a07]
⚡ Performance Benchmarks (Total: 🟢 7 pass · 🟡 8 warn · 🔴 0 fail)

Baseline (latest main): 71bd826 | Date: 10/14/58243 | Pipeline: 25052784492 | Baseline logs

Interaction Benchmarks · Samples: 5
Benchmarkchrome-browserify
loadNewAccount
[Sentry log · main/release]
🟡 [CI log]
confirmTx
[Sentry log · main/release]
🟡 [CI log]
bridgeUserActions
[Sentry log · main/release]
🟡 [CI log]

📈 Results compared to the previous 5 runs on main

  • loadNewAccount/load_new_account: -58%
  • loadNewAccount/total: -58%
  • bridgeUserActions/bridge_load_page: -16%
  • bridgeUserActions/bridge_load_asset_picker: -30%
  • bridgeUserActions/bridge_search_token: -27%
  • bridgeUserActions/total: -27%

🌐 Core Web Vitals — 🟢 good · 🟡 needs improvement · 🔴 poor (web.dev thresholds)

  • 🟡 loadNewAccount/FCP: p75 2.5s
  • 🟡 confirmTx/FCP: p75 2.5s
  • 🟡 bridgeUserActions/FCP: p75 2.6s
Startup Benchmarks · Samples: 100
Benchmarkchrome-browserifychrome-webpackfirefox-browserifyfirefox-webpack
startupStandardHome
[Sentry log · main/release]
🟢 [CI log]🟢 [CI log]🟢 [CI log]🟢 [CI log]

📈 Results compared to the previous 5 runs on main

  • startupStandardHome/uiStartup: -26%
  • startupStandardHome/load: -16%
  • startupStandardHome/domContentLoaded: -17%
  • startupStandardHome/firstPaint: -30%
  • startupStandardHome/backgroundConnect: +11%
  • startupStandardHome/initialActions: -33%
  • startupStandardHome/loadScripts: -22%
  • startupStandardHome/numNetworkReqs: -37%
  • startupStandardHome/uiStartup: -19%
  • startupStandardHome/load: -13%
  • startupStandardHome/domContentLoaded: -13%
  • startupStandardHome/backgroundConnect: -36%
  • startupStandardHome/firstReactRender: -27%
  • startupStandardHome/loadScripts: -13%
  • startupStandardHome/setupStore: -13%
  • startupStandardHome/numNetworkReqs: -44%
  • startupStandardHome/uiStartup: -14%
  • startupStandardHome/domInteractive: -64%
  • startupStandardHome/initialActions: -33%
  • startupStandardHome/setupStore: -25%
  • startupStandardHome/numNetworkReqs: -37%
  • startupStandardHome/uiStartup: -17%
  • startupStandardHome/domInteractive: -72%
  • startupStandardHome/initialActions: +14%
  • startupStandardHome/setupStore: -64%
  • startupStandardHome/numNetworkReqs: -37%
User Journey Benchmarks · Samples: 5 · mock API

📈 Results compared to the previous 5 runs on main

  • onboardingImportWallet/srpButtonToSrpForm: -83%
  • onboardingImportWallet/metricsToWalletReadyScreen: -22%
  • onboardingImportWallet/doneButtonToHomeScreen: -79%
  • onboardingImportWallet/openAccountMenuToAccountListLoaded: +28%
  • onboardingImportWallet/total: -44%
  • onboardingNewWallet/srpButtonToPwForm: -77%
  • onboardingNewWallet/skipBackupToMetricsScreen: -67%
  • onboardingNewWallet/doneButtonToAssetList: -29%
  • onboardingNewWallet/total: -30%
  • assetDetails/assetClickToPriceChart: -39%
  • assetDetails/total: -39%
  • solanaAssetDetails/assetClickToPriceChart: -71%
  • solanaAssetDetails/total: -71%
  • importSrpHome/openAccountMenuAfterLogin: -81%
  • importSrpHome/homeAfterImportWithNewWallet: -67%
  • importSrpHome/total: -58%
  • sendTransactions/openSendPageFromHome: +79%
  • sendTransactions/selectTokenToSendFormLoaded: -21%
  • sendTransactions/reviewTransactionToConfirmationPage: +35%
  • sendTransactions/total: +34%
  • swap/openSwapPageFromHome: -96%
  • swap/fetchAndDisplaySwapQuotes: +32%
  • swap/total: +12%

🌐 Core Web Vitals — 🟢 good · 🟡 needs improvement · 🔴 poor (web.dev thresholds)

  • 🟡 assetDetails/FCP: p75 2.5s
  • 🟡 solanaAssetDetails/FCP: p75 2.5s
  • 🟡 importSrpHome/FCP: p75 2.6s
  • 🟡 sendTransactions/FCP: p75 2.6s
  • 🟡 swap/FCP: p75 2.6s
Dapp Page Load Benchmarks · Samples: 100
Benchmarkchrome-browserify
dappPageLoad
[Sentry log · main/release]
🟢 [CI log]
Bundle size diffs [🚨 Warning! Bundle size has increased!]
  • background: 1.9 KiB (0.03%)
  • ui: 6 Bytes (0%)
  • common: 16 Bytes (0%)

Comment thread CHANGELOG.md Outdated
Comment thread app/scripts/migrations/207.test.ts Outdated
Comment thread app/scripts/migrations/207.test.ts Outdated
Comment thread app/scripts/migrations/207.test.ts Outdated
Comment thread app/scripts/migrations/207.ts Outdated
Comment thread app/scripts/migrations/207.ts Outdated
Comment thread app/scripts/migrations/207.ts
Comment thread CHANGELOG.md

@cursor cursor Bot left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Cursor Bugbot has reviewed your changes and found 1 potential issue.

Fix All in Cursor

❌ Bugbot Autofix is OFF. To automatically fix reported issues with cloud agents, have a team admin enable autofix in the Cursor dashboard.

Reviewed by Cursor Bugbot for commit e409afe. Configure here.

Comment thread test/e2e/fixtures/fixture-builder-v2.ts
@metamaskbotv2

metamaskbotv2 Bot commented Apr 29, 2026

Copy link
Copy Markdown
Contributor
Builds ready [e409afe]
⚡ Performance Benchmarks (Total: 🟢 0 pass · 🟡 0 warn · 🔴 0 fail)

Baseline (latest main): 71bd826 | Date: 10/14/58243 | Pipeline: 25103407744 | Baseline logs

Interaction Benchmarks · Samples: 5

⚠️ Missing data: chrome/webpack/interactionUserActions, firefox/webpack/interactionUserActions

✅ No regressions detected

Startup Benchmarks · Samples: 100

⚠️ Missing data: chrome/webpack/startupStandardHome, chrome/webpack/startupPowerUserHome, firefox/webpack/startupStandardHome, firefox/webpack/startupPowerUserHome

✅ No regressions detected

User Journey Benchmarks · Samples: 5 · mock API

⚠️ Missing data: chrome/webpack/userJourneyOnboardingImport, chrome/webpack/userJourneyOnboardingNew, chrome/webpack/userJourneyAssets, chrome/webpack/userJourneyAccountManagement, chrome/webpack/userJourneyTransactions, firefox/webpack/userJourneyOnboardingImport, firefox/webpack/userJourneyOnboardingNew, firefox/webpack/userJourneyAssets, firefox/webpack/userJourneyAccountManagement, firefox/webpack/userJourneyTransactions

✅ No regressions detected

Dapp Page Load Benchmarks · Samples: 100

⚠️ Missing data: chrome/webpack/pageLoadBenchmark

✅ No regressions detected

Bundle size diffs [🚨 Warning! Bundle size has increased!]
  • background: 2.54 KiB (0.05%)
  • ui: 33.89 KiB (0.39%)
  • common: 104.75 KiB (0.82%)

@gauthierpetetin

Copy link
Copy Markdown
Contributor

yarn lint is still failing in th CI

@metamaskbotv2

metamaskbotv2 Bot commented Apr 30, 2026

Copy link
Copy Markdown
Contributor
Builds ready [dd11405]
⚡ Performance Benchmarks (Total: 🟢 0 pass · 🟡 0 warn · 🔴 0 fail)

Baseline (latest main): 71bd826 | Date: 10/14/58243 | Pipeline: 25149887395 | Baseline logs

Interaction Benchmarks · Samples: 5

⚠️ Missing data: chrome/webpack/interactionUserActions, firefox/webpack/interactionUserActions

✅ No regressions detected

Startup Benchmarks · Samples: 100

⚠️ Missing data: chrome/webpack/startupStandardHome, chrome/webpack/startupPowerUserHome, firefox/webpack/startupStandardHome, firefox/webpack/startupPowerUserHome

✅ No regressions detected

User Journey Benchmarks · Samples: 5 · mock API

⚠️ Missing data: chrome/webpack/userJourneyOnboardingImport, chrome/webpack/userJourneyOnboardingNew, chrome/webpack/userJourneyAssets, chrome/webpack/userJourneyAccountManagement, chrome/webpack/userJourneyTransactions, firefox/webpack/userJourneyOnboardingImport, firefox/webpack/userJourneyOnboardingNew, firefox/webpack/userJourneyAssets, firefox/webpack/userJourneyAccountManagement, firefox/webpack/userJourneyTransactions

✅ No regressions detected

Dapp Page Load Benchmarks · Samples: 100

⚠️ Missing data: chrome/webpack/pageLoadBenchmark

✅ No regressions detected

Bundle size diffs [🚨 Warning! Bundle size has increased!]
  • background: 52.76 KiB (0.97%)
  • ui: 39.58 KiB (0.46%)
  • common: 281.09 KiB (2.2%)

@jeremytsng jeremytsng force-pushed the fix/sei-explorer-seitrace-to-seiscan branch from dd11405 to 9c0bfb5 Compare April 30, 2026 06:30
@metamaskbotv2

metamaskbotv2 Bot commented Apr 30, 2026

Copy link
Copy Markdown
Contributor
Builds ready [9c0bfb5] [reused from dd11405]
⚡ Performance Benchmarks (Total: 🟢 0 pass · 🟡 0 warn · 🔴 0 fail)

Baseline (latest main): 71bd826 | Date: 10/14/58243 | Pipeline: 25150977799 | Baseline logs

Interaction Benchmarks · Samples: 5

⚠️ Missing data: chrome/webpack/interactionUserActions, firefox/webpack/interactionUserActions

✅ No regressions detected

Startup Benchmarks · Samples: 100

⚠️ Missing data: chrome/webpack/startupStandardHome, chrome/webpack/startupPowerUserHome, firefox/webpack/startupStandardHome, firefox/webpack/startupPowerUserHome

✅ No regressions detected

User Journey Benchmarks · Samples: 5 · mock API

⚠️ Missing data: chrome/webpack/userJourneyOnboardingImport, chrome/webpack/userJourneyOnboardingNew, chrome/webpack/userJourneyAssets, chrome/webpack/userJourneyAccountManagement, chrome/webpack/userJourneyTransactions, firefox/webpack/userJourneyOnboardingImport, firefox/webpack/userJourneyOnboardingNew, firefox/webpack/userJourneyAssets, firefox/webpack/userJourneyAccountManagement, firefox/webpack/userJourneyTransactions

✅ No regressions detected

Dapp Page Load Benchmarks · Samples: 100

⚠️ Missing data: chrome/webpack/pageLoadBenchmark

✅ No regressions detected

Bundle size diffs [🚨 Warning! Bundle size has increased!]
  • background: 1.85 KiB (0.03%)
  • ui: -7 Bytes (0%)
  • common: 20 Bytes (0%)

@metamaskbotv2

metamaskbotv2 Bot commented Apr 30, 2026

Copy link
Copy Markdown
Contributor
Builds ready [ef0fefb]
⚡ Performance Benchmarks (Total: 🟢 0 pass · 🟡 0 warn · 🔴 0 fail)

Baseline (latest main): 71bd826 | Date: 10/14/58243 | Pipeline: 25151251608 | Baseline logs

Interaction Benchmarks · Samples: 5

⚠️ Missing data: chrome/webpack/interactionUserActions, firefox/webpack/interactionUserActions

✅ No regressions detected

Startup Benchmarks · Samples: 100

⚠️ Missing data: chrome/webpack/startupStandardHome, chrome/webpack/startupPowerUserHome, firefox/webpack/startupStandardHome, firefox/webpack/startupPowerUserHome

✅ No regressions detected

User Journey Benchmarks · Samples: 5 · mock API

⚠️ Missing data: chrome/webpack/userJourneyOnboardingImport, chrome/webpack/userJourneyOnboardingNew, chrome/webpack/userJourneyAssets, chrome/webpack/userJourneyAccountManagement, chrome/webpack/userJourneyTransactions, firefox/webpack/userJourneyOnboardingImport, firefox/webpack/userJourneyOnboardingNew, firefox/webpack/userJourneyAssets, firefox/webpack/userJourneyAccountManagement, firefox/webpack/userJourneyTransactions

✅ No regressions detected

Dapp Page Load Benchmarks · Samples: 100

⚠️ Missing data: chrome/webpack/pageLoadBenchmark

✅ No regressions detected

Bundle size diffs [🚨 Warning! Bundle size has increased!]
  • background: 1.85 KiB (0.03%)
  • ui: -7 Bytes (0%)
  • common: 20 Bytes (0%)

@metamaskbotv2

metamaskbotv2 Bot commented May 4, 2026

Copy link
Copy Markdown
Contributor
Builds ready [4b6e536]
⚡ Performance Benchmarks (Total: 🟢 0 pass · 🟡 0 warn · 🔴 0 fail)

Baseline (latest main): 51036da | Date: 5/2/2026 | Pipeline: 25337327351 | Baseline logs

Interaction Benchmarks · Samples: 5

⚠️ Missing data: chrome/webpack/interactionUserActions, firefox/webpack/interactionUserActions

✅ No regressions detected

Startup Benchmarks · Samples: 100

⚠️ Missing data: chrome/webpack/startupStandardHome, chrome/webpack/startupPowerUserHome, firefox/webpack/startupStandardHome, firefox/webpack/startupPowerUserHome

✅ No regressions detected

User Journey Benchmarks · Samples: 5 · mock API

⚠️ Missing data: chrome/webpack/userJourneyOnboardingImport, chrome/webpack/userJourneyOnboardingNew, chrome/webpack/userJourneyAssets, chrome/webpack/userJourneyAccountManagement, chrome/webpack/userJourneyTransactions, firefox/webpack/userJourneyOnboardingImport, firefox/webpack/userJourneyOnboardingNew, firefox/webpack/userJourneyAssets, firefox/webpack/userJourneyAccountManagement, firefox/webpack/userJourneyTransactions

✅ No regressions detected

Dapp Page Load Benchmarks · Samples: 100

⚠️ Missing data: chrome/webpack/pageLoadBenchmark

✅ No regressions detected

Bundle size diffs [🚨 Warning! Bundle size has increased!]
  • background: 1.8 KiB (0.03%)
  • ui: -102 Bytes (0%)
  • common: 10 Bytes (0%)

@sonarqubecloud

sonarqubecloud Bot commented May 6, 2026

Copy link
Copy Markdown

@metamaskbotv2

metamaskbotv2 Bot commented May 6, 2026

Copy link
Copy Markdown
Contributor
Builds ready [9623a08]
⚡ Performance Benchmarks (Total: 🟢 0 pass · 🟡 0 warn · 🔴 0 fail)

Baseline (latest main): 51036da | Date: 5/2/2026 | Pipeline: 25430324671 | Baseline logs

Interaction Benchmarks · Samples: 5

⚠️ Missing data: chrome/webpack/interactionUserActions, firefox/webpack/interactionUserActions

✅ No regressions detected

Startup Benchmarks · Samples: 100

⚠️ Missing data: chrome/webpack/startupStandardHome, chrome/webpack/startupPowerUserHome, firefox/webpack/startupStandardHome, firefox/webpack/startupPowerUserHome

✅ No regressions detected

User Journey Benchmarks · Samples: 5 · mock API

⚠️ Missing data: chrome/webpack/userJourneyOnboardingImport, chrome/webpack/userJourneyOnboardingNew, chrome/webpack/userJourneyAssets, chrome/webpack/userJourneyAccountManagement, chrome/webpack/userJourneyTransactions, firefox/webpack/userJourneyOnboardingImport, firefox/webpack/userJourneyOnboardingNew, firefox/webpack/userJourneyAssets, firefox/webpack/userJourneyAccountManagement, firefox/webpack/userJourneyTransactions

✅ No regressions detected

Dapp Page Load Benchmarks · Samples: 100

⚠️ Missing data: chrome/webpack/pageLoadBenchmark

✅ No regressions detected

Bundle size diffs [🚨 Warning! Bundle size has increased!]
  • background: 1.85 KiB (0.03%)
  • ui: 5 Bytes (0%)
  • common: 20 Bytes (0%)

pull Bot pushed a commit to Reality2byte/metamask-mobile that referenced this pull request May 6, 2026
## **Description**

Seitrace (`https://seitrace.com`), the current Sei Mainnet block
explorer, is being decommissioned. This PR swaps every hardcoded
reference to `seiscan.io` and adds migration **134** to rewrite existing
users' persisted `NetworkController` state on upgrade.

Hardcoded URL swaps:

- `app/util/networks/customNetworks.tsx` — Sei Mainnet
`blockExplorerUrl`
- `tests/resources/networks.e2e.js` — e2e resource
- `tests/api-mocking/mock-responses/tx-sentinel-networks-map.ts` — mock
`explorer`

Migration 134 rewrites

`engine.backgroundState.NetworkController.networkConfigurationsByChainId['0x531'].blockExplorerUrls`
from `seitrace.com` to `seiscan.io` for existing installs. It only
touches entries still pointing at `seitrace.com` — a user who customized
their Sei block explorer (e.g. to `seistream.app`) is left alone. The
migration follows mobile's current pattern (sync arrow function with
in-place `state` mutation), and is registered in
`app/store/migrations/index.ts`. Cross-repo reference for this family
of block-explorer-URL migrations is

[`metamask-extension/app/scripts/migrations/197.ts`](https://github.com/MetaMask/metamask-extension/blob/main/app/scripts/migrations/197.ts).

The `@metamask/controller-utils` bump is deliberately deferred until
the sibling PR in `MetaMask/core` releases; this PR stands alone.

## **Changelog**

CHANGELOG entry: Fixed Sei Mainnet: replaced deprecated Seitrace
explorer with Seiscan (`https://seiscan.io`). Existing installs are
migrated via migration 134.

## **Related issues**

Fixes:

Companion PRs:
- [`MetaMask/core#8545`](MetaMask/core#8545) —
default `BlockExplorerUrl[SeiMainnet]`
-
[`MetaMask/metafi-sdk#525`](MetaMask/metafi-sdk#525)
— shared SDK `SEI_EXPLORER`
-
[`MetaMask/metamask-extension#42064`](MetaMask/metamask-extension#42064)
— extension migration 207

## **Manual testing steps**

```gherkin
Feature: Sei Mainnet block explorer URL

  Scenario: fresh install uses Seiscan
    Given a fresh install of MetaMask Mobile
    When the user adds the Sei Mainnet network
    Then the network's block-explorer URL is "https://seiscan.io/"
    And tapping a Sei transaction's "View on block explorer" opens "https://seiscan.io/tx/<hash>"

  Scenario: existing user with Seitrace URL is migrated
    Given a build prior to this change with Sei Mainnet added
    And the stored "blockExplorerUrls" is ["https://seitrace.com"]
    When the user upgrades to this build
    Then migration 134 runs
    And the stored "blockExplorerUrls" for Sei Mainnet is ["https://seiscan.io"]

  Scenario: user-customized URL is preserved
    Given a build prior to this change with Sei Mainnet added
    And the user has customized "blockExplorerUrls" to ["https://seistream.app"]
    When the user upgrades to this build
    Then migration 134 is a no-op for this entry
    And the stored "blockExplorerUrls" for Sei Mainnet remains ["https://seistream.app"]
```

## **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
- [ ] 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.

#### Performance checks (if applicable)

- [ ] I've tested on Android
- [ ] I've tested with a power user scenario
- [ ] I've instrumented key operations with Sentry traces for production
performance metrics

## **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]
> **Medium Risk**
> Adds a new persisted-state migration that mutates `NetworkController`
network configs for Sei Mainnet; while narrowly scoped, migrations run
on upgrade and can affect existing user state if bugs slip through.
> 
> **Overview**
> Updates Sei Mainnet’s default block explorer from **Seitrace** to
**Seiscan** across the in-app popular network config and test fixtures.
> 
> Adds migration `134` (registered in `app/store/migrations/index.ts`)
to rewrite persisted Sei Mainnet `blockExplorerUrls` entries whose URL
hostname is exactly `seitrace.com` to `seiscan.io`, while leaving
missing/invalid controller state and user-customized/lookalike URLs
untouched; includes unit tests covering the rewrite and no-op cases.
> 
> <sup>Reviewed by [Cursor Bugbot](https://cursor.com/bugbot) for commit
68e91bc. Bugbot is set up for automated
code reviews on this repo. Configure
[here](https://www.cursor.com/dashboard/bugbot).</sup>
<!-- /CURSOR_SUMMARY -->
@jeremytsng jeremytsng added this pull request to the merge queue May 6, 2026
Merged via the queue into main with commit a49904c May 6, 2026
204 checks passed
@jeremytsng jeremytsng deleted the fix/sei-explorer-seitrace-to-seiscan branch May 6, 2026 17:29
@github-actions github-actions Bot locked and limited conversation to collaborators May 6, 2026
@metamaskbot metamaskbot added the release-13.31.0 Issue or pull request that will be included in release 13.31.0 label May 6, 2026
Sign up for free to subscribe to this conversation on GitHub. Already have an account? Sign in.

Labels

release-13.31.0 Issue or pull request that will be included in release 13.31.0 size-M team-networks PRs from the Networks team

Projects

None yet

Development

Successfully merging this pull request may close these issues.

6 participants