This repository contains the specification of the Monad Execution layer implemented as OCaml code.
To build, you will need a recent (>= 3.20) version of dune. The easiest way to get it is to install opam and then run opam install dune from a terminal.
To build the project, first fetch third-party dependencies with
git submodule update --init --recursiveThen the project can be built with
dune buildThe first time building the project may take a long time as dune fetches and builds an OCaml toolchain.
After the build has finished, unit tests can be executed with
dune testAdditional test fixtures can be downloaded with scripts/download_mf_tests.sh.
The evmrun tool can run EVM bytecode on an empty blockchain.
dune exec evmrun -- <params>Usage is as below.
Usage: evmrun <options> (--bytecode_file FILE | --bytecode HEX) (--calldata_file FILE | --calldata HEX)
--revision Revision to use (default: MONAD_EIGHT)
--chain_id Chain ID to use (default: 10143)
--bytecode_file Bytecode file
--calldata_file Calldata file
--bytecode Bytecode
--calldata Calldata
--gc_stats Report GC statistics after execution
--gas Gas limit (default: 100000)
--trace Enable tracingThe execrun tool can be used to execute EELS blockchain test fixtures.
dune exec execrun -- <params>Usage is as below.
Usage: execrun --blockchain_test FILE [--update_fixture FILE] [--trace]
--blockchain_test Blockchain test fixture file
--trace Trace VM execution
--update_fixture Generate new fixtures from execution, do not verify provided rootsTo build the documentation, you'll need to install odoc (with opam install odoc) and then run:
dune build @docThe documentation can then be found under _build/default/_doc/_html/index.html