Skip to content

fix(levm): account erroneously considered as existing after zero-value transfer#6591

Merged
edg-l merged 2 commits into
mainfrom
fix/eip7702-zero-transfer
May 11, 2026
Merged

fix(levm): account erroneously considered as existing after zero-value transfer#6591
edg-l merged 2 commits into
mainfrom
fix/eip7702-zero-transfer

Conversation

@iovoid

@iovoid iovoid commented May 8, 2026

Copy link
Copy Markdown
Contributor

Motivation

When sending a zero-value transfer to an empty account, we incorrectly mark it as existing for the purposes of EIP7702, leading to charging gas incorrectly.

Description

Currently we track accounts that exist in the trie for purposes of charging EIP7702 gas (the price is different if the authority already exists in the trie).

When sending a zero-value transfer to an empty account, we incorrectly mark it as existing.

The PR contains a regression test, that should fail on the first commit and pass on the second.

iovoid added 2 commits May 8, 2026 16:42
A zero-value increase/decrease_account_balance call would touch the
account via mark_modified, setting account.exists = true even though
no real change occurred. A subsequent EIP-7702 SetCode tx in the same
block whose authority is that address would then see exists = true
and apply the spurious REFUND_AUTH_PER_EXISTING_ACCOUNT.

This test compares the gas charged by an EIP-7702 SetCode tx with a
fresh authority in two scenarios within a single block: only the
EIP-7702 tx, and a 0-value transfer to the authority followed by the
EIP-7702 tx. Both must charge the same gas.
@iovoid iovoid requested a review from a team as a code owner May 8, 2026 19:49
@github-actions github-actions Bot added the L1 Ethereum client label May 8, 2026
@github-actions

github-actions Bot commented May 8, 2026

Copy link
Copy Markdown

🤖 Kimi Code Review

Overall Assessment:
The PR correctly fixes an edge case where zero-value transfers were incorrectly creating/touching accounts, affecting EIP-7702 authorization gas costs. The fix is minimal and the test coverage is comprehensive.


crates/vm/levm/src/db/gen_db.rs

Lines 551-553 and 581-583
The early returns for zero-value balance changes are correct and necessary for EIP-7702 compliance.

  • Rationale: EIP-7702 charges different gas based on whether the authority account exists. A zero-value transfer should not mark an account as "existing" or touch it, as this would artificially inflate the gas cost of subsequent authorization validations.
  • Safety: These checks prevent unnecessary account creation via get_account_mut when the net balance change is zero, which aligns with Ethereum's state semantics (no state modification occurs when transferring 0 wei).
  • Note: Ensure get_account_mut does not perform side effects (like cache warming) that are required even for zero-value operations. If the cache expects all accessed addresses to be present, this early return might need adjustment, but for pure balance operations this is correct.

test/tests/blockchain/eip7702_zero_transfer_tests.rs

Lines 130-145 (sign_auth_tuple)
Correctly implements EIP-7702 authorization signing:

  • Magic byte 0x05 is correct per the EIP.
  • RLP encoding order [chain_id, address, nonce] matches the specification.
  • Hashing and secp256k1 signature serialization are standard.

Lines 247-248
The gas comparison assertion is the correct way to verify the fix. If the zero-value transfer polluted the authority state, the subsequent EIP-7702 transaction would consume different gas (specifically, it would skip the account creation cost).

Minor Suggestions:

  1. Line 48: Consider using CARGO_MANIFEST_DIR with a fallback or documenting that this test must run from the workspace root. The path fixtures/genesis/execution-api.json assumes a specific directory structure.

  2. Line 16 (TEST_PRIVATE_KEY): While acceptable for integration tests, add a comment confirming this is a deterministic test key with no mainnet/testnet funds.

  3. Lines 72, 90: The sign_inplace method is called with .await.unwrap(). Ensure this handles potential signature errors gracefully in the test context (current usage is fine for tests).

Security: No vulnerabilities detected. The test correctly validates that state isolation is maintained between unrelated transactions.

Performance: The early returns in gen_db.rs provide a minor optimization by avoiding unnecessary state lookups and cache modifications.

Conclusion: LGTM. The fix is precise, and the test validates the specific EIP-7702 interaction that was broken.


Automated review by Kimi (Moonshot AI) · kimi-k2.5 · custom prompt

@greptile-apps

