Purchase may fail due to unbounded outer and inner loops.
The Purchase() function is defined as:
Firstly a call made to _checkRoundPhase(), which makes a call to getRoundPhase():
in the function getRoundPhase, we go over marketParams in while loop. Here the loop is unbounded. After cashing the round in the Purchase(), The output of the oracle result is decoded into assetsarray. There isfor loopthat iterates over the assets array, makes external calls to swan contract. Combining previously mentioned outer loop(while loop) , the external call , the unboundedfor loopand also thatassets array could get large, it is likely that the tx will run out of gas.
Purchases may not be possible due to DOS condition.
Manual Review
Consider limiting the loops
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.