# 空投科学家 - ETH 跨链 **Published by:** [June](https://paragraph.com/@june023/) **Published on:** 2022-06-27 **URL:** https://paragraph.com/@june023/eth ## Content 奥德赛第一周的任务是将ETH资产从其他链转移到 Arbitrum one 上面。因为hop 有官方的SDK,我们这次就用hop。因为官方文档都用的javascript,本着不再造轮子的想法,本文使用javascript。这里是github链接,自取。从交易所提USDC到polygon成本:1u教程可以看这里把USDC交易成ETH1inch 是流动性聚集器,比较便宜成本+滑点:2u通过HOP,从polygon转ETH到arbitrum1inch 交易1inch是一个dex聚合器。简单来说,它把很多去中心化交易所的流动性聚集起来了,提供给交易者最优的交易路径。 我们先体验一下这个产品的使用流程。打开1inch网站,发现交易有3步:连接钱包批准使用代币发送交易因此写代码也是这3步。首先是一些固定的信息。swapParams 是配置交易参数。这里讲的很详细了,我就不再赘述。强调一点,amount的值是由代币最小单位决定的。1.00 DAI set as 100000000000000000051.03 USDC set as 51030000因为我们从交易所取的是USDC,而Arbitrum跨链需要ETH。所以我们要做的交易就是把USDC换成WETH。也就是,fromTokenAddress = USDC,toTokenAddress = WETH。只有以太坊上,才有真正的ETH,其他的都是WETH或者其他质押铸造出来的ETH。walletAddress是我们polygon发出交易的地址,也就是我们的钱包地址。初始化固定信息通过调用1inch的API,我们可以知道我们要交易的代币是否允许使用。 如果没有代币没有批准使用的话,我们就先批准使用。批准交易成功获得批准后,就可以交易了。交易其中,代码调用了 buildTxForSwap 和 signAndSendTransaction 两个函数,都是官方提供的,作用就是调用1inch的api,私钥签名,发送交易信息。如果代币需要批准,会有一个批准交易哈希,去polygonscan上就可以看到具体的内容。下图可以看到,批准USDC的交易成功了。而交易成功后也会返还一个哈希值。可以去看看交易哈希,看到status = success,就说明成功了。这个时候去看看钱包的余额,算算价格,应该就没啥大问题了。HOP 跨链我们在1inch上把USDC换成WETH后,下一步就是通过跨链协议把WETH从Polygon转到Arbitrum。核心思路也是3步连接钱包批准使用代币发送交易其他的和上面的都差不多。整个项目的代码在这儿。我就不细讲了。值得注意的是,如果直接用官方doc给的代码,会出现 Transaction underpriced 的错误。原因是我们的gas price给低了,因此需要人为的设置GAS price。跨链交易我也遇到了下面这个错误。意思就是Arbitrum上的代币不够了。hop现在每4个小时加一次流动性,所以等等就好了。有时候交易会被拒绝,重新试一次就好了。 我的eth 过了一个小时还没收到。。还在pending中。大家交易成功后,可以去这个网站查看hop的跨链信息。 一切顺利的话,大家就可以在galaxy领取第一周的OTA了。我的OTA已经available了😊,你们的呢?项目代码https://github.com/June911/SwapAndCrossChain参考链接https://docs.1inch.io/docs/aggregation-protocol/guide/quick-start https://docs.hop.exchange/如果不会javascript,可以学习一下,我也是1个月前学的。推荐下面两个链接,加油! https://www.jiyik.com/w/javascript/javascript-intro https://www.w3schools.com/js/default.asp 下面是一些个人链接,欢迎大家关注。 https://twitter.com/june023_eth https://github.com/June911 ## Publication Information - [June](https://paragraph.com/@june023/): Publication homepage - [All Posts](https://paragraph.com/@june023/): More posts from this publication - [RSS Feed](https://api.paragraph.com/blogs/rss/@june023): Subscribe to updates - [Twitter](https://twitter.com/june023_eth): Follow on Twitter