greptile-apps Bot commented May 8, 2026

Copy link
Copy Markdown

Greptile Summary

This PR fixes a bug where sending a zero-value transfer to an empty account would incorrectly mark that account as "existing" in the VM's cache, causing EIP-7702 gas to be charged at the wrong (lower) rate in a subsequent set_code authorization for that authority.

  • Root cause fix in gen_db.rs: increase_account_balance and decrease_account_balance now early-return when the amount is zero, preventing get_account_mut (and its side-effecting load_account / mark_modified chain) from being called unnecessarily.
  • Regression test added in eip7702_zero_transfer_tests.rs: runs two scenarios—with and without a preceding zero-value transfer to the authority—and asserts the EIP-7702 transaction uses identical gas in both cases.

Confidence Score: 5/5

Safe to merge — the change is a small, targeted early-return that removes an unintended side effect, covered by a new end-to-end integration test.

The fix is minimal and well-scoped: two identical early-return guards added to functions that previously had no callers relying on the zero-value side-effect. The existing transfer wrapper already skipped both calls for zero values, so the only paths affected are direct callers that did not have their own guard. The new integration test directly validates the gas difference that motivated the bug report.

No files require special attention.

Important Files Changed

Filename Overview
crates/vm/levm/src/db/gen_db.rs Adds zero-value short-circuit guards to increase_account_balance and decrease_account_balance, preventing spurious account loads that were corrupting EIP-7702 existence tracking.
test/tests/blockchain/eip7702_zero_transfer_tests.rs New integration test that validates the zero-value transfer does not pollute the EIP-7702 authority existence flag by comparing gas used in two scenarios.
test/tests/blockchain/mod.rs Registers the new test module; trivial one-line addition.

Reviews (1): Last reviewed commit: "do not mark the account as modified when..." | Re-trigger Greptile

@github-actions

github-actions Bot commented May 8, 2026

Copy link
Copy Markdown

Lines of code report

Total lines added: 6
Total lines removed: 0
Total lines changed: 6

Detailed view
+----------------------------------------+-------+------+
| File                                   | Lines | Diff |
+----------------------------------------+-------+------+
| ethrex/crates/vm/levm/src/db/gen_db.rs | 560   | +6   |
+----------------------------------------+-------+------+

@iovoid iovoid changed the title fix(l1): account erroneously considered as existing after zero-value transfer fix(levm): account erroneously considered as existing after zero-value transfer May 8, 2026
@github-actions github-actions Bot added levm Lambda EVM implementation and removed L1 Ethereum client labels May 8, 2026
@github-actions

github-actions Bot commented May 8, 2026

Copy link
Copy Markdown

🤖 Codex Code Review

No findings.

The change in gen_db.rs and gen_db.rs looks correct: skipping get_account_mut() for zero deltas prevents a non-existent account from being marked modified/existing, and that exists bit is exactly what EIP-7702 refund logic consumes in utils.rs. This is the right fix layer, since transfer_value() still calls increase_account_balance() even when msg_value == 0 in default_hook.rs. The new regression in eip7702_zero_transfer_tests.rs covers the intended end-to-end behavior well by asserting receipt gas parity across the polluted/non-polluted scenario.

I couldn’t run the new test locally: cargo needs to materialize the libssz git dependency, but this environment blocks writes to the Cargo/Rustup cache and has no network access, so runtime verification is still pending.


Automated review by OpenAI Codex · gpt-5.4 · custom prompt

@github-actions

github-actions Bot commented May 8, 2026

Copy link
Copy Markdown

🤖 Claude Code Review

Now I have everything I need. Here is the full review:


PR #6591fix(l1): account erroneously considered as existing after zero-value transfer

Overview

This PR fixes a gas accounting bug in EIP-7702 processing. When a zero-value transfer is sent to an empty account (notably an EIP-7702 authority address), increase_account_balance calls get_account_mut, which calls mark_modified(), which unconditionally sets exists = true on the account. If an EIP-7702 authorization list is processed in a later transaction in the same block, authority_exists = true triggers an incorrect gas refund (REFUND_AUTH_PER_EXISTING_ACCOUNT = 12500 gas pre-Amsterdam, or STATE_GAS_NEW_ACCOUNT post-Amsterdam).

The fix adds early returns in increase_account_balance and decrease_account_balance when the amount is zero, preventing any account from being loaded or marked modified.


