奥德赛第一周的任务是将ETH资产从其他链转移到 Arbitrum one 上面。因为hop 有官方的SDK,我们这次就用hop。因为官方文档都用的javascript,本着不再造轮子的想法,本文使用javascript。这里是github链接,自取。
1inch是一个dex聚合器。简单来说,它把很多去中心化交易所的流动性聚集起来了,提供给交易者最优的交易路径。
我们先体验一下这个产品的使用流程。打开1inch网站,发现交易有3步:
因此写代码也是这3步。
swapParams
是配置交易参数。这里讲的很详细了,我就不再赘述。强调一点,amount
的值是由代币最小单位决定的。
1.00 DAI
set as 1000000000000000000
51.03 USDC
set as 51030000
fromTokenAddress
= USDC,toTokenAddress
= WETH。
walletAddress
是我们polygon发出交易的地址,也就是我们的钱包地址。其中,代码调用了 buildTxForSwap
和 signAndSendTransaction
两个函数,都是官方提供的,作用就是调用1inch的api,私钥签名,发送交易信息。
如果代币需要批准,会有一个批准交易哈希,去polygonscan上就可以看到具体的内容。下图可以看到,批准USDC的交易成功了。
而交易成功后也会返还一个哈希值。可以去看看交易哈希,看到status = success,就说明成功了。这个时候去看看钱包的余额,算算价格,应该就没啥大问题了。
我们在1inch上把USDC换成WETH后,下一步就是通过跨链协议把WETH从Polygon转到Arbitrum。核心思路也是3步
其他的和上面的都差不多。整个项目的代码在这儿。我就不细讲了。值得注意的是,如果直接用官方doc给的代码,会出现 Transaction underpriced
的错误。原因是我们的gas price给低了,因此需要人为的设置GAS price。
我也遇到了下面这个错误。意思就是Arbitrum上的代币不够了。hop现在每4个小时加一次流动性,所以等等就好了。
有时候交易会被拒绝,重新试一次就好了。
我的eth 过了一个小时还没收到。。还在pending中。大家交易成功后,可以去这个网站查看hop的跨链信息。
一切顺利的话,大家就可以在galaxy领取第一周的OTA了。我的OTA已经available了😊,你们的呢?
如果不会javascript,可以学习一下,我也是1个月前学的。推荐下面两个链接,加油!
下面是一些个人链接,欢迎大家关注。