Apart from system state and gas, there are various other elements and information that is required in the execution environment where the execution node must be provided to the EVM:
- Address of the account that owns the execution code.
- Sender address of the transaction that originated the execution.
- Originating address of the execution.
- Gas price of the transaction that initiated the execution.
- Input data or the transaction data, depending on the executing agent type. If the execution node is a transaction, then the transaction data is included as input data.
- Address of the account that initiated the code execution or the transaction sender. This is the address of the sender if the initiation is by a transaction, or else the address of the account.
- Transaction value—this amount is in Wei (the smallest unit of Ether). If the execution agent is a transaction, then it is the value of the transaction.
- The code to be executed, presented as a byte array that the iterator function can execute in cycles.
- Block header of the present block.
- Number of message calls or contract-creation transactions in execution—that is, the number of CALLs or CREATEs being executed in the current cycle of execution.