Compiles an AST (Abstract Syntax Tree) to Ethereum Virtual Machine bytecodes, WIP.
TBD
- 0.0.1 First published version
- 0.0.2 Fix check datasize; fix binary order evaluation; using geast@0.0.7
- 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
- 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
- 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
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.