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