# CoW Protocol Performance Testing Suite - Environment Configuration # Copy this file to .env and fill in your values # ============================================================================= # Blockchain Configuration # ============================================================================= # RPC URL for forking blockchain # Supports Ethereum mainnet (chain ID 1) and Polygon (chain ID 137) # # Ethereum examples: # - https://eth.llamarpc.com # - https://eth-mainnet.g.alchemy.com/v2/YOUR_API_KEY # # Polygon examples: # - https://polygon-rpc.com # - https://ovh-polygon-erigon-02.nodes.batch.exchange/public/rpc ETH_RPC_URL= # Fork from a specific block number for consistent testing # WARNING: When using Balancer V2 or Uniswap V3 (subgraph-based sources), # always fork from latest block to avoid state mismatch between subgraph and fork. # Only use a fixed block when testing without subgraph-dependent liquidity sources. # # Leave empty to fork from latest block (recommended): #ETH_BLOCKNUMBER= # # Or set a specific block for reproducible testing: #ETH_BLOCKNUMBER=24542982 # Chain ID (1 for Ethereum mainnet, 137 for Polygon) # Note: When changing networks, update token addresses and DEX configs in: # - configs/baseline.toml # - configs/driver.toml # - docker-compose.yml CHAIN_ID=1 # ============================================================================= # Database Configuration # ============================================================================= # PostgreSQL credentials POSTGRES_USER=postgres POSTGRES_PASSWORD=password POSTGRES_DB=postgres # ============================================================================= # CoW Protocol Configuration # ============================================================================= # Solver address (default: first Anvil account) SOLVER_ADDRESS=0xf39Fd6e51aad88F6F4ce6aB8827279cffFb92266 # The Graph API Key for accessing decentralized subgraphs # Get your API key from: https://thegraph.com/studio/apikeys/ # Used for Balancer V2 and Uniswap V3 liquidity sources GRAPH_API_KEY= # Settlement contract address (mainnet) SETTLEMENT_CONTRACT_ADDRESS=0x9008D19f58AAbD9eD0D60971565AA8510560ab41 # Vault relayer address (mainnet) VAULT_RELAYER_ADDRESS=0xC92E8bdf79f0507f65a392b0ab4667716BFE0110 # ============================================================================= # Performance Testing Configuration # ============================================================================= # Number of test accounts to create NUM_TEST_ACCOUNTS=10 # Default test duration (seconds) DEFAULT_TEST_DURATION=300 # Order submission rate (orders per second) DEFAULT_ORDER_RATE=10 # ============================================================================= # Monitoring Configuration (Optional) # ============================================================================= # Enable Prometheus metrics export ENABLE_PROMETHEUS=true # Enable Grafana dashboards ENABLE_GRAFANA=true # ============================================================================= # Token Addresses # ============================================================================= # Native wrapped token # Ethereum: WETH = 0xC02aaA39b223FE8D0A0e5C4F27eAD9083C756Cc2 # Polygon: WMATIC = 0x0d500B1d8E8eF31E21C99d1Db9A6444d3ADf1270 WETH_ADDRESS=0xC02aaA39b223FE8D0A0e5C4F27eAD9083C756Cc2 # Stablecoins # Ethereum DAI: 0x6B175474E89094C44Da98b954EedeAC495271d0F # Polygon DAI: 0x8f3Cf7ad23Cd3CaDbD9735AFf958023239c6A063 DAI_ADDRESS=0x6B175474E89094C44Da98b954EedeAC495271d0F # Ethereum USDC: 0xA0b86991c6218b36c1d19D4a2e9Eb0cE3606eB48 # Polygon USDC: 0x2791Bca1f2de4661ED88A30C99A7a9449Aa84174 USDC_ADDRESS=0xA0b86991c6218b36c1d19D4a2e9Eb0cE3606eB48 # Ethereum USDT: 0xdAC17F958D2ee523a2206206994597C13D831ec7 # Polygon USDT: 0xc2132D05D31c914a87C6611C10748AEb04B58e8F USDT_ADDRESS=0xdAC17F958D2ee523a2206206994597C13D831ec7 # Other tokens (Ethereum only) GNO_ADDRESS=0x6810e776880C02933D47DB1b9fc05908e5386b96 # ============================================================================= # Logging Configuration # ============================================================================= # Rust log level (trace, debug, info, warn, error) RUST_LOG=info # Python log level (DEBUG, INFO, WARNING, ERROR, CRITICAL) LOG_LEVEL=INFO # ============================================================================= # Advanced Settings (Optional) # ============================================================================= # Anvil block time (seconds) BLOCK_TIME=1 # Gas limit per block GAS_LIMIT=30000000 # Enable detailed transaction traces ENABLE_TRACING=false