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;
 | |
| pragma abicoder v2;
 | |
| 
 | |
| /**
 | |
|  * @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 GAaveProtectionMainnetConnector is GAaveProtectionResolver {
 | |
|     // solhint-disable-next-line const-name-snakecase
 | |
|     string public constant name = "GAaveProtectionMainnetConnector-v1";
 | |
| } | 
