The Scroll Messenger
Scroll Messenger 合约允许从 L1 向 L2 发送任意消息,反之亦然。这使得能够以安全和无需许可的方式在另一条链上执行功能。要将消息从 L1 发送到 L2,请使用部署在 L1 上的 L1ScrollMessenger
合约 .要将消息从 L2 发送到 L1,请使用部署在 L2 上的 L2ScrollMessenger
合约。
任何从L2发起的交易都需要使用Scroll Messenger合约上的 relayMessageWithProof
方法最终确认。我们将此过程称为“提交执行提款交易”,并且通过网关或路由器发送任意消息和转移资产都需要它。当您使用 relayMessageWithProof
时,您必须提供默克尔树包含证明,证明您的交易包含在“提款”消息的树中,以及其他参数。生成此证明和这些值可以在本地无需许可的情况下完成,但目前,检索这些参数的最简单方法是通过我们托管在 https://sepolia-api-bridge.scroll.io/api/ 的后端 API。
向 /claimable
端点提供负责在 L2 上发布原始交易的 EOA 或合约地址。API 后端将为您提供在 L1 上成功完成交易所需的所有信息。请看以下示例:
API 应按以下格式返回交易数据:
返回的 result
json 中的claimInfo
对象拥有在 L1 上执行交易所需的所有信息。relayMessageWithProof
所需的参数是: from
, to
, value
, nonce
, message
and proof
。 将这些参数提供给 L1 上的 relayMessageWithProof 方法,以在 L1 上执行和最终确认交易。
请访问 npm 库 来获取完整的 Scroll 合约 API 文档。
将任意数据从一个链发送到另一个链。它允许我们跨链执行方法。
参数 | 描述 |
---|
target | 接收消息的帐户的地址。接收者可以是智能合约或EOA钱包 |
value | 调用目标合约时传递的 ETH 数量 |
message | 消息的内容。这是要执行的任意调用数据 |
gasLimit | 在相应链上完成消息中继所需的gas上限 |
refundAddress | 将收到退款费用的帐户的地址 |
中继带有消息证明的 L2 => L1 消息。
参数 | 描述 |
---|
from | 消息发件人的地址 |
to | 消息收件人的地址 |
value | 传递给消息调用的 msg.value |
nonce | 消息的nonce,以避免重放攻击 |
message | 消息的内容 |
proof | 用于验证交易正确性的证明 |