# Arbitrum Pool Contract Verification (2025-10-19) ## Scope - Focuses on the high-traffic pools and routers we touch in backtests (`pkg/arbitrum/l2_parser.go`) and the seed list under `data/pools.txt`. - Provides a filtered short list for research validation plus the latest on-chain verification status captured on October 19, 2025. - Use this snapshot to decide which contracts require manual source publication before simulations or live opportunity scanning. ## Filtered Short List – Priority Liquidity Pools | Label (internal) | Address | Contract Name (Arbiscan) | Verified? | Notes | | --- | --- | --- | --- | --- | | UniswapV3Pool_WETH_USDC | 0xC6962004f452bE9203591991D15f6b388e09E8D0 | UniswapV3Pool | Yes | Core WETH/USDC 0.05% pool tracked in detection engine; Arbiscan shows full source and immutables. | | UniswapV3Pool_WETH_USDT | 0x641C00A822e8b671738d32a431a4Fb6074E5c79d | UniswapV3Pool | Yes | Stablecoin routing primary; verified source matches canonical Uniswap v3 pool bytecode. | | UniswapV3Pool_ARB_ETH | 0x2f5e87C9312fa29aed5c179E456625D79015299c | UniswapV3Pool | Yes | Volatile pair heavily referenced by MEV simulations; verification confirmed. | ### Per-pool Verification Checklist 1. **Arbiscan contract page check** – Run `curl -s https://arbiscan.io/address/
| grep "Contract: Verified"` and confirm the string is present. Capture the timestamp in experiment notes. 2. **Factory provenance** – Execute `go test ./pkg/validation -run TestPoolValidatorFactory` (adds ~2s) to ensure `PoolValidator` still affirms the pool derives from the trusted factory list. 3. **Interface probe** – From a Go REPL or script, invoke `IUniswapV3Pool.slot0` and `liquidity()` via the shared RPC fixture; failures should halt further testing. 4. **Bytecode diff (optional)** – `curl -s https://arbiscan.io/address/#code` and compare the published bytecode hash with the locally vendored canonical hash (see `pkg/uniswap/bytecode_hashes.go`). ## Router Coverage Snapshot These are the router contracts surfaced in `data/pools.txt` that we rely on for swaps routed through V2-style interfaces. Use them when triaging transaction traces pulled into `reports/payloads/`. | Router Label | Address | Contract Name (Arbiscan) | Verified? | Action | | --- | --- | --- | --- | --- | | ZyberRouter | 0x16e71b13fe6079b4312063f7e81f76d165ad32ad | ZyberRouter | Yes | No action – keep in audit rotation. | | SushiSwap: Router | 0x1b02da8cb0d097eb8d57a175b88c7d8b47997506 | UniswapV2Router02 | Yes | Canonical Sushi router; already mirrored in parser allowlist. | | PancakeSwap V3: Swap Router | 0x1b81d678ffb9c0263b24a97847620c99d213eb14 | SwapRouter | Yes | Ensure multi-hop support is covered in simulation vectors. | | Uniswap V2: Router | 0x4752ba5dbc23f44d87826276bf6fd6b1c372ad24 | UniswapV2Router02 | Yes | Acts as compatibility layer for legacy pools. | | DeltaSwap Router | 0x5fbe219e88f6c6f214ce6f5b1fcaa0294f31ae1b | DeltaSwapRouter02 | Yes | Low-liquidity venue; keep watch for spoofed bytecode updates. | | Unknown V2 Router A | 0x82dfd2b94222bdb603aa6b34a8d37311ab3db800 | (not published) | No | **Todo** – obtain source from deployer and publish via Arbiscan “Verify & Publish” before enabling in prod configs. | | SpartaDEX Router | 0x89ae36e3b567b914a5e97e6488c6eb5b9c5d0231 | SpartaDexRouter | Yes | Verified; leave enabled. | | SushiSwap Router (alt) | 0xaa78afc926d0df40458ad7b1f7eed37251bd2b5f | (not published) | No | **Todo** – confirm ownership (likely legacy Sushi deployment); request source or deprecate address in parsers. | | Arbswap Router | 0xd01319f4b65b79124549de409d36f25e04b3e551 | SwapRouter | Yes | Verified; covered by parser heuristics. | | SwapProxy (Camelot/Ramses wrapper) | 0xe4a0b241d8345d86fb140d40c87c5fbdd685b9dd | SwapProxy | Yes | Acts as proxy entry point – keep snapshot of logic contract hash. | | Uniswap V3: Router | 0xe592427a0aece92de3edee1f18e0157c05861564 | SwapRouter | Yes | Primary path for concentrated liquidity swaps. | ### Router Verification Steps 1. **Metadata capture** – `curl -s https://arbiscan.io/address/