Files
dodo-contractV2/contracts/DODOPrivatePool/impl/DPPAdmin.sol

100 lines
2.4 KiB
Solidity
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
/*
Copyright 2020 DODO ZOO.
SPDX-License-Identifier: Apache-2.0
*/
pragma solidity 0.6.9;
pragma experimental ABIEncoderV2;
import {IDPP} from "../intf/IDPP.sol";
import {IDODOApprove} from "../../intf/IDODOApprove.sol";
import {InitializableOwnable} from "../../lib/InitializableOwnable.sol";
/**
* @title DPPAdmin
* @author DODO Breeder
*
* @notice Admin of DODOPrivatePool
*/
contract DPPAdmin is InitializableOwnable {
address public _DPP_;
address public _OPERATOR_;
address public _DODO_APPROVE_;
uint256 public _FREEZE_TIMESTAMP_;
modifier notFreezed() {
require(block.timestamp >= _FREEZE_TIMESTAMP_, "ADMIN_FREEZED");
_;
}
function init(
address owner,
address dpp,
address operator,
address dodoApprove
) external {
initOwner(owner);
_DPP_ = dpp;
_OPERATOR_ = operator;
_DODO_APPROVE_ = dodoApprove;
}
function sync() external notFreezed onlyOwner {
IDPP(_DPP_).ratioSync();
}
function setFreezeTimestamp(uint256 timestamp) external notFreezed onlyOwner {
_FREEZE_TIMESTAMP_ = timestamp;
}
function setOperator(address newOperator) external notFreezed onlyOwner {
_OPERATOR_ = newOperator;
}
function retrieve(
address payable to,
address token,
uint256 amount
) external notFreezed onlyOwner {
IDPP(_DPP_).retrieve(to, token, amount);
}
function reset(
address operator,
uint256 newLpFeeRate,
uint256 newI,
uint256 newK,
uint256 baseOutAmount,
uint256 quoteOutAmount,
uint256 minBaseReserve,
uint256 minQuoteReserve
) external notFreezed returns (bool) {
require(
msg.sender == _OWNER_ ||
(msg.sender == IDODOApprove(_DODO_APPROVE_).getDODOProxy() &&
operator == _OPERATOR_),
"RESET FORBIDDEN"
);
return
IDPP(_DPP_).reset(
msg.sender,
newLpFeeRate,
newI,
newK,
baseOutAmount,
quoteOutAmount,
minBaseReserve,
minQuoteReserve
);
}
// ============ Admin Version Control ============
function version() external pure returns (string memory) {
return "DPPAdmin 1.0.0"; // 1.0.0
}
}