AI Slop Code Risk Monitor

MetaMask/metamask-mobile

SlopCodeMonitor badge for MetaMask/metamask-mobile Adjusted legacy signal; badge bands: 25 / 50 / 75 (different from dashboard bands).

Mobile web browser providing access to websites that use the Ethereum blockchain

1.8 Low pattern signal View on GitHub

Open-Source Code Quality, Security and Technical Debt Review

This report summarizes scanner evidence for MetaMask/metamask-mobile, a TypeScript project with 3,082 GitHub stars. SynthScan examined 3,477,854 lines of code across 16911 source files, recording 3759 pattern matches distributed across 17 syntactic categories. The legacy adjusted pattern signal is 1.8 (Low pattern signal); it is not an authorship estimate.

Use the findings to ask whether maintainers can explain intent, verify dependencies, simplify unnecessary scaffolding, and focus review effort. Risk Payload v1 adds ownership, supply-chain, over-engineering, and review-effort vectors when available. These are prompts for human verification, not probabilities, security findings, or measured maintenance costs.

1.8
Adjusted Signal
1.8
Raw Pattern Score
100%
Time Factor
2026-11-01
Last Push
3.1K
Stars
TypeScript
Language
3.5M
Lines of Code
16.9K
Files
3.8K
Pattern Hits
2026-10-31
Scan Date
0.01
HC Hit Rate

Risk Review · Payload v1

Use each vector to guide manual verification of the underlying findings.

Payload schema: 1.0.0 · Engine: 2.0.0 · Scoring: heuristic-density-v1 · Scan date: 2026-10-31.

Cognitive Ownership Risk 5.2/100 · LOW

Can maintainers explain intent, assumptions, and trade-offs? 2992 finding(s).

Hallucinated Dependency & Supply Chain Risk 1.7/100 · LOW

Are imports declared and package/API names verified? 395 finding(s).

Agent Over-Engineering Ratio 5.0/100 · LOW

Are wrappers, guards, and repeated structures necessary? 2738 finding(s).

PR Review Velocity Impact 8.3/100 · LOW

Which changes need focused human review? 3759 finding(s).

What These Metrics Mean

Adjusted Signal
Legacy pattern score normalized per 1,000 scanned lines and multiplied by the repository-level time factor. It is not an estimate of AI authorship.
Raw Pattern Score
Sum of severity- and context-weighted pattern findings before applying the time factor.
Time Factor
A coarse multiplier based on repository last-push metadata. It does not identify when individual code was written.
Pattern Hits
Count of configured pattern findings. Review each location and surrounding code before acting.
HC Hit Rate
High- and critical-severity findings per scanned file. Severity is a configured detector weight, not proof of a vulnerability or authorship.
Lines / Files
Scan coverage denominators used by the legacy normalized score.

Pattern-Signal History

This chart tracks the legacy adjusted pattern score across scan runs. Changes can reflect source changes, scan coverage, or detector/scoring versions; they do not measure AI adoption or prove that a team refactored code. Compare runs only when their scoring versions are compatible. The dashed line tracks the raw pattern-hit count.

Severity Breakdown

Groups findings by configured severity weight. Severity is not a confidence estimate, security rating, or proof that a package is missing. Verify imports against the project's manifests and inspect each finding in its local design context.

CRITICAL 114HIGH 8MEDIUM 615LOW 3022

Directory Score Breakdown

This horizontal bar chart shows where configured pattern scores accumulate across directories. Treat the bars as locations to inspect, not as evidence of authorship or code quality. Use the file-level findings to decide whether a directory needs a focused ownership, dependency, complexity, or review check.

Pattern Findings

The scanner identified 3759 distinct pattern matches across 17 syntactic categories. Each entry below represents a discrete location in the source code where the engine recorded a detector match to inspect in context. Expand any category row to inspect the individual file paths, line numbers, code snippets, and the lexical context (CODE, COMMENT, or STRING) in which each match was detected.

Reading the findings table: The Severity column indicates the configured finding weight (CRITICAL / HIGH / MEDIUM / LOW). The Context column identifies whether the match occurred inside executable code, an inline comment, or a string literal — legacy comment-context matches receive a ×1.5 score weight. The ⚡ bolt icon marks clustered matches: three or more patterns within a 10-line window, each receiving an additional ×1.5 density multiplier under the legacy scoring model.

