Merge branch 'feat/101-first-borrowing-on-debt-tokens' into 'master'

Added return of is first borrowing on debt tokens mint()

Closes #101

See merge request aave-tech/protocol-v2!110
This commit is contained in:
The-3D 2020-10-30 10:58:36 +00:00
commit 386138cc9c
3 changed files with 12 additions and 10 deletions

View File

@ -888,34 +888,34 @@ contract LendingPool is VersionedInitializable, ILendingPool, LendingPoolStorage
oracle oracle
); );
uint256 reserveId = reserve.id;
if (!userConfig.isBorrowing(reserveId)) {
userConfig.setBorrowing(reserveId, true);
}
reserve.updateState(); reserve.updateState();
//caching the current stable borrow rate //caching the current stable borrow rate
uint256 currentStableRate = 0; uint256 currentStableRate = 0;
bool isFirstBorrowing = false;
if ( if (
ReserveLogic.InterestRateMode(vars.interestRateMode) == ReserveLogic.InterestRateMode.STABLE ReserveLogic.InterestRateMode(vars.interestRateMode) == ReserveLogic.InterestRateMode.STABLE
) { ) {
currentStableRate = reserve.currentStableBorrowRate; currentStableRate = reserve.currentStableBorrowRate;
IStableDebtToken(reserve.stableDebtTokenAddress).mint( isFirstBorrowing = IStableDebtToken(reserve.stableDebtTokenAddress).mint(
vars.onBehalfOf, vars.onBehalfOf,
vars.amount, vars.amount,
currentStableRate currentStableRate
); );
} else { } else {
IVariableDebtToken(reserve.variableDebtTokenAddress).mint( isFirstBorrowing = IVariableDebtToken(reserve.variableDebtTokenAddress).mint(
vars.onBehalfOf, vars.onBehalfOf,
vars.amount, vars.amount,
reserve.variableBorrowIndex reserve.variableBorrowIndex
); );
} }
if (isFirstBorrowing) {
userConfig.setBorrowing(reserve.id, true);
}
reserve.updateInterestRates( reserve.updateInterestRates(
vars.asset, vars.asset,
vars.aTokenAddress, vars.aTokenAddress,

View File

@ -97,7 +97,7 @@ contract StableDebtToken is IStableDebtToken, DebtTokenBase {
address user, address user,
uint256 amount, uint256 amount,
uint256 rate uint256 rate
) external override onlyLendingPool { ) external override onlyLendingPool returns(bool) {
MintLocalVars memory vars; MintLocalVars memory vars;
//cumulates the user debt //cumulates the user debt
@ -148,6 +148,8 @@ contract StableDebtToken is IStableDebtToken, DebtTokenBase {
vars.newStableRate, vars.newStableRate,
vars.currentAvgStableRate vars.currentAvgStableRate
); );
return currentBalance == 0;
} }
/** /**

View File

@ -62,7 +62,7 @@ interface IStableDebtToken {
address user, address user,
uint256 amount, uint256 amount,
uint256 rate uint256 rate
) external; ) external returns(bool);
/** /**
* @dev burns debt of the target user. * @dev burns debt of the target user.