While creating an Offer a user can mistakely send more Ether than required and get less amount value saved for the Offer.
When user creating an Offer he can send a native token (ETH) with it that will be save as params.amount in the Offer:
In TokenManager it has a check to be sure amount is more or equal to `msg.value` :
However, none of these functions have a check to see if the value equal to msg.value is saved for OfferInfo.
A user may accidentally send more Eth than they specified in params.amount and this value will be stored in the Offer.
For example,
Bob wants to create an offer and specify the params.amount as 1_000_000, but he wanted to write 10_000_000. He sends the required amount of Ether (10_000_000) but only receives 1_000_000. When he will try to cancel the Offer and get a refund, he will get exactly 1_000_000 but not the amount of ether he sent.
While creating an Offer a user can mistakely send more Ether than required and get less amount value saved for the Offer.
Manual review
In case of Ether transfer, cosider adding a check to make sure params.amountis equal to msg.value when crating a new offer, like:
Invalid, these are by default, invalid based on codehawks [general guidelines](https://docs.codehawks.com/hawks-auditors/how-to-determine-a-finding-validity#findings-that-may-be-invalid). The check implemented is simply a sufficiency check, it is users responsibility to only send an appropriate amount of native tokens where amount == msg.value when native token is intended to be used as collateral (which will subsequently be deposited as wrapped token). All excess ETH can be rescued using the `Rescuable.sol` contract. > Users sending ETH/native tokens > If contracts allow users to send tokens acc111identally.
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.