// SPDX-License-Identifier: MIT pragma solidity 0.8.19; /** * @title ArbitrumAddresses * @notice Canonical Arbitrum One (chain 42161) infrastructure addresses used * by the FlashArbitrage executor. Migrated 2026-07 from the old BSC * set. Cross-checked against arbiscan.io and the operator's own * Arbitrum-Arbitrage config (config/dexes.arbitrum.ts, * config/tokens.arbitrum.ts) — still VERIFY before routing real funds. */ library ArbitrumAddresses { // Aave V3 — Arbitrum One (flashLoanSimple premium = 0.05% / 5 bps) address constant AAVE_V3_POOL_ADDRESSES_PROVIDER = 0xa97684ead0e402dC232d5A977953DF7ECBaB3CDb; // V2-style routers (Uniswap-V2 fork interface — the executor's swap path) address constant SUSHISWAP_ROUTER = 0x1b02dA8Cb0d097eB8D57A175b88c7D8b47997506; address constant CAMELOT_V2_ROUTER = 0xc873fEcbd354f5A56E00E710B90EF4201db2448d; // V3-style venues (concentrated liquidity — different interface). // Uniswap V3 SwapRouter02/QuoterV2 are wired into FlashArbitrageV3.sol + // scanner.py's live quoting. Camelot V3 (Algebra-based — no fee-tier // param, single pool per pair) is listed for reference only; it is NOT // yet wired into either the scanner or FlashArbitrageV3.sol. address constant UNISWAP_V3_SWAP_ROUTER02 = 0x68b3465833fb72A70ecDF485E0e4C7bD8665Fc45; address constant UNISWAP_V3_QUOTER_V2 = 0x61fFE014bA17989E743c5F6cB21bF9697530B21e; address constant CAMELOT_V3_SWAP_ROUTER = 0x1F721E2E82F6676FCE4eA07A5958cF098D339e18; address constant CAMELOT_V3_QUOTER = 0x0Fc73040b26E9bC8514fA028D998E73A254Fa76E; // Common tokens (note the native decimals: USDC/USDT are 6, WBTC is 8) address constant WETH = 0x82aF49447D8a07e3bd95BD0d56f35241523fBab1; address constant WBTC = 0x2f2a2543B76A4166549F7aaB2e75Bef0aefC5B0f; address constant ARB = 0x912CE59144191C1204E64559FE8253a0e49E6548; address constant USDC = 0xaf88d065e77c8cC2239327C5EDb3A432268e5831; // native (Circle) address constant USDC_e = 0xFF970A61A04b1cA14834A43f5dE4533eBDDB5CC8; // bridged address constant USDT = 0xFd086bC7CD5C481DCC9C85ebE478A1C0b69FCbb9; address constant DAI = 0xDA10009cBd5D07dd0CeCc66161FC93D7c9000da1; }