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

Use EEI methods in opFns #486

Merged
merged 15 commits into from
Apr 2, 2019
Merged

Use EEI methods in opFns #486

merged 15 commits into from
Apr 2, 2019

Conversation

s1na
Copy link
Contributor

@s1na s1na commented Apr 1, 2019

As discussed (#455, #441), this PR introduces an interface exposed to the EVM for interacting with its environment. It closely resembles (and was inspired by) the ewasm EEI spec, the main difference being how input and output data is handled (ewasm requires buffers to be exchanged via memory).

The biggest changes are in how CALLs and CREATEs are handled. Although the logic is the same, there are now multiple functions for handling each specific type (as opposed to makeCall which handled everything).

The list of selfdestructed contracts is also kept now in Interpreter as part of a txRunState instead of being passed around with every message (added to runCode for backwards compatibility).

(To be merged into #479)

@coveralls
Copy link

Coverage Status

Coverage decreased (-0.4%) to 94.083% when pulling 52dab72 on refactor/eei into 4678325 on v4.

@holgerd77
Copy link
Member

👍 Cool! Will look into this shortly.

Copy link
Member

@holgerd77 holgerd77 left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I am through, again, not line-by-line but checking overall consistency. I find this PR fantastic, since it brings so much clarity to the core logic here, would actually give this a go. Great work Sina! 😊

@s1na s1na merged commit ca3374a into v4 Apr 2, 2019
@s1na s1na deleted the refactor/eei branch April 2, 2019 13:33
@s1na s1na mentioned this pull request Apr 2, 2019
23 tasks
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

Successfully merging this pull request may close these issues.

4 participants