MCPcopy Index your code
hub / github.com/ethereumjs/ethereumjs-monorepo

github.com/ethereumjs/ethereumjs-monorepo @7.1.5 sqlite

repository ↗ · DeepWiki ↗ · release 7.1.5 ↗
2,274 symbols 9,067 edges 504 files 888 documented · 39%
README

EthereumJS Monorepo

Code Coverage Discord

This was originally the EthereumJS VM repository. In 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/block NPM Package Block Issues Actions Status Code Coverage
@ethereumjs/blockchain NPM Package Blockchain Issues Actions Status Code Coverage
@ethereumjs/client NPM Package Client Issues Actions Status Code Coverage
@ethereumjs/common NPM Package Common Issues Actions Status Code Coverage
@ethereumjs/devp2p NPM Package Devp2p Issues Actions Status Code Coverage
@ethereumjs/ethash NPM Package Ethash Issues Actions Status Code Coverage
merkle-patricia-tree NPM Package Trie Issues Actions Status Code Coverage
rlp NPM Package [![rlp Issues][rlp-issues-badge]][rlp-issues-link] [![Actions Status][rlp-actions-badge]][rlp-actions-link] [![Code Coverage][rlp-coverage-badge]][rlp-coverage-link]
@ethereumjs/tx NPM Package Tx Issues Actions Status Code Coverage
[ethereumjs-util][util-package] [![NPM Package][util-npm-badge]][util-npm-link] [![Util Issues][util-issues-badge]][util-issues-link] [![Actions Status][util-actions-badge]][util-actions-link] [![Code Coverage][util-coverage-badge]][util-coverage-link]
[@ethereumjs/vm][vm-package] [![NPM Package][vm-npm-badge]][vm-npm-link] [![VM Issues][vm-issues-badge]][vm-issues-link] [![Actions Status][vm-actions-badge]][vm-actions-link] [![Code Coverage][vm-coverage-badge]][vm-coverage-link]

Coverage report

Detailed version can be seen on Codecov.io

Code Coverage

Package dependency relationship

mermaid graph TD vm{vm} client{client} ethash --> blockchain devp2p --> client block --> blockchain block --> client block --> vm blockchain --> client blockchain --> vm trie --> client trie --> vm trie --> block common --> block common --> blockchain common --> tx common --> vm common --> client common --> devp2p tx --> block tx --> vm vm --> client

To update the diagram above edit the README file and open a new PR with the changes.

Getting Started

See our monorepo documentation to get started on setting up the repository and installing dependencies. The config folder gives an overview on shared configuration and scripts between packages.

EthereumJS

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.

LICENSE

Most packages are MPL-2.0 licensed, see package folder for the respective license.

Extension points exported contracts — how you extend this code

Blockchain (Interface)
(no doc) [9 implementers]
packages/block/src/types.ts
BlockchainInterface (Interface)
(no doc) [2 implementers]
packages/blockchain/src/index.ts
StateManager (Interface)
(no doc) [1 implementers]
packages/vm/src/state/interface.ts
Libp2pNodeOptions (Interface)
(no doc)
packages/client/browser/libp2pnode.ts
Decoded (Interface)
(no doc)
packages/rlp/src/index.ts
Test (Interface)
(no doc)
packages/devp2p/test/rlpx-ecies.ts
BaseOpts (Interface)
(no doc)
packages/common/src/index.ts
GenerateCombinationsArgs (Interface)
(no doc)
packages/tx/test/inputValue.spec.ts

Core symbols most depended-on inside this repo

toString
called by 474
packages/util/src/address.ts
equals
called by 471
packages/util/src/address.ts
hash
called by 373
packages/block/src/block.ts
push
called by 334
packages/vm/src/evm/stack.ts
toBuffer
called by 277
packages/util/src/bytes.ts
on
called by 225
packages/client/lib/types.ts
fromTxData
called by 202
packages/tx/src/legacyTransaction.ts
toString
called by 147
packages/client/lib/net/peer/peer.ts

Shape

Method 1,185
Function 630
Class 282
Interface 150
Enum 27

Languages

TypeScript100%
Python1%

Modules by API surface

packages/common/src/index.ts62 symbols
packages/blockchain/src/index.ts58 symbols
packages/vm/src/evm/eei.ts56 symbols
packages/trie/src/trieNode.ts38 symbols
packages/devp2p/src/rlpx/peer.ts37 symbols
packages/vm/src/state/interface.ts36 symbols
packages/block/src/header.ts36 symbols
packages/trie/src/baseTrie.ts34 symbols
packages/vm/src/state/stateManager.ts27 symbols
packages/client/lib/rpc/modules/eth.ts27 symbols
packages/block/src/block.ts26 symbols
packages/util/src/account.ts25 symbols

Dependencies from manifests, versioned

0x4.9.1 · 1×
@babel/plugin-transform-spread7.10.1 · 1×
@chainsafe/libp2p-noise4.1.1 · 1×
@ethereumjs/block3.6.2 · 1×
@ethereumjs/common2.6.4 · 1×
@ethereumjs/devp2p4.2.2 · 1×
@ethereumjs/ethash1.1.0 · 1×
@ethereumjs/tx3.5.2 · 1×
@ethereumjs/vm5.9.1 · 1×
@ethersproject/abi5.0.12 · 1×
@types/assert1.5.4 · 1×

For agents

$ claude mcp add ethereumjs-monorepo \
  -- python -m otcore.mcp_server <graph>

⬇ download graph artifact