From 32aa22bf42e18c5c73cd03601e7fec49ae56cf3b Mon Sep 17 00:00:00 2001 From: Ori Pomerantz Date: Sat, 22 Feb 2025 07:48:31 -0600 Subject: [PATCH 1/4] Clarify step 3 --- pages/stack/interop/superchain-erc20.mdx | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/pages/stack/interop/superchain-erc20.mdx b/pages/stack/interop/superchain-erc20.mdx index be63b7c3c..951b5754c 100644 --- a/pages/stack/interop/superchain-erc20.mdx +++ b/pages/stack/interop/superchain-erc20.mdx @@ -61,7 +61,7 @@ sequenceDiagram note over src-erc20, dst-l2Xl2: Initiating Message user->>src-bridge: 1. Move n tokens src-bridge->>src-erc20: 2. Burn n tokens - src-bridge->>dst-l2Xl2: 3. Relay n tokens to user + src-bridge--)dst-l2Xl2: 3. Relay n tokens to user end rect rgba(0,0,0,0.1) note over user,dst-erc20: Executing message @@ -79,6 +79,8 @@ sequenceDiagram 3. The source token bridge calls [`SuperchainTokenBridge.relayERC20`](https://github.com/ethereum-optimism/optimism/blob/develop/packages/contracts-bedrock/src/L2/SuperchainTokenBridge.sol#L80-L97) on the destination token bridge. This call is relayed using [`L2ToL2CrossDomainMessenger`](./message-passing). + The call is *initiated* here, by emitting an initiating message. + It will be executed later, after the destination chain receives an executing message to [`L2ToL2CrossDomainMessenger`](./message-passing). #### Executing message (destination chain) From 83b944cd13c9c334742e4aeeff4bff5f894d223e Mon Sep 17 00:00:00 2001 From: Ori Pomerantz Date: Mon, 24 Feb 2025 11:51:18 -0600 Subject: [PATCH 2/4] Update for autorelayer --- pages/stack/interop/superchain-erc20.mdx | 7 ++++--- 1 file changed, 4 insertions(+), 3 deletions(-) diff --git a/pages/stack/interop/superchain-erc20.mdx b/pages/stack/interop/superchain-erc20.mdx index 951b5754c..b65ca2852 100644 --- a/pages/stack/interop/superchain-erc20.mdx +++ b/pages/stack/interop/superchain-erc20.mdx @@ -52,6 +52,7 @@ sequenceDiagram participant src-bridge as SuperchainTokenBridge end actor user as User + participant relay as Autorelayer box rgba(0,0,0,0.1) Destination Chain participant dst-l2Xl2 as L2ToL2CrossDomainMessenger participant dst-bridge as SuperchainTokenBridge @@ -64,8 +65,8 @@ sequenceDiagram src-bridge--)dst-l2Xl2: 3. Relay n tokens to user end rect rgba(0,0,0,0.1) - note over user,dst-erc20: Executing message - user->>dst-l2Xl2: 4. Relay the message + note over relay,dst-erc20: Executing message + relay->>dst-l2Xl2: 4. Relay the message dst-l2Xl2->>dst-bridge: 4. Relay the message dst-bridge->>dst-erc20: 5. Mint n tokens to user end @@ -84,7 +85,7 @@ sequenceDiagram #### Executing message (destination chain) -4. The user, or a relayer, sends an executing message to [`L2ToL2CrossDomainMessenger`](./message-passing) to relay the message. +4. The autorelayer (or the user, or any offchain entity) sends an executing message to [`L2ToL2CrossDomainMessenger`](./message-passing) to relay the message. 5. The destination token bridge calls [`SuperchainERC20.crosschainMint`](https://github.com/ethereum-optimism/optimism/blob/develop/packages/contracts-bedrock/src/L2/SuperchainERC20.sol#L26-L35) to mint tokens for the user/contract that called `SuperchainTokenBridge.sendERC20` originally. From 858bfcf32a8effbfce449e79f6f21b3d4343bf2a Mon Sep 17 00:00:00 2001 From: Bradley Camacho <42678939+bradleycamacho@users.noreply.github.com> Date: Mon, 24 Feb 2025 10:40:55 -0800 Subject: [PATCH 3/4] Empty commit --- pages/stack/interop/tutorials/deploy-superchain-erc20.mdx | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/pages/stack/interop/tutorials/deploy-superchain-erc20.mdx b/pages/stack/interop/tutorials/deploy-superchain-erc20.mdx index c30194ac5..e2857abbc 100644 --- a/pages/stack/interop/tutorials/deploy-superchain-erc20.mdx +++ b/pages/stack/interop/tutorials/deploy-superchain-erc20.mdx @@ -85,7 +85,7 @@ The tutorial uses these primary tools: pnpm contracts:update:rpcs ``` - 2. Edit `packages/contracts/configs/deploy-config.toml` for the deployment settings. + 2. Edit `packages/contracts/configs/deploy-config.toml` for the deployment settings. * Set these parameters in the `[deploy-config]` section: From 5276295bf5d5990b36eebb6d4363c3dc55bf7b16 Mon Sep 17 00:00:00 2001 From: Bradley Camacho <42678939+bradleycamacho@users.noreply.github.com> Date: Mon, 24 Feb 2025 13:27:36 -0800 Subject: [PATCH 4/4] Empty commit for CI fix --- pages/stack/interop/tutorials/deploy-superchain-erc20.mdx | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/pages/stack/interop/tutorials/deploy-superchain-erc20.mdx b/pages/stack/interop/tutorials/deploy-superchain-erc20.mdx index e2857abbc..26b3eb3c4 100644 --- a/pages/stack/interop/tutorials/deploy-superchain-erc20.mdx +++ b/pages/stack/interop/tutorials/deploy-superchain-erc20.mdx @@ -85,7 +85,7 @@ The tutorial uses these primary tools: pnpm contracts:update:rpcs ``` - 2. Edit `packages/contracts/configs/deploy-config.toml` for the deployment settings. + 2. Edit `packages/contracts/configs/deploy-config.toml` for the deployment settings. * Set these parameters in the `[deploy-config]` section: