Use call() instead of transfer()
https://github.com/Cyfrin/2024-08-tadle/blob/main/src/core/TokenManager.sol#L169
Gas costs are variable, so smart contracts cannot rely on any specific Gas cost.
Any smart contract that uses transfer() or send() is hard-wired to generate a 2300 Gas cost by forwarding a fixed amount of Gas.
msg.sender cannot receive funds normally, and this vulnerability always exists in smart contracts.
Manual review
When using call(), there is no fixed gas limit. This allows the receiving contract to execute more complex logic. All relevant state variables have been updated before this call to prevent reentrancy attacks.
Invalid, known issues [Medium-2](https://github.com/Cyfrin/2024-08-tadle/issues/1)
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.