mirror of
				https://github.com/Instadapp/dsa-connectors.git
				synced 2024-07-29 22:37:00 +00:00 
			
		
		
		
	
		
			
				
	
	
		
			80 lines
		
	
	
		
			2.6 KiB
		
	
	
	
		
			Solidity
		
	
	
	
	
	
			
		
		
	
	
			80 lines
		
	
	
		
			2.6 KiB
		
	
	
	
		
			Solidity
		
	
	
	
	
	
// SPDX-License-Identifier: MIT
 | 
						|
pragma solidity 0.7.6;
 | 
						|
 | 
						|
/**
 | 
						|
 * @title Aave Protection.
 | 
						|
 * @dev Protect DSA against Liquidation risk on Aave with Gelato.
 | 
						|
 */
 | 
						|
 | 
						|
import {Events} from "./events.sol";
 | 
						|
import {Helpers} from "./helpers.sol";
 | 
						|
 | 
						|
abstract contract GAaveProtectionResolver is Events, Helpers {
 | 
						|
    /// @dev Function for submitting a protection task
 | 
						|
    /// @param _wantedHealthFactor targeted health after protection.
 | 
						|
    /// @param _minimumHealthFactor trigger protection when current health
 | 
						|
    /// factor is below _minimumHealthFactor.
 | 
						|
    /// @param _isPermanent boolean to set a protection as permanent
 | 
						|
    function submitProtection(
 | 
						|
        uint256 _wantedHealthFactor,
 | 
						|
        uint256 _minimumHealthFactor,
 | 
						|
        bool _isPermanent
 | 
						|
    ) external payable {
 | 
						|
        _submitProtection(
 | 
						|
            _wantedHealthFactor,
 | 
						|
            _minimumHealthFactor,
 | 
						|
            _isPermanent
 | 
						|
        );
 | 
						|
        emit LogSubmitProtection(
 | 
						|
            address(this),
 | 
						|
            _protectionAction,
 | 
						|
            _wantedHealthFactor,
 | 
						|
            _minimumHealthFactor,
 | 
						|
            _isPermanent
 | 
						|
        );
 | 
						|
    }
 | 
						|
 | 
						|
    /// @dev Function for modifying a protection task
 | 
						|
    /// @param _wantedHealthFactor targeted health after protection.
 | 
						|
    /// @param _minimumHealthFactor trigger protection when current health
 | 
						|
    /// factor is below _minimumHealthFactor.
 | 
						|
    /// @param _isPermanent boolean to set a protection as permanent
 | 
						|
    function updateProtection(
 | 
						|
        uint256 _wantedHealthFactor,
 | 
						|
        uint256 _minimumHealthFactor,
 | 
						|
        bool _isPermanent
 | 
						|
    ) external payable {
 | 
						|
        _updateProtection(
 | 
						|
            _wantedHealthFactor,
 | 
						|
            _minimumHealthFactor,
 | 
						|
            _isPermanent
 | 
						|
        );
 | 
						|
        emit LogUpdateProtection(
 | 
						|
            address(this),
 | 
						|
            _protectionAction,
 | 
						|
            _wantedHealthFactor,
 | 
						|
            _minimumHealthFactor,
 | 
						|
            _isPermanent
 | 
						|
        );
 | 
						|
    }
 | 
						|
 | 
						|
    /// @dev Function for cancelling a protection task
 | 
						|
    function cancelProtection() external payable {
 | 
						|
        _cancelProtection();
 | 
						|
        emit LogCancelProtection(address(this), _protectionAction);
 | 
						|
    }
 | 
						|
 | 
						|
    /// @dev Function for cancelling and removing allowance
 | 
						|
    /// of aToken to _protectionAction
 | 
						|
    function cancelAndRevoke() external payable {
 | 
						|
        if (_dsaHasProtection()) _cancelProtection();
 | 
						|
        _revokeAllowance();
 | 
						|
        emit LogCancelAndRevoke(address(this), _protectionAction);
 | 
						|
    }
 | 
						|
}
 | 
						|
 | 
						|
contract GAaveProtectionPolygonConnector is GAaveProtectionResolver {
 | 
						|
    // solhint-disable-next-line const-name-snakecase
 | 
						|
    string public constant name = "GelatoAaveProtectionPolygonConnector-v1";
 | 
						|
}
 |