Support for prague EIPs.
- EOF not fully tested but most of implementation is there.
- EIP-2537: BLS12-381 curve operations
- EIP-2935: Serve historical block hashes from state
EOF removed BytecodeLocked, OpCode table got changed, and CallInputs got refactored.
Versions
- revme: 0.4.0 -> 0.5.0 (⚠️ API breaking changes)
- revm: 8.0.0 -> 9.0.0 (⚠️ API breaking changes)
- revm-interpreter: 4.0.0 -> 5.0.0 (⚠️ API breaking changes)
- revm-primitives: 3.1.1 -> 4.0.0 (⚠️ API breaking changes)
- revm-precompile: 6.0.0 -> 7.0.0 (⚠️ API breaking changes)
- revm-test: 0.1.0
What's Changed
- chore: fix publish revm-precompile by @rakita in #1258
- feat(interpreter): test Host object-safety, allow
dyn Host
in instructions by @DaniPopes in #1245 - chore(deps): bump secp256k1 from 0.28.2 to 0.29.0 by @dependabot in #1260
- feat(interpreter): remove SPEC generic from gas calculation functions by @DaniPopes in #1243
- feat(interpreter): derive Eq for InterpreterAction by @DaniPopes in #1262
- chore: add and use EvmContext::take_error by @DaniPopes in #1264
- feat(
db
): Introducealloydb
by @Evalir in #1257 - minor typo fix in docs by @h3lio5 in #1266
- chore(ci): use more stable rust toolchain plugin by @rakita in #1269
- check without microbench by @rakita in #1259
- perf(interpreter): use
pop_top!
where possible by @DaniPopes in #1267 - Add the modifies_memory macro by @h3lio5 in #1270
- feat: pass rand feature to alloy_primitives by @Wodann in #1276
- Update documentation by @Pana in #1275
- feat: EOF (Ethereum Object Format) by @rakita in #1143
- feat(revme): add --keep-going to statetest command by @DaniPopes in #1277
- docs(inspectors): change
serde
toserde-json
forTracerEip3155
by @Jon-Becker in #1285 - feat: add flag to force hashbrown usage by @Wodann in #1284
- feat(revm): make
FrameOrResult
serializable by @n0b0dyCN in #1282 - feat: add
Bytecode::original_byte_slice
by @DaniPopes in #1286 - Drops check for .json when testing a single file by @mw2000 in #1301
- fix: correct some stack IO by @DaniPopes in #1302
- chore(interpreter): rename wrapping_* opcodes by @DaniPopes in #1306
- chore: fix some warnings by @DaniPopes in #1305
- perf(interpreter): remove EOF branch in CODE{SIZE,COPY} by @DaniPopes in #1308
- chore(deps): bump anyhow from 1.0.81 to 1.0.82 by @dependabot in #1293
- chore(interpreter): rename some macros by @DaniPopes in #1304
- docs: fix the Instruction Table link by @IaroslavMazur in #1337
- chore: weekly dependabot by @mattsse in #1325
- chore: update GitHub Actions to Node 20 by @IaroslavMazur in #1338
- Implement
with_chain_id
forCfgEnv
by @tcoratger in #1327 - feat: add helper methods to CallInputs by @DaniPopes in #1345
- fix(revme): Print one json outcome in statetest by @rakita in #1347
- refactor: shrink OpCodeInfo and add more methods by @DaniPopes in #1307
- chore: don't clone bytes in
Bytecode::bytes
by @DaniPopes in #1344 - chore(deps): bump aurora-engine-modexp from 1.0.0 to 1.1.0 by @dependabot in #1339
- fix: return the correct error in resize_memory by @DaniPopes in #1359
- feat(interpreter): add helpers for spending all gas by @DaniPopes in #1360
- perf: remove bounds check in DUP, SWAP/EXCHANGE by @DaniPopes in #1346
- chore(deps): bump hashbrown from 0.14.3 to 0.14.5 by @dependabot in #1365
- Add uniswap V2 WETH-USDC swap example by @pawurb in #1353
- perf(interpreter): rewrite gas accounting for memory expansion by @DaniPopes in #1361
- feat: parse opcodes from strings by @DaniPopes in #1358
- feat(Handler): Add ClearHandle by @rakita in #1368
- feat: implement EIP-2935 by @onbjerg in #1354
- chore: re-use num_words in gas::cost_per_word by @DaniPopes in #1371
- chore(ci): bump action/deploy by @rakita in #1372
- perf(interpreter): branch less in as_usize_or_fail by @DaniPopes in #1374
- chore: remove unused file by @DaniPopes in #1379
- bump alloy & specify dep rev by @halo3mic in #1380
- chore(revme): increment statetest bar after running the test by @DaniPopes in #1377
- add blob_count and max_blobs to
TooManyBlobs
err enum by @yash-atreya in #1375 - chore(deps): bump thiserror from 1.0.58 to 1.0.59 by @dependabot in #1383
- chore(deps): bump serde from 1.0.197 to 1.0.200 by @dependabot in #1385
- chore(deps): bump reqwest from 0.12.2 to 0.12.4 by @dependabot in #1384
- feat: add a hook to optionally execute individual frames by @DaniPopes in #1369
- chore: refactor lints by @rakita in #1386
- feat: add trace option in
revme evm
by @qiweiii in #1376 - feat(precompile): add Prague hardfork specification by @shekhirin in #1387
- chore: bump c-kzg to 1.0.2 by @Rjected in #1390
- feat(precompile): BLS12-381 by @shekhirin in #1389
- fix(precompile): inherit Prague precompiles from Cancun by @shekhirin in #1392
- fix(precompile): blst dangling pointers, cleanup by @DaniPopes in #1391
- chore: add Trin to used by list by @KolbyML in #1393
- fix(eip2935): Preload blockhash storage address by @rakita in #1395
- feat: Add bytes to Bytecode by @rakita in #1396
- chore: release by @github-actions in #1261
- chore: main CHANGELOG, tag v36 by @rakita in #1397
- chore: remove alloydb example as the crate is not published by @rakita in #1398
New Contributors
- @h3lio5 made their first contribution in #1266
- @Jon-Becker made their first contribution in #1285
- @n0b0dyCN made their first contribution in #1282
- @mw2000 made their first contribution in #1301
- @halo3mic made their first contribution in #1380
- @KolbyML made their first contribution in #1393
Full Changelog: v35...v36