Skip to content

Commit 8dfab20

Browse files
authored
Merge pull request #1568 from ethereum-optimism/harry/rename_superchain_weth_to_superchain_eth_bridge
fix: rename SuperchainWETH to SuperchainETHBridge
2 parents e84f17d + 8895bec commit 8dfab20

File tree

10 files changed

+160
-159
lines changed

10 files changed

+160
-159
lines changed

keywords.config.yaml

+1-1
Original file line numberDiff line numberDiff line change
@@ -158,7 +158,7 @@ metadata_rules:
158158
- token-standard
159159
- token-bridge
160160
- eth-bridging
161-
- superchain-weth
161+
- superchain-eth-bridge
162162
- superchain-token-bridge
163163
- token-deployment
164164
- event-reading

pages/app-developers/tutorials/supersim/chain-env/chain-a.mdx

+1-1
Original file line numberDiff line numberDiff line change
@@ -91,7 +91,7 @@ This guide provides network details and contract addresses for OPChainA (chainID
9191
"EAS": "0x4200000000000000000000000000000000000021",
9292
"CrossL2Inbox": "0x4200000000000000000000000000000000000022",
9393
"L2ToL2CrossDomainMessenger": "0x4200000000000000000000000000000000000023",
94-
"SuperchainWETH": "0x4200000000000000000000000000000000000024",
94+
"SuperchainETHBridge": "0x4200000000000000000000000000000000000024",
9595
"SuperchainTokenBridge": "0x4200000000000000000000000000000000000028",
9696

9797
// Periphery

pages/app-developers/tutorials/supersim/chain-env/chain-b.mdx

+1-1
Original file line numberDiff line numberDiff line change
@@ -91,7 +91,7 @@ This guide provides network details and contract addresses for OPChainB (chainID
9191
"EAS": "0x4200000000000000000000000000000000000021",
9292
"CrossL2Inbox": "0x4200000000000000000000000000000000000022",
9393
"L2ToL2CrossDomainMessenger": "0x4200000000000000000000000000000000000023",
94-
"SuperchainWETH": "0x4200000000000000000000000000000000000024",
94+
"SuperchainETHBridge": "0x4200000000000000000000000000000000000024",
9595
"SuperchainTokenBridge": "0x4200000000000000000000000000000000000028",
9696

9797
// Periphery

pages/interop/_meta.json

+1-1
Original file line numberDiff line numberDiff line change
@@ -14,7 +14,7 @@
1414
"message-passing": "Superchain interop message passing",
1515
"reading-logs": "Reading logs",
1616
"op-supervisor": "OP Supervisor",
17-
"superchain-weth": "Superchain ETH",
17+
"superchain-eth-bridge": "Superchain ETH bridge",
1818
"superchain-erc20": "SuperchainERC20",
1919
"compatible-tokens": "Superchain interop compatible tokens",
2020
"reorg": "Superchain interop reorg awareness",

pages/interop/op-supervisor.mdx

+1-1
Original file line numberDiff line numberDiff line change
@@ -93,5 +93,5 @@ For a full listing of API names, see the [source code](https://github.com/ethere
9393

9494
* Build a [revolutionary app](/app-developers/get-started) that uses multiple blockchains within the Superchain
9595
* Deploy a [SuperchainERC20](/interop/tutorials/deploy-superchain-erc20) to the Superchain
96-
* Learn [how ETH can move across chains](https://docs.optimism.io/interop/superchain-weth)
96+
* Learn [how ETH can move across chains](https://docs.optimism.io/interop/superchain-eth-bridge)
9797
* For more info about how Superchain interoperability works under the hood, [check out the specs](https://specs.optimism.io/interop/overview.html?utm_source=op-docs&utm_medium=docs).

pages/interop/superchain-weth.mdx pages/interop/superchain-eth-bridge.mdx

+28-28
Original file line numberDiff line numberDiff line change
@@ -1,17 +1,17 @@
11
---
2-
title: Superchain ETH
2+
title: Superchain ETH Bridge
33
description: Learn basic details about Interoperable ETH.
44
lang: en-US
55
content_type: guide
6-
topic: superchain-eth
6+
topic: superchain-eth-bridge
77
personas:
88
- protocol-developer
99
- app-developer
1010
categories:
1111
- protocol
1212
- interoperability
1313
- cross-chain-messaging
14-
- superchain-weth
14+
- superchain-eth-bridge
1515
- eth-bridging
1616
- interoperable-assets
1717
- cross-domain-messenger
@@ -25,7 +25,7 @@ import { InteropCallout } from '@/components/WipCallout'
2525

2626
<InteropCallout />
2727

28-
# Superchain ETH
28+
# Superchain ETH Bridge
2929

3030
<Callout>
3131
This is an explanation of how interop ETH works.
@@ -35,12 +35,12 @@ import { InteropCallout } from '@/components/WipCallout'
3535

3636
InteroperableETH enables seamless ETH transfers across Superchain blockchains. It is implemented using three key contracts:
3737

38-
* [`SuperchainWETH`](https://github.com/ethereum-optimism/optimism/blob/develop/packages/contracts-bedrock/src/L2/SuperchainWETH.sol): A bridge contract that facilitates ETH transfers between Superchain blockchains.
38+
* [`SuperchainETHBridge`](https://github.com/ethereum-optimism/optimism/blob/develop/packages/contracts-bedrock/src/L2/SuperchainETHBridge.sol): A bridge contract that facilitates ETH transfers between Superchain blockchains.
3939
* [`ETHLiquidity`](https://github.com/ethereum-optimism/optimism/blob/develop/packages/contracts-bedrock/src/L2/ETHLiquidity.sol): A liquidity provider for ETH transfers.
40-
`SuperchainWETH` uses this contract as a liquidity repository to ensure ETH availability on the destination chain.
40+
`SuperchainETHBridge` uses this contract as a liquidity repository to ensure ETH availability on the destination chain.
4141
* [`L2ToL2CrossDomainMessenger`](https://github.com/ethereum-optimism/optimism/blob/develop/packages/contracts-bedrock/src/L2/L2ToL2CrossDomainMessenger.sol): A messaging contract that [facilitates cross-chain communication](/interop/message-passing).
4242

43-
Superchain ETH deposits ETH into the `ETHLiquidity` contract on the source chain and withdraws an equivalent amount on the destination chain.
43+
Superchain ETH Bridge deposits ETH into the `ETHLiquidity` contract on the source chain and withdraws an equivalent amount on the destination chain.
4444
This mechanism improves capital efficiency and eliminates liquidity fragmentation and poor user experiences caused by asset wrapping or reliance on liquidity pools.
4545

4646
## Features and benefits
@@ -65,61 +65,61 @@ This mechanism improves capital efficiency and eliminates liquidity fragmentatio
6565
sequenceDiagram
6666
box rgba(0,0,0,0.1) Source Chain
6767
participant src-liquidity as ETHLiquidity
68-
participant src-weth as SuperchainWETH
68+
participant src-eth-bridge as SuperchainETHBridge
6969
end
7070
actor user as User
7171
participant any-offchain as User, Relayer, etc.
7272
box rgba(0,0,0,0.1) Destination Chain
7373
participant dst-l2Xl2 as L2ToL2CrossDomainMessenger
74-
participant dst-weth as SuperchainWETH
74+
participant dst-eth-bridge as SuperchainETHBridge
7575
participant dst-liquidity as ETHLiquidity
7676
participant dst-final as ETH Destination
7777
end
7878
rect rgba(0,0,0,0.1)
79-
note over src-weth, dst-l2Xl2: Initiating Message
80-
user->>src-weth: 1. sendETH(to, chainId) with n ETH
81-
src-weth->>src-liquidity: 2. Deposit n ETH
82-
src-weth->>dst-l2Xl2: 3. Send relayETH to Superchain WETH on chainId
79+
note over src-eth-bridge, dst-l2Xl2: Initiating Message
80+
user->>src-eth-bridge: 1. sendETH(to, chainId) with n ETH
81+
src-eth-bridge->>src-liquidity: 2. Deposit n ETH
82+
src-eth-bridge->>dst-l2Xl2: 3. Send relayETH to SuperchainETHBridge on chainId
8383
end
8484
rect rgba(0,0,0,0.1)
85-
note over any-offchain,dst-weth: Executing message
85+
note over any-offchain,dst-eth-bridge: Executing message
8686
any-offchain->>dst-l2Xl2: 4. Relay the message
87-
dst-l2Xl2->>dst-weth: 5. relayETH(from, to, amount)
88-
dst-weth->>dst-liquidity: 6. Withdraw amount ETH
89-
dst-weth->>dst-final: 7. Here are amount ETH
87+
dst-l2Xl2->>dst-eth-bridge: 5. relayETH(from, to, amount)
88+
dst-eth-bridge->>dst-liquidity: 6. Withdraw amount ETH
89+
dst-eth-bridge->>dst-final: 7. Here are amount ETH
9090
end
9191
```
9292

9393
#### Initiating message
9494

95-
1. The user (or a contract operating on a user's behalf) calls `SuperchainWETH.sendETH` with a destination address and a chainId.
95+
1. The user (or a contract operating on a user's behalf) calls `SuperchainETHBridge.sendETH` with a destination address and a chainId.
9696
ETH, in the amount to transfer must be attached to this call.
9797

98-
2. `SuperchainWETH` transfers the specified ETH amount to `ETHLiquidity`, removing it from circulation on the source chain.
98+
2. `SuperchainETHBridge` transfers the specified ETH amount to `ETHLiquidity`, removing it from circulation on the source chain.
9999

100-
3. `SuperchainWETH` on the source chain sends a [`relayETH`](https://github.com/ethereum-optimism/optimism/blob/develop/packages/contracts-bedrock/src/L2/SuperchainWETH.sol#L125-L145) message to `SuperchainWETH` on the destination chain using the [`L2ToL2CrossDomainMessenger`](/interop/message-passing).
100+
3. `SuperchainETHBridge` on the source chain sends a [`relayETH`](https://github.com/ethereum-optimism/optimism/blob/develop/packages/contracts-bedrock/src/L2/SuperchainETHBridge.sol) message to `SuperchainETHBridge` on the destination chain using the [`L2ToL2CrossDomainMessenger`](/interop/message-passing).
101101

102102
#### Executing message
103103

104104
4. An off-chain entity submits a transaction to execute the message.
105105
Any address can submit this transaction, but it must have ETH on the destination chain.
106106
Typically, this would be the chain's autorelayer.
107107

108-
5. `L2ToL2CrossDomainMessenger` on the destination chain calls `SuperchainWETH` with the following details:
108+
5. `L2ToL2CrossDomainMessenger` on the destination chain calls `SuperchainETHBridge` with the following details:
109109

110110
* Source of the ETH
111111
* Destination address
112112
* Amount of ETH
113113

114-
`SuperchainWETH` performs several sanity checks:
114+
`SuperchainETHBridge` performs several sanity checks:
115115

116116
* The `relayETH` call must originate from `L2ToL2CrossDomainMessenger`.
117-
* The interop message must have been sent by `SuperchainWETH`
117+
* The interop message must have been sent by `SuperchainETHBridge`
118118

119-
6. `SuperchainWETH` withdraws the specified amount of ETH from `ETHLiquidity`.
120-
Only `SuperchainWETH` can withdraw from `ETHLiquidity`, ensuring that the ETH is correctly reintroduced into circulation on the destination chain.
119+
6. `SuperchainETHBridge` withdraws the specified amount of ETH from `ETHLiquidity`.
120+
Only `SuperchainETHBridge` can withdraw from `ETHLiquidity`, ensuring that the ETH is correctly reintroduced into circulation on the destination chain.
121121

122-
7. `SuperchainWETH` uses [`SafeSend`](https://github.com/ethereum-optimism/optimism/blob/develop/packages/contracts-bedrock/src/universal/SafeSend.sol) to send ETH.
122+
7. `SuperchainETHBridge` uses [`SafeSend`](https://github.com/ethereum-optimism/optimism/blob/develop/packages/contracts-bedrock/src/universal/SafeSend.sol) to send ETH.
123123
This ensures that even if the destination is a smart contract, its custom logic is not executed.
124124
This behavior differs from [standard ETH transfers](https://docs.base.org/learn/address-and-payable/address-and-payable#receiving-ether-with-payable-addresses), where smart contracts can trigger custom logic upon receiving ETH.
125125

@@ -147,11 +147,11 @@ Here is an example of how this works.
147147
The user sends 3 ETH on L1 to the bridge, which is locked in the lockbox.
148148
The bridge on chain A then mints 3 ETH for the user.
149149

150-
3. The user sent the initiating message to `SuperchainWETH` on chain A, along with 1 ETH to bridge to chain B.
150+
3. The user sent the initiating message to `SuperchainETHBridge` on chain A, along with 1 ETH to bridge to chain B.
151151
This 1 ETH is sent to `ETHLiquidity` on chain A.
152152

153153
4. Somebody (the user, a relayer action on behalf of the user, etc.) sent the corresponding executing message to chain B.
154-
`SuperchainWETH` transfers 1 ETH from `ETHLiquidity` on chain B to the user.
154+
`SuperchainETHBridge` transfers 1 ETH from `ETHLiquidity` on chain B to the user.
155155

156156
5. The user decides to withdraw 1 ETH from chain B back into L1.
157157
Normally, a user would do this through a third-party bridge, which is faster and usually cheaper, but for illustration purposes this user uses the standard OP bridge.

pages/interop/tutorials/bridge-crosschain-eth.mdx

+8-8
Original file line numberDiff line numberDiff line change
@@ -30,12 +30,12 @@ import { AutorelayCallout } from '@/components/AutorelayCallout'
3030
<Callout>
3131
This tutorial provides step-by-step instructions for how to send ETH from one chain in the Superchain interop cluster to another.
3232
For a conceptual overview,
33-
see the [interoperable ETH explainer](/interop/superchain-weth).
33+
see the [interoperable ETH explainer](/interop/superchain-eth-bridge).
3434
</Callout>
3535

3636
## Overview
3737

38-
Crosschain ETH transfers in the Superchain are facilitated through the [SuperchainWETH](https://github.com/ethereum-optimism/optimism/blob/develop/packages/contracts-bedrock/src/L2/SuperchainWETH.sol) contract.
38+
Crosschain ETH transfers in the Superchain are facilitated through the [SuperchainETHBridge](https://github.com/ethereum-optimism/optimism/blob/develop/packages/contracts-bedrock/src/L2/SuperchainETHBridge.sol) contract.
3939
This tutorial walks through how to send ETH from one chain to another.
4040
You can do this on [Supersim](/interop/tools/supersim), [the Interop devnet](/interop/tools/devnet), or production once it is released.
4141

@@ -169,9 +169,9 @@ The tutorial uses these primary tools:
169169
```sh
170170
DST_CHAINID=`cast chain-id --rpc-url $DST_URL`
171171
MY_ADDRESS=`cast wallet address $PRIVATE_KEY`
172-
SUPERCHAIN_WETH=0x4200000000000000000000000000000000000024
172+
SUPERCHAIN_ETH_BRIDGE=0x4200000000000000000000000000000000000024
173173
BEFORE=`cast balance $MY_ADDRESS --rpc-url $DST_URL | cast from-wei`
174-
cast send --rpc-url $SRC_URL --private-key $PRIVATE_KEY $SUPERCHAIN_WETH "sendETH(address,uint256)" $MY_ADDRESS $DST_CHAINID --value 0.001ether
174+
cast send --rpc-url $SRC_URL --private-key $PRIVATE_KEY $SUPERCHAIN_ETH_BRIDGE "sendETH(address,uint256)" $MY_ADDRESS $DST_CHAINID --value 0.001ether
175175
sleep 10
176176
AFTER=`cast balance $MY_ADDRESS --rpc-url $DST_URL | cast from-wei`
177177
echo -e Balance before transfer\\t$BEFORE
@@ -195,15 +195,15 @@ The tutorial uses these primary tools:
195195
mkdir src
196196
```
197197

198-
2. Download the ABI for `SuperchainWETH`.
198+
2. Download the ABI for `SuperchainETHBridge`.
199199

200200
```sh
201-
curl https://raw.githubusercontent.com/ethereum-optimism/optimism/refs/heads/develop/packages/contracts-bedrock/snapshots/abi/SuperchainWETH.json > src/SuperchainWETH.abi.json
201+
curl https://raw.githubusercontent.com/ethereum-optimism/optimism/refs/heads/develop/packages/contracts-bedrock/snapshots/abi/SuperchainETHBridge.json > src/SuperchainETHBridge.abi.json
202202
```
203203

204204
3. Place this in `src/transfer-eth.mts`:
205205

206-
```typescript file=<rootDir>/public/tutorials/transfer-eth.mts hash=c6032f96e0fc040ad8fff7bc2892bbb6
206+
```typescript file=<rootDir>/public/tutorials/transfer-eth.mts hash=f71ba1d6d6b4adf8cb3283792abac853
207207
```
208208

209209
<details>
@@ -285,7 +285,7 @@ The tutorial uses these primary tools:
285285

286286
## Next steps
287287

288-
* Check out the [SuperchainWETH guide](/interop/superchain-weth) for more information.
288+
* Check out the [SuperchainETHBridge guide](/interop/superchain-eth-bridge) for more information.
289289
* Use the [SuperchainERC20 Starter Kit](/app-developers/starter-kit) to deploy your token across the Superchain.
290290
* Review the [Superchain interop explainer](/interop/explainer) for answers to common questions about interoperability.
291291

public/_redirects

+2-1
Original file line numberDiff line numberDiff line change
@@ -195,7 +195,8 @@
195195
/stack/interop/predeploy /interop/predeploy
196196
/stack/interop/explainer /interop/explainer
197197
/stack/interop/interop-security /interop/interop-security
198-
/stack/interop/superchain-weth /interop/superchain-weth
198+
/stack/interop/superchain-weth /interop/superchain-eth-bridge
199+
/interop/superchain-weth /interop/superchain-eth-bridge
199200
/interop /interop/explainer
200201
/stack/interop /interop/get-started
201202

public/tutorials/transfer-eth.mts

+3-3
Original file line numberDiff line numberDiff line change
@@ -24,7 +24,7 @@ import {
2424
contracts as optimismContracts
2525
} from '@eth-optimism/viem'
2626

27-
import superchainWethAbi from './SuperchainWETH.abi.json'
27+
import superchainEthBridgeAbi from './SuperchainETHBridge.abi.json'
2828

2929
const supersimAddress="0xf39Fd6e51aad88F6F4ce6aB8827279cffFb92266"
3030
const account = privateKeyToAccount(process.env.PRIVATE_KEY as `0x${string}`)
@@ -48,8 +48,8 @@ const destinationWallet = createWalletClient({
4848
.extend(walletActionsL2())
4949

5050
const wethOnSource = await getContract({
51-
address: optimismContracts.superchainWETH.address,
52-
abi: superchainWethAbi,
51+
address: optimismContracts.superchainETHBridge.address,
52+
abi: superchainEthBridgeAbi,
5353
client: sourceWallet
5454
})
5555

0 commit comments

Comments
 (0)