From 8669c771bcc2ff1d693291d29841d9f655978147 Mon Sep 17 00:00:00 2001
From: tynes Table of Contents Four new system level predeploys are introduced for managing cross chain messaging and tokens, along with
an update to the Predeploys
+
Predeploys
Predeploys
Predeploys
-
+sendERC20
Predeploys
Overview
L1Block
, OptimismMintableERC20Factory
and L2StandardBridge
contracts with additional functionalities.CrossL2Inbox
@@ -526,6 +528,30 @@ Sending Mes
every call to
sendMessage
.
Note that sendMessage
is not payable
.
The following diagram shows the flow for sending a cross chain message using the L2ToL2CrossDomainMessenger
.
+Each subsequent call is labeled with a number.
flowchart LR + user -->|"1#46; sendMessage"| al2tol2 + user --> |"2#46; relayMessage"|bl2tol2 + em{{SentMessage Event}} + + direction TB + al2tol2 --> em + + bcl2[CrossL2Inbox] + al2tol2[L2ToL2CrossDomainMessenger] + bl2tol2[L2ToL2CrossDomainMessenger] + + subgraph "Chain A" + al2tol2 + end + + subgraph "Chain B" + bl2tol2 --> |"3#46; validateMessage"|bcl2 + bcl2 --> |"4#46;"| bl2tol2 + bl2tol2 --> |"5#46;"| Contract + end +
When relaying a message through the L2ToL2CrossDomainMessenger
, it is important to require that
the _destination
equal to block.chainid
to ensure that the message is only valid on a single
chain. The hash of the message is used for replay protection.
Anyone can deploy OptimismSuperchainERC20
contracts by using the OptimismSuperchainERC20Factory
.
The OptimismSuperchainERC20Factory
MUST be a proxied predeploy.
@@ -694,7 +720,7 @@
0x4200000000000000000000000000000000000027
The BeaconContract
predeploy gets called by the OptimismSuperchainERC20
BeaconProxies deployed by the
SuperchainERC20Factory
0x4200000000000000000000000000000000000028
The SuperchainERC20Bridge
is an abstraction on top of the L2toL2CrossDomainMessenger
that facilitates token bridging using interop.
It has mint and burn rights over SuperchainERC20
tokens
diff --git a/print.html b/print.html
index 11e88a79d..d1a04ee44 100644
--- a/print.html
+++ b/print.html
@@ -10292,6 +10292,7 @@
Table of Contents
sendERC20
Four new system level predeploys are introduced for managing cross chain messaging and tokens, along with
an update to the L1Block
, OptimismMintableERC20Factory
and L2StandardBridge
contracts with additional functionalities.
sendMessage
.
Note that sendMessage
is not payable
.
The following diagram shows the flow for sending a cross chain message using the L2ToL2CrossDomainMessenger
.
+Each subsequent call is labeled with a number.
flowchart LR + user -->|"1#46; sendMessage"| al2tol2 + user --> |"2#46; relayMessage"|bl2tol2 + em{{SentMessage Event}} + + direction TB + al2tol2 --> em + + bcl2[CrossL2Inbox] + al2tol2[L2ToL2CrossDomainMessenger] + bl2tol2[L2ToL2CrossDomainMessenger] + + subgraph "Chain A" + al2tol2 + end + + subgraph "Chain B" + bl2tol2 --> |"3#46; validateMessage"|bcl2 + bcl2 --> |"4#46;"| bl2tol2 + bl2tol2 --> |"5#46;"| Contract + end +
When relaying a message through the L2ToL2CrossDomainMessenger
, it is important to require that
the _destination
equal to block.chainid
to ensure that the message is only valid on a single
chain. The hash of the message is used for replay protection.
Anyone can deploy OptimismSuperchainERC20
contracts by using the OptimismSuperchainERC20Factory
.
The OptimismSuperchainERC20Factory
MUST be a proxied predeploy.
@@ -10792,7 +10818,7 @@
0x4200000000000000000000000000000000000027
The BeaconContract
predeploy gets called by the OptimismSuperchainERC20
BeaconProxies deployed by the
SuperchainERC20Factory
0x4200000000000000000000000000000000000028
The SuperchainERC20Bridge
is an abstraction on top of the L2toL2CrossDomainMessenger
that facilitates token bridging using interop.
It has mint and burn rights over SuperchainERC20
tokens
@@ -11550,7 +11576,7 @@
Without a standardized security model, bridged assets may not be fungible with each other.
The SuperchainERC20
standard is a set of properties and an interface allowing ERC20 to be fungible across the
Superchain using the official SuperchainERC20Bridge
.
@@ -11897,7 +11923,7 @@
Derivation is extended to create deposit contexts, which signifies the execution of a depositing transaction. A deposit context is scoped to a single block, commencing with the execution of the first deposited transaction @@ -12226,7 +12252,7 @@