Repository Structure
Repository Structure
The following files constitute the KEVM semantics:
network.md
provides the status codes reported to an Ethereum client on execution exceptions.json-rpc.md
is an implementation of JSON RPC in K.evm-types.md
provides the (functional) data of EVM (256-bit words, wordstacks, etc...).serialization.md
provides helpers for parsing and unparsing data (hex strings, recursive-length prefix, Merkle trees, etc.).evm.md
is the main KEVM semantics, containing EVM’s configuration and transition rules.
These additional files extend the semantics to make the repository more useful:
buf.md
defines the#buf
byte-buffer abstraction for use during symbolic execution.abi.md
defines the Contract ABI Specification for use in proofs and easy contract/function specification.hashed-locations.md
defines the#hashedLocation
abstraction used to specify Solidity-generated storage layouts.edsl.md
combines the previous three abstractions for ease-of-use.foundry.md
adds Foundry capabilities to KEVM.
These files are used for testing the semantics itself:
state-utils.md
provides functionality for EVM initialization, setup, and querying.driver.md
is an execution harness for KEVM, providing a simple language for describing tests/programs.
Last updated