All notable changes to this project will be documented in this file.
The format is based on Keep a Changelog, and this project adheres to Semantic Versioning.
12.0.0 - 2024-10-17
- Rename PRAGUE_EOF to OSAKA (#1822)
11.0.3 - 2024-09-26
- updated the following local packages: revm-primitives
11.0.2 - 2024-09-18
- make clippy happy (#1755)
11.0.1 - 2024-08-30
10.1.0 - 2024-08-29
- c-kzg bump, cleanup on kzgsetting (#1719)
9.3.0 - 2024-08-08
- use batch bn256 pair operation (#1643)
- Add OP-Granite hardfork, limiting bn256Pairing input size (#1685)
- (deps) bump rstest from 0.21.0 to 0.22.0 (#1681)
- (deps) bump blst from 0.3.12 to 0.3.13 (#1669)
- (clippy) 1.80 rust clippy list paragraph ident (#1661)
- use
is_zero
forU256
andB256
(#1638)
9.1.0 - 2024-07-16
- use
kzg-rs
for kzg point evaluation (#1558)
- main CHANGELOG (#1592)
9.0.0 - 2024-07-08
- (Precompiles) Throw fatal error if c-kzg is disabled (#1589)
8.0.0 - 2024-06-20
- (precompiles) fatal error for precompiles (#1499)
- add ecAdd to precompile bench (#1496)
- (optimism) Add secp256r1 precompile for Fjord (#1436)
- (eof) fixture 2 tests (#1550)
- check canonical Fp elements (#1434)
- (precompile) ignore infinity points in G1 MSM (#1432)
- (precompile) BLS G2 MSM (#1428)
- avoid cloning precompiles (#1486)
- (precompiles) Fix some nits in bls12_381 (#1495)
- (deps) allow multiple versions of secp256k1 (#1490)
- (deps) bump rstest from 0.19.0 to 0.21.0 (#1482)
- (deps) bump blst from 0.3.11 to 0.3.12 (#1481)
- add test for map_fp_to_g1 precompile (#1465)
- add docs for BLS scalar input decoding (#1446)
7.0.0 - 2024-05-12
- (precompile) Prague - EIP-2537 - BLS12-381 curve operations (#1389)
- (precompile) add Prague hardfork specification (#1387)
- add flag to force hashbrown usage (#1284)
- EOF (Ethereum Object Format) (#1143)
- (precompile) blst dangling pointers, cleanup (#1391)
- (precompile) inherit Prague precompiles from Cancun (#1392)
- bump c-kzg to 1.0.2 (#1390)
- refactor lints (#1386)
- (deps) bump aurora-engine-modexp from 1.0.0 to 1.1.0 (#1339)
- (deps) bump secp256k1 from 0.28.2 to 0.29.0 (#1260)
6.0.0 - 2024-04-02
- update/enable bn128 tests (#1242)
- use correct bn128 mul input length (#1238)
- use correct rand package for thread_rng (#1233)
- remove unnecessary call to into_u256() for bn128 add (#1239)
5.1.0 - 2024-03-19
- add benchmarks for ecpairing, kzg, ecrecover precompiles (#1211)
- use Message::from_digest in secp256k1 ecrecover (#1199)
5.0.0 - 2024-03-08
- (precompile) add a bool to bytes32 helper function (#1170)
- precompile with generic context (#1155)
- Add boxed precompile trait (#1131)
4.1.0 - 2024-02-22
- bump c-kzg, add portable feature, make it default (#1106)
- clippy cleanup (#1112)
4.0.1 - 2024-02-17
- rename and pass optimism-default-handler to revm-primitives (#1098)
4.0.0 - 2024-02-12
- (precompile) don't allocate if padding is not needed (#1075)
- (precompile) simplify bn128 precompile implementations (#1074)
- (precompile) make use of padding utilities, simplify secp256k1 (#1073)
- precompile bn128 copy (#1071)
- (revm) Add helpers to Build Revm with Context (#1068)
3.0.0 - 2024-02-07
Precompiles are refactored from list to HashMap, this allows adding arbitrary precompiles to the list.
- (op) Ecotone hardfork (#1009)
- EvmBuilder and External Contexts (#888)
- add asm-keccak feature (#972)
Canyon
hardfork behindoptimism
feature flag (#871)- (interpreter) add more helper methods to memory (#794)
- (precompile) use Aurora modexp lib. (#769)
- derive more traits (#745)
- (ci) Workflow Touchups (#901)
- bump c-kzg and enable blst portable feature (#1059)
- (deps) bump secp256k1 from 0.28.1 to 0.28.2 (#1038)
- (Cancun) update Cancun precompiles docs (#1015)
- (log) use alloy_primitives::Log (#975)
- (deps) bump k256 from 0.13.2 to 0.13.3 (#959)
- (deps) bump secp256k1 from 0.28.0 to 0.28.1 (#954)
- (deps) bump once_cell from 1.18.0 to 1.19.0 (#908)
- bump k256 and use normalize_s (#870)
- simplify use statements (#864)
- (precompiles) Make PrecompileWithAddress field public, from impl (#857)
- change addresses to iterator and add into_addresses (#855)
- bump c-kzg to v0.4.0 (#849)
- Refactor precompile list from Hash to vec (#823)
- (eip4844) update kzg trusted setup (#822)
- secp256k1 from 0.27 to 0.28 (#817)
- for now support 1.69 rust compiler (#814)
- document everything, dedup existing docs (#741)
date 02.10.2023
Migration to alloy primitive types.
Full git log:
- af4146a - feat: Alloy primitives (#724) (15 hours ago)
date 28.09.2023
Summary:
- Cancun EIP-4844 precompile. It is behind
c-kzg
that is enabled by default the reason is that c-kzg fails to build on wasm and some docker images. - no_std support
- small fixes to return out of gas for modepx and pairing precompiles.
Full git log:
- 4f916be - chore: bump c-kzg to create lib (#758) (5 hours ago)
- f79d0e1 - feat: Optimism execution changes (#682) (16 hours ago)
- b9938a8 - chore(deps): bump sha2 from 0.10.7 to 0.10.8 (#752) (30 hours ago) <dependabot[bot]>
- 8206193 - feat: add "kzg" as a separate feature (#746) (2 hours ago)
- 73f6ad7 - modexp gas check (#737) (24 hours ago)
- cb39117 - fix(eip4844): Pass eth tests, additional conditions added. (#735) (6 days ago)
- fa13fea - (lorenzo/main) feat: implement EIP-4844 (#668) (11 days ago)
- 175aaec - Removed the last dependencies breaking no-std build. (#669) (4 weeks ago)
- 0fa4504 - fix: pairing cost formula (#659) (4 weeks ago)
- eb6a9f0 - Revert "feat: alloy migration (#535)" (#616) (6 weeks ago)
- c1bad0d - chore: spell check (#615) (6 weeks ago)
- f95b7a4 - feat: alloy migration (#535) (6 weeks ago)
- 5cdaa97 - chore: avoid unnecessary allocations (#581) (6 weeks ago)
- 30bfa73 - fix(doc): Inline documentation of re-exports (#560) (9 weeks ago)
date: 03.05.2023
Bump revm primitives.
date: 14.04.2023
- b2c5262 - fix: k256 compile error (#451) (7 days ago)
date: 04.04.2023
Small changes
Changelog:
- 992a11c - (HEAD -> v/310, origin/lib_versions) bump all (89 minutes ago)
- d935525 - chore(deps): bump secp256k1 from 0.26.0 to 0.27.0 (#429) (2 weeks ago) <dependabot[bot]>
- f2656b7 - chore: add primitive SpecId to precompile SpecId conversion (#408) (4 weeks ago)
date: 29.01.2023
Renamed to revm-precompiles
from revm_precompiles
date: 22.11.2022
Bump dependency versions.
date: 06.09.2022
Small release:
- refactor(precompiles): Vec -> BTreeMap (#177) (3 weeks ago)
- Cache precompile map with once_cell
- Bump dependencies version
date: 11.06.2022
Small release:
- Bump k256,secp256 libs
- rename Byzantine to Byzantium
date: 30.04.2022
Promoting it to stable version, and i dont expect for precompiles to change in any significant way in future.
- propagate the back the error of Signature::try_from. Thanks to: Nicolas Trippar
- Updating dependency versions: secp256k1, k256,primitive_types
date: 20.1.2022
- Added feature for k256 lib. We now have choise to use bitcoin c lib and k256 for ecrecovery.
- switch stacks H256 with U256
- Error type is changed to
Return
in revm so it is in precompiles.
Removed parity-crypto and use only needed secp256k1 lib. Added ecrecover
feature to allow dissabling it for wasm windows builds.
Initial version.