Skip to content

core/vm: disable the value transfer in syscall#33741

Merged
rjl493456442 merged 2 commits intoethereum:masterfrom
rjl493456442:no-transfer-syscall
Feb 18, 2026
Merged

core/vm: disable the value transfer in syscall#33741
rjl493456442 merged 2 commits intoethereum:masterfrom
rjl493456442:no-transfer-syscall

Conversation

@rjl493456442
Copy link
Copy Markdown
Member

@rjl493456442 rjl493456442 commented Feb 3, 2026

In src/ethereum/forks/amsterdam/vm/interpreter.py:299-304, the caller address is
only tracked for block level accessList when there's a value transfer:

if message.should_transfer_value and message.value != 0:  
    # Track value transfer  
    sender_balance = get_account(state, message.caller).balance  
    recipient_balance = get_account(state, message.current_target).balance  

    track_address(message.state_changes, message.caller)  # Line 304

Since system transactions have should_transfer_value=False and value=0,
this condition is never met, so the caller (SYSTEM_ADDRESS) is not tracked.

This condition is applied for the syscall in the geth implementation, aligning with
the spec of EIP7928.

@fjl fjl added the amsterdam label Feb 4, 2026
@rjl493456442 rjl493456442 added this to the 1.17.1 milestone Feb 5, 2026
@rjl493456442 rjl493456442 merged commit 01fe1d7 into ethereum:master Feb 18, 2026
7 of 8 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants