Skip to content

refactor(levm): give more details in TxValidationError #3408

New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Open
wants to merge 13 commits into
base: main
Choose a base branch
from

Conversation

ricomateo
Copy link
Contributor

@ricomateo ricomateo commented Jun 30, 2025

Motivation
From #3062

When validating a transaction it would be useful for the LEVM user to know more details about why a transaction didn't pass the initial validations.
This involves changing errors inside of TxValidationError enum.

Description
This PR adds more detail to some of the TxValidationError error types.
It also introduces the following changes:

  • Updates the error messages in the ef_tests deserializer.
  • Adds a regex to match the new error format in the ef_tests runner. This is required since the deserialized messages do not include the newly added details, so we need to ignore those details and ensure the match still succeeds.

Caution

Do not merge until the PR to execution-spec-tests has been merged.

Closes #3062

Copy link

github-actions bot commented Jun 30, 2025

Lines of code report

Total lines added: 225
Total lines removed: 250
Total lines changed: 475

Detailed view
+--------------------------------------------------+-------+------+
| File                                             | Lines | Diff |
+--------------------------------------------------+-------+------+
| ethrex/cmd/ef_tests/blockchain/deserialize.rs    | 129   | +3   |
+--------------------------------------------------+-------+------+
| ethrex/cmd/ef_tests/blockchain/test_runner.rs    | 356   | +9   |
+--------------------------------------------------+-------+------+
| ethrex/cmd/ef_tests/state/runner/levm_runner.rs  | 415   | +15  |
+--------------------------------------------------+-------+------+
| ethrex/crates/l2/contracts/bin/deployer/error.rs | 29    | +2   |
+--------------------------------------------------+-------+------+
| ethrex/crates/l2/contracts/bin/deployer/main.rs  | 772   | +155 |
+--------------------------------------------------+-------+------+
| ethrex/crates/l2/sdk/src/sdk.rs                  | 487   | -250 |
+--------------------------------------------------+-------+------+
| ethrex/crates/vm/levm/src/errors.rs              | 208   | +18  |
+--------------------------------------------------+-------+------+
| ethrex/crates/vm/levm/src/hooks/default_hook.rs  | 338   | +19  |
+--------------------------------------------------+-------+------+
| ethrex/crates/vm/levm/src/hooks/l2_hook.rs       | 111   | +4   |
+--------------------------------------------------+-------+------+

Copy link

No significant difference was registered for any benchmark run.

Detailed Results

Benchmark Results: BubbleSort

Command Mean [s] Min [s] Max [s] Relative
main_revm_BubbleSort 3.129 ± 0.012 3.111 3.154 1.00
main_levm_BubbleSort 4.420 ± 0.017 4.405 4.459 1.41 ± 0.01
pr_revm_BubbleSort 3.152 ± 0.047 3.129 3.282 1.01 ± 0.02
pr_levm_BubbleSort 4.477 ± 0.026 4.432 4.531 1.43 ± 0.01

Benchmark Results: ERC20Approval

Command Mean [s] Min [s] Max [s] Relative
main_revm_ERC20Approval 1.052 ± 0.017 1.036 1.091 1.01 ± 0.02
main_levm_ERC20Approval 1.586 ± 0.007 1.574 1.597 1.52 ± 0.02
pr_revm_ERC20Approval 1.040 ± 0.011 1.030 1.062 1.00
pr_levm_ERC20Approval 1.567 ± 0.006 1.561 1.582 1.51 ± 0.02

Benchmark Results: ERC20Mint

Command Mean [ms] Min [ms] Max [ms] Relative
main_revm_ERC20Mint 136.9 ± 0.9 135.5 138.8 1.00
main_levm_ERC20Mint 277.0 ± 16.1 267.5 308.2 2.02 ± 0.12
pr_revm_ERC20Mint 137.2 ± 3.0 134.8 145.4 1.00 ± 0.02
pr_levm_ERC20Mint 259.0 ± 1.2 257.5 260.8 1.89 ± 0.01

Benchmark Results: ERC20Transfer

Command Mean [ms] Min [ms] Max [ms] Relative
main_revm_ERC20Transfer 243.1 ± 2.8 241.2 250.7 1.00
main_levm_ERC20Transfer 418.3 ± 2.9 413.9 424.4 1.72 ± 0.02
pr_revm_ERC20Transfer 243.4 ± 1.6 241.6 246.0 1.00 ± 0.01
pr_levm_ERC20Transfer 407.0 ± 2.4 404.4 412.5 1.67 ± 0.02

Benchmark Results: Factorial

Command Mean [ms] Min [ms] Max [ms] Relative
main_revm_Factorial 234.2 ± 1.5 232.7 236.8 1.02 ± 0.01
main_levm_Factorial 439.4 ± 5.7 435.4 455.4 1.92 ± 0.03
pr_revm_Factorial 228.6 ± 1.0 226.3 229.9 1.00
pr_levm_Factorial 445.2 ± 2.3 442.4 450.0 1.95 ± 0.01

Benchmark Results: FactorialRecursive

Command Mean [s] Min [s] Max [s] Relative
main_revm_FactorialRecursive 1.625 ± 0.020 1.597 1.655 1.03 ± 0.02
main_levm_FactorialRecursive 2.827 ± 0.029 2.793 2.877 1.79 ± 0.03
pr_revm_FactorialRecursive 1.581 ± 0.023 1.541 1.616 1.00
pr_levm_FactorialRecursive 2.736 ± 0.016 2.719 2.773 1.73 ± 0.03

Benchmark Results: Fibonacci

Command Mean [ms] Min [ms] Max [ms] Relative
main_revm_Fibonacci 205.5 ± 0.5 204.7 206.4 1.01 ± 0.01
main_levm_Fibonacci 440.1 ± 15.2 430.0 474.9 2.16 ± 0.08
pr_revm_Fibonacci 203.3 ± 1.6 199.4 205.7 1.00
pr_levm_Fibonacci 455.0 ± 67.8 431.7 647.9 2.24 ± 0.33

Benchmark Results: ManyHashes

Command Mean [ms] Min [ms] Max [ms] Relative
main_revm_ManyHashes 8.7 ± 0.0 8.6 8.7 1.01 ± 0.01
main_levm_ManyHashes 14.1 ± 0.2 13.9 14.7 1.63 ± 0.03
pr_revm_ManyHashes 8.7 ± 0.0 8.6 8.7 1.00
pr_levm_ManyHashes 13.3 ± 0.2 13.1 13.6 1.54 ± 0.02

Benchmark Results: Push

Command Mean [ms] Min [ms] Max [ms] Relative
main_revm_Push 297.1 ± 1.3 295.4 299.3 1.02 ± 0.01
main_levm_Push 1043.8 ± 3.9 1039.0 1050.6 3.58 ± 0.03
pr_revm_Push 291.7 ± 1.8 288.6 294.7 1.00
pr_levm_Push 1105.7 ± 2.5 1102.7 1110.6 3.79 ± 0.02

Copy link

No significant difference was registered for any benchmark run.

Detailed Results

Benchmark Results: BubbleSort

Command Mean [s] Min [s] Max [s] Relative
main_revm_BubbleSort 3.150 ± 0.025 3.123 3.192 1.00 ± 0.01
main_levm_BubbleSort 4.459 ± 0.081 4.405 4.615 1.42 ± 0.03
pr_revm_BubbleSort 3.143 ± 0.015 3.127 3.172 1.00
pr_levm_BubbleSort 4.379 ± 0.027 4.351 4.430 1.39 ± 0.01

Benchmark Results: ERC20Approval

Command Mean [s] Min [s] Max [s] Relative
main_revm_ERC20Approval 1.034 ± 0.005 1.031 1.048 1.00
main_levm_ERC20Approval 1.520 ± 0.005 1.515 1.530 1.47 ± 0.01
pr_revm_ERC20Approval 1.036 ± 0.012 1.029 1.069 1.00 ± 0.01
pr_levm_ERC20Approval 1.517 ± 0.008 1.506 1.528 1.47 ± 0.01

Benchmark Results: ERC20Mint

Command Mean [ms] Min [ms] Max [ms] Relative
main_revm_ERC20Mint 137.7 ± 0.6 136.7 138.8 1.02 ± 0.00
main_levm_ERC20Mint 256.6 ± 1.5 254.8 260.0 1.89 ± 0.01
pr_revm_ERC20Mint 135.6 ± 0.3 135.3 136.1 1.00
pr_levm_ERC20Mint 257.1 ± 1.5 255.4 259.9 1.90 ± 0.01

Benchmark Results: ERC20Transfer

