AI Slop Code Risk Monitor

Uniswap/interface

SlopCodeMonitor badge for Uniswap/interface Adjusted legacy signal; badge bands: 25 / 50 / 75 (different from dashboard bands).

🦄 Open source interfaces for the Uniswap protocol

3.8 Low pattern signal View on GitHub

Open-Source Code Quality, Security and Technical Debt Review

This report summarizes scanner evidence for Uniswap/interface, a TypeScript project with 5,546 GitHub stars. SynthScan examined 1,476,738 lines of code across 11100 source files, recording 4319 pattern matches distributed across 15 syntactic categories. The legacy adjusted pattern signal is 3.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.

3.8
Adjusted Signal
3.8
Raw Pattern Score
100%
Time Factor
2026-10-30
Last Push
5.5K
Stars
TypeScript
Language
1.5M
Lines of Code
11.1K
Files
4.3K
Pattern Hits
2026-10-31
Scan Date
0.00
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 15.6/100 · LOW

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

Hallucinated Dependency & Supply Chain Risk 0.6/100 · LOW

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

Agent Over-Engineering Ratio 12.2/100 · LOW

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

PR Review Velocity Impact 16.4/100 · LOW

Which changes need focused human review? 4319 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 6HIGH 14MEDIUM 432LOW 3867

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 4319 distinct pattern matches across 15 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 Identifiers3336 hits · 3405 pts
SeverityFileLineSnippetContext
LOWoxlint.config.ts278export function restrictedImportPatternsForUniversePackage(packageName: string) {CODE
LOWdangerfile.ts56function checkGeneralizedHookFiles() {CODE
LOWconfig/oxlint-plugins/universe-custom.js67 function getNearestJSXAncestorName(node) {CODE
LOWconfig/oxlint-plugins/universe-custom.js220 function isPercentageTemplateLiteral(node) {CODE
LOWconfig/oxlint-plugins/universe-custom.js962function getPhysicalFilenameForBoundary(context) {CODE
LOWconfig/oxlint-plugins/universe-custom.js988function moduleImportSuffixForBoundary(source, boundary) {CODE
LOWconfig/oxlint-plugins/universe-custom.js1152function isDirectViemEthersAllowlisted(physicalPath) {CODE
LOWscripts/check-podfile-lock.ts138function readPackageDependencyNames(packageJsonPath: string): string[] {CODE
LOWscripts/add-icons.ts444export function removeGeneratedComponents(names: readonly string[], dirs: TargetDirs): string[] {CODE
LOWpackages/uniswap/src/contexts/UniswapContext.tsx264export function useSignDelegationAuthorization(): SignDelegationAuthorizationFn | undefined {CODE
LOW…ages/uniswap/src/extension/useIsChromeWindowFocused.ts41export function useIsChromeWindowFocusedWithTimeout(timeoutInMs: number): boolean {CODE
LOW…nces/implementations/createDialogPreferencesService.ts16export function createDialogPreferencesService(ctx: DialogPreferencesServiceContext): DialogPreferencesService {CODE
LOWpackages/uniswap/src/constants/addresses.ts14export function getWrappedNativeAddressWithThrow(chainId: UniverseChainId): string {CODE
LOWpackages/uniswap/src/features/settings/constants.ts26export function deviceAccessTimeoutToMinutes(timeout: DeviceAccessTimeout): number | undefined {CODE
LOWpackages/uniswap/src/features/settings/hooks.ts12export function useHideSmallBalancesSetting(): boolean {CODE
LOWpackages/uniswap/src/features/settings/hooks.ts22export function useHideReportedActivitySetting(): boolean {CODE
LOWpackages/uniswap/src/features/settings/hooks.ts37export function useTestnetModeBannerHeight(): number {CODE
LOW…/settings/balances/PortfolioBalanceSettingsContent.tsx18export function PortfolioBalanceSettingsContent(): JSX.Element {CODE
LOWpackages/uniswap/src/features/reporting/reports.ts115export function submitTokenWarningDataReport({CODE
LOWpackages/uniswap/src/features/reporting/reports.ts222export function submitPortfolioDataReport({CODE
LOW…uniswap/src/features/prices/LowPriceConfidenceIcon.tsx10export function LowPriceConfidenceTooltip({ children }: { children: ReactNode }): JSX.Element {CODE
LOW…/features/prices/isRemotePriceServiceSupportedChain.ts8export function isRemotePriceServiceSupportedChain(chainId: number): boolean {CODE
LOW…/uniswap/src/features/prices/LowPriceConfidenceTag.tsx24function LowPriceConfidenceTagWithSheet(): JSX.Element {CODE
LOW…niswap/src/features/gas/convertGasFeeToDisplayValue.ts15export function convertGasFeeToDisplayValue({CODE
LOWpackages/uniswap/src/features/gas/utils.ts64export function applyNativeTokenPercentageBuffer(CODE
LOWpackages/uniswap/src/features/gas/utils.ts95function getNativeCurrencyTotalSpend({CODE
LOWpackages/uniswap/src/features/gas/utils.ts117export function hasSufficientFundsIncludingGas(params: {CODE
LOWpackages/uniswap/src/features/gas/utils.ts268export async function estimateGasWithClientSideProvider({CODE
LOWpackages/uniswap/src/features/gas/shiftedGasToken.ts42export function hasSufficientFundsIncludingShiftedGasToken({CODE
LOWpackages/uniswap/src/features/gas/shiftedGasToken.ts84export function convertShiftedGasFeeForDisplay(gasFeeRaw: string, decimalShift: bigint): string {CODE
LOWpackages/uniswap/src/features/gas/hooks.ts104export function useUSDCurrencyAmountOfGasFee(CODE
LOWpackages/uniswap/src/features/gas/hooks.ts144export function useFormattedUniswapXGasFeeInfo(CODE
LOWpackages/uniswap/src/features/gas/hooks.ts178export function useGasFeeHighRelativeToValue(CODE
LOWpackages/uniswap/src/features/gas/utils/cancel.ts33export function createClassicCancelRequest(transaction: TransactionDetails): providers.TransactionRequest {CODE
LOWpackages/uniswap/src/features/gas/utils/cancel.ts45export function calculateCancellationGasFee(params: {CODE
LOWpackages/uniswap/src/features/gas/utils/cancel.ts77export function calculateClassicCancellationGas(CODE
LOWpackages/uniswap/src/features/gas/utils/cancel.ts149export function calculateUniswapXCancellationGas(CODE
LOWpackages/uniswap/src/features/gas/utils/cancel.ts168function getCancellationGasFeeDisplayValue({CODE
LOW⚡…niswap/src/features/gas/tempoFeeToken/tempoFeeToken.ts12export async function fetchTempoFeeTokenPreference(accountAddress: Address): Promise<Address | null> {CODE
LOW⚡…niswap/src/features/gas/tempoFeeToken/tempoFeeToken.ts22function getTempoFeeTokenPreferenceQueryKey(accountAddress?: Address): TempoFeeTokenPreferenceQueryKey {CODE
LOW⚡…niswap/src/features/gas/tempoFeeToken/tempoFeeToken.ts29export function getTempoFeeTokenPreferenceQueryOptions(CODE
LOW…eatures/gas/components/CrosschainNotSupportedModal.tsx26export function CrosschainNotSupportedModal({ isOpen, onClose }: CrosschainNotSupportedModalProps): JSX.Element {CODE
LOW…omponents/NetworkCostEditor/useRecommendedGasFields.ts38export function getRecommendedGasFieldsFromQuoteGas(args: {CODE
LOW…nents/NetworkCostEditor/useGasOverridesWarningState.ts37export function useGasOverridesWarningState({CODE
LOW…ts/NetworkCostEditor/buildGasServiceUrgencyOverride.ts25export function buildGasServiceUrgencyOverride({CODE
LOW…ges/uniswap/src/features/gas/hooks/useChainGasToken.ts25function isTempoFeeTokenStablecoin(currency: Currency): boolean {CODE
LOW…ap/src/features/gas/hooks/useCancellationGasFeeInfo.ts37export function useCancellationGasFeeInfo(CODE
LOW…/src/features/gas/hooks/useIsCustomGasFlowAvailable.ts25export function useIsCustomGasFlowAvailable(): boolean {CODE
LOW…ap/src/features/gas/hooks/useTradingApiGasOverrides.ts27export function useTradingApiGasOverrides(args: {CODE
LOW…p/src/features/gas/hooks/useEnableCustomGasFeeEntry.ts6export function useEnableCustomGasFeeEntry(): boolean {CODE
LOW…p/src/features/gas/hooks/useEnableCustomGasFeeEntry.ts10export function useSetEnableCustomGasFeeEntry(): (enabled: boolean) => void {CODE
LOW…es/uniswap/src/features/gas/hooks/useMaxAmountSpend.ts106function convertGasFeeToGasTokenUnits({CODE
LOW…es/uniswap/src/features/gas/hooks/useMaxAmountSpend.ts159export function useLowBalanceWarningGasPercentage(): number {CODE
LOW…rc/features/gas/hooks/usePlanCancellationGasFeeInfo.ts28export function usePlanCancellationGasFeeInfo(CODE
LOWpackages/uniswap/src/features/dataApi/safety.ts30export function fromGraphQLProtectionResult(result: GraphQLApi.ProtectionResult | undefined): ProtectionResult {CODE
LOWpackages/uniswap/src/features/dataApi/safety.ts78export function fromTradingApiSafetyLevel(level: TradingApi.SafetyLevel | undefined): SafetyLevel | undefined {CODE
LOWpackages/uniswap/src/features/dataApi/searchTokens.ts18export function toMultichainSearchResults({CODE
LOWpackages/uniswap/src/features/dataApi/searchTokens.ts46export function useMultichainSearchTokens({CODE
LOWpackages/uniswap/src/features/dataApi/searchTokens.ts82export function filterMultichainResultsToChain(CODE
LOWpackages/uniswap/src/features/dataApi/searchAuctions.ts42function getAuctionAddressFromAuctionId(auctionId: string): string | undefined {CODE
3276 more matches not shown…
AI Slop Vocabulary273 hits · 938 pts
SeverityFileLineSnippetContext
MEDIUM…/margin/stores/marginFormStore/marginActionKey.test.ts10// The full contract, one row per reachable (action, equity, leverage) combination. `adjust` stands inCOMMENT
MEDIUM…tions/margin/stores/marginFormStore/marginActionKey.ts12// What the leverage control asks for, RELATIVE TO the position's current leverage:COMMENT
MEDIUM…tions/margin/stores/marginFormStore/marginActionKey.ts14// equity and keep my leverage" is expressed, i.e. the leverage control left untouched,COMMENT
MEDIUM…tions/margin/stores/marginFormStore/marginActionKey.ts32 // Both ends of a position's life name themselves: an open always sizes off leverage × equity, aCOMMENT
MEDIUM…tions/margin/stores/marginFormStore/marginActionKey.ts64 // Holding leverage while nothing else moves asks for nothing.COMMENT
MEDIUM…tions/margin/stores/marginFormStore/marginActionKey.ts73 // Keeping leverage while equity grows still has to borrow more, so it rides the increaseCOMMENT
MEDIUM…tions/margin/stores/marginFormStore/marginActionKey.ts88 // Mirror of the add case: keeping leverage while equity shrinks has to repay debt.COMMENT
MEDIUM…rgin/stores/marginFormStore/buildMarginQuoteRequest.ts35// Keys that move leverage and nothing else, so they carry NO wallet-side rail — the only two keysCOMMENT
MEDIUM…rgin/stores/marginFormStore/buildMarginQuoteRequest.ts42// The keys with no leverage swap, so the leverage-leg tolerance is forbidden. = backend EQUITY_ONLY_KEYS.COMMENT
MEDIUM…rgin/stores/marginFormStore/buildMarginQuoteRequest.ts57 // Decimal string ('2.5', never a WAD). Required by the keys that move leverage, forbidden on the rest.COMMENT
MEDIUM…rgin/stores/marginFormStore/buildMarginQuoteRequest.ts62 // two pure leverage moves; carries the pay/receive token, its chain, the equity magnitude, and theCOMMENT
MEDIUM…rgin/stores/marginFormStore/buildMarginQuoteRequest.ts169// The four equity+leverage composites share the identical { positionId, leverageTarget, amount } shape;COMMENT
MEDIUM…rgin/stores/marginFormStore/buildMarginQuoteRequest.ts192// quote disabled), and the single slippage setting fills BOTH configs — the leverage leg's bound andCOMMENT
MEDIUM…stores/marginFormStore/buildMarginQuoteRequest.test.ts184 // Only the two PURE leverage moves carry no wallet rail. `close` pays OUT through a swap, so it namesCOMMENT
MEDIUM…stores/marginFormStore/buildMarginQuoteRequest.test.ts316 // close pays out through a swap, so unlike a pure leverage move it DOES carry a wallet rail.COMMENT
MEDIUM…/src/data/apiClients/tradingApi/useMarginQuoteQuery.ts23// floor, invalid leverage) whose retry just delays the message. Note isRateLimitFetchError's 412-429COMMENT
MEDIUM…/src/data/apiClients/tradingApi/useMarginQuoteQuery.ts99 // keeps a leverage retarget bridging — that is the edit the bridge exists for — at the cost of oneCOMMENT
MEDIUM…data/apiClients/tradingApi/useMarginQuoteQuery.test.ts178 // The bridge exists FOR this edit: a leverage retarget re-keys the query on every slider step, andCOMMENT
MEDIUM…data/apiClients/tradingApi/useMarginQuoteQuery.test.ts179 // refusing it would unmount the size/leverage block mid-drag. Comparing the action KEY rather than theCOMMENT
MEDIUM…swap/src/data/apiClients/tradingApi/MarginApiClient.ts23// Units on this wire: amounts are raw-unit decimal strings; leverage is a DECIMALCOMMENT
MEDIUM⚡…swap/src/data/apiClients/tradingApi/MarginApiClient.ts102// The wallet-side pay/receive token and its chain. Present on every key but the two pure leverageCOMMENT
MEDIUM⚡…swap/src/data/apiClients/tradingApi/MarginApiClient.ts113// (size = leverage × equity).COMMENT
MEDIUM…swap/src/data/apiClients/tradingApi/MarginApiClient.ts134// Keys with no leverage swap at all: size is held, so the leverage-leg toleranceCOMMENT
MEDIUM…swap/src/data/apiClients/tradingApi/MarginApiClient.ts158// leverage leg — neither tolerance defaults from the other. Flow direction comesCOMMENT
MEDIUM…swap/src/data/apiClients/tradingApi/MarginApiClient.ts189// from a leverage number.COMMENT
MEDIUM…swap/src/data/apiClients/tradingApi/MarginApiClient.ts193// The leverage moves, and the four composites.COMMENT
MEDIUM…swap/src/data/apiClients/tradingApi/MarginApiClient.ts208// a composite action populates two of them. Identity/leverage pins and theCOMMENT
MEDIUM…swap/src/data/apiClients/tradingApi/MarginApiClient.ts310 // Decimal string, EXPOSURE leverage.COMMENT
MEDIUM…swap/src/data/apiClients/tradingApi/MarginApiClient.ts366 // Present iff the action moved leverage.COMMENT
MEDIUM…swap/src/data/apiClients/tradingApi/MarginApiClient.ts432 // Max over the allowlist, decimal leverage.COMMENT
MEDIUM…swap/src/data/apiClients/tradingApi/MarginApiClient.ts697 // LIVE exposure leverage = size × oraclePrice / equity, NOT the open-timeCOMMENT
MEDIUM…swap/src/data/apiClients/tradingApi/MarginApiClient.ts699 // such a position has no finite leverage — render ∞.COMMENT
MEDIUM…swap/src/data/apiClients/tradingApi/MarginApiClient.ts721 // Exposure leverage at open, decimal string.COMMENT
MEDIUM…swap/src/data/apiClients/tradingApi/MarginApiClient.ts854// and every leverage/equity variant is an ADJUST to this client. Collapse it to the intent vocabularyCOMMENT
MEDIUMpackages/ui/src/components/slider/Slider.tsx24// Cross-platform controlled slider. Web is the only real leg today (margin's leverage slider); theCOMMENT
MEDIUMpackages/config-cli/src/lib/lock/lock.test.ts62 // `second` enters the race. Polling on an observable signal is robust to changes inCOMMENT
MEDIUMpackages/wallet/src/features/wallet/context.tsx49 // Probably not strictly necessary but more robust than relying on 'organic' re-rendersCOMMENT
MEDIUMapps/web/src/constants/margin.ts63 // This venue's server-authored max leverage, decimal. The selector's headline is a max across theCOMMENT
MEDIUM…adApp/Modal/EmbeddedWalletOnboarding/TokenCarousel.tsx8// Enough tokens that the duplicated strip is always wider than the modal, keeping the loop seamless.COMMENT
MEDIUM…adApp/Modal/EmbeddedWalletOnboarding/TokenCarousel.tsx11// The strip is rendered twice, so animating 0 -> -50% scrolls tokens right-to-left in a seamless loop.COMMENT
MEDIUMapps/web/src/pages/Launches/index.tsx169 // The strip is duplicated only while the marquee runs, purely for the seamless wrap (sameCOMMENT
MEDIUMapps/web/src/pages/Launches/LaunchesPage.test.tsx476 // The pill strip is rendered twice for the seamless loop, so each admitted row shows twice.COMMENT
MEDIUMapps/web/src/pages/Launches/LaunchesPage.test.tsx563 // Each pill in the capped strip renders twice — the strip is doubled for the seamless loop —COMMENT
MEDIUMapps/web/src/pages/Launches/LaunchesHero.tsx44// The strip is rendered twice, so animating 0 -> -50% scrolls the pills right-to-left in a seamlessCOMMENT
MEDIUMapps/web/src/pages/Launches/LaunchesHero.tsx148 // One pill per distinct token, capped; the strip is duplicated below purely for the seamless loop.COMMENT
MEDIUMapps/web/src/pages/Launches/useTrendingMarquee.ts112 // Distance between a card and its clone — measured from the DOM so the wrap stays seamlessCOMMENT
MEDIUM…ps/web/src/pages/Swap/Margin/marginPriceImpact.test.ts116 // A plain deposit or withdraw with no leverage retarget has no swap leg, so the adjust quoteCOMMENT
MEDIUM…/web/src/pages/Swap/Margin/marginAdjustPositionMath.ts7// Resulting EXPOSURE leverage if debt stays constant and equity moves by deltaCollateral (signed,COMMENT
MEDIUM⚡…/web/src/pages/Swap/Margin/marginAdjustPositionMath.ts38 // position — it flips the LTV's sign, which would slip under the `>= 1` test and report a LOW leverageCOMMENT
MEDIUM⚡…/web/src/pages/Swap/Margin/marginAdjustPositionMath.ts47// Current EXPOSURE leverage, off the wire (decimal string). Undefined carries TWO claims, and callersCOMMENT
MEDIUM⚡…/web/src/pages/Swap/Margin/marginAdjustPositionMath.ts49// - the wire OMITS the field — the position has no finite leverage (equity at or below zero), whichCOMMENT
MEDIUM⚡…/web/src/pages/Swap/Margin/marginAdjustPositionMath.ts54// `position.leverage === undefined` for the first before falling back. Gate arithmetic that must stayCOMMENT
MEDIUMapps/web/src/pages/Swap/Margin/marginReviewVenuePin.ts15// Venue selection is amount- and leverage-aware and re-runs on every poll, so the quote under an openCOMMENT
MEDIUM…eb/src/pages/Swap/Margin/marginCompletionToast.test.ts124 // A second leverage value: without it, "interpolates the leverage" and "hardcodes 2x" areCOMMENT
MEDIUMapps/web/src/pages/Swap/Margin/MarginPositionsTable.tsx157 // (direction + leverage) and `trailing` (the liquidation pill) are composed by the caller from theCOMMENT
MEDIUMapps/web/src/pages/Swap/Margin/MarginPositionsTable.tsx224 // Direction + CURRENT leverage, in the direction color. Leverage at open lives in the drawer.COMMENT
MEDIUM…src/pages/Swap/Margin/marginAdjustPositionGate.test.ts21 // Floors rather than rounds: `locked` holds leverage constant, so the 2-decimal step must neverCOMMENT
MEDIUM…src/pages/Swap/Margin/marginAdjustPositionGate.test.ts22 // wire MORE leverage than the position actually holds.COMMENT
MEDIUM…src/pages/Swap/Margin/marginAdjustPositionGate.test.ts40 // the position reports no leverage). Pinned because the alternative is parseUnits throwing out ofCOMMENT
MEDIUM…src/pages/Swap/Margin/marginAdjustPositionGate.test.ts283 // Change leverage opens in drift with no funding, so its first render must be a no-change.COMMENT
213 more matches not shown…
Decorative Section Separators155 hits · 454 pts
SeverityFileLineSnippetContext
MEDIUM⚡oxlint.config.ts671 // ═══════════════════════════════════════════════════════════════════COMMENT
MEDIUM⚡oxlint.config.ts673 // ═══════════════════════════════════════════════════════════════════COMMENT
MEDIUM⚡oxlint.config.ts675 // ── Migration files: relax type rules ─────────────────────────────COMMENT
MEDIUM⚡oxlint.config.ts713 // ── Storybook: allow alerts ───────────────────────────────────────COMMENT
MEDIUM⚡oxlint.config.ts720 // ── JavaScript files: allow console ───────────────────────────────COMMENT
MEDIUM⚡oxlint.config.ts728 // ── Mycelium platform-leg gate (INFRA-3517) ───────────────────────COMMENT
MEDIUM⚡oxlint.config.ts802 // ═══════════════════════════════════════════════════════════════════COMMENT
MEDIUM⚡oxlint.config.ts804 // ═══════════════════════════════════════════════════════════════════COMMENT
MEDIUM⚡oxlint.config.ts806 // ── apps/cli, config-cli ──────────────────────────────────────────────────────COMMENT
MEDIUMoxlint.config.ts85// ── Shared no-restricted-imports definitions ──────────────────────────COMMENT
MEDIUMoxlint.config.ts288// ── Shared no-restricted-syntax selectors ─────────────────────────────COMMENT
MEDIUMoxlint.config.ts346// ── Shared override fragments ────────────────────────────────────────COMMENT
MEDIUMoxlint.config.ts385 // ── complexity ──────────────────────────────────────────────────────COMMENT
MEDIUMoxlint.config.ts403 // ── correctness ────────────────────────────────────────────────────COMMENT
MEDIUMoxlint.config.ts468 // ── security ───────────────────────────────────────────────────────COMMENT
MEDIUMoxlint.config.ts476 // ── style ──────────────────────────────────────────────────────────COMMENT
MEDIUMoxlint.config.ts559 // ── additional rules ───────────────────────────────────────────────COMMENT
MEDIUMoxlint.config.ts577 // ── suspicious ─────────────────────────────────────────────────────COMMENT
MEDIUMoxlint.config.ts623 // ── jsPlugin rules (excluded when ENABLE_FAST_LINT=true) ──────────COMMENT
MEDIUMoxlint.config.ts686 // ── Saga files ──────────────────────COMMENT
MEDIUMoxlint.config.ts697 // ── Logger, scripts, devtools: allow console ──────────────────────COMMENT
MEDIUMoxlint.config.ts847 // ── apps/dev-portal ───────────────────────────────────────────────COMMENT
MEDIUMoxlint.config.ts880 // ── apps/unilens ──────────────────────────────────────────────────COMMENT
MEDIUMoxlint.config.ts910 // ── apps/extension ────────────────────────────────────────────────COMMENT
MEDIUMoxlint.config.ts1010 // ── apps/mission-control ──────────────────────────────────────────COMMENT
MEDIUMoxlint.config.ts1066 // ── apps/mobile ───────────────────────────────────────────────────COMMENT
MEDIUMoxlint.config.ts1137 // ── apps/web ──────────────────────────────────────────────────────COMMENT
MEDIUMoxlint.config.ts1146 // ── @universe/embedded-wallet web protocol layer ──────────────────COMMENT
MEDIUMoxlint.config.ts1360 // ── labs ──────────────────────────────────────────────────────────COMMENT
MEDIUMoxlint.config.ts1391 // ── labs/workbench ────────────────────────────────────────────────COMMENT
MEDIUMoxlint.config.ts1423 // ── apps/pools-xyz ────────────────────────────────────────────────COMMENT
MEDIUMoxlint.config.ts1458 // ── packages/uniswap ──────────────────────────────────────────────COMMENT
MEDIUMoxlint.config.ts1481 // ── packages/wallet ───────────────────────────────────────────────COMMENT
MEDIUMoxlint.config.ts1504 // ── packages/ui ───────────────────────────────────────────────────COMMENT
MEDIUMoxlint.config.ts1542 // ── packages/utilities ────────────────────────────────────────────COMMENT
MEDIUMoxlint.config.ts1557 // ── packages/datadog-cloud ────────────────────────────────────────COMMENT
MEDIUMoxlint.config.ts1566 // ── packages/mycelium ─────────────────────────────────────────────COMMENT
MEDIUMoxlint.config.ts1580 // ── packages/prices ───────────────────────────────────────────────COMMENT
MEDIUMoxlint.config.ts1598 // ── @universe/* packages with standard pattern ────────────────────COMMENT
MEDIUMoxlint.config.ts1631 // ═══════════════════════════════════════════════════════════════════COMMENT
MEDIUMoxlint.config.ts1633 // ═══════════════════════════════════════════════════════════════════COMMENT
MEDIUMoxlint.config.ts1685 // ═══════════════════════════════════════════════════════════════════COMMENT
MEDIUMoxlint.config.ts1688 // ═══════════════════════════════════════════════════════════════════COMMENT
MEDIUMconfig/oxlint-plugins/universe-custom.js17// ── Utilities ──────────────────────────────────────────────────────────COMMENT
MEDIUMconfig/oxlint-plugins/universe-custom.js38// ── no-unwrapped-t ─────────────────────────────────────────────────────COMMENT
MEDIUMconfig/oxlint-plugins/universe-custom.js111// ── custom-map-sort ────────────────────────────────────────────────────COMMENT
MEDIUMconfig/oxlint-plugins/universe-custom.js159// ── no-hex-string-casting ──────────────────────────────────────────────COMMENT
MEDIUMconfig/oxlint-plugins/universe-custom.js202// ── no-transform-percentage-strings ────────────────────────────────────COMMENT
MEDIUMconfig/oxlint-plugins/universe-custom.js339// ── enforce-query-options-result ────────────────────────────────────────COMMENT
MEDIUMconfig/oxlint-plugins/universe-custom.js459// ── no-redux-modals ────────────────────────────────────────────────────COMMENT
MEDIUMconfig/oxlint-plugins/universe-custom.js506// ── no-relative-import-paths ───────────────────────────────────────────COMMENT
MEDIUMconfig/oxlint-plugins/universe-custom.js586// ── no-nested-component-definitions ──────────────────────────────────COMMENT
MEDIUMconfig/oxlint-plugins/universe-custom.js720// ── jsx-prop-order ──────────────────────────────────────────────────────COMMENT
MEDIUMconfig/oxlint-plugins/universe-custom.js825// ── enum-member-naming ─────────────────────────────────────────────────COMMENT
MEDIUMconfig/oxlint-plugins/universe-custom.js852// ── no-tolowercase-address-currencyid ──────────────────────────────────COMMENT
MEDIUMconfig/oxlint-plugins/universe-custom.js907// ── no-platform-gate-in-chain-flags ──────────────────────────────────COMMENT
MEDIUMconfig/oxlint-plugins/universe-custom.js951// ── import-boundary (JSON) ─────────────────────────────────────────────COMMENT
MEDIUMconfig/oxlint-plugins/universe-custom.js1118// ── no-direct-viem-ethers-import ───────────────────────────────────────COMMENT
MEDIUMconfig/oxlint-plugins/universe-custom.js1215// ── Plugin export ──────────────────────────────────────────────────────COMMENT
MEDIUM⚡scripts/check-runtime-versions.sh18# ============================================COMMENT
95 more matches not shown…
Over-Commented Block301 hits · 286 pts
SeverityFileLineSnippetContext
LOWi18next-parser.config.js61 input: ['apps/**/*.tsx', 'apps/**/*.ts', 'packages/**/*.ts', 'packages/**/*.tsx'],COMMENT
LOWbunfig.toml1# Bun configuration fileCOMMENT
LOWoxlint.config.ts721 {COMMENT
LOWconfig/oxlint-plugins/no-throwing-stub-imports.test.ts361COMMENT
LOWconfig/oxlint-plugins/mycelium-platform-legs.test.ts121 }COMMENT
LOWconfig/oxlint-plugins/no-throwing-stub-imports.js21// apps/dev-portal, apps/mission-control)COMMENT
LOWconfig/oxlint-plugins/prefer-use-is-mounted.js1/**COMMENT
LOWscripts/check-runson-config.sh1#!/bin/bashCOMMENT
LOWscripts/check-env-files.sh1#!/bin/shCOMMENT
LOWscripts/silence-deprecation-warnings.js1// Preloaded via `bun --preload` for the `check:deps:usage` Nx target so thatCOMMENT
LOWscripts/required-checks.test.ts261 // hand-written name pairs: the row name in ci.yml's `affected` outputs, theCOMMENT
LOWscripts/check-rn-patch-prebuilt-conflict.sh1#!/bin/bashCOMMENT
LOWscripts/compute-affected.sh101 exit 0COMMENT
LOWscripts/releases/calculate_version.sh1#!/bin/bashCOMMENT
LOW…ripts/security-gate-feedback/security-gate-feedback.sh1#!/usr/bin/env bashCOMMENT
LOW…ripts/security-gate-feedback/security-gate-feedback.sh41# SINCE, so this only binds in repos busy enough that the window needs more pages -- backendCOMMENT
LOW…ripts/security-gate-feedback/security-gate-feedback.sh121skipped=0COMMENT
LOW…ripts/security-gate-feedback/security-gate-feedback.sh141 # This does NOT weaken the degraded-read detection below. A total_count of 0 comes from aCOMMENT
LOWscripts/security-gate-check/security-gate-check.test.ts381 // stale. workflow_run fires on that workflow completing instead. The name must match theCOMMENT
LOWscripts/security-gate-check/security-gate-check.test.ts441 expect(cancelExpression).toContain("!(github.event_name == 'pull_request_review'")COMMENT
LOWscripts/security-gate-check/security-gate-check.sh1#!/usr/bin/env bashCOMMENT
LOWscripts/security-gate-check/security-gate-check.sh41# --- review integrity ------------------------------------------------------------------COMMENT
LOWscripts/security-gate-check/security-gate-check.sh61#COMMENT
LOWscripts/security-gate-check/security-gate-check.sh81# env, re-running any CI run from before the env var existed silently restored the oldCOMMENT
LOWscripts/security-gate-check/security-gate-check.sh101# N is a count of COUNTED APPROVALS -- the same currency as the baselines below, i.e. humans plusCOMMENT
LOWscripts/security-gate-check/security-gate-check.sh121# OWNER_REVIEWS_ENABLED=0 stops the resolution running at all (an outage kill switch).COMMENT
LOWscripts/security-gate-check/security-gate-check.sh141# Written without the [bot] suffix, matched with it stripped, exactly as COUNTING_BOTS is -- oneCOMMENT
LOWscripts/security-gate-check/security-gate-check.sh161# From github.event.pull_request.draft ("true"/"false"), same sourcing and the same APICOMMENT
LOWscripts/security-gate-check/security-gate-check.sh181# The gate's APPROVE therefore does one job: superseding its OWN earlier CHANGES_REQUESTED soCOMMENT
LOWscripts/security-gate-check/security-gate-check.sh201# review-integrity, which never depends on the model and still requires its human approvals.COMMENT
LOWscripts/security-gate-check/security-gate-check.sh221# do not hold up a medium change.COMMENT
LOWscripts/security-gate-check/security-gate-check.sh241# Defined here, above the guard below, which consults it.COMMENT
LOWscripts/security-gate-check/security-gate-check.sh261 && in_list "$ACTION" "review_requested,review_request_removed"COMMENT
LOWscripts/security-gate-check/security-gate-check.sh301# calling ghapi before its definition is a runtime failure.COMMENT
LOWscripts/security-gate-check/security-gate-check.sh321 [ -z "$PR_AUTHOR" ] && PR_AUTHOR="$(printf '%s' "$_pr_json" | jq -r '.user.login // empty' 2>/dev/null)"COMMENT
LOWscripts/security-gate-check/security-gate-check.sh341# off. This sits BEFORE the pending sentinels are seeded and before any review or comment, soCOMMENT
LOWscripts/security-gate-check/security-gate-check.sh501 '{state:$s,context:$c,description:$d} + (if $u == "" then {} else {target_url:$u} end)' >/tmp/st.jsonCOMMENT
LOWscripts/security-gate-check/security-gate-check.sh521# Why it is read unconditionally now: the classifier is sampled, and re-running aCOMMENT
LOWscripts/security-gate-check/security-gate-check.sh681 printf '%s' "$1" \COMMENT
LOWscripts/security-gate-check/security-gate-check.sh701# The hidden markers are carried forward UNCHANGED. They are the gate's persisted state (theCOMMENT
LOWscripts/security-gate-check/security-gate-check.sh941# the head-independent rule above -- the reason for it (a nit-fix push must not cost a re-review)COMMENT
LOWscripts/security-gate-check/security-gate-check.sh1001# --- the gate's own review state ------------------------------------------------------COMMENT
LOWscripts/security-gate-check/security-gate-check.sh1021# read as thirty-two.COMMENT
LOWscripts/security-gate-check/security-gate-check.sh1141# ONE reader for both trusted prompt files. They are read identically, and the read is the partCOMMENT
LOWscripts/security-gate-check/security-gate-check.sh1321COMMENT
LOWscripts/security-gate-check/security-gate-check.sh1421 # enormous. Costs nothing in practice: the largest of 60 recent merged PRs touched 28 files.COMMENT
LOWscripts/security-gate-check/security-gate-check.sh1441# runs. "none" is recorded explicitly, so a resolved-nothing result is cached too rather thanCOMMENT
LOWscripts/security-gate-check/security-gate-check.sh1461COMMENT
LOWscripts/security-gate-check/security-gate-check.sh1581 # For each changed path pick the LONGEST CODEOWNERS dir that prefixes it — "the nearestCOMMENT
LOWscripts/security-gate-check/security-gate-check.sh1641 END { m=0; for (k in v) if (v[k] > m) m=v[k]; print m }' "$declfile" -)"COMMENT
LOWscripts/security-gate-check/security-gate-check.sh1941 #COMMENT
LOWscripts/security-gate-check/security-gate-check.sh1961 return 1COMMENT
LOWscripts/security-gate-check/security-gate-check.sh2061 fiCOMMENT
LOWscripts/security-gate-check/security-gate-check.sh2101 # after retries, deliberately: a hiccup must not block PRs.COMMENT
LOWscripts/security-gate-check/security-gate-check.sh2141 elseCOMMENT
LOWscripts/security-gate-check/security-gate-check.sh2161 elif [ "$ri_human" -lt "$MIN_HUMAN" ]; thenCOMMENT
LOWscripts/security-gate-check/security-gate-check.sh2201evaluate_review_integrity || exit 1COMMENT
LOWscripts/security-gate-check/security-gate-check.sh2281 # the gate's own commit status instead of recomputing it. Re-running would spend a secondCOMMENT
LOWscripts/security-gate-check/security-gate-check.sh2321 # Done in the DATA, not in each renderer: severity is printed by render_findings_table, byCOMMENT
LOWscripts/security-gate-check/security-gate-check.sh2401COMMENT
241 more matches not shown…
Structural Annotation Overuse98 hits · 193 pts
SeverityFileLineSnippetContext
LOW.agents/skills/argent-react-native-profiler/SKILL.md79### Step 1: Start profilingCOMMENT
LOW⚡.agents/skills/argent-react-native-profiler/SKILL.md93### Step 2: Stop and collectCOMMENT
LOW⚡.agents/skills/argent-react-native-profiler/SKILL.md98### Step 3: AnalyzeCOMMENT
LOW⚡.agents/skills/argent-react-native-profiler/SKILL.md108### Step 4: Assess resultsCOMMENT
LOW⚡.agents/skills/argent-react-native-profiler/SKILL.md112### Step 5: Present findings and ask about next stepsCOMMENT
LOW⚡.agents/skills/argent-react-native-profiler/SKILL.md116### Step 6: Drill-down investigation (iterative)COMMENT
LOW.agents/skills/argent-react-native-profiler/SKILL.md129### Step 7: Reload a previous sessionCOMMENT
LOW.agents/skills/argent-react-native-profiler/SKILL.md140### Step 8: Apply fix and re-profileCOMMENT
LOW.agents/skills/argent-native-profiler/SKILL.md43### Step 0: Ensure the target app is runningCOMMENT
LOW⚡.agents/skills/argent-native-profiler/SKILL.md54### Step 1: Start recordingCOMMENT
LOW⚡.agents/skills/argent-native-profiler/SKILL.md59### Step 2: Stop and exportCOMMENT
LOW⚡.agents/skills/argent-native-profiler/SKILL.md63### Step 3: AnalyzeCOMMENT
LOW⚡.agents/skills/argent-native-profiler/SKILL.md67### Step 4: Present findings and ask about next stepsCOMMENT
LOW⚡.agents/skills/argent-native-profiler/SKILL.md71### Step 5: Drill-down investigationCOMMENT
LOW⚡.agents/skills/argent-native-profiler/SKILL.md75### Step 6: Reload previous sessionsCOMMENT
LOWscripts/swap-ui/EXTRACTION-GUIDE.md42## Step 1: understand the viewCOMMENT
LOWscripts/swap-ui/EXTRACTION-GUIDE.md55## Step 2: design the props (the one creative step; reviewed hardest)COMMENT
LOWscripts/swap-ui/EXTRACTION-GUIDE.md74## Step 3: move the viewCOMMENT
LOWscripts/swap-ui/EXTRACTION-GUIDE.md84## Step 4: write the adapter (stays in packages/uniswap)COMMENT
LOWscripts/swap-ui/EXTRACTION-GUIDE.md97## Step 5: storyCOMMENT
LOWscripts/swap-ui/EXTRACTION-GUIDE.md104## Step 6: test (all of this, every batch)COMMENT
LOWscripts/swap-ui/EXTRACTION-GUIDE.md121## Step 7: PRCOMMENT
LOWscripts/swap-ui/EXTRACTION-GUIDE.md132## Step 8: LinearCOMMENT
LOW⚡…ures/favorites/hooks/useToggleFavoriteCallback.test.ts141 // Step 1: simulate the context-menu flow on Arbitrum USDC — selector says "not favorited",COMMENT
LOW⚡…ures/favorites/hooks/useToggleFavoriteCallback.test.ts151 // Step 2: given the resulting stored state, the selector must report favorited regardless ofCOMMENT
LOW⚡…tions/swap/hooks/useTrade/createGetQuoteRequestArgs.ts52 // Step 1: Check skip flagCOMMENT
LOW⚡…tions/swap/hooks/useTrade/createGetQuoteRequestArgs.ts57 // Step 2: Parse the inputCOMMENT
LOW⚡…tions/swap/hooks/useTrade/createGetQuoteRequestArgs.ts60 // Step 3: Validate the data structureCOMMENT
LOW⚡…tions/swap/hooks/useTrade/createGetQuoteRequestArgs.ts67 // Step 4: Build the quote request from validated inputCOMMENT
LOW⚡…tions/swap/hooks/useTrade/createGetQuoteRequestArgs.ts70 // Step 5: Flatten the result to match the expected return typeCOMMENT
LOW⚡…sactions/swap/services/tradeService/evmTradeService.ts82 // Step 1: Prepare trade inputCOMMENT
LOW⚡…sactions/swap/services/tradeService/evmTradeService.ts85 // Step 2: Early exit if input is nullCOMMENT
LOW⚡…sactions/swap/services/tradeService/evmTradeService.ts90 // Step 3: Build quote request with all paramsCOMMENT
LOW⚡…sactions/swap/services/tradeService/evmTradeService.ts94 // Step 4: Fetch quote from APICOMMENT
LOW⚡…sactions/swap/services/tradeService/evmTradeService.ts99 // Step 5: Transform quote to tradeCOMMENT
LOW⚡…sactions/swap/services/tradeService/evmTradeService.ts123 // Step 1: validate indicative quote requestCOMMENT
LOW⚡…sactions/swap/services/tradeService/evmTradeService.ts129 // Step 2: build indicative quote requestCOMMENT
LOW⚡…sactions/swap/services/tradeService/evmTradeService.ts133 // Step 3: Fetch indicative quote from APICOMMENT
LOW⚡…sactions/swap/services/tradeService/evmTradeService.ts136 // Step 4: Validate and transform to IndicativeTradeCOMMENT
LOW⚡…sactions/swap/services/tradeService/evmTradeService.ts171 // Step 1: Early exit if skippedCOMMENT
LOW⚡…sactions/swap/services/tradeService/evmTradeService.ts176 // Step 2: Parse input into structured formatCOMMENT
LOW⚡…sactions/swap/services/tradeService/evmTradeService.ts179 // Step 3: Validate all required fields are presentCOMMENT
LOW⚡…sactions/swap/services/tradeService/svmTradeService.ts53 // Step 1: Prepare trade inputCOMMENT
LOW⚡…sactions/swap/services/tradeService/svmTradeService.ts57 // Step 2: Early exit if quote args are nullCOMMENT
LOW⚡…sactions/swap/services/tradeService/svmTradeService.ts64 // Step 3: Build quote request with all paramsCOMMENT
LOW⚡…sactions/swap/services/tradeService/svmTradeService.ts67 // Step 4: Fetch quote from APICOMMENT
LOW⚡…sactions/swap/services/tradeService/svmTradeService.ts70 // Step 5: Transform quote to tradeCOMMENT
LOW⚡packages/config-cli/src/commands/push.ts22 // Step 1: read + parse the local .env file. readDotenvFile treats a missing fileCOMMENT
LOW⚡packages/config-cli/src/commands/push.ts31 // Step 2: build the config client (handles auth + dev overrides).COMMENT
LOW⚡packages/config-cli/src/commands/push.ts35 // Step 3: warn the user about migration-only intent and confirm.COMMENT
LOWpackages/config-cli/src/commands/push.ts48 // Step 4: push each entry. Each call is independent on the backend (no transaction)COMMENT
LOW⚡…s/sessions/src/challenge-solvers/hashcash/core.test.ts275 // Step 1: Find proofCOMMENT
LOW⚡…s/sessions/src/challenge-solvers/hashcash/core.test.ts280 // Step 2: Verify the proof is validCOMMENT
LOW⚡…s/sessions/src/challenge-solvers/hashcash/core.test.ts284 // Step 3: Check the hash meets difficulty requirementCOMMENT
LOW⚡…s/sessions/src/challenge-solvers/hashcash/core.test.ts287 // Step 4: Format for submissionCOMMENT
LOW⚡…ckages/embedded-wallet/src/connection/userOpSigning.ts61 // Step 1: EIP-712 PackedUserOperation typed data. NOTE: `formatUserOperation`COMMENT
LOW⚡…ckages/embedded-wallet/src/connection/userOpSigning.ts65 // Step 2: passkey-backed eth_signTypedData_v4 over the typed data. PrivyCOMMENT
LOW⚡…ckages/embedded-wallet/src/connection/userOpSigning.ts73 // Step 3: Calibur wrap — abi.encode(ROOT_KEY_HASH=bytes32(0), sig, hookData='0x').COMMENT
LOW⚡…ckages/embedded-wallet/src/connection/userOpSigning.ts76 // Step 4: attach 7702 authorization if one isn't already bundled by the caller.COMMENT
LOW⚡…allet/src/features/passkey/embeddedWalletDelegation.ts186 // Step 1: Sign the EIP-7702 authorizationCOMMENT
38 more matches not shown…
Verbosity Indicators75 hits · 150 pts
SeverityFileLineSnippetContext
LOWpackages/uniswap/src/contexts/UniswapContext.tsx79 // some wallets don't support UniswapX, so we need to check if it's supported (mismatch account)COMMENT
LOW⚡…ures/favorites/hooks/useToggleFavoriteCallback.test.ts141 // Step 1: simulate the context-menu flow on Arbitrum USDC — selector says "not favorited",COMMENT
LOW⚡…ures/favorites/hooks/useToggleFavoriteCallback.test.ts151 // Step 2: given the resulting stored state, the selector must report favorited regardless ofCOMMENT
LOW⚡…tions/swap/hooks/useTrade/createGetQuoteRequestArgs.ts52 // Step 1: Check skip flagCOMMENT
LOW⚡…tions/swap/hooks/useTrade/createGetQuoteRequestArgs.ts57 // Step 2: Parse the inputCOMMENT
LOW⚡…tions/swap/hooks/useTrade/createGetQuoteRequestArgs.ts60 // Step 3: Validate the data structureCOMMENT
LOW⚡…tions/swap/hooks/useTrade/createGetQuoteRequestArgs.ts67 // Step 4: Build the quote request from validated inputCOMMENT
LOW⚡…tions/swap/hooks/useTrade/createGetQuoteRequestArgs.ts70 // Step 5: Flatten the result to match the expected return typeCOMMENT
LOW⚡…sactions/swap/services/tradeService/evmTradeService.ts82 // Step 1: Prepare trade inputCOMMENT
LOW⚡…sactions/swap/services/tradeService/evmTradeService.ts85 // Step 2: Early exit if input is nullCOMMENT
LOW⚡…sactions/swap/services/tradeService/evmTradeService.ts90 // Step 3: Build quote request with all paramsCOMMENT
LOW⚡…sactions/swap/services/tradeService/evmTradeService.ts94 // Step 4: Fetch quote from APICOMMENT
LOW⚡…sactions/swap/services/tradeService/evmTradeService.ts99 // Step 5: Transform quote to tradeCOMMENT
LOW⚡…sactions/swap/services/tradeService/evmTradeService.ts123 // Step 1: validate indicative quote requestCOMMENT
LOW⚡…sactions/swap/services/tradeService/evmTradeService.ts129 // Step 2: build indicative quote requestCOMMENT
LOW⚡…sactions/swap/services/tradeService/evmTradeService.ts133 // Step 3: Fetch indicative quote from APICOMMENT
LOW⚡…sactions/swap/services/tradeService/evmTradeService.ts136 // Step 4: Validate and transform to IndicativeTradeCOMMENT
LOW⚡…sactions/swap/services/tradeService/evmTradeService.ts171 // Step 1: Early exit if skippedCOMMENT
LOW⚡…sactions/swap/services/tradeService/evmTradeService.ts176 // Step 2: Parse input into structured formatCOMMENT
LOW⚡…sactions/swap/services/tradeService/evmTradeService.ts179 // Step 3: Validate all required fields are presentCOMMENT
LOW⚡…sactions/swap/services/tradeService/svmTradeService.ts53 // Step 1: Prepare trade inputCOMMENT
LOW⚡…sactions/swap/services/tradeService/svmTradeService.ts57 // Step 2: Early exit if quote args are nullCOMMENT
LOW⚡…sactions/swap/services/tradeService/svmTradeService.ts64 // Step 3: Build quote request with all paramsCOMMENT
LOW⚡…sactions/swap/services/tradeService/svmTradeService.ts67 // Step 4: Fetch quote from APICOMMENT
LOW⚡…sactions/swap/services/tradeService/svmTradeService.ts70 // Step 5: Transform quote to tradeCOMMENT
LOWpackages/ui/src/components/buttons/Button/Button.tsx42 // We need to check if the children is a string, a Trans tag, or a custom component that likely renders a Trans tag, iCOMMENT
LOW⚡packages/config-cli/src/commands/push.ts22 // Step 1: read + parse the local .env file. readDotenvFile treats a missing fileCOMMENT
LOW⚡packages/config-cli/src/commands/push.ts31 // Step 2: build the config client (handles auth + dev overrides).COMMENT
LOW⚡packages/config-cli/src/commands/push.ts35 // Step 3: warn the user about migration-only intent and confirm.COMMENT
LOWpackages/config-cli/src/commands/push.ts48 // Step 4: push each entry. Each call is independent on the backend (no transaction)COMMENT
LOW⚡…s/sessions/src/challenge-solvers/hashcash/core.test.ts275 // Step 1: Find proofCOMMENT
LOW⚡…s/sessions/src/challenge-solvers/hashcash/core.test.ts280 // Step 2: Verify the proof is validCOMMENT
LOW⚡…s/sessions/src/challenge-solvers/hashcash/core.test.ts284 // Step 3: Check the hash meets difficulty requirementCOMMENT
LOW⚡…s/sessions/src/challenge-solvers/hashcash/core.test.ts287 // Step 4: Format for submissionCOMMENT
LOW⚡…ckages/embedded-wallet/src/connection/userOpSigning.ts61 // Step 1: EIP-712 PackedUserOperation typed data. NOTE: `formatUserOperation`COMMENT
LOW⚡…ckages/embedded-wallet/src/connection/userOpSigning.ts65 // Step 2: passkey-backed eth_signTypedData_v4 over the typed data. PrivyCOMMENT
LOW⚡…ckages/embedded-wallet/src/connection/userOpSigning.ts73 // Step 3: Calibur wrap — abi.encode(ROOT_KEY_HASH=bytes32(0), sig, hookData='0x').COMMENT
LOW⚡…ckages/embedded-wallet/src/connection/userOpSigning.ts76 // Step 4: attach 7702 authorization if one isn't already bundled by the caller.COMMENT
LOW⚡…allet/src/features/passkey/embeddedWalletDelegation.ts186 // Step 1: Sign the EIP-7702 authorizationCOMMENT
LOW⚡…allet/src/features/passkey/embeddedWalletDelegation.ts194 // Step 2: Sign the full EIP-7702 transaction (backend handles type-4 signing + serialization)COMMENT
LOW…allet/src/features/passkey/embeddedWalletDelegation.ts259 // Step 3: Submit the fully signed EIP-7702 transactionCOMMENT
LOW⚡…/services/TransactionService/transactionServiceImpl.ts517 // Step 1: If we need to request Uniswap gas sponsorship, fill paymaster fields here.COMMENT
LOW⚡…/services/TransactionService/transactionServiceImpl.ts534 // Step 2: Sign (EIP-712 + Calibur encoding). The 7702 auth is bundled into the 4337COMMENT
LOW⚡…/services/TransactionService/transactionServiceImpl.ts541 // Step 3: Submit to bundler via UniRPCCOMMENT
LOW…ervices/UserOpSignerService/userOpSignerServiceImpl.ts49 // Step 1: EIP-712 typed data signing over the PackedUserOperation.COMMENT
LOW⚡…ervices/UserOpSignerService/userOpSignerServiceImpl.ts61 // Step 2: Calibur signature encodingCOMMENT
LOW⚡…ervices/UserOpSignerService/userOpSignerServiceImpl.ts64 // Step 3: the 7702 auth is bundled into the 4337 request up front (round-trips onCOMMENT
LOW⚡…ervices/UserOpSignerService/userOpSignerServiceImpl.ts73 // Step 4: Rebuild the final signed UserOperation (preserving any round-tripped eip7702Auth).COMMENT
LOW⚡…sor/implementations/createBaseNotificationProcessor.ts47 // Step 1: Build dependency graph and identify roots using topological analysisCOMMENT
LOW⚡…sor/implementations/createBaseNotificationProcessor.ts50 // Step 2: Separate primary (roots) and chained (non-roots) notificationsCOMMENT
LOW…sor/implementations/createBaseNotificationProcessor.ts62 // Step 3: Filter out notifications that are locally tracked or don't have DISMISS action.COMMENT
LOW⚡…sor/implementations/createBaseNotificationProcessor.ts97 // Step 4: Limit the number of primary notifications per content styleCOMMENT
LOW⚡…sor/implementations/createBaseNotificationProcessor.ts100 // Step 5: Convert chained notifications to a Map for fast lookupCOMMENT
LOW…ction/ActivityTimeline/getSupplySchedulePoints.test.ts49 // Step 1: 100 mps × 100 blocks = 10_000 of 50_000 → 20%COMMENT
LOW⚡apps/web/src/features/accounts/store/provider.tsx353 // Step 1: Build the store components, deduplicating cross platform data for the same wallet if needed.COMMENT
LOW⚡apps/web/src/features/accounts/store/provider.tsx356 // Step 2: Store all connectors + references to active connectors.COMMENT
LOW⚡apps/web/src/features/accounts/store/provider.tsx370 // Step 3: Store all accounts.COMMENT
LOW⚡apps/web/src/features/accounts/store/provider.tsx375 // Step 4: Store the wallet.COMMENT
LOW⚡apps/mobile/.maestro/flows/send/send-eth-to-self.yaml19# Step 1: Initialize app and recover walletCOMMENT
LOW⚡apps/mobile/.maestro/flows/send/send-eth-to-self.yaml23# Step 2: Copy our wallet address from the Receive QR modalCOMMENT
15 more matches not shown…
Hallucination Indicators6 hits · 60 pts
SeverityFileLineSnippetContext
CRITICAL…p/src/features/transactions/swap/plan/planSagaUtils.ts239 chainIn: swapTxContext.trade.quote.quote.tokenInChainId.toString(),CODE
CRITICAL…p/src/features/transactions/swap/plan/planSagaUtils.ts240 chainOut: swapTxContext.trade.quote.quote.tokenOutChainId.toString(),CODE
CRITICAL…niswap/src/features/transactions/swap/plan/planSaga.ts654 inputCurrencyAmountRaw: params.swapTxContext.trade.inputAmount.quotient.toString(),CODE
CRITICAL…niswap/src/features/transactions/swap/plan/planSaga.ts655 outputCurrencyAmountRaw: params.swapTxContext.trade.outputAmount.quotient.toString(),CODE
CRITICALapps/web/src/playwright/wc/walletCounterparty.ts196 client.core.relayer.subscriber.events.removeAllListeners()CODE
CRITICAL…bile/src/features/walletConnect/walletConnectClient.ts59 const clientId = await wcWeb3Wallet.engine.signClient.core.crypto.getClientId()CODE
Cross-Language Confusion (JS/TS)11 hits · 58 pts
SeverityFileLineSnippetContext
HIGHscripts/security-gate-check/security-gate-check.test.ts142elif case "$url" in *api.anthropic.com*) true ;; *) false ;; esac; thenCODE
HIGHscripts/security-gate-check/security-gate-check.test.ts174 elif [ -n "\${FAKE_REQUEST_REVIEW_FAILS:-}" ]; thenCODE
HIGH…iswap/src/features/tokens/warnings/safetyUtils.test.ts50 it('should return None when currencyInfo is fully undefined', () => {CODE
HIGH…iswap/src/features/tokens/warnings/safetyUtils.test.ts163 it('should return None for default token with no warnings', () => {CODE
HIGH…iswap/src/features/tokens/warnings/safetyUtils.test.ts167 it('should return None for native currency', () => {CODE
HIGH…src/components/InlineWarningCard/InlineWarningCard.tsx79 // !WarningIcon for typecheck; should only be null if WarningSeverity == NoneCOMMENT
HIGH…/src/features/dappRequests/utils/blockaidUtils.test.ts96 it('should return None for undefined classification', () => {CODE
HIGH…/src/features/dappRequests/utils/blockaidUtils.test.ts100 it('should return None for benign classification', () => {CODE
HIGH…/src/features/dappRequests/utils/blockaidUtils.test.ts127 it('should return None for undefined validation', () => {CODE
HIGH…/src/features/dappRequests/utils/blockaidUtils.test.ts2291 it('should return None risk level when simulation is missing and validation is benign', () => {CODE
HIGH…/src/features/dappRequests/utils/blockaidUtils.test.ts2334 it('should return None risk level when both simulation and validation are missing', () => {CODE
Fake / Example Data46 hits · 46 pts
SeverityFileLineSnippetContext
LOW.agents/skills/argent-test-ui-flow/SKILL.md503. paste { text: "user@example.com" }CODE
LOWpackages/ui/src/components/input/Input.web.tsx41 | 'placeholder'CODE
LOWpackages/mycelium/src/compat/color-token-parity.test.ts84 'placeholder',CODE
LOWpackages/mycelium/src/unicon/address-alias.test.tsx49 expect(resolveUniconInput({ input: 'user@example.com' })).toBe('user@example.com')CODE
LOWpackages/mycelium/src/unicon/derive.test.ts41 { input: 'user@example.com', hash: 10480051118383854456n, colorIndex: 6, iconKey: '60' },CODE
LOWpackages/mycelium/src/unicon/derive.test.ts100 expect(hashString('user@example.com') > BigInt(Number.MAX_SAFE_INTEGER)).toBe(true)CODE
LOWpackages/mycelium/src/unicon/Unicon.web.tsx17 * <Unicon input="user@example.com" size={32} className="border border-neutral1" />COMMENT
LOWpackages/mycelium/src/unicon/Unicon.native.test.tsx24const INPUT = 'user@example.com'CODE
LOWpackages/mycelium/src/input-compat/InputCompat.web.tsx49 | 'placeholder'CODE
LOW…dded-wallet/src/features/passkey/checkPinReuse.test.ts33const params = { pin: '4321', email: 'user@example.com', accessToken: 'token', encryptedBlob: 'blob' }CODE
LOW…ed-wallet/src/features/passkey/useRecoveryFlow.test.ts115 act(() => result.current.setEmail('user@example.com'))CODE
LOW…ed-wallet/src/features/passkey/useRecoveryFlow.test.ts121 expect(privy.sendEmailCode).toHaveBeenCalledWith('user@example.com')CODE
LOW…ed-wallet/src/features/passkey/useRecoveryFlow.test.ts142 act(() => result.current.setEmail('user@example.com'))CODE
LOW…ed-wallet/src/features/passkey/useRecoveryFlow.test.ts181 act(() => result.current.setEmail('user@example.com'))CODE
LOW…ed-wallet/src/features/passkey/useRecoveryFlow.test.ts223 act(() => result.current.setEmail('user@example.com'))CODE
LOW…ed-wallet/src/features/passkey/useRecoveryFlow.test.ts254 act(() => result.current.setEmail('user@example.com'))CODE
LOW…ed-wallet/src/features/passkey/useRecoveryFlow.test.ts310 oauthReturn: { pending: false, provider: 'google', providerEmail: 'user@example.com' },CODE
LOW…ed-wallet/src/features/passkey/useRecoveryFlow.test.ts342 oauthReturn: { pending: false, provider: 'google', providerEmail: 'user@example.com' },CODE
LOW…ed-wallet/src/features/passkey/useRecoveryFlow.test.ts375 oauthReturn: { pending: false, provider: 'google', providerEmail: 'user@example.com' },CODE
LOW…ed-wallet/src/features/passkey/useRecoveryFlow.test.ts418 act(() => result.current.setEmail('user@example.com'))CODE
LOW…ed-wallet/src/features/passkey/useRecoveryFlow.test.ts491 act(() => result.current.setEmail('user@example.com'))CODE
LOW…ed-wallet/src/features/passkey/useRecoveryFlow.test.ts536 act(() => result.current.setEmail('user@example.com'))CODE
LOW…ed-wallet/src/features/passkey/useRecoveryFlow.test.ts579 act(() => result.current.setEmail('user@example.com'))CODE
LOW…src/features/passkey/checkRecoveryAvailability.test.ts13 const identifier = 'user@example.com'CODE
LOW…ded-wallet/src/features/passkey/recoveryRotate.test.ts36 email: 'user@example.com',CODE
LOW…ded-wallet/src/features/passkey/recoveryRotate.test.ts67 expect.objectContaining({ pin: '4321', email: 'user@example.com', rotate: true, retainPrivateKey: true }),CODE
LOW…ded-wallet/src/features/passkey/recoveryRotate.test.ts99 authMethodIdentifier: 'user@example.com',CODE
LOW…embedded-wallet/src/features/passkey/pinCrypto.test.ts38 const hashLower = hashAuthMethodId('user@example.com')CODE
LOW…tionSignerService/transactionSignerServiceImpl.test.ts202 name: 'John Doe',CODE
LOW…src/components/dappRequests/types/Permit2Types.test.ts12const TYPE_DEF = [{ name: 'placeholder', type: 'address' }]CODE
LOW…s/embeddedWallet/createEmbeddedWalletApiClient.test.ts45 await client.fetchSetupRecovery(params, 'fake-token')CODE
LOW…s/embeddedWallet/createEmbeddedWalletApiClient.test.ts48 headers: { Authorization: 'Bearer fake-token' },CODE
LOW…s/embeddedWallet/createEmbeddedWalletApiClient.test.ts59 await client.fetchOprfEvaluate({ blindedElement: 'blinded', authMethodId: 'amid' }, 'fake-token')CODE
LOW…s/embeddedWallet/createEmbeddedWalletApiClient.test.ts63 { headers: { Authorization: 'Bearer fake-token' } },CODE
LOW…s/embeddedWallet/createEmbeddedWalletApiClient.test.ts83 await client.fetchCheckRecoveryAvailability({ authMethodId: 'amid' }, 'fake-token')CODE
LOW…s/embeddedWallet/createEmbeddedWalletApiClient.test.ts87 { headers: { Authorization: 'Bearer fake-token' } },CODE
LOW…s/embeddedWallet/createEmbeddedWalletApiClient.test.ts107 await client.fetchGetRecoveryConfig({ authMethodId: 'amid' }, 'fake-token')CODE
LOW…s/embeddedWallet/createEmbeddedWalletApiClient.test.ts111 { headers: { Authorization: 'Bearer fake-token' } },CODE
LOW…s/embeddedWallet/createEmbeddedWalletApiClient.test.ts131 await client.fetchReportDecryptionResult({ success: false, authMethodId: 'amid' }, 'fake-token')CODE
LOW…s/embeddedWallet/createEmbeddedWalletApiClient.test.ts135 { headers: { Authorization: 'Bearer fake-token' } },CODE
LOW…s/embeddedWallet/createEmbeddedWalletApiClient.test.ts163 await client.fetchExecuteRecovery(params, 'fake-token')CODE
LOW…s/embeddedWallet/createEmbeddedWalletApiClient.test.ts166 headers: { Authorization: 'Bearer fake-token' },CODE
LOW…s/embeddedWallet/createEmbeddedWalletApiClient.test.ts183 await client.fetchExportSeedPhraseWithRecovery(params, 'fake-token')CODE
LOW…s/embeddedWallet/createEmbeddedWalletApiClient.test.ts186 headers: { Authorization: 'Bearer fake-token' },CODE
LOW…mponents/AccountDrawer/MiniPortfolio/Activity/hooks.ts87 id: 'placeholder',CODE
LOWapps/mobile/src/app/mobileMigrationTests.ts1335 const androidCloudBackupEmail = 'test@test.com'CODE
Synthetic Comment Markers3 hits · 15 pts
SeverityFileLineSnippetContext
HIGHpackages/uniswap/src/i18n/locales/source/en-US.json1351 "hook.description.generatedByAi": "Description generated by AI",CODE
HIGH…s/web/src/features/Liquidity/HookDetailsModal.test.tsx87 expect(screen.getByText('Description generated by AI')).toBeTruthy()CODE
HIGH…s/web/src/features/Liquidity/HookDetailsModal.test.tsx97 expect(screen.queryByText('Description generated by AI')).toBeNull()CODE
Redundant / Tautological Comments7 hits · 11 pts
SeverityFileLineSnippetContext
LOWlefthook.yml64 # Check if any staged TS/TSX files exist that might contain i18n stringsCOMMENT
LOWlefthook.yml73 # Check if the i18n source file was modifiedCOMMENT
LOW⚡scripts/check-runtime-versions.sh12# Check if running in Vercel environmentCOMMENT
LOWscripts/lint-composite-action-inputs.sh8 # Check if the file contains an 'inputs:' sectionCOMMENT
LOWscripts/lint-composite-action-inputs.sh10 # Check if the file contains a step that uses the validate-action-inputs.cjs scriptCOMMENT
LOW…ps/mobile/.maestro/scripts/performance/submit-local.sh15# Check if Datadog API key is setCOMMENT
LOW…ps/mobile/.maestro/scripts/performance/submit-local.sh27# Check if metrics file already exists (extracted by e2e:local:extract-metrics)COMMENT
Self-Referential Comments3 hits · 8 pts
SeverityFileLineSnippetContext
MEDIUMpackages/config-cli/src/lib/devEnv.test.ts5const HEADER = `# This file contains the minimal dev-env configs required to run this app.CODE
MEDIUM…s/Toucan/utils/quickLaunchProtectionDecoupling.test.ts15 * ## This file is NOT the guarantee — `AuctionHeader.test.tsx` isCOMMENT
MEDIUMapps/mobile/ios/sourcemaps-datadog.sh19# Create a temporary file for capturing output.COMMENT
Modern AI Meta-Vocabulary1 hit · 3 pts
SeverityFileLineSnippetContext
MEDIUMscripts/security-gate-check/security-gate-check.sh1139# Capped, because an unbounded file would push the diff out of the context window — the effectCOMMENT
Example Usage Blocks2 hits · 3 pts
SeverityFileLineSnippetContext
LOW…ckages/utilities/src/device/keyboard/useKeyDown.web.ts38// Example usage:COMMENT
LOWapps/mobile/scripts/runAndroidLocal.sh31# Usage:COMMENT
Deep Nesting2 hits · 2 pts
SeverityFileLineSnippetContext
LOWapps/mobile/scripts/populate_svgs.py29CODE
LOWapps/mobile/scripts/populate_svgs.py91CODE