Skip to content
Merged
9 changes: 9 additions & 0 deletions packages/block/README.md
Original file line number Diff line number Diff line change
Expand Up @@ -9,6 +9,15 @@
| Implements schema and functions related to Ethereum blocks. |
| ----------------------------------------------------------- |

- 🦄 All block features till **Pectra**
- 🌴 Tree-shakeable API
- 👷🏼 Controlled dependency set (4 external + `@Noble` crypto)
- 🔮 `EIP-4844` Shard Blob Txs
- 💸 `EIP-4895` Beacon Chain Withdrawals
- 📨 `EIP-7685` Consensus Layer Requests
- 🛵 324KB bundle size (81KB gzipped)

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Ok, this is fine, but for every PR which we will merge in any of these packages these numbers will likely be incorrect. (Just an informational note. Should we update it for each release to reflect the bundle size?)

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I think we could also consider not including the size here in the docs. There are bundle size tools for this (https://bundlephobia.com/package/@ethereumjs/block@5.3.0)

Copy link
Copy Markdown
Member Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I think it is super important to keep and brings great additional value if we do this (Paul is doing as well). This does not need to be "on point" by KB but gives users strong guidance if they can (bundle size is ok for them, just ballpark number) or cannot (bundle size far too high) use our libraries.

- 🏄🏾‍♂️ WASM-free default + Fully browser ready

## Table of Contents

- [Installation](#installation)
Expand Down
10 changes: 10 additions & 0 deletions packages/evm/README.md
Original file line number Diff line number Diff line change
Expand Up @@ -9,6 +9,16 @@
| TypeScript implementation of the Ethereum EVM. |
| ---------------------------------------------- |

- 🦄 All hardforks up till **Pectra**
- 🌴 Tree-shakeable API
- 👷🏼 Controlled dependency set (7 external + `@Noble` crypto)
- 🧩 Flexible EIP on/off engine
- 🛠️ Custom precompiles
- 🚀 Build-in profiler
- 🪢 User-friendly colored debugging
- 🛵 422KB bundle size (110KB gzipped)
- 🏄🏾‍♂️ WASM-free default + Fully browser ready

## Table of Contents

- [Installation](#installation)
Expand Down
13 changes: 10 additions & 3 deletions packages/mpt/README.md
Original file line number Diff line number Diff line change
Expand Up @@ -7,9 +7,16 @@
[![Discord][discord-badge]][discord-link]

| Implementation of the [Modified Merkle Patricia Trie](https://ethereum.org/en/developers/docs/data-structures-and-encoding/patricia-merkle-mpt/) as specified in the [Ethereum Yellow Paper](http://gavwood.com/Paper.pdf) |
| -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |

> The modified Merkle Patricia tree (mpt) provides a persistent data structure to map between arbitrary-length binary data (byte arrays). It is defined in terms of a mutable data structure to map between 256-bit binary fragments and arbitrary-length binary data. The core of the mpt, and its sole requirement in terms of the protocol specification, is to provide a single 32-byte value that identifies a given set of key-value pairs.
| ---------------------------------------------------------------------------- |

- 🔭 Highly scalable
- 🌴 Tree-shakeable API
- 👷🏼 Controlled dependency set (3 external + `@Noble` crypto)
- ⏳ Checkpoint Functionality
- 🛢️ Flexible storage backends
- ⚖️ `EIP-1186` Proofs
- 🛵 176KB bundle size (48KB gzipped)
- 🏄🏾‍♂️ WASM-free default + Fully browser ready

## Table of Contents

Expand Down
9 changes: 9 additions & 0 deletions packages/statemanager/README.md
Original file line number Diff line number Diff line change
Expand Up @@ -9,6 +9,15 @@
| Library to provide high level access to Ethereum State |
| ------------------------------------------------------ |

- 🫧 Transparent state access from EVM/VM
- 🌴 Tree-shakeable API
- 👷🏼 Controlled dependency set (5 external + `@Noble` crypto)
- ⏳ Checkpoints + Diff-based Caches
- 🔌 Unified interface (for custom SMs)
- 🎁 3 SMs included (Merkle/Simple/RPC)
- 🛵 233KB bundle size (for Merkle SM) (63KB gzipped)
- 🏄🏾‍♂️ WASM-free default + Fully browser ready

## Table of Contents

- [Installation](#installation)
Expand Down
8 changes: 8 additions & 0 deletions packages/tx/README.md
Original file line number Diff line number Diff line change
Expand Up @@ -9,6 +9,14 @@
| Implements schema and functions for the different Ethereum transaction types |
| ---------------------------------------------------------------------------- |

- 🦄 All tx types up till **Pectra**
- 🌴 Tree-shakeable API
- 👷🏼 Controlled dependency set (1 external + `@Noble` crypto)
- 🎼 Unified tx type API
- 📲 New type for **EIP-7702** account abstraction
- 🛵 190KB bundle size (all tx types) (47KB gzipped)
- 🏄🏾‍♂️ WASM-free default + Fully browser ready

## Table of Contents

- [Installation](#installation)
Expand Down
19 changes: 12 additions & 7 deletions packages/vm/README.md
Original file line number Diff line number Diff line change
Expand Up @@ -9,14 +9,19 @@
| Execution Context for the Ethereum EVM Implementation. |
| ------------------------------------------------------ |

This package provides an Ethereum `mainnet` compatible execution context for the
Ethereum `mainnet` compatible execution context for

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Is it important to say mainnet here? That seems to be too narrowly focused since this would work in any chain context that you can specify in our common chain setup, right?

[@ethereumjs/evm](https://github.com/ethereumjs/ethereumjs-monorepo/tree/master/packages/evm)
EVM implementation.

So beyond bytecode processing this package allows to run or build new Ethereum blocks or single transactions
and update a blockchain state accordingly.

Note that up till `v5` this package also was the bundled package for the EVM implementation itself.
to build and run blocks and txs and update state.

- 🦄 All hardforks up till **Pectra**
- 🌴 Tree-shakeable API
- 👷🏼 Controlled dependency set (7 external + `@Noble` crypto)
- 🧩 Flexible EIP on/off engine
- 📲 **EIP-7702** ready
- 📬 Flexible state retrieval (Merkle, RPC,...)
- 🔎 Passes official #Ethereum tests
- 🛵 668KB bundle size (170KB gzipped)
- 🏄🏾‍♂️ WASM-free default + Fully browser ready

## Table of Contents

Expand Down