PreMarkets::_updateTokenBalanceWhenCreateTaker input the wrong parameter where token balance is sent to authority when offer type is ask and msg.sender when offer type is bid.
offerinfo.authority is the offer owner as we can see in the PreMarkets::createOffer.
PreMarkets::_updateTokenBalanceWhenCreateTaker is called in PreMarkets::createTaker.
Let's assume a scenario where a user attempts to create a taker in an ask-offer system where points are sold. However, instead of the deposit amount being credited to the taker (msg.sender), it is incorrectly deposited to the offer owner (offerInfo.authority). Conversely, in the case of a bid offer, the deposit amount is mistakenly deposited to the taker (msg.sender) instead of the offer owner (offerInfo.authority).
Wrong calculation where the msg.sender will not get the token they paid for even thought they had deposited.
Manual Review
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.