Skip to content

Releases: Jon-Becker/heimdall-rs

0.4.2

06 Apr 15:47
Compare
Choose a tag to compare
  • ✏️ typo: in the "missing rpc" message by @qd-qd [ #82 ]
  • 🔧 fix: swap external call success variable, don't prune in postprocessing by @Jon-Becker
  • 🔧 fix: patch solidity repr of SHL, SHR, SAR by @Jon-Becker
  • 🔧 fix: update recursive_map loop detection by @Jon-Becker
  • ⚡️ perf: dedup ABI output in decompile module by @Jon-Becker
  • ⚡️ perf: simplify arithmetic in postprocessing with optimization by @Jon-Becker
  • 🎨 style: remove extra whitespace when simplifying arithmetic in postprocessing by @Jon-Becker
  • ✨ feat: add --explain option to decode module by @Jon-Becker
  • ⚡️ perf: clippy by @Jon-Becker
  • ⚡️ perf: break out of loops using normalized Levenshtein distance on c… by @Jon-Becker
  • ✨ feat: allow for yul output via --include-yul by @Jon-Becker
  • 🔧 fix: fatal decompilation bug causing missing functions and code by @Jon-Becker
  • 🔧 fix: Fix potential usize overflow analyzing CALLDATALOAD ops by @Jon-Becker

0.4.1

19 Mar 19:20
754aa10
Compare
Choose a tag to compare

What's Changed

  • 🔧 fix(postprocessing): replace full event signature with repr by @Jon-Becker
  • 🔧 fix: allow multi-chain dump with --chain <CHAIN> by @Jon-Becker

0.4.0

16 Mar 23:36
f3fab2b
Compare
Choose a tag to compare

What's Changed

New Contributors

0.3.4

07 Mar 21:10
Compare
Choose a tag to compare

What's Changed

  • 🔧 fix: fixes CFGs recursive_map to updated impl by @Jon-Becker in #72
  • 🔧 fix: Get all the results from openchain by @nodauf in #75
  • ✨ feat: switch to etherface over openchain by @Jon-Becker in #76
  • 📦 deps: bump ethers to 2.0.0 by @Jon-Becker

New Contributors

0.3.3

25 Feb 22:52
Compare
Choose a tag to compare

What's Changed

  • 🔧 fix: RETURNDATASIZE and other vm fixes by @Jon-Becker in #62
  • ⚡ perf: vm performance improvements by @Jon-Becker in #66
  • 🔧 fix: loop detection will check memory and storage by @Jon-Becker in #68
  • ✨ feat: implement cache for decode, disassemble, decompile, & cfg by @Jon-Becker in #70

0.3.2

12 Feb 21:00
979cedd
Compare
Choose a tag to compare
  • Exposes the decode module as a library method that can be used in your own code: decode_calldata(calldata: String). [ #60 ]

0.3.1

09 Feb 22:37
Compare
Choose a tag to compare
  • Allows for the CFG module to work on any EVM contract. [ #59, #53 ]
  • Patches loop detection to be more thorough. [ #56 ]
  • Introduces the -c or --color-edges to the CFG module to colorize edges based on the JUMPI condition. This is useful for visualizing the flow of if statements. [ #59 ]
  • Minor memory optimizations. [ #59 ]

0.3.0

02 Feb 00:45
2085eeb
Compare
Choose a tag to compare
  • Introduces the cfg module, which generates the control-flow graph for contract bytecode. [ #46 ]
  • Workspace improvements for contributors. [ #47 ]
  • Linting fixes & optimizations. [ #48, #50 ]
  • Remove regex backtracing for loop detection. Switch to symbolic stack loop detection (thanks plotchy), which both improves runtime and removes the branch limit of 1000. [ #51 ]
    • Fully resolves #30

    • Runtime reduced significantly.

      Benchmarks image

0.2.5

23 Jan 17:05
be45e91
Compare
Choose a tag to compare
  • Major decompilation optimizations, reducing runtime exponentially. [ #45 ]

0.2.4

19 Jan 18:15
ad93f27
Compare
Choose a tag to compare
  • Fixes a panic on unwrapping invalid conditional. [ #40 ]
  • Fixes event resolution. [ #43 ]