send_message_to_l2
def send_message_to_l2(
    fn_name: str,
    from_address: int = 0,
    to_address: Optional[int] = None,
    payload: Optional[CairoOrPythonData] = None,
) -> None:
    ...
This cheatcode simulates an incoming message from L1 to L2 executed with fn_name at to_address contract address.
It can be useful when implementing i.e. a token bridge and wanting to test the message-consuming behavior.
This cheatcode requires that the contract at to_address address has a @l1_handler named fn_name.
- fn_name—- @l1_handlerfunction name.
- from_address— An l1 address with which the message will be sent.
- to_address— A l2 contract's address — the receiver of the message, which implements the called- @l1_handler. Defaults to the current contract.
- payload—- @l1_handlerfunction parameters, without- from_address. This can be passed as a dictionary, or as a flat array of ints. Defaults to an empty array.
tip
You can leverage data transformer to pass payload as a dictionary instead of a list of numbers.
danger
Do not provide from_address (needed for all L1 handlers in Starknet) in the function's payload - this is passed automatically using from_address parameter.