.. py:module:: ethereum.berlin.utils.message Hardfork Utility Functions For The Message Data-structure ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ .. contents:: Table of Contents :backlinks: none :local: Introduction ------------ Message specific functions used in this berlin version of specification. .. only:: stage1 Module Contents --------------- Functions ~~~~~~~~~ .. autoapisummary:: :nosignatures: ethereum.berlin.utils.message.prepare_message Module Details --------------- prepare_message ~~~~~~~~~~~~~~~ .. function:: prepare_message(caller: ethereum.berlin.eth_types.Address, target: Union[ethereum.base_types.Bytes0, ethereum.berlin.eth_types.Address], value: ethereum.base_types.U256, data: ethereum.base_types.Bytes, gas: ethereum.base_types.U256, env: ethereum.berlin.vm.Environment, code_address: Optional[ethereum.berlin.eth_types.Address] = None, should_transfer_value: bool = True, is_static: bool = False, preaccessed_addresses: FrozenSet[ethereum.berlin.eth_types.Address] = frozenset(), preaccessed_storage_keys: FrozenSet[Tuple[ethereum.berlin.eth_types.Address, ethereum.base_types.Bytes32]] = frozenset()) -> ethereum.berlin.vm.Message :noindexentry: Execute a transaction against the provided environment. :param caller: Address which initiated the transaction :param target: Address whose code will be executed :param value: Value to be transferred. :param data: Array of bytes provided to the code in `target`. :param gas: Gas provided for the code in `target`. :param env: Environment for the Ethereum Virtual Machine. :param code_address: This is usually same as the `target` address except when an alternative accounts code needs to be executed. eg. `CALLCODE` calling a precompile. :param should_transfer_value: if True ETH should be transferred while executing a message call. :param is_static: if True then it prevents all state-changing operations from being executed. :param preaccessed_addresses: Addresses that should be marked as accessed prior to the message call :param preaccessed_storage_keys: Storage keys that should be marked as accessed prior to the message call :returns: **message** -- Items containing contract creation or message call specific data. :rtype: `ethereum.berlin.vm.Message` .. undocinclude:: /../src/ethereum/berlin/utils/message.py :language: python :pyobject: prepare_message