Skip to content

fix(levm): mulmod should not overflow#1485

Merged
JereSalo merged 2 commits into
mainfrom
levm/fix_mulmod
Dec 12, 2024
Merged

fix(levm): mulmod should not overflow#1485
JereSalo merged 2 commits into
mainfrom
levm/fix_mulmod

Conversation

@LeanSerra

Copy link
Copy Markdown
Contributor

Motivation

Mulmod, was overflowing when it shouldn't

Description

  • Use U512 for all intermediate operations convert to U256 before pushing into the stack, return internal error because mulmod should always fit in U256

@LeanSerra LeanSerra added the levm Lambda EVM implementation label Dec 12, 2024
@LeanSerra LeanSerra self-assigned this Dec 12, 2024
@LeanSerra LeanSerra requested a review from a team as a code owner December 12, 2024 13:36

@JereSalo JereSalo left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

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

lgtm

@JereSalo JereSalo enabled auto-merge December 12, 2024 14:17
@JereSalo JereSalo added this pull request to the merge queue Dec 12, 2024
Merged via the queue into main with commit c3bbbfd Dec 12, 2024
@JereSalo JereSalo deleted the levm/fix_mulmod branch December 12, 2024 14:24
pedrobergamini pushed a commit to pedrobergamini/ethrex that referenced this pull request Aug 24, 2025
**Motivation**

Mulmod, was overflowing when it shouldn't

**Description**
- Use U512 for all intermediate operations convert to U256 before
pushing into the stack, return internal error because mulmod should
always fit in U256
edg-l added a commit that referenced this pull request May 13, 2026
ethrex ab15f37 hardened the HTTP JSON-RPC defaults, gating
`admin_*`/`debug_*`/`txpool_*` behind a new `--http.api` allowlist.
Hive c4d839b3 (#1485) feature-detects the flag in `clients/ethrex/
ethrex.sh` and opts those namespaces back in. The pinned version
`1c27560a` predates that fix, so hive runs against current main start
ethrex without the namespace allowlist and any test touching the
gated namespaces gets `MethodNotFound`.

Bump to current hive HEAD (3b6bde03), which includes the fix plus a
Cargo.lock dependency-drift safeguard (#1492).
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

None yet

Development

Successfully merging this pull request may close these issues.

2 participants