Finance.deposit()
does a transferFrom()
under the hood. The EURS token, on transferFrom()
, transfers:transferFrom()
call), but right now the Finance app only requests approval for the first transfer. So when a user attempts to deposit EURS using the Finance app, the fee amount hasn't been approved and the second transfer for the fee fails, reverting the entire transaction.transferFrom()
like it has for this mechanism makes EURS incompatible with the ERC20 standard. Under the ERC20 standard there is a 1:1 approval to transfer ratio, but the extra fee transfer implemented by EURS changes this assumption and will likely break a lot of existing token-handling contracts.