Open hats-bug-reporter[bot] opened 2 months ago
Similar to this: https://github.com/hats-finance/Accumulated-finance-0x75278bcc0fa7c9e3af98654bce195eaf3bb6a784/issues/9#issuecomment-2326031829
It's intended design. Protocol or team does not collect redeem fees.
Redeem minter allows users to instantly redeem baseToken
and does not require processing by multisig admin.
In real world it's used in liquid restaking (e.g. https://accumulated.finance/stake/stmtrg), where base token is rebase LST and multisig admin does not have to do anything with user deposits. Redeem fee, if applied, creates additional revenue to other users that keep and stake LRT.
ok, how owner accessed withdraw()
function would be used in NativeMinterRedeem.sol
. If redeem fee wont be withdrawan then withdraw()
function use is obslate.
Github username: -- Twitter username: -- Submission hash (on-chain): 0x4171fdf94cbd0a8681863d5315b69578ffb7ee7e6ce7c980bc609d86059bcf3a Severity: low
Description: Description\
NativeMinterRedeem.sol
is contract which is used by users to redeem their tokens. StakingTokenstROSE
would be burn and theROSE
is sent to user desired receipient address.The redemption fee is implemented in
previewRedeem()
function which substract fee and send theredeemAmount
as ROSE to recipient address.The issue is that, when the contract owner calls
withdraw()
from inheritedNativeMinter
contract, the totalRedeemFees is not tracked.It should be noted that, totalWithdrawalFees is tracked in case of withdrawals but in case of redeem. This is design descrepancy which must be fixed for redeem.
Recommendations\ Track the
totalRedeemFees
similar tototalWithdrawalFees
in case of withdrawals.Consider below changes in
NativeMinterRedeem
contract.