This commit is contained in:
owen05
2021-10-09 10:30:43 +08:00
parent a1f377b6a7
commit 1b6decb18e
2 changed files with 42 additions and 1 deletions

View File

@@ -30,6 +30,8 @@ contract DPPFactory is InitializableOwnable {
address public _DPP_TEMPLATE_;
address public _DPP_ADMIN_TEMPLATE_;
mapping (address => bool) public isAdminListed;
// ============ Registry ============
// base -> quote -> DPP address list
@@ -46,9 +48,11 @@ contract DPPFactory is InitializableOwnable {
address dpp
);
event RemoveDPP(address dpp);
event addAdmin(address admin);
event removeAdmin(address admin);
constructor(
address cloneFactory,
address dppTemplate,
@@ -81,6 +85,7 @@ contract DPPFactory is InitializableOwnable {
uint256 i,
bool isOpenTwap
) external {
require(isAdminListed[msg.sender], "ACCESS_DENIED");
{
address _dppAddress = dppAddress;
address adminModel = _createDPPAdminModel(
@@ -131,6 +136,16 @@ contract DPPFactory is InitializableOwnable {
_DPP_TEMPLATE_ = _newDPPTemplate;
}
function addAdminList (address contractAddr) external onlyOwner {
isAdminListed[contractAddr] = true;
emit addAdmin(contractAddr);
}
function removeAdminList (address contractAddr) external onlyOwner {
isAdminListed[contractAddr] = false;
emit removeAdmin(contractAddr);
}
function addPoolByAdmin(
address creator,
address baseToken,
@@ -142,6 +157,27 @@ contract DPPFactory is InitializableOwnable {
emit NewDPP(baseToken, quoteToken, creator, pool);
}
function batchAddPoolByAdmin(
address[] memory creators,
address[] memory baseTokens,
address[] memory quoteTokens,
address[] memory pools
) external onlyOwner {
require(creators.length == baseTokens.length,"PARAMS_INVALID");
require(creators.length == quoteTokens.length,"PARAMS_INVALID");
require(creators.length == pools.length,"PARAMS_INVALID");
for(uint256 i = 0; i < creators.length; i++) {
address creator = creators[i];
address baseToken = baseTokens[i];
address quoteToken = quoteTokens[i];
address pool = pools[i];
_REGISTRY_[baseToken][quoteToken].push(pool);
_USER_REGISTRY_[creator].push(pool);
emit NewDPP(baseToken, quoteToken, creator, pool);
}
}
function removePoolByAdmin(
address creator,
address baseToken,

View File

@@ -492,6 +492,11 @@ module.exports = async (deployer, network, accounts) => {
const dodoMineV3RegistryInstance = await DODOMineV3Registry.at(DODOMineV3RegistryAddress);
var tx = await dodoMineV3RegistryInstance.addAdminList(DODOMineV3ProxyAddress);
logger.log("DODOMineV3RegistryAddress Init tx: ", tx.tx);
//DPPFactory add DODProxy as admin
const dppFactoryInstance = await DPPFactory.at(DppFactoryAddress);
var tx = await dppFactoryInstance.addAdminList(DODOV2ProxyAddress);
logger.log("DPPFactory Init tx: ", tx.tx);
}
}