// SPDX-License-Identifier: MIT pragma solidity ^0.8.19; /** * @title MockDVMPool * @notice Minimal mock of a DODO PMM pool so DODOPMMIntegration can deploy and create pools on Chain 138 * @dev Not for production; use real DODO DVM when available. Implements view and swap stubs. */ contract MockDVMPool { address public baseToken; address public quoteToken; uint256 public baseReserve; uint256 public quoteReserve; uint256 public midPrice; uint256 public constant _K_ = 0.5e18; // 50% slippage factor (DODO convention) uint256 public constant _LP_FEE_RATE_ = 3; // 0.03% in basis points constructor( address _baseToken, address _quoteToken, uint256 _initialPrice ) { baseToken = _baseToken; quoteToken = _quoteToken; midPrice = _initialPrice; baseReserve = 0; quoteReserve = 0; } function _BASE_TOKEN_() external view returns (address) { return baseToken; } function _QUOTE_TOKEN_() external view returns (address) { return quoteToken; } function _BASE_RESERVE_() external view returns (uint256) { return baseReserve; } function _QUOTE_RESERVE_() external view returns (uint256) { return quoteReserve; } function getVaultReserve() external view returns (uint256, uint256) { return (baseReserve, quoteReserve); } function getMidPrice() external view returns (uint256) { return midPrice; } /// @notice Oracle price (same as mid for mock); enables MCP dodo_pmm_v2_like profile function getOraclePrice() external view returns (uint256) { return midPrice; } function sellBase(uint256) external returns (uint256) { return 0; } function sellQuote(uint256) external returns (uint256) { return 0; } function buyShares(address) external returns (uint256, uint256, uint256) { return (0, 0, 0); } }