Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Apply trace patch for CALL trace issue #1654

Merged

Conversation

vcastellm
Copy link
Contributor

@vcastellm vcastellm commented Jun 22, 2023

Description

There's a mismatch in the debug_traceTransaction endpoint output between geth and Edge, specifically:

  • For SSTORE tracer has permuted key and value reading from the stack
  • CALL instruction is not correctly traced. New environment (stack/memory/storage) need to be created for message call, and at the moment they are mixed.

This PR fixes both issues, permuting the order of SSTORE ops output in the trace, and creating a new EVM environment for each sub CALL in the tracing output.

Fixes #1590

Changes include

  • Bugfix (non-breaking change that solves an issue)
  • Hotfix (change that solves an urgent issue, and requires immediate attention)
  • New feature (non-breaking change that adds functionality)
  • Breaking change (change that is not backwards-compatible and/or changes current functionality)

Checklist

  • I have assigned this PR to myself
  • I have added at least 1 reviewer
  • I have added the relevant labels
  • I have updated the official documentation
  • I have added sufficient documentation in code

Testing

  • I have tested this code with the official test suite
  • I have tested this code manually

Manual tests

Please complete this section if you ran manual tests for this functionality, otherwise delete it

@vcastellm vcastellm added the bug fix Functionality that fixes a bug label Jun 22, 2023
@vcastellm vcastellm self-assigned this Jun 22, 2023
@vcastellm vcastellm marked this pull request as ready for review June 22, 2023 13:46
@vcastellm vcastellm requested a review from a team June 22, 2023 13:46
@vcastellm
Copy link
Contributor Author

vcastellm commented Jun 22, 2023

This is the diff before and after the changes for a sample contract call:

image

@vcastellm vcastellm requested a review from a team June 26, 2023 15:41
@vcastellm vcastellm merged commit 4813213 into develop Jun 26, 2023
@vcastellm vcastellm deleted the EVM-717-tracer-bugs-related-to-sstore-and-call-staticcall branch June 26, 2023 19:55
@github-actions github-actions bot locked and limited conversation to collaborators Jun 26, 2023
Sign up for free to subscribe to this conversation on GitHub. Already have an account? Sign in.
Labels
bug fix Functionality that fixes a bug
Projects
None yet
Development

Successfully merging this pull request may close these issues.

Tracer bugs related to SSTORE and CALL/STATICCALL
4 participants