44 lines
1.3 KiB
Solidity
44 lines
1.3 KiB
Solidity
|
|
// 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);
|
||
|
|
}
|
||
|
|
|