The RAACNFT
contract allows users to mint NFTs by transferring ERC20 tokens to the contract. However, the contract does not provide any function to withdraw these tokens. As a result, the ERC20 tokens sent by users during the minting process will be permanently locked in the contract, leading to a loss of funds.
The mint
function in the RAACNFT
contract transfers ERC20 tokens from the user to the contract using token.safeTransferFrom
.
However, there is no mechanism or function in the contract to withdraw these tokens. This means that any ERC20 tokens sent to the contract during the minting process will remain stuck in the contract forever.
Permanent Lock of Funds: The ERC20 tokens transferred to the contract during minting cannot be retrieved, leading to a permanent loss of funds.
Contract Owner's Loss: If the contract owner intended to collect these tokens, they will be unable to access them.
The impact is High, the likelihood is High, so the severity is High.
Manual Review
To fix this issue, add a function that allows the contract owner (or a designated address) to withdraw the ERC20 tokens from the contract.
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.