fn erc721_metadata() always returns "" for base_uri in case of Option::Some(...), see here.
It's then destructured here where base_uri will be an empty string, see here.
Now here, it says for uris param:
// ERC721: must be empty if
base_uriis provided, else length must matchids.
With the logic above,base_uriwill always be an empty string i.e.,uris.lengthmust always matchids.
The problem is that new_owners is declared as an empty array, meaning it's length will always be 0 and uris.length won't match ids. The test suite fails to spot that because requests are constructed manually:
Sponsors also confirmed that:
Yes
base_uriwill always be an empty string. There is no method inStarknet ERC721interface to retrievebase_uri.
Yesurisand ids must have the same length.
Incompliance with ERC721, the impact would be requests failures and denial of service.
Manual review.
Implement the full logic to allow uris and new_owners usage.
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.