The current Messaging System takes the l1_sender address as the caller of the L2 contract invoked.
This can be an issue if, for example, a L2 contract expects to be invoked in specific conditions by another L2 contract, but ends up being called in other conditions by an L1 contract that would match these conditions.
We need to design a system that prevents this from happening:
Arbitrum has an offset on all L1 addresses executing messages on L2
Optimism routes all messages from the XDomainMessenger Contract
Feature Request
The current Messaging System takes the l1_sender address as the caller of the L2 contract invoked.
This can be an issue if, for example, a L2 contract expects to be invoked in specific conditions by another L2 contract, but ends up being called in other conditions by an L1 contract that would match these conditions.
We need to design a system that prevents this from happening: