The fillOrder
function found on lines 157, 321, and 356 (the source function) will always revert due to a coflicting requirement statement built into the modifiers for onlyMarketOrderKeeper
and onlyOffChainOrdersKeepers
. The culprit require statement is on line 565 and is called _requireIsKeeper
.
The problem with the conflicting require statement is in the modifiers that protect the functions holding the _fillOrder
is as follows.
The if statement above requires that if the keeper is not the sender and if the keeper is not address zero then revert.
But the problem is that if you are a valid keeper and also if you are not a valid keeper then the function would revert either way. lol.
The impact is that no one can place or cancel orders.
Manual review.
Amend the _requireIsKeeper
function as follows.
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.