The sellErc20 function allows the seller to input total price for the token, however in the buyOrder function, msg.value is compared to price which is wrong because msg.value of Ether isn't necessarily comparable to price .
In the fllowing code snippet
msg.value is compared to the order.price and later the seller is transfered to the order.price and in turn the buyer ends up buying the tokens for significantly cheaper price
if the seller intended to sell their erc20 tokes at a price of $100, they end up getting 100 wei from the buyer as payment, this leads to the sellers selling their tokens at a loss.
Manual review
Integrate decentralized price feeds eg chainlink to check the price of ether and compare it to the order.price listed by the seller to resolve the issue
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.