mirror of
https://github.com/Instadapp/dsa-connectors.git
synced 2024-07-29 22:37:00 +00:00
80 lines
2.1 KiB
Solidity
80 lines
2.1 KiB
Solidity
// SPDX-License-Identifier: MIT
|
|
pragma solidity 0.7.6;
|
|
pragma abicoder v2;
|
|
|
|
struct ReserveData {
|
|
//stores the reserve configuration
|
|
ReserveConfigurationMap configuration;
|
|
//the liquidity index. Expressed in ray
|
|
uint128 liquidityIndex;
|
|
//variable borrow index. Expressed in ray
|
|
uint128 variableBorrowIndex;
|
|
//the current supply rate. Expressed in ray
|
|
uint128 currentLiquidityRate;
|
|
//the current variable borrow rate. Expressed in ray
|
|
uint128 currentVariableBorrowRate;
|
|
//the current stable borrow rate. Expressed in ray
|
|
uint128 currentStableBorrowRate;
|
|
uint40 lastUpdateTimestamp;
|
|
//tokens addresses
|
|
address aTokenAddress;
|
|
address stableDebtTokenAddress;
|
|
address variableDebtTokenAddress;
|
|
//address of the interest rate strategy
|
|
address interestRateStrategyAddress;
|
|
//the id of the reserve. Represents the position in the list of the active reserves
|
|
uint8 id;
|
|
}
|
|
|
|
struct ReserveConfigurationMap {
|
|
//bit 0-15: LTV
|
|
//bit 16-31: Liq. threshold
|
|
//bit 32-47: Liq. bonus
|
|
//bit 48-55: Decimals
|
|
//bit 56: Reserve is active
|
|
//bit 57: reserve is frozen
|
|
//bit 58: borrowing is enabled
|
|
//bit 59: stable rate borrowing enabled
|
|
//bit 60-63: reserved
|
|
//bit 64-79: reserve factor
|
|
uint256 data;
|
|
}
|
|
|
|
interface LendingPoolInterface {
|
|
function getReservesList() external view returns (address[] memory);
|
|
|
|
function getReserveData(address asset)
|
|
external
|
|
view
|
|
returns (ReserveData memory);
|
|
}
|
|
|
|
interface AaveServicesInterface {
|
|
function submitTask(
|
|
address _action,
|
|
bytes memory _taskData,
|
|
bool _isPermanent
|
|
) external;
|
|
|
|
function cancelTask(address _action) external;
|
|
|
|
function updateTask(
|
|
address _action,
|
|
bytes memory _data,
|
|
bool _isPermanent
|
|
) external;
|
|
|
|
function taskByUsersAction(address _user, address _action)
|
|
external
|
|
view
|
|
returns (bytes32);
|
|
}
|
|
|
|
interface IERC20 {
|
|
function approve(address spender, uint256 amount) external returns (bool);
|
|
|
|
function allowance(address owner, address spender)
|
|
external
|
|
view
|
|
returns (uint256);
|
|
} |