mirror of
https://github.com/Instadapp/dsa-connectors.git
synced 2024-07-29 22:37:00 +00:00
🎸 feat: integrated MappingController for cream and reflexer
This commit is contained in:
parent
92bb147509
commit
9035da5a36
|
@ -14,6 +14,10 @@ interface CTokenInterface {
|
|||
function underlying() external view returns (address);
|
||||
}
|
||||
|
||||
interface MappingControllerInterface {
|
||||
function hasRole(address,address) public view returns (bool);
|
||||
}
|
||||
|
||||
abstract contract Helpers {
|
||||
|
||||
struct TokenMap {
|
||||
|
@ -24,24 +28,29 @@ abstract contract Helpers {
|
|||
event LogCTokenAdded(string indexed name, address indexed token, address indexed ctoken);
|
||||
event LogCTokenUpdated(string indexed name, address indexed token, address indexed ctoken);
|
||||
|
||||
ConnectorsInterface public immutable connectors;
|
||||
// TODO: thrilok, verify this address
|
||||
ConnectorsInterface public constant connectors = ConnectorsInterface(0xFE2390DAD597594439f218190fC2De40f9Cf1179);
|
||||
|
||||
|
||||
// InstaIndex Address.
|
||||
IndexInterface public constant instaIndex = IndexInterface(0x2971AdFa57b20E5a416aE5a708A8655A9c74f723);
|
||||
// TODO: add address for MappingController
|
||||
MappingControllerInterface public constant mappingController = MappingControllerInterface(address(0));
|
||||
|
||||
address public constant ethAddr = 0xEeeeeEeeeEeEeeEeEeEeeEEEeeeeEeeeeeeeEEeE;
|
||||
|
||||
mapping (string => TokenMap) public cTokenMapping;
|
||||
|
||||
modifier isChief {
|
||||
require(msg.sender == instaIndex.master() || connectors.chief(msg.sender), "not-an-chief");
|
||||
modifier hasRoleOrIsChief {
|
||||
require(
|
||||
msg.sender == instaIndex.master() ||
|
||||
connectors.chief(msg.sender) ||
|
||||
mappingController.hasRole(address(this), msg.sender),
|
||||
"not-an-chief"
|
||||
);
|
||||
_;
|
||||
}
|
||||
|
||||
constructor(address _connectors) {
|
||||
connectors = ConnectorsInterface(_connectors);
|
||||
}
|
||||
|
||||
function _addCtokenMapping(
|
||||
string[] memory _names,
|
||||
address[] memory _tokens,
|
||||
|
@ -112,7 +121,7 @@ abstract contract Helpers {
|
|||
string[] memory _names,
|
||||
address[] memory _tokens,
|
||||
address[] memory _ctokens
|
||||
) external isChief {
|
||||
) external hasRoleOrIsChief {
|
||||
_addCtokenMapping(_names, _tokens, _ctokens);
|
||||
}
|
||||
|
||||
|
|
|
@ -13,22 +13,32 @@ interface IndexInterface {
|
|||
function master() external view returns (address);
|
||||
}
|
||||
|
||||
|
||||
interface MappingControllerInterface {
|
||||
function hasRole(address,address) public view returns (bool);
|
||||
}
|
||||
contract Helpers {
|
||||
ConnectorsInterface public constant connectors = ConnectorsInterface(0x7D53E606308A2E0A1D396F30dc305cc7f8483436);
|
||||
// TODO: thrilok, verify this address
|
||||
ConnectorsInterface public constant connectors = ConnectorsInterface(0xFE2390DAD597594439f218190fC2De40f9Cf1179);
|
||||
IndexInterface public constant instaIndex = IndexInterface(0x2971AdFa57b20E5a416aE5a708A8655A9c74f723);
|
||||
// TODO: add address for MappingController
|
||||
MappingControllerInterface public constant mappingController = MappingControllerInterface(address(0));
|
||||
uint public version = 1;
|
||||
|
||||
mapping (bytes32 => address) public collateralJoinMapping;
|
||||
|
||||
event LogAddCollateralJoinMapping(address[] collateralJoin);
|
||||
|
||||
modifier isChief {
|
||||
require(connectors.chief(msg.sender) || instaIndex.master() == msg.sender, "not-a-chief");
|
||||
modifier hasRoleOrIsChief {
|
||||
require(
|
||||
msg.sender == instaIndex.master() ||
|
||||
connectors.chief(msg.sender) ||
|
||||
mappingController.hasRole(address(this), msg.sender),
|
||||
"not-an-chief"
|
||||
);
|
||||
_;
|
||||
}
|
||||
|
||||
function addCollateralJoinMapping(address[] memory collateralJoins) public isChief {
|
||||
function addCollateralJoinMapping(address[] memory collateralJoins) public hasRoleOrIsChief {
|
||||
_addCollateralJoinMapping(collateralJoins);
|
||||
}
|
||||
|
||||
|
|
Loading…
Reference in New Issue
Block a user