Files
dodo-contractV2/contracts/DODOVendorMachine/impl/DVM.sol

66 lines
1.9 KiB
Solidity
Raw Normal View History

2020-10-23 01:16:52 +08:00
/*
Copyright 2020 DODO ZOO.
SPDX-License-Identifier: Apache-2.0
*/
pragma solidity 0.6.9;
pragma experimental ABIEncoderV2;
2020-11-05 00:26:45 +08:00
import {IFeeRateModel} from "../../intf/IFeeRateModel.sol";
import {IPermissionManager} from "../../lib/PermissionManager.sol";
2020-11-18 17:51:50 +08:00
import {IExternalValue} from "../../lib/ExternalValue.sol";
import {IERC20} from "../../intf/IERC20.sol";
2020-10-23 01:16:52 +08:00
import {DVMTrader} from "./DVMTrader.sol";
import {DVMFunding} from "./DVMFunding.sol";
import {DVMVault} from "./DVMVault.sol";
2020-11-05 00:26:45 +08:00
contract DVM is DVMTrader, DVMFunding {
2020-10-23 01:16:52 +08:00
function init(
address owner,
address maintainer,
2020-11-18 17:51:50 +08:00
address baseTokenAddress,
address quoteTokenAddress,
2020-10-23 01:16:52 +08:00
address lpFeeRateModel,
address mtFeeRateModel,
2020-11-05 00:26:45 +08:00
address tradePermissionManager,
2020-11-11 16:42:00 +08:00
address gasPriceSource,
2020-10-23 01:16:52 +08:00
uint256 i,
2020-11-05 00:26:45 +08:00
uint256 k
2020-10-23 01:16:52 +08:00
) external {
initOwner(owner);
2020-11-18 17:51:50 +08:00
_BASE_TOKEN_ = IERC20(baseTokenAddress);
_QUOTE_TOKEN_ = IERC20(quoteTokenAddress);
2020-10-23 01:16:52 +08:00
_LP_FEE_RATE_MODEL_ = IFeeRateModel(lpFeeRateModel);
_MT_FEE_RATE_MODEL_ = IFeeRateModel(mtFeeRateModel);
2020-11-05 00:26:45 +08:00
_TRADE_PERMISSION_ = IPermissionManager(tradePermissionManager);
2020-11-18 17:51:50 +08:00
_GAS_PRICE_LIMIT_ = IExternalValue(gasPriceSource);
2020-11-05 00:26:45 +08:00
_MAINTAINER_ = maintainer;
2020-10-23 01:16:52 +08:00
_I_ = i;
_K_ = k;
2020-11-18 17:51:50 +08:00
string memory connect = "_";
string memory suffix = "DLP";
string memory uid = string(abi.encodePacked(address(this)));
name = string(
abi.encodePacked(
suffix,
connect,
_BASE_TOKEN_.symbol(),
connect,
_QUOTE_TOKEN_.symbol(),
connect,
uid
)
);
symbol = "DLP";
decimals = _BASE_TOKEN_.decimals();
2020-11-05 00:26:45 +08:00
}
// ============ Version Control ============
function version() external pure returns (uint256) {
return 100; // 1.0.0
2020-10-23 01:16:52 +08:00
}
}