15,000 USDC
View results
Submission Details
Severity: gas

Change the constant variable style to save gas

Summary

Constant state variables can be changed to save gas.

Vulnerability Details

Constant state variables can be set as private and get returned in one function.

Impact

Improve gas saving and simplicity

Tools Used

Manual review

Recommendations

This is how to do it in file DSCEngine.sol:

- function getAdditionalFeedPrecision() external pure returns (uint256) {
- return ADDITIONAL_FEED_PRECISION; // @audit can create a function to return the constant value in one function to save gas
- }
- function getPrecision() external pure returns (uint256) {
- return PRECISION;
- }
function calculateHealthFactor(uint256 totalDscMinted, uint256 collateralValueInUsd)
external
pure
returns (uint256)
{
return _calculateHealthFactor(totalDscMinted, collateralValueInUsd);
}
function getHealthFactor(address user) external view returns (uint256) {
return _healthFactor(user);
}
- function getLiquidationBonus() external pure returns (uint256) {
- return LIQUIDATION_BONUS;
- }
function getCollateralTokenPriceFeed(address token) external view returns (address) {
return s_priceFeeds[token];
}
function getCollateralTokens() external view returns (address[] memory) {
return s_collateralTokens;
}
- function getMinHealthFactor() external pure returns (uint256) {
- return MIN_HEALTH_FACTOR;
- }
- function getLiquidationThreshold() external pure returns (uint256) {
- return LIQUIDATION_THRESHOLD;
- }
function getCollateralBalanceOfUser(address user, address token) external view returns (uint256) {
return s_collateralDeposited[user][token];
}
function getDsc() external view returns (address) {
return address(i_dsc);
}
+ function getConstants() external pure returns (uint256, uint256, uint256, uint256, uint256, uint256) {
+ return (
+ ADDITIONAL_FEED_PRECISION,
+ PRECISION,
+ LIQUIDATION_THRESHOLD,
+ LIQUIDATION_PRECISION,
+ MIN_HEALTH_FACTOR,
+ LIQUIDATION_BONUS
+ );
+ }
+}

Support

FAQs

Can't find an answer? Chat with us on Discord, Twitter or Linkedin.