Update dependency @ethereumjs/evm to v3 #440
Open
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
This PR contains the following updates:
1.4.0
->3.1.1
Release Notes
ethereumjs/ethereumjs-monorepo (@ethereumjs/evm)
v3.1.1
Compare Source
v3.1.0
: @ethereumjs/common v3.1.0Compare Source
Functional Shanghai Support
This release fully supports all EIPs included in the Shanghai feature hardfork scheduled for early 2023. Note that a
timestamp
to trigger theShanghai
fork update is only added for thesepolia
testnet and not yet forgoerli
ormainnet
.You can instantiate a Shanghai-enabled Common instance with:
Changes
timestamp
andforkHash
for the Sepolia Shanghai HF, PR #2527forkHash
calculation for timebased hardforks, PR #2458setForkHashes()
to update timebased hardforkforkHash
values, PR #2461Experimental EIP-4844 Shard Blob Transactions Support
This release supports an experimental version of EIP-4844 Shard Blob Transactions as being specified in the 01d3209 EIP version from February 8, 2023 and deployed along
eip4844-devnet-4
(January 2023), see PR #2349.You can instantiate an
EIP-4844
enabled Common instance with:Other Changes and Bugfixes
eips
option toCommon.fromGethGenesis()
constructor options, PR #2469Common.fromGethGenesis()
ifmergeForkBlock
not present, PR #2414Common.fromGethGenesis()
, PR #2530v3.0.0
: @ethereumjs/common v3.0.0Compare Source
Final release - tada 🎉 - of a wider breaking release round on the EthereumJS monorepo libraries, see the Beta 1 release notes for the main long change set description as well as the Beta 2, Beta 3 and Release Candidate (RC) 1 release notes for notes on some additional changes (CHANGELOG).
Changes
v2.2.1
: @ethereumjs/evm v2.2.1Compare Source
@ethereumjs/verkle
dependency for@ethereumjs/statemanager
from a peer dependency to the main dependencis (note that this decision might be temporary)v2.2.0
: @ethereumjs/evm v2.2.0Compare Source
Dencun Hardfork Support
While all EIPs contained in the upcoming Dencun hardfork run pretty much stable within the EthereumJS libraries for quite some time, this is the first release round which puts all this in the official space and removes "experimental" labeling preparing for an imminent Dencun launch on the last testnets (Holesky) and mainnet activation! 🎉
Dencun hardfork on the execution side is called Cancun and can be activated within the EthereumJS libraries (default hardfork still
Shanghai
) with a followingcommon
instance:Note that the
kzg
initialization slightly changed from previous experimental releases and a custom KZG instance is now passed toCommon
by using thecustomCrypto
parameter, see PR #3262.At the moment using the Node.js bindings for the
c-kzg
library is the only option to get KZG related functionality to work, note that this solution is not browser compatible. We are currently working on a WASM build of that respective library. Let us know on the urgency of this task! 😆While
EIP-4844
- activating shard blob transactions - is for sure the most prominent EIP from this hardfork, enabling better scaling for the Ethereum ecosystem by providing cheaper block space for L2s, there are in total 6 EIPs contained in the Dencun hardfork. The following is an overview of which EthereumJS libraries mainly implement the various EIPs:@ethereumjs/evm
)@ethereumjs/block
,@ethereumjs/evm
,@ethereumjs/vm
)@ethereumjs/tx
,@ethereumjs/block
,@ethereumjs/evm
)@ethereumjs/evm
)@ethereumjs/vm
)@ethereumjs/block
,@ethereumjs/evm
)WASM Crypto Support
With this release round there is a new way to replace the native JS crypto primitives used within the EthereumJS ecosystem by custom/other implementations in a controlled fashion, see PR #3192.
This can e.g. be used to replace time-consuming primitives like the commonly used
keccak256
hash function with a more performant WASM based implementation, see@ethereumjs/common
README for some detailed guidance on how to use.Self-Contained (and Working 🙂) README Examples
All code examples in
EthereumJS
monorepo library README files are now self-contained and can be executed "out of the box" by simply copying them over and running "as is", see tracking issue #3234 for an overview. Additionally all examples can now be found in the respective library examples folder (in fact the README examples are now auto-embedded from over there). As a nice side effect all examples are now run in CI on new PRs and so do not risk to get outdated or broken over time.Other Changes
modexp
precompile edge cases (❤️ to @last-las for reporting!), PR #3169modexp
right-pads input data (❤️ to @last-las for reporting!), PR #3206runCallOpts
andrunCodeOpts
to evm exports, PR #3172ecrecover
precompile, PR #3184ripemd160
andblake2f
precompiles, PR #3189v2.1.0
: @ethereumjs/evm v2.1.0Compare Source
New EVM Profiler / EVM Performance
This releases ships with a completely new dedicated EVM profiler (❤️ to Jochem for the integration) to measure how the different opcode implementations are doing, see PR #2988, #3011, #3013 and #3041.
See the new dedicated README section for a detailed usage instruction.
We were already able to do various performance related improvements using this tool (and we hope that you will be too) 🤩:
PUSH
andPOPn
+30-40%,DUP
+40%), PR #3000JUMPDEST
optimizations, PR #3000MLOAD
andMSTORE
+ 10-20%), PR #3032EXP
opcode optimizations (real-world 3x gain, not attack resistant), PR #3034EIP-7516 BLOBBASEFEE Opcode
This release supports EIP-7516 with a new
BLOBBASEFEE
opcode added to and scheduled for the Dencun HF, see PR #3035 and #3068. The opcode returns the value of the blob base-fee of the current block it is executing in.Dencun devnet-11 Compatibility
This release contains various fixes and spec updates related to the Dencun (Deneb/Cancun) HF and is now compatible with the specs as used in devnet-11 (October 2023).
EIP-4788
: do not use precompile anymore but use the pre-deployed bytecode, PR #2955Other Changes
debug
dependency types, PR #3072v2.0.0
: @ethereumjs/evm v2.0.0Compare Source
Final release version from the breaking release round from Summer 2023 on the EthereumJS libraries, thanks to the whole team for this amazing accomplishment! ❤️ 🥳
See RC1 release notes for the main change description.
Following additional changes since RC1/RC2:
dataGas
toblobGas
(see EIP-4844 PR #7354), PR #2919Configuration
📅 Schedule: Branch creation - At any time (no schedule defined), Automerge - At any time (no schedule defined).
🚦 Automerge: Disabled by config. Please merge this manually once you are satisfied.
♻ Rebasing: Whenever PR is behind base branch, or you tick the rebase/retry checkbox.
🔕 Ignore: Close this PR and you won't be reminded about this update again.
This PR was generated by Mend Renovate. View the repository job log.