The incorrect authorization prevents users from points settlement via the DeliveryPlace.settleAskTaker
function. This causes asset losses if users fail to settle: "If sellers fail to settle in time after the settlement period is over, they will lose their collateral funds and the buyer could claim compensation from your collateral from the smart contract. In the near future, users can set a dynamic collateral deposit." (https://tadle.gitbook.io/tadle/how-tadle-works/features-and-terminologies/settlement-and-collateral-rate)
The DeliveryPlace.settleAskTaker
function is used for points settlement and should check if the caller is the stock authority but checks the offer authority instead
The authorities in these orders can be different in common case:
PreMarkets.sol:
This way sellers can not settle points and can lose their collateral
Assets losses due to unexpected behavior.
Manual Review
Consider checking if a caller is the stock authority.
Valid high severity, when taker offers are created pointing to a `offer`, the relevant `stockInfoMap` offers are created with the owner of the offer aka `authority`, set as the creater of the offer, as seen [here](https://github.com/Cyfrin/2024-08-tadle/blob/04fd8634701697184a3f3a5558b41c109866e5f8/src/core/PreMarkets.sol#L245). Because of the wrong check within settleAskTaker, it will permanently DoS the final settlement functionality for taker offers for the maker that listed the original offer, essentially bricking the whole functionality of the market i.e. maker will always get refunded the original collateral, and takers will never be able to transact the original points put up by the maker. This occurs regardless of market mode.
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.