Files
dodo-contractV2/contracts/lib/FeeRateModel.sol
2020-11-22 18:25:41 +08:00

45 lines
1.2 KiB
Solidity

/*
Copyright 2020 DODO ZOO.
SPDX-License-Identifier: Apache-2.0
*/
pragma solidity 0.6.9;
pragma experimental ABIEncoderV2;
import {InitializableOwnable} from "../lib/InitializableOwnable.sol";
interface IFeeRateModel {
function getFeeRate(address trader) external view returns (uint256);
function init(address owner, uint256 feeRate) external;
function setFeeRate(uint256 newFeeRate) external;
}
contract FeeRateModel is InitializableOwnable {
//DEFAULT
uint256 public _FEE_RATE_;
mapping(address => uint256) feeMapping;
function init(address owner, uint256 feeRate) external {
initOwner(owner);
_FEE_RATE_ = feeRate;
}
function setSpecificFeeRate(address trader, uint256 feeRate) external onlyOwner {
require(trader != address(0), "INVALID ADDRESS!");
feeMapping[trader] = feeRate;
}
function setFeeRate(uint256 newFeeRate) external onlyOwner {
_FEE_RATE_ = newFeeRate;
}
function getFeeRate(address trader) external view returns (uint256) {
uint256 feeRate = feeMapping[trader];
if(feeRate == 0)
return _FEE_RATE_;
return feeRate;
}
}