Command Mean [ms] Min [ms] Max [ms] Relative
main_revm_ERC20Transfer 247.3 ± 9.7 242.1 272.5 1.03 ± 0.04
main_levm_ERC20Transfer 403.7 ± 7.5 397.0 420.2 1.68 ± 0.03
pr_revm_ERC20Transfer 240.6 ± 0.6 239.7 241.5 1.00
pr_levm_ERC20Transfer 402.8 ± 7.5 397.2 416.5 1.67 ± 0.03

Benchmark Results: Factorial

Command Mean [ms] Min [ms] Max [ms] Relative
main_revm_Factorial 234.1 ± 1.8 232.4 237.8 1.02 ± 0.01
main_levm_Factorial 443.2 ± 9.3 436.3 463.3 1.92 ± 0.05
pr_revm_Factorial 230.2 ± 2.5 227.4 236.1 1.00
pr_levm_Factorial 443.3 ± 7.5 438.3 464.2 1.93 ± 0.04

Benchmark Results: FactorialRecursive

Command Mean [s] Min [s] Max [s] Relative
main_revm_FactorialRecursive 1.630 ± 0.050 1.540 1.702 1.03 ± 0.04
main_levm_FactorialRecursive 2.730 ± 0.063 2.669 2.833 1.72 ± 0.05
pr_revm_FactorialRecursive 1.586 ± 0.032 1.543 1.651 1.00
pr_levm_FactorialRecursive 2.719 ± 0.025 2.673 2.747 1.71 ± 0.04

Benchmark Results: Fibonacci

Command Mean [ms] Min [ms] Max [ms] Relative
main_revm_Fibonacci 206.8 ± 0.9 206.1 209.3 1.01 ± 0.00
main_levm_Fibonacci 435.5 ± 3.9 431.0 442.5 2.13 ± 0.02
pr_revm_Fibonacci 204.0 ± 0.2 203.8 204.4 1.00
pr_levm_Fibonacci 430.9 ± 1.5 428.7 433.3 2.11 ± 0.01

Benchmark Results: ManyHashes

Command Mean [ms] Min [ms] Max [ms] Relative
main_revm_ManyHashes 8.8 ± 0.1 8.7 8.9 1.01 ± 0.01
main_levm_ManyHashes 13.4 ± 0.1 13.3 13.5 1.55 ± 0.02
pr_revm_ManyHashes 8.7 ± 0.1 8.6 8.8 1.00
pr_levm_ManyHashes 13.3 ± 0.1 13.2 13.5 1.54 ± 0.01

Benchmark Results: Push

Command Mean [ms] Min [ms] Max [ms] Relative
main_revm_Push 294.5 ± 1.9 293.0 299.5 1.01 ± 0.01
main_levm_Push 1065.0 ± 18.2 1038.0 1082.1 3.65 ± 0.07
pr_revm_Push 292.1 ± 1.8 290.2 295.4 1.00
pr_levm_Push 1046.9 ± 2.5 1043.1 1051.8 3.58 ± 0.02

Copy link

github-actions bot commented Jul 1, 2025

No significant difference was registered for any benchmark run.

Detailed Results

Benchmark Results: BubbleSort

Command Mean [s] Min [s] Max [s] Relative
main_revm_BubbleSort 3.162 ± 0.025 3.142 3.228 1.00 ± 0.01
main_levm_BubbleSort 4.460 ± 0.039 4.421 4.546 1.41 ± 0.01
pr_revm_BubbleSort 3.157 ± 0.012 3.141 3.173 1.00
pr_levm_BubbleSort 4.386 ± 0.019 4.361 4.419 1.39 ± 0.01

Benchmark Results: ERC20Approval

Command Mean [s] Min [s] Max [s] Relative
main_revm_ERC20Approval 1.050 ± 0.009 1.042 1.061 1.01 ± 0.01
main_levm_ERC20Approval 1.528 ± 0.004 1.522 1.536 1.47 ± 0.01
pr_revm_ERC20Approval 1.042 ± 0.009 1.026 1.053 1.00
pr_levm_ERC20Approval 1.525 ± 0.021 1.509 1.581 1.46 ± 0.02

Benchmark Results: ERC20Mint

Command Mean [ms] Min [ms] Max [ms] Relative
main_revm_ERC20Mint 138.4 ± 0.5 137.7 139.3 1.01 ± 0.01
main_levm_ERC20Mint 255.5 ± 1.6 253.1 258.5 1.87 ± 0.02
pr_revm_ERC20Mint 136.6 ± 1.0 135.3 138.7 1.00
pr_levm_ERC20Mint 258.5 ± 2.2 255.6 261.8 1.89 ± 0.02

Benchmark Results: ERC20Transfer

Command Mean [ms] Min [ms] Max [ms] Relative
main_revm_ERC20Transfer 248.3 ± 1.4 247.0 251.2 1.03 ± 0.01
main_levm_ERC20Transfer 401.5 ± 3.1 398.1 408.0 1.67 ± 0.02
pr_revm_ERC20Transfer 241.0 ± 1.2 239.9 243.4 1.00
pr_levm_ERC20Transfer 400.2 ± 2.7 397.6 407.2 1.66 ± 0.01

Benchmark Results: Factorial

Command Mean [ms] Min [ms] Max [ms] Relative
main_revm_Factorial 233.2 ± 1.6 232.3 237.7 1.02 ± 0.01
main_levm_Factorial 447.2 ± 1.4 445.7 449.5 1.96 ± 0.01
pr_revm_Factorial 228.4 ± 1.1 227.2 230.4 1.00
pr_levm_Factorial 445.3 ± 1.6 443.1 447.5 1.95 ± 0.01

Benchmark Results: FactorialRecursive

Command Mean [s] Min [s] Max [s] Relative
main_revm_FactorialRecursive 1.609 ± 0.023 1.568 1.639 1.02 ± 0.06
main_levm_FactorialRecursive 2.686 ± 0.011 2.668 2.711 1.71 ± 0.10
pr_revm_FactorialRecursive 1.573 ± 0.088 1.325 1.617 1.00
pr_levm_FactorialRecursive 2.718 ± 0.010 2.704 2.736 1.73 ± 0.10

Benchmark Results: Fibonacci

Command Mean [ms] Min [ms] Max [ms] Relative
main_revm_Fibonacci 206.5 ± 3.0 204.2 214.8 1.02 ± 0.02
main_levm_Fibonacci 438.2 ± 3.6 433.6 444.6 2.16 ± 0.02
pr_revm_Fibonacci 203.0 ± 1.2 201.2 205.8 1.00
pr_levm_Fibonacci 438.6 ± 10.9 431.9 469.0 2.16 ± 0.06

Benchmark Results: FibonacciRecursive

Command Mean [ms] Min [ms] Max [ms] Relative
main_revm_FibonacciRecursive 873.3 ± 8.6 859.6 888.5 1.04 ± 0.02
main_levm_FibonacciRecursive 1660.4 ± 16.1 1645.3 1698.1 1.98 ± 0.04
pr_revm_FibonacciRecursive 840.6 ± 16.4 810.6 860.3 1.00
pr_levm_FibonacciRecursive 1704.5 ± 5.0 1697.2 1712.1 2.03 ± 0.04

Benchmark Results: ManyHashes

Command Mean [ms] Min [ms] Max [ms] Relative
main_revm_ManyHashes 8.9 ± 0.1 8.8 9.1 1.02 ± 0.01
main_levm_ManyHashes 13.3 ± 0.1 13.2 13.4 1.53 ± 0.02
pr_revm_ManyHashes 8.7 ± 0.1 8.6 8.9 1.00
pr_levm_ManyHashes 13.5 ± 0.1 13.3 13.6 1.55 ± 0.02

Benchmark Results: Push

Command Mean [ms] Min [ms] Max [ms] Relative
main_revm_Push 294.7 ± 1.3 293.5 297.5 1.01 ± 0.01
main_levm_Push 1092.3 ± 5.4 1084.7 1099.8 3.74 ± 0.03
pr_revm_Push 291.9 ± 1.5 289.9 295.2 1.00
pr_levm_Push 1091.1 ± 7.4 1073.7 1099.1 3.74 ± 0.03

Copy link

github-actions bot commented Jul 1, 2025

No significant difference was registered for any benchmark run.

Detailed Results

Benchmark Results: BubbleSort

Command Mean [s] Min [s] Max [s] Relative
main_revm_BubbleSort 3.154 ± 0.014 3.139 3.190 1.00
main_levm_BubbleSort 4.483 ± 0.012 4.467 4.502 1.42 ± 0.01
pr_revm_BubbleSort 3.201 ± 0.011 3.186 3.224 1.02 ± 0.01
pr_levm_BubbleSort 4.501 ± 0.026 4.473 4.563 1.43 ± 0.01

Benchmark Results: ERC20Approval

