We have this implemented in eth_simulateV1 (add `eth_simulateV1` by KillariDev · Pull Request #484 · ethereum/execution-apis · GitHub) by replicating an ERC20 Transfer(address from, address to, uint256 value) with the logging contract address set to 0xEeeeeEeeeEeEeeEeEeEeeEEEeeeeEeeeeeeeEEeE.
Rationale:
0xEeeeeEeeeEeEeeEeEeEeeEEEeeeeEeeeeeeeEEeEis a defacto standard value that many contracts use when they support both tokens and ETH and they want to include ETH in a mapping and they need a lookup key. Unlike0x0, there isn’t risk of accidentally checking for it by leaving value uninitialized.- Following ERC20
Transferlog makes it so anything that parses ERC20 transfer logs can also parse ETH logs without any additional work. The ERC20 transfer logs contain all of the information desired, (“token”, from, to, amount) so the fit the desired purpose well.