Uniswap 是以太坊 DeFi 生态的头部去中心化交易所(DEX),本月初链闻曾报道 Uniswap 新版升级,可交易 Uniswap.exchange 默认列表中未显示的代币。本文教你如何在 Uniswap 交易甚至上架 ERC20 代币。
目录一、在 uniswap 上用 Dai 购买 ETH 二、在 uniswap 上用 ETH 来获得 Dai 三、「入股」 uniswap | 将uniswap中已存在的币入股 | 上币 四、发行一款 ERC20 五、把我们发行的 ERC20 上架到 uniswap
一、在 uniswap 上用 Dai 购买 ETH我们先来在 uniswap 上用 Dai 买一点 ETH 吧。我们打开 uniswap.exchange,你会看到这样的界面: 当然,你也有可能看到是白色的配色,你可以点击右下角的按钮,修改配色: 首次进入的时候(如果你的 MetaMask 开启了隐私模式),你可能需要点击右上角的 Connect 按钮连接到你的钱包,点击之后,MetaMask 会跳出来让你确认连接到钱包。如果右上角显示的是你的钱包地址,那么说明已经连接,就可以跳过这一步。 连接成功后,右上角的 Connect 按钮会变成你的钱包地址: 然后,这里我们注意到 uniswap 提供了 3 大类不同的业务 : 最后,我们需说明一下,虽然我们一直在说 Dai 和 ETH ,在 uniswap 上,只要是 ERC20 Token 都可以交易;我们最后还将演示,把我们随便创造的一种 ERC20 上架到 uniswap 上。
好吧,我们先来用 ETH 换点 Dai 吧。 首先我们注意到,uniswap 的 swap 页面默认的就是用 ETH 来换其他 ERC20 Token (Dai 也是一种 ERC20 token ),如果你是想用 ERC20 Token 来换 ETH ,那么你可以点击中间这个箭头,就行了,当然,我们这里并不需要,这里只是给你提一下这件事情: 我们点击 Select a token : 在弹出的对话框中选择 Dai : 然后,我们可以填写我们想要花多少 ETH 去买 Dai ,会自动计算出我们能买到多少 Dai ; 也可以填写我们想要买多少 Dai ,会自动计算出我们需要花多少 ETH 。我这里填写我想要购买 5 Dai ,自动算出了我需要花掉 0.03 ETH : 如果你很好奇这笔交易的细节,你还可以点击下面的 Advanced Details ,了解这笔交易的细节: 比如,我们在细节里面看到,我们买这 5 个 Dai ,最多会花 0.0303 ETH : 那么你可能会很好奇,如果这个时候市场波动很大,ETH 跌了,也就是说,我们用 0.0303 ETH 都买不到 5 Dai 的时候,会发生什么呢? 答案是,我们的这笔交易会失败,避免很大的滑点带来损失,我们只会损失一些 Gas 费用。 当然,你应该也注意到了,下面是可以让你选择滑点的,你可以允许更大的滑点,让你的交易成功的概率变大(如果你真的要这么做,确保你自己完全明白这意味着什么,避免带来损失): 好吧,让我们来执行这笔交易,点击最下面的 Swap 按钮: MetaMask 会弹出让我们确认交易,我们点击 Confirm 确认交易:
我们点击右上角我们的地址: 会弹出一个对话框,在对话框中,我们能够看到刚刚的我们确认的这笔交易: 我们点击这个链接,会跳转到 etherscan 查看具体的交易细节: 二、在 uniswap 上用 ETH 来获得 Dai在继续接下来的教学之前,我们先来聊聊公益。UNICEF France ,也就是 联合国儿童基金会法国分部 之前开通了 Dai 捐款 的通道: 我们接下来,就来给 联合国儿童基金会法国分部 捐 1 Dai 。 先来看下我的这个钱包里面有多少 Dai : 注意到我的钱包里面有 0.2021 ETH 和 5.997 Dai 。虽然我要给 联合国儿童基金会法国分部 捐 1 Dai ,但我要通过 uniswap 的 send 功能去捐赠,我不会动用我钱包里面的 Dai 。 我们回到 uniswap 的页面,点击 Swap 旁边的 Send ,会看到下面的界面: 我们同样点击 select token ,选择 Dai : 在 Dai 的数额处,输入 1 ,然后会自动计算出需要支付 0.006 ETH : 然后,我们在 Recipient Address 处,填入收款人的地址,这里当然就是 联合国儿童基金会法国分部 的地址啦: 然后,同样的,我们点击 Send , 在 MetaMask 中确认这笔交易: 等待交易在网络上被确认之后,我们点击交易的链接,去 etherscan 上详细看下这笔交易: 我们可以看到交易的一些细节: 这个时候,我们再回过来看看我的钱包: 三、「入股」 uniswap | 将uniswap中已存在的币入股 | 上币这里说的 入股 就是 pool 功能。我们通过提供流动性,来获取交易手续费的提成。 在说 pool 功能之前,我们先来回顾下上面的 swap 功能。上面我们说到 uniswap 的 swap 功能的时候,我们是用 ETH 换了 Dai 。 其实在 uniswap 上我们可以用任意一种商家的 ERC20 来换另一种 ERC20 。我们可以在 swap 页面上,我们点击 ETH 处: 在弹出的对话框里面,我们可以选择其他 ERC20 token ,这样我们就可以实现 token 和 token 的交易的。 但是需要注意的是,因为 uniswap 是以 ETH 为核心设计的。虽然我们可以在一笔交易中完成 token 到 token 的交易,但在 uniswap 内部,实际上是经历了 token 到 ETH , ETH 再到 token 两个过程。 好吧,我们为什么要提到这一点呢? 因为当我们打开 pool 对应的页面的时候,你会发现这里上面的 ETH 是点不动的: 也就是说,我们在 pool 的时候,不能 pool 放入两种 token ,而是一定要放入 ETH 和 另一种 token 。 我打算 pool 5 个 Dai 和 价值 5 Dai 的 ETH 。首先,我们点击 pool 页面,我们选择想要 pool 的 token ,点击这里的 Select a token 按钮: 在弹出的页面里面,我们选择 Dai : 然后我们输入 5Dai ,会自动计算出需要多少 ETH (你可能会注意到,这个时候的 ETH 比上面的价格贵,因为这个部分和上面的部分不是同一天写的,ETH 又涨起来了) : 注意,这里有一个 Advanced Details ,能够看到更多的细节,点击之后,我们看到: 这里的 liquidity token 就是用来表示你的 股份 的。 下一步,就是点击最下方的 Add Liquidity 按钮了,但你可能发现它是灰色的,无法点击: 原来,我们漏掉了 approve Dai ( 如果你很好奇 approve 是什么,参考 ERC20 APPROVE),我们点击 Dai 旁边的 Unlock 按钮, 在弹出的 MetaMask 窗口里面,确认这笔 Approve 交易 : 等交易在网络上被确认之后,Add Liquidity 按钮就可以点击了: 我们点击这个按钮,在 MetaMask 里面确认 Add Liquidity 这笔交易: 等待交易确认之后,我们回到 pool 页面,这个时候,我们点击 Add Liquidity : 在弹出的菜单中,我们切换到 Remove Liquidity 功能页面: 在 select a token 这里,我们选择 Dai : 注意到,这里显示了一个 balance ,但这并不是 ETH 或者 Dai 的余额,而是我拥有的 股份 ,我们点击这个 balance ,你会看到我们这点 股份 的价值: 如果我们这个时候点击 Remove Liquidity ,我们的 股份 将会被销毁,同时我们可以拿回 0.028ETH + 4.9987Dai 。 四、发行一款 ERC20因为我们要演示怎样在 uniswap 上架我们自己的 ERC20 Token ,所以,首先呢,我们来随便发行一种 ERC20 Token ,具体请参考我的另一篇文章 《从零教你发行ERC20代币》 五、把我们发行的 ERC20 上架到 uniswap现在让我们回到 uniswap 里面,我们选择 pool 功能,在 Add Liquidiy 这里,我们点击一下: 在弹出的菜单里面,你会看到 Create Exchange ,这个功能就是上架我们的 ERC20 Token 了: 我们填入我们的合约地址: 然后点击 Create Exchange 按钮,在弹出的 MetaMask 窗口中确认交易: 这里要提醒的是,如果网络比较拥挤,而你的 gas price 设置得很低(比如如上图),那么,这笔交易将会很久才能确认,所以你可能需要 加速你的交易,或者在一开始就设置合适的 Gas Price
我们等待交易确认,交易确认之后,好像什么都没有发生一样: 但是,我们现在回到 Add Liquidity (可能需要等待一小会),点击这里的 Select Token : 我们输入我们的合约地址,然后选择 DEFI-ORG-TUTORIAL ,也就是我们创建的这种 Token 的名字: 接着,你会看到一句提示,哈哈哈,我们现在要通过 pool 来定价了: 那么我们来定价吧, 10 个 Token 卖 0.01 Ether 吧 : 接下来的操作就和上面的 pool 相同: 做完这些之后,我们回到 swap ,你会发现我们的 Token 就可以购买了:
|