🦄 Open source interfaces for the Uniswap protocol
This report presents the forensic synthetic code analysis of Uniswap/interface, a TypeScript project with 5,523 GitHub stars. SynthScan v2.0 examined 929,556 lines of code across 8209 source files, recording 3062 pattern matches distributed across 16 syntactic categories. The overall adjusted score of 4.0 places this repository in the Likely human-written band.
The scanner applied 160+ deterministic lexical heuristics, multi-line block detectors, abstract syntax tree depth profilers, and a cross-file Jaccard similarity matrix to construct a statistically normalised synthetic code estimate. All matches are individually weighted by severity coefficient and contextual multiplier before summation, and the resulting headline score is temporally discounted to account for the repository's development history relative to the commercial emergence of large language model coding tooling (November 2022 onward).
Longitudinal tracking requires multiple scan runs. Once this repository is re-scanned after new commits land, this chart will visualise how the synthetic code signal evolves over time — enabling you to detect whether AI authorship is growing, stabilising, or being actively corrected by human engineers.
Classifies detected patterns by their diagnostic confidence and structural impact. CRITICAL patterns (coefficient 10) represent definitive synthetic signatures — hallucinated imports, explicit LLM attribution metadata — virtually never produced by human authors. HIGH (5) indicates strong structural tells such as cross-file repetition or cross-linguistic idioms. MEDIUM (2) covers recognisable conversational padding and AI-specific vocabulary. LOW (1) captures subtle indicators like tautological comments and generic boilerplate that require density to carry independent signal.
This horizontal bar chart decomposes the repository's raw synthetic code score by top-level directory, allowing you to pinpoint precisely which modules or components carry the highest AI authorship density. Directories with disproportionately high scores relative to their size warrant targeted manual review: concentrated AI signatures often trace back to mass-generated configuration layers, auto-ported test suites, LLM-scaffolded boilerplate classes, or entire subsystems authored under heavy copilot assistance. Use this view to prioritise your human code-review effort.
The scanner identified 3062 distinct pattern matches across 16 syntactic categories. Each entry below represents a discrete location in the source code where the engine recorded a statistically significant AI authorship indicator. 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 diagnostic confidence level (CRITICAL / HIGH / MEDIUM / LOW). The Context column identifies whether the match occurred inside executable code, an inline comment, or a string literal — comment-context matches receive a ×1.5 weight because LLMs systematically over-annotate. The ⚡ bolt icon marks clustered matches: three or more patterns within a 10-line window, each receiving an additional ×1.5 density multiplier as dense clusters constitute far stronger evidence of synthetic authorship than isolated hits.
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| LOW | oxlint.config.ts | 270 | export function restrictedImportPatternsForUniversePackage(packageName: string) { | CODE |
| LOW | dangerfile.ts | 56 | function checkGeneralizedHookFiles() { | CODE |
| LOW | config/oxlint-plugins/universe-custom.js | 63 | function getNearestJSXAncestorName(node) { | CODE |
| LOW | config/oxlint-plugins/universe-custom.js | 216 | function isPercentageTemplateLiteral(node) { | CODE |
| LOW | config/oxlint-plugins/universe-custom.js | 956 | function getPhysicalFilenameForBoundary(context) { | CODE |
| LOW | config/oxlint-plugins/universe-custom.js | 968 | function moduleImportSuffixForBoundary(source, boundary) { | CODE |
| LOW | config/oxlint-plugins/universe-custom.js | 1167 | function isDirectViemEthersAllowlisted(physicalPath) { | CODE |
| LOW | scripts/check-podfile-lock.ts | 138 | function readPackageDependencyNames(packageJsonPath: string): string[] { | CODE |
| LOW | packages/uniswap/src/contexts/UniswapContext.tsx | 249 | export function useSignDelegationAuthorization(): SignDelegationAuthorizationFn | undefined { | CODE |
| LOW | …ages/uniswap/src/extension/useIsChromeWindowFocused.ts | 41 | export function useIsChromeWindowFocusedWithTimeout(timeoutInMs: number): boolean { | CODE |
| LOW | …nces/implementations/createDialogPreferencesService.ts | 16 | export function createDialogPreferencesService(ctx: DialogPreferencesServiceContext): DialogPreferencesService { | CODE |
| LOW | packages/uniswap/src/constants/addresses.ts | 38 | export function getWrappedNativeAddressWithThrow(chainId: UniverseChainId): string { | CODE |
| LOW | packages/uniswap/src/features/settings/constants.ts | 26 | export function deviceAccessTimeoutToMinutes(timeout: DeviceAccessTimeout): number | undefined { | CODE |
| LOW | packages/uniswap/src/features/settings/hooks.ts | 12 | export function useHideSmallBalancesSetting(): boolean { | CODE |
| LOW | packages/uniswap/src/features/settings/hooks.ts | 22 | export function useHideReportedActivitySetting(): boolean { | CODE |
| LOW | packages/uniswap/src/features/settings/hooks.ts | 37 | export function useTestnetModeBannerHeight(): number { | CODE |
| LOW | …/settings/balances/PortfolioBalanceSettingsContent.tsx | 18 | export function PortfolioBalanceSettingsContent(): JSX.Element { | CODE |
| LOW | packages/uniswap/src/features/reporting/reports.ts | 113 | export function submitTokenWarningDataReport({ | CODE |
| LOW | packages/uniswap/src/features/reporting/reports.ts | 220 | export function submitPortfolioDataReport({ | CODE |
| LOW | …/features/prices/isRemotePriceServiceSupportedChain.ts | 8 | export function isRemotePriceServiceSupportedChain(chainId: number): boolean { | CODE |
| LOW | …niswap/src/features/gas/convertGasFeeToDisplayValue.ts | 15 | export function convertGasFeeToDisplayValue({ | CODE |
| LOW | packages/uniswap/src/features/gas/utils.ts | 62 | export function applyNativeTokenPercentageBuffer( | CODE |
| LOW | packages/uniswap/src/features/gas/utils.ts | 93 | function getNativeCurrencyTotalSpend({ | CODE |
| LOW | packages/uniswap/src/features/gas/utils.ts | 115 | export function hasSufficientFundsIncludingGas(params: { | CODE |
| LOW | packages/uniswap/src/features/gas/utils.ts | 253 | export async function estimateGasWithClientSideProvider({ | CODE |
| LOW | packages/uniswap/src/features/gas/shiftedGasToken.ts | 41 | export function hasSufficientFundsIncludingShiftedGasToken({ | CODE |
| LOW | packages/uniswap/src/features/gas/shiftedGasToken.ts | 83 | export function convertShiftedGasFeeForDisplay(gasFeeRaw: string, decimalShift: bigint): string { | CODE |
| LOW | packages/uniswap/src/features/gas/hooks.ts | 104 | export function useUSDCurrencyAmountOfGasFee( | CODE |
| LOW | packages/uniswap/src/features/gas/hooks.ts | 144 | export function useFormattedUniswapXGasFeeInfo( | CODE |
| LOW | packages/uniswap/src/features/gas/hooks.ts | 178 | export function useGasFeeHighRelativeToValue( | CODE |
| LOW | packages/uniswap/src/features/gas/utils/cancel.ts | 33 | export function createClassicCancelRequest(transaction: TransactionDetails): providers.TransactionRequest { | CODE |
| LOW | packages/uniswap/src/features/gas/utils/cancel.ts | 45 | export function calculateCancellationGasFee(params: { | CODE |
| LOW | packages/uniswap/src/features/gas/utils/cancel.ts | 77 | export function calculateClassicCancellationGas( | CODE |
| LOW | packages/uniswap/src/features/gas/utils/cancel.ts | 149 | export function calculateUniswapXCancellationGas( | CODE |
| LOW | packages/uniswap/src/features/gas/utils/cancel.ts | 168 | function getCancellationGasFeeDisplayValue({ | CODE |
| LOW | …eatures/gas/components/CrosschainNotSupportedModal.tsx | 26 | export function CrosschainNotSupportedModal({ isOpen, onClose }: CrosschainNotSupportedModalProps): JSX.Element { | CODE |
| LOW | …omponents/NetworkCostEditor/useRecommendedGasFields.ts | 38 | export function getRecommendedGasFieldsFromQuoteGas(args: { | CODE |
| LOW | …nents/NetworkCostEditor/useGasOverridesWarningState.ts | 37 | export function useGasOverridesWarningState({ | CODE |
| LOW | …ts/NetworkCostEditor/buildGasServiceUrgencyOverride.ts | 25 | export function buildGasServiceUrgencyOverride({ | CODE |
| LOW | …ap/src/features/gas/hooks/useCancellationGasFeeInfo.ts | 37 | export function useCancellationGasFeeInfo( | CODE |
| LOW | …/src/features/gas/hooks/useIsCustomGasFlowAvailable.ts | 25 | export function useIsCustomGasFlowAvailable(): boolean { | CODE |
| LOW | …ap/src/features/gas/hooks/useTradingApiGasOverrides.ts | 27 | export function useTradingApiGasOverrides(args: { | CODE |
| LOW | …p/src/features/gas/hooks/useEnableCustomGasFeeEntry.ts | 6 | export function useEnableCustomGasFeeEntry(): boolean { | CODE |
| LOW | …p/src/features/gas/hooks/useEnableCustomGasFeeEntry.ts | 10 | export function useSetEnableCustomGasFeeEntry(): (enabled: boolean) => void { | CODE |
| LOW | …es/uniswap/src/features/gas/hooks/useMaxAmountSpend.ts | 100 | function convertGasFeeToGasTokenUnits({ | CODE |
| LOW | …es/uniswap/src/features/gas/hooks/useMaxAmountSpend.ts | 152 | export function useLowBalanceWarningGasPercentage(): number { | CODE |
| LOW | …rc/features/gas/hooks/usePlanCancellationGasFeeInfo.ts | 28 | export function usePlanCancellationGasFeeInfo( | CODE |
| LOW | packages/uniswap/src/features/dataApi/searchTokens.ts | 65 | export function useMultichainSearchTokens({ | CODE |
| LOW | packages/uniswap/src/features/dataApi/searchTokens.ts | 89 | export function filterMultichainResultsToChain( | CODE |
| LOW | packages/uniswap/src/features/dataApi/searchAuctions.ts | 46 | function getAuctionAddressFromAuctionId(auctionId: string): string | undefined { | CODE |
| LOW | packages/uniswap/src/features/dataApi/searchAuctions.ts | 87 | async function fetchOverrideMatchedAuctions( | CODE |
| LOW | packages/uniswap/src/features/dataApi/searchAuctions.ts | 112 | function getAuctionOptionTokenMetadata({ | CODE |
| LOW | packages/uniswap/src/features/dataApi/searchAuctions.ts | 134 | export function searchAuctionToAuctionOption({ | CODE |
| LOW | packages/uniswap/src/features/dataApi/searchAuctions.ts | 164 | export function auctionWithStatsToAuctionOption({ | CODE |
| LOW | …tures/dataApi/tokenDetails/useTokenPriceHistoryRest.ts | 62 | function selectPriceHistoryEntries( | CODE |
| LOW | …c/features/dataApi/tokenDetails/useTokenDetailsData.ts | 235 | function selectMultichainMarketStatsData( | CODE |
| LOW | …tures/dataApi/tokenDetails/legacyMarketDataAdapters.ts | 41 | export function adaptLegacyProjectMarketData( | CODE |
| LOW | …ap/src/features/dataApi/tokenProjects/tokenProjects.ts | 19 | export function useTokenProjectsByCurrencyId( | CODE |
| LOW | …ap/src/features/dataApi/tokenProjects/tokenProjects.ts | 56 | function formatTokenProjectsByCurrencyId( | CODE |
| LOW | …ap/src/features/dataApi/tokenProjects/tokenProjects.ts | 80 | function hasCurrencyInfoForCurrencyId(currencyInfos: CurrencyInfo[], currencyId: CurrencyId): boolean { | CODE |
| 2580 more matches not shown… | ||||
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| MEDIUM⚡ | oxlint.config.ts | 636 | // ═══════════════════════════════════════════════════════════════════ | COMMENT |
| MEDIUM⚡ | oxlint.config.ts | 638 | // ═══════════════════════════════════════════════════════════════════ | COMMENT |
| MEDIUM⚡ | oxlint.config.ts | 640 | // ── Migration files: relax type rules ───────────────────────────── | COMMENT |
| MEDIUM⚡ | oxlint.config.ts | 678 | // ── Storybook: allow alerts ─────────────────────────────────────── | COMMENT |
| MEDIUM⚡ | oxlint.config.ts | 685 | // ── JavaScript files: allow console ─────────────────────────────── | COMMENT |
| MEDIUM⚡ | oxlint.config.ts | 693 | // ═══════════════════════════════════════════════════════════════════ | COMMENT |
| MEDIUM⚡ | oxlint.config.ts | 695 | // ═══════════════════════════════════════════════════════════════════ | COMMENT |
| MEDIUM⚡ | oxlint.config.ts | 697 | // ── apps/cli, config-cli ────────────────────────────────────────────────────── | COMMENT |
| MEDIUM | oxlint.config.ts | 86 | // ── Shared no-restricted-imports definitions ────────────────────────── | COMMENT |
| MEDIUM | oxlint.config.ts | 280 | // ── Shared no-restricted-syntax selectors ───────────────────────────── | COMMENT |
| MEDIUM | oxlint.config.ts | 338 | // ── Shared override fragments ──────────────────────────────────────── | COMMENT |
| MEDIUM | oxlint.config.ts | 375 | // ── complexity ────────────────────────────────────────────────────── | COMMENT |
| MEDIUM | oxlint.config.ts | 390 | // ── correctness ──────────────────────────────────────────────────── | COMMENT |
| MEDIUM | oxlint.config.ts | 439 | // ── security ─────────────────────────────────────────────────────── | COMMENT |
| MEDIUM | oxlint.config.ts | 446 | // ── style ────────────────────────────────────────────────────────── | COMMENT |
| MEDIUM | oxlint.config.ts | 529 | // ── additional rules ─────────────────────────────────────────────── | COMMENT |
| MEDIUM | oxlint.config.ts | 547 | // ── suspicious ───────────────────────────────────────────────────── | COMMENT |
| MEDIUM | oxlint.config.ts | 591 | // ── jsPlugin rules (excluded when ENABLE_FAST_LINT=true) ────────── | COMMENT |
| MEDIUM | oxlint.config.ts | 651 | // ── Saga files ────────────────────── | COMMENT |
| MEDIUM | oxlint.config.ts | 662 | // ── Logger, scripts, devtools: allow console ────────────────────── | COMMENT |
| MEDIUM | oxlint.config.ts | 738 | // ── apps/dev-portal ─────────────────────────────────────────────── | COMMENT |
| MEDIUM | oxlint.config.ts | 767 | // ── apps/extension ──────────────────────────────────────────────── | COMMENT |
| MEDIUM | oxlint.config.ts | 867 | // ── apps/mission-control ────────────────────────────────────────── | COMMENT |
| MEDIUM | oxlint.config.ts | 913 | // ── apps/mobile ─────────────────────────────────────────────────── | COMMENT |
| MEDIUM | oxlint.config.ts | 984 | // ── apps/web ────────────────────────────────────────────────────── | COMMENT |
| MEDIUM | oxlint.config.ts | 1169 | // ── labs ────────────────────────────────────────────────────────── | COMMENT |
| MEDIUM | oxlint.config.ts | 1186 | // ── labs/workbench ──────────────────────────────────────────────── | COMMENT |
| MEDIUM | oxlint.config.ts | 1218 | // ── packages/uniswap ────────────────────────────────────────────── | COMMENT |
| MEDIUM | oxlint.config.ts | 1241 | // ── packages/wallet ─────────────────────────────────────────────── | COMMENT |
| MEDIUM | oxlint.config.ts | 1264 | // ── packages/ui ─────────────────────────────────────────────────── | COMMENT |
| MEDIUM | oxlint.config.ts | 1302 | // ── packages/utilities ──────────────────────────────────────────── | COMMENT |
| MEDIUM | oxlint.config.ts | 1317 | // ── packages/datadog-cloud ──────────────────────────────────────── | COMMENT |
| MEDIUM | oxlint.config.ts | 1326 | // ── packages/prices ─────────────────────────────────────────────── | COMMENT |
| MEDIUM | oxlint.config.ts | 1344 | // ── @universe/* packages with standard pattern ──────────────────── | COMMENT |
| MEDIUM | oxlint.config.ts | 1367 | // ═══════════════════════════════════════════════════════════════════ | COMMENT |
| MEDIUM | oxlint.config.ts | 1369 | // ═══════════════════════════════════════════════════════════════════ | COMMENT |
| MEDIUM | oxlint.config.ts | 1420 | // ═══════════════════════════════════════════════════════════════════ | COMMENT |
| MEDIUM | oxlint.config.ts | 1423 | // ═══════════════════════════════════════════════════════════════════ | COMMENT |
| MEDIUM | config/oxlint-plugins/universe-custom.js | 13 | // ── Utilities ────────────────────────────────────────────────────────── | COMMENT |
| MEDIUM | config/oxlint-plugins/universe-custom.js | 34 | // ── no-unwrapped-t ───────────────────────────────────────────────────── | COMMENT |
| MEDIUM | config/oxlint-plugins/universe-custom.js | 107 | // ── custom-map-sort ──────────────────────────────────────────────────── | COMMENT |
| MEDIUM | config/oxlint-plugins/universe-custom.js | 155 | // ── no-hex-string-casting ────────────────────────────────────────────── | COMMENT |
| MEDIUM | config/oxlint-plugins/universe-custom.js | 198 | // ── no-transform-percentage-strings ──────────────────────────────────── | COMMENT |
| MEDIUM | config/oxlint-plugins/universe-custom.js | 335 | // ── enforce-query-options-result ──────────────────────────────────────── | COMMENT |
| MEDIUM | config/oxlint-plugins/universe-custom.js | 455 | // ── no-redux-modals ──────────────────────────────────────────────────── | COMMENT |
| MEDIUM | config/oxlint-plugins/universe-custom.js | 502 | // ── no-relative-import-paths ─────────────────────────────────────────── | COMMENT |
| MEDIUM | config/oxlint-plugins/universe-custom.js | 582 | // ── no-nested-component-definitions ────────────────────────────────── | COMMENT |
| MEDIUM | config/oxlint-plugins/universe-custom.js | 716 | // ── jsx-prop-order ────────────────────────────────────────────────────── | COMMENT |
| MEDIUM | config/oxlint-plugins/universe-custom.js | 821 | // ── enum-member-naming ───────────────────────────────────────────────── | COMMENT |
| MEDIUM | config/oxlint-plugins/universe-custom.js | 848 | // ── no-tolowercase-address-currencyid ────────────────────────────────── | COMMENT |
| MEDIUM | config/oxlint-plugins/universe-custom.js | 903 | // ── no-platform-gate-in-chain-flags ────────────────────────────────── | COMMENT |
| MEDIUM | config/oxlint-plugins/universe-custom.js | 947 | // ── import-boundary (JSON) ───────────────────────────────────────────── | COMMENT |
| MEDIUM | config/oxlint-plugins/universe-custom.js | 1096 | // ── no-direct-viem-ethers-import ─────────────────────────────────────── | COMMENT |
| MEDIUM | config/oxlint-plugins/universe-custom.js | 1221 | // ── Plugin export ────────────────────────────────────────────────────── | COMMENT |
| MEDIUM⚡ | scripts/check-runtime-versions.sh | 18 | # ============================================ | COMMENT |
| MEDIUM⚡ | scripts/check-runtime-versions.sh | 20 | # ============================================ | COMMENT |
| MEDIUM | scripts/check-runtime-versions.sh | 76 | # ============================================ | COMMENT |
| MEDIUM | scripts/check-runtime-versions.sh | 78 | # ============================================ | COMMENT |
| MEDIUM | …p/src/features/transactions/swap/plan/planSaga.test.ts | 20 | // ── Test constants ────────────────────────────────────────────────────── | COMMENT |
| MEDIUM | …p/src/features/transactions/swap/plan/planSaga.test.ts | 35 | // ── Mock tracking ─────────────────────────────────────────────────────── | COMMENT |
| 48 more matches not shown… | ||||
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| LOW | .agents/skills/argent-react-native-profiler/SKILL.md | 79 | ### Step 1: Start profiling | COMMENT |
| LOW⚡ | .agents/skills/argent-react-native-profiler/SKILL.md | 93 | ### Step 2: Stop and collect | COMMENT |
| LOW⚡ | .agents/skills/argent-react-native-profiler/SKILL.md | 98 | ### Step 3: Analyze | COMMENT |
| LOW⚡ | .agents/skills/argent-react-native-profiler/SKILL.md | 108 | ### Step 4: Assess results | COMMENT |
| LOW⚡ | .agents/skills/argent-react-native-profiler/SKILL.md | 112 | ### Step 5: Present findings and ask about next steps | COMMENT |
| LOW⚡ | .agents/skills/argent-react-native-profiler/SKILL.md | 116 | ### Step 6: Drill-down investigation (iterative) | COMMENT |
| LOW | .agents/skills/argent-react-native-profiler/SKILL.md | 129 | ### Step 7: Reload a previous session | COMMENT |
| LOW | .agents/skills/argent-react-native-profiler/SKILL.md | 140 | ### Step 8: Apply fix and re-profile | COMMENT |
| LOW | .agents/skills/argent-native-profiler/SKILL.md | 43 | ### Step 0: Ensure the target app is running | COMMENT |
| LOW⚡ | .agents/skills/argent-native-profiler/SKILL.md | 54 | ### Step 1: Start recording | COMMENT |
| LOW⚡ | .agents/skills/argent-native-profiler/SKILL.md | 59 | ### Step 2: Stop and export | COMMENT |
| LOW⚡ | .agents/skills/argent-native-profiler/SKILL.md | 63 | ### Step 3: Analyze | COMMENT |
| LOW⚡ | .agents/skills/argent-native-profiler/SKILL.md | 67 | ### Step 4: Present findings and ask about next steps | COMMENT |
| LOW⚡ | .agents/skills/argent-native-profiler/SKILL.md | 71 | ### Step 5: Drill-down investigation | COMMENT |
| LOW⚡ | .agents/skills/argent-native-profiler/SKILL.md | 75 | ### Step 6: Reload previous sessions | COMMENT |
| LOW⚡ | …iswap/src/features/passkey/embeddedWalletDelegation.ts | 174 | // Step 1: Sign the EIP-7702 authorization | COMMENT |
| LOW⚡ | …iswap/src/features/passkey/embeddedWalletDelegation.ts | 182 | // Step 2: Sign the full EIP-7702 transaction (backend handles type-4 signing + serialization) | COMMENT |
| LOW | …iswap/src/features/passkey/embeddedWalletDelegation.ts | 247 | // Step 3: Submit the fully signed EIP-7702 transaction | COMMENT |
| LOW⚡ | …ures/favorites/hooks/useToggleFavoriteCallback.test.ts | 141 | // Step 1: simulate the context-menu flow on Arbitrum USDC — selector says "not favorited", | COMMENT |
| LOW⚡ | …ures/favorites/hooks/useToggleFavoriteCallback.test.ts | 151 | // Step 2: given the resulting stored state, the selector must report favorited regardless of | COMMENT |
| LOW⚡ | …tions/swap/hooks/useTrade/createGetQuoteRequestArgs.ts | 52 | // Step 1: Check skip flag | COMMENT |
| LOW⚡ | …tions/swap/hooks/useTrade/createGetQuoteRequestArgs.ts | 57 | // Step 2: Parse the input | COMMENT |
| LOW⚡ | …tions/swap/hooks/useTrade/createGetQuoteRequestArgs.ts | 60 | // Step 3: Validate the data structure | COMMENT |
| LOW⚡ | …tions/swap/hooks/useTrade/createGetQuoteRequestArgs.ts | 67 | // Step 4: Build the quote request from validated input | COMMENT |
| LOW⚡ | …tions/swap/hooks/useTrade/createGetQuoteRequestArgs.ts | 70 | // Step 5: Flatten the result to match the expected return type | COMMENT |
| LOW⚡ | …sactions/swap/services/tradeService/evmTradeService.ts | 83 | // Step 1: Prepare trade input | COMMENT |
| LOW⚡ | …sactions/swap/services/tradeService/evmTradeService.ts | 86 | // Step 2: Early exit if input is null | COMMENT |
| LOW⚡ | …sactions/swap/services/tradeService/evmTradeService.ts | 91 | // Step 3: Build quote request with all params | COMMENT |
| LOW⚡ | …sactions/swap/services/tradeService/evmTradeService.ts | 95 | // Step 4: Fetch quote from API | COMMENT |
| LOW⚡ | …sactions/swap/services/tradeService/evmTradeService.ts | 100 | // Step 5: Transform quote to trade | COMMENT |
| LOW⚡ | …sactions/swap/services/tradeService/evmTradeService.ts | 124 | // Step 1: validate indicative quote request | COMMENT |
| LOW⚡ | …sactions/swap/services/tradeService/evmTradeService.ts | 130 | // Step 2: build indicative quote request | COMMENT |
| LOW⚡ | …sactions/swap/services/tradeService/evmTradeService.ts | 134 | // Step 3: Fetch indicative quote from API | COMMENT |
| LOW⚡ | …sactions/swap/services/tradeService/evmTradeService.ts | 137 | // Step 4: Validate and transform to IndicativeTrade | COMMENT |
| LOW⚡ | …sactions/swap/services/tradeService/evmTradeService.ts | 172 | // Step 1: Early exit if skipped | COMMENT |
| LOW⚡ | …sactions/swap/services/tradeService/evmTradeService.ts | 177 | // Step 2: Parse input into structured format | COMMENT |
| LOW⚡ | …sactions/swap/services/tradeService/evmTradeService.ts | 180 | // Step 3: Validate all required fields are present | COMMENT |
| LOW⚡ | …sactions/swap/services/tradeService/svmTradeService.ts | 53 | // Step 1: Prepare trade input | COMMENT |
| LOW⚡ | …sactions/swap/services/tradeService/svmTradeService.ts | 57 | // Step 2: Early exit if quote args are null | COMMENT |
| LOW⚡ | …sactions/swap/services/tradeService/svmTradeService.ts | 64 | // Step 3: Build quote request with all params | COMMENT |
| LOW⚡ | …sactions/swap/services/tradeService/svmTradeService.ts | 67 | // Step 4: Fetch quote from API | COMMENT |
| LOW⚡ | …sactions/swap/services/tradeService/svmTradeService.ts | 70 | // Step 5: Transform quote to trade | COMMENT |
| LOW⚡ | packages/config-cli/src/commands/push.ts | 22 | // Step 1: read + parse the local .env file. readDotenvFile treats a missing file | COMMENT |
| LOW⚡ | packages/config-cli/src/commands/push.ts | 31 | // Step 2: build the config client (handles auth + dev overrides). | COMMENT |
| LOW⚡ | packages/config-cli/src/commands/push.ts | 35 | // Step 3: warn the user about migration-only intent and confirm. | COMMENT |
| LOW | packages/config-cli/src/commands/push.ts | 48 | // Step 4: push each entry. Each call is independent on the backend (no transaction) | COMMENT |
| LOW⚡ | …s/sessions/src/challenge-solvers/hashcash/core.test.ts | 275 | // Step 1: Find proof | COMMENT |
| LOW⚡ | …s/sessions/src/challenge-solvers/hashcash/core.test.ts | 280 | // Step 2: Verify the proof is valid | COMMENT |
| LOW⚡ | …s/sessions/src/challenge-solvers/hashcash/core.test.ts | 284 | // Step 3: Check the hash meets difficulty requirement | COMMENT |
| LOW⚡ | …s/sessions/src/challenge-solvers/hashcash/core.test.ts | 287 | // Step 4: Format for submission | COMMENT |
| LOW⚡ | …/services/TransactionService/transactionServiceImpl.ts | 465 | // Step 1: If we need to request Uniswap gas sponsorship, fill paymaster fields here. | COMMENT |
| LOW⚡ | …/services/TransactionService/transactionServiceImpl.ts | 482 | // Step 2: Sign (EIP-712 + Calibur encoding). The 7702 auth is bundled into the 4337 | COMMENT |
| LOW⚡ | …/services/TransactionService/transactionServiceImpl.ts | 489 | // Step 3: Submit to bundler via UniRPC | COMMENT |
| LOW | …ervices/UserOpSignerService/userOpSignerServiceImpl.ts | 41 | // Step 1: EIP-712 typed data signing over the PackedUserOperation. | COMMENT |
| LOW⚡ | …ervices/UserOpSignerService/userOpSignerServiceImpl.ts | 53 | // Step 2: Calibur signature encoding | COMMENT |
| LOW⚡ | …ervices/UserOpSignerService/userOpSignerServiceImpl.ts | 56 | // Step 3: the 7702 auth is bundled into the 4337 request up front (round-trips on | COMMENT |
| LOW⚡ | …ervices/UserOpSignerService/userOpSignerServiceImpl.ts | 65 | // Step 4: Rebuild the final signed UserOperation (preserving any round-tripped eip7702Auth). | COMMENT |
| LOW | packages/notifications/README.md | 174 | // Step 1: User sees welcome banner | COMMENT |
| LOW | packages/notifications/README.md | 188 | // Step 2: Detailed modal (stored as "chained" until triggered) | COMMENT |
| LOW⚡ | …sor/implementations/createBaseNotificationProcessor.ts | 47 | // Step 1: Build dependency graph and identify roots using topological analysis | COMMENT |
| 30 more matches not shown… | ||||
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| LOW | packages/uniswap/src/contexts/UniswapContext.tsx | 71 | // some wallets don't support UniswapX, so we need to check if it's supported (mismatch account) | COMMENT |
| LOW⚡ | …iswap/src/features/passkey/embeddedWalletDelegation.ts | 174 | // Step 1: Sign the EIP-7702 authorization | COMMENT |
| LOW⚡ | …iswap/src/features/passkey/embeddedWalletDelegation.ts | 182 | // Step 2: Sign the full EIP-7702 transaction (backend handles type-4 signing + serialization) | COMMENT |
| LOW | …iswap/src/features/passkey/embeddedWalletDelegation.ts | 247 | // Step 3: Submit the fully signed EIP-7702 transaction | COMMENT |
| LOW⚡ | …ures/favorites/hooks/useToggleFavoriteCallback.test.ts | 141 | // Step 1: simulate the context-menu flow on Arbitrum USDC — selector says "not favorited", | COMMENT |
| LOW⚡ | …ures/favorites/hooks/useToggleFavoriteCallback.test.ts | 151 | // Step 2: given the resulting stored state, the selector must report favorited regardless of | COMMENT |
| LOW⚡ | …tions/swap/hooks/useTrade/createGetQuoteRequestArgs.ts | 52 | // Step 1: Check skip flag | COMMENT |
| LOW⚡ | …tions/swap/hooks/useTrade/createGetQuoteRequestArgs.ts | 57 | // Step 2: Parse the input | COMMENT |
| LOW⚡ | …tions/swap/hooks/useTrade/createGetQuoteRequestArgs.ts | 60 | // Step 3: Validate the data structure | COMMENT |
| LOW⚡ | …tions/swap/hooks/useTrade/createGetQuoteRequestArgs.ts | 67 | // Step 4: Build the quote request from validated input | COMMENT |
| LOW⚡ | …tions/swap/hooks/useTrade/createGetQuoteRequestArgs.ts | 70 | // Step 5: Flatten the result to match the expected return type | COMMENT |
| LOW⚡ | …sactions/swap/services/tradeService/evmTradeService.ts | 83 | // Step 1: Prepare trade input | COMMENT |
| LOW⚡ | …sactions/swap/services/tradeService/evmTradeService.ts | 86 | // Step 2: Early exit if input is null | COMMENT |
| LOW⚡ | …sactions/swap/services/tradeService/evmTradeService.ts | 91 | // Step 3: Build quote request with all params | COMMENT |
| LOW⚡ | …sactions/swap/services/tradeService/evmTradeService.ts | 95 | // Step 4: Fetch quote from API | COMMENT |
| LOW⚡ | …sactions/swap/services/tradeService/evmTradeService.ts | 100 | // Step 5: Transform quote to trade | COMMENT |
| LOW⚡ | …sactions/swap/services/tradeService/evmTradeService.ts | 124 | // Step 1: validate indicative quote request | COMMENT |
| LOW⚡ | …sactions/swap/services/tradeService/evmTradeService.ts | 130 | // Step 2: build indicative quote request | COMMENT |
| LOW⚡ | …sactions/swap/services/tradeService/evmTradeService.ts | 134 | // Step 3: Fetch indicative quote from API | COMMENT |
| LOW⚡ | …sactions/swap/services/tradeService/evmTradeService.ts | 137 | // Step 4: Validate and transform to IndicativeTrade | COMMENT |
| LOW⚡ | …sactions/swap/services/tradeService/evmTradeService.ts | 172 | // Step 1: Early exit if skipped | COMMENT |
| LOW⚡ | …sactions/swap/services/tradeService/evmTradeService.ts | 177 | // Step 2: Parse input into structured format | COMMENT |
| LOW⚡ | …sactions/swap/services/tradeService/evmTradeService.ts | 180 | // Step 3: Validate all required fields are present | COMMENT |
| LOW⚡ | …sactions/swap/services/tradeService/svmTradeService.ts | 53 | // Step 1: Prepare trade input | COMMENT |
| LOW⚡ | …sactions/swap/services/tradeService/svmTradeService.ts | 57 | // Step 2: Early exit if quote args are null | COMMENT |
| LOW⚡ | …sactions/swap/services/tradeService/svmTradeService.ts | 64 | // Step 3: Build quote request with all params | COMMENT |
| LOW⚡ | …sactions/swap/services/tradeService/svmTradeService.ts | 67 | // Step 4: Fetch quote from API | COMMENT |
| LOW⚡ | …sactions/swap/services/tradeService/svmTradeService.ts | 70 | // Step 5: Transform quote to trade | COMMENT |
| LOW | packages/ui/src/components/buttons/Button/Button.tsx | 40 | // We need to check if the children is a string, a Trans tag, or a custom component that likely renders a Trans tag, i | COMMENT |
| LOW⚡ | packages/config-cli/src/commands/push.ts | 22 | // Step 1: read + parse the local .env file. readDotenvFile treats a missing file | COMMENT |
| LOW⚡ | packages/config-cli/src/commands/push.ts | 31 | // Step 2: build the config client (handles auth + dev overrides). | COMMENT |
| LOW⚡ | packages/config-cli/src/commands/push.ts | 35 | // Step 3: warn the user about migration-only intent and confirm. | COMMENT |
| LOW | packages/config-cli/src/commands/push.ts | 48 | // Step 4: push each entry. Each call is independent on the backend (no transaction) | COMMENT |
| LOW⚡ | …s/sessions/src/challenge-solvers/hashcash/core.test.ts | 275 | // Step 1: Find proof | COMMENT |
| LOW⚡ | …s/sessions/src/challenge-solvers/hashcash/core.test.ts | 280 | // Step 2: Verify the proof is valid | COMMENT |
| LOW⚡ | …s/sessions/src/challenge-solvers/hashcash/core.test.ts | 284 | // Step 3: Check the hash meets difficulty requirement | COMMENT |
| LOW⚡ | …s/sessions/src/challenge-solvers/hashcash/core.test.ts | 287 | // Step 4: Format for submission | COMMENT |
| LOW⚡ | …/services/TransactionService/transactionServiceImpl.ts | 465 | // Step 1: If we need to request Uniswap gas sponsorship, fill paymaster fields here. | COMMENT |
| LOW⚡ | …/services/TransactionService/transactionServiceImpl.ts | 482 | // Step 2: Sign (EIP-712 + Calibur encoding). The 7702 auth is bundled into the 4337 | COMMENT |
| LOW⚡ | …/services/TransactionService/transactionServiceImpl.ts | 489 | // Step 3: Submit to bundler via UniRPC | COMMENT |
| LOW | …ervices/UserOpSignerService/userOpSignerServiceImpl.ts | 41 | // Step 1: EIP-712 typed data signing over the PackedUserOperation. | COMMENT |
| LOW⚡ | …ervices/UserOpSignerService/userOpSignerServiceImpl.ts | 53 | // Step 2: Calibur signature encoding | COMMENT |
| LOW⚡ | …ervices/UserOpSignerService/userOpSignerServiceImpl.ts | 56 | // Step 3: the 7702 auth is bundled into the 4337 request up front (round-trips on | COMMENT |
| LOW⚡ | …ervices/UserOpSignerService/userOpSignerServiceImpl.ts | 65 | // Step 4: Rebuild the final signed UserOperation (preserving any round-tripped eip7702Auth). | COMMENT |
| LOW⚡ | …sor/implementations/createBaseNotificationProcessor.ts | 47 | // Step 1: Build dependency graph and identify roots using topological analysis | COMMENT |
| LOW⚡ | …sor/implementations/createBaseNotificationProcessor.ts | 50 | // Step 2: Separate primary (roots) and chained (non-roots) notifications | COMMENT |
| LOW | …sor/implementations/createBaseNotificationProcessor.ts | 62 | // Step 3: Filter out notifications that are locally tracked or don't have DISMISS action. | COMMENT |
| LOW⚡ | …sor/implementations/createBaseNotificationProcessor.ts | 97 | // Step 4: Limit the number of primary notifications per content style | COMMENT |
| LOW⚡ | …sor/implementations/createBaseNotificationProcessor.ts | 100 | // Step 5: Convert chained notifications to a Map for fast lookup | COMMENT |
| LOW⚡ | apps/web/src/connection/userOpSigning.ts | 57 | // Step 1: EIP-712 PackedUserOperation typed data. NOTE: `formatUserOperation` | COMMENT |
| LOW⚡ | apps/web/src/connection/userOpSigning.ts | 61 | // Step 2: passkey-backed eth_signTypedData_v4 over the typed data. Privy | COMMENT |
| LOW⚡ | apps/web/src/connection/userOpSigning.ts | 69 | // Step 3: Calibur wrap — abi.encode(ROOT_KEY_HASH=bytes32(0), sig, hookData='0x'). | COMMENT |
| LOW⚡ | apps/web/src/connection/userOpSigning.ts | 72 | // Step 4: attach 7702 authorization if one isn't already bundled by the caller. | COMMENT |
| LOW | …ction/ActivityTimeline/getSupplySchedulePoints.test.ts | 49 | // Step 1: 100 mps × 100 blocks = 10_000 of 50_000 → 20% | COMMENT |
| LOW⚡ | apps/web/src/features/accounts/store/provider.tsx | 341 | // 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.tsx | 344 | // Step 2: Store all connectors + references to active connectors. | COMMENT |
| LOW⚡ | apps/web/src/features/accounts/store/provider.tsx | 358 | // Step 3: Store all accounts. | COMMENT |
| LOW⚡ | apps/web/src/features/accounts/store/provider.tsx | 363 | // Step 4: Store the wallet. | COMMENT |
| LOW⚡ | apps/mobile/.maestro/flows/send/send-eth-to-self.yaml | 19 | # Step 1: Initialize app and recover wallet | COMMENT |
| LOW⚡ | apps/mobile/.maestro/flows/send/send-eth-to-self.yaml | 23 | # Step 2: Copy our wallet address from the Receive QR modal | COMMENT |
| 15 more matches not shown… | ||||
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| HIGH | packages/uniswap/src/i18n/locales/source/en-US.json | 1270 | "hook.description.generatedByAi": "Description generated by AI", | CODE |
| HIGH | …kages/uniswap/src/i18n/locales/translations/ko-KR.json | 1241 | "hook.description.generatedByAi": "Description generated by AI", | CODE |
| HIGH | …kages/uniswap/src/i18n/locales/translations/es-ES.json | 1241 | "hook.description.generatedByAi": "Description generated by AI", | CODE |
| HIGH | …kages/uniswap/src/i18n/locales/translations/ja-JP.json | 1241 | "hook.description.generatedByAi": "Description generated by AI", | CODE |
| HIGH | …kages/uniswap/src/i18n/locales/translations/zh-CN.json | 1241 | "hook.description.generatedByAi": "Description generated by AI", | CODE |
| HIGH | …kages/uniswap/src/i18n/locales/translations/tr-TR.json | 1241 | "hook.description.generatedByAi": "Description generated by AI", | CODE |
| HIGH | …kages/uniswap/src/i18n/locales/translations/id-ID.json | 1241 | "hook.description.generatedByAi": "Description generated by AI", | CODE |
| HIGH | …kages/uniswap/src/i18n/locales/translations/pt-PT.json | 1241 | "hook.description.generatedByAi": "Description generated by AI", | CODE |
| HIGH | …kages/uniswap/src/i18n/locales/translations/fr-FR.json | 1241 | "hook.description.generatedByAi": "Description generated by AI", | CODE |
| HIGH | …kages/uniswap/src/i18n/locales/translations/zh-TW.json | 1241 | "hook.description.generatedByAi": "Description generated by AI", | CODE |
| HIGH | …kages/uniswap/src/i18n/locales/translations/ru-RU.json | 1241 | "hook.description.generatedByAi": "Description generated by AI", | CODE |
| HIGH | …ages/uniswap/src/i18n/locales/translations/fil-PH.json | 1241 | "hook.description.generatedByAi": "Description generated by AI", | CODE |
| HIGH | …kages/uniswap/src/i18n/locales/translations/nl-NL.json | 1241 | "hook.description.generatedByAi": "Description generated by AI", | CODE |
| HIGH | …kages/uniswap/src/i18n/locales/translations/vi-VN.json | 1241 | "hook.description.generatedByAi": "Description generated by AI", | CODE |
| HIGH | …s/web/src/features/Liquidity/HookDetailsModal.test.tsx | 58 | expect(screen.getByText('Description generated by AI')).toBeTruthy() | CODE |
| HIGH | …s/web/src/features/Liquidity/HookDetailsModal.test.tsx | 68 | expect(screen.queryByText('Description generated by AI')).toBeNull() | CODE |
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| LOW | i18next-parser.config.js | 61 | input: ['apps/**/*.tsx', 'apps/**/*.ts', 'packages/**/*.ts', 'packages/**/*.tsx'], | COMMENT |
| LOW | bunfig.toml | 1 | # Bun configuration file | COMMENT |
| LOW | scripts/check-env-files.sh | 1 | #!/bin/sh | COMMENT |
| LOW | scripts/silence-deprecation-warnings.js | 1 | // Preloaded via `bun --preload` for the `check:deps:usage` Nx target so that | COMMENT |
| LOW | scripts/check-rn-patch-prebuilt-conflict.sh | 1 | #!/bin/bash | COMMENT |
| LOW | scripts/releases/calculate_version.sh | 1 | #!/bin/bash | COMMENT |
| LOW | packages/uniswap/src/index.ts | 1 | // oxlint-disable-next-line typescript/triple-slash-reference | COMMENT |
| LOW | …iswap/src/features/passkey/embeddedWalletDelegation.ts | 181 | COMMENT | |
| LOW | packages/uniswap/src/features/appearance/hooks.tsx | 61 | // much more common. | COMMENT |
| LOW | packages/uniswap/src/features/appearance/hooks.tsx | 81 | // lastCorrectColorScheme.current = colorScheme | COMMENT |
| LOW | …/uniswap/src/features/smartWallet/mismatch/mismatch.ts | 101 | // extra: { | COMMENT |
| LOW | …ervice/chained/chainedActionTxSwapAndGasInfoService.ts | 41 | } | COMMENT |
| LOW | packages/uniswap/src/data/tradingApi/types.ts | 1 | // Re-export trading API types from @universe/api for use by generated model files. | COMMENT |
| LOW | packages/hashcash-native/ios/Bridge.h | 1 | // | COMMENT |
| LOW | packages/tailwind/src/index.ts | 1 | // @universe/tailwind — shared Tailwind v4 design tokens. | COMMENT |
| LOW | packages/utilities/src/index.ts | 1 | // oxlint-disable-next-line typescript/triple-slash-reference | COMMENT |
| LOW | …ckages/utilities/src/device/keyboard/useKeyDown.web.ts | 41 | // keys: ['Escape'], | COMMENT |
| LOW | packages/utilities/src/tokens/constants.ts | 1 | // When decimals are not specified for an ERC20 token | COMMENT |
| LOW | …adog-cloud/monitors/privy-embedded-wallet/constants.ts | 21 | // web-span `webResourceName` below instead. | COMMENT |
| LOW | …tadog-cloud/monitors/privy-embedded-wallet/security.ts | 101 | // ───────────────────────────────────────────────────────────────────────────── | COMMENT |
| LOW | packages/sessions/src/entryGatewayUrls.ts | 1 | // TODO(entry-gateway-urls): duplicated from the canonical definition in | COMMENT |
| LOW | packages/wallet/src/index.ts | 1 | // oxlint-disable-next-line typescript/triple-slash-reference | COMMENT |
| LOW | packages/api/src/global.d.ts | 1 | // oxlint-disable-next-line typescript/triple-slash-reference | COMMENT |
| LOW | …es/chains/src/transactions/createSignTypedData/viem.ts | 21 | // callers can pass either pre-typed messages or loosely-typed | COMMENT |
| LOW | packages/chains/src/rpc/ViemClientManager.ts | 61 | COMMENT | |
| LOW | packages/notifications/src/global.d.ts | 1 | // oxlint-disable-next-line typescript/triple-slash-reference | COMMENT |
| LOW | apps/extension/wxt.config.ts | 421 | }, | COMMENT |
| LOW | apps/extension/src/entrypoints/injected.content.ts | 221 | externalDappMessageChannel.addMessageListener(ExtensionToDappRequestType.SwitchChain, async (message) => { | COMMENT |
| LOW | apps/extension/src/entrypoints/background.ts | 181 | // Security: validate the sender origin before relaying. `externally_connectable` in the | COMMENT |
| LOW | apps/web/.storybook/__mocks__/expo-blur.jsx | 1 | // Simple mock for expo-blur's BlurView | COMMENT |
| LOW | apps/web/scripts/start-anvil.sh | 1 | #!/bin/bash | COMMENT |
| LOW | apps/web/functions/app.ts | 121 | // ── BFF proxy: entry-gateway ───────────────────────────────────────── | COMMENT |
| LOW | apps/web/functions/constants.ts | 1 | export const WATERMARK_URL = 'https://app.uniswap.org/images/324x74_App_Watermark.png' | COMMENT |
| LOW | apps/web/src/test-utils/matchers.ts | 1 | // This type is not exported from Jest, so we need to infer it from the expect.extend function. | COMMENT |
| LOW | apps/web/src/appGraphql/data/Token.ts | 1 | import { GraphQLApi } from '@universe/api' | COMMENT |
| LOW | …/BidDistributionChart/BidDistributionChartRenderer.tsx | 261 | const rangePaddingUnits = useMemo(() => { | COMMENT |
| LOW | …n/BidDistributionChart/utils/clearingPrice/position.ts | 61 | // market price that can fall anywhere between ticks. | COMMENT |
| LOW | …ps/web/src/features/Toucan/Auction/utils/bidDetails.ts | 1 | import { toSubscript } from 'utilities/src/format/toSubscript' | COMMENT |
| LOW | apps/web/src/features/Toucan/Auction/store/types.ts | 241 | // Concentration band for the chart, used for reset zoom | COMMENT |
| LOW | …idDistribution/ToucanBidDistributionChartController.ts | 441 | // Temporarily unsubscribe visible range change listeners before setData() to prevent a | COMMENT |
| LOW | …ucan/ToucanChart/bidDistribution/utils/tickGrouping.ts | 1 | import type { ChartBarData } from '~/features/Toucan/Auction/BidDistributionChart/utils/utils' | COMMENT |
| LOW | …ucan/ToucanChart/bidDistribution/utils/tickGrouping.ts | 21 | // - 200 ticks → 7x grouping (29 bars) | COMMENT |
| LOW | …s/web/src/pages/Swap/Limit/LimitWrap.anvil.e2e.test.ts | 41 | // A limit price must be set for a trade to exist (and thus for | COMMENT |
| LOW | apps/mobile/fingerprint.config.js | 1 | /** @type {import('@expo/fingerprint').Config} */ | COMMENT |
| LOW | apps/mobile/uniwind-env.d.ts | 1 | /// <reference types="uniwind/types" /> | COMMENT |
| LOW | apps/mobile/ios/Uniswap/Uniswap-Bridging-Header.h | 1 | // | COMMENT |
| LOW | apps/mobile/ios/Uniswap/Uniswap-Bridging-Header.h | 21 | #import "libethers_ffi.h" | COMMENT |
| LOW | apps/mobile/ios/Uniswap/WalletConnect/RNWalletConnect.h | 1 | // | COMMENT |
| LOW | …le/ios/Uniswap/RNEthersRs/RNEthersRS-Bridging-Header.h | 1 | // | COMMENT |
| LOW | …bile/ios/Uniswap/RNEthersRs/KeychainSwiftDistrib.swift | 1 | // | COMMENT |
| LOW | …/Uniswap/Onboarding/Backup/RNSwiftUI-Bridging-Header.h | 1 | // | COMMENT |
| LOW | apps/mobile/ios/WidgetsCore/WidgetsCore.h | 1 | // | COMMENT |
| LOW | apps/mobile/android/app/src/main/jni/pch.h | 1 | #pragma once | COMMENT |
| LOW | apps/mobile/android/app/src/main/jni/OnLoad.cpp | 1 | /* | COMMENT |
| LOW | apps/mobile/scripts/runAndroidLocal.sh | 1 | #!/usr/bin/env bash | COMMENT |
| LOW | apps/mobile/scripts/runAndroidLocal.sh | 21 | # Stale-code defenses (release variants embed JS in the APK, so a stale build | COMMENT |
| LOW | apps/mobile/scripts/runAndroidLocal.sh | 81 | exit 1 | COMMENT |
| LOW | apps/mobile/src/components/home/hooks.tsx | 21 | const footerHeight = useSharedValue(maxContentHeight) | COMMENT |
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| CRITICAL | …p/src/features/transactions/swap/plan/planSagaUtils.ts | 239 | chainIn: swapTxContext.trade.quote.quote.tokenInChainId.toString(), | CODE |
| CRITICAL | …p/src/features/transactions/swap/plan/planSagaUtils.ts | 240 | chainOut: swapTxContext.trade.quote.quote.tokenOutChainId.toString(), | CODE |
| CRITICAL | …niswap/src/features/transactions/swap/plan/planSaga.ts | 645 | inputCurrencyAmountRaw: params.swapTxContext.trade.inputAmount.quotient.toString(), | CODE |
| CRITICAL | …niswap/src/features/transactions/swap/plan/planSaga.ts | 646 | outputCurrencyAmountRaw: params.swapTxContext.trade.outputAmount.quotient.toString(), | CODE |
| CRITICAL | …bile/src/features/walletConnect/walletConnectClient.ts | 59 | const clientId = await wcWeb3Wallet.engine.signClient.core.crypto.getClientId() | CODE |
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| HIGH | …iswap/src/features/tokens/warnings/safetyUtils.test.ts | 50 | it('should return None when currencyInfo is fully undefined', () => { | CODE |
| HIGH | …iswap/src/features/tokens/warnings/safetyUtils.test.ts | 151 | it('should return None for default token with no warnings', () => { | CODE |
| HIGH | …iswap/src/features/tokens/warnings/safetyUtils.test.ts | 155 | it('should return None for native currency', () => { | CODE |
| HIGH | …src/components/InlineWarningCard/InlineWarningCard.tsx | 78 | // !WarningIcon for typecheck; should only be null if WarningSeverity == None | COMMENT |
| HIGH | …/src/features/dappRequests/utils/blockaidUtils.test.ts | 65 | it('should return None for undefined classification', () => { | CODE |
| HIGH | …/src/features/dappRequests/utils/blockaidUtils.test.ts | 69 | it('should return None for benign classification', () => { | CODE |
| HIGH | …/src/features/dappRequests/utils/blockaidUtils.test.ts | 96 | it('should return None for undefined validation', () => { | CODE |
| HIGH | …/src/features/dappRequests/utils/blockaidUtils.test.ts | 851 | it('should return None risk level when simulation is missing and validation is benign', () => { | CODE |
| HIGH | …/src/features/dappRequests/utils/blockaidUtils.test.ts | 894 | it('should return None risk level when both simulation and validation are missing', () => { | CODE |
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| LOW | .agents/skills/argent-test-ui-flow/SKILL.md | 50 | 3. paste { text: "user@example.com" } | CODE |
| LOW | …ges/uniswap/src/features/passkey/checkPinReuse.test.ts | 32 | const params = { pin: '4321', email: 'user@example.com', accessToken: 'token', encryptedBlob: 'blob' } | CODE |
| LOW | …s/uniswap/src/features/passkey/useRecoveryFlow.test.ts | 99 | act(() => result.current.setEmail('user@example.com')) | CODE |
| LOW | …s/uniswap/src/features/passkey/useRecoveryFlow.test.ts | 105 | expect(privy.sendEmailCode).toHaveBeenCalledWith('user@example.com') | CODE |
| LOW | …s/uniswap/src/features/passkey/useRecoveryFlow.test.ts | 119 | act(() => result.current.setEmail('user@example.com')) | CODE |
| LOW | …s/uniswap/src/features/passkey/useRecoveryFlow.test.ts | 151 | act(() => result.current.setEmail('user@example.com')) | CODE |
| LOW | …s/uniswap/src/features/passkey/useRecoveryFlow.test.ts | 186 | act(() => result.current.setEmail('user@example.com')) | CODE |
| LOW | …s/uniswap/src/features/passkey/useRecoveryFlow.test.ts | 210 | act(() => result.current.setEmail('user@example.com')) | CODE |
| LOW | …s/uniswap/src/features/passkey/useRecoveryFlow.test.ts | 253 | oauthReturn: { pending: false, provider: 'google', providerEmail: 'user@example.com' }, | CODE |
| LOW | …s/uniswap/src/features/passkey/useRecoveryFlow.test.ts | 279 | oauthReturn: { pending: false, provider: 'google', providerEmail: 'user@example.com' }, | CODE |
| LOW | …s/uniswap/src/features/passkey/useRecoveryFlow.test.ts | 306 | oauthReturn: { pending: false, provider: 'google', providerEmail: 'user@example.com' }, | CODE |
| LOW | …s/uniswap/src/features/passkey/useRecoveryFlow.test.ts | 348 | act(() => result.current.setEmail('user@example.com')) | CODE |
| LOW | …s/uniswap/src/features/passkey/useRecoveryFlow.test.ts | 420 | act(() => result.current.setEmail('user@example.com')) | CODE |
| LOW | …s/uniswap/src/features/passkey/useRecoveryFlow.test.ts | 464 | act(() => result.current.setEmail('user@example.com')) | CODE |
| LOW | …s/uniswap/src/features/passkey/useRecoveryFlow.test.ts | 506 | act(() => result.current.setEmail('user@example.com')) | CODE |
| LOW | …src/features/passkey/checkRecoveryAvailability.test.ts | 12 | const identifier = 'user@example.com' | CODE |
| LOW | …es/uniswap/src/features/passkey/recoveryRotate.test.ts | 35 | email: 'user@example.com', | CODE |
| LOW | …es/uniswap/src/features/passkey/recoveryRotate.test.ts | 65 | expect.objectContaining({ pin: '4321', email: 'user@example.com', rotate: true, retainPrivateKey: true }), | CODE |
| LOW | …es/uniswap/src/features/passkey/recoveryRotate.test.ts | 97 | authMethodIdentifier: 'user@example.com', | CODE |
| LOW | packages/uniswap/src/features/passkey/pinCrypto.test.ts | 38 | const hashLower = hashAuthMethodId('user@example.com') | CODE |
| LOW | packages/uniswap/src/components/reporting/input.tsx | 10 | placeholder: TextInputProps['placeholder'] | CODE |
| LOW | packages/mycelium/src/unicon/Unicon.tsx | 29 | * <Unicon input="user@example.com" size={32} className="border border-neutral1" /> | COMMENT |
| LOW | …tionSignerService/transactionSignerServiceImpl.test.ts | 202 | name: 'John Doe', | CODE |
| LOW | …s/embeddedWallet/createEmbeddedWalletApiClient.test.ts | 44 | await client.fetchOprfEvaluate({ blindedElement: 'blinded', authMethodId: 'amid' }, 'fake-token') | CODE |
| LOW | …s/embeddedWallet/createEmbeddedWalletApiClient.test.ts | 48 | { headers: { Authorization: 'Bearer fake-token' } }, | CODE |
| LOW | …s/embeddedWallet/createEmbeddedWalletApiClient.test.ts | 68 | await client.fetchCheckRecoveryAvailability({ authMethodId: 'amid' }, 'fake-token') | CODE |
| LOW | …s/embeddedWallet/createEmbeddedWalletApiClient.test.ts | 72 | { headers: { Authorization: 'Bearer fake-token' } }, | CODE |
| LOW | …s/embeddedWallet/createEmbeddedWalletApiClient.test.ts | 92 | await client.fetchGetRecoveryConfig({ authMethodId: 'amid' }, 'fake-token') | CODE |
| LOW | …s/embeddedWallet/createEmbeddedWalletApiClient.test.ts | 96 | { headers: { Authorization: 'Bearer fake-token' } }, | CODE |
| LOW | …s/embeddedWallet/createEmbeddedWalletApiClient.test.ts | 116 | await client.fetchReportDecryptionResult({ success: false, authMethodId: 'amid' }, 'fake-token') | CODE |
| LOW | …s/embeddedWallet/createEmbeddedWalletApiClient.test.ts | 120 | { headers: { Authorization: 'Bearer fake-token' } }, | CODE |
| LOW | …mponents/AccountDrawer/MiniPortfolio/Activity/hooks.ts | 84 | id: 'placeholder', | CODE |
| LOW | apps/web/src/pages/Portfolio/Pools/Pools.test.tsx | 286 | expect(screen.getByTestId(TestID.PortfolioPoolsSearchInput)).toHaveAttribute('placeholder', 'Search pools') | CODE |
| LOW | apps/web/src/pages/Portfolio/Pools/Pools.test.tsx | 354 | expect(screen.getByTestId(TestID.PortfolioPoolsSearchInput)).toHaveAttribute('placeholder', 'Search pools') | CODE |
| LOW | apps/web/src/pages/Portfolio/Pools/Pools.test.tsx | 379 | expect(screen.getByTestId(TestID.PortfolioPoolsSearchInput)).toHaveAttribute('placeholder', 'Search pools') | CODE |
| LOW | apps/mobile/src/app/mobileMigrationTests.ts | 1335 | const androidCloudBackupEmail = 'test@test.com' | CODE |
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| LOW | lefthook.yml | 52 | # Check if any staged TS/TSX files exist that might contain i18n strings | COMMENT |
| LOW | lefthook.yml | 61 | # Check if the i18n source file was modified | COMMENT |
| LOW⚡ | scripts/check-runtime-versions.sh | 12 | # Check if running in Vercel environment | COMMENT |
| LOW | scripts/lint-composite-action-inputs.sh | 8 | # Check if the file contains an 'inputs:' section | COMMENT |
| LOW | scripts/lint-composite-action-inputs.sh | 10 | # Check if the file contains a step that uses the validate-action-inputs.cjs script | COMMENT |
| LOW | scripts/checks-should-run.sh | 40 | # Check if the specified project is affected by changes | COMMENT |
| LOW | …ps/mobile/.maestro/scripts/performance/submit-local.sh | 15 | # Check if Datadog API key is set | COMMENT |
| LOW | …ps/mobile/.maestro/scripts/performance/submit-local.sh | 27 | # Check if metrics file already exists (extracted by e2e:local:extract-metrics) | COMMENT |
| LOW⚡ | apps/mobile/scripts/update_apollo_files_in_xcode.rb | 184 | # Check if the MobileSchema group in the project matches the files on disk | COMMENT |
| LOW | apps/mobile/scripts/update_apollo_files_in_xcode.rb | 310 | # Check if files have changed before modifying the project | COMMENT |
| LOW | apps/mobile/scripts/update_apollo_files_in_xcode.rb | 348 | # Check if directory exists | COMMENT |
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| MEDIUM | packages/config-cli/src/lib/devEnv.test.ts | 5 | const HEADER = `# This file contains the minimal dev-env configs required to run this app. | CODE |
| MEDIUM | apps/mobile/ios/sourcemaps-datadog.sh | 19 | # Create a temporary file for capturing output. | COMMENT |
| MEDIUM⚡ | apps/mobile/scripts/update_apollo_files_in_xcode.rb | 175 | # Create a digest of file paths and their contents to detect any change | COMMENT |
| MEDIUM | apps/mobile/scripts/update_apollo_files_in_xcode.rb | 230 | # Create the group structure and add files | COMMENT |
| MEDIUM | apps/mobile/scripts/update_apollo_files_in_xcode.rb | 342 | # Create a new MobileSchema group | COMMENT |
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| MEDIUM | …rc/utils/colors/utils/pickContrastPassingTokenColor.ts | 118 | // TODO(MOB-643): Define more robust color extraction logic. Some ideas: | COMMENT |
| MEDIUM | packages/config-cli/src/lib/lock/lock.test.ts | 62 | // `second` enters the race. Polling on an observable signal is robust to changes in | COMMENT |
| MEDIUM | packages/wallet/src/features/wallet/context.tsx | 50 | // Probably not strictly necessary but more robust than relying on 'organic' re-renders | COMMENT |
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| LOW | …ckages/utilities/src/device/keyboard/useKeyDown.web.ts | 38 | // Example usage: | COMMENT |
| LOW | apps/mobile/scripts/runAndroidLocal.sh | 31 | # Usage: | COMMENT |
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| MEDIUM | apps/web/functions/utils/getToken.ts | 43 | // This keeps the token-detail worker path aligned with the CF timeout guardrails. | COMMENT |
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| MEDIUM | …CloudBackupsManager/RNCloudStorageBackupsManager.swift | 223 | print("Error reading or decoding iCloud backup JSON at \(file.absoluteURL)") | CODE |
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| LOW | apps/mobile/scripts/populate_svgs.py | 29 | CODE | |
| LOW | apps/mobile/scripts/populate_svgs.py | 91 | CODE |