---
issue: 130
title: "Scanner: Config.GetChain/GetToken/GetRPC O(N) linear scans — pre-index at load time"
severity: low
domain: Scanner
labels: [performance, scanner]
status: open
created: 2026-05-30
source: Full Codebase Audit 2026-05-30
---

# Scanner: Config.GetChain/GetToken/GetRPC O(N) linear scans — pre-index at load time

**Severity:** low
**Domain:** Scanner
**Labels:** performance, scanner

## Description

`scanner/config.go:199` implements `GetChain`, `GetToken`, and `GetRPC` as linear scans over slices on every call. While chain count is small, these are called in hot paths (per-intent lookups). Pre-building maps at config load would eliminate all repeated scans.

## Options

1. Build maps (by chainId, token key) once at config load.
2. Leave as-is given small chain count.
3. Cache results per request.

## Recommendation

Build lookup maps at config load; trivial change but slightly alters config initialization.

## Affected Files

- `scanner/config.go:199`

## References

- [Full Codebase Audit 2026-05-30](../09%20-%20Audits/Full%20Codebase%20Audit%20-%202026-05-30.md) — DEC-69
