The deploy() function of SwanAssetFactory creates instances of SwanAsset. When an asset(Nft) is created _mint() function is called, however this may lead to the nft to be frozen if msg.sender is a contract not supporting ERC721.
Any user can create an asset by calling list, which make a call to deploy function on SwanAssetFactory. The deploy() allows creating swan asset. however when creating an asset _mint function is used. If the _owner is a contract does not support ERC721, The asset will be locked.
As per the documentation of EIP-721:
A wallet/broker/auction application MUST implement the wallet interface if it will accept safe transfers.
Ref: https://eips.ethereum.org/EIPS/eip-721
As per the documentation of ERC721.sol by Openzeppelin:
Lock of Asset
Manual Review
Use safeMint instead of mint to make sure the receiver supports ERC721
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.