mirror of
https://github.com/Instadapp/aave-protocol-v2.git
synced 2024-07-29 21:47:30 +00:00
56 lines
1.7 KiB
Solidity
56 lines
1.7 KiB
Solidity
|
// SPDX-License-Identifier: agpl-3.0
|
||
|
pragma solidity 0.6.12;
|
||
|
|
||
|
import {IScaledBalanceToken} from './IScaledBalanceToken.sol';
|
||
|
|
||
|
/**
|
||
|
* @title IVariableDebtToken
|
||
|
* @author Aave
|
||
|
* @notice Defines the basic interface for a variable debt token.
|
||
|
**/
|
||
|
interface IVariableDebtToken is IScaledBalanceToken {
|
||
|
/**
|
||
|
* @dev Emitted after the mint action
|
||
|
* @param from The address performing the mint
|
||
|
* @param onBehalfOf The address of the user on which behalf minting has been performed
|
||
|
* @param value The amount to be minted
|
||
|
* @param index The last index of the reserve
|
||
|
**/
|
||
|
event Mint(address indexed from, address indexed onBehalfOf, uint256 value, uint256 index);
|
||
|
|
||
|
/**
|
||
|
* @dev Mints debt token to the `onBehalfOf` address
|
||
|
* @param user The address receiving the borrowed underlying, being the delegatee in case
|
||
|
* of credit delegate, or same as `onBehalfOf` otherwise
|
||
|
* @param onBehalfOf The address receiving the debt tokens
|
||
|
* @param amount The amount of debt being minted
|
||
|
* @param index The variable debt index of the reserve
|
||
|
* @return `true` if the the previous balance of the user is 0
|
||
|
**/
|
||
|
function mint(
|
||
|
address user,
|
||
|
address onBehalfOf,
|
||
|
uint256 amount,
|
||
|
uint256 index
|
||
|
) external returns (bool);
|
||
|
|
||
|
/**
|
||
|
* @dev Emitted when variable debt is burnt
|
||
|
* @param user The user which debt has been burned
|
||
|
* @param amount The amount of debt being burned
|
||
|
* @param index The index of the user
|
||
|
**/
|
||
|
event Burn(address indexed user, uint256 amount, uint256 index);
|
||
|
|
||
|
/**
|
||
|
* @dev Burns user variable debt
|
||
|
* @param user The user which debt is burnt
|
||
|
* @param index The variable debt index of the reserve
|
||
|
**/
|
||
|
function burn(
|
||
|
address user,
|
||
|
uint256 amount,
|
||
|
uint256 index
|
||
|
) external;
|
||
|
}
|