Comments (1)
The burn() action divides the amount passed by the current index first. The balance is stored in "scaled" format (actual balance/index). Here is the code
function burn(
address user,
address receiverOfUnderlying,
uint256 amount,
uint256 index
) external override onlyLendingPool {
uint256 amountScaled = amount.rayDiv(index);
require(amountScaled != 0, Errors.CT_INVALID_BURN_AMOUNT);
_burn(user, amountScaled);
IERC20(_underlyingAsset).safeTransfer(receiverOfUnderlying, amount);
emit Transfer(user, address(0), amount);
emit Burn(user, receiverOfUnderlying, amount, index);
}
so before calling _burn() the amount is scaled, which guarantees the sub() will not exceed.
from protocol-v2.
Related Issues (20)
- Typo in whitepaper
- IUniswapV2Router02 Interface type appears twice
- wrong `BASE_CURRENCY` in `AaveOracle.sol` on Avalanche mainnet and testnet
- LendingPoolConfigurator initialize local deployment fails with "Invalid Address" Error HOT 2
- const poolAddress = "0x123...";
- Misleading error message when withdrawing insolvent asset
- Incorrect comment in LendingPool::swapBorrowRateMode
- Add the ability to freeze reserves to the emergency admin HOT 1
- Seek the UI corresponding to the current version of the v2 contract
- Error: execution reverted: SafeERC20: low-level call failed with HOT 1
- getReservesData reverts after dev deployment in rinkeby HOT 2
- Chainlink aggregator for WBTC is BTC/ETH instead of WBTC/ETH HOT 1
- Fix problem not allowing accrual of indexes when RF (Reserve Factor) is configured as 100%
- Issue running protocol v2 on custom local node.
- FlashLoan breaks when borrowing renFIL
- AAVE staking rewards redemption error
- `LendingPool.swapBorrowRateMode` natspec documentation for the `rateMode` parameter is misleading HOT 1
- Tracking: Pattern Vetting
- Improve use of `Errors`
- withdrawal of matic V2 error message
Recommend Projects
-
React
A declarative, efficient, and flexible JavaScript library for building user interfaces.
-
Vue.js
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
-
Typescript
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
-
TensorFlow
An Open Source Machine Learning Framework for Everyone
-
Django
The Web framework for perfectionists with deadlines.
-
Laravel
A PHP framework for web artisans
-
D3
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
-
Recommend Topics
-
javascript
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
-
web
Some thing interesting about web. New door for the world.
-
server
A server is a program made to process requests and deliver data to clients.
-
Machine learning
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
-
Visualization
Some thing interesting about visualization, use data art
-
Game
Some thing interesting about game, make everyone happy.
Recommend Org
-
Facebook
We are working to build community through open source technology. NB: members must have two-factor auth.
-
Microsoft
Open source projects and samples from Microsoft.
-
Google
Google ❤️ Open Source for everyone.
-
Alibaba
Alibaba Open Source for everyone
-
D3
Data-Driven Documents codes.
-
Tencent
China tencent open source team.
from protocol-v2.