Escrow doesn't support Fee-on-transfer (or Rebase) token
When creating Escrow contract, the price
argument in constructor is the amount of asset need to transfer to Escrow contract (Line 39). Then on line 40, the escrow contract is initiated with the same price
argument. Up until this point, there seems no potential error happen.
But, when we check the Escrow.sol contract, in the constructor, there is a check on balance
On line 44, there is a check of contract's balance of token, if it's under price
, it will revert.
This will became an issue when the tokenContract (asset in held) is a Fee-on-transfer or Rebase. As the balance will not be the same as the price, it can be less than the price due to fee or rebase.
Thus this conclude that, Escrow contract doesn't work with Fee-on-transfer token or Rebase token.
Escrow contract doesn't work with Fee-on-transfer token or Rebase token.
Manual analysis
Create a whitelist registry for asset that are allowed to be use in Escrow, limiting the usage of Fee-on-transfer or Rebase token
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.