空投科学家 - ETH 跨链

奥德赛第一周的任务是将ETH资产从其他链转移到 Arbitrum one 上面。因为hop 有官方的SDK,我们这次就用hop。因为官方文档都用的javascript,本着不再造轮子的想法,本文使用javascript。这里是github链接,自取。

  1. 从交易所提USDC到polygon
    1. 成本:1u
    2. 教程可以看这里
  2. 把USDC交易成ETH
    1. 1inch 是流动性聚集器,比较便宜
    2. 成本+滑点:2u
  3. 通过HOP,从polygon转ETH到arbitrum

1inch 交易

1inch是一个dex聚合器。简单来说,它把很多去中心化交易所的流动性聚集起来了,提供给交易者最优的交易路径。

我们先体验一下这个产品的使用流程。打开1inch网站,发现交易有3步:

  1. 连接钱包
  2. 批准使用代币
  3. 发送交易

因此写代码也是这3步。

  • 首先是一些固定的信息。
    • swapParams 是配置交易参数。这里讲的很详细了,我就不再赘述。强调一点,amount的值是由代币最小单位决定的。
      • 1.00 DAI set as 1000000000000000000
      • 51.03 USDC set as 51030000
    • 因为我们从交易所取的是USDC,而Arbitrum跨链需要ETH。所以我们要做的交易就是把USDC换成WETH。也就是,fromTokenAddress = USDC,toTokenAddress = WETH。
      • 只有以太坊上,才有真正的ETH,其他的都是WETH或者其他质押铸造出来的ETH。
    • walletAddress是我们polygon发出交易的地址,也就是我们的钱包地址。
初始化固定信息
初始化固定信息
  • 通过调用1inch的API,我们可以知道我们要交易的代币是否允许使用。 如果没有代币没有批准使用的话,我们就先批准使用。
批准交易
批准交易
  • 成功获得批准后,就可以交易了。
交易
交易

其中,代码调用了 buildTxForSwapsignAndSendTransaction 两个函数,都是官方提供的,作用就是调用1inch的api,私钥签名,发送交易信息。


如果代币需要批准,会有一个批准交易哈希,去polygonscan上就可以看到具体的内容。下图可以看到,批准USDC的交易成功了。

而交易成功后也会返还一个哈希值。可以去看看交易哈希,看到status = success,就说明成功了。这个时候去看看钱包的余额,算算价格,应该就没啥大问题了。

HOP 跨链

我们在1inch上把USDC换成WETH后,下一步就是通过跨链协议把WETH从Polygon转到Arbitrum。核心思路也是3步

  1. 连接钱包
  2. 批准使用代币
  3. 发送交易

其他的和上面的都差不多。整个项目的代码在这儿。我就不细讲了。值得注意的是,如果直接用官方doc给的代码,会出现 Transaction underpriced 的错误。原因是我们的gas price给低了,因此需要人为的设置GAS price。

跨链交易
跨链交易

我也遇到了下面这个错误。意思就是Arbitrum上的代币不够了。hop现在每4个小时加一次流动性,所以等等就好了。

有时候交易会被拒绝,重新试一次就好了。

我的eth 过了一个小时还没收到。。还在pending中。大家交易成功后,可以去这个网站查看hop的跨链信息。

一切顺利的话,大家就可以在galaxy领取第一周的OTA了。我的OTA已经available了😊,你们的呢?


项目代码

参考链接


如果不会javascript,可以学习一下,我也是1个月前学的。推荐下面两个链接,加油!

下面是一些个人链接,欢迎大家关注。

Subscribe to June
Receive the latest updates directly to your inbox.
Mint this entry as an NFT to add it to your collection.
Verification
This entry has been permanently stored onchain and signed by its creator.