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
|