Hyper-Verbose Identifiers2366 hits · 2440 pts
SeverityFileLineSnippetContext
LOWmetro.transform.js66function getBuildTypeFeaturesFromEnv(environment = process.env) {CODE
LOW…/messengers/account-tree-controller-messenger/index.ts19export function getAccountTreeControllerMessenger(CODE
LOW…/messengers/account-tree-controller-messenger/index.ts82export function getAccountTreeControllerInitMessenger(CODE
LOWapp/__mocks__/@metamask/compliance-controller.ts52export function getDefaultComplianceControllerState() {CODE
LOWapp/__mocks__/@metamask/compliance-controller.ts59function findWalletComplianceStatus(CODE
LOWapp/__mocks__/@metamask/compliance-controller.ts89export function selectAreAnyWalletsBlocked(addresses: string[]) {CODE
LOWapp/core/NotificationManager.js42function getTransactionRecipientAddress(transactionMeta) {CODE
LOWapp/core/NitroWebSocketSetup.ts323function isNitroWebSocketInstalled(ctor: unknown): boolean {CODE
LOWapp/core/NitroWebSocketSetup.ts370export function installProductionNitroWebSocket(): void {CODE
LOWapp/core/signOutCardAfterPasswordChange.ts8export async function signOutCardAfterPasswordChange(): Promise<void> {CODE
LOW⚡app/core/notificationSkipPredicates.ts25export function registerNotificationSkipPredicate(CODE
LOW⚡app/core/notificationSkipPredicates.ts34export function clearNotificationSkipPredicates(): void {CODE
LOW⚡app/core/notificationSkipPredicates.ts38export function getNotificationSkipPredicates(): NotificationSkipPredicate[] {CODE
LOWapp/core/SanitizationMiddleware.ts88export function createSanitizationMiddleware(): JsonRpcMiddleware<CODE
LOWapp/core/NitroFetchSetup.ts114function normalizeBodyForNitroFetch(CODE
LOWapp/core/NitroFetchSetup.ts127function installProductionNitroFetch(): void {CODE
LOWapp/core/Ledger/Ledger.test.ts91function createRestrictedControllerMock(CODE
LOWapp/core/Ledger/Ledger.ts51async function ensureLedgerKeyringExists(): Promise<void> {CODE
LOWapp/core/Ledger/LedgerDmk.test.ts89function createRestrictedControllerMock(CODE
LOWapp/core/OriginProvenance/index.ts25export function getRequestSourceForTransport(CODE
LOWapp/core/RPCMethods/eth-request-accounts.js39async function requestEthereumAccountsHandler(CODE
LOWapp/core/RPCMethods/RPCMethodMiddleware.test.ts252function getMinimalWalletConnectOptions() {CODE
LOWapp/core/RPCMethods/RPCMethodMiddleware.test.ts2012 async function sendExtraneousKeysRequest() {CODE
LOWapp/core/RPCMethods/eth_sendTransaction.test.ts56function constructSendTransactionRequest(CODE
LOWapp/core/RPCMethods/eth_sendTransaction.test.ts76function constructPendingJsonRpcResponse(): PendingJsonRpcResponse<Json> {CODE
LOWapp/core/RPCMethods/OriginThrottlingMiddleware.ts19export function createOriginThrottlingMiddleware(): JsonRpcMiddleware<CODE
LOWapp/core/RPCMethods/TrustSignalsMiddleware.test.ts76function createMockPhishingController(): PhishingController {CODE
LOWapp/core/RPCMethods/TrustSignalsMiddleware.test.ts85function createMockNetworkController(options?: {CODE
LOWapp/core/RPCMethods/TrustSignalsMiddleware.test.ts103function createMockPreferencesController(CODE
LOWapp/core/RPCMethods/TrustSignalsMiddleware.test.ts111function createNetworkControllerWithoutChain(): NetworkController {CODE
LOWapp/core/RPCMethods/getSessionCapabilities.ts49export function clearSessionCapabilitiesCache(): void {CODE
LOWapp/core/RPCMethods/getSessionCapabilities.ts68async function computeAndCache(CODE
LOWapp/core/RPCMethods/getSessionCapabilities.ts107export function buildGetCapabilitiesHooks(targetAddress?: Hex) {CODE
LOWapp/core/RPCMethods/TrustSignalsMiddleware.ts147export function createTrustSignalsMiddleware({CODE
LOWapp/core/RPCMethods/spam.ts78export function processOriginThrottlingRejection({CODE
LOWapp/core/RPCMethods/lib/ethereum-chain-utils.js41export function validateAddEthereumChainParams(params) {CODE
LOWapp/core/RPCMethods/lib/ethereum-chain-utils.js113function validateBlockExplorerUrls(blockExplorerUrls) {CODE
LOW…/RPCMethods/createUnsupportedMethodMiddleware/index.ts17 async function unsupportedMethodMiddleware(req, _res, next, end) {CODE
LOWapp/core/QrSync/qrSyncTelemetry.ts202export function buildQrSyncLoggerErrorOptions({CODE
LOWapp/core/QrSync/e2eBridgeQrSync.ts48function parseApplySyncReadyPayload(CODE
LOWapp/core/QrSync/services/qr-sync-validation.ts108export function isQrSyncConnectionRequest(CODE
LOWapp/core/QrSync/services/qr-sync-validation.ts158export function parseQrSyncConnectionRequest(CODE
LOWapp/core/QrSync/services/qr-sync-validation.ts240export function validateQrSyncPayloadForOnboarding(CODE
LOWapp/core/QrSync/services/qr-sync-validation.ts271export function isQrSyncReadyForSecretImport(CODE
LOWapp/core/QrSync/services/qr-sync-validation.ts284export function parseQrSyncSyncReadyMessage(CODE
LOWapp/core/QrSync/services/qr-sync-message-router.ts43export function routeIncomingQrSyncMessage(CODE
LOWapp/core/Multichain/tron.ts31export async function validateTronTransferAmount(CODE
LOWapp/core/Multichain/utils.ts46export function getFormattedAddressFromInternalAccount(CODE
LOWapp/core/Multichain/utils.ts79export function lastSelectedAccountAddressByNonEvmNetworkChainId(CODE
LOWapp/core/Multichain/utils.ts87export function lastSelectedAccountAddressInEvmNetwork(): string | undefined {CODE
LOWapp/core/Multichain/networks.ts71export function formatBlockExplorerAddressUrl(CODE
LOWapp/core/Multichain/networks.ts86export function formatBlockExplorerTokenUrl(CODE
LOWapp/core/Multichain/networks.ts101export function formatBlockExplorerTransactionUrl(CODE
LOWapp/core/Multichain/networks.ts114export function getMultichainBlockExplorer(selectedAccount: InternalAccount):CODE
LOWapp/core/AgenticCli/cliLoginPushNudgeRouting.ts7export function shouldShowCliLoginPushNudge({CODE
LOWapp/core/AgenticCli/promptPushNotificationPermission.ts26export async function maybePromptPushPermissionAfterCliLogin(): Promise<void> {CODE
LOWapp/core/AgenticCli/AgenticCliMwpConnectionService.ts50export function tryParseAgenticCliConnectionRequest(CODE
LOWapp/core/AgenticCli/AgenticCliMwpConnectionService.ts91export async function handleAgenticCliConnectDeeplink(CODE
LOWapp/core/BackgroundBridge/createDupeReqFilterStream.ts57export default function createDupeReqFilterStream() {CODE
LOWapp/core/Permissions/index.ts144function getCaipAccountIdsFromSubject(subject: any): CaipAccountId[] {CODE
2306 more matches not shown…
Decorative Section Separators372 hits · 1155 pts
SeverityFileLineSnippetContext
MEDIUMbuilds.yml18# =============================================================================COMMENT
MEDIUMbuilds.yml20# =============================================================================COMMENT
MEDIUM⚡builds.yml252# =============================================================================COMMENT
MEDIUM⚡builds.yml254# =============================================================================COMMENT
MEDIUM⚡builds.yml259 # ---------------------------------------------------------------------------COMMENT
MEDIUM⚡builds.yml261 # ---------------------------------------------------------------------------COMMENT
MEDIUMbuilds.yml526 # ---------------------------------------------------------------------------COMMENT
MEDIUMbuilds.yml528 # ---------------------------------------------------------------------------COMMENT
MEDIUMapp/core/SDKConnectV2/types/connection-request.test.ts42 // ──────────────────────────────────────────COMMENT
MEDIUMapp/core/SDKConnectV2/types/connection-request.test.ts44 // ──────────────────────────────────────────COMMENT
MEDIUMapp/core/SDKConnectV2/types/connection-request.test.ts68 // ──────────────────────────────────────────COMMENT
MEDIUMapp/core/SDKConnectV2/types/connection-request.test.ts70 // ──────────────────────────────────────────COMMENT
MEDIUMapp/core/SDKConnectV2/types/connection-request.test.ts83 // ──────────────────────────────────────────COMMENT
MEDIUMapp/core/SDKConnectV2/types/connection-request.test.ts85 // ──────────────────────────────────────────COMMENT
MEDIUMapp/core/SDKConnectV2/types/connection-request.test.ts114 // ──────────────────────────────────────────COMMENT
MEDIUMapp/core/SDKConnectV2/types/connection-request.test.ts116 // ──────────────────────────────────────────COMMENT
MEDIUMapp/core/SDKConnectV2/types/connection-request.test.ts144 // ──────────────────────────────────────────COMMENT
MEDIUMapp/core/SDKConnectV2/types/connection-request.test.ts146 // ──────────────────────────────────────────COMMENT
MEDIUMapp/core/SDKConnectV2/types/connection-request.test.ts168 // ──────────────────────────────────────────COMMENT
MEDIUMapp/core/SDKConnectV2/types/connection-request.test.ts170 // ──────────────────────────────────────────COMMENT
MEDIUMapp/core/SDKConnectV2/types/connection-request.test.ts197 // ──────────────────────────────────────────COMMENT
MEDIUMapp/core/SDKConnectV2/types/connection-request.test.ts199 // ──────────────────────────────────────────COMMENT
MEDIUMapp/core/SDKConnectV2/types/connection-request.test.ts212 // ──────────────────────────────────────────COMMENT
MEDIUMapp/core/SDKConnectV2/types/connection-request.test.ts214 // ──────────────────────────────────────────COMMENT
MEDIUMapp/core/SDKConnectV2/types/connection-request.test.ts270 // ──────────────────────────────────────────COMMENT
MEDIUMapp/core/SDKConnectV2/types/connection-request.test.ts272 // ──────────────────────────────────────────COMMENT
MEDIUMapp/core/SDKConnectV2/types/connection-request.test.ts305 // ──────────────────────────────────────────COMMENT
MEDIUMapp/core/SDKConnectV2/types/connection-request.test.ts307 // ──────────────────────────────────────────COMMENT
MEDIUMapp/core/SDKConnectV2/types/connection-request.test.ts338 // ──────────────────────────────────────────COMMENT
MEDIUMapp/core/SDKConnectV2/types/connection-request.test.ts340 // ──────────────────────────────────────────COMMENT
MEDIUM…e/Engine/controllers/rewards-money-controller/types.ts617// ─── Request DTOs ─────────────────────────────────────────────────────────────COMMENT
MEDIUM…e/Engine/controllers/rewards-money-controller/types.ts765// ─── Controller state ─────────────────────────────────────────────────────────COMMENT
MEDIUM…oney-controller/services/rewards-money-data-service.ts164// ─── Action types ─────────────────────────────────────────────────────────────COMMENT
MEDIUMapp/core/Engine/controllers/rewards-controller/types.ts1068// ─── Perps Trading Campaign ────────────────────────────────────────────────COMMENT
MEDIUMapp/core/Engine/controllers/rewards-controller/types.ts1210// ─── End Perps Trading Campaign ────────────────────────────────────────────COMMENT
MEDIUMapp/core/Engine/controllers/rewards-controller/types.ts1318// ─── Predict The Pitch Campaign ───────────────────────────────────────────COMMENT
MEDIUMapp/core/Engine/controllers/rewards-controller/types.ts1563// ─── End Predict The Pitch Campaign ───────────────────────────────────────COMMENT
MEDIUMapp/core/Engine/controllers/rewards-controller/types.ts1565// ─── Money Account Sweepstakes Campaign ───────────────────────────────────COMMENT
MEDIUMapp/core/Engine/controllers/rewards-controller/types.ts1770// ─── End Money Account Sweepstakes Campaign ───────────────────────────────COMMENT
MEDIUMapp/util/haptics/catalog.ts8// ────────────────────────────────────────────────────────────────────────────COMMENT
MEDIUMapp/util/haptics/catalog.ts10// ────────────────────────────────────────────────────────────────────────────COMMENT
MEDIUMapp/util/haptics/catalog.ts44// ────────────────────────────────────────────────────────────────────────────COMMENT
MEDIUMapp/util/haptics/catalog.ts46// ────────────────────────────────────────────────────────────────────────────COMMENT
MEDIUM⚡app/util/haptics/catalog.ts121// ────────────────────────────────────────────────────────────────────────────COMMENT
MEDIUM⚡app/util/haptics/catalog.ts124// ────────────────────────────────────────────────────────────────────────────COMMENT
MEDIUM⚡app/util/haptics/catalog.ts128// ────────────────────────────────────────────────────────────────────────────COMMENT
MEDIUM⚡app/util/haptics/catalog.ts130// ────────────────────────────────────────────────────────────────────────────COMMENT
MEDIUM…/UI/TokenDetails/components/useAssetVisibility.test.ts11// ─── Mocks ───────────────────────────────────────────────────────────────────COMMENT
MEDIUM…/UI/TokenDetails/components/useAssetVisibility.test.ts48// ─── Helpers ─────────────────────────────────────────────────────────────────COMMENT
MEDIUM…/UI/TokenDetails/components/useAssetVisibility.test.ts142// ─── Tests ────────────────────────────────────────────────────────────────────COMMENT
MEDIUM…/UI/TokenDetails/components/useAssetVisibility.test.ts150 // ── assetId ──────────────────────────────────────────────────────────────COMMENT
MEDIUM…/UI/TokenDetails/components/useAssetVisibility.test.ts190 // ── isCustomAsset ─────────────────────────────────────────────────────────COMMENT
MEDIUM…/UI/TokenDetails/components/useAssetVisibility.test.ts224 // ── isInAssetsBalance ─────────────────────────────────────────────────────COMMENT
MEDIUM…/UI/TokenDetails/components/useAssetVisibility.test.ts249 // ── isHidden ──────────────────────────────────────────────────────────────COMMENT
MEDIUM…/UI/TokenDetails/components/useAssetVisibility.test.ts303 // ── handleHideToken ───────────────────────────────────────────────────────COMMENT
MEDIUM…/UI/TokenDetails/components/useAssetVisibility.test.ts457 // ── handleAddCustomAsset ──────────────────────────────────────────────────COMMENT
MEDIUM…eView/BridgeMarketView/BridgeMarketViewFooter.test.tsx121// ─── Helpers ─────────────────────────────────────────────────────────────────COMMENT
MEDIUM…eView/BridgeMarketView/BridgeMarketViewFooter.test.tsx164// ─── Tests ───────────────────────────────────────────────────────────────────COMMENT
MEDIUMapp/components/UI/Rewards/utils/formatUtils.ts475// ── USD formatting ──────────────────────────────────────────────────────COMMENT
MEDIUMapp/components/UI/Rewards/utils/formatUtils.ts628// ── Percent / rate formatting ───────────────────────────────────────────COMMENT
312 more matches not shown…
Hallucination Indicators114 hits · 910 pts
SeverityFileLineSnippetContext
CRITICALapp/core/BackgroundBridge/BackgroundBridge.test.js1706 Engine.controllerMessenger.subscribe.mock.calls.find(CODE
CRITICALapp/core/redux/slices/bridge/index.test.ts964 mockState.engine.backgroundState.RemoteFeatureFlagController.remoteFeatureFlags.bridgeConfigV2.chainRanking.filtCODE
CRITICAL…ps/integration/lighterScaleOrders.integration.test.tsx252 perps.mocks.execute.mock.calls.every(CODE
CRITICAL…ps/integration/lighterScaleOrders.integration.test.tsx282 perps.mocks.execute.mock.calls.every(CODE
CRITICAL…ps/integration/lighterScaleOrders.integration.test.tsx363 const signedBefore = perps.mocks.execute.mock.calls.filter(CODE
CRITICAL…ps/integration/lighterScaleOrders.integration.test.tsx374 perps.mocks.execute.mock.calls.filter(CODE
CRITICAL…ps/integration/lighterScaleOrders.integration.test.tsx416 perps.mocks.execute.mock.calls.filter(CODE
CRITICAL…rps/integration/orderLifecycleFlow.integration.test.ts86 perps.harness.mocks.exchangeClient.order.mockResolvedValueOnce({CODE
CRITICAL…rps/integration/orderLifecycleFlow.integration.test.ts227 perps.harness.mocks.infoClient.orderStatus.mockImplementation(CODE
CRITICAL…rps/integration/orderLifecycleFlow.integration.test.ts233 perps.harness.mocks.exchangeClient.cancel.mock.calls.some(CODE
CRITICAL…rps/integration/orderLifecycleFlow.integration.test.ts263 perps.harness.mocks.infoClient.l2Book.mockResolvedValue({CODE
CRITICAL…rps/integration/orderLifecycleFlow.integration.test.ts302 perps.harness.mocks.infoClient.l2Book.mockResolvedValue({CODE
CRITICAL…rps/integration/orderLifecycleFlow.integration.test.ts328 perps.harness.mocks.exchangeClient.order.mockResolvedValueOnce({CODE
CRITICAL…rps/integration/orderLifecycleFlow.integration.test.ts360 perps.harness.mocks.exchangeClient.order.mockResolvedValueOnce({CODE
CRITICAL…rps/integration/orderLifecycleFlow.integration.test.ts414 perps.harness.mocks.exchangeClient.order.mockResolvedValueOnce({CODE
CRITICAL…rps/integration/orderLifecycleFlow.integration.test.ts525 perps.harness.mocks.exchangeClient.order.mockRejectedValueOnce(CODE
CRITICAL…rps/integration/orderLifecycleFlow.integration.test.ts529 perps.harness.mocks.exchangeClient.order.mockResolvedValueOnce(CODE
CRITICAL…rps/integration/orderLifecycleFlow.integration.test.ts616 perps.harness.mocks.exchangeClient.order.mockRejectedValueOnce(CODE
CRITICAL…rps/integration/orderLifecycleFlow.integration.test.ts620 perps.harness.mocks.exchangeClient.order.mockResolvedValueOnce(CODE
CRITICAL…rps/integration/orderLifecycleFlow.integration.test.ts770 perps.harness.mocks.exchangeClient.order.mockRejectedValueOnce(error);CODE
CRITICAL…rps/integration/orderLifecycleFlow.integration.test.ts826 perps.harness.mocks.exchangeClient.order.mockResolvedValueOnce({CODE
CRITICAL…rps/integration/orderLifecycleFlow.integration.test.ts943 perps.harness.mocks.exchangeClient.order.mockResolvedValueOnce({CODE
CRITICAL…rps/integration/orderLifecycleFlow.integration.test.ts948 perps.harness.mocks.exchangeClient.cancel.mockResolvedValueOnce({CODE
CRITICAL…rps/integration/orderLifecycleFlow.integration.test.ts1004 perps.harness.mocks.exchangeClient.order.mockResolvedValueOnce({CODE
CRITICAL…rps/integration/orderLifecycleFlow.integration.test.ts1016 perps.harness.mocks.exchangeClient.cancel.mockResolvedValueOnce({CODE
CRITICAL…rps/integration/orderLifecycleFlow.integration.test.ts1071 perps.harness.mocks.exchangeClient.order.mockImplementationOnce(CODE
CRITICAL…rps/integration/orderLifecycleFlow.integration.test.ts1077 perps.harness.mocks.exchangeClient.cancel.mockResolvedValueOnce({CODE
CRITICAL…rps/integration/orderLifecycleFlow.integration.test.ts1213 perps.harness.mocks.subscription.getCachedPositions.mockReturnValue([CODE
CRITICAL…rps/integration/orderLifecycleFlow.integration.test.ts1255 perps.harness.mocks.subscription.getCachedPositions.mockReturnValue([CODE
CRITICAL…rps/integration/orderLifecycleFlow.integration.test.ts1258 perps.harness.mocks.exchangeClient.order.mockResolvedValueOnce({CODE
CRITICAL…rps/integration/orderLifecycleFlow.integration.test.ts1287 perps.harness.mocks.subscription.getCachedPositions.mockReturnValue([CODE
CRITICAL…rps/integration/orderLifecycleFlow.integration.test.ts1290 perps.harness.mocks.exchangeClient.order.mockResolvedValueOnce({CODE
CRITICAL…rps/integration/orderLifecycleFlow.integration.test.ts1338 perps.harness.mocks.subscription.getCachedPositions.mockReturnValue([CODE
CRITICAL…rps/integration/orderLifecycleFlow.integration.test.ts1342 perps.harness.mocks.exchangeClient.order.mockResolvedValueOnce({CODE
CRITICAL…integration/positionProtectionFlow.integration.test.ts85 perps.harness.mocks.subscription.getCachedPositions.mockReturnValue([CODE
CRITICAL…/Perps/integration/lighterRecovery.integration.test.ts27 perps.mocks.execute.mock.calls.map(([call]) => call.function),CODE
CRITICALapp/components/UI/Perps/hooks/usePerpsToasts.test.tsx159 result.current.PerpsToastOptions.accountManagement.withdrawal.withdrawalStartFailed(CODE
CRITICALapp/components/UI/Perps/hooks/usePerpsToasts.test.tsx190 result.current.PerpsToastOptions.accountManagement.deposit.success(CODE
CRITICALapp/components/UI/Perps/hooks/usePerpsToasts.test.tsx214 result.current.PerpsToastOptions.accountManagement.deposit.success(CODE
CRITICALapp/components/UI/Perps/hooks/usePerpsToasts.test.tsx233 result.current.PerpsToastOptions.accountManagement.deposit.success(CODE
CRITICALapp/components/UI/Perps/hooks/usePerpsToasts.test.tsx248 result.current.PerpsToastOptions.accountManagement.deposit.inProgress(CODE
CRITICALapp/components/UI/Perps/hooks/usePerpsToasts.test.tsx270 result.current.PerpsToastOptions.accountManagement.deposit.inProgress(CODE
CRITICALapp/components/UI/Perps/hooks/usePerpsToasts.test.tsx293 result.current.PerpsToastOptions.accountManagement.deposit.inProgress(CODE
CRITICALapp/components/UI/Perps/hooks/usePerpsToasts.test.tsx310 result.current.PerpsToastOptions.accountManagement.deposit.inProgress(CODE
CRITICALapp/components/UI/Perps/hooks/usePerpsToasts.test.tsx355 result.current.PerpsToastOptions.accountManagement.withdrawal.withdrawalSuccess(CODE
CRITICALapp/components/UI/Perps/hooks/usePerpsToasts.test.tsx373 result.current.PerpsToastOptions.accountManagement.withdrawal.withdrawalFailed(CODE
CRITICALapp/components/UI/Perps/hooks/usePerpsToasts.test.tsx386 result.current.PerpsToastOptions.accountManagement.withdrawal.withdrawalFailed();CODE
CRITICALapp/components/UI/Perps/hooks/usePerpsToasts.test.tsx398 result.current.PerpsToastOptions.accountManagement.withdrawal.withdrawalStartFailed(CODE
CRITICALapp/components/UI/Perps/hooks/usePerpsToasts.test.tsx422 result.current.PerpsToastOptions.orderManagement.market.submitted(CODE
CRITICALapp/components/UI/Perps/hooks/usePerpsToasts.test.tsx444 result.current.PerpsToastOptions.orderManagement.market.confirmed(CODE
CRITICALapp/components/UI/Perps/hooks/usePerpsToasts.test.tsx462 result.current.PerpsToastOptions.orderManagement.market.creationFailed(CODE
CRITICALapp/components/UI/Perps/hooks/usePerpsToasts.test.tsx477 result.current.PerpsToastOptions.orderManagement.market.submitted(CODE
CRITICALapp/components/UI/Perps/hooks/usePerpsToasts.test.tsx492 result.current.PerpsToastOptions.orderManagement.market.confirmed(CODE
CRITICALapp/components/UI/Perps/hooks/usePerpsToasts.test.tsx507 result.current.PerpsToastOptions.orderManagement.market.submitted(CODE
CRITICALapp/components/UI/Perps/hooks/usePerpsToasts.test.tsx524 result.current.PerpsToastOptions.orderManagement.limit.submitted(CODE
CRITICALapp/components/UI/Perps/hooks/usePerpsToasts.test.tsx546 result.current.PerpsToastOptions.orderManagement.limit.confirmed(CODE
CRITICALapp/components/UI/Perps/hooks/usePerpsToasts.test.tsx564 result.current.PerpsToastOptions.orderManagement.limit.creationFailed(CODE
CRITICALapp/components/UI/Perps/hooks/usePerpsToasts.test.tsx577 result.current.PerpsToastOptions.orderManagement.limit.creationFailed(CODE
CRITICALapp/components/UI/Perps/hooks/usePerpsToasts.test.tsx591 result.current.PerpsToastOptions.orderManagement.limit.submitted(CODE
CRITICALapp/components/UI/Perps/hooks/usePerpsToasts.test.tsx606 result.current.PerpsToastOptions.orderManagement.limit.confirmed(CODE
54 more matches not shown…
AI Slop Vocabulary185 hits · 590 pts
SeverityFileLineSnippetContext
MEDIUMapp/core/SDKConnectV2/utils/when-store-ready.ts10 // resumption would not be accounted for. We should figure out something more robust.COMMENT
MEDIUM⚡app/util/termsOfUse/socialTermsOfUseContent.ts1export default '<!doctype html>\n<html>\n<head>\n<meta name="viewport" content="width=device-width, initial-scale=1, maxCODE
MEDIUM⚡app/util/termsOfUse/socialTermsOfUseContent.ts1export default '<!doctype html>\n<html>\n<head>\n<meta name="viewport" content="width=device-width, initial-scale=1, maxCODE
MEDIUM⚡app/util/termsOfUse/socialTermsOfUseContent.ts1export default '<!doctype html>\n<html>\n<head>\n<meta name="viewport" content="width=device-width, initial-scale=1, maxCODE
MEDIUM⚡app/util/termsOfUse/socialTermsOfUseContent.ts1export default '<!doctype html>\n<html>\n<head>\n<meta name="viewport" content="width=device-width, initial-scale=1, maxCODE
MEDIUMapp/constants/urls.ts99export const PERPS_ADL_URL = `https://support.metamask.io/manage-crypto/trade/perps/leverage-and-liquidation/${MOBILE_UTCODE
MEDIUMapp/styles/common.ts34 // native chrome feels seamless with the embedded webview. Update only ifCOMMENT
MEDIUMapp/components/UI/SocialFeed/utils/mapFeedItem.ts253 // Prefer the position leverage, fall back to the triggering trade's, andCOMMENT
MEDIUM…/SocialFeed/components/SocialFeedPositionCard.test.tsx236 // The symbol stands alone and the leverage rides in a side tag beside it;COMMENT
MEDIUMapp/components/UI/FoxLoader/FoxLoader.styles.ts7// Matches the native splash fox (144pt/dp) so the handoff stays seamless.COMMENT
MEDIUM…p/components/UI/Ramp/utils/getProviderWebviewColors.ts24// seamless with the embedded checkout flow. See colors.*CheckoutDark inCOMMENT
MEDIUMapp/components/UI/Perps/types/navigation.ts88 existingPosition?: Position; // Pass existing position for leverage consistency when adding to positionCODE
MEDIUM⚡app/components/UI/Perps/constants/perpsConfig.ts95 // Step sizes for tick marks based on max leverageCOMMENT
MEDIUM⚡app/components/UI/Perps/constants/perpsConfig.ts96 TickStepLow: 5, // Step size when max leverage <= 20CODE
MEDIUM⚡app/components/UI/Perps/constants/perpsConfig.ts97 TickStepMedium: 10, // Step size when max leverage <= 50CODE
MEDIUM⚡app/components/UI/Perps/constants/perpsConfig.ts98 TickStepHigh: 20, // Step size when max leverage > 50CODE
MEDIUM⚡app/components/UI/Perps/constants/leverageColors.ts15 // Safe leverage (green) - typically leverage < 33% of maxCOMMENT
MEDIUM⚡app/components/UI/Perps/constants/leverageColors.ts21 // Caution leverage (yellow) - typically leverage 33-50% of maxCOMMENT
MEDIUM⚡app/components/UI/Perps/constants/leverageColors.ts24 // Medium/Warning leverage (orange) - typically leverage 50-75% of maxCOMMENT
MEDIUM⚡app/components/UI/Perps/constants/leverageColors.ts27 // High/Danger leverage (red) - typically leverage > 75% of maxCOMMENT
MEDIUM⚡app/components/UI/Perps/constants/leverageColors.ts36 // Safe leverage background (green with 10% opacity)COMMENT
MEDIUM⚡app/components/UI/Perps/constants/leverageColors.ts39 // Caution leverage background (yellow with 10% opacity)COMMENT
MEDIUM⚡app/components/UI/Perps/constants/leverageColors.ts42 // Medium leverage background (orange with 10% opacity)COMMENT
MEDIUM⚡app/components/UI/Perps/constants/leverageColors.ts45 // High leverage background (red with 10% opacity)COMMENT
MEDIUMapp/components/UI/Perps/utils/orderCalculations.test.ts322 expect(result).toBeLessThanOrEqual(1000); // 100 * 10 leverageCODE
MEDIUMapp/components/UI/Perps/utils/orderCalculations.test.ts339 expect(result).toBeLessThanOrEqual(5000); // 50 * 100 leverageCODE
MEDIUMapp/components/UI/Perps/utils/orderCalculations.test.ts356 expect(result).toBeLessThanOrEqual(50); // 10 * 5 leverageCODE
MEDIUMapp/components/UI/Perps/utils/marginUtils.test.ts18 // For 50x position leverage: initial margin = 2%, but 10% is higherCOMMENT
MEDIUMapp/components/UI/Perps/utils/marginUtils.test.ts37 // For 5x position leverage: initial margin = 20%, which is > 10%COMMENT
MEDIUMapp/components/UI/Perps/utils/marginUtils.test.ts122 // Position at 10x leverage with exactly the required marginCOMMENT
MEDIUMapp/components/UI/Perps/utils/tpslValidation.ts433 // Maximum theoretical loss is 100% * leverage (before liquidation)COMMENT
MEDIUM⚡app/components/UI/Perps/utils/tpslValidation.ts453 // marginUsed = positionValue / leverageCOMMENT
MEDIUM⚡app/components/UI/Perps/utils/tpslValidation.ts455 // Therefore: PnL = RoE% * (entryPrice * size) / (leverage * 100)COMMENT
MEDIUM⚡app/components/UI/Perps/utils/tpslValidation.ts456 // Simplifying: PnL/positionValue = RoE% / (leverage * 100)COMMENT
MEDIUM⚡app/components/UI/Perps/utils/tpslValidation.ts457 // priceChange/entryPrice = RoE% / (leverage * 100)COMMENT
MEDIUM⚡app/components/UI/Perps/utils/tpslValidation.ts458 // priceChange = entryPrice * RoE% / (leverage * 100)COMMENT
MEDIUMapp/components/UI/Perps/utils/tpslValidation.ts552 // RoE% = priceChangeRatio * leverage * 100COMMENT
MEDIUMapp/components/UI/Perps/utils/tpslValidation.ts648 // Maximum theoretical loss is 100% * leverage (before liquidation)COMMENT
MEDIUMapp/components/UI/Perps/utils/tpslValidation.test.ts29 // Arrange - a short whose take profit return overshoots 100% x leverageCOMMENT
MEDIUMapp/components/UI/Perps/utils/tpslValidation.test.ts943 // With 1x leverage, 10% RoE requires 10% price movementCOMMENT
MEDIUMapp/components/UI/Perps/utils/tpslValidation.test.ts946 // With 50x leverage, 10% RoE requires 0.2% price movementCOMMENT
MEDIUMapp/components/UI/Perps/utils/tpslValidation.test.ts1026 // With 100x leverage, 10% RoE requires only 0.1% price movementCOMMENT
MEDIUMapp/components/UI/Perps/utils/tpslValidation.test.ts1115 // Given - PEPE token with very small price and 10x leverageCOMMENT
MEDIUMapp/components/UI/Perps/utils/tpslValidation.test.ts1128 expect(result).toBe('0.00001246'); // ~1% price increase for 10% RoE with 10x leverageCODE
MEDIUMapp/components/UI/Perps/utils/tpslValidation.test.ts1145 expect(tpResult).toBe('0.00001222'); // ~1% price decrease for 10% RoE with 10x leverageCODE
MEDIUMapp/components/UI/Perps/utils/tpslValidation.test.ts1155 expect(slResult).toBe('0.0000124'); // ~0.5% price increase for 5% loss with 10x leverageCODE
MEDIUMapp/components/UI/Perps/utils/tpslValidation.test.ts1178 ); // 1105 - 100 = 1005, (1005/100)*10 = 100.5% * 100 leverage effectCODE
MEDIUMapp/components/UI/Perps/utils/tpslValidation.test.ts1202 // With 1x leverage, 1% price move = 1% RoECOMMENT
MEDIUMapp/components/UI/Perps/utils/tpslValidation.test.ts1207 // With 50x leverage, 1% price move = 50% RoECOMMENT
MEDIUMapp/components/UI/Perps/utils/tpslValidation.test.ts1296 leverage: 1, // function defaults to 1 when leverage not providedCODE
MEDIUMapp/components/UI/Perps/utils/tpslValidation.test.ts1299 // With 1x leverage, 10% price move = 10% RoECOMMENT
MEDIUMapp/components/UI/Perps/utils/tpslValidation.test.ts1468 expect(isValidStopLossPercentage(990, leverage)).toBe(true); // Max for 10x leverageCODE
MEDIUM⚡app/components/UI/Perps/utils/marginUtils.ts153 // IMPORTANT: Use the position's actual leverage, not the asset's max leverageCOMMENT
MEDIUM⚡app/components/UI/Perps/utils/marginUtils.ts154 // A position at 10x leverage needs 10% initial margin ($100 for $1000 notional)COMMENT
MEDIUM⚡app/components/UI/Perps/utils/marginUtils.ts155 // NOT the 2% that 50x max leverage would implyCOMMENT
MEDIUMapp/components/UI/Perps/utils/orderSizing.test.ts86 // 0.00406 x 81,690 / 5x leverageCOMMENT
MEDIUM…ponents/UI/Perps/utils/e2eBridgePerps.deeplink.test.ts66 // Retrieve handler from mock calls (robust across RN versions)COMMENT
MEDIUM…onents/PerpsTradeBottomSheet/PerpsTradeScreen.test.tsx277 // The selected leverage still lives in the Leverage row.COMMENT
MEDIUM…s/UI/Perps/components/PerpsSlider/PerpsSlider.test.tsx292 // against the real sizing math, ten 5-cent balance moves at leverage 20COMMENT
MEDIUM…s/components/PerpsMarketRowItem/PerpsMarketRowItem.tsx186 // flexShrink lets the title text yield space to the leverage badge soCOMMENT
125 more matches not shown…
Fake / Example Data277 hits · 284 pts
SeverityFileLineSnippetContext
LOWlocales/languages/zh.json300 "placeholder": "按网站或地址搜索",CODE
LOWlocales/languages/zh.json1307 "placeholder": "类型",CODE
LOWlocales/languages/zh.json1448 "placeholder": "Add a position and a few words to post",CODE
LOWlocales/languages/zh.json3688 "placeholder": "搜索市场",CODE
LOWlocales/languages/zh.json8609 "placeholder": "电子邮件地址",CODE
LOWlocales/languages/zh.json8863 "placeholder": "确认密码",CODE
LOWlocales/languages/zh.json10842 "placeholder": "例如,妈妈家",CODE
LOWlocales/languages/zh.json11089 "placeholder": "密码",CODE
LOWlocales/languages/tr.json300 "placeholder": "Siteye veya adrese göre ara",CODE
LOWlocales/languages/tr.json1307 "placeholder": "Bu snap'i kaldırmak istediğinizi onaylamak için",CODE
LOWlocales/languages/tr.json1448 "placeholder": "Add a position and a few words to post",CODE
LOWlocales/languages/tr.json3688 "placeholder": "Piyasa ara",CODE
LOWlocales/languages/tr.json8609 "placeholder": "E-posta adresi",CODE
LOWlocales/languages/tr.json8863 "placeholder": "Şifreyi onayla",CODE
LOWlocales/languages/tr.json10842 "placeholder": "ör. annemin evi",CODE
LOWlocales/languages/tr.json11089 "placeholder": "Şifre",CODE
LOWlocales/languages/ja.json300 "placeholder": "サイトまたはアドレスで検索",CODE
LOWlocales/languages/ja.json1307 "placeholder": "タイプ",CODE
LOWlocales/languages/ja.json1448 "placeholder": "Add a position and a few words to post",CODE
LOWlocales/languages/ja.json3688 "placeholder": "市場を検索",CODE
LOWlocales/languages/ja.json8609 "placeholder": "メールアドレス",CODE
LOWlocales/languages/ja.json8863 "placeholder": "パスワードの確認",CODE
LOWlocales/languages/ja.json10842 "placeholder": "例: 母親の実家",CODE
LOWlocales/languages/ja.json11089 "placeholder": "パスワード",CODE
LOWlocales/languages/de.json300 "placeholder": "Suche nach Website oder Adresse",CODE
LOWlocales/languages/de.json1307 "placeholder": "Typ",CODE
LOWlocales/languages/de.json1448 "placeholder": "Add a position and a few words to post",CODE
LOWlocales/languages/de.json3688 "placeholder": "Märkte durchsuchen",CODE
LOWlocales/languages/de.json8609 "placeholder": "E-Mail-Adresse",CODE
LOWlocales/languages/de.json8863 "placeholder": "Passwort bestätigen",CODE
LOWlocales/languages/de.json10842 "placeholder": "z. B. Mamas Haus",CODE
LOWlocales/languages/de.json11089 "placeholder": "Passwort",CODE
LOWlocales/languages/ru.json300 "placeholder": "Поиск по сайту или адресу",CODE
LOWlocales/languages/ru.json1307 "placeholder": "Тип",CODE
LOWlocales/languages/ru.json1448 "placeholder": "Add a position and a few words to post",CODE
LOWlocales/languages/ru.json3688 "placeholder": "Поиск рынков",CODE
LOWlocales/languages/ru.json8609 "placeholder": "Адрес элю почты",CODE
LOWlocales/languages/ru.json8863 "placeholder": "Подтвердите пароль",CODE
LOWlocales/languages/ru.json10842 "placeholder": "например, дом мамы",CODE
LOWlocales/languages/ru.json11089 "placeholder": "Пароль",CODE
LOWlocales/languages/ko-kr.json20 "placeholder": "URL 검색 또는 입력"CODE
LOWlocales/languages/ja-jp.json20 "placeholder": "検索するか URL を入力"CODE
LOWlocales/languages/zh-cn.json20 "placeholder": "搜索或键入 URL"CODE
LOWlocales/languages/id-id.json20 "placeholder": "Cari atau Ketik URL"CODE
LOWlocales/languages/pt.json300 "placeholder": "Pesquisar por site ou por endereço",CODE
LOWlocales/languages/pt.json1307 "placeholder": "Digite",CODE
LOWlocales/languages/pt.json1448 "placeholder": "Add a position and a few words to post",CODE
LOWlocales/languages/pt.json3688 "placeholder": "Pesquisar mercados",CODE
LOWlocales/languages/pt.json8609 "placeholder": "Endereço de e-mail",CODE
LOWlocales/languages/pt.json8863 "placeholder": "Confirmar senha",CODE
LOWlocales/languages/pt.json10842 "placeholder": "p. ex., casa da minha mãe",CODE
LOWlocales/languages/pt.json11089 "placeholder": "Senha",CODE
LOWlocales/languages/en.json300 "placeholder": "Search by site or address",CODE
LOWlocales/languages/en.json1309 "placeholder": "Type",CODE
LOWlocales/languages/en.json1450 "placeholder": "Add a position and a few words to post",CODE
LOWlocales/languages/en.json1722 "placeholder_body": "The full Social Supplemental Terms will appear here.\n\nThis is temporary placeholder text whCODE
LOWlocales/languages/en.json1722 "placeholder_body": "The full Social Supplemental Terms will appear here.\n\nThis is temporary placeholder text whCODE
LOWlocales/languages/en.json3722 "placeholder": "Search markets",CODE
LOWlocales/languages/en.json8656 "placeholder": "Email address",CODE
LOWlocales/languages/en.json8910 "placeholder": "Confirm password",CODE
217 more matches not shown…
Over-Commented Block214 hits · 214 pts
SeverityFileLineSnippetContext
LOW.depcheckrc.yml41 # ESBuild is used for AI E2E script compilationCOMMENT
LOW.depcheckrc.yml161 # array form (['babel-jest', { configFile: ... }]) which depcheck's JestCOMMENT
LOWbuilds.yml1# Single source of truth for all build configurationsCOMMENT
LOWfingerprint.config.js121 * you've confirmed it can't affect the native binary. When in doubt, leave it tracked.COMMENT
LOWfingerprint.config.js241 '.github/workflows/run-appium-smoke-tests-ios.yml',COMMENT
LOWjest.config.view.js1/* eslint-disable import-x/no-commonjs */COMMENT
LOWjest.config.view.js41 maxWorkers: 1,COMMENT
LOWmetro.config.js41 // to inject one as a global (seeCOMMENT
LOWmetro.config.js241 //COMMENT
LOWmetro.transform.js201 eslintrc.rules['prettier/prettier'] = 0;COMMENT
LOWbabel.config.js1// React Compiler plugin (incl. bailout logging and test-env gating) lives in itsCOMMENT
LOWbabel.config.js81 // stage, and Babel/preset-expo must not inject core-js/@babel/runtimeCOMMENT
LOWbabel.config.js101 // pre-Expo-transformer pipeline and prevents the forced strict mode.COMMENT
LOWbabel.config.js121 unstable_transformProfile: 'hermes-stable',COMMENT
LOWshim.js61// Needed to polyfill browserCOMMENT
LOWshim.js81// inject from `metro.config.js`. See the comment in `runtime.native.ts`:COMMENT
LOWshim.js101 `HAS_TEST_OVERRIDES=${process.env.HAS_TEST_OVERRIDES || 'unset'} METAMASK_ENVIRONMENT=${COMMENT
LOWshim.js481 // Patch WebSocket to route production ws:// / wss:// URLs to mockCOMMENT
LOWshim.js521 // eslint-disable-next-line no-consoleCOMMENT
LOWshim.js541 // `import { fetch } from 'expo/fetch'` was bundled or whichCOMMENT
LOW.eslintrc.js461 'jest/no-restricted-matchers': 'off',COMMENT
LOW.eslintrc.js701 patterns: [COMMENT
LOWlocales/i18n.js61//const currentLocale = I18n.currentLocale();COMMENT
LOWlocales/i18n.js81// case 'pt':COMMENT
LOWapp/core/SanitizationMiddleware.ts1import { JsonRpcMiddleware } from '@metamask/json-rpc-engine';COMMENT
LOWapp/core/RPCMethods/getSessionCapabilities.ts21COMMENT
LOWapp/core/WalletConnect/WalletConnect2Session.ts181 // eslint-disable-next-line @typescript-eslint/no-explicit-anyCOMMENT
LOWapp/core/WalletConnect/wc-analytics.ts1import { v5 as uuidv5 } from 'uuid';COMMENT
LOWapp/core/WalletConnect/wc-analytics.ts21// (MWP) and SDK v1 already emit, so warehouse joins on that column workCOMMENT
LOWapp/core/GasPolling/GasPolling.test.ts201// expect(result.conversionRate).toEqual(1);COMMENT
LOWapp/core/SDKConnectV2/services/connection-registry.ts161 } else {COMMENT
LOWapp/core/SDKConnectV2/services/connection-registry.ts361 sdk_platform: connReq?.metadata?.sdk?.platform,COMMENT
LOW…/core/DeeplinkManager/types/deepLinkAnalytics.types.ts61 NFT = 'nft',COMMENT
LOWapp/core/Engine/wallet-init/keyrings.ts141 ///: BEGIN:ONLY_INCLUDE_IF(keyring-snaps)COMMENT
LOW…ne/controllers/rewards-controller/RewardsController.ts681 #geoLocation: GeoRewardsMetadata | null = null;COMMENT
LOWapp/core/Authentication/Authentication.ts441COMMENT
LOWapp/core/Authentication/Authentication.ts2001 // account tree, which would otherwise make CardController fetch CardHomeCOMMENT
LOWapp/util/test/testSetupView.js101// Must be patched post-require (the jest.mock factory mutation doesn't persist).COMMENT
LOWapp/util/analytics/privacySegmentPlugin.ts41 // Set anonymousId to be our own "all zeros" id for all eventsCOMMENT
LOW…components/ForgotPasswordModal/ForgotPasswordModal.tsx41 ToastContext,COMMENT
LOW…onfirmationModal/LimitOrderConfirmationModalScreen.tsx261 // same order id without having to thread it through separately.COMMENT
LOW…Bridge/components/BridgeTokenSelector/NetworkPills.tsx141COMMENT
LOW…I/PredictNext/adapters/remote/PredictLiveDataClient.ts181 #protocolRejected = false;COMMENT
LOW…mponents/UI/Rewards/hooks/useRewardsPendingDeeplink.ts81 } else if (pendingDeeplink.campaign === 'perps-comp') {COMMENT
LOW…ts/UI/Charts/AdvancedChart/webview/chartLogicString.ts1// AUTO-GENERATED — do not edit manually.COMMENT
LOW…/Charts/AdvancedChart/webview/src/messages/contract.ts1// Versioned message contract between React Native and the WebView IIFE.COMMENT
LOW…Charts/AdvancedChart/webview/src/core/dataLifecycle.ts1// Lightweight event bus for data lifecycle events overlays need to react to.COMMENT
LOW…/UI/Charts/AdvancedChart/webview/src/core/bootstrap.ts1// Entry orchestration. Called once from src/index.ts when the IIFE evaluatesCOMMENT
LOW…rts/AdvancedChart/webview/src/widget/ohlcvIngestion.ts1// SET_OHLCV_DATA and REALTIME_UPDATE inbound handlers.COMMENT
LOW…I/Charts/AdvancedChart/webview/src/widget/initChart.ts1// TradingView widget creation and onChartReady orchestration.COMMENT
LOW…Charts/AdvancedChart/webview/src/widget/scaleLayout.ts1// Centralised price-scale + pane-layout overrides.COMMENT
LOW…ts/UI/Charts/AdvancedChart/webview/src/widget/theme.ts1// Theme application + SET_THEME_COLORS hot-swap handler.COMMENT
LOW…vancedChart/webview/src/overlays/tradeMarkers/index.ts1// Social trade-marker overlay: places colored circles (with black rings)COMMENT
LOW…art/webview/src/overlays/tradeMarkers/markerHitTest.ts1// Marker tap detection — turns a chart press into a TRADE_MARKER_PRESSEDCOMMENT
LOW…/AdvancedChart/webview/src/overlays/focusTime/index.ts1// Slide-to-center-on-a-time overlay used by Social's "tap a trade row →COMMENT
LOW…dChart/webview/src/overlays/socialLeaderboard/index.ts1// Social Leaderboard (SLB) viewport centering and back-fill pagination.COMMENT
LOW…dChart/webview/src/overlays/socialLeaderboard/index.ts21// getBars call for a time range outside the in-memory dataset returnsCOMMENT
LOW…dvancedChart/webview/src/features/indicators/legend.ts1// DOM legend overlay for active indicator studies.COMMENT
LOW…rts/AdvancedChart/webview/src/interaction/crosshair.ts1// Crosshair → CROSSHAIR_MOVE message bridge + short-tap dismiss.COMMENT
LOW…/AdvancedChart/webview/src/interaction/visibleRange.ts1// Visible-range / bar-spacing → CHART_INTERACTED analytics + zoom persistence.COMMENT
154 more matches not shown…
Modern AI Meta-Vocabulary55 hits · 143 pts
SeverityFileLineSnippetContext
MEDIUMapp/core/AgenticCli/AgenticCliQrLoginService.test.ts115 url: 'https://agentic.metamask.io',CODE
MEDIUMapp/core/AgenticCli/AgenticCliQrLoginService.test.ts182 dashboardUrl: 'https://evil.example/agentic/login',CODE
MEDIUMapp/core/AgenticCli/AgenticCliQrLoginService.test.ts196 dashboardUrl: 'https://developer.metamask.io/agentic/login',CODE
MEDIUMapp/core/AgenticCli/AgenticCliQrLoginService.test.ts226 dashboardUrl: 'https://developer.metamask.io/agentic/login',CODE
MEDIUMapp/core/AgenticCli/AgenticCliQrLoginService.test.ts317 dashboardUrl: 'https://develop-developer.metamask.io/agentic/login',CODE
MEDIUMapp/core/AgenticCli/AgenticCliQrLoginService.test.ts339 dashboardUrl: 'https://staging-developer.metamask.io/agentic/login',CODE
MEDIUMapp/core/AgenticCli/AgenticCliQrLoginService.test.ts362 dashboardUrl: 'https://developer.metamask.io/agentic/login',CODE
MEDIUM⚡app/core/AgenticCli/agenticCliConfig.ts10 main_dev: 'https://develop-developer.metamask.io/agentic/login',CODE
MEDIUM⚡app/core/AgenticCli/agenticCliConfig.ts11 main_uat: 'https://staging-developer.metamask.io/agentic/login',CODE
MEDIUM⚡app/core/AgenticCli/agenticCliConfig.ts12 main_prod: 'https://developer.metamask.io/agentic/login',CODE
MEDIUM⚡app/core/AgenticCli/agenticCliConfig.ts13 flask_dev: 'https://develop-developer.metamask.io/agentic/login',CODE
MEDIUM⚡app/core/AgenticCli/agenticCliConfig.ts14 flask_uat: 'https://staging-developer.metamask.io/agentic/login',CODE
MEDIUM⚡app/core/AgenticCli/agenticCliConfig.ts15 flask_prod: 'https://developer.metamask.io/agentic/login',CODE
MEDIUM…inkManager/handlers/legacy/handleAgenticCliApproval.ts8 * Handles `https://link.metamask.io/agentic-cli` deeplinks.COMMENT
MEDIUMapp/util/analytics/enrichWithABTests.test.ts546 // The experiment only reorders sections on wallet home, so guardrailsCOMMENT
MEDIUMapp/components/UI/PredictNext/docs/ui-components.md38### Keep product orchestration outside primitivesCOMMENT
MEDIUM⚡…ts/UI/Charts/AdvancedChart/webview/chartLogicString.ts9const chartLogicString = "/******/ (() => { // webpackBootstrap\n/******/ \t\"use strict\";\nlet __webpack_exports__ = {CODE
MEDIUMapp/components/UI/Ramp/headless/PLAN.md70## Phase 1 — Playground scaffolding (read-only)COMMENT
MEDIUMapp/components/UI/Ramp/headless/PLAN.md405### Host orchestrationCOMMENT
MEDIUM…s/Views/PerpsProMarketView/PerpsProMarketView.test.tsx271// need a lightweight placeholder so the layout scaffold assertions still pass.COMMENT
MEDIUMapp/components/Views/Homepage/abTestConfig.ts500 // Both guardrails fire from surfaces this experiment does not touchCOMMENT
MEDIUM…boardWebview/AgenticCliDashboardWebviewService.test.ts27 dashboardUrl: 'https://test-dashboard.web3auth.io/agentic/login',CODE
MEDIUM⚡…boardWebview/AgenticCliDashboardWebviewService.test.ts57 'https://test-dashboard.web3auth.io/agentic/login?foo=bar',CODE
MEDIUM⚡…boardWebview/AgenticCliDashboardWebviewService.test.ts62 'https://test-dashboard.web3auth.io/agentic/login?foo=bar#auth_token=dashboard-token',CODE
MEDIUM⚡…boardWebview/AgenticCliDashboardWebviewService.test.ts68 'https://test-dashboard.web3auth.io/agentic/login?auth_token=old-token',CODE
MEDIUM⚡…boardWebview/AgenticCliDashboardWebviewService.test.ts73 'https://test-dashboard.web3auth.io/agentic/login#auth_token=dashboard-token',CODE
MEDIUM⚡…boardWebview/AgenticCliDashboardWebviewService.test.ts80 'https://evil.example/agentic/login',CODE
MEDIUM…boardWebview/AgenticCliDashboardWebviewService.test.ts91 'https://test-dashboard.web3auth.io/agentic/login#auth_token=token',CODE
MEDIUM…boardWebview/AgenticCliDashboardWebviewService.test.ts99 'https://test-dashboard.web3auth.io/agentic/login#auth_token=token',CODE
MEDIUM⚡…boardWebview/AgenticCliDashboardWebviewService.test.ts249 'https://test-dashboard.web3auth.io/agentic/login#auth_token=token',CODE
MEDIUM⚡…boardWebview/AgenticCliDashboardWebviewService.test.ts254 'https://dev-developer.metamask.io/agentic/login#auth_token=token',CODE
MEDIUM⚡…boardWebview/AgenticCliDashboardWebviewService.test.ts259 'https://dev-dashboard.web3auth.io/agentic/login#auth_token=token',CODE
MEDIUM…boardWebview/AgenticCliDashboardWebviewService.test.ts272 'https://test-dashboard.web3auth.io/agentic/login#auth_token=token',CODE
MEDIUM…boardWebview/AgenticCliDashboardWebviewService.test.ts292 'https://developer.metamask.io/agentic/login#auth_token=token',CODE
MEDIUM…boardWebview/AgenticCliDashboardWebviewService.test.ts297 'https://dashboard.web3auth.io/agentic/login#auth_token=token',CODE
MEDIUM⚡…boardWebview/AgenticCliDashboardWebviewService.test.ts317 'https://dev-dashboard.web3auth.io/agentic/login#auth_token=token',CODE
MEDIUM⚡…boardWebview/AgenticCliDashboardWebviewService.test.ts322 'https://uat-developer.metamask.io/agentic/login#auth_token=token',CODE
MEDIUM⚡…boardWebview/AgenticCliDashboardWebviewService.test.ts327 'https://test-dashboard.web3auth.io/agentic/login#auth_token=token',CODE
MEDIUM…onents/Views/AgenticCliDashboardWebview/index.test.tsx133 dashboardUrl: 'https://test-dashboard.web3auth.io/agentic/login',CODE
MEDIUM…onents/Views/AgenticCliDashboardWebview/index.test.tsx144 'https://test-dashboard.web3auth.io/agentic/login#auth_token=dashboard-token',CODE
MEDIUM…onents/Views/AgenticCliDashboardWebview/index.test.tsx163 uri: 'https://test-dashboard.web3auth.io/agentic/login#auth_token=dashboard-token',CODE
MEDIUM…s/AgenticCliApproval/AgenticCliApprovalService.test.ts54 'https://developer.metamask.io/agentic/approval',CODE
MEDIUM…s/AgenticCliApproval/AgenticCliApprovalService.test.ts104 'https://developer.metamask.io/agentic/approval?projectId=project-1&approvalId=approval-1&mimirSignature=signatuCODE
MEDIUM⚡…s/AgenticCliApproval/AgenticCliApprovalService.test.ts155 'https://developer.metamask.io/agentic/approval',CODE
MEDIUM⚡…s/AgenticCliApproval/AgenticCliApprovalService.test.ts163 'https://test-dashboard.web3auth.io/agentic/approval',CODE
MEDIUM⚡…s/AgenticCliApproval/AgenticCliApprovalService.test.ts171 'https://dev-dashboard.web3auth.io/agentic/login',CODE
MEDIUM⚡…s/AgenticCliApproval/AgenticCliApprovalService.test.ts179 'https://auth.web3auth.io/auth?state=agentic',CODE
MEDIUMapp/components/Views/AgenticCliApproval/index.test.tsx41 'https://developer.metamask.io/agentic/approval?projectId=project-1&approvalId=approval-1&mimirSignature=signaCODE
MEDIUMapp/components/Views/AgenticCliApproval/index.test.tsx375 url: 'https://developer.metamask.io/agentic/approval',CODE
MEDIUMapp/dev-tools/AgenticService/AgenticService.ts2010 // 7. Set auto-lock to "Never" (-1) for agentic workflowsCOMMENT
MEDIUMtests/tools/e2e-ai-analyzer/README.md84├── analysis/ # Core AI agentic loopCODE
MEDIUMtests/tools/e2e-ai-analyzer/index.ts757 // LEGACY PATH: agentic loop for other modesCOMMENT
MEDIUM…rformance/onboarding/fresh-srp-wallet-creation.spec.ts306 // These are conservative initial guardrails to calibrate against CICOMMENT
MEDIUM…rmance/onboarding/seedless-telegram-onboarding.spec.ts76 // Conservative initial guardrails — calibrate against TestMuCOMMENT
MEDIUMdocs/predict/implementation-guide.md721├── PredictMarketDetails.tsx # <500 lines, orchestration onlyCODE
Structural Annotation Overuse66 hits · 127 pts
SeverityFileLineSnippetContext
LOW…ents/UI/Card/components/Onboarding/PhysicalAddress.tsx479 // Step 7: Create or retrieve consent recordCOMMENT
LOW…ents/UI/Card/components/Onboarding/PhysicalAddress.tsx507 // Step 8: Register physical addressCOMMENT
LOW⚡…ents/UI/Card/components/Onboarding/PhysicalAddress.tsx540 // Step 10: Link consent to user (only if needed)COMMENT
LOW⚡…ents/UI/Card/components/Onboarding/PhysicalAddress.tsx546 // Step 11: Check KYC status and navigate accordinglyCOMMENT
LOW⚡app/components/UI/Card/hooks/useCardDelegation.ts424 // Step 1: Delegation session (pass faucet flag if user needs gas)COMMENT
LOW⚡app/components/UI/Card/hooks/useCardDelegation.ts432 // Step 2: Generate and sign SIWE messageCOMMENT
LOWapp/components/UI/Card/hooks/useCardDelegation.ts448 // Step 3: Execute approval transactionCOMMENT
LOWapp/components/UI/Earn/utils/wildcardTokenList.ts183 // Step 1: If allowlist is non-empty, token must be in itCOMMENT
LOWapp/components/UI/Earn/utils/wildcardTokenList.ts196 // Step 2: If blocklist is non-empty, token must NOT be in itCOMMENT
LOW⚡…mponents/UI/Predict/providers/polymarket/safe/utils.ts196 // Step 1: Calculate domain separatorCOMMENT
LOW⚡…mponents/UI/Predict/providers/polymarket/safe/utils.ts204 // Step 2: Calculate safe tx hashCOMMENT
LOW…mponents/UI/Predict/providers/polymarket/safe/utils.ts236 // Step 3: Encode final transaction data (EIP-712)COMMENT
LOW⚡…/components/TradingViewChart/TradingViewChart.test.tsx1836 // Step 1: Load initial dataCOMMENT
LOW⚡…/components/TradingViewChart/TradingViewChart.test.tsx1841 // Step 2: Add TP/SL linesCOMMENT
LOW⚡…/components/TradingViewChart/TradingViewChart.test.tsx1850 // Step 3: Change time periodCOMMENT
LOW⚡…/components/TradingViewChart/TradingViewChart.test.tsx1859 // Step 4: Update dataCOMMENT
LOW…erps/components/TradingViewChart/TradingViewChart.html151 // Step 2: Create chartCOMMENT
LOW…mponents/TradingViewChart/TradingViewChartTemplate.tsx509 // Step 2: Create chartCOMMENT
LOW…ponents/UI/Perps/hooks/usePerpsCloseAllCalculations.ts235 // Step 1: Calculate fees for all positions in parallelCOMMENT
LOW…ponents/UI/Perps/hooks/usePerpsCloseAllCalculations.ts280 // Step 2: Batch points estimation for all positions in a single API callCOMMENT
LOW…ponents/UI/Perps/hooks/usePerpsCloseAllCalculations.ts306 // Step 3: Combine fee results with batch pointsCOMMENT
LOWapp/components/UI/Perps/hooks/usePerpsOrderFees.ts431 // Step 1: Get core fees from providerCOMMENT
LOWapp/components/UI/Perps/hooks/usePerpsOrderFees.ts442 // Step 2: Check if rates are available (not undefined)COMMENT
LOWapp/components/UI/Perps/hooks/usePerpsOrderFees.ts472 // Step 4: Handle points estimation if user has address and valid amountCOMMENT
LOWapp/components/UI/Perps/hooks/usePerpsOrderFees.ts495 // Step 5: Update all state with actual values (all rates are defined)COMMENT
LOW…ponents/UI/Perps/hooks/stream/useLivePositions.test.ts771 // Step 1: receive positions and an initial price tickCOMMENT
LOW⚡…ponents/UI/Perps/hooks/stream/useLivePositions.test.ts794 // Step 2: cache-clear fires — channel emits {} to signal stale dataCOMMENT
LOW⚡…ponents/UI/Perps/hooks/stream/useLivePositions.test.ts799 // Step 3: after the reset, enrichPositionsWithLivePnL receives empty priceDataCOMMENT
LOW⚡…ponents/UI/Perps/hooks/stream/useLivePositions.test.ts808 // Step 4: a fresh tick arrives after reconnect — enrichment resumes correctlyCOMMENT
LOW⚡…ts/Views/Snaps/SnapSettings/test/SnapSettings.test.tsx474 // Step 2: Click continue on the warning modalCOMMENT
LOW⚡…ts/Views/Snaps/SnapSettings/test/SnapSettings.test.tsx480 // Step 3: Wait for the warning modal to appear and enter the snap nameCOMMENT
LOW⚡…ts/Views/Snaps/SnapSettings/test/SnapSettings.test.tsx488 // Step 4: Click the continue buttonCOMMENT
LOW⚡…ts/Views/Snaps/SnapSettings/test/SnapSettings.test.tsx491 // Step 5: Verify that the removal functions are calledCOMMENT
LOW⚡…ichainAccountConnect/MultichainAccountConnect.test.tsx2366 // Step 1: press Connect to navigate to MaliciousWarningCOMMENT
LOW⚡…ichainAccountConnect/MultichainAccountConnect.test.tsx2369 // Step 2: press Connect Anyway to complete the connectionCOMMENT
LOW⚡…vealPrivateCredential/RevealPrivateCredential.test.tsx320 // Step 1: Click "Get started" on introduction screenCOMMENT
LOW⚡…vealPrivateCredential/RevealPrivateCredential.test.tsx326 // Step 2: Answer quiz question 1 (correct answer is RIGHT_ANSWER)COMMENT
LOW⚡…vealPrivateCredential/RevealPrivateCredential.test.tsx334 // Step 3: Click "Continue" after correct answerCOMMENT
LOW⚡…vealPrivateCredential/RevealPrivateCredential.test.tsx344 // Step 4: Answer quiz question 2 (correct answer is RIGHT_ANSWER)COMMENT
LOW⚡…vealPrivateCredential/RevealPrivateCredential.test.tsx352 // Step 5: Click "Continue" to proceed to ActionViewCOMMENT
LOW⚡app/store/sagas/rewardsBulkLinkAccountGroups.ts381 // Step 1: Collect all supported accounts from all groupsCOMMENT
LOW⚡app/store/sagas/rewardsBulkLinkAccountGroups.ts387 // Step 2: Batch fetch opt-in status for all addressesCOMMENT
LOW⚡app/store/sagas/rewardsBulkLinkAccountGroups.ts392 // Step 3: Identify accounts that need linkingCOMMENT
LOWapp/store/sagas/rewardsBulkLinkAccountGroups.ts413 // Step 4: Process all accounts one-by-oneCOMMENT
LOW⚡tests/tools/e2e-ai-analyzer/index.ts534 // Step 1: Generate initial analysisCOMMENT
LOW⚡tests/tools/e2e-ai-analyzer/index.ts544 // Step 2: Generate delta analysis (if there are cherry-picks)COMMENT
LOWtests/tools/e2e-ai-analyzer/index.ts564 // Step 3: Combine resultsCOMMENT
LOW⚡tests/smoke-appium/stake/lending-deposit-smoke.spec.ts70 // Step 1: Approve — tap lending footer then confirm the spending capCOMMENT
LOW⚡tests/smoke-appium/stake/lending-deposit-smoke.spec.ts74 // Step 2: Deposit — wait for button label to change to "Confirm"COMMENT
LOW…m/mm-connect/connection-multiclient-resilience.spec.ts126 // Step 1: Disconnect Solana, verify EVM persistsCOMMENT
LOW…sts/api-mocking/mock-responses/ens-resolution-mocks.ts108 // Step 1: ENS Registry — resolver(bytes32)COMMENT
LOWtests/page-objects/wallet/AccountListBottomSheet.ts917 // Step 1: Wait up to initialWaitTimeout for "Syncing" or "Discovering" to appearCOMMENT
LOWtests/page-objects/wallet/AccountListBottomSheet.ts960 // Step 2: Wait for "Syncing" to disappearCOMMENT
LOWtests/page-objects/wallet/AccountListBottomSheet.ts972 // Step 4: Wait for "Discovering" to disappearCOMMENT
LOWdocs/readme/metametrics-debugging.md148### Step 1: Verify Event is FiredCOMMENT
LOWdocs/readme/metametrics-debugging.md156### Step 2: Get Your Metrics IDCOMMENT
LOWdocs/readme/metametrics-debugging.md174### Step 3: Verify Event Reaches SegmentCOMMENT
LOWdocs/readme/metametrics-debugging.md188### Step 4: Verify Event Reaches MixpanelCOMMENT
LOW⚡docs/readme/deeplinking.md350### Step 1: Define the ActionCOMMENT
LOW⚡docs/readme/deeplinking.md360### Step 2: Add to Supported ActionsCOMMENT
6 more matches not shown…
Verbosity Indicators60 hits · 113 pts
SeverityFileLineSnippetContext
LOW…shouldTrackExpectedErrors/shouldTrackExpectedErrors.ts6 * The purpose of this function is to decide whether or not to send an *expected* errorCOMMENT
LOW…Card/components/Onboarding/ConfirmPhoneNumber.test.tsx1201 // We need to check if the text shows cooldown or if the required params are missingCOMMENT
LOW…Card/components/Onboarding/ConfirmPhoneNumber.test.tsx1223 // We need to check if the text shows cooldown or if the required params are missingCOMMENT
LOW…ents/UI/Card/components/Onboarding/PhysicalAddress.tsx479 // Step 7: Create or retrieve consent recordCOMMENT
LOW…ents/UI/Card/components/Onboarding/PhysicalAddress.tsx507 // Step 8: Register physical addressCOMMENT
LOW⚡…ents/UI/Card/components/Onboarding/PhysicalAddress.tsx540 // Step 10: Link consent to user (only if needed)COMMENT
LOW⚡…ents/UI/Card/components/Onboarding/PhysicalAddress.tsx546 // Step 11: Check KYC status and navigate accordinglyCOMMENT
LOW⚡app/components/UI/Card/hooks/useCardDelegation.ts424 // Step 1: Delegation session (pass faucet flag if user needs gas)COMMENT
LOW⚡app/components/UI/Card/hooks/useCardDelegation.ts432 // Step 2: Generate and sign SIWE messageCOMMENT
LOWapp/components/UI/Card/hooks/useCardDelegation.ts448 // Step 3: Execute approval transactionCOMMENT
LOWapp/components/UI/Earn/utils/wildcardTokenList.ts183 // Step 1: If allowlist is non-empty, token must be in itCOMMENT
LOWapp/components/UI/Earn/utils/wildcardTokenList.ts196 // Step 2: If blocklist is non-empty, token must NOT be in itCOMMENT
LOW⚡…mponents/UI/Predict/providers/polymarket/safe/utils.ts196 // Step 1: Calculate domain separatorCOMMENT
LOW⚡…mponents/UI/Predict/providers/polymarket/safe/utils.ts204 // Step 2: Calculate safe tx hashCOMMENT
LOW…mponents/UI/Predict/providers/polymarket/safe/utils.ts236 // Step 3: Encode final transaction data (EIP-712)COMMENT
LOW⚡…/components/TradingViewChart/TradingViewChart.test.tsx1836 // Step 1: Load initial dataCOMMENT
LOW⚡…/components/TradingViewChart/TradingViewChart.test.tsx1841 // Step 2: Add TP/SL linesCOMMENT
LOW⚡…/components/TradingViewChart/TradingViewChart.test.tsx1850 // Step 3: Change time periodCOMMENT
LOW⚡…/components/TradingViewChart/TradingViewChart.test.tsx1859 // Step 4: Update dataCOMMENT
LOW…erps/components/TradingViewChart/TradingViewChart.html151 // Step 2: Create chartCOMMENT
LOW…mponents/TradingViewChart/TradingViewChartTemplate.tsx509 // Step 2: Create chartCOMMENT
LOW…ponents/UI/Perps/hooks/usePerpsCloseAllCalculations.ts235 // Step 1: Calculate fees for all positions in parallelCOMMENT
LOW…ponents/UI/Perps/hooks/usePerpsCloseAllCalculations.ts280 // Step 2: Batch points estimation for all positions in a single API callCOMMENT
LOW…ponents/UI/Perps/hooks/usePerpsCloseAllCalculations.ts306 // Step 3: Combine fee results with batch pointsCOMMENT
LOWapp/components/UI/Perps/hooks/usePerpsOrderFees.ts431 // Step 1: Get core fees from providerCOMMENT
LOWapp/components/UI/Perps/hooks/usePerpsOrderFees.ts442 // Step 2: Check if rates are available (not undefined)COMMENT
LOWapp/components/UI/Perps/hooks/usePerpsOrderFees.ts472 // Step 4: Handle points estimation if user has address and valid amountCOMMENT
LOWapp/components/UI/Perps/hooks/usePerpsOrderFees.ts495 // Step 5: Update all state with actual values (all rates are defined)COMMENT
LOW…ponents/UI/Perps/hooks/stream/useLivePositions.test.ts771 // Step 1: receive positions and an initial price tickCOMMENT
LOW⚡…ponents/UI/Perps/hooks/stream/useLivePositions.test.ts794 // Step 2: cache-clear fires — channel emits {} to signal stale dataCOMMENT
LOW⚡…ponents/UI/Perps/hooks/stream/useLivePositions.test.ts799 // Step 3: after the reset, enrichPositionsWithLivePnL receives empty priceDataCOMMENT
LOW⚡…ponents/UI/Perps/hooks/stream/useLivePositions.test.ts808 // Step 4: a fresh tick arrives after reconnect — enrichment resumes correctlyCOMMENT
LOW…/UI/Perps/Views/PerpsOrderView/PerpsOrderView.test.tsx3219 // Since Keypad is not mocked, we need to check if it would be renderedCOMMENT
LOW⚡…ts/Views/Snaps/SnapSettings/test/SnapSettings.test.tsx470 // Step 1: // Trigger the remove snap actionCOMMENT
LOW⚡…ts/Views/Snaps/SnapSettings/test/SnapSettings.test.tsx474 // Step 2: Click continue on the warning modalCOMMENT
LOW⚡…ts/Views/Snaps/SnapSettings/test/SnapSettings.test.tsx480 // Step 3: Wait for the warning modal to appear and enter the snap nameCOMMENT
LOW⚡…ts/Views/Snaps/SnapSettings/test/SnapSettings.test.tsx488 // Step 4: Click the continue buttonCOMMENT
LOW⚡…ts/Views/Snaps/SnapSettings/test/SnapSettings.test.tsx491 // Step 5: Verify that the removal functions are calledCOMMENT
LOW⚡…ichainAccountConnect/MultichainAccountConnect.test.tsx2366 // Step 1: press Connect to navigate to MaliciousWarningCOMMENT
LOW⚡…ichainAccountConnect/MultichainAccountConnect.test.tsx2369 // Step 2: press Connect Anyway to complete the connectionCOMMENT
LOW⚡…vealPrivateCredential/RevealPrivateCredential.test.tsx320 // Step 1: Click "Get started" on introduction screenCOMMENT
LOW⚡…vealPrivateCredential/RevealPrivateCredential.test.tsx326 // Step 2: Answer quiz question 1 (correct answer is RIGHT_ANSWER)COMMENT
LOW⚡…vealPrivateCredential/RevealPrivateCredential.test.tsx334 // Step 3: Click "Continue" after correct answerCOMMENT
LOW⚡…vealPrivateCredential/RevealPrivateCredential.test.tsx344 // Step 4: Answer quiz question 2 (correct answer is RIGHT_ANSWER)COMMENT
LOW⚡…vealPrivateCredential/RevealPrivateCredential.test.tsx352 // Step 5: Click "Continue" to proceed to ActionViewCOMMENT
LOW…p/components/Views/NetworkSelector/NetworkSelector.tsx208 * We need to check if the network is non-EVM because we don't support multiple RPC endpoints for non-EVM networks andCOMMENT
LOW⚡app/store/sagas/rewardsBulkLinkAccountGroups.ts381 // Step 1: Collect all supported accounts from all groupsCOMMENT
LOW⚡app/store/sagas/rewardsBulkLinkAccountGroups.ts387 // Step 2: Batch fetch opt-in status for all addressesCOMMENT
LOW⚡app/store/sagas/rewardsBulkLinkAccountGroups.ts392 // Step 3: Identify accounts that need linkingCOMMENT
LOWapp/store/sagas/rewardsBulkLinkAccountGroups.ts413 // Step 4: Process all accounts one-by-oneCOMMENT
LOW⚡tests/tools/e2e-ai-analyzer/index.ts534 // Step 1: Generate initial analysisCOMMENT
LOW⚡tests/tools/e2e-ai-analyzer/index.ts544 // Step 2: Generate delta analysis (if there are cherry-picks)COMMENT
LOWtests/tools/e2e-ai-analyzer/index.ts564 // Step 3: Combine resultsCOMMENT
LOW⚡tests/smoke-appium/stake/lending-deposit-smoke.spec.ts70 // Step 1: Approve — tap lending footer then confirm the spending capCOMMENT
LOW⚡tests/smoke-appium/stake/lending-deposit-smoke.spec.ts74 // Step 2: Deposit — wait for button label to change to "Confirm"COMMENT
LOW…m/mm-connect/connection-multiclient-resilience.spec.ts126 // Step 1: Disconnect Solana, verify EVM persistsCOMMENT
LOW…sts/api-mocking/mock-responses/ens-resolution-mocks.ts108 // Step 1: ENS Registry — resolver(bytes32)COMMENT
LOWtests/page-objects/wallet/AccountListBottomSheet.ts917 // Step 1: Wait up to initialWaitTimeout for "Syncing" or "Discovering" to appearCOMMENT
LOWtests/page-objects/wallet/AccountListBottomSheet.ts960 // Step 2: Wait for "Syncing" to disappearCOMMENT
LOWtests/page-objects/wallet/AccountListBottomSheet.ts972 // Step 4: Wait for "Discovering" to disappearCOMMENT
Redundant / Tautological Comments26 hits · 42 pts
SeverityFileLineSnippetContext
LOWbuilds.yml57 # Set only to point a build at a custom Bridge API deployment.COMMENT
LOWscripts/push-bundle-size.sh10# Check if running in GitHub ActionsCOMMENT
LOWscripts/generate-attributions.sh44 # Check if the script is running in a CI environment (GitHub Actions sets the CI variable to true)COMMENT
LOWscripts/setup-app-store-connect-api-key.sh15# Check if exactly 3 arguments are providedCOMMENT
LOWscripts/update-tradingview-template.sh84 # Check if files existCOMMENT
LOWscripts/set-build-version.sh8# Check if exactly one arguments are providedCOMMENT
LOWscripts/find-ipa-file.sh19# Check if IPA path is provided as argumentCOMMENT
LOW⚡scripts/build.sh125 # Check if the --pre flag is presentCOMMENT
LOW⚡scripts/build.sh130 # Check if the --local flag is presentCOMMENT
LOW⚡scripts/build.sh136 # Check if the --clean flag is presentCOMMENT
LOW⚡scripts/build.sh142 # Check if the METAMASK_ENVIRONMENT is validCOMMENT
LOWscripts/build.sh155 # Check if the METAMASK_BUILD_TYPE is validCOMMENT
LOWscripts/build.sh233 # Check if GOOGLE_SERVICES_B64_IOS is setCOMMENT
LOWscripts/build.sh252 # Check if GOOGLE_SERVICES_B64_ANDROID is setCOMMENT
LOWscripts/build.sh302 # Check if configuration is validCOMMENT
LOWscripts/build.sh309 # Check if scheme is validCOMMENT
LOWscripts/build.sh394 # Check if configuration is validCOMMENT
LOWscripts/build.sh401 # Check if flavor is validCOMMENT
LOWscripts/set-semvar-version.sh7# Check if exactly one arguments are providedCOMMENT
LOWscripts/create-temp-nightly-branch.sh14# Check if we're in a git repositoryCOMMENT
LOWscripts/create-temp-nightly-branch.sh41# Check if the temp-nightly branch already exists locallyCOMMENT
LOWscripts/create-temp-nightly-branch.sh59# Check if branch exists on remoteCOMMENT
LOWscripts/cache/set-cache-envs.sh14# Check if both folder_to_check is providedCOMMENT
LOW.github/workflows/block-stable-main-to-main.yml23 # Check if source branch matches exact pattern: stable-main-X.Y.ZCOMMENT
LOW.github/workflows/block-stable-sync-to-release.yml22 # Check if source branch matches stable-sync-* targeting release/X.Y.ZCOMMENT
LOW.github/scripts/validate-pr-commit.sh48# Check if PR existsCOMMENT
Synthetic Comment Markers4 hits · 28 pts
SeverityFileLineSnippetContext
HIGH…onfirmationModal/LimitOrderConfirmationModalScreen.tsx267 // Bookkeeping only, and explicitly the amount as requested rather thanCOMMENT
HIGH…mationModal/LimitOrderConfirmationModalScreen.test.tsx692 // The dest amount as requested, not the one the tolerance was applied to.COMMENT
HIGHscripts/build-announce/test-plan-section.ts200 md += `*Generated by AI Test Plan Analyzer (${testPlan.model}) at ${testPlan.generatedAt}*\n\n`;CODE
HIGH.github/workflows/build-rc-auto.yml49# The RC build comment includes an AI-generated test plan (inline with collapsible sections).COMMENT
Magic Placeholder Names4 hits · 20 pts
SeverityFileLineSnippetContext
HIGH…ponents/UI/Tokens/util/enableAllNetworksFilter.test.ts121 url: 'https://mainnet.infura.io/v3/your-api-key',CODE
HIGH…tworkSettings/CustomNetworkView/CustomNetwork.test.tsx53 rpcUrl: 'https://mainnet.infura.io/v3/your-api-key',CODE
HIGH…tworkSettings/CustomNetworkView/CustomNetwork.test.tsx145 rpcUrl: 'https://mainnet.infura.io/v3/your-api-key',CODE
HIGH…tworkSettings/CustomNetworkView/CustomNetwork.test.tsx169 rpcUrl: 'https://mainnet.infura.io/v3/your-api-key',CODE
Example Usage Blocks10 hits · 15 pts
SeverityFileLineSnippetContext
LOWbuilds.yml4# Usage:COMMENT
LOWtests/framework/index.ts44// Example usage:COMMENT
LOWtests/scripts/fetch-rn-playground-apk.sh4# Usage:COMMENT
LOWscripts/setup-app-store-connect-api-key.sh5# Usage:COMMENT
LOWscripts/update-tradingview-template.sh10# Usage:COMMENT
LOWscripts/find-ipa-file.sh5# Usage:COMMENT
LOWscripts/optimize-images.sh7# Usage:COMMENT
LOWscripts/upload-to-testflight.sh5# Usage:COMMENT
LOWscripts/get-build-metadata.sh7# Usage:COMMENT
LOW…-automation/performance-tests/verify-testmu-app-url.sh4# Usage:COMMENT
Self-Referential Comments2 hits · 6 pts
SeverityFileLineSnippetContext
MEDIUMscripts/push-bundle-size.sh31# Create a temporary directoryCOMMENT
MEDIUMscripts/create-release-draft.sh39# Create a draft release using GitHub CLICOMMENT
TODO Padding2 hits · 3 pts
SeverityFileLineSnippetContext
LOW…ents/UI/Earn/components/FadeInView/FadeInView.test.tsx1// TODO: Add testsCOMMENT
LOW…/Ramp/Aggregator/components/ErrorViewWithReporting.tsx33 //TODO: implement a mechanisim for user to submit a support ticketCOMMENT
Slop Phrases1 hit · 2 pts
SeverityFileLineSnippetContext
MEDIUMlocales/languages/en.json8850 "swap_issues": "I'm unable to swap...",CODE
Overly Generic Function Names1 hit · 1 pts
SeverityFileLineSnippetContext
LOWapp/core/WalletConnect/multichain/tron/adapter.ts178export async function handleRequest({CODE