Incorrect event is emitted when calling settleAskTaker()
.
Instead of emitting SettledAskTaker
, SettledBidTaker
is emitted.
On line #775
in PreMarkets.sol
SettledBidTaker
is emitted instead of SettledAskTaker
.
Wrong event emitted can lead to inconsistency in off-chain related software.
Manual review.
Emit SettledAskTaker
instead of SettledBidTaker
.
Checking for balance before and after transferring tokens is incompatible with ERC20 tokens that implement fee-on-transfer functionality. This is because fee-on-transfer tokens deduct a fee during the transfer process, causing the post-transfer balance to be less than expected. As a result, simple balance checks may incorrectly flag successful transfers as failures, leading to issues in handling such tokens correctly.
_transfer()
function in TokenManager.sol
Some tokens can lead to DoS of the protocol functionality.
Manual review.
Instead of strictly comparing fromBalanceAft
with fromBalanceBef - _amount
, calculate the actual amount transferred by subtracting fromBalanceAft
from fromBalanceBef
. This allows the function to accommodate fee-on-transfer tokens, where the actualAmountTransferred
might be less than the _amount
.
Based on the protocol team, accepted fee can be adjusted.
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)
Valid low, wrong event emitted
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.