Command Mean [s] Min [s] Max [s] Relative
main_revm_ERC20Approval 1.043 ± 0.010 1.035 1.059 1.00
main_levm_ERC20Approval 1.569 ± 0.018 1.552 1.609 1.50 ± 0.02
pr_revm_ERC20Approval 1.049 ± 0.008 1.042 1.065 1.01 ± 0.01
pr_levm_ERC20Approval 1.598 ± 0.016 1.587 1.633 1.53 ± 0.02

Benchmark Results: ERC20Mint

Command Mean [ms] Min [ms] Max [ms] Relative
main_revm_ERC20Mint 137.8 ± 0.6 137.1 139.0 1.00
main_levm_ERC20Mint 259.8 ± 2.7 256.7 264.3 1.89 ± 0.02
pr_revm_ERC20Mint 139.0 ± 0.8 138.2 140.7 1.01 ± 0.01
pr_levm_ERC20Mint 271.5 ± 2.3 268.8 274.8 1.97 ± 0.02

Benchmark Results: ERC20Transfer

Command Mean [ms] Min [ms] Max [ms] Relative
main_revm_ERC20Transfer 245.0 ± 0.8 244.2 247.1 1.00
main_levm_ERC20Transfer 407.3 ± 1.8 405.0 411.1 1.66 ± 0.01
pr_revm_ERC20Transfer 247.0 ± 0.8 246.1 248.7 1.01 ± 0.00
pr_levm_ERC20Transfer 416.8 ± 1.5 414.6 419.0 1.70 ± 0.01

Benchmark Results: Factorial

Command Mean [ms] Min [ms] Max [ms] Relative
main_revm_Factorial 231.3 ± 2.1 229.4 237.0 1.00
main_levm_Factorial 452.0 ± 1.2 450.5 453.6 1.95 ± 0.02
pr_revm_Factorial 244.1 ± 4.0 241.0 251.7 1.06 ± 0.02
pr_levm_Factorial 445.1 ± 1.7 443.5 449.3 1.92 ± 0.02

Benchmark Results: FactorialRecursive

Command Mean [s] Min [s] Max [s] Relative
main_revm_FactorialRecursive 1.619 ± 0.025 1.595 1.660 1.00
main_levm_FactorialRecursive 2.703 ± 0.023 2.675 2.758 1.67 ± 0.03
pr_revm_FactorialRecursive 1.664 ± 0.040 1.566 1.714 1.03 ± 0.03
pr_levm_FactorialRecursive 2.833 ± 0.021 2.804 2.873 1.75 ± 0.03

Benchmark Results: Fibonacci

Command Mean [ms] Min [ms] Max [ms] Relative
main_revm_Fibonacci 205.5 ± 0.4 204.8 206.1 1.00
main_levm_Fibonacci 439.5 ± 3.6 436.5 449.5 2.14 ± 0.02
pr_revm_Fibonacci 212.1 ± 0.9 209.9 213.0 1.03 ± 0.00
pr_levm_Fibonacci 439.1 ± 2.4 436.6 445.3 2.14 ± 0.01

Benchmark Results: FibonacciRecursive

Command Mean [ms] Min [ms] Max [ms] Relative
main_revm_FibonacciRecursive 868.9 ± 18.2 838.6 890.3 1.00
main_levm_FibonacciRecursive 1657.2 ± 11.0 1646.7 1682.9 1.91 ± 0.04
pr_revm_FibonacciRecursive 890.5 ± 12.8 869.9 913.3 1.02 ± 0.03
pr_levm_FibonacciRecursive 1759.6 ± 17.8 1742.5 1798.6 2.02 ± 0.05

Benchmark Results: ManyHashes

Command Mean [ms] Min [ms] Max [ms] Relative
main_revm_ManyHashes 8.7 ± 0.1 8.6 8.9 1.00
main_levm_ManyHashes 13.6 ± 0.1 13.5 13.8 1.56 ± 0.02
pr_revm_ManyHashes 8.9 ± 0.3 8.7 9.7 1.02 ± 0.03
pr_levm_ManyHashes 14.3 ± 0.3 13.6 14.6 1.64 ± 0.04

Benchmark Results: Push

Command Mean [ms] Min [ms] Max [ms] Relative
main_revm_Push 295.6 ± 1.7 293.8 299.0 1.00
main_levm_Push 1104.8 ± 14.3 1085.1 1141.6 3.74 ± 0.05
pr_revm_Push 298.9 ± 1.8 294.9 301.0 1.01 ± 0.01
pr_levm_Push 1038.1 ± 2.0 1035.1 1041.0 3.51 ± 0.02

Copy link

github-actions bot commented Jul 1, 2025

No significant difference was registered for any benchmark run.

Detailed Results

Benchmark Results: BubbleSort

Command Mean [s] Min [s] Max [s] Relative
main_revm_BubbleSort 3.156 ± 0.006 3.147 3.166 1.00
main_levm_BubbleSort 4.439 ± 0.019 4.419 4.480 1.41 ± 0.01
pr_revm_BubbleSort 3.197 ± 0.019 3.177 3.230 1.01 ± 0.01
pr_levm_BubbleSort 4.483 ± 0.042 4.437 4.586 1.42 ± 0.01

Benchmark Results: ERC20Approval

Command Mean [s] Min [s] Max [s] Relative
main_revm_ERC20Approval 1.052 ± 0.012 1.039 1.070 1.00
main_levm_ERC20Approval 1.542 ± 0.024 1.531 1.609 1.47 ± 0.03
pr_revm_ERC20Approval 1.052 ± 0.009 1.042 1.065 1.00 ± 0.01
pr_levm_ERC20Approval 1.551 ± 0.015 1.532 1.582 1.47 ± 0.02

Benchmark Results: ERC20Mint

Command Mean [ms] Min [ms] Max [ms] Relative
main_revm_ERC20Mint 137.8 ± 0.4 137.4 138.6 1.00
main_levm_ERC20Mint 257.0 ± 2.6 254.6 263.6 1.86 ± 0.02
pr_revm_ERC20Mint 138.3 ± 0.6 137.4 139.2 1.00 ± 0.00
pr_levm_ERC20Mint 265.2 ± 8.2 261.8 288.4 1.92 ± 0.06

Benchmark Results: ERC20Transfer

Command Mean [ms] Min [ms] Max [ms] Relative
main_revm_ERC20Transfer 247.8 ± 2.1 245.1 252.5 1.00 ± 0.01
main_levm_ERC20Transfer 401.9 ± 1.9 398.8 406.3 1.63 ± 0.01
pr_revm_ERC20Transfer 246.6 ± 1.2 245.4 249.1 1.00
pr_levm_ERC20Transfer 408.9 ± 4.3 406.0 420.6 1.66 ± 0.02

Benchmark Results: Factorial

Command Mean [ms] Min [ms] Max [ms] Relative
main_revm_Factorial 231.2 ± 2.2 229.4 236.4 1.00
main_levm_Factorial 460.1 ± 41.5 446.1 578.4 1.99 ± 0.18
pr_revm_Factorial 241.9 ± 0.9 240.8 243.3 1.05 ± 0.01
pr_levm_Factorial 446.0 ± 2.1 443.7 449.4 1.93 ± 0.02

Benchmark Results: FactorialRecursive

Command Mean [s] Min [s] Max [s] Relative
main_revm_FactorialRecursive 1.619 ± 0.018 1.593 1.644 1.00
main_levm_FactorialRecursive 2.722 ± 0.020 2.692 2.747 1.68 ± 0.02
pr_revm_FactorialRecursive 1.630 ± 0.027 1.565 1.653 1.01 ± 0.02
pr_levm_FactorialRecursive 2.746 ± 0.031 2.721 2.817 1.70 ± 0.03

Benchmark Results: Fibonacci

Command Mean [ms] Min [ms] Max [ms] Relative
main_revm_Fibonacci 208.6 ± 8.0 205.1 231.1 1.00
main_levm_Fibonacci 450.8 ± 33.5 433.6 542.0 2.16 ± 0.18
pr_revm_Fibonacci 212.0 ± 2.5 210.8 218.9 1.02 ± 0.04
pr_levm_Fibonacci 439.5 ± 2.7 436.7 444.0 2.11 ± 0.08

Benchmark Results: FibonacciRecursive

Command Mean [ms] Min [ms] Max [ms] Relative
main_revm_FibonacciRecursive 865.3 ± 9.1 850.8 880.5 1.00
main_levm_FibonacciRecursive 1671.1 ± 18.8 1650.7 1718.9 1.93 ± 0.03
pr_revm_FibonacciRecursive 874.8 ± 7.2 858.1 883.0 1.01 ± 0.01
pr_levm_FibonacciRecursive 1691.8 ± 18.5 1671.5 1735.4 1.96 ± 0.03

