-
Notifications
You must be signed in to change notification settings - Fork 110
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
contractCall battle plan #220
Comments
First, check if it hasn't been done already in https://github.com/chronaeon/beigepaper |
The beige paper is an amazing piece of work and it makes a lot of things simpler. But it also too shallow when it comes to the VM opcodes definition. Something like
definitely insufficient. |
Regarding "Stage 1", it's true that the standard json suite is relatively incomplete, but I'm not sure we need to spend a lot of time creating our own separate testing framework with things like our own EVM assembler. If you are confident that this can be implemented in a day or two, it may be a good investment, but otherwise I would look into reusing some of the existing programming languages as Vyper, solidity or LLL to produce bytecode sequences that can be entered manually into the existing json format. |
sure, simpler is better. The LLL compiler looks promising, and it gives me an idea. |
we already have a solid CREATE and *CALL implementation after #449, closing |
contractCall battle plan
During debugging tool development, I noticed some peculiarities in VM internals but at that time I dare not to touch it. After some preliminary research and investigation on block 49439 using Premix debugging tool, touching the VM internals seems inevitable.
The contractCall fix will consist of several small PRs divided into 3 stages:
Stage 1:
laying groundwork forVM opcodes automated test. Not only groundwork or POC, it is a full feature VM opcodes testerinvestigate what should be included in json fixtures to test opcodes.Data embedded directly in source code-dissassembler into tandemto test opcodes, roundtrip, etc.no need to use dissasemblerStage 2:
Stage 3:
Reminder for myself: Proceed with caution. Do not introduce any regression.
Consider any regression as something intolerable.
The text was updated successfully, but these errors were encountered: