Skip to content

Releases: bluealloy/revm

revm v3.4.0

28 Sep 16:40
80c909d
Compare
Choose a tag to compare

Summary

revm:

  • Cancun ready. all EIP implemented.
    Check interpreter CHANGELOG
  • revm State. a Database that handles Reverts and state transitions.
  • Optimism support
  • no_std build

revm-interpreter:

  • Cancun support:
    • EIP-7516: BLOBBASEFEE opcode
    • EIP-4844: Shard Blob Transactions
    • EIP-1153: Transient storage opcodes
    • EIP-5656: MCOPY - Memory copying instruction
  • Rename SHA3 to KECCAK256, this can potentially break some tracers.
  • Refactor opcodes and Interpreter dispatch loop. Better performance.
  • optimize stack usage for recursive call and create programs.
    This brings down the native stack usage as calls are in recursion.

revm-precompile:

  • 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.

revm-primitives:

  • Some check for Env validity moved from revm to primitives crate.
  • Cancun spec introduced.
  • no_std added to primitives.
  • introduce initcode size limit check taking config into account.
  • deprecate RefDBWrapper for more generic WrapDatabaseRef.
  • Implement Error for EVMError.
  • Removal of hash from Bytecode.
  • ChainId converted from U256 to u64.
  • CfgEnv marked as non_exhaustive to accommodate future changes.
  • Introduce InvalidHeader error that contains prevrandao and blob gas not set errors.
  • c-kzg added as dependency as it is needed for KzgSetting that is sed inside EnvCfg.

What's Changed

Read more

v22, revm v3.1.1

14 Apr 16:12
fcbd2d9
Compare
Choose a tag to compare

Fix for k256 build.

What's Changed

Full Changelog: v21...v22

revm: v3.1.0

04 Apr 12:31
a66c9c0
Compare
Choose a tag to compare