Benchmark Results: ManyHashes

Command Mean [ms] Min [ms] Max [ms] Relative
main_revm_ManyHashes 8.8 ± 0.1 8.6 8.9 1.00
main_levm_ManyHashes 13.5 ± 0.1 13.3 13.6 1.54 ± 0.02
pr_revm_ManyHashes 8.8 ± 0.1 8.8 8.9 1.01 ± 0.01
pr_levm_ManyHashes 13.3 ± 1.1 12.8 16.5 1.52 ± 0.13

Benchmark Results: Push

Command Mean [ms] Min [ms] Max [ms] Relative
main_revm_Push 296.6 ± 0.6 295.7 297.5 1.00
main_levm_Push 1069.0 ± 7.7 1061.2 1082.2 3.60 ± 0.03
pr_revm_Push 300.0 ± 0.6 299.1 301.2 1.01 ± 0.00
pr_levm_Push 1122.2 ± 5.2 1115.8 1130.7 3.78 ± 0.02

Copy link

github-actions bot commented Jul 1, 2025

No significant difference was registered for any benchmark run.

Detailed Results

Benchmark Results: BubbleSort

Command Mean [s] Min [s] Max [s] Relative
main_revm_BubbleSort 3.161 ± 0.011 3.147 3.185 1.00
main_levm_BubbleSort 4.476 ± 0.018 4.453 4.508 1.42 ± 0.01
pr_revm_BubbleSort 3.181 ± 0.012 3.168 3.200 1.01 ± 0.01
pr_levm_BubbleSort 4.515 ± 0.045 4.486 4.641 1.43 ± 0.02

Benchmark Results: ERC20Approval

Command Mean [s] Min [s] Max [s] Relative
main_revm_ERC20Approval 1.055 ± 0.008 1.050 1.077 1.02 ± 0.01
main_levm_ERC20Approval 1.560 ± 0.015 1.545 1.590 1.50 ± 0.02
pr_revm_ERC20Approval 1.037 ± 0.008 1.026 1.052 1.00
pr_levm_ERC20Approval 1.565 ± 0.004 1.559 1.570 1.51 ± 0.01

Benchmark Results: ERC20Mint

Command Mean [ms] Min [ms] Max [ms] Relative
main_revm_ERC20Mint 139.0 ± 0.4 138.5 139.9 1.02 ± 0.00
main_levm_ERC20Mint 260.0 ± 3.4 257.4 267.1 1.91 ± 0.03
pr_revm_ERC20Mint 136.4 ± 0.4 135.7 137.0 1.00
pr_levm_ERC20Mint 259.4 ± 1.9 257.3 262.8 1.90 ± 0.02

Benchmark Results: ERC20Transfer

Command Mean [ms] Min [ms] Max [ms] Relative
main_revm_ERC20Transfer 246.7 ± 1.7 245.4 251.3 1.00 ± 0.01
main_levm_ERC20Transfer 406.6 ± 1.7 404.2 410.0 1.66 ± 0.01
pr_revm_ERC20Transfer 245.6 ± 1.8 244.5 250.5 1.00
pr_levm_ERC20Transfer 408.7 ± 2.9 403.9 414.0 1.66 ± 0.02

Benchmark Results: Factorial

Command Mean [ms] Min [ms] Max [ms] Relative
main_revm_Factorial 230.3 ± 1.4 228.7 233.6 1.00
main_levm_Factorial 445.8 ± 1.8 442.5 448.5 1.94 ± 0.01
pr_revm_Factorial 241.8 ± 1.3 240.4 244.8 1.05 ± 0.01
pr_levm_Factorial 478.3 ± 65.3 446.9 639.2 2.08 ± 0.28

Benchmark Results: FactorialRecursive

Command Mean [s] Min [s] Max [s] Relative
main_revm_FactorialRecursive 1.597 ± 0.040 1.504 1.623 1.00
main_levm_FactorialRecursive 2.740 ± 0.027 2.696 2.777 1.72 ± 0.05
pr_revm_FactorialRecursive 1.621 ± 0.018 1.598 1.651 1.02 ± 0.03
pr_levm_FactorialRecursive 2.696 ± 0.009 2.686 2.714 1.69 ± 0.04

Benchmark Results: Fibonacci

Command Mean [ms] Min [ms] Max [ms] Relative
main_revm_Fibonacci 206.7 ± 2.3 205.3 212.8 1.00
main_levm_Fibonacci 445.9 ± 36.0 433.3 548.3 2.16 ± 0.18
pr_revm_Fibonacci 214.2 ± 7.3 210.3 232.5 1.04 ± 0.04
pr_levm_Fibonacci 441.2 ± 5.5 429.9 449.7 2.13 ± 0.04

Benchmark Results: FibonacciRecursive

Command Mean [ms] Min [ms] Max [ms] Relative
main_revm_FibonacciRecursive 867.9 ± 12.3 841.9 882.4 1.00
main_levm_FibonacciRecursive 1670.2 ± 18.3 1653.0 1716.9 1.92 ± 0.03
pr_revm_FibonacciRecursive 871.4 ± 9.6 852.9 882.4 1.00 ± 0.02
pr_levm_FibonacciRecursive 1668.9 ± 11.1 1654.2 1687.1 1.92 ± 0.03

Benchmark Results: ManyHashes

Command Mean [ms] Min [ms] Max [ms] Relative
main_revm_ManyHashes 8.7 ± 0.1 8.6 8.8 1.00
main_levm_ManyHashes 13.3 ± 0.1 13.1 13.4 1.53 ± 0.02
pr_revm_ManyHashes 8.8 ± 0.0 8.7 8.8 1.01 ± 0.01
pr_levm_ManyHashes 13.2 ± 0.1 13.2 13.5 1.52 ± 0.02

Benchmark Results: Push

Command Mean [ms] Min [ms] Max [ms] Relative
main_revm_Push 296.3 ± 1.9 293.6 299.6 1.00
main_levm_Push 1093.1 ± 5.4 1081.4 1097.8 3.69 ± 0.03
pr_revm_Push 299.4 ± 1.5 297.7 302.3 1.01 ± 0.01
pr_levm_Push 1041.2 ± 5.3 1035.8 1055.2 3.51 ± 0.03

Copy link

github-actions bot commented Jul 1, 2025

No significant difference was registered for any benchmark run.

Detailed Results

Benchmark Results: BubbleSort

Command Mean [s] Min [s] Max [s] Relative
main_revm_BubbleSort 3.200 ± 0.120 3.147 3.536 1.01 ± 0.04
main_levm_BubbleSort 4.495 ± 0.041 4.465 4.594 1.41 ± 0.01
pr_revm_BubbleSort 3.182 ± 0.011 3.163 3.199 1.00
pr_levm_BubbleSort 4.625 ± 0.014 4.610 4.653 1.45 ± 0.01

Benchmark Results: ERC20Approval

Command Mean [s] Min [s] Max [s] Relative
main_revm_ERC20Approval 1.062 ± 0.010 1.049 1.078 1.01 ± 0.02
main_levm_ERC20Approval 1.563 ± 0.005 1.557 1.570 1.49 ± 0.02
pr_revm_ERC20Approval 1.048 ± 0.012 1.034 1.072 1.00
pr_levm_ERC20Approval 1.605 ± 0.020 1.586 1.646 1.53 ± 0.03

Benchmark Results: ERC20Mint

Command Mean [ms] Min [ms] Max [ms] Relative
main_revm_ERC20Mint 138.7 ± 0.8 137.9 140.8 1.01 ± 0.01
main_levm_ERC20Mint 267.2 ± 7.0 263.2 286.4 1.94 ± 0.05
pr_revm_ERC20Mint 137.4 ± 0.5 136.8 138.1 1.00
pr_levm_ERC20Mint 264.5 ± 2.7 261.2 270.6 1.92 ± 0.02

Benchmark Results: ERC20Transfer

Command Mean [ms] Min [ms] Max [ms] Relative
main_revm_ERC20Transfer 248.8 ± 2.2 246.8 253.3 1.02 ± 0.01
main_levm_ERC20Transfer 409.5 ± 1.3 408.1 412.4 1.68 ± 0.01
pr_revm_ERC20Transfer 244.1 ± 2.0 242.1 248.9 1.00
pr_levm_ERC20Transfer 414.1 ± 1.7 411.4 417.5 1.70 ± 0.02

Benchmark Results: Factorial

