All EVM call instructions are handled similarly.

The call type is encoded on the assembly level, so we will describe the common handling workflow, mentioning distinctions if there are any.

For more information, see the ZKsync Era documentation.

CALL

Original EVM instruction.

The LLVM IR generator code is common for Yul and EVMLA representations.

The code checks if the call is non-static and the Ether value is non-zero. If so, the call is redirected to the MsgValueSimulator.

DELEGATECALL

Original EVM instruction.

The LLVM IR generator code is common for Yul and EVMLA representations.

EraVM instruction: far_call

STATICCALL

Original EVM instruction.

The LLVM IR generator code is common for Yul and EVMLA representations.

EraVM instruction: far_call


Made with ❤️ by the ZKsync Community