Main changes can be summarizes in:

  • f91d5f9 - refactor: remove gas blocks (#391) (5 weeks ago)
    • removal of gas block allowed us to have more compact analysis data. Gas block from beginning didn't have big impact on performance but introduced not intuitive gas calculations that was
      source of some bugs.
  • 08ce847 - feat(Shanghai): All EIPs: push0, warm coinbase, limit/measure initcode (#376) (7 weeks ago)
    • revm is Shanghai ready
  • afc3066 - fix(db): preserve existing account state (#414) (4 weeks ago)
    • There wasone bug inside CacheDB that was here for a long time, and would happen only if
      selfdestruct/create2 is called in multiple transaction on same account on same cache data.
  • 92f08be - feat: json opcode traces EIP-3155 (#356) (7 weeks ago)

What's Changed

New Contributors

Full Changelog: v20...v21

revm v3.0.0

30 Jan 21:47
Compare
Choose a tag to compare

date 29.01.2022

project versions:

  • revm: v3.0.0
  • revm-precompile: v2.0.0
  • revm-primitives: v1.0.0
  • revm-interpreter: v1.0.0

This is big release that has core changes that breaks compatibility. In summary:

  • Project is refactored into revm-primitives,revm-precompile, revm-interpreter and revm to have more flexibility and separation of concerns. And include paths in revm reflect that. So try to find include as revm::primitives or revm::interpreter
  • Parity primitive-types was replaced with ruint for big numbers and subset of macros are used for native B160/B256 types.
  • Interpreter instructions are unified and now all of them have same signature.
  • web3 db was replaces with ethers alternative.
  • revmjs lib was removed from crates.
  • revm_precompiles was renamed to revm-precompile.
  • Return types are made to have more insight of what have happened inside revm.
  • Snailtracer benchmark got around 20% faster.

Github Changelog:

dc9818f - (HEAD -> o/bump, origin/bump_v20) Bump v20 (13 hours ago)
75ef0f1 - (origin/main, origin/HEAD) feat: Staticcall internal return (#349) (13 hours ago)
0194b37 - (t) fix bug introduced in last commit (13 hours ago)
7b00f32 - Cleanup imports (#348) (14 hours ago)
c14d7ea - fix: enable the examples to run with the current revm (#347) (16 hours ago)
329fd94 - Wrap all calls to interpreter.gas.erase_cost with checks if USE_GAS is enabled (#346) (2 days ago)
72355f4 - improvement: add logs & return value to revert (#343) (3 days ago)
142a1c9 - expose hashbrown::HashMap in primitives (#345) (3 days ago)
ba393d7 - fix: disable balance check (#342) (4 days ago)
876fad1 - refactor: simplify DatabaseComponentError (#339) (6 days ago)
81534ad - chore: includes to libs (#338) (7 days ago)
e2f4d32 - Creating revm-primitives, revm better errors and db components (#334) (10 days ago)
de83db6 - fix: feature flags (#330) (2 weeks ago)
b60269c - revm: mark with-serde feature as deprecated (#328) (2 weeks ago)
63bf475 - make load_account pub (#325) (3 weeks ago)
0ef0197 - Cleanup, move hot fields toggether in Interpreter (#321) (3 weeks ago)
81942d6 - enable proptest with arbitrary feature (#323) (3 weeks ago)
2be3798 - feat: revm-interpreter created (#320) (3 weeks ago)
7e98fef - fix: feature flag compiler errors (#256) (5 weeks ago)
488ef8a - Add example for fork + ref_transact impl (#296) (6 weeks ago) <0xDmtri>
56e6c22 - feat: allow disabling of balance checks (#297) (6 weeks ago)
8661467 - feat: Export CustomPrinter insector from revm (#300) (6 weeks ago)
222b8e9 - feature: substitute web3db to ethersdb (#293) (6 weeks ago) <0xDmtri>
fd01083 - feature(revm): Return bytes in Create calls (#289) (7 weeks ago)
2fb0933 - docs: Correct typo (#282) (7 weeks ago)
90fe01e - feat(interpreter): Unify instruction fn signature (#283) (7 weeks ago)
54e0333 - bug: Integer overflow while calculating the remaining gas in GasInspector (#287) (8 weeks ago)
acdbaac - native bits (#278) (8 weeks ago)
69e302b - feat(revm): Add prevrandao field to EnvBlock (#271) (2 months ago)
d1703cd - Export StorageSlot (#265) (3 months ago) <Francesco Cinà>
560bb03 - Fix: typos (#263) (3 months ago)
369244e - feat(refactor): make keccak in one place. (#247) (3 months ago)
c96c878 - feat: Migrate primitive_types::U256 to ruint::Uint<256, 4> (#239) (3 months ago)

New Contributors

Full Changelog: v19...v20

tag v15: revm 2.0, precompiles v1.1.1

11 Sep 08:07
46fa92e
Compare
Choose a tag to compare

What's Changed

New Contributors

Full Changelog: v14...v15

v11 - revm 1.6.0

02 Jul 18:25
Compare
Choose a tag to compare

I didn't do this in a while on Github.
You can check CHANGELOG.md for global changes or evm related CHANGELOG.md. Other then revm, precompiles got updated in v6 and stabilized to v1.0.0

Commits from v5 to v11:

New Contributors

Full Changelog: v5...v11

v5

20 Jan 23:32
Compare
Choose a tag to compare
v5
  • revm_precompiles: v0.4.0
    • Added feature for k256 lib. We now have choise to use bitcoin c lib or k256 for ecrecovery.
  • revm: v1.2.0
    • Bump revm_precompile and added new feature for k256 lib.

v4

20 Jan 21:44
Compare
Choose a tag to compare
v4
  • revm: v1.1.0:
    • Bug fix for unknown OpCode
    • Omit edgecase high nonce test. tracer gas fix
    • Some internal cleanup

v3

18 Dec 15:38
Compare
Choose a tag to compare
v3
  • revm: v1.0.0
  • revme: v0.1.0 (initial release still WIP)

v2

17 Nov 02:56
ebcc041
Compare
Choose a tag to compare
v2

revm: v0.5.0
revm_precompiles: v0.3.0