Command Mean [ms] Min [ms] Max [ms] Relative
main_revm_Factorial 231.2 ± 1.7 227.4 234.7 1.00 ± 0.01
main_levm_Factorial 447.8 ± 6.9 444.7 467.2 1.94 ± 0.03
pr_revm_Factorial 230.6 ± 1.0 229.8 233.2 1.00
pr_levm_Factorial 472.1 ± 3.9 468.3 481.7 2.05 ± 0.02

Benchmark Results: FactorialRecursive

Command Mean [s] Min [s] Max [s] Relative
main_revm_FactorialRecursive 1.609 ± 0.023 1.586 1.654 1.04 ± 0.07
main_levm_FactorialRecursive 2.767 ± 0.014 2.751 2.791 1.79 ± 0.12
pr_revm_FactorialRecursive 1.550 ± 0.103 1.335 1.638 1.00
pr_levm_FactorialRecursive 2.792 ± 0.045 2.748 2.904 1.80 ± 0.12

Benchmark Results: Fibonacci

Command Mean [ms] Min [ms] Max [ms] Relative
main_revm_Fibonacci 206.3 ± 0.5 205.7 207.3 1.00 ± 0.02
main_levm_Fibonacci 457.2 ± 68.6 433.0 652.5 2.22 ± 0.34
pr_revm_Fibonacci 206.0 ± 3.9 203.9 216.8 1.00
pr_levm_Fibonacci 464.1 ± 5.4 459.3 473.3 2.25 ± 0.05

Benchmark Results: FibonacciRecursive

Command Mean [ms] Min [ms] Max [ms] Relative
main_revm_FibonacciRecursive 868.2 ± 14.9 837.2 889.7 1.02 ± 0.03
main_levm_FibonacciRecursive 1720.1 ± 12.4 1701.1 1738.3 2.03 ± 0.04
pr_revm_FibonacciRecursive 848.0 ± 16.8 818.3 874.5 1.00
pr_levm_FibonacciRecursive 1713.5 ± 9.7 1699.7 1727.5 2.02 ± 0.04

Benchmark Results: ManyHashes

Command Mean [ms] Min [ms] Max [ms] Relative
main_revm_ManyHashes 8.7 ± 0.1 8.6 8.8 1.00
main_levm_ManyHashes 14.1 ± 0.1 14.0 14.3 1.62 ± 0.02
pr_revm_ManyHashes 8.7 ± 0.1 8.6 8.8 1.00 ± 0.01
pr_levm_ManyHashes 13.9 ± 0.2 13.7 14.2 1.60 ± 0.02

Benchmark Results: Push

Command Mean [ms] Min [ms] Max [ms] Relative
main_revm_Push 295.2 ± 1.0 293.9 296.7 1.01 ± 0.01
main_levm_Push 1105.3 ± 8.2 1096.5 1123.7 3.78 ± 0.03
pr_revm_Push 292.4 ± 1.2 291.0 294.4 1.00
pr_levm_Push 1012.4 ± 3.2 1005.8 1016.4 3.46 ± 0.02

Copy link

github-actions bot commented Jul 1, 2025

No significant difference was registered for any benchmark run.

Detailed Results

Benchmark Results: BubbleSort

Command Mean [s] Min [s] Max [s] Relative
main_revm_BubbleSort 3.149 ± 0.012 3.138 3.181 1.00
main_levm_BubbleSort 4.497 ± 0.029 4.450 4.544 1.43 ± 0.01
pr_revm_BubbleSort 3.154 ± 0.015 3.137 3.189 1.00 ± 0.01
pr_levm_BubbleSort 4.615 ± 0.025 4.592 4.673 1.47 ± 0.01

Benchmark Results: ERC20Approval

Command Mean [s] Min [s] Max [s] Relative
main_revm_ERC20Approval 1.052 ± 0.009 1.044 1.068 1.00
main_levm_ERC20Approval 1.566 ± 0.021 1.545 1.620 1.49 ± 0.02
pr_revm_ERC20Approval 1.059 ± 0.015 1.045 1.089 1.01 ± 0.02
pr_levm_ERC20Approval 1.591 ± 0.005 1.587 1.601 1.51 ± 0.01

Benchmark Results: ERC20Mint

Command Mean [ms] Min [ms] Max [ms] Relative
main_revm_ERC20Mint 140.0 ± 1.4 138.7 143.9 1.01 ± 0.01
main_levm_ERC20Mint 256.0 ± 1.6 254.2 259.6 1.85 ± 0.01
pr_revm_ERC20Mint 138.5 ± 0.5 137.8 139.3 1.00
pr_levm_ERC20Mint 270.5 ± 18.6 261.7 322.2 1.95 ± 0.13

Benchmark Results: ERC20Transfer

Command Mean [ms] Min [ms] Max [ms] Relative
main_revm_ERC20Transfer 248.4 ± 3.3 245.7 254.4 1.01 ± 0.02
main_levm_ERC20Transfer 407.4 ± 5.7 403.9 423.4 1.66 ± 0.03
pr_revm_ERC20Transfer 245.8 ± 2.2 243.9 250.1 1.00
pr_levm_ERC20Transfer 421.6 ± 9.5 414.6 445.2 1.72 ± 0.04

Benchmark Results: Factorial

Command Mean [ms] Min [ms] Max [ms] Relative
main_revm_Factorial 231.7 ± 1.1 230.9 234.5 1.01 ± 0.01
main_levm_Factorial 448.1 ± 1.7 444.2 450.1 1.95 ± 0.02
pr_revm_Factorial 230.1 ± 2.3 228.6 236.0 1.00
pr_levm_Factorial 472.7 ± 6.8 466.4 489.2 2.05 ± 0.04

Benchmark Results: FactorialRecursive

Command Mean [s] Min [s] Max [s] Relative
main_revm_FactorialRecursive 1.608 ± 0.034 1.565 1.654 1.00 ± 0.02
main_levm_FactorialRecursive 2.699 ± 0.019 2.677 2.732 1.68 ± 0.02
pr_revm_FactorialRecursive 1.602 ± 0.017 1.573 1.627 1.00
pr_levm_FactorialRecursive 2.812 ± 0.020 2.793 2.843 1.76 ± 0.02

Benchmark Results: Fibonacci

Command Mean [ms] Min [ms] Max [ms] Relative
main_revm_Fibonacci 205.4 ± 1.2 204.6 208.9 1.01 ± 0.01
main_levm_Fibonacci 435.9 ± 1.9 434.0 439.2 2.14 ± 0.01
pr_revm_Fibonacci 203.7 ± 0.6 203.2 204.7 1.00
pr_levm_Fibonacci 462.5 ± 2.9 459.9 469.5 2.27 ± 0.02

Benchmark Results: FibonacciRecursive

Command Mean [ms] Min [ms] Max [ms] Relative
main_revm_FibonacciRecursive 876.4 ± 8.9 861.5 885.4 1.04 ± 0.02
main_levm_FibonacciRecursive 1656.5 ± 20.3 1636.2 1703.9 1.96 ± 0.04
pr_revm_FibonacciRecursive 845.4 ± 11.5 823.2 863.4 1.00
pr_levm_FibonacciRecursive 1739.3 ± 19.0 1718.5 1782.1 2.06 ± 0.04

Benchmark Results: ManyHashes

Command Mean [ms] Min [ms] Max [ms] Relative
main_revm_ManyHashes 8.8 ± 0.1 8.7 8.9 1.00
main_levm_ManyHashes 13.8 ± 0.6 13.4 15.6 1.57 ± 0.07
pr_revm_ManyHashes 8.8 ± 0.1 8.7 9.2 1.00 ± 0.02
pr_levm_ManyHashes 13.6 ± 0.1 13.4 13.7 1.55 ± 0.02

Benchmark Results: Push

Command Mean [ms] Min [ms] Max [ms] Relative
main_revm_Push 296.4 ± 1.6 294.4 299.5 1.01 ± 0.01
main_levm_Push 1079.1 ± 6.6 1071.7 1094.6 3.69 ± 0.03
pr_revm_Push 292.4 ± 1.2 290.6 293.8 1.00
pr_levm_Push 1000.8 ± 10.6 994.0 1029.0 3.42 ± 0.04

Copy link

github-actions bot commented Jul 1, 2025

No significant difference was registered for any benchmark run.

Detailed Results

Benchmark Results: BubbleSort

Command Mean [s] Min [s] Max [s] Relative
main_revm_BubbleSort 3.166 ± 0.013 3.155 3.202 1.00
main_levm_BubbleSort 4.465 ± 0.009 4.454 4.479 1.41 ± 0.01
pr_revm_BubbleSort 3.171 ± 0.022 3.128 3.209 1.00 ± 0.01
pr_levm_BubbleSort 4.574 ± 0.019 4.546 4.612 1.44 ± 0.01

Benchmark Results: ERC20Approval

