code-423n4 / 2022-05-bunker-findings

1 stars 0 forks source link

Gas Optimizations #86

Open code423n4 opened 2 years ago

code423n4 commented 2 years ago

[G-01] Function redeemAllowed() could be simplified.

Description

Function redeemAllowed() could be simplified.

function redeemAllowed(address cAsset, address redeemer, uint redeemTokens) external returns (uint) {
    uint allowed = redeemAllowedInternal(cAsset, redeemer, redeemTokens);
    if (allowed != uint(Error.NO_ERROR)) {
        return allowed;
    }

    // Keep the flywheel moving
    // updateCompSupplyIndex(cAsset);
    // distributeSupplierComp(cAsset, redeemer);

    return uint(Error.NO_ERROR);
}

could be rewritten to

function redeemAllowed(address cAsset, address redeemer, uint redeemTokens) external returns (uint) {
    return redeemAllowedInternal(cAsset, redeemer, redeemTokens);
}

Recommended Mitigation Steps

Consider rewriting

-----------------------------------------------------------------

[G-02] Cheaper for loop

Description

This:

for (uint256 i = 0; i < len; i++) {
    ...
}

can be optimized to

for (uint256 i; i < len;) {
    ...
    unchecked { ++i };
}

Recommended Mitigation Steps

Consider rewriting

-----------------------------------------------------------------