Fix comment in ERC4626 on decimals default (#4060)
Co-authored-by: Hadrien Croubois <hadrien.croubois@gmail.com>
This commit is contained in:
committed by
GitHub
parent
df814dd374
commit
227473e88c
@ -79,9 +79,10 @@ abstract contract ERC4626 is ERC20, IERC4626 {
|
||||
}
|
||||
|
||||
/**
|
||||
* @dev Decimals are read from the underlying asset in the constructor and cached. If this fails (e.g., the asset
|
||||
* has not been created yet), the cached value is set to a default obtained by `super.decimals()` (which depends on
|
||||
* inheritance but is most likely 18). Override this function in order to set a guaranteed hardcoded value.
|
||||
* @dev Decimals are computed by adding the decimal offset on top of the underlying asset's decimals. This
|
||||
* "original" value is cached during construction of the vault contract. If this read operation fails (e.g., the
|
||||
* asset has not been created yet), a default of 18 is used to represent the underlying asset's decimals.
|
||||
*
|
||||
* See {IERC20Metadata-decimals}.
|
||||
*/
|
||||
function decimals() public view virtual override(IERC20Metadata, ERC20) returns (uint8) {
|
||||
@ -194,9 +195,6 @@ abstract contract ERC4626 is ERC20, IERC4626 {
|
||||
|
||||
/**
|
||||
* @dev Internal conversion function (from assets to shares) with support for rounding direction.
|
||||
*
|
||||
* Will revert if assets > 0, totalSupply > 0 and totalAssets = 0. That corresponds to a case where any asset
|
||||
* would represent an infinite amount of shares.
|
||||
*/
|
||||
function _convertToShares(uint256 assets, Math.Rounding rounding) internal view virtual returns (uint256) {
|
||||
return assets.mulDiv(totalSupply() + 10 ** _decimalsOffset(), totalAssets() + 1, rounding);
|
||||
@ -213,7 +211,7 @@ abstract contract ERC4626 is ERC20, IERC4626 {
|
||||
* @dev Deposit/mint common workflow.
|
||||
*/
|
||||
function _deposit(address caller, address receiver, uint256 assets, uint256 shares) internal virtual {
|
||||
// If _asset is ERC777, `transferFrom` can trigger a reenterancy BEFORE the transfer happens through the
|
||||
// If _asset is ERC777, `transferFrom` can trigger a reentrancy BEFORE the transfer happens through the
|
||||
// `tokensToSend` hook. On the other hand, the `tokenReceived` hook, that is triggered after the transfer,
|
||||
// calls the vault, which is assumed not malicious.
|
||||
//
|
||||
|
||||
Reference in New Issue
Block a user