Jochem Brouwer
Jochem Brouwer
The book states that any transaction to the `zero address` (i.e. `0x0000..0000`) is a special transaction which creates a contract. This is wrong. A contract is created if you send...
There are many (?) cases where one would just want to get the root of the trie and not care about older versions of the trie (i.e. `setRoot` to rollback...
Closes #2106 Test with, for example, `npm run test:blockchain -- --fork=London+1153`. This threw before, but now correctly initializes the common with the requested EIPs active. CC @moodysalem TODO: - [x]...
Test runner does not work on networks like `London+1153`, this was probably introduced in adding Merge tests PR and should be fixed.
This PR intends to add support for [retesteth](https://github.com/ethereum/retesteth) (`ethereum/tests` native tests runner), specifically the `transition-tool` support. This only runs state tests. A bash script is fed arguments, which contain the...
The `hardforkByTD` option in VM should most likely be removed. This option tries setting `common` to a hardfork + blocknumber each time, but the option itself is constant and is...
In EVM, sometimes the reported error is Out-Of-Gas (OOG), but that is not the case. For instance, https://github.com/ethereumjs/ethereumjs-monorepo/blob/d276fcc103533fdf7eec12b55f202efc74ceeea4/packages/evm/src/evm.ts#L582 violates the code length limit, but it is reported as OOG error....
Upon refactoring I stumbled across this: https://github.com/ethereumjs/ethereumjs-monorepo/blob/2f42dcfedd18852fc95cc4a51da606dfcbf87387/packages/vm/src/evm/eei.ts#L634 The contract nonce is updated, and then the `maxInitCodeSize` check is done. Before that there are checks on the nonce, call depth, and...
Older hardforks currently have all EIPs "baked in": at VM level we do checks if common is currently at that hardfork or at a later hardfork (`gteHardfork`) and then execute...
In Common, it would be nice to add an option to disable certain EIPs. The function signature would be `disableEIP(eip: number)` and `disableEIPs(eips: number[])`. It is not entirely trivial to...