# Enhanced Routing and Liquidity Engine This document explains the enhanced routing system with multi-protocol support and automated liquidity management. ## Overview The Enhanced Swap Router provides intelligent routing across multiple DEX protocols: - **Uniswap V3**: Primary for small swaps, high liquidity - **Dodoex PMM**: Best for large swaps, lower slippage - **Balancer**: Weighted pools for stablecoin swaps - **Curve**: Deep liquidity for stable/stable swaps - **1inch**: Aggregation for best execution ## Decision Logic Map The system uses a decision logic map to route swaps optimally: ### Size-Based Routing - **Small swaps** (< $10k): Uniswap V3 → Dodoex - **Medium swaps** ($10k-$100k): Dodoex → Balancer → Uniswap V3 - **Large swaps** (> $100k): Dodoex → Curve → Balancer ### Slippage-Based Routing - **Low slippage** (< 0.1%): Prefer Dodoex (PMM provides better price) - **Medium slippage** (< 0.5%): Prefer Balancer - **High slippage**: Prefer Curve (deepest liquidity) ### Liquidity-Based Routing - **High liquidity** (> $1M): Prefer Uniswap V3 - **Medium liquidity**: Prefer Dodoex - **Low liquidity**: Prefer Curve ## Usage ### Basic Swap ```solidity (uint256 amountOut, SwapProvider provider) = enhancedSwapRouter.swapToStablecoin( LiquidityPoolETH.AssetType.WETH, usdtAddress, amountIn, amountOutMin, SwapProvider.UniswapV3 // 0 = auto-select ); ``` ### Get Quotes ```solidity (SwapProvider[] memory providers, uint256[] memory amounts) = enhancedSwapRouter.getQuotes(usdtAddress, amountIn); ``` ## Admin Configuration ### Update Routing Config ```solidity SwapProvider[] memory providers = new SwapProvider[](2); providers[0] = SwapProvider.Dodoex; providers[1] = SwapProvider.Balancer; router.setRoutingConfig(0, providers); // 0 = small swaps ``` ### Toggle Providers ```solidity router.setProviderEnabled(SwapProvider.Dodoex, true); router.setProviderEnabled(SwapProvider.Curve, false); ``` ## Liquidity Engine Service The backend service provides: 1. **Quote Aggregation**: Compare prices across all protocols 2. **Decision Logic**: Apply routing rules automatically 3. **Simulation**: Test routing decisions before execution 4. **Analytics**: Track routing performance ## Benefits 1. **Better Execution**: Always use best available price 2. **Lower Slippage**: Dodoex PMM for large trades 3. **Resilience**: Multiple fallback options 4. **Automation**: No manual intervention needed 5. **Transparency**: All decisions visible in admin dashboard