Command Mean [s] Min [s] Max [s] Relative
main_revm_ERC20Approval 1.045 ± 0.010 1.038 1.067 1.01 ± 0.01
main_levm_ERC20Approval 1.545 ± 0.018 1.535 1.596 1.50 ± 0.02
pr_revm_ERC20Approval 1.033 ± 0.004 1.028 1.042 1.00
pr_levm_ERC20Approval 1.616 ± 0.009 1.605 1.633 1.56 ± 0.01

Benchmark Results: ERC20Mint

Command Mean [ms] Min [ms] Max [ms] Relative
main_revm_ERC20Mint 137.5 ± 0.4 137.0 138.3 1.01 ± 0.01
main_levm_ERC20Mint 257.2 ± 2.9 254.5 264.7 1.89 ± 0.03
pr_revm_ERC20Mint 136.0 ± 1.2 135.0 138.9 1.00
pr_levm_ERC20Mint 274.5 ± 1.7 272.4 276.8 2.02 ± 0.02

Benchmark Results: ERC20Transfer

Command Mean [ms] Min [ms] Max [ms] Relative
main_revm_ERC20Transfer 244.4 ± 1.0 243.5 246.6 1.01 ± 0.01
main_levm_ERC20Transfer 403.5 ± 2.4 400.2 406.6 1.66 ± 0.01
pr_revm_ERC20Transfer 242.7 ± 1.2 241.2 244.4 1.00
pr_levm_ERC20Transfer 425.2 ± 4.1 422.2 436.4 1.75 ± 0.02

Benchmark Results: Factorial

Command Mean [ms] Min [ms] Max [ms] Relative
main_revm_Factorial 231.0 ± 0.5 230.6 232.1 1.00
main_levm_Factorial 465.0 ± 1.3 463.3 468.0 2.01 ± 0.01
pr_revm_Factorial 235.1 ± 1.0 233.6 237.6 1.02 ± 0.00
pr_levm_Factorial 471.5 ± 2.5 469.4 478.1 2.04 ± 0.01

Benchmark Results: FactorialRecursive

Command Mean [s] Min [s] Max [s] Relative
main_revm_FactorialRecursive 1.619 ± 0.022 1.583 1.644 1.02 ± 0.02
main_levm_FactorialRecursive 2.654 ± 0.020 2.635 2.701 1.67 ± 0.03
pr_revm_FactorialRecursive 1.590 ± 0.022 1.542 1.623 1.00
pr_levm_FactorialRecursive 2.771 ± 0.040 2.732 2.857 1.74 ± 0.04

Benchmark Results: Fibonacci

Command Mean [ms] Min [ms] Max [ms] Relative
main_revm_Fibonacci 205.8 ± 0.8 205.0 207.7 1.00
main_levm_Fibonacci 438.6 ± 9.4 431.9 464.2 2.13 ± 0.05
pr_revm_Fibonacci 206.2 ± 0.8 205.2 208.1 1.00 ± 0.01
pr_levm_Fibonacci 477.6 ± 47.0 460.2 610.6 2.32 ± 0.23

Benchmark Results: FibonacciRecursive

Command Mean [ms] Min [ms] Max [ms] Relative
main_revm_FibonacciRecursive 880.4 ± 11.3 868.6 909.1 1.04 ± 0.02
main_levm_FibonacciRecursive 1649.6 ± 13.2 1632.5 1676.9 1.94 ± 0.03
pr_revm_FibonacciRecursive 849.3 ± 10.3 832.9 866.0 1.00
pr_levm_FibonacciRecursive 1698.9 ± 9.1 1688.7 1717.6 2.00 ± 0.03

Benchmark Results: ManyHashes

Command Mean [ms] Min [ms] Max [ms] Relative
main_revm_ManyHashes 8.7 ± 0.0 8.7 8.8 1.00
main_levm_ManyHashes 13.4 ± 0.1 13.3 13.6 1.54 ± 0.01
pr_revm_ManyHashes 9.2 ± 1.9 8.6 14.7 1.06 ± 0.22
pr_levm_ManyHashes 13.9 ± 0.9 13.6 16.4 1.60 ± 0.10

Benchmark Results: Push

Command Mean [ms] Min [ms] Max [ms] Relative
main_revm_Push 293.8 ± 0.9 293.0 295.9 1.01 ± 0.00
main_levm_Push 1075.1 ± 38.5 1059.3 1184.4 3.71 ± 0.13
pr_revm_Push 289.5 ± 0.5 288.7 290.5 1.00
pr_levm_Push 1049.0 ± 28.1 1036.0 1128.1 3.62 ± 0.10

Copy link

github-actions bot commented Jul 1, 2025

No significant difference was registered for any benchmark run.

Detailed Results

Benchmark Results: BubbleSort

Command Mean [s] Min [s] Max [s] Relative
main_revm_BubbleSort 3.165 ± 0.027 3.142 3.221 1.01 ± 0.01
main_levm_BubbleSort 4.468 ± 0.018 4.447 4.501 1.42 ± 0.01
pr_revm_BubbleSort 3.142 ± 0.015 3.130 3.181 1.00
pr_levm_BubbleSort 4.507 ± 0.023 4.489 4.568 1.43 ± 0.01

Benchmark Results: ERC20Approval

Command Mean [s] Min [s] Max [s] Relative
main_revm_ERC20Approval 1.081 ± 0.019 1.067 1.128 1.03 ± 0.02
main_levm_ERC20Approval 1.549 ± 0.004 1.543 1.553 1.47 ± 0.01
pr_revm_ERC20Approval 1.052 ± 0.005 1.047 1.064 1.00
pr_levm_ERC20Approval 1.581 ± 0.006 1.571 1.592 1.50 ± 0.01

Benchmark Results: ERC20Mint

Command Mean [ms] Min [ms] Max [ms] Relative
main_revm_ERC20Mint 140.8 ± 1.9 139.6 145.7 1.01 ± 0.02
main_levm_ERC20Mint 265.0 ± 1.4 263.2 268.0 1.90 ± 0.02
pr_revm_ERC20Mint 139.3 ± 1.6 138.2 143.8 1.00
pr_levm_ERC20Mint 262.0 ± 3.1 257.5 267.3 1.88 ± 0.03

Benchmark Results: ERC20Transfer

Command Mean [ms] Min [ms] Max [ms] Relative
main_revm_ERC20Transfer 251.0 ± 1.9 249.4 254.9 1.02 ± 0.02
main_levm_ERC20Transfer 411.0 ± 1.9 407.6 413.7 1.66 ± 0.02
pr_revm_ERC20Transfer 247.0 ± 3.4 244.7 256.0 1.00
pr_levm_ERC20Transfer 414.9 ± 5.7 410.4 426.6 1.68 ± 0.03

Benchmark Results: Factorial

Command Mean [ms] Min [ms] Max [ms] Relative
main_revm_Factorial 235.2 ± 1.4 233.7 238.6 1.01 ± 0.01
main_levm_Factorial 465.0 ± 4.2 458.6 474.8 1.99 ± 0.02
pr_revm_Factorial 233.2 ± 0.8 231.9 234.7 1.00
pr_levm_Factorial 473.5 ± 4.7 470.6 486.1 2.03 ± 0.02

Benchmark Results: FactorialRecursive

Command Mean [s] Min [s] Max [s] Relative
main_revm_FactorialRecursive 1.626 ± 0.025 1.588 1.671 1.00
main_levm_FactorialRecursive 2.826 ± 0.010 2.809 2.844 1.74 ± 0.03
pr_revm_FactorialRecursive 1.684 ± 0.025 1.655 1.727 1.04 ± 0.02
pr_levm_FactorialRecursive 2.823 ± 0.029 2.786 2.883 1.74 ± 0.03

Benchmark Results: Fibonacci

Command Mean [ms] Min [ms] Max [ms] Relative
main_revm_Fibonacci 206.1 ± 1.6 204.7 210.4 1.00
main_levm_Fibonacci 438.8 ± 3.3 435.6 445.7 2.13 ± 0.02
pr_revm_Fibonacci 206.2 ± 2.1 204.9 212.2 1.00 ± 0.01
pr_levm_Fibonacci 462.0 ± 5.0 458.6 475.2 2.24 ± 0.03

Benchmark Results: FibonacciRecursive

Command Mean [ms] Min [ms] Max [ms] Relative
main_revm_FibonacciRecursive 867.6 ± 13.6 845.4 885.0 1.00
main_levm_FibonacciRecursive 1722.5 ± 22.9 1700.3 1774.7 1.99 ± 0.04
pr_revm_FibonacciRecursive 909.1 ± 14.9 881.0 927.1 1.05 ± 0.02
pr_levm_FibonacciRecursive 1712.0 ± 11.1 1696.6 1732.4 1.97 ± 0.03