Code Fix (crates/vm/levm/src/db/gen_db.rs)

Correctness — correct. The root cause is in transfer_value (default_hook.rs:655), which calls vm.increase_account_balance(to, value) directly without a zero-check:

// hooks/default_hook.rs — this is the entry point for the bug
pub fn transfer_value(vm: &mut VM<'_>) -> Result<(), VMError> {
    if !vm.is_create()? {
        let value = vm.current_call_frame.msg_value;
        let to = vm.current_call_frame.to;
        vm.increase_account_balance(to, value)?;  // no zero guard

Similarly, undo_value_transfer (default_hook.rs:207–213) calls both decrease_account_balance and increase_account_balance with msg_value without guarding for zero. The early returns in the individual functions are the right fix — they protect all call sites without requiring defensive guards at every caller.

Interaction with transfer: The transfer method (gen_db.rs:606) already has if value != U256::zero(). That guard is now redundant (harmless but slightly more efficient since it avoids two function calls). No action required.

BAL recorder skipped for zero-ops: The set_initial_balance / record_balance_change recorder calls are also skipped when returning early. This is correct — there is no balance change to record.

No observable behaviour change for non-zero paths: The early return only fires for the exact zero case; all other paths are unchanged.


Test (test/tests/blockchain/eip7702_zero_transfer_tests.rs)

Test design — solid. The gas-delta comparison approach directly tests the observable consequence of the bug: incorrect gas refund changes the per-transaction gas cost. Running both "polluted" and "control" scenarios and asserting equality is clear and hard to fake.

Potential issues:

  • Duplicated magic constant (test file:25): EIP_7702_MAGIC: u8 = 0x05 is already exported as pub const MAGIC: u8 = 0x05; in crates/vm/levm/src/constants.rs:85. The test should import and reuse that constant to prevent divergence if the spec changes.

  • sign_auth_tuple is a local re-implementation: The test's sign_auth_tuple function manually mirrors the signing logic from eip7702_recover_address (utils.rs:205). If either diverges from the spec, the test could silently start signing auth tuples that the verifier rejects or accepts for wrong reasons. Consider extracting a shared test helper or re-using existing signing utilities if any exist.

  • y_parity cast verbosity (test file:96): U256::from(Into::<i32>::into(recovery_id) as u64)recovery_id as u8 as u64 would be cleaner and equally correct since RecoveryId is 0 or 1.

  • tx_index cast to u64 (test file:215): tx_index as u64 — not wrong for any real block, but a comment or assert bounding the value would be defensive and make intent clear.

  • auth_tuple.nonce is hardcoded to 0 (test file:179): This is correct for a fresh authority account. A comment explaining "authority has nonce 0 since it never sent a tx" would help future readers.

  • run_scenario only tests gas, not delegation result: The test correctly verifies gas parity but does not assert that the delegation itself succeeded (i.e., that the authority's code was set to the expected delegation designator). The assertion receipt_7702.succeeded (test file:218) covers the success case but a check on the authority's code post-block would strengthen confidence that the entire auth flow completed correctly, not just that gas was the same. This is a "nice to have", not a blocker.


Security / Consensus Implications

The bug is exploitable within a block: a sender can include a zero-value transfer to a target authority address in tx N, then include an EIP-7702 tx in tx N+1 (same block) that uses that authority, and incorrectly receive up to 12,500 gas of refund (pre-Amsterdam) or STATE_GAS_NEW_ACCOUNT (post-Amsterdam) that they are not entitled to. The impact is bounded and local to a single block but represents a real consensus divergence from EELS/geth.


Summary

The fix is minimal, correctly placed, and addresses the root cause. The test is well-structured and directly proves the intended invariant. The items above are minor quality improvements — the EIP_7702_MAGIC duplication and the sign_auth_tuple re-implementation being the most worth addressing before merge.


Automated review by Claude (Anthropic) · sonnet · custom prompt

@github-actions

github-actions Bot commented May 8, 2026

Copy link
Copy Markdown

Benchmark Results Comparison

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 2.771 ± 0.003 2.766 2.776 1.08 ± 0.00
main_levm_BubbleSort 2.566 ± 0.008 2.557 2.582 1.00
pr_revm_BubbleSort 2.775 ± 0.010 2.765 2.794 1.08 ± 0.01
pr_levm_BubbleSort 2.570 ± 0.020 2.552 2.624 1.00 ± 0.01

Benchmark Results: ERC20Approval

Command Mean [ms] Min [ms] Max [ms] Relative
main_revm_ERC20Approval 903.4 ± 2.4 900.5 909.0 1.00
main_levm_ERC20Approval 983.7 ± 5.8 975.7 994.5 1.09 ± 0.01
pr_revm_ERC20Approval 909.4 ± 8.7 900.8 921.2 1.01 ± 0.01
pr_levm_ERC20Approval 994.8 ± 28.1 977.6 1065.6 1.10 ± 0.03

Benchmark Results: ERC20Mint

Command Mean [ms] Min [ms] Max [ms] Relative
main_revm_ERC20Mint 118.9 ± 0.8 118.0 120.4 1.00
main_levm_ERC20Mint 143.3 ± 0.8 142.6 145.3 1.21 ± 0.01
pr_revm_ERC20Mint 119.5 ± 1.6 118.2 123.6 1.01 ± 0.02
pr_levm_ERC20Mint 143.3 ± 0.6 142.5 144.7 1.20 ± 0.01

Benchmark Results: ERC20Transfer

Command Mean [ms] Min [ms] Max [ms] Relative
main_revm_ERC20Transfer 213.5 ± 2.1 211.9 219.0 1.00
main_levm_ERC20Transfer 243.0 ± 1.7 241.5 246.6 1.14 ± 0.01
pr_revm_ERC20Transfer 213.5 ± 2.5 211.8 220.3 1.00 ± 0.02
pr_levm_ERC20Transfer 242.8 ± 1.2 241.6 245.1 1.14 ± 0.01

Benchmark Results: Factorial

Command Mean [ms] Min [ms] Max [ms] Relative
main_revm_Factorial 182.6 ± 0.6 181.8 183.6 1.00
main_levm_Factorial 206.8 ± 4.2 204.1 217.4 1.13 ± 0.02
pr_revm_Factorial 182.7 ± 0.7 182.0 184.1 1.00 ± 0.01
pr_levm_Factorial 207.8 ± 8.3 204.3 231.4 1.14 ± 0.05

Benchmark Results: FactorialRecursive

Command Mean [s] Min [s] Max [s] Relative
main_revm_FactorialRecursive 1.317 ± 0.028 1.283 1.351 1.01 ± 0.03
main_levm_FactorialRecursive 1.665 ± 0.009 1.653 1.682 1.27 ± 0.03
pr_revm_FactorialRecursive 1.308 ± 0.026 1.275 1.347 1.00
pr_levm_FactorialRecursive 1.622 ± 0.014 1.605 1.652 1.24 ± 0.03

Benchmark Results: Fibonacci

Command Mean [ms] Min [ms] Max [ms] Relative
main_revm_Fibonacci 154.4 ± 4.8 151.8 167.5 1.00 ± 0.03
main_levm_Fibonacci 183.2 ± 2.5 181.8 190.2 1.19 ± 0.02
pr_revm_Fibonacci 153.7 ± 1.1 152.6 155.4 1.00
pr_levm_Fibonacci 184.9 ± 4.4 182.1 193.9 1.20 ± 0.03

Benchmark Results: FibonacciRecursive

Command Mean [ms] Min [ms] Max [ms] Relative
main_revm_FibonacciRecursive 698.2 ± 3.1 693.4 701.1 1.20 ± 0.01
main_levm_FibonacciRecursive 579.8 ± 3.9 574.3 585.7 1.00
pr_revm_FibonacciRecursive 696.6 ± 4.5 691.5 706.9 1.20 ± 0.01
pr_levm_FibonacciRecursive 583.2 ± 9.3 573.6 600.9 1.01 ± 0.02

Benchmark Results: ManyHashes

Command Mean [ms] Min [ms] Max [ms] Relative
main_revm_ManyHashes 7.8 ± 0.2 7.6 8.1 1.02 ± 0.02
main_levm_ManyHashes 8.9 ± 0.1 8.8 9.0 1.17 ± 0.01
pr_revm_ManyHashes 7.6 ± 0.1 7.5 7.7 1.00
pr_levm_ManyHashes 9.0 ± 0.1 8.9 9.2 1.18 ± 0.02

Benchmark Results: MstoreBench

Command Mean [ms] Min [ms] Max [ms] Relative
main_revm_MstoreBench 263.0 ± 19.9 255.2 319.4 1.25 ± 0.10
main_levm_MstoreBench 214.9 ± 15.9 207.6 259.9 1.03 ± 0.08
pr_revm_MstoreBench 256.6 ± 1.3 255.2 258.7 1.22 ± 0.01
pr_levm_MstoreBench 209.6 ± 1.3 207.9 212.1 1.00

Benchmark Results: Push

Command Mean [ms] Min [ms] Max [ms] Relative
main_revm_Push 243.2 ± 1.7 241.7 247.6 1.03 ± 0.01
main_levm_Push 236.6 ± 2.3 235.4 243.1 1.00 ± 0.01
pr_revm_Push 243.2 ± 1.9 241.3 247.0 1.03 ± 0.01
pr_levm_Push 235.7 ± 1.1 234.7 238.6 1.00

Benchmark Results: SstoreBench_no_opt

Command Mean [ms] Min [ms] Max [ms] Relative
main_revm_SstoreBench_no_opt 142.5 ± 0.6 141.9 143.9 1.47 ± 0.01
main_levm_SstoreBench_no_opt 97.1 ± 0.2 96.7 97.3 1.00
pr_revm_SstoreBench_no_opt 142.1 ± 0.4 141.6 142.9 1.46 ± 0.01
pr_levm_SstoreBench_no_opt 97.2 ± 0.2 96.8 97.7 1.00 ± 0.00

@github-project-automation github-project-automation Bot moved this to In Review in ethrex_l1 May 11, 2026
@edg-l edg-l added this pull request to the merge queue May 11, 2026
Merged via the queue into main with commit 24bea19 May 11, 2026
85 checks passed
@edg-l edg-l deleted the fix/eip7702-zero-transfer branch May 11, 2026 15:15
@github-project-automation github-project-automation Bot moved this from In Review to Done in ethrex_l1 May 11, 2026
dicethedev pushed a commit to dicethedev/ethrex that referenced this pull request May 12, 2026
**Motivation**

Prepare the v12.0.0 release by bumping the workspace version and merging
the release branch back to main.

**Description**

- Bump workspace version from 11.0.0 to 12.0.0 in the root `Cargo.toml`,
the guest-program `Cargo.toml` files (sp1, risc0, openvm, zisk) and
`crates/l2/tee/quote-gen/Cargo.toml`; refresh lockfiles via `make
update-cargo-lock`.
- Update the `--builder.extra-data` default in `docs/CLI.md` to `ethrex
12.0.0` in both ethrex and ethrex L2 sections.
- Merge `main` into the release branch, picking up the two levm fixes
that landed during release stabilization (lambdaclass#6591, lambdaclass#6592) along with their
tests:
- `fix(levm): account erroneously considered as existing after
zero-value transfer` (lambdaclass#6591) — avoids marking an account as modified
when a balance increase/decrease is zero.
- `fix(levm): revert doesn't unmark the account as existing` (lambdaclass#6592) —
`restore_cache_state` now restores `exists` alongside `info`, `status`,
and `has_storage` so a reverted transaction no longer leaves a stale
`exists = true` in the cache (which would cause a later EIP-7702 SetCode
tx to apply a spurious `REFUND_AUTH_PER_EXISTING_ACCOUNT` / EIP-8037
`STATE_GAS_NEW_ACCOUNT` refund). Also reorders the backup in
`VM::get_account_mut` and the SELFDESTRUCT hook so the backup captures
pre-modification state.

These fixes were also cherry-picked directly onto the release branch
before the merge; the merge from `main` adds their tests.

**Checklist**

- [x] Updated `STORE_SCHEMA_VERSION` — N/A, no storage schema change.

---------

Co-authored-by: Lucas Fiegl <iovoid@users.noreply.github.com>
edg-l pushed a commit that referenced this pull request May 13, 2026
…e transfer (#6591)

**Motivation**

When sending a zero-value transfer to an empty account, we incorrectly
mark it as existing for the purposes of EIP7702, leading to charging gas
incorrectly.

**Description**

Currently we track accounts that exist in the trie for purposes of
charging EIP7702 gas (the price is different if the authority already
exists in the trie).

When sending a zero-value transfer to an empty account, we incorrectly
mark it as existing.

The PR contains a regression test, that should fail on the first commit
and pass on the second.
edg-l pushed a commit that referenced this pull request May 13, 2026
…e transfer (#6591)

**Motivation**

When sending a zero-value transfer to an empty account, we incorrectly
mark it as existing for the purposes of EIP7702, leading to charging gas
incorrectly.

**Description**

Currently we track accounts that exist in the trie for purposes of
charging EIP7702 gas (the price is different if the authority already
exists in the trie).

When sending a zero-value transfer to an empty account, we incorrectly
mark it as existing.

The PR contains a regression test, that should fail on the first commit
and pass on the second.
akshay-ap pushed a commit to akshay-ap/ethrex that referenced this pull request May 19, 2026
**Motivation**

Bring ethrex up to bal-devnet-7 (BAL fixtures `bal@v7.1.1`). Stacked
on top of #bal-devnet-6-pr (now in main).

**Description**

Aligns EIP-8037 state-gas accounting with bal-devnet-7 spec progression
(EELS PRs lambdaclass#2815 / lambdaclass#2816 / lambdaclass#2823 / lambdaclass#2827 / lambdaclass#2828 / lambdaclass#2836 / lambdaclass#2845 /
lambdaclass#2848),
bumps Amsterdam fixtures from `snobal-devnet-6@v1.1.0` to `bal@v7.1.1`,
and bumps the pinned hive version past the ethrex `--http.api` fix.

Main changes:

- EIP-8037 state-gas alignment with bal-devnet-7:
  - System-call state-gas reservoir.
  - Halt refunds spilled state gas (Policy A).
  - Tx-level CREATE failure refunds intrinsic `NEW_ACCOUNT`;
    `intrinsic_state_gas_charged` preserved across the failure path.
  - Tx-CREATE collision refund with regular-gas burn; billing matches
    EELS.
  - Cross-frame revert leaks inline credits.
  - Cross-frame revert reservoir formula fix.
  - Block-level `state_gas_used` subtracts `state_refund`.
- Remove same-tx SELFDESTRUCT state-gas refund (EELS PR lambdaclass#2845, v7.1.0).
- EIP-7702:
  - `set_delegation` refund via dedicated `state_refund` channel.
  - `set_delegation` refunds `AUTH_BASE` on existing delegation
    (EELS PR lambdaclass#2836).
  - `set_delegation` refunds `AUTH_BASE` on delegation clear
    (EELS PR lambdaclass#2848, v7.1.1).
- levm fixes pulled from main:
  - `revert` doesn't unmark the account as existing (lambdaclass#6592).
  - Account erroneously considered as existing after zero-value transfer
    (lambdaclass#6591).
- Tooling / tests:
  - Per-tx gas-dimension dump on block `gas_used` mismatch.
  - Bump Amsterdam fixtures to `bal@v7.1.1`.
  - Annotate BAL balance-mismatch errors with gas-equivalent diff and
    recognised state-gas constant multiples.
  - Unskip 74 bal-devnet-6 Amsterdam fixtures now passing.
  - Skip 21 stale EIP-8025 fixtures pinned at `bal@v5.7.0`
    (zkevm@v0.3.3 bundle, pre-bal-7).
  - Drop stale bal-devnet-6 known-issues entries from
    `docs/known_issues.md` and hive `KNOWN_EXCLUDED_TESTS`.
- CI:
  - Bump pinned hive version past the ethrex `--http.api` flag
    feature-detect fix (`c4d839b3`, hive lambdaclass#1485). Without this, hive
    starts ethrex with the default HTTP namespace allowlist
    (`eth,net,web3`) and tests touching `admin_*`/`debug_*`/`txpool_*`
    fail.

**Local test run**

`./run_test.sh` against `tests-bal@v7.1.1`: 2,145 / 2,145 pass.
`cargo test -p ethrex-test --tests`: 453 / 453 pass.

**Checklist**

- [ ] Updated `STORE_SCHEMA_VERSION` (crates/storage/lib.rs) if the PR
  includes breaking changes to the `Store` requiring a re-sync.

---------

Co-authored-by: Lucas Fiegl <iovoid@users.noreply.github.com>
Co-authored-by: Ivan Litteri <67517699+ilitteri@users.noreply.github.com>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

levm Lambda EVM implementation

Projects

Status: Done

Development

Successfully merging this pull request may close these issues.

4 participants