CALL opcode consumes value
of the stack (which is transferred to the account). It can also additionally consume stack items to pass input to the smart contract account function.
Can both happen simultaneously? How common is it?
Yes. The CALL opcode has sever parameters: gas
, addr
, val
, argOst
, argLen
, retOst
, retLen
In particular val
is the ether amount to be sent, and argOst
, argLen
are byte array start and length with the input parameters.
See the documentation https://ethereum.org/en/developers/docs/evm/opcodes/ for more details.