Received report from hacker at ETHWarsaw that EtheruemFeeProxy transferWithReferenceAndFee() reverts if feeAmount is set to 0. The workaround was to set 1 wei fee. 👍
The EthereumFeeProxy transfers fees using .transfer() which has a hardcoded gas limit of 2300. Smart contract wallets like Safe have logic in their payable fallback() functions that require gas so .transfer() is not compatible with recipients that are smart contract wallets. Use .call() instead.
Problems
Received report from hacker at ETHWarsaw that EtheruemFeeProxytransferWithReferenceAndFee()
reverts if feeAmount is set to 0. The workaround was to set 1 wei fee. 👍The
EthereumFeeProxy
transfers fees using.transfer()
which has a hardcoded gas limit of 2300. Smart contract wallets like Safe have logic in theirpayable fallback()
functions that require gas so.transfer()
is not compatible with recipients that are smart contract wallets. Use.call()
instead.Definition of Done
FixEthereumFeeProxy
to allow 0 feeEthereumFeeProxy
to usecall()
instead oftransfer()
for transferring feesPossible Follow-ups
1113
Migrated from Asana: https://app.asana.com/0/1203912381456855/1205450558867535/f