Skip to content
Lattice

SuperchainETHBridgeAdapter

Git Source

Inherits: ISuperchainETHBridgeAdapter

Title: SuperchainETHBridgeAdapter

Authors: David Dada <daveproxy80@gmail.com> (https://github.com/dadadave80), Modified from Optimism (https://github.com/ethereum-optimism/optimism)

OP Stack SuperchainETHBridge interop facet: sendETH forwards msg.value native ETH to the canonical predeploy (0x…0024) to bridge it to another Superchain chain. OUTBOUND-ONLY native-ETH interop — NOT the removed SuperchainERC20 token bridge, and NOT an IERC7786GatewaySource.

Stateless delegator — logic lives in SuperchainETHBridgeAdapterLib. The adapter holds no ETH/state and has no admin surface (the predeploy address is a compile-time constant).

Notes:

  • lattice-version: 0.1.0
  • lattice-source: Optimism

Functions

sendETH

Bridges msg.value native ETH to to on Superchain chain chainId via the predeploy.

function sendETH(address to, uint256 chainId) external payable virtual returns (bytes32 msgHash);

Parameters

NameTypeDescription
toaddressThe recipient on the destination chain (must be non-zero).
chainIduint256The destination chain id.

Returns

NameTypeDescription
msgHashbytes32The L2ToL2CrossDomainMessenger message hash of the relay message.

bridge

The fixed SuperchainETHBridge predeploy this adapter forwards to (0x4200000000000000000000000000000000000024).

function bridge() external pure virtual returns (address);

Returns

NameTypeDescription
<none>address

exportSelectors

ERC-8153 selector export: this facet's cuttable selectors, tightly packed (4 bytes each).

Excludes exportSelectors() itself (0x0ef22643) - it is never cut into a diamond. Order matches forge inspect SuperchainETHBridgeAdapter methodIdentifiers (alphabetical by signature); kept in exact parity by ExportSelectorsParityTest. Chunks: bridge() 0xe78cea92 sendETH(address,uint256) 0x64a197f3

function exportSelectors() external pure virtual returns (bytes memory selectors);

Returns

NameTypeDescription
selectorsbytes