• When the borrowing fee is actually charged, in one place (MK-004, MK-018).

    The contract applies the same two conditions everywhere it charges the fee:

    • on open, !isRecoveryMode && !isAccountFeeExempt(borrower) (BorrowerOperations.sol:637-643);
    • on a debt increase, the same pair (:810-818);
    • on refinance, exemption alone, because the whole path already requires normal mode (:1024, :1034-1036).

    Kept as one exported pure function so the rule lives in a single place, is testable without a chain, and cannot drift between the preview and the write path.

    Parameters

    • isRecoveryMode: boolean
    • feeExempt: boolean

    Returns boolean