SWAP:技术解析 Uniswap 运行机制与核心功能

原文标题:《CodeReview回顾:去中心化交易所Uniswap》

撰文:要飞的Harry

这次CodeReview的项目是去中心化交易所Uniswap,领读员是Tiny熊。

视频回顾在?这里。

Uniswap介绍

Uniswap的核心原理利用了一个简单的常量乘积模型:K=x*y,其中x,y为代币数量。在交易的过程中,需要保持K值不变,所以x和y的变化方向是相反的。可以参考下面的三幅图来理解如何在Uniswap中交易和增加流动性。

EOA地址(0x31698)将20枚ETH(约合3.7万美元)转至Tornado Cash:金色财经报道,据CertiK官方推特发布消息称,EOA地址(0x31698)将20枚ETH(约合3.7万美元)转至Tornado Cash。该笔资金来自被标记为“Fake_Phishing185483”的钓鱼地址。[2023/7/29 16:06:00]

代码解读

Uniswap有两个核心的项目:

比特币全网未确认交易数量为18,570笔:金色财经报道,据BTC.com数据显示,目前比特币全网未确认交易数量为18,570笔,全网算力为222.25EH/s,24小时交易速率为2.82交易/s,目前全网难度为35.36T,预测下次难度下调7.47%至32.72T,距离调整还剩7天17小时。[2022/12/28 22:11:12]

用来托管Uniswap的资产用来与Uniswap进行交互uniswap-v2-core项目

币安:通胀导致加密货币客户激增:8月11日消息,加密货币交易平台币安的一名高管表示,由于通胀上升和美元强势打压了新兴市场货币,该交易平台的客户数量激增。该高管没有透露具体数字。

币安拉丁美洲负责人Maximiliano Hinz表示:“现在我们看到全球通胀加剧,看到越来越多的人在寻求加密货币,比如比特币,作为一种保护自己免受通货膨胀影响的方式。”Hinz以阿根廷为例,称该国的年通胀率高达90%。他说,阿根廷已经与巴西和墨西哥一样,成为该公司的最大市场之一。尽管加密货币价格暴跌,但阿根廷民众今年仍将大量储蓄投入比特币。(金十)[2022/8/11 12:17:34]

这个项目中的代码通常不会被用户直接调用,而是被uniswap-v2-periphery项目中的路由合约调用,因为路由合约的接口更友好。

合约:UniswapV2Factory.sol

核心方法:

createPair:用来创建一个交易对。接收两个token的地址作为参数,然后调用汇编方法create2创建pair,之后调用IUniswapV2Pair的initialize方法初始化pair。创建成功后发出PairCreated事件。

合约:UniswapV2Pair.sol

这个合约相当于

核心方法:

mint:给指定的地址mintLPtoken。burn:burn掉LPtoken,发送给用户对应的token0和token1。swap:交易。uniswap-v2-periphery项目

这个项目会被前端直接调用,之后会调用进uniswap-v2-core项目中的对应方法。

合约:UniswapV2Router02.sol

核心方法:

addLiquidity:提供两种ERC-20token,给ERC-20?ERC-20池子添加流动性removeLiquidity:移除ERC-20?ERC-20池子的流动性,接收两种ERC-20tokenremoveLiquidityWithPermit:让用户提前签好名授权合约,这样就省去了approve交易,只需要一笔交易就可以完成approve+transferFrom的操作。swapExactTokensForTokens:交易。指定发送(in)的token0数量,让合约计算得到(out)的token1数量swapTokensForExactTokens:交易。指定想要得到(out)的token1数量,让合约计算需要发送(in)的token0数量更多的关于合约方法的描述,可以参考Uniswap的?文档。

郑重声明: 本文版权归原作者所有, 转载文章仅为传播更多信息之目的, 如作者信息标记有误, 请第一时间联系我们修改或删除, 多谢。

地球链

[0:0ms0-1:392ms