Releases: ipsilon/evmone
Releases · ipsilon/evmone
evmone 0.21.0 "EVMC absorbed"
This release merges the required contents of the former EVMC project directly into evmone, replacing the git submodule. This allows evmone to evolve the EVM interface independently for future EVM revisions.
Added
evmoneCLI tool replacing theevmctool. Links evmone directly instead of dynamic loading via EVMC loader. Supports--traceand--histogramflags. #1502- New
EVMONE_TOOLSCMake option (default:PROJECT_IS_TOP_LEVEL). #1502
Changed
- EVMC merged into evmone: the EVMC git submodule has been replaced with vendored source code and its filtered git history. #1499
- Minimum CMake version bumped to 3.22. #1501
Removed
evmone 0.20.0
evmone 0.19.0 "dyn modexp"
Added
- Option
EVMONE_PRECOMPILES_LIBSECP256K1=ONto use libsecp256k1 forecrecoverprecompile. #1454
Changed
- Modular exponentiation (
modexp) rewrite: the precompile implementation has been substantially reworked to use variadic-length number representation and optimized algorithms. #1292 #1413 #1420 #1424 #1434 #1442 #1443 #1446 #1452 #1457 #1460 #1461 #1462 - ECC optimizations:
- Modexp precompile implementations ("evmone" and "gmp") are now split into separate source files. #1455
- Upgraded [intx] to 0.15.0. #1371 #1430
- Test utilities reorganized into a single
evmone.testutilslibrary. #1380 #1381 #1384 #1385 #1386
Removed
- The optional "silkpre" precompile backend has been removed. #1456
- Modexp stubs removed—the local implementation is now used for all inputs. #1453
Fixed
evmone 0.18.0 "No EOF"
Bye-bye, EOF.
Removed
- The implementation of the EVM Object Format version 1 (EOFv1) has been completely removed. #1321
- implementation of EOF validation and execution,
- implementation of DUPN, SWAPN and EXCHANGE instructions,
- "initcodes" transaction type,
- additional testing tools: eofparse, eoftest and eofparsefuzz,
- unit tests, integration tests, benchmarks and test helpers.
evmone 0.17.0 "Osaka"
This release provides full Osaka compatibility by implementing 3 remaining EIPs.
Added
- Implementation of the
p256verify(EIP-7951) precompile for the secp256r1/P256 signature verification. #1321 #1328 - Unit tests and benchmarks for the
p256verifyprecompile. #1326 #1333 - Support for EIP-7934—MAX_RLP_BLOCK_SIZE in testing infrastructure. #1329
- Support for EIP-7892—Blob Parameter Only (BPO) forks in testing infrastructure. #1330
Changed
- Testing infrastructure improvements:
- Cryptography optimizations:
- Code quality and coverage improvements:
- Refactor MPT implementation for more precise code coverage. #1341
- Filter relevant functionality in
call_impltemplate. #1348 - Remove deprecated methods in
TestState. #1352 - Remove dead code:
ethash_keccak256_32, secp256k1 affine point multiplication, and RLPencode(array). #1345 #1346 #1342 - Degrade always-true condition to assert in the
Hostcode. #1344 - Remove potentially dead code in
ExecutionState. #1338 - Move
BlobSchedulefrom state library to test utilities. #1349
- Build and dependencies:
- External test suites:
Fixed
- Fix handling of the input point-at-infinity in secp256r1 signature verification. #1328
evmone 0.16.0
Added
- Partial [Osaka] support:
- Add
CLZopcode (EIP-7939). #1264 - Implement blob count limit per transaction (EIP-7594). #1279
- Modify blob base fee calculation (EIP-7918). #1281 #1322
- Enforce max transaction gas limit (EIP-7825). #1285
- Add the
modexpprecompile changes from EIP-7823 and EIP-7883. #1242 #1268 #1294 - Add
p256verify(EIP-7951) precompile ID/address (no implementation yet). #1309
- Add
Changed
- EVM Object Format (EOF):
- Improvements to Elliptic Curve Cryptography code:
- Add mixed-add formula. #1170
- Better API for ECC. #1288 #1298 #1299
- Improve bn254 point "on curve". #1300
- Remove special case checks from point multiplication. #1301
- Avoid conversion to/from Montgomery form of
yin secp256k1. #1303 - Reduce EC multiplication scalar by the order. #1305
- Switch to Jacobian coordinates in ECC. #1312
- Optimization to the Merkle Patricia Trie (MPT) implementation: "Extension node is a lie!" #703
- Better EVM stack memory alignment and implementation:
evmone 0.15.0
Changed
- EOF:
The is the final version compatible with EOF devnet-0. - EVMMAX:
- Precompiles:
- EIP-7702: Remove the check for empty in-state accounts #1141
- Add prestate validation checks to the state test loader #1134
- Upgrade the silkpre dependency #1173
Fixed
- Fix incorrect output size in the BN254 ecpairing precompile #1174
evmone 0.14.1
evmone 0.14.0 "Pectra"
Added
- Support for all remaining Prague EIPs:
- EIP-6110: Supply validator deposits on chain. #1079
- EIP-7002 and EIP-7251: Withdrawal and consolidation requests. #1084
- EIP-7623: Increase calldata cost. #1095 #1108
- EIP-7685: General purpose execution layer requests. #1083
- EIP-7691: Blob throughput increase. #1118
- EIP-7702: Set EOA account code. #961
- EVMMAX-based BN254 pairing check precompile. #852
- New API for transaction execution:
StateView&StateDiff. #802 - Introduce
BlockHashesinterface. #1059 - Add option
-kto filter tests by name inevmone-statetest. #1111 - Add support for EIP-4844 in blockchain tests. #1077
- Add GDB pretty printers for common bytes and uint256 types. #1024
Changed
- Improvements to EOF validation and execution:
- Updates to BLS precompiles (EIP-2537). #1089
- State and transaction execution improvements:
- Split transaction and block related types. #1031
- Avoid returning bytes_view in system contracts. #1048
- Implement
CREATEaddress scheme without RLP lib. #1055 - Separate transaction validation from transition. #1069
- Introduce TransactionProperties. #1098
- Simplify code modification indicator in StateDiff. #1117
- Requirements and dependencies updates:
evmone 0.13.0
This release adds BLS precompiles and a system contract for Prague and improves the interpreter API.
Added
- Implementation of all EIP-2537 BLS precompiles, enabled in Prague: #984
- Implementation of KZG proof verification (aka "point evaluation") precompile from EIP-4844. #979
- Implementation of EIP-2935 "Serve historical block hashes from state". #953
Changed
- Refactor
system_call()in preparation for more Pectra system contracts. #976 - Improved Baseline code analysis API. #941
- Provide execution states at VM object level and hide them from public API. #1005
- Requirements and dependencies updates:
- External test suites:
- EEST EOF tests upgraded to eip7692@v1.1.0. #1025
- Added EEST tests for Pectra pectra-devnet-3@v1.5.0 #997
- ethereum/tests upgraded to v14.1. #980
Fixed
- Fixed EOF parsing bug allowing multiple subcontainer kinds in the header. #978
- Ensure mandatory fields are included in the exported state tests. #993
- Properly handle EOF additions in
ExecutionState::reset(). #1004
Removed
- The implementation of EOF's
TXCREATEhas been removed. It will be back when scheduled for a network upgrade. #992