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

[WIP] 0.7.0: opcode trace instrumentation & plugin app architecture #357

Closed
wants to merge 13 commits into from

Conversation

cgewecke
Copy link
Member

@cgewecke cgewecke commented Jul 24, 2019

#346 Swaps event-based instrumentation (with testrpc-sc) for variable-based instrumentation processed by an ethereumjs-vm opcode step listener.

The changes here are less extensive than they might seem at first glance. All the core instrumentation logic has been retained and should be +/- recognizable.

Summary

  • modify injector to use variable definitions and assignment statements we can read with an opcode tracer.
  • add DataCollector class which listens to the VM for data-hash-detected-on-stack 'events'
  • rename instrumentSolidity --> Instrumenter & make JS class / top level controller
  • rename instrumenter --> Registrar (e.g registers injection details) & make JS class.
  • remove pure/view preprocessing
  • mark instrumentation hits in memory / transform to coverage object from memory
  • refactor test suite for this design

TO DO

  • Truffle plugin
  • Truffle plugin test fixtures
  • Buidler plugin
  • Buidler plugin test fixtures
  • Address gas distortion
  • Re-design & re-enable E2E tests
  • New documentation (including 0.6.0 --> 0.7.0 upgrade guide)

@cgewecke
Copy link
Member Author

Closing in favor of #372 (rebasing disaster)

@cgewecke cgewecke closed this Aug 13, 2019
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

1 participant