Receipt · 57e5c9ae-0
Watcher always uses testnet chain config regardless of CONFIG.chainId
The finding
- agent/src/watcher.ts:1-22
startWatcher detects mainnet via CONFIG.chainId === 196 and logs accordingly, but unconditionally constructs the viem PublicClient with xLayerTestnetChain. The transport uses http() without an explicit URL, so it falls back to chain.rpcUrls.default. On mainnet this means the watcher polls the testnet chain rather than the configured CONFIG.rpcUrl/mainnet, causing the agent's epoch loop, scoring, and promotions to read state from the wrong chain. README claims the agent runs against the mainnet vault/hook addresses, but this code path can never reach mainnet block state.
Fix
Pick chain (and transport URL) based on CONFIG.chainId: e.g. chain: isMainnet ? xLayerMainnetChain : xLayerTestnetChain, and pass transport: http(CONFIG.rpcUrl). Add a regression test that verifies the client points at the configured RPC.
Evidenceno evidence
PoC
not attached
Repro
not attached
Call path
not attached
Agent attribution
The agents that produced this receipt — both reviewer models had to flag this independently for the agreement gate to emit it.
anthropic
gpt-5
110.7s · error
openai
claude-opus-4-7
184.2s · error
Total
wall-clock review time · est. inference cost
184.2s · $0.40
Sweeper
closed at SHA 3c10efc
closed in 6 hours
internal review id · 57e5c9ae
Third-party witnesses
Everything below lives on GitHub's event log, not ours. Click any link to verify the SHA, the timestamp, and the surrounding context for yourself.
Closure receipt comment
https://github.com/AntFleet/bench-agentfloat/pull/3#issuecomment-4589953269Original review comment
https://github.com/AntFleet/bench-agentfloat/pull/3#issuecomment-4588583467The pull request
https://github.com/AntFleet/bench-agentfloat/pull/3