Repository Analysis

MetaMask/metamask-extension

:globe_with_meridians: :electric_plug: The MetaMask browser extension enables browsing Ethereum blockchain enabled websites

1.4 Likely human-written View on GitHub
1.4
Adjusted Score
1.4
Raw Score
100%
Time Factor
2026-05-30
Last Push
13,133
Stars
TypeScript
Language
1,459,794
Lines of Code
7730
Files
1867
Pattern Hits
2026-05-31
Scan Date

Score History

Severity Breakdown

CRITICAL 1HIGH 3MEDIUM 131LOW 1732

Pattern Findings

1867 matches across 12 categories. Click a row to expand file-level details.

Hyper-Verbose Identifiers1491 hits · 1433 pts
SeverityFileLineSnippet
LOWAGENTS.md434export function getDefaultTokensControllerState(): TokensControllerState {
LOWui/ducks/domains.js106function enrichResolutionsWithAddressBook(resolutions, state) {
LOWui/ducks/app/app.ts722export function openBasicFunctionalityModal(): Action {
LOWui/ducks/app/app.ts728export function hideBasicFunctionalityModal(): Action {
LOWui/ducks/app/app.ts734export function onboardingToggleBasicFunctionalityOn(): Action {
LOWui/ducks/app/app.ts740export function onboardingToggleBasicFunctionalityOff(): Action {
LOWui/ducks/app/app.ts746export function onboardingToggleBackupAndSyncOn(): Action {
LOWui/ducks/app/app.ts752export function onboardingToggleBackupAndSyncOff(): Action {
LOWui/ducks/app/app.ts758export function toggleGasLoadingAnimation(
LOWui/ducks/app/app.ts764export function setLedgerWebHidConnectedStatus(
LOWui/ducks/app/app.ts780export function setOnBoardedInThisUISession(
LOWui/ducks/app/app.ts819export function getGasLoadingAnimationIsShowing(state: AppSliceState): boolean {
LOWui/ducks/app/app.ts823export function getLedgerWebHidConnectedStatus(
LOWui/ducks/app/app.ts833export function getShowSupportDataConsentModal(state: AppSliceState): boolean {
LOWui/ducks/app/app.ts837export function openDeleteMetaMetricsDataModal(): Action {
LOWui/ducks/app/app.ts843export function hideDeleteMetaMetricsDataModal(): Action {
LOWui/ducks/app/app.ts849export function openDataDeletionErrorModal(): Action {
LOWui/ducks/app/app.ts855export function hideDataDeletionErrorModal(): Action {
LOWui/ducks/swaps/swaps.js303export function shouldShowCustomPriceTooLowWarning(state) {
LOWui/ducks/swaps/swaps.js1411export function fetchMetaSwapsGasPriceEstimates() {
LOWui/ducks/swaps/swaps.js1462export function fetchSwapsSmartTransactionFees({
LOWui/ducks/swaps/swaps.js1490export function cancelSwapsSmartTransaction(uuid) {
LOWui/ducks/metamask/metamask.js314export function getConversionRateByTicker(state, ticker) {
LOWui/ducks/metamask/metamask.js320export function getSendHexDataFeatureFlagState(state) {
LOWui/ducks/metamask/metamask.js330function getGasFeeControllerEstimateType(state) {
LOWui/ducks/metamask/metamask.js334function getGasFeeControllerEstimateTypeByChainId(state, chainId) {
LOWui/ducks/metamask/metamask.js338function getGasFeeControllerEstimates(state) {
LOWui/ducks/metamask/metamask.js342function getGasFeeControllerEstimatesByChainId(state, chainId) {
LOWui/ducks/metamask/metamask.js346function getTransactionGasFeeEstimates(state) {
LOWui/ducks/metamask/metamask.js351function getTransactionGasFeeEstimatesByChainId(state, chainId) {
LOWui/ducks/metamask/metamask.js426export function getEstimatedGasFeeTimeBounds(state) {
LOWui/ducks/metamask/metamask.js430export function getEstimatedGasFeeTimeBoundsByChainId(state, chainId) {
LOWui/ducks/metamask/metamask.js455export function getIsGasEstimatesLoadingByChainId(
LOWui/ducks/metamask/metamask.js480export function getIsNetworkBusyByChainId(state, chainId) {
LOWui/ducks/metamask/metamask.js498export function getIsWalletResetInProgress(state) {
LOWui/ducks/metamask/metamask.js514export function getIsPrimarySeedPhraseBackedUp(state) {
LOWui/ducks/metamask/metamask.js529export function getIsSeedlessPasswordOutdated(state) {
LOWui/ducks/metamask/metamask.js540export function doesUserHaveALedgerAccount(state) {
LOWui/ducks/metamask/metamask.js564export function getPasskeyAutoUnlockSuppressed(state) {
LOWui/contexts/transaction-modal.js52export function useTransactionModalContext() {
LOW…exts/metamask-notifications/metamask-notifications.tsx68export function useBasicFunctionalityDisableEffect() {
LOW…exts/metamask-notifications/metamask-notifications.tsx89export function useFetchInitialNotificationsEffect() {
LOW…exts/metamask-notifications/metamask-notifications.tsx123export function useEnableNotificationsByDefaultEffect() {
LOW…ntexts/hardware-wallets/HardwareWalletStateManager.tsx220function keyringTypeToHardwareWalletType(
LOWui/contexts/hardware-wallets/webConnectionUtils.ts51export async function queryCameraPermissionWithStatus(): Promise<{
LOWui/contexts/hardware-wallets/webConnectionUtils.ts76async function queryCameraPermissionDomState(): Promise<PermissionState | null> {
LOWui/contexts/hardware-wallets/webConnectionUtils.ts147export async function checkHardwareWalletPermission(
LOWui/contexts/hardware-wallets/webConnectionUtils.ts165export async function checkCameraPermissionState(): Promise<HardwareConnectionPermissionState> {
LOWui/contexts/hardware-wallets/webConnectionUtils.ts249export async function requestHardwareWalletPermission(
LOWui/contexts/hardware-wallets/webConnectionUtils.ts373export async function getConnectedLedgerDevices(): Promise<HIDDevice[]> {
LOWui/contexts/hardware-wallets/webConnectionUtils.ts391export async function getConnectedTrezorDevices(): Promise<USBDevice[]> {
LOWui/contexts/hardware-wallets/webConnectionUtils.ts519export function subscribeToHardwareWalletEvents(
LOWui/contexts/hardware-wallets/webConnectionUtils.ts540export function isRestrictedCameraEnvironment(): boolean {
LOWui/contexts/hardware-wallets/webConnectionUtils.ts572export async function handleContinueWithPermissionCheck(
LOWui/contexts/hardware-wallets/errors.ts27export function createHardwareWalletError(
LOWui/contexts/hardware-wallets/errors.ts121export function getConnectionStateFromError(
LOWui/contexts/hardware-wallets/errors.ts171export function isRetryableHardwareWalletError(error: HardwareWalletError) {
LOWui/contexts/hardware-wallets/utils.ts27export function keyringTypeToHardwareWalletType(
LOWui/contexts/hardware-wallets/useHardwareFooter.ts39export function isHardwareConnectionReadyForConfirmFooter(
LOWui/contexts/hardware-wallets/rpcErrorUtils.ts182function isSerializedRpcHardwareWalletError(
1431 more matches not shown…
AI Slop Vocabulary65 hits · 193 pts
SeverityFileLineSnippet
MEDIUMui/__mocks__/perps/perps-controller/index.ts207 // Step sizes for tick marks based on max leverage
MEDIUMui/__mocks__/perps/perps-controller/index.ts272 // $15,000,000 for max leverage >= 25
MEDIUMui/__mocks__/perps/perps-controller/index.ts274 // $5,000,000 for max leverage in [20, 25)
MEDIUMui/__mocks__/perps/perps-controller/index.ts276 // $2,000,000 for max leverage in [10, 20)
MEDIUMui/__mocks__/perps/perps-controller/index.ts278 // $500,000 for max leverage < 10
MEDIUMui/__mocks__/perps/perps-controller/index.ts322 // Ensures accurate decimal handling in margin/leverage calculations
MEDIUMui/__mocks__/perps/perps-controller/index.ts330 // Fallback max leverage when market data is unavailable
MEDIUMui/__mocks__/perps/perps-controller/index.ts332 // Most HyperLiquid assets support at least 50x leverage
MEDIUMui/__mocks__/perps/perps-controller/index.ts101 // Leverage threshold for warning users about high leverage
MEDIUMui/__mocks__/perps/perps-controller/index.ts168 // Max leverage cache duration (milliseconds)
MEDIUMui/__mocks__/perps/perps-controller/index.ts169 // How long to cache max leverage values per asset (leverage rarely changes)
MEDIUMui/__mocks__/perps/perps-controller/index.ts208 TickStepLow: 5, // Step size when max leverage <= 20
MEDIUMui/__mocks__/perps/perps-controller/index.ts209 TickStepMedium: 10, // Step size when max leverage <= 50
MEDIUMui/__mocks__/perps/perps-controller/index.ts210 TickStepHigh: 20, // Step size when max leverage > 50
MEDIUMui/__mocks__/perps/perps-controller/index.ts48 DefaultMaxLeverage: 3 as number, // Default fallback max leverage when market data is unavailable - conservative defau
MEDIUMui/__mocks__/perps/perps-controller/index.ts102 HighLeverageWarning: 20, // Show warning when leverage > 20x
MEDIUMui/__mocks__/perps/perps-controller/index.ts518 'https://support.metamask.io/manage-crypto/trade/perps/leverage-and-liquidation/?utm_source=extension#what-is-auto-d
MEDIUMui/__mocks__/perps/perps-controller/index.ts751 leverage?: number; // Last used leverage for this market
MEDIUMui/__mocks__/perps/perps-controller/index.ts849 leverage?: number; // Leverage to apply for the order (e.g., 10 for 10x leverage)
MEDIUMui/__mocks__/perps/perps-controller/index.ts850 existingPositionLeverage?: number; // Existing position leverage for validation (protocol constraint)
MEDIUMui/__mocks__/perps/perps-controller/index.ts881 maxLeverage: number; // Maximum allowed leverage for this asset
MEDIUMui/__mocks__/perps/perps-controller/index.ts999 maxLeverage: number; // HyperLiquid: max leverage
MEDIUM…/components/app/perps/order-entry/order-entry.test.tsx219 // Margin = notional / leverage = $1,000 / 3 = $333.33 (fees are a separate line item)
MEDIUM…er-entry/components/amount-input/amount-input.test.tsx297 // Size $5000 with available $1000 × 10x leverage = max size $10000
MEDIUM…r-entry/components/leverage-slider/leverage-slider.tsx123 // closure. Falls back to `leverage` (the parent-owned source of truth)
MEDIUM…ponents/auto-close-section/auto-close-section.test.tsx486 // Test a non-integer: leverage=3, entry=45000, tp=45500
MEDIUM…ponents/auto-close-section/auto-close-section.test.tsx509 // 10% RoE at leverage=10: priceChange = 10/(10*100) = 1% -> 45000 * 1.01 = 45450
MEDIUM…ponents/auto-close-section/auto-close-section.test.tsx534 // -10% RoE at leverage=10: priceChange = -10/(10*100) = -1% -> 45000 * 0.99 = 44550
MEDIUM…ponents/auto-close-section/auto-close-section.test.tsx560 // -11% RoE at leverage=10: priceChange = -11/(10*100) = -1.1% -> 45000 * 0.989 = 44505
MEDIUM…ponents/auto-close-section/auto-close-section.test.tsx585 // +10% RoE at leverage=10: priceChange = 1% -> 45000 * 1.01 = 45450
MEDIUM…ponents/auto-close-section/auto-close-section.test.tsx611 // -10% RoE at leverage=10: priceChange = -1% -> $2,000 * 0.99 = $1,980 (not $2,970)
MEDIUM…ponents/auto-close-section/auto-close-section.test.tsx638 // 10% RoE at leverage=10: priceChange = 1% -> $2,000 * 1.01 = $2,020 (not $3,030)
MEDIUM…ponents/auto-close-section/auto-close-section.test.tsx663 // SL at $1,980 with limit entry $2,000 at 10x leverage:
MEDIUM…p/perps/update-tpsl/update-tpsl-modal-content.test.tsx51const positionWithTPSL = mockPositions[0]; // ETH: entry=2850, leverage=3, TP=3200.00, SL=2600.00, size=2.5 (long)
MEDIUM…p/perps/update-tpsl/update-tpsl-modal-content.test.tsx323 // ETH: entry=2850, leverage=3 (long)
MEDIUM…p/perps/update-tpsl/update-tpsl-modal-content.test.tsx342 // ETH: entry=2850, leverage=3 (long)
MEDIUM…p/perps/update-tpsl/update-tpsl-modal-content.test.tsx484 // ETH: entry=2850, leverage=3, +50% RoE -> 2850 * (1 + 50/300) = 2850 * 1.1667 = 3325
MEDIUM…p/perps/update-tpsl/update-tpsl-modal-content.test.tsx500 // ETH: entry=2850, leverage=3, -50% signed RoE -> 2850 * (1 + (-50)/300) = 2850 * 0.8333 = 2375
MEDIUM…p/perps/update-tpsl/update-tpsl-modal-content.test.tsx516 // SOL: entry=95, leverage=10, +15% signed RoE -> 95 * (1 + 15/1000) = 95 * 1.015 = 96.425
MEDIUM…p/perps/update-tpsl/update-tpsl-modal-content.test.tsx558 // SOL: entry=95, leverage=10, defaulted -10% signed RoE -> 95 * 0.99 = 94.05
MEDIUM…p/perps/update-tpsl/update-tpsl-modal-content.test.tsx639 // SOL: entry=95, leverage=10. +25% signed RoE -> 95*(1+25/1000) = 95*1.025 = 97.375
MEDIUM…p/perps/update-tpsl/update-tpsl-modal-content.test.tsx654 // SOL: entry=95, leverage=10. Typing +10 (SL above entry for lock-in-profit scenario)
MEDIUM…p/perps/update-tpsl/update-tpsl-modal-content.test.tsx673 // SOL: entry=95, leverage=10. 011 normalizes to -11% signed RoE
MEDIUM…p/perps/update-tpsl/update-tpsl-modal-content.test.tsx727 // SOL: entry=95, leverage=10
MEDIUM…p/perps/update-tpsl/update-tpsl-modal-content.test.tsx1004 // mockPositions[1] is BTC with size=-0.5 (short), entry=45000, leverage=15
MEDIUM…p/perps/update-tpsl/update-tpsl-modal-content.test.tsx1008 // BTC short: entry=45000, leverage=15
MEDIUM…p/perps/update-tpsl/update-tpsl-modal-content.test.tsx1025 // BTC short: entry=45000, leverage=15
MEDIUM…multichain/import-nfts-modal/import-nfts-modal.test.js323 // Get the actual networkClientId that was used in the addNftVerifyOwnership call (use last call to be robust agains
MEDIUMui/hooks/perps/usePerpsOrderForm.ts246 // reset amount/leverage—only the effect above updates formState.type.
MEDIUMui/hooks/perps/usePerpsOrderForm.test.ts392 // amount=$15, leverage=3x, currentPrice=$24.95, markPrice=$25.65, szDecimals=1
MEDIUMui/hooks/perps/usePerpsOrderForm.test.ts469 // Size = $10,000, leverage = 10x → margin = $10,000 / 10 = $1,000
MEDIUMui/hooks/perps/usePerpsOrderForm.test.ts489 // orderValue should be $5000 (the size), not $25000 (size × leverage)
MEDIUMui/hooks/perps/usePerpsOrderForm.test.ts509 // Size $5000, available $1000, leverage 10x → maxSize $10000 → 50%
MEDIUMui/hooks/perps/usePerpsOrderForm.test.ts516 // Same size $5000, now leverage 5x → maxSize $5000 → 100%
MEDIUMui/hooks/perps/usePerpsOrderForm.test.ts569 // orderValue equals the entered amount ($1000) regardless of leverage.
MEDIUMui/hooks/perps/marginUtils.ts23 FallbackMaxLeverage: 50, // Fallback max leverage when market data is unavailable
MEDIUMui/hooks/perps/usePerpsMarginCalculations.test.ts9 const position = mockPositions[0]; // ETH long, marginUsed 2375, leverage 3
MEDIUMui/pages/perps/perps-order-entry-page.test.tsx804 // spendableBalance is 10125, default leverage is 3, so max amount = 30375
MEDIUMui/pages/perps/perps-market-detail-page.test.tsx1295 // ETH is long, entry=2850, leverage=3.
MEDIUMui/pages/perps/perps-market-detail-page.test.tsx1314 // ETH is long, entry=2850, leverage=3.
5 more matches not shown…
Decorative Section Separators64 hits · 183 pts
SeverityFileLineSnippet
MEDIUMui/pages/settings/search-config.ts115// ── Registry (auto-derived) ─────────────────────────────────────────────
MEDIUMui/pages/bridge/hooks/useSecurityAlerts.test.ts56 // ─── txAlert ──────────────────────────────────────────────────────────────
MEDIUMui/pages/bridge/hooks/useSecurityAlerts.test.ts142 // ─── securityWarnings ─────────────────────────────────────────────────────
MEDIUMui/pages/bridge/hooks/useSecurityAlerts.test.ts309 // ─── memoization ──────────────────────────────────────────────────────────
MEDIUMui/pages/bridge/hooks/useAssetSecurityData.test.ts40 // ─── assetHasSecurityData ──────────────────────────────────────────────────
MEDIUMui/pages/bridge/hooks/useAssetSecurityData.test.ts60 // ─── assetIsVerified ───────────────────────────────────────────────────────
MEDIUMui/pages/bridge/hooks/useAssetSecurityData.test.ts116 // ─── assetIsSuspicious ─────────────────────────────────────────────────────
MEDIUMui/pages/bridge/hooks/useAssetSecurityData.test.ts163 // ─── assetIsMalicious ──────────────────────────────────────────────────────
MEDIUMui/pages/bridge/hooks/useAssetSecurityData.test.ts200 // ─── assetSuspiciousLocalizedFeatures ─────────────────────────────────────
MEDIUMui/pages/bridge/hooks/useAssetSecurityData.test.ts335 // ─── assetMaliciousLocalizedFeatures ──────────────────────────────────────
MEDIUMui/pages/bridge/hooks/useAssetSecurityData.test.ts460 // ─── assetSuspiciousFeatures ──────────────────────────────────────────────
MEDIUMui/pages/bridge/hooks/useAssetSecurityData.test.ts537 // ─── assetMaliciousFeatures ───────────────────────────────────────────────
MEDIUMui/pages/bridge/hooks/useAssetSecurityData.test.ts646 // ─── memoization ──────────────────────────────────────────────────────────
MEDIUM…confirmations/confirmation/templates/approval-types.ts36// ──────────────────────────────────────────────────────────────────────────
MEDIUM…confirmations/confirmation/templates/approval-types.ts50// ──────────────────────────────────────────────────────────────────────────
MEDIUM…ect/dapp-connection-control-bar-network-picker.spec.ts23// ── Shared fixture options ─────────────────────────────────────────────────
MEDIUM…ect/dapp-connection-control-bar-network-picker.spec.ts47// ── Shared helpers ─────────────────────────────────────────────────────────
MEDIUMtest/e2e/tests/mm-connect/connect-evm.spec.ts26// ── Shared fixture options ─────────────────────────────────────────────────
MEDIUMtest/e2e/tests/mm-connect/connect-evm.spec.ts32// ── Shared helpers ─────────────────────────────────────────────────────────
MEDIUMtest/e2e/tests/perps/perps-activity.spec.ts27 // ─── Filter dropdown UI ────────────────────────────────────────────────────
MEDIUMtest/e2e/tests/perps/perps-activity.spec.ts56 // ─── Filter by Trades ──────────────────────────────────────────────────────
MEDIUMtest/e2e/tests/perps/perps-activity.spec.ts86 // ─── Filter by Orders ─────────────────────────────────────────────────────
MEDIUMtest/e2e/tests/perps/perps-activity.spec.ts115 // ─── Filter by Funding ────────────────────────────────────────────────────
MEDIUMtest/e2e/tests/perps/perps-activity.spec.ts144 // ─── Filter by Deposits ───────────────────────────────────────────────────
MEDIUMtest/e2e/tests/perps/perps-activity.spec.ts173 // ─── Click transaction → market detail ────────────────────────────────────
MEDIUMtest/e2e/tests/perps/perps-activity.spec.ts208 // ─── Recent activity section on Perps home ────────────────────────────────
MEDIUMtest/e2e/tests/perps/perps-position-lifecycle.spec.ts41 // ─── Open position flows ───────────────────────────────────────────────────
MEDIUMtest/e2e/tests/perps/perps-position-lifecycle.spec.ts89 // ─── Close the position ─────────────────────────────────────────
MEDIUMtest/e2e/tests/perps/perps-position-lifecycle.spec.ts160 // ─── Close the position ─────────────────────────────────────────
MEDIUMtest/e2e/tests/perps/perps-position-lifecycle.spec.ts186 // ─── Close position flows ──────────────────────────────────────────────────
MEDIUMtest/e2e/tests/perps/perps-position-lifecycle.spec.ts373 // ─── Reverse position flows ────────────────────────────────────────────────
MEDIUMtest/e2e/tests/perps/perps-position-lifecycle.spec.ts491 // ─── Margin management ─────────────────────────────────────────────────────
MEDIUMtest/e2e/tests/perps/perps-position-lifecycle.spec.ts598 // ─── Position card on home page ────────────────────────────────────────────
MEDIUMtest/e2e/page-objects/pages/test-dapp-mm-connect.ts25 // ──────────────────────────────────────────────────────────────────────────
MEDIUMtest/e2e/page-objects/pages/test-dapp-mm-connect.ts27 // ──────────────────────────────────────────────────────────────────────────
MEDIUMtest/e2e/page-objects/pages/test-dapp-mm-connect.ts65 // ──────────────────────────────────────────────────────────────────────────
MEDIUMtest/e2e/page-objects/pages/test-dapp-mm-connect.ts67 // ──────────────────────────────────────────────────────────────────────────
MEDIUMtest/e2e/page-objects/pages/test-dapp-mm-connect.ts92 // ──────────────────────────────────────────────────────────────────────────
MEDIUMtest/e2e/page-objects/pages/test-dapp-mm-connect.ts94 // ──────────────────────────────────────────────────────────────────────────
MEDIUMtest/e2e/page-objects/pages/test-dapp-mm-connect.ts124 // ──────────────────────────────────────────────────────────────────────────
MEDIUMtest/e2e/page-objects/pages/test-dapp-mm-connect.ts126 // ──────────────────────────────────────────────────────────────────────────
MEDIUMtest/e2e/page-objects/pages/test-dapp-mm-connect.ts156 // ──────────────────────────────────────────────────────────────────────────
MEDIUMtest/e2e/page-objects/pages/test-dapp-mm-connect.ts158 // ──────────────────────────────────────────────────────────────────────────
MEDIUMtest/e2e/page-objects/pages/test-dapp-mm-connect.ts233 // ──────────────────────────────────────────────────────────────────────────
MEDIUMtest/e2e/page-objects/pages/test-dapp-mm-connect.ts235 // ──────────────────────────────────────────────────────────────────────────
MEDIUMtest/e2e/page-objects/pages/test-dapp-mm-connect.ts287 // ──────────────────────────────────────────────────────────────────────────
MEDIUMtest/e2e/page-objects/pages/test-dapp-mm-connect.ts289 // ──────────────────────────────────────────────────────────────────────────
MEDIUMtest/e2e/page-objects/pages/test-dapp-mm-connect.ts307 // ──────────────────────────────────────────────────────────────────────────
MEDIUMtest/e2e/page-objects/pages/test-dapp-mm-connect.ts309 // ──────────────────────────────────────────────────────────────────────────
MEDIUMtest/e2e/page-objects/pages/test-dapp-mm-connect.ts342 // ──────────────────────────────────────────────────────────────────────────
MEDIUMtest/e2e/page-objects/pages/test-dapp-mm-connect.ts344 // ──────────────────────────────────────────────────────────────────────────
MEDIUMtest/e2e/page-objects/pages/test-dapp-mm-connect.ts359 // ──────────────────────────────────────────────────────────────────────────
MEDIUMtest/e2e/page-objects/pages/test-dapp-mm-connect.ts361 // ──────────────────────────────────────────────────────────────────────────
MEDIUMtest/e2e/page-objects/pages/test-dapp-mm-connect.ts400 // ──────────────────────────────────────────────────────────────────────────
MEDIUMtest/e2e/page-objects/pages/test-dapp-mm-connect.ts402 // ──────────────────────────────────────────────────────────────────────────
MEDIUMtest/e2e/page-objects/pages/test-dapp-mm-connect.ts504 // ──────────────────────────────────────────────────────────────────────────
MEDIUMtest/e2e/page-objects/pages/test-dapp-mm-connect.ts506 // ──────────────────────────────────────────────────────────────────────────
MEDIUMtest/e2e/page-objects/pages/test-dapp-mm-connect.ts580 // ──────────────────────────────────────────────────────────────────────────
MEDIUMtest/e2e/page-objects/pages/test-dapp-mm-connect.ts582 // ──────────────────────────────────────────────────────────────────────────
MEDIUM.devcontainer/install.sh2#-------------------------------------------------------------------------------------------------------------
4 more matches not shown…
Over-Commented Block138 hits · 135 pts
SeverityFileLineSnippet
LOWbuilds.yml321 # Used for debugging changes to the phishing warning page.
LOWbuilds.yml341 - METAMASK_VERSION
LOWbuilds.yml401 # Uses yaml anchors to DRY - https://juju.is/docs/sdk/yaml-anchors-and-aliases
LOWbuilds.yml421
LOW.eslintrc.base.js81 // prev: ['multiline-block-like', 'multiline-expression'],
LOW.yarnrc.yml21 # @metamask/jazzicon v2.0.0 but there is work done on that repository to
LOWtsconfig.json1{
LOWAGENTS.md361yarn test:e2e:single path/to/test.spec.js --browser=chrome
LOWAGENTS.md1601# 3. Update LavaMoat policies
LOWui/ducks/bridge/bridge.test.ts261 {
LOWui/providers/perps/README.mock.md121
LOWui/providers/perps/README.mock.md161
LOWui/components/app/musd/musd-events.ts501 cta_text: params.ctaText,
LOWui/components/app/srp-quiz-modal/types.ts1import { ButtonSize, ButtonVariant } from '../../component-library';
LOWui/components/app/name/name-details/name-display.tsx101 name: true,
LOW…nts/multichain/network-list-menu/network-list-menu.tsx121 // Displays the search box and network list
LOW…hain/network-manager/hooks/useNetworkChangeHandlers.ts41 // Displays the page for adding an additional RPC URL
LOWui/hooks/useEventFragment.js21 * @returns
LOWui/hooks/shield/metrics/utils.ts41 default_payment_currency: params.defaultPaymentCurrency,
LOWui/hooks/bridge/useRewards.test.ts321 // return null;
LOWui/hooks/bridge/useRewards.test.ts341 // {},
LOWui/hooks/bridge/useRewards.test.ts361 // return mockGetQuoteRequest({} as never);
LOWui/hooks/perps/usePerpsTransactionHistory.ts101 const [transactions, setTransactions] = useState<PerpsTransaction[]>([]);
LOWui/hooks/perps/usePerpsTransactionHistory.ts141 // This ensures new trades appear immediately without waiting for REST refetch
LOWui/pages/home/home.component.js261 // future sibling like `/perpsNew` from silently resuming off a stale
LOW…unts-connect-page/multichain-accounts-connect-page.tsx281 // - EIP-1193 wallet_requestPermissions with restrictNetworkSwitching
LOWui/pages/bridge/quotes/bridge-quotes-modal.tsx81 best_quote_provider: formatProviderLabel(recommendedQuote.quote),
LOWui/pages/bridge/quotes/multichain-bridge-quote-card.tsx241 UnifiedSwapBridgeEventName.AllQuotesOpened,
LOW…ges/bridge/awaiting-signatures/awaiting-signatures.tsx61 // eslint-disable-next-line @typescript-eslint/naming-convention
LOWui/pages/perps/perps-order-entry-page.tsx1141 orderParams.trackingData = buildPerpsVipTrackingData({
LOWui/pages/perps/perps-market-detail-page.tsx461 //
LOWui/pages/perps/perps-market-detail-page.tsx701 // The server returns pre-aggregated candles - do NOT fetch 1m candles and
LOWui/pages/perps/perps-market-detail-page.tsx721 // |------------------------------------|-------------------------------------|
LOW…confirmations/confirmation/templates/approval-types.ts41// not the assertion.** Without this guard nothing else checks that the two
LOW…cation-components/types/notifications/notifications.ts41 Account?: NotificationFC<Notif>;
LOWui/helpers/constants/design-system.ts21 // TODO: Fix in https://github.com/MetaMask/metamask-extension/issues/31860
LOWui/helpers/constants/design-system.ts41 borderMuted = 'border-muted',
LOWui/helpers/constants/design-system.ts61 // eslint-disable-next-line @typescript-eslint/naming-convention
LOWui/helpers/constants/design-system.ts81 // TODO: Fix in https://github.com/MetaMask/metamask-extension/issues/31860
LOWui/helpers/constants/design-system.ts101 goerli = 'goerli',
LOWui/helpers/constants/design-system.ts121 // eslint-disable-next-line @typescript-eslint/naming-convention
LOWui/helpers/constants/design-system.ts141 // TODO: Fix in https://github.com/MetaMask/metamask-extension/issues/31860
LOWui/helpers/constants/design-system.ts161 backgroundPressed = 'background-pressed',
LOWui/helpers/constants/design-system.ts181 // eslint-disable-next-line @typescript-eslint/naming-convention
LOWui/helpers/constants/design-system.ts201 // TODO: Fix in https://github.com/MetaMask/metamask-extension/issues/31860
LOWui/helpers/constants/design-system.ts221 sepolia = 'sepolia',
LOWui/helpers/constants/design-system.ts241 // eslint-disable-next-line @typescript-eslint/naming-convention
LOWui/helpers/constants/design-system.ts261 // TODO: Fix in https://github.com/MetaMask/metamask-extension/issues/31860
LOWui/helpers/constants/design-system.ts281 infoMuted = 'info-muted',
LOWui/helpers/constants/design-system.ts321 // TODO: Fix in https://github.com/MetaMask/metamask-extension/issues/31860
LOWui/helpers/constants/design-system.ts341 primaryDefault = 'primary-default',
LOWui/helpers/constants/design-system.ts361 // eslint-disable-next-line @typescript-eslint/naming-convention
LOWui/helpers/constants/design-system.ts381 // TODO: Fix in https://github.com/MetaMask/metamask-extension/issues/31860
LOWui/helpers/constants/design-system.ts421 // eslint-disable-next-line @typescript-eslint/naming-convention
LOWui/helpers/constants/design-system.ts441 // TODO: Fix in https://github.com/MetaMask/metamask-extension/issues/31860
LOWui/helpers/constants/design-system.ts461 inherit = 'inherit',
LOWui/helpers/constants/design-system.ts521export enum TextVariant {
LOWui/helpers/constants/design-system.ts541 // eslint-disable-next-line @typescript-eslint/naming-convention
LOWui/helpers/constants/design-system.ts641// which is for aligning all items not one
LOWui/helpers/constants/design-system.ts661 // TODO: Fix in https://github.com/MetaMask/metamask-extension/issues/31860
78 more matches not shown…
Fake / Example Data78 hits · 90 pts
SeverityFileLineSnippet
LOWui/index.test.js115 socialLoginEmail: 'test@test.com',
LOWui/components/ui/info-tooltip/info-tooltip.stories.js25 'Lorem ipsum dolor sit amet, consectetur adipiscing elit. Ut gravida dictum diam et sagittis. Sed lorem arcu, consec
LOWui/components/ui/info-tooltip/info-tooltip.stories.js25 'Lorem ipsum dolor sit amet, consectetur adipiscing elit. Ut gravida dictum diam et sagittis. Sed lorem arcu, consec
LOWui/components/ui/info-tooltip/info-tooltip.stories.js32 'Lorem ipsum dolor sit amet, consectetur adipiscing elit. Ut gravida dictum diam et sagittis. Sed lorem arcu, consec
LOWui/components/ui/info-tooltip/info-tooltip.stories.js32 'Lorem ipsum dolor sit amet, consectetur adipiscing elit. Ut gravida dictum diam et sagittis. Sed lorem arcu, consec
LOWui/components/ui/info-tooltip/info-tooltip.stories.js39 'Lorem ipsum dolor sit amet, consectetur adipiscing elit. Ut gravida dictum diam et sagittis. Sed lorem arcu, consec
LOWui/components/ui/info-tooltip/info-tooltip.stories.js39 'Lorem ipsum dolor sit amet, consectetur adipiscing elit. Ut gravida dictum diam et sagittis. Sed lorem arcu, consec
LOWui/components/ui/info-tooltip/info-tooltip.stories.js46 'Lorem ipsum dolor sit amet, consectetur adipiscing elit. Ut gravida dictum diam et sagittis. Sed lorem arcu, consec
LOWui/components/ui/info-tooltip/info-tooltip.stories.js46 'Lorem ipsum dolor sit amet, consectetur adipiscing elit. Ut gravida dictum diam et sagittis. Sed lorem arcu, consec
LOW…ts/ui/actionable-message/actionable-message.stories.js34 'Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore mag
LOW…ts/ui/actionable-message/actionable-message.stories.js34 'Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore mag
LOWui/components/ui/popover/popover.stories.js74 Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod
LOWui/components/ui/popover/popover.stories.js74 Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod
LOWui/components/ui/textarea/textarea.test.js13 'Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod temporld, Lorem ipsum dolor sit amet, conse
LOWui/components/ui/textarea/textarea.test.js13 'Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod temporld, Lorem ipsum dolor sit amet, conse
LOWui/components/ui/textarea/textarea.stories.js71 'Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod temporld, Lorem ipsum dolor sit amet, conse
LOWui/components/ui/textarea/textarea.stories.js71 'Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod temporld, Lorem ipsum dolor sit amet, conse
LOW…omponents/ui/nickname-popover/nickname-popover.test.js29 nickname="John Doe"
LOW…onents/ui/export-text-container/export-text.stories.js22 text: ' Lorem ipsum dolor sit amet, consectetur adipiscing elit.',
LOW…onents/ui/export-text-container/export-text.stories.js22 text: ' Lorem ipsum dolor sit amet, consectetur adipiscing elit.',
LOW…p/alert-system/general-alert/general-alert.stories.tsx8 'Lorem ipsum dolor sit amet, consectetur adipiscing elit. Vivamus sapien tellus, elementum sit ' +
LOW…p/alert-system/general-alert/general-alert.stories.tsx8 'Lorem ipsum dolor sit amet, consectetur adipiscing elit. Vivamus sapien tellus, elementum sit ' +
LOWui/components/app/snaps/copyable/copyable.stories.js34 text: `Lorem ipsum dolor sit amet, consectetur adipiscing elit. Aenean ultrices arcu quis lorem luctus, consequat vulp
LOWui/components/app/snaps/copyable/copyable.stories.js34 text: `Lorem ipsum dolor sit amet, consectetur adipiscing elit. Aenean ultrices arcu quis lorem luctus, consequat vulp
LOWui/components/app/confirm/info/row/hook.test.ts82 const mockContactName = 'John Doe';
LOWui/components/app/confirm/info/row/hook.test.ts142 getAddressBookEntry: { name: 'John Doe' },
LOWui/components/app/confirm/info/row/hook.test.ts156 const mockContactName = 'John Doe';
LOWui/components/app/confirm/info/row/text.stories.tsx23 text: 'Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore m
LOWui/components/app/confirm/info/row/text.stories.tsx23 text: 'Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore m
LOWui/components/app/confirm/info/row/text.stories.tsx25 'Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna
LOWui/components/app/confirm/info/row/text.stories.tsx25 'Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna
LOWui/components/app/confirm/info/row/text.stories.tsx30 text: 'Lorem ipsum dolor sit amet.',
LOWui/components/app/confirm/info/row/text.stories.tsx30 text: 'Lorem ipsum dolor sit amet.',
LOW…ification-list-item/notification-list-item.stories.tsx38 text: 'Lorem ipsum',
LOW…ification-list-item/notification-list-item.stories.tsx41 text: 'dolor sit amet',
LOW…ification-list-item/notification-list-item.stories.tsx50 text: 'Lorem Ipsum is simply dummy text of the printing and',
LOW…list-item-text/notification-list-item-text.stories.tsx40 text: 'Lorem ipsum',
LOW…list-item-text/notification-list-item-text.stories.tsx43 text: 'dolor sit amet',
LOW…list-item-text/notification-list-item-text.stories.tsx114 text: 'Lorem ipsum',
LOW…list-item-text/notification-list-item-text.stories.tsx117 text: 'dolor sit amet',
LOW…list-item-text/notification-list-item-text.stories.tsx128 text: 'Lorem ipsum',
LOW…list-item-text/notification-list-item-text.stories.tsx131 text: 'dolor sit amet',
LOW…omponent-library/modal-footer/modal-footer.stories.tsx147 children: 'Lorem ipsum dolor sit ',
LOW…ents/component-library/container/container.stories.tsx25 'Lorem ipsum dolor sit amet, consectetur adipiscing elit. Nullam aliquam, nisl eget aliquam ultrices, nunc nunc al
LOW…ents/component-library/container/container.stories.tsx25 'Lorem ipsum dolor sit amet, consectetur adipiscing elit. Nullam aliquam, nisl eget aliquam ultrices, nunc nunc al
LOW…ponents/component-library/container/container.test.tsx28 Small breakpoint: Lorem ipsum dolor sit amet, consectetur adipiscing
LOW…ponents/component-library/container/container.test.tsx28 Small breakpoint: Lorem ipsum dolor sit amet, consectetur adipiscing
LOW…ponents/component-library/container/container.test.tsx38 Medium breakpoint: Lorem ipsum dolor sit amet, consectetur adipiscing
LOW…ponents/component-library/container/container.test.tsx38 Medium breakpoint: Lorem ipsum dolor sit amet, consectetur adipiscing
LOW…ponents/component-library/container/container.test.tsx48 Large breakpoint: Lorem ipsum dolor sit amet, consectetur adipiscing
LOW…ponents/component-library/container/container.test.tsx48 Large breakpoint: Lorem ipsum dolor sit amet, consectetur adipiscing
LOW…ponent-library/select-button/select-button.stories.tsx35 description: 'Lorem ipsum Lorem ipsum',
LOW…ponent-library/modal-content/modal-content.stories.tsx39 Lorem ipsum dolor sit amet, consectetur adipiscing elit. Nullam euismod
LOW…ponent-library/modal-content/modal-content.stories.tsx39 Lorem ipsum dolor sit amet, consectetur adipiscing elit. Nullam euismod
LOWui/components/component-library/modal/modal.stories.tsx68 Lorem ipsum dolor sit amet, conse{' '}
LOWui/components/component-library/modal/modal.stories.tsx68 Lorem ipsum dolor sit amet, conse{' '}
LOW…ts/component-library/modal-body/modal-body.stories.tsx45 'Lorem ipsum dolor sit amet, consectetur adipiscing elit. Nulla vitae elit libero, a pharetra augue. Nullam id dol
LOW…ts/component-library/modal-body/modal-body.stories.tsx45 'Lorem ipsum dolor sit amet, consectetur adipiscing elit. Nulla vitae elit libero, a pharetra augue. Nullam id dol
LOW…ts/component-library/modal-body/modal-body.stories.tsx66 Lorem ipsum dolor sit amet, consectetur adipiscing elit. Nulla vitae
LOW…ts/component-library/modal-body/modal-body.stories.tsx66 Lorem ipsum dolor sit amet, consectetur adipiscing elit. Nulla vitae
18 more matches not shown…
Verbosity Indicators17 hits · 35 pts
SeverityFileLineSnippet
LOWui/contexts/hardware-wallets/adapters/LedgerAdapter.ts86 // Step 1: Check WebHID availability
LOWui/contexts/hardware-wallets/adapters/LedgerAdapter.ts95 // Step 2: Check if device is physically connected
LOWui/contexts/hardware-wallets/adapters/LedgerAdapter.ts105 // Step 3: Check if device is unlocked. This is only for Nano S and Nano X because there
LOWui/contexts/hardware-wallets/adapters/LedgerAdapter.ts114 // Step 4: Attempt to create a transport for the device
LOW…er-entry/components/amount-input/amount-input.test.tsx390 // Step 1: type "0" — partial; USD clears but field keeps "0"
LOW…er-entry/components/amount-input/amount-input.test.tsx395 // Step 2: type "0." — field keeps "0."
LOW…er-entry/components/amount-input/amount-input.test.tsx399 // Step 3: type "0.5" — field shows "0.5" and USD is computed
LOW…e-testing-ai-analyzer/generate-release-testing-plan.ts66 // Step 1: Fetch PR information
LOW…e-testing-ai-analyzer/generate-release-testing-plan.ts73 // Step 2: Categorize files
LOW…e-testing-ai-analyzer/generate-release-testing-plan.ts83 // Step 3: Analyze with LLM (with fallback: GPT-5 → Claude → Gemini)
LOW…e-testing-ai-analyzer/generate-release-testing-plan.ts197 // Step 4: Build testing plan
LOW…e-testing-ai-analyzer/generate-release-testing-plan.ts205 // Step 5: Validate output quality
LOW…e-testing-ai-analyzer/generate-release-testing-plan.ts217 // Step 6: Output results
LOWtest/e2e/tests/multichain/aggregated-balances.spec.ts61 console.log('// Step 1: Log in and set up page objects');
LOWtest/e2e/page-objects/flows/test-dapp.flow.ts26 // Step 1: Click connect account button in TestDApp
LOWtest/e2e/page-objects/flows/test-dapp.flow.ts29 // Step 2: Handle Dialog interaction
LOWtest/e2e/page-objects/flows/test-dapp.flow.ts35 // Step 3: Switch back to TestDApp and verify if needed
Synthetic Comment Markers2 hits · 12 pts
SeverityFileLineSnippet
HIGHdevelopment/metamaskbot-build-announce/test-plan.ts224 md += `*Generated by AI Test Plan Analyzer (${plan.modelUsed}) at ${plan.generatedAt}*\n\n`;
HIGHdevelopment/metamaskbot-build-announce/index.ts75 // Add AI-generated test plan section when a test plan was generated.
Redundant / Tautological Comments7 hits · 10 pts
SeverityFileLineSnippet
LOWdevelopment/generate-attributions.sh49 # Check if the script is running in a CI environment (GitHub Actions sets the CI variable to true)
LOW.github/workflows/block-stable-main-to-main.yml23 # Check if source branch matches exact pattern: stable-main-X.Y.Z
LOW.github/workflows/block-stable-sync-to-release.yml22 # Check if source branch matches stable-sync-* targeting release/X.Y.Z
LOW.github/workflows/tag-release-branch.yml86 # Check if there's a GitHub release for this tag
LOW.github/scripts/bundle-stats-commit.sh49# Check if the SHA already exists in the stats file
LOW.github/scripts/release-create-gh-release.sh52 # Check if tag already exists via API
LOW.github/scripts/release-create-gh-release.sh133# Check if release already exists (idempotency + SHA verification)
Hallucination Indicators1 hit · 10 pts
SeverityFileLineSnippet
CRITICALtest/e2e/send-eth-with-private-key-test/web3js.js2"use strict";var _typeof2="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(t){return typeof t}:funct
Self-Referential Comments2 hits · 6 pts
SeverityFileLineSnippet
MEDIUM.github/workflows/tag-release-branch.yml186 # Create main tag if needed
MEDIUM.github/scripts/release-create-gh-release.sh122# Create main release tag
Cross-Language Confusion (JS/TS)1 hit · 5 pts
SeverityFileLineSnippet
HIGHui/helpers/utils/util.test.js237 it('should return None when given nothing', () => {
Slop Phrases1 hit · 1 pts
SeverityFileLineSnippet
LOW…/e2e/tests/state-persistence/state-persistence.spec.ts221 delete storage['temp-cronjob-storage']; // <- don't forget to delete this line if you remove temp-cronjob-storage