Assessment reports>SupSwap>Informational findings>Incorrectly documented fee
Category: Code Maturity

Incorrectly documented fee

Informational Severity
Informational Impact
N/A Likelihood

Description

The swap fee to liquidity providers documented in the comment is incorrect. See the below code.

// if fee is on, mint liquidity equivalent to 1/6th of the growth in sqrt(k)
function _mintFee(uint112 _reserve0, uint112 _reserve1)
    private
    returns (bool feeOn)
{
    address feeTo = ISupFactory(factory).feeTo();
    feeOn = feeTo != address(0);
    uint256 _kLast = kLast; // gas savings
    if (feeOn) {
        if (_kLast != 0) {
            uint256 rootK = Math.sqrt(uint256(_reserve0).mul(_reserve1));
            uint256 rootKLast = Math.sqrt(_kLast);
            if (rootK > rootKLast) {
                uint256 numerator = totalSupply.mul(rootK.sub(rootKLast));
                uint256 denominator = rootK.mul(3).add(rootKLast);
                uint256 liquidity = numerator / denominator;
                if (liquidity > 0) _mint(feeTo, liquidity);
            }
        }
    } else if (_kLast != 0) {
        kLast = 0;
    }
}

The fee is documented as 1/6, but the actual fee is 1/4.

Recommendations

Correct the comment.

Remediation

Zellic © 2025Back to top ↑