mirror of
				https://github.com/Instadapp/dsa-connectors.git
				synced 2024-07-29 22:37:00 +00:00 
			
		
		
		
	
		
			
				
	
	
		
			47 lines
		
	
	
		
			1.4 KiB
		
	
	
	
		
			Solidity
		
	
	
	
	
	
			
		
		
	
	
			47 lines
		
	
	
		
			1.4 KiB
		
	
	
	
		
			Solidity
		
	
	
	
	
	
//SPDX-License-Identifier: MIT
 | 
						|
pragma solidity ^0.7.0;
 | 
						|
 | 
						|
/**
 | 
						|
 * @title Authority.
 | 
						|
 * @dev Manage Authorities to DSA.
 | 
						|
 */
 | 
						|
 
 | 
						|
import { AccountInterface } from "../../common/interfaces.sol";
 | 
						|
import { Helpers } from "./helpers.sol";
 | 
						|
import { Events } from "./events.sol";
 | 
						|
 | 
						|
abstract contract AuthorityResolver is Events, Helpers {
 | 
						|
    /**
 | 
						|
     * @dev Add New authority
 | 
						|
     * @notice Add an address as account authority
 | 
						|
     * @param authority The authority Address.
 | 
						|
     */
 | 
						|
    function add(
 | 
						|
        address authority
 | 
						|
    ) external payable returns (string memory _eventName, bytes memory _eventParam) {
 | 
						|
        AccountInterface(address(this)).enable(authority);
 | 
						|
 | 
						|
        _eventName = "LogAddAuth(address,address)";
 | 
						|
        _eventParam = abi.encode(msg.sender, authority);
 | 
						|
    }
 | 
						|
 | 
						|
    /**
 | 
						|
     * @dev Remove authority
 | 
						|
     * @notice Remove an address as account authority
 | 
						|
     * @param authority The authority Address.
 | 
						|
     */
 | 
						|
    function remove(
 | 
						|
        address authority
 | 
						|
    ) external payable returns (string memory _eventName, bytes memory _eventParam) {
 | 
						|
        require(checkAuthCount() > 1, "Removing-all-authorities");
 | 
						|
        AccountInterface(address(this)).disable(authority);
 | 
						|
 | 
						|
        _eventName = "LogRemoveAuth(address,address)";
 | 
						|
        _eventParam = abi.encode(msg.sender, authority);
 | 
						|
    }
 | 
						|
}
 | 
						|
 | 
						|
contract ConnectV2AuthArbitrum is AuthorityResolver {
 | 
						|
    string public constant name = "Auth-v1";
 | 
						|
}
 |