Treasury fails to provide multi-token support due to outdated token transfer method.
Per docs, treasury should provide multi-token support:
Purpose
Securely manage protocol funds with multi-token support
Notes
The contract supports multiple ERC20 tokens
However, in deposit() function outdated token transfer method is used - transferFrom() instead of safeTransferFrom():
For example, if no-revert-on-failure tokens are used (e.g. ZRX, EURS), deposit will be successful and state variables will be updated, even if transferFrom() was unsuccessful and 0 tokens was sent to treasury.
Or FoT tokens (e.g. STA, PAXG) can be used - state variables will show incorrect values.
Also some tokens that returns void instead of bool (e.g. USDT, BNB, OMG) cannot be used.
Treasury fails to provide multi-token support due to outdated token transfer method.
Manual review.
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.