evmcompiler
v0.0.8
Published
Compiles an AST (Abstract Syntax Tree) to Ethereum Virtual Machine bytecodes, WIP
Downloads
12
Maintainers
Readme
EVM Compiler
Compiles an AST (Abstract Syntax Tree) to Ethereum Virtual Machine bytecodes, WIP.
Design
TBD
Versions
- 0.0.1 First published version
- 0.0.2 Fix check datasize; fix binary order evaluation; using [email protected]
- 0.0.3 Process local variables, loop and conditional commands
- 0.0.4 Process break and continue commands
- 0.0.5 For command, fnhash in API, stop in void method, local variables management first implementation
- 0.0.6 Array variable declaration and access, signed mod and div, process call, context redesign, logical operations, addmod mulmod operations
- 0.0.7 Attributes in method node
- 0.0.8 Using function instead of method
To Do
- Management of local variables (partial)
- Call private, internal, external methods
- Pass arguments in stack when needed
- Returns result in stack when needed
- Contract inheritance
- String support
- Mapping support
- Dynamic arrays support
- Static array support
- Call another contract
- Transfer value to another address
- Pure, view methods
- Generate ABI
References
- Introducing Elle: A formally-verified EVM compiler to write more secure Ethereum code
- Mythril: Security analysis tool for EVM bytecode
- K Semantics of the Ethereum Virtual Machine (EVM)
- KVyper: Semantics of Vyper in K
- Solidity optimizing storage
Contribution
Feel free to file issues and submit pull requests — contributions are welcome.
If you submit a pull request, please be sure to add or update corresponding
test cases, and ensure that npm test
continues to pass.