123456789101112131415161718192021222324252627282930313233 |
- // SPDX-License-Identifier: MIT
- pragma solidity ^0.8.0;
- import "../../token/ERC20/extensions/ERC4626.sol";
- abstract contract ERC4626DecimalsMock is ERC4626 {
- using Math for uint256;
- uint8 private immutable _decimals;
- constructor(uint8 decimals_) {
- _decimals = decimals_;
- }
- function decimals() public view virtual override returns (uint8) {
- return _decimals;
- }
- function _initialConvertToShares(
- uint256 assets,
- Math.Rounding rounding
- ) internal view virtual override returns (uint256 shares) {
- return assets.mulDiv(10 ** decimals(), 10 ** super.decimals(), rounding);
- }
- function _initialConvertToAssets(
- uint256 shares,
- Math.Rounding rounding
- ) internal view virtual override returns (uint256 assets) {
- return shares.mulDiv(10 ** super.decimals(), 10 ** decimals(), rounding);
- }
- }
|