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);
|
function underlying() external view returns (address);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
interface MappingControllerInterface {
|
||||||
|
function hasRole(address,address) public view returns (bool);
|
||||||
|
}
|
||||||
|
|
||||||
abstract contract Helpers {
|
abstract contract Helpers {
|
||||||
|
|
||||||
struct TokenMap {
|
struct TokenMap {
|
||||||
|
@ -24,24 +28,29 @@ abstract contract Helpers {
|
||||||
event LogCTokenAdded(string indexed name, address indexed token, address indexed ctoken);
|
event LogCTokenAdded(string indexed name, address indexed token, address indexed ctoken);
|
||||||
event LogCTokenUpdated(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.
|
// InstaIndex Address.
|
||||||
IndexInterface public constant instaIndex = IndexInterface(0x2971AdFa57b20E5a416aE5a708A8655A9c74f723);
|
IndexInterface public constant instaIndex = IndexInterface(0x2971AdFa57b20E5a416aE5a708A8655A9c74f723);
|
||||||
|
// TODO: add address for MappingController
|
||||||
|
MappingControllerInterface public constant mappingController = MappingControllerInterface(address(0));
|
||||||
|
|
||||||
address public constant ethAddr = 0xEeeeeEeeeEeEeeEeEeEeeEEEeeeeEeeeeeeeEEeE;
|
address public constant ethAddr = 0xEeeeeEeeeEeEeeEeEeEeeEEEeeeeEeeeeeeeEEeE;
|
||||||
|
|
||||||
mapping (string => TokenMap) public cTokenMapping;
|
mapping (string => TokenMap) public cTokenMapping;
|
||||||
|
|
||||||
modifier isChief {
|
modifier hasRoleOrIsChief {
|
||||||
require(msg.sender == instaIndex.master() || connectors.chief(msg.sender), "not-an-chief");
|
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(
|
function _addCtokenMapping(
|
||||||
string[] memory _names,
|
string[] memory _names,
|
||||||
address[] memory _tokens,
|
address[] memory _tokens,
|
||||||
|
@ -112,7 +121,7 @@ abstract contract Helpers {
|
||||||
string[] memory _names,
|
string[] memory _names,
|
||||||
address[] memory _tokens,
|
address[] memory _tokens,
|
||||||
address[] memory _ctokens
|
address[] memory _ctokens
|
||||||
) external isChief {
|
) external hasRoleOrIsChief {
|
||||||
_addCtokenMapping(_names, _tokens, _ctokens);
|
_addCtokenMapping(_names, _tokens, _ctokens);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -13,22 +13,32 @@ interface IndexInterface {
|
||||||
function master() external view returns (address);
|
function master() external view returns (address);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
interface MappingControllerInterface {
|
||||||
|
function hasRole(address,address) public view returns (bool);
|
||||||
|
}
|
||||||
contract Helpers {
|
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);
|
IndexInterface public constant instaIndex = IndexInterface(0x2971AdFa57b20E5a416aE5a708A8655A9c74f723);
|
||||||
|
// TODO: add address for MappingController
|
||||||
|
MappingControllerInterface public constant mappingController = MappingControllerInterface(address(0));
|
||||||
uint public version = 1;
|
uint public version = 1;
|
||||||
|
|
||||||
mapping (bytes32 => address) public collateralJoinMapping;
|
mapping (bytes32 => address) public collateralJoinMapping;
|
||||||
|
|
||||||
event LogAddCollateralJoinMapping(address[] collateralJoin);
|
event LogAddCollateralJoinMapping(address[] collateralJoin);
|
||||||
|
|
||||||
modifier isChief {
|
modifier hasRoleOrIsChief {
|
||||||
require(connectors.chief(msg.sender) || instaIndex.master() == msg.sender, "not-a-chief");
|
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);
|
_addCollateralJoinMapping(collateralJoins);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
Loading…
Reference in New Issue
Block a user