This was originally the EthereumJS VM repository. On Q1 2020 we brought some of its building blocks together to simplify development. Below you can find the packages included in this repository.
🚧 Please note that the master
branch is updated on a daily basis, and to inspect code related to a specific package version, refer to the tags.
package | npm | issues | tests | coverage |
---|---|---|---|---|
@ethereumjs/account | ||||
@ethereumjs/block | ||||
@ethereumjs/blockchain | ||||
@ethereumjs/common | ||||
@ethereumjs/ethash | ||||
@ethereumjs/tx | ||||
@ethereumjs/vm |
Detailed version can be seen on Codecov.io
This monorepo uses Lerna. It links the local packages together, making development a lot easier.
TLDR: Setup
npm install
npm build
TLDR: To update dependencies and (re-)link packages
npm run bootstrap
npm build
Above is the quickest way to set you up. Going down the road, there are two sets of commands: project and package-specific commands. You can find them at ./package.json
and ./packages/*/package.json
, respectively. Here's a breakdown:
Adds dependencies listed in the root package. Also, it executes the bootstrap
script described below, installing all sub-packages dependencies.
Installs dependencies for all sub-packages, and links them to create an integrated development environment.
Produces dist
files for all sub-packages. This command can be scoped
Builds all local packages that the provided package (eg: @ethereumjs/blockchain) depends on, and itself. This unusual syntax just means: pass whatever arguments are after --
to the underlying script.
If no scope is provided, npm run build:tree
, will build all sub-packages.
npm install
from the package directory, it will remove all links to the local packages, pulling all dependencies from npm. Run npm install
from the root only.
There's a set of rather standardized commands you will find in each package of this repository.
Uses TypeScript compiler to build files from src
or lib
. Files can be found at packages/<name>/dist
.
Runs whatever is on npm run test
script, capturing coverage information. By the end, it displays a coverage table. Additional reports can be found at packages/<name>/coverage
.
Generates package documentation and outputs it to ./packages/<name>/docs
.
Checks code style, according to the rules defined in ethereumjs-config.
Fixes code style, according to the rules
Runs all package tests. Note that the VM have several test scopes. Refer to their package.json for more info.
As this project is powered by Lerna, you can install it globally to enjoy lots more options. Refer to Lerna docs for additional commands.
npm install -g lerna
lerna run
lerna exec
lerna clean
See our organizational documentation for an introduction to EthereumJS
as well as information on current standards and best practices.
If you want to join for work or do improvements on the libraries have a look at our contribution guidelines.