The Treasury
contract receives RAAC
tokens directly via safeTransfer
in the FeeCollector _processDistributions
function. This bypasses the deposit
function, which is responsible for updating the treasury's internal balance tracking (_balances
and _totalValue
). As a result, funds sent to the treasury will not be reflected in its internal state, making them inaccessible for withdrawal by managers. This could lead to permanent loss of protocol funds.
The FeeCollector uses safeTransfer
to send RAAC
tokens to the treasury:
This bypasses the deposit
function, which updates the treasury's internal state variables (_balances
and _totalValue
). The treasury's internal state is not updated when tokens are sent directly via safeTransfer
. When a manager attempts to withdraw these tokens, the transaction will revert due to an underflow
Fees sent to the treasury will be stuck and inaccessible.
Manual
Replace the direct safeTransfer
call with a call to the deposit
function to ensure the treasury's internal state is updated correctly.
The contest is live. Earn rewards by submitting a finding.
This is your time to appeal against judgements on your submissions.
Appeals are being carefully reviewed by our judges.