mirror of
				https://github.com/Instadapp/dsa-connectors.git
				synced 2024-07-29 22:37:00 +00:00 
			
		
		
		
	
		
			
				
	
	
		
			114 lines
		
	
	
		
			4.1 KiB
		
	
	
	
		
			Solidity
		
	
	
	
	
	
			
		
		
	
	
			114 lines
		
	
	
		
			4.1 KiB
		
	
	
	
		
			Solidity
		
	
	
	
	
	
| pragma solidity ^0.7.0;
 | |
| pragma experimental ABIEncoderV2;
 | |
| 
 | |
| // Compound Helpers
 | |
| interface CTokenInterface {
 | |
|     function mint(uint mintAmount) external returns (uint);
 | |
|     function redeem(uint redeemTokens) external returns (uint);
 | |
|     function borrow(uint borrowAmount) external returns (uint);
 | |
|     function repayBorrow(uint repayAmount) external returns (uint);
 | |
| 
 | |
|     function borrowBalanceCurrent(address account) external returns (uint);
 | |
|     function redeemUnderlying(uint redeemAmount) external returns (uint);
 | |
| 
 | |
|     function balanceOf(address owner) external view returns (uint256 balance);
 | |
| }
 | |
| 
 | |
| interface CETHInterface {
 | |
|     function mint() external payable;
 | |
|     function repayBorrow() external payable;
 | |
| }
 | |
| 
 | |
| interface CompoundMappingInterface {
 | |
|     function cTokenMapping(string calldata tokenId) external view returns (address);
 | |
|     function getMapping(string calldata tokenId) external view returns (address, address);
 | |
| }
 | |
| 
 | |
| interface ComptrollerInterface {
 | |
|     function enterMarkets(address[] calldata cTokens) external returns (uint[] memory);
 | |
| }
 | |
| // End Compound Helpers
 | |
| 
 | |
| // Aave v1 Helpers
 | |
| interface AaveV1Interface {
 | |
|     function deposit(address _reserve, uint256 _amount, uint16 _referralCode) external payable;
 | |
|     function redeemUnderlying(
 | |
|         address _reserve,
 | |
|         address payable _user,
 | |
|         uint256 _amount,
 | |
|         uint256 _aTokenBalanceAfterRedeem
 | |
|     ) external;
 | |
|     
 | |
|     function setUserUseReserveAsCollateral(address _reserve, bool _useAsCollateral) external;
 | |
|     function getUserReserveData(address _reserve, address _user) external view returns (
 | |
|         uint256 currentATokenBalance,
 | |
|         uint256 currentBorrowBalance,
 | |
|         uint256 principalBorrowBalance,
 | |
|         uint256 borrowRateMode,
 | |
|         uint256 borrowRate,
 | |
|         uint256 liquidityRate,
 | |
|         uint256 originationFee,
 | |
|         uint256 variableBorrowIndex,
 | |
|         uint256 lastUpdateTimestamp,
 | |
|         bool usageAsCollateralEnabled
 | |
|     );
 | |
|     function borrow(address _reserve, uint256 _amount, uint256 _interestRateMode, uint16 _referralCode) external;
 | |
|     function repay(address _reserve, uint256 _amount, address payable _onBehalfOf) external payable;
 | |
| }
 | |
| 
 | |
| interface AaveV1ProviderInterface {
 | |
|     function getLendingPool() external view returns (address);
 | |
|     function getLendingPoolCore() external view returns (address);
 | |
| }
 | |
| 
 | |
| interface AaveV1CoreInterface {
 | |
|     function getReserveATokenAddress(address _reserve) external view returns (address);
 | |
| }
 | |
| 
 | |
| interface ATokenV1Interface {
 | |
|     function redeem(uint256 _amount) external;
 | |
|     function balanceOf(address _user) external view returns(uint256);
 | |
|     function principalBalanceOf(address _user) external view returns(uint256);
 | |
| 
 | |
|     function allowance(address, address) external view returns (uint);
 | |
|     function approve(address, uint) external;
 | |
|     function transfer(address, uint) external returns (bool);
 | |
|     function transferFrom(address, address, uint) external returns (bool);
 | |
| }
 | |
| // End Aave v1 Helpers
 | |
| 
 | |
| // Aave v2 Helpers
 | |
| interface AaveV2Interface {
 | |
|     function deposit(address _asset, uint256 _amount, address _onBehalfOf, uint16 _referralCode) external;
 | |
|     function withdraw(address _asset, uint256 _amount, address _to) external;
 | |
|     function borrow(
 | |
|         address _asset,
 | |
|         uint256 _amount,
 | |
|         uint256 _interestRateMode,
 | |
|         uint16 _referralCode,
 | |
|         address _onBehalfOf
 | |
|     ) external;
 | |
|     function repay(address _asset, uint256 _amount, uint256 _rateMode, address _onBehalfOf) external;
 | |
|     function setUserUseReserveAsCollateral(address _asset, bool _useAsCollateral) external;
 | |
| }
 | |
| 
 | |
| interface AaveV2LendingPoolProviderInterface {
 | |
|     function getLendingPool() external view returns (address);
 | |
| }
 | |
| 
 | |
| // Aave Protocol Data Provider
 | |
| interface AaveV2DataProviderInterface {
 | |
|     function getUserReserveData(address _asset, address _user) external view returns (
 | |
|         uint256 currentATokenBalance,
 | |
|         uint256 currentStableDebt,
 | |
|         uint256 currentVariableDebt,
 | |
|         uint256 principalStableDebt,
 | |
|         uint256 scaledVariableDebt,
 | |
|         uint256 stableBorrowRate,
 | |
|         uint256 liquidityRate,
 | |
|         uint40 stableRateLastUpdated,
 | |
|         bool usageAsCollateralEnabled
 | |
|     );
 | |
| }
 | |
| // End Aave v2 Helpers
 | 
