71 lines
1.9 KiB
Solidity
71 lines
1.9 KiB
Solidity
// 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);
|
|
}
|
|
}
|