Files
cde53ac296 glamsterdam devnet 7 (#4498)
* Update EEST test fixtures to tests-glamsterdam-devnet@v7.0.0

* Finalize EIP-8282 contract

* EIP-8038: move SSTORE access-cost check before read

* anchor calldata floor on decomposed EIP-2780 base

* charge EIP-8037 account creation at access

* apply calldata floor to block-level regular gas

* update the EIP-2780 implementation

* Disable EEST stateless execution test

* skip malformed enode entry (#4503)

* skip malformed entry

* fix: lint

* fix: suggestions

* optimize

* Update to zkevm v0.6.1 and spec related changes

* Re-enable stateless tests + add some new fixtures to skipFiles

* Charge EIP-7702 delegation access before loading target code (#4509)

Load the delegation target its code only after the access charge
succeeds, so an OOG cannot leak the target account into the witness.

* stateless: Load CALL child code before the depth/balance early exits (#4514)

Load the (delegated) execution code once per call opcode, after the gas
charge but before the early-exit checks, matching the spec's access order
so a missing witness code entry is detected even when the call fails early.

* Pass the true finalized frontier — the higher of base and the existing highest finalized marker on c.latest's chain (#4502)

* Implement gloas fcU payload build skip v1.0.0-beta.7 (#4525)

* Implement gloas fcU payload build skip v1.0.0-beta.7

* Add spec URL link

* Update comments

* EIP-8282: include builder requests in payload executionRequests (#4532)

assembleHeader() folds builder deposit (0x03) and builder exit (0x04)
requests into requestsHash post-Amsterdam, but executionRequests() only
emitted deposit/withdrawal/consolidation. The payload therefore carried
3 request types while the committed header hashed 5.

Every engine_newPayload receiver recomputes requestsHash from the
delivered executionRequests (api_newpayload.nim), rebuilds the header and
compares block hashes -- so a self-built block was rejected as
'blockhash mismatch' by all peers and by nimbus itself.

calcRequestsHash skips empty request data, so the two hashes agree
whenever no builder request is dequeued; the divergence only surfaces on
blocks that actually carry one. Observed twice in 12h on
glamsterdam-devnet-7 (blocks 40213, 40941), each time in the block that
dequeued a builder deposit.

* Validate block baggage in eest_txpool_test (#4535)

* Fix EVM stack memory leak from double setCode on system calls (#4550)

System call frames set their code twice (setupComputation, then
prepareDispatch), and each setCode allocated a fresh stack,
orphaning the first one. This leak drove the EEST stateless suite
to ~17GB VIRT and OOM on CI. setCode now allocates the buffers
only when absent and reuses the still empty stack.

Also add dispose for the computation on two other early return
paths that skipped it.

* System call should not call topFrameAuthAndDelegation (#4552)

* System call should not call topFrameAuthAndDelegation

* Remove stack check in setCode

* Architectural changes when handling topFrameAuthAndDelegation

---------

Co-authored-by: Advaita Saha <adv11sphs@gmail.com>
Co-authored-by: kdeme <7857583+kdeme@users.noreply.github.com>
Co-authored-by: Stefan <22667037+qu0b@users.noreply.github.com>
2026-07-24 11:27:53 +07:00
..
2026-07-24 11:27:53 +07:00