If sponsors send prizes in diffrent tokens for example one of sposors send JPYC and other one send USDC and so on. Only one from tokens can be send to winners as prize other will be locked in contract forever
If in proxy have more then one token , other tokens will be locked forever. Because in Distributor.sol contract have only one function from which oranizator can send prizes distribute this function can be call only from ProxyFactory with function deployProxyAndDistribute if organizator use that function to send prizes for one of tekens in contract because in Distributor contract function distribute accept only one address (is not array) other tokens will be locked in contract forever. If organizator try to use function deployProxyAndDistribute in ProxyFactory.sol second time function will revert because Proxy.sol is already deployed with that salt.
Locked tokens in contract forever because deployProxyAndDistribute can be used only one time.
Manual review
To mitingate this issue you can use many path
Add token address to be send as array with multiple tokens addresses
or
Add function which can be called by organizator to send prizes of other tokens (without trying to deploy proxy again)
or
Allow function 'distribute' in Distributor.sol to be called by Proxy not only from ProxyFactory.sol
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.