// SPDX-License-Identifier: MIT pragma solidity ^0.8.19; /** * @title IDodoexRouter * @notice Interface for Dodoex PMM (Proactive Market Maker) Router * @dev Dodoex uses PMM which provides better price discovery and lower slippage */ interface IDodoexRouter { struct DodoSwapParams { address fromToken; address toToken; uint256 fromTokenAmount; uint256 minReturnAmount; address[] dodoPairs; // Dodo PMM pool addresses uint256 directions; // 0 = base to quote, 1 = quote to base bool isIncentive; // Whether to use incentive mechanism uint256 deadLine; } /** * @notice Swap tokens via Dodoex PMM * @param params Swap parameters * @return receivedAmount Amount received after swap */ function dodoSwapV2TokenToToken( DodoSwapParams calldata params ) external returns (uint256 receivedAmount); /** * @notice Get quote for swap (view function) * @param fromToken Source token * @param toToken Destination token * @param fromTokenAmount Amount to swap * @return toTokenAmount Expected output amount */ function getDodoSwapQuote( address fromToken, address toToken, uint256 fromTokenAmount ) external view returns (uint256 toTokenAmount); }