整理DVM & DPP admin/factory

This commit is contained in:
mingda
2020-11-30 09:59:01 +08:00
parent 898c5c0fb4
commit 196d424e5a
6 changed files with 45 additions and 9 deletions

View File

@@ -104,7 +104,8 @@ contract DPPAdmin is InitializableOwnable {
} }
// ============ Admin Version Control ============ // ============ Admin Version Control ============
function version() external pure returns (uint256) {
return 100; // 1.0.0 function version() external pure returns (string memory) {
return "DPPAdmin 1.0.0"; // 1.0.0
} }
} }

View File

@@ -57,7 +57,8 @@ contract DVMAdmin is InitializableOwnable {
} }
// ============ Admin Version Control ============ // ============ Admin Version Control ============
function version() external pure returns (uint256) {
return 100; // 1.0.0 function version() external pure returns (string memory) {
return "DVMAdmin 1.0.0"; // 1.0.0
} }
} }

View File

@@ -49,13 +49,13 @@ contract DVMStorage is InitializableOwnable, ReentrancyGuard {
mapping(address => uint256) internal _SHARES_; mapping(address => uint256) internal _SHARES_;
mapping(address => mapping(address => uint256)) internal _ALLOWED_; mapping(address => mapping(address => uint256)) internal _ALLOWED_;
// ================= Permit ====================== // ================= Permit ======================
bytes32 public DOMAIN_SEPARATOR; bytes32 public DOMAIN_SEPARATOR;
// keccak256("Permit(address owner,address spender,uint256 value,uint256 nonce,uint256 deadline)"); // keccak256("Permit(address owner,address spender,uint256 value,uint256 nonce,uint256 deadline)");
bytes32 public constant PERMIT_TYPEHASH = 0x6e71edae12b1b97f4d1f60370fef10105fa2faae0126114a169c64845d6126c9; bytes32
public constant PERMIT_TYPEHASH = 0x6e71edae12b1b97f4d1f60370fef10105fa2faae0126114a169c64845d6126c9;
mapping(address => uint256) public nonces; mapping(address => uint256) public nonces;
// ===============================================
// ============ Variables for Pricing ============ // ============ Variables for Pricing ============

View File

@@ -189,6 +189,4 @@ contract DVMVault is DVMStorage {
_approve(owner, spender, value); _approve(owner, spender, value);
} }
// =========================================================================== // ===========================================================================
// function approveAndCall()
} }

View File

@@ -17,6 +17,8 @@ import {IDPPAdmin} from "../DODOPrivatePool/intf/IDPPAdmin.sol";
import {IPermissionManager} from "../lib/PermissionManager.sol"; import {IPermissionManager} from "../lib/PermissionManager.sol";
contract DPPFactory is Ownable { contract DPPFactory is Ownable {
// ============ Templates ============
address public _CLONE_FACTORY_; address public _CLONE_FACTORY_;
address public _DPP_TEMPLATE_; address public _DPP_TEMPLATE_;
address public _DPP_ADMIN_TEMPLATE_; address public _DPP_ADMIN_TEMPLATE_;
@@ -26,11 +28,24 @@ contract DPPFactory is Ownable {
address public _VALUE_SOURCE_; address public _VALUE_SOURCE_;
address public _DODO_SMART_APPROVE_; address public _DODO_SMART_APPROVE_;
// ============ Registry ============
// base -> quote -> DPP address list // base -> quote -> DPP address list
mapping(address => mapping(address => address[])) public _REGISTRY_; mapping(address => mapping(address => address[])) public _REGISTRY_;
// creator -> DPP address list // creator -> DPP address list
mapping(address => address[]) public _USER_REGISTRY_; mapping(address => address[]) public _USER_REGISTRY_;
// ============ Events ============
event NewDPP(
address indexed baseToken,
address indexed quoteToken,
address indexed creator,
address dpp
);
// ============ Functions ============
constructor( constructor(
address cloneFactory, address cloneFactory,
address dppTemplate, address dppTemplate,
@@ -89,6 +104,7 @@ contract DPPFactory is Ownable {
_REGISTRY_[baseToken][quoteToken].push(dppAddress); _REGISTRY_[baseToken][quoteToken].push(dppAddress);
_USER_REGISTRY_[creator].push(dppAddress); _USER_REGISTRY_[creator].push(dppAddress);
emit NewDPP(baseToken, quoteToken, creator, dppAddress);
} }
function _createFeeRateModel(address owner, uint256 feeRate) function _createFeeRateModel(address owner, uint256 feeRate)
@@ -126,6 +142,8 @@ contract DPPFactory is Ownable {
_DPP_ADMIN_TEMPLATE_ = _newDPPAdminTemplate; _DPP_ADMIN_TEMPLATE_ = _newDPPAdminTemplate;
} }
// ============ View Functions ============
function getPrivatePool(address baseToken, address quoteToken) function getPrivatePool(address baseToken, address quoteToken)
external external
view view

View File

@@ -16,6 +16,8 @@ import {IDVMAdmin} from "../DODOVendingMachine/intf/IDVMAdmin.sol";
import {IPermissionManager} from "../lib/PermissionManager.sol"; import {IPermissionManager} from "../lib/PermissionManager.sol";
contract DVMFactory is Ownable { contract DVMFactory is Ownable {
// ============ Templates ============
address public _CLONE_FACTORY_; address public _CLONE_FACTORY_;
address public _DVM_TEMPLATE_; address public _DVM_TEMPLATE_;
address public _DVM_ADMIN_TEMPLATE_; address public _DVM_ADMIN_TEMPLATE_;
@@ -23,11 +25,24 @@ contract DVMFactory is Ownable {
address public _PERMISSION_MANAGER_TEMPLATE_; address public _PERMISSION_MANAGER_TEMPLATE_;
address public _DEFAULT_GAS_PRICE_SOURCE_; address public _DEFAULT_GAS_PRICE_SOURCE_;
// ============ Registry ============
// base -> quote -> DVM address list // base -> quote -> DVM address list
mapping(address => mapping(address => address[])) public _REGISTRY_; mapping(address => mapping(address => address[])) public _REGISTRY_;
// creator -> DVM address list // creator -> DVM address list
mapping(address => address[]) public _USER_REGISTRY_; mapping(address => address[]) public _USER_REGISTRY_;
// ============ Events ============
event NewDVM(
address indexed baseToken,
address indexed quoteToken,
address indexed creator,
address dvm
);
// ============ Functions ============
constructor( constructor(
address cloneFactory, address cloneFactory,
address dvmTemplate, address dvmTemplate,
@@ -71,6 +86,7 @@ contract DVMFactory is Ownable {
} }
_REGISTRY_[baseToken][quoteToken].push(newVendingMachine); _REGISTRY_[baseToken][quoteToken].push(newVendingMachine);
_USER_REGISTRY_[creator].push(newVendingMachine); _USER_REGISTRY_[creator].push(newVendingMachine);
emit NewDVM(baseToken, quoteToken, creator, newVendingMachine);
} }
function _createFeeRateModel(address owner, uint256 feeRate) function _createFeeRateModel(address owner, uint256 feeRate)
@@ -98,6 +114,8 @@ contract DVMFactory is Ownable {
_DVM_ADMIN_TEMPLATE_ = _newDVMAdminTemplate; _DVM_ADMIN_TEMPLATE_ = _newDVMAdminTemplate;
} }
// ============ View Functions ============
function getVendingMachine(address baseToken, address quoteToken) function getVendingMachine(address baseToken, address quoteToken)
external external
view view