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

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

撰文:要飞的Harry

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

视频回顾在?这里。

Uniswap介绍

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

万事达高管:若区块链技术解决安全性和互操作性问题,将为金融业带来更多价值:5月25日消息,万事达(Mastercard)执行副总裁兼加密和区块链负责人Raj Dhamod表示,公司坚信一旦加密货币和区块链技术能够解决安全性和互操作性等关键问题,它就能为金融业带来更多价值。

Dhamodharan表示,加密货币和区块链技术在全球范围内日益受到关注,但由于缺乏全面的安全性和复杂的用户交互,它们的用例目前受到限制;一旦这些问题得到解决,品牌和公司就会更有信心参与Web3行业;大多数人将加密货币视为一种投资机会,但技术本身有很多希望,而不仅仅是一种转移和储存资本的好方法。[2023/5/25 10:38:59]

代码解读

信通院何宝宏:区块链为互联网建立信任关系提供技术解决思路:5月2日消息,可信区块链推进计划在线开展本年度第一次全体会议,中国信通院云计算与大数据研究所所长何宝宏参加会议并表示,区块链为互联网上建立信任关系、进行价值传递提供了一种非常好的技术解决思路,有助于机构、企业提升透明度、可信度,构建新型产业协作范式,加速我国经济的数字化转型发展。当前,区块链行业正在快速发展中,经历过去几年的市场历练,需要从核心技术、行业应用和监管合规等多个方面寻求突破和激发创新。(新华网)[2020/5/2]

Uniswap有两个核心的项目:

声音 | 中科院大学数字经济与区块链研究中心主任魏先华:用区块链技术解决供应链金融已形成共识:由中国科学院大学数字经济与区块链研究中心主办的《数字经济新路径——区块链+供应链金融》论坛在北京举办,在论坛上,中国科学院大学数字经济与区块链研究中心主任魏先华教授就《区块链细微打造供应链金融生态》发表了主题演讲。魏先华表示,目前供应链金融行业依旧存在核心企业动力不足、信用传递层少、非标准债券资产估值难、产融风险交织、难以评估与管理等诸多痛点,魏先华认为目前用区块链技术解决供应链金融已形成共识,用区块链解决供应链金融问题是必经之路。(星球日报)[2019/12/8]

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

这个项目中的代码通常不会被用户直接调用,而是被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:15ms0-3:806ms