The RAACTNFT.sol allows users to mint NFT by sending an ERC20 to the contract while minting, and get a NFT that represent a house property.
The issue is that once this is done by calling mint the sent ERC20 are locked forever in the contract.
In the RAAC protocol, we can see in several places that the main token that will be used is crvUSD. This token can be locked in a vault and generate yields for the protocol. This mechanism is not doable with locked tokens on the contract, and they are indeed lost forever as there is no way to retrieve them. Contract is not upgradable.
RAAC Team deployed RAACNft.sol (crvUSD is set as payment token) and and RAACHousePrices
Oracle is called and some houses (tokenId) have a set price in RAACHousePrices
Users start to buy houses by calling RAACNft::mint(tokenId, amount), transferring crvUSD to RAACNft contract.
RAAC teams want to retrieve those crvUSD, but cannot as there is no function for that
All ERC20 sent to RAACNFT contract while minting will be locked forever. RAAC team cannot get it back to repay previous owners of those houses or the mortgage they process to own those houses and sell them on-chain using NFT.
Risks of insolvency of the protocol/company, rendering those NFT worthless and incurring legal implications for NFT owner vs bank or previous home owner.
Manual
There should be a function to retrieve funds on RAACNFT, only callable by ADMIN/OWNER
OR change the mint function to send tokens to a treasury address instead of RAACToken :
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.