fix: vm tracing should ignore upper dirty bits in call - #80
Merged
fubuloubu merged 2 commits intoDec 4, 2025
Conversation
eliteWalrus4164
force-pushed
the
fix-call-address-truncate
branch
from
October 17, 2025 12:02
691ed08 to
4a032d3
Compare
Evm CALL, STATICCALL, DELEGATECALL opcodes naturally ignore the upper dirty bits of the address argument, but the vmTrace module validates the address argument strictly. Take as an example the transaction `0x679ea9d6528c1fffa631799832c5ee97ee352a3469464803bdfe8281e9f1c0ec` on ethereum mainnet, during which a call is made to the address `44000000000004444c5dc75cb358380d2e3de08a90` (21 bytes).
eliteWalrus4164
force-pushed
the
fix-call-address-truncate
branch
from
October 17, 2025 12:06
4a032d3 to
11e8a17
Compare
fubuloubu
approved these changes
Dec 3, 2025
fubuloubu
enabled auto-merge (squash)
December 3, 2025 21:12
fubuloubu
disabled auto-merge
December 4, 2025 02:41
Member
|
Okay can't figure out why CI won't run, but lgtm |
Member
|
Thanks for the PR (sorry for not noticing it sooner) released in https://github.com/ApeWorX/evm-trace/releases/tag/v0.2.7 |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
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.
Evm CALL, STATICCALL, DELEGATECALL opcodes naturally ignore the upper dirty bits of the address argument, but the vmTrace module validates the address argument strictly.
Take as an example the transaction
0x679ea9d6528c1fffa631799832c5ee97ee352a3469464803bdfe8281e9f1c0econ ethereum mainnet, during which a call is made to the address44000000000004444c5dc75cb358380d2e3de08a90(21 bytes).What I did
Truncate the bytes representation of the stack element to 20 bytes before using the pydantic validation (which will pad left when the value is less than 20 bytes).
fixes: #
How I did it
How to verify it
Checklist