Benchmark Results: ManyHashes

Command Mean [ms] Min [ms] Max [ms] Relative
main_revm_ManyHashes 8.8 ± 0.1 8.7 8.9 1.00
main_levm_ManyHashes 14.1 ± 0.2 13.9 14.5 1.61 ± 0.02
pr_revm_ManyHashes 8.8 ± 0.1 8.7 8.9 1.00 ± 0.01
pr_levm_ManyHashes 13.9 ± 0.9 13.4 16.3 1.58 ± 0.10

Benchmark Results: Push

Command Mean [ms] Min [ms] Max [ms] Relative
main_revm_Push 295.9 ± 1.6 293.7 298.2 1.00
main_levm_Push 1063.7 ± 2.8 1060.1 1069.8 3.59 ± 0.02
pr_revm_Push 296.1 ± 1.8 294.2 298.9 1.00 ± 0.01
pr_levm_Push 1034.0 ± 9.0 1019.8 1043.8 3.49 ± 0.04

Copy link

github-actions bot commented Jul 1, 2025

No significant difference was registered for any benchmark run.

Detailed Results

Benchmark Results: BubbleSort

Command Mean [s] Min [s] Max [s] Relative
main_revm_BubbleSort 3.167 ± 0.036 3.138 3.258 1.00
main_levm_BubbleSort 4.449 ± 0.031 4.413 4.496 1.40 ± 0.02
pr_revm_BubbleSort 3.188 ± 0.038 3.154 3.277 1.01 ± 0.02
pr_levm_BubbleSort 4.379 ± 0.023 4.345 4.428 1.38 ± 0.02

Benchmark Results: ERC20Approval

Command Mean [s] Min [s] Max [s] Relative
main_revm_ERC20Approval 1.038 ± 0.006 1.034 1.053 1.00
main_levm_ERC20Approval 1.525 ± 0.018 1.514 1.575 1.47 ± 0.02
pr_revm_ERC20Approval 1.066 ± 0.011 1.056 1.089 1.03 ± 0.01
pr_levm_ERC20Approval 1.544 ± 0.038 1.522 1.651 1.49 ± 0.04

Benchmark Results: ERC20Mint

Command Mean [ms] Min [ms] Max [ms] Relative
main_revm_ERC20Mint 137.3 ± 0.6 136.2 138.0 1.00
main_levm_ERC20Mint 255.9 ± 1.5 254.2 258.1 1.86 ± 0.01
pr_revm_ERC20Mint 139.8 ± 0.4 139.2 140.2 1.02 ± 0.00
pr_levm_ERC20Mint 264.1 ± 5.4 258.9 274.2 1.92 ± 0.04

Benchmark Results: ERC20Transfer

Command Mean [ms] Min [ms] Max [ms] Relative
main_revm_ERC20Transfer 244.1 ± 2.1 242.5 248.2 1.00
main_levm_ERC20Transfer 400.4 ± 2.4 397.9 405.4 1.64 ± 0.02
pr_revm_ERC20Transfer 249.2 ± 2.9 247.2 256.7 1.02 ± 0.01
pr_levm_ERC20Transfer 406.7 ± 3.5 404.0 416.2 1.67 ± 0.02

Benchmark Results: Factorial

Command Mean [ms] Min [ms] Max [ms] Relative
main_revm_Factorial 232.4 ± 4.1 230.6 244.1 1.00
main_levm_Factorial 445.7 ± 1.0 444.3 447.1 1.92 ± 0.03
pr_revm_Factorial 233.1 ± 1.3 231.7 235.2 1.00 ± 0.02
pr_levm_Factorial 447.7 ± 3.9 443.6 455.4 1.93 ± 0.04

Benchmark Results: FactorialRecursive

Command Mean [s] Min [s] Max [s] Relative
main_revm_FactorialRecursive 1.594 ± 0.034 1.536 1.633 1.00
main_levm_FactorialRecursive 2.671 ± 0.017 2.650 2.708 1.68 ± 0.04
pr_revm_FactorialRecursive 1.657 ± 0.028 1.605 1.688 1.04 ± 0.03
pr_levm_FactorialRecursive 2.799 ± 0.017 2.770 2.833 1.76 ± 0.04

Benchmark Results: Fibonacci

Command Mean [ms] Min [ms] Max [ms] Relative
main_revm_Fibonacci 207.9 ± 6.9 204.7 226.8 1.00 ± 0.03
main_levm_Fibonacci 434.0 ± 3.0 430.1 439.2 2.09 ± 0.02
pr_revm_Fibonacci 207.7 ± 0.6 207.0 208.7 1.00
pr_levm_Fibonacci 439.6 ± 4.3 435.9 449.5 2.12 ± 0.02

Benchmark Results: FibonacciRecursive

Command Mean [ms] Min [ms] Max [ms] Relative
main_revm_FibonacciRecursive 860.8 ± 13.9 825.7 878.9 1.00
main_levm_FibonacciRecursive 1666.9 ± 9.5 1654.5 1686.1 1.94 ± 0.03
pr_revm_FibonacciRecursive 901.1 ± 16.4 876.4 922.2 1.05 ± 0.03
pr_levm_FibonacciRecursive 1743.9 ± 16.6 1725.3 1773.1 2.03 ± 0.04

Benchmark Results: ManyHashes

Command Mean [ms] Min [ms] Max [ms] Relative
main_revm_ManyHashes 8.7 ± 0.0 8.6 8.8 1.00 ± 0.01
main_levm_ManyHashes 13.5 ± 0.0 13.5 13.6 1.56 ± 0.01
pr_revm_ManyHashes 8.7 ± 0.1 8.6 8.8 1.00
pr_levm_ManyHashes 14.0 ± 0.2 13.5 14.2 1.61 ± 0.03

Benchmark Results: Push

Command Mean [ms] Min [ms] Max [ms] Relative
main_revm_Push 294.8 ± 2.9 292.5 301.1 1.00
main_levm_Push 1066.0 ± 3.8 1062.2 1075.9 3.62 ± 0.04
pr_revm_Push 295.4 ± 1.4 294.3 298.6 1.00 ± 0.01
pr_levm_Push 1038.9 ± 2.1 1035.1 1042.8 3.52 ± 0.04

Copy link

github-actions bot commented Jul 1, 2025

No significant difference was registered for any benchmark run.

Detailed Results

Benchmark Results: BubbleSort

Command Mean [s] Min [s] Max [s] Relative
main_revm_BubbleSort 3.169 ± 0.024 3.147 3.234 1.00 ± 0.01
main_levm_BubbleSort 4.462 ± 0.033 4.433 4.548 1.41 ± 0.01
pr_revm_BubbleSort 3.156 ± 0.018 3.133 3.191 1.00
pr_levm_BubbleSort 4.444 ± 0.032 4.406 4.487 1.41 ± 0.01

Benchmark Results: ERC20Approval

Command Mean [s] Min [s] Max [s] Relative
main_revm_ERC20Approval 1.040 ± 0.003 1.037 1.045 1.00
main_levm_ERC20Approval 1.532 ± 0.008 1.523 1.549 1.47 ± 0.01
pr_revm_ERC20Approval 1.044 ± 0.010 1.035 1.069 1.00 ± 0.01
pr_levm_ERC20Approval 1.545 ± 0.007 1.535 1.559 1.49 ± 0.01

Benchmark Results: ERC20Mint

Command Mean [ms] Min [ms] Max [ms] Relative
main_revm_ERC20Mint 138.0 ± 0.8 136.9 139.3 1.00
main_levm_ERC20Mint 258.9 ± 4.6 254.3 267.9 1.88 ± 0.03
pr_revm_ERC20Mint 138.3 ± 0.6 137.7 139.4 1.00 ± 0.01
pr_levm_ERC20Mint 260.2 ± 2.6 255.7 264.6 1.89 ± 0.02

Benchmark Results: ERC20Transfer

Command Mean [ms] Min [ms] Max [ms] Relative
main_revm_ERC20Transfer 244.4 ± 1.9 243.1 249.5 1.00
main_levm_ERC20Transfer 402.2 ± 2.3 399.6 407.4 1.65 ± 0.02
pr_revm_ERC20Transfer 245.5 ± 1.7 244.3 249.2 1.00 ± 0.01
pr_levm_ERC20Transfer 411.8 ± 6.9 406.7 430.1 1.69 ± 0.03

Benchmark Results: Factorial

Command Mean [ms] Min [ms] Max [ms] Relative
main_revm_Factorial 231.3 ± 1.5 229.8 234.0 1.00
main_levm_Factorial 447.1 ± 3.7 444.1 456.0 1.93 ± 0.02
pr_revm_Factorial 231.5 ± 3.5 224.9 233.4 1.00 ± 0.02
pr_levm_Factorial 487.0 ± 58.1 463.1 651.9 2.11 ± 0.25

