Skip to content

Commit

Permalink
fix: Follow check-effects-interactions pattern more strictly
Browse files Browse the repository at this point in the history
  • Loading branch information
LHerskind committed Sep 30, 2021
1 parent 9494299 commit 7e7980a
Show file tree
Hide file tree
Showing 5 changed files with 11 additions and 12 deletions.
2 changes: 1 addition & 1 deletion contracts/protocol/configuration/PoolAddressesProvider.sol
Original file line number Diff line number Diff line change
Expand Up @@ -141,8 +141,8 @@ contract PoolAddressesProvider is Ownable, IPoolAddressesProvider {

if (proxyAddress == address(0)) {
proxy = new InitializableImmutableAdminUpgradeabilityProxy(address(this));
proxy.initialize(newAddress, params);
_addresses[id] = address(proxy);
proxy.initialize(newAddress, params);
emit ProxyCreated(id, address(proxy));
} else {
proxy.upgradeToAndCall(newAddress, params);
Expand Down
2 changes: 1 addition & 1 deletion contracts/protocol/pool/Pool.sol
Original file line number Diff line number Diff line change
Expand Up @@ -396,9 +396,9 @@ contract Pool is VersionedInitializable, IPool, PoolStorage {
if (accruedToTreasury != 0) {
uint256 normalizedIncome = reserve.getNormalizedIncome();
uint256 amountToMint = accruedToTreasury.rayMul(normalizedIncome);
reserve.accruedToTreasury = 0;
IAToken(reserve.aTokenAddress).mintToTreasury(amountToMint, normalizedIncome);

reserve.accruedToTreasury = 0;
emit MintedToTreasury(assetAddress, amountToMint);
}
}
Expand Down
8 changes: 4 additions & 4 deletions contracts/protocol/tokenization/AToken.sol
Original file line number Diff line number Diff line change
Expand Up @@ -117,14 +117,14 @@ contract AToken is
uint256 accumulatedInterest = scaledBalance.rayMul(index) -
scaledBalance.rayMul(_userState[user].additionalData);

_userState[user].additionalData = Helpers.castUint128(index);

_burn(user, Helpers.castUint128(amountScaled));

if (receiverOfUnderlying != address(this)) {
IERC20(_underlyingAsset).safeTransfer(receiverOfUnderlying, amount);
}

_userState[user].additionalData = Helpers.castUint128(index);

emit Transfer(user, address(0), amount);
if (accumulatedInterest > amount) {
emit Mint(user, accumulatedInterest - amount, index);
Expand All @@ -146,10 +146,10 @@ contract AToken is
uint256 accumulatedInterest = scaledBalance.rayMul(index) -
scaledBalance.rayMul(_userState[user].additionalData);

_mint(user, Helpers.castUint128(amountScaled));

_userState[user].additionalData = Helpers.castUint128(index);

_mint(user, Helpers.castUint128(amountScaled));

emit Transfer(address(0), user, amount);
emit Mint(user, amount + accumulatedInterest, index);

Expand Down
2 changes: 1 addition & 1 deletion contracts/protocol/tokenization/IncentivizedERC20.sol
Original file line number Diff line number Diff line change
Expand Up @@ -109,8 +109,8 @@ abstract contract IncentivizedERC20 is Context, IERC20, IERC20Detailed {
uint256 amount
) public virtual override returns (bool) {
uint128 castAmount = Helpers.castUint128(amount);
_transfer(sender, recipient, castAmount);
_approve(sender, _msgSender(), _allowances[sender][_msgSender()] - castAmount);
_transfer(sender, recipient, castAmount);
return true;
}

Expand Down
9 changes: 4 additions & 5 deletions contracts/protocol/tokenization/VariableDebtToken.sol
Original file line number Diff line number Diff line change
Expand Up @@ -107,10 +107,10 @@ contract VariableDebtToken is DebtTokenBase, IVariableDebtToken {
uint256 accumulatedInterest = scaledBalance.rayMul(index) -
scaledBalance.rayMul(_userState[user].additionalData);

_mint(onBehalfOf, Helpers.castUint128(amountScaled));

_userState[user].additionalData = Helpers.castUint128(index);

_mint(onBehalfOf, Helpers.castUint128(amountScaled));

emit Transfer(address(0), onBehalfOf, amount + accumulatedInterest);
emit Mint(user, onBehalfOf, amount + accumulatedInterest, index);

Expand All @@ -127,14 +127,13 @@ contract VariableDebtToken is DebtTokenBase, IVariableDebtToken {
require(amountScaled != 0, Errors.CT_INVALID_BURN_AMOUNT);

uint256 scaledBalance = super.balanceOf(user);

uint256 accumulatedInterest = scaledBalance.rayMul(index) -
scaledBalance.rayMul(_userState[user].additionalData);

_burn(user, Helpers.castUint128(amountScaled));

_userState[user].additionalData = Helpers.castUint128(index);

_burn(user, Helpers.castUint128(amountScaled));

if (accumulatedInterest > amount) {
emit Transfer(address(0), user, accumulatedInterest - amount);
emit Mint(user, user, accumulatedInterest - amount, index);
Expand Down

0 comments on commit 7e7980a

Please sign in to comment.