Jon-Becker / heimdall-rs

Heimdall is an advanced EVM smart contract toolkit specializing in bytecode analysis and extracting information from unverified contracts.
http://heimdall.rs
MIT License
1.19k stars 125 forks source link

feat: allow for loading/caching known `--abi` for improved signature resolution #516

Closed Jon-Becker closed 6 days ago

Jon-Becker commented 6 days ago

Motivation

Solution

github-actions[bot] commented 6 days ago

Benchmark for 632c4b2

Click to view benchmark | Test | Base | PR | % | |------|--------------|------------------|---| | heimdall_cfg/complex | **13.7±0.07ms** | 13.8±0.06ms | **+0.73%** | | heimdall_cfg/simple | 2.1±0.01ms | 2.1±0.01ms | 0.00% | | heimdall_decoder/seaport | **34.2±1.14µs** | 35.2±0.82µs | **+2.92%** | | heimdall_decoder/transfer | 3.7±0.19µs | 3.7±0.17µs | 0.00% | | heimdall_decoder/uniswap | **10.8±0.20µs** | 11.1±0.29µs | **+2.78%** | | heimdall_decompiler/abi_complex | **50.1±0.37ms** | 50.5±0.18ms | **+0.80%** | | heimdall_decompiler/abi_simple | **1856.1±35.31µs** | 2.1±0.01ms | **+13.14%** | | heimdall_decompiler/sol_complex | 58.4±0.98ms | 58.5±0.20ms | +0.17% | | heimdall_decompiler/sol_simple | **2.1±0.03ms** | 2.4±0.01ms | **+14.29%** | | heimdall_decompiler/yul_complex | 53.1±0.98ms | **52.7±0.22ms** | **-0.75%** | | heimdall_decompiler/yul_simple | **1972.7±34.79µs** | 2.2±0.01ms | **+11.52%** | | heimdall_disassembler/complex | 801.7±26.10µs | **709.1±23.63µs** | **-11.55%** | | heimdall_disassembler/simple | 39.7±1.13µs | **34.8±0.89µs** | **-12.34%** | | heimdall_vm/erc20_transfer | 294.1±9.80µs | **264.0±8.53µs** | **-10.23%** | | heimdall_vm/fib | **643.5±7.48µs** | 660.7±10.93µs | **+2.67%** | | heimdall_vm/ten_thousand_hashes | **575.5±24.10ms** | 584.8±5.18ms | **+1.62%** |