The normal behavior should be that getUserMemorabiliaDetailed()
returns a user's memorabilia tokens efficiently regardless of the total number of collections and items in the system.
The specific issue is that the function uses nested unbounded loops that iterate through all collections and all items within each collection, creating O(n²) complexity that will exceed gas limits as the system scales.
Risk
Likelihood:
Function will be called frequently by frontends to display user collections
System is designed to support multiple collections with many items each
Gas consumption grows quadratically with adoption
Impact:
Function becomes permanently unusable once sufficient collections exist
Frontend integration breaks, preventing users from viewing their assets
No workaround exists without contract upgrade
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.