Impact: L
Likelihood: L
The return bool value of transfer() function is not checked and this may lead to wrong assumption that the protocol is funded when transfer() returns false.
The issue is in the code of Deploy.s.sol:
Likelihood:
The issue occurs when ERC20::transfer() function returns false and does not revert.
Impact:
The MerkleAirdrop.sol contract may be falsly considered as funded when transfer returns false and this value is not checked.
Override transfer() function in AirdropToken.sol to make it return false:
Add the following test to MerkleAirdropTest.t.sol and run it locally using forge test --mt test_transferReturnsFalse command:
The contract deploy does not revert and the transfer just failed implicitly.
Use SafeERC20 from OpenZeppelin in Deploy.s.sol script:
The contest is live. Earn rewards by submitting a finding.
Submissions are being reviewed by our AI judge. Results will be available in a few minutes.
View all submissionsThe contest is complete and the rewards are being distributed.