mirror of
https://github.com/status-im/nimbus-eth1.git
synced 2026-08-27 15:01:11 +00:00
* 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>