fix
This commit is contained in:
@@ -30,6 +30,8 @@ contract DPPFactory is InitializableOwnable {
|
|||||||
address public _DPP_TEMPLATE_;
|
address public _DPP_TEMPLATE_;
|
||||||
address public _DPP_ADMIN_TEMPLATE_;
|
address public _DPP_ADMIN_TEMPLATE_;
|
||||||
|
|
||||||
|
mapping (address => bool) public isAdminListed;
|
||||||
|
|
||||||
// ============ Registry ============
|
// ============ Registry ============
|
||||||
|
|
||||||
// base -> quote -> DPP address list
|
// base -> quote -> DPP address list
|
||||||
@@ -46,9 +48,11 @@ contract DPPFactory is InitializableOwnable {
|
|||||||
address dpp
|
address dpp
|
||||||
);
|
);
|
||||||
|
|
||||||
|
|
||||||
event RemoveDPP(address dpp);
|
event RemoveDPP(address dpp);
|
||||||
|
|
||||||
|
event addAdmin(address admin);
|
||||||
|
event removeAdmin(address admin);
|
||||||
|
|
||||||
constructor(
|
constructor(
|
||||||
address cloneFactory,
|
address cloneFactory,
|
||||||
address dppTemplate,
|
address dppTemplate,
|
||||||
@@ -81,6 +85,7 @@ contract DPPFactory is InitializableOwnable {
|
|||||||
uint256 i,
|
uint256 i,
|
||||||
bool isOpenTwap
|
bool isOpenTwap
|
||||||
) external {
|
) external {
|
||||||
|
require(isAdminListed[msg.sender], "ACCESS_DENIED");
|
||||||
{
|
{
|
||||||
address _dppAddress = dppAddress;
|
address _dppAddress = dppAddress;
|
||||||
address adminModel = _createDPPAdminModel(
|
address adminModel = _createDPPAdminModel(
|
||||||
@@ -131,6 +136,16 @@ contract DPPFactory is InitializableOwnable {
|
|||||||
_DPP_TEMPLATE_ = _newDPPTemplate;
|
_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(
|
function addPoolByAdmin(
|
||||||
address creator,
|
address creator,
|
||||||
address baseToken,
|
address baseToken,
|
||||||
@@ -142,6 +157,27 @@ contract DPPFactory is InitializableOwnable {
|
|||||||
emit NewDPP(baseToken, quoteToken, creator, pool);
|
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(
|
function removePoolByAdmin(
|
||||||
address creator,
|
address creator,
|
||||||
address baseToken,
|
address baseToken,
|
||||||
|
|||||||
@@ -492,6 +492,11 @@ module.exports = async (deployer, network, accounts) => {
|
|||||||
const dodoMineV3RegistryInstance = await DODOMineV3Registry.at(DODOMineV3RegistryAddress);
|
const dodoMineV3RegistryInstance = await DODOMineV3Registry.at(DODOMineV3RegistryAddress);
|
||||||
var tx = await dodoMineV3RegistryInstance.addAdminList(DODOMineV3ProxyAddress);
|
var tx = await dodoMineV3RegistryInstance.addAdminList(DODOMineV3ProxyAddress);
|
||||||
logger.log("DODOMineV3RegistryAddress Init tx: ", tx.tx);
|
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);
|
||||||
}
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user