The [asset status check](https://github.com/Cyfrin/2024-10-swan-dria/blob/c8686b199daadcef3161980022e12b66a5304f8e/contracts/swan/Swan.sol#L206) in `swan::relist()` is incorrect because it confirms whether an asset is listed meanwhile it has to check whether an asset is unlisted rather because a listed asset cannot be listed again, it is only a listed asset that has been unlisted that can be relisted.
in `Swan::relist()` we can find this check making sure the asset being called with relist is listed
however reading the natspec below indicates that the asset has to be unlisted because it's round of listing will end making it unlisted but the check above checks wrongly that the asset has to be listed instead of unlisted.
incorrect check in relist
that breaks the invariant of the function
manual review
Check that the asset is unlisted and that its round has ended.
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.