Skip to content
Lattice

L2ToL2CrossDomainMessengerGatewayAdapterLib Constants

Git Source

L2_TO_L2_CROSS_DOMAIN_MESSENGER_GATEWAY_ADAPTER_STORAGE_SLOT

keccak256(abi.encode(uint256(keccak256("lattice.storage.L2ToL2CrossDomainMessengerGatewayAdapter")) - 1)) & ~bytes32(uint256(0xff)).

bytes32 constant L2_TO_L2_CROSS_DOMAIN_MESSENGER_GATEWAY_ADAPTER_STORAGE_SLOT =
    0x7d097b8d74c3eca1712de7b01bb2e081ac18f7660e60d35d0a11a670a90beb00;

ERC165_MAP_IERC7786GATEWAYSOURCE_SLOT

ERC-165 map slot for IERC7786GatewaySource (0x11967553). SHARED by all gateway adapters — keccak256(abi.encode(bytes4(0x11967553), 0x9ca7f3e2e2bfb15fdf072b85dde92837cddacee6cf2f6b38cd06c9457c1c4200)).

bytes32 constant ERC165_MAP_IERC7786GATEWAYSOURCE_SLOT =
    0x3c75b8ea75c097979221eb9302e2f0f6009b4ffe0a7198db5dc29979e09ea0e3;

L2_TO_L2_CROSS_DOMAIN_MESSENGER

The OP Superchain L2ToL2CrossDomainMessenger predeploy — fixed on every Superchain chain. PRE-MAINNET: re-verify this address (and the message encoding) against the then-current ethereum-optimism/optimism contracts-bedrock release before ANY production deploy.

address constant L2_TO_L2_CROSS_DOMAIN_MESSENGER = 0x4200000000000000000000000000000000000023;