Benchmark Results: FactorialRecursive

Command Mean [s] Min [s] Max [s] Relative
main_revm_FactorialRecursive 1.614 ± 0.016 1.589 1.643 1.00
main_levm_FactorialRecursive 2.688 ± 0.024 2.651 2.725 1.67 ± 0.02
pr_revm_FactorialRecursive 1.658 ± 0.029 1.626 1.712 1.03 ± 0.02
pr_levm_FactorialRecursive 2.864 ± 0.019 2.829 2.887 1.77 ± 0.02

Benchmark Results: Fibonacci

Command Mean [ms] Min [ms] Max [ms] Relative
main_revm_Fibonacci 207.4 ± 3.4 205.3 216.9 1.00
main_levm_Fibonacci 439.5 ± 9.9 433.7 459.6 2.12 ± 0.06
pr_revm_Fibonacci 207.4 ± 0.5 206.7 208.1 1.00 ± 0.02
pr_levm_Fibonacci 439.6 ± 3.8 436.5 448.6 2.12 ± 0.04

Benchmark Results: FibonacciRecursive

Command Mean [ms] Min [ms] Max [ms] Relative
main_revm_FibonacciRecursive 877.5 ± 8.9 861.3 887.9 1.00
main_levm_FibonacciRecursive 1653.0 ± 21.2 1629.6 1705.2 1.88 ± 0.03
pr_revm_FibonacciRecursive 909.2 ± 6.3 897.5 922.9 1.04 ± 0.01
pr_levm_FibonacciRecursive 1746.9 ± 14.3 1731.5 1780.7 1.99 ± 0.03

Benchmark Results: ManyHashes

Command Mean [ms] Min [ms] Max [ms] Relative
main_revm_ManyHashes 8.8 ± 0.1 8.7 8.9 1.02 ± 0.01
main_levm_ManyHashes 13.4 ± 0.1 13.3 13.6 1.55 ± 0.02
pr_revm_ManyHashes 8.7 ± 0.1 8.6 8.8 1.00
pr_levm_ManyHashes 14.3 ± 0.1 14.2 14.5 1.65 ± 0.02

Benchmark Results: Push

Command Mean [ms] Min [ms] Max [ms] Relative
main_revm_Push 293.8 ± 0.6 293.0 294.7 1.00
main_levm_Push 1065.6 ± 6.0 1060.2 1076.1 3.63 ± 0.02
pr_revm_Push 295.5 ± 1.5 293.7 299.2 1.01 ± 0.01
pr_levm_Push 1045.6 ± 32.6 1033.3 1138.3 3.56 ± 0.11

@ricomateo ricomateo marked this pull request as ready for review July 1, 2025 20:00
@ricomateo ricomateo requested a review from a team as a code owner July 1, 2025 20:00
@ricomateo ricomateo added the levm Lambda EVM implementation label Jul 1, 2025
Copy link

github-actions bot commented Jul 1, 2025

No significant difference was registered for any benchmark run.

Detailed Results

Benchmark Results: BubbleSort

Command Mean [s] Min [s] Max [s] Relative
main_revm_BubbleSort 3.204 ± 0.029 3.175 3.258 1.01 ± 0.01
main_levm_BubbleSort 4.443 ± 0.017 4.422 4.477 1.41 ± 0.01
pr_revm_BubbleSort 3.157 ± 0.028 3.130 3.219 1.00
pr_levm_BubbleSort 4.494 ± 0.028 4.462 4.562 1.42 ± 0.02

Benchmark Results: ERC20Approval

Command Mean [s] Min [s] Max [s] Relative
main_revm_ERC20Approval 1.054 ± 0.006 1.046 1.065 1.00
main_levm_ERC20Approval 1.548 ± 0.023 1.528 1.594 1.47 ± 0.02
pr_revm_ERC20Approval 1.063 ± 0.044 1.044 1.188 1.01 ± 0.04
pr_levm_ERC20Approval 1.579 ± 0.021 1.562 1.634 1.50 ± 0.02

Benchmark Results: ERC20Mint

Command Mean [ms] Min [ms] Max [ms] Relative
main_revm_ERC20Mint 143.1 ± 2.6 141.4 150.3 1.03 ± 0.02
main_levm_ERC20Mint 257.1 ± 2.0 254.9 260.9 1.86 ± 0.02
pr_revm_ERC20Mint 138.6 ± 0.4 137.9 139.1 1.00
pr_levm_ERC20Mint 256.5 ± 3.2 253.2 263.7 1.85 ± 0.02

Benchmark Results: ERC20Transfer

Command Mean [ms] Min [ms] Max [ms] Relative
main_revm_ERC20Transfer 249.2 ± 1.4 248.0 252.7 1.02 ± 0.01
main_levm_ERC20Transfer 404.3 ± 4.4 401.0 415.8 1.66 ± 0.02
pr_revm_ERC20Transfer 244.0 ± 1.9 242.8 248.5 1.00
pr_levm_ERC20Transfer 409.9 ± 2.6 407.4 414.8 1.68 ± 0.02

Benchmark Results: Factorial

Command Mean [ms] Min [ms] Max [ms] Relative
main_revm_Factorial 230.0 ± 1.3 228.1 232.7 1.00
main_levm_Factorial 445.3 ± 3.0 437.4 448.1 1.94 ± 0.02
pr_revm_Factorial 235.5 ± 0.8 233.7 236.5 1.02 ± 0.01
pr_levm_Factorial 448.0 ± 2.3 446.1 453.5 1.95 ± 0.01

Benchmark Results: FactorialRecursive

Command Mean [s] Min [s] Max [s] Relative
main_revm_FactorialRecursive 1.630 ± 0.018 1.598 1.653 1.00
main_levm_FactorialRecursive 2.777 ± 0.019 2.746 2.811 1.70 ± 0.02
pr_revm_FactorialRecursive 1.692 ± 0.040 1.598 1.736 1.04 ± 0.03
pr_levm_FactorialRecursive 2.721 ± 0.023 2.690 2.771 1.67 ± 0.02

Benchmark Results: Fibonacci

Command Mean [ms] Min [ms] Max [ms] Relative
main_revm_Fibonacci 206.8 ± 3.5 204.4 216.1 1.00
main_levm_Fibonacci 437.6 ± 6.9 433.3 456.1 2.12 ± 0.05
pr_revm_Fibonacci 209.9 ± 1.3 208.9 212.5 1.02 ± 0.02
pr_levm_Fibonacci 446.2 ± 23.8 436.1 512.4 2.16 ± 0.12

Benchmark Results: FibonacciRecursive

Command Mean [ms] Min [ms] Max [ms] Relative
main_revm_FibonacciRecursive 869.1 ± 12.6 842.2 892.5 1.00
main_levm_FibonacciRecursive 1692.1 ± 15.0 1678.1 1721.8 1.95 ± 0.03
pr_revm_FibonacciRecursive 916.9 ± 9.0 896.4 931.4 1.06 ± 0.02
pr_levm_FibonacciRecursive 1650.8 ± 9.1 1639.7 1666.2 1.90 ± 0.03

Benchmark Results: ManyHashes

Command Mean [ms] Min [ms] Max [ms] Relative
main_revm_ManyHashes 9.1 ± 0.0 9.0 9.2 1.01 ± 0.01
main_levm_ManyHashes 14.2 ± 0.1 14.1 14.4 1.58 ± 0.02
pr_revm_ManyHashes 9.0 ± 0.1 8.9 9.2 1.00
pr_levm_ManyHashes 13.6 ± 0.1 13.3 13.7 1.51 ± 0.02

Benchmark Results: Push

Command Mean [ms] Min [ms] Max [ms] Relative
main_revm_Push 296.8 ± 2.7 293.3 301.5 1.00
main_levm_Push 1075.2 ± 5.3 1070.1 1085.3 3.62 ± 0.04
pr_revm_Push 297.7 ± 1.8 295.6 302.0 1.00 ± 0.01
pr_levm_Push 1038.5 ± 2.9 1033.4 1043.8 3.50 ± 0.03

Copy link
Contributor

@JereSalo JereSalo left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

The PR is great!
We now need to open a Pull Request in the execution-spec-tests repository and change this file that has the error mappings of our client using the new regexes.

Copy link
Contributor

@JereSalo JereSalo left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I'll approve so that I don't forget about it later but don't merge until the PR to the execution-spec-tests repo is ready 😛

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
levm Lambda EVM implementation
Projects
None yet
Development

Successfully merging this pull request may close these issues.

LEVM: Give more details in TxValidation Errors
2 participants