mirror of
				https://github.com/Instadapp/dsa-connectors.git
				synced 2024-07-29 22:37:00 +00:00 
			
		
		
		
	
		
			
				
	
	
		
			115 lines
		
	
	
		
			4.1 KiB
		
	
	
	
		
			Solidity
		
	
	
	
	
	
			
		
		
	
	
			115 lines
		
	
	
		
			4.1 KiB
		
	
	
	
		
			Solidity
		
	
	
	
	
	
//SPDX-License-Identifier: MIT
 | 
						|
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
 |