ethereumjs / ethereumjs-monorepo

Monorepo for the Ethereum VM TypeScript Implementation

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

ethereumjs/util require node polyfill for browser

wighawag opened this issue · comments

I have an issue with @ethereumjs/util It needs a node polyfill for the browser, which ideally shouldn't be necessary in a browser environment.

Here is the link to the imports in question

import { EventEmitter } from 'events'

This is a known issue. Unfortunately, we do not currently have an obvious solution to it aside from polyfilling with something like eventemitter3. I have not yet found a replacement for node:events that is 100% API compatible and we need deep compatibility in order to maintain the functionality of our asyncEventEmitter class.

@acolytec3 but we can switch over along our next breaking release round, right (or not)? That was my conclusion from the last exchange on this, but might be wrong.

@wighawag Targeted for autumn 2024 (sorry, no short cuts here unfortunately, we cannot do breaking releases too often).

If we can find a fully compatible event emitter class, potentially. eventEmitter3 has some incompatibility that I couldn't solve when I initially tried integrating it inside the asyncEventEmitter class. If/when we pick this up, I can explore again.