The protocol's current implementation for token transfers does not support fee-on-transfer tokens.
Within the protocol, the _transfer function located in TokenManager.sol checks token balances before and after a transfer to confirm that the operation was successful. However, these balance checks are not compatible with fee-on-transfer and rebasing tokens, whose balances may change in a way that triggers the function's revert conditions.
Fee-on-transfer tokens apply a fee to the transfer amount, meaning that the recipient's balance increases by less than the amount sent. This discrepancy causes the check toBalanceAft != toBalanceBef + _amount to fail, resulting in the transfer being reverted.
All transfers involving fee-on-transfer ERC20 tokens will fail, rendering these tokens incompatible with the system
Manual review
To resolve this issue, the protocol should revise the _transfer function to accommodate fee-on-transfer tokens.
Valid medium, there are disruptions to the ability to take market actions. The following functions will be disrupted without the possibiliy of reaching settlement, since the respective offers cannot be created/listed regardless of mode when transferring collateral token required to the CapitalPool contract or when refunding token from user to capital pool during relisting. So withdrawal is not an issue - `createOffer()` - reverts [here](https://github.com/Cyfrin/2024-08-tadle/blob/04fd8634701697184a3f3a5558b41c109866e5f8/src/core/PreMarkets.sol#L96-L102) - `listOffer()` - reverts [here](https://github.com/Cyfrin/2024-08-tadle/blob/04fd8634701697184a3f3a5558b41c109866e5f8/src/core/PreMarkets.sol#L355-L362) - `relistOffer()` - reverts [here](https://github.com/Cyfrin/2024-08-tadle/blob/04fd8634701697184a3f3a5558b41c109866e5f8/src/core/PreMarkets.sol#L515-L521) - `createTaker()` - reverts [here](https://github.com/Cyfrin/2024-08-tadle/blob/04fd8634701697184a3f3a5558b41c109866e5f8/src/core/PreMarkets.sol#L831-L836) I believe medium severity is appropriate although the likelihood is high and impact is medium (only some level of disruption i.e. FOT tokens not supported and no funds at risk)
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.