本文介绍了Thanos网络的SDK,该SDK使用Typescript编写,主要功能包括:存入和提取ERC-20代币、ETH以及原生代币(TON),验证并完成提款交易,以及预估L1/L2的Gas费用。文章重点介绍了CrossChainMessenger类和L2Provider,并提供了使用SDK进行ETH存取款的示例。
TOP 项目团队计划在 12 月推出 Thanos 主网,并在 7 月 1 日向世界展示新的测试网络 Thanos-Sepolia。Thanos 网络是一个 L2,专注于基于 optimistic rollup 扩展以太坊主网,并使用 ERC-20 作为原生代币。
为了与 Thanos 网络交互,我们应该使用 Typescript 编写的 SDK,我们已将其发布在 NPM 上。
Thanos 开发故事系列
首先,让我们谈谈 Thanos 的 SDK 功能:
CrossChainMessenger 类帮助我们在以太坊主网和 Thanos 网络之间转移资产。
例如:从以太坊主网向 Thanos 存入 ETH,或者从 Thanos 发起提款交易返回以太坊,跟踪交易状态以便在以太坊上完成,并在挑战时间过后完成交易。
存入和提取
在 CrossChainMessenger 类中,我们支持存入和提取原生代币:
approveNativeToken
:在从以太坊存入到 Thanos 之前,使用 L1Bridge 合约批准 L1 上的原生代币bridgeNativeToken
:通过 L1Bridge 合约将原生代币从以太坊存入到 ThanoswithdrawNativeToken
:通过 L2Bridge 合约将原生代币从 Thanos 提取回以太坊并且,CrossChainMessenger 支持存入和提取预定义的 ERC-20 代币:
approveERC20
:在从以太坊存入到 Thanos 之前,使用 L1Bridge 批准 ERC-20 代币bridgeERC20
:通过 L1Bridge 合约将 ERC-20 代币从以太坊存入到 ThanoswithdrawERC20
:通过 L2Bridge 合约将 ERC-20 代币从 Thanos 提取回以太坊此外,CrossChainMessenger 支持存入和提取 ETH:
bridgeETH
:通过 L1Bridge 合约将 ETH 从以太坊存入到 ThanoswithdrawETH
:通过 L2Bridge 合约将 ETH 从 Thanos 提取回以太坊证明和完成提款交易
为了支持使用 OptimismPortal 合约证明和完成提款交易,我们有以下内容:
proveMessage
:证明从 L2 发送到 L1 的跨链消息。仅适用于 L2 到 L1finalizeMessage
:完成从 L2 发送到 L1 的跨链消息。仅适用于 L2 到 L1Thanos SDK 具有一些用于处理 Thanos gas 模型的实用程序,我们有以下内容:
getL1GasPrice
:获取 L2 上看到的当前 L1 gas 价格estimateL1Gas
:估算给定 L2 交易所需的 L1 gas 量estimateL1GasCost
:估算给定 L2 交易的 L1 gas 成本(以 Wei 为单位)estimateL2GasCost
:估算给定 L2 交易的 L2 gas 成本(以 Wei 为单位)estimateTotalGasCost
:估算给定 L2 交易的总 gas 成本(以 Wei 为单位)asL2Provider
:返回一个包装为 Thanos L2 提供程序的提供程序。添加了一些额外的辅助函数,以简化估算 Optimism 上交易的 gas 使用情况。返回原始提供程序的副本。为了与 OptimismPortal 合约交互,我们可以初始化一个 OptimismPortal 实例
我们支持以下功能:
waitingDepositTransactionRelayed
:等待从以太坊到 Thanos 的存款交易被中继getMessageStatus
:获取消息状态(从 L1 到 L2 通过收据或从 L2 到 L1 通过收据)waitingDepositTransactionRelayedUsingL1Tx
:等待通过 L1 交易收据中继从以太坊到 Thanos 的存款交易calculateReplayedDepositTxID
:计算中继的存款交易 IDgetL2BlockNumberInOO
:获取 Optimism Portal 合约中的 L2 区块号calculateWithdrawalMessage
:计算提款消息waitForWithdrawalTxReadyForRelay
:等待提款交易准备好进行中继getChallengePeriodSeconds
:获取挑战期(以秒为单位)getProvenWithdrawal
:获取已证明的提款getFinalizedWithdrawalStatus
:获取已完成的提款状态depositTransaction
:通过 Optimism Portal 合约存入 L2 原生代币交易initiateWithdrawal
:从 Optimism Portal 合约发起提款交易proveWithdrawalTransaction
:证明提款交易waitForFinalization
:等待完成提款交易finalizeWithdrawalTransaction
:完成提款交易这是一个将 ETH 从以太坊存入到 Thanos 的示例:
brigeETH
wait
以等待此交易成功或者将 ETH 从 Thanos 提取到以太坊:
amount
作为输入调用 withdrawETH
函数
- 原文链接: medium.com/@0x6e616d/tha...
- 登链社区 AI 助手,为大家转译优秀英文文章,如有翻译不通的地方,还请包涵~
如果觉得我的文章对您有用,请随意打赏。你的支持将鼓励我继续创作!