deposit() Causes Loss of Yield DistributionThe deposit() function no longer calculates or applies protocol fees to the AssetToken exchange rate. As a result, deposits do not contribute to yield accrual for existing holders, breaking the intended economic model of the protocol.
The current implementation of deposit() is:
Unlike the previous implementation, the function no longer executes:
Because of this:
No fee is calculated during deposits.
No fee is added to the AssetToken accounting.
The exchange rate remains unchanged after deposits.
Existing AssetToken holders receive no value accrual from new deposits.
The protocol's fee accrual mechanism is effectively disabled for deposits.
Users depositing assets receive the full amount of AssetTokens based on the current exchange rate, while no portion of the deposited value is redistributed to existing holders through exchange rate appreciation.
This breaks the expected yield distribution model and may result in a loss of protocol revenue and holder rewards.
Assume:
Exchange rate = 1.0
Deposit amount = 1,000 tokens
Intended fee = 0.3%
Expected behavior:
Fee = 3 tokens
Exchange rate increases through updateExchangeRate()
Existing holders benefit from accrued value
Actual behavior:
User receives AssetTokens corresponding to the full 1,000-token deposit
No fee is calculated
Exchange rate remains unchanged
Existing holders receive no benefit
Restore the fee accrual logic within deposit():
This ensures that deposit fees are correctly reflected in the exchange rate and distributed to AssetToken holders as intended.
The contest is live. Earn rewards by submitting a finding.
Submissions are being reviewed by our AI judge. Results will be available in a few minutes.
View all submissionsThe contest is complete and the rewards are being distributed.