mirror of
				https://github.com/Instadapp/yield-contract.git
				synced 2024-07-29 21:47:29 +00:00 
			
		
		
		
	moved signers to deployed contracts
This commit is contained in:
		
							parent
							
								
									52fbd8c0fc
								
							
						
					
					
						commit
						beaa67232e
					
				|  | @ -8,10 +8,13 @@ contract Controller { | ||||||
|   event LogUpdateMaster(address indexed master); |   event LogUpdateMaster(address indexed master); | ||||||
|   event LogEnableConnector(address indexed connector); |   event LogEnableConnector(address indexed connector); | ||||||
|   event LogDisableConnector(address indexed connector); |   event LogDisableConnector(address indexed connector); | ||||||
|  |   event LogAddSigner(address indexed signer); | ||||||
|  |   event LogRemoveSigner(address indexed signer); | ||||||
| 
 | 
 | ||||||
|   address private newMaster; |   address private newMaster; | ||||||
|   address public master; |   address public master; | ||||||
|   mapping (address => bool) public connectors; |   mapping (address => bool) public connectors; | ||||||
|  |   mapping (address => bool) public signer; | ||||||
| 
 | 
 | ||||||
|   modifier isMaster() { |   modifier isMaster() { | ||||||
|     require(msg.sender == master, "not-master"); |     require(msg.sender == master, "not-master"); | ||||||
|  | @ -36,21 +39,37 @@ contract Controller { | ||||||
|     emit LogUpdateMaster(master); |     emit LogUpdateMaster(master); | ||||||
|   } |   } | ||||||
| 
 | 
 | ||||||
|   // enable flusher connector |   // enable connector | ||||||
|   function enableConnector(address _connector) external isChief { |   function enableConnector(address _connector) external isMaster { | ||||||
|     require(!connectors[_connector], "already-enabled"); |     require(!connectors[_connector], "already-enabled"); | ||||||
|     require(_connector != address(0), "invalid-connector"); |     require(_connector != address(0), "invalid-connector"); | ||||||
|     connectors[_connector] = true; |     connectors[_connector] = true; | ||||||
|     emit LogEnableConnector(_connector); |     emit LogEnableConnector(_connector); | ||||||
|   } |   } | ||||||
| 
 | 
 | ||||||
|   // disable flusher connector |   // disable connector | ||||||
|   function disableConnector(address _connector) external isChief { |   function disableConnector(address _connector) external isMaster { | ||||||
|     require(connectors[_connector], "already-disabled"); |     require(connectors[_connector], "already-disabled"); | ||||||
|     delete connectors[_connector]; |     delete connectors[_connector]; | ||||||
|     emit LogDisableConnector(_connector); |     emit LogDisableConnector(_connector); | ||||||
|   } |   } | ||||||
| 
 | 
 | ||||||
|  |   // enable signer | ||||||
|  |   function enableSigner(address _signer) external isMaster { | ||||||
|  |     require(_signer != address(0), "invalid-address"); | ||||||
|  |     require(!signer[_signer], "signer-already-enabled"); | ||||||
|  |     signer[_signer] = true; | ||||||
|  |     emit LogAddSigner(_signer); | ||||||
|  |   } | ||||||
|  | 
 | ||||||
|  |   // disable signer | ||||||
|  |   function disableSigner(address _signer) external isMaster { | ||||||
|  |     require(_signer != address(0), "invalid-address"); | ||||||
|  |     require(signer[_signer], "signer-already-disabled"); | ||||||
|  |     delete signer[_signer]; | ||||||
|  |     emit LogRemoveSigner(_signer); | ||||||
|  |   } | ||||||
|  | 
 | ||||||
|   // check if connectors[] are enabled |   // check if connectors[] are enabled | ||||||
|   function isConnector(address[] calldata _connectors) external view returns (bool isOk) { |   function isConnector(address[] calldata _connectors) external view returns (bool isOk) { | ||||||
|     isOk = true; |     isOk = true; | ||||||
|  |  | ||||||
|  | @ -3,7 +3,7 @@ | ||||||
| pragma solidity ^0.6.8; | pragma solidity ^0.6.8; | ||||||
| pragma experimental ABIEncoderV2; | pragma experimental ABIEncoderV2; | ||||||
| 
 | 
 | ||||||
| interface RegistryInterface { | interface DeployerInterface { | ||||||
|   function signer(address) external view returns (bool);  |   function signer(address) external view returns (bool);  | ||||||
|   function isConnector(address[] calldata) external view returns (bool); |   function isConnector(address[] calldata) external view returns (bool); | ||||||
| } | } | ||||||
|  | @ -13,7 +13,7 @@ contract Flusher { | ||||||
| 
 | 
 | ||||||
|   string constant public name = "Flusher-v1"; |   string constant public name = "Flusher-v1"; | ||||||
| 
 | 
 | ||||||
|   RegistryInterface public constant registry = RegistryInterface(address(0)); // TODO - Change while deploying |   DeployerInterface public constant deployer = DeployerInterface(address(0)); // TODO - Change while deploying | ||||||
| 
 | 
 | ||||||
|   function spell(address _target, bytes memory _data) internal { |   function spell(address _target, bytes memory _data) internal { | ||||||
|     require(_target != address(0), "target-invalid"); |     require(_target != address(0), "target-invalid"); | ||||||
|  | @ -29,9 +29,9 @@ contract Flusher { | ||||||
|   } |   } | ||||||
| 
 | 
 | ||||||
|   function cast(address[] calldata _targets, bytes[] calldata _datas) external payable { |   function cast(address[] calldata _targets, bytes[] calldata _datas) external payable { | ||||||
|     require(registry.signer(msg.sender), "not-signer"); |     require(deployer.signer(msg.sender), "not-signer"); | ||||||
|     require(_targets.length == _datas.length , "invalid-array-length"); |     require(_targets.length == _datas.length , "invalid-array-length"); | ||||||
|     require(registry.isConnector(_targets), "not-connector"); |     require(deployer.isConnector(_targets), "not-connector"); | ||||||
|     for (uint i = 0; i < _targets.length; i++) { |     for (uint i = 0; i < _targets.length; i++) { | ||||||
|         spell(_targets[i], _datas[i]); |         spell(_targets[i], _datas[i]); | ||||||
|     } |     } | ||||||
|  |  | ||||||
|  | @ -11,8 +11,6 @@ contract Registry { | ||||||
| 
 | 
 | ||||||
|   event LogAddChief(address indexed chief); |   event LogAddChief(address indexed chief); | ||||||
|   event LogRemoveChief(address indexed chief); |   event LogRemoveChief(address indexed chief); | ||||||
|   event LogAddSigner(address indexed signer); |  | ||||||
|   event LogRemoveSigner(address indexed signer); |  | ||||||
|   event LogUpdatePoolLogic(address token, address newLogic); |   event LogUpdatePoolLogic(address token, address newLogic); | ||||||
|   event LogUpdateFee(address token, uint newFee); |   event LogUpdateFee(address token, uint newFee); | ||||||
|   event LogUpdateCap(address token, uint newFee); |   event LogUpdateCap(address token, uint newFee); | ||||||
|  | @ -22,7 +20,6 @@ contract Registry { | ||||||
|   IndexInterface public constant instaIndex = IndexInterface(0x2971AdFa57b20E5a416aE5a708A8655A9c74f723); |   IndexInterface public constant instaIndex = IndexInterface(0x2971AdFa57b20E5a416aE5a708A8655A9c74f723); | ||||||
| 
 | 
 | ||||||
|   mapping (address => bool) public chief; |   mapping (address => bool) public chief; | ||||||
|   mapping (address => bool) public signer; |  | ||||||
|   mapping (address => address) public poolLogic; |   mapping (address => address) public poolLogic; | ||||||
|   mapping (address => uint) public poolCap; |   mapping (address => uint) public poolCap; | ||||||
|   mapping (address => uint) public fee; |   mapping (address => uint) public fee; | ||||||
|  | @ -60,28 +57,6 @@ contract Registry { | ||||||
|     emit LogRemoveChief(_chief); |     emit LogRemoveChief(_chief); | ||||||
|   } |   } | ||||||
| 
 | 
 | ||||||
|   /** |  | ||||||
|     * @dev Enable New Signer. |  | ||||||
|     * @param _signer Address of the new signer. |  | ||||||
|   */ |  | ||||||
|   function enableSigner(address _signer) external isChief { |  | ||||||
|     require(_signer != address(0), "invalid-address"); |  | ||||||
|     require(!signer[_signer], "signer-already-enabled"); |  | ||||||
|     signer[_signer] = true; |  | ||||||
|     emit LogAddSigner(_signer); |  | ||||||
|   } |  | ||||||
| 
 |  | ||||||
|   /** |  | ||||||
|     * @dev Disable Signer. |  | ||||||
|     * @param _signer Address of the existing signer. |  | ||||||
|   */ |  | ||||||
|   function disableSigner(address _signer) external isChief { |  | ||||||
|     require(_signer != address(0), "invalid-address"); |  | ||||||
|     require(signer[_signer], "signer-already-disabled"); |  | ||||||
|     delete signer[_signer]; |  | ||||||
|     emit LogRemoveSigner(_signer); |  | ||||||
|   } |  | ||||||
| 
 |  | ||||||
|   /** |   /** | ||||||
|     * @dev update pool rate logic |     * @dev update pool rate logic | ||||||
|     * @param _pool pool address |     * @param _pool pool address | ||||||
|  |  | ||||||
		Loading…
	
		Reference in New Issue
	
	Block a user
	 Sowmay Jain
						Sowmay Jain