Calls

All EVM call instructions follow a similar handling approach. The call type is encoded at the assembly level, so we will focus on the common workflow and note any differences where they arise.

For more information, see the ZKsync Era documentation.

CALL

Original EVM instruction.

The code checks whether the call is non-static and whether the Ether value is non-zero. If both conditions are met, the call is redirected to the MsgValueSimulator.

DELEGATECALL

Original EVM instruction.

EraVM instruction: far_call

STATICCALL

Original EVM instruction.

EraVM instruction: far_call