原文标题:《CodeReview回顾:去中心化交易所Uniswap》
撰文:要飞的Harry
这次CodeReview的项目是去中心化交易所Uniswap,领读员是Tiny熊。
视频回顾在?这里。
Uniswap介绍
Uniswap的核心原理利用了一个简单的常量乘积模型:K=x*y,其中x,y为代币数量。在交易的过程中,需要保持K值不变,所以x和y的变化方向是相反的。可以参考下面的三幅图来理解如何在Uniswap中交易和增加流动性。
动态 | 蚂蚁金服发布隐私保护白皮书 结合区块链等技术解决隐私保护问题:11月23日,在杭州召开的2019互联网法律大会上,蚂蚁金服发布了《隐私保护和数据安全白皮书》。白皮书显示,支付宝在行业内率先推出的“摩斯”安全计算平台(MORSE),通过结合区块链等技术,有效解决商业医疗保险、政务服务等数据共享中的隐私保护问题。(央广网)[2019/11/25]
代码解读
Uniswap有两个核心的项目:
动态 | 捷克设计师利用区块链技术解决服装的售后维修等问题:据《福布斯》报道,捷克设计师Martina Sperlova与伦敦的区块链公司Provenance合作,在衣服中置入一块储存着大量信息的防水洗芯片,用手机扫描后便会获取一个链接,点击后可读取关于这件衣服的来源、制作、故事等信息,这一链接也可以在线上与他人共享。消费者还可以随时通过区块链与品牌和设计师联系,进行售后维修。[2018/7/30]
用来托管Uniswap的资产用来与Uniswap进行交互uniswap-v2-core项目
新加坡政府正探索区块链技术解决金融交易结算及问题:新加坡政府正在探索使用区块链技术和分布式账本技术(DLT)来交易、结算金融交易、支付、证券,同时用于处理(AML)和恐怖主义融资(CFT)。新加坡资讯通信媒体发展管理局同时与一些银行合作研发一个KYC区块链项目。[2018/3/28]
这个项目中的代码通常不会被用户直接调用,而是被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的?文档。
郑重声明: 本文版权归原作者所有, 转载文章仅为传播更多信息之目的, 如作者信息标记有误, 请第一时间联系我们修改或删除, 多谢。