Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
What was wrong?
EIP-7708: ETH transfers emit a log
This is a prospective implementation of EIP-7708 and is not intended as a final candidate for merge. Rather, it is intended to illustrate one approach to the implementation, and to generate feedback that can be used to sharpen the specifications for this EIP.
How was it fixed?
During the development several approaches were considered, but what seemed to make sense in the end was to create a new function for this specific type of log, and to invoke that function from three key places where transfers occur. The first in selfdestruct, the second in call (both in system.py), and the third in execute_code (interpreter.py). By targeting critical paths in the flow of processing transfers, we can minimize implementation footprint and bring sharp focus to the changeset.
An issue that is inherent to the implementation of this EIP is that the Logs are stored in the EVM (_vm/_init.py), which makes it difficult to test in an automated way due to problems accessing the correct instance of the EVM at runtime. A creative approach is needed here. We do not want to sacrifice code coverage unless we have no practical option. In lieu of this, I opted to make local changes to my branch and use the python debugger to gain a view into the state of the system at runtime in order to check that the log parameter was being properly set in the EVM instance during different transfer scenarios.
Cute Animal Picture