#Summary
The deployment script utilizes the transfer function for sending USDC tokens to the Merkle airdrop contract. However, the use of transfer can be risky as it may revert if the recipient contract does not implement a proper token receiver mechanism.
#Vulnerability Details
The vulnerability arises from the use of the transfer function, which lacks a mechanism for handling failures if the recipient contract does not support token transfers. If the Merkle airdrop contract were to have a fallback function or a receive function that does not handle token transfers properly, the transfer function could revert, potentially resulting in failed token transfers.
#Impact
The impact of this vulnerability could lead to failed token transfers, causing inconvenience to users expecting to receive tokens from the airdrop. Additionally, it could result in unexpected behavior and errors during deployment if proper error handling mechanisms are not in place.
#Tools Used
manual reviewing
#Recommendations
Use Safe Transfer Functions: Consider using the safe transfer functions provided by the OpenZeppelin SafeERC20 library, such as safeTransfer or safeTransferFrom, which include additional checks to handle failed transfers gracefully.
Implement Error Handling: Add proper error handling mechanisms to handle potential failures when interacting with external contracts, such as the Merkle airdrop contract, to provide feedback to users and prevent unexpected behavior.
Verify Token Receiver Contracts: Before performing token transfers, ensure that the recipient contracts implement a proper token receiver mechanism to handle incoming tokens safely. This can help prevent reverts and ensure the successful execution of token transfers.
Thorough Testing: Thoroughly test the deployment script on testnets to ensure its functionality and verify that token transfers occur as expected. Testing in various scenarios can help identify and address potential issues before deployment on the mainnet.
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.