harmonixfi / core-smart-contract

Core smart contracts of Harmonix Finance
https://harmonix.fi/
0 stars 1 forks source link

claimFee function: the fees (performanceFeeAmount and managementFeeAmount) are not reset #117

Open baonguyen1904 opened 2 weeks ago

baonguyen1904 commented 2 weeks ago

Describe the bug

Path: contracts/vaults/restakingDeltaNeutral/Base/BaseDeltaNeutralVault.sol

/**
     * @notice claimFee to claim vault fee.
     */
    function claimFee() external nonReentrant {
        _auth(ROCK_ONYX_ADMIN_ROLE);

        if (vaultState.performanceFeeAmount + vaultState.managementFeeAmount > vaultState.withdrawPoolAmount) {
            IERC20(vaultParams.asset).safeTransfer(msg.sender, vaultState.withdrawPoolAmount);
            return;
        }

        vaultState.withdrawPoolAmount -= (vaultState.performanceFeeAmount + vaultState.managementFeeAmount);
        uint256 claimAmount = vaultState.performanceFeeAmount + vaultState.managementFeeAmount;
        vaultState.performanceFeeAmount = 0;
        vaultState.managementFeeAmount = 0;
        IERC20(vaultParams.asset).safeTransfer(msg.sender, claimAmount);
    }

SafeTransfer Call in Condition: