Skip to content

@ethereumjs/common v10.0.0-rc.1

Pre-release
Pre-release
Compare
Choose a tag to compare
@holgerd77 holgerd77 released this 24 Mar 16:10
· 139 commits to master since this release
b1f8cbc

This is the first (and likely the last) round of RC releases for the upcoming breaking releases, following the alpha releases from October 2024. The releases are somewhat delayed (sorry for that), but final releases can now be expected very very soon, to be released once the Ethereum Pectra hardfork is scheduled for mainnet and all EIPs are fully finalized. Pectra will then also be the default hardfork setting for all EthereumJS libraries.

New Versioning Scheme

This breaking release round will come with a new versioning scheme (thanks to paulmillr for the suggestion), aligning the package numbers on breaking releases for all EthereumJS packages. This will make it easier to report bugs ("bug happened on EthereumJS version 10 releases"), reason about release series and make library compatibility more transparent and easier to grasp.

As a start we bump all major release versions to version 10, these RC releases are the first to be released with the new versioning scheme.

Native Node.js EventEmitter Replacement

We removed the last remaining internal Node.js utility dependency to make the packages more browser friendly and replace the native Node.js EventEmitter by using the eventemitter3 package as a replacement, see PR #3746.

The new package is meant to be more performant while remaining almost entirely API compatible with native Node.js event emitters.

If you directly import the Node.js event emitter, you need to switch your imports to:

import { EventEmitter } from 'events' // old
import { EventEmitter } from 'eventemitter3' // new

All this might affect you if you listen to events emitted by the common.events EventEmitter instance, e.g. to detect hardfork changes.

Pectra Spec Updates

  • Support for generalized EL requests coming with EIP-7685 introduction (devnet-4), PR #3706
  • Add requestsHash to genesis block/configuration, PR #3771
  • Allow specifying eip-7840 blobSchedule via geth genesis, PR #3835

EthereumJS-wide Error Objects

We have done preparations to allow for handling specific error sub types in the future by introducing a monorepo-wide EthereumJSError error class in the @ethereumjs/util package, see PR #3879. This error is thrown for all error cases within the monorepo and can be specifically handled by comparing with instanceof EthereumJSError.

We will introduce a set of more specific sub error classes inheriting from this generic type in upcoming minor releases, and so keeping things fully backwards compatible. This will allow for a more specific and robust handling of errors thrown by EthereumJS libraries.

Other Changes

  • Add typing for events, PR #3753
  • Remove Goerli support, PR #3851
  • Fix TTD related failed Geth genesis parsing, PR #3847
  • Fix deposit address for sepolia and